/* Way Education — shared theme
   Tokens, reset, base typography, header, buttons, footer.

   Design system: warm-white canvas, deep-indigo headings and interactive
   accents, gold/yellow brand signal, Plus Jakarta Sans, flat (shadow-free)
   cards. The brand runs on two colours — indigo + gold/yellow; the former
   turquoise accent has been retired (see --turquoise below).

   Legacy semantic token names (--navy, --coral, --canvas …) are retained and
   repointed to the live palette so existing page.css files keep working.
   Page-specific rules live in each page's optional page.css. */

/* Plus Jakarta Sans is loaded via <link rel="preconnect"> + <link rel="stylesheet">
   in partials/head.html, NOT via @import here. An @import is only discovered after
   this file has been fetched and parsed, which hides the font request from the
   browser's preload scanner and puts it on a serial critical path. Do not move it
   back. Weights in use: 400, 500, 600, 700, 800 — keep head.html in sync. */

:root{
    /* ── Live brand palette ── */
    --blue:#120F64;              /* headings, primary button, dark sections */
    --primary:#cea800;           /* brand gold */
    --logo-yellow:#FFE100;       /* bright logo yellow — hero accent + button */
    --primary-light:#ffef0d;     /* bright yellow — header band, accents */
    --primary-lightest:#FEFDF6;  /* warm-white page canvas */
    --turquoise:var(--blue);     /* RETIRED — turquoise removed from the brand; repointed to indigo so legacy references render navy. Do not reintroduce #2FA6D9. */
    --secondary:#43627f;         /* slate blue — utility chrome only, not a brand colour */
    --sand:#E6E1C1;              /* parchment — warm neutral for decorative display type */

    /* Gray scale (live) */
    --gray-darkest:#030712;
    --gray-darker:#1f2937;
    --gray-dark:#4b5563;
    --gray-light:#a1a1aa;
    --gray-lighter:#e5e7eb;
    --gray-lightest:#f9fafb;

    /* ── Legacy semantic aliases → repointed to the live palette ── */
    /* Brand */
    --navy:var(--blue);          /* trust / heading anchor */
    --coral:var(--blue);         /* RETIRED accent alias — now indigo (was turquoise). Dots, badges, links, and em emphasis all resolve to navy. */
    --rose:#7a9bb6;              /* soft secondary accent */
    --gold:var(--primary);       /* premium accent */
    --teal:var(--blue);          /* RETIRED support alias — now indigo (was turquoise) */

    /* Neutrals / surfaces */
    --canvas:#FFFFFF;                  /* page background — uniform white (no bands) */
    --surface:#FFFFFF;                 /* card surface (border-defined) */
    --section:#FFFFFF;                 /* section band — flattened to white */
    --cta-bg:#EDF1F6;                  /* soft control fill */
    --premium:#FBF7E6;                 /* warm featured panel */
    --highlight:#FBF3C9;               /* soft yellow highlight */
    --border:var(--gray-lighter);      /* hairline */
    --border-strong:#D1DCE6;           /* stronger divider */

    /* Text */
    --ink:var(--gray-darkest);   /* strong text */
    --body:var(--gray-darker);   /* paragraph copy */
    --muted:var(--gray-dark);    /* meta / kicker */
    --soft:var(--gray-light);    /* placeholder / soft */
    --nav-link:var(--blue);      /* nav links */

    /* ── Type ── */
    --font-display: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --font-body: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --font-ui: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

    /* Fluid type scale (16px/320·1.125 → 18px/1366·1.25) */
    --step--2: clamp(0.72rem, 0.8116rem + -0.1073vw, 0.7901rem);
    --step--1: clamp(0.8889rem, 0.8855rem + 0.017vw, 0.9rem);
    --step-0:  clamp(1rem, 0.9618rem + 0.1912vw, 1.125rem);
    --step-1:  clamp(1.125rem, 1.039rem + 0.4302vw, 1.4063rem);
    --step-2:  clamp(1.2656rem, 1.1151rem + 0.7529vw, 1.7578rem);
    --step-3:  clamp(1.4238rem, 1.1872rem + 1.1831vw, 2.1973rem);
    --step-4:  clamp(1.6018rem, 1.2516rem + 1.7511vw, 2.7466rem);
    --step-5:  clamp(1.802rem, 1.303rem + 2.4951vw, 3.4332rem);

    /* Fluid spacing scale */
    --space-3xs: clamp(0.25rem, 0.2309rem + 0.0956vw, 0.3125rem);
    --space-2xs: clamp(0.5rem, 0.4809rem + 0.0956vw, 0.5625rem);
    --space-xs:  clamp(0.75rem, 0.7118rem + 0.1912vw, 0.875rem);
    --space-s:   clamp(1rem, 0.9618rem + 0.1912vw, 1.125rem);
    --space-m:   clamp(1.5rem, 1.4426rem + 0.2868vw, 1.6875rem);
    --space-l:   clamp(2rem, 1.9235rem + 0.3824vw, 2.25rem);
    --space-xl:  clamp(3rem, 2.8853rem + 0.5736vw, 3.375rem);
    --space-2xl: clamp(4rem, 3.847rem + 0.7648vw, 4.5rem);
    --space-3xl: clamp(6rem, 5.7706rem + 1.1472vw, 6.75rem);

    /* ── Radius ── */
    --r-btn:5px;
    --r-sm:8px;
    --r-md:12px;
    --r-lg:24px;
    --r-xl:32px;
    --r-pill:999px;

    /* ── Elevation — flat by default (live site uses no content shadows) ── */
    --shadow-soft:none;
    --shadow-card:none;

    /* Page container width (live: 1366px) */
    --page-max:1366px;

    /* ── Button shape ──
       One geometry for every button on the site. Page stylesheets set colour
       only; the shape lives here so it can never drift page to page. */
    --btn-pad-y:15px;
    --btn-pad-x:28px;
    --btn-gap:10px;
    --btn-fs:0.8rem;
    --btn-fw:700;
    --btn-ls:0.1em;
    --btn-lh:1.7;
    --btn-bw:1px;

    /* Destination accent (destination pages may override) */
    --accent:var(--navy);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:auto}
