/* ============================================================
   Hospitality Academy x The Ritz-Carlton - Luxury Landing
   SCOPED build: every selector namespaced under .ha-landing
   (.ha-landing is applied to <body> on the landing page only)
   ============================================================ */

/* ============================================================
   Hospitality Academy × The Ritz-Carlton — Luxury Landing
   ============================================================ */


.ha-landing { --navy:#091828;
  --navy-2:#243d55;
  --navy-deep:#06101d;
  --gold:#c9a96e;
  --gold-soft:#d9bd8a;
  --gold-deep:#a98b52;
  --ivory:#f6f2e9;
  --cream:#ece4d4;
  --white:#ffffff;
  --ink:#0d1c2e;

  --txt-on-dark:rgba(255,255,255,.78);
  --txt-on-dark-dim:rgba(255,255,255,.55);
  --txt-on-light:#2c3a48;
  --txt-on-light-dim:#5d6b78;

  --font-serif:"Cormorant Garamond",Georgia,serif;
  --font-sans:"Mulish",-apple-system,BlinkMacSystemFont,sans-serif;

  --maxw:1280px;
  --pad-x:clamp(22px,5vw,80px);
  --sec-y:clamp(80px,9vw,150px);

  --ease:cubic-bezier(.22,.61,.36,1); }


.ha-landing, .ha-landing * { box-sizing:border-box;margin:0;padding:0 }
html:has(body.ha-landing) { scroll-behavior:smooth }
body.ha-landing { font-family:var(--font-sans);
  background:var(--navy);
  color:var(--white);
  font-size:18px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden; }
.ha-landing img { display:block;max-width:100% }
.ha-landing a { color:inherit;text-decoration:none }


/* ---------- Type primitives ---------- */
.ha-landing .serif { font-family:var(--font-serif) }
.ha-landing .eyebrow { font-family:var(--font-sans);
  font-size:13px;
  font-weight:700;
  letter-spacing:.32em;
  text-transform:uppercase;
  color:var(--gold);
  display:inline-flex;
  align-items:center;
  gap:14px; }
.ha-landing .eyebrow::before { content:"";
  width:34px;height:1px;
  background:var(--gold);
  opacity:.7; }
.ha-landing .eyebrow.center { justify-content:center }
.ha-landing .eyebrow.center::after { content:"";
  width:34px;height:1px;
  background:var(--gold);
  opacity:.7; }


.ha-landing h1, .ha-landing h2, .ha-landing h3 { font-family:var(--font-serif);font-weight:500;line-height:1.06;letter-spacing:.005em }
.ha-landing .sec-title { font-size:clamp(38px,5vw,68px);
  line-height:1.04;
  font-weight:500; }
.ha-landing .sec-lead { font-size:clamp(18px,1.5vw,21px);
  line-height:1.7;
  max-width:62ch; }


.ha-landing .btn { display:inline-flex;align-items:center;gap:12px;
  font-family:var(--font-sans);
  font-size:13px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  padding:18px 34px;
  border:1px solid var(--gold);
  cursor:pointer;
  transition:all .45s var(--ease);
  background:transparent;
  position:relative; }
.ha-landing .btn .arr { transition:transform .45s var(--ease) }
.ha-landing .btn:hover .arr { transform:translateX(6px) }
.ha-landing .btn-primary { background:var(--gold);color:var(--navy);border-color:var(--gold) }
.ha-landing .btn-primary:hover { background:var(--gold-soft);border-color:var(--gold-soft);box-shadow:0 14px 40px -14px rgba(201,169,110,.7) }
.ha-landing .btn-ghost { color:var(--white) }
.ha-landing .btn-ghost:hover { background:rgba(255,255,255,.06);border-color:var(--gold-soft);color:var(--gold-soft) }
.ha-landing .btn-ghost.on-light { color:var(--navy);border-color:var(--navy-2) }
.ha-landing .btn-ghost.on-light:hover { background:rgba(9,24,40,.05);color:var(--navy);border-color:var(--gold-deep) }


/* ---------- Layout ---------- */
.ha-landing .wrap { max-width:var(--maxw);margin:0 auto;padding-left:var(--pad-x);padding-right:var(--pad-x) }
.ha-landing section { position:relative }
.ha-landing .sec { padding-top:var(--sec-y);padding-bottom:var(--sec-y) }
.ha-landing .bg-navy { background:var(--navy);color:var(--white) }
.ha-landing .bg-slate { background:var(--navy-2);color:var(--white) }
.ha-landing .bg-ivory { background:var(--ivory);color:var(--txt-on-light) }
.ha-landing .bg-ivory .sec-title, .ha-landing .bg-ivory h2, .ha-landing .bg-ivory h3 { color:var(--ink) }
.ha-landing .bg-ivory .sec-lead { color:var(--txt-on-light) }


/* small diamond divider */
.ha-landing .diamond { display:inline-block;width:7px;height:7px;background:var(--gold);transform:rotate(45deg);vertical-align:middle }


/* ============================================================
   NAV
   ============================================================ */
.ha-landing .nav { position:fixed;top:0;left:0;right:0;z-index:100;
  padding:22px var(--pad-x);
  display:flex;align-items:center;justify-content:space-between;
  transition:background .5s var(--ease),padding .5s var(--ease),box-shadow .5s var(--ease),border-color .5s var(--ease);
  border-bottom:1px solid transparent; }
.ha-landing .nav.scrolled { background:rgba(7,16,29,.86);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  padding:14px var(--pad-x);
  border-bottom:1px solid rgba(201,169,110,.18); }
