/*
 * KPJ x Newsweek "Vote for KPJ" campaign — World's Best Hospitals 2027.
 *
 * Enqueued only on the "KPJ Newsweek Vote" page template. Every class is nw-
 * prefixed and scoped under .nw-page, which template-parts/newsweek/landing.php
 * wraps the campaign in, so nothing here can reach the KPJ chrome or another
 * campaign.
 *
 * Flexo is declared once in the theme's style.css; this file does not repeat it.
 * Image URLs below are relative to THIS file, so assets/newsweek/img/ must stay
 * beside it.
 *
 * Reveal-on-scroll and the FAQ collapse are gated behind .nw-js, a class the
 * template adds from an inline script in <head>. Without JavaScript every
 * section and every FAQ answer is visible.
 */
/* ── Tokens ─────────────────────────────────────────────────────────── */
:root{
  --nw-font:Flexo,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  --nw-taupe:#967f65; --nw-taupe-ink:#6f5c46; --nw-taupe-light:#d5c8b9; --nw-sand:#e9e4de; --nw-wash:#f3f5f7;
  --nw-amber:#fcb11d; --nw-amber-dark:#e8a018;
  --nw-teal:#39b5b2; --nw-teal-deep:#0f6e6b;
  --nw-navy:#1f3d5c; --nw-coral:#f37574; --nw-red:#e0201f;
  --nw-ink:#10111e; --nw-body:#647589; --nw-mid:#606060; --nw-line:#dee2e6;
  --nw-wrap:1200px; --nw-px:clamp(16px,4vw,40px); --nw-py:clamp(48px,7vw,88px);
  --nw-bleed:clamp(540px,54vw,860px); /* hero photo panel width; badge + pills scale from this same clamped value */
  --nw-ease:cubic-bezier(.22,1,.36,1);
}
.nw-page{font-family:var(--nw-font);color:var(--nw-ink);background:#fff;overflow-x:clip;line-height:1.5}
.nw-page *{box-sizing:border-box}
.nw-page img{max-width:100%;display:block}
.nw-page a{color:inherit;text-decoration:none}
.nw-page h1,.nw-page h2,.nw-page h3,.nw-page h4{margin:0;font-family:var(--nw-font);color:var(--nw-ink)}
.nw-page p{margin:0}
.nw-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.nw-in{max-width:var(--nw-wrap);margin:0 auto;padding:0 var(--nw-px)}
.nw-sec{padding:var(--nw-py) 0}
.nw-sec--wash{background:var(--nw-wash)}
.nw-sec--sand{background:var(--nw-sand)}
.nw-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--nw-taupe-ink)}
.nw-eyebrow::before{content:"";width:22px;height:2px;background:var(--nw-amber);border-radius:2px}
.nw-h2{font-size:clamp(26px,3.2vw,36px);font-weight:700;line-height:1.15;letter-spacing:-.01em;margin-top:12px}
.nw-lead{font-size:clamp(15px,1.3vw,17px);color:var(--nw-body);margin-top:14px;max-width:720px}
.nw-head{text-align:center;max-width:760px;margin:0 auto 40px}
.nw-head .nw-lead{margin-left:auto;margin-right:auto}