body{
    background:var(--canvas);
    color:var(--body);
    font-family:var(--font-body);
    font-size:16px;
    line-height:1.72;
    font-weight:400;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block;border-radius:var(--r-md)}
.card-figure img,.approach-figure img,.passage-image img{border-radius:0}
a{color:var(--coral);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
ul,ol{list-style:none}

h1,h2,h3,h4{font-family:var(--font-display);color:var(--navy);font-weight:700;line-height:1.2;letter-spacing:-0.02em}
h1{line-height:1.1}

.wrap{max-width:1168px;margin:0 auto;padding:0 56px}

.eyebrow{
    font-family:var(--font-ui);
    font-size:0.78rem;
    font-weight:700;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--muted);
    display:inline-block;
    margin-bottom:20px;
}

/* ───────── header ───────── */
header.site{
    background:var(--primary-lightest);
    border-bottom:2px solid var(--primary);
    padding:20px 56px;
    display:grid;
    grid-template-columns: 1fr auto 1fr;
    align-items:center;
    gap:40px;
}
.brand{
    font-family:var(--font-display);
    font-size:1.4rem;
    font-weight:700;
    color:var(--navy);
    text-decoration:none;
    letter-spacing:0;
    display:inline-flex;
    align-items:center;
}
.brand-logo{
    height:28px;
    width:auto;
    flex-shrink:0;
    margin-right:10px;
    border-radius:0;   /* opt out of the global img radius — it clips the mark */
}
.brand .brand-int{font-weight:700;color:inherit;margin-left:0.18em}
nav.primary{
    display:flex;
    gap:36px;
    justify-content:center;
    font-family:var(--font-ui);
    font-size:0.92rem;
    font-weight:700;
}
nav.primary a{color:var(--nav-link);text-decoration:none}
nav.primary a.is-active{color:var(--navy);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
.header-right{
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:18px;
    font-family:var(--font-ui);
    font-size:0.85rem;
}
.header-right a.header-social{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    line-height:0;
}
.header-right a.header-social img{
    display:block;
    width:34px;
    height:34px;
    border-radius:0;
}
/* WhatsApp glyph has more padding in its viewBox — size up slightly to match Instagram */
.header-right a.header-social--wa img{
    width:38px;
    height:38px;
}
.header-right a.consult{
    display:inline-flex;
    align-items:center;
    padding:10px 20px;
    background:var(--blue);
    color:var(--logo-yellow);
    border:1.5px solid var(--blue);
    border-radius:var(--r-pill);
    text-decoration:none;
    font-weight:700;
    letter-spacing:0.02em;
}

/* ───────── buttons ─────────
   SITE-WIDE BUTTON SHAPE. Every button on the site — the shared .btn and every
   page-local button class under pages/ — is shaped by this single rule, so the
   geometry can never drift page to page. Page stylesheets set colour only
   (background / color / border-color); they must not redeclare padding,
   font-size, letter-spacing, border-width, or border-radius. When a new page
   introduces its own button class, add it to this selector list. */
.cta-row{display:flex;gap:16px;flex-wrap:wrap}
.btn,
.ed-btn,
.fs-btn,
.svc-btn,
.dp-btn,
.asa-btn,
.caa-btn,
.eut-btn,
.gcb-btn,
.gm-btn,
.nlb-btn,
.nz-btn,
.ocd-btn,
.pga-btn,
.sab-btn,
.sca-btn,
.smb-btn,
.svs-btn,
.tsb-btn,
.uke-btn,
.usb-btn,
a.related-card .cue{
    display:inline-flex;
    align-items:center;
    gap:var(--btn-gap);
    padding:var(--btn-pad-y) var(--btn-pad-x);
    font-family:var(--font-ui);
    font-size:var(--btn-fs);
    font-weight:var(--btn-fw);
    letter-spacing:var(--btn-ls);
    line-height:var(--btn-lh);
    text-transform:uppercase;
    text-decoration:none;
    border-radius:var(--r-btn);
    border:var(--btn-bw) solid transparent;
}
/* Panel buttons: two-line blocks (title + caption, spaced apart) that cannot take
   the single-line geometry above, but must still carry the site button shape.
   Radius only — these pages set their own padding, colour, and typography. Keep
   the radius here so it stays a single source of truth. */
.crb-btn,
.fg-btn,
.fsb-btn,
.tst-btn{
    border-radius:var(--r-btn);
}
/* Arrow glyphs sit inline in button labels on most pages; keep one size. */
.btn .ar,
.eut-btn i,
.ocd-btn i,
.sca-btn .ar,
.tsb-btn .ar,
.uke-btn .ar{font-size:1rem;font-style:normal;font-weight:700;letter-spacing:0;line-height:1}
.btn.primary{
    background:var(--blue);
    color:var(--primary-light);
    border-color:var(--blue);
}
.btn.secondary{
    background:var(--blue);
    color:var(--primary-light);
    border-color:var(--blue);
}
/* Drawn arrow (line + chevron) used by buttons whose label has no → glyph. */
.btn .arrow,
.gcb-btn .a{
    display:inline-block;
    width:18px;
    height:1px;
    background:currentColor;
    position:relative;
}
.btn .arrow::after,
.gcb-btn .a::after{
    content:"";
    position:absolute;
    right:0;
    top:-3px;
    width:7px;
    height:7px;
    border-top:1px solid currentColor;
    border-right:1px solid currentColor;
    transform:rotate(45deg);
}

/* ───────── footer ───────── */
footer.site-foot{
    background:var(--navy);
    color:rgba(255,255,255,0.82);
    padding:64px 56px 36px;
    font-family:var(--font-ui);
}
.foot-top{
    display:grid;
    grid-template-columns: 1.4fr 1fr 1fr 1fr;
    gap:40px;
    padding-bottom:48px;
    border-bottom:1px solid rgba(255,255,255,0.15);
}
.foot-top .brand{color:#FFFFFF;font-size:1.4rem}
.foot-top .brand .brand-int{color:var(--gold)}
.foot-top .small{
    margin-top:16px;
    font-family:var(--font-body);
    font-size:0.95rem;
    line-height:1.6;
    color:rgba(255,255,255,0.65);
    max-width:38ch;
}
.foot-social{
    display:flex;
    align-items:center;
    gap:8px;
    margin-top:16px;
    font-family:var(--font-ui);
    font-size:0.92rem;
    font-weight:600;
    color:var(--gold);
    text-decoration:none;
}
.foot-social + .foot-social{margin-top:10px}
.foot-social-icon{
    display:block;
    width:20px;
    height:20px;
    flex:0 0 auto;
    border-radius:0;
}
.foot-top .label{
    font-family:var(--font-ui);
    font-size:0.72rem;
    font-weight:700;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:rgba(255,255,255,0.55);
    display:block;
    margin-bottom:16px;
}
.foot-top ul li{
    padding:5px 0;
    font-size:0.92rem;
    color:rgba(255,255,255,0.82);
}
.foot-top ul li a{color:inherit;text-decoration:none}
.foot-bottom{
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    align-items:center;
    gap:10px 32px;
    padding-top:24px;
    font-size:0.82rem;
    color:rgba(255,255,255,0.5);
}
/* legal links — deliberately quiet, sitting on the copyright line */
.foot-legal{display:flex;flex-wrap:wrap;gap:8px 20px}
.foot-legal a{
    color:rgba(255,255,255,0.62);
    text-decoration:none;
}

/* ───────── content components ───────── */

/* section head — kicker + h2 + lead block, used on every section */
.section-head{max-width:64ch;margin-bottom:56px}
.section-head h2{font-size:clamp(1.8rem, 3vw, 2.6rem);line-height:1.15;margin-bottom:18px;color:var(--navy)}
.section-head h2 em{font-style:italic;color:var(--coral);font-weight:700}
.section-head .lead{font-size:1.08rem;line-height:1.7;color:var(--body);max-width:58ch}

/* hero — full-bleed photo + neutral charcoal gradient scrim, so the photo's
   colours stay true while the headline stays highly legible. The scrim is
   heaviest on the left (text zone) and fades right to let the photo breathe.
   Text is white with a gold italic accent, for strong contrast against the
   photo. Per-page page.css sets background-image. */
.hero{position:relative;min-height:clamp(480px, 50vw, 640px);padding:clamp(80px, 8vh, 120px) max(56px, calc((100% - 1168px) / 2));border-bottom:none;background-color:#111114;background-position:center;background-size:cover;background-repeat:no-repeat;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(to right, rgba(17,17,20,0.82) 0%, rgba(17,17,20,0.55) 50%, rgba(17,17,20,0.15) 100%)}
.hero > *{position:relative;z-index:1}
.hero h1{font-size:clamp(2.4rem, 5vw, 3.8rem);line-height:1.08;letter-spacing:0;margin-bottom:28px;max-width:20ch;color:#FFFFFF}
.hero h1 em{font-style:italic;color:var(--logo-yellow);font-weight:700}
.hero .lead{font-size:1.15rem;line-height:1.7;color:rgba(255,255,255,0.9);max-width:56ch;margin-bottom:36px}
.hero .eyebrow{color:rgba(255,255,255,0.75)}
.hero .btn.primary{background:var(--logo-yellow);color:var(--blue);border-color:var(--logo-yellow)}
.hero .btn.secondary{background:var(--logo-yellow);color:var(--blue);border-color:var(--logo-yellow)}
.split-card .card-figure{aspect-ratio:16/9;border-radius:var(--r-md);overflow:hidden;margin-bottom:22px;background:var(--surface);border:1px solid var(--border)}
.split-card .card-figure img{width:100%;height:100%;object-fit:cover;display:block}

/* passage — intro block with side kicker + body prose */
.passage{padding:96px 56px;background:var(--section);border-bottom:1px solid var(--border)}
.passage-grid{display:grid;grid-template-columns:260px 1fr;gap:72px;max-width:1168px;margin:0 auto}
.passage-meta{align-self:start}
.passage-meta .kicker{font-family:var(--font-ui);font-size:0.72rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:10px}
.passage-meta .note{font-family:var(--font-display);font-style:italic;font-size:1rem;color:var(--coral)}
.passage-body p{font-size:1.25rem;line-height:1.7;color:var(--ink);max-width:58ch}
.passage-body p + p{margin-top:22px;color:var(--body);font-size:1.1rem}

/* related — "see also" grid of related service/destination cards */
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.related-card{padding:28px 26px 32px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);display:flex;flex-direction:column;gap:14px;text-decoration:none;color:inherit;min-height:240px;box-shadow:var(--shadow-soft)}
.related-card .num{font-family:var(--font-ui);font-size:0.72rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--coral)}
.related-card h3{font-size:1.2rem;color:var(--navy);line-height:1.3}
.related-card p{font-family:var(--font-body);font-size:0.98rem;line-height:1.65;color:var(--body);margin-top:auto}
.related-card .cue{font-family:var(--font-ui);font-size:0.78rem;font-weight:700;letter-spacing:0.08em;color:var(--coral);padding-top:14px;border-top:1px solid var(--border);margin-top:auto}
/* Clickable-card affordance — peach fill, coral left edge, lifted shadow.
   Static cards (e.g. .scope-card, .split-card, .reason) keep the default surface. */
a.related-card{background:var(--premium);border-left:3px solid var(--coral);box-shadow:var(--shadow-card)}
/* Card cue rendered as a button. The whole card is the <a>, so the cue stays a
   styled span (a nested <a> would be invalid). Mirrors the shared .btn.secondary. */
a.related-card .cue{
    align-self:flex-start;
    margin-top:auto;
    border-color:var(--blue);
    background:var(--blue);
    color:var(--primary-light);
}
a.related-card .cue::after{
    content:"";
    flex:none;
    width:7px;
    height:7px;
    border-top:1px solid currentColor;
    border-right:1px solid currentColor;
    transform:rotate(45deg);
}

/* card-figure — image strip on top of cards (related-card, scope-card) */
.related-card:has(.card-figure),
.scope-card:has(.card-figure){padding:0;overflow:hidden;gap:0}
.related-card .card-figure,
.scope-card .card-figure{aspect-ratio:16/9;overflow:hidden;background:var(--surface);border-bottom:1px solid var(--border)}
.related-card .card-figure img,
.scope-card .card-figure img{width:100%;height:100%;object-fit:cover;display:block}
.related-card .card-body,
.scope-card .card-body{padding:24px 26px 28px;display:flex;flex-direction:column;gap:14px;flex:1}
.scope-card .card-body{gap:12px}
.scope-card .card-body p{margin-top:auto}

/* step — circular coral counter, used in process/flow lists */
.step{width:40px;height:40px;border-radius:50%;background:var(--coral);color:#FFFFFF;font-family:var(--font-ui);font-size:0.95rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center}

/* num — circular coral badge in checklists/questions; uppercase label in .reason / .type-card */
.checklist .num,
.choose-list .num,
.topics-grid .num,
.q-list .num{font-family:var(--font-ui);font-size:0.85rem;font-weight:700;color:#FFFFFF;background:var(--coral);width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}
.reason .num{font-family:var(--font-ui);font-size:0.72rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--coral);margin-bottom:4px}
.type-card .num{font-family:var(--font-ui);font-size:0.78rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--gold);margin-bottom:4px}

/* lead — paragraph lead block used in destination "choose" and service "prose" bodies */
.choose-body .lead{font-size:1.05rem;line-height:1.7;color:var(--body);max-width:52ch;margin-bottom:28px}
.prose-body p.lead{font-size:1.15rem;color:var(--ink);line-height:1.7}

/* approach — section wrapper used on service pages, UK service pages, and about-us */
.approach{padding:100px 56px;background:var(--section);border-bottom:1px solid var(--border)}

/* approach-content — two-column image + steps list (image height matches list).
   Image must follow the text column's natural height, not its own aspect ratio:
   absolute-positioned img inside relative figure with align-items:stretch. */
.approach-content{display:grid;grid-template-columns:1fr 1.25fr;gap:56px;align-items:stretch}
.approach-figure{position:relative;border-radius:var(--r-xl);overflow:hidden;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-card);min-height:0}
.approach-figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.approach-content .approach-list{margin:0}

/* passage-teaser — two-column image + editorial copy (image height matches copy).
   Same constraint as approach-content. */
.passage-teaser{max-width:1168px;margin:0 auto;display:grid;grid-template-columns:1fr 1.3fr;gap:72px;align-items:stretch}
.passage-image{position:relative;border-radius:var(--r-xl);overflow:hidden;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-card);min-height:0}
.passage-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.passage-content{display:flex;flex-direction:column;justify-content:center}
.passage-content .kicker{font-family:var(--font-ui);font-size:0.72rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:10px}
.passage-content .note{font-family:var(--font-display);font-style:italic;font-size:1.1rem;color:var(--coral);margin-bottom:24px}

