/* ==========================================================================
   Isthmus Prime Capital — premium private-banking ivory + navy + gold.
   Design profile: geo-adapted (Panama). Fraunces serif display, system sans
   body, radius 14, gold hairlines, soft ivory-tinted shadows.
   ========================================================================== */

/* ---------- Fonts (self-hosted Fraunces, 600/700) ---------- */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/display-600.woff2') format('woff2');
}
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/display-700.woff2') format('woff2');
}

/* ---------- Tokens ---------- */
:root {
  --bg: #F8F6F1;
  --surface: #FFFFFF;
  --surface-2: #F0ECE2;
  --border: #E2DCCB;
  --ink: #14213D;
  --muted: #5A6478;
  --accent: #B98A2F;
  --accent-hover: #96701F;
  --accent-deep: #7E5D18;
  --accent-tint: #F3E9D4;
  --gold-line: #D9C08A;
  --navy: #14213D;
  --navy-2: #1B2C50;
  --navy-3: #223462;
  --on-navy: #F3EFE6;
  --on-navy-muted: #B9C0D4;

  --font-display: 'Fraunces', Georgia, 'Times New Roman', serif;
  --font-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;

  --radius: 14px;
  --radius-sm: 10px;
  --shadow-sm: 0 1px 2px rgba(20, 33, 61, .07), 0 2px 6px rgba(20, 33, 61, .05);
  --shadow-md: 0 1px 2px rgba(20, 33, 61, .06), 0 10px 28px rgba(20, 33, 61, .10);
  --shadow-lg: 0 2px 4px rgba(20, 33, 61, .08), 0 18px 48px rgba(20, 33, 61, .16);

  --container: 1200px;
  --header-h: 74px;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.65;
  color: var(--ink);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}
img, svg, iframe, video, canvas { max-width: 100%; }
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 700; line-height: 1.18; margin: 0 0 .5em; color: var(--ink); }
h1 { font-size: clamp(1.9rem, 3.6vw, 3rem); letter-spacing: -.01em; }
h2 { font-size: clamp(1.5rem, 2.6vw, 2.15rem); letter-spacing: -.005em; }
h3 { font-size: 1.18rem; font-weight: 600; }
p { margin: 0 0 1em; }
a { color: var(--accent-hover); text-decoration: none; }
a:hover { color: var(--accent-deep); }
ul, ol { padding-left: 1.3em; margin: 0 0 1em; }
li { margin-bottom: .45em; }
strong { font-weight: 700; }
.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: clamp(16px, 4vw, 40px); }
.section { padding: clamp(44px, 6vw, 78px) 0; position: relative; }
.section--tint { background: var(--surface-2); }
.section--navy { background: var(--navy); }
.section--navy h2, .section--navy h3 { color: var(--on-navy); }
.section--navy p { color: var(--on-navy-muted); }
.section-head { max-width: 720px; margin-bottom: clamp(24px, 3vw, 40px); }
.section-head p { color: var(--muted); font-size: 1.04rem; }
.icon { width: 24px; height: 24px; flex: none; }
.icon--xs { width: 16px; height: 16px; }
.icon--lg { width: 26px; height: 26px; }
.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 200;
  background: var(--navy); color: var(--on-navy); padding: 10px 18px; border-radius: 0 0 var(--radius-sm) 0;
}
.skip-link:focus { left: 0; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* Decorative section backgrounds (motifs, never bare gradients) */
.deco-arc::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(52% 62% at 88% 12%, rgba(185, 138, 47, .07), transparent 70%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='140' viewBox='0 0 420 140'%3E%3Cg fill='none' stroke='%23B98A2F' stroke-opacity='.13' stroke-width='1.4'%3E%3Cpath d='M10 132 Q210 -60 410 132'/%3E%3Cpath d='M70 132 Q210 6 350 132'/%3E%3Cpath d='M130 132 Q210 52 290 132'/%3E%3C/g%3E%3Cpath d='M10 132h400' stroke='%23B98A2F' stroke-opacity='.18'/%3E%3C/svg%3E") right -40px top 10px / 420px no-repeat;
}
.deco-ledger::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .5), transparent 30%),
    repeating-linear-gradient(0deg, transparent 0 46px, rgba(20, 33, 61, .035) 46px 47px),
    repeating-linear-gradient(90deg, transparent 0 120px, rgba(185, 138, 47, .05) 120px 121px);
}
.deco-stars::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(46% 60% at 8% 8%, rgba(185, 138, 47, .08), transparent 70%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260' viewBox='0 0 260 260'%3E%3Cg fill='none' stroke='%2314213D' stroke-opacity='.10'%3E%3Ccircle cx='30' cy='30' r='2.4'/%3E%3Ccircle cx='120' cy='70' r='2.4'/%3E%3Ccircle cx='210' cy='30' r='2.4'/%3E%3Ccircle cx='70' cy='160' r='2.4'/%3E%3Ccircle cx='170' cy='180' r='2.4'/%3E%3Ccircle cx='240' cy='130' r='2.4'/%3E%3Cpath d='M30 30l90 40m0 0l90-40M70 160l50-90M70 160l100 20M210 30l30 100M170 180l70-50'/%3E%3C/g%3E%3C/svg%3E") left -60px top 0 / 320px no-repeat;
}

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--font-body); font-weight: 600; font-size: .95rem; line-height: 1.2;
  padding: 13px 26px; border-radius: var(--radius-sm); border: 1px solid transparent;
  cursor: pointer; white-space: nowrap; transition: background .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
