:root{
  --ink:#2b2b2b;         /* 本文 */
  --ink-2:#6f665d;       /* 補助文字 */
  --black:#141210;       /* ヒーロー地 */
  --white:#fff;
  --cream:#fff9f7;       /* 淡いピンクベージュ */
  --beige:#f6efe9;       /* 帯 */
  --coral:#e2967f;       /* 基調のコーラル */
  --coral-l:#f7e3db;     /* 淡いコーラル面 */
  --coral-d:#bb5638;     /* 濃いコーラル（CTA・強調） */
  --coral-dd:#9c4429;
  --kincha:#5d441c;      /* ロゴの金茶 */
  --hairline:#e4d9d1;
  --hairline-d:#3b3530;
  --navy:#131f33;        /* FVと通じる締めの紺 */
  --navy-2:#1b2942;
  --gold:#8f6a2a;        /* 明るい地の上の金 */
  --gold-l:#d4af6a;      /* 紺地の上の金 */
  --gold-pale:#f2e7cf;
  --f-serif:"Noto Serif JP",serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--f-serif);font-weight:400;font-size:16px;line-height:2.05;letter-spacing:.045em;color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
a:focus-visible,button:focus-visible{outline:2px solid var(--coral-d);outline-offset:3px}
h1,h2,h3,h4{font-weight:600;letter-spacing:.1em;line-height:1.6}
main :is(h1,h2,h3,h4,p,li,dt,dd,figcaption){word-break:keep-all;overflow-wrap:anywhere}
.reg{font-size:.52em;line-height:0;position:relative;top:-.36em;letter-spacing:0;margin:0 -.1em}
.wrap{width:min(1060px,88vw);margin-inline:auto}
.narrow{width:min(860px,88vw);margin-inline:auto}

/* ── 上部バー ── */
.bar{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.97);border-bottom:1px solid var(--hairline)}
.bar-in{width:min(1060px,92vw);margin-inline:auto;display:flex;align-items:center;gap:1.4rem;height:62px}
.bar-logo{display:flex;align-items:center}
.bar-logo img{height:34px;width:auto;display:block}
.bar-nav{margin-left:auto;display:flex;gap:1.6rem;font-size:13px;letter-spacing:.08em}
.bar-nav a{text-decoration:none;padding-bottom:3px;border-bottom:1px solid transparent}
.bar-nav a:hover{border-bottom-color:var(--gold-l)}
.bar-tel{font-size:19px;letter-spacing:.06em;text-decoration:none;color:var(--gold);white-space:nowrap}
@media(max-width:880px){.bar-nav{display:none}.bar-logo img{height:29px}}

