/* =============================================
   VARIABLES & RESET
============================================= */
:root {
  --c-bg: #faf8f5;
  --c-bg2: #f3f0eb;
  --c-text: #2a2520;
  --c-text-mid: #6b6460;
  --c-text-light: #9e9890;
  --c-accent: #b5956a;
  --c-accent-light: #d4bc9a;
  --c-white: #fff;
  --c-border: #e0dbd3;
  --c-coupon-bg: #2a2520;
  --c-coupon-accent: #c9a96e;
  --font-en: 'DM Serif Display', serif;
  --font-jp: 'Noto Sans JP', sans-serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth}
body{background:var(--c-bg);color:var(--c-text);font-family:var(--font-jp);font-weight:300;line-height:1.8;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}

/* =============================================
   UTILITY
============================================= */
.fade-in{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}
.fade-in.visible{opacity:1;transform:none}
.fade-in-left{opacity:0;transform:translateX(-24px);transition:opacity .8s ease,transform .8s ease}
.fade-in-left.visible{opacity:1;transform:none}
.fade-in-right{opacity:0;transform:translateX(24px);transition:opacity .8s ease,transform .8s ease}
.fade-in-right.visible{opacity:1;transform:none}

/* =============================================
   ① FV
============================================= */
.fv{position:relative;width:100%;min-height:100vh;overflow:hidden;display:flex;align-items:flex-end}
.fv-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(42,37,32,.55) 0%,rgba(42,37,32,.08) 60%,transparent 100%)}
.fv-slides{position:absolute;inset:0}
.fv-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.2s ease}
.fv-slide.active{opacity:1}
.fv-body{position:relative;z-index:1;width:100%;padding:0 6% 8vh}
.fv-series{font-family:var(--font-en);font-size:clamp(11px,1.2vw,13px);letter-spacing:.35em;color:rgba(255,255,255,.7);text-transform:uppercase;margin-bottom:1rem}
.fv-title{font-family:var(--font-en);font-size:clamp(46px,7vw,90px);font-weight:300;line-height:1.05;color:#fff;letter-spacing:.04em}
.fv-title em{font-style:italic;font-size:clamp(36px,5.5vw,72px)}
.fv-catch{font-size:clamp(12px,1.3vw,14px);color:rgba(255,255,255,.8);letter-spacing:.15em;margin-top:1.2rem;font-weight:300}
.fv-scroll{position:absolute;bottom:2.5rem;right:6%;display:flex;flex-direction:column;align-items:center;gap:.5rem;color:rgba(255,255,255,.5);font-family:var(--font-en);font-size:10px;letter-spacing:.2em}
.fv-scroll-line{width:1px;height:48px;background:rgba(255,255,255,.3);position:relative;overflow:hidden}
.fv-scroll-line::after{content:'';position:absolute;top:-100%;left:0;width:100%;height:100%;background:rgba(255,255,255,.7);animation:scrollline 2s ease infinite}
@keyframes scrollline{to{top:200%}}

/* =============================================
   ② COUPON
   ★ 差し替えポイント：.coupon-period / .coupon-card-threshold / .coupon-card-discount
   ★ 非表示にする場合：section.coupon-sec に style="display:none" を追記
============================================= */
.coupon-sec{background:var(--c-coupon-bg);padding:3rem 5%}
.coupon-inner{max-width:800px;margin:0 auto;text-align:center}
.coupon-label{font-family:var(--font-en);font-size:13px;letter-spacing:.4em;color:var(--c-coupon-accent);text-transform:uppercase;margin-bottom:.8rem}
.coupon-title{font-size:clamp(20px,3vw,28px);font-weight:400;color:#fff;letter-spacing:.12em;margin-bottom:.4rem}
.coupon-period{font-size:14px;color:rgba(255,255,255,.5);letter-spacing:.1em;margin-bottom:2rem}
.coupon-cards{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap}
.coupon-card{border:1px solid var(--c-coupon-accent);padding:1.5rem 2.5rem;flex:1;min-width:220px;max-width:300px}
.coupon-card-threshold{font-size:16px;letter-spacing:.15em;color:rgba(255,255,255,.5);margin-bottom:.4rem}
.coupon-card-discount{font-family:'DM Serif Display',serif;font-size:clamp(36px,5vw,52px);font-weight:400;color:var(--c-coupon-accent);line-height:1}
.coupon-card-off{font-size:14px;color:var(--c-coupon-accent);letter-spacing:.2em;margin-top:.2rem}
.coupon-note{font-size:13px;color:rgba(255,255,255,.35);margin-top:1.5rem;letter-spacing:.05em}
.btn-coupon{display:inline-block;margin-top:1.2rem;padding:.7rem 1.8rem;background:var(--c-coupon-accent);color:var(--c-coupon-bg);font-size:13px;letter-spacing:.2em;transition:opacity .25s}
.btn-coupon:hover{opacity:.8}

/* =============================================
   SECTION COMMON
============================================= */
.sec{padding:6rem 6%}
.sec-inner{max-width:1100px;margin:0 auto}
.sec-label{font-family:var(--font-en);font-size:11px;letter-spacing:.4em;color:var(--c-accent);text-transform:uppercase;display:block;margin-bottom:.8rem}
.sec-title{font-family:var(--font-en);font-size:clamp(28px,4vw,48px);font-weight:300;letter-spacing:.06em;line-height:1.2;margin-bottom:1.5rem}
.sec-title em{font-style:italic}
.sec-rule{width:40px;height:1px;background:var(--c-accent);margin:1.2rem 0 2rem}

/* =============================================
   ③ SHINE COOL ABOUT
============================================= */
.about-sec{background:var(--c-bg)}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center}
.about-text-body{font-size:14px;color:var(--c-text-mid);line-height:2;margin-bottom:2.5rem}
.about-headline{font-size:clamp(16px,2vw,20px);font-weight:400;letter-spacing:.1em;margin-bottom:1rem;color:var(--c-text)}
.func-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2rem}
.func-item{display:flex;flex-direction:column;align-items:center;text-align:center;padding:1.5rem 1rem;background:var(--c-bg2);border:1px solid var(--c-border)}
.func-icon{width:48px;height:48px;margin-bottom:.8rem;object-fit:contain}
.func-icon-placeholder{width:48px;height:48px;margin-bottom:.8rem;background:var(--c-border);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--c-text-light)}
.func-name{font-size:12px;letter-spacing:.15em;color:var(--c-text);font-weight:400}
.func-desc{font-size:11px;color:var(--c-text-light);margin-top:.3rem;line-height:1.6}
.about-img-wrap{position:relative}
.about-img-wrap img{width:100%;aspect-ratio:3/4;object-fit:cover}
.about-img-deco{position:absolute;top:-1.5rem;left:-1.5rem;width:120px;height:120px;border:1px solid var(--c-accent-light);z-index:-1}