.btn--primary { background: var(--accent); color: var(--navy); box-shadow: var(--shadow-sm); }
.btn--primary:hover { background: var(--accent-hover); color: #FFF; transform: translateY(-1px); box-shadow: var(--shadow-md); }
.btn--secondary { background: transparent; color: var(--navy); border-color: var(--navy); }
.btn--secondary:hover { background: var(--navy); color: var(--on-navy); transform: translateY(-1px); }
.btn--ghost { background: transparent; color: var(--on-navy); border-color: var(--gold-line); }
.btn--ghost:hover { background: rgba(217, 192, 138, .14); color: #FFF; }
.btn--lg { padding: 15px 34px; font-size: 1.02rem; }
.btn--block { width: 100%; }

/* ---------- Icon badge / cards ---------- */
.icon-badge {
  display: inline-flex; align-items: center; justify-content: center;
  width: 50px; height: 50px; border-radius: 13px; flex: none;
  background: var(--accent-tint); color: var(--accent-hover);
  border: 1px solid rgba(217, 192, 138, .55);
}
.card {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
  box-shadow: var(--shadow-sm); padding: 24px; position: relative;
  transition: transform .18s ease, box-shadow .18s ease;
}
.card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.card h3 { margin-bottom: .35em; }
.card p:last-child { margin-bottom: 0; }
.card--navy { background: var(--navy); border-color: var(--navy-3); }
.card--navy h3 { color: var(--on-navy); }
.card--navy p { color: var(--on-navy-muted); }
.grid { display: grid; gap: 20px; }
.grid--3 { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.grid--4 { grid-template-columns: repeat(auto-fit, minmax(232px, 1fr)); }
.card-head { display: flex; align-items: center; gap: 14px; margin-bottom: 10px; }
.card-head h3 { margin: 0; }

/* ---------- Header ---------- */
.site-header {
  position: sticky; top: 0; z-index: 100;
  background: rgba(248, 246, 241, .94); backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--border);
  transition: box-shadow .2s ease;
}
.site-header.is-scrolled { box-shadow: var(--shadow-md); background: var(--bg); }
.header-inner { display: flex; align-items: center; gap: 20px; min-height: var(--header-h); }
.brand { display: inline-flex; align-items: center; gap: 12px; color: var(--ink); }
.brand__mark { width: 42px; height: 42px; }
.brand__tile { fill: var(--navy); }
.brand__pylon { stroke: var(--gold-line); stroke-width: 2.6; stroke-linecap: round; }
.brand__stays { stroke: var(--accent); stroke-width: 1.5; fill: none; stroke-linecap: round; }
.brand__base { stroke: var(--gold-line); stroke-width: 2.6; stroke-linecap: round; }
.brand__star { fill: var(--accent); }
.brand__arc { stroke: var(--gold-line); stroke-width: 1.3; fill: none; stroke-linecap: round; }
.brand__word { font-family: var(--font-display); font-weight: 600; font-size: 1.06rem; letter-spacing: .01em; white-space: nowrap; }
.brand__word b { color: var(--accent-hover); font-weight: 700; }

.main-nav { margin-left: auto; }
.main-nav__list { display: flex; gap: 4px; list-style: none; margin: 0; padding: 0; }
.main-nav__trigger {
  display: inline-flex; align-items: center; gap: 6px;
  background: none; border: none; cursor: pointer; font: inherit; font-weight: 600;
  color: var(--ink); padding: 10px 12px; border-radius: var(--radius-sm);
  border-bottom: 2px solid transparent;
}
.main-nav__trigger:hover { color: var(--accent-hover); }
.main-nav__item.is-open .main-nav__trigger { color: var(--accent-hover); }
.nav-caret { transition: transform .16s ease; }
.main-nav__item.is-open .nav-caret { transform: rotate(180deg); }
.dropdown {
  position: absolute; top: calc(100% + 0px); left: 0; z-index: 110; min-width: 262px;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
  box-shadow: var(--shadow-md); padding: 8px;
  opacity: 0; visibility: hidden; transform: translateY(4px);
  transition: opacity .16s ease, transform .16s ease, visibility .16s;
}
.dropdown.align-right { left: auto; right: 0; }
.dropdown::before {
  content: ""; position: absolute; top: -5px; left: 26px; width: 10px; height: 10px;
  background: var(--surface); border-left: 1px solid var(--border); border-top: 1px solid var(--border);
  transform: rotate(45deg);
}
.dropdown.align-right::before { left: auto; right: 26px; }
.main-nav__item.is-open .dropdown { opacity: 1; visibility: visible; transform: translateY(0); }
.dropdown__list { list-style: none; margin: 0; padding: 0; }
.dropdown__link {
  display: flex; align-items: center; gap: 9px; padding: 10px 12px; border-radius: 9px;
  color: var(--ink); font-weight: 500; font-size: .95rem;
}
.dropdown__link .icon { color: var(--accent); }
.dropdown__link:hover, .dropdown__link:focus-visible, .dropdown__link.is-active { background: var(--accent-tint); color: var(--ink); }
.btn--header { padding: 11px 22px; }
.nav-toggle {
  display: none; background: none; border: 1px solid var(--border); border-radius: var(--radius-sm);
  width: 46px; height: 46px; align-items: center; justify-content: center; cursor: pointer; color: var(--ink);
}
.nav-toggle__close { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__open { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__close { display: inline-flex; }
.mobile-nav { display: none; border-top: 1px solid var(--border); padding: 10px 0 18px; background: var(--bg); }
.mobile-nav__group summary {
  display: flex; align-items: center; justify-content: space-between; cursor: pointer;
  font-weight: 600; padding: 12px 4px; list-style: none; border-bottom: 1px solid var(--border);
}
.mobile-nav__group summary::-webkit-details-marker { display: none; }
.mobile-nav__group ul { list-style: none; margin: 0; padding: 6px 4px 10px; }
.mobile-nav__group a { display: block; padding: 8px 10px; color: var(--ink); border-radius: 8px; }
.mobile-nav__group a:hover { background: var(--accent-tint); }
.mobile-nav .btn { margin-top: 14px; }

/* ---------- Ticker row (beacon injects after header) ---------- */
.site-header + .bct-ticker, header + div[id*="ticker"] { margin-top: 0; }

/* ---------- Breadcrumbs ---------- */
.breadcrumbs { background: var(--surface-2); border-bottom: 1px solid var(--border); }
.breadcrumbs .container { display: flex; align-items: center; gap: 10px; padding-block: 11px; font-size: .88rem; color: var(--muted); flex-wrap: wrap; }
.breadcrumbs a { color: var(--muted); }
.breadcrumbs a:hover { color: var(--accent-hover); }

/* ---------- Home hero ---------- */
.hero { position: relative; overflow: hidden; background: var(--bg); }
.hero__bg { position: absolute; inset: 0; pointer-events: none; }
.hero__wash {
  position: absolute; inset: 0;
  background:
    radial-gradient(60% 70% at 78% 22%, rgba(185, 138, 47, .10), transparent 68%),
    radial-gradient(42% 52% at 12% 84%, rgba(20, 33, 61, .06), transparent 70%);
}
.hero__grid {
  position: absolute; inset: 0; will-change: transform;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='340' height='340' viewBox='0 0 340 340'%3E%3Cg fill='none'%3E%3Cg stroke='%2314213D' stroke-opacity='.07'%3E%3Cpath d='M0 .5h340M0 85.5h340M0 170.5h340M0 255.5h340M.5 0v340M85.5 0v340M170.5 0v340M255.5 0v340'/%3E%3C/g%3E%3Ccircle cx='42' cy='42' r='2' fill='%23B98A2F' fill-opacity='.25'/%3E%3Ccircle cx='212' cy='128' r='2' fill='%23B98A2F' fill-opacity='.25'/%3E%3Ccircle cx='128' cy='298' r='2' fill='%23B98A2F' fill-opacity='.25'/%3E%3C/g%3E%3C/svg%3E") 0 0 / 340px;
}
.hero__inner {
  position: relative; display: grid; grid-template-columns: 1.02fr .94fr; gap: clamp(28px, 4vw, 60px);
  align-items: center; padding-block: clamp(40px, 5vw, 72px);
}
.eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: var(--accent-hover); margin-bottom: 14px;
}
.eyebrow::before { content: ""; width: 26px; height: 1.5px; background: var(--accent); }
.hero__lead { color: var(--muted); font-size: 1.05rem; max-width: 56ch; }
.hero__lead strong { color: var(--ink); }
.flags { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 18px 0 6px; }
.flags__caption { font-size: .92rem; color: var(--muted); font-weight: 600; }
.flag {
  display: inline-flex; align-items: center; gap: 8px; font-size: .88rem; font-weight: 600; color: var(--ink);
  background: var(--surface); border: 1px solid var(--border); border-radius: 999px; padding: 5px 12px 5px 6px;
  box-shadow: var(--shadow-sm);
}
.flag svg { width: 30px; height: 20px; border-radius: 4px; box-shadow: inset 0 0 0 1px rgba(20, 33, 61, .12); display: block; }
.hero__badges { display: flex; gap: 14px; flex-wrap: wrap; margin: 16px 0 22px; }
.icon-link {
  display: inline-flex; align-items: center; gap: 10px; color: var(--ink); font-weight: 600; font-size: .93rem;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
  padding: 9px 16px 9px 10px; box-shadow: var(--shadow-sm);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.icon-link .icon-badge { width: 38px; height: 38px; border-radius: 10px; }
.icon-link:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); border-color: var(--gold-line); color: var(--ink); }

/* Geo-adapted hero artwork: Panama City skyline over a cable-stay bridge arc,
   gold coin discs rising, star-in-circle node cluster. */
.hero-geo { position: relative; width: 100%; max-width: 560px; margin-left: auto; }
.hero-geo svg { width: 100%; height: auto; display: block; }
.hero-geo__skyline { fill: var(--navy); fill-opacity: .92; }
.hero-geo__tower-lit { fill: var(--navy-2); }
.hero-geo__win { fill: var(--gold-line); fill-opacity: .8; }
.hero-geo__deck { stroke: var(--navy); stroke-width: 7; }
.hero-geo__arc { fill: none; stroke: var(--accent); stroke-width: 3.2; stroke-linecap: round; }
.hero-geo__stays { stroke: var(--gold-line); stroke-width: 1.2; }
.hero-geo__pylon { stroke: var(--navy); stroke-width: 5; }
.hero-geo__coin { fill: var(--accent); stroke: var(--gold-line); stroke-width: 1.4; }
.hero-geo__coinrim { fill: none; stroke: var(--gold-line); stroke-width: 1; }
.hero-geo__node { fill: var(--surface); stroke: var(--accent); stroke-width: 1.6; }
.hero-geo__star { fill: var(--navy); }
.hero-geo__link { stroke: var(--navy); stroke-opacity: .3; stroke-width: 1; }
.hero-geo__cap { font-family: var(--font-body); font-size: 11px; fill: var(--muted); }

/* ---------- Form block (formFactory wrapper) ---------- */
.form-block { position: relative; }
.form-block__heading { font-size: 1.22rem; margin-bottom: 6px; }
.form-block__intro { color: var(--muted); font-size: .93rem; margin-bottom: 12px; }
.form-block__card {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
  box-shadow: var(--shadow-md); padding: 22px; border-top: 3px solid var(--accent);
}
.form-legal { font-size: .8rem; color: var(--muted); margin: 10px 2px 0; }
.form-manager {
  display: flex; align-items: center; gap: 8px; font-size: .84rem; font-weight: 600; color: var(--ink);
  margin: 10px 2px 0;
}
.form-manager .icon { color: var(--accent-hover); }
.beacon-form__label { display: block; font-size: .85rem; font-weight: 600; margin-bottom: 6px; color: var(--ink); }
.beacon-form__row { margin-bottom: 13px; }
.beacon-form__input, .beacon-form input, .beacon-form select {
  width: 100%; padding: 11px 14px; border: 1px solid var(--border); border-radius: var(--radius-sm);
  font: inherit; color: var(--ink); background: var(--bg); transition: border-color .16s ease, box-shadow .16s ease;
}
.beacon-form__input:focus, .beacon-form input:focus {
  outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(185, 138, 47, .18); background: #FFF;
}
.beacon-form__submit, .beacon-form button[type="submit"] {
  width: 100%; margin-top: 4px; padding: 13px 18px; border: none; border-radius: var(--radius-sm);
  background: var(--beacon-accent, var(--accent)); color: var(--beacon-on-accent, var(--navy));
  font: inherit; font-weight: 700; cursor: pointer; box-shadow: var(--shadow-sm); white-space: nowrap;
  transition: filter .16s ease, transform .16s ease;
}
.beacon-form__submit:hover, .beacon-form button[type="submit"]:hover { filter: brightness(.92); transform: translateY(-1px); }

/* ---------- Exchange strip ---------- */
.exchange-strip { background: var(--surface-2); border-block: 1px solid var(--border); padding: 26px 0; }
.exchange-strip__row { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.exchange-chip {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--font-display); font-weight: 600; font-size: .92rem; letter-spacing: .06em;
  color: var(--ink); background: var(--surface); border: 1px solid var(--border); border-radius: 999px;
  padding: 9px 20px; box-shadow: var(--shadow-sm);
}
.exchange-chip__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 3px var(--accent-tint); }
.exchange-strip__note { text-align: center; color: var(--muted); font-size: .87rem; margin: 14px auto 0; max-width: 62ch; }

/* ---------- Calculator section ---------- */
.calc-section { background: var(--surface-2); overflow: hidden; }
.calc-wrap { position: relative; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-sm); padding: clamp(18px, 3vw, 34px); }
.calc-canvas { position: absolute; right: 10px; top: 8px; width: 220px; height: 120px; opacity: .5; pointer-events: none; }
.calc-lead { color: var(--muted); }

