/* =========================================================
   Beauty Salon Lulumili LP ─ Rococo骨格 × 前回LPの綺麗さ
========================================================= */
:root{
  --ivory:#FAF6F0;--cream:#F5EBDB;--champ1:#F7ECD6;--champ2:#FBF6EC;
  --white:#fff;--paper:#FFFDF9;
  --gold:#C79A42;--gold-deep:#A87E2E;--gold-soft:#E2CB90;--gold-line:rgba(199,154,66,.42);
  --ink:#463C34;--brown:#4A3F38;--muted:#7C6C60;--rose:#B86E77;--line:#06C755;
  --shadow:0 12px 30px rgba(74,63,56,.12);
  --serif:"Hiragino Mincho ProN","Yu Mincho",YuMincho,"Noto Serif JP",serif;
  --sans:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic Medium","Yu Gothic",Meiryo,sans-serif;
  --num:"Baskervville","Noto Serif JP",serif;
  --script:"Cormorant Garamond","Noto Serif JP",serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:hidden}
body{min-width:320px;background:var(--ivory);color:var(--ink);font-family:var(--sans);line-height:1.8;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit}
em{font-style:normal;color:var(--gold-deep)}
.ic{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

[data-variant-show]{display:none}
body[data-variant="volume"] [data-variant-show="volume"]{display:block}
body[data-variant="mama"] [data-variant-show="mama"]{display:block}
body[data-variant="volume"] ul[data-variant-show="volume"]{display:grid}
body[data-variant="mama"] ul[data-variant-show="mama"]{display:grid}

/* ---------- CTA ---------- */
.cta{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;max-width:400px;min-height:58px;margin:22px auto 0;border-radius:999px;background:var(--line);color:#fff;text-decoration:none;font-weight:800;font-size:17px;letter-spacing:.04em;box-shadow:0 10px 22px rgba(6,199,85,.32);animation:ctaPulse 1.5s ease-in-out infinite;will-change:transform}
.cta__ic{width:23px;height:23px;flex-shrink:0}
.cta:hover{box-shadow:0 16px 34px rgba(6,199,85,.5)}
.cta:active{transform:scale(.985)}
@keyframes ctaPulse{0%,100%{transform:scale(1);box-shadow:0 10px 22px rgba(6,199,85,.32)}50%{transform:scale(1.05);box-shadow:0 18px 38px rgba(6,199,85,.55)}}
@keyframes ctaGlow{0%,100%{box-shadow:0 10px 22px rgba(6,199,85,.3)}50%{box-shadow:0 18px 40px rgba(6,199,85,.62)}}
@media(prefers-reduced-motion:reduce){.cta{animation:ctaGlow 1.5s ease-in-out infinite}}
.sticky{position:fixed;left:0;right:0;bottom:0;z-index:60;padding:9px 14px calc(9px + env(safe-area-inset-bottom));background:linear-gradient(to top,rgba(250,246,240,.98),rgba(250,246,240,.8));backdrop-filter:blur(8px);transform:translateY(130%);transition:transform .28s ease}
.sticky.is-visible{transform:translateY(0)}
.cta--sticky{margin:0 auto;min-height:52px;font-size:16px}

/* ---------- 共通セクション ---------- */
.sec{position:relative;padding:44px 20px 46px}
.sec>*{max-width:520px;margin-left:auto;margin-right:auto}
.sec--cream{background:linear-gradient(180deg,var(--champ2),var(--cream))}
.sec__script{font-family:var(--script);font-style:italic;font-weight:600;font-size:30px;letter-spacing:.06em;line-height:1.05;color:var(--gold-deep);text-align:center;margin-bottom:4px}
.sec__title{font-family:var(--serif);font-weight:600;font-size:clamp(23px,6vw,30px);line-height:1.6;letter-spacing:.04em;text-align:center;margin-bottom:22px;text-wrap:balance}
.sec__title em{color:var(--gold-deep)}
.sec__lead{margin:0 auto 8px}
.sec__lead p{font-size:15.5px;line-height:2;text-align:center}
.sec__lead strong{color:var(--gold-deep);font-weight:700}

/* =========================================================
   S1. FV(バナー)
========================================================= */
.fv{position:relative;overflow:hidden;padding:0 0 24px;background:linear-gradient(180deg,#F7EDD9 0%,#F6EAD2 42%,var(--ivory) 78%)}
.fv__bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px 10px}
.fv__logo{width:150px;height:auto}
.fv__station{display:inline-flex;align-items:center;gap:4px;color:var(--gold-deep);font-size:12px;font-weight:700;white-space:nowrap}
.fv__station .ic{width:17px;height:17px}
.fv__station b{font-family:inherit;font-weight:700;font-size:14px;margin:0 1px}
.fv__banner{width:100%;max-width:760px;margin:0 auto;-webkit-mask-image:linear-gradient(180deg,#000 88%,transparent 100%);mask-image:linear-gradient(180deg,#000 88%,transparent 100%)}
.fv__offer{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:5px 12px;max-width:520px;margin:6px auto 0;padding:9px 14px;background:linear-gradient(180deg,#FFFDF8,#FFF7E7);border:1.5px solid var(--gold-soft);border-radius:14px;box-shadow:0 5px 14px rgba(199,154,66,.12);font-size:14px;color:var(--brown)}
.fv__offer-normal s{color:var(--muted)}
.fv__offer-arrow{color:var(--gold-deep);font-weight:700}
.fv__offer-price b{font-family:var(--serif);font-size:22px;font-weight:700;color:var(--gold);margin:0 2px}
.fv__offer-price small{font-size:11px;color:var(--muted)}
.fv__offer-limit{width:100%;text-align:center;font-size:12.5px;color:var(--rose);font-weight:700;border-top:1px dashed var(--gold-soft);padding-top:6px}
.fv__offer-limit em{font-family:var(--serif);font-size:15px;font-style:normal}
.fv__offer,.fv>.cta{width:calc(100% - 40px)}
.fv__badges{list-style:none;max-width:640px;margin:14px auto 0;grid-template-columns:repeat(3,1fr);gap:8px}
.fv__badges li{background:#fff;border:1.5px solid var(--gold);border-radius:14px;text-align:center;padding:9px 4px 8px;box-shadow:0 5px 14px rgba(74,63,56,.1)}
.fv__badges small,.fv__badges span{display:block;font-size:9.5px;line-height:1.3;color:var(--muted)}
.fv__badges b{display:block;font-family:var(--serif);font-size:19px;font-weight:700;color:var(--gold-deep);line-height:1.1;margin:1px 0}
.fv__micro{text-align:center;font-size:11.5px;color:var(--muted);margin-top:12px}

/* =========================================================
   S2. 選ばれる理由(アイコン)
========================================================= */
.reason{background:var(--white);padding:34px 20px 38px;text-align:center}
.reason__icons{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-width:460px;margin:0 auto}
.reason__icons li{display:flex;flex-direction:column;align-items:center;gap:9px}
.reason__badge{width:64px;height:64px;border-radius:50%;background:linear-gradient(145deg,#FBEFD3,#F3E1B4);border:1px solid var(--gold-soft);display:flex;align-items:center;justify-content:center;box-shadow:0 5px 12px rgba(199,154,66,.18)}
.reason__badge .ic{width:30px;height:30px;color:var(--gold-deep);stroke-width:1.5}
.reason__t{font-size:11.5px;font-weight:700;color:var(--ink);line-height:1.3}
.reason__lead{font-family:var(--serif);font-size:17px;line-height:1.9;margin-top:24px}
.reason__lead strong{color:var(--gold-deep);font-size:19px}

/* =========================================================
   S3. 悩みチェック(薄ゴールド・清潔感)
========================================================= */
.worry{background:linear-gradient(180deg,#FBF4E4,#F3E7CC)}
.worry .sec__script{color:var(--gold-soft)}
.worry__list{list-style:none;display:grid;gap:11px;max-width:460px;margin:0 auto}
.worry__list li{position:relative;background:#fff;border:1px solid var(--gold-line);border-radius:10px;padding:15px 16px 15px 48px;font-size:15px;line-height:1.6;box-shadow:0 4px 12px rgba(74,63,56,.05)}
.worry__list li::before{content:"✓";position:absolute;left:16px;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:50%;background:var(--gold);color:#fff;font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center}
.worry__list em{color:var(--gold-deep);font-weight:700}
body[data-variant="mama"] .worry__list li.worry--mama{order:-1}

/* =========================================================
   S4. 解消
========================================================= */
.solve{position:relative;background:linear-gradient(180deg,#fff,var(--champ2));padding:38px 20px 42px;text-align:center}
.solve__lead{color:var(--muted);font-size:14px;letter-spacing:.06em}
.solve__title{font-family:var(--serif);font-weight:600;font-size:clamp(20px,5.4vw,26px);line-height:1.6;margin:6px 0 24px}
.solve__title em{color:var(--gold-deep)}
.solve__chips{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:9px;max-width:440px;margin:0 auto}
.solve__chips li{background:#fff;border:1px solid var(--gold-soft);color:var(--gold-deep);font-size:13.5px;font-weight:700;border-radius:999px;padding:9px 16px;box-shadow:0 4px 10px rgba(199,154,66,.12)}

/* =========================================================
   S5/S8.5 オファーカード(前回LPデザイン)
========================================================= */
.offer{text-align:center}
.offer-card{position:relative;max-width:500px;margin:0 auto;overflow:hidden;text-align:center;background:radial-gradient(circle at 8% 7%,rgba(255,255,255,.98),transparent 28%),linear-gradient(180deg,#FFFDF8 0%,#fff 54%,#FFF9EA 100%);border:1.5px solid rgba(199,154,66,.55);border-radius:18px;padding:66px 16px 18px;box-shadow:var(--shadow)}
.offer-card::before,.offer-card::after{content:"";position:absolute;width:190px;height:190px;border:1px solid rgba(199,154,66,.22);border-radius:50%;pointer-events:none}
.offer-card::before{top:-92px;right:-92px}
.offer-card::after{bottom:-108px;left:-108px}
.offer-card__ribbon{position:absolute;left:50%;top:16px;transform:translateX(-50%);min-width:210px;background:linear-gradient(180deg,#D8B45F,var(--gold));color:#fff;border-radius:999px;padding:6px 18px;font-family:var(--serif);font-size:18px;font-weight:700;letter-spacing:.12em;box-shadow:0 5px 12px rgba(199,154,66,.24)}
.offer-card__course{position:relative;z-index:1;margin-top:6px;font-family:var(--serif);color:var(--gold-deep);font-size:33px;line-height:1.35;font-weight:700;letter-spacing:.04em;padding-bottom:12px;border-bottom:1px solid rgba(199,154,66,.45)}
.offer-card__time{position:relative;z-index:1;margin-top:12px;font-family:var(--serif);font-size:21px;color:var(--brown);letter-spacing:.06em}
.offer-card__limit{position:relative;z-index:1;display:inline-block;margin:12px auto 0;padding:5px 16px;background:rgba(184,110,119,.1);border:1px solid rgba(184,110,119,.4);border-radius:999px;font-size:14px;font-weight:700;color:var(--rose);letter-spacing:.03em}
.offer-card__limit b{font-family:var(--serif);font-size:19px;color:var(--rose);margin:0 3px}
.offer-card__price{position:relative;z-index:1;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin:12px auto;width:min(100%,410px)}
.offer-card__price span{font-family:var(--serif);color:var(--gold-deep);font-size:22px;line-height:1.3;font-weight:700;padding-right:10px;border-right:1px solid rgba(199,154,66,.55)}
.offer-card__price strong{font-family:var(--serif);color:var(--gold);font-size:60px;line-height:1;font-weight:700;text-align:center}
.offer-card__price small{font-family:var(--sans);color:var(--muted);font-size:13px;font-weight:700;white-space:nowrap}
.offer-card__tags{position:relative;z-index:1;display:flex;justify-content:center;gap:14px;margin:6px auto 14px}
.offer-card__tags span{font-size:12.5px;font-weight:600;color:var(--muted)}
.offer-card__tags span::before{content:"✓";color:var(--gold);font-weight:800;margin-right:4px}
.offer-card__compare{position:relative;z-index:1;display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;width:min(100%,430px);margin:0 auto 12px}
.offer-card__compare span{display:flex;flex-direction:column;align-items:center;gap:3px;border:1px solid rgba(199,154,66,.38);background:rgba(255,255,255,.9);border-radius:8px;padding:9px 6px}
.offer-card__compare small{font-size:11px;font-weight:700;color:var(--muted)}
.offer-card__compare b{color:var(--gold);font-size:20px}
.offer-card__compare .limited{border-color:rgba(199,154,66,.7);background:#FFF7E6}
.offer-card__compare .normal s{color:var(--muted);font-family:var(--serif);font-size:21px;font-weight:700;text-decoration-thickness:2px}
.offer-card__compare .limited strong{color:var(--gold);font-family:var(--serif);font-size:25px;font-weight:700}
.offer__note{font-size:12px;color:var(--muted);margin-top:12px}
@media(max-width:390px){
  .offer-card{padding-left:12px;padding-right:12px}
  .offer-card__course{font-size:28px}
  .offer-card__time{font-size:19px}
  .offer-card__price span{font-size:20px}
  .offer-card__price strong{font-size:52px}
}

/* =========================================================
   S6. 理論
========================================================= */
.concept .sec__title{margin-bottom:18px}
.pyramid{display:block;width:100%;max-width:400px;margin:18px auto;border-radius:20px;box-shadow:0 6px 20px rgba(74,63,56,.08)}

/* =========================================================
   S7. 比較表
========================================================= */
.compare__scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:6px;max-width:520px}
.compare__table{border-collapse:separate;border-spacing:0;width:100%;min-width:480px;background:#fff;border-radius:14px;overflow:hidden;box-shadow:var(--shadow);font-size:13px}
.compare__table th,.compare__table td{text-align:center;padding:12px 6px;border-bottom:1px solid #F0E6D4}
.compare__table thead th{background:#EFE3CC;font-family:var(--serif);font-size:12.5px;line-height:1.35;color:var(--ink);font-weight:600}
.compare__table tbody th{background:#F8F1E4;text-align:left;padding-left:12px;font-weight:700;font-size:12.5px;white-space:nowrap}
.compare__table td{font-size:18px;color:var(--muted)}
.compare__table .is-ours{background:linear-gradient(180deg,#FBF2DC,#F6E9CB)}
.compare__table thead .is-ours{background:var(--gold);color:#fff}
.compare__table td.is-ours{color:var(--gold-deep);font-weight:700}
.compare__table tbody tr:last-child th,.compare__table tbody tr:last-child td{border-bottom:none}
.compare__note{font-size:12.5px;color:var(--muted);text-align:center;line-height:1.8;margin-top:16px}

/* =========================================================
   S8. メソッド
========================================================= */
.method__item{background:#fff;border:1px solid var(--gold-line);border-radius:18px;overflow:hidden;box-shadow:0 6px 18px rgba(74,63,56,.07);margin-bottom:20px}
.method__photo{position:relative;height:200px}
.method__photo img{width:100%;height:100%;object-fit:cover}
.method__num{position:absolute;left:14px;bottom:2px;font-family:var(--num);font-size:52px;line-height:.9;color:#fff;text-shadow:0 2px 10px rgba(74,63,56,.5)}
.method__body{padding:22px 20px}
.method__body h3{font-family:var(--serif);font-size:19px;font-weight:600;color:var(--ink);letter-spacing:.03em;margin-bottom:8px;position:relative;padding-left:14px}
.method__body h3::before{content:"";position:absolute;left:0;top:6px;bottom:4px;width:4px;border-radius:2px;background:var(--gold)}
.method__body p{font-size:14px;color:var(--muted);line-height:1.85}
@media(min-width:640px){
  .method__item{display:grid;grid-template-columns:1fr 1fr;align-items:center}
  .method__photo{height:100%;min-height:220px}
  .method__item--rev .method__photo{order:2}
}

/* =========================================================
   S9. お客様の声
========================================================= */
.rating{background:#fff;border:1px solid var(--gold-line);border-radius:14px;padding:16px 14px;margin-bottom:22px;text-align:center}
.rating p{display:flex;align-items:baseline;justify-content:center;gap:8px;margin-bottom:4px}
.rating__stars{color:var(--gold);font-size:14px;letter-spacing:2px}
.rating b{font-family:var(--num);font-size:26px;color:var(--rose);line-height:1}
.rating__src{font-size:12px;color:var(--muted)}
.rating__note{font-size:10.5px;color:var(--muted)}
.voice-card{background:#fff;border-radius:16px;box-shadow:0 6px 18px rgba(74,63,56,.08);padding:18px;margin-bottom:18px;border:1px solid #F0E6D4}
.voice-card__label{font-family:var(--serif);font-size:16px;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:10px;margin-bottom:12px}
.voice-card__label span{font-family:var(--num);font-size:12px;color:#fff;background:var(--gold);border-radius:6px;padding:2px 9px;letter-spacing:.06em}
.voice-card__ba{border-radius:12px;overflow:hidden;background:#F5EEE2}
.voice-card__ba img{width:100%;height:auto}
.voice-card__ba-note{font-size:10.5px;color:var(--muted);margin:6px 0 12px;text-align:center}
.voice-card__body{font-size:14.5px;line-height:1.9}
.voice-card__foot{font-size:11px;color:var(--muted);text-align:right;margin-top:8px}

/* =========================================================
   S10. 施術の流れ(写真つき)
========================================================= */
.flow__list{list-style:none}
.flow__list li{background:#fff;border:1px solid var(--gold-line);border-radius:16px;padding:18px;margin-bottom:16px;box-shadow:0 5px 14px rgba(74,63,56,.06)}
.flow__head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.flow__step{flex-shrink:0;width:54px;height:54px;border-radius:50%;background:linear-gradient(145deg,#FBEFD3,#F3E1B4);border:1px solid var(--gold-soft);display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--num);font-size:22px;color:var(--gold-deep);line-height:1}
.flow__step small{font-family:var(--sans);font-size:8px;letter-spacing:.1em;color:var(--gold)}
.flow__head h3{font-family:var(--serif);font-size:17px;font-weight:600;letter-spacing:.03em}
.flow__photo{width:220px;max-width:70%;aspect-ratio:4/5;margin:0 auto 12px;border-radius:10px;overflow:hidden;background:#EFE6D6}
.flow__photo img,.flow__photo video{width:100%;height:100%;object-fit:cover;display:block}
.flow__list p{font-size:13.5px;color:var(--muted);line-height:1.85}
.flow__note{text-align:center;font-size:12.5px;color:var(--muted);line-height:1.9;margin-top:6px}

/* =========================================================
   S11. 施術者紹介
========================================================= */
.therapist{background:linear-gradient(180deg,#fff,var(--ivory))}
.therapist .sec__title{color:var(--gold-deep)}
.profile{background:#fff;border:1px solid var(--gold-line);border-radius:20px;padding:28px 20px 24px;box-shadow:var(--shadow)}
.profile__logo{width:130px;height:130px;border-radius:50%;margin:0 auto 14px;background:#fff;border:1px solid var(--gold-soft);display:flex;align-items:center;justify-content:center}
.profile__logo img{width:72%;height:72%;object-fit:contain}
.profile__role{text-align:center;color:var(--gold-deep);font-weight:800;font-size:13px;letter-spacing:.06em;margin-bottom:18px}
.profile__text p{font-size:15px;line-height:1.95;margin-bottom:13px}
.profile__close{margin-top:16px;padding-top:16px;border-top:1px solid var(--gold-line);text-align:center;font-family:var(--serif);font-size:16.5px;font-weight:600;line-height:1.9}
.salon__photos{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px auto 14px}
.salon__photos img{width:100%;height:140px;object-fit:cover;border-radius:12px}
.salon__points{list-style:none;display:grid;gap:10px}
.salon__points li{background:#fff;border:1px solid var(--gold-line);border-radius:12px;padding:14px 16px;font-size:13px;color:var(--muted);line-height:1.6;text-align:left}
.salon__points b{display:block;font-family:var(--serif);font-size:15px;color:var(--ink);margin-bottom:2px}

/* =========================================================
   S12. FAQ
========================================================= */
.faq__list details{background:#fff;border:1px solid var(--gold-line);border-radius:12px;margin-bottom:10px;overflow:hidden}
.faq__list summary{display:flex;align-items:baseline;gap:12px;padding:15px 46px 15px 16px;font-size:14.5px;font-weight:600;line-height:1.6;cursor:pointer;list-style:none;position:relative}
.faq__list summary::-webkit-details-marker{display:none}
.faq__list summary span{font-family:var(--num);font-size:19px;color:var(--gold);flex-shrink:0}
.faq__list summary::after{content:"+";position:absolute;right:16px;top:14px;font-family:var(--num);font-size:22px;color:var(--gold)}
.faq__list details[open] summary::after{content:"−"}
.faq__list p{padding:0 16px 16px 44px;font-size:13.5px;color:var(--muted);line-height:1.9}

/* =========================================================
   S13. アクセス
========================================================= */
.access__photos{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.access__photos img{width:100%;height:130px;object-fit:cover;border-radius:12px;border:1px solid var(--gold-line)}
.access__card{background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:22px 20px}
.access__name{text-align:center;font-family:var(--num);font-size:19px;color:var(--gold-deep);letter-spacing:.06em;margin-bottom:14px}
.access__name span{display:block;font-family:var(--sans);font-size:11px;color:var(--muted);letter-spacing:.14em;margin-top:2px}
.access__info div{display:flex;gap:12px;padding:10px 0;border-top:1px solid #F0E6D4}
.access__info dt{flex-shrink:0;width:62px;font-size:12.5px;font-weight:700;color:var(--gold-deep)}
.access__info dd{font-size:13.5px;line-height:1.75}
.access__map{display:flex;align-items:center;justify-content:center;gap:8px;width:fit-content;margin:16px auto 0;border:1px solid var(--gold);border-radius:999px;padding:9px 22px;font-size:13.5px;color:var(--gold-deep);text-decoration:none}
.access__map .ic{width:18px;height:18px}
.access__note{text-align:center;font-size:13px;color:var(--muted);margin-top:14px}

.footer{text-align:center;padding:34px 20px calc(96px + env(safe-area-inset-bottom))}
.footer__logo{width:150px;margin:0 auto 8px;opacity:.9}
.footer__copy{font-size:11px;color:var(--muted)}
