/* ============================================================
   Cambridge Educational Services — brand stylesheet
   Ported from the CES Design System (tokens + website UI kit).
   Navy + gold, academic & aspirational. Light, airy, editorial.
   ============================================================ */

/* ---------- Tokens: color ---------- */
:root {
  --navy-950:#06122B; --navy-900:#0A1A37; --navy-800:#0E2143; --navy-700:#16315A;
  --navy-600:#234470; --navy-500:#355a8c; --navy-400:#5b7eaa; --navy-300:#93abca;
  --navy-200:#c4d2e3; --navy-100:#e4ebf3; --navy-50:#f2f6fa;

  --gold-700:#9A7320; --gold-600:#B8862A; --gold-500:#D4A53C; --gold-400:#E2BB5E;
  --gold-300:#ECCE85; --gold-200:#F3E0B4; --gold-100:#FAF1D8; --gold-50:#FDF9EE;

  --ink-950:#0B1220; --ink-900:#131B2B; --ink-800:#1F2937; --ink-700:#344054;
  --ink-600:#475467; --ink-500:#667085; --ink-400:#98a2b3; --ink-300:#cbd2dc;
  --ink-200:#e3e8ef; --ink-100:#f0f3f7; --ink-50:#f7f9fb; --white:#ffffff;

  --success-600:#157347; --success-500:#1E9E5E; --success-100:#E2F4EA;
  --warning-600:#B8862A; --warning-500:#E0A82E; --warning-100:#FBF0D6;
  --danger-600:#B42318; --danger-500:#D64545; --danger-100:#FBE7E5;
  --info-600:#16315A; --info-500:#2E5AAC; --info-100:#E5ECF7;

  --brand:var(--navy-800); --brand-strong:var(--navy-900); --brand-soft:var(--navy-50);
  --accent:var(--gold-500); --accent-strong:var(--gold-600); --accent-soft:var(--gold-100);

  --text-strong:var(--navy-900); --text-body:var(--ink-700); --text-muted:var(--ink-500);
  --text-subtle:var(--ink-400); --text-on-brand:var(--white); --text-on-accent:var(--navy-900);
  --text-link:var(--navy-700); --text-accent:var(--gold-700);

  --surface-page:var(--ink-50); --surface-card:var(--white); --surface-raised:var(--white);
  --surface-sunken:var(--ink-100); --surface-brand:var(--navy-800); --surface-brand-deep:var(--navy-950);
  --surface-accent-soft:var(--gold-50);

  --border-subtle:var(--ink-200); --border-default:var(--ink-300); --border-strong:var(--ink-400);
  --border-brand:var(--navy-800); --border-accent:var(--gold-500);

  --focus-ring:color-mix(in srgb, var(--gold-500) 55%, transparent);
  --focus-ring-brand:color-mix(in srgb, var(--navy-700) 35%, transparent);

  /* ---------- Tokens: type ---------- */
  --font-brand:'Cinzel','Times New Roman',serif;
  --font-display:'Cinzel',Georgia,serif;
  --font-serif:'Cormorant Garamond',Georgia,serif;
  --font-sans:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,'SFMono-Regular',monospace;
  --font-body:var(--font-sans);

  --fw-regular:400; --fw-medium:500; --fw-semibold:600; --fw-bold:700; --fw-extra:800;

  --text-2xs:0.6875rem; --text-xs:0.75rem; --text-sm:0.875rem; --text-base:1rem;
  --text-md:1.125rem; --text-lg:1.375rem; --text-xl:1.75rem; --text-2xl:2.25rem;
  --text-3xl:2.875rem; --text-4xl:3.75rem; --text-5xl:4.75rem;

  --leading-tight:1.1; --leading-snug:1.25; --leading-normal:1.5; --leading-relaxed:1.65;
  --tracking-tight:-0.02em; --tracking-normal:0; --tracking-wide:0.04em;
  --tracking-caps:0.18em; --tracking-caps-sm:0.12em;

  /* ---------- Tokens: spacing ---------- */
  --space-1:0.25rem; --space-2:0.5rem; --space-3:0.75rem; --space-4:1rem;
  --space-5:1.5rem; --space-6:2rem; --space-7:2.5rem; --space-8:3rem;
  --space-9:4rem; --space-10:5rem; --space-11:6rem; --space-12:8rem;
  --gutter:clamp(1.25rem,4vw,3rem); --section-y:clamp(4rem,8vw,7.5rem);

  /* ---------- Tokens: radius / shadow / motion ---------- */
  --radius-xs:4px; --radius-sm:8px; --radius-md:12px; --radius-lg:16px;
  --radius-xl:24px; --radius-2xl:32px; --radius-pill:999px; --radius-card:16px;

  --shadow-xs:0 1px 2px rgba(14,33,67,0.06);
  --shadow-sm:0 1px 3px rgba(14,33,67,0.08),0 1px 2px rgba(14,33,67,0.05);
  --shadow-md:0 4px 12px rgba(14,33,67,0.08),0 2px 4px rgba(14,33,67,0.05);
  --shadow-lg:0 12px 28px rgba(14,33,67,0.12),0 4px 8px rgba(14,33,67,0.06);
  --shadow-xl:0 24px 56px rgba(14,33,67,0.16),0 8px 16px rgba(14,33,67,0.07);
  --shadow-gold:0 8px 24px rgba(184,134,42,0.28);

  --ease-out:cubic-bezier(0.22,1,0.36,1);
  --dur-fast:140ms; --dur-base:220ms; --dur-slow:380ms;

  --gradient-brand:linear-gradient(135deg,var(--navy-800) 0%,var(--navy-950) 100%);
  --gradient-gold:linear-gradient(135deg,var(--gold-400) 0%,var(--gold-600) 100%);
}

