/* Page structure: container, header, side panel, footer, section rhythm. */

.container { width: min(var(--container), 100% - 2 * var(--container-pad)); margin-inline: auto; }

/* ── header (mockup .hdr) ─────────────────────────────────────────────── */
.hdr {
  position: sticky; top: 0; z-index: var(--z-header);
  background: rgba(17, 21, 27, .62);
  backdrop-filter: blur(14px) saturate(1.3); -webkit-backdrop-filter: blur(14px) saturate(1.3);
  border-bottom: 1px solid var(--color-line);
  transition: background-color var(--dur-base);
}
.hdr__in { display: flex; align-items: center; gap: 1.5rem; height: var(--hdr-h); transition: height .35s var(--ease); }
.hdr.is-scrolled { background: rgba(17, 21, 27, .9); }
.hdr.is-scrolled .hdr__in { height: var(--hdr-h-small); }

.logo { display: flex; align-items: center; gap: .65rem; line-height: 1; font-family: var(--font-display); flex: none; }
.logo__mark { flex: none; width: 40px; height: 40px; transition: width .35s var(--ease), height .35s var(--ease), transform var(--dur-slow) var(--ease); }
.logo__mark img { width: 100%; height: 100%; object-fit: contain; }
a.logo:hover .logo__mark { transform: rotate(-8deg) scale(1.05); }
.hdr.is-scrolled .logo__mark { width: 34px; height: 34px; }
.logo__txt { display: flex; flex-direction: column; }
.logo--lg .logo__mark { width: 56px; height: 56px; }
.logo b { font-weight: 800; font-size: 1.28rem; letter-spacing: -.04em; }
.logo b span { color: var(--color-brand); }
.logo small { font: 600 .58rem/1 var(--font-body); letter-spacing: .42em; text-transform: uppercase; color: var(--color-muted); margin-top: 5px; padding-left: 2px; }
.logo--lg b { font-size: 1.6rem; }

.nav { display: flex; gap: .2rem; margin-inline: auto; }
.nav a { position: relative; padding: .5rem .7rem; font-size: .88rem; font-weight: 500; color: var(--color-muted); border-radius: var(--r-sm); transition: color var(--dur-fast); }
.nav a::after { content: ""; position: absolute; left: .7rem; right: .7rem; bottom: .2rem; height: 1px; background: var(--color-brand); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease); }
.nav a:hover, .nav a[aria-current] { color: var(--color-text); }
.nav a:hover::after, .nav a[aria-current]::after { transform: scaleX(1); }

.hdr__cta { display: flex; align-items: center; gap: .5rem; flex: none; }
.acct-chip { display: inline-flex; align-items: center; gap: .55rem; min-height: 40px; padding: 0 .9rem 0 .35rem; border-radius: var(--r-pill); background: var(--surface-1); box-shadow: inset 0 0 0 1px var(--color-line-gold); font-size: .88rem; font-weight: 600; transition: background-color var(--dur-fast); }
.acct-chip:hover { background: var(--surface-3); }
.acct-chip__av { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: var(--color-btn); color: var(--color-on-btn); font: 800 .8rem/1 var(--font-display); }
.hdr__out span { display: none; }
.hdr__out { padding: 0 .75rem; }

.burger { display: none; width: 44px; height: 44px; place-items: center; border-radius: var(--r-sm); box-shadow: inset 0 0 0 1px var(--color-line); transition: box-shadow var(--dur-fast); }
.burger:hover { box-shadow: inset 0 0 0 1px var(--color-line-gold); }
.burger .icon { width: 22px; height: 22px; }
.burger.burger--on { display: grid; }

/* side panel (mockup .panel) on the shared overlay system */
.overlay.overlay--menu { place-items: stretch end; padding: 0; background: rgba(0, 0, 0, .55); }
.overlay__panel.panel {
  width: min(360px, 88vw); height: 100%; max-height: none; border-radius: 0; clip-path: none;
  background: var(--surface-1); border-left: 1px solid var(--color-line-gold); border-top: 0;
  padding: 1.25rem; display: flex; flex-direction: column; gap: .25rem;
  transform: translateX(100%); transition: transform .4s var(--ease); box-shadow: var(--shadow-2);
}
.overlay--menu.is-open .panel { transform: none; }
.panel__top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; }
.panel__link { display: flex; justify-content: space-between; align-items: center; padding: .85rem .5rem; border-bottom: 1px solid var(--color-line); font-weight: 500; transition: color var(--dur-fast); }
.panel__link .icon { color: var(--color-brand); width: 16px; }
.panel__link:hover { color: var(--color-brand); }
.panel__cta { display: grid; gap: .5rem; margin-top: 1.25rem; }
.panel__cta .btn { justify-content: center; }
.panel__note { margin-top: auto; display: flex; gap: .5rem; align-items: center; color: var(--color-muted); font-size: var(--fs-small); padding-top: 1rem; }
.panel__note .icon { color: var(--color-brand); }

