/* Newsletter signup (inline block + pop-up). Uses the site tokens from base.html. */
.nl-block{margin-top:var(--space-12); padding:var(--space-10) var(--space-8); background:#fff;
  border:1px solid var(--pline,var(--border)); border-radius:var(--radius-lg,4px);
  display:grid; gap:var(--space-8); grid-template-columns:minmax(0,5fr) minmax(0,7fr); align-items:start}
@media(max-width:900px){.nl-block{grid-template-columns:1fr; padding:var(--space-8) var(--space-5); gap:var(--space-6)}}
.nl-block h2{font-size:var(--t-xl); margin:var(--space-2) 0 var(--space-4)}
.nl-sub{color:#4a4d52; font-size:.92rem; line-height:1.65; margin:0}
.nl-form{display:flex; flex-direction:column; gap:var(--space-4)}
.nl-grid{display:grid; gap:var(--space-4); grid-template-columns:1fr 1fr}
@media(max-width:560px){.nl-grid{grid-template-columns:1fr}}
.nl-f{display:flex; flex-direction:column; gap:.35rem; min-width:0; border:0; padding:0}
.nl-f-wide,.nl-f-phone,.nl-c2{grid-column:1/-1}
.nl-f label,.nl-f legend{font-size:.68rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--ink); padding:0}
.nl-f small{text-transform:none; letter-spacing:0; font-size:.75rem; color:#5f6368; font-weight:400}
.nl-req{color:#9a6b2c; font-style:normal}
.nl-tel{display:grid; grid-template-columns:minmax(7.5rem,10rem) 1fr; gap:var(--space-2)}
.nl-opts{display:flex; flex-wrap:wrap; gap:var(--space-2); margin-top:.15rem}
.nl-opt{position:relative; cursor:pointer}
.nl-opt input{position:absolute; opacity:0; width:1px; height:1px}
.nl-opt span{display:inline-block; padding:.5rem .9rem; border:1px solid var(--border-2); border-radius:100px;
  font-size:.84rem; color:var(--ink); background:#fff; transition:border-color .15s, background .15s, color .15s}
.nl-opt input:checked + span{border-color:var(--gold-deep); background:var(--gold-deep); color:#fff}
.nl-opt input:focus-visible + span{outline:2px solid var(--gold); outline-offset:2px}
.nl-chk{display:flex; gap:.7rem; align-items:flex-start; font-size:.84rem; line-height:1.55; color:#33363b; cursor:pointer}
.nl-chk input{flex:0 0 auto; width:1.15rem; height:1.15rem; margin-top:.15rem; accent-color:var(--gold-deep); cursor:pointer}
.nl-chk a{color:var(--gold-deep); text-decoration:underline; text-underline-offset:2px}
.nl-err{color:#a12a1f; font-size:.8rem; line-height:1.4}
.nl-err:empty{display:none}
.nl-f .inp[aria-invalid="true"],.nl-chk.is-bad{border-color:#a12a1f}
.nl-chk.is-bad span{color:#a12a1f}
.nl-btn{align-self:flex-start; min-width:13rem}
.nl-btn[disabled]{opacity:.65; cursor:wait}
.nl-note{font-size:.76rem; color:#5f6368; margin:0}
.nl-note a{color:inherit; text-decoration:underline; text-underline-offset:2px}
.nl-hp{position:absolute; left:-9999px; width:1px; height:1px; opacity:0}
.nl-ok{grid-column:1/-1; padding:var(--space-6); border:1px solid var(--pline,var(--border)); background:#fbf8f2; outline:none}
.nl-ok-h{font-size:1.1rem; font-weight:500; color:var(--ink); margin:0 0 .4rem; outline:none}
.nl-ok-s{font-size:.88rem; color:#4a4d52; margin:0}
@media(max-width:560px){.nl-btn{align-self:stretch}}

/* dark variant (footer) */
.nl-dark{background:transparent; border-color:oklch(1 0 0 / .14); margin:0 0 var(--space-12)}
.nl-dark h2,.nl-dark .nl-f label,.nl-dark .nl-f legend,.nl-dark .nl-ok-h{color:#fff}
.nl-dark .nl-sub,.nl-dark .nl-chk,.nl-dark .nl-ok-s{color:var(--on-dark-mute)}
.nl-dark .nl-f small,.nl-dark .nl-note{color:oklch(1 0 0 / .62)}
.nl-dark .nl-chk a{color:var(--gold-bright)}
.nl-dark .nl-req{color:var(--gold-bright)}
.nl-dark .nl-err{color:#ffb4a8}
.nl-dark .nl-opt span{background:transparent; color:#fff; border-color:oklch(1 0 0 / .3)}
.nl-dark .nl-opt input:checked + span{background:var(--gold); border-color:var(--gold); color:#fff}
.nl-dark .nl-ok{background:oklch(1 0 0 / .05); border-color:oklch(1 0 0 / .14)}
.nl-dark .inp{background:oklch(1 0 0 / .06); border-color:oklch(1 0 0 / .26); color:#fff}
.nl-dark select.inp option{color:#1a1a1a}
.nl-dark .ftr-a, .ftr .nl-block a{font-size:inherit}

/* ---------- pop-up ---------- */
.nlp-back{position:fixed; inset:0; z-index:8990; background:oklch(0.19 .008 250 / .38);
  opacity:0; transition:opacity .25s var(--ease)}
.nlp-back.is-in{opacity:1}
.nlp{position:fixed; z-index:9001; left:50%; top:50%; width:min(36rem, calc(100vw - 2rem));
  max-height:calc(100vh - 2rem); overflow:auto; background:#fff; border:1px solid var(--pline,var(--border));
  box-shadow:0 24px 60px -18px oklch(0.19 .008 250 / .38); padding:var(--space-8);
  transform:translate(-50%,-46%); opacity:0; transition:opacity .25s var(--ease), transform .25s var(--ease)}
.nlp.is-in{opacity:1; transform:translate(-50%,-50%)}
.nlp h2{font-size:var(--t-lg); margin:var(--space-2) 0 var(--space-3); padding-right:2rem}
.nlp-h3{font-size:1.05rem; margin:var(--space-5) 0 var(--space-2)}
.nlp .nl-sub{margin-bottom:var(--space-5)}
.nlp-row{display:grid; gap:var(--space-3); grid-template-columns:1fr 1fr}
.nlp-reg{grid-column:1/-1}
.nlp-x{position:absolute; top:.6rem; right:.6rem; width:2.6rem; height:2.6rem; display:grid; place-items:center;
  background:none; border:0; color:var(--ink); cursor:pointer; border-radius:50%}
.nlp-x:hover{background:#f2efe9}
.nlp-btns{display:flex; gap:var(--space-3); flex-wrap:wrap}
.nlp .nl-btn{min-width:0}
@media(max-width:640px){
  /* mobile: compact bottom card, no backdrop, page stays usable */
  .nlp-back{display:none}
  .nlp{left:.5rem; right:.5rem; top:auto; bottom:.5rem; width:auto; max-height:64vh;
    padding:var(--space-5) var(--space-4) var(--space-4); transform:translateY(16px)}
  .nlp.is-in{transform:none}
  .nlp h2{font-size:1rem; letter-spacing:.04em; margin:.2rem 0 .7rem}
  .nlp .metaline{font-size:.62rem}
  .nlp-step1 > .nl-sub{display:none}
  .nlp-row{grid-template-columns:1fr 1fr; gap:var(--space-2)}
  .nlp .inp{padding:.5rem .65rem; font-size:16px}
  .nlp .nl-f{gap:.2rem}
  .nlp .nl-f label{font-size:.6rem}
  .nlp .nl-f small{display:none}
  .nlp .nl-btn{padding:.7rem 1rem}
  .nlp .nl-form{gap:var(--space-3)}
  .nlp .nl-chk{font-size:.76rem}
  .nlp .nl-btn{align-self:stretch}
  .nlp .nl-note{font-size:.7rem}
}
@media(prefers-reduced-motion:reduce){.nlp,.nlp-back{transition:opacity .01ms}}

/* bottom-of-page block (white, above the dark footer) */
.nl-foot{padding-bottom:var(--space-12)}
.nl-foot .nl-block{margin-top:var(--space-8)}
