/* checklist.css — page-specific layout for checklist.html: the room-by-room
   scope guide. Wider hero than the legal pages, a three-tier legend, per-zone
   task grids, the "good to know" / excluded info blocks and the closing CTA.
   Chrome + the gold eyebrow come from site.css; reveal from animations.css.
   Cascade: tokens -> base -> site -> animations -> checklist.css. */

/* Wider reading measure than the shared 1120px default; 28px inset literal. */
.container{max-width:1000px}

/* ---------- hero ---------- */
header{padding:150px 0 60px;text-align:center}
h1{font-family:var(--serif);font-weight:300;font-size:clamp(2.4rem,6vw,3.8rem);line-height:1.02;letter-spacing:-.015em;margin-bottom:22px}
h1 .em{font-style:italic;color:var(--gold-soft)}
header p{color:var(--ink-soft);max-width:56ch;margin:0 auto;font-size:1.02rem}

/* ---------- tier legend, which is also the filter ---------- */
/* The three cards are links: with js/pages/checklist.js they filter the page in
   place and write ?tier= into the address bar; without it they are still honest
   navigation to the same page, which simply shows everything.

   A card has to LOOK like a control, so each carries its own action line and the
   whole card is the target - no button inside a card. The instruction sits ABOVE
   the row, where it is read before the cards rather than after them. */
.tiers-hint{margin:54px 0 14px;font-size:.95rem;color:var(--ink-soft);letter-spacing:.01em}
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0 0 16px;align-items:stretch}
@media(max-width:760px){.tiers{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.tiers{grid-template-columns:1fr}}
.tier{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line-soft);border-radius:4px;
  padding:22px 20px;text-decoration:none;color:inherit;cursor:pointer;
  transition:border-color var(--dur) var(--ease-standard),background-color var(--dur) var(--ease-standard),
             transform var(--dur) var(--ease-settle)}
.tier:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
@media(hover:hover) and (pointer:fine){
  .tier:hover{border-color:var(--gold);background:rgba(201,165,88,.07);transform:translateY(-2px)}
  .tier:hover .tier-act{color:var(--gold)}
}
.tier:active{border-color:var(--gold);background:rgba(201,165,88,.07)}

/* The action line IS the affordance - part of the card, never a button inside it. */
.tier-act{margin-top:auto;padding-top:16px;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold-soft);transition:color var(--dur) var(--ease-standard)}
.tier-act .act-off::after{content:" \2192"}
.tier-act .act-on{display:none}
.tier-act .act-on::before{content:"\2713  "}
.tier.is-on .tier-act .act-off{display:none}
.tier.is-on .tier-act .act-on{display:inline}

/* Selected reads as a filled card, not as a slightly brighter outline. */
.tier.is-on{border-color:var(--gold);background:rgba(201,165,88,.14);box-shadow:inset 0 0 0 1px rgba(201,165,88,.45)}
.tier.is-on h3{color:var(--gold)}
.tier.is-on .tier-act{color:var(--gold)}
/* The others step back by surface and by colour - never by opacity, which would drag
   their copy under the 4.5:1 the palette is chosen to hold. */
.tiers.filtered .tier:not(.is-on){background:transparent;border-color:var(--line-soft)}
.tiers.filtered .tier:not(.is-on) h3{color:var(--ink-soft)}
.tier h3{font-family:var(--serif);font-weight:400;font-size:1.15rem;color:var(--gold-soft);margin-bottom:8px}
.tier p{font-size:.84rem;color:var(--ink-soft);line-height:1.5}

/* The filter's state and its off switch travel together: one line that says what is
   on screen, with the reset as a control right beside it rather than a stray link in
   the opposite corner. */
/* A sentence, not a flex row: flex would make each text node its own item and blow
   the word spacing apart. The reset rides along as an inline control. */
.tiers-status{margin:0 0 70px;font-size:.9rem;color:var(--ink-soft);line-height:2}
.tiers-status[hidden]{display:none}
.tiers-status b{color:var(--gold);font-weight:400}
.tiers-reset{display:inline-block;margin-left:12px;vertical-align:middle;
  font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);text-decoration:none;
  border:1px solid var(--line);border-radius:40px;padding:7px 14px;line-height:1}
.tiers-reset::before{content:"\00d7  ";color:var(--gold)}
@media(hover:hover) and (pointer:fine){.tiers-reset:hover{border-color:var(--gold);color:var(--gold)}}
.tiers-reset:active{border-color:var(--gold);color:var(--gold)}
.tiers-reset:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