/* ---------- Steps ---------- */
.steps-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(232px, 1fr)); gap: 20px; counter-reset: steps; }
.step-card { display: flex; flex-direction: column; gap: 8px; }
.step-card__num {
  width: 34px; height: 34px; border-radius: 50%; flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--accent); color: var(--navy); font-weight: 700; font-size: .95rem;
  box-shadow: 0 0 0 4px var(--accent-tint); margin-bottom: 6px;
}
.step-card h3 { margin: 0; }
.step-card p { color: var(--muted); font-size: .94rem; margin: 0; }

/* ---------- Comparison table ---------- */
.compare-wrap { overflow-x: auto; border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-sm); background: var(--surface); }
table.compare { width: 100%; border-collapse: collapse; min-width: 640px; }
.compare th, .compare td { padding: 14px 18px; text-align: left; border-bottom: 1px solid var(--border); font-size: .95rem; }
.compare thead th { background: var(--navy); color: var(--on-navy); font-family: var(--font-display); font-weight: 600; font-size: 1rem; }
.compare thead th:first-child { background: var(--navy-2); }
.compare tbody tr:last-child td { border-bottom: none; }
.compare td:first-child { font-weight: 600; }
.compare .yes { color: #1E7B4F; font-weight: 700; }
.compare .no { color: #B3453B; font-weight: 700; }
.compare .yes .icon, .compare .no .icon { vertical-align: -4px; margin-right: 6px; }

/* ---------- Security cards / advantages ---------- */
.security-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; }
.security-cards .card { display: flex; gap: 16px; align-items: flex-start; }
.section-cta { margin-top: 30px; text-align: center; }

/* ---------- Reviews ---------- */
.reviews { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; }
.review-card { display: flex; flex-direction: column; gap: 12px; }
.review-card__head { display: flex; align-items: center; gap: 14px; }
.review-avatar {
  width: 64px; height: 64px; border-radius: 50%; flex: none; position: relative;
  background: #E7EBF4; border: 1px solid var(--gold-line); box-shadow: 0 0 0 3px var(--surface), 0 0 0 4px var(--gold-line);
  display: inline-flex; align-items: center; justify-content: center; color: var(--navy);
}
.review-avatar .icon { width: 30px; height: 30px; }
.review-card__name { font-weight: 700; margin: 0; font-size: .98rem; }
.review-card__role { color: var(--muted); font-size: .85rem; margin: 0; }
.review-stats { display: flex; gap: 10px; flex-wrap: wrap; }
.review-stat {
  background: var(--accent-tint); border: 1px solid rgba(217, 192, 138, .55); border-radius: 9px;
  padding: 6px 12px; font-size: .8rem; color: var(--accent-deep); line-height: 1.35;
}
.review-stat b { display: block; font-size: .95rem; color: var(--ink); }
.review-card__text { color: var(--muted); font-size: .94rem; margin: 0; }
.reviews-note { text-align: center; color: var(--muted); font-size: .85rem; max-width: 68ch; margin: 26px auto 0; }

/* ---------- Company block ---------- */
.company-grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(26px, 4vw, 54px); align-items: start; }
.company-facts { list-style: none; padding: 0; margin: 18px 0 0; display: grid; gap: 14px; }
.company-facts li { display: flex; gap: 12px; align-items: flex-start; margin: 0; color: var(--muted); font-size: .95rem; }
.company-facts .icon { color: var(--accent-hover); margin-top: 3px; }
.company-facts b { color: var(--ink); display: block; font-size: .86rem; letter-spacing: .02em; }
.company-links { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.company-link {
  display: flex; flex-direction: column; gap: 10px; color: var(--ink); font-weight: 600;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
  padding: 20px; box-shadow: var(--shadow-sm); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.company-link:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); border-color: var(--gold-line); color: var(--ink); }
