*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Noto Sans JP',system-ui,-apple-system,sans-serif;background:#1f1a2e;color:#f5f5f7;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{text-decoration:none;color:inherit;transition:opacity .2s}
ul{list-style:none}

.h-screen{min-height:100vh}
.relative{position:relative}
.absolute{position:absolute}
.overflow-hidden{overflow:hidden}
.hidden{display:none}
.block{display:block}
.inline-block{display:inline-block}
.inline-flex{display:inline-flex}
.flex{display:flex}
.flex1{flex:1}
.flex-col{flex-direction:column}
.flex-row{flex-direction:row}
.flex-wrap{flex-wrap:wrap}
.items-center{align-items:center}
.items-baseline{align-items:baseline}
.justify-center{justify-content:center}
.justify-between{justify-content:space-between}
.justify-start{justify-content:flex-start}
.justify-end{justify-content:flex-end}
.text-left{text-align:left}
.text-center{text-align:center}
.w-full{width:100%}
.w-72{width:18rem}
.w-10{width:2.5rem}
.w-fit{width:fit-content}
.whitespace-nowrap{white-space:nowrap}
.shrink0{flex-shrink:0}
.minW0{min-width:0}
.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.resizeV{resize:vertical}
.pointer{cursor:pointer}
.op50{opacity:.5}
.op30{opacity:.3}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}