@media (max-width:1100px){
  .approach-content{grid-template-columns:1fr;gap:32px}
  .approach-figure{aspect-ratio:16/9}
  .passage-teaser{grid-template-columns:1fr;gap:32px}
  .passage-image{aspect-ratio:16/9}
}

/* approach-grid — 5-col stepped card grid used on service pages */
.approach-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}
.approach-grid li{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:26px 22px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow-soft)}
.approach-grid h3{font-size:1.08rem;color:var(--navy);line-height:1.3}
.approach-grid p{font-family:var(--font-body);font-size:0.95rem;line-height:1.6;color:var(--body)}

/* approach-list — two-column step list used on UK destination-service pages */
.approach-list{display:grid;gap:16px}
.approach-list li{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:26px 30px;display:grid;grid-template-columns:52px 1fr;gap:24px;align-items:start;box-shadow:var(--shadow-soft)}
.approach-list h3{font-size:1.2rem;color:var(--navy);line-height:1.3;margin-bottom:6px}
.approach-list p{font-family:var(--font-body);font-size:1rem;line-height:1.65;color:var(--body);max-width:64ch}

/* process-grid — 4-col stepped process cards used on destination pages */
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.process-grid li{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:28px 26px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow-soft)}
.process-grid h3{font-size:1.15rem;color:var(--navy);line-height:1.3}
.process-grid p{font-family:var(--font-body);font-size:0.98rem;line-height:1.65;color:var(--body)}

