/* =========================================================================
   Open Ice Initiative: NX camp pages (camps hub, camp pages, report, archive)
   Extends nx.css. Linked after nx.css on the camp pages only.
   ========================================================================= */

/* hero lead sits indented, like the programme pages */
.nxc-hero .nx-h1{max-width:14ch}
.nxc-hero .nx-lead b{color:var(--nx-ink)}
.nxc-hero .nx-hero-body .nx-tag{margin-bottom:16px}

/* full bleed photo: a touch taller on camp pages */
.nxc-media{aspect-ratio:21/9}
@media (max-width:700px){.nxc-media{aspect-ratio:4/3}}

/* section head used across the camp pages */
.nxc-head{display:grid;grid-template-columns:1fr 4fr;gap:16px 24px;align-items:start;margin-bottom:clamp(26px,3vw,40px)}
.nxc-head>div{max-width:820px}
.nxc-head .nx-h2+p{margin-top:14px;font-size:17px;line-height:1.6;color:var(--nx-ink2)}
.nxc-head .nx-h2+p b{color:var(--nx-ink)}
@media (max-width:860px){.nxc-head{grid-template-columns:1fr}}

/* key facts grid */
.nxc-keys{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;border-top:1px solid var(--nx-line2);border-left:1px solid var(--nx-line2)}
.nxc-keys.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.nxc-keys>div{padding:20px 20px 22px;border-right:1px solid var(--nx-line2);border-bottom:1px solid var(--nx-line2);min-width:0}
.nxc-keys dt{font-size:11.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--nx-ink3)}
.nxc-keys dt::before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--nx-red);margin-right:8px;vertical-align:1px}
.nxc-keys dd{margin:12px 0 0;font-family:var(--nx-disp);font-size:clamp(20px,1.9vw,27px);line-height:1.08;color:var(--nx-ink);overflow-wrap:break-word}
.nxc-keys dd span{display:block;margin-top:9px;font-family:var(--nx-body);font-size:13.5px;line-height:1.45;font-weight:600;color:var(--nx-ink2);overflow-wrap:normal}
.nx-band .nxc-keys,.nx-band .nxc-keys>div{border-color:rgba(255,255,255,.25)}
.nx-band .nxc-keys dt{color:rgba(255,255,255,.72)}
.nx-band .nxc-keys dd span{color:rgba(255,255,255,.84)}
@media (max-width:1000px){.nxc-keys,.nxc-keys.c3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:420px){.nxc-keys>div{padding:16px 14px 18px}.nxc-keys dd{font-size:18px}}

/* story block: photo in the left half, text in the right half */
.nxc-story{display:grid;grid-template-columns:1fr 1fr;gap:28px 56px;align-items:start}
.nxc-story .nx-shot{aspect-ratio:4/5;overflow:hidden;position:sticky;top:110px}
.nxc-story .nx-shot img{width:100%;height:100%;object-fit:cover;display:block}
.nxc-story figure{margin:0}
.nxc-story figcaption,.nxc-cap{margin-top:10px;font-size:12.5px;color:var(--nx-ink3);font-weight:600}
.nxc-story .nx-h2{margin:14px 0 18px}
.nxc-story .nx-prose p{font-size:16.5px}
@media (max-width:860px){.nxc-story{grid-template-columns:1fr}.nxc-story .nx-shot{aspect-ratio:3/2;position:static}}

/* countdown */
.nxc-cd{display:flex;flex-wrap:wrap;align-items:flex-end;gap:18px 34px;margin-top:30px}
.nxc-cd-u{display:flex;flex-direction:column;gap:6px;min-width:84px}
.nxc-cd-u b{font-family:var(--nx-disp);font-weight:400;font-size:clamp(54px,8vw,120px);line-height:.9;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--nx-ink)}
.nxc-cd-u span{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--nx-ink2)}
.nxc-cd-sep{width:1px;align-self:stretch;background:var(--nx-line2)}
.nxc-cd.sm{gap:14px 22px;margin-top:22px}
.nxc-cd.sm .nxc-cd-u{min-width:60px}
.nxc-cd.sm .nxc-cd-u b{font-size:clamp(40px,4.4vw,60px)}
.nxc-cd.sm .nxc-cd-u span{color:var(--nx-ink3)}
.nxc-cd.sm .nxc-cd-sep{background:var(--nx-line2)}
.cdown-now .nxc-cd-u b{opacity:.5}
@media (max-width:520px){.nxc-cd{gap:14px 18px}.nxc-cd-u{min-width:0}}

