/* nzcasinoatlas.com - container repair and funnel, v1 (2026-10-16).
   Loaded after /_astro/BaseLayout.*.css. The Astro bundle itself is never edited. */

/* ---------- 1. Container repair ----------
   BaseLayout ships `.site-frame .shell{width:100%}` at top level. It cancels the
   global `.shell` column, and `.site-frame` is never given a width of its own, so
   every page ran edge to edge. Restore the column on `.shell`, give the full-bleed
   bands an inner gutter so their backgrounds still span, and give the standalone
   cards a width of their own. */
:root{--nz-col:1180px;--nz-gut:20px}

.site-frame .shell{width:min(var(--nz-col),100% - 40px);margin-inline:auto}

.site-frame main>.national-cover,
.site-frame main>.national-task-index,
.site-frame main>.home-brand-links,
.site-frame main>.national-atlas,
.site-frame main>.metric-strip,
.site-frame main>.next-reads{padding-inline:max(var(--nz-gut),calc((100% - var(--nz-col))/2))}

.site-frame main>.contextual-links,
.site-frame main>.reading-nav,
.site-frame main>.page-guidance{box-sizing:border-box;width:min(var(--nz-col),100% - 40px);margin-inline:auto}

@media (width<=600px){
  .site-frame .shell{width:min(100% - 28px,var(--nz-col))}
  .site-frame main>.national-cover,
  .site-frame main>.national-task-index,
  .site-frame main>.home-brand-links,
  .site-frame main>.national-atlas,
  .site-frame main>.metric-strip,
  .site-frame main>.next-reads{padding-inline:14px}
  .site-frame main>.contextual-links,
  .site-frame main>.reading-nav,
  .site-frame main>.page-guidance{width:calc(100% - 28px)}
}

/* ---------- 2. Top-1 showcase ----------
   Adds the partner rating row inside the card that is already marked as an ad,
   and lifts the card off the page a little so it reads as the one offer. */