/* faq — section wrapper and tagged Q&A card list used on service pages */
.faq{padding:100px 56px;background:var(--canvas);border-bottom:1px solid var(--border)}
.faq-list{display:grid;gap:16px}
.faq-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:28px 30px;display:grid;grid-template-columns:180px 1fr;gap:40px;box-shadow:var(--shadow-soft)}
.faq-item .tag{font-family:var(--font-ui);font-size:0.72rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--nav-link);background:var(--cta-bg);border:1px solid var(--border-strong);padding:6px 12px;border-radius:var(--r-pill);white-space:nowrap;height:max-content;align-self:start}
.faq-item h3{font-size:1.1rem;color:var(--navy);line-height:1.3;margin-bottom:10px}
.faq-item p{font-family:var(--font-body);font-size:1rem;line-height:1.7;color:var(--body);max-width:64ch}

/* faq-grid — aside + list layout used on UK destination-service pages */
.faq-grid{max-width:1168px;margin:0 auto;display:grid;grid-template-columns:1fr 1.6fr;gap:72px}
.faq-grid .faq-list{gap:14px}
.faq-aside h2{font-size:clamp(1.8rem,3vw,2.4rem);line-height:1.15;color:var(--navy)}
.faq-aside h2 em{font-style:italic;color:var(--coral);font-weight:700}
.faq-grid .faq-list article{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:24px 28px}
.faq-grid .faq-list h3{font-family:var(--font-display);font-size:1.15rem;font-weight:700;line-height:1.3;margin-bottom:10px;color:var(--navy)}
.faq-grid .faq-list p{font-family:var(--font-body);font-size:1rem;line-height:1.65;color:var(--body);max-width:64ch}

