/* ============================================================
   /destinations/new-zealand/ — "The Harbour Edit"
   Feature-showcase editorial. Built from scratch on the brand
   palette and Plus Jakarta Sans only; no theme components are
   used or extended. Mineral-white broadsheet canvas, full-bleed
   cover, escaping asymmetric composition, outline numerals, a
   3x3 full-bleed service gallery wall, a UK-led destination
   board.

   Static-only: no JS, no transitions, no animation, no
   hover/focus/active visual change, no sticky or scroll effects.

   SPECIFICITY NOTE — theme.css resets are element-qualified
   (`img{...}`, `a{...}`, `h1,h2{...}`) at (0,0,1)/(0,1,1). Every
   rule below is written `.nz .nz-thing` (0,2,0) so a single-class
   rule always wins. Do not shorten them to one class.
   ============================================================ */

.nz{
  --indigo:#120F64;
  --indigo-3:#06052F;
  --ink:#12102E;
  --gold:#CEA800;
  --gold-deep:#8C7104;
  --yellow:#FFE100;
  --paper:#FAFAF7;
  --paper-2:#F1EFE6;
  --copy:#4C4866;
  --muted:#847FA0;
  --line:#E1DDCC;
  --line-2:#CFC9B2;

  --gut:clamp(20px,5vw,72px);
  --edge:calc(max((100vw - 1400px)/2, 0px) + var(--gut));

  background:var(--paper);
  color:var(--copy);
  font-family:var(--font-body);
  display:block;
  overflow-x:clip;
  font-size:16px;
  line-height:1.66;
}
.nz *{box-sizing:border-box}
.nz img{display:block;max-width:100%;border-radius:0}
.nz h1,.nz h2,.nz h3,.nz h4{font-family:var(--font-display);color:var(--indigo);font-weight:800;letter-spacing:-.04em;line-height:1.02;margin:0}
.nz p{margin:0}
.nz a{color:inherit;text-decoration:none}
.nz ul,.nz ol{list-style:none;margin:0;padding:0}
.nz figure{margin:0}

/* ── rhythm & utilities ── */
.nz .nz-wrap{max-width:1400px;margin:0 auto;padding:0 var(--gut)}
.nz .nz-full{position:relative;width:100vw;left:50%;transform:translateX(-50%)}
.nz .nz-sec{padding-block:clamp(66px,9.5vw,150px)}
.nz .nz-kick{font-family:var(--font-ui);font-size:.7rem;font-weight:800;letter-spacing:.34em;text-transform:uppercase;color:var(--gold-deep);display:inline-flex;align-items:center;gap:14px;line-height:1}
.nz .nz-kick::before{content:"";width:30px;height:1px;background:var(--gold);display:inline-block;flex:none}
.nz .nz-kick--light{color:var(--yellow)}
.nz .nz-kick--light::before{background:var(--yellow)}
.nz .nz-em{font-style:italic;color:var(--gold);font-weight:800}
.nz .nz-em-y{font-style:italic;color:var(--yellow);font-weight:800}
.nz .nz-d1{font-size:clamp(2.05rem,5.9vw,5.1rem)}
.nz .nz-d2{font-size:clamp(2.2rem,4.9vw,3.9rem)}
.nz .nz-d3{font-size:clamp(1.55rem,2.5vw,2.1rem);letter-spacing:-.03em}
.nz .nz-lede{font-size:clamp(1.06rem,1.5vw,1.32rem);line-height:1.5;color:var(--ink);font-weight:500;letter-spacing:-.008em}
.nz .nz-p{font-size:1.005rem;line-height:1.72;color:var(--copy)}
.nz .nz-p + .nz-p{margin-top:18px}
.nz .nz-cap{font-family:var(--font-ui);font-size:.64rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.nz .nz-rule{height:1px;background:var(--line);border:0;margin:0}

/* ── buttons (colour only; shape comes from theme.css) ── */
.nz .nz-btn--gold{background:var(--yellow);color:var(--indigo)}
.nz .nz-btn--ghost{border-color:rgba(255,255,255,.45);color:#FFFFFF;background:transparent}
.nz .nz-more{font-family:var(--font-ui);font-size:.76rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--indigo);display:inline-flex;align-items:center;gap:9px}

/* ══════════ 1 · COVER ══════════ */
/* min-height, not height: the cover grows with the copy instead of clipping it */
.nz .nz-cover{position:relative;min-height:clamp(560px,90vh,900px);display:flex;overflow:hidden;background:var(--indigo-3)}
.nz .nz-cover-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 42%}
.nz .nz-cover-scrim{position:absolute;inset:0;z-index:1;background:
  linear-gradient(180deg,rgba(6,5,47,.62) 0%,rgba(6,5,47,.10) 22%,rgba(6,5,47,.14) 42%,rgba(6,5,47,.66) 78%,rgba(6,5,47,.93) 100%),
  linear-gradient(96deg,rgba(6,5,47,.80) 0%,rgba(6,5,47,.62) 26%,rgba(6,5,47,.20) 54%,rgba(6,5,47,0) 74%)}