.company-link span { font-size: .8rem; font-weight: 500; color: var(--accent-hover); }

/* ---------- FAQ ---------- */
.faq-list { display: grid; gap: 12px; max-width: 860px; }
.faq-item { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-sm); overflow: hidden; }
.faq-item summary {
  display: flex; align-items: center; justify-content: space-between; gap: 16px; cursor: pointer;
  font-weight: 600; font-family: var(--font-display); font-size: 1.02rem; padding: 16px 20px; list-style: none;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary .icon { color: var(--accent-hover); transition: transform .16s ease; }
.faq-item[open] summary .icon { transform: rotate(180deg); }
.faq-item__body { padding: 0 20px 18px; color: var(--muted); }
.faq-item__body p:last-child { margin-bottom: 0; }

/* ---------- Tables (generic) ---------- */
.table-wrap { overflow-x: auto; border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-sm); background: var(--surface); margin: 0 0 26px; }
.table-generic { width: 100%; border-collapse: collapse; min-width: 560px; }
.table-generic th, .table-generic td { padding: 13px 16px; text-align: left; border-bottom: 1px solid var(--border); font-size: .93rem; vertical-align: top; }
.table-generic thead th { background: var(--surface-2); font-family: var(--font-display); font-weight: 600; font-size: .98rem; }
.table-generic tbody tr:nth-child(even) { background: rgba(240, 236, 226, .45); }
.table-generic tbody tr:last-child td { border-bottom: none; }
.table-note { font-size: .85rem; color: var(--muted); margin-top: -14px; }

