/* ============ Design tokens ============ */
:root{
  --ink:#EDF1FA;
  --ink-dim:#9099B4;
  --ink-faint:#7A83A0;
  --bg:#05070C;
  --bg-alt:#080B13;
  --surface:#0E1420;
  --surface-2:#141C2C;
  --line:rgba(237,241,250,0.09);
  --line-strong:rgba(237,241,250,0.16);
  --accent:#4F7EF7;
  --accent-dim:rgba(79,126,247,0.14);
  --profit:#33D6A6;
  --profit-dim:rgba(51,214,166,0.14);
  --loss:#FF6259;
  --loss-dim:rgba(255,98,89,0.14);

  --font-display:-apple-system,"SF Pro Display","Hiragino Sans","Yu Gothic UI","Segoe UI",sans-serif;
  --font-body:-apple-system,"SF Pro Text","Hiragino Sans","Yu Gothic UI","Segoe UI",sans-serif;
  --font-mono:ui-monospace,"SF Mono","Roboto Mono",Menlo,Consolas,monospace;

  --space-1:.4rem; --space-2:.8rem; --space-3:1.2rem; --space-4:1.8rem;
  --space-5:2.6rem; --space-6:4rem; --space-7:6rem; --space-8:9rem;

  --radius-s:10px; --radius-m:16px; --radius-l:26px;
  --shadow-card:0 20px 60px -30px rgba(0,0,0,0.7);
  --ease:cubic-bezier(.16,.8,.24,1);
}

@media (prefers-color-scheme: light){
  :root{
    --ink:#12141C; --ink-dim:#565F78; --ink-faint:#626A7E;
    --bg:#F3F5FA; --bg-alt:#ECEFF6; --surface:#FFFFFF; --surface-2:#EEF1F8;
    --line:rgba(18,20,28,0.08); --line-strong:rgba(18,20,28,0.14);
    --accent:#3358DB; --accent-dim:rgba(51,88,219,0.10);
    --profit:#13946C; --profit-dim:rgba(19,148,108,0.12);
    --loss:#D93C31; --loss-dim:rgba(217,60,49,0.10);
    --shadow-card:0 20px 50px -28px rgba(20,25,40,0.22);
  }
}
:root[data-theme="dark"]{
  --ink:#EDF1FA; --ink-dim:#9099B4; --ink-faint:#7A83A0;
  --bg:#05070C; --bg-alt:#080B13; --surface:#0E1420; --surface-2:#141C2C;
  --line:rgba(237,241,250,0.09); --line-strong:rgba(237,241,250,0.16);
  --accent:#4F7EF7; --accent-dim:rgba(79,126,247,0.14);
  --profit:#33D6A6; --profit-dim:rgba(51,214,166,0.14);
  --loss:#FF6259; --loss-dim:rgba(255,98,89,0.14);
  --shadow-card:0 20px 60px -30px rgba(0,0,0,0.7);
}
:root[data-theme="light"]{
  --ink:#12141C; --ink-dim:#565F78; --ink-faint:#626A7E;
  --bg:#F3F5FA; --bg-alt:#ECEFF6; --surface:#FFFFFF; --surface-2:#EEF1F8;
  --line:rgba(18,20,28,0.08); --line-strong:rgba(18,20,28,0.14);
  --accent:#3358DB; --accent-dim:rgba(51,88,219,0.10);
  --profit:#13946C; --profit-dim:rgba(19,148,108,0.12);
  --loss:#D93C31; --loss-dim:rgba(217,60,49,0.10);
  --shadow-card:0 20px 50px -28px rgba(20,25,40,0.22);
}