.nz .nz-cover-in{position:relative;flex:1 1 auto;z-index:2;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(22px,3.4vw,44px) var(--gut) 0}
.nz .nz-mast{display:flex;justify-content:space-between;align-items:baseline;gap:24px;border-bottom:1px solid rgba(255,255,255,.32);padding-bottom:15px}
.nz .nz-mast .ml{font-family:var(--font-ui);font-size:.68rem;font-weight:800;letter-spacing:.34em;text-transform:uppercase;color:var(--yellow)}
.nz .nz-mast .mr{font-family:var(--font-ui);font-size:.64rem;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:rgba(255,255,255,.78)}
.nz .nz-cover-body{padding-bottom:clamp(30px,4vw,52px);max-width:1050px}
.nz .nz-cover-body h1{color:#FFFFFF;margin-top:22px;text-shadow:0 2px 40px rgba(4,3,32,.45)}
.nz .nz-cover-body .sub{color:rgba(255,255,255,.90);max-width:640px;margin-top:26px;font-size:clamp(1.02rem,1.35vw,1.2rem);line-height:1.56;font-weight:500}
.nz .nz-cover-btns{margin-top:34px;display:flex;flex-wrap:wrap;gap:12px}
.nz .nz-coverlines{border-top:1px solid rgba(255,255,255,.28);display:grid;grid-template-columns:repeat(4,1fr)}
.nz .nz-coverlines li{padding:20px 22px 26px 0;border-right:1px solid rgba(255,255,255,.18)}
.nz .nz-coverlines li:last-child{border-right:0}
.nz .nz-coverlines .n{display:block;font-family:var(--font-display);font-size:clamp(1.5rem,2.4vw,2.05rem);font-weight:800;color:var(--yellow);letter-spacing:-.04em;line-height:1}
.nz .nz-coverlines .t{display:block;margin-top:9px;font-family:var(--font-ui);font-size:.66rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.76);line-height:1.5}

/* ══════════ 2 · LEDE ══════════ */
.nz .nz-lede-sec{display:grid;grid-template-columns:1.35fr .95fr;gap:clamp(34px,6vw,96px);align-items:start}
.nz .nz-lede-sec .stmt{font-size:clamp(1.85rem,3.9vw,3.15rem);letter-spacing:-.042em;line-height:1.07;color:var(--ink);font-family:var(--font-display);font-weight:800;margin-top:26px}
.nz .nz-lede-side{padding-top:clamp(0px,4vw,68px)}
.nz .nz-lede-side .nz-rule{margin-bottom:24px}
.nz .nz-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}
.nz .nz-tags span{font-family:var(--font-ui);font-size:.66rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--indigo);border:1px solid var(--line-2);padding:9px 13px;line-height:1}

/* ══════════ 3 · ESCAPING COMPOSITION ══════════ */
.nz .nz-escape{position:relative;width:100vw;left:50%;transform:translateX(-50%);padding-left:var(--edge);display:grid;grid-template-columns:minmax(280px,486px) 1fr;align-items:center;gap:0;margin-block:clamp(10px,3vw,40px)}
.nz .nz-escape-copy{background:var(--paper);padding:clamp(34px,3.6vw,58px) clamp(30px,3.4vw,52px) clamp(34px,3.6vw,58px) 0;position:relative;z-index:2}
.nz .nz-escape-copy h2{margin-top:20px}
.nz .nz-escape-copy .nz-p{margin-top:22px}
.nz .nz-escape-fig{position:relative;height:clamp(380px,52vw,640px);margin-left:clamp(-70px,-4vw,-24px);z-index:1}
.nz .nz-escape-fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.nz .nz-escape-tag{position:absolute;z-index:2;right:0;bottom:0;background:var(--yellow);color:var(--indigo);font-family:var(--font-ui);font-size:.64rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;padding:13px 18px;line-height:1}

