/* =========================================================
   大輔 個別セッションLP
   Design: Blue × Gold / 現実感70% × 宇宙30% / Mobile First
   ========================================================= */

:root{
  --deep-navy:#071426;
  --royal-blue:#0B4C9A;
  --ocean-cyan:#14B8D4;
  --gold:#D7A72C;
  --warm-gold:#F1C766;
  --off-white:#F7F8FA;
  --body-dark:#0C1524;
  --muted-text:#AAB5C4;

  --line-light:#E2E7EE;
  --line-dark:rgba(215,167,44,.28);

  --font-sans:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;
  --font-serif:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",YuMincho,serif;

  --wrap:720px;
  --wrap-wide:1040px;
  --pad:22px;
}

*,*::before,*::after{box-sizing:border-box}

html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  margin:0;
  font-family:var(--font-sans);
  font-size:16.5px;
  line-height:1.9;
  color:var(--body-dark);
  background:#fff;
  letter-spacing:.02em;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;height:auto;display:block}
a{color:inherit}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad)}
.wrap-wide{width:100%;max-width:var(--wrap-wide);margin-inline:auto;padding-inline:var(--pad)}

.pc{display:none}
.sp{display:inline}
@media (min-width:768px){
  .pc{display:inline}
  .sp{display:none}
}