/* ── sections ─────────────────────────────────────────────────────────── */
section { position: relative; }
.sec { padding-block: var(--section-y); }
.sec-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.25rem; margin-bottom: 1.75rem; }
.sec-head > div:first-child { min-width: 0; max-width: 640px; }
.kicker { font: 600 .72rem/1 var(--font-body); letter-spacing: .24em; text-transform: uppercase; color: var(--color-brand); }
.h2 { font: 700 var(--fs-h2)/var(--lh-tight) var(--font-display); letter-spacing: -.035em; margin: .6rem 0 0; text-wrap: balance; }
.sec-sub { color: var(--color-muted); margin: .7rem 0 0; max-width: 560px; text-wrap: pretty; }

/* signature: the vein divider, drawn by scroll (site.js sets --p) */
.vein-div { display: block; width: 100%; height: 90px; pointer-events: none; }
.vein-div path { fill: none; stroke: url(#vg); stroke-width: 1.6; stroke-dasharray: 1; stroke-dashoffset: var(--p, 1); transition: stroke-dashoffset .15s linear; }
.vein-div circle { fill: var(--color-brand); opacity: calc(1 - var(--p, 1)); }

/* ── footer ───────────────────────────────────────────────────────────── */
.foot { background: #0D1015; border-top: 1px solid var(--color-line); padding-block: 3.5rem 2rem; font-size: .92rem; }
.foot__top { display: grid; grid-template-columns: 1.4fr repeat(3, minmax(0, 1fr)); gap: 2.5rem; }
.foot__brand p { color: var(--color-muted); margin: 1rem 0; max-width: 340px; }
.foot__mail { display: inline-flex; align-items: center; gap: .5rem; color: var(--color-brand); font-weight: 500; overflow-wrap: anywhere; }
.foot__mail:hover { text-decoration: underline; text-underline-offset: 3px; }
.foot__title { font: 600 .72rem/1 var(--font-body); letter-spacing: .22em; text-transform: uppercase; color: var(--color-brand); margin-bottom: 1rem; }
.foot__col ul { display: grid; gap: .55rem; }
.foot__col a, .foot__col .linkbtn { color: var(--color-muted); transition: color var(--dur-fast); font-size: .92rem; text-align: left; position: relative; text-decoration: none; }
.foot__col a:hover, .foot__col .linkbtn:hover { color: var(--color-text); }
.foot__data { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; margin-top: 2.75rem; background: var(--color-line); border: 1px solid var(--color-line); }
.foot__data dl { background: #0D1015; padding: 1rem 1.1rem; min-width: 0; }
.foot__data dt { font-size: var(--fs-xs); letter-spacing: .14em; text-transform: uppercase; color: var(--color-brand); font-weight: 600; }
.foot__data dd { margin: .35rem 0 0; color: var(--color-text); overflow-wrap: anywhere; }
.foot__trust { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.25rem; margin-top: 2rem; }
.foot__pay { display: flex; gap: .6rem; }
.foot__pay img { width: 64px; height: 40px; object-fit: contain; padding: 6px 8px; background: #fff; border-radius: var(--r-sm); }
.foot__rg { display: flex; align-items: center; gap: .75rem; color: var(--color-muted); max-width: 640px; font-size: var(--fs-small); }
.foot__rg a { white-space: nowrap; color: var(--color-text); text-decoration: underline; text-underline-offset: 3px; }
.age-badge { flex: none; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; border: 2px solid var(--color-brand); color: var(--color-brand); font: 800 .85rem/1 var(--font-display); }
.foot__base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; margin-top: 1.75rem; padding-top: 1.25rem; border-top: 1px solid var(--color-line); color: var(--color-muted); font-size: var(--fs-xs); }
.vein-div--foot { margin-bottom: -1px; }

/* back to top */
.to-top {
  --cut: 9px; position: fixed; right: 18px; bottom: 18px; z-index: var(--z-header);
  width: 46px; height: 46px; display: grid; place-items: center; clip-path: var(--chamfer);
  background: var(--color-btn); color: var(--color-on-btn); transition: transform var(--dur-fast) var(--ease);
}
.to-top .icon { transform: rotate(-90deg); }
.to-top:hover { transform: translateY(-3px); }
body.has-cookie .to-top { bottom: 150px; }

/* ── responsive ───────────────────────────────────────────────────────── */
@media (max-width: 1180px) { .nav a { padding: .5rem .45rem; font-size: .82rem; } }
@media (max-width: 1020px) {
  .nav, .hdr__cta { display: none; }
  .burger { display: grid; margin-left: auto; }
  :root { --hdr-h: 64px; }
  .foot__top { grid-template-columns: 1fr 1fr 1fr; }
  .foot__brand { grid-column: 1 / -1; }
  .foot__data { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .foot__data dl:last-child { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  .foot__top { grid-template-columns: 1fr 1fr; gap: 2rem 1.25rem; }
  .foot__col:last-child { grid-column: 1 / -1; }
  .vein-div { height: 60px; }
  .foot__rg { align-items: flex-start; }
}