/* closing — navy CTA section with aside consultation card */
.closing{padding:110px 56px;background:var(--premium);border-top:1px solid var(--border-strong);border-bottom:1px solid var(--border-strong)}
.closing-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:72px;align-items:center}
.closing .eyebrow{color:var(--muted)}
.closing h2{font-size:clamp(2rem, 4vw, 3rem);line-height:1.15;color:var(--navy);margin-bottom:22px;max-width:18ch}
.closing h2 em{font-style:italic;color:var(--blue);font-weight:700}
.closing .lead{font-size:1.08rem;line-height:1.7;color:var(--body);max-width:54ch;margin-bottom:32px}
.closing .btn.secondary{background:var(--blue);color:var(--primary-light);border-color:var(--blue)}
.closing-visual{aspect-ratio:4/5;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-xl);padding:36px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:var(--shadow-card)}
.closing-visual .kicker{font-family:var(--font-ui);font-size:0.72rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--navy);background:var(--highlight);padding:8px 14px;border-radius:var(--r-pill);align-self:flex-start}
.closing-visual .headline{font-family:var(--font-display);font-size:1.5rem;line-height:1.35;color:var(--navy);margin-top:24px}
.closing-visual .facts{margin-top:24px;display:grid;gap:10px;font-family:var(--font-ui);font-size:0.9rem;color:var(--body)}
.closing-visual .facts div{display:flex;justify-content:space-between;padding:10px 0;border-top:1px solid var(--border)}
.closing-visual .facts div:first-child{border-top:none}
.closing-visual .facts span:first-child{color:var(--muted);text-transform:uppercase;letter-spacing:0.1em;font-size:0.72rem;font-weight:700}
.closing-visual .facts span:last-child{color:var(--ink);font-weight:700}


/* ───────── service-detail page (services/*) ───────── */