/* =============================================
   ④ RE:EDIT WELLNESS とは
============================================= */
.brand-sec{background:var(--c-bg2);padding:4rem 6%}
.brand-inner{max-width:1000px;margin:0 auto;text-align:center}
.brand-catch{font-family:var(--font-en);font-size:clamp(22px,3vw,32px);font-weight:300;font-style:italic;letter-spacing:.04em;margin-bottom:1.2rem;color:var(--c-text)}
.brand-text{font-size:13px;color:var(--c-text-mid);line-height:2.1;margin-bottom:2rem}
.btn-ghost{display:inline-block;padding:.8rem 2.5rem;border:1px solid var(--c-accent);font-size:12px;letter-spacing:.25em;color:var(--c-accent);transition:background .25s,color .25s}
.btn-ghost:hover{background:var(--c-accent);color:#fff}

/* =============================================
   ⑤ SETUP セクション
============================================= */
.setup-sec{background:var(--c-text);padding:5rem 6%}
.setup-inner{max-width:1000px;margin:0 auto}
.setup-label{font-family:var(--font-en);font-size:11px;letter-spacing:.4em;color:var(--c-coupon-accent);text-transform:uppercase;display:block;margin-bottom:.8rem;text-align:center}
.setup-title{font-family:var(--font-en);font-size:clamp(24px,3.5vw,40px);font-weight:300;letter-spacing:.06em;color:#fff;text-align:center;margin-bottom:.8rem}
.setup-sub{font-size:13px;color:rgba(255,255,255,.55);text-align:center;letter-spacing:.1em;margin-bottom:3rem;line-height:1.9}
.setup-focus{background:rgba(201,169,110,.12);border:1px solid rgba(201,169,110,.35);padding:1.2rem 2rem;text-align:center;margin-bottom:3rem}
.setup-focus p{font-size:13px;color:var(--c-coupon-accent);letter-spacing:.1em}
.setup-focus strong{font-size:15px;font-weight:400}
.setup-items{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.setup-item{text-align:center}
.setup-item-img{aspect-ratio:3/4;background:rgba(255,255,255,.06);overflow:hidden;margin-bottom:.8rem}
.setup-item-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.setup-item:hover .setup-item-img img{transform:scale(1.03)}
.setup-item-name{font-size:12px;color:rgba(255,255,255,.5);letter-spacing:.1em;line-height:1.6}
.setup-item-price{font-family:var(--font-en);font-size:16px;color:rgba(255,255,255,.75);margin-top:.2rem}
.setup-arrow{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:2.5rem}
.setup-arrow-line{flex:1;height:1px;background:rgba(255,255,255,.15)}
.setup-arrow-text{font-size:12px;color:rgba(255,255,255,.4);letter-spacing:.15em;white-space:nowrap}

/* =============================================
   ⑥〜⑨ ITEM セクション
============================================= */
.item-sec{padding:6rem 6%;border-top:1px solid var(--c-border)}
.item-sec:nth-child(even){background:var(--c-bg2)}
.item-inner{max-width:1100px;margin:0 auto}
.item-head{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center;margin-bottom:3rem}
.item-head-left{position:relative;display:flex;align-items:center;justify-content:center}
.item-num{font-family:var(--font-en);font-size:120px;font-weight:300;color:var(--c-border);line-height:1;letter-spacing:-.02em;position:absolute;top:0;left:0;z-index:0}
.item-butori{position:relative;z-index:1;width:80%;margin:0 auto;display:block;object-fit:contain;max-height:400px}
.item-meta{padding-top:0}
.item-code{font-size:13px;color:var(--c-text-light);letter-spacing:.2em;margin-bottom:.4rem}
.item-name{font-size:clamp(15px,1.8vw,20px);font-weight:400;letter-spacing:.08em;line-height:1.5;margin-bottom:.8rem}
.item-price{font-family:var(--font-en);font-size:clamp(20px,2.5vw,28px);font-weight:300;color:var(--c-accent);letter-spacing:.04em;margin-bottom:1.2rem}
.item-desc{font-size:13px;font-weight:400;color:var(--c-text-mid);line-height:2.1;margin-bottom:1.5rem}
.item-setup-note{font-size:12px;font-weight:400;color:var(--c-accent);letter-spacing:.1em;padding:.7rem 1rem;border-left:2px solid var(--c-accent);background:rgba(181,149,106,.06);margin-bottom:1.5rem}
.item-gallery{display:flex;gap:.6rem;margin-bottom:3rem;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:.5rem}
.item-gallery::-webkit-scrollbar{height:3px}
.item-gallery::-webkit-scrollbar-track{background:var(--c-border)}
.item-gallery::-webkit-scrollbar-thumb{background:var(--c-accent-light)}
.item-gallery img{flex:0 0 180px;width:360px;max-width:none;aspect-ratio:3/4;object-fit:contain;background:#d0cdc8}
.color-sec{margin-bottom:2.5rem}
.color-label{font-size:11px;letter-spacing:.2em;color:var(--c-text-light);margin-bottom:1rem;text-transform:uppercase}
.color-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.color-item{text-align:center}
.color-item img{width:100%;aspect-ratio:760/980;object-fit:cover;margin-bottom:.5rem}
.color-swatch{width:100%;aspect-ratio:760/980;margin-bottom:.5rem;display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--c-text-light)}
.color-swatch.black{background:#1a1a1a;color:rgba(255,255,255,.4)}
.color-swatch.offwhite{background:#f5f2ec}
.color-swatch.beige{background:#d4bc9a}
.color-name{font-size:16px;color:var(--c-text-mid);letter-spacing:.12em}
.btn-buy{display:block;width:100%;max-width:480px;padding:1.1rem 2rem;background:var(--c-text);color:#fff;text-align:center;font-size:13px;letter-spacing:.3em;transition:background .25s;margin:1rem auto 0}
.btn-buy:hover{background:#4a4540}
.btn-buy span{font-family:var(--font-jp);font-size:11px;color:rgba(255,255,255,.5);display:block;letter-spacing:.2em;margin-top:.2rem}
/* =============================================
   ⑩ FOOTER
============================================= */
.footer-sec{background:var(--c-text);padding:4rem 6%;text-align:center}
.footer-brand{font-family:var(--font-en);font-size:11px;letter-spacing:.4em;color:rgba(255,255,255,.4);margin-bottom:.6rem}
.footer-logo{font-family:var(--font-en);font-size:clamp(20px,3vw,28px);font-weight:300;font-style:italic;color:#fff;margin-bottom:2rem}
.footer-link{display:inline-block;padding:.8rem 2.5rem;border:1px solid rgba(255,255,255,.25);font-size:12px;letter-spacing:.25em;color:rgba(255,255,255,.7);transition:border-color .25s,color .25s;margin-bottom:3rem}
.footer-link:hover{border-color:rgba(255,255,255,.7);color:#fff}
.footer-copy{font-size:10px;color:rgba(255,255,255,.25);letter-spacing:.15em}

/* =============================================
   RESPONSIVE — SP
============================================= */
@media(max-width:768px){
  .sec{padding:4rem 5%}
  .about-grid{grid-template-columns:1fr;gap:3rem}
  .about-img-wrap{order:-1}
  .about-img-deco{display:none}
  .func-grid{grid-template-columns:1fr 1fr}
  .setup-items{grid-template-columns:repeat(2,1fr)}
  .item-head{grid-template-columns:1fr;gap:1.5rem}
  .item-num{font-size:72px}
  .item-butori{width:70%}
.item-gallery img{flex:0 0 calc(50% - .3rem);aspect-ratio:3/4;object-fit:contain}
  .color-grid{grid-template-columns:repeat(3,1fr);gap:.6rem}
  .btn-buy{max-width:100%}
  .coupon-cards{flex-direction:column;align-items:center}
  .coupon-card{width:100%;max-width:320px}
  .fv-body{padding:0 5% 10vh}
}
@media(max-width:480px){
  .setup-items{grid-template-columns:repeat(2,1fr);gap:.8rem}
  .func-grid{grid-template-columns:1fr 1fr}
  .item-gallery img{flex:0 0 calc(75% - .3rem);aspect-ratio:3/4;object-fit:contain}
}

/* =============================================
   FEATURES セクション
============================================= */
.features-sec{background:var(--c-bg)}
.features-inner{max-width:1000px;margin:0 auto}
.feature-block{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:0;border-top:1px solid var(--c-border)}
.feature-inner{padding:5rem 6%}
.feature-img img{width:100%;height:100%;object-fit:cover;aspect-ratio:1/1;display:block}
.feature-label{font-family:var(--font-en);font-size:11px;letter-spacing:.4em;color:var(--c-accent);text-transform:uppercase;margin-bottom:.8rem}
.feature-heading{font-family:var(--font-en);font-style:italic;font-weight:300;font-size:clamp(22px,3vw,32px);letter-spacing:.06em;line-height:1.4;margin-bottom:1rem}
.feature-sub{font-size:14px;color:var(--c-text-mid);letter-spacing:.1em;margin-bottom:1.5rem}
.feature-body{font-size:14px;color:var(--c-text-mid);line-height:2;margin-bottom:1.5rem}
.feature-footer{font-size:14px;color:var(--c-text-mid);line-height:2;margin-top:2rem}
.feature-footer strong{font-size:18px;color:var(--c-text);font-weight:400}
.feature-caution{font-size:12px;color:var(--c-text-light);line-height:1.9;margin-top:1rem;padding:.8rem 1rem;border-left:2px solid var(--c-border)}
.feature-badge{display:inline-block;border:2px solid var(--c-text);border-radius:50%;width:100px;height:100px;text-align:center;line-height:1.3;font-size:11px;letter-spacing:.1em;padding:14px 0;margin-bottom:1.5rem;font-weight:400}
.feature-badge span{font-family:var(--font-en);font-size:32px;font-weight:300;line-height:1}
.feature-badge small{font-size:16px}
.feature-data{background:var(--c-bg2);padding:1.2rem 1.5rem;margin-bottom:1.5rem}
.feature-data-title{font-size:13px;font-weight:400;letter-spacing:.1em;margin-bottom:.8rem}
.feature-table{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:.8rem}
.feature-table th,.feature-table td{border:1px solid var(--c-border);padding:.4rem .6rem;text-align:center;color:var(--c-text-mid)}
.feature-table th{background:var(--c-bg);font-weight:300}
.feature-note{font-size:11px;color:var(--c-text-light);line-height:1.8}
.upf-badge-wrap{display:flex;align-items:center;gap:1.2rem;background:var(--c-bg2);border:1px solid var(--c-border);padding:.9rem 1.1rem;margin:.8rem 0}
.upf-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;width:72px;height:72px;border:2px solid var(--c-accent);border-radius:50%;text-align:center}
.upf-badge-num{font-family:var(--font-en);font-size:22px;font-weight:300;color:var(--c-text);line-height:1}
.upf-badge-num small{font-size:13px}
.upf-badge-label{font-size:9px;letter-spacing:.1em;color:var(--c-accent);text-transform:uppercase;margin-top:.2rem}
.upf-badge-desc{font-size:12px;color:var(--c-text-mid);line-height:1.9}
.worry-list{list-style:none;margin:1.5rem 0;display:flex;flex-direction:column;gap:.8rem}
.worry-list li{font-size:15px;color:var(--c-text-mid);padding-left:1.8rem;position:relative;letter-spacing:.05em}
.worry-list li::before{content:'✓';position:absolute;left:0;color:var(--c-accent);font-size:13px}
.worry-answer{font-size:15px;color:var(--c-text-mid);margin-top:2rem;line-height:1.9}
.worry-answer strong{font-size:22px;color:var(--c-text);font-weight:400;display:block;margin-top:.3rem}

/* FEATURES SP */
@media(max-width:768px){
  .feature-block{grid-template-columns:1fr}
  .feature-inner{padding:3.5rem 5%}
  .feature-img{order:1}
  .feature-inner{order:0}
}
/* =============================================
   SERIES LINEUP
============================================= */
.series-lineup-sec{padding:5rem 6%;background:var(--c-bg2);border-top:1px solid var(--c-border)}
.series-lineup-inner{max-width:1100px;margin:0 auto;text-align:center}
.series-lineup-title{font-family:var(--font-en);font-size:1.8rem;font-weight:400;letter-spacing:.04em}
.series-lineup-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:1rem}
.series-lineup-card{display:block;text-align:left;background:var(--c-white);border:1px solid var(--c-border);overflow:hidden;transition:opacity .3s ease}
.series-lineup-card:hover{opacity:.8}
.series-lineup-img{width:100%;height:0;padding-top:58.18%;background-size:cover;background-position:center}
.series-lineup-name{font-family:var(--font-en);font-size:1rem;letter-spacing:.03em;padding:.9rem 1rem 0}
.series-lineup-desc{font-size:.78rem;line-height:1.7;color:var(--c-text-mid);padding:.4rem 1rem 1.1rem}
.series-lineup-sec .footer-link{border-color:var(--c-text);color:var(--c-text)}
.series-lineup-sec .footer-link:hover{border-color:var(--c-accent);color:var(--c-accent)}

@media (max-width:768px){
  .series-lineup-sec{padding:3.5rem 6%}
  .series-lineup-grid{grid-template-columns:1fr;gap:1.2rem}
}