/* ---------- Base ---------- */
body.wp-site-blocks, body { background:var(--surface-page); color:var(--text-body);
  font-family:var(--font-body); font-size:var(--text-base); line-height:var(--leading-normal);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
h1,h2,h3,h4,h5,h6 { color:var(--text-strong); font-family:var(--font-sans); font-weight:var(--fw-bold);
  line-height:var(--leading-tight); letter-spacing:var(--tracking-tight); text-wrap:balance; }
p { text-wrap:pretty; }
a { color:var(--text-link); text-decoration:none; }
a:hover { color:var(--accent-strong); }
::selection { background:var(--gold-200); color:var(--navy-900); }
/* Prevent horizontal overflow on small screens without breaking the sticky
   header (overflow:clip, unlike overflow:hidden, doesn't create a scroll box). */
html, body { overflow-x:clip; max-width:100%; }

/* Remove WordPress's default gap between top-level blocks (header / main /
   footer) — each CES section manages its own vertical spacing, so the hero
   and page-hero sit flush under the sticky header. */
.wp-site-blocks > * { margin-block-start:0; margin-block-end:0; }

/* ---------- Type helpers ---------- */
.ces-eyebrow { font-family:var(--font-brand); font-weight:var(--fw-semibold); font-size:var(--text-xs);
  letter-spacing:var(--tracking-caps); text-transform:uppercase; color:var(--text-accent); display:inline-block; }
.ces-display { font-family:var(--font-display); font-weight:var(--fw-bold); letter-spacing:0.01em;
  line-height:var(--leading-tight); color:var(--text-strong); }
.ces-rule { display:inline-flex; align-items:center; gap:var(--space-3); color:var(--accent);
  font:600 var(--text-xs) var(--font-brand); letter-spacing:var(--tracking-caps); text-transform:uppercase; }
.ces-rule::before,.ces-rule::after { content:""; height:1.5px; width:28px; background:currentColor; }

/* ---------- Buttons (pill) ---------- */
.ces-btn { display:inline-flex; align-items:center; justify-content:center; gap:9px;
  font:600 var(--text-sm) var(--font-sans); border-radius:var(--radius-pill); border:1.5px solid transparent;
  padding:12px 22px; cursor:pointer; transition:all var(--dur-base) var(--ease-out); text-decoration:none; }
.ces-btn--lg { font-size:var(--text-base); padding:15px 30px; }
.ces-btn--sm { font-size:var(--text-sm); padding:9px 18px; }
.ces-btn--primary { background:var(--navy-800); color:#fff; }
.ces-btn--primary:hover { background:var(--navy-900); color:#fff; box-shadow:var(--shadow-md); }
.ces-btn--accent { background:var(--gold-500); color:var(--navy-900); }
.ces-btn--accent:hover { background:var(--gold-400); color:var(--navy-900); box-shadow:var(--shadow-gold); }
.ces-btn--secondary { background:transparent; color:var(--navy-800); border-color:var(--border-default); }
.ces-btn--secondary:hover { background:var(--navy-50); border-color:var(--navy-300); color:var(--navy-900); }
.ces-btn svg { width:1.1em; height:1.1em; }

/* ---------- Header ---------- */
.ces-header { position:sticky; top:0; z-index:50; background:#fff;
  border-bottom:1px solid var(--border-subtle); transition:box-shadow var(--dur-base) var(--ease-out); }
.ces-header--scrolled { box-shadow:var(--shadow-md); }
.ces-header__inner { max-width:1200px; margin:0 auto; padding:0 32px; height:72px;
  display:flex; align-items:center; gap:28px; }
.ces-header__brand img { height:38px; width:auto; }
.ces-header__nav { display:flex; gap:4px; margin-left:12px; list-style:none; }
.ces-navlink, .ces-header__nav a { font:600 var(--text-sm)/1 var(--font-sans); color:var(--text-body);
  padding:9px 14px; border-radius:var(--radius-pill);
  transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out); }
.ces-navlink:hover, .ces-header__nav a:hover { color:var(--navy-900); background:var(--navy-50); }
.ces-header__actions { margin-left:auto; display:flex; align-items:center; gap:16px; }
.ces-header__phone { display:inline-flex; align-items:center; gap:7px; font:600 var(--text-sm)/1 var(--font-sans); color:var(--text-muted); }
.ces-header__phone:hover { color:var(--gold-700); }
.ces-header__phone svg { color:var(--gold-600); width:16px; height:16px; }
.ces-header__burger { display:none; background:none; border:0; color:var(--navy-800); cursor:pointer; padding:4px; }
.ces-header__mobile { display:none; flex-direction:column; padding:8px 32px 18px; gap:2px; background:#fff; border-bottom:1px solid var(--border-subtle); }
.ces-header__mobile a { padding:11px 8px; font:600 var(--text-base) var(--font-sans); color:var(--navy-800); border-bottom:1px solid var(--ink-100); }
.ces-header__mobile.is-open { display:flex; }

/* ---------- Hero ---------- */
.ces-hero { background:var(--gradient-brand); color:#fff; position:relative; overflow:hidden; }
.ces-hero::after { content:""; position:absolute; right:-180px; top:-180px; width:540px; height:540px;
  background:radial-gradient(circle,rgba(212,165,60,0.16),transparent 65%); pointer-events:none; }
.ces-hero__grid { max-width:1200px; margin:0 auto; padding:84px 32px 92px; display:grid;
  grid-template-columns:1.05fr 0.95fr; gap:64px; align-items:center; position:relative; z-index:1; }
.ces-hero__eyebrow { color:var(--gold-400); }
.ces-hero__title { font-family:var(--font-display); font-weight:700; font-size:var(--text-5xl);
  line-height:1.04; letter-spacing:0.01em; color:#fff; margin:18px 0 0; }
.ces-hero__title em { font-style:italic; font-family:var(--font-serif); font-weight:600; color:var(--gold-400); }
.ces-hero__lead { font-size:var(--text-md); line-height:var(--leading-relaxed); color:var(--navy-200); max-width:30em; margin:22px 0 0; }
.ces-hero__cta { display:flex; flex-wrap:wrap; gap:14px; margin:34px 0 0; }
.ces-hero__cta .ces-btn--secondary { color:#fff; border-color:rgba(255,255,255,0.35); }
.ces-hero__cta .ces-btn--secondary:hover { background:rgba(255,255,255,0.1); border-color:#fff; color:#fff; }
.ces-hero__trust { display:flex; flex-wrap:wrap; gap:20px; margin:36px 0 0; }
.ces-hero__trust span { display:inline-flex; align-items:center; gap:8px; font:500 var(--text-sm) var(--font-sans); color:var(--navy-200); }
.ces-hero__trust svg { color:var(--gold-400); width:17px; height:17px; }
.ces-hero__media { position:relative; }
.ces-hero__media img { width:100%; aspect-ratio:4/4.4; object-fit:cover; border-radius:var(--radius-xl); box-shadow:var(--shadow-xl); }
.ces-hero__floatcard { position:absolute; left:-28px; bottom:36px; background:#fff; color:var(--navy-900);
  border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); padding:18px 22px; }
.ces-hero__floatcard-row { display:flex; align-items:center; gap:22px; }
.ces-hero__divider { width:1px; align-self:stretch; background:var(--border-subtle); }
.ces-stat__value { font-family:var(--font-display); font-weight:700; font-size:var(--text-2xl); color:var(--navy-900); line-height:1; }
.ces-stat__value .suffix { color:var(--gold-600); }
.ces-stat__label { font-size:var(--text-xs); color:var(--text-muted); margin-top:4px; }

/* ---------- Trust strip ---------- */
.ces-strip { max-width:1200px; margin:0 auto; padding:30px 32px; display:flex; align-items:center;
  gap:36px; flex-wrap:wrap; border-bottom:1px solid var(--border-subtle); }
.ces-strip__label { font:600 var(--text-xs) var(--font-sans); letter-spacing:0.1em; text-transform:uppercase; color:var(--text-subtle); }
.ces-strip__logos { display:flex; flex-wrap:wrap; gap:34px; }
.ces-strip__logo { font:700 var(--text-md) var(--font-display); color:var(--navy-300); letter-spacing:0.02em; }

/* ---------- Sections ---------- */
.ces-section { padding:92px 0; }
.ces-section--alt { background:#fff; }
.ces-container { max-width:1200px; margin:0 auto; padding:0 32px; }
.ces-sechead { max-width:640px; margin:0 0 48px; }
.ces-sectitle { font-family:var(--font-display); font-weight:700; font-size:var(--text-3xl);
  color:var(--text-strong); letter-spacing:0.01em; margin:12px 0 0; line-height:1.1; }
.ces-seclead { font-size:var(--text-md); color:var(--text-muted); margin:14px 0 0; line-height:var(--leading-relaxed); }
.ces-grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }

/* Cards */
.ces-card { background:var(--surface-card); border:1px solid var(--border-subtle); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm); padding:28px; transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out); }
.ces-card--interactive:hover { transform:translateY(-3px); box-shadow:var(--shadow-lg); }

/* Services */
.ces-service { display:flex; flex-direction:column; gap:12px; }
.ces-service__icon { width:52px; height:52px; border-radius:var(--radius-md); display:grid; place-items:center;
  background:var(--navy-50); color:var(--navy-800); transition:all var(--dur-base) var(--ease-out); }
.ces-service__icon svg { width:24px; height:24px; }
.ces-service__title { font:700 var(--text-lg) var(--font-sans); color:var(--text-strong); margin:4px 0 0; }
.ces-service__desc { font-size:var(--text-sm); color:var(--text-muted); line-height:var(--leading-relaxed); margin:0; }
.ces-service:hover .ces-service__icon { background:var(--gold-100); color:var(--gold-700); }

/* Destinations */
.ces-dest { display:grid; grid-template-columns:1.1fr 1fr; gap:48px; align-items:center; }
.ces-dest__media img { width:100%; aspect-ratio:5/4; object-fit:cover; border-radius:var(--radius-xl); box-shadow:var(--shadow-lg); }
.ces-dest__name { font-family:var(--font-display); font-weight:700; font-size:var(--text-2xl); color:var(--text-strong); margin:0; }
.ces-dest__blurb { font-size:var(--text-md); color:var(--text-muted); line-height:var(--leading-relaxed); margin:14px 0 22px; }
.ces-dest__facts { list-style:none; padding:0; margin:0 0 28px; display:flex; flex-direction:column; gap:12px; }
.ces-dest__facts li { display:flex; align-items:center; gap:10px; font:500 var(--text-base) var(--font-sans); color:var(--text-body); }
.ces-dest__facts svg { color:var(--gold-600); flex:none; width:18px; height:18px; }

/* Process */
.ces-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
.ces-step { position:relative; }
.ces-step__n { font-family:var(--font-display); font-weight:700; font-size:var(--text-2xl); color:var(--gold-500); }
.ces-step__t { font:700 var(--text-lg) var(--font-sans); color:var(--text-strong); margin:10px 0 6px; }
.ces-step__d { font-size:var(--text-sm); color:var(--text-muted); line-height:var(--leading-relaxed); margin:0; }
.ces-step__line { position:absolute; top:16px; left:calc(100% - 36px); width:calc(100% - 24px); height:2px;
  background:repeating-linear-gradient(90deg,var(--border-default) 0 6px,transparent 6px 12px); }

/* Why band */
.ces-why { background:var(--gradient-brand); color:#fff; padding:88px 0; }
.ces-why__inner { display:grid; grid-template-columns:1.15fr 1fr; gap:64px; align-items:center; }
.ces-why__eyebrow { color:var(--gold-400); }
.ces-why__title { font-family:var(--font-display); font-weight:700; font-size:var(--text-2xl); line-height:1.18; color:#fff; margin:14px 0 0; }
.ces-why__lead { font-size:var(--text-md); color:var(--navy-200); line-height:var(--leading-relaxed); margin:18px 0 0; }
.ces-why__stats { display:grid; grid-template-columns:1fr 1fr; gap:36px 28px; padding:32px;
  background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.1); border-radius:var(--radius-xl); }
.ces-why__stats .ces-stat__value { color:#fff; }
.ces-why__stats .ces-stat__value .suffix { color:var(--gold-400); }
.ces-why__stats .ces-stat__label { color:var(--navy-200); }

/* Testimonials */
.ces-quote { display:flex; flex-direction:column; gap:16px; }
.ces-quote__stars { display:flex; gap:2px; color:var(--gold-500); }
.ces-quote__stars svg { fill:var(--gold-500); width:16px; height:16px; }
.ces-quote__text { font-family:var(--font-serif); font-size:var(--text-lg); line-height:1.4; color:var(--text-strong); margin:0; }
.ces-quote__who { display:flex; align-items:center; gap:12px; margin-top:auto; }
.ces-avatar { width:40px; height:40px; border-radius:50%; background:var(--navy-100); color:var(--navy-800);
  display:grid; place-items:center; font:700 var(--text-sm) var(--font-sans); flex:none; }
.ces-quote__name { display:block; font:700 var(--text-sm) var(--font-sans); color:var(--text-strong); }
.ces-quote__role { display:block; font:500 var(--text-xs) var(--font-sans); color:var(--text-muted); margin-top:2px; }

/* CTA band */
.ces-ctaband { background:var(--gold-50); padding:64px 0; }
.ces-ctaband__inner { display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap; }
.ces-ctaband .ces-rule { color:var(--gold-700); }
.ces-ctaband__title { font-family:var(--font-display); font-weight:700; font-size:var(--text-2xl); color:var(--navy-900); margin:14px 0 6px; }
.ces-ctaband__lead { font-size:var(--text-md); color:var(--ink-600); margin:0; }

/* ---------- Footer ---------- */
.ces-footer { background:var(--navy-950); color:var(--navy-200); }
.ces-footer__top { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:48px; padding:72px 32px 48px; }
.ces-footer__brand img { height:72px; width:auto; margin-bottom:18px; border-radius:var(--radius-md); }
.ces-footer__brand p { font-size:var(--text-sm); line-height:var(--leading-relaxed); color:var(--navy-300); max-width:30em; margin:0 0 22px; }
.ces-footer__contact { display:flex; flex-direction:column; gap:10px; }
.ces-footer__contact span { display:inline-flex; align-items:center; gap:9px; font-size:var(--text-sm); color:var(--navy-200); }
.ces-footer__contact svg { color:var(--gold-500); flex:none; width:16px; height:16px; }
.ces-footer__col h4 { font:700 var(--text-sm) var(--font-sans); color:#fff; text-transform:uppercase; letter-spacing:0.08em; margin:0 0 16px; }
.ces-footer__col ul { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:11px; }
.ces-footer__col a { font-size:var(--text-sm); color:var(--navy-300); }
.ces-footer__col a:hover { color:var(--gold-400); }
.ces-footer__bottom { max-width:1200px; margin:0 auto; display:flex; align-items:center; justify-content:space-between;
  padding:22px 32px; border-top:1px solid rgba(255,255,255,0.08); font-size:var(--text-xs); color:var(--navy-400); }
.ces-footer__legal { display:flex; gap:22px; }
.ces-footer__legal a { color:var(--navy-400); }
.ces-footer__legal a:hover { color:var(--gold-400); }

/* ---------- Responsive ---------- */
@media (max-width:980px) {
  .ces-header__nav,.ces-header__phone { display:none; }
  .ces-header__burger { display:block; }
  .ces-hero__grid,.ces-dest,.ces-why__inner { grid-template-columns:1fr; gap:40px; }
  .ces-hero__media { max-width:460px; }
  .ces-grid-3,.ces-steps,.ces-footer__top { grid-template-columns:1fr 1fr; }
  .ces-step__line { display:none; }
}
@media (max-width:620px) {
  .ces-grid-3,.ces-steps,.ces-footer__top,.ces-why__stats { grid-template-columns:1fr; }
  .ces-hero__title { font-size:var(--text-4xl); }
}

@media (prefers-reduced-motion:reduce) {
  * { transition:none !important; animation:none !important; }
}

/* ---------- Top info bar ---------- */
.ces-topbar { background:var(--navy-900); color:var(--navy-200); font-size:var(--text-xs); }
.ces-topbar__inner { max-width:1200px; margin:0 auto; padding:8px 32px; display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; }
.ces-topbar__inner span, .ces-topbar a { display:inline-flex; align-items:center; gap:7px; color:var(--navy-200); }
.ces-topbar a:hover { color:var(--gold-400); }
.ces-topbar svg { width:14px; height:14px; color:var(--gold-500); }
.ces-topbar__right { display:flex; gap:20px; flex-wrap:wrap; }
.ces-topbar__left { display:flex; align-items:center; gap:10px 26px; flex-wrap:wrap; }
.ces-topbar__office { display:inline-flex; align-items:center; gap:8px; }
.ces-topbar__office .ces-topbar__addr { display:inline; }
.ces-topbar__office strong { color:#fff; font-weight:700; margin-right:4px; }
.ces-topbar__tel { white-space:nowrap; }
@media (max-width:740px){ .ces-topbar__inner .ces-topbar__addr { display:none; } .ces-topbar__inner, .ces-topbar__left { justify-content:center; } }

/* ---------- Dropdown nav ---------- */
.ces-nav__item { position:relative; }
.ces-nav__item > a { display:inline-flex; align-items:center; gap:5px; }
.ces-nav__item > a svg { width:15px; height:15px; }
.ces-subm { position:absolute; top:calc(100% + 6px); left:0; min-width:248px; background:#fff;
  border:1px solid var(--border-subtle); border-radius:var(--radius-md); box-shadow:var(--shadow-lg);
  padding:8px; opacity:0; visibility:hidden; transform:translateY(6px);
  transition:opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out); z-index:60; }
.ces-nav__item:hover .ces-subm, .ces-nav__item:focus-within .ces-subm { opacity:1; visibility:visible; transform:translateY(0); }
.ces-subm a { display:block; padding:9px 12px; border-radius:var(--radius-sm); font:600 var(--text-sm) var(--font-sans);
  color:var(--text-body); }
.ces-subm a:hover { background:var(--navy-50); color:var(--navy-900); }
.ces-header__mobile .ces-mob-group { font:700 var(--text-xs) var(--font-brand); letter-spacing:var(--tracking-caps-sm);
  text-transform:uppercase; color:var(--text-subtle); padding:14px 8px 4px; border:0; }
.ces-header__mobile .ces-mob-sub { padding-left:22px; font-weight:500; }

/* ---------- Page hero (inner pages) ---------- */
.ces-pagehero { background:var(--gradient-brand); color:#fff; position:relative; overflow:hidden; }
.ces-pagehero::after { content:""; position:absolute; right:-160px; top:-160px; width:460px; height:460px;
  background:radial-gradient(circle,rgba(212,165,60,0.14),transparent 65%); pointer-events:none; }
.ces-pagehero__inner { max-width:1200px; margin:0 auto; padding:64px 32px 60px; position:relative; z-index:1; }
.ces-pagehero .ces-eyebrow { color:var(--gold-400); }
.ces-pagehero h1, .ces-pagehero .wp-block-post-title { font-family:var(--font-display); font-weight:700;
  font-size:var(--text-4xl); line-height:1.06; color:#fff; margin:14px 0 0; letter-spacing:0.01em; }
.ces-pagehero__crumb { font-size:var(--text-sm); color:var(--navy-300); margin-top:14px; }
.ces-pagehero__crumb a { color:var(--navy-200); }
.ces-pagehero__crumb a:hover { color:var(--gold-400); }

/* ---------- Page body content ----------
   All inner-page sections share ONE 1200px container so their left/right
   edges line up. Prose is held to a readable measure but left-aligned to
   the container edge (so it lines up with card grids above/below). */
.ces-pagebody { max-width:1200px; margin:0 auto; padding:48px 32px 8px; }
.ces-pagebody > p, .ces-pagebody > h2, .ces-pagebody > h3, .ces-pagebody > ul { max-width:768px; }
.ces-pagebody p { font-size:var(--text-md); color:var(--text-body); line-height:var(--leading-relaxed); margin:0 0 18px; }
.ces-pagebody h2 { font-family:var(--font-sans); font-weight:800; font-size:var(--text-xl); color:var(--text-strong); margin:34px 0 12px; line-height:1.2; letter-spacing:var(--tracking-tight); }
.ces-pagebody h3 { font-size:var(--text-lg); color:var(--text-strong); margin:24px 0 8px; }
.ces-pagebody .ces-lead { font-size:var(--text-lg); color:var(--text-strong); font-weight:500; line-height:var(--leading-snug); }

/* Inner-page section headings: Manrope (clean sans), one size below the
   page-hero H1. Cinzel is reserved for the hero/page-hero title only. */
.page .ces-sectitle { font-family:var(--font-sans); font-weight:800; font-size:var(--text-2xl); letter-spacing:var(--tracking-tight); }
.page .ces-sechead { max-width:768px; margin-bottom:36px; }
.ces-checklist { list-style:none; padding:0; margin:8px 0 24px; display:flex; flex-direction:column; gap:12px; }
.ces-checklist li { display:flex; align-items:flex-start; gap:11px; font-size:var(--text-base); color:var(--text-body); line-height:var(--leading-snug); }
.ces-checklist svg { color:var(--gold-600); flex:none; width:20px; height:20px; margin-top:1px; }

/* Inline CTA box */
.ces-inlinecta { background:var(--gold-50); border:1px solid var(--gold-200); border-radius:var(--radius-lg);
  padding:28px 30px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; margin:36px 0 8px; }
.ces-inlinecta h3 { font-family:var(--font-display); font-size:var(--text-xl); color:var(--navy-900); margin:0 0 4px; }
.ces-inlinecta p { font-size:var(--text-sm); color:var(--ink-600); margin:0; }

/* ============================================================
   Flagship page (Popular Courses in Australia)
   ============================================================ */
/* Hero */
.ces-phero { background:var(--gradient-brand); color:#fff; position:relative; overflow:hidden; }
.ces-phero::after { content:""; position:absolute; right:-160px; top:-160px; width:520px; height:520px;
  background:radial-gradient(circle,rgba(212,165,60,0.16),transparent 65%); pointer-events:none; }
.ces-phero__inner { max-width:900px; margin:0 auto; padding:76px 32px 84px; text-align:center; position:relative; z-index:1; }
.ces-phero .ces-eyebrow { color:var(--gold-400); }
.ces-phero h1 { font-family:var(--font-display); font-weight:700; font-size:var(--text-4xl); line-height:1.06;
  color:#fff; margin:16px 0 0; letter-spacing:0.01em; }
.ces-phero p { font-size:var(--text-md); color:var(--navy-200); line-height:var(--leading-relaxed); margin:20px auto 0; max-width:62ch; }
.ces-phero__cta { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:32px; }
.ces-phero__cta .ces-btn--secondary { color:#fff; border-color:rgba(255,255,255,0.35); }
.ces-phero__cta .ces-btn--secondary:hover { background:rgba(255,255,255,0.1); border-color:#fff; color:#fff; }

/* Two-column checklist */
.ces-checklist--two { display:grid; grid-template-columns:1fr 1fr; gap:12px 36px; }
@media (max-width:680px){ .ces-checklist--two { grid-template-columns:1fr; } }

/* Student journey timeline */
.ces-journey { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.ces-journey__step { padding:24px 22px; background:var(--surface-card); border:1px solid var(--border-subtle);
  border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); }
.ces-journey__n { display:inline-grid; place-items:center; width:42px; height:42px; border-radius:50%;
  background:var(--gradient-brand); color:#fff; font:700 var(--text-base) var(--font-sans); margin-bottom:14px; }
.ces-journey__t { font:700 var(--text-base) var(--font-sans); color:var(--text-strong); line-height:1.25; }
@media (max-width:900px){ .ces-journey { grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .ces-journey { grid-template-columns:1fr; } }

/* FAQ accordion (native details/summary — no JS) */
.ces-faq { max-width:840px; margin:0 auto; }
.ces-faq details { border:1px solid var(--border-subtle); border-radius:var(--radius-md); margin-bottom:12px;
  background:var(--surface-card); box-shadow:var(--shadow-xs); }
.ces-faq summary { cursor:pointer; padding:18px 22px; font:700 var(--text-base) var(--font-sans); color:var(--text-strong);
  list-style:none; display:flex; justify-content:space-between; align-items:center; gap:18px; }
.ces-faq summary::-webkit-details-marker { display:none; }
.ces-faq summary::after { content:"+"; font:400 24px/1 var(--font-sans); color:var(--gold-600); flex:none; }
.ces-faq details[open] summary::after { content:"\2013"; }
.ces-faq details[open] summary { color:var(--navy-900); }
.ces-faq__a { padding:0 22px 20px; color:var(--text-body); font-size:var(--text-base); line-height:var(--leading-relaxed); margin:0; }

/* Hero trust badges + WhatsApp */
.ces-phero__badges { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-top:26px; }
.ces-phero__badges span { display:inline-flex; align-items:center; gap:7px; font:600 var(--text-xs) var(--font-sans);
  color:#fff; background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.18); padding:8px 14px; border-radius:var(--radius-pill); }
.ces-phero__badges svg { width:15px; height:15px; color:var(--gold-400); }
.ces-btn--wa { background:#25D366; color:#fff; border-color:#25D366; }
.ces-btn--wa:hover { background:#1FB855; border-color:#1FB855; color:#fff; }
.ces-phero__cta .ces-btn--wa { color:#fff; }

/* Floating WhatsApp button */
.ces-wa { position:fixed; right:20px; bottom:20px; z-index:90; display:inline-flex; align-items:center; gap:9px;
  background:#25D366; color:#fff; font:700 var(--text-sm) var(--font-sans); padding:13px 18px; border-radius:var(--radius-pill);
  box-shadow:var(--shadow-lg); text-decoration:none; transition:transform var(--dur-base) var(--ease-out); }
.ces-wa:hover { transform:translateY(-2px); color:#fff; }
.ces-wa svg { width:20px; height:20px; }
@media (max-width:600px){ .ces-wa__txt { display:none; } .ces-wa { padding:14px; right:14px; bottom:14px; } }

/* Generic grids */
.ces-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
@media (max-width:760px){ .ces-grid-2 { grid-template-columns:1fr; } }

/* Vision / mission cards */
.ces-vm { padding:30px; border-radius:var(--radius-lg); border:1px solid var(--border-subtle); background:var(--surface-card); box-shadow:var(--shadow-sm); }
.ces-vm__icon { width:48px; height:48px; border-radius:var(--radius-md); display:grid; place-items:center; background:var(--gold-100); color:var(--gold-700); margin-bottom:14px; }
.ces-vm__icon svg { width:24px; height:24px; }
.ces-vm h3 { font-family:var(--font-sans); font-weight:800; font-size:var(--text-lg); color:var(--navy-900); margin:0 0 8px; }
.ces-vm p { font-size:var(--text-base); color:var(--text-body); line-height:var(--leading-relaxed); margin:0; }

/* Journey step description (extends .ces-journey) */
.ces-journey__d { font-size:var(--text-sm); color:var(--text-muted); margin-top:6px; line-height:1.5; }

/* Consultation option pills */
.ces-opts { display:flex; flex-wrap:wrap; gap:12px; }
.ces-opts span { display:inline-flex; align-items:center; gap:8px; background:var(--navy-50); color:var(--navy-800);
  font:600 var(--text-sm) var(--font-sans); padding:10px 18px; border-radius:var(--radius-pill); }
.ces-opts svg { width:17px; height:17px; color:var(--gold-600); }

/* Registered Migration Agent card */
.ces-rma { display:flex; align-items:center; gap:22px; background:var(--gradient-brand); color:#fff;
  border-radius:var(--radius-xl); padding:30px 34px; flex-wrap:wrap; }
.ces-rma__icon { width:62px; height:62px; border-radius:50%; background:rgba(212,165,60,0.18); color:var(--gold-400); display:grid; place-items:center; flex:none; }
.ces-rma__icon svg { width:30px; height:30px; }
.ces-rma h3 { font-family:var(--font-sans); font-weight:800; font-size:var(--text-lg); color:#fff; margin:0 0 4px; }
.ces-rma p { color:var(--navy-200); font-size:var(--text-sm); margin:0; line-height:var(--leading-snug); }
.ces-rma__marn { font-family:var(--font-mono); color:var(--gold-300); font-weight:600; }

/* Contact office cards */
.ces-offices { display:grid; grid-template-columns:1fr 1fr; gap:24px; max-width:1200px; margin:0 auto; }
@media (max-width:820px){ .ces-offices { grid-template-columns:1fr; } }
.ces-officecard { background:var(--surface-card); border:1px solid var(--border-subtle); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); padding:30px; }
.ces-officecard h3 { font-family:var(--font-sans); font-weight:800; font-size:var(--text-lg); color:var(--navy-900); margin:0 0 8px; display:flex; align-items:center; gap:8px; }
.ces-officecard h3 svg { color:var(--gold-600); width:20px; height:20px; flex:none; }
.ces-officecard__addr { font-size:var(--text-sm); color:var(--text-body); line-height:var(--leading-relaxed); margin:0 0 16px; }
.ces-officecard__svc { list-style:none; padding:0; margin:0 0 16px; display:flex; flex-direction:column; gap:7px; }
.ces-officecard__svc li { font-size:var(--text-sm); color:var(--text-body); display:flex; gap:9px; align-items:flex-start; }
.ces-officecard__svc svg { color:var(--gold-600); width:15px; height:15px; flex:none; margin-top:3px; }
.ces-officecard__meta { font-size:var(--text-sm); color:var(--text-body); margin:4px 0; display:flex; gap:8px; align-items:center; }
.ces-officecard__meta svg { color:var(--gold-600); width:16px; height:16px; flex:none; }
.ces-officecard__meta a { color:var(--navy-700); font-weight:600; }
.ces-officecard .ces-btn { margin-top:14px; }

/* Map embed */
.ces-map { border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm); border:1px solid var(--border-subtle); max-width:1200px; margin:0 auto; }
.ces-map iframe { display:block; width:100%; height:360px; border:0; }

/* Office-hours / simple info row */
.ces-hours { display:flex; flex-wrap:wrap; gap:10px 28px; font-size:var(--text-base); color:var(--text-body); }
.ces-hours strong { color:var(--text-strong); }

/* ---------- Testimonials full grid ---------- */
.ces-tgrid { display:grid; grid-template-columns:repeat(2,1fr); gap:22px; max-width:1200px; margin:0 auto; padding:0 32px; }
@media (max-width:740px){ .ces-tgrid { grid-template-columns:1fr; } }
.ces-tcard { background:#fff; border:1px solid var(--border-subtle); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm); padding:26px; display:flex; flex-direction:column; gap:12px; }
.ces-tcard__stars { display:flex; gap:2px; color:var(--gold-500); }
.ces-tcard__stars svg { width:15px; height:15px; fill:var(--gold-500); }
.ces-tcard__text { font-size:var(--text-sm); color:var(--text-body); line-height:var(--leading-relaxed); margin:0; }
.ces-tcard__who { display:flex; align-items:center; gap:11px; margin-top:auto; padding-top:6px; }
.ces-tcard__name { font:700 var(--text-sm) var(--font-sans); color:var(--text-strong); }
.ces-tcard__tag { font:500 var(--text-xs) var(--font-sans); color:var(--gold-700); }

/* ---------- Contact ---------- */
.ces-contact { display:grid; grid-template-columns:1fr 1fr; gap:48px; max-width:1200px; margin:0 auto; padding:56px 32px; }
@media (max-width:860px){ .ces-contact { grid-template-columns:1fr; gap:32px; } }
.ces-office { margin-bottom:26px; }
.ces-office h3 { font-family:var(--font-sans); font-weight:700; font-size:var(--text-md); color:var(--navy-900); margin:0 0 10px; }
.ces-office p { font-size:var(--text-sm); color:var(--text-body); line-height:var(--leading-relaxed); margin:0 0 6px; display:flex; gap:9px; align-items:flex-start; }
.ces-office svg { color:var(--gold-600); width:16px; height:16px; flex:none; margin-top:2px; }
.ces-form { background:#fff; border:1px solid var(--border-subtle); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); padding:30px; }
.ces-form h2 { font-family:var(--font-sans); font-weight:800; font-size:var(--text-lg); color:var(--navy-900); margin:0 0 18px; letter-spacing:var(--tracking-tight); }
.ces-form label { display:block; font:600 var(--text-sm) var(--font-sans); color:var(--text-strong); margin:14px 0 6px; }
/* Style text fields only — NOT the submit button (it uses .ces-btn). */
.ces-form input:not([type="submit"]):not([type="button"]), .ces-form select, .ces-form textarea { width:100%; padding:11px 14px;
  border:1.5px solid var(--border-default); border-radius:var(--radius-md); font:400 var(--text-base) var(--font-sans);
  color:var(--text-strong); background:#fff; }
.ces-form input:not([type="submit"]):not([type="button"]):focus, .ces-form select:focus, .ces-form textarea:focus {
  outline:none; border-color:var(--navy-500); box-shadow:0 0 0 3px var(--focus-ring-brand); }
.ces-form textarea { height:130px; min-height:110px; resize:vertical; }
.ces-form .ces-btn { margin-top:18px; width:100%; }
/* Contact Form 7 integration */
.ces-form .wpcf7 { margin:0; }
.ces-form form.wpcf7-form { margin:0; }
.ces-form .wpcf7-form-control-wrap { display:block; }
.ces-form .wpcf7-not-valid-tip { color:var(--danger-600); font-size:var(--text-xs); margin-top:5px; display:block; }
.ces-form input.wpcf7-not-valid, .ces-form select.wpcf7-not-valid, .ces-form textarea.wpcf7-not-valid { border-color:var(--danger-500); }
.ces-form .ces-btn.wpcf7-submit { width:100%; }
.ces-form .wpcf7-spinner { margin:14px auto 0; display:block; }
.ces-form .wpcf7-response-output { margin:18px 0 0 !important; padding:12px 16px !important; border-radius:var(--radius-md);
  border:1px solid var(--border-subtle); font-size:var(--text-sm); line-height:var(--leading-snug); }
.ces-form form.sent .wpcf7-response-output { border-color:var(--success-500); background:var(--success-100); color:var(--success-600); }
.ces-form form.invalid .wpcf7-response-output, .ces-form form.failed .wpcf7-response-output, .ces-form form.spam .wpcf7-response-output {
  border-color:var(--danger-500); background:var(--danger-100); color:var(--danger-600); }
.ces-formrow { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:520px){ .ces-formrow { grid-template-columns:1fr; } }

/* ---------- Hero accreditation badges ---------- */
.ces-herobadge { display:flex; align-items:center; gap:10px; }
.ces-herobadge svg { width:26px; height:26px; color:var(--gold-600); flex:none; }
.ces-herobadge strong { display:block; font:700 var(--text-sm) var(--font-sans); color:var(--navy-900); line-height:1.1; }
.ces-herobadge span { display:block; font-size:var(--text-xs); color:var(--text-muted); margin-top:2px; }

/* ---------- Our Associates strip ---------- */
.ces-assoc { padding:40px 0; border-bottom:1px solid var(--border-subtle); background:#fff; }
.ces-assoc__eyebrow { display:block; text-align:center; margin:0 0 4px; }
.ces-assoc__label { text-align:center; font:600 var(--text-xs) var(--font-sans); letter-spacing:0.12em;
  text-transform:uppercase; color:var(--text-subtle); margin:0 0 24px; }
.ces-assoc__row { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:24px 44px; }
.ces-assoc__logo { height:66px; width:auto; max-width:160px; object-fit:contain;
  transition:transform var(--dur-base) var(--ease-out); }
.ces-assoc__logo:hover { transform:translateY(-2px); }
@media (max-width:620px){ .ces-assoc__logo { height:54px; } }

/* ---------- Destination slider ---------- */
.ces-destslider { margin-top:8px; }
.ces-slider__viewport { overflow:hidden; }
.ces-slider__track { display:flex; transition:transform var(--dur-slow) var(--ease-out); will-change:transform; }
.ces-slider__slide { min-width:100%; box-sizing:border-box; padding:6px 4px; }
.ces-slider__controls { display:flex; align-items:center; justify-content:center; gap:22px; margin-top:34px; }
.ces-slider__arrow { width:46px; height:46px; border-radius:50%; border:1.5px solid var(--border-default);
  background:#fff; color:var(--navy-800); display:grid; place-items:center; cursor:pointer;
  transition:all var(--dur-base) var(--ease-out); }
.ces-slider__arrow:hover { border-color:var(--gold-500); background:var(--gold-50); color:var(--gold-700); }
.ces-slider__arrow:active { transform:scale(0.94); }
.ces-slider__arrow svg { width:20px; height:20px; }
.ces-slider__dots { display:flex; align-items:center; gap:9px; }
.ces-slider__dot { width:9px; height:9px; border-radius:999px; border:0; padding:0; background:var(--border-default);
  cursor:pointer; transition:all var(--dur-base) var(--ease-out); }
.ces-slider__dot:hover { background:var(--navy-300); }
.ces-slider__dot.is-active { width:26px; background:var(--gold-500); }

/* ---------- Why band feature grid (replaces numeric stats) ---------- */
.ces-why__feats { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.ces-why__feat { padding:24px; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.1);
  border-radius:var(--radius-xl); display:flex; flex-direction:column; gap:8px; }
.ces-why__feat-icon { width:44px; height:44px; border-radius:var(--radius-md); display:grid; place-items:center;
  background:rgba(212,165,60,0.16); color:var(--gold-400); }
.ces-why__feat-icon svg { width:22px; height:22px; }
.ces-why__feat-title { font:700 var(--text-md) var(--font-sans); color:#fff; }
.ces-why__feat-desc { font-size:var(--text-sm); color:var(--navy-200); line-height:var(--leading-snug); }
@media (max-width:620px){ .ces-why__feats { grid-template-columns:1fr; } }

/* ============================================================
   Mobile typography fixes — prevent oversized Cinzel headings
   from overflowing narrow screens (was causing horizontal scroll
   and right-edge clipping across all sections).
   ============================================================ */
.ces-sectitle, .ces-hero__title, .ces-phero h1, .ces-pagehero h1, .ces-dest__name,
.ces-ctaband__title, .ces-why__title { overflow-wrap:break-word; }
@media (max-width:980px){
  .ces-hero__floatcard { position:static; left:auto; bottom:auto; margin:16px auto 0; display:inline-block; }
  .ces-header__inner { padding:0 18px; gap:14px; }
  .ces-header__brand img { height:34px; }
}
@media (max-width:600px){
  /* CTA lives in the mobile menu + floating WhatsApp button, so drop it from
     the bar to keep the header from overflowing on phones. */
  .ces-header__actions .ces-btn { display:none; }
}
@media (max-width:620px){
  .ces-hero__title { font-size:38px; line-height:1.08; }
  .ces-phero h1, .ces-pagehero h1 { font-size:32px; }
  .ces-sectitle, .page .ces-sectitle { font-size:30px; }
  .ces-why__title, .ces-ctaband__title { font-size:26px; }
  .ces-phero__inner { padding:56px 22px 60px; }
  .ces-hero__grid { padding:56px 22px 64px; }
  .ces-container, .ces-pagebody { padding-left:22px; padding-right:22px; }
}
@media (max-width:400px){
  .ces-hero__title { font-size:32px; }
  .ces-phero h1, .ces-pagehero h1 { font-size:28px; }
  .ces-sectitle, .page .ces-sectitle { font-size:26px; }
}