/* ---------- Page hero (inner pages with form) ---------- */
.page-hero { position: relative; overflow: hidden; background: var(--bg); border-bottom: 1px solid var(--border); }
.page-hero__inner {
  position: relative; display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(26px, 4vw, 56px);
  align-items: center; padding-block: clamp(34px, 4.5vw, 60px);
}
.page-hero__lead { color: var(--muted); font-size: 1.02rem; max-width: 58ch; }
.page-hero__art { position: absolute; right: -30px; bottom: -12px; width: 300px; opacity: .55; pointer-events: none; }

/* ---------- Doc prose (legal/policy pages) ---------- */
.doc { max-width: 860px; }
.doc p { color: var(--muted); }
.doc p strong { color: var(--ink); }
.doc h2 { margin-top: 1.6em; }
.doc h3 { margin-top: 1.4em; font-size: 1.05rem; }
.doc ul li, .doc ol li { color: var(--muted); }
.doc .lead { font-size: 1.05rem; color: var(--ink); }
.callout {
  display: flex; gap: 14px; align-items: flex-start; background: var(--accent-tint);
  border: 1px solid rgba(217, 192, 138, .6); border-radius: var(--radius); padding: 18px 20px; margin: 22px 0;
}
.callout .icon { color: var(--accent-deep); margin-top: 2px; }
.callout p { margin: 0; color: var(--ink); font-size: .93rem; }
.risk-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 18px; margin: 26px 0; }