.audience{padding:100px 56px;background:var(--section);border-bottom:1px solid var(--border)}
.audience-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.audience-grid li{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:26px 24px 28px;display:flex;flex-direction:column;gap:14px;min-height:180px;box-shadow:var(--shadow-soft)}
.audience-grid li .mark{font-family:var(--font-ui);font-size:0.72rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--coral)}
.audience-grid li p{font-family:var(--font-body);font-size:1.02rem;line-height:1.55;color:var(--ink)}
.bullet-list{display:grid;gap:10px;margin-top:14px}
.bullet-list li{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:16px 20px;display:grid;grid-template-columns:36px 1fr;gap:14px;align-items:center;font-family:var(--font-body);font-size:1rem;line-height:1.55;color:var(--ink)}
.bullet-list li .n{font-family:var(--font-ui);font-size:0.78rem;font-weight:700;color:#FFFFFF;background:var(--coral);width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}
.def-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:72px;align-items:start;max-width:1168px;margin:0 auto}
.def-grid .body p{font-size:1.05rem;line-height:1.7;color:var(--body);margin-bottom:16px}
.def-grid .head h2{font-size:clamp(1.6rem,2.6vw,2.2rem);line-height:1.2;margin-bottom:18px;color:var(--navy)}
.def-grid .head p{font-size:1.05rem;line-height:1.7;color:var(--body);max-width:46ch}
.def-grid .head h2 em{font-style:italic;color:var(--coral);font-weight:700}
.definition{padding:100px 56px;background:var(--canvas);border-bottom:1px solid var(--border)}
.scope{padding:100px 56px;background:var(--canvas);border-bottom:1px solid var(--border)}
.scope-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:28px 26px 32px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow-soft)}
.scope-card .mark{font-family:var(--font-ui);font-size:0.72rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--coral)}
.scope-card h3{font-size:1.2rem;color:var(--navy);line-height:1.3}
.scope-card p{font-family:var(--font-body);font-size:0.98rem;line-height:1.65;color:var(--body)}
.scope-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.uk-note{max-width:1168px;margin:32px auto 0;padding:28px 32px;border:1px solid var(--border-strong);background:var(--premium);border-radius:var(--r-lg);display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap}
.uk-note .lbl{font-family:var(--font-ui);font-size:0.72rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--coral)}
.uk-note a{font-family:var(--font-ui);font-size:0.85rem;font-weight:700;color:var(--nav-link);text-decoration:none;padding:10px 18px;border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--r-pill)}
.uk-note p{font-family:var(--font-display);font-style:italic;font-size:1.1rem;color:var(--navy);line-height:1.5;max-width:58ch}

@media (max-width:1100px){
    .audience-grid{grid-template-columns:repeat(2,1fr)}
    .scope-grid{grid-template-columns:1fr}
}
@media (max-width:720px){
    .audience-grid,.approach-grid{grid-template-columns:1fr}
    .uk-note{flex-direction:column;align-items:flex-start}
}

/* ───────── UK destination-service page (destinations/uk/services/*) ───────── */