/* ── ヒーロー（ウェビナーバナー型） ── */
.hero{position:relative;background:#131f33;color:#f2ede3;overflow:hidden;padding:clamp(2.6rem,5vw,4rem) 0}
.hero::after{content:"";position:absolute;inset:clamp(12px,1.6vw,20px);border:1px solid rgba(212,175,106,.3);pointer-events:none;z-index:3}
/* 背景アート：漂う光・うねる生体波形・広がる波紋（canvasで描画） */
.hero-art{position:absolute;inset:0;overflow:hidden;z-index:1}
.hero-art canvas{width:100%;height:100%;display:block}
.hero-art .grid{position:absolute;inset:0;background-image:linear-gradient(rgba(212,175,106,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(212,175,106,.07) 1px,transparent 1px);background-size:78px 78px}
.hero-bg{position:absolute;inset:-4%;background-size:cover;background-position:50% 42%;filter:brightness(.92) contrast(1.04) saturate(1.04);animation:kenburns 26s ease-in-out infinite alternate;will-change:transform}
@keyframes kenburns{from{transform:scale(1.02) translate3d(0,0,0)}to{transform:scale(1.14) translate3d(-1.5%,-2%,0)}}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,10,8,.3) 0%,rgba(14,10,8,.16) 40%,rgba(14,10,8,.34) 100%)}
.hero-in{width:min(1100px,92vw);margin-inline:auto;position:relative;z-index:2;display:grid;grid-template-columns:1fr 300px;gap:clamp(1.4rem,2.6vw,2.2rem);align-items:center}
.hero-l{border-left:2px solid #d4af6a;padding:clamp(1.2rem,2.4vw,1.8rem) 0 clamp(1.2rem,2.4vw,1.8rem) clamp(1.3rem,2.6vw,2rem)}
/* 上のラベル列 */
.hero-tags{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}
.hero-tags .day{background:#d4af6a;color:#131f33;font-size:12.5px;font-weight:600;letter-spacing:.12em;padding:.32rem .95rem}
.hero-tags .invite{border:1px solid #d4af6a;color:#e6c98f;font-size:12.5px;letter-spacing:.12em;padding:.3rem .9rem}
.hero-tags .org{font-size:12px;letter-spacing:.12em;color:#a9b3c2}
/* 見出し */
.hero h1{font-size:clamp(36px,6vw,64px);font-weight:700;letter-spacing:.06em;line-height:1.24;margin-top:1rem}
.hero h1 em{font-style:normal;color:#e6c98f}
.hero h1 .sm{font-size:.56em;letter-spacing:.1em}
.hero-sub{font-size:clamp(14.5px,1.9vw,20px);color:#e8e2d6;margin-top:1.1rem;letter-spacing:.06em;line-height:1.8;font-weight:500}
.hero-strip{display:inline-block;margin-top:1.2rem;font-size:clamp(12.5px,1.5vw,15px);letter-spacing:.08em;color:#131f33;background:linear-gradient(100deg,#e6c98f,#d4af6a 55%,#c49a52);padding:.42rem 1.15rem;font-weight:600}
/* 日時 */
.hero-when{display:flex;align-items:flex-end;gap:clamp(1rem,2.4vw,1.8rem);margin-top:clamp(1.4rem,2.6vw,2rem);padding-top:clamp(1rem,2vw,1.4rem);border-top:1px solid rgba(212,175,106,.42)}
.hw-date{font-size:clamp(42px,6.4vw,64px);font-weight:700;line-height:1;letter-spacing:.02em}
.hw-date .yr{font-size:.3em;letter-spacing:.16em;color:#d4af6a;margin-right:.3em}
.hw-date .dow{font-size:.36em;border:1px solid #d4af6a;color:#e6c98f;padding:.1em .38em;margin-left:.25em;vertical-align:.28em}
.hw-info{font-size:clamp(13.5px,1.6vw,16.5px);line-height:1.7;letter-spacing:.05em;padding-bottom:.2rem}
.hw-info b{display:block;font-weight:600;font-size:1.08em}
.hw-info small{display:block;font-size:.82em;color:#a9b3c2;letter-spacing:.08em}
/* 登壇者 */
.hero-sp{list-style:none;display:grid;gap:clamp(.7rem,1.6vw,1rem)}
.hero-sp li{display:grid;grid-template-columns:84px 1fr;gap:.9rem;align-items:center;background:#1b2942;border:1px solid rgba(212,175,106,.28);border-left:2px solid #d4af6a;padding:.65rem .9rem .65rem .65rem;box-shadow:0 10px 28px rgba(0,0,0,.3)}
.hero-sp img{width:84px;aspect-ratio:3/4;object-fit:cover}
.hero-sp .role{font-size:10.5px;letter-spacing:.16em;color:#d4af6a}
.hero-sp .name{font-size:16.5px;font-weight:600;letter-spacing:.06em;margin-top:.1rem}
.hero-sp .name span{font-size:.66em;margin-left:.25em}
.hero-sp .title{font-size:11px;color:#a9b3c2;line-height:1.65;margin-top:.25rem;letter-spacing:.03em}
.hero-sp li{position:relative;cursor:pointer;transition:border-color .25s,background .25s}
.hero-sp li:hover,.hero-sp li:focus-visible,.hero-sp li.open{background:#22314e;border-color:rgba(212,175,106,.55)}
.hero-sp .more{position:absolute;right:8px;bottom:6px;font-size:10px;letter-spacing:.1em;color:#d4af6a;opacity:.75}
.hero-sp .more::after{content:"＋";margin-left:.3em;display:inline-block;transition:transform .3s}
.hero-sp li.open .more::after{transform:rotate(45deg)}
.sc-detail{grid-column:1/-1}
.sc-detail p{font-size:11.5px;line-height:1.85;color:#dcd6ca;letter-spacing:.02em}
.sc-detail a{display:inline-block;margin-top:.5rem;font-size:11px;letter-spacing:.1em;color:#d4af6a;text-decoration:none;border-bottom:1px solid rgba(212,175,106,.5)}
@media(min-width:881px){
  .sc-detail{position:absolute;right:calc(100% + 12px);top:-1px;width:308px;background:#1b2942;border:1px solid rgba(212,175,106,.5);box-shadow:0 16px 40px rgba(0,0,0,.45);padding:1rem 1.1rem;opacity:0;visibility:hidden;transform:translateX(10px);transition:opacity .28s ease,transform .28s ease,visibility .28s;z-index:5}
  .hero-sp li:hover .sc-detail,.hero-sp li:focus-within .sc-detail,.hero-sp li.open .sc-detail{opacity:1;visibility:visible;transform:none}
}
@media(max-width:880px){
  .sc-detail{max-height:0;overflow:hidden;transition:max-height .38s ease,margin-top .38s ease}
  .hero-sp li.open .sc-detail{max-height:340px;margin-top:.7rem;padding-top:.7rem;border-top:1px solid rgba(212,175,106,.3)}
}
@media(prefers-reduced-motion:reduce){.sc-detail{transition:none}}
@media(max-width:880px){
  .hero-in{grid-template-columns:1fr;gap:1.6rem}
  .hero h1{font-size:clamp(30px,7.6vw,40px)}
  .hero-sp{grid-template-columns:1fr}
  .hero-sp li{grid-template-columns:66px 1fr}
  .hero-sp img{width:66px}
  .hero-sp .name{font-size:15px}
}

/* ── 導入 ── */
.intro{padding:clamp(3.4rem,6vw,5.2rem) 0}
.intro-h{font-size:clamp(21px,3.2vw,32px);line-height:1.85;text-align:center}
.intro-h em{font-style:normal;color:var(--gold)}
.intro-label{text-align:center;font-size:11.5px;letter-spacing:.32em;color:var(--gold)}
.intro-label::after{content:"";display:block;width:1px;height:26px;background:var(--gold-l);margin:.7rem auto 1.2rem}
@media(max-width:760px){.intro-h{text-align:left}}

/* 署名：四つの環 */
.fig{display:grid;place-items:center;margin:clamp(2.6rem,5.4vw,4.2rem) 0 clamp(2.2rem,4.4vw,3.4rem)}
.fig svg{width:min(452px,86vw);height:auto;overflow:visible}
.fig .ring{fill:none;stroke:var(--gold-l);stroke-width:1.2;stroke-dasharray:848;stroke-dashoffset:848}
.fig .ring-in{fill:none;stroke:var(--gold-l);stroke-width:.7;stroke-dasharray:2 7;opacity:.7}
.fig .cut{fill:#fff}
.fig .word{font-size:23px;font-weight:600;fill:var(--navy);letter-spacing:.14em}
.fig .note{font-size:10.5px;fill:var(--gold);letter-spacing:.16em}
.fig .core{font-size:29px;font-weight:600;fill:var(--navy);letter-spacing:.22em}
.fig .core-line{stroke:var(--gold-l);stroke-width:1}
.fig .core-note{font-size:10px;fill:var(--gold);letter-spacing:.3em}
.fig .node{opacity:0}
.js .rv.in .fig .ring{stroke-dashoffset:0;transition:stroke-dashoffset 2.6s cubic-bezier(.4,0,.2,1)}
.js .rv.in .fig .node{opacity:1;transition:opacity .7s ease}
.js .rv.in .fig .node:nth-of-type(1){transition-delay:.6s}
.js .rv.in .fig .node:nth-of-type(2){transition-delay:1.1s}
.js .rv.in .fig .node:nth-of-type(3){transition-delay:1.6s}
.js .rv.in .fig .node:nth-of-type(4){transition-delay:2.1s}
html:not(.js) .fig .ring{stroke-dashoffset:0}
html:not(.js) .fig .node{opacity:1}
@media(prefers-reduced-motion:reduce){
  .js .rv.in .fig .ring{stroke-dashoffset:0;transition:none}
  .js .rv.in .fig .node{opacity:1;transition:none}
}

/* ── セクション見出し（罫線で挟む） ── */
.sec-head{text-align:center;margin-bottom:clamp(2rem,4vw,3rem)}
.sec-head h2{display:inline-flex;align-items:center;gap:clamp(.9rem,2.5vw,1.6rem);font-size:clamp(20px,2.7vw,27px);color:var(--navy)}
.sec-head h2::before,.sec-head h2::after{content:"";width:clamp(30px,5vw,60px);height:1px;background:var(--gold-l)}
.on-dark .sec-head h2{color:#f2ede3}
.on-dark .sec-head h2::before,.on-dark .sec-head h2::after{background:var(--gold-l)}

/* ── プログラム ── */
.program{padding:clamp(3rem,5vw,4.4rem) 0 clamp(3.4rem,6vw,5.2rem);background:#f5eee4}
.tl{position:relative;padding-left:clamp(3.2rem,6.5vw,5rem)}
.tl-rail{position:absolute;left:clamp(17px,2.6vw,26px);top:.8rem;bottom:.8rem;width:1px;background:#e0d3c0}
.tl-rail i{position:absolute;left:0;top:0;width:1px;height:0;background:var(--navy);display:block}
.tl-item{position:relative;padding-bottom:clamp(2.2rem,4vw,3.2rem)}
.tl-item:last-child{padding-bottom:0}
.tl-num{position:absolute;left:calc(-1 * clamp(3.2rem,6.5vw,5rem));top:-.1rem;width:clamp(35px,4.8vw,53px);height:clamp(30px,4vw,44px);display:grid;place-items:center;background:var(--gold-pale);color:var(--gold);font-size:clamp(15px,2vw,20px);font-weight:500;letter-spacing:.02em;line-height:1;transition:background .5s,color .5s}
.tl-item.on .tl-num{background:var(--navy);color:var(--gold-l)}
.tl-item h3{font-size:clamp(18px,2.5vw,25px);color:var(--navy)}
.tl-item>p{font-size:14px;color:var(--ink-2);margin-top:.3rem}
.tl-sub{list-style:none;margin-top:1.2rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(264px,1fr));gap:0;border-top:1px solid #e4d8c6}
.tl-sub li{border-bottom:1px solid #e4d8c6;padding:.85rem .3rem;font-size:14.5px;display:flex;gap:.85rem;align-items:baseline;line-height:1.8}
.tl-sub li svg{flex:none;width:28px;height:28px;transform:translateY(8px);color:var(--gold)}
.tl-sub li b{font-weight:500}
.tl-sub li span{display:block;font-size:12.5px;color:var(--ink-2);line-height:1.7}
.tl-tokubetsu{display:inline-block;background:var(--coral-d);color:#fff;font-size:11.5px;letter-spacing:.12em;padding:.2rem .7rem;margin-right:.8rem;vertical-align:.22em;font-weight:500}
.tl-item.feature{background:linear-gradient(180deg,#fffdf8,#faf3e6);border:1px solid var(--gold-l);padding:clamp(1.2rem,2.4vw,1.7rem) clamp(1.2rem,2.4vw,1.8rem);margin-top:.6rem}
.tl-item.feature .tl-num{top:calc(clamp(1.2rem,2.4vw,1.7rem) - .1rem)}
.tl-check{list-style:none;margin-top:1rem;display:flex;flex-wrap:wrap;gap:.6rem}
.tl-check li{border:1px solid var(--gold-l);background:var(--white);padding:.45rem 1rem;font-size:14px}
.tl-check li em{font-style:normal;color:var(--gold);margin-right:.5rem}

/* ── 講師 ── */
.speakers{padding:clamp(3.4rem,6vw,5.4rem) 0 clamp(2rem,4vw,3rem)}
.sp{position:relative;display:grid;grid-template-columns:376px 1fr;gap:clamp(1.8rem,4vw,3.6rem);padding:clamp(2.6rem,5vw,4.2rem) 0;border-top:1px solid var(--gold-pale)}
.sp:first-of-type{border-top:none;padding-top:0}
.sp.alt{grid-template-columns:1fr 376px}
.sp.alt .sp-photo{order:2}
/* 背後の大きな番号 */
.sp-no{position:absolute;top:clamp(1.4rem,3vw,2.6rem);right:0;font-size:clamp(76px,11vw,132px);font-weight:700;line-height:.8;color:var(--gold);opacity:.13;letter-spacing:.02em;pointer-events:none;user-select:none}
.sp.alt .sp-no{right:auto;left:0}
.sp-photo{position:relative;align-self:start;overflow:visible}
.sp-photo .frame{overflow:hidden}
.sp-photo img{width:100%;transition:transform 1.1s cubic-bezier(.2,.6,.2,1);will-change:transform}
.sp:hover .sp-photo img{transform:scale(1.045)}
.sp-photo::after{content:"";position:absolute;left:13px;top:13px;right:-13px;bottom:-13px;border:1px solid var(--gold-l);z-index:-1}
.sp-photo figcaption{margin-top:1.1rem;font-size:11.5px;letter-spacing:.2em;color:var(--gold);text-align:center}
.sp-role{display:inline-block;font-size:11.5px;letter-spacing:.22em;color:#fff;background:var(--navy);padding:.28rem .9rem}
.sp-catch{font-size:clamp(26px,4.2vw,44px);font-weight:600;letter-spacing:.05em;line-height:1.45;color:var(--navy);margin-top:1.1rem;overflow:hidden}
.sp-catch>span{display:block}
.js .sp-catch>span{transform:translateY(108%);transition:transform 1.05s cubic-bezier(.22,.7,.2,1) .15s}
.js .rv.in .sp-catch>span{transform:none}
.sp-en{position:absolute;top:0;writing-mode:vertical-rl;font-size:11px;letter-spacing:.34em;color:var(--gold);opacity:.6;white-space:nowrap}
.sp .sp-en{left:calc(376px + .8rem)}
.sp.alt .sp-en{left:auto;right:calc(376px + .8rem)}
@media(max-width:820px){.sp-en{display:none}}
/* スクロール進捗（金の細線） */
.prog{position:fixed;top:0;left:0;right:0;height:2px;z-index:90;background:transparent;pointer-events:none}
.prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,#8f6a2a,#d4af6a)}
.sp-catch em{font-style:normal;color:var(--gold)}
.sp-idline{display:flex;align-items:baseline;flex-wrap:wrap;gap:.2rem 1rem;margin-top:1.4rem;padding-top:1.2rem;border-top:1px solid var(--gold-pale)}
.sp-name{font-size:clamp(24px,3.4vw,32px);letter-spacing:.1em;color:var(--navy);font-weight:600}
.sp-name .rb{font-size:.34em;letter-spacing:.06em;color:var(--ink-2);vertical-align:.95em;margin-left:.25em}
.sp-name .hon{font-size:.44em;letter-spacing:.1em;margin-left:.4em}
.sp-title{font-size:13.5px;color:var(--ink-2);letter-spacing:.08em}
.sp-tags{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1rem}
.sp-tags span{white-space:nowrap;background:#faf5ec;border:1px solid var(--gold-pale);padding:.32rem .85rem;font-size:12.5px;color:#6b5327}
.sp-bio{font-size:14.5px;line-height:2.05;color:#46403a;margin-top:1.2rem}
.sp-bio b{font-weight:400;background:linear-gradient(transparent 66%,var(--gold-pale) 0)}
@media(max-width:820px){
  .sp,.sp.alt{grid-template-columns:1fr;gap:1.5rem}
  .sp.alt .sp-photo{order:0}
  .sp-photo img{max-height:64vw;object-fit:cover;object-position:50% 20%}
  .sp-no{font-size:64px;top:auto;bottom:.4rem;right:0;left:auto;opacity:.1}
  .sp.alt .sp-no{left:auto;right:0}
  .sp-catch{font-size:clamp(22px,6.4vw,30px)}
  .sp-idline{gap:.1rem .8rem}
}

/* ── 開催概要 ── */
.outline{background:var(--navy);color:#e8e2d6;padding:clamp(3.4rem,6vw,5.2rem) 0}
.ol-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(1.8rem,4vw,3.4rem)}
.ol dl{display:grid;grid-template-columns:5.5em 1fr;border-top:1px solid rgba(212,175,106,.3)}
.ol dt{padding:.9rem 0;font-size:13px;color:var(--gold-l);letter-spacing:.14em;border-bottom:1px solid rgba(212,175,106,.3)}
.ol dd{padding:.9rem 0;font-size:14.5px;border-bottom:1px solid rgba(212,175,106,.3)}
.ol dd strong{font-size:18px;font-weight:600;display:block;letter-spacing:.06em}
.ol dd small{display:block;font-size:12.5px;color:#a9b3c2;line-height:1.85}
.ac h3{font-size:16px;letter-spacing:.14em;margin-bottom:.7rem;color:var(--gold-l)}
.ac ul{list-style:none;font-size:13.5px;line-height:1.7}
.ac li{padding:.45rem 0 .45rem 1.2rem;position:relative;border-bottom:1px solid rgba(212,175,106,.22)}
.ac li::before{content:"";position:absolute;left:0;top:1.15em;width:7px;height:1px;background:var(--gold-l)}
.ac li b{font-weight:500;color:#fff}
.ac-2{margin-top:1.7rem}
@media(max-width:820px){.ol-grid{grid-template-columns:1fr}}

/* ── ブッフェ ── */
.buffet{padding:clamp(3rem,5vw,4.4rem) 0}
.bf{position:relative;display:grid;grid-template-columns:auto 1fr;gap:clamp(1.6rem,3.2vw,3rem);align-items:start;background:#fffdf8;border:1px solid var(--gold-l);padding:clamp(2rem,4vw,3.2rem)}
.bf::before{content:"";position:absolute;left:14px;top:14px;right:14px;bottom:14px;border:1px solid var(--gold-pale);pointer-events:none}
.bf-num{line-height:1;text-align:center;border-right:1px solid var(--gold-pale);padding-right:clamp(1.4rem,3.2vw,2.8rem)}
.bf-num b{display:block;font-size:clamp(48px,7.8vw,80px);font-weight:600;color:var(--gold);line-height:.9}
.bf-num span{display:block;font-size:12px;letter-spacing:.14em;color:var(--ink-2);margin-top:.6rem}
.bf h3{font-size:clamp(18px,2.5vw,24px);color:var(--navy)}
.bf p{font-size:14.5px;margin-top:.6rem}
.bf-place{margin-top:1.1rem;padding-top:1.1rem;border-top:1px solid var(--gold-pale);font-size:14px;line-height:1.9}
.bf-place b{font-size:15.5px;font-weight:600}
.bf-honest{margin-top:1rem;font-size:15px;color:var(--coral-d);line-height:1.95}
@media(max-width:640px){.bf{grid-template-columns:1fr}.bf-num{border-right:none;border-bottom:1px solid var(--hairline);padding-right:0;padding-bottom:1rem;display:flex;align-items:baseline;justify-content:center;gap:.7rem}.bf-num span{margin-top:0}}

/* ── 申込 ── */
.apply{background:#f5eee4;padding:clamp(3.4rem,6vw,5.2rem) 0 clamp(3.8rem,7vw,5.6rem)}
.ap{text-align:center}
.ap-h{font-size:clamp(21px,3vw,30px);color:var(--navy)}
.ap-note{font-size:14.5px;color:var(--ink-2);margin-top:.8rem}
.ap-tel{margin-top:2.4rem;display:inline-block;text-decoration:none}
.ap-tel span{display:block;font-size:12.5px;letter-spacing:.2em;color:var(--ink-2)}
.ap-tel b{font-size:clamp(36px,6.2vw,60px);font-weight:600;line-height:1.25;letter-spacing:.04em;color:var(--navy)}
.ap-org{font-size:14px;margin-top:.7rem;line-height:1.9}
.ap-org small{color:var(--ink-2);font-size:12.5px}

/* ── フッター ── */
.ft{background:#131f33;color:#9aa5b4;padding:2.4rem 0 5.6rem;font-size:12.5px;line-height:2}
.ft-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.ft b{color:#eae4d8;font-weight:500;font-size:13.5px}
@media(max-width:640px){.ft-grid{grid-template-columns:1fr}}

/* ── モバイル固定CTA ── */
.mb-cta{position:fixed;left:0;right:0;bottom:0;z-index:70;display:none;background:var(--navy);color:var(--gold-l);text-decoration:none;text-align:center;padding:.9rem 1rem;letter-spacing:.08em;font-size:14px}
.mb-cta:hover{background:#0d1626}
.mb-cta b{font-size:21px;letter-spacing:.04em;margin-left:.6rem}
@media(max-width:880px){.mb-cta{display:block}.ft{padding-bottom:5.6rem}}

/* ── reveal ── */
.js .rv{opacity:0;transform:translateY(14px);transition:opacity .8s ease,transform .8s ease}
.js .rv.in{opacity:1;transform:none}
html:not(.js) .tl-rail i{height:100%}
html:not(.js) .tl-num{background:var(--coral-d);color:#fff}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hero-bg{animation:none}
  .hero-art .ripple circle,.hero-art .wave,.hero-art .pt{animation:none}
  .hero-art .ripple circle{opacity:.12}
  .js .rv{opacity:1;transform:none;transition:none}
  .tl-rail i{transition:none}
}