/* ---------- Map ---------- */
.map-embed {
  border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-sm);
  overflow: hidden; max-width: 860px; aspect-ratio: 16 / 9; min-height: 320px; background: var(--surface-2);
}
.map-embed iframe { width: 100%; height: 100%; border: 0; display: block; }

/* ---------- Timeline (About) ---------- */
.timeline { list-style: none; padding: 0; margin: 26px 0 0; position: relative; }
.timeline::before { content: ""; position: absolute; left: 86px; top: 8px; bottom: 8px; width: 2px; background: var(--gold-line); }
.timeline li { position: relative; padding: 0 0 26px 150px; margin: 0; }
.timeline b {
  position: absolute; left: 0; top: 0; width: 66px; text-align: center;
  font-family: var(--font-display); font-size: 1.05rem; color: var(--accent-hover);
  background: var(--surface); border: 1px solid var(--gold-line); border-radius: 999px; padding: 5px 0; box-shadow: var(--shadow-sm);
}
.timeline p { margin: 4px 0 0; color: var(--muted); }

/* ---------- Careers ---------- */
.vacancy { margin-bottom: 18px; }
.vacancy .card { display: grid; gap: 8px; }
.vacancy__meta { display: flex; gap: 14px; flex-wrap: wrap; font-size: .85rem; color: var(--accent-deep); font-weight: 600; }
.vacancy__meta span { display: inline-flex; align-items: center; gap: 6px; }
.vacancy__meta .icon { width: 15px; height: 15px; }
.vacancy .btn { justify-self: start; }