/* upcoming feature (camps hub) */
.nxc-up{display:grid;grid-template-columns:1.1fr 1fr;gap:28px 56px;align-items:center}
.nxc-up .nx-shot{aspect-ratio:4/3;overflow:hidden}
.nxc-up .nx-shot img{width:100%;height:100%;object-fit:cover;display:block}
.nxc-up h3{font-family:var(--nx-disp);font-weight:400;text-transform:uppercase;font-size:clamp(28px,3.4vw,48px);line-height:1;margin:16px 0 14px}
.nxc-up p{color:var(--nx-ink2);line-height:1.65;font-size:16px}
.nxc-up p b{color:var(--nx-ink)}
@media (max-width:860px){.nxc-up{grid-template-columns:1fr}}

/* tiles: facts list, lists, static tiles */
.nx-tiles.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.nx-tiles.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:1000px){.nx-tiles.c3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.nx-tiles.c3,.nx-tiles.c2{grid-template-columns:1fr}}
div.nx-tile:hover{background:transparent}
.nx-tile .nx-tag{align-self:flex-start}
.nx-tile p b{color:var(--nx-ink)}
.nx-tile .nx-prose ul{margin-top:4px}
.nx-tile .nx-prose li{font-size:14px}
.nxc-meta{margin:2px 0 0;display:grid;gap:8px}
.nxc-meta>div{display:grid;grid-template-columns:76px 1fr;gap:10px;font-size:13.5px;line-height:1.45;padding-top:8px;border-top:1px solid var(--nx-line)}
.nxc-meta dt{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--nx-ink3);padding-top:2px}
.nxc-meta dd{margin:0;color:var(--nx-ink);font-weight:600}
.nxc-k{font-size:11.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--nxc-acc)}

/* link row under a section */
.nxc-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}

/* people and rinks: bordered grid of cards (uses .nx-contact base) */
.nxc-grid>div .nxc-role,.nxc-grid>a .nxc-role{font-size:11.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--nxc-acc)}
.nxc-grid p b{color:var(--nx-ink)}
.nxc-grid .addr{color:var(--nx-ink);font-weight:600}
.nxc-grid .nx-tag.ol{background:transparent;border:1px solid var(--nx-line2);color:var(--nx-ink2)}
.nxc-grid>div>.nx-tag,.nxc-grid>a>.nx-tag{align-self:flex-start}
.nxc-grid.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.nxc-grid.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1000px){.nxc-grid.c3,.nxc-grid.c4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.nxc-grid.c3,.nxc-grid.c4{grid-template-columns:1fr}}

/* timeline panes with a photo */
.nxc-tl .nx-tl-panes{min-height:0}
.nxc-pane{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:24px 48px;align-items:start}
.nxc-pane.noimg{grid-template-columns:minmax(0,1fr)}
.nxc-pane .nx-tag{margin-top:12px}
.nxc-pane .nx-h3{font-size:clamp(24px,2.4vw,32px)!important;margin-top:14px!important}
.nxc-pane .nx-prose{margin-top:14px}
.nxc-pane .nx-prose p{max-width:none;margin-top:0}
.nxc-pane figure{margin:0}
.nxc-pane .nx-shot{aspect-ratio:3/2;overflow:hidden}
.nxc-pane .nx-shot img{width:100%;height:100%;object-fit:cover;display:block}
.nxc-tl .nx-tl-bar button[aria-selected=true]{font-size:clamp(20px,2.2vw,28px)}
@media (max-width:860px){.nxc-pane{grid-template-columns:1fr}}

/* steps: times above titles */
.nxc-steps .nx-step h3 small{display:block;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.7);margin-bottom:4px}
.nxc-steps.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
.nxc-steps .nx-step p a{text-decoration:underline;text-underline-offset:3px}
@media (max-width:1000px){.nxc-steps.c4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.nxc-steps.c4{grid-template-columns:1fr}}
.nx-band .nxc-after{margin-top:34px;padding-top:24px;border-top:1px solid rgba(255,255,255,.25);max-width:820px}
.nx-band .nxc-after p{color:rgba(255,255,255,.86);line-height:1.65}
.nx-band .nxc-after a{text-decoration:underline;text-underline-offset:3px}

