/* Package pages body layout (comps 01-06). Colours ONLY via var(--campaign-*) / var(--pkg-acc-*). Nothing here selects chrome (header/footer/banner/bars):
   every rule is scoped under .pkg (the <main>). Phone/tablet = desktop comps + the live site's breakpoints (820 / 560). */
.pkg{color:var(--campaign-ink);padding:24px 0 40px;font-size:16px;line-height:1.4}
.pkg *{box-sizing:border-box}
/* container = sitewide .hf-box (home content + footer): width min(100% - 48px, var(--hf-box)), 1200/1280; was max-width:1000px + 20px pad (2026-11-06) */
.pkg-wrap{margin:0 auto 28px}.pkg .pkg-wrap.hf-box{margin-bottom:28px}
.pkg h1{font-size:clamp(34px,4.6vw,48px);line-height:1.02;margin:4px 0 10px;color:var(--campaign-ink)}.pkg h2{font-size:clamp(24px,3vw,32px);line-height:1.1;margin:0 0 14px;color:var(--campaign-ink)}
.pkg-hero{display:grid;grid-template-columns:42% 1fr;gap:28px;align-items:center}
.pkg-eyebrow{color:var(--campaign-primary);font-weight:800;text-transform:uppercase;margin:0;letter-spacing:.02em}
.pkg-sub{color:var(--campaign-secondary);font-size:19px;margin:0 0 8px}.pkg-price{margin:6px 0 10px}.pkg-price b{font-size:52px;line-height:1}.pkg-price i{color:var(--campaign-secondary);font-size:22px;font-weight:700}
.pkg-promo{background:var(--campaign-tint-blue);border-radius:12px;padding:10px 14px;margin:0 0 16px}
.pkg-checks{list-style:none;padding:0;margin:0 0 16px}.pkg-checks li{display:flex;gap:10px;align-items:center;margin:0 0 6px;font-size:17px}
.pkg-checks .pkg-ic{color:var(--campaign-accent-dark);width:24px;height:24px;flex:none}
.pkg-btn{display:block;text-align:center;background:var(--campaign-button-bg);color:var(--campaign-button-fg)!important;font-weight:800;font-size:21px;padding:12px 24px;border-radius:12px;text-decoration:none;max-width:330px;border:0;cursor:pointer;box-shadow:0 3px 0 var(--campaign-accent-dark)}
.pkg-btn:hover{filter:brightness(1.05)}.pkg-btn:focus-visible,.pkg input:focus-visible,.pkg button:focus-visible,.pkg summary:focus-visible{outline:3px solid var(--campaign-focus);outline-offset:2px}
.pkg-btn[disabled]{opacity:.7;cursor:progress}
.pkg-hero-art{margin:0;background:var(--campaign-tint-blue);border-radius:18px;padding:34px 16px 10px;position:relative}.pkg-hero-art img,.pkg-see-art img{width:100%;height:auto;display:block;border-radius:8px}
.pkg-hero-art figcaption{font-size:12px;color:var(--campaign-mute);text-align:right;margin-top:6px}
.nwn-camp-veterans-day .pkg-flag,.nwn-camp-veterans-day .pkg-flag-top{background-image:var(--campaign-flag);background-repeat:no-repeat;background-size:60% auto;background-position:50% 4px}
.nwn-camp-veterans-day .pkg-flag-side{border-left:6px solid var(--campaign-primary);box-shadow:inset 6px 0 0 #fff,inset 12px 0 0 var(--campaign-secondary)}
.pkg-see{display:grid;grid-template-columns:50% 1fr;gap:32px;align-items:center}.pkg-see-art{margin:0;border-radius:16px;padding:16px}.pkg-see p{color:var(--campaign-secondary);font-size:18px}
.pkg-see .pkg-btn{margin-top:14px}
.pkg-tint-red{background:var(--campaign-tint-red)}.pkg-tint-blue{background:var(--campaign-tint-blue)}.pkg-tint-green{background:var(--campaign-tint-green)}
.pkg-get h2,.pkg-how h2,.pkg-faq h2{border-bottom:2px solid var(--campaign-tint-blue);padding-bottom:4px}
.pkg-cards{list-style:none;display:grid;grid-template-columns:repeat(6,1fr);gap:10px;padding:0;margin:0}.pkg-cards.n5{grid-template-columns:repeat(5,1fr)}
.pkg-cards li{border-radius:12px;padding:16px;min-height:140px;font-weight:700;display:flex;flex-direction:column;gap:12px;justify-content:center}
.pkg-cards .pkg-ic{width:52px;height:52px;color:var(--campaign-secondary);margin:0 auto}
.pkg-steps{list-style:none;counter-reset:s;display:grid;grid-template-columns:repeat(3,1fr);gap:40px;padding:0;margin:0 0 8px}
.pkg-steps li{counter-increment:s;background:var(--campaign-tint-blue);border:1px solid #c9d6ea;border-radius:10px;padding:14px;font-weight:700;display:flex;gap:12px;align-items:center;position:relative}
.pkg-steps li+li:after{content:"→";position:absolute;left:-30px;color:var(--campaign-accent-dark);font-size:24px;font-weight:800}
.pkg-steps li:before{content:counter(s);background:var(--campaign-primary);color:var(--campaign-on-color);border-radius:50%;width:32px;height:32px;display:grid;place-items:center;flex:none}
.pkg-note{text-align:center;color:var(--campaign-mute)}
.pkg-chg{display:grid;grid-template-columns:1fr 1fr;gap:28px}.pkg-not{display:grid;grid-template-columns:1fr auto;gap:16px;border:1px solid #c9d6ea;border-radius:12px;padding:14px 18px}
.pkg-not h3{margin:0 0 6px}.pkg-not ul{margin:0;padding-left:18px}.pkg-up h4{margin:0 0 6px}
.pkg-up a{display:block;color:#0a4aa8;font-weight:700;margin-bottom:8px;text-decoration:underline}
.pkg-faq details{border:1px solid #c9d6ea;border-bottom:0;background:#fff}.pkg-faq details:last-of-type{border-bottom:1px solid #c9d6ea}.pkg-faq details:first-of-type{border-radius:10px 10px 0 0}.pkg-faq details:last-of-type{border-radius:0 0 10px 10px}
.pkg-faq summary{display:grid;grid-template-columns:38% 1fr;gap:16px;padding:9px 18px;cursor:default;list-style:none}.pkg-faq summary::-webkit-details-marker{display:none}
.pkg-band{display:flex;justify-content:space-between;align-items:center;gap:20px;border-radius:14px;padding:14px 28px}.pkg-band p{font-size:24px;font-weight:800;margin:0;flex:1}.pkg-band .pkg-ic{width:48px;height:48px;color:var(--campaign-secondary)}
.pkg-band .pkg-btn{min-width:260px}
/* ── Step 2 (comps 04-06) ── */
.pkg-o-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:12px}
.pkg-stepper{list-style:none;display:flex;gap:14px;align-items:center;margin:8px 0 0;padding:0;font-weight:800;font-size:18px;white-space:nowrap}
.pkg-stepper li{display:flex;gap:10px;align-items:center}.pkg-stepper a{color:var(--campaign-ink);text-decoration:none;display:flex;gap:10px;align-items:center}
.pkg-stepper i{font-style:normal;width:36px;height:36px;border:2px solid var(--campaign-ink);border-radius:50%;display:grid;place-items:center}
.pkg-stepper li+li:before{content:"";width:30px;height:2px;background:var(--campaign-accent-dark)}
.pkg-stepper li[aria-current]{background:var(--campaign-tint-green);border-radius:10px;padding:4px 18px 4px 4px}.pkg-stepper li[aria-current] i{background:var(--campaign-accent-dark);border-color:var(--campaign-accent-dark);color:#fff}
.pkg-o-h2 small{font-size:15px;font-weight:400;color:var(--campaign-secondary);margin-left:10px}
.pkg fieldset{border:0;padding:0;margin:0 0 24px;min-width:0}
.pkg-pick3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.pkg-pcard,.pkg-sel{position:relative;display:flex;flex-direction:column;gap:8px;border:2px solid var(--acc);border-radius:12px;padding:14px;cursor:pointer;--acc:var(--pkg-acc-blue)}
.pkg-acc-red{--acc:var(--pkg-acc-red);--acc-fg:var(--pkg-acc-red-fg)}.pkg-acc-blue{--acc:var(--pkg-acc-blue);--acc-fg:var(--pkg-acc-blue-fg)}.pkg-acc-green{--acc:var(--pkg-acc-green);--acc-fg:var(--pkg-acc-green-fg)}
.pkg-pcard.is-on,.pkg-sel.is-on{border-width:3px;box-shadow:0 0 0 2px var(--campaign-accent) inset}
.pkg-radio{appearance:none;-webkit-appearance:none;width:26px;height:26px;border:2px solid var(--campaign-ink);border-radius:50%;margin:0;flex:none;background:#fff;cursor:pointer}
.pkg-radio:checked{background:radial-gradient(circle,var(--campaign-accent-dark) 0 45%,#fff 50%);border-color:var(--campaign-accent-dark)}
.pkg-pcard-h{display:flex;gap:10px;align-items:flex-start;font-size:21px;line-height:1.15;color:var(--acc)}.pkg-pcard-d{font-size:14px;min-height:56px}
.pkg-pcard img{width:100%;height:auto;border-radius:8px}
.pkg-pcard-p{background:#fff;border-radius:10px;padding:8px 12px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.pkg-pcard-p b,.pkg-sel-p b{font-size:28px}
.pkg-chip{display:none;margin-left:auto;font-style:normal;font-weight:800;background:var(--campaign-chip-ok-bg,#d5f0d5);color:var(--campaign-accent-dark);border-radius:999px;padding:4px 12px;align-items:center;gap:6px}
.pkg-chip .pkg-ic{width:18px;height:18px}.is-on .pkg-chip,.pkg-sel .pkg-chip{display:inline-flex}
.pkg-o-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start;margin-bottom:24px}.pkg-o-grid-r{grid-template-columns:1.85fr 1fr}
.pkg-box{border:2px solid #c9d6ea;border-radius:12px;padding:18px;background:#fff}.pkg-sum{border-color:var(--pkg-acc-blue)}
.pkg-small{font-size:14px}
.pkg-fields{display:grid;gap:12px}.pkg-fields-two{grid-template-columns:1fr 1fr}
.pkg-fields label span{display:block;font-weight:700;margin-bottom:4px}
.pkg input:not([type=radio]){width:100%;font:inherit;padding:9px 12px;border:1.5px solid #9fb0c8;border-radius:8px;background:#fff;color:var(--campaign-ink)}
.pkg-sum-line{display:flex;gap:12px;align-items:center;background:var(--campaign-tint-blue);border-radius:10px;padding:10px 12px}.pkg-sum-line span{flex:1;display:flex;flex-direction:column}.pkg-sum-line small{color:var(--campaign-secondary)}
.pkg-sum-line .pkg-ic{width:40px;height:40px;color:var(--campaign-secondary)}
.pkg-code{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;margin:14px 0;border-top:1px solid #c9d6ea;padding-top:12px}
.pkg-apply{font:inherit;font-weight:700;border:1.5px solid #9fb0c8;background:var(--campaign-tint-blue);border-radius:8px;padding:8px 14px;cursor:pointer;color:var(--campaign-ink)}
.pkg-code-msg{grid-column:1/-1;margin:0;font-size:14px;color:var(--campaign-accent-dark)}.pkg-code-msg:empty{display:none}.pkg-code-msg.is-bad{color:var(--campaign-primary)}
.pkg-sub-row,.pkg-disc-row,.pkg-total{display:flex;justify-content:space-between;margin:6px 0}
.pkg-total{background:var(--campaign-tint-blue);border-radius:8px;padding:8px 10px;font-size:22px;font-weight:800}.pkg-total b{font-size:28px}
.pkg-place{max-width:none;width:100%;font-size:24px;margin-top:12px}
.pkg-sel{flex-direction:row;align-items:center;gap:16px;margin-bottom:16px}.pkg-sel>.pkg-radio{position:absolute;opacity:0;pointer-events:none}
.pkg-up-card>.pkg-radio{position:static;opacity:1;pointer-events:auto;align-self:flex-start;margin-top:6px}
.pkg-sel-t{flex:1;display:flex;flex-direction:column;gap:8px}.pkg-sel .pkg-chip{margin-left:0;align-self:flex-start}
.pkg-sel-n{font-size:32px;line-height:1.05}.pkg-sel-d{color:var(--campaign-secondary);font-size:17px}
.pkg-sel img{width:36%;height:auto;border-radius:8px;padding-top:18px}.pkg-sel-p{display:flex;flex-direction:column;align-items:center;color:var(--campaign-secondary);border-left:2px solid var(--acc);padding-left:14px}
.pkg-saves{display:inline-flex;gap:8px;align-items:center;background:#fff;border-radius:10px;padding:6px 12px}.pkg-saves .pkg-ic{width:24px;height:24px}
.pkg-saves b{color:var(--campaign-accent-dark)}
.pkg-next,.pkg-after{display:flex;gap:16px;align-items:center;border-radius:12px;padding:16px;margin-top:14px}.pkg-next .pkg-ic,.pkg-after .pkg-ic{width:56px;height:56px;color:#1f55d0;flex:none}
.pkg-next b,.pkg-after b{font-size:22px}.pkg-next p,.pkg-after p{margin:4px 0 0;color:var(--campaign-secondary)}
.pkg-after{border:1.5px solid #b8dcc4;max-width:780px;margin:0 0 24px}.pkg-after>div{flex:1}.pkg-after-k{color:var(--campaign-accent-dark)!important;font-weight:800;font-size:20px;margin:0!important}
.pkg-btn-sm{font-size:18px;padding:10px 16px;max-width:240px}
.pkg-bundle{border:2px solid var(--acc);border-radius:12px;overflow:hidden;padding-bottom:14px}.pkg-bundle>h2,.pkg-bundle>ul,.pkg-bundle>p{margin-left:16px;margin-right:16px}
.pkg-bundle-h{display:flex;justify-content:space-between;align-items:center;padding:40px 22px 14px;gap:16px;margin-bottom:14px}.pkg-bundle-h>div{display:flex;flex-direction:column}.pkg-bundle-h span{color:var(--campaign-secondary)}
.pkg-parts{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;text-align:center}
.pkg-part-art{display:grid;place-items:center;height:130px;border-radius:12px;margin-bottom:8px}.pkg-part-art .pkg-ic{width:64px;height:64px;color:var(--campaign-secondary)}
.pkg-part-red{background:var(--campaign-tint-red)}.pkg-part-teal{background:#d6f3f1}.pkg-part-cream{background:var(--campaign-tint-cream,#faf1de)}
.pkg-saves-wide{display:flex;background:var(--campaign-tint-green)}
.pkg-err{background:#fde8ea;color:#7a0d1c;border-radius:8px;padding:10px 14px;font-weight:700}
.pkg-faq2 details p{margin:0;padding:0 18px 12px}.pkg-faq2 summary{display:flex;justify-content:space-between;cursor:pointer;font-size:18px}.pkg-faq2 summary:after{content:"⌄";font-weight:800}
.pkg-trust{list-style:none;padding:0;margin:24px 0 10px;display:grid;grid-template-columns:1fr .8fr 1fr;gap:12px}.pkg-trust li{border:1px solid #c9d6ea;border-radius:10px;padding:12px;text-align:center;font-weight:700}
.pkg-privacy{text-align:center;color:var(--campaign-secondary);font-size:15px}.pkg-privacy a{font-weight:800;color:var(--campaign-secondary)}
@media (max-width:820px){
 .pkg-hero,.pkg-see,.pkg-chg,.pkg-o-grid,.pkg-o-grid-r,.pkg-pick3{grid-template-columns:1fr}.pkg-cards,.pkg-cards.n5{grid-template-columns:repeat(2,1fr)}
 .pkg-steps{grid-template-columns:1fr;gap:10px}.pkg-steps li+li:after{display:none}.pkg-faq summary{grid-template-columns:1fr;gap:4px}.pkg-btn{max-width:none}
 .pkg-band{flex-direction:column;gap:12px;text-align:center}.pkg-band .pkg-btn{min-width:0;width:100%}.pkg-o-head{flex-direction:column}.pkg-stepper{font-size:15px}
 .pkg-not{grid-template-columns:1fr}.pkg-trust{grid-template-columns:1fr}.pkg-after{flex-wrap:wrap}.pkg-after .pkg-btn{max-width:none;width:100%}
}
@media (max-width:560px){
 .pkg-price b{font-size:44px}.pkg-sel{flex-wrap:wrap}.pkg-sel img{width:100%;order:3}.pkg-sel-p{border-left:0;padding-left:0;flex-direction:row;gap:8px;align-items:baseline}.pkg-sel-n{font-size:26px}
 .pkg-fields-two{grid-template-columns:1fr}.pkg-parts{grid-template-columns:1fr}.pkg-part-art{height:96px}.pkg-bundle-h{flex-direction:column;align-items:flex-start}.pkg-cards li{min-height:120px}
 .pkg-code{grid-template-columns:1fr auto}.pkg-code label{grid-column:1/-1}.pkg-stepper li[aria-current]{padding-right:10px}
}
/* fixes 2026-11-05 r2: [hidden] must win over display rules; comp-05 upgrade card proportions */
.pkg [hidden]{display:none!important}
.pkg-up-card{flex-wrap:wrap}.pkg-up-card .pkg-sel-t{flex:1 1 260px;min-width:240px}.pkg-up-card .pkg-sel-n{font-size:28px}.pkg-up-card img{width:24%;min-width:130px}
.pkg-saves{white-space:normal;flex-wrap:nowrap}.pkg-saves b{white-space:nowrap}
/* fix 2026-11-05 r3 (sticky-bar verify): Step 2 stepper was 393-413px wide inside a 350px column at 390px,
   widening the mobile layout viewport to 406-413px so the fixed sticky bar/cookie bar sat off the true viewport. */
@media (max-width:600px){
 .pkg-stepper{white-space:normal;gap:8px;font-size:14px;flex-wrap:nowrap;max-width:100%}
 .pkg-stepper li,.pkg-stepper a{gap:6px;min-width:0}.pkg-stepper li+li:before{width:14px;flex:0 0 14px}
 .pkg-stepper i{width:30px;height:30px;flex:0 0 30px}
 .pkg-stepper li[aria-current]{padding:4px 10px 4px 4px}
}

/* 2026-11-09 ES 390px: theme hamburger sits 2px past the viewport on the Spanish header (scrollWidth 392); clip, do not scroll */
body.nwn-pkg{overflow-x:clip}
html:has(body.nwn-pkg){overflow-x:hidden}

/* ── 2026-11-09 Step 2 card consistency (Eddy 2:24 AM: "the one on the right looks off") ──
   1) one colour theme per card (tint follows the package accent: red / blue / green), 2) ONE image frame (16:10, edge to edge),
   3) title / description / image / price rows aligned across the three cards (subgrid), 4) "Selected" = ring + chip + lift, not a tint. */
.pkg-tint-green.pkg-pcard,.pkg-tint-green.pkg-sel,.pkg-tint-green.pkg-bundle-h{background:#dcf1e4}
.pkg-art{display:block;aspect-ratio:16/10;border-radius:8px;overflow:hidden;background:var(--tile,#fff);flex:none;width:100%}
.pkg .pkg-art img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;padding:0;border-radius:0}
.pkg-art-contain{--tile:#c4e5d1}.pkg .pkg-art-contain img{object-fit:contain;padding:6px 0}
.pkg-acc-red .pkg-art-contain{--tile:#f6c4c8}.pkg-acc-blue .pkg-art-contain{--tile:#bcd8f6}
.pkg-pcard{box-shadow:0 0 0 0 transparent;transition:box-shadow .15s,transform .15s}
.pkg-pcard.is-on,.pkg-sel.is-on{border-width:2px;box-shadow:0 0 0 4px var(--campaign-accent),0 10px 22px rgba(23,59,108,.22)}
.pkg-pcard.is-on{transform:translateY(-2px)}
.pkg-pcard-d{min-height:calc(3 * 1.4em);line-height:1.4;font-size:14px}
.pkg-pcard-p{margin-top:auto}
@media (min-width:821px){
 .pkg-pick3{grid-template-rows:auto auto auto auto;row-gap:0}
 .pkg-pcard{grid-row:span 4;display:grid;grid-template-rows:subgrid;row-gap:8px}
 .pkg-pcard-d{min-height:0}
}
@media (max-width:820px){.pkg-sel .pkg-art{width:100%;order:3}}
@media (min-width:561px){.pkg-sel>.pkg-art{width:36%}.pkg-up-card>.pkg-art{width:30%;min-width:150px}}
/* price bar is one line on every card: the Selected chip floats at its right edge instead of wrapping the row (ES 1024/390) */
.pkg-pcard-p{position:relative;flex-wrap:nowrap;min-height:55px;white-space:nowrap}
.pkg-pcard-p .pkg-chip{position:absolute;right:8px;top:50%;transform:translateY(-50%);margin:0;padding:3px 10px;font-size:14px}
.pkg-pcard-p .pkg-chip .pkg-ic{width:16px;height:16px}
.pkg .pkg-art-contain img{mix-blend-mode:multiply} /* the portrait stand-in has a white backdrop: let the tile colour show through */
@media (min-width:821px) and (max-width:1180px){.pkg-pcard-p .pkg-chip{font-size:0;padding:4px}.pkg-pcard-p .pkg-chip .pkg-ic{width:20px;height:20px}}