.ha-landing .nav-logo { height:46px;transition:height .5s var(--ease) }
.ha-landing .nav.scrolled .nav-logo { height:38px }
.ha-landing .nav-links { display:flex;align-items:center;gap:34px }
.ha-landing .nav-links a { font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.82);position:relative;padding:4px 0;transition:color .3s; }
.ha-landing .nav-links a::after { content:"";position:absolute;left:0;bottom:-2px;height:1px;width:0;background:var(--gold);transition:width .35s var(--ease); }
.ha-landing .nav-links a:hover { color:#fff }
.ha-landing .nav-links a:hover::after { width:100% }
.ha-landing .nav-cta { font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  padding:12px 24px;border:1px solid var(--gold);color:var(--gold);transition:all .4s var(--ease); }
.ha-landing .nav-cta:hover { background:var(--gold);color:var(--navy) }
.ha-landing .nav-burger { display:none;flex-direction:column;gap:5px;cursor:pointer;padding:6px }
.ha-landing .nav-burger span { width:26px;height:2px;background:#fff;transition:.3s }
@media(max-width:980px) {
  .ha-landing .nav-links { display:none }
  .ha-landing .nav-burger { display:flex }
}


/* ============================================================
   HERO
   ============================================================ */
.ha-landing .hero { min-height:100vh;
  display:flex;align-items:center;
  position:relative;overflow:hidden;
  color:#fff; }
.ha-landing .hero-media { position:absolute;inset:0;z-index:0 }
.ha-landing .hero-media image-slot { width:100%;height:100% }
.ha-landing .hero-media::after { content:"";position:absolute;inset:0;
  background:
    radial-gradient(ellipse 75% 65% at 50% 45%,rgba(6,16,29,.32) 0%,rgba(6,16,29,.62) 70%,rgba(6,16,29,.8) 100%),
    linear-gradient(180deg,rgba(6,16,29,.5) 0%,rgba(6,16,29,.15) 30%,rgba(6,16,29,.7) 78%,rgba(6,16,29,.96) 100%);
  z-index:1;pointer-events:none; }
.ha-landing .hero-inner { position:relative;z-index:2;width:100%;padding-top:120px;padding-bottom:80px }
.ha-landing .hero-inner.centered { text-align:center;display:flex;flex-direction:column;align-items:center }
/* let drops/clicks on empty hero areas reach the background image slot, keep text + buttons interactive */
.ha-landing .hero-inner.centered { pointer-events:none }
.ha-landing .hero-inner.centered .eyebrow, .ha-landing .hero-inner.centered h1, .ha-landing .hero-inner.centered .hero-sub, .ha-landing .hero-inner.centered .hero-actions { pointer-events:auto }
.ha-landing .hero-eyebrow { margin-bottom:30px }
.ha-landing .hero h1 { font-size:clamp(46px,7vw,104px);
  line-height:1.04;
  font-weight:500;
  max-width:20ch;
  letter-spacing:.004em; }
.ha-landing .hero h1 em { font-style:italic;color:var(--gold-soft) }
.ha-landing .hero-sub { margin-top:30px;
  font-size:clamp(17px,1.4vw,20px);
  font-weight:300;
  color:var(--txt-on-dark-dim);
  max-width:58ch;line-height:1.75; }
.ha-landing .hero-actions { margin-top:46px;display:flex;gap:18px;flex-wrap:wrap;justify-content:center }
.ha-landing .scroll-cue { position:absolute;left:50%;bottom:30px;transform:translateX(-50%);z-index:3;
  font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--txt-on-dark-dim);
  display:flex;flex-direction:column;align-items:center;gap:10px; }
.ha-landing .scroll-cue .line { width:1px;height:46px;background:linear-gradient(var(--gold),transparent);animation:cue 2.4s var(--ease) infinite }
@keyframes cue{0%{transform:scaleY(.2);transform-origin:top;opacity:.4}50%{transform:scaleY(1);opacity:1}100%{transform:scaleY(.2);transform-origin:bottom;opacity:.4}}


/* ============================================================
   VALUE STRIPE
   ============================================================ */
.ha-landing .stripe { padding:clamp(56px,6vw,80px) 0 }
.ha-landing .stripe-grid { display:grid;grid-template-columns:repeat(5,1fr); }
.ha-landing .stripe-item { padding:8px clamp(20px,2.4vw,40px);
  border-left:1px solid rgba(201,169,110,.26);
  display:flex;flex-direction:column;gap:12px; }
.ha-landing .stripe-item:first-child { border-left:none;padding-left:0 }
.ha-landing .stripe-item .stripe-icon { width:40px;height:40px;color:var(--gold);display:block;margin-bottom:4px }
.ha-landing .stripe-item .label { font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold) }
.ha-landing .stripe-item .val { font-family:var(--font-serif);font-size:clamp(21px,1.7vw,26px);line-height:1.2;color:#fff }
.ha-landing .stripe-item .val .count { font-size:1.15em }
@media(max-width:880px) {
  .ha-landing .stripe-grid { grid-template-columns:repeat(2,1fr);gap:30px 0 }
  .ha-landing .stripe-item { border-left:1px solid rgba(201,169,110,.26) }
  .ha-landing .stripe-item:nth-child(odd) { border-left:none;padding-left:0 }
  .ha-landing .stripe-item:nth-child(5) { border-left:none;padding-left:0 }
}
@media(max-width:520px) {
  .ha-landing .stripe-grid { grid-template-columns:1fr;gap:26px }
  .ha-landing .stripe-item { border-left:none;padding-left:0;border-top:1px solid rgba(201,169,110,.2);padding-top:22px }
  .ha-landing .stripe-item:first-child { border-top:none;padding-top:0 }
}


/* ============================================================
   SECTION HEAD (shared)
   ============================================================ */
.ha-landing .sec-head { max-width:760px;margin-bottom:clamp(46px,5vw,72px) }
.ha-landing .sec-head.center { margin-left:auto;margin-right:auto;text-align:center }
.ha-landing .sec-head .eyebrow { margin-bottom:22px }
.ha-landing .sec-head .sec-title { margin-bottom:24px }


/* ============================================================
   BRAND ESSENCE
   ============================================================ */
.ha-landing .essence-top { display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(40px,6vw,90px);align-items:start }
.ha-landing .essence-figure { position:relative }
.ha-landing .essence-figure image-slot { width:100%;height:560px }
.ha-landing .essence-figure .tagchip { position:absolute;left:-1px;bottom:26px;background:var(--navy);color:#fff;
  padding:18px 26px;border-left:3px solid var(--gold);max-width:300px; }
.ha-landing .essence-figure .tagchip .t { font-family:var(--font-serif);font-size:22px;line-height:1.2 }
.ha-landing .essence-figure .tagchip .s { font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-top:6px }
.ha-landing .essence-body p { margin-bottom:20px;color:var(--txt-on-light) }
.ha-landing .essence-body .lead { font-size:21px;line-height:1.7 }


.ha-landing .credo { margin-top:clamp(56px,7vw,96px);
  background:var(--navy);color:#fff;
  padding:clamp(48px,6vw,84px);
  position:relative;overflow:hidden; }
.ha-landing .credo::before { content:"\201C";font-family:var(--font-serif);
  position:absolute;top:-30px;left:30px;font-size:240px;color:rgba(201,169,110,.16);line-height:1; }
.ha-landing .credo .eyebrow { margin-bottom:26px }
.ha-landing .credo blockquote { font-family:var(--font-serif);font-style:italic;
  font-size:clamp(24px,2.6vw,38px);line-height:1.4;font-weight:400;
  max-width:24ch;position:relative;z-index:1; }
.ha-landing .credo .attr { margin-top:26px;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold) }


.ha-landing .standards { margin-top:clamp(56px,7vw,90px) }
.ha-landing .standards-head { display:flex;align-items:baseline;justify-content:space-between;gap:30px;flex-wrap:wrap;margin-bottom:40px }
.ha-landing .standards-head h3 { font-size:clamp(28px,3vw,42px);color:var(--ink) }
.ha-landing .std-grid { display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(9,24,40,.12);border:1px solid rgba(9,24,40,.12) }
.ha-landing .std { background:var(--ivory);padding:clamp(28px,3vw,40px);transition:background .4s var(--ease),transform .4s var(--ease) }
.ha-landing .std:hover { background:#fff }
.ha-landing .std .num { font-family:var(--font-serif);font-size:46px;line-height:1;color:var(--gold);margin-bottom:14px }
.ha-landing .std h4 { font-family:var(--font-serif);font-size:25px;color:var(--ink);margin-bottom:12px;font-weight:600 }
.ha-landing .std p { font-size:16.5px;color:var(--txt-on-light-dim);line-height:1.62 }
.ha-landing .std p em { font-style:italic;color:var(--txt-on-light) }
.ha-landing .std.full { grid-column:1/-1 }
@media(max-width:760px) {
  .ha-landing .std-grid { grid-template-columns:1fr }
  .ha-landing .essence-top { grid-template-columns:1fr;gap:34px }
  .ha-landing .essence-figure image-slot { height:380px }
}


/* ============================================================
   KEY PLAYERS
   ============================================================ */
.ha-landing .players { display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,40px) }
.ha-landing .player { display:flex;flex-direction:column }
.ha-landing .player image-slot { width:100%;height:420px }
.ha-landing .player .pbody { padding-top:28px;border-top:1px solid rgba(201,169,110,.28);margin-top:24px }
.ha-landing .player .role { font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:12px }
.ha-landing .player h3 { font-size:30px;color:#fff;margin-bottom:14px;font-weight:600 }
.ha-landing .player p { font-size:16px;color:var(--txt-on-dark);line-height:1.62 }
.ha-landing .player p em { font-style:italic;color:var(--gold-soft) }
@media(max-width:880px) {
  .ha-landing .players { grid-template-columns:1fr;gap:48px }
  .ha-landing .player image-slot { height:460px }
}


/* ============================================================
   GLOBAL PRESENCE
   ============================================================ */
.ha-landing .presence-top { display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(40px,6vw,80px);align-items:center;margin-bottom:clamp(48px,5vw,76px) }
.ha-landing .presence-map image-slot { width:100%;height:480px }
.ha-landing .regions { display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(9,24,40,.12);border:1px solid rgba(9,24,40,.12) }
.ha-landing .region { background:var(--ivory);padding:clamp(24px,2.6vw,34px);transition:background .4s }
.ha-landing .region:hover { background:#fff }
.ha-landing .region .rname { font-family:var(--font-serif);font-size:24px;color:var(--ink);margin-bottom:6px;display:flex;align-items:center;gap:10px }
.ha-landing .region .rcount { font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:14px;display:block }
.ha-landing .region .rmarkets { font-size:15px;color:var(--txt-on-light-dim);line-height:1.7 }
@media(max-width:760px) {
  .ha-landing .presence-top { grid-template-columns:1fr;gap:32px }
  .ha-landing .regions { grid-template-columns:1fr }
  .ha-landing .presence-map image-slot { height:340px }
}


.ha-landing .extensions { display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:8px }
.ha-landing .ext { background:var(--navy);color:#fff;padding:clamp(32px,3.4vw,48px);position:relative;overflow:hidden;transition:transform .45s var(--ease) }
.ha-landing .ext:hover { transform:translateY(-5px) }
.ha-landing .ext .ekick { font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:16px }
.ha-landing .ext h4 { font-family:var(--font-serif);font-size:30px;margin-bottom:14px;font-weight:600 }
.ha-landing .ext p { font-size:16px;color:var(--txt-on-dark);line-height:1.62 }
.ha-landing .ext .enum { position:absolute;right:24px;top:18px;font-family:var(--font-serif);font-size:64px;color:rgba(201,169,110,.18);line-height:1 }
@media(max-width:680px) {
  .ha-landing .extensions { grid-template-columns:1fr }
}


.ha-landing .presence-cta { margin-top:clamp(48px,5vw,72px);text-align:center }


/* ---------- Interactive world map ---------- */
.ha-landing .map-filters { display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px }
.ha-landing .mfilter { font-family:var(--font-sans);font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--txt-on-light-dim);background:transparent;border:1px solid rgba(9,24,40,.18);
  padding:11px 20px;cursor:pointer;transition:all .35s var(--ease); }
.ha-landing .mfilter:hover { color:var(--ink);border-color:var(--gold-deep) }
.ha-landing .mfilter.active { background:var(--navy);color:var(--gold);border-color:var(--navy) }


.ha-landing .worldmap { position:relative;width:100%;aspect-ratio:2/1;margin:0;
  background:linear-gradient(160deg,#0c1f33,#091828 70%);
  border:1px solid rgba(201,169,110,.22);
  overflow:hidden; }
.ha-landing .worldmap-svg { position:absolute;inset:0;width:100%;height:100%;display:block }
.ha-landing .worldmap-svg .land { fill:rgba(201,169,110,.10);stroke:rgba(201,169,110,.30);stroke-width:.7;stroke-linejoin:round }
.ha-landing .pins { position:absolute;inset:0 }
.ha-landing .pin { position:absolute;transform:translate(-50%,-50%);
  width:26px;height:26px;display:flex;align-items:center;justify-content:center;
  background:none;border:none;padding:0;cursor:pointer;z-index:2;
  transition:opacity .4s var(--ease),filter .4s var(--ease),transform .25s var(--ease); }
.ha-landing .pin .pin-dot { width:9px;height:9px;border-radius:50%;background:var(--gold);
  box-shadow:0 0 0 3px rgba(201,169,110,.22),0 0 10px 1px rgba(201,169,110,.5);
  transition:all .3s var(--ease);position:relative; }
.ha-landing .pin .pin-dot::after { content:"";position:absolute;inset:-3px;border-radius:50%;border:1px solid var(--gold);
  opacity:0;transform:scale(.6); }
.ha-landing .pin:hover { transform:translate(-50%,-50%) scale(1.25);z-index:6 }
.ha-landing .pin:hover .pin-dot, .ha-landing .pin:focus-visible .pin-dot { background:#fff;box-shadow:0 0 0 4px rgba(201,169,110,.32),0 0 16px 3px rgba(201,169,110,.7) }
.ha-landing .pin.match .pin-dot::after { animation:pinpulse 2.2s var(--ease) infinite }
@keyframes pinpulse{0%{opacity:.7;transform:scale(.7)}70%{opacity:0;transform:scale(2.2)}100%{opacity:0;transform:scale(2.2)}}
/* dimmed (non-matching) state */
.ha-landing .pins.filtered .pin:not(.match) { opacity:.18;filter:grayscale(1) }
.ha-landing .pins.filtered .pin:not(.match) .pin-dot { box-shadow:none;background:rgba(255,255,255,.5) }


.ha-landing .map-tooltip { position:absolute;z-index:20;pointer-events:none;opacity:0;transform:translate(-50%,-12px);
  background:var(--navy);border:1px solid rgba(201,169,110,.4);
  padding:9px 15px;white-space:nowrap;transition:opacity .25s var(--ease),transform .25s var(--ease);
  box-shadow:0 16px 40px -16px rgba(0,0,0,.8); }
.ha-landing .map-tooltip.show { opacity:1;transform:translate(-50%,-18px) }
.ha-landing .map-tooltip .tt-city { font-family:var(--font-serif);font-size:19px;color:#fff;line-height:1.1 }
.ha-landing .map-tooltip .tt-region { font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-top:3px }


.ha-landing .map-legend { position:absolute;left:clamp(16px,2vw,28px);bottom:clamp(14px,2vw,22px);z-index:5;
  display:flex;align-items:center;gap:10px;font-size:13px;color:var(--txt-on-dark);letter-spacing:.02em; }
.ha-landing .map-legend .legend-dot { width:9px;height:9px;border-radius:50%;background:var(--gold);box-shadow:0 0 8px 1px rgba(201,169,110,.6) }
.ha-landing .map-legend .legend-count { font-family:var(--font-serif);font-size:26px;color:#fff;line-height:1 }
.ha-landing .map-legend .legend-label { max-width:200px }
@media(max-width:600px) {
  .ha-landing .map-legend .legend-label { display:none }
}


/* ============================================================
   AWARDS
   ============================================================ */
.ha-landing .awards { display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(201,169,110,.2);border:1px solid rgba(201,169,110,.2) }
.ha-landing .award { background:var(--navy);padding:clamp(30px,3vw,44px);display:flex;flex-direction:column;gap:16px;transition:background .4s var(--ease) }
.ha-landing .award:hover { background:var(--navy-2) }
.ha-landing .award .acrest { width:46px;height:46px;color:var(--gold) }
.ha-landing .award .award-badge { width:66px;height:66px;--slot-empty-bg:rgba(201,169,110,.07) }
.ha-landing .award h4 { font-family:var(--font-serif);font-size:23px;color:#fff;line-height:1.25;font-weight:600 }
.ha-landing .award p { font-size:15px;color:var(--txt-on-dark);line-height:1.6 }
@media(max-width:980px) {
  .ha-landing .awards { grid-template-columns:repeat(2,1fr) }
}
@media(max-width:540px) {
  .ha-landing .awards { grid-template-columns:1fr }
}


/* ============================================================
   CAREER PATHWAYS
   ============================================================ */
.ha-landing .paths-tabs { display:flex;gap:8px;flex-wrap:wrap;margin-bottom:48px;border-bottom:1px solid rgba(9,24,40,.14) }
.ha-landing .ptab { font-family:var(--font-sans);font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--txt-on-light-dim);padding:16px 22px;cursor:pointer;background:none;border:none;position:relative;transition:color .3s; }
.ha-landing .ptab::after { content:"";position:absolute;left:0;bottom:-1px;height:2px;width:0;background:var(--gold);transition:width .4s var(--ease) }
.ha-landing .ptab:hover { color:var(--ink) }
.ha-landing .ptab.active { color:var(--ink) }
.ha-landing .ptab.active::after { width:100% }
.ha-landing .ladder-panel { display:none }
.ha-landing .ladder-panel.active { display:block;animation:fadeUp .6s var(--ease) }
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.ha-landing .ladder-intro { font-size:19px;color:var(--txt-on-light);max-width:64ch;margin-bottom:40px;line-height:1.7 }
.ha-landing .ladder { display:flex;gap:0;flex-wrap:wrap;counter-reset:step }
.ha-landing .rung { flex:1 1 0;min-width:170px;position:relative;padding:0 22px; }
.ha-landing .rung:first-child { padding-left:0 }
.ha-landing .rung .dot { width:14px;height:14px;background:var(--gold);transform:rotate(45deg);margin-bottom:18px;position:relative }
.ha-landing .rung .track { position:absolute;left:0;top:6px;height:1px;width:100%;background:repeating-linear-gradient(90deg,var(--gold) 0 6px,transparent 6px 12px);opacity:.5;z-index:0 }
.ha-landing .rung:last-child .track { display:none }
.ha-landing .rung .yr { font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:8px;font-weight:700 }
.ha-landing .rung .title { font-family:var(--font-serif);font-size:22px;color:var(--ink);line-height:1.2 }
@media(max-width:760px) {
  .ha-landing .ladder { flex-direction:column;gap:6px }
  .ha-landing .rung { min-width:0;padding:0 0 26px 28px;border-left:1px solid rgba(201,169,110,.4) }
  .ha-landing .rung:first-child { padding-left:28px }
  .ha-landing .rung .dot { position:absolute;left:-7px;top:2px;margin:0 }
  .ha-landing .rung .track { display:none }
}


/* ============================================================
   PLACEMENT INTERNATIONAL
   ============================================================ */
.ha-landing .placement-grid { display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(40px,5vw,72px);align-items:start }
.ha-landing .placed-list { margin-top:34px;border-top:1px solid rgba(201,169,110,.25) }
.ha-landing .placed-list .pl { position:relative;width:100%;background:none;border:none;border-bottom:1px solid rgba(255,255,255,.1);padding:22px 4px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left;transition:padding .4s var(--ease) }
.ha-landing .placed-list .pl::before { content:"";position:absolute;left:-1px;top:50%;transform:translateY(-50%) scaleY(0);width:2px;height:58%;background:var(--gold);transition:transform .4s var(--ease) }
.ha-landing .placed-list .pl.active::before { transform:translateY(-50%) scaleY(1) }
.ha-landing .placed-list .pl.active { padding-left:18px }
.ha-landing .placed-list .pl .pl-main { display:flex;align-items:baseline;gap:16px;flex-wrap:wrap }
.ha-landing .placed-list .pl .pn { font-family:var(--font-serif);font-size:24px;color:rgba(255,255,255,.5);font-weight:600;transition:color .35s var(--ease) }
.ha-landing .placed-list .pl .pc { font-size:14px;color:rgba(201,169,110,.5);letter-spacing:.08em;transition:color .35s var(--ease) }
.ha-landing .placed-list .pl .pl-arr { color:var(--gold);opacity:0;transform:translateX(-8px);transition:all .4s var(--ease);font-size:18px }
.ha-landing .placed-list .pl:hover .pn, .ha-landing .placed-list .pl.active .pn { color:#fff }
.ha-landing .placed-list .pl:hover .pc, .ha-landing .placed-list .pl.active .pc { color:var(--gold) }
.ha-landing .placed-list .pl:hover .pl-arr { opacity:.55;transform:none }
.ha-landing .placed-list .pl.active .pl-arr { opacity:1;transform:none }
.ha-landing .job-media { position:relative;margin-bottom:28px }
.ha-landing .prop-img { display:block;width:100%;height:230px }
.ha-landing .prop-img[hidden] { display:none }
@keyframes jobfade{from{opacity:0}to{opacity:1}}
.ha-landing .joboffer.fade { animation:jobfade .45s var(--ease) }
.ha-landing .placed-note { font-size:14px;color:var(--txt-on-dark-dim);letter-spacing:.16em;text-transform:uppercase;margin-bottom:6px }


.ha-landing .joboffer { background:linear-gradient(160deg,#0e2236,#091828 60%);
  border:1px solid rgba(201,169,110,.32);
  padding:clamp(34px,3.6vw,52px);position:relative;overflow:hidden; }
.ha-landing .joboffer .ribbon { position:absolute;top:26px;right:-46px;background:var(--gold);color:var(--navy);font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;padding:8px 56px;transform:rotate(45deg) }
.ha-landing .joboffer .stars { color:var(--gold);letter-spacing:4px;font-size:18px;margin-bottom:14px }
.ha-landing .joboffer .jrating { font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--txt-on-dark-dim);margin-bottom:22px }
.ha-landing .joboffer h3 { font-size:clamp(30px,3.2vw,42px);color:#fff;margin-bottom:8px;font-weight:600 }
.ha-landing .joboffer .jloc { font-size:15px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:22px }
.ha-landing .joboffer .jdesc { font-size:17px;color:var(--txt-on-dark);line-height:1.65;margin-bottom:30px;max-width:54ch }
.ha-landing .jpkg { display:grid;grid-template-columns:repeat(2,auto);gap:14px 40px;margin-bottom:30px;padding:26px 0;border-top:1px solid rgba(201,169,110,.22);border-bottom:1px solid rgba(201,169,110,.22) }
.ha-landing .jpkg .pk { display:flex;flex-direction:column;gap:3px }
.ha-landing .jpkg .pk .k { font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--txt-on-dark-dim) }
.ha-landing .jpkg .pk .v { font-family:var(--font-serif);font-size:22px;color:#fff }
.ha-landing .jmeta { display:flex;gap:10px;flex-wrap:wrap;margin-bottom:30px }
.ha-landing .jmeta .chip { font-size:12.5px;letter-spacing:.08em;padding:8px 16px;border:1px solid rgba(201,169,110,.4);color:var(--gold-soft) }
@media(max-width:860px) {
  .ha-landing .placement-grid { grid-template-columns:1fr;gap:44px }
  .ha-landing .jpkg { grid-template-columns:1fr 1fr }
}


/* ============================================================
   INTERVIEW PREP
   ============================================================ */
.ha-landing .tips-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(9,24,40,.12);border:1px solid rgba(9,24,40,.12) }
.ha-landing .tip { background:var(--ivory);padding:clamp(30px,3vw,42px);transition:background .4s var(--ease),transform .4s var(--ease);position:relative }
.ha-landing .tip:hover { background:#fff }
.ha-landing .tip .tip-num { font-family:var(--font-serif);font-size:44px;line-height:1;color:var(--gold);margin-bottom:18px }
.ha-landing .tip h3 { font-family:var(--font-serif);font-size:25px;color:var(--ink);margin-bottom:13px;font-weight:600;line-height:1.2 }
.ha-landing .tip p { font-size:16px;color:var(--txt-on-light-dim);line-height:1.65 }
@media(max-width:880px) {
  .ha-landing .tips-grid { grid-template-columns:1fr 1fr }
}
@media(max-width:560px) {
  .ha-landing .tips-grid { grid-template-columns:1fr }
}


.ha-landing .sample-q { margin-top:clamp(48px,5vw,76px);
  background:var(--navy);color:#fff;
  padding:clamp(40px,5vw,72px);
  display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(36px,5vw,64px);align-items:start;
  position:relative;overflow:hidden; }
.ha-landing .sample-q::before { content:"?";font-family:var(--font-serif);
  position:absolute;top:-40px;right:30px;font-size:240px;color:rgba(201,169,110,.12);line-height:1; }
.ha-landing .sample-q-head .eyebrow { margin-bottom:22px }
.ha-landing .sample-q-head h3 { font-family:var(--font-serif);font-size:clamp(28px,3vw,40px);color:#fff;font-weight:500;line-height:1.1;margin-bottom:18px }
.ha-landing .sample-q-note { font-size:14px;color:var(--txt-on-dark-dim);line-height:1.6;font-style:italic;max-width:34ch }
.ha-landing .sample-q-list { list-style:none;counter-reset:none;display:flex;flex-direction:column;gap:0;position:relative;z-index:1 }
.ha-landing .sq { display:flex;gap:22px;align-items:flex-start;padding:24px 0;border-top:1px solid rgba(201,169,110,.22) }
.ha-landing .sq:first-child { border-top:none;padding-top:0 }
.ha-landing .sq:last-child { padding-bottom:0 }
.ha-landing .sq .sq-num { font-family:var(--font-serif);font-size:21px;color:var(--gold);flex:none;width:40px;line-height:1.3;letter-spacing:.02em }
.ha-landing .sq p { font-family:var(--font-serif);font-size:clamp(19px,1.7vw,23px);line-height:1.45;color:rgba(255,255,255,.9);font-weight:400 }
@media(max-width:760px) {
  .ha-landing .sample-q { grid-template-columns:1fr;gap:32px }
}


/* ============================================================
   HA CONNECTION / PROGRAMS
   ============================================================ */
.ha-landing .programs { display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:8px }
.ha-landing .program { background:#fff;border:1px solid rgba(9,24,40,.1);
  padding:clamp(30px,3vw,42px);display:flex;flex-direction:column;
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s;
  position:relative;overflow:hidden; }
.ha-landing .program::before { content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease) }
.ha-landing .program:hover { transform:translateY(-6px);box-shadow:0 30px 60px -30px rgba(9,24,40,.4);border-color:rgba(201,169,110,.5) }
.ha-landing .program:hover::before { transform:scaleX(1) }
.ha-landing .program .pgkick { font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:20px }
.ha-landing .program h3 { font-family:var(--font-serif);font-size:30px;color:var(--ink);line-height:1.15;margin-top:0;margin-bottom:16px;font-weight:600 }
.ha-landing .program p { font-size:16px;color:var(--txt-on-light-dim);line-height:1.65;margin-bottom:26px;flex:1 }
.ha-landing .program .pglink { font-size:12.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);display:inline-flex;align-items:center;gap:10px }
.ha-landing .program .pglink .arr { color:var(--gold);transition:transform .4s var(--ease) }
.ha-landing .program:hover .pglink .arr { transform:translateX(6px) }
.ha-landing .connect-cta { margin-top:clamp(48px,5vw,72px);text-align:center }
@media(max-width:880px) {
  .ha-landing .programs { grid-template-columns:1fr }
}


/* ============================================================
   FAQ
   ============================================================ */
.ha-landing .faq-wrap { display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(40px,5vw,80px);align-items:start }
.ha-landing .faq-cats { position:sticky;top:120px }
.ha-landing .faq-cat-btn { display:block;width:100%;text-align:left;background:none;border:none;cursor:pointer;
  font-family:var(--font-sans);font-size:14px;font-weight:600;letter-spacing:.08em;
  color:var(--txt-on-dark-dim);padding:13px 0 13px 20px;border-left:1px solid rgba(255,255,255,.14);transition:all .3s }
.ha-landing .faq-cat-btn:hover { color:#fff }
.ha-landing .faq-cat-btn.active { color:var(--gold);border-left:1px solid var(--gold) }
.ha-landing .faq-group { display:none }
.ha-landing .faq-group.active { display:block;animation:fadeUp .5s var(--ease) }
.ha-landing .faq-group h3 { font-family:var(--font-serif);font-size:30px;color:#fff;margin-bottom:22px;font-weight:600 }
.ha-landing .faq-item { border-bottom:1px solid rgba(255,255,255,.12) }
.ha-landing .faq-q { width:100%;background:none;border:none;cursor:pointer;text-align:left;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:24px 0;font-family:var(--font-serif);font-size:clamp(20px,2vw,25px);color:#fff;transition:color .3s }
.ha-landing .faq-q:hover { color:var(--gold-soft) }
.ha-landing .faq-icon { flex:none;width:26px;height:26px;position:relative;transition:transform .4s var(--ease) }
.ha-landing .faq-icon::before, .ha-landing .faq-icon::after { content:"";position:absolute;background:var(--gold);transition:opacity .3s }
.ha-landing .faq-icon::before { top:12px;left:2px;right:2px;height:1.5px }
.ha-landing .faq-icon::after { left:12px;top:2px;bottom:2px;width:1.5px }
.ha-landing .faq-item.open .faq-icon { transform:rotate(90deg) }
.ha-landing .faq-item.open .faq-icon::after { opacity:0 }
.ha-landing .faq-a { max-height:0;overflow:hidden;transition:max-height .5s var(--ease) }
.ha-landing .faq-a-inner { padding:0 0 26px;font-size:17px;color:var(--txt-on-dark);line-height:1.72;max-width:72ch }
.ha-landing .faq-a-inner em { font-style:italic;color:var(--gold-soft) }
@media(max-width:760px) {
  .ha-landing .faq-wrap { grid-template-columns:1fr;gap:34px }
  .ha-landing .faq-cats { position:static;display:flex;flex-wrap:wrap;gap:6px }
  .ha-landing .faq-cat-btn { width:auto;border-left:none;border-bottom:1px solid rgba(255,255,255,.14);padding:10px 16px }
  .ha-landing .faq-cat-btn.active { border-left:none;border-bottom:1px solid var(--gold) }
}


/* ============================================================
   FOOTER
   ============================================================ */
.ha-landing .foot-cta { background:var(--navy-deep);padding:clamp(80px,9vw,140px) 0;text-align:center;position:relative;overflow:hidden;border-top:1px solid rgba(201,169,110,.16) }
.ha-landing .foot-cta .eyebrow { margin-bottom:28px }
.ha-landing .foot-cta h2 { font-size:clamp(36px,5vw,68px);color:#fff;max-width:18ch;margin:0 auto 22px;line-height:1.08 }
.ha-landing .foot-cta p { color:var(--txt-on-dark);font-size:19px;max-width:56ch;margin:0 auto 40px }
.ha-landing .foot-cta .actions { display:flex;gap:18px;justify-content:center;flex-wrap:wrap }


.ha-landing .footer { background:var(--navy-deep);padding:60px 0 50px;border-top:1px solid rgba(255,255,255,.08) }
.ha-landing .footer-top { display:flex;justify-content:space-between;align-items:flex-start;gap:40px;flex-wrap:wrap;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.08) }
.ha-landing .footer-logo { height:54px;margin-bottom:18px }
.ha-landing .footer-brand p { color:var(--txt-on-dark-dim);font-size:15px;max-width:40ch;line-height:1.6 }
.ha-landing .footer-cols { display:flex;gap:clamp(40px,6vw,90px);flex-wrap:wrap }
.ha-landing .fcol h5 { font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:18px }
.ha-landing .fcol a { display:block;color:var(--txt-on-dark);font-size:15px;margin-bottom:12px;transition:color .3s }
.ha-landing .fcol a:hover { color:#fff }
.ha-landing .footer-bottom { padding-top:30px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:13px;color:var(--txt-on-dark-dim);letter-spacing:.04em }


/* ============================================================
   SCROLL REVEAL
   ============================================================ */
.ha-landing .reveal { opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease),transform .9s var(--ease) }
.ha-landing .reveal.in { opacity:1;transform:none }
.ha-landing .reveal.d1 { transition-delay:.08s }
.ha-landing .reveal.d2 { transition-delay:.16s }
.ha-landing .reveal.d3 { transition-delay:.24s }
.ha-landing .reveal.d4 { transition-delay:.32s }
@media(prefers-reduced-motion:reduce) {
  .ha-landing .reveal { opacity:1;transform:none;transition:none }
  .ha-landing .scroll-cue .line { animation:none }
}

/* ============================================================
   KADENCE NATIVE ADAPTATIONS (not in original design)
   Hero overlay re-pointed from .hero-media to the .hero row,
   since the Kadence Row Layout carries the background image.
   ============================================================ */
.ha-landing .hero::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(ellipse 75% 65% at 50% 45%,rgba(6,16,29,.32) 0%,rgba(6,16,29,.62) 70%,rgba(6,16,29,.8) 100%),
    linear-gradient(180deg,rgba(6,16,29,.5) 0%,rgba(6,16,29,.15) 30%,rgba(6,16,29,.7) 78%,rgba(6,16,29,.96) 100%);
}
.ha-landing .hero > .kt-row-column-wrap{position:relative;z-index:2;}

/* Center the width-constrained hero headline + subhead in the native
   Kadence build (design relied on a flex parent we no longer have). */
.ha-landing .hero h1{margin-left:auto;margin-right:auto;}
.ha-landing .hero-sub{margin-left:auto;margin-right:auto;}

/* --- Hero / Kadence row reconciliation (added after first render) --- */
/* Don't let the design's .hero flex override Kadence's row grid layout.
   Kadence handles vertical centering (valign middle + align-content:center
   + min-height:100vh on .kt-row-column-wrap). We keep .hero only for the
   overlay (::after) and as the positioning context. */
.ha-landing .hero{display:block;}
/* Anchor the absolutely-positioned .scroll-cue to the full-height row
   wrapper instead of the shorter content column. */
.ha-landing .hero .wp-block-kadence-column,
.ha-landing .hero .kt-inside-inner-col{position:static;}

/* Kadence sets h1{color:var(--global-palette3)} directly, which beats the
   inherited white from .hero. Restore the design's white hero headline. */
.ha-landing .hero h1{color:#fff;}

/* ============================================================
   FULL-BLEED PAGE: strip Kadence's boxed content container so
   every section background runs edge-to-edge. Scoped to this
   page only via .ha-landing. Inner content stays constrained
   by each row's .kt-row-column-wrap (max-width:1280px).
   ============================================================ */
.ha-landing .content-area{margin-top:0;margin-bottom:0;}
.ha-landing .content-container.site-container{max-width:none;padding-left:0;padding-right:0;}
.ha-landing #main.site-main,
.ha-landing .content-wrap,
.ha-landing .entry.single-entry{max-width:none;}
.ha-landing .entry-content-wrap{padding:0;}
@media all and (max-width:1024px){.ha-landing .entry-content-wrap{padding:0;}}
@media all and (max-width:767px){.ha-landing .entry-content-wrap{padding:0;}}
.ha-landing .entry.single-entry{box-shadow:none;}

/* Kadence forces display:block on Advanced Headings, which collapses the
   .eyebrow ::before gold dash (an inline pseudo can't size a 34px line).
   Restore inline-flex for eyebrows built as native Advanced Heading blocks. */
.ha-landing .eyebrow.wp-block-kadence-advancedheading{display:inline-flex;}

/* Kadence's display:block uses a [data-kb-block] selector that ties our
   specificity and wins on source order, killing the eyebrow dash on NATIVE
   Advanced Headings. !important settles it for all native eyebrows. */
.ha-landing .eyebrow.wp-block-kadence-advancedheading{display:inline-flex !important;}

/* Kadence sets h2/h3 color dark directly, beating inherited white on dark
   sections. Default .sec-title to white; .bg-ivory override (higher
   specificity) keeps ivory-section titles dark. Covers all dark sections. */
.ha-landing .sec-title{color:#fff;}

/* Align native Kadence section rows with the Custom-HTML sections: the design's
   .wrap adds horizontal --pad-x, but Kadence's content width has none. Add the
   same inset to TOP-LEVEL section rows only (not nested rows) so every section's
   content box lines up. */
.ha-landing .entry-content > .wp-block-kadence-rowlayout > .kt-row-column-wrap{
  padding-left:var(--pad-x);
  padding-right:var(--pad-x);
}

/* HTML section titles pick up Kadence/theme's default h2 top margin (~1.5em),
   blowing out the eyebrow-to-title gap. Restore the design's reset. */
.ha-landing .sec-head .sec-title{margin-top:0;}
/* .ext h4 is the one dark-card heading the design left to inheritance, so
   Kadence's dark h4 color wins on navy. Force white like the other cards. */
.ha-landing .ext h4{color:#fff;}

/* ---------- Mobile burger menu (< 980px) ---------- */
@media(max-width:980px){
  /* slide-down panel: reveal the hidden links when .nav-open is set */
  .ha-landing .nav.nav-open .nav-links{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:22px;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    padding:26px var(--pad-x) 34px;
    background:rgba(7,16,29,.97);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    border-bottom:1px solid rgba(201,169,110,.18);
  }
  .ha-landing .nav.nav-open .nav-links a{font-size:14px;}
  /* burger → X */
  .ha-landing .nav-burger span{transition:transform .3s var(--ease),opacity .3s var(--ease);}
  .ha-landing .nav.nav-open .nav-burger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .ha-landing .nav.nav-open .nav-burger span:nth-child(2){opacity:0;}
  .ha-landing .nav.nav-open .nav-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  /* tighten the CTA so logo + Book a Call + burger fit the bar */
  .ha-landing .nav .nav-cta{padding:9px 16px;font-size:11px;}
  /* lock background scroll while menu is open */
  body.nav-locked{overflow:hidden;}
}
@media(max-width:480px){
  /* very narrow: drop the CTA from the bar, it's reachable via the footer */
  .ha-landing .nav .nav-cta{display:none;}
}

/* ---------- Nav polish ---------- */
/* 1. <img> is inline by default → it aligns to the text baseline and rides
   up above the links. Make it a block so flex align-items:center centers it. */
.ha-landing .nav-logo{display:block;}
/* 2. Give the bar real breathing room so the logo isn't glued to the top edge. */
.ha-landing .nav{padding-top:28px;padding-bottom:28px;align-items:center;}
.ha-landing .nav.scrolled{padding-top:16px;padding-bottom:16px;}
/* 3. Kill any inherited line-height that throws off vertical centering. */
.ha-landing .nav-links{line-height:1;}
.ha-landing .nav-links a,
.ha-landing .nav-cta{line-height:1;display:inline-flex;align-items:center;}

/* ---------- Centered eyebrow ---------- */
/* The base eyebrow is inline-flex (dashes hug the text), which leaves it
   wherever the container's text-align lands it — left, in the Kadence hero
   column. For the .center variant make it a full-width flex centered on the
   row so the dash–text–dash group is truly centered. Beats Kadence's
   [data-kb-block] display:block on Advanced Headings. */
.ha-landing .eyebrow.center,
.ha-landing .eyebrow.center.wp-block-kadence-advancedheading{
  display:flex !important;
  justify-content:center;
  width:100%;
}

/* The sample-questions heading has no top margin in the design (only a 22px
   eyebrow gap), but Kadence's default h3 top margin stacks on top. Reset it. */
.ha-landing .sample-q-head h3{margin-top:0;}