/* quotes in the band */
.nxc-quotes .nx-quote blockquote p{font-size:clamp(18px,1.7vw,24px)}
.nxc-quotes .nx-quote .nx-shot{aspect-ratio:4/3}
.nxc-quotes .nx-car-ctl{color:#fff}

/* partner logo cards with a line about what they gave */
.nxc-logos{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.nxc-logos a{justify-content:flex-start;align-items:stretch;text-align:left;padding:0;min-height:0}
.nxc-logos .lg{display:grid;place-items:center;height:118px;padding:16px 18px;border-bottom:1px solid #e3e7ec}
.nxc-logos .lg img{max-height:72px}
.nxc-logos .tx{display:flex;flex-direction:column;gap:5px;padding:14px 16px 16px;flex:1}
.nxc-logos .tx em{font-style:normal;font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--nx-red)}
.nxc-logos .tx b{font-size:15.5px;font-weight:800;color:var(--nx-dark);line-height:1.2}
.nxc-logos .tx span{font-size:13px;line-height:1.5;color:#4a5160}
.nxc-note{margin-top:20px;font-size:14.5px;line-height:1.65;color:var(--nx-ink2);max-width:820px}
.nxc-note a{text-decoration:underline;text-underline-offset:3px}
.nxc-note b{color:var(--nx-ink)}
@media (max-width:560px){.nxc-logos{grid-template-columns:1fr 1fr}.nxc-logos .lg{height:92px}}

/* white cards that are not links */
div.nx-card:hover{transform:none;box-shadow:none}

/* photo strip with captions */
.nxc-strip{grid-auto-columns:minmax(260px,1fr)}
.nxc-strip figure{aspect-ratio:auto}
.nxc-strip figure picture{display:block;aspect-ratio:1/1;overflow:hidden}
.nxc-strip figcaption{margin-top:8px;font-size:12.5px;line-height:1.4;color:var(--nx-ink3);font-weight:600}
@media (max-width:600px){.nxc-strip{grid-auto-columns:78%}}
.nxc-strip-wrap{max-width:var(--nx-max);margin:0 auto}

/* schedule list (time and what happens) */
.nxc-sched{list-style:none;margin:0;padding:0;border-top:1px solid var(--nx-line2)}
.nxc-sched li{display:grid;grid-template-columns:1fr 4fr;gap:6px 24px;padding:16px 0;border-bottom:1px solid var(--nx-line2);align-items:baseline}
.nxc-sched .t{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--nxc-acc)}
.nxc-sched .w{font-size:16px;line-height:1.6;color:var(--nx-ink2)}
.nxc-sched .w b{color:var(--nx-ink)}
@media (max-width:640px){.nxc-sched li{grid-template-columns:1fr}}

/* tables in the curriculum section */
.nxc-table-wrap{margin-top:22px;overflow-x:auto}
.nxc-table-wrap .nx-table td b{color:var(--nx-ink)}
.nxc-table-wrap .nx-table td{color:var(--nx-ink2)}
@media (max-width:640px){
  .nxc-table-wrap .nx-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .nxc-table-wrap .nx-table tr{display:block;padding:12px 0;border-bottom:1px solid var(--nx-line2)}
  .nxc-table-wrap .nx-table td{display:block;border:0;padding:3px 0}
  .nxc-table-wrap .nx-table td::before{content:attr(data-label);display:block;font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--nx-ink3)}
}

/* call to action cards */
.nxc-cta .nx-contact b{font-size:20px}
.nxc-cta .nx-contact p b{font-size:inherit;color:var(--nx-ink)}
.nxc-cta .nx-contact .go{color:var(--nx-ink)}
.nxc-cta .nx-contact .go::after{content:' \2192'}
.nxc-cta .nx-contact>a{min-height:200px}
.nxc-fine{font-size:13px;line-height:1.6;color:var(--nx-ink3);max-width:820px}
.nxc-fine a{text-decoration:underline}

/* figure references inside prose (numbers page links) */
.nx-prose a.figref{text-decoration:underline dotted;text-underline-offset:4px;color:var(--nx-ink);font-weight:700}
.nx-prose abbr.figmark{text-decoration:none;font-size:.82em;color:var(--nx-ink3)}

/* scroll anchors clear the sticky header */
#how-it-works,#past,#past-camps,#cd-anchor{scroll-margin-top:120px}

/* site.css has a generic .cards grid; the NX carousel must not inherit it */
.nx-car.cards{display:block;margin-top:0;column-gap:0;row-gap:0}
.nx-car.cards>*{min-width:0}
.nx-band .nxc-quotes{border-top:0;margin-top:6px}
@media (max-width:640px){.nxc-cta .nx-contact>a{min-height:0}}
body.nx .nx-btn-w{color:var(--nx-dark)}
.nx-band .nxc-after .nx-btns a{text-decoration:none}
.nxc-steps.c5{grid-template-columns:repeat(5,minmax(0,1fr));gap:28px 28px}
@media (max-width:1100px){.nxc-steps.c5{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.nxc-steps.c5{grid-template-columns:1fr}}
.nxc-cta .nxc-fine{margin-top:34px}
.nx-band .nx-step .nx-prose p,.nx-band .nx-step .nx-prose li{font-size:14.5px;color:rgba(255,255,255,.84)}
.nx-band .nx-step .nx-prose li::before{background:#fff}
.nxc-grid p b{font-size:inherit;font-weight:800}
@media (min-width:1001px){.nx-car.cards .nx-car-track{grid-auto-columns:calc((100% - 48px) / 4)}}
@media (min-width:601px) and (max-width:1000px){.nx-car.cards .nx-car-track{grid-auto-columns:calc((100% - 16px) / 2)}}
@media (max-width:480px){.nxc-keys,.nxc-keys.c3{grid-template-columns:1fr}.nxc-keys>div{display:grid;grid-template-columns:96px 1fr;gap:4px 14px;padding:14px 14px 16px}.nxc-keys dd{margin-top:0;font-size:19px}.nxc-keys dt{padding-top:4px}}
/* timeline inside a navy band */
.nx-band .nx-tl-bar::after{background:rgba(255,255,255,.3)}
.nx-band .nx-tl-bar button{color:rgba(255,255,255,.8)}
.nx-band .nx-tl-bar button[aria-selected=true]{color:#fff}
.nx-band .nx-tl-pane p,.nx-band .nxc-pane .nx-prose p{color:rgba(255,255,255,.88)}
.nx-band .nx-eyebrow{color:rgba(255,255,255,.8)}
.nxc-band-tl .nx-tl-panes{min-height:130px}
@media (max-width:420px){.nx-stat b{font-size:34px}}
@media (max-width:480px){.nxc-keys>div{grid-template-columns:116px 1fr}.nxc-keys dt{letter-spacing:.1em;font-size:10.5px}}

/* ===== Round 2: theme tokens, accent, spacing ===== */
body.nx{--nxc-acc:#AEB3EE}
html[data-theme="light"] body.nx{--nxc-acc:#3B3E72}
.nx-band{--nxc-acc:rgba(255,255,255,.8)}
/* partner list under the puck carousel */
.nxc-gave-list .w a{color:var(--nx-ink);text-decoration:underline;text-decoration-color:var(--nx-line2);text-underline-offset:4px}
.nxc-gave-list .w a:hover{text-decoration-color:currentColor}
.nxc-gave .nxc-note{margin-top:28px}
/* photo strip: a full grid on wide screens (no half-cut photos or captions), swipe row on phones */
@media (min-width:861px){
  .nxc-strip{grid-auto-flow:row;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible;gap:28px 14px}
  .nxc-strip:has(>figure:nth-child(6):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}
}
/* puck carousel sits on the NX grid */
body.nx .pucks .outer{padding:0 var(--nx-pad)}
body.nx .pucks .wrap{max-width:var(--nx-max)}
body.nx .pucks .pk-head .eyebrow{color:rgba(255,255,255,.8)}
/* card tags hug their text */
.nx-card-b .nx-tag{align-self:flex-start}
/* premium spacing on the camp pages */
body.nx main .nx-sec{padding:clamp(56px,7vw,112px) 0}
.nxc-head{margin-bottom:clamp(32px,3.6vw,52px)}
.nxc-head .nx-h2+p{max-width:62ch}
.nxc-sched li{padding:20px 0}
.nx-tile{padding:28px 26px 26px}
.nxc-grid>div,.nxc-grid>a{padding:26px 24px}
.nx-band-head p{line-height:1.6;max-width:56ch}
@media (max-width:640px){.nx-tile{padding:22px 18px}.nxc-grid>div,.nxc-grid>a{padding:20px 18px}}
/* timeline tabs: wrap into chips on narrow screens so no date label is cut off */
@media (max-width:900px){
  main .nx-tl-bar{flex-wrap:wrap;justify-content:flex-start;overflow:visible;gap:8px;padding-bottom:0}
  main .nx-tl-bar::after,main .nx-tl-bar button::after{display:none}
  main .nx-tl-bar button,main .nxc-tl .nx-tl-bar button{padding:10px 14px;border:1px solid var(--nx-line2);font-size:13px;line-height:1.2}
  main .nx-tl-bar button[aria-selected=true],main .nxc-tl .nx-tl-bar button[aria-selected=true]{font-family:var(--nx-body);font-size:13px;background:var(--nx-ink);color:var(--nx-bg);border-color:var(--nx-ink)}
  .nx-band .nx-tl-bar button{border-color:rgba(255,255,255,.4)}
  .nx-band .nx-tl-bar button[aria-selected=true]{background:#fff;color:var(--nx-navy)}
}
@media (max-width:640px){
  .nxc-table-wrap .nx-table tr{padding:16px 0}
  .nxc-table-wrap .nx-table td{display:grid;grid-template-columns:108px minmax(0,1fr);gap:12px;padding:5px 0;line-height:1.5}
  .nxc-table-wrap .nx-table td::before{padding-top:3px;line-height:1.4}
  .nxc-table-wrap .nx-table td:first-child{padding-bottom:8px}
}
@media (min-width:861px){.nx-wrap .nxc-strip{padding:0}}
@media (max-width:860px){.nx-wrap .nxc-strip{margin:0 calc(-1 * var(--nx-pad))}}
body.nx .pucks .wrap{max-width:calc(var(--nx-max) - 2 * var(--nx-pad))}
.nx-band .nx-tl-bar button[aria-selected=true]::after{background:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.25)}
