/* Romibet Casino — slate.css
   Tokens: TYPO-09 · SPACE-01 · CONT-01(site 1340/readable 720) · GEO-06 · MOTION-07 */

/* --site--------- :root design tokens --site--------- */
:root {
  /* colors (use .final shifted values) */
  --site-primary: #06529c;
  --site-secondary: #ffc638;
  --site-accent-dark: #fec305;
  --site-bg: #020c2b;
  --site-bg-elevated: #0a1740;
  --site-gradient-from: #6bc602;
  --site-gradient-to: #0a67c0;
  --site-foreground: #ffffff;
  --site-ink-soft: #fbac01;
  --site-notice-bg: #dc2626;

  /* fonts (display Roboto per spec; body local Germania One -> readable Google substitute) */
  --site-heading-font: 'Oswald', 'Roboto', system-ui, sans-serif;
  --site-font-text: 'Roboto', system-ui, -apple-system, sans-serif;

  /* typography TYPO-09 (desktop) */
  --site-type-h1: 52px; --site-fs-h2: 32px; --site-text-h3: 24px; --site-size-h4: 19px;
  --site-type-h5: 16px; --site-fs-h6: 14px; --site-size-body: 17px; --site-type-small: 14px; --site-size-xs: 12px;
  --site-line-tight: 1.15; --site-lh-base: 1.55; --site-line-loose: 1.7;
  --site-letter-tight: 0; --site-ls-normal: 0; --site-tracking-wide: 0.02em;
  --site-weight-regular: 400; --site-weight-medium: 500; --site-fw-bold: 700;

  /* spacing SPACE-01 */
  --site-space-2xs: 4px; --site-gutter-xs: 8px; --site-spacing-sm: 12px; --site-gutter-md: 16px;
  --site-gutter-lg: 24px; --site-spacing-xl: 40px; --site-gutter-2xl: 64px; --site-gutter-3xl: 96px;

  /* container CONT-01 (site width overridden by spec globals) */
  --site-max-width: 1340px;
  --site-prose-width: 720px;
  --site-inset-mobile: 16px;
  --site-container-padding-tablet: 32px;
  --site-gutter-desktop: 48px;

  /* geometry GEO-06 */
  --site-round-xs: 0; --site-rounded-sm: 4px; --site-corner: 12px; --site-round-lg: 24px;
  --site-radius-pill: 9999px; --site-radius-circle: 50%;
  --site-shadow-xs: 0 1px 0 rgba(0,0,0,0.10);
  --site-shadow-sm: 0 2px 8px rgba(0,0,0,0.07);
  --site-elevation-2: 0 6px 16px rgba(0,0,0,0.10);
  --site-elevation-3: 0 12px 32px rgba(0,0,0,0.14);
  --site-hairline: 1px; --site-border-medium: 2px; --site-border-thick: 4px;

  /* motion MOTION-07 */
  --site-speed-fast: 150ms; --site-transition-base: 300ms; --site-speed-slow: 600ms;
  --site-ease: cubic-bezier(0.215, 0.61, 0.355, 1);
  --site-ease-in: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  --site-ease-in-out: cubic-bezier(0.645, 0.045, 0.355, 1);
  --site-ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);

  /* header heights (tall enough for 88px logo — A-13) */
  --site-header-height-desktop: 104px;
  --site-nav-h-mobile: 68px;
  --site-inner-max: calc(var(--site-max-width) + 2 * var(--site-gutter-desktop));
}