/* ══════════ 4 · COMPARE — staggered numeral cards ══════════ */
.nz .nz-comp-head{display:grid;grid-template-columns:1fr auto;gap:32px;align-items:end;padding-bottom:30px;border-bottom:2px solid var(--indigo)}
.nz .nz-comp-head h2{margin-top:20px;max-width:16ch}
.nz .nz-comp-head .hint{max-width:34ch;font-size:.95rem;line-height:1.62;color:var(--copy);padding-bottom:6px}
.nz .nz-comp{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(20px,2.4vw,34px);margin-top:clamp(34px,4vw,60px)}
.nz .nz-cc{grid-column:span 2;background:var(--paper);border-top:1px solid var(--line-2);padding-top:22px}
.nz .nz-cc:nth-child(2){margin-top:clamp(0px,4.4vw,64px)}
.nz .nz-cc:nth-child(4){grid-column:span 3;margin-top:clamp(0px,3vw,44px)}
.nz .nz-cc:nth-child(5){grid-column:span 3;margin-top:clamp(0px,6vw,86px)}
.nz .nz-cc-top{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:18px}
.nz .nz-cc-num{font-family:var(--font-display);font-size:clamp(2.2rem,3.4vw,3.1rem);font-weight:800;letter-spacing:-.06em;line-height:.8;color:transparent;-webkit-text-stroke:1.4px var(--gold)}
.nz .nz-cc-fig{position:relative;overflow:hidden;background:var(--paper-2);aspect-ratio:16/11}
.nz .nz-cc-fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.nz .nz-cc h3{font-size:clamp(1.2rem,1.55vw,1.42rem);letter-spacing:-.032em;margin-top:24px;line-height:1.12}
.nz .nz-cc p{font-size:.965rem;line-height:1.68;color:var(--copy);margin-top:13px}
.nz .nz-cc:nth-child(4) .nz-cc-fig,.nz .nz-cc:nth-child(5) .nz-cc-fig{aspect-ratio:16/8}

/* ══════════ 5 · INDIGO BAND ══════════ */
.nz .nz-band{background:var(--indigo);color:rgba(255,255,255,.82);padding-block:clamp(58px,7vw,104px)}
.nz .nz-band-in{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(34px,6vw,90px);align-items:center}
.nz .nz-band q{display:block;quotes:none;font-family:var(--font-display);font-weight:800;color:#FFFFFF;font-size:clamp(1.6rem,3.05vw,2.5rem);letter-spacing:-.04em;line-height:1.1;margin-top:24px}
.nz .nz-band .attr{margin-top:26px;font-family:var(--font-ui);font-size:.68rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.nz .nz-stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.18)}
.nz .nz-stats li{background:var(--indigo);padding:28px 26px 30px}
.nz .nz-stats .n{display:block;font-family:var(--font-display);font-size:clamp(1.9rem,3vw,2.55rem);font-weight:800;color:var(--yellow);letter-spacing:-.05em;line-height:1}
.nz .nz-stats .t{display:block;margin-top:11px;font-size:.87rem;line-height:1.5;color:rgba(255,255,255,.72)}

/* ══════════ 6 · ROUTE ══════════ */
.nz .nz-route{background:var(--paper-2)}
.nz .nz-route-head{max-width:760px}
.nz .nz-route-head h2{margin-top:20px}
.nz .nz-route-head .nz-lede{margin-top:22px}
.nz .nz-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-2);border:1px solid var(--line-2);margin-top:clamp(36px,4.4vw,64px)}
.nz .nz-steps li{background:var(--paper);padding:clamp(26px,2.6vw,38px) clamp(22px,2.2vw,32px) clamp(30px,3vw,44px)}
.nz .nz-steps .s{font-family:var(--font-ui);font-size:.64rem;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-deep)}
.nz .nz-steps h3{font-size:1.18rem;letter-spacing:-.03em;margin-top:20px;line-height:1.16}
.nz .nz-steps p{font-size:.93rem;line-height:1.66;color:var(--copy);margin-top:12px}

/* ══════════ 7 · SERVICE GALLERY WALL ══════════ */
.nz .nz-wall-head{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:end;padding:0 var(--gut) clamp(30px,3.4vw,46px)}
.nz .nz-wall-head h2{margin-top:20px}
.nz .nz-wall-head .nz-more{padding-bottom:8px}
.nz .nz-wall{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-2);border-block:1px solid var(--line-2)}
.nz .nz-tile{position:relative;background:var(--indigo-3);display:block;min-height:clamp(280px,25vw,364px);overflow:hidden}
.nz .nz-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.nz .nz-tile-scrim{position:absolute;inset:0;z-index:1;background:
  linear-gradient(180deg,rgba(6,5,47,.80) 0%,rgba(6,5,47,.34) 26%,rgba(6,5,47,.40) 44%,rgba(6,5,47,.80) 74%,rgba(6,5,47,.95) 100%)}