.callout{padding:90px 56px;background:#fff;border-bottom:1px solid var(--border)}
.callout .answer{font-family:var(--font-body);font-size:1.2rem;line-height:1.65;color:var(--ink);max-width:62ch}
.callout .eyebrow{margin-bottom:18px}
.callout h2{font-size:clamp(1.6rem, 2.4vw, 2rem);line-height:1.2;color:var(--navy);max-width:22ch}
.callout .answer em{font-style:italic;color:var(--coral);font-weight:700}
.callout h2 em{font-style:italic;color:var(--coral);font-weight:700}
.callout-grid{max-width:1168px;margin:0 auto;display:grid;grid-template-columns: 1fr 1.3fr;gap:72px;align-items:start}
.note-block{padding:64px 56px;background:#fff;border-bottom:1px solid var(--border)}
.note-block p{font-size:1.05rem;line-height:1.75;color:var(--ink);max-width:68ch}
.note-grid{max-width:1168px;margin:0 auto;display:grid;grid-template-columns: 260px 1fr;gap:72px}
.note-meta .kicker{font-family:var(--font-ui);font-size:0.72rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:10px}
.note-meta .note{font-family:var(--font-display);font-style:italic;font-size:1rem;color:var(--gold)}
.pointer{padding:56px 56px;background:var(--surface);border-bottom:1px solid var(--border)}
.pointer a{color:var(--coral)}
.pointer p{font-family:var(--font-body);font-size:1.15rem;line-height:1.65;color:var(--ink);max-width:62ch}
.pointer-grid{max-width:1168px;margin:0 auto;display:grid;grid-template-columns: 260px 1fr;gap:72px;align-items:center}
.pointer-meta .kicker{font-family:var(--font-ui);font-size:0.72rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);display:block}
.prose{padding:100px 56px;background:var(--canvas);border-bottom:1px solid var(--border)}
.prose-body{max-width:68ch}
.prose-body h2{font-size:clamp(1.8rem, 3vw, 2.4rem);line-height:1.15;margin-bottom:18px;color:var(--navy)}
.prose-body h3{font-family:var(--font-display);font-size:1.25rem;font-weight:700;line-height:1.3;margin-top:36px;margin-bottom:12px;color:var(--navy)}
.prose-body p{font-size:1.02rem;line-height:1.75;color:var(--body);margin-bottom:16px}
.prose-body ul.bullet{margin:10px 0 22px;display:grid;gap:10px}
.prose-body h2 em{font-style:italic;color:var(--coral);font-weight:700}
.prose-body p strong{color:var(--navy);font-weight:700}
.prose-body ul.bullet li{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:14px 18px 14px 40px;position:relative;font-size:1rem;line-height:1.6;color:var(--ink)}
.prose-body ul.bullet li::before{content:"";position:absolute;left:18px;top:22px;width:8px;height:8px;border-radius:50%;background:var(--coral)}
.prose-grid{max-width:1168px;margin:0 auto;display:grid;grid-template-columns: 260px 1fr;gap:72px}
.prose-meta{align-self:start}
.prose-meta .kicker{font-family:var(--font-ui);font-size:0.72rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:10px}
.prose-meta .note{font-family:var(--font-display);font-style:italic;font-size:1rem;color:var(--coral)}
.type-card{padding:28px 26px 32px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);display:flex;flex-direction:column;gap:12px;min-height:240px;box-shadow:var(--shadow-soft)}
.type-card h3{font-size:1.15rem;color:var(--navy);line-height:1.3}
.type-card p{font-family:var(--font-body);font-size:0.98rem;line-height:1.65;color:var(--body);margin-top:auto}
.types-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.types-wrap{padding:100px 56px;background:#fff;border-bottom:1px solid var(--border)}

@media (max-width: 1100px){
    .callout-grid{grid-template-columns:1fr;gap:32px}
}
@media (max-width: 720px){
    .note-block,.pointer{padding:48px 24px}
}

/* ───────── destination country page (destinations/{country}/) ───────── */

.choose{padding:100px 56px;background:#fff;border-bottom:1px solid var(--border)}
.choose-body .eyebrow{margin-bottom:16px}
.choose-body h2{font-size:clamp(1.8rem,3vw,2.4rem);line-height:1.15;margin-bottom:18px;color:var(--navy)}
.choose-body h2 em{font-style:italic;color:var(--coral);font-weight:700}
.choose-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:72px;align-items:start}
.choose-list .n{font-family:var(--font-ui);font-size:0.85rem;font-weight:700;color:#FFFFFF;background:var(--coral);width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}
.choose-list h4{font-family:var(--font-display);font-size:1.08rem;color:var(--navy);margin-bottom:6px}
.choose-list li{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:22px 24px;display:grid;grid-template-columns:36px 1fr;gap:16px;align-items:start}
.choose-list p{font-family:var(--font-body);font-size:0.98rem;line-height:1.6;color:var(--body)}
.choose-visual{aspect-ratio:4/5;background:var(--gold);border-radius:var(--r-xl);padding:40px;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:var(--shadow-card);color:var(--navy)}
.choose-visual .chapter{font-family:var(--font-ui);font-size:0.72rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255,255,255,0.9);background:rgba(255,255,255,0.2);padding:8px 14px;border-radius:var(--r-pill);align-self:flex-start;margin-bottom:auto}
.choose-visual .cite{font-family:var(--font-ui);font-size:0.78rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--navy);margin-top:18px}
.choose-visual .quote{font-family:var(--font-display);font-style:italic;font-size:1.5rem;line-height:1.35;color:var(--navy);margin-top:24px}
.different{padding:100px 56px;background:var(--canvas);border-bottom:1px solid var(--border)}
.different-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:56px;align-items:start}
.different-grid .prose{font-size:1.05rem;line-height:1.7;color:var(--body);max-width:48ch}
.different-list{display:grid;gap:12px}
.different-list li{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:18px 22px;font-family:var(--font-body);font-size:1rem;line-height:1.6;color:var(--ink);padding-left:36px;position:relative}
.different-list li::before{content:"";position:absolute;left:22px;top:24px;width:6px;height:6px;border-radius:50%;background:var(--coral)}
.next{padding:100px 56px;background:var(--section);border-bottom:1px solid var(--border)}
.next ol{display:grid;gap:12px}
.next .head h2{font-size:clamp(1.8rem,3vw,2.4rem);line-height:1.15;margin-bottom:18px;color:var(--navy)}
.next .head p{font-size:1.05rem;line-height:1.7;color:var(--body);max-width:48ch}
.next ol li{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:20px 24px;display:grid;grid-template-columns:44px 1fr;gap:18px;align-items:center}
.next .head h2 em{font-style:italic;color:var(--coral);font-weight:700}
.next ol li .big{font-family:var(--font-ui);font-size:0.85rem;font-weight:700;color:#FFFFFF;background:var(--coral);width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}
.next ol li .t{font-family:var(--font-body);font-size:1.02rem;line-height:1.55;color:var(--ink)}
.next-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:56px;align-items:start}
.process{padding:100px 56px;background:var(--canvas);border-bottom:1px solid var(--border)}
.q-list{display:grid;gap:14px}
.q-list .text{font-family:var(--font-body);font-size:1.05rem;line-height:1.5;color:var(--ink)}
.q-list li{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:22px 26px;display:grid;grid-template-columns:44px 1fr;gap:20px;align-items:center}
.questions{padding:100px 56px;background:var(--canvas);border-bottom:1px solid var(--border)}
.quick{padding:100px 56px;background:var(--canvas);border-bottom:1px solid var(--border)}
.quick h2{font-size:clamp(1.8rem,3vw,2.4rem);line-height:1.15;margin-bottom:18px;color:var(--navy)}
.quick .answer p{font-size:1.08rem;line-height:1.72;color:var(--body);max-width:62ch}
.quick h2 em{font-style:italic;color:var(--coral);font-weight:700}
.quick .answer p + p{margin-top:18px}
.quick-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:72px;align-items:start}
.reason{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:30px 30px 32px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow-soft)}
.reason h3{font-size:1.25rem;color:var(--navy);line-height:1.3}
.reason p{font-family:var(--font-body);font-size:1rem;line-height:1.65;color:var(--body)}
.reason ul{margin-top:4px;display:grid;gap:8px}
.reason ul li{font-family:var(--font-body);font-size:0.98rem;line-height:1.55;color:var(--body);padding-left:18px;position:relative}
.reason ul li::before{content:"";position:absolute;left:0;top:10px;width:6px;height:6px;border-radius:50%;background:var(--coral)}
.reasons{padding:100px 56px;background:var(--section);border-bottom:1px solid var(--border)}
.reasons-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.service{padding:30px 30px 32px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow-soft)}
.service .more{margin-top:auto;padding-top:14px;font-family:var(--font-ui);font-size:0.82rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--navy);text-decoration:none;border-top:1px solid var(--border)}
.service .service-num{font-family:var(--font-ui);font-size:0.78rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--coral)}
.service h3{font-size:1.25rem;color:var(--navy);line-height:1.3}
.service p{font-family:var(--font-body);font-size:1rem;line-height:1.65;color:var(--body)}
.service ul{display:grid;gap:8px}
.service .more span{color:var(--coral);margin-left:6px}
.service ul li{font-family:var(--font-body);font-size:0.97rem;line-height:1.55;color:var(--body);padding-left:18px;position:relative}
.service ul li::before{content:"";position:absolute;left:0;top:10px;width:6px;height:6px;border-radius:50%;background:var(--coral)}
.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.services{padding:100px 56px;background:var(--section);border-bottom:1px solid var(--border)}
.split{padding:100px 56px;background:var(--section);border-bottom:1px solid var(--border)}
.split-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:40px 36px;box-shadow:var(--shadow-soft);position:relative;display:flex;flex-direction:column;cursor:pointer}
.split-card.premium{background:var(--premium);border-color:var(--border-strong)}
.split-card h3{font-size:1.45rem;line-height:1.25;margin-bottom:14px;color:var(--navy)}
.split-card p{font-family:var(--font-body);font-size:1.02rem;line-height:1.68;color:var(--body);max-width:52ch}
.split-card ul{margin-top:18px;margin-bottom:24px;display:grid;gap:8px}
.split-card h3 em{font-style:italic;color:var(--coral);font-weight:700}
.split-card ul li{font-family:var(--font-body);font-size:0.98rem;line-height:1.55;color:var(--body);padding-left:18px;position:relative}
.split-card ul li::before{content:"";position:absolute;left:0;top:10px;width:6px;height:6px;border-radius:50%;background:var(--coral)}
.split-card p + p{margin-top:14px}
.split-card .more{display:inline-flex;align-items:center;gap:10px;margin-top:auto;padding:14px 26px;font-family:var(--font-ui);font-size:0.92rem;font-weight:700;letter-spacing:0.02em;text-decoration:none;border-radius:var(--r-pill);border:1px solid var(--border-strong);background:var(--cta-bg);color:var(--nav-link)}
.split-card .more .arrow{margin-left:6px}
.split-card .more::after{content:"";position:absolute;inset:0;z-index:1}
.split-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:stretch}