/* --site--------- reset / base --site--------- */
*, *::before, *::after { box-sizing: border-box; }
html, body { overflow-x: clip; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--site-bg);
  color: var(--site-foreground);
  font-family: var(--site-font-text);
  font-size: var(--site-size-body);
  font-weight: var(--site-weight-regular);
  line-height: var(--site-lh-base);
  padding-top: var(--site-header-height-desktop);
}
img { max-width: 100%; display: block; }
a { color: var(--site-secondary); text-decoration: none; }
a:hover { color: var(--site-accent-dark); }
h1, h2, h3, h4, h5, h6 { margin: 0 0 var(--site-gutter-md); line-height: var(--site-line-tight); }
h1 { font-family: var(--site-heading-font); font-weight: var(--site-fw-bold); font-size: var(--site-type-h1); }
h2 { font-family: var(--site-heading-font); font-weight: var(--site-fw-bold); font-size: var(--site-fs-h2); }
h3 { font-family: var(--site-font-text); font-weight: var(--site-weight-medium); font-size: var(--site-text-h3); font-style: italic; }
h4 { font-family: var(--site-font-text); font-weight: var(--site-weight-medium); font-size: var(--site-size-h4); }
p { margin: 0 0 var(--site-gutter-md); }
strong { font-weight: var(--site-fw-bold); }

/* --site--------- a11y --site--------- */
.skip-link {
  position: fixed; left: var(--site-gutter-md); z-index: 300;
  background: var(--site-secondary); color: var(--site-bg);
  padding: var(--site-gutter-xs) var(--site-gutter-md); border-radius: var(--site-rounded-sm);
}
.skip-link:not(:focus) { top: -200px !important; }
.skip-link:focus { top: var(--site-gutter-xs); }
.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;
}
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
}

.page-main { display: block; }

/* section rhythm */
main > section { padding-block: var(--site-gutter-2xl); }
main > section:first-child { padding-block: 0; }

/* generic inner-wrapper width (single site width — hard rule) */
.a28-inner, .z68-inner, .r52-inner, .p35-inner, .s28-inner, .j90-inner,
.p31-inner, .m82-inner, .n08-inner, .r60-inner, .j63-inner, .v37-inner, .i42-inner, .g94-inner {
  max-width: calc(var(--site-max-width) + 2 * var(--site-gutter-desktop));
  margin-inline: auto;
  padding-inline: var(--site-gutter-desktop);
  width: 100%;
}
/* form + legal + prose content stay at readable measure inside their full-width inner */
.v37-form, .v37-intro, .v37-success { max-width: var(--site-prose-width); margin-inline: auto; }
.i42-inner > * { max-width: var(--site-prose-width); margin-inline: auto; }
.g94-inner > h2, .g94-inner > h3, .g94-inner > p, .g94-inner > ul { max-width: var(--site-prose-width); }

/* bare component-root anchors (A-14: every HTML class defined) */
.g94, .j90, .s28, .p35, .p31 { display: block; }
.z68-logo { display: inline-flex; align-items: center; }
.z68-nav { display: block; }
.v45-body { display: flex; flex-direction: column; gap: var(--site-space-2xs); }