/* ---------- Fees tiers ---------- */
.tier-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(252px, 1fr)); gap: 18px; margin-bottom: 34px; }
.tier-card { border-top: 3px solid var(--gold-line); }
.tier-card--hot { border-top-color: var(--accent); box-shadow: var(--shadow-md); }
.tier-card .tier-price { font-family: var(--font-display); font-size: 1.7rem; font-weight: 700; color: var(--ink); }
.tier-card .tier-price small { font-size: .8rem; color: var(--muted); font-family: var(--font-body); font-weight: 500; display: block; }
.tier-card ul { list-style: none; padding: 0; margin: 12px 0 16px; }
.tier-card ul li { display: flex; gap: 8px; align-items: flex-start; font-size: .9rem; color: var(--muted); }
.tier-card ul li .icon { width: 16px; height: 16px; color: #1E7B4F; margin-top: 3px; }

/* ---------- Special offer ---------- */
.urgency-strip { background: var(--navy); color: var(--on-navy-muted); font-size: .85rem; border-bottom: 1px solid var(--navy-3); }
.urgency-strip .container { display: flex; gap: 26px; justify-content: center; flex-wrap: wrap; padding-block: 9px; }
.urgency-strip b { color: var(--gold-line); font-weight: 700; }
.so-hero { position: relative; overflow: hidden; background: var(--bg); }
.so-hero__badge {
  display: inline-flex; align-items: center; gap: 8px; background: var(--accent-tint); color: var(--accent-deep);
  border: 1px solid var(--gold-line); border-radius: 999px; padding: 7px 16px; font-weight: 700; font-size: .82rem;
  margin-bottom: 16px;
}
.so-countdown { display: flex; gap: 10px; margin: 20px 0 8px; }
.so-countdown__cell {
  background: var(--navy); border: 1px solid var(--navy-3); border-radius: var(--radius-sm);
  min-width: 86px; padding: 10px 8px; text-align: center; box-shadow: var(--shadow-sm);
}
.so-countdown__cell b { display: block; font-family: var(--font-display); font-size: 1.9rem; color: var(--gold-line); line-height: 1.1; font-variant-numeric: tabular-nums; }
.so-countdown__cell span { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--on-navy-muted); }
.so-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; }
.so-benefits { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 18px; }
.so-benefits .card { display: flex; gap: 14px; align-items: flex-start; }
.cta-band {
  background: var(--navy); border-radius: var(--radius); padding: clamp(26px, 4vw, 44px); text-align: center;
  border: 1px solid var(--navy-3); box-shadow: var(--shadow-md); position: relative; overflow: hidden;
}
.cta-band::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='380' height='120' viewBox='0 0 380 120'%3E%3Cpath d='M10 112 Q190 -50 370 112' fill='none' stroke='%23D9C08A' stroke-opacity='.25' stroke-width='1.4'/%3E%3Cpath d='M80 112 Q190 10 300 112' fill='none' stroke='%23D9C08A' stroke-opacity='.2'/%3E%3C/svg%3E") center top / 380px no-repeat;
}
.cta-band p { color: var(--on-navy); font-size: 1.12rem; font-family: var(--font-display); max-width: 40ch; margin: 0 auto 18px; }
.so-modal { position: fixed; inset: 0; z-index: 300; display: none; }
.so-modal.is-open { display: block; }
.so-modal__overlay { position: absolute; inset: 0; background: rgba(20, 33, 61, .62); }
.so-modal__card {
  position: relative; z-index: 1; max-width: 460px; margin: 9vh auto 0; background: var(--surface);
  border: 1px solid var(--gold-line); border-radius: var(--radius); box-shadow: var(--shadow-lg);
  padding: 30px 28px 26px; text-align: center; margin-inline: auto;
}
.so-modal__close {
  position: absolute; top: 10px; right: 10px; width: 36px; height: 36px; border-radius: 50%;
  border: 1px solid var(--border); background: var(--surface-2); color: var(--ink); font-size: 1.15rem; cursor: pointer;
}
.so-modal__close:hover { background: var(--accent-tint); }
.so-modal__art { width: 200px; margin: 0 auto 6px; display: block; }
.so-modal__card h3 { font-size: 1.5rem; }
.so-modal__card p { color: var(--muted); font-size: .93rem; }
.so-modal__card .so-countdown { justify-content: center; }
.so-modal__card .so-countdown__cell { min-width: 74px; }

/* ---------- 404 ---------- */
.error-page { text-align: center; padding: clamp(60px, 10vw, 120px) 0; }
.error-page__code { font-family: var(--font-display); font-size: clamp(4rem, 10vw, 6.5rem); color: var(--accent); line-height: 1; }
.error-page p { color: var(--muted); max-width: 52ch; margin-inline: auto; }