@media (max-width:1100px){
    .quick-grid,.choose-grid,.different-grid,.split-grid,.next-grid,.closing-grid{grid-template-columns:1fr;gap:48px}
    .reasons-grid,.service-grid{grid-template-columns:1fr}
}

/* ───────── misc shared (related wrapper, choose-list grid) ───────── */

.choose-list{display:grid;gap:14px}
.related{padding:100px 56px;background:var(--section);border-bottom:1px solid var(--border)}

/* ───────── shared responsive ───────── */
@media (max-width: 1100px){
    .foot-top{grid-template-columns:1fr 1fr;gap:32px}
    .hero{padding-inline:40px}
    .passage-grid{grid-template-columns:180px 1fr;gap:40px}
    .closing-grid{grid-template-columns:1fr;gap:48px}
    .approach-grid{grid-template-columns:repeat(2,1fr);gap:18px}
    .process-grid{grid-template-columns:repeat(2,1fr);gap:20px}
    .faq-item{grid-template-columns:1fr;gap:14px}
    .faq-grid{grid-template-columns:1fr;gap:40px}
}
@media (max-width: 720px){
    .wrap{padding:0 24px}
    header.site{padding:16px 24px;grid-template-columns:1fr;gap:12px;align-items:start}
    header.site > .brand{font-size:1.28rem}
    nav.primary{display:flex;justify-content:flex-start;flex-wrap:wrap;gap:8px 18px;font-size:0.84rem;line-height:1.35}
    .header-right{justify-content:flex-start;width:100%;font-size:0.82rem}
    .header-right a.consult{display:inline-flex;padding:9px 16px;background:var(--blue);color:var(--logo-yellow);border:1.5px solid var(--blue);border-radius:var(--r-pill)}
    footer.site-foot{padding:48px 24px 28px}
    .foot-top{grid-template-columns:1fr;gap:28px;padding-bottom:32px}
    .foot-bottom{flex-direction:column;gap:10px;align-items:flex-start}
    .hero{padding-inline:24px}
    .hero h1{font-size:2.1rem}
    .passage{padding:64px 24px}
    .passage-grid{grid-template-columns:1fr;gap:24px}
    .passage-body p{font-size:1.1rem}
    .passage-body p + p{font-size:1rem}
    .closing{padding:72px 24px}
    .section-head h2{font-size:1.8rem}
    .related-grid{grid-template-columns:1fr}
    .approach-grid{grid-template-columns:1fr}
    .approach-list li{grid-template-columns:44px 1fr;gap:16px;padding:22px 22px}
    .process-grid{grid-template-columns:1fr}
}