/* ---------- zones / task grids ---------- */
section{padding:0 0 70px}
.zone{margin-bottom:54px}
.zone-head{display:flex;align-items:baseline;gap:16px;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:28px}
.zone-head h2{font-family:var(--serif);font-weight:300;font-size:1.9rem}
.zone-head .num{font-family:var(--serif);font-style:italic;color:var(--gold);font-size:1.1rem}
.tier-block{margin-bottom:26px}
/* .tasks and .excl set display, which outranks the UA rule for [hidden]. */
.tier-block[hidden]{display:none}

/* A room the chosen level does not cover keeps its heading and says which level
   does - dimmed by colour rather than by opacity, so the upsell link keeps full
   contrast and stays readable. */
.zone.is-muted{margin-bottom:34px}
.zone.is-muted .zone-head{margin-bottom:0;border-bottom-color:var(--line-soft)}
/* Moderate: the heading steps down from --ink to --ink-soft (15.66:1 -> 8.38:1 on
   --bg) and stays the largest thing in the row. The note used to be BRIGHTER than the
   heading it belongs to; it now shares the tone and is beaten on size and face
   (30.4px serif against 14.1px sans), so neither drops below AA. */
.zone.is-muted .zone-head h2{color:var(--ink-soft)}
.zone.is-muted .zone-head .num{color:rgba(201,165,88,.5)}
.zone-note{margin-top:14px;font-size:.88rem;color:var(--ink-soft);letter-spacing:.01em}
.zone-note a{color:var(--gold-soft);text-decoration:none;border-bottom:1px solid rgba(201,165,88,.35)}
@media(hover:hover) and (pointer:fine){.zone-note a:hover{border-bottom-color:var(--gold)}}
.tier-block .tlabel{display:inline-block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);
  border:1px solid var(--line);border-radius:40px;padding:5px 14px;margin-bottom:16px}
.tier-block .adds{font-size:.8rem;color:var(--ink-dim);font-style:italic;margin-bottom:14px}
ul.tasks{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:8px 28px}
@media(max-width:680px){ul.tasks{grid-template-columns:1fr}}
ul.tasks li{position:relative;padding-left:22px;font-size:.92rem;color:var(--ink-soft);line-height:1.5}
ul.tasks li::before{content:"";position:absolute;left:0;top:9px;width:7px;height:7px;border:1px solid var(--gold);transform:rotate(45deg)}

/* ---------- not-included block ---------- */
.excluded{background:var(--bg-2);border:1px solid var(--line-soft);border-radius:4px;padding:40px 38px;margin-top:30px}
@media(max-width:520px){.excluded{padding:28px 22px}}
.excluded h2{font-family:var(--serif);font-weight:300;font-size:1.6rem;margin-bottom:10px}
.excluded h2 .em{font-style:italic;color:var(--gold-soft)}
.excluded .lead{color:var(--ink-soft);font-size:.92rem;margin-bottom:24px;max-width:60ch}
ul.excl{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:8px 28px}
@media(max-width:680px){ul.excl{grid-template-columns:1fr}}
ul.excl li{position:relative;padding-left:22px;font-size:.9rem;color:var(--ink-dim);line-height:1.5}
ul.excl li::before{content:"\00d7";position:absolute;left:0;top:0;color:var(--ink-dim)}
.excluded .fine{margin-top:24px;padding-top:20px;border-top:1px solid var(--line-soft);font-size:.84rem;color:var(--ink-dim);line-height:1.6}

/* ---------- good-to-know info block ---------- */
.info-block{background:var(--bg-2);border:1px solid var(--line-soft);border-radius:4px;padding:36px 38px;margin:0 0 54px}
@media(max-width:520px){.info-block{padding:24px 20px}}
.info-block h2{font-family:var(--serif);font-weight:300;font-size:1.5rem;margin-bottom:14px}
.info-block h2 .em{font-style:italic;color:var(--gold-soft)}
ul.info-items{list-style:none;display:grid;gap:10px}
ul.info-items li{position:relative;padding-left:22px;font-size:.92rem;color:var(--ink-soft);line-height:1.5;max-width:72ch}
ul.info-items li::before{content:"";position:absolute;left:0;top:9px;width:7px;height:7px;border:1px solid var(--gold);transform:rotate(45deg)}

/* ---------- closing CTA ---------- */
.cta{text-align:center;padding:30px 0 100px}
.cta a{display:inline-block;background:var(--gold);color:var(--bg);font-weight:500;font-size:.9rem;letter-spacing:.06em;
  text-transform:uppercase;padding:16px 36px;border-radius:2px;text-decoration:none;transition:all .3s}
@media(hover:hover) and (pointer:fine){.cta a:hover{background:var(--gold-soft);transform:translateY(-2px)}}
.cta a:active{background:var(--gold-soft)}