/* ---------- Footer ---------- */
.site-footer { background: var(--navy); color: var(--on-navy-muted); padding: clamp(40px, 6vw, 64px) 0 26px; margin-top: auto; }
.footer-grid { display: grid; grid-template-columns: 1.3fr repeat(4, .7fr); gap: 28px; }
.footer-brand .brand { color: var(--on-navy); margin-bottom: 14px; }
.footer-brand .brand__word { color: var(--on-navy); }
.footer-brand .brand__word b { color: var(--gold-line); }
.footer-brand p { font-size: .86rem; margin: 0 0 8px; }
.footer-brand a { color: var(--gold-line); }
.footer-hours { color: var(--on-navy-muted); }
.footer-col h2 { font-size: .95rem; font-weight: 600; color: var(--on-navy); margin-bottom: 12px; }
.footer-col ul { list-style: none; padding: 0; margin: 0; }
.footer-col a { display: inline-block; color: var(--on-navy-muted); font-size: .86rem; padding: 3.5px 0; }
.footer-col a:hover { color: var(--gold-line); }
.footer-disclaimer {
  margin-top: 34px; border-top: 1px solid var(--navy-3); padding-top: 24px;
}
.footer-disclaimer h2 { font-size: 1rem; color: var(--gold-line); margin-bottom: 8px; }
.footer-disclaimer p { font-size: .8rem; line-height: 1.6; margin: 0; }
.footer-bottom { display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; border-top: 1px solid var(--navy-3); margin-top: 22px; padding-top: 18px; }
.footer-bottom p { font-size: .8rem; margin: 0; }

/* ---------- Scroll reveal ---------- */
.reveal { opacity: 0; transform: translateY(8px); transition: opacity .5s ease, transform .5s ease; }
.reveal.is-in { opacity: 1; transform: none; }

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 920px) {
  .main-nav, .btn--header { display: none; }
  .nav-toggle { display: inline-flex; margin-left: auto; }
  .mobile-nav:not([hidden]) { display: block; }
  .hero__inner, .page-hero__inner, .company-grid { grid-template-columns: 1fr; }
  .hero-geo { max-width: 460px; margin-inline: auto; order: 3; }
  .hero__bg .hero-geo { display: none; }
  /* mobile: heading first, then the registration form, then the rest of the text */
  .hero__copy { display: flex; flex-direction: column; }
  .hero__copy .eyebrow { order: 0; }
  .hero__copy h1 { order: 1; }
  .hero__copy .hero__form { order: 2; margin-top: 4px; }
  .hero__copy .hero__lead { order: 3; }
  .hero__copy .flags, .hero__copy .hero__badges { order: 4; }
  .page-hero__art { display: none; }
  .company-links { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
  body { font-size: 15.5px; }
  .grid--4, .steps-grid, .company-links { grid-template-columns: 1fr; }
  .so-countdown__cell { min-width: 70px; }
  .so-countdown__cell b { font-size: 1.5rem; }
  .exchange-chip { font-size: .84rem; padding: 8px 14px 8px 5px; }
  .btn { padding: 12px 20px; font-size: .9rem; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .reveal { opacity: 1; transform: none; }
  .hero__grid { transform: none !important; }
}

/* testimonial photos: fill the avatar badge edge to edge */
.review-avatar img { width: 100%; height: 100%; border-radius: inherit; object-fit: cover; display: block; }

/* Production form widget integration: the beacon formFactory randomizes its
   field class names and leaves input colors to the page. These structural
   rules theme every input inside our form containers, covering both the
   page forms and the calculator modal, with this site's palette. */
.form-block input[type="text"], .form-block input[type="email"], .form-block input[type="tel"],
.form-block input[type="password"], .form-block select,
.calc-modal__content input[type="text"], .calc-modal__content input[type="email"],
.calc-modal__content input[type="tel"], .calc-modal__content input[type="password"],
.calc-modal__content select {
  background: var(--bg);
  color: var(--ink);
  border: 1px solid var(--border);
  border-radius: 6px;
}
.form-block input::placeholder, .calc-modal__content input::placeholder { color: #8A8FA3; }
.form-block input:focus, .calc-modal__content input:focus { outline: none; border-color: currentColor; }
.form-block .iti__country-list, .calc-modal__content .iti__country-list {
  background: var(--bg);
  color: var(--ink);
  border: 1px solid #E2DCCB;
  border-radius: 6px;
  margin-top: 4px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.22);
}
.form-block .iti__country:hover, .calc-modal__content .iti__country:hover,
.form-block .iti__highlight, .calc-modal__content .iti__highlight { background: var(--accent-tint); }
.form-block .iti__selected-flag, .calc-modal__content .iti__selected-flag { background: transparent; }
.form-block .iti__selected-dial-code, .calc-modal__content .iti__selected-dial-code { color: #777777; }

.tv-ticker-wrapper {
    padding-top: 0 !important;
    height: 58px !important;
}