*{box-sizing:border-box;}
html{background:var(--bg);}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--font-body); line-height:1.7; -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg,canvas{display:block; max-width:100%;}
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
a{color:inherit;}
::selection{background:var(--accent); color:#fff;}

.mono{font-family:var(--font-mono); font-variant-numeric:tabular-nums;}
.text-accent{color:var(--accent);}
.text-profit{color:var(--profit);}
.eyebrow{
  font-family:var(--font-mono); font-size:.78rem; letter-spacing:.02em;
  color:var(--accent); display:flex; align-items:center; gap:.5em;
  margin:0 0 var(--space-3);
}
.eyebrow::before{content:"//"; color:var(--ink-faint);}

h1,h2,h3{font-family:var(--font-display); font-weight:800; letter-spacing:-0.02em; text-wrap:balance; margin:0;}
p{margin:0;}

.wrap{max-width:1180px; margin:0 auto; padding:0 var(--space-5);}
@media (max-width:720px){ .wrap{padding:0 var(--space-4);} }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  font-family:var(--font-display); font-weight:700; font-size:.98rem;
  padding:.95em 1.6em; border-radius:999px; border:1px solid transparent;
  cursor:pointer; text-decoration:none; transition:transform .2s var(--ease), box-shadow .2s var(--ease), background .2s var(--ease);
  white-space:nowrap;
}
.btn-primary{background:var(--accent); color:#fff; box-shadow:0 14px 30px -14px var(--accent-dim);}
.btn-primary:hover{transform:translateY(-2px); box-shadow:0 18px 34px -12px rgba(79,126,247,0.45);}
.btn-ghost{background:transparent; color:var(--ink); border-color:var(--line-strong);}
.btn-ghost:hover{border-color:var(--accent); color:var(--accent);}
.btn:focus-visible{outline:2px solid var(--accent); outline-offset:3px;}

/* ============ Nav ============ */
.nav{
  position:sticky; top:0; z-index:50;
  background:var(--bg-alt);
  background:color-mix(in srgb, var(--bg) 78%, transparent);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.nav-row{display:flex; align-items:center; justify-content:space-between; height:68px; gap:var(--space-4);}
.brand{display:flex; align-items:center; gap:.6em; font-family:var(--font-display); font-weight:800; font-size:1.05rem;}
.brand-mark{width:26px; height:26px;}
.nav-links{display:flex; gap:var(--space-5); font-size:.92rem; color:var(--ink-dim); list-style:none; margin:0; padding:0;}
.nav-links a{text-decoration:none; transition:color .15s;}
.nav-links a:hover{color:var(--ink);}
.nav-cta{display:flex; align-items:center; gap:var(--space-3);}
@media (max-width:860px){ .nav-links{display:none;} }

/* ============ Ticker ============ */
.ticker{
  border-bottom:1px solid var(--line); background:var(--bg-alt);
  overflow:hidden; white-space:nowrap; position:relative;
}
.ticker::before,.ticker::after{
  content:""; position:absolute; top:0; bottom:0; width:60px; z-index:2; pointer-events:none;
}
.ticker::before{left:0; background:linear-gradient(90deg, var(--bg-alt), transparent);}
.ticker::after{right:0; background:linear-gradient(270deg, var(--bg-alt), transparent);}
.ticker-track{display:inline-flex; gap:var(--space-6); padding:.7em 0; animation:tickerScroll 34s linear infinite;}
.ticker-item{display:inline-flex; align-items:center; gap:.55em; font-family:var(--font-mono); font-size:.82rem; color:var(--ink-dim);}
.ticker-item b{color:var(--ink); font-weight:600;}
.ticker-item .up{color:var(--profit);} .ticker-item .down{color:var(--loss);}
.ticker-item canvas{width:44px; height:18px;}
@keyframes tickerScroll{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

/* ============ Hero ============ */
.hero{position:relative; padding:var(--space-8) 0 var(--space-7); overflow:hidden;}
.hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:var(--space-7); align-items:center;}
@media (max-width:980px){ .hero-grid{grid-template-columns:1fr; gap:var(--space-6);} .hero{padding:var(--space-6) 0 var(--space-6);} }

.hero h1{font-size:clamp(2.1rem, 4.6vw, 3.6rem); line-height:1.16;}
.hero h1 em{font-style:normal; color:var(--accent);}
.hero-sub{margin-top:var(--space-4); font-size:1.08rem; color:var(--ink-dim); max-width:46ch;}
.hero-actions{display:flex; align-items:center; gap:var(--space-4); margin-top:var(--space-5); flex-wrap:wrap;}
.hero-trust{margin-top:var(--space-5); display:flex; gap:var(--space-4); flex-wrap:wrap; font-family:var(--font-mono); font-size:.8rem; color:var(--ink-faint);}
.hero-trust span{display:flex; align-items:center; gap:.5em;}
.hero-trust span::before{content:"●"; color:var(--profit); font-size:.6em;}

.hero-visual{position:relative; display:flex; justify-content:center; align-items:center; min-height:520px;}
.chart-canvas{position:absolute; inset:0; width:100%; height:100%; opacity:.55; filter:saturate(1.05);}
.phone{
  position:relative; z-index:2; width:280px; border-radius:34px; background:var(--surface);
  border:1px solid var(--line-strong); box-shadow:var(--shadow-card); padding:.9em;
}
@keyframes floatY{ 0%,100%{transform:translateY(0);} 50%{transform:translateY(-10px);} }
.phone-screen{background:var(--bg); border-radius:24px; padding:1.1em .95em; font-family:var(--font-body);}
.phone-topbar{display:flex; align-items:center; justify-content:space-between; font-size:.72rem; color:var(--ink-faint); margin-bottom:.6em;}
.phone-title{text-align:center; font-weight:800; font-size:.92rem; margin-bottom:.7em;}
.phone-month{display:flex; align-items:center; justify-content:center; gap:.5em; font-size:.78rem; color:var(--ink-dim); margin-bottom:.7em;}
.phone-month b{color:var(--ink); font-size:.92rem;}
.phone-month em{font-style:normal; background:var(--accent-dim); color:var(--accent); padding:.15em .55em; border-radius:999px; font-size:.7rem;}
.phone-pills{display:flex; gap:.4em; margin-bottom:.7em; overflow:hidden;}
.phone-pill{font-size:.68rem; padding:.32em .7em; border-radius:999px; background:var(--surface-2); color:var(--ink-dim); white-space:nowrap;}
.phone-pill.active{background:var(--accent); color:#fff;}
.stat-strip{display:grid; grid-template-columns:repeat(5,1fr); gap:.3em; background:var(--surface-2); border-radius:14px; padding:.7em .2em; margin-bottom:.6em;}
.stat-strip div{text-align:center;}
.stat-strip .k{display:block; font-size:.56rem; color:var(--ink-faint); margin-bottom:.2em;}
.stat-strip .v{font-family:var(--font-mono); font-weight:700; font-size:.76rem;}
.trade-row{
  display:flex; align-items:center; justify-content:space-between; gap:.6em;
  background:var(--surface-2); border-left:3px solid var(--profit); border-radius:12px;
  padding:.55em .7em; margin-bottom:.4em;
}
/* 売買方向で常に色が決まる（buy=緑/sell=赤）。損益の勝敗は別のバッジで示す */
.trade-row.dir-sell{border-left-color:var(--loss);}
.trade-row .pair{font-weight:700; font-size:.78rem;}
.trade-row .side{font-size:.66rem; color:var(--profit);}
.trade-row.dir-sell .side{color:var(--loss);}
.trade-row .result-badge{font-size:.6rem; font-weight:700; padding:.15em .5em; border-radius:6px; margin-left:.4em;}
.trade-row .result-badge.win{background:var(--profit-dim); color:var(--profit);}
.trade-row .result-badge.lose{background:var(--loss-dim); color:var(--loss);}
.trade-row .pips{font-family:var(--font-mono); font-weight:700; font-size:.86rem; color:var(--profit); text-align:right;}
.trade-row .pips.neg{color:var(--loss);}
.trade-row.loss .pips{color:var(--loss);}

.float-chip{
  position:absolute; z-index:3; background:var(--surface); border:1px solid var(--line-strong);
  border-radius:var(--radius-m); padding:.7em 1em; box-shadow:var(--shadow-card);
  font-family:var(--font-mono); animation:floatY 8s ease-in-out infinite;
}
.float-chip .k{display:block; font-size:.62rem; color:var(--ink-faint); font-family:var(--font-body); margin-bottom:.15em;}
.float-chip .v{font-size:1.15rem; font-weight:700;}
.chip-winrate{top:6%; left:-4%; animation-delay:.4s;}
.chip-winrate .v{color:var(--profit);}
.chip-pf{bottom:16%; right:-8%; animation-delay:1.1s;}
.chip-pf .v{color:var(--accent);}
@media (max-width:560px){ .float-chip{display:none;} }

/* ============ Section shell ============ */
section{padding:var(--space-7) 0;}
.section-head{max-width:640px; margin-bottom:var(--space-6);}
.section-head h2{font-size:clamp(1.6rem,3.2vw,2.3rem); line-height:1.25;}
.section-head p{margin-top:var(--space-3); color:var(--ink-dim); font-size:1.02rem;}

/* ============ Problem ============ */
.problem-grid{display:grid; grid-template-columns:.8fr 1.2fr; gap:var(--space-6); align-items:start;}
@media (max-width:860px){ .problem-grid{grid-template-columns:1fr;} }
.problem-stat{font-family:var(--font-display); font-size:clamp(1.8rem,4.2vw,3rem); font-weight:700; letter-spacing:-0.01em; color:var(--ink); line-height:1.3;}
.problem-stat > span:first-child{display:block; white-space:nowrap; overflow-wrap:break-word;}
@media (max-width:520px){ .problem-stat > span:first-child{white-space:normal;} }
.problem-stat .problem-stat-desc{display:block; white-space:normal; font-family:var(--font-body); font-size:1rem; font-weight:400; color:var(--ink-dim); margin-top:.6em;}
.problem-copy h2{margin-bottom:var(--space-3);}
.problem-copy p{color:var(--ink-dim); font-size:1.04rem; max-width:56ch;}
.problem-copy p + p{margin-top:1em;}

/* ============ Feature rows ============ */
.feature-row{display:grid; grid-template-columns:1fr 1fr; gap:var(--space-6); align-items:center; padding:var(--space-6) 0; border-top:1px solid var(--line);}
.feature-row:first-of-type{border-top:none;}
.feature-row.reverse .feature-visual{order:2;}
@media (max-width:900px){
  .feature-row{grid-template-columns:1fr;}
  .feature-row.reverse .feature-visual{order:0;}
}
.feature-copy h3{font-size:clamp(1.35rem,2.6vw,1.75rem); margin-bottom:var(--space-3);}
.feature-copy p{color:var(--ink-dim); font-size:1rem; max-width:48ch;}
.feature-list{list-style:none; margin:var(--space-4) 0 0; padding:0; display:flex; flex-direction:column; gap:.7em;}
.feature-list li{display:flex; gap:.7em; font-size:.94rem; color:var(--ink-dim);}
.feature-list li::before{content:"›"; color:var(--accent); font-weight:700;}

.panel{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-l);
  padding:var(--space-5); box-shadow:var(--shadow-card); position:relative;
}
.panel-tag{
  position:absolute; top:-1px; left:var(--space-5); transform:translateY(-50%);
  background:var(--bg); border:1px solid var(--line); padding:.25em .8em; border-radius:999px;
  font-family:var(--font-mono); font-size:.7rem; color:var(--ink-faint);
}

/* entry form mock */
.form-mock .row{display:flex; gap:.6em; margin-bottom:.7em;}
.form-field{flex:1; background:var(--surface-2); border-radius:12px; padding:.75em .9em;}
.form-field .fl{display:block; font-size:.68rem; color:var(--ink-faint); margin-bottom:.25em;}
.form-field .fv{font-family:var(--font-mono); font-weight:700; font-size:.95rem;}
.toggle-pair{display:flex; background:var(--surface-2); border-radius:12px; overflow:hidden; margin-bottom:.7em;}
.toggle-pair button{flex:1; border:0; background:transparent; padding:.75em; font-weight:700; font-size:.85rem; color:var(--ink-faint); font-family:var(--font-body);}
.toggle-pair button.on-buy{background:var(--profit-dim); color:var(--profit);}
.calc-box{background:var(--bg); border:1px dashed var(--line-strong); border-radius:12px; padding:.7em .9em .2em; margin-bottom:.7em;}
.calc-label{display:block; font-size:.62rem; color:var(--ink-faint); margin-bottom:.5em;}
.tag-label{display:block; width:100%; font-size:.68rem; color:var(--ink-faint); margin-bottom:.5em;}
.tag-row{display:flex; gap:.4em; flex-wrap:wrap; margin-bottom:.9em;}
.tag-chip{font-size:.72rem; background:var(--surface-2); color:var(--ink-dim); padding:.35em .8em; border-radius:999px;}
.tag-chip.active{background:var(--accent-dim); color:var(--accent);}
.save-btn{display:flex; align-items:center; justify-content:center; background:var(--accent); color:#fff; border-radius:12px; padding:.85em 1em; font-weight:700; font-size:.85rem;}

/* analysis donut mock */
.analysis-tabs{display:flex; gap:1em; font-size:.78rem; color:var(--ink-faint); margin-bottom:var(--space-4); overflow:hidden;}
.analysis-tabs b{color:var(--accent); font-weight:700; padding-bottom:.5em; border-bottom:2px solid var(--accent);}
.donut-row{display:flex; align-items:center; gap:var(--space-5); margin-bottom:var(--space-4);}
.donut{width:128px; height:128px; flex:none;}
.donut-figs{display:flex; flex-direction:column; gap:.65em;}
.donut-figs .f-k{font-size:.7rem; color:var(--ink-faint);}
.donut-figs .f-v{font-family:var(--font-mono); font-weight:700; font-size:1.15rem;}
.bw-row{display:flex; gap:.7em;}
.bw-card{flex:1; border:1px solid var(--profit); border-radius:12px; padding:.8em; text-align:center;}
.bw-card.worst{border-color:var(--loss);}
.bw-card .bwk{font-size:.68rem; color:var(--ink-faint); display:block; margin-bottom:.3em;}
.bw-card .bwv{font-family:var(--font-mono); font-weight:700; color:var(--profit);}
.bw-card.worst .bwv{color:var(--loss);}

/* share card mock */
.share-card{background:linear-gradient(160deg, var(--surface-2), var(--surface)); border-radius:20px; padding:var(--space-5); text-align:center; position:relative; overflow:hidden;}
.share-card .month{font-family:var(--font-mono); font-size:.75rem; color:var(--ink-faint); letter-spacing:.05em;}
.share-card .big{font-family:var(--font-mono); font-weight:800; font-size:3rem; color:var(--profit); margin:.2em 0;}
.share-card .sub-figs{display:flex; justify-content:center; gap:var(--space-4); font-family:var(--font-mono); font-size:.85rem; color:var(--ink-dim); margin-top:.6em;}
.watermark-chip{position:absolute; bottom:.8em; right:.9em; font-size:.6rem; color:var(--ink-faint); background:var(--bg); padding:.25em .6em; border-radius:999px; border:1px solid var(--line);}

/* security mock */
.sec-row{display:flex; align-items:center; justify-content:space-between; background:var(--surface-2); border-radius:14px; padding:1em 1.1em; margin-bottom:.8em;}
.sec-row .lbl{display:flex; align-items:center; gap:.7em; font-size:.9rem; font-weight:600;}
.sec-icon{width:34px; height:34px; border-radius:10px; background:var(--accent-dim); display:flex; align-items:center; justify-content:center; flex:none;}
.switch{width:44px; height:26px; border-radius:999px; background:var(--profit); position:relative; flex:none;}
.switch::after{content:""; position:absolute; width:20px; height:20px; border-radius:50%; background:#fff; top:3px; right:3px;}
.sec-note{font-size:.82rem; color:var(--ink-faint); display:flex; gap:.6em; align-items:flex-start; margin-top:.9em;}
.sec-note::before{content:"✓"; color:var(--profit); font-weight:700;}

/* ============ Stat band ============ */
.stat-band{
  background:var(--bg-alt); border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.stat-band-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-5);}
@media (max-width:760px){ .stat-band-grid{grid-template-columns:repeat(2,1fr);} }
.stat-band-item{text-align:left; padding:var(--space-3) 0;}
.stat-band-item .num{font-family:var(--font-mono); font-weight:800; font-size:clamp(2rem,4vw,2.7rem); color:var(--ink); display:block;}
.stat-band-item .lbl{color:var(--ink-dim); font-size:.88rem; margin-top:.4em; display:block;}

/* ============ Pricing ============ */
.pricing-grid{display:grid; grid-template-columns:1fr 1fr; gap:var(--space-5);}
@media (max-width:820px){ .pricing-grid{grid-template-columns:1fr;} }
.price-card{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-l); padding:var(--space-5); display:flex; flex-direction:column;}
.price-card.hi{border-color:var(--accent); position:relative; box-shadow:0 24px 60px -30px var(--accent-dim);}
.price-badge{position:absolute; top:-14px; right:var(--space-5); background:var(--accent); color:#fff; font-size:.72rem; font-weight:700; padding:.35em .9em; border-radius:999px;}
.price-name{font-family:var(--font-display); font-weight:800; font-size:1.3rem;}
.price-desc{color:var(--ink-dim); font-size:.9rem; margin-top:.4em;}
.price-tag{font-family:var(--font-mono); font-size:.85rem; color:var(--ink-faint); margin-top:var(--space-4);}
.price-list{list-style:none; margin:var(--space-4) 0 0; padding:0; display:flex; flex-direction:column; gap:.7em; flex:1;}
.price-list li{display:flex; gap:.7em; font-size:.92rem; color:var(--ink-dim);}
.price-list li::before{content:"✓"; color:var(--profit); font-weight:700;}
.price-card .btn{margin-top:var(--space-5); width:100%;}
.price-plan-row{display:flex; gap:.8em; margin-top:var(--space-4);}
.price-plan{flex:1; background:var(--surface-2); border-radius:14px; padding:.9em 1em; border:1px solid transparent;}
.price-plan.pp-best{border-color:var(--accent);}
.pp-label{display:flex; align-items:center; gap:.5em; font-size:.78rem; color:var(--ink-dim);}
.pp-label em{font-style:normal; background:var(--accent-dim); color:var(--accent); font-size:.68rem; font-weight:700; padding:.15em .5em; border-radius:999px;}
.pp-value{display:block; font-weight:700; font-size:1.25rem; margin-top:.35em;}
.pp-unit{font-size:.7rem; font-weight:400; color:var(--ink-faint);}
.pp-trial{display:block; margin-top:.4em; font-size:.72rem; color:var(--profit); font-weight:600;}
.price-fineprint{margin-top:var(--space-4); font-size:.74rem; color:var(--ink-faint); line-height:1.7;}
.price-fineprint a{color:var(--accent); text-decoration:underline;}

/* ============ FAQ ============ */
.faq-list{border-top:1px solid var(--line);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-item summary{
  padding:1.3em .2em; cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between;
  font-weight:600; font-size:1rem;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+"; font-family:var(--font-mono); color:var(--ink-faint); font-size:1.3rem; transition:transform .2s;}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item .faq-a{padding:0 .2em 1.3em; color:var(--ink-dim); max-width:62ch;}

/* ============ Final CTA ============ */
.final-cta{position:relative; text-align:center; padding:var(--space-8) 0; overflow:hidden;}
.final-cta canvas{position:absolute; inset:0; width:100%; height:100%; opacity:.28;}
.final-cta .inner{position:relative; z-index:2;}
.final-cta h2{font-size:clamp(1.9rem,4.4vw,3rem); max-width:16ch; margin:0 auto;}
.final-cta p{color:var(--ink-dim); margin-top:var(--space-3); font-size:1.05rem;}
.final-cta .hero-actions{justify-content:center; margin-top:var(--space-5);}

/* ============ Footer ============ */
footer{border-top:1px solid var(--line); padding:var(--space-6) 0 var(--space-5);}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:var(--space-5);}
@media (max-width:700px){ .foot-grid{grid-template-columns:1fr; gap:var(--space-4);} }
.foot-brand{display:flex; align-items:center; gap:.6em; font-weight:800; font-family:var(--font-display);}
.foot-tag{color:var(--ink-faint); font-size:.85rem; margin-top:.8em; max-width:34ch;}
.foot-col h4{font-size:.78rem; color:var(--ink-faint); font-weight:600; letter-spacing:.04em; margin-bottom:1em;}
.foot-col ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.7em; font-size:.9rem;}
.foot-col a{text-decoration:none; color:var(--ink-dim);}
.foot-col a:hover{color:var(--ink);}
.foot-lang{border-top:1px solid var(--line); margin-top:var(--space-5); padding-top:var(--space-4); display:flex; flex-wrap:wrap; gap:.5em 1.1em; font-size:.82rem;}
.foot-lang a{color:var(--ink-dim); text-decoration:none;}
.foot-lang a:hover{color:var(--ink);}
.foot-lang span{color:var(--ink);}
.foot-legal{border-top:1px solid var(--line); margin-top:var(--space-4); padding-top:var(--space-4); color:var(--ink-faint); font-size:.78rem; line-height:1.8;}

/* ============ Consent banner ============ */
.consent-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:100;
  background:var(--surface); border-top:1px solid var(--line-strong);
  box-shadow:0 -12px 30px -20px rgba(0,0,0,0.5);
  padding-bottom:env(safe-area-inset-bottom, 0px);
}
.consent-inner{
  display:flex; align-items:center; justify-content:space-between; gap:var(--space-4);
  flex-wrap:wrap; padding:var(--space-3) var(--space-5);
}
@media (max-width:720px){ .consent-inner{padding:var(--space-3) var(--space-4);} }
.consent-inner p{color:var(--ink-dim); font-size:.86rem; max-width:60ch;}
.consent-inner a{color:var(--accent); text-decoration:underline;}
.consent-actions{display:flex; gap:.7em; flex:none; width:100%;}
@media (min-width:521px){ .consent-actions{width:auto;} }
.consent-actions .btn{padding:.85em 1.3em; font-size:.86rem; min-height:44px; flex:1;}
@media (min-width:521px){ .consent-actions .btn{flex:none;} }
.btn-neutral{background:var(--surface-2); color:var(--ink); border-color:var(--line-strong);}
.btn-neutral:hover{border-color:var(--accent);}

/* reveal animation */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .7s var(--ease), transform .7s var(--ease);}
.reveal.in{opacity:1; transform:translateY(0);}

@media (prefers-reduced-motion: reduce){
  .ticker-track, .phone, .float-chip{animation:none !important;}
  .reveal{opacity:1 !important; transform:none !important; transition:none !important;}
}