/* ================= HEADER — HEAD-01 + NAV-02 + STICKY-01 ================= */
.a28 {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  background: var(--site-bg);
  border-bottom: 1px solid rgba(255,255,255,0.10);
}
.a28-inner {
  display: flex; align-items: center; gap: var(--site-gutter-lg);
  height: var(--site-header-height-desktop);
}
.a28-logo { flex-shrink: 0; display: inline-flex; align-items: center; }
.a28-logo-img { height: 88px; width: auto; min-width: 88px; }
.a28-nav { margin-left: auto; }
.a28-nav-list {
  display: flex; flex-wrap: nowrap; align-items: center;
  gap: var(--site-gutter-md); list-style: none; margin: 0; padding: 0;
}
.a28-nav-item { position: relative; }
.a28-link {
  font-family: var(--site-font-text); font-size: var(--site-size-body); font-weight: var(--site-weight-medium);
  color: var(--site-ink-soft); background: none; border: 0; cursor: pointer;
  padding: var(--site-gutter-xs) 0; transition: color var(--site-speed-fast) var(--site-ease);
}
.a28-link:hover { color: var(--site-foreground); }
.a28-list a[aria-current='page'], .a28-nav-list a[aria-current='page'] { color: var(--site-foreground); }
.a28-more-toggle { display: inline-flex; align-items: center; gap: var(--site-space-2xs); }
.a28-more-chevron { font-size: 0.7em; }
.a28-nav-item--more { position: relative; }
.a28-more-menu {
  position: absolute; right: 0; top: calc(100% + var(--site-gutter-xs));
  min-width: 200px; background: var(--site-bg-elevated);
  border: 1px solid rgba(255,255,255,0.12); border-radius: var(--site-corner);
  box-shadow: var(--site-elevation-3); list-style: none; margin: 0; padding: var(--site-gutter-xs);
  z-index: 120;
}
.a28-more-menu[hidden] { display: none; }
.a28-more-menu.is-open { display: block; }
.a28-more-link {
  display: block; padding: var(--site-spacing-sm) var(--site-gutter-md);
  color: var(--site-ink-soft); font-size: var(--site-size-body); border-radius: var(--site-rounded-sm);
}
.a28-more-link:hover { color: var(--site-foreground); background: rgba(255,255,255,0.05); }
.a28-toggle {
  display: none; margin-left: auto; width: 44px; height: 44px;
  background: none; border: 0; color: var(--site-foreground); cursor: pointer;
  align-items: center; justify-content: center;
}
.a28-toggle svg rect { fill: currentColor; }
.a28-mobile { display: none; }
.a28-mobile-list { list-style: none; margin: 0; padding: 0; }
.a28-mobile-link {
  display: block; padding: var(--site-gutter-md) var(--site-inset-mobile);
  font-size: var(--site-fs-h6); color: var(--site-ink-soft);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.a28-mobile-link[aria-current='page'] { color: var(--site-foreground); }

/* body pushes down when cookie top-bar visible */
html.has-cookie body { padding-top: calc(var(--site-header-height-desktop) + 56px); }
html.has-cookie .a28 { top: 56px; }

/* ================= HERO — HERO-08 Magazine Cover ================= */
.t07 {
  position: relative; min-height: 100vh; min-height: 600px;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden; text-align: center;
}
.t07-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.t07-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(0deg, rgba(0,0,0,0.85), rgba(0,0,0,0.40));
}
.t07-cover {
  position: relative; z-index: 2; max-width: 900px;
  padding: var(--site-gutter-2xl) var(--site-gutter-desktop);
}
.t07-issue {
  display: inline-block; font-size: var(--site-size-xs); text-transform: uppercase;
  letter-spacing: var(--site-tracking-wide); color: rgba(255,255,255,0.7); margin-bottom: var(--site-gutter-md);
}
.t07-title { color: #ffffff; font-size: var(--site-type-h1); max-width: 900px; margin-inline: auto; }
.t07-deck {
  font-size: var(--site-type-h5); color: rgba(255,255,255,0.85);
  max-width: 600px; margin: var(--site-gutter-lg) auto 0; line-height: var(--site-lh-base);
}
.t07-meta {
  display: flex; gap: var(--site-gutter-md); justify-content: center;
  margin-top: var(--site-gutter-lg); font-size: var(--site-type-small); color: rgba(255,255,255,0.7);
}
.t07-meta span + span { border-left: 1px solid rgba(255,255,255,0.4); padding-left: var(--site-gutter-md); }
.t07-scroll {
  position: absolute; bottom: var(--site-gutter-lg); left: 50%; transform: translateX(-50%);
  z-index: 2; color: rgba(255,255,255,0.7); display: flex; flex-direction: column;
  align-items: center; gap: var(--site-space-2xs); font-size: var(--site-size-xs);
}
.t07-scroll svg { animation: bob 1.6s var(--site-ease-in-out) infinite; }
@keyframes bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(6px); } }

/* ================= PAGE HEADER — PHEAD-05 (no breadcrumbs) ================= */
.r52 { padding-block: var(--site-spacing-xl); }
.r52-title { font-size: var(--site-type-h1); }
.r52-description { font-size: var(--site-type-h5); color: var(--site-ink-soft); max-width: var(--site-prose-width); }