.campaign-rating{flex-wrap:wrap;align-items:center;gap:9px;margin-top:7px;display:flex}
.campaign-stars{color:#b9821a;letter-spacing:.1em;font:1rem/1 Arial,sans-serif}
.campaign-reviews{color:#44566b;letter-spacing:.02em;font:700 .74rem/1 Arial,sans-serif}

.campaign-showcase{border-color:#7fc0c7;box-shadow:0 14px 34px #1022381f}
.campaign-action{letter-spacing:.01em}

/* The card carried its own 1180px width, which left it inset against the H1 now
   that its container is the column. Let it fill whatever holds it, except when
   it stands alone as a child of main. */
.site-frame .campaign-showcase{width:100%;margin-inline:0}
.site-frame main>.campaign-showcase{width:min(var(--nz-col),100% - 40px);margin-inline:auto}

.guide-hero__copy .campaign-rating{gap:7px;margin-top:5px}
.guide-hero__copy .campaign-stars{font-size:.88rem}
.guide-hero__copy .campaign-reviews{font-size:.68rem}

/* On a phone the shipped grid left the copy column 79px wide, so the headline
   broke over five lines and the rating had nowhere to go. Give the card two
   rows instead: identity on top, a full-width call to action underneath. */
@media (width<=600px){
  .campaign-showcase,.guide-hero__copy .campaign-showcase{grid-template-rows:auto auto;grid-template-columns:34px 64px minmax(0,1fr);align-items:center;gap:10px;padding:12px 14px}
  .campaign-showcase .campaign-rank{grid-area:1/1;place-self:center}
  .campaign-showcase .campaign-logo{border-radius:11px;grid-area:1/2;width:64px;height:44px;font-size:.95rem}
  .campaign-showcase .campaign-copy{grid-area:1/3}
  .campaign-showcase .campaign-copy h2{font-size:1rem}
  .campaign-showcase .campaign-action{grid-area:2/1/3/4;width:100%;min-height:48px;margin:0;font-size:.86rem}
  .campaign-rating,.guide-hero__copy .campaign-rating{gap:7px;margin-top:5px}
  .campaign-stars,.guide-hero__copy .campaign-stars{letter-spacing:.06em;font-size:.82rem}
  .campaign-reviews,.guide-hero__copy .campaign-reviews{font-size:.66rem}
}

/* ---------- 3. Invite panel ----------
   Opens once per session after the reader has engaged, never while the bottom
   dock is on screen, and closes on the button, the backdrop or Escape. */
.nz-invite{z-index:120;place-items:center;display:grid;position:fixed;inset:0}
.nz-invite[hidden]{display:none}
.nz-invite__backdrop{background:#10223899;backdrop-filter:blur(3px);position:absolute;inset:0}

/* The dock keeps its own observer, which fires after the panel opens and would
   put it back on screen. Hold it down from the root while the panel is up. */
.nz-invite-open .campaign-dock{display:none}

.nz-invite__panel{color:#102238;background:#fffdf9;border:1px solid #9bcfd4;border-radius:24px;grid-template-columns:270px minmax(0,1fr);width:min(760px,100% - 32px);max-height:calc(100dvh - 40px);animation:.26s both nz-invite-in;display:grid;position:relative;overflow:hidden;box-shadow:0 28px 80px #10223859}

.nz-invite__art{object-fit:cover;width:100%;height:100%;display:block}

.nz-invite__copy{flex-direction:column;align-items:flex-start;gap:0;padding:30px 32px 28px;display:flex}

.nz-invite__tag{color:#087f67;letter-spacing:.11em;text-transform:uppercase;background:#e5f3edcc;border-radius:999px;margin-bottom:14px;padding:7px 12px;font:800 .66rem/1 Arial,sans-serif}

.nz-invite__title{color:#102238;letter-spacing:-.035em;text-wrap:balance;margin:0;font:400 clamp(1.45rem,2.6vw,1.95rem)/1.1 Georgia,serif}

.nz-invite__text{color:#3c4f63;max-width:38ch;margin:12px 0 0;font:400 .92rem/1.6 Arial,sans-serif}

.nz-invite__rating{align-items:center;gap:9px;margin-top:14px;display:flex}

.nz-invite__cta{color:#fff;text-align:center;background:linear-gradient(110deg,#087f67,#2465d6);border-radius:14px;justify-content:center;align-items:center;gap:10px;width:100%;min-height:54px;margin-top:20px;padding:14px 18px;font:900 1rem/1 Arial,sans-serif;text-decoration:none;transition:transform .18s,filter .18s;display:inline-flex;box-shadow:0 12px 26px #176c9952}
.nz-invite__cta:hover{filter:brightness(1.08);text-decoration:none;transform:translateY(-1px)}

.nz-invite__later{color:#44566b;background:0 0;border:0;width:100%;margin-top:10px;padding:10px;font:700 .82rem/1 Arial,sans-serif;text-decoration:underline;text-underline-offset:3px}
.nz-invite__later:hover{color:#102238}

.nz-invite__close{color:#102238;background:#fffdf9e6;border:1px solid #d7cab2;border-radius:50%;place-items:center;width:36px;height:36px;padding:0;font-size:1.4rem;line-height:1;display:grid;position:absolute;top:12px;right:12px}
.nz-invite__close:hover{background:#f0e9dc}

.nz-invite__cta:focus-visible,.nz-invite__later:focus-visible,.nz-invite__close:focus-visible{outline-offset:3px;outline:3px solid #102238}

@keyframes nz-invite-in{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}

@media (width<=680px){
  .nz-invite{place-items:end center}
  .nz-invite__panel{border-bottom-right-radius:0;border-bottom-left-radius:0;grid-template-rows:132px minmax(0,1fr);grid-template-columns:minmax(0,1fr);width:100%;max-height:calc(100dvh - 24px);animation-name:nz-invite-up}
  .nz-invite__art{object-position:50% 38%;height:132px}
  .nz-invite__copy{padding:20px 20px 22px;overflow-y:auto}
  .nz-invite__title{font-size:1.32rem}
  .nz-invite__text{margin-top:9px;font-size:.87rem}
  .nz-invite__cta{min-height:52px;margin-top:16px;font-size:.95rem}
}
@keyframes nz-invite-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){
  .nz-invite__panel{animation:none}
  .nz-invite__cta{transition:none}
}