.nz .nz-tile-in{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(22px,2.2vw,30px)}
.nz .nz-tile .ix{font-family:var(--font-ui);font-size:.64rem;font-weight:800;letter-spacing:.24em;color:var(--yellow)}
.nz .nz-tile h3{color:#FFFFFF;font-size:clamp(1.22rem,1.7vw,1.5rem);letter-spacing:-.033em;line-height:1.1}
.nz .nz-tile p{color:rgba(255,255,255,.82);font-size:.9rem;line-height:1.56;margin-top:11px;max-width:32ch}
.nz .nz-tile .go{margin-top:18px;font-family:var(--font-ui);font-size:.7rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--yellow)}
.nz .nz-tile--cta{background:var(--yellow);display:flex;flex-direction:column;justify-content:space-between;padding:clamp(24px,2.4vw,34px)}
.nz .nz-tile--cta .ix{color:var(--indigo)}
.nz .nz-tile--cta h3{color:var(--indigo);font-size:clamp(1.5rem,2.3vw,2.05rem);letter-spacing:-.042em;line-height:1.05;max-width:11ch}
.nz .nz-tile--cta p{color:rgba(18,15,100,.78);font-size:.92rem;margin-top:14px}
.nz .nz-tile--cta .go{color:var(--indigo)}

/* ══════════ 8 · DESTINATION BOARD ══════════ */
.nz .nz-dest-head{display:grid;grid-template-columns:1fr minmax(260px,420px);gap:34px;align-items:end;padding-bottom:28px;border-bottom:2px solid var(--indigo)}
.nz .nz-dest-head h2{margin-top:20px}
.nz .nz-dest-head .nz-p{padding-bottom:5px}
.nz .nz-board{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(216px,auto);gap:clamp(14px,1.5vw,22px);margin-top:clamp(30px,3.4vw,48px)}
.nz .nz-dc{position:relative;overflow:hidden;background:var(--indigo-3);min-height:216px}
.nz .nz-dc img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.nz .nz-dc-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(6,5,47,.24) 0%,rgba(6,5,47,.10) 26%,rgba(6,5,47,.56) 56%,rgba(6,5,47,.88) 82%,rgba(6,5,47,.96) 100%)}
.nz .nz-dc-in{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(18px,1.8vw,26px)}
.nz .nz-dc h3{color:#FFFFFF;font-size:1.24rem;letter-spacing:-.032em;line-height:1.1}
.nz .nz-dc p{color:rgba(255,255,255,.8);font-size:.85rem;line-height:1.5;margin-top:8px}
.nz .nz-dc--uk{grid-column:span 2;grid-row:span 2}
.nz .nz-dc--uk .nz-dc-scrim{background:
  linear-gradient(180deg,rgba(6,5,47,.66) 0%,rgba(6,5,47,.16) 24%,rgba(6,5,47,.34) 40%,rgba(6,5,47,.82) 66%,rgba(6,5,47,.96) 100%),
  linear-gradient(96deg,rgba(6,5,47,.62) 0%,rgba(6,5,47,.24) 46%,rgba(6,5,47,0) 82%)}
.nz .nz-dc--uk .nz-dc-in{justify-content:space-between;padding:clamp(24px,2.4vw,36px)}
.nz .nz-dc--uk .flag{align-self:flex-start;background:var(--yellow);color:var(--indigo);font-family:var(--font-ui);font-size:.63rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase;padding:11px 15px;line-height:1}
.nz .nz-dc--uk h3{font-size:clamp(1.9rem,3.1vw,2.8rem);letter-spacing:-.045em;line-height:1.02;max-width:13ch}
.nz .nz-dc--uk p{font-size:1rem;line-height:1.6;max-width:44ch;margin-top:14px}
.nz .nz-dc--uk .go{margin-top:20px;font-family:var(--font-ui);font-size:.72rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--yellow)}
.nz .nz-dc--cta{background:var(--indigo);display:flex;flex-direction:column;justify-content:space-between;padding:clamp(20px,2vw,28px)}
.nz .nz-dc--cta .k{font-family:var(--font-ui);font-size:.62rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--yellow)}
.nz .nz-dc--cta h3{font-size:1.5rem;letter-spacing:-.042em;line-height:1.04}
.nz .nz-dc--cta .go{margin-top:14px;font-family:var(--font-ui);font-size:.7rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--yellow)}