/* ================= PROSE — PROSE-08 Asymmetric Indent ================= */
.g94-inner h2 { padding-left: 0; font-size: var(--site-fs-h2); color: var(--site-foreground); margin-top: var(--site-spacing-xl); }
.g94-inner h2:first-child { margin-top: 0; }
.g94-inner h3 { padding-left: var(--site-gutter-2xl); }
.g94-inner p, .g94-inner ul { padding-left: var(--site-gutter-2xl); font-size: var(--site-size-body); line-height: var(--site-line-loose); }
.g94-inner ul { margin: 0 0 var(--site-gutter-md); }
.g94-inner li { margin-bottom: var(--site-gutter-xs); }
.g94-inner a { color: var(--site-secondary); text-decoration: underline; }
.g94-inner a:hover { color: var(--site-accent-dark); }

/* ================= ITEMS GRID — GRID-05 Wide Featured + Compact ================= */
.p35-heading { font-size: var(--site-fs-h2); margin-bottom: var(--site-spacing-xl); }
.p35-featured {
  padding: var(--site-gutter-2xl); background: var(--site-primary);
  color: #ffffff; border-radius: var(--site-round-lg); margin-bottom: var(--site-spacing-xl);
}
.p35-featured-title { font-size: var(--site-fs-h2); font-family: var(--site-heading-font); font-weight: var(--site-fw-bold); color: #ffffff; font-style: normal; }
.p35-featured-text { font-size: var(--site-type-h5); line-height: var(--site-lh-base); max-width: 720px; color: rgba(255,255,255,0.92); margin: 0; }
.p35-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--site-gutter-lg); }
.p35-card { padding: var(--site-gutter-md); border-top: 2px solid var(--site-secondary); }
.p35-card-title { font-size: var(--site-size-body); font-weight: var(--site-fw-bold); font-family: var(--site-font-text); font-style: normal; margin-bottom: var(--site-gutter-xs); }
.p35-card-text { font-size: var(--site-type-small); line-height: var(--site-lh-base); color: var(--site-ink-soft); margin: 0; }

/* ================= FAQ — FAQ-09 Magazine Q&A ================= */
.s28-heading { font-size: var(--site-fs-h2); margin-bottom: var(--site-gutter-lg); }
.s28-list { display: flex; flex-direction: column; }
.s28-item { padding-block: var(--site-gutter-lg); border-bottom: 1px solid rgba(255,255,255,0.06); }
.s28-prefix { font-family: var(--site-heading-font); font-weight: var(--site-fw-bold); color: var(--site-secondary); font-size: var(--site-type-h5); margin-right: var(--site-gutter-xs); display: inline-block; }
.s28-question { font-size: var(--site-type-h5); font-family: var(--site-heading-font); font-weight: var(--site-fw-bold); color: var(--site-foreground); font-style: italic; margin-bottom: var(--site-spacing-sm); }
.s28-answer { font-size: var(--site-size-body); line-height: var(--site-line-loose); color: var(--site-ink-soft); margin: 0; }

/* ================= REVIEWS — REV-04 Featured + List ================= */
.j90-heading { font-size: var(--site-fs-h2); margin-bottom: var(--site-spacing-xl); }
.j90-featured {
  padding: var(--site-gutter-2xl); background: rgba(6,82,156,0.20);
  border-radius: var(--site-round-lg); margin-bottom: var(--site-gutter-2xl);
}
.j90-featured-text { font-size: var(--site-size-h4); font-style: italic; line-height: var(--site-lh-base); margin: var(--site-gutter-md) 0; }
.j90-featured-cite { font-size: var(--site-type-small); color: var(--site-ink-soft); font-style: normal; }
.j90-stars { color: var(--site-secondary); font-size: var(--site-size-body); letter-spacing: 2px; }
.j90-stars--lg { font-size: 28px; }
.j90-star { color: rgba(255,255,255,0.55); }
.j90-star--on { color: var(--site-secondary); }
.j90-star--half { background: linear-gradient(90deg, var(--site-secondary) 50%, rgba(255,255,255,0.2) 50%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.j90-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--site-gutter-lg); }
.j90-item { padding: var(--site-gutter-md); border-top: 1px solid rgba(255,255,255,0.10); }
.j90-item-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--site-gutter-xs); }
.j90-item-author { font-weight: var(--site-fw-bold); font-size: var(--site-size-body); }
.j90-item-text { font-size: var(--site-type-small); line-height: var(--site-lh-base); color: var(--site-ink-soft); margin: 0; }

