/* ============================================================
   LOCATIONS HUB  (/locations/)
   ============================================================ */

.loc-h2{font-family:var(--display);font-weight:700;letter-spacing:-.02em;line-height:1.04;font-size:clamp(2rem,4.2vw,3.1rem);margin:0}
.loc-kicker{display:inline-flex;align-items:center;gap:8px;font-family:var(--display);font-weight:600;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;color:var(--volt);margin:0 0 14px}
.loc-kicker.kicker-dark{color:var(--volt-deep)}
.loc-flag{font-size:1rem;line-height:1}

/* ---------- HERO ---------- */
.loc-hero{position:relative;background:var(--ink);color:#fff;padding:clamp(120px,16vh,168px) 0 clamp(48px,7vw,72px);overflow:hidden}
.loc-hero-glow{position:absolute;top:-30%;left:50%;transform:translateX(-50%);width:900px;height:640px;background:radial-gradient(ellipse at center,rgba(228,106,44,.22),transparent 62%);pointer-events:none}
.loc-hero-inner{position:relative;max-width:820px}
.loc-eyebrow{display:inline-flex;align-items:center;gap:9px;font-family:var(--display);font-weight:600;text-transform:uppercase;letter-spacing:.16em;font-size:.74rem;color:#cfcfd6;margin:0 0 20px}
.loc-h1{font-family:var(--display);font-weight:700;letter-spacing:-.025em;line-height:1.02;font-size:clamp(2.5rem,6vw,4.4rem);margin:0 0 22px}
.loc-lead{font-size:clamp(1.05rem,1.5vw,1.25rem);line-height:1.6;color:#c4c4cc;max-width:640px;margin:0}

/* ---------- NEW ZEALAND ---------- */
.loc-nz{background:var(--ink);color:#fff;padding:clamp(60px,8vw,110px) 0 clamp(80px,10vw,140px);border-top:1px solid var(--line)}
.loc-sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;margin-bottom:clamp(34px,5vw,54px)}
.loc-sec-note{max-width:420px;color:#a6a6b0;font-size:.98rem;line-height:1.55;margin:0}

.loc-nz-grid{display:grid;grid-template-columns:minmax(300px,380px) 1fr;gap:clamp(32px,5vw,64px);align-items:start}

/* map */
.loc-map{position:sticky;top:96px}
.loc-map svg{width:100%;height:auto;overflow:visible}
.loc-land{fill:rgba(255,255,255,.055);stroke:rgba(255,255,255,.38);stroke-width:1.8;stroke-linejoin:round}
.loc-pin{cursor:pointer}
.pin-hit{fill:transparent}
.pin-dot{fill:var(--volt);transition:fill .2s,r .2s}
.pin-ring{fill:none;stroke:var(--volt);stroke-width:1.4;opacity:.45;transform-box:fill-box;transform-origin:center;animation:pinPulse 2.6s ease-out infinite}
.pin-label{fill:#d3d3da;font-family:var(--display);font-weight:600;font-size:11px;letter-spacing:.01em;dominant-baseline:middle;paint-order:stroke;stroke:var(--ink);stroke-width:3px;transition:fill .2s}
.pin-label-left{text-anchor:end}
.loc-pin:hover .pin-dot,.loc-pin:focus-visible .pin-dot{fill:#fff;r:5.5}
.loc-pin:hover .pin-ring,.loc-pin:focus-visible .pin-ring{opacity:.9}
.loc-pin:hover .pin-label,.loc-pin:focus-visible .pin-label{fill:var(--volt)}
.loc-pin:focus{outline:none}
@keyframes pinPulse{0%{opacity:.5;transform:scale(1)}70%{opacity:0;transform:scale(2.2)}100%{opacity:0;transform:scale(2.2)}}
@media (prefers-reduced-motion:reduce){.pin-ring{animation:none;opacity:.5}}

/* city cards */
.loc-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.loc-card{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--r);padding:20px 20px 18px;transition:border-color .2s,transform .2s,background .2s}
.loc-card:hover{border-color:rgba(228,106,44,.5);transform:translateY(-3px);background:var(--ink-3)}
.loc-card-head{display:flex;flex-direction:column;gap:3px;margin-bottom:14px}
.loc-card-city{font-family:var(--display);font-weight:700;font-size:1.2rem;color:#fff;text-decoration:none;display:inline-flex;align-items:center;gap:7px;transition:color .2s}
.loc-card-city .arr{color:var(--volt);transition:transform .2s}
.loc-card:hover .loc-card-city{color:var(--volt)}
.loc-card:hover .loc-card-city .arr{transform:translateX(3px)}
.loc-region{font-size:.78rem;color:#8a8a94;font-family:var(--display);font-weight:500;text-transform:uppercase;letter-spacing:.08em}
.loc-card-links{display:flex;flex-wrap:wrap;gap:7px}
.loc-card-links a{font-size:.82rem;color:#c4c4cc;text-decoration:none;padding:5px 11px;border:1px solid var(--line);border-radius:999px;transition:color .2s,border-color .2s,background .2s}
.loc-card-links a:hover{color:#fff;border-color:var(--volt);background:rgba(228,106,44,.14)}
.loc-card-more{display:flex;flex-direction:column;justify-content:center;gap:12px;background:transparent;border-style:dashed}
.loc-card-more p{margin:0;color:#a6a6b0;font-size:.92rem;line-height:1.5}
.loc-card-more .loc-card-city{font-size:1.02rem}

/* ---------- INTERNATIONAL ---------- */
.loc-intl{background:var(--paper);color:var(--ink);padding:clamp(70px,9vw,120px) 0}
.loc-intl-inner{max-width:760px}
.loc-intl-lead{font-size:1.08rem;line-height:1.6;color:#41403a;margin:18px 0 30px;max-width:640px}
.loc-countries{list-style:none;margin:0 0 26px;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:14px;max-width:720px}
.loc-countries li{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--line-dark);border-radius:14px;padding:14px 16px;font-family:var(--display);font-weight:600;font-size:1rem;color:var(--ink)}
.loc-country-flag{font-size:1.3rem;line-height:1}
.loc-soon{margin-left:auto;white-space:nowrap;font-size:.66rem;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--muted-paper);background:rgba(10,10,11,.05);border:1px solid var(--line-dark);border-radius:999px;padding:4px 9px}
.loc-countries li>span:not(.loc-country-flag):not(.loc-soon),.loc-countries li{white-space:nowrap}
.loc-intl-cta{margin:0;color:#41403a}
.loc-intl-cta a{color:var(--volt-deep);font-weight:600;text-decoration:underline;text-underline-offset:2px}

/* ---------- CTA ---------- */
.loc-cta{position:relative;background:var(--ink);color:#fff;padding:clamp(80px,10vw,130px) 0;overflow:hidden;text-align:center}
.loc-cta-glow{position:absolute;bottom:-40%;left:50%;transform:translateX(-50%);width:840px;height:560px;background:radial-gradient(ellipse at center,rgba(228,106,44,.2),transparent 62%);pointer-events:none}
.loc-cta-inner{position:relative;max-width:640px;margin:0 auto}
.loc-cta h2{font-family:var(--display);font-weight:700;letter-spacing:-.02em;line-height:1.05;font-size:clamp(2rem,4.5vw,3.2rem);margin:0 0 16px}
.loc-cta p{color:#c4c4cc;font-size:1.08rem;line-height:1.55;margin:0 0 30px}
.loc-cta-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ---------- RESPONSIVE ---------- */
@media (max-width:900px){
  .loc-nz-grid{grid-template-columns:1fr;gap:40px}
  .loc-map{position:static;max-width:340px;margin:0 auto}
  .loc-sec-head{align-items:flex-start}
}
@media (max-width:560px){
  .loc-cards{grid-template-columns:1fr}
  .loc-countries{grid-template-columns:1fr}
}


/* ---------- FAQ ---------- */
.loc-faq{background:var(--paper);color:var(--ink);padding:clamp(80px,11vw,130px) 0}
.loc-faq-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:54px;align-items:start}
.loc-faq-head .loc-faq-kicker{color:var(--volt-deep);font-family:var(--display);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:.8rem;margin:0}
.loc-faq-head h2{font-family:var(--display);font-weight:700;line-height:1.05;letter-spacing:-.02em;font-size:clamp(1.9rem,3.8vw,2.9rem);margin-top:14px}
.loc-faq-note{margin-top:16px;color:#4a4942}
.loc-faq-note a{color:var(--volt-deep);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.loc-faq-list{display:flex;flex-direction:column;gap:12px}
.loc-faq-item{background:#fff;border:1px solid var(--line-dark);border-radius:14px;overflow:hidden}
.loc-faq-item summary{list-style:none;cursor:pointer;padding:20px 24px;font-family:var(--display);font-weight:600;font-size:1.08rem;display:flex;justify-content:space-between;align-items:center;gap:16px}
.loc-faq-item summary::-webkit-details-marker{display:none}
.loc-faq-item summary::after{content:"+";font-family:var(--display);font-weight:600;font-size:1.5rem;color:var(--volt);line-height:1;transition:transform .25s var(--ease)}
.loc-faq-item[open] summary::after{transform:rotate(45deg)}
.loc-faq-body{padding:0 24px 22px}
.loc-faq-body p{color:#4a4942;font-size:1rem;line-height:1.6;margin:0}
.loc-faq-body a{color:var(--volt-deep);font-weight:600;text-decoration:underline;text-underline-offset:3px}
@media(max-width:980px){.loc-faq-grid{grid-template-columns:1fr;gap:30px}}