/* ══════════ 9 · FAMILY NOTE ══════════ */
.nz .nz-note{display:grid;grid-template-columns:1fr 1.25fr;gap:clamp(30px,5vw,80px);align-items:center}
.nz .nz-note-fig{position:relative;aspect-ratio:5/4;overflow:hidden;background:var(--paper-2)}
.nz .nz-note-fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.nz .nz-note h2{margin-top:20px}
.nz .nz-note .nz-p{margin-top:22px}

/* ══════════ 10 · CLOSE ══════════ */
.nz .nz-close{position:relative;min-height:clamp(440px,58vw,620px);overflow:hidden;background-color:var(--indigo-3);background-image:url("/media/destinations/new-zealand/steps-rising-autumn-canopy.jpg?v=9189a7a2e9");background-size:cover;background-position:50% 46%;background-repeat:no-repeat;display:grid}
.nz .nz-close-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(6,5,47,.93) 0%,rgba(6,5,47,.80) 42%,rgba(6,5,47,.34) 100%)}
.nz .nz-close-in{position:relative;z-index:2;align-self:center;padding-block:clamp(56px,7vw,96px)}
.nz .nz-close h2{color:#FFFFFF;font-size:clamp(2.1rem,4.6vw,3.7rem);margin-top:22px;max-width:16ch}
.nz .nz-close p{color:rgba(255,255,255,.86);max-width:50ch;margin-top:24px;font-size:clamp(1rem,1.3vw,1.15rem);line-height:1.58}
.nz .nz-close .nz-close-btns{margin-top:34px;display:flex;flex-wrap:wrap;gap:12px}
.nz .nz-close .fine{margin-top:30px;max-width:none;font-family:var(--font-ui);font-size:.68rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.55)}

/* ══════════ RESPONSIVE ══════════ */
@media (max-width:1080px){
  .nz .nz-lede-sec{grid-template-columns:1fr}
  .nz .nz-lede-side{padding-top:0}
  .nz .nz-band-in{grid-template-columns:1fr}
  .nz .nz-wall{grid-template-columns:repeat(2,1fr)}
  .nz .nz-board{grid-template-columns:repeat(2,1fr)}
  .nz .nz-dc--uk{grid-column:span 2;grid-row:span 1;min-height:360px}
  .nz .nz-steps{grid-template-columns:1fr 1fr}
  .nz .nz-note{grid-template-columns:1fr}
  .nz .nz-comp{grid-template-columns:repeat(4,1fr)}
  .nz .nz-cc,.nz .nz-cc:nth-child(4),.nz .nz-cc:nth-child(5){grid-column:span 2;margin-top:0}
  .nz .nz-escape{grid-template-columns:1fr;padding-left:0}
  .nz .nz-escape-copy{padding:0 var(--gut) clamp(28px,4vw,40px)}
  .nz .nz-escape-fig{margin-left:0;height:clamp(320px,58vw,480px)}
}
@media (max-width:720px){
  /* the 96deg side-scrim stops helping once the copy is full-width; go vertical */
  .nz .nz-cover-scrim{background:linear-gradient(180deg,rgba(6,5,47,.66) 0%,rgba(6,5,47,.34) 22%,rgba(6,5,47,.54) 50%,rgba(6,5,47,.82) 80%,rgba(6,5,47,.95) 100%)}
  .nz .nz-coverlines{grid-template-columns:1fr 1fr}
  .nz .nz-coverlines li:nth-child(2){border-right:0}
  .nz .nz-comp-head,.nz .nz-dest-head,.nz .nz-wall-head{grid-template-columns:1fr;align-items:start}
  .nz .nz-wall{grid-template-columns:1fr}
  .nz .nz-board{grid-template-columns:1fr}
  .nz .nz-dc--uk{grid-column:span 1}
  .nz .nz-dc--uk .nz-dc-scrim{background:linear-gradient(180deg,rgba(6,5,47,.58) 0%,rgba(6,5,47,.72) 40%,rgba(6,5,47,.90) 78%,rgba(6,5,47,.96) 100%)}
  .nz .nz-comp{grid-template-columns:repeat(2,1fr)}
  .nz .nz-steps{grid-template-columns:1fr}
  .nz .nz-stats{grid-template-columns:1fr}
  .nz .nz-close-scrim{background:linear-gradient(180deg,rgba(6,5,47,.72) 0%,rgba(6,5,47,.90) 60%,rgba(6,5,47,.96) 100%)}
}