/* ================= DATA TABLE — TABLE-03 Card-per-row ================= */
.p31-table { width: 100%; border-collapse: collapse; }
.p31-table thead th { text-align: left; padding: var(--site-gutter-md); font-family: var(--site-heading-font); background: var(--site-primary); color: #ffffff; }
.p31-table tbody { background: var(--site-bg-elevated); }
.p31-table td { padding: var(--site-gutter-md); border-top: 1px solid rgba(255,255,255,0.08); }

/* ================= CTA — CTA-06 Sticky Bottom Banner ================= */
.n08 {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 90;
  background: var(--site-secondary); box-shadow: var(--site-elevation-3);
}
.n08.is-hidden { display: none; }
.n08-inner { display: flex; align-items: center; gap: var(--site-gutter-md); min-height: 80px; padding-block: var(--site-spacing-sm); }
.n08-title { font-size: var(--site-size-body); font-weight: var(--site-fw-bold); color: var(--site-bg); margin: 0; }
.n08-btn {
  margin-left: auto; background: var(--site-bg); color: var(--site-secondary);
  padding: var(--site-spacing-sm) var(--site-gutter-lg); border-radius: var(--site-radius-pill);
  font-weight: var(--site-fw-bold); white-space: nowrap; flex-shrink: 0;
}
.n08-btn:hover { background: #000; color: var(--site-accent-dark); }
.n08-close {
  background: none; border: 0; color: var(--site-bg); font-size: 24px;
  cursor: pointer; line-height: 1; padding: 0 var(--site-gutter-xs); flex-shrink: 0;
}

/* ================= LEGAL — LEGAL-07 Magazine Editorial ================= */
.i42 { padding-block: var(--site-gutter-2xl); }
.i42-eyebrow { display: block; font-size: var(--site-size-xs); text-transform: uppercase; letter-spacing: var(--site-tracking-wide); color: var(--site-ink-soft); margin-bottom: var(--site-spacing-sm); }
.i42-updated { font-size: var(--site-type-small); color: var(--site-ink-soft); }
.i42-intro { font-size: var(--site-size-h4); font-style: italic; font-family: var(--site-heading-font); color: var(--site-foreground); line-height: var(--site-lh-base); margin-bottom: var(--site-spacing-xl); }
.i42 h3 { font-family: var(--site-heading-font); font-style: italic; font-size: var(--site-text-h3); margin-top: var(--site-spacing-xl); }
.i42-rule { width: 80px; height: 2px; border: 0; background: var(--site-secondary); margin: 0 0 var(--site-gutter-md); }
.i42 p { line-height: var(--site-line-loose); color: var(--site-ink-soft); }
.i42 h3 + p::first-letter { font-size: 3em; float: left; line-height: 0.9; padding-right: var(--site-gutter-xs); color: var(--site-secondary); font-family: var(--site-heading-font); }
.i42-contacts { padding-left: var(--site-gutter-lg); }
.i42-contacts-item { margin-bottom: var(--site-gutter-xs); color: var(--site-ink-soft); }
.i42-disclaimer { font-size: var(--site-type-small); color: var(--site-ink-soft); border-top: 1px solid rgba(255,255,255,0.08); padding-top: var(--site-gutter-md); margin-top: var(--site-gutter-lg); }

/* ================= CONTACT FORM — FORM-01 Stacked ================= */
.v37 { padding-block: var(--site-gutter-2xl); }
.v37-intro { font-family: var(--site-font-text); font-size: var(--site-size-body); line-height: var(--site-line-loose); color: var(--site-ink-soft); margin-bottom: var(--site-gutter-lg); }
.v37-success { display: none; padding: var(--site-gutter-md); background: rgba(34,197,94,0.10); border: 1px solid rgba(34,197,94,0.3); color: var(--site-foreground); border-radius: var(--site-rounded-sm); margin-bottom: var(--site-gutter-md); }
.v37-success.is-visible { display: block; }
.v37-form { display: flex; flex-direction: column; gap: var(--site-gutter-md); background: var(--site-bg-elevated); padding: var(--site-gutter-lg); border-radius: var(--site-corner); box-shadow: var(--site-shadow-sm); }
.v37-field { display: flex; flex-direction: column; gap: var(--site-gutter-xs); }
.v37-label { font-family: var(--site-font-text); font-weight: var(--site-weight-medium); font-size: var(--site-type-small); text-transform: uppercase; letter-spacing: var(--site-tracking-wide); color: var(--site-foreground); }
.v37-input, .v37-textarea {
  font-family: var(--site-font-text); font-size: var(--site-size-body); color: var(--site-foreground);
  background: var(--site-bg); border: 1px solid rgba(255,255,255,0.12);
  border-radius: var(--site-round-xs); padding: var(--site-spacing-sm) var(--site-gutter-md);
}
.v37-input { height: 48px; }
.v37-textarea { min-height: 120px; resize: vertical; }
.v37-input:focus, .v37-textarea:focus { outline: none; border-color: var(--site-secondary); }
.v37-submit {
  align-self: flex-start; height: 48px; padding-inline: var(--site-spacing-xl);
  background: var(--site-secondary); color: var(--site-bg); border: 0;
  font-family: var(--site-heading-font); font-weight: var(--site-fw-bold); text-transform: uppercase;
  letter-spacing: var(--site-tracking-wide); border-radius: var(--site-radius-pill); cursor: pointer;
}
.v37-submit:hover { background: var(--site-accent-dark); color: var(--site-bg); }

/* ================= AUTHOR CARD — AUTH-05 (author page) ================= */
.m82 { padding-block: var(--site-spacing-xl); }
.m82-card { display: flex; gap: var(--site-gutter-lg); background: var(--site-bg-elevated); padding: var(--site-gutter-lg); border-radius: var(--site-corner); align-items: flex-start; }
.m82-portrait { flex-shrink: 0; }
.m82-portrait-img { width: 140px; height: 140px; border-radius: var(--site-radius-circle); object-fit: cover; object-position: center top; }
.m82-body { display: flex; flex-direction: column; gap: var(--site-gutter-xs); }
.m82-role { font-size: var(--site-size-xs); text-transform: uppercase; letter-spacing: var(--site-tracking-wide); color: var(--site-secondary); margin: 0; }
.m82-name { font-size: var(--site-text-h3); font-family: var(--site-heading-font); font-weight: var(--site-fw-bold); font-style: normal; margin: 0; }
.m82-bio { font-size: var(--site-size-body); line-height: var(--site-lh-base); color: var(--site-ink-soft); margin: var(--site-gutter-xs) 0; }
.m82-expertise { margin: 0; padding-left: var(--site-gutter-lg); }
.m82-expertise-item { margin-bottom: var(--site-space-2xs); color: var(--site-ink-soft); }

/* ================= BYLINE — BYLINE-02 Card Block ================= */
.v45 { padding-block: var(--site-gutter-lg); }
.v45-card { max-width: 720px; margin-inline: auto; display: flex; gap: var(--site-gutter-md); background: var(--site-bg-elevated); padding: var(--site-gutter-lg); border: 1px solid rgba(255,255,255,0.08); border-radius: var(--site-corner); }
.v45-portrait { flex-shrink: 0; }
.v45-portrait-img { width: 64px; height: 64px; border-radius: var(--site-radius-circle); object-fit: cover; object-position: center top; }
.v45-label { font-size: var(--site-size-xs); text-transform: uppercase; letter-spacing: var(--site-tracking-wide); color: var(--site-ink-soft); }
.v45-name { font-size: var(--site-size-h4); font-family: var(--site-heading-font); font-weight: var(--site-fw-bold); font-style: normal; margin: var(--site-space-2xs) 0; }
.v45-name a { color: var(--site-foreground); }
.v45-name a:hover { text-decoration: underline; }
.v45-role { font-size: var(--site-type-small); color: var(--site-ink-soft); margin: 0; }
.v45-bio { font-size: var(--site-size-body); line-height: var(--site-lh-base); margin: var(--site-gutter-xs) 0; }
.v45-dates { font-size: var(--site-type-small); color: var(--site-ink-soft); margin: 0 0 var(--site-gutter-xs); }
.v45-link { color: var(--site-secondary); font-size: var(--site-type-small); text-transform: uppercase; letter-spacing: var(--site-tracking-wide); }

/* ================= COOKIE — COOK-08 Bordered Top Bar ================= */
.r60 {
  position: fixed; top: 0; left: 0; right: 0; z-index: 200;
  height: 56px; background: var(--site-bg); border-bottom: 2px solid var(--site-secondary);
  display: none;
}
.r60.is-visible { display: block; }
.r60-inner { display: flex; align-items: center; gap: var(--site-gutter-md); height: 56px; }
.r60-icon { flex-shrink: 0; color: var(--site-secondary); }
.r60-message { flex: 1; font-size: var(--site-type-small); margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.r60-actions { display: inline-flex; gap: var(--site-gutter-xs); flex-shrink: 0; }
.r60-btn { height: 32px; padding-inline: var(--site-gutter-md); border-radius: var(--site-radius-pill); border: 1px solid var(--site-secondary); background: none; color: var(--site-foreground); font-size: var(--site-type-small); cursor: pointer; }
.r60-btn--site-accept { background: var(--site-secondary); color: var(--site-bg); font-weight: var(--site-fw-bold); }
.r60-btn--site-accept:hover { background: var(--site-accent-dark); }
.r60-btn--site-decline:hover { color: var(--site-secondary); }

/* ================= ERROR — ERR-07 Geometric Pattern ================= */
.j63 {
  padding-block: var(--site-gutter-3xl); text-align: center;
  background-color: var(--site-bg);
  background-image:
    linear-gradient(rgba(255,198,56,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,198,56,0.06) 1px, transparent 1px);
  background-size: 40px 40px;
}
.j63-title { font-size: var(--site-type-h1); max-width: 700px; margin-inline: auto; }
.j63-text { font-size: var(--site-type-h5); color: var(--site-ink-soft); max-width: 560px; margin: var(--site-gutter-md) auto var(--site-spacing-xl); }
.j63-btn { display: inline-block; background: var(--site-secondary); color: var(--site-bg); font-weight: var(--site-fw-bold); padding: var(--site-spacing-sm) var(--site-spacing-xl); border-radius: var(--site-radius-pill); }
.j63-btn:hover { background: var(--site-accent-dark); color: var(--site-bg); }

/* ================= FOOTER — FOOT-03 Massive Centered ================= */
.z68 { padding-block: var(--site-gutter-3xl); border-top: 1px solid rgba(255,255,255,0.08); }
.z68-inner { display: flex; flex-direction: column; align-items: center; gap: var(--site-gutter-lg); text-align: center; }
.z68-logo-img { height: 72px; width: auto; }
.z68-nav-list { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--site-gutter-lg); list-style: none; margin: 0; padding: 0; }
.z68-nav-link { font-size: var(--site-size-body); font-family: var(--site-heading-font); font-weight: var(--site-weight-medium); color: var(--site-ink-soft); }
.z68-nav-link:hover { color: var(--site-foreground); }
.z68-tagline { font-size: var(--site-type-small); color: var(--site-ink-soft); max-width: 480px; line-height: var(--site-line-loose); margin: 0; }
.z68-legal-row { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: var(--site-spacing-sm); }
.z68-legal-link { font-size: var(--site-size-xs); text-transform: uppercase; letter-spacing: var(--site-tracking-wide); color: var(--site-ink-soft); }
.z68-legal-link:hover { color: var(--site-foreground); }
.z68-copyright { font-size: var(--site-size-xs); color: var(--site-ink-soft); }

/* ================= FIGURES (per-page images) ================= */
.page-figure { max-width: var(--site-inner-max); margin: var(--site-spacing-xl) auto; padding-inline: var(--site-gutter-desktop); }
.page-figure-img { width: 100%; height: auto; border-radius: var(--site-corner); }
.page-figure-cap { font-size: var(--site-type-small); color: var(--site-ink-soft); margin-top: var(--site-gutter-xs); text-align: center; }

/* ================= back-to-top ================= */
.to-top {
  position: fixed; bottom: var(--site-gutter-lg); right: var(--site-gutter-lg); z-index: 85;
  width: 44px; height: 44px; border-radius: var(--site-radius-circle);
  background: var(--site-secondary); color: var(--site-bg); border: 0; cursor: pointer;
  font-size: 20px; box-shadow: var(--site-elevation-2);
}
.to-top[hidden] { display: none; }

/* ================= responsive ================= */
@media (max-width: 1024px) {
  .a28-logo-img { height: 72px; min-width: 72px; }
}
@media (max-width: 767px) {
  :root {
    --site-type-h1: 30px; --site-fs-h2: 24px; --site-text-h3: 20px; --site-size-h4: 17px;
    --site-type-h5: 15px; --site-fs-h6: 13px; --site-size-body: 16px; --site-type-small: 13px; --site-size-xs: 11px;
  }
  body { padding-top: var(--site-nav-h-mobile); }
  html.has-cookie body { padding-top: calc(var(--site-nav-h-mobile) + 92px); }
  html.has-cookie .a28 { top: 92px; }
  .a28-inner { height: var(--site-nav-h-mobile); gap: var(--site-spacing-sm); }
  .a28-logo-img { height: 56px; min-width: 56px; }
  .a28-nav { display: none; }
  .a28-toggle { display: inline-flex; }
  .a28-mobile { display: none; position: absolute; top: 100%; left: 0; right: 0; background: var(--site-bg); border-bottom: 1px solid rgba(255,255,255,0.10); }
  .a28-mobile.is-open { display: block; }
  .a28-inner, .z68-inner, .r52-inner, .p35-inner, .s28-inner, .j90-inner,
  .p31-inner, .m82-inner, .n08-inner, .r60-inner, .j63-inner,
  .g94-inner, .i42-inner, .v37-inner, .page-figure {
    padding-inline: var(--site-inset-mobile);
  }
  .p35-list, .j90-list { grid-template-columns: 1fr; }
  .g94-inner h3, .g94-inner p, .g94-inner ul { padding-left: var(--site-gutter-md); }
  .m82-card { flex-direction: column; align-items: center; text-align: center; }
  .m82-expertise { text-align: left; }
  .v45-card { flex-direction: column; }
  .p35-featured, .j90-featured { padding: var(--site-gutter-lg); }
  /* mobile cookie banner — compact stacked */
  .r60 { height: auto; }
  .r60.is-visible { display: block; }
  .r60-inner { flex-wrap: wrap; height: auto; padding-block: var(--site-spacing-sm); gap: var(--site-gutter-xs); }
  .r60-message { flex: 1 1 100%; white-space: normal; font-size: 13px; line-height: 1.35; }
  .r60-actions { flex: 1 1 100%; }
  .r60-btn { flex: 1; min-height: 36px; }
  /* mobile data-table -> card per row (TABLE-03) */
  .p31-table thead { display: none; }
  .p31-table, .p31-table tbody, .p31-table tr, .p31-table td { display: block; width: 100%; }
  .p31-table tr { margin-bottom: var(--site-gutter-md); padding: var(--site-gutter-md); background: var(--site-bg-elevated); border-radius: var(--site-corner); }
  .p31-table td { border: 0; padding: var(--site-space-2xs) 0; }
  .p31-table td::before { content: attr(data-label) ': '; font-weight: var(--site-fw-bold); color: var(--site-secondary); }
  .n08-inner { min-height: 64px; }
  .n08-title { font-size: var(--site-type-small); }
}
