/* ==========================================================================
   Negxy Concept Limited — site styles
   Layout & rhythm modelled on pavago.co, colours from the Negxy logo.
   ========================================================================== */

:root {
  --blue: #0b44c4;
  --blue-dark: #003399;
  --blue-deep: #0b1530;
  --blue-light: #dde8ff;
  --blue-soft: #f5f8ff;
  --red: #ed3237;
  --red-soft: #ffe8e8;
  --yellow: #ffdd57;
  --green: #12b76a;
  --ink: #101828;
  --ink-2: #1b2333;
  --muted: #5a6680;
  --line: #e4e7ec;
  --line-2: #dce6ff;
  --white: #fff;
  --footer-bg: #eaf1fe;

  --font: "Figtree", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --radius-sm: 12px;
  --radius: 16px;
  --radius-lg: 24px;
  --pill: 999px;
  --shadow-sm: 0 1px 2px rgba(16, 24, 40, .06);
  --shadow: 0 10px 30px -12px rgba(11, 21, 48, .18);
  --shadow-lg: 0 30px 60px -20px rgba(11, 21, 48, .28);
  --wrap: 1200px;
  --gutter: 20px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
h1, h2, h3, h4 { line-height: 1.12; margin: 0 0 .5em; letter-spacing: -.02em; font-weight: 700; }
p { margin: 0 0 1em; }
ul { margin: 0; padding: 0; list-style: none; }
:focus-visible { outline: 3px solid var(--yellow); outline-offset: 2px; border-radius: 6px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); }
.icon { width: 1em; height: 1em; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  padding: .8em 1.4em; border-radius: var(--pill); border: 1.5px solid transparent;
  font-weight: 600; font-size: 1rem; line-height: 1.2; cursor: pointer; white-space: nowrap;
  transition: background .2s, color .2s, border-color .2s, transform .2s, box-shadow .2s;
}
.btn:hover { transform: translateY(-1px); }
.btn--primary { background: var(--blue); color: #fff; box-shadow: 0 6px 16px -6px rgba(11, 68, 196, .6); }
.btn--primary:hover { background: var(--blue-dark); }
.btn--dark { background: var(--ink); color: #fff; }
.btn--dark:hover { background: #000; }
.btn--ghost { background: #fff; color: var(--ink); border-color: var(--line); }
.btn--ghost:hover { border-color: var(--ink); }
.btn--yellow { background: var(--yellow); color: var(--ink); }
.btn--yellow:hover { background: #ffd22e; }
.btn--wa { background: #25d366; color: #073b1d; }
.btn--wa:hover { background: #1ebe5a; }
.btn--lg { padding: 1em 1.7em; font-size: 1.05rem; }
.btn--block { width: 100%; }

/* ---------- Eyebrow / headings ---------- */
.eyebrow {
  display: inline-flex; align-items: center; gap: .5em;
  font-size: .85rem; font-weight: 600; color: var(--blue);
  background: var(--blue-light); padding: .35em .9em; border-radius: var(--pill); margin-bottom: 1rem;
}
.eyebrow--red { color: var(--red); background: var(--red-soft); }
.section { padding: 96px 0; }
.section--soft { background: var(--blue-soft); }
.section--tight { padding: 64px 0; }
.section-head { max-width: 720px; margin: 0 auto 48px; text-align: center; }
.section-head h2 { font-size: clamp(2rem, 4.2vw, 3rem); }
.section-head p { color: var(--muted); font-size: 1.125rem; margin: 0; }
.mark { position: relative; white-space: nowrap; z-index: 0; }
.mark::after {
  content: ""; position: absolute; left: -.08em; right: -.08em; bottom: .06em; height: .38em;
  background: var(--yellow); border-radius: 4px; z-index: -1;
}
.text-blue { color: var(--blue); }

/* ---------- Announcement bar ---------- */
.topbar { background: var(--blue-deep); color: #dfe7ff; font-size: .9rem; }
.topbar .wrap { display: flex; align-items: center; justify-content: center; gap: .75rem; padding-top: 9px; padding-bottom: 9px; text-align: center; }
.topbar a { color: var(--yellow); font-weight: 600; white-space: nowrap; }
.topbar .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 4px rgba(18, 183, 106, .25); flex: none; }

/* ---------- Header ---------- */
.header { position: sticky; top: 0; z-index: 50; background: rgba(255, 255, 255, .9); backdrop-filter: saturate(180%) blur(12px); -webkit-backdrop-filter: saturate(180%) blur(12px); border-bottom: 1px solid transparent; transition: border-color .2s; }
.header.is-scrolled { border-bottom-color: var(--line); }
.header .wrap { display: flex; align-items: center; justify-content: space-between; height: 72px; gap: 24px; }
.logo img { height: 34px; width: auto; }
.nav { display: flex; align-items: center; gap: 4px; }
.nav a { padding: .5em .9em; border-radius: var(--pill); font-weight: 500; color: var(--ink-2); transition: background .2s; white-space: nowrap; }
@media (max-width: 1180px) { .header-cta .btn--ghost { display: none; } .nav a { padding: .5em .7em; } }
.nav a:hover, .nav a[aria-current="page"] { background: var(--blue-soft); color: var(--blue); }
.header-cta { display: flex; align-items: center; gap: 10px; }
.header-cta .btn { padding: .65em 1.2em; }
.burger { display: none; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 12px; background: #fff; align-items: center; justify-content: center; cursor: pointer; font-size: 22px; }
.mobile-nav { display: none; }

/* ---------- Hero ---------- */
.hero { position: relative; padding: 72px 0 40px; text-align: center; overflow: hidden; }
.hero::before {
  content: ""; position: absolute; inset: -40% -10% auto; height: 120%; z-index: -1;
  background:
    radial-gradient(40% 50% at 20% 30%, rgba(11, 68, 196, .10), transparent 70%),
    radial-gradient(35% 45% at 85% 20%, rgba(237, 50, 55, .08), transparent 70%),
    linear-gradient(180deg, var(--blue-soft), #fff 70%);
}
.hero-proof { display: inline-flex; align-items: center; gap: 12px; padding: 6px 16px 6px 6px; border: 1px solid var(--line); background: #fff; border-radius: var(--pill); box-shadow: var(--shadow-sm); margin-bottom: 28px; font-size: .92rem; }
.avatars { display: flex; }
.avatars img { width: 34px; height: 34px; border-radius: 50%; border: 2px solid #fff; margin-left: -10px; object-fit: cover; background: var(--blue-light); }
.avatars img:first-child { margin-left: 0; }
.stars { color: #f5b301; letter-spacing: 1px; }
.hero h1 { font-size: clamp(2.3rem, 6vw, 4.4rem); max-width: 1120px; margin: 0 auto 20px; letter-spacing: -.035em; }
.h1-line { display: block; }
.hero-sub { font-size: clamp(1.1rem, 2vw, 1.3rem); color: var(--muted); max-width: 720px; margin: 0 auto 36px; }
.rotator { display: inline-grid; vertical-align: bottom; text-align: left; color: var(--blue); font-weight: 700; }
.rotator span { grid-area: 1 / 1; opacity: 0; transform: translateY(.5em); transition: opacity .45s, transform .45s; }
.rotator span.is-on { opacity: 1; transform: none; }

/* Hero search (Pavago-style) */
.finder {
  max-width: 980px; margin: 0 auto; background: #fff; border: 1px solid var(--line);
  border-radius: 22px; padding: 10px; box-shadow: var(--shadow-lg);
  display: grid; grid-template-columns: 1.3fr 1fr 1fr auto; gap: 6px; text-align: left;
}
.finder label { display: block; padding: 8px 16px; border-radius: 14px; cursor: pointer; transition: background .2s; position: relative; }
.finder label:hover { background: var(--blue-soft); }
.finder label + label::before { content: ""; position: absolute; left: -3px; top: 18%; bottom: 18%; width: 1px; background: var(--line); }
.finder small { display: block; font-size: .75rem; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; }
.finder select { width: 100%; border: 0; background: transparent; font-weight: 600; font-size: 1.02rem; padding: 2px 0; cursor: pointer; appearance: none; -webkit-appearance: none; outline: none; }
.finder .btn { border-radius: 16px; padding: 0 28px; min-height: 60px; }
.ticks { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px 26px; margin-top: 22px; color: var(--muted); font-size: .95rem; }
.ticks li { display: inline-flex; align-items: center; gap: 8px; }
.ticks .icon { color: var(--green); font-size: 1.1em; stroke-width: 3; }
.hero-actions { display: flex; justify-content: center; gap: 12px; margin-top: 26px; flex-wrap: wrap; }

/* ---------- Marquee ---------- */
.marquee-block { padding: 34px 0 10px; text-align: center; }
.marquee-block p { color: var(--muted); font-size: .95rem; margin-bottom: 18px; }
.marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.marquee-track { display: flex; gap: 12px; width: max-content; animation: scroll 60s linear infinite; }
.marquee:hover .marquee-track { animation-play-state: paused; }
.marquee-track li { padding: .55em 1.1em; border: 1px solid var(--line); border-radius: var(--pill); background: #fff; font-weight: 600; color: var(--ink-2); white-space: nowrap; font-size: .95rem; }
@keyframes scroll { to { transform: translateX(-50%); } }

/* ---------- Success stories (Pavago "featured profiles") ---------- */
.stories-head { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 32px; flex-wrap: wrap; }
.stories-head h2 { font-size: clamp(2rem, 4.2vw, 3rem); margin: 0; }
.stories-layout { display: grid; grid-template-columns: 300px 1fr; gap: 24px; }
.speed-card { background: var(--blue-deep); color: #fff; border-radius: var(--radius-lg); padding: 28px; display: flex; flex-direction: column; gap: 22px; }
.speed-card h3 { font-size: .85rem; text-transform: uppercase; letter-spacing: .08em; color: #9bbaff; margin: 0; }
.speed-card strong { display: block; font-size: 2.6rem; line-height: 1; letter-spacing: -.03em; color: var(--yellow); }
.speed-card p { margin: 6px 0 0; color: #c9d4ec; font-size: .95rem; }
.speed-card hr { border: 0; border-top: 1px solid rgba(255, 255, 255, .12); margin: 0; }
.stories { display: flex; gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px 4px 18px; scrollbar-width: thin; }
.story {
  scroll-snap-align: start; flex: 0 0 320px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg);
  padding: 22px; display: flex; flex-direction: column; gap: 14px; box-shadow: var(--shadow-sm); transition: box-shadow .2s, transform .2s;
}
.story:hover { box-shadow: var(--shadow); transform: translateY(-2px); }
.story-top { display: flex; gap: 14px; align-items: center; }
.story-top img { width: 60px; height: 60px; border-radius: 50%; object-fit: cover; background: var(--blue-light); }
.story-top h3 { font-size: 1.08rem; margin: 0 0 2px; }
.story-top p { margin: 0; font-size: .88rem; color: var(--muted); line-height: 1.35; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { font-size: .78rem; font-weight: 600; padding: .3em .75em; border-radius: var(--pill); background: var(--blue-soft); color: var(--blue); border: 1px solid var(--line-2); }
.chip--green { background: #e8f8ef; color: #0f7a46; border-color: #c0f1ca; }
.story blockquote { margin: 0; color: var(--ink-2); font-size: .97rem; }
.story blockquote .more { display: none; }
.story.is-open blockquote .more { display: inline; }
.story.is-open blockquote .ellipsis { display: none; }
.story .read { margin-top: auto; align-self: flex-start; background: none; border: 0; padding: 0; color: var(--blue); font-weight: 600; cursor: pointer; }
.rating-strip { display: flex; align-items: center; gap: 14px; margin-top: 8px; color: var(--muted); font-size: .95rem; flex-wrap: wrap; }
.rating-strip b { color: var(--ink); font-size: 1.4rem; }

/* ---------- Destinations ---------- */
.dest-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.dest {
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 24px 20px;
  display: flex; flex-direction: column; gap: 10px; transition: border-color .2s, box-shadow .2s, transform .2s;
}
.dest:hover { border-color: var(--blue); box-shadow: var(--shadow); transform: translateY(-3px); }
.dest-code { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; font-weight: 800; font-size: .9rem; color: #fff; background: var(--blue); }
.dest h3 { font-size: 1.2rem; margin: 6px 0 0; }
.dest .rate { font-size: 2.6rem; font-weight: 800; letter-spacing: -.04em; line-height: 1; color: var(--ink); }
.dest .rate-label { font-size: .85rem; color: var(--muted); margin-top: -4px; }
.bar { height: 6px; background: var(--blue-light); border-radius: var(--pill); overflow: hidden; }
.bar i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--blue), #4f7cff); border-radius: inherit; transition: width 1.4s cubic-bezier(.2, .8, .2, 1); }
.dest .btn { margin-top: auto; padding: .6em 1em; font-size: .92rem; white-space: normal; text-align: center; }

/* ---------- About ---------- */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.split h2 { font-size: clamp(2rem, 4vw, 2.9rem); }
.split .lead { font-size: 1.15rem; color: var(--ink-2); }
.split p { color: var(--muted); }
.about-img { position: relative; }
.about-img img { width: 100%; border-radius: var(--radius-lg); }
.floating-badge { position: absolute; left: -10px; bottom: 30px; background: #fff; border-radius: var(--radius); box-shadow: var(--shadow-lg); padding: 16px 20px; display: flex; align-items: center; gap: 14px; }
.floating-badge strong { font-size: 1.8rem; line-height: 1; color: var(--blue); letter-spacing: -.03em; }
.floating-badge span { font-size: .85rem; color: var(--muted); line-height: 1.3; }
.stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 28px 0; }
.stat-row div { border-left: 3px solid var(--blue); padding-left: 14px; }
.stat-row strong { display: block; font-size: 1.7rem; line-height: 1.1; letter-spacing: -.03em; }
.stat-row span { font-size: .88rem; color: var(--muted); }

/* ---------- Services ---------- */
.svc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.svc { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 28px; transition: box-shadow .2s, transform .2s; }
.svc:hover { box-shadow: var(--shadow); transform: translateY(-2px); }
.svc-ico { width: 48px; height: 48px; border-radius: 14px; background: var(--blue-light); color: var(--blue); display: grid; place-items: center; font-size: 24px; margin-bottom: 18px; }
.svc h3 { font-size: 1.25rem; }
.svc p { color: var(--muted); margin: 0; }
.svc--cta { background: var(--blue); color: #fff; border-color: var(--blue); display: flex; flex-direction: column; justify-content: space-between; gap: 18px; }
.svc--cta p { color: #dbe6ff; }

/* ---------- Steps (Pavago "pricing that follows") ---------- */
.steps { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fff; overflow: hidden; }
.step { padding: 28px 22px; border-right: 1px solid var(--line); position: relative; }
.step:last-child { border-right: 0; }
.step small { font-size: .78rem; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }
.step h3 { font-size: 1.2rem; margin: 10px 0 6px; }
.step .tag { display: inline-block; font-size: .8rem; font-weight: 700; color: var(--blue); background: var(--blue-light); padding: .25em .7em; border-radius: var(--pill); margin-bottom: 12px; }
.step p { font-size: .93rem; color: var(--muted); margin: 0; }
.step:first-child { background: var(--blue-soft); }
.steps-cta { text-align: center; margin-top: 32px; }

/* ---------- Cost estimator ---------- */
.estimator { display: grid; grid-template-columns: 1fr 1.1fr; gap: 0; background: #fff; border-radius: var(--radius-lg); border: 1px solid var(--line); box-shadow: var(--shadow); overflow: hidden; }
.est-form { padding: 36px; display: flex; flex-direction: column; gap: 20px; }
.est-form h3 { font-size: 1.5rem; margin: 0; }
.seg { display: flex; flex-wrap: wrap; gap: 8px; }
.seg input { position: absolute; opacity: 0; pointer-events: none; }
.seg label { padding: .55em 1em; border: 1.5px solid var(--line); border-radius: var(--pill); cursor: pointer; font-weight: 600; font-size: .93rem; transition: all .15s; }
.seg input:checked + label { background: var(--ink); color: #fff; border-color: var(--ink); }
.seg input:focus-visible + label { outline: 3px solid var(--yellow); outline-offset: 2px; }
.field-label { font-size: .82rem; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 8px; display: block; }
.est-result { background: var(--blue-deep); color: #fff; padding: 36px; display: flex; flex-direction: column; gap: 16px; }
.est-result .total { font-size: clamp(2rem, 4vw, 2.8rem); font-weight: 800; letter-spacing: -.03em; line-height: 1.05; color: var(--yellow); }
.est-lines { display: grid; gap: 10px; }
.est-lines div { display: flex; justify-content: space-between; gap: 12px; padding-bottom: 10px; border-bottom: 1px solid rgba(255, 255, 255, .1); font-size: .95rem; }
.est-lines span { color: #c9d4ec; }
.est-note { font-size: .8rem; color: #9aa6bd; margin: 0; }
.est-capture { background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); border-radius: var(--radius); padding: 18px; display: grid; gap: 10px; }
.est-capture p { margin: 0; font-weight: 600; }
.inline-form { display: flex; gap: 8px; }
.inline-form input { flex: 1; min-width: 0; }

/* ---------- Forms ---------- */
.input, .select, .textarea {
  width: 100%; padding: .85em 1em; border: 1.5px solid var(--line); border-radius: 12px; background: #fff;
  font-size: 1rem; transition: border-color .15s, box-shadow .15s; outline: none;
}
.input:focus, .select:focus, .textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 4px rgba(11, 68, 196, .12); }
.est-capture .input { background: #fff; border-color: transparent; color: var(--ink); caret-color: var(--blue); }
.est-capture .input::placeholder { color: #98a2b3; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-grid .full { grid-column: 1 / -1; }
.form-grid label > span { display: block; font-size: .88rem; font-weight: 600; margin-bottom: 6px; color: var(--ink-2); }
.consent { display: flex; gap: 10px; align-items: flex-start; font-size: .85rem; color: var(--muted); }
.consent input { margin-top: 4px; accent-color: var(--blue); }
.form-msg { font-size: .9rem; margin: 0; }
.form-msg.ok { color: #0f7a46; }
.form-msg.err { color: #b42318; }
.is-invalid { border-color: #f04438 !important; }

/* ---------- Offices ---------- */
.offices-map { position: relative; margin-bottom: 32px; }
.offices-map img { width: 100%; opacity: .55; }
.pin { position: absolute; transform: translate(-50%, -100%); display: flex; flex-direction: column; align-items: center; }
.pin b { background: var(--ink); color: #fff; font-size: .78rem; padding: .3em .7em; border-radius: var(--pill); white-space: nowrap; box-shadow: var(--shadow); }
.pin i { width: 14px; height: 14px; border-radius: 50%; background: var(--red); border: 3px solid #fff; margin-top: 6px; box-shadow: 0 0 0 6px rgba(237, 50, 55, .2); animation: pulse 2s infinite; }
@keyframes pulse { 50% { box-shadow: 0 0 0 12px rgba(237, 50, 55, 0); } }
.office-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.office { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 24px; display: flex; flex-direction: column; gap: 10px; }
.office h3 { font-size: 1.2rem; margin: 0; display: flex; align-items: center; gap: 8px; }
.office address { font-style: normal; color: var(--muted); font-size: .93rem; }
.office .phone { font-weight: 700; }
.office .btn { margin-top: auto; padding: .6em 1em; font-size: .9rem; }

/* ---------- Consultation ---------- */
.consult { display: grid; grid-template-columns: .9fr 1.1fr; gap: 48px; align-items: start; }
.consult h2 { font-size: clamp(2rem, 4vw, 2.9rem); }
.check-list { display: grid; gap: 12px; margin: 24px 0; }
.check-list li { display: flex; gap: 12px; align-items: flex-start; }
.check-list .icon { color: var(--green); stroke-width: 3; margin-top: 4px; }
.form-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 32px; box-shadow: var(--shadow); }
.form-card h3 { font-size: 1.4rem; }

/* ---------- Two-up band (Refer / IG Live) ---------- */
.duo { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.band { border-radius: var(--radius-lg); padding: 36px; display: flex; gap: 24px; align-items: center; justify-content: space-between; overflow: hidden; position: relative; }
.band h2 { font-size: clamp(1.6rem, 3vw, 2.1rem); margin-bottom: .3em; }
.band p { margin-bottom: 1.2em; }
.band--yellow { background: var(--yellow); }
.band--dark { background: var(--blue-deep); color: #fff; }
.band--dark p { color: #c9d4ec; }
.band img { width: 150px; border-radius: var(--radius); flex: none; }
.live { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: .8rem; background: var(--red); color: #fff; padding: .3em .8em; border-radius: var(--pill); margin-bottom: 12px; letter-spacing: .06em; }
.live::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #fff; animation: blink 1.2s infinite; }
@keyframes blink { 50% { opacity: .2; } }

/* ---------- FAQ ---------- */
.faq-wrap { display: grid; grid-template-columns: .8fr 1.2fr; gap: 48px; align-items: start; }
.faq-wrap h2 { font-size: clamp(2rem, 4vw, 2.9rem); }
.faq { display: grid; gap: 10px; }
.faq details { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 0 22px; transition: border-color .2s; }
.faq details[open] { border-color: var(--blue); box-shadow: var(--shadow-sm); }
.faq summary { list-style: none; cursor: pointer; padding: 18px 0; font-weight: 600; font-size: 1.05rem; display: flex; justify-content: space-between; gap: 16px; align-items: center; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font-size: 1.5rem; font-weight: 400; color: var(--blue); transition: transform .2s; line-height: 1; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq .ans { padding-bottom: 18px; color: var(--muted); }
.faq .ans ul { list-style: disc; padding-left: 1.2em; }
.faq .ans a { color: var(--blue); font-weight: 600; text-decoration: underline; }

/* ---------- Partners ---------- */
.partners img { max-width: 900px; width: 100%; margin: 0 auto; }

/* ---------- Blog ---------- */
.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.post { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; display: flex; flex-direction: column; transition: box-shadow .2s, transform .2s; }
.post:hover { box-shadow: var(--shadow); transform: translateY(-3px); }
.post img { aspect-ratio: 16 / 9; object-fit: cover; width: 100%; background: var(--blue-soft); }
.post-body { padding: 22px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.post h3 { font-size: 1.15rem; margin: 0; line-height: 1.3; }
.post p { color: var(--muted); font-size: .95rem; margin: 0; }
.post .read-more { margin-top: auto; color: var(--blue); font-weight: 600; }

/* ---------- Final CTA ---------- */
.final { background: var(--blue); color: #fff; border-radius: 32px; padding: 72px 32px; text-align: center; position: relative; overflow: hidden; }
.final::before, .final::after { content: ""; position: absolute; border-radius: 50%; background: rgba(255, 255, 255, .06); }
.final::before { width: 420px; height: 420px; left: -120px; top: -160px; }
.final::after { width: 320px; height: 320px; right: -80px; bottom: -140px; background: rgba(237, 50, 55, .25); }
.final h2 { font-size: clamp(2.2rem, 5vw, 3.6rem); position: relative; }
.final p { color: #dbe6ff; font-size: 1.15rem; max-width: 620px; margin: 0 auto 32px; position: relative; }
.final .finder { position: relative; z-index: 1; color: var(--ink); }

/* ---------- Footer ---------- */
.footer { background: var(--footer-bg); padding: 72px 0 28px; margin-top: 96px; font-size: .95rem; }
.footer-top { display: grid; grid-template-columns: 1.4fr repeat(4, 1fr); gap: 32px; }
.footer-brand img { height: 34px; width: auto; margin-bottom: 16px; }
.footer-brand p { color: var(--muted); }
.footer h2 { font-size: .85rem; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); margin-bottom: 14px; }
.footer li { margin-bottom: 8px; }
.footer li a:hover { color: var(--blue); }
.socials { display: flex; gap: 8px; margin-top: 16px; }
.socials a { width: 40px; height: 40px; border-radius: 50%; background: #fff; display: grid; place-items: center; border: 1px solid var(--line-2); transition: background .2s, color .2s; }
.socials a:hover { background: var(--blue); color: #fff; }
.socials svg { width: 18px; height: 18px; fill: currentColor; }
.newsletter { display: flex; gap: 8px; margin-top: 8px; max-width: 380px; }
.newsletter .input { padding: .7em 1em; }
.footer-offices { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 48px; padding-top: 32px; border-top: 1px solid var(--line-2); }
.footer-offices h3 { font-size: 1rem; margin-bottom: 6px; }
.footer-offices address { font-style: normal; color: var(--muted); font-size: .9rem; margin-bottom: 6px; }
.footer-offices a { font-weight: 600; color: var(--blue); }
.footer-bottom { display: flex; justify-content: space-between; gap: 16px; margin-top: 40px; color: var(--muted); font-size: .88rem; flex-wrap: wrap; }

/* ---------- Floating WhatsApp + mobile bar ---------- */
.wa-float { position: fixed; right: 20px; bottom: 20px; z-index: 60; }
.wa-btn { width: 60px; height: 60px; border-radius: 50%; background: #25d366; color: #fff; border: 0; display: grid; place-items: center; cursor: pointer; box-shadow: 0 10px 25px -8px rgba(37, 211, 102, .7); transition: transform .2s; }
.wa-btn:hover { transform: scale(1.06); }
.wa-btn svg { width: 30px; height: 30px; fill: currentColor; }
.wa-menu { position: absolute; right: 0; bottom: 74px; width: 290px; background: #fff; border-radius: var(--radius); box-shadow: var(--shadow-lg); border: 1px solid var(--line); padding: 10px; display: none; }
.wa-float.is-open .wa-menu { display: block; }
.wa-menu p { font-size: .85rem; color: var(--muted); margin: 6px 10px 8px; }
.wa-menu a { display: flex; justify-content: space-between; align-items: center; padding: 10px 12px; border-radius: 10px; font-weight: 600; }
.wa-menu a:hover { background: var(--blue-soft); }
.wa-menu a span { font-weight: 400; color: var(--muted); font-size: .85rem; }
.mobile-bar { display: none; }

/* ---------- Modal (eligibility check + exit intent) ---------- */
.modal { position: fixed; inset: 0; z-index: 100; display: none; align-items: center; justify-content: center; padding: 16px; }
.modal.is-open { display: flex; }
.modal-backdrop { position: absolute; inset: 0; background: rgba(11, 21, 48, .6); backdrop-filter: blur(4px); }
.modal-card { position: relative; background: #fff; border-radius: var(--radius-lg); width: 100%; max-width: 620px; max-height: calc(100vh - 32px); overflow-y: auto; box-shadow: var(--shadow-lg); animation: pop .25s ease-out; }
@keyframes pop { from { transform: translateY(12px) scale(.98); opacity: 0; } }
.modal-close { position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line); background: #fff; cursor: pointer; font-size: 20px; line-height: 1; z-index: 2; }
.quiz-head { padding: 28px 32px 0; }
.progress { height: 6px; background: var(--blue-light); border-radius: var(--pill); overflow: hidden; margin: 14px 0 0; }
.progress i { display: block; height: 100%; background: var(--blue); width: 0; transition: width .3s; border-radius: inherit; }
.quiz-step { display: none; padding: 24px 32px 32px; }
.quiz-step.is-active { display: block; }
.quiz-step h3 { font-size: 1.45rem; margin-bottom: 18px; }
.opts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.opt { text-align: left; padding: 14px 16px; border: 1.5px solid var(--line); border-radius: 14px; background: #fff; cursor: pointer; font-weight: 600; transition: all .15s; display: flex; flex-direction: column; gap: 2px; }
.opt small { font-weight: 400; color: var(--muted); font-size: .82rem; }
.opt:hover { border-color: var(--blue); background: var(--blue-soft); }
.opt.is-picked { border-color: var(--blue); background: var(--blue-soft); box-shadow: inset 0 0 0 1px var(--blue); }
.quiz-nav { display: flex; justify-content: space-between; align-items: center; margin-top: 20px; gap: 12px; }
.link-btn { background: none; border: 0; color: var(--muted); cursor: pointer; font-weight: 600; padding: 8px 0; }
.result { text-align: center; }
.result-badge { display: inline-flex; width: 72px; height: 72px; border-radius: 50%; align-items: center; justify-content: center; background: #e8f8ef; color: var(--green); font-size: 34px; margin-bottom: 14px; }
.result h3 { font-size: 1.6rem; }
.result p { color: var(--muted); }
.result .btn { margin-top: 6px; }
.exit-card { max-width: 480px; text-align: center; padding: 40px 32px 32px; }
.exit-card h3 { font-size: 1.7rem; }
.exit-card p { color: var(--muted); }

/* ---------- Reveal on scroll ---------- */
.js .reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
.js .reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .js .reveal { opacity: 1; transform: none; }
}

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
  .dest-grid { grid-template-columns: repeat(3, 1fr); }
  .steps { grid-template-columns: 1fr 1fr; }
  .step { border-bottom: 1px solid var(--line); }
  .step:nth-child(2n) { border-right: 0; }
  .office-grid, .footer-offices { grid-template-columns: 1fr 1fr; }
  .footer-top { grid-template-columns: 1fr 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
  .nav, .header-cta .btn--ghost { display: none; }
  .burger { display: inline-flex; }
  .mobile-nav.is-open { display: block; position: fixed; inset: 72px 0 0; background: #fff; z-index: 49; padding: 20px; overflow-y: auto; }
  .mobile-nav a { display: block; padding: 14px 6px; font-size: 1.15rem; font-weight: 600; border-bottom: 1px solid var(--line); }
  .mobile-nav .btn { margin-top: 20px; width: 100%; border-bottom: 0; }
  .finder { grid-template-columns: 1fr 1fr; }
  .finder label:first-child { grid-column: 1 / -1; }
  .finder label + label::before { display: none; }
  .finder .btn { grid-column: 1 / -1; min-height: 54px; }
  .stories-layout, .split, .estimator, .consult, .faq-wrap, .duo { grid-template-columns: 1fr; }
  .split { gap: 40px; }
  .svc-grid, .blog-grid { grid-template-columns: 1fr 1fr; }
  .speed-card { flex-direction: row; flex-wrap: wrap; }
  .speed-card > div { flex: 1 1 180px; }
  .speed-card hr { display: none; }
}
@media (max-width: 640px) {
  :root { --gutter: 16px; }
  .section { padding: 64px 0; }
  .topbar { font-size: .82rem; }
  .header .wrap { height: 64px; }
  .mobile-nav.is-open { inset: 64px 0 0; }
  .logo img { height: 28px; }
  .header-cta .btn--primary { display: none; }
  .hero { padding: 44px 0 24px; }
  .hero-proof { font-size: .82rem; }
  .finder { grid-template-columns: 1fr; padding: 8px; }
  .finder label { border: 1px solid var(--line); }
  .dest-grid, .svc-grid, .blog-grid, .office-grid, .footer-offices, .form-grid, .opts, .stat-row { grid-template-columns: 1fr; }
  .stat-row { gap: 12px; }
  .steps { grid-template-columns: 1fr; }
  .step { border-right: 0; }
  .story { flex-basis: 85%; }
  .est-form, .est-result, .form-card { padding: 24px; }
  .inline-form, .newsletter { flex-direction: column; }
  .band { flex-direction: column; align-items: flex-start; padding: 28px; }
  .band img { width: 120px; }
  .footer-top { grid-template-columns: 1fr 1fr; }
  .final { padding: 52px 20px; border-radius: 24px; }
  .pin b { font-size: .65rem; }
  .quiz-head, .quiz-step { padding-left: 22px; padding-right: 22px; }
  .wa-float { bottom: 84px; right: 14px; }
  .wa-btn { width: 54px; height: 54px; }
  .mobile-bar { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 55; background: #fff; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); box-shadow: 0 -8px 24px -12px rgba(11, 21, 48, .2); }
  .mobile-bar .btn { padding: .8em .6em; font-size: .95rem; }
  .footer { padding-bottom: 96px; }
}

/* ==========================================================================
   Inner pages
   ========================================================================== */
.page-hero { position: relative; padding: 56px 0 64px; overflow: hidden; z-index: 0; }
.page-hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    radial-gradient(40% 60% at 15% 20%, rgba(11, 68, 196, .10), transparent 70%),
    radial-gradient(30% 50% at 90% 10%, rgba(237, 50, 55, .08), transparent 70%),
    linear-gradient(180deg, var(--blue-soft), #fff);
}
.page-hero h1 { font-size: clamp(2.3rem, 5.4vw, 4rem); letter-spacing: -.035em; max-width: 880px; }
.page-hero .lede { font-size: clamp(1.05rem, 1.8vw, 1.25rem); color: var(--muted); max-width: 680px; margin-bottom: 28px; }
.page-hero--center { text-align: center; }
.page-hero--center h1, .page-hero--center .lede { margin-left: auto; margin-right: auto; }
.page-hero .hero-actions { justify-content: flex-start; margin-top: 0; }
.page-hero .ticks { justify-content: flex-start; }
.page-hero--center .hero-actions, .page-hero--center .ticks { justify-content: center; }
.hero-split { display: grid; grid-template-columns: 1.15fr .85fr; gap: 56px; align-items: center; }
.hero-split img { width: 100%; max-width: 480px; margin-left: auto; }
.hero-split h1 { font-size: clamp(2.1rem, 4.2vw, 3.3rem); }

.crumbs { list-style: none; padding: 0; margin-top: 0; display: flex; flex-wrap: wrap; gap: 6px; font-size: .88rem; color: var(--muted); margin-bottom: 20px; }
.crumbs a { color: var(--blue); font-weight: 600; }
.crumbs li + li::before { content: "/"; margin-right: 6px; color: #9aa6bd; }
.page-hero--center .crumbs { justify-content: center; }

/* About */
.mv-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.mv { border-radius: var(--radius-lg); padding: 36px; }
.mv h2 { font-size: 1.6rem; }
.mv p { margin: 0; font-size: 1.08rem; }
.mv--blue { background: var(--blue); color: #fff; }
.mv--blue p { color: #dbe6ff; }
.mv--soft { background: var(--blue-soft); border: 1px solid var(--line-2); }
.mv--soft p { color: var(--ink-2); }
.timeline { list-style: none; display: grid; margin-top: 24px; border-left: 2px solid var(--line-2); padding-left: 24px; }
.timeline li { position: relative; padding-bottom: 18px; }
.timeline li::before { content: ""; position: absolute; left: -32px; top: 6px; width: 14px; height: 14px; border-radius: 50%; background: #fff; border: 3px solid var(--blue); }
.timeline strong { display: block; }
.timeline span { color: var(--muted); font-size: .95rem; }
.team-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.member { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 18px 18px 20px; text-align: center; transition: box-shadow .2s, transform .2s; }
.member:hover { box-shadow: var(--shadow); transform: translateY(-3px); }
.member .ph { aspect-ratio: 1; border-radius: var(--radius); background: linear-gradient(160deg, var(--blue-soft), var(--blue-light)); display: grid; place-items: center; overflow: hidden; margin-bottom: 14px; }
.member .ph img { width: 88%; height: 88%; object-fit: contain; }
.member .ph b { font-size: 2.4rem; color: var(--blue); }
.member h3 { font-size: 1.05rem; margin: 0 0 4px; }
.member p { font-size: .86rem; color: var(--muted); margin: 0; line-height: 1.4; }
.member--lead { grid-column: 1 / -1; display: grid; grid-template-columns: 240px 1fr; gap: 32px; padding: 20px 32px 20px 20px; text-align: left; align-items: center; background: var(--blue-deep); color: #fff; border-color: var(--blue-deep); }
.member--lead .ph { margin: 0; background: linear-gradient(160deg, #1b2a55, #0b1530); }
.member--lead h3 { font-size: 1.8rem; }
.member--lead p { max-width: 560px; }
.member--lead p { color: #c9d4ec; font-size: .98rem; }

/* Services */
.path-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.path { border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 32px; display: grid; grid-template-columns: 1fr 160px; gap: 24px; align-items: center; background: #fff; }
.path img { width: 160px; border-radius: var(--radius); }
.path h2 { font-size: 1.7rem; }
.path p { color: var(--muted); }
.path--dark { background: var(--blue-deep); color: #fff; border-color: var(--blue-deep); }
.path--dark p { color: #c9d4ec; }
.svc ul.mini { margin-top: 14px; display: grid; gap: 6px; font-size: .92rem; color: var(--ink-2); }
.svc ul.mini li { display: flex; gap: 8px; }
.svc ul.mini .icon { color: var(--green); stroke-width: 3; margin-top: 4px; }

/* Contact */
.contact-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 40px; align-items: start; }
.quick { display: grid; gap: 12px; }
.quick > a, .quick > div { display: flex; gap: 14px; align-items: center; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 16px 18px; transition: border-color .2s; }
.quick > a:hover { border-color: var(--blue); }
.quick .qi { width: 44px; height: 44px; border-radius: 12px; background: var(--blue-light); color: var(--blue); display: grid; place-items: center; font-size: 20px; flex: none; }
.quick small { display: block; color: var(--muted); font-size: .8rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; }
.quick strong { font-size: 1.02rem; word-break: break-word; }
.office-grid--5 { grid-template-columns: repeat(3, 1fr); }
.office .lines { display: grid; gap: 4px; font-size: .93rem; }
.office .lines a { font-weight: 600; }
.office .lines span { color: var(--muted); }
.map-embed { border: 0; width: 100%; height: 380px; border-radius: var(--radius-lg); background: var(--blue-soft); display: block; }

/* Application form */
.apply-grid { display: grid; grid-template-columns: 1.35fr .65fr; gap: 32px; align-items: start; }
.apply-form fieldset { border: 0; padding: 0; margin: 0 0 28px; min-width: 0; }
.apply-form legend { font-size: 1.15rem; font-weight: 700; margin-bottom: 14px; display: flex; align-items: center; gap: 10px; }
.apply-form legend i { font-style: normal; width: 28px; height: 28px; border-radius: 50%; background: var(--blue); color: #fff; display: grid; place-items: center; font-size: .85rem; }
.apply-form .sub { display: block; font-size: .88rem; font-weight: 600; margin-bottom: 8px; color: var(--ink-2); }
.checks { display: flex; flex-wrap: wrap; gap: 8px; }
.checks input { position: absolute; opacity: 0; pointer-events: none; }
.checks label { padding: .55em 1em; border: 1.5px solid var(--line); border-radius: var(--pill); cursor: pointer; font-weight: 600; font-size: .93rem; transition: all .15s; }
.checks input:checked + label { background: var(--blue); color: #fff; border-color: var(--blue); }
.checks input:focus-visible + label { outline: 3px solid var(--yellow); outline-offset: 2px; }
.checks.is-invalid label { border-color: #f04438; }
.side-card { background: var(--blue-deep); color: #fff; border-radius: var(--radius-lg); padding: 28px; position: sticky; top: 96px; }
.side-card h2 { font-size: 1.3rem; }
.side-card ol { margin: 0 0 20px; padding: 0; list-style: none; counter-reset: s; display: grid; gap: 14px; }
.side-card ol li { counter-increment: s; display: grid; grid-template-columns: 30px 1fr; gap: 10px; color: #c9d4ec; font-size: .95rem; }
.side-card ol li::before { content: counter(s); width: 28px; height: 28px; border-radius: 50%; background: rgba(255, 255, 255, .1); color: var(--yellow); display: grid; place-items: center; font-weight: 700; font-size: .85rem; }
.side-card ol strong { color: #fff; display: block; }
.side-card hr { border: 0; border-top: 1px solid rgba(255, 255, 255, .12); margin: 20px 0; }
.docs { display: grid; gap: 6px; font-size: .92rem; color: #c9d4ec; margin-bottom: 0; }
.docs li { display: flex; gap: 8px; }
.docs .icon { color: var(--yellow); stroke-width: 3; margin-top: 4px; }

/* Refer & earn */
.big-amount { display: inline-flex; align-items: baseline; gap: 10px; background: var(--yellow); padding: 10px 22px; border-radius: var(--radius); margin-bottom: 24px; flex-wrap: wrap; }
.big-amount strong { font-size: clamp(2rem, 5vw, 3rem); letter-spacing: -.03em; line-height: 1; }
.big-amount span { font-weight: 600; }
.feature-row { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.feature-row + .feature-row { margin-top: 72px; }
.feature-row img { border-radius: var(--radius-lg); width: 100%; }
.feature-row h2 { font-size: clamp(1.8rem, 3.4vw, 2.4rem); }
.feature-row p { color: var(--muted); }
.feature-row--flip > :first-child { order: 2; }
.steps--3 { grid-template-columns: repeat(3, 1fr); }

@media (max-width: 1080px) {
  .team-grid { grid-template-columns: repeat(3, 1fr); }
  .office-grid--5 { grid-template-columns: 1fr 1fr; }
  .steps.steps--3 { grid-template-columns: repeat(3, 1fr); }
  .steps--3 .step { border-bottom: 0; border-right: 1px solid var(--line); }
  .steps--3 .step:last-child { border-right: 0; }
}
@media (max-width: 900px) {
  .hero-split, .mv-grid, .path-grid, .contact-grid, .apply-grid, .feature-row { grid-template-columns: 1fr; }
  .hero-split img { margin: 0 auto; max-width: 360px; }
  .feature-row { gap: 28px; }
  .feature-row--flip > :first-child { order: 0; }
  .team-grid { grid-template-columns: 1fr 1fr; }
  .member--lead { grid-column: 1 / -1; }
  .side-card { position: static; }
  .steps.steps--3 { grid-template-columns: 1fr; }
  .steps--3 .step { border-right: 0; border-bottom: 1px solid var(--line); }
}
@media (max-width: 640px) {
  .page-hero { padding: 36px 0 48px; }
  .path { grid-template-columns: 1fr; padding: 24px; }
  .path img { width: 120px; order: -1; }
  .member--lead { grid-template-columns: 1fr; text-align: center; padding: 18px; }
  .member--lead .ph { max-width: 220px; margin: 0 auto; width: 100%; }
  .member--lead p { margin-left: auto; margin-right: auto; }
  .office-grid--5 { grid-template-columns: 1fr; }
  .mv { padding: 26px; }
  .map-embed { height: 280px; }
}

/* ==========================================================================
   Blog
   ========================================================================== */
.blog-search { display: flex; gap: 8px; max-width: 620px; background: #fff; border: 1px solid var(--line); border-radius: var(--pill); padding: 6px; box-shadow: var(--shadow); margin: 0 auto 18px; }
.blog-search input { flex: 1; min-width: 0; border: 0; outline: none; padding: 0 18px; font-size: 1.02rem; background: transparent; }
.blog-search .btn { padding: .75em 1.4em; }
.topics { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.topic { padding: .5em 1em; border: 1.5px solid var(--line); border-radius: var(--pill); background: #fff; font-weight: 600; font-size: .92rem; cursor: pointer; transition: all .15s; }
.topic:hover { border-color: var(--ink); }
.topic.is-on { background: var(--ink); color: #fff; border-color: var(--ink); }
.blog-status { text-align: center; color: var(--muted); margin: 0 0 24px; min-height: 1.6em; }

.post-feature { display: grid; grid-template-columns: 1.2fr 1fr; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; margin-bottom: 28px; transition: box-shadow .2s; }
.post-feature:hover { box-shadow: var(--shadow); }
.post-feature .post-media { aspect-ratio: auto; height: 100%; min-height: 300px; }
.post-feature .post-body { padding: 36px; justify-content: center; }
.post-feature h2 { font-size: clamp(1.5rem, 2.6vw, 2.1rem); margin: 0; line-height: 1.2; }
.post-media { display: block; aspect-ratio: 16 / 9; background: var(--blue-soft); overflow: hidden; }
.post-media img { width: 100%; height: 100%; object-fit: cover; }
.post-ph { width: 100%; height: 100%; min-height: 100%; display: flex; align-items: flex-end; padding: 20px; color: #fff; font-weight: 700; font-size: 1.05rem; line-height: 1.25; background: linear-gradient(135deg, var(--blue) 0%, var(--blue-deep) 70%); position: relative; overflow: hidden; }
.post-ph::after { content: ""; position: absolute; width: 180px; height: 180px; border-radius: 50%; right: -50px; top: -60px; background: rgba(237, 50, 55, .55); }
.post-ph span { position: relative; z-index: 1; max-width: 85%; }
.post-ph--uk { background: linear-gradient(135deg, #0b44c4, #0b1530 75%); }
.post-ph--canada { background: linear-gradient(135deg, #c8282d, #5a0f12 80%); }
.post-ph--ireland { background: linear-gradient(135deg, #12855a, #0b3326 80%); }
.post-ph--usa { background: linear-gradient(135deg, #1b1464, #0b1530 80%); }
.post-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: .85rem; color: var(--muted); align-items: center; }
.post-meta .chip { font-size: .75rem; }
.blog-grid--all { margin-bottom: 36px; }
.pager { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; }
.pager a, .pager span { min-width: 44px; height: 44px; padding: 0 14px; border-radius: var(--pill); border: 1px solid var(--line); display: inline-grid; place-items: center; font-weight: 600; background: #fff; }
.pager a:hover { border-color: var(--ink); }
.pager [aria-current] { background: var(--ink); color: #fff; border-color: var(--ink); }

/* Single post */
.article-head { max-width: 860px; }
.article-head h1 { font-size: clamp(2rem, 4.6vw, 3.2rem); letter-spacing: -.03em; }
.article-head .post-meta { font-size: .95rem; margin-top: 8px; }
.article-cover { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); }
.article-cover img, .article-cover .post-ph { background: var(--blue-soft); width: 100%; border-radius: var(--radius-lg); aspect-ratio: 16 / 7; object-fit: cover; font-size: clamp(1.3rem, 3vw, 2.2rem); padding: 32px; }
.article-wrap { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 56px; align-items: start; padding-top: 48px; }
.article-side { position: sticky; top: 96px; display: grid; gap: 16px; }
.toc { border: 1px solid var(--line); border-radius: var(--radius); padding: 20px; background: #fff; }
.toc h2 { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); margin-bottom: 10px; }
.toc ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: .92rem; max-height: 46vh; overflow: auto; }
.toc a { color: var(--ink-2); display: block; line-height: 1.35; }
.toc a:hover, .toc a.is-active { color: var(--blue); }
.side-cta { background: var(--blue); color: #fff; border-radius: var(--radius); padding: 22px; }
.side-cta h2 { font-size: 1.2rem; }
.side-cta p { color: #dbe6ff; font-size: .93rem; }
.side-cta .btn { width: 100%; margin-top: 8px; }

.prose { font-size: 1.1rem; line-height: 1.75; color: var(--ink-2); max-width: 760px; }
.prose > * + * { margin-top: 1.1em; }
.prose > :first-child { margin-top: 0; }
.prose p { margin-bottom: 0; }
.prose h2 { font-size: clamp(1.5rem, 2.6vw, 1.9rem); margin: 1.8em 0 .2em; color: var(--ink); scroll-margin-top: 96px; }
.prose h3 { font-size: 1.3rem; margin: 1.5em 0 .2em; color: var(--ink); }
.prose h4 { font-size: 1.12rem; margin: 1.3em 0 .2em; color: var(--ink); }
.prose ul, .prose ol { padding-left: 1.3em; margin-top: .8em; list-style: revert; }
.prose li + li { margin-top: .4em; }
.prose a { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; font-weight: 500; }
.prose img { border-radius: var(--radius); margin: 0 auto; height: auto; }
.prose figure, .prose .wp-caption { margin: 1.6em 0; max-width: 100% !important; }
.prose figcaption, .prose .wp-caption-text { font-size: .9rem; color: var(--muted); text-align: center; margin-top: 8px; }
.prose .aligncenter { margin-left: auto; margin-right: auto; }
.prose .alignleft { float: left; margin: .3em 1.4em 1em 0; max-width: 45%; }
.prose .alignright { float: right; margin: .3em 0 1em 1.4em; max-width: 45%; }
.prose blockquote { margin: 1.6em 0; padding: 18px 22px; border-left: 4px solid var(--blue); background: var(--blue-soft); border-radius: 0 var(--radius) var(--radius) 0; }
.prose table { width: 100%; border-collapse: collapse; font-size: .95rem; display: block; overflow-x: auto; }
.prose td, .prose th { border: 1px solid var(--line); padding: 10px 12px; text-align: left; vertical-align: top; }
.prose tr:first-child td { background: var(--blue-soft); font-weight: 600; }
.prose iframe, .prose video { width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0; border-radius: var(--radius); }
.prose .schema-faq-section { border: 1px solid var(--line); border-radius: var(--radius); padding: 16px 20px; }
.prose .schema-faq-question { display: block; font-weight: 700; color: var(--ink); }
.prose::after { content: ""; display: block; clear: both; }

.cta-inline { margin: 2em 0 !important; background: var(--blue-deep); color: #fff; border-radius: var(--radius-lg); padding: 26px 28px; display: flex; gap: 20px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.cta-inline strong { display: block; font-size: 1.2rem; line-height: 1.3; margin-bottom: 4px; }
.cta-inline span { color: #c9d4ec; font-size: .98rem; }
.cta-inline .btn { text-decoration: none; }

.share { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--line); font-weight: 600; }
.share a { padding: .5em 1em; border-radius: var(--pill); border: 1px solid var(--line); font-size: .9rem; }
.share a:hover { border-color: var(--ink); }
.author-box { display: flex; gap: 16px; align-items: center; margin-top: 28px; padding: 22px; border-radius: var(--radius); background: var(--blue-soft); }
.author-box img { width: 56px; height: 56px; border-radius: 50%; background: #fff; padding: 6px; object-fit: contain; }
.author-box p { margin: 0; color: var(--muted); font-size: .95rem; }

@media (max-width: 1080px) {
  .article-wrap { grid-template-columns: minmax(0, 1fr) 280px; gap: 36px; }
}
@media (max-width: 900px) {
  .post-feature { grid-template-columns: 1fr; }
  .post-feature .post-media { min-height: 0; aspect-ratio: 16 / 9; }
  .post-feature .post-body { padding: 24px; }
  .article-wrap { grid-template-columns: 1fr; }
  .article-side { position: static; order: 2; }
  .article-side .toc { display: none; }
  .article-cover img, .article-cover .post-ph { aspect-ratio: 16 / 9; }
}
@media (max-width: 640px) {
  .prose { font-size: 1.04rem; }
  .prose .alignleft, .prose .alignright { float: none; max-width: 100%; margin: 1em auto; }
  .blog-search { border-radius: 18px; }
  .cta-inline { padding: 22px; }
}

/* ==========================================================================
   Destination hover cards (PiggyVest-style): pastel card fills with the
   country colour on hover/focus/tap and a details panel slides up.
   ========================================================================== */
.dx-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.dx {
  --soft: #e3ecff; --strong: #0b44c4; --tag: #0b44c4;
  position: relative; overflow: hidden; isolation: isolate;
  min-height: 484px; border-radius: var(--radius-lg); padding: 28px;
  background: var(--soft); color: var(--ink); cursor: default; outline: none;
  transition: background-color .4s ease, color .4s ease, transform .4s ease, box-shadow .4s ease;
}
.dx--uk { --soft: #e3ecff; --strong: #0b44c4; --tag: #0b44c4; }
.dx--ie { --soft: #e0f5ea; --strong: #0e7a51; --tag: #0e7a51; }
.dx--ca { --soft: #ffe6e6; --strong: #c8282d; --tag: #c8282d; }
.dx--us { --soft: #ebe8fb; --strong: #1b1464; --tag: #1b1464; }
.dx--au { --soft: #fff0d4; --strong: #9a5800; --tag: #9a5800; }
.dx--help { --soft: #fff6cc; --strong: #101828; --tag: #101828; }
/* big faded country code in the corner */
.dx::before {
  content: attr(data-code); position: absolute; right: -6px; top: -18px; z-index: -1;
  font-size: 7.5rem; font-weight: 800; letter-spacing: -.06em; line-height: 1; color: var(--strong); opacity: .07;
  transition: opacity .4s, transform .6s ease;
}
.dx-tag {
  display: inline-grid; place-items: center; min-width: 44px; height: 44px; padding: 0 10px; border-radius: 12px;
  background: var(--tag); color: #fff; font-weight: 800; font-size: .9rem; transition: background .4s, color .4s;
}
.dx h3 { font-size: 1.6rem; margin: 18px 0 8px; }
.dx-front p { color: var(--ink-2); margin: 0; max-width: 30ch; transition: color .4s; }
.dx-rate { display: flex; align-items: center; gap: 12px; margin-top: 22px; transition: opacity .3s, transform .4s; }
.dx-rate strong { font-size: 2.8rem; font-weight: 800; letter-spacing: -.04em; line-height: 1; }
.dx-rate span { font-size: .85rem; color: var(--muted); line-height: 1.3; transition: color .4s; }
.dx-hint {
  position: absolute; left: 28px; bottom: 26px; display: inline-flex; align-items: center; gap: 6px;
  font-weight: 700; font-size: .95rem; color: var(--strong); transition: opacity .3s, transform .3s;
}
.dx-back {
  position: absolute; left: 14px; right: 14px; bottom: 14px; z-index: 1;
  background: #fff; color: var(--ink); border-radius: 18px; padding: 20px;
  box-shadow: 0 20px 40px -18px rgba(11, 21, 48, .45);
  transform: translateY(calc(100% + 30px)); opacity: 0;
  transition: transform .5s cubic-bezier(.2, .8, .2, 1), opacity .3s ease;
}
.dx-back h4 { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); margin: 0 0 10px; }
.dx-back ul { display: grid; gap: 8px; margin: 0 0 16px; font-size: .93rem; line-height: 1.4; }
.dx-back li { display: flex; gap: 8px; }
.dx-back .icon { color: var(--strong); stroke-width: 3; margin-top: 3px; }
.dx-back .btn { padding: .75em 1em; }

/* active state: hover (mouse), keyboard focus inside the card, or tapped on touch screens */
.dx:hover, .dx:focus-within, .dx.is-active { background: var(--strong); color: #fff; transform: translateY(-4px); box-shadow: 0 24px 48px -24px var(--strong); }
.dx:hover::before, .dx:focus-within::before, .dx.is-active::before { color: #fff; opacity: .12; transform: scale(1.08); }
.dx:hover .dx-tag, .dx:focus-within .dx-tag, .dx.is-active .dx-tag { background: #fff; color: var(--strong); }
.dx:hover .dx-front p, .dx:focus-within .dx-front p, .dx.is-active .dx-front p { color: rgba(255, 255, 255, .85); }
.dx:hover .dx-rate, .dx:focus-within .dx-rate, .dx.is-active .dx-rate { opacity: 0; transform: translateY(-8px); }
.dx:hover .dx-hint, .dx:focus-within .dx-hint, .dx.is-active .dx-hint { opacity: 0; transform: translateY(8px); }
.dx:hover .dx-back, .dx:focus-within .dx-back, .dx.is-active .dx-back { transform: none; opacity: 1; }
.dx-note { display: block; margin-top: 6px; font-size: .95rem; color: var(--blue); font-weight: 600; }

/* touch screens: no hover, so cards flip on tap (handled in main.js) */
@media (hover: none) {
  .dx { cursor: pointer; }
  .dx:hover:not(.is-active):not(:focus-within) { background: var(--soft); color: var(--ink); transform: none; box-shadow: none; }
  .dx:hover:not(.is-active):not(:focus-within) .dx-back { transform: translateY(calc(100% + 30px)); opacity: 0; }
  .dx:hover:not(.is-active):not(:focus-within) .dx-rate, .dx:hover:not(.is-active):not(:focus-within) .dx-hint { opacity: 1; transform: none; }
  .dx:hover:not(.is-active):not(:focus-within) .dx-tag { background: var(--tag); color: #fff; }
  .dx:hover:not(.is-active):not(:focus-within) .dx-front p { color: var(--ink-2); }
}
@media (max-width: 1080px) { .dx-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
  .dx-grid { grid-template-columns: 1fr; gap: 14px; }
  .dx { min-height: 476px; padding: 24px; }
  .dx-hint { left: 24px; }
}
@media (prefers-reduced-motion: reduce) { .dx-back { transition: none; } }

/* ==========================================================================
   Awards & Achievements page
   ========================================================================== */
.ach-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ach-stat { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 28px; display: flex; flex-direction: column; gap: 6px; }
.ach-stat strong { font-size: clamp(2.4rem, 4.4vw, 3.4rem); font-weight: 800; letter-spacing: -.04em; line-height: 1; color: var(--ink); }
.ach-stat strong small { font-size: .5em; color: #f5b301; vertical-align: super; }
.ach-stat span { color: var(--muted); }
.ach-stat--blue { background: var(--blue); border-color: var(--blue); }
.ach-stat--blue strong { color: #fff; }
.ach-stat--blue span { color: #dbe6ff; }
.ach-stat--yellow { background: var(--yellow); border-color: var(--yellow); }
.ach-stat--yellow span { color: var(--ink-2); }

/* Shown automatically once the grid has at least one .award-card */
.awards-section { display: none; }
.awards-section:has(.award-card) { display: block; }
.award-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
/* Photo on the left, details on the right. Until the photo file exists, a trophy shows instead. */
.award-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; display: grid; grid-template-columns: 44% 1fr; min-height: 260px; box-shadow: var(--shadow-sm); transition: box-shadow .2s, transform .2s; }
.award-card:hover { box-shadow: var(--shadow); transform: translateY(-3px); }
.award-media { position: relative; background: radial-gradient(circle at 50% 40%, #fff4c2, #ffdd57 70%); }
.award-media::before { content: ""; position: absolute; inset: 0; margin: auto; width: 96px; height: 96px; background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='%230b1530' d='M18 6h28v6h10v6c0 8-6 14-13 15-2 5-6 8-9 9v7h8v6H22v-6h8v-7c-3-1-7-4-9-9C14 32 8 26 8 18v-6h10V6zm-4 12c0 4 3 8 5 9-1-3-1-6-1-9h-4zm32 0c0 3 0 6-1 9 2-1 5-5 5-9h-4z'/%3E%3C/svg%3E"); opacity: .85; }
.award-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; background: #fff; }
.award-body { padding: 26px; display: flex; flex-direction: column; justify-content: center; gap: 8px; }
.award-year { align-self: flex-start; background: var(--yellow); font-weight: 800; font-size: .85rem; padding: .3em .85em; border-radius: var(--pill); }
.award-body h3 { font-size: 1.35rem; margin: 4px 0 0; }
.award-by { color: var(--blue); font-weight: 600; font-size: .92rem; margin: 0; }
.award-body p:last-child { color: var(--muted); margin: 0; }

.rate-list { display: grid; gap: 18px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 32px; box-shadow: var(--shadow); }
.rate-row { display: grid; grid-template-columns: 130px 1fr 52px; gap: 14px; align-items: center; font-weight: 600; }
.rate-row .bar { height: 10px; }
.rate-row b { text-align: right; font-size: 1.15rem; }

.milestones { list-style: none; margin: 0 auto; padding: 0; max-width: 820px; display: grid; gap: 0; position: relative; }
.milestones::before { content: ""; position: absolute; left: 150px; top: 8px; bottom: 8px; width: 2px; background: var(--line-2); }
.milestones li { display: grid; grid-template-columns: 150px 1fr; gap: 32px; padding: 0 0 32px; position: relative; }
.milestones li::before { content: ""; position: absolute; left: 143px; top: 6px; width: 16px; height: 16px; border-radius: 50%; background: #fff; border: 3px solid var(--blue); }
.milestones li:last-child::before { background: var(--yellow); border-color: var(--ink); }
.ms-when { font-weight: 700; color: var(--blue); text-align: right; padding-right: 18px; line-height: 1.4; }
.milestones h3 { font-size: 1.2rem; margin: 0 0 4px; }
.milestones p { color: var(--muted); margin: 0; }
.milestones a { color: var(--blue); font-weight: 600; }

@media (max-width: 900px) {
  .ach-stats { grid-template-columns: 1fr 1fr; }
  .award-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .ach-stats { grid-template-columns: 1fr; }
  .award-card { grid-template-columns: 1fr; }
  .award-media { aspect-ratio: 4 / 3; }
  .ach-stat { padding: 22px; }
  .rate-list { padding: 22px; }
  .rate-row { grid-template-columns: 1fr 52px; }
  .rate-row .bar { grid-column: 1 / -1; grid-row: 2; }
  .milestones::before { left: 7px; }
  .milestones li { grid-template-columns: 1fr; gap: 4px; padding-left: 32px; }
  .milestones li::before { left: 0; }
  .ms-when { text-align: left; padding: 0; }
}

/* ==========================================================================
   Section backgrounds (mix of tones so long pages don't read as one white sheet)
   ========================================================================== */
.section--tint { background: #eaf1fe; }
.section--cream { background: #fff8e7; }
.section--cream .eyebrow { background: #fff; }
.section--tint .eyebrow { background: #fff; }

/* Dark navy */
.section--dark { position: relative; background: var(--blue-deep); color: #fff; overflow: hidden; z-index: 0; }
.section--dark::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(40% 60% at 0% 0%, rgba(11, 68, 196, .45), transparent 70%),
    radial-gradient(30% 50% at 100% 100%, rgba(237, 50, 55, .22), transparent 70%);
}
.section--dark h2 { color: #fff; }
.section--dark .story { color: var(--ink); }
.section--dark .eyebrow { background: rgba(255, 255, 255, .1); color: #fff; }
.section--dark .mark { color: var(--yellow); }
.section--dark .mark::after { display: none; }
.section--dark .section-head p, .section--dark .rating-strip { color: #c9d4ec; }
.section--dark .rating-strip b { color: #fff; }
.section--dark .speed-card { background: var(--blue); }
.section--dark .speed-card h3 { color: #dbe6ff; }
.section--dark .speed-card p { color: #dbe6ff; }
.section--dark .story { border-color: transparent; }

/* Brand blue */
.section--blue { position: relative; background: linear-gradient(135deg, var(--blue) 0%, var(--blue-dark) 100%); color: #fff; overflow: hidden; z-index: 0; }
.section--blue::before {
  content: ""; position: absolute; width: 520px; height: 520px; border-radius: 50%; right: -160px; top: -200px; z-index: -1;
  background: rgba(255, 255, 255, .06);
}
.section--blue h2 { color: #fff; }
.section--blue .eyebrow { background: rgba(255, 255, 255, .14); color: #fff; }
.section--blue p, .section--blue .check-list li { color: #dbe6ff !important; }
.section--blue .check-list .icon { color: var(--yellow); }
.section--blue a:not(.btn) { color: var(--yellow) !important; }
.section--blue .form-card { color: var(--ink); box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .35); border-color: transparent; }
.section--blue .form-card p { color: inherit !important; }
.section--blue .form-card .form-msg.ok { color: #0f7a46 !important; }
.section--blue .form-card .form-msg.err { color: #b42318 !important; }
.section--blue .form-card .consent span { color: var(--muted); }


/* Texture images, reused across sections (blue on light backgrounds, white on blue) */
:root {
  --tex-mesh: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='40'%3E%3Cg fill='none' stroke='%230b44c4' stroke-opacity='.055' stroke-width='.7'%3E%3Cpath d='M-20,0L-16.3,2L-12.9,4L-10.3,6L-8.6,8L-8,10L-8.6,12L-10.3,14L-12.9,16L-16.3,18L-20,20L-23.7,22L-27.1,24L-29.7,26L-31.4,28L-32,30L-31.4,32L-29.7,34L-27.1,36L-23.7,38L-20,40'/%3E%3Cpath d='M-20,0L-23.7,2L-27.1,4L-29.7,6L-31.4,8L-32,10L-31.4,12L-29.7,14L-27.1,16L-23.7,18L-20,20L-16.3,22L-12.9,24L-10.3,26L-8.6,28L-8,30L-8.6,32L-10.3,34L-12.9,36L-16.3,38L-20,40'/%3E%3Cpath d='M-10,0L-6.3,2L-2.9,4L-0.3,6L1.4,8L2,10L1.4,12L-0.3,14L-2.9,16L-6.3,18L-10,20L-13.7,22L-17.1,24L-19.7,26L-21.4,28L-22,30L-21.4,32L-19.7,34L-17.1,36L-13.7,38L-10,40'/%3E%3Cpath d='M-10,0L-13.7,2L-17.1,4L-19.7,6L-21.4,8L-22,10L-21.4,12L-19.7,14L-17.1,16L-13.7,18L-10,20L-6.3,22L-2.9,24L-0.3,26L1.4,28L2,30L1.4,32L-0.3,34L-2.9,36L-6.3,38L-10,40'/%3E%3Cpath d='M0,0L3.7,2L7.1,4L9.7,6L11.4,8L12,10L11.4,12L9.7,14L7.1,16L3.7,18L0,20L-3.7,22L-7.1,24L-9.7,26L-11.4,28L-12,30L-11.4,32L-9.7,34L-7.1,36L-3.7,38L-0,40'/%3E%3Cpath d='M0,0L-3.7,2L-7.1,4L-9.7,6L-11.4,8L-12,10L-11.4,12L-9.7,14L-7.1,16L-3.7,18L-0,20L3.7,22L7.1,24L9.7,26L11.4,28L12,30L11.4,32L9.7,34L7.1,36L3.7,38L0,40'/%3E%3Cpath d='M10,0L13.7,2L17.1,4L19.7,6L21.4,8L22,10L21.4,12L19.7,14L17.1,16L13.7,18L10,20L6.3,22L2.9,24L0.3,26L-1.4,28L-2,30L-1.4,32L0.3,34L2.9,36L6.3,38L10,40'/%3E%3Cpath d='M10,0L6.3,2L2.9,4L0.3,6L-1.4,8L-2,10L-1.4,12L0.3,14L2.9,16L6.3,18L10,20L13.7,22L17.1,24L19.7,26L21.4,28L22,30L21.4,32L19.7,34L17.1,36L13.7,38L10,40'/%3E%3Cpath d='M20,0L23.7,2L27.1,4L29.7,6L31.4,8L32,10L31.4,12L29.7,14L27.1,16L23.7,18L20,20L16.3,22L12.9,24L10.3,26L8.6,28L8,30L8.6,32L10.3,34L12.9,36L16.3,38L20,40'/%3E%3Cpath d='M20,0L16.3,2L12.9,4L10.3,6L8.6,8L8,10L8.6,12L10.3,14L12.9,16L16.3,18L20,20L23.7,22L27.1,24L29.7,26L31.4,28L32,30L31.4,32L29.7,34L27.1,36L23.7,38L20,40'/%3E%3Cpath d='M30,0L33.7,2L37.1,4L39.7,6L41.4,8L42,10L41.4,12L39.7,14L37.1,16L33.7,18L30,20L26.3,22L22.9,24L20.3,26L18.6,28L18,30L18.6,32L20.3,34L22.9,36L26.3,38L30,40'/%3E%3Cpath d='M30,0L26.3,2L22.9,4L20.3,6L18.6,8L18,10L18.6,12L20.3,14L22.9,16L26.3,18L30,20L33.7,22L37.1,24L39.7,26L41.4,28L42,30L41.4,32L39.7,34L37.1,36L33.7,38L30,40'/%3E%3C/g%3E%3C/svg%3E");
  --tex-waves: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1600' height='700' viewBox='0 0 1600 700' preserveAspectRatio='none'%3E%3Cg fill='none' stroke='%230b44c4' stroke-opacity='.06' stroke-width='1.2' stroke-linejoin='round'%3E%3Cpath d='M0,434L20,436L40,439L60,441L80,443L100,445L120,446L140,448L160,449L180,449L200,450L220,449L240,449L260,447L280,446L300,443L320,440L340,437L360,433L380,428L400,423L420,418L440,411L460,405L480,397L500,390L520,382L540,373L560,364L580,355L600,345L620,335L640,325L660,315L680,305L700,295L720,285L740,274L760,264L780,254L800,245L820,235L840,226L860,217L880,209L900,201L920,193L940,186L960,180L980,174L1000,168L1020,164L1040,159L1060,156L1080,152L1100,150L1120,148L1140,146L1160,145L1180,145L1200,145L1220,145L1240,146L1260,147L1280,148L1300,150L1320,152L1340,154L1360,156L1380,159L1400,161L1420,163L1440,166L1460,168L1480,170L1500,172L1520,173L1540,174L1560,175L1580,176L1600,176'/%3E%3Cpath d='M0,456L20,458L40,460L60,462L80,464L100,465L120,466L140,466L160,466L180,466L200,465L220,463L240,461L260,459L280,456L300,452L320,448L340,443L360,437L380,432L400,425L420,418L440,411L460,403L480,394L500,386L520,377L540,367L560,358L580,348L600,338L620,327L640,317L660,307L680,297L700,287L720,277L740,267L760,257L780,248L800,239L820,230L840,222L860,214L880,207L900,200L920,194L940,188L960,183L980,178L1000,174L1020,171L1040,168L1060,165L1080,163L1100,162L1120,161L1140,161L1160,161L1180,162L1200,163L1220,164L1240,166L1260,167L1280,169L1300,172L1320,174L1340,176L1360,179L1380,181L1400,183L1420,185L1440,187L1460,189L1480,190L1500,191L1520,192L1540,192L1560,192L1580,191L1600,190'/%3E%3Cpath d='M0,478L20,479L40,481L60,482L80,483L100,483L120,483L140,482L160,481L180,479L200,477L220,474L240,471L260,467L280,462L300,457L320,452L340,445L360,439L380,432L400,424L420,416L440,407L460,398L480,389L500,380L520,370L540,360L560,350L580,340L600,329L620,319L640,309L660,299L680,289L700,279L720,270L740,260L760,252L780,243L800,235L820,228L840,221L860,214L880,208L900,202L920,197L940,193L960,189L980,186L1000,183L1020,181L1040,179L1060,178L1080,178L1100,178L1120,178L1140,179L1160,180L1180,181L1200,183L1220,185L1240,187L1260,189L1280,192L1300,194L1320,196L1340,199L1360,201L1380,203L1400,205L1420,206L1440,207L1460,208L1480,209L1500,209L1520,208L1540,208L1560,206L1580,204L1600,202'/%3E%3Cpath d='M0,498L20,499L40,499L60,499L80,499L100,498L120,497L140,495L160,492L180,489L200,486L220,481L240,477L260,471L280,466L300,459L320,452L340,445L360,437L380,429L400,420L420,411L440,402L460,392L480,382L500,372L520,362L540,352L560,341L580,331L600,321L620,311L640,301L660,292L680,282L700,273L720,265L740,256L760,248L780,241L800,234L820,228L840,222L860,217L880,212L900,208L920,204L940,201L960,199L980,197L1000,196L1020,195L1040,194L1060,194L1080,195L1100,196L1120,197L1140,199L1160,200L1180,202L1200,205L1220,207L1240,209L1260,212L1280,214L1300,216L1320,218L1340,220L1360,222L1380,223L1400,224L1420,225L1440,225L1460,225L1480,225L1500,224L1520,222L1540,220L1560,217L1580,214L1600,210'/%3E%3Cpath d='M0,516L20,516L40,515L60,514L80,512L100,510L120,508L140,504L160,500L180,496L200,491L220,486L240,479L260,473L280,466L300,458L320,450L340,442L360,433L380,424L400,414L420,404L440,394L460,384L480,374L500,364L520,354L540,343L560,333L580,323L600,314L620,304L640,295L660,286L680,277L700,269L720,262L740,255L760,248L780,242L800,236L820,231L840,227L860,223L880,219L900,217L920,214L940,213L960,212L980,211L1000,211L1020,211L1040,212L1060,213L1080,214L1100,216L1120,218L1140,220L1160,222L1180,224L1200,227L1220,229L1240,232L1260,234L1280,236L1300,238L1320,239L1340,240L1360,241L1380,242L1400,242L1420,242L1440,241L1460,240L1480,238L1500,235L1520,232L1540,229L1560,225L1580,220L1600,215'/%3E%3Cpath d='M0,531L20,530L40,528L60,526L80,523L100,519L120,515L140,511L160,505L180,500L200,493L220,486L240,479L260,471L280,463L300,454L320,445L340,436L360,426L380,417L400,407L420,396L440,386L460,376L480,366L500,356L520,345L540,336L560,326L580,317L600,308L620,299L640,290L660,283L680,275L700,268L720,262L740,256L760,251L780,246L800,242L820,238L840,235L860,232L880,230L900,229L920,228L940,227L960,228L980,228L1000,229L1020,230L1040,232L1060,233L1080,235L1100,237L1120,240L1140,242L1160,245L1180,247L1200,249L1220,251L1240,253L1260,255L1280,256L1300,257L1320,258L1340,259L1360,259L1380,258L1400,257L1420,255L1440,253L1460,251L1480,247L1500,244L1520,239L1540,234L1560,229L1580,223L1600,216'/%3E%3Cpath d='M0,544L20,541L40,538L60,534L80,530L100,525L120,519L140,513L160,507L180,500L200,492L220,484L240,476L260,467L280,458L300,448L320,439L340,429L360,419L380,409L400,398L420,388L440,378L460,368L480,358L500,348L520,338L540,329L560,320L580,312L600,304L620,296L640,289L660,282L680,276L700,270L720,265L740,260L760,256L780,253L800,250L820,248L840,246L860,245L880,244L900,244L920,244L940,245L960,246L980,247L1000,249L1020,251L1040,253L1060,255L1080,257L1100,260L1120,262L1140,264L1160,267L1180,269L1200,271L1220,272L1240,273L1260,274L1280,275L1300,275L1320,275L1340,274L1360,273L1380,271L1400,269L1420,266L1440,262L1460,258L1480,254L1500,249L1520,243L1540,237L1560,230L1580,223L1600,215'/%3E%3Cpath d='M0,553L20,549L40,544L60,539L80,533L100,527L120,520L140,513L160,505L180,497L200,489L220,480L240,470L260,461L280,451L300,441L320,431L340,421L360,410L380,400L400,390L420,380L440,370L460,360L480,351L500,342L520,333L540,325L560,317L580,309L600,302L620,296L640,290L660,284L680,279L700,275L720,271L740,268L760,266L780,264L800,262L820,261L840,261L860,261L880,261L900,262L920,263L940,264L960,266L980,268L1000,270L1020,273L1040,275L1060,277L1080,280L1100,282L1120,284L1140,286L1160,288L1180,289L1200,291L1220,291L1240,292L1260,292L1280,291L1300,290L1320,289L1340,287L1360,284L1380,281L1400,277L1420,273L1440,268L1460,263L1480,257L1500,250L1520,243L1540,236L1560,228L1580,220L1600,211'/%3E%3Cpath d='M0,559L20,553L40,547L60,541L80,534L100,526L120,518L140,510L160,501L180,492L200,483L220,473L240,463L260,453L280,443L300,433L320,423L340,412L360,402L380,392L400,382L420,373L440,364L460,355L480,346L500,338L520,330L540,323L560,316L580,310L600,304L620,299L640,294L660,290L680,287L700,284L720,281L740,280L760,278L780,278L800,277L820,277L840,278L860,279L880,280L900,282L920,284L940,286L960,288L980,290L1000,293L1020,295L1040,297L1060,300L1080,302L1100,304L1120,305L1140,307L1160,308L1180,308L1200,308L1220,308L1240,308L1260,306L1280,305L1300,302L1320,300L1340,296L1360,292L1380,288L1400,283L1420,277L1440,271L1460,264L1480,257L1500,249L1520,241L1540,232L1560,224L1580,214L1600,205'/%3E%3Cpath d='M0,561L20,555L40,547L60,540L80,531L100,523L120,514L140,505L160,495L180,485L200,476L220,465L240,455L260,445L280,435L300,424L320,414L340,404L360,395L380,385L400,376L420,367L440,359L460,351L480,343L500,336L520,330L540,324L560,318L580,313L600,309L620,305L640,302L660,299L680,297L700,296L720,294L740,294L760,294L780,294L800,295L820,296L840,297L860,299L880,301L900,303L920,306L940,308L960,310L980,313L1000,315L1020,317L1040,319L1060,321L1080,322L1100,324L1120,324L1140,325L1160,325L1180,325L1200,324L1220,322L1240,320L1260,318L1280,315L1300,311L1320,307L1340,302L1360,297L1380,291L1400,284L1420,278L1440,270L1460,262L1480,254L1500,245L1520,236L1540,227L1560,217L1580,207L1600,197'/%3E%3Cpath d='M0,561L20,553L40,544L60,536L80,527L100,517L120,508L140,498L160,488L180,478L200,467L220,457L240,447L260,437L280,427L300,417L320,407L340,398L360,389L380,380L400,372L420,364L440,357L460,350L480,344L500,338L520,333L540,328L560,324L580,320L600,317L620,315L640,313L660,312L680,311L700,310L720,311L740,311L760,312L780,313L800,315L820,317L840,319L860,321L880,323L900,326L920,328L940,330L960,332L980,335L1000,336L1020,338L1040,340L1060,341L1080,341L1100,342L1120,341L1140,341L1160,340L1180,338L1200,336L1220,333L1240,330L1260,326L1280,321L1300,316L1320,311L1340,305L1360,298L1380,291L1400,283L1420,275L1440,267L1460,258L1480,249L1500,239L1520,229L1540,219L1560,209L1580,199L1600,189'/%3E%3Cpath d='M0,557L20,548L40,539L60,530L80,520L100,510L120,500L140,490L160,479L180,469L200,459L220,449L240,439L260,429L280,420L300,411L320,402L340,393L360,385L380,377L400,370L420,364L440,358L460,352L480,347L500,343L520,339L540,335L560,333L580,331L600,329L620,328L640,327L660,327L680,327L700,328L720,329L740,330L760,332L780,334L800,336L820,338L840,341L860,343L880,345L900,348L920,350L940,352L960,354L980,355L1000,357L1020,358L1040,358L1060,358L1080,358L1100,357L1120,356L1140,354L1160,351L1180,348L1200,345L1220,341L1240,336L1260,331L1280,325L1300,318L1320,312L1340,304L1360,296L1380,288L1400,280L1420,270L1440,261L1460,252L1480,242L1500,232L1520,222L1540,211L1560,201L1580,191L1600,181'/%3E%3Cpath d='M0,552L20,542L40,532L60,522L80,512L100,502L120,492L140,481L160,471L180,461L200,451L220,442L240,432L260,423L280,415L300,406L320,398L340,391L360,384L380,378L400,372L420,366L440,362L460,357L480,354L500,351L520,348L540,346L560,345L580,344L600,344L620,344L640,344L660,345L680,346L700,348L720,350L740,352L760,354L780,356L800,358L820,361L840,363L860,365L880,367L900,369L920,371L940,373L960,374L980,374L1000,375L1020,375L1040,374L1060,373L1080,371L1100,369L1120,367L1140,363L1160,360L1180,355L1200,350L1220,345L1240,339L1260,332L1280,325L1300,317L1320,309L1340,301L1360,292L1380,283L1400,274L1420,264L1440,254L1460,244L1480,234L1500,223L1520,213L1540,203L1560,193L1580,183L1600,173'/%3E%3Cpath d='M0,544L20,534L40,524L60,514L80,504L100,493L120,483L140,473L160,464L180,454L200,445L220,436L240,427L260,419L280,412L300,404L320,398L340,392L360,386L380,381L400,376L420,372L440,369L460,366L480,364L500,362L520,361L540,360L560,360L580,360L600,361L620,362L640,363L660,365L680,367L700,369L720,371L740,374L760,376L780,378L800,381L820,383L840,385L860,387L880,388L900,390L920,391L940,391L960,391L980,391L1000,390L1020,389L1040,387L1060,385L1080,382L1100,378L1120,374L1140,370L1160,365L1180,359L1200,353L1220,346L1240,338L1260,331L1280,322L1300,314L1320,305L1340,296L1360,286L1380,276L1400,266L1420,256L1440,246L1460,236L1480,225L1500,215L1520,205L1540,195L1560,186L1580,176L1600,167'/%3E%3Cpath d='M0,536L20,526L40,516L60,506L80,496L100,486L120,476L140,467L160,458L180,449L200,440L220,432L240,425L260,418L280,412L300,406L320,400L340,395L360,391L380,387L400,384L420,382L440,380L460,378L480,377L500,377L520,377L540,377L560,378L580,379L600,381L620,382L640,384L660,387L680,389L700,391L720,394L740,396L760,398L780,400L800,402L820,404L840,406L860,407L880,408L900,408L920,408L940,407L960,406L980,405L1000,403L1020,400L1040,397L1060,393L1080,389L1100,384L1120,379L1140,373L1160,366L1180,359L1200,352L1220,344L1240,335L1260,327L1280,317L1300,308L1320,298L1340,288L1360,278L1380,268L1400,258L1420,248L1440,237L1460,227L1480,217L1500,208L1520,198L1540,189L1560,180L1580,171L1600,163'/%3E%3Cpath d='M0,528L20,518L40,508L60,498L80,488L100,479L120,470L140,462L160,454L180,446L200,439L220,432L240,425L260,420L280,415L300,410L320,406L340,403L360,400L380,397L400,396L420,394L440,394L460,393L480,394L500,394L520,395L540,396L560,398L580,400L600,402L620,404L640,407L660,409L680,411L700,414L720,416L740,418L760,420L780,421L800,423L820,424L840,424L860,425L880,424L900,424L920,422L940,421L960,418L980,415L1000,412L1020,408L1040,404L1060,398L1080,393L1100,387L1120,380L1140,373L1160,365L1180,357L1200,348L1220,339L1240,330L1260,320L1280,311L1300,301L1320,291L1340,280L1360,270L1380,260L1400,250L1420,240L1440,230L1460,220L1480,211L1500,201L1520,193L1540,184L1560,176L1580,169L1600,162'/%3E%3Cpath d='M0,520L20,510L40,501L60,492L80,483L100,475L120,467L140,459L160,452L180,446L200,440L220,434L240,429L260,425L280,421L300,418L320,415L340,413L360,412L380,411L400,410L420,410L440,410L460,411L480,412L500,414L520,415L540,417L560,420L580,422L600,424L620,427L640,429L660,431L680,433L700,435L720,437L740,439L760,440L780,441L800,441L820,441L840,441L860,440L880,438L900,436L920,434L940,431L960,427L980,423L1000,418L1020,413L1040,407L1060,400L1080,393L1100,386L1120,378L1140,370L1160,361L1180,352L1200,342L1220,333L1240,323L1260,313L1280,303L1300,292L1320,282L1340,272L1360,262L1380,252L1400,242L1420,232L1440,223L1460,214L1480,205L1500,197L1520,189L1540,182L1560,175L1580,169L1600,163'/%3E%3Cpath d='M0,514L20,505L40,496L60,488L80,480L100,473L120,466L140,459L160,454L180,448L200,444L220,440L240,436L260,433L280,431L300,429L320,428L340,427L360,427L380,427L400,427L420,428L440,429L460,431L480,433L500,435L520,437L540,439L560,442L580,444L600,446L620,449L640,451L660,453L680,454L700,456L720,457L740,457L760,458L780,458L800,457L820,456L840,454L860,452L880,449L900,446L920,442L940,437L960,432L980,427L1000,421L1020,414L1040,407L1060,399L1080,391L1100,382L1120,374L1140,364L1160,355L1180,345L1200,335L1220,325L1240,315L1260,305L1280,294L1300,284L1320,274L1340,264L1360,254L1380,245L1400,236L1420,227L1440,218L1460,210L1480,203L1500,196L1520,189L1540,183L1560,177L1580,172L1600,168'/%3E%3Cpath d='M0,509L20,501L40,493L60,486L80,480L100,473L120,468L140,463L160,459L180,455L200,451L220,449L240,447L260,445L280,444L300,443L320,443L340,443L360,444L380,445L400,447L420,448L440,450L460,452L480,455L500,457L520,459L540,462L560,464L580,466L600,468L620,470L640,472L660,473L680,474L700,474L720,474L740,474L760,473L780,472L800,470L820,467L840,464L860,461L880,457L900,452L920,447L940,441L960,434L980,427L1000,420L1020,412L1040,404L1060,395L1080,386L1100,377L1120,367L1140,357L1160,347L1180,337L1200,327L1220,317L1240,306L1260,296L1280,286L1300,276L1320,267L1340,257L1360,248L1380,240L1400,231L1420,224L1440,216L1460,209L1480,203L1500,197L1520,192L1540,187L1560,183L1580,179L1600,176'/%3E%3Cpath d='M0,507L20,500L40,493L60,488L80,482L100,478L120,473L140,470L160,467L180,464L200,462L220,461L240,460L260,460L280,460L300,460L320,461L340,462L360,464L380,466L400,468L420,470L440,472L460,475L480,477L500,479L520,482L540,484L560,486L580,487L600,489L620,490L640,491L660,491L680,491L700,490L720,489L740,487L760,485L780,483L800,479L820,476L840,471L860,466L880,461L900,455L920,448L940,441L960,433L980,425L1000,417L1020,408L1040,399L1060,389L1080,380L1100,370L1120,360L1140,349L1160,339L1180,329L1200,319L1220,308L1240,299L1260,289L1280,279L1300,270L1320,261L1340,253L1360,245L1380,237L1400,230L1420,223L1440,217L1460,211L1480,206L1500,202L1520,198L1540,194L1560,192L1580,189L1600,188'/%3E%3Cpath d='M0,507L20,502L40,497L60,492L80,488L100,485L120,482L140,480L160,478L180,477L200,476L220,476L240,477L260,477L280,478L300,480L320,481L340,483L360,485L380,488L400,490L420,492L440,495L460,497L480,499L500,501L520,503L540,505L560,506L580,507L600,507L620,507L640,507L660,506L680,505L700,503L720,501L740,498L760,494L780,490L800,486L820,480L840,475L860,468L880,461L900,454L920,446L940,438L960,430L980,421L1000,411L1020,402L1040,392L1060,382L1080,372L1100,361L1120,351L1140,341L1160,331L1180,321L1200,311L1220,301L1240,292L1260,283L1280,274L1300,266L1320,258L1340,250L1360,243L1380,237L1400,231L1420,226L1440,221L1460,217L1480,213L1500,210L1520,207L1540,205L1560,204L1580,203L1600,202'/%3E%3Cpath d='M0,511L20,507L40,503L60,500L80,498L100,496L120,494L140,493L160,493L180,493L200,493L220,494L240,495L260,497L280,499L300,501L320,503L340,505L360,508L380,510L400,512L420,515L440,517L460,519L480,520L500,522L520,523L540,524L560,524L580,524L600,523L620,522L640,521L660,519L680,516L700,513L720,509L740,505L760,500L780,495L800,489L820,482L840,475L860,467L880,459L900,451L920,442L940,433L960,424L980,414L1000,404L1020,394L1040,384L1060,374L1080,363L1100,353L1120,343L1140,333L1160,323L1180,314L1200,304L1220,295L1240,287L1260,279L1280,271L1300,264L1320,257L1340,251L1360,245L1380,240L1400,235L1420,231L1440,228L1460,225L1480,223L1500,221L1520,220L1540,219L1560,219L1580,219L1600,220'/%3E%3C/g%3E%3C/svg%3E");
  --tex-mesh-white: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='40'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.09' stroke-width='.7'%3E%3Cpath d='M-20,0L-16.3,2L-12.9,4L-10.3,6L-8.6,8L-8,10L-8.6,12L-10.3,14L-12.9,16L-16.3,18L-20,20L-23.7,22L-27.1,24L-29.7,26L-31.4,28L-32,30L-31.4,32L-29.7,34L-27.1,36L-23.7,38L-20,40'/%3E%3Cpath d='M-20,0L-23.7,2L-27.1,4L-29.7,6L-31.4,8L-32,10L-31.4,12L-29.7,14L-27.1,16L-23.7,18L-20,20L-16.3,22L-12.9,24L-10.3,26L-8.6,28L-8,30L-8.6,32L-10.3,34L-12.9,36L-16.3,38L-20,40'/%3E%3Cpath d='M-10,0L-6.3,2L-2.9,4L-0.3,6L1.4,8L2,10L1.4,12L-0.3,14L-2.9,16L-6.3,18L-10,20L-13.7,22L-17.1,24L-19.7,26L-21.4,28L-22,30L-21.4,32L-19.7,34L-17.1,36L-13.7,38L-10,40'/%3E%3Cpath d='M-10,0L-13.7,2L-17.1,4L-19.7,6L-21.4,8L-22,10L-21.4,12L-19.7,14L-17.1,16L-13.7,18L-10,20L-6.3,22L-2.9,24L-0.3,26L1.4,28L2,30L1.4,32L-0.3,34L-2.9,36L-6.3,38L-10,40'/%3E%3Cpath d='M0,0L3.7,2L7.1,4L9.7,6L11.4,8L12,10L11.4,12L9.7,14L7.1,16L3.7,18L0,20L-3.7,22L-7.1,24L-9.7,26L-11.4,28L-12,30L-11.4,32L-9.7,34L-7.1,36L-3.7,38L-0,40'/%3E%3Cpath d='M0,0L-3.7,2L-7.1,4L-9.7,6L-11.4,8L-12,10L-11.4,12L-9.7,14L-7.1,16L-3.7,18L-0,20L3.7,22L7.1,24L9.7,26L11.4,28L12,30L11.4,32L9.7,34L7.1,36L3.7,38L0,40'/%3E%3Cpath d='M10,0L13.7,2L17.1,4L19.7,6L21.4,8L22,10L21.4,12L19.7,14L17.1,16L13.7,18L10,20L6.3,22L2.9,24L0.3,26L-1.4,28L-2,30L-1.4,32L0.3,34L2.9,36L6.3,38L10,40'/%3E%3Cpath d='M10,0L6.3,2L2.9,4L0.3,6L-1.4,8L-2,10L-1.4,12L0.3,14L2.9,16L6.3,18L10,20L13.7,22L17.1,24L19.7,26L21.4,28L22,30L21.4,32L19.7,34L17.1,36L13.7,38L10,40'/%3E%3Cpath d='M20,0L23.7,2L27.1,4L29.7,6L31.4,8L32,10L31.4,12L29.7,14L27.1,16L23.7,18L20,20L16.3,22L12.9,24L10.3,26L8.6,28L8,30L8.6,32L10.3,34L12.9,36L16.3,38L20,40'/%3E%3Cpath d='M20,0L16.3,2L12.9,4L10.3,6L8.6,8L8,10L8.6,12L10.3,14L12.9,16L16.3,18L20,20L23.7,22L27.1,24L29.7,26L31.4,28L32,30L31.4,32L29.7,34L27.1,36L23.7,38L20,40'/%3E%3Cpath d='M30,0L33.7,2L37.1,4L39.7,6L41.4,8L42,10L41.4,12L39.7,14L37.1,16L33.7,18L30,20L26.3,22L22.9,24L20.3,26L18.6,28L18,30L18.6,32L20.3,34L22.9,36L26.3,38L30,40'/%3E%3Cpath d='M30,0L26.3,2L22.9,4L20.3,6L18.6,8L18,10L18.6,12L20.3,14L22.9,16L26.3,18L30,20L33.7,22L37.1,24L39.7,26L41.4,28L42,30L41.4,32L39.7,34L37.1,36L33.7,38L30,40'/%3E%3C/g%3E%3C/svg%3E");
  --tex-waves-white: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1600' height='700' viewBox='0 0 1600 700' preserveAspectRatio='none'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.12' stroke-width='1.2' stroke-linejoin='round'%3E%3Cpath d='M0,434L20,436L40,439L60,441L80,443L100,445L120,446L140,448L160,449L180,449L200,450L220,449L240,449L260,447L280,446L300,443L320,440L340,437L360,433L380,428L400,423L420,418L440,411L460,405L480,397L500,390L520,382L540,373L560,364L580,355L600,345L620,335L640,325L660,315L680,305L700,295L720,285L740,274L760,264L780,254L800,245L820,235L840,226L860,217L880,209L900,201L920,193L940,186L960,180L980,174L1000,168L1020,164L1040,159L1060,156L1080,152L1100,150L1120,148L1140,146L1160,145L1180,145L1200,145L1220,145L1240,146L1260,147L1280,148L1300,150L1320,152L1340,154L1360,156L1380,159L1400,161L1420,163L1440,166L1460,168L1480,170L1500,172L1520,173L1540,174L1560,175L1580,176L1600,176'/%3E%3Cpath d='M0,456L20,458L40,460L60,462L80,464L100,465L120,466L140,466L160,466L180,466L200,465L220,463L240,461L260,459L280,456L300,452L320,448L340,443L360,437L380,432L400,425L420,418L440,411L460,403L480,394L500,386L520,377L540,367L560,358L580,348L600,338L620,327L640,317L660,307L680,297L700,287L720,277L740,267L760,257L780,248L800,239L820,230L840,222L860,214L880,207L900,200L920,194L940,188L960,183L980,178L1000,174L1020,171L1040,168L1060,165L1080,163L1100,162L1120,161L1140,161L1160,161L1180,162L1200,163L1220,164L1240,166L1260,167L1280,169L1300,172L1320,174L1340,176L1360,179L1380,181L1400,183L1420,185L1440,187L1460,189L1480,190L1500,191L1520,192L1540,192L1560,192L1580,191L1600,190'/%3E%3Cpath d='M0,478L20,479L40,481L60,482L80,483L100,483L120,483L140,482L160,481L180,479L200,477L220,474L240,471L260,467L280,462L300,457L320,452L340,445L360,439L380,432L400,424L420,416L440,407L460,398L480,389L500,380L520,370L540,360L560,350L580,340L600,329L620,319L640,309L660,299L680,289L700,279L720,270L740,260L760,252L780,243L800,235L820,228L840,221L860,214L880,208L900,202L920,197L940,193L960,189L980,186L1000,183L1020,181L1040,179L1060,178L1080,178L1100,178L1120,178L1140,179L1160,180L1180,181L1200,183L1220,185L1240,187L1260,189L1280,192L1300,194L1320,196L1340,199L1360,201L1380,203L1400,205L1420,206L1440,207L1460,208L1480,209L1500,209L1520,208L1540,208L1560,206L1580,204L1600,202'/%3E%3Cpath d='M0,498L20,499L40,499L60,499L80,499L100,498L120,497L140,495L160,492L180,489L200,486L220,481L240,477L260,471L280,466L300,459L320,452L340,445L360,437L380,429L400,420L420,411L440,402L460,392L480,382L500,372L520,362L540,352L560,341L580,331L600,321L620,311L640,301L660,292L680,282L700,273L720,265L740,256L760,248L780,241L800,234L820,228L840,222L860,217L880,212L900,208L920,204L940,201L960,199L980,197L1000,196L1020,195L1040,194L1060,194L1080,195L1100,196L1120,197L1140,199L1160,200L1180,202L1200,205L1220,207L1240,209L1260,212L1280,214L1300,216L1320,218L1340,220L1360,222L1380,223L1400,224L1420,225L1440,225L1460,225L1480,225L1500,224L1520,222L1540,220L1560,217L1580,214L1600,210'/%3E%3Cpath d='M0,516L20,516L40,515L60,514L80,512L100,510L120,508L140,504L160,500L180,496L200,491L220,486L240,479L260,473L280,466L300,458L320,450L340,442L360,433L380,424L400,414L420,404L440,394L460,384L480,374L500,364L520,354L540,343L560,333L580,323L600,314L620,304L640,295L660,286L680,277L700,269L720,262L740,255L760,248L780,242L800,236L820,231L840,227L860,223L880,219L900,217L920,214L940,213L960,212L980,211L1000,211L1020,211L1040,212L1060,213L1080,214L1100,216L1120,218L1140,220L1160,222L1180,224L1200,227L1220,229L1240,232L1260,234L1280,236L1300,238L1320,239L1340,240L1360,241L1380,242L1400,242L1420,242L1440,241L1460,240L1480,238L1500,235L1520,232L1540,229L1560,225L1580,220L1600,215'/%3E%3Cpath d='M0,531L20,530L40,528L60,526L80,523L100,519L120,515L140,511L160,505L180,500L200,493L220,486L240,479L260,471L280,463L300,454L320,445L340,436L360,426L380,417L400,407L420,396L440,386L460,376L480,366L500,356L520,345L540,336L560,326L580,317L600,308L620,299L640,290L660,283L680,275L700,268L720,262L740,256L760,251L780,246L800,242L820,238L840,235L860,232L880,230L900,229L920,228L940,227L960,228L980,228L1000,229L1020,230L1040,232L1060,233L1080,235L1100,237L1120,240L1140,242L1160,245L1180,247L1200,249L1220,251L1240,253L1260,255L1280,256L1300,257L1320,258L1340,259L1360,259L1380,258L1400,257L1420,255L1440,253L1460,251L1480,247L1500,244L1520,239L1540,234L1560,229L1580,223L1600,216'/%3E%3Cpath d='M0,544L20,541L40,538L60,534L80,530L100,525L120,519L140,513L160,507L180,500L200,492L220,484L240,476L260,467L280,458L300,448L320,439L340,429L360,419L380,409L400,398L420,388L440,378L460,368L480,358L500,348L520,338L540,329L560,320L580,312L600,304L620,296L640,289L660,282L680,276L700,270L720,265L740,260L760,256L780,253L800,250L820,248L840,246L860,245L880,244L900,244L920,244L940,245L960,246L980,247L1000,249L1020,251L1040,253L1060,255L1080,257L1100,260L1120,262L1140,264L1160,267L1180,269L1200,271L1220,272L1240,273L1260,274L1280,275L1300,275L1320,275L1340,274L1360,273L1380,271L1400,269L1420,266L1440,262L1460,258L1480,254L1500,249L1520,243L1540,237L1560,230L1580,223L1600,215'/%3E%3Cpath d='M0,553L20,549L40,544L60,539L80,533L100,527L120,520L140,513L160,505L180,497L200,489L220,480L240,470L260,461L280,451L300,441L320,431L340,421L360,410L380,400L400,390L420,380L440,370L460,360L480,351L500,342L520,333L540,325L560,317L580,309L600,302L620,296L640,290L660,284L680,279L700,275L720,271L740,268L760,266L780,264L800,262L820,261L840,261L860,261L880,261L900,262L920,263L940,264L960,266L980,268L1000,270L1020,273L1040,275L1060,277L1080,280L1100,282L1120,284L1140,286L1160,288L1180,289L1200,291L1220,291L1240,292L1260,292L1280,291L1300,290L1320,289L1340,287L1360,284L1380,281L1400,277L1420,273L1440,268L1460,263L1480,257L1500,250L1520,243L1540,236L1560,228L1580,220L1600,211'/%3E%3Cpath d='M0,559L20,553L40,547L60,541L80,534L100,526L120,518L140,510L160,501L180,492L200,483L220,473L240,463L260,453L280,443L300,433L320,423L340,412L360,402L380,392L400,382L420,373L440,364L460,355L480,346L500,338L520,330L540,323L560,316L580,310L600,304L620,299L640,294L660,290L680,287L700,284L720,281L740,280L760,278L780,278L800,277L820,277L840,278L860,279L880,280L900,282L920,284L940,286L960,288L980,290L1000,293L1020,295L1040,297L1060,300L1080,302L1100,304L1120,305L1140,307L1160,308L1180,308L1200,308L1220,308L1240,308L1260,306L1280,305L1300,302L1320,300L1340,296L1360,292L1380,288L1400,283L1420,277L1440,271L1460,264L1480,257L1500,249L1520,241L1540,232L1560,224L1580,214L1600,205'/%3E%3Cpath d='M0,561L20,555L40,547L60,540L80,531L100,523L120,514L140,505L160,495L180,485L200,476L220,465L240,455L260,445L280,435L300,424L320,414L340,404L360,395L380,385L400,376L420,367L440,359L460,351L480,343L500,336L520,330L540,324L560,318L580,313L600,309L620,305L640,302L660,299L680,297L700,296L720,294L740,294L760,294L780,294L800,295L820,296L840,297L860,299L880,301L900,303L920,306L940,308L960,310L980,313L1000,315L1020,317L1040,319L1060,321L1080,322L1100,324L1120,324L1140,325L1160,325L1180,325L1200,324L1220,322L1240,320L1260,318L1280,315L1300,311L1320,307L1340,302L1360,297L1380,291L1400,284L1420,278L1440,270L1460,262L1480,254L1500,245L1520,236L1540,227L1560,217L1580,207L1600,197'/%3E%3Cpath d='M0,561L20,553L40,544L60,536L80,527L100,517L120,508L140,498L160,488L180,478L200,467L220,457L240,447L260,437L280,427L300,417L320,407L340,398L360,389L380,380L400,372L420,364L440,357L460,350L480,344L500,338L520,333L540,328L560,324L580,320L600,317L620,315L640,313L660,312L680,311L700,310L720,311L740,311L760,312L780,313L800,315L820,317L840,319L860,321L880,323L900,326L920,328L940,330L960,332L980,335L1000,336L1020,338L1040,340L1060,341L1080,341L1100,342L1120,341L1140,341L1160,340L1180,338L1200,336L1220,333L1240,330L1260,326L1280,321L1300,316L1320,311L1340,305L1360,298L1380,291L1400,283L1420,275L1440,267L1460,258L1480,249L1500,239L1520,229L1540,219L1560,209L1580,199L1600,189'/%3E%3Cpath d='M0,557L20,548L40,539L60,530L80,520L100,510L120,500L140,490L160,479L180,469L200,459L220,449L240,439L260,429L280,420L300,411L320,402L340,393L360,385L380,377L400,370L420,364L440,358L460,352L480,347L500,343L520,339L540,335L560,333L580,331L600,329L620,328L640,327L660,327L680,327L700,328L720,329L740,330L760,332L780,334L800,336L820,338L840,341L860,343L880,345L900,348L920,350L940,352L960,354L980,355L1000,357L1020,358L1040,358L1060,358L1080,358L1100,357L1120,356L1140,354L1160,351L1180,348L1200,345L1220,341L1240,336L1260,331L1280,325L1300,318L1320,312L1340,304L1360,296L1380,288L1400,280L1420,270L1440,261L1460,252L1480,242L1500,232L1520,222L1540,211L1560,201L1580,191L1600,181'/%3E%3Cpath d='M0,552L20,542L40,532L60,522L80,512L100,502L120,492L140,481L160,471L180,461L200,451L220,442L240,432L260,423L280,415L300,406L320,398L340,391L360,384L380,378L400,372L420,366L440,362L460,357L480,354L500,351L520,348L540,346L560,345L580,344L600,344L620,344L640,344L660,345L680,346L700,348L720,350L740,352L760,354L780,356L800,358L820,361L840,363L860,365L880,367L900,369L920,371L940,373L960,374L980,374L1000,375L1020,375L1040,374L1060,373L1080,371L1100,369L1120,367L1140,363L1160,360L1180,355L1200,350L1220,345L1240,339L1260,332L1280,325L1300,317L1320,309L1340,301L1360,292L1380,283L1400,274L1420,264L1440,254L1460,244L1480,234L1500,223L1520,213L1540,203L1560,193L1580,183L1600,173'/%3E%3Cpath d='M0,544L20,534L40,524L60,514L80,504L100,493L120,483L140,473L160,464L180,454L200,445L220,436L240,427L260,419L280,412L300,404L320,398L340,392L360,386L380,381L400,376L420,372L440,369L460,366L480,364L500,362L520,361L540,360L560,360L580,360L600,361L620,362L640,363L660,365L680,367L700,369L720,371L740,374L760,376L780,378L800,381L820,383L840,385L860,387L880,388L900,390L920,391L940,391L960,391L980,391L1000,390L1020,389L1040,387L1060,385L1080,382L1100,378L1120,374L1140,370L1160,365L1180,359L1200,353L1220,346L1240,338L1260,331L1280,322L1300,314L1320,305L1340,296L1360,286L1380,276L1400,266L1420,256L1440,246L1460,236L1480,225L1500,215L1520,205L1540,195L1560,186L1580,176L1600,167'/%3E%3Cpath d='M0,536L20,526L40,516L60,506L80,496L100,486L120,476L140,467L160,458L180,449L200,440L220,432L240,425L260,418L280,412L300,406L320,400L340,395L360,391L380,387L400,384L420,382L440,380L460,378L480,377L500,377L520,377L540,377L560,378L580,379L600,381L620,382L640,384L660,387L680,389L700,391L720,394L740,396L760,398L780,400L800,402L820,404L840,406L860,407L880,408L900,408L920,408L940,407L960,406L980,405L1000,403L1020,400L1040,397L1060,393L1080,389L1100,384L1120,379L1140,373L1160,366L1180,359L1200,352L1220,344L1240,335L1260,327L1280,317L1300,308L1320,298L1340,288L1360,278L1380,268L1400,258L1420,248L1440,237L1460,227L1480,217L1500,208L1520,198L1540,189L1560,180L1580,171L1600,163'/%3E%3Cpath d='M0,528L20,518L40,508L60,498L80,488L100,479L120,470L140,462L160,454L180,446L200,439L220,432L240,425L260,420L280,415L300,410L320,406L340,403L360,400L380,397L400,396L420,394L440,394L460,393L480,394L500,394L520,395L540,396L560,398L580,400L600,402L620,404L640,407L660,409L680,411L700,414L720,416L740,418L760,420L780,421L800,423L820,424L840,424L860,425L880,424L900,424L920,422L940,421L960,418L980,415L1000,412L1020,408L1040,404L1060,398L1080,393L1100,387L1120,380L1140,373L1160,365L1180,357L1200,348L1220,339L1240,330L1260,320L1280,311L1300,301L1320,291L1340,280L1360,270L1380,260L1400,250L1420,240L1440,230L1460,220L1480,211L1500,201L1520,193L1540,184L1560,176L1580,169L1600,162'/%3E%3Cpath d='M0,520L20,510L40,501L60,492L80,483L100,475L120,467L140,459L160,452L180,446L200,440L220,434L240,429L260,425L280,421L300,418L320,415L340,413L360,412L380,411L400,410L420,410L440,410L460,411L480,412L500,414L520,415L540,417L560,420L580,422L600,424L620,427L640,429L660,431L680,433L700,435L720,437L740,439L760,440L780,441L800,441L820,441L840,441L860,440L880,438L900,436L920,434L940,431L960,427L980,423L1000,418L1020,413L1040,407L1060,400L1080,393L1100,386L1120,378L1140,370L1160,361L1180,352L1200,342L1220,333L1240,323L1260,313L1280,303L1300,292L1320,282L1340,272L1360,262L1380,252L1400,242L1420,232L1440,223L1460,214L1480,205L1500,197L1520,189L1540,182L1560,175L1580,169L1600,163'/%3E%3Cpath d='M0,514L20,505L40,496L60,488L80,480L100,473L120,466L140,459L160,454L180,448L200,444L220,440L240,436L260,433L280,431L300,429L320,428L340,427L360,427L380,427L400,427L420,428L440,429L460,431L480,433L500,435L520,437L540,439L560,442L580,444L600,446L620,449L640,451L660,453L680,454L700,456L720,457L740,457L760,458L780,458L800,457L820,456L840,454L860,452L880,449L900,446L920,442L940,437L960,432L980,427L1000,421L1020,414L1040,407L1060,399L1080,391L1100,382L1120,374L1140,364L1160,355L1180,345L1200,335L1220,325L1240,315L1260,305L1280,294L1300,284L1320,274L1340,264L1360,254L1380,245L1400,236L1420,227L1440,218L1460,210L1480,203L1500,196L1520,189L1540,183L1560,177L1580,172L1600,168'/%3E%3Cpath d='M0,509L20,501L40,493L60,486L80,480L100,473L120,468L140,463L160,459L180,455L200,451L220,449L240,447L260,445L280,444L300,443L320,443L340,443L360,444L380,445L400,447L420,448L440,450L460,452L480,455L500,457L520,459L540,462L560,464L580,466L600,468L620,470L640,472L660,473L680,474L700,474L720,474L740,474L760,473L780,472L800,470L820,467L840,464L860,461L880,457L900,452L920,447L940,441L960,434L980,427L1000,420L1020,412L1040,404L1060,395L1080,386L1100,377L1120,367L1140,357L1160,347L1180,337L1200,327L1220,317L1240,306L1260,296L1280,286L1300,276L1320,267L1340,257L1360,248L1380,240L1400,231L1420,224L1440,216L1460,209L1480,203L1500,197L1520,192L1540,187L1560,183L1580,179L1600,176'/%3E%3Cpath d='M0,507L20,500L40,493L60,488L80,482L100,478L120,473L140,470L160,467L180,464L200,462L220,461L240,460L260,460L280,460L300,460L320,461L340,462L360,464L380,466L400,468L420,470L440,472L460,475L480,477L500,479L520,482L540,484L560,486L580,487L600,489L620,490L640,491L660,491L680,491L700,490L720,489L740,487L760,485L780,483L800,479L820,476L840,471L860,466L880,461L900,455L920,448L940,441L960,433L980,425L1000,417L1020,408L1040,399L1060,389L1080,380L1100,370L1120,360L1140,349L1160,339L1180,329L1200,319L1220,308L1240,299L1260,289L1280,279L1300,270L1320,261L1340,253L1360,245L1380,237L1400,230L1420,223L1440,217L1460,211L1480,206L1500,202L1520,198L1540,194L1560,192L1580,189L1600,188'/%3E%3Cpath d='M0,507L20,502L40,497L60,492L80,488L100,485L120,482L140,480L160,478L180,477L200,476L220,476L240,477L260,477L280,478L300,480L320,481L340,483L360,485L380,488L400,490L420,492L440,495L460,497L480,499L500,501L520,503L540,505L560,506L580,507L600,507L620,507L640,507L660,506L680,505L700,503L720,501L740,498L760,494L780,490L800,486L820,480L840,475L860,468L880,461L900,454L920,446L940,438L960,430L980,421L1000,411L1020,402L1040,392L1060,382L1080,372L1100,361L1120,351L1140,341L1160,331L1180,321L1200,311L1220,301L1240,292L1260,283L1280,274L1300,266L1320,258L1340,250L1360,243L1380,237L1400,231L1420,226L1440,221L1460,217L1480,213L1500,210L1520,207L1540,205L1560,204L1580,203L1600,202'/%3E%3Cpath d='M0,511L20,507L40,503L60,500L80,498L100,496L120,494L140,493L160,493L180,493L200,493L220,494L240,495L260,497L280,499L300,501L320,503L340,505L360,508L380,510L400,512L420,515L440,517L460,519L480,520L500,522L520,523L540,524L560,524L580,524L600,523L620,522L640,521L660,519L680,516L700,513L720,509L740,505L760,500L780,495L800,489L820,482L840,475L860,467L880,459L900,451L920,442L940,433L960,424L980,414L1000,404L1020,394L1040,384L1060,374L1080,363L1100,353L1120,343L1140,333L1160,323L1180,314L1200,304L1220,295L1240,287L1260,279L1280,271L1300,264L1320,257L1340,251L1360,245L1380,240L1400,235L1420,231L1440,228L1460,225L1480,223L1500,221L1520,220L1540,219L1560,219L1580,219L1600,220'/%3E%3C/g%3E%3C/svg%3E");
  --tex-size: 10px 40px;
}

/* ==========================================================================
   Guilloche texture (fine crossing-wave lattice + flowing wave band),
   like banknote / certificate security print. Used on the testimonials section.
   ========================================================================== */
.section--texture { position: relative; isolation: isolate; background-color: #f7f9ff;
  background-image: var(--tex-mesh); background-size: var(--tex-size); }
.section--texture::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: var(--tex-waves) center / 100% 100% no-repeat; }
.section--texture::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: radial-gradient(60% 55% at 50% 45%, rgba(247, 249, 255, .7), rgba(247, 249, 255, 0) 70%); }

/* Texture on inner-page heroes (fades out at the bottom) */
.page-hero::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: var(--tex-waves) center / 100% 100% no-repeat, var(--tex-mesh) 0 0 / var(--tex-size);
  -webkit-mask-image: linear-gradient(to bottom, #000 35%, transparent 100%);
          mask-image: linear-gradient(to bottom, #000 35%, transparent 100%);
}
/* Texture on the blue closing banner, in white */
.final { background: var(--tex-waves-white) center / 100% 100% no-repeat, var(--tex-mesh-white) 0 0 / var(--tex-size), var(--blue); }

/* ==========================================================================
   Floating "Refer & Earn" button: quiet pill, bottom-left (WhatsApp is bottom-right)
   ========================================================================== */
.refer-float {
  position: fixed; left: 20px; bottom: 22px; z-index: 58;
  opacity: 0; transform: translateY(12px); pointer-events: none;
  transition: opacity .35s ease, transform .35s ease;
}
.refer-float.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.refer-float__link {
  display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 16px 0 6px;
  background: rgba(255, 255, 255, .96); border: 1px solid var(--line); border-radius: var(--pill);
  box-shadow: var(--shadow-sm); color: var(--blue); font-weight: 600; font-size: .9rem; white-space: nowrap;
  transition: box-shadow .2s, border-color .2s;
}
.refer-float__link:hover, .refer-float__link:focus-visible { box-shadow: var(--shadow); border-color: var(--line-2); }
.refer-float__icon { width: 32px; height: 32px; border-radius: 50%; background: var(--blue-light); display: grid; place-items: center; flex: none; }
.refer-float__icon svg { width: 17px; height: 17px; fill: none; stroke: var(--blue); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.refer-float__more { max-width: 0; overflow: hidden; opacity: 0; color: var(--muted); font-weight: 500; transition: max-width .35s ease, opacity .25s ease; }
.refer-float:hover .refer-float__more, .refer-float:focus-within .refer-float__more { max-width: 140px; opacity: 1; }
.refer-float__close {
  position: absolute; top: -8px; right: -8px; width: 22px; height: 22px; border-radius: 50%;
  border: 1px solid var(--line); background: #fff; color: var(--muted); font-size: 14px; line-height: 1;
  cursor: pointer; display: grid; place-items: center; padding: 0;
  opacity: 0; transition: opacity .2s;
}
.refer-float:hover .refer-float__close, .refer-float:focus-within .refer-float__close { opacity: 1; }
.refer-float__close:hover { color: var(--ink); border-color: var(--ink); }
/* phones: small round gift icon above the bottom action bar */
@media (max-width: 640px) {
  .refer-float { left: 14px; bottom: 84px; }
  .refer-float__link { width: 46px; height: 46px; padding: 0; justify-content: center; box-shadow: var(--shadow); }
  .refer-float__icon { width: 34px; height: 34px; }
  .refer-float__text, .refer-float__more, .refer-float__close { display: none; }
}
@media (hover: none) { .refer-float__close { display: none; } }

/* Required-field asterisk and invalid consent box */
.req { color: #d92d20; font-weight: 700; }
.consent.is-invalid span { color: #b42318; }
.consent.is-invalid input { outline: 2px solid #f04438; outline-offset: 2px; }
.section--blue .form-card .consent.is-invalid span { color: #b42318; }

/* Cost calculator capture fields + hidden anti-spam field + "emailed" note */
.est-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.est-fields .full { grid-column: 1 / -1; }
.est-fields label > span { display: block; font-size: .82rem; font-weight: 600; color: #dbe6ff; margin-bottom: 5px; }
.est-fields .req { color: #ff8a80; }
.est-capture .form-msg.err { color: #ffb4ab; }
.est-capture .form-msg.ok, .est-capture .form-msg.ok a { color: #a6f4c5; }
@media (max-width: 640px) { .est-fields { grid-template-columns: 1fr; } }
.hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.result-email { background: #e8f8ef; color: #0f7a46 !important; border-radius: 12px; padding: 10px 14px; font-weight: 600; font-size: .95rem; }

/* Anything with the hidden attribute stays hidden, even buttons with display styles */
[hidden] { display: none !important; }

/* Eligibility result: score bar, what-to-fix list, badge colour per result */
.elig-meter { display: flex; align-items: center; gap: 12px; max-width: 380px; margin: 4px auto 16px; }
.elig-bar { flex: 1; height: 10px; background: var(--line); border-radius: var(--pill); overflow: hidden; }
.elig-bar i { display: block; height: 100%; width: 0; border-radius: inherit; background: var(--green); transition: width .9s cubic-bezier(.2, .8, .2, 1); }
.elig-meter span { font-weight: 700; font-size: .9rem; white-space: nowrap; color: #0f7a46; }
.elig-meter[data-level="close"] .elig-bar i { background: #f79009; }
.elig-meter[data-level="close"] span { color: #b54708; }
.elig-meter[data-level="not_yet"] .elig-bar i { background: var(--blue); }
.elig-meter[data-level="not_yet"] span { color: var(--blue); }
.elig-gaps { text-align: left; max-width: 460px; margin: 0 auto 18px; padding: 14px 18px 14px 34px; background: #fffaeb; border: 1px solid #fedf89; border-radius: 12px; font-size: .93rem; color: var(--ink-2); list-style: disc; }
.elig-gaps li + li { margin-top: 6px; }
.result-badge[data-level="close"] { background: #fef0c7; color: #b54708; }
.result-badge[data-level="not_yet"] { background: var(--blue-light); color: var(--blue); }

/* ==========================================================================
   Events, Careers and 404 pages
   ========================================================================== */
.event-list { display: grid; gap: 16px; max-width: 900px; margin: 0 auto; }
.event { display: grid; grid-template-columns: 120px 1fr; gap: 24px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 24px; }
.event-date { background: var(--blue); color: #fff; border-radius: var(--radius); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 14px 8px; text-align: center; align-self: start; }
.event-date b { font-size: 1.9rem; line-height: 1; letter-spacing: -.03em; }
.event-date span { font-size: .85rem; font-weight: 600; color: #dbe6ff; margin-top: 6px; }
.event-body { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.event-body h3 { font-size: 1.3rem; margin: 2px 0 0; }
.event-body p { color: var(--muted); margin: 0; }
.event-body .read-more { color: var(--blue); font-weight: 600; }
.role-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.role { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; }
.role h3 { font-size: 1.1rem; margin: 0 0 6px; }
.role p { color: var(--muted); margin: 0; font-size: .95rem; }
.nf-code { font-size: clamp(5rem, 16vw, 9rem); font-weight: 800; line-height: 1; letter-spacing: -.06em; color: var(--blue); opacity: .15; margin-bottom: -10px; }
.nf .blog-search { margin-top: 8px; }
.nf-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.nf-card { display: flex; flex-direction: column; gap: 8px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 24px; transition: box-shadow .2s, transform .2s; }
.nf-card:hover { box-shadow: var(--shadow); transform: translateY(-3px); }
.nf-card h2 { font-size: 1.2rem; margin: 6px 0 0; }
.nf-card p { color: var(--muted); margin: 0; font-size: .95rem; flex: 1; }
.nf-card .read-more { color: var(--blue); font-weight: 600; }
.nf-card--blue { background: var(--blue); border-color: var(--blue); color: #fff; }
.nf-card--blue p { color: #dbe6ff; }
.nf-card--blue .read-more { color: var(--yellow); }
.nf-card--blue .svc-ico { background: rgba(255, 255, 255, .15); color: #fff; }
@media (max-width: 1000px) { .nf-grid { grid-template-columns: 1fr 1fr; } .role-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) {
  .nf-grid, .role-grid { grid-template-columns: 1fr; }
  .event { grid-template-columns: 1fr; gap: 14px; padding: 20px; }
  .event-date { flex-direction: row; gap: 8px; justify-self: start; padding: 8px 14px; }
  .event-date span { margin-top: 0; }
}

/* ==========================================================================
   Dropdown under "About Us" (desktop) and indented sub-links (mobile)
   ========================================================================== */
.nav-item { position: relative; display: flex; align-items: center; }
.nav-item .nav-parent { padding-right: .35em; }
.sub-toggle { display: grid; place-items: center; width: 26px; height: 32px; margin-left: -4px; margin-right: 2px; border: 0; background: none; color: var(--ink-2); cursor: pointer; border-radius: 8px; }
.sub-toggle:hover { color: var(--blue); }
.nav-chev { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s; }
.nav-item.is-active .nav-parent { background: var(--blue-soft); color: var(--blue); }
.subnav { position: absolute; top: 100%; left: -8px; padding-top: 10px; min-width: 270px; opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .18s ease, transform .18s ease, visibility .18s; z-index: 60; }
.subnav-inner { background: #fff; border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow-lg); padding: 8px; display: grid; gap: 2px; }
.subnav a { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: 10px; color: var(--ink); }
.subnav a b { font-weight: 600; font-size: .95rem; }
.subnav a span { font-size: .82rem; color: var(--muted); }
.subnav a:hover, .subnav a[aria-current="page"] { background: var(--blue-soft); }
.subnav a:hover b, .subnav a[aria-current="page"] b { color: var(--blue); }
.has-sub:hover .subnav, .has-sub.is-open .subnav { opacity: 1; visibility: visible; transform: none; }
.has-sub.is-closed:not(.is-open) .subnav { opacity: 0; visibility: hidden; }
.has-sub:hover .nav-chev, .has-sub.is-open .nav-chev { transform: rotate(180deg); }
.mobile-nav a.sub { padding-left: 26px; font-size: 1.02rem; font-weight: 500; color: var(--muted); position: relative; }
.mobile-nav a.sub::before { content: ""; position: absolute; left: 10px; top: 50%; width: 8px; height: 1.5px; background: var(--line-2); }
.mobile-nav a[aria-current="page"] { color: var(--blue); }

/* Floating buttons step aside while the phone menu is open */
.menu-open .wa-float, .menu-open .refer-float, .menu-open .mobile-bar { display: none; }

/* Cost calculator page */
.cost-countries { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.cost-country { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 28px; display: flex; flex-direction: column; gap: 12px; scroll-margin-top: 100px; }
.cost-country h2 { font-size: 1.35rem; margin: 0; }
.cost-total { margin: 0; color: var(--ink-2); }
.cost-total strong { color: var(--blue); }
.cost-table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.cost-table th, .cost-table td { padding: 9px 0; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.cost-table th { font-weight: 500; color: var(--muted); padding-right: 12px; }
.cost-table td { font-weight: 700; text-align: right; white-space: nowrap; }
.cost-note { font-size: .9rem; color: var(--muted); margin: 0; flex: 1; }
.cost-country .btn { align-self: flex-start; }
@media (max-width: 900px) { .cost-countries { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .cost-table td { white-space: normal; } .cost-country { padding: 22px; } }

.cta-inline--light { background: var(--blue-soft); color: var(--ink); border: 1px solid var(--line-2); }
.cta-inline--light span { color: var(--muted); }
.cta-inline--light .btn { color: #fff; text-decoration: none; }

.est-form h2 { font-size: 1.5rem; margin: 0; }

/* ---------- File upload (careers CV) ---------- */
.input--file { padding: .6em .7em; color: var(--muted); cursor: pointer; }
.input--file::file-selector-button { font: inherit; font-weight: 600; color: #fff; background: var(--blue); border: 0; border-radius: 8px; padding: .5em 1em; margin-right: 12px; cursor: pointer; }
.input--file:hover::file-selector-button { background: var(--navy, #0b1530); }
.field-hint { display: block; margin-top: 6px; font-size: .8rem; color: var(--muted); }

/* ---------- Events loaded from WordPress ---------- */
.event-meta { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: .92rem; font-weight: 600; color: var(--ink-2) !important; }
.event-meta span { display: inline-flex; align-items: center; gap: 6px; }
.event-meta .icon { width: 16px; height: 16px; color: var(--blue); }
.event-actions { display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: center; margin-top: 6px; }
.event-img { width: 100%; max-height: 260px; object-fit: cover; border-radius: var(--radius); margin-top: 4px; }
.event--upcoming { border-color: var(--blue); box-shadow: 0 10px 30px rgba(11, 68, 196, .08); }
.event--upcoming .event-date { background: var(--red, #ed3237); }

/* ---------- Video testimonial card (same size as the written stories) ---------- */
.story--video { padding: 0; overflow: hidden; background: var(--blue-deep, #0b1530); border-color: transparent; min-height: 420px; position: relative; }
.story-video { all: unset; box-sizing: border-box; position: absolute; inset: 0; cursor: pointer; display: block;
  background: radial-gradient(120% 80% at 50% 0%, #1a4fd0 0%, #0b1530 70%); }
.story-video:focus-visible { outline: 3px solid var(--yellow); outline-offset: -3px; border-radius: var(--radius-lg); }
.story-video__poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.story-video__poster.is-missing { display: none; }
.story-video::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11, 21, 48, 0) 40%, rgba(11, 21, 48, .92) 100%); }
.story-video__play { position: absolute; z-index: 1; top: 42%; left: 50%; width: 72px; height: 72px; margin: -36px 0 0 -36px; border-radius: 50%;
  background: var(--red, #ed3237); display: grid; place-items: center; box-shadow: 0 10px 30px rgba(237, 50, 55, .45); transition: transform .2s; }
.story-video__play svg { width: 30px; height: 30px; fill: #fff; margin-left: 4px; }
.story-video:hover .story-video__play { transform: scale(1.08); }
.story-video__cap { position: absolute; z-index: 1; left: 22px; right: 22px; bottom: 22px; display: grid; gap: 6px; color: #fff; justify-items: start; }
.story-video__cap b { font-size: 1.15rem; }
.story-video__cap span:last-child { color: #c9d4ec; font-size: .92rem; line-height: 1.4; }
.story--video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: #000; }

/* ---------- Telegram community landing page ---------- */
.tg-hero { padding-bottom: 72px; }
.tg-split { display: grid; grid-template-columns: 1.05fr .95fr; grid-template-areas: "copy card" "benefits card"; column-gap: 48px; align-items: start; }
.tg-copy { grid-area: copy; }
.tg-card { grid-area: card; }
.tg-benefits { grid-area: benefits; }
.tg-eyebrow { display: inline-flex; align-items: center; gap: 6px; background: #e3f2fd; color: #1683c7; }
.tg-eyebrow .icon { width: 15px; height: 15px; }
.tg-benefits { list-style: none; padding: 0; margin: 8px 0 0; display: grid; gap: 18px; }
.tg-benefits li { display: flex; gap: 14px; align-items: flex-start; }
.tg-benefits b { font-size: 1.05rem; }
.tg-benefits p { margin: 2px 0 0; color: var(--muted); font-size: .95rem; }
.tg-ico { flex: 0 0 44px; height: 44px; border-radius: 12px; background: var(--blue-soft); color: var(--blue); display: grid; place-items: center; }
.tg-ico .icon { width: 22px; height: 22px; }
.tg-card { position: sticky; top: 96px; }
.tg-card-head { display: flex; gap: 14px; align-items: center; margin-bottom: 18px; }
.tg-card-head h2 { font-size: 1.5rem; margin: 0; }
.tg-card-head p { margin: 2px 0 0; color: var(--muted); font-size: .95rem; }
.tg-badge { flex: 0 0 52px; height: 52px; border-radius: 50%; background: #229ed9; color: #fff; display: grid; place-items: center; box-shadow: 0 8px 20px rgba(34, 158, 217, .35); }
.tg-badge .icon { width: 26px; height: 26px; margin-left: -2px; }
.btn--tg { background: #229ed9; color: #fff; border-color: #229ed9; display: inline-flex; align-items: center; justify-content: center; gap: 10px; }
.btn--tg:hover { background: #1a8bc2; border-color: #1a8bc2; color: #fff; }
.btn--tg .icon { width: 20px; height: 20px; }
.tg-note { display: flex; align-items: center; justify-content: center; gap: 6px; margin: 14px 0 0; font-size: .85rem; color: var(--muted); }
.tg-note .icon { width: 16px; height: 16px; color: #12b76a; }
.tg-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.tg-step { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 24px; }
.tg-step b { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: #229ed9; color: #fff; font-size: 1.1rem; }
.tg-step h3 { font-size: 1.15rem; margin: 14px 0 6px; }
.tg-step p { margin: 0; color: var(--muted); }
.form-msg.tg-go { color: #0f7a46; }
.form-msg.tg-go a { font-weight: 700; text-decoration: underline; }
@media (max-width: 900px) {
  .tg-split { grid-template-columns: 1fr; grid-template-areas: "copy" "card" "benefits"; row-gap: 28px; }
  .tg-card { position: static; }
  .tg-steps { grid-template-columns: 1fr; }
}
@media (max-width: 520px) { .tg-copy h1 { font-size: 2.1rem; } }


/* ---------- Hero background animation (full section, subtle) ---------- */
.hero > .wrap, .hero > .marquee-block { position: relative; z-index: 1; }
.hero-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.hero-bg__map { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-bg__map.is-mob { display: none; }
.hb-arc { fill: none; stroke: #0b44c4; stroke-opacity: .16; stroke-width: 2; stroke-dasharray: 3 9; stroke-linecap: round; animation: hb-dash 40s linear infinite; }
.hb-plane path { fill: #0b44c4; opacity: .38; }
.hb-dot { fill: #0b44c4; opacity: .28; }
.hb-ring { fill: none; stroke: #0b44c4; stroke-width: 2; opacity: 0; transform-box: fill-box; transform-origin: center; animation: hb-pulse 3.6s ease-out infinite; animation-delay: var(--d, 0s); }
.hb-pin text { fill: #0b44c4; opacity: .42; font-family: inherit; font-weight: 700; letter-spacing: .02em; }
.hb-pin--home .hb-dot { fill: #ed3237; opacity: .35; }
.hb-pin--home .hb-ring { stroke: #ed3237; }
.hero-bg__skyline { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 170px; }
.hero-bg__skyline g { fill: #0b44c4; opacity: .06; }
.hero-bg__skyline .hb-cut { fill: #fff; }
.hero-bg__skyline .hb-stroke { stroke: #0b44c4; }
.hero-bg__clouds i { position: absolute; display: block; width: 180px; height: 54px; border-radius: 60px; background: #fff; opacity: .7; filter: blur(2px);
  box-shadow: 40px -18px 0 6px #fff, 90px -6px 0 0 #fff; animation: hb-cloud 90s linear infinite; }
.hero-bg__clouds i:nth-child(1) { top: 16%; left: -220px; }
.hero-bg__clouds i:nth-child(2) { top: 44%; left: -220px; transform: scale(.7); animation-duration: 120s; animation-delay: -50s; }
.hero-bg__clouds i:nth-child(3) { top: 70%; left: -220px; transform: scale(.85); animation-duration: 105s; animation-delay: -80s; }
@keyframes hb-dash { to { stroke-dashoffset: -480; } }
@keyframes hb-pulse { 0% { opacity: .5; transform: scale(.6); } 70%, 100% { opacity: 0; transform: scale(3); } }
@keyframes hb-cloud { to { translate: calc(100vw + 440px) 0; } }
@media (max-width: 760px) {
  .hero-bg__map.is-desk { display: none; }
  .hero-bg__map.is-mob { display: block; }
  .hero-bg__skyline { height: 110px; }
  .hero-bg__clouds i { width: 120px; height: 36px; }
}
@media (prefers-reduced-motion: reduce) {
  .hb-arc, .hb-ring, .hero-bg__clouds i { animation: none; }
  .hb-plane { display: none; }
}

/* ---------- Mobile header + menu ---------- */
.burger span { display: block; width: 20px; height: 2px; border-radius: 2px; background: var(--ink); transition: transform .3s, opacity .2s; }
.burger { flex-direction: column; gap: 5px; }
.burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.tb-abbr { display: none; }
@media (max-width: 900px) {
  .mobile-nav { display: flex; flex-direction: column; gap: 18px; position: fixed; left: 0; right: 0; bottom: 0; top: 72px; z-index: 49;
    background: #fff; padding: 12px 20px calc(24px + env(safe-area-inset-bottom)); overflow-y: auto; overscroll-behavior: contain;
    opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity .25s, transform .25s, visibility 0s .25s; }
  .mobile-nav.is-open { display: flex; inset: auto 0 0 0; opacity: 1; visibility: visible; transform: none; transition: opacity .25s, transform .25s; padding: 12px 20px calc(24px + env(safe-area-inset-bottom)); }
  .mobile-nav a, .mobile-nav .mnav-link { border-bottom: 0; }
  .mnav-links { display: flex; flex-direction: column; }
  .mnav-link { display: flex !important; align-items: center; justify-content: space-between; width: 100%; padding: 15px 4px !important; font: inherit; font-size: 1.12rem !important;
    font-weight: 600; color: var(--ink); background: none; border: 0; border-bottom: 1px solid var(--line) !important; cursor: pointer; text-align: left; }
  .mnav-link > span { display: inline-flex; align-items: center; gap: 10px; }
  .mnav-link .icon { width: 18px; height: 18px; color: #98a2b3; flex: none; transition: transform .25s; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
  .mnav-link[aria-current="page"] { color: var(--blue); }
  .mnav-link[aria-current="page"] .icon { color: var(--blue); }
  .mnav-tag { font-style: normal; font-size: .7rem; font-weight: 700; padding: 3px 8px; border-radius: var(--pill); background: #e8f8ef; color: #0f7a46; }
  .mnav-group.is-open .mnav-toggle .icon { transform: rotate(180deg); color: var(--blue); }
  .mnav-sub { overflow: hidden; }
  .mnav-sub { display: flex; flex-direction: column; max-height: 0; transition: max-height .3s ease; background: var(--blue-soft); border-radius: 14px; }
  .mnav-group.is-open .mnav-sub { max-height: 220px; margin: 8px 0 6px; }
  .mnav-sub a { display: block; padding: 12px 16px !important; font-size: 1rem !important; font-weight: 500 !important; color: var(--ink-2); border-bottom: 1px solid rgba(11, 68, 196, .08) !important; }
  .mnav-sub a:last-child { border-bottom: 0 !important; }
  .mnav-sub a[aria-current="page"] { color: var(--blue); font-weight: 600 !important; }
  .mnav-cta { display: grid; gap: 10px; }
  .mnav-cta .btn { width: 100%; justify-content: center; text-align: center; margin: 0 !important; padding: .95em 1.2em !important; font-size: 1.05rem !important; }
  .mnav-contact { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: auto; }
  .mnav-contact a { display: flex !important; flex-direction: column; align-items: center; gap: 6px; padding: 12px 6px !important; border-radius: 14px; background: var(--blue-soft);
    font-size: .85rem !important; font-weight: 600; color: var(--blue); border: 0 !important; }
  .mnav-contact .icon { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
  .mnav-contact a:nth-child(2) { background: #e8f8ef; color: #0f7a46; }
  .mnav-contact a:nth-child(2) .icon { fill: currentColor; stroke: none; }
  .mobile-nav.is-open .mnav-links > *, .mobile-nav.is-open .mnav-cta, .mobile-nav.is-open .mnav-contact { animation: mnav-in .35s both; }
  .mobile-nav.is-open .mnav-links > :nth-child(2) { animation-delay: .03s; } .mobile-nav.is-open .mnav-links > :nth-child(3) { animation-delay: .06s; }
  .mobile-nav.is-open .mnav-links > :nth-child(4) { animation-delay: .09s; } .mobile-nav.is-open .mnav-links > :nth-child(5) { animation-delay: .12s; }
  .mobile-nav.is-open .mnav-links > :nth-child(6) { animation-delay: .15s; } .mobile-nav.is-open .mnav-links > :nth-child(7) { animation-delay: .18s; }
  .mobile-nav.is-open .mnav-links > :nth-child(8) { animation-delay: .21s; } .mobile-nav.is-open .mnav-cta { animation-delay: .24s; } .mobile-nav.is-open .mnav-contact { animation-delay: .28s; }
}
@keyframes mnav-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (max-width: 640px) {
  .topbar .wrap { flex-wrap: nowrap; gap: .5rem; padding-top: 8px; padding-bottom: 8px; font-size: .8rem; }
  .tb-lead, .tb-full { display: none; }
  .tb-abbr { display: inline; }
  .topbar .wrap > span:not(.dot) { white-space: nowrap; }
}
@media (prefers-reduced-motion: reduce) {
  .mobile-nav, .mobile-nav.is-open .mnav-links > *, .mobile-nav.is-open .mnav-cta, .mobile-nav.is-open .mnav-contact { animation: none; transition: none; }
}