/* ---------- Sections ---------- */
.sec{padding:64px 0;position:relative}
.sec--tight{padding:48px 0}
.sec--white{background:#fff}
.sec--light{background:var(--off-white)}
.sec--navy{background:var(--deep-navy);color:#E8EDF4}
.sec--navy p{color:#D2DAE5}

.sec p{margin:0 0 1.15em}
.sec p:last-child{margin-bottom:0}

@media (min-width:768px){
  .sec{padding:96px 0}
  .sec--tight{padding:72px 0}
  body{font-size:17px}
}

/* ---------- Headings ---------- */
.h2{
  font-family:var(--font-serif);
  font-weight:700;
  font-size:clamp(21px,5.6vw,30px);
  line-height:1.55;
  letter-spacing:.01em;
  margin:0 0 1.4em;
  padding-bottom:.7em;
  position:relative;
  color:var(--deep-navy);
}
.h2::after{
  content:"";
  position:absolute;left:0;bottom:0;
  width:56px;height:3px;
  background:linear-gradient(90deg,var(--gold),var(--warm-gold));
  border-radius:2px;
}
.h2--onDark{color:#fff}
.h2--sm{font-size:clamp(19px,4.6vw,24px)}

.eyebrow{
  font-size:12px;font-weight:700;letter-spacing:.2em;
  color:var(--royal-blue);
  margin:0 0 .8em !important;
}
.sec--navy .eyebrow{color:var(--warm-gold)}

.sec--relief{background:linear-gradient(180deg,#fff 0%,#FAFBFD 100%)}

.insight{
  list-style:none;margin:1.6em 0;padding:0 0 0 18px;
  border-left:3px solid var(--gold);
}
.insight li{
  font-family:var(--font-serif);font-weight:700;
  font-size:clamp(17px,4.4vw,21px);line-height:1.75;
  color:var(--royal-blue);margin:0 0 .6em;
}
.insight li:last-child{margin-bottom:0}

/* ---------- Text blocks ---------- */
.voice{
  list-style:none;
  margin:0 0 1.4em;padding:0 0 0 16px;
  border-left:2px solid rgba(11,76,154,.25);
}
.voice li{margin:0 0 .5em;color:#324256}
.voice li:last-child{margin-bottom:0}
.voice--lg li{font-size:1.02em;font-weight:500}
.voice--onDark{border-left-color:var(--line-dark)}
.voice--onDark li{color:#BECBDA}

.pull{
  font-family:var(--font-serif);
  font-weight:700;
  font-size:clamp(18px,4.6vw,23px);
  line-height:1.7;
  color:var(--royal-blue);
  margin:1.4em 0 1.2em !important;
}
.pull--sm{font-size:clamp(17px,4vw,20px)}
.pull--onDark{color:var(--warm-gold) !important}
.pull--hero{color:#fff !important;font-size:clamp(20px,5.4vw,27px)}

.keyphrase{
  font-family:var(--font-serif);
  font-weight:700;
  font-size:clamp(20px,5.2vw,27px);
  line-height:1.65;
  text-align:center;
  color:var(--warm-gold) !important;
  background:linear-gradient(180deg,rgba(215,167,44,.09),rgba(215,167,44,.03));
  border-top:1px solid var(--line-dark);
  border-bottom:1px solid var(--line-dark);
  padding:.9em .6em;
  margin:1.6em 0 !important;
}
.keyphrase--light{
  color:var(--royal-blue) !important;
  background:linear-gradient(180deg,rgba(11,76,154,.06),rgba(11,76,154,.02));
  border-color:rgba(11,76,154,.2);
}
.keyphrase--name{letter-spacing:.06em}

.gold{color:var(--warm-gold)}
.sec--white .gold,.sec--light .gold{color:#A97F12}

.note{
  font-size:13.5px;line-height:1.8;
  color:#6A7889;
  margin-top:1.6em !important;
}
.note--onDark{color:var(--muted-text)}
.note a{color:var(--warm-gold)}
.lead-note{
  font-size:14.5px;color:#5A6878;
  background:rgba(11,76,154,.05);
  border-left:3px solid var(--royal-blue);
  padding:.9em 1em;border-radius:0 6px 6px 0;
  margin-bottom:1.8em !important;
}

.checklist{
  list-style:none;margin:0 0 1.4em;padding:0;
}
.checklist li{
  position:relative;
  padding:.55em 0 .55em 28px;
  font-weight:700;
  font-size:1.02em;
  border-bottom:1px dashed var(--line-light);
}
.checklist li::before{
  content:"";position:absolute;left:4px;top:1.15em;
  width:8px;height:8px;border-radius:50%;
  background:var(--gold);
}

/* ---------- HERO ---------- */
.hero{
  position:relative;
  overflow:hidden;
  background:var(--deep-navy);
  padding:72px 0 72px;
  color:#EAF1F8;
}
.hero__bg{position:absolute;inset:0;z-index:0}
.hero__bg img{width:100%;height:100%;object-fit:cover;object-position:center}
.hero__veil{
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(180deg,rgba(7,20,38,.82) 0%,rgba(7,20,38,.74) 45%,rgba(7,20,38,.93) 100%);
}
.hero__inner{position:relative;z-index:2}

.hero__h1{
  font-family:var(--font-serif);
  font-weight:700;
  font-size:clamp(22px,6.1vw,38px);
  line-height:1.55;
  letter-spacing:0;
  margin:0 0 1.3em;
  color:#fff;
  text-shadow:0 2px 18px rgba(0,0,0,.45);
}
.hero__brand{display:block;width:48px;margin:0 0 22px}
.hero__brand img{width:48px;height:48px;border-radius:50%;border:1px solid rgba(241,199,102,.5);object-fit:cover}
.hero__to{
  font-size:13.5px;line-height:1.7;letter-spacing:.06em;
  color:var(--warm-gold);opacity:.95;
  margin:0 0 1.1em;
}
.hero__sub{
  font-size:16.5px;line-height:1.85;font-weight:500;
  color:var(--warm-gold);
  margin:0 0 1.8em;padding-left:14px;
  border-left:2px solid rgba(241,199,102,.5);
}
.hero__insight{
  list-style:none;margin:1.5em 0;padding:0 0 0 16px;
  border-left:2px solid var(--warm-gold);
}
.hero__insight li{
  font-family:var(--font-serif);font-weight:700;
  font-size:clamp(16px,4.2vw,19.5px);line-height:1.75;
  color:var(--warm-gold);margin:0 0 .55em;
}
.hero__insight li:last-child{margin-bottom:0}
.hero__relief{
  font-family:var(--font-serif);font-weight:700;
  font-size:clamp(18px,4.8vw,23px);line-height:1.6;
  color:#fff !important;margin-top:1.4em !important;
}
.hero__link{
  display:inline-flex;align-items:center;gap:.4em;
  margin-top:2em;color:var(--warm-gold);
  font-weight:700;font-size:15px;text-decoration:none;
  border-bottom:1px solid rgba(241,199,102,.45);padding-bottom:3px;
  transition:border-color .2s ease;
}
.hero__link:hover,.hero__link:focus-visible{border-bottom-color:var(--warm-gold)}
.hero__body p{margin:0 0 1.1em;color:#CFDBE8;font-size:16px}
.hero__body .voice{border-left-color:rgba(241,199,102,.4)}
.hero__body .voice li{color:#BDCBDA}
@media (min-width:768px){
  .hero{padding:120px 0 110px}
  .hero__body p{font-size:17px}
  .hero__sub{font-size:17.5px}
}

/* ---------- Band image ---------- */
.band{margin:48px 0 0;padding:0}
.band img{width:100%;max-height:340px;object-fit:cover}
@media (min-width:768px){.band img{max-height:420px}}

/* ---------- Mechanism ---------- */
.mech{position:relative;margin:44px auto;padding:0;max-width:var(--wrap-wide)}
.mech__bg{display:block;border-radius:10px;overflow:hidden}
.mech__bg img{width:100%;height:100%;object-fit:cover;min-height:400px}
.mech__veil{
  position:absolute;inset:0;border-radius:10px;
  background:linear-gradient(180deg,rgba(7,20,38,.78),rgba(7,20,38,.88));
}
.mech__items{
  position:absolute;inset:0;
  display:flex;flex-direction:column;justify-content:center;gap:14px;
  list-style:none;margin:0;padding:26px 22px;
}
.mech__items li{
  color:#E4EBF3;
  font-size:clamp(15px,4vw,19px);
  font-weight:500;
  line-height:1.6;
  padding-left:22px;position:relative;
  text-shadow:0 1px 10px rgba(0,0,0,.5);
}
.mech__items li::before{
  content:"";position:absolute;left:0;top:.62em;
  width:9px;height:9px;transform:rotate(45deg);
  background:var(--ocean-cyan);
}
.mech__items li.is-key{
  font-family:var(--font-serif);
  font-weight:700;
  color:var(--warm-gold);
  font-size:clamp(18px,5vw,25px);
  margin-top:8px;padding-top:16px;
  border-top:1px solid var(--line-dark);
}
.mech__items li.is-key::before{background:var(--gold);top:1.25em}
@media (min-width:768px){
  .mech__items{padding:40px 56px;gap:18px}
  .mech__bg img{min-height:440px}
}

/* ---------- Steps ---------- */
.steps{list-style:none;margin:36px 0 0;padding:0;counter-reset:s}
.steps li{
  position:relative;
  background:#fff;
  border:1px solid var(--line-light);
  border-left:4px solid var(--royal-blue);
  border-radius:8px;
  padding:20px 20px 18px;
  margin-bottom:14px;
}
.steps__no{
  display:inline-block;
  font-family:var(--font-serif);
  font-size:13px;font-weight:700;letter-spacing:.12em;
  color:var(--gold);
  margin-bottom:2px;
}
.steps__t{
  font-family:var(--font-serif);
  font-size:20px;font-weight:700;
  margin:0 0 .3em;color:var(--deep-navy);
}
.steps__d{margin:0 !important;font-size:15.5px;color:#4A5A6E}
@media (min-width:768px){
  .steps{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .steps li{margin-bottom:0}
}

/* ---------- Quote (text testimonial) ---------- */
.quote{
  margin:1.6em 0;padding:22px 20px;
  background:linear-gradient(180deg,rgba(11,76,154,.05),rgba(11,76,154,.02));
  border:1px solid rgba(11,76,154,.16);
  border-radius:10px;
  position:relative;
}
.quote__main{
  font-family:var(--font-serif);
  font-weight:700;
  font-size:clamp(18px,4.6vw,22px);
  line-height:1.7;
  color:var(--royal-blue);
  margin:0 0 .6em !important;
}
.quote__main + .quote__main{margin-top:-.2em !important}
.quote__src{font-size:12.5px;color:#7A8798;font-style:normal}

/* ---------- Voice card (real screenshots) ---------- */
.vcard{
  background:#fff;
  border:1px solid var(--line-light);
  border-radius:12px;
  padding:22px 18px;
  margin-bottom:24px;
  box-shadow:0 2px 14px rgba(7,20,38,.05);
}
.vcard__sum ul{margin:0 0 20px;padding:0 0 0 20px}
.vcard__sum li{margin-bottom:.5em;font-size:15.5px;line-height:1.85;color:#2C3B4E}
.vcard__sum li::marker{color:var(--gold)}
.vcard__sum li:last-child{margin-bottom:0}
.vcard__label{
  font-size:12.5px;font-weight:700;letter-spacing:.14em;
  color:var(--royal-blue);margin:0 0 .5em !important;
}
.vcard__sum ul + .vcard__label{margin-top:1.4em !important}
.vcard__shots{display:grid;gap:12px}
.vcard__shot{margin:0}
.vcard__shot img{
  width:100%;max-width:400px;margin-inline:auto;
  border:1px solid var(--line-light);border-radius:8px;
}
.vcard__shot figcaption{
  margin-top:10px;text-align:center;
  font-size:12.5px;color:#7A8798;
}
@media (min-width:860px){
  .vcard{display:grid;grid-template-columns:1fr 360px;gap:28px;align-items:start;padding:28px}
  .vcard__sum ul{margin-bottom:0}
}

/* ---------- Cosmic sections (Ana / Founder / Final) ---------- */
.sec--cosmic,.sec--founder,.sec--final{
  position:relative;background:var(--deep-navy);color:#E8EDF4;overflow:hidden;
}
.sec--cosmic p,.sec--founder p,.sec--final p{color:#D2DAE5}
.cosmic__bg{position:absolute;inset:0;z-index:0}
.cosmic__bg img{width:100%;height:100%;object-fit:cover}
.cosmic__veil{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(7,20,38,.86),rgba(7,20,38,.92));
}
.cosmic__veil--strong{background:linear-gradient(180deg,rgba(7,20,38,.9),rgba(7,20,38,.95))}
.cosmic__inner{position:relative;z-index:2}

/* ---------- Founder ---------- */
.founder__head{margin-bottom:8px}
.founder__icon{display:block;width:92px;margin:0 0 16px}
.founder__intro{
  font-family:var(--font-serif);
  font-weight:700;
  font-size:clamp(15px,3.8vw,17px);
  letter-spacing:.08em;
  color:var(--warm-gold) !important;
  margin:0 0 .9em !important;
}
.founder__icon img{
  width:92px;height:92px;border-radius:50%;
  border:2px solid rgba(241,199,102,.5);
  object-fit:cover;
}

.founder__profile{
  font-size:13px;line-height:1.8;color:var(--muted-text) !important;
  border-top:1px solid var(--line-dark);padding-top:1em;margin-top:2em !important;
}

/* ---------- Video (click to load) ---------- */
.video{
  position:relative;width:100%;aspect-ratio:16/9;
  margin:28px 0 0;border-radius:10px;overflow:hidden;
  background:#000;
  border:1px solid rgba(241,199,102,.22);
}
.video__btn{
  appearance:none;display:block;width:100%;height:100%;
  padding:0;margin:0;border:0;background:none;cursor:pointer;position:relative;
}
.video__btn img{width:100%;height:100%;object-fit:cover}
.video__scrim{position:absolute;inset:0;background:rgba(7,20,38,.3);transition:background .2s ease}
.video__btn:hover .video__scrim,.video__btn:focus-visible .video__scrim{background:rgba(7,20,38,.12)}
.video__play{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:72px;height:72px;border-radius:50%;
  background:rgba(215,167,44,.94);
  box-shadow:0 6px 26px rgba(0,0,0,.45);
  transition:transform .18s ease;
}
.video__play::after{
  content:"";position:absolute;left:53%;top:50%;transform:translate(-50%,-50%);
  border-style:solid;border-width:13px 0 13px 21px;
  border-color:transparent transparent transparent var(--deep-navy);
}
.video__btn:hover .video__play{transform:translate(-50%,-50%) scale(1.06)}
.video__label{
  position:absolute;left:50%;bottom:14px;transform:translateX(-50%);
  background:rgba(7,20,38,.78);color:#F1C766;
  font-size:13px;font-weight:700;letter-spacing:.02em;
  padding:7px 14px;border-radius:999px;white-space:nowrap;
}
.video iframe{width:100%;height:100%;border:0;display:block}

/* ---------- Offer ---------- */
.sec--offer{
  background:linear-gradient(180deg,#FFFDF6 0%,#FFF8E8 100%);
  border-top:3px solid var(--gold);
  border-bottom:3px solid var(--gold);
}
.offer{
  background:#fff;
  border:1px solid rgba(215,167,44,.4);
  border-radius:14px;
  padding:26px 20px;
  margin-top:26px;
  box-shadow:0 4px 24px rgba(215,167,44,.13);
}
.offer__spec{margin:0 0 22px;padding:0}
.offer__spec>div{
  display:flex;align-items:baseline;gap:16px;
  padding:14px 0;border-bottom:1px dashed var(--line-light);
}
.offer__spec>div:first-child{padding-top:0}
.offer__spec dt{
  flex:0 0 60px;
  font-size:13px;font-weight:700;letter-spacing:.1em;
  color:#8A7328;
}
.offer__spec dd{margin:0;font-weight:700;font-size:18px;color:var(--deep-navy)}
.offer__big{font-family:var(--font-serif);font-size:30px;line-height:1;margin-right:2px}
.offer__price{
  font-family:var(--font-serif);
  font-size:clamp(32px,8.6vw,46px);
  line-height:1;color:#8A6A10;margin-right:3px;
}

.offer__h3{
  font-family:var(--font-serif);font-size:17px;font-weight:700;
  color:var(--deep-navy);margin:0 0 .6em;
}
.offer__list{margin:0 0 1.4em;padding-left:20px}
.offer__list li{margin-bottom:.5em;line-height:1.8;font-size:15.5px}
.offer__list li::marker{color:var(--gold)}
.offer p{font-size:15.5px}

/* ---------- CTA ---------- */
.cta{
  display:block;width:100%;
  text-align:center;text-decoration:none;
  background:linear-gradient(180deg,var(--warm-gold),var(--gold));
  color:#08182B;
  font-weight:700;font-size:clamp(16.5px,4.4vw,19px);
  letter-spacing:.02em;
  padding:20px 18px;
  border-radius:10px;
  box-shadow:0 6px 20px rgba(215,167,44,.35);
  transition:transform .15s ease,box-shadow .15s ease,filter .15s ease;
}
.cta:hover,.cta:focus-visible{filter:brightness(1.05);box-shadow:0 8px 26px rgba(215,167,44,.45)}
.cta:active{transform:translateY(1px)}
.cta__sub{
  margin-top:.9em !important;text-align:center;
  font-size:12.5px;color:#7A8798;
}
.cta__sub--onDark{color:#BECBDA !important}

/* ---------- Tags ---------- */
.tags{list-style:none;display:flex;flex-wrap:wrap;gap:9px;margin:0;padding:0}
.tags li{
  background:#fff;border:1px solid rgba(11,76,154,.22);
  color:var(--royal-blue);font-size:14.5px;font-weight:500;
  padding:9px 14px;border-radius:999px;
}

/* ---------- Objection ---------- */
.obj{
  padding:24px 0;
  border-top:1px solid var(--line-light);
}
.obj:first-of-type{border-top:0;padding-top:0}
.obj__q{
  font-family:var(--font-serif);
  font-size:clamp(17px,4.4vw,21px);font-weight:700;
  line-height:1.6;margin:0 0 .9em;color:var(--deep-navy);
}

/* ---------- Fit ---------- */
.fit{display:grid;gap:18px}
.fit__col{border-radius:12px;padding:22px 20px;background:#fff;border:1px solid var(--line-light)}
.fit__col--yes{border-top:4px solid var(--royal-blue)}
.fit__col--no{border-top:4px solid #97A3B2}
.fit__t{
  font-family:var(--font-serif);font-size:19px;font-weight:700;
  margin:0 0 .8em;color:var(--deep-navy);
}
.fit__col ul{margin:0;padding-left:20px}
.fit__col li{margin-bottom:.55em;font-size:15.5px;line-height:1.8}
.fit__col li:last-child{margin-bottom:0}
.fit__col--yes li::marker{color:var(--royal-blue)}
.fit__col--no li::marker{color:#97A3B2}
@media (min-width:768px){.fit{grid-template-columns:1fr 1fr;gap:20px}}

/* ---------- Policy ---------- */
.policy{margin:0 0 1.4em;padding-left:20px}
.policy li{margin-bottom:.7em;line-height:1.85}
.policy li::marker{color:var(--gold)}

/* ---------- Flow ---------- */
.flow{list-style:none;margin:0;padding:0}
.flow li{
  position:relative;
  padding:0 0 30px 26px;
  border-left:2px solid var(--line-dark);
}
.flow li:last-child{border-left-color:transparent;padding-bottom:0}
.flow li::before{
  content:"";position:absolute;left:-7px;top:6px;
  width:12px;height:12px;border-radius:50%;
  background:var(--gold);box-shadow:0 0 0 4px rgba(215,167,44,.18);
}
.flow__no{
  display:block;font-size:12px;font-weight:700;letter-spacing:.16em;
  color:var(--warm-gold);margin-bottom:4px;
}
.flow__t{
  font-family:var(--font-serif);font-size:19px;font-weight:700;
  margin:0 0 .5em;color:#fff;
}
.flow p{margin:0 0 .4em !important;font-size:15.5px}

/* ---------- FAQ ---------- */
.faq details{
  background:#fff;border:1px solid var(--line-light);
  border-radius:10px;margin-bottom:12px;overflow:hidden;
}
.faq summary{
  list-style:none;cursor:pointer;
  padding:18px 46px 18px 18px;position:relative;
  font-weight:700;font-size:16px;line-height:1.65;
  color:var(--deep-navy);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"";position:absolute;right:20px;top:50%;
  width:9px;height:9px;margin-top:-6px;
  border-right:2px solid var(--gold);border-bottom:2px solid var(--gold);
  transform:rotate(45deg);transition:transform .2s ease;
}
.faq details[open] summary::after{transform:rotate(-135deg);margin-top:-2px}
.faq__a{padding:0 18px 18px}
.faq__a p{margin:0 !important;font-size:15.5px;color:#41505F}

/* ---------- Final ---------- */
.final__spec{
  text-align:center;
  font-family:var(--font-serif);
  font-weight:700;
  font-size:clamp(19px,5vw,24px);
  color:var(--warm-gold) !important;
  margin:2em 0 1.2em !important;
}
.final__sep{opacity:.6;margin:0 .3em}
.final__relief{
  margin-top:2em;padding-top:1.6em;
  border-top:1px solid var(--line-dark);
}
.final__relief p{font-size:15px;color:#BECBDA !important;margin-bottom:.7em}

/* ---------- Footer ---------- */
.foot{
  background:#050F1D;color:var(--muted-text);
  padding:44px 0 100px;text-align:center;
}
.foot__icon{display:block;width:60px;margin:0 auto 14px}
.foot__icon img{width:60px;height:60px;border-radius:50%;object-fit:cover;opacity:.9}
.foot__name{
  font-family:var(--font-serif);font-size:17px;font-weight:700;
  color:#E8EDF4;margin:0 0 1em;letter-spacing:.06em;line-height:1.5;
}
.foot__note{font-size:12.5px;line-height:1.9;margin:0 auto 1.6em;max-width:34em;text-align:left}
.foot__copy{font-size:12px;margin:0;opacity:.7}
@media (min-width:768px){
  .foot{padding-bottom:56px}
  .foot__note{text-align:center}
}

/* ---------- Sticky CTA (Offer以降のみ) ---------- */
.sticky{
  position:fixed;left:0;right:0;bottom:0;z-index:50;
  background:rgba(7,20,38,.96);
  backdrop-filter:blur(8px);
  border-top:1px solid var(--line-dark);
  padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  transform:translateY(110%);
  transition:transform .28s ease;
}
.sticky.is-on{transform:translateY(0)}
.sticky__inner{max-width:520px;margin-inline:auto}
.sticky__btn{
  display:block;text-align:center;text-decoration:none;
  background:linear-gradient(180deg,var(--warm-gold),var(--gold));
  color:#08182B;font-weight:700;font-size:16px;
  padding:15px 12px;border-radius:9px;
}
@media (prefers-reduced-motion:reduce){.sticky{transition:none}}

/* 画面下部の固定CTA分の余白（フッターで確保済み） */
@media (min-width:768px){
  .sticky{padding:12px 20px}
}

/* ---------- Focus ---------- */
:focus-visible{outline:3px solid var(--ocean-cyan);outline-offset:3px}