/* ── Buttons ────────────────────────────────────────────────────────── */
.nw-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 28px;border-radius:14px;font:600 16px/1 var(--nw-font);cursor:pointer;border:2px solid transparent;transition:transform .25s var(--nw-ease),background .2s,color .2s,border-color .2s;white-space:nowrap}
.nw-btn:hover{transform:translateY(-2px)}
.nw-btn:focus-visible{outline:3px solid var(--nw-teal);outline-offset:3px}
.nw-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;flex:none}
.nw-btn--vote{background:var(--nw-amber);color:#1a1200;box-shadow:0 0 0 0 rgba(252,177,29,.55);animation:nwPulse 2.6s infinite}
.nw-btn--vote:hover{background:var(--nw-amber-dark)}
.nw-btn--lg{padding:18px 36px;font-size:18px;border-radius:16px}
.nw-btn--ghost{background:transparent;color:var(--nw-taupe-ink);border-color:var(--nw-taupe)}
.nw-btn--ghost:hover{background:var(--nw-taupe);color:#fff}
.nw-btn--outline-white{background:transparent;color:#fff;border-color:rgba(255,255,255,.75)}
.nw-btn--outline-white:hover{background:#fff;color:var(--nw-taupe-ink)}
@keyframes nwPulse{0%{box-shadow:0 0 0 0 rgba(252,177,29,.55)}70%{box-shadow:0 0 0 14px rgba(252,177,29,0)}100%{box-shadow:0 0 0 0 rgba(252,177,29,0)}}

/* ── Announcement / countdown strip ─────────────────────────────────── */
.nw-strip{background:var(--nw-navy);color:#fff}
.nw-strip .nw-in{display:flex;align-items:center;justify-content:center;gap:10px 22px;flex-wrap:wrap;min-height:48px;padding-top:8px;padding-bottom:8px;font-size:14px}
.nw-strip b{font-weight:700}
.nw-strip .nw-clock{display:inline-flex;align-items:center;gap:8px}
.nw-clock svg{width:16px;height:16px;fill:none;stroke:#fcb11d;stroke-width:2.2;stroke-linecap:round}
.nw-count{display:inline-flex;gap:6px}
.nw-count span{background:rgba(255,255,255,.12);border-radius:6px;padding:3px 8px;font-variant-numeric:tabular-nums;font-weight:700;font-size:13px}
.nw-count span i{font-style:normal;font-weight:400;opacity:.75;font-size:11px;margin-left:3px}
.nw-strip a{color:#fcb11d;font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* ── Hero ───────────────────────────────────────────────────────────── */
.nw-hero{position:relative;overflow:hidden;background:#eef3f4 url("img/hospital-blur.webp") center/cover no-repeat;isolation:isolate}
.nw-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.96) 44%,rgba(255,255,255,.3) 62%,rgba(255,255,255,0) 100%);z-index:0}
.nw-hero canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.9}
.nw-hero .nw-in{position:relative;display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:clamp(20px,3vw,48px);align-items:end;padding-top:clamp(40px,5vw,64px)}
.nw-hero-spacer{position:relative;min-height:560px;align-self:stretch}
.nw-hero-copy{padding-bottom:clamp(40px,6vw,80px);max-width:580px}
.nw-hero-pill{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--nw-line);border-radius:999px;padding:6px 14px 6px 8px;font-size:12px;font-weight:600;color:var(--nw-mid);letter-spacing:.3px}
.nw-hero-pill .nw-stars{background:var(--nw-red);color:#fff;border-radius:999px;padding:3px 8px;font-size:10px;letter-spacing:2px}
.nw-hero h1{font-size:clamp(30px,4.2vw,52px);font-weight:700;line-height:1.08;letter-spacing:-.02em;margin-top:22px;color:var(--nw-taupe-ink)}
.nw-hero h1 .nw-hl{display:inline-block;background:var(--nw-navy);color:#fff;padding:.08em .32em .1em;border-radius:.28em;margin:.12em 0;line-height:1.15}
.nw-hero h1 small{display:block;font-size:.55em;font-weight:500;color:var(--nw-taupe-ink);margin-top:.35em;letter-spacing:0}
.nw-hero p{font-size:clamp(15px,1.3vw,17px);color:#334155;margin-top:20px;max-width:520px}
.nw-hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
.nw-hero-note{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:18px;font-size:13px;color:var(--nw-body)}
.nw-hero-note span{display:inline-flex;align-items:center;gap:6px}
.nw-hero-note svg{width:15px;height:15px;fill:none;stroke:var(--nw-teal-deep);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}

/* Cinematic visual (option E): full-bleed photo panel running to the right edge behind a soft fade,
   badge at the fade edge, glass countdown pill top-right, caption pill bottom-right. Whole panel is a link. */
.nw-hero-visual{position:absolute;top:calc(-1 * clamp(40px,5vw,64px));bottom:0;left:calc(var(--nw-bleed) * -.06);right:calc(-1 * (var(--nw-px) + max(0px,(100vw - var(--nw-wrap)) / 2)) - 24px);display:block} /* 24px slack covers scrollbar width; the hero clips the excess */
/* the photo, badge and pills live in a fixed-width stage that hugs the copy column; only the blurred backdrop bleeds to the viewport edge */
.nw-hero-stage{position:absolute;left:0;top:0;bottom:0;width:calc(var(--nw-bleed) * 1.04);display:block}
.nw-badge,.nw-badge-stars,.nw-badge-title,.nw-badge-year,.nw-badge-pb{display:block}
.nw-hero-bg{position:absolute;inset:0;background:url("img/hospital-blur.webp") center 35%/cover;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22%);mask-image:linear-gradient(90deg,transparent 0,#000 22%)}
.nw-hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.35) 0%,rgba(255,255,255,0) 35%,rgba(31,61,92,.32) 100%)}
.nw-hero-visual img.nw-ppl{position:absolute;left:0;bottom:0;width:100%;height:auto;max-width:none;transform-origin:bottom center;transition:transform .8s var(--nw-ease)}
.nw-hero-visual:hover img.nw-ppl{transform:scale(1.012)}
.nw-badge{position:absolute;left:3%;bottom:calc(var(--nw-bleed) * .062);width:calc(var(--nw-bleed) * .2);background:#fff;border-radius:6px;padding:calc(var(--nw-bleed) * .0116) calc(var(--nw-bleed) * .0116) calc(var(--nw-bleed) * .0141);text-align:center;box-shadow:0 18px 40px rgba(31,61,92,.18);transform:rotate(-2deg);transition:transform .6s var(--nw-ease)}
.nw-hero-visual:hover .nw-badge{transform:rotate(0) translateY(-3px)}
.nw-badge-stars{background:var(--nw-red);color:#fff;letter-spacing:.32em;font-size:calc(var(--nw-bleed) * .0154);padding:calc(var(--nw-bleed) * .0077) 0 calc(var(--nw-bleed) * .0064);border-radius:3px 3px 0 0}
.nw-badge-title{font-size:calc(var(--nw-bleed) * .0283);line-height:1;font-weight:700;color:#111;letter-spacing:-.01em;padding:calc(var(--nw-bleed) * .0141) 2px calc(var(--nw-bleed) * .0064);font-family:Impact,"Arial Narrow Bold",var(--nw-font)}
.nw-badge-year{font-size:calc(var(--nw-bleed) * .0244);font-weight:600;color:#222;padding-bottom:calc(var(--nw-bleed) * .0116)}
.nw-badge-nw{display:block;line-height:0;margin:0 -1px}
.nw-badge-nw img{height:auto;width:100%}
.nw-badge-pb{font-size:calc(var(--nw-bleed) * .009);letter-spacing:2px;text-transform:uppercase;color:#666;margin-top:calc(var(--nw-bleed) * .0103)}
.nw-badge-st{margin:3px auto 0;width:46%;height:auto}
.nw-hero-float,.nw-hero-cap{position:absolute;right:calc(var(--nw-bleed) * .0617);background:rgba(255,255,255,.92);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:16px;box-shadow:0 14px 32px rgba(31,61,92,.14);display:flex;align-items:center;gap:10px;color:var(--nw-ink);font-weight:600;white-space:nowrap}
.nw-hero-float{top:calc(var(--nw-bleed) * .0566);padding:calc(var(--nw-bleed) * .0154) calc(var(--nw-bleed) * .0206);font-size:max(11px,calc(var(--nw-bleed) * .0167))}
.nw-hero-float svg{width:calc(var(--nw-bleed) * .0257);height:calc(var(--nw-bleed) * .0257);fill:none;stroke:var(--nw-red);stroke-width:2.2;stroke-linecap:round;flex:none}
.nw-hero-float b{color:var(--nw-red)}
.nw-hero-float small{display:block;font-size:max(10px,calc(var(--nw-bleed) * .0141));color:var(--nw-body);font-weight:500}
.nw-hero-cap{bottom:calc(var(--nw-bleed) * .0283);padding:calc(var(--nw-bleed) * .0116) calc(var(--nw-bleed) * .018);font-size:max(11px,calc(var(--nw-bleed) * .0154));color:var(--nw-taupe-ink);border-radius:12px;transition:transform .3s var(--nw-ease)}
.nw-hero-cap svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.nw-hero-visual:hover .nw-hero-cap{transform:translateY(-3px);text-decoration:underline;text-underline-offset:3px}

/* ── Why KPJ ────────────────────────────────────────────────────────── */
.nw-why{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,5vw,72px);align-items:center}
.nw-stats{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.nw-stat{background:var(--nw-wash);border-radius:20px;padding:26px 24px;position:relative;overflow:hidden}
.nw-stat::after{content:"";position:absolute;right:-30px;top:-30px;width:110px;height:110px;border-radius:50%;background:var(--nw-sand);opacity:.7}
.nw-stat b{display:block;font-size:clamp(30px,3vw,40px);font-weight:700;color:var(--nw-taupe-ink);line-height:1;letter-spacing:-.02em;position:relative}
.nw-stat b sup{font-size:.55em;vertical-align:baseline;position:relative;top:-.45em}
.nw-stat span{display:block;font-size:13px;color:var(--nw-body);margin-top:8px;position:relative;font-weight:500}
.nw-stat--teal{background:#e7f6f5}.nw-stat--teal b{color:var(--nw-teal-deep)}.nw-stat--teal::after{background:#c9ecea}
.nw-stat--wide{grid-column:1/-1}

/* ── Feature cards ──────────────────────────────────────────────────── */
.nw-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.nw-card{background:#fff;border-radius:24px;overflow:hidden;display:flex;flex-direction:column;transition:transform .35s var(--nw-ease)}
.nw-card:hover{transform:translateY(-6px)}
.nw-card figure{margin:0;aspect-ratio:20/7;overflow:hidden;background:var(--nw-sand)}
/* evidence banner under the cards */
.nw-evidence{position:relative;display:block;margin-top:24px;border-radius:24px;overflow:hidden;isolation:isolate;color:#fff;background:#0f2742 url("img/why-banner.webp") right center/cover no-repeat}
.nw-evidence::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#0f2742 0%,rgba(15,39,66,.95) 30%,rgba(15,39,66,.6) 52%,rgba(15,39,66,0) 76%)}
.nw-evidence-in{max-width:600px;padding:clamp(24px,3vw,38px) clamp(22px,3.4vw,42px)}
.nw-evidence h3{color:#fff;font-size:clamp(22px,2.4vw,30px);font-weight:700;line-height:1.15;letter-spacing:-.01em}
.nw-evidence p{color:rgba(255,255,255,.86);font-size:15px;margin-top:10px;max-width:460px}
.nw-evidence .nw-btn{margin-top:20px;animation:none}
@media (max-width:700px){
  .nw-evidence{background-position:70% center}
  .nw-evidence::before{background:linear-gradient(180deg,rgba(15,39,66,.96) 0%,rgba(15,39,66,.9) 55%,rgba(15,39,66,.62) 100%)}
}
.nw-card figure img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--nw-ease)}
.nw-card:hover figure img{transform:scale(1.05)}
.nw-card-body{padding:24px 26px 28px}
.nw-card-icon{width:44px;height:44px;border-radius:12px;background:var(--nw-sand);display:grid;place-items:center;margin-top:-46px;position:relative;border:3px solid #fff;color:var(--nw-taupe-ink)}
.nw-card-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.nw-card h3{font-size:20px;font-weight:700;margin-top:14px}
.nw-card p{font-size:14.5px;color:var(--nw-body);margin-top:8px}

/* ── Survey explainer ───────────────────────────────────────────────── */
.nw-survey{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:start}
.nw-survey-card{background:#fff;border-radius:24px;padding:clamp(24px,3vw,36px);border:1px solid var(--nw-line)}
.nw-survey-card h3{font-size:20px;font-weight:700;display:flex;align-items:center;gap:10px}
.nw-survey-card h3 svg{width:22px;height:22px;fill:none;stroke:var(--nw-teal-deep);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.nw-survey-card p{font-size:15px;color:var(--nw-body);margin-top:10px}
.nw-list{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:12px}
.nw-list li{position:relative;padding-left:34px;font-size:15px;color:#334155}
.nw-list li::before{content:"";position:absolute;left:0;top:1px;width:22px;height:22px;border-radius:50%;background:var(--nw-teal);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M6 12.5l4 4 8-9'/></svg>");background-size:14px;background-position:center;background-repeat:no-repeat}
.nw-list--amber li::before{background-color:var(--nw-amber)}
.nw-logos-inline{display:flex;align-items:center;gap:18px;margin-top:22px;padding-top:18px;border-top:1px solid var(--nw-line)}
.nw-logos-inline img{height:22px;width:auto}
.nw-logos-inline .nw-x{color:var(--nw-body);font-weight:300;font-size:20px}

/* ── Voting guide (native six-step section) ─────────────────────────── */
.nw-guide-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:-16px 0 40px}
.nw-meta{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--nw-line);border-radius:999px;padding:8px 14px;font-size:13px;font-weight:600;color:var(--nw-mid)}
.nw-meta svg{width:16px;height:16px;fill:none;stroke:var(--nw-teal-deep);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.nw-gsteps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 24px}
.nw-gs{background:#fff;border:1px solid var(--nw-line);border-radius:24px;padding:30px 24px 22px;display:flex;flex-direction:column;position:relative;transition:transform .35s var(--nw-ease)}
.nw-gs:hover{transform:translateY(-4px)}
.nw-gs-num{position:absolute;top:-17px;left:24px;background:var(--nw-taupe);color:#fff;border-radius:999px;padding:7px 14px;font-weight:700;font-size:13px;letter-spacing:1px;line-height:1}
.nw-gs-top{display:flex;align-items:center;gap:14px}
.nw-gs-ico{flex:none;width:50px;height:50px;border-radius:15px;background:var(--nw-wash);display:grid;place-items:center;color:var(--nw-teal-deep)}
.nw-gs-ico svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.nw-gs h3{font-size:19px;font-weight:700;line-height:1.2}
.nw-gs>p{font-size:14px;color:var(--nw-body);margin:12px 0 18px}
.nw-gs>p b{color:var(--nw-ink);font-weight:600}
/* mini survey screen */
.nw-scr{margin-top:auto;background:#f6f7f9;border:1px solid var(--nw-line);border-radius:14px;padding:14px;font-size:11.5px;color:#334155;display:grid;gap:9px;line-height:1.35}
.nw-scr-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--nw-line)}
.nw-scr-head img{height:11px;width:auto}
.nw-scr-head i{font-style:normal;font-size:9px;letter-spacing:1px;text-transform:uppercase;color:#94a3b8;font-weight:700}
.nw-scr-title{font:700 15px/1.05 Impact,"Arial Narrow Bold",var(--nw-font);color:#111;text-align:center;letter-spacing:-.01em;padding:6px 0 2px}
.nw-scr-title small{display:block;font:600 10px/1.2 var(--nw-font);color:#64748b;margin-top:4px;letter-spacing:.4px}
.nw-scr-label{font-weight:600;color:#1e293b}
.nw-scr-input{background:#fff;border:1px solid #d7dce3;border-radius:6px;padding:7px 9px;color:#94a3b8;display:flex;justify-content:space-between;align-items:center;gap:8px}
.nw-scr-input.is-filled{color:#1e293b}
.nw-scr-input svg{width:10px;height:10px;fill:none;stroke:#94a3b8;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;flex:none}
.nw-scr-toggle{display:grid;grid-template-columns:1fr 1fr;border-radius:6px;overflow:hidden;border:1px solid #d7dce3;background:#fff}
.nw-scr-toggle span{padding:7px;text-align:center}
.nw-scr-toggle span.on{background:var(--nw-navy);color:#fff;font-weight:700}
.nw-scr-check{display:flex;align-items:center;gap:8px}
.nw-scr-check i{width:13px;height:13px;border-radius:3px;border:1.5px solid #cbd5e1;background:#fff;flex:none;display:grid;place-items:center}
.nw-scr-check i.on{background:var(--nw-teal);border-color:var(--nw-teal)}
.nw-scr-check i.on::after{content:"";width:7px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translate(1px,-1px)}
.nw-scr-pick{background:#fff;border:1.5px solid var(--nw-teal);border-radius:8px;padding:8px 10px;display:flex;justify-content:space-between;align-items:center;font-weight:700;color:#1e293b}
.nw-scr-pick i{width:15px;height:15px;border-radius:50%;background:var(--nw-teal);display:grid;place-items:center;flex:none}
.nw-scr-pick i::after{content:"";width:7px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translate(0,-1px)}
.nw-scr-pick small{display:block;font-weight:400;color:#64748b;font-size:10px}
.nw-scr-btn{justify-self:end;background:var(--nw-red);color:#fff;font-weight:700;border-radius:5px;padding:6px 14px;font-size:11px;letter-spacing:.2px}
.nw-scr-btn.is-wide{justify-self:stretch;text-align:center;padding:8px}
.nw-scr-list{display:grid;gap:6px}
.nw-scr-note{font-size:10.5px;color:#64748b}
.nw-scr-mail{font-weight:700;color:#111;font-size:12.5px}
.nw-vote-panel{margin-top:40px;background:linear-gradient(120deg,#fff 0%,#fff8e8 100%);border:1px solid #f6dfa8;border-radius:24px;padding:clamp(22px,3vw,34px);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px}
.nw-vote-panel h3{font-size:22px;font-weight:700}
.nw-vote-panel p{font-size:14.5px;color:var(--nw-body);margin-top:6px}
.nw-help{margin-top:20px;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.nw-help-card{background:#fff;border:1px solid var(--nw-line);border-radius:20px;padding:22px 24px;display:flex;gap:16px;align-items:flex-start}
.nw-help-ico{flex:none;width:46px;height:46px;border-radius:50%;background:var(--nw-teal-deep);color:#fff;display:grid;place-items:center}
.nw-help-ico svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.nw-help-card h4{font-size:17px;font-weight:700}
.nw-help-card p{font-size:14px;color:var(--nw-body);margin-top:4px}
.nw-help-card a{display:inline-flex;align-items:center;gap:6px;margin-top:10px;font-size:14px;font-weight:600;color:var(--nw-teal-deep)}
.nw-help-card a:hover{text-decoration:underline;text-underline-offset:3px}

/* ── Hospitals ──────────────────────────────────────────────────────── */
.nw-hosp{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.nw-hosp-card{position:relative;overflow:hidden;isolation:isolate;border-radius:16px;padding:26px 18px 20px 20px;display:flex;flex-direction:column;min-height:200px;border:1px solid #eef0f3;background:linear-gradient(115deg,#fffdf8 0%,#fdf5e3 100%);transition:transform .35s var(--nw-ease),border-color .3s}
.nw-hosp-card.is-cool{background:linear-gradient(115deg,#f9fcfd 0%,#e4f3f5 100%)}
.nw-hosp-card:hover{transform:translateY(-5px);border-color:var(--nw-taupe-light)}
/* fine arc linework and a marker dot, amber on warm cards and teal on cool ones */
.nw-hosp-card::before{content:"";position:absolute;right:-80px;top:-50px;width:320px;height:320px;z-index:-1;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 320' fill='none' stroke='%23d9a441' stroke-width='1' opacity='.38'><circle cx='180' cy='140' r='62'/><circle cx='180' cy='140' r='98'/><circle cx='180' cy='140' r='134'/><path d='M10 270C90 215 160 228 310 130'/><path d='M0 300C100 245 180 258 320 170'/></svg>") center/contain no-repeat}
.nw-hosp-card.is-cool::before{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 320' fill='none' stroke='%2339b5b2' stroke-width='1' opacity='.38'><circle cx='180' cy='140' r='62'/><circle cx='180' cy='140' r='98'/><circle cx='180' cy='140' r='134'/><path d='M10 270C90 215 160 228 310 130'/><path d='M0 300C100 245 180 258 320 170'/></svg>")}
.nw-hosp-card::after{content:"";position:absolute;right:46px;top:54px;width:9px;height:9px;border-radius:50%;background:#d9a441;box-shadow:0 0 0 5px rgba(217,164,65,.16)}
.nw-hosp-card.is-cool::after{background:var(--nw-teal);box-shadow:0 0 0 5px rgba(57,181,178,.16)}
.nw-hosp-card small{font-size:11px;letter-spacing:2.2px;text-transform:uppercase;font-weight:700;color:var(--nw-teal-deep)}
.nw-hosp .nw-hosp-card h3{color:var(--nw-navy);font-size:21px;font-weight:700;margin-top:10px;line-height:1.18;max-width:76%}
.nw-hosp-loc{display:flex;align-items:center;gap:8px;font-size:13.5px;color:#475569;margin-top:10px}
.nw-hosp-loc svg{width:16px;height:16px;fill:var(--nw-teal);flex:none}
.nw-hosp-links{margin-top:auto;padding-top:20px;display:flex;flex-wrap:wrap;gap:6px}
.nw-hosp .nw-chip{display:inline-flex;align-items:center;justify-content:center;flex:1 1 0;min-width:0;gap:5px;font-size:12px;font-weight:600;padding:9px 6px;border-radius:999px;border:1.5px solid var(--nw-navy);color:var(--nw-navy);background:#fff;white-space:nowrap;transition:background .2s,color .2s,border-color .2s,transform .25s var(--nw-ease)}
.nw-hosp .nw-chip:hover{background:var(--nw-navy);color:#fff;transform:translateY(-2px)}
.nw-hosp .nw-chip--solid{background:var(--nw-amber);border-color:var(--nw-amber);color:#1a1200}
.nw-hosp .nw-chip--solid:hover{background:var(--nw-amber-dark);border-color:var(--nw-amber-dark);color:#1a1200}
.nw-chip svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
@media (min-width:561px){.nw-hosp-links{flex-wrap:nowrap}}
@media (max-width:1180px){.nw-hosp{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.nw-hosp .nw-chip{flex:1 1 100%;font-size:13.5px;padding:12px 14px}}

/* ── Recognition ────────────────────────────────────────────────────── */
.nw-awards{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:28px}
.nw-award{display:inline-flex;align-items:center;gap:10px;background:#fff;border-radius:999px;padding:10px 18px 10px 12px;font-size:14px;font-weight:600;color:var(--nw-taupe-ink);border:1px solid var(--nw-line)}
.nw-award svg{width:20px;height:20px;fill:var(--nw-amber);stroke:none}
.nw-recog{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;margin-top:36px}
.nw-logo{background:#fff;border:1px solid var(--nw-line);border-radius:18px;min-height:128px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:18px 16px;text-align:center;transition:transform .3s var(--nw-ease)}
.nw-logo:hover{transform:translateY(-3px)}
.nw-logo img{max-height:44px;max-width:100%;width:auto;height:auto;object-fit:contain}
.nw-logo img.is-tall{max-height:58px}
.nw-logo img.is-xl{max-height:84px;margin:-12px 0}
.nw-logo small{font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:var(--nw-body);font-weight:600}
.nw-seal{width:66px;height:66px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#e3c26f,#b8923c 70%);color:#fff;display:grid;place-content:center;text-align:center;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 5px #c9a24a;line-height:1}
.nw-seal b{font:800 17px/1 var(--nw-font);letter-spacing:.02em}
.nw-seal em{font:600 7px/1 var(--nw-font);font-style:normal;letter-spacing:1px;text-transform:uppercase;margin-top:3px}

/* ── Materials & share ──────────────────────────────────────────────── */
.nw-materials{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:clamp(24px,4vw,48px);align-items:start}
.nw-kv{display:block;border-radius:20px;overflow:hidden;border:1px solid var(--nw-line);position:relative}
.nw-kv img{width:100%;height:auto;transition:transform .8s var(--nw-ease)}
.nw-kv:hover img{transform:scale(1.02)}
.nw-kv-cap{position:absolute;left:14px;bottom:14px;background:rgba(255,255,255,.92);border-radius:10px;padding:8px 12px;font-size:12px;font-weight:600;color:var(--nw-taupe-ink);display:flex;align-items:center;gap:6px}
.nw-kv-cap svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.nw-share{background:#fff;border-radius:24px;padding:clamp(22px,3vw,30px);border:1px solid var(--nw-line)}
.nw-share h3{font-size:20px;font-weight:700}
.nw-share p{font-size:14px;color:var(--nw-body);margin-top:6px}
.nw-share-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.nw-share-btn{display:inline-flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;border:1px solid var(--nw-line);background:#fff;font:600 14px var(--nw-font);color:#334155;cursor:pointer;transition:background .2s,border-color .2s,transform .25s var(--nw-ease)}
.nw-share-btn:hover{background:var(--nw-wash);border-color:var(--nw-taupe-light);transform:translateY(-2px)}
.nw-share-btn svg{width:18px;height:18px;fill:currentColor;flex:none}
.nw-share-btn.is-wa svg{color:#25d366}.nw-share-btn.is-fb svg{color:#1877f2}.nw-share-btn.is-li svg{color:#0a66c2}.nw-share-btn.is-x svg{color:#111}
.nw-share-btn.is-copy{grid-column:1/-1;justify-content:center;background:var(--nw-wash)}
.nw-share-btn.is-copy.done{background:#e7f6f5;border-color:var(--nw-teal);color:var(--nw-teal-deep)}

/* ── FAQ ────────────────────────────────────────────────────────────── */
.nw-faq{max-width:820px;margin:0 auto}
.nw-faq-item{border-bottom:1px solid var(--nw-line)}
.nw-faq-q{width:100%;text-align:left;background:none;border:0;padding:20px 0;display:flex;justify-content:space-between;align-items:center;gap:16px;font:600 17px var(--nw-font);color:var(--nw-ink);cursor:pointer}
.nw-faq-q span:last-child{flex:none;width:30px;height:30px;border-radius:50%;background:var(--nw-sand);display:grid;place-items:center;color:var(--nw-taupe-ink);transition:transform .3s var(--nw-ease),background .2s}
.nw-faq-q[aria-expanded="true"] span:last-child{transform:rotate(45deg);background:var(--nw-taupe);color:#fff}
.nw-faq-q svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round}
.nw-faq-a{display:grid;grid-template-rows:1fr;transition:grid-template-rows .35s var(--nw-ease)}
.nw-faq-a>div{overflow:hidden}
.nw-faq-a p{font-size:15px;color:var(--nw-body);padding:0 44px 20px 0}
.nw-js .nw-faq-a{grid-template-rows:0fr}
.nw-js .nw-faq-item.open .nw-faq-a{grid-template-rows:1fr}

/* ── Closing CTA with three.js wave ─────────────────────────────────── */
.nw-final{position:relative;background:var(--nw-taupe);color:#fff;overflow:hidden;isolation:isolate;text-align:center}
.nw-final canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.nw-final::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 120%,rgba(255,255,255,.14),transparent 60%);z-index:0}
.nw-final .nw-in{position:relative;z-index:1;padding-top:var(--nw-py);padding-bottom:calc(var(--nw-py) + 20px)}
.nw-final .nw-eyebrow{color:#fff}.nw-final .nw-eyebrow::before{background:#fff}
.nw-final h2{color:#fff;font-size:clamp(28px,4vw,46px);font-weight:700;line-height:1.1;letter-spacing:-.015em;margin:14px auto 0;max-width:760px}
.nw-final p{color:rgba(255,255,255,.88);font-size:clamp(15px,1.4vw,18px);margin:16px auto 0;max-width:600px}
.nw-final .nw-cta{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:32px}
.nw-final .nw-btn--vote{animation:none}

/* ── Floating vote pill (sits above the chrome bottom-nav) ─────────── */
.nw-float{position:fixed;right:18px;bottom:66px;z-index:900;transform:translateY(120px);opacity:0;transition:transform .45s var(--nw-ease),opacity .3s;pointer-events:none}
.nw-float.show{transform:none;opacity:1;pointer-events:auto}
.nw-float .nw-btn{box-shadow:0 12px 30px rgba(16,17,30,.18);animation:none;padding:14px 22px}

/* ── Motion & responsive ────────────────────────────────────────────── */
.nw-js .nw-reveal{opacity:0;transform:translateY(18px);transition:opacity .7s var(--nw-ease),transform .7s var(--nw-ease)}
.nw-js .nw-reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.nw-reveal{opacity:1;transform:none;transition:none}.nw-btn--vote{animation:none}.nw-page *{transition-duration:.01ms!important}}
@media (max-width:1024px){
  .nw-recog{grid-template-columns:repeat(3,minmax(0,1fr))}
  .nw-hosp,.nw-gsteps{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .nw-hero::before{background:linear-gradient(180deg,rgba(255,255,255,.97) 0%,rgba(255,255,255,.94) 100%)}
  .nw-hero .nw-in{grid-template-columns:1fr;gap:0;padding-top:36px}
  .nw-hero-copy{padding-bottom:28px;max-width:none}
  .nw-hero-spacer{min-height:0}
  .nw-hero-stage{width:auto;right:0}
  /* photo becomes a banded strip under the copy */
  .nw-hero-visual{position:relative;top:auto;right:auto;bottom:auto;left:auto;width:auto;height:min(78vw,420px);margin:0 calc(var(--nw-px) * -1)}
  .nw-hero-bg{-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 18%);mask-image:linear-gradient(180deg,transparent 0,#000 18%)}
  .nw-hero-visual img.nw-ppl{left:auto;right:-8%;width:auto;height:94%}
  .nw-badge{left:var(--nw-px);bottom:18px;width:114px;padding:7px 7px 9px}
  .nw-badge-title{font-size:15px;padding:8px 2px 4px}.nw-badge-year{font-size:14px;padding-bottom:6px}
  .nw-hero-float{display:none} /* the countdown strip above already carries this on phones */
  .nw-hero-cap{display:none}
  .nw-why,.nw-survey,.nw-materials,.nw-help{grid-template-columns:1fr}
  .nw-cards{grid-template-columns:1fr}
}
@media (max-width:768px){
  .nw-float{bottom:106px;right:14px}
  .nw-strip .nw-in{justify-content:flex-start;font-size:13px}
  .nw-gsteps{grid-template-columns:1fr;gap:34px}
}
@media (max-width:560px){
  .nw-recog{grid-template-columns:1fr 1fr}
  .nw-hosp{grid-template-columns:1fr}
  .nw-stats{grid-template-columns:1fr 1fr}
  .nw-btn--lg{width:100%}
  .nw-hero-cta .nw-btn{width:100%}
  .nw-share-grid{grid-template-columns:1fr}
}

/* ── Links that are visible but not yet live ("coming soon") ───────── */
.nw-soon{position:relative;cursor:not-allowed}
.nw-soon:hover{transform:none!important}
.nw-page .nw-btn--vote.nw-soon{background:#fde7b3;color:#7a5a10;animation:none;box-shadow:none}
.nw-page .nw-btn--ghost.nw-soon{background:transparent;border:2px dashed var(--nw-taupe-light);color:#8a7c6b}
.nw-page .nw-btn--ghost.nw-soon:hover{background:transparent;color:#8a7c6b}
.nw-page .nw-btn--outline-white.nw-soon{border:2px dashed rgba(255,255,255,.55);color:rgba(255,255,255,.8)}
.nw-page .nw-btn--outline-white.nw-soon:hover{background:transparent;color:rgba(255,255,255,.8)}
.nw-soon-tag{display:inline-flex;align-items:center;gap:5px;font:700 10px/1 var(--nw-font);letter-spacing:1px;text-transform:uppercase;background:#fff;color:var(--nw-taupe-ink);border-radius:999px;padding:5px 9px}
.nw-soon-tag svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round}
.nw-hosp .nw-chip.nw-soon{background:#fff;border:1.5px dashed var(--nw-taupe-light);color:#8a7c6b}
.nw-hosp .nw-chip--solid.nw-soon{background:#fde7b3;border:1.5px solid #fde7b3;color:#7a5a10}
.nw-hosp .nw-chip.nw-soon:hover{background:#fff;color:#8a7c6b}
.nw-hosp .nw-chip--solid.nw-soon:hover{background:#fde7b3;color:#7a5a10}
.nw-page a.nw-soon-inline{color:var(--nw-body)!important;text-decoration:underline dotted!important;text-underline-offset:3px;font-weight:600}
/* tooltip: shows on hover, keyboard focus, or tap */
.nw-soon::after{content:attr(data-soon);position:absolute;left:50%;bottom:calc(100% + 10px);transform:translate(-50%,4px);background:var(--nw-ink);color:#fff;font:600 12px/1.3 var(--nw-font);letter-spacing:0;text-transform:none;padding:8px 12px;border-radius:10px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;z-index:20}
.nw-soon::before{content:"";position:absolute;left:50%;bottom:calc(100% + 4px);transform:translate(-50%,4px);border:6px solid transparent;border-top-color:var(--nw-ink);border-bottom:0;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;z-index:20}
.nw-soon:hover::after,.nw-soon:focus-visible::after,.nw-soon.tip::after,.nw-soon:hover::before,.nw-soon:focus-visible::before,.nw-soon.tip::before{opacity:1;transform:translate(-50%,0)}
/* large panels that used to be links: no tooltip, just a caption that says so */
.nw-soon-panel{cursor:default}
.nw-soon-panel:hover img,.nw-soon-panel:hover .nw-badge,.nw-soon-panel:hover .nw-hero-cap{transform:none!important;text-decoration:none!important}
.nw-soon-panel::after,.nw-soon-panel::before{display:none}
.nw-soon-panel .nw-badge{transform:rotate(-2deg)!important}
.nw-soon-inline::after,.nw-soon-inline::before{display:none}
.nw-soon-note{display:inline-block;font:700 10px/1 var(--nw-font);letter-spacing:1px;text-transform:uppercase;background:var(--nw-sand);color:var(--nw-taupe-ink);border-radius:999px;padding:4px 8px;margin-left:6px;vertical-align:middle}
.nw-page .nw-hosp-soon{display:flex;align-items:center;justify-content:center;gap:8px;margin:-14px auto 30px;font-size:13px;font-weight:600;color:var(--nw-taupe-ink);background:var(--nw-sand);border-radius:999px;padding:8px 16px;width:fit-content;max-width:100%}
.nw-hosp-soon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;flex:none}
.nw-float .nw-btn.nw-soon{background:#fff;color:var(--nw-taupe-ink);border:1px solid var(--nw-line)}

/* Anchor targets sit below the fixed KPJ header, and below the admin bar when logged in. */
.nw-page section[id]{scroll-margin-top:calc(72px + var(--wp-admin-offset,0px))}

/* Classes standing in for the inline styles the static draft carried. */
.nw-page .nw-head--tight{margin-bottom:0}
.nw-survey-card--sand{background:var(--nw-sand);border-color:transparent}
.nw-help-card a svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.nw-page .nw-inline-link{color:var(--nw-taupe-ink);font-weight:600;text-decoration:underline;text-underline-offset:3px}

/* The switched-off FAQ link is rendered as a <span> by PHP, where the draft restyled an <a>. */
.nw-page span.nw-soon-inline{color:var(--nw-body);text-decoration:underline dotted;text-underline-offset:3px;font-weight:600}