.bg-core1{background:#1f1a2e}
.bg-core2{background:#2a2438}
.bg-highlight1{background:#6c5ce7}
.bg-blue-50{background:#eff6ff}
.bg-blue-400{background:#60a5fa}
.bg-neutral4{background:#3d3650}
.text-coreContrast{color:#f5f5f7}
.text-white{color:#fff}
.text-neutral1{color:#a8a3b3}
.clr_muted{color:#a8a3b3}
.clr_accent{color:#6c5ce7}
.clr_lightgray{color:#ccc}
.clr_err{color:#ffcccc}
.clr_wh70{color:rgba(255,255,255,.7)}
.clr_wh50{color:rgba(255,255,255,.5)}
.clr_wh90{color:rgba(255,255,255,.9)}
.clr_dark{color:#1f1a2e}
.clr_dark_sub{color:#4a4458}
.border-coreContrast{border-color:#f5f5f7}
.border-highlight1{border-color:#6c5ce7}
.border-white{border-color:#fff}
.border_dark{border-color:#1f1a2e}

.font-bold{font-weight:700}
.font-semibold{font-weight:600}
.font-medium{font-weight:500}
.font-display{font-family:'Noto Sans JP',system-ui,sans-serif;font-weight:700}
.text-xl{font-size:1.25rem}
.text-lg{font-size:18px}
.text-base{font-size:1rem}
.text-sm{font-size:0.875em}
.text-xs{font-size:0.75rem}
.text_42{font-size:42px}
.text_16{font-size:16px}
.text_28{font-size:28px}
.leading-tight{line-height:1.25}
.lh18{line-height:1.8}
.lh20{line-height:2}
.lh17{line-height:1.7}
.lh19{line-height:1.9}
.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

.rounded-full{border-radius:9999px}
.rounded-2xl{border-radius:16px}
.rounded-md{border-radius:6px}
.rounded{border-radius:4px}
.rad20{border-radius:20px}
.rad8{border-radius:8px}
.border-2{border:2px solid}
.border-0{border-width:0}
.border-b-2{border-bottom:2px solid}
.bt_divider{border-top:1px solid #3d3650}
.bb_divider{border-bottom:1px solid #3d3650}
.shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,.3),0 4px 6px -4px rgba(0,0,0,.2)}
.drop-shadow-md{filter:drop-shadow(0 4px 3px rgba(0,0,0,.25)) drop-shadow(0 2px 2px rgba(0,0,0,.2))}

.mx_auto{margin-left:auto;margin-right:auto}
.m-8{margin:2rem}
.ml-2{margin-left:8px}
.mr-2{margin-right:0.5rem}
.mt-2{margin-top:0.5rem}
.mt-4{margin-top:1rem}
.mt-6{margin-top:24px}
.mb-10{margin-bottom:2.5rem}
.mb14{margin-bottom:14px}
.mb18{margin-bottom:18px}
.mb20{margin-bottom:20px}
.mb6{margin-bottom:6px}
.mb8{margin-bottom:8px}
.mb10{margin-bottom:10px}
.mb12{margin-bottom:12px}
.mb16{margin-bottom:16px}
.my-4{margin-top:1rem;margin-bottom:1rem}
.my-5{margin-top:1.25rem;margin-bottom:1.25rem}
.px-2{padding-left:0.5rem;padding-right:0.5rem}
.px-4{padding-left:1rem;padding-right:1rem}
.px-8{padding-left:32px;padding-right:32px}
.py-1{padding-top:0.25rem;padding-bottom:0.25rem}
.py-2{padding-top:0.5rem;padding-bottom:0.5rem}
.py-4{padding-top:1rem;padding-bottom:1rem}
.py-5{padding-top:20px;padding-bottom:20px}
.p-2{padding:0.5rem}
.py_05{padding-top:2px;padding-bottom:2px}
.px_1_5{padding-left:6px;padding-right:6px}

.gap8{gap:8px}
.gap10{gap:10px}
.gap12{gap:12px}
.gap20{gap:20px}
.gap24{gap:24px}
.gap2r{gap:2rem}
.gap3r{gap:3rem}

.maxW_420{max-width:420px}
.maxW_580{max-width:580px}
.maxW_720{max-width:720px}
.maxW_780{max-width:780px}
.maxW_340{max-width:340px}
.maxW_380{max-width:380px}
.maxW_440{max-width:440px}
.maxW_280{max-width:280px}
.minW_240{min-width:240px}
.w90p{width:90%}
.h280{height:280px}
.h120{height:120px}
.h240{height:240px}
.h28{height:28px}
.objCover{object-fit:cover}

.max-w7xl{max-width:80rem}
.maxW_1170{max-width:1170px}

.spaceX2>*+*{margin-left:0.5rem}
.spaceX_1_5>*+*{margin-left:6px}
.spaceX8>*+*{margin-left:2rem}
.spaceY2>*+*{margin-top:0.5rem}

h1{font-size:42px;font-weight:700;line-height:1.25}
h2{font-size:2rem;font-weight:700;line-height:1.3}
h3{font-size:1.25em;font-weight:600}

.header-logo{height:32px;width:auto}
.brightness_100{filter:brightness(1)}
.dark_dim{opacity:0.2;contrast:0;filter:brightness(0)}
.outline-highlight1{outline-color:#6c5ce7}
.hover_opacity90:hover{opacity:0.9}
.hover_noUnderline:hover{text-decoration:none}
.hover_gray500:hover{color:#6b7280}
.focus_ring_highlight1:focus{outline:none;box-shadow:inset 0 0 0 2px #6c5ce7}
.px_12{padding-left:12px;padding-right:12px}
.py_6{padding-top:6px;padding-bottom:6px}

.card_thumb{width:100%;height:180px;object-fit:cover;border-radius:8px;margin-bottom:12px}

.h_90{height:90px}
.items_left{align-items:flex-start}
.deco_img{width:120px;height:120px;object-fit:contain;opacity:0.7}
.decoWrap{overflow:hidden}
.hdr_sticky{position:sticky;top:0;z-index:90;backdrop-filter:blur(12px);background:rgba(42,36,56,.92)}

.hero_fullH{padding:0}
.hero_inner{padding-top:6rem;padding-bottom:4.5rem}
.hero_textCol{justify-content:center}
.hero_mainImg{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:20px}
.hero_sub{color:#a8a3b3;margin-bottom:28px;max-width:420px;line-height:1.8}
.hero_imgWrap{position:relative;border-radius:20px;overflow:hidden}
.hero_imgCol{margin-top:2.5rem}

.mobileMenu{display:none;background:#2a2438;border-bottom:1px solid #3d3650;position:sticky;top:90px;z-index:89}
.mobileMenu_open{display:block}
.mobileMenu_inner{padding:1rem}
.mobileMenu_link{display:block;padding:12px 1rem;color:#f5f5f7;font-size:1rem}
.mobileMenu_link:hover{background:#3d3650;border-radius:6px}

.sec_products{padding:4.5rem 0 3.8rem}
.sec_story{padding:4.2rem 0 4.8rem}
.sec_news{padding:3.5rem 0 4rem}
.sec_team{padding:4rem 0 4.5rem}
.sec_reviews{padding:4.2rem 0 3.8rem}
.sec_faq{padding:4rem 0 4.5rem}
.sec_contact{padding:4rem 0}
.sec_footer{padding:3rem 0 3.6rem}
.sec_footer_border{border-top:1px solid #3d3650}
.sec_legal{padding:3.5rem 0 4.5rem;min-height:calc(100vh - 90px - 220px)}
.sec_about_hero{padding:4rem 0 4.5rem}
.sec_about_inner{padding:3.5rem 0 4rem}
.sec_about_cta{padding:3rem 0 3.5rem}
.mb25r{margin-bottom:2.5rem}

.storyImg{border-radius:20px;width:100%;object-fit:cover;max-height:420px}
.storyP{color:#a8a3b3;line-height:2;margin-bottom:14px}
.storyP:last-child{margin-bottom:0}

.newsCard_wrap{height:280px}
.newsCard_bg{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0}
.newsCard_overlay{position:absolute;bottom:0;left:0;right:0;padding:24px 28px;background:linear-gradient(transparent,rgba(31,26,46,.92) 40%)}
.newsDate{color:#a8a3b3;margin-bottom:6px}
.newsDesc{color:#ccc;margin-top:8px}

.productCard{transition:transform .2s}
.productCard:hover{transform:translateY(-4px)}
.addToCartBtn{cursor:pointer;transition:background .15s}
.addToCartBtn:hover{background:#7c6cf0}

.teamCard{max-width:340px;margin:0 auto}
.teamCardInner{padding:20px 24px 24px}
.teamRole{color:#6c5ce7;margin:4px 0 10px}
.teamBio{color:#a8a3b3;line-height:1.8}

.reviewCard{padding:24px;max-width:280px;flex:1;min-width:240px}
.reviewImg{width:100%;height:120px;object-fit:cover;border-radius:8px;margin-bottom:14px}
.reviewText{line-height:1.8;flex:1}
.reviewAttr{margin-top:14px;padding-top:12px;border-top:1px solid #3d3650}

.cartBtn_header{background:none;border:none;color:#f5f5f7;cursor:pointer;position:relative}
.cartBadge{position:absolute;top:-6px;right:-8px;background:#6c5ce7;color:#fff;font-size:10px;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700}
.cartBadge.hidden{display:none}

.cartOverlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(10,8,18,.75);z-index:200;display:flex;backdrop-filter:blur(4px)}
.cartOverlay.hidden{display:none}
.cartPanel{position:absolute;top:0;right:0;bottom:0;width:100%;max-width:460px;background:#2a2438;display:flex;flex-direction:column;animation:slideIn .25s ease}
@keyframes slideIn{from{transform:translateX(100%)}to{transform:translateX(0)}}
.cartHdr{padding:24px 28px 16px;border-bottom:1px solid #3d3650}
.cartBody{padding:16px 28px;flex:1;overflow-y:auto}
.cartFtr{padding:16px 28px 24px;border-top:1px solid #3d3650}
.cartFtr_total{margin-bottom:16px}
.cartEmpty{padding:4rem 28px;color:#a8a3b3}
.cartRow{gap:12px;padding:12px 0;border-bottom:1px solid #3d3650}
.cartThumb{width:56px;height:56px;object-fit:cover;border-radius:8px;flex-shrink:0}
.cartPrice{color:#a8a3b3}
.cartQtyWrap{gap:6px}
.cartQtyVal{min-width:20px;text-align:center}
.cartRemove{margin-left:4px}

.orderModalInner{position:relative;z-index:1}
#orderModal,#thankYouModal{align-items:center;justify-content:center}
.modalWrap{max-width:440px;width:90%;margin:auto;padding:32px}
.modalWrapSm{max-width:380px;width:90%;margin:auto;padding:40px 32px}
.tyIcon{font-size:48px;color:#6c5ce7;display:block;margin-bottom:16px}

.qtyBtn{width:28px;height:28px;border-radius:50%;border:1px solid #3d3650;background:transparent;color:#f5f5f7;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:background .15s}
.qtyBtn:hover{background:#3d3650}

.formInput{background:#1f1a2e;border:2px solid #3d3650;border-radius:12px;padding:12px 16px;color:#f5f5f7;font-size:14px;font-family:inherit;outline:none;transition:border-color .2s}
.formInput:focus{border-color:#6c5ce7}
.formInput::placeholder{color:#605878}

.faq_item{border-bottom:1px solid #3d3650}
.faq_q{padding:18px 0;cursor:pointer;background:none;border:none;font-size:15px;font-family:inherit;transition:color .15s}
.faq_q:hover{color:#6c5ce7}
.faq_icon{transition:transform .25s;font-size:14px;flex-shrink:0;margin-left:12px}
.faq_a{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease;padding:0;line-height:1.9;color:#a8a3b3}
.faq_open .faq_icon{transform:rotate(45deg)}
.faq_open .faq_a{max-height:300px;padding:0 0 18px}

.cookieBanner{position:fixed;bottom:20px;right:20px;z-index:300;max-width:340px;width:calc(100% - 32px)}
.cookieBanner.hidden{display:none}
.cookieBanner_inner{padding:20px 22px;border:1px solid #3d3650}
.ckSettingsBox{margin-bottom:14px;padding:12px;background:#1f1a2e;border-radius:8px}
.ckLabel{margin-bottom:8px;cursor:pointer}
.ckLabel:last-child{margin-bottom:0}
.ckInput{margin-right:8px;accent-color:#6c5ce7}
.ckBtnWrap{gap:8px}
.ckBtn{flex:1;padding:6px 10px}
.cookieLink{color:#6c5ce7;text-decoration:underline}

.footerLogo{height:28px;opacity:.5}
.footerAddr{color:#a8a3b3}
.footerLogoWrap{margin-bottom:1.5rem}

.legalContent p{margin-bottom:14px;line-height:1.9;color:#c8c4d0}
.legalContent h3{margin-top:24px;margin-bottom:10px;font-size:16px;color:#f5f5f7}

.iconSz20{font-size:20px}
.iconSz22{font-size:22px}
.iconSz24{font-size:24px}
.iconSz48{font-size:48px}
.iconSz14{font-size:14px}
.iconSz11{font-size:11px}
.iconSz18{font-size:18px}
.iconMr6{margin-right:6px}
.iconMl5{margin-left:5px}

.top_5pct{top:5%}
.left_half{left:50%}
.neg_mx_52rem{margin-left:-52rem}
.mx_35rem{margin-left:35rem}
.neg_bottom_30rem{bottom:-30rem}
.top_200pct{top:200%}
.neg_mx_45rem{margin-left:-45rem}
.top_350pct{top:350%}
.top_470pct{top:470%}
.neg_mx_50rem{margin-left:-50rem}
.top_540pct{top:540%}
.mx_30rem{margin-left:30rem}

@media(min-width:640px){
.sm_px6{padding-left:1.5rem;padding-right:1.5rem}
.sm_ml0{margin-left:0}
}
@media(min-width:768px){
.md_hidden{display:none}
.md_flex{display:flex}
.md_w0{width:0}
.md_flex1{flex:1 1 0%}
.md_spaceX5>*+*{margin-left:1.25rem}
.md_items_center{align-items:center}
.md_flexRow{flex-direction:row}
.md_items_baseline{align-items:baseline}
.md_justify_center{justify-content:center}
.md_justify_between{justify-content:space-between}
}
@media(min-width:1024px){
.lg_flexRow{flex-direction:row}
.lg_px10{padding-left:2.5rem;padding-right:2.5rem}
.lg_px8{padding-left:2rem;padding-right:2rem}
.lg_wHalf{width:50%}
.lg_my0{margin-top:0;margin-bottom:0}
.lg_block{display:block}
}
@media(min-width:1280px){
.xl_block{display:block}
.xl_px16{padding-left:4rem;padding-right:4rem}
}
@media(max-width:767px){
.hidden{display:none}
.md_flex{display:none}
h1,.text_42{font-size:28px}
h2{font-size:1.5rem}
.w-72{width:100%}
.m-8{margin:1rem}
.px-8{padding-left:1rem;padding-right:1rem}
.hero_inner{padding-top:3rem;padding-bottom:2.5rem}
.hero_mainImg{aspect-ratio:16/10}
.newsCard_wrap{height:220px}
.cartPanel{max-width:100%}
.cookieBanner{right:0;bottom:0;max-width:100%;width:100%;border-radius:0}
.cookieBanner_inner{border-radius:16px 16px 0 0}
.mr-2.md_hidden{display:inline-flex}
.reviewCard{max-width:100%}
}
@media(max-width:1023px){
.lg_block{display:none}
.xl_block{display:none}
}
