/* The legal pages (/privacy-policy, /cookie-preferences, /terms-of-use,
   /do-not-sell), on top of styles.css — whose "Legal pages" block lays out
   the header, heading, notice, contents and body. What follows is only what
   that block never had: the small atoms the pages use, the cookie switches
   and the privacy request form. */

.icon-sheet{ position:absolute; width:0; height:0; overflow:hidden; }
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
/* the field only a bot fills in */
.hp{ position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }

.btn--outline{ --btn-bg:transparent; --btn-fg:var(--ink); --btn-ring:var(--rule); }
.btn--ghost{ --btn-bg:transparent; --btn-fg:var(--ink); --btn-ring:var(--rule); }
.btn--green{ --btn-bg:var(--emerald); --btn-fg:var(--bone); }
@media (hover:hover) and (pointer:fine){
  .btn--outline:hover,.btn--ghost:hover{ --btn-bg:var(--ink); --btn-fg:var(--bone); --btn-ring:var(--ink); }
  .btn--green:hover{ --btn-bg:var(--emerald-d); --btn-fg:var(--bone); }
}
.btn[disabled]{ opacity:.6; cursor:progress; }

/* the footer is the landing page's own (lp.css .lpfoot); its legal strip
   rules are scoped to .lp there, so they are repeated for these pages */
.legal-page .lpfoot{ margin-top:clamp(40px,6vw,72px); }
.legal-page .lpfoot .shell{ width:min(100%, 1180px); margin-inline:auto; padding-left:max(20px, env(safe-area-inset-left, 0px)); padding-right:max(20px, env(safe-area-inset-right, 0px)); }
.legal-page .legal-strip{
  position:relative; z-index:3;
  background:var(--ink); margin:0; justify-content:center; border-top:0;
  padding:0 max(20px, env(safe-area-inset-right, 0px)) 1.6rem max(20px, env(safe-area-inset-left, 0px));
}
.legal-page .legal-strip a{ color:rgba(243,244,244,.7); }
.legal-page .legal-strip [aria-current="page"]{ color:#fff; font-weight:600; }
@media (hover:hover) and (pointer:fine){ .legal-page .legal-strip a:hover{ color:#fff; } }

/* ── form atoms ── */
.field__label{
  display:block;
  font-family:var(--mono); font-size:.7rem; font-weight:500;
  letter-spacing:.07em; text-transform:uppercase;
  color:var(--muted);
  margin-bottom:.5rem;
}
.input{
  display:block; width:100%;
  padding:.92em 1em;
  font-family:var(--sans); font-size:1rem; font-weight:500;
  line-height:1.2;
  color:var(--ink);
  background:#FFFDF8;
  border:1px solid var(--line);
  border-radius:var(--r);
  transition:border-color 180ms ease, box-shadow 180ms ease;
}
.input::placeholder{ color:#6B7375; font-weight:400; }
.input:hover{ border-color:#C5BAA1; }
.input:focus{ outline:none; border-color:var(--emerald); box-shadow:0 0 0 3px rgba(14,92,74,.14); }
.input[aria-invalid="true"]{ border-color:#B3453D; box-shadow:0 0 0 3px rgba(179,69,61,.14); }

/* ── Manage Cookies: the switches ── */
.prefs{
  margin:1.6rem 0 2.4rem;
  border:1px solid var(--rule-soft);
  border-radius:var(--r);
  background:var(--card);
  padding-bottom:clamp(18px,2.4vw,24px);
}
.pref{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:clamp(18px,2.4vw,24px) clamp(18px,2.6vw,28px);
  border-bottom:1px solid var(--rule-soft);
}
.legal__body .pref__text h3{ margin:0 0 .3rem; }
.legal__body .pref__text p{ margin:0; font-size:.95rem; }
.pref__lock{
  flex:none;
  font-family:var(--mono); font-size:.7rem; letter-spacing:.07em; text-transform:uppercase;
  color:var(--emerald);
}
.switch{ position:relative; flex:none; display:inline-block; width:48px; height:28px; cursor:pointer; }
.switch input{ position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:pointer; z-index:1; }
.switch__track{
  position:absolute; inset:0; border-radius:999px;
  background:var(--rule); transition:background-color 200ms ease;
}
.switch__track::after{
  content:''; position:absolute; top:3px; left:3px;
  width:22px; height:22px; border-radius:50%;
  background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.2);
  transition:transform 200ms var(--ease-out);
}
.switch input:checked + .switch__track{ background:var(--emerald); }
.switch input:checked + .switch__track::after{ transform:translateX(20px); }
.switch input:focus-visible + .switch__track{ outline:2px solid var(--emerald); outline-offset:2px; }
.pref__actions{
  display:flex; flex-wrap:wrap; gap:10px;
  padding:clamp(18px,2.4vw,24px) clamp(18px,2.6vw,28px) 0;
}
.legal__body .pref__saved{
  margin:14px clamp(18px,2.6vw,28px) 0;
  padding:.7rem 1rem; border-radius:var(--r);
  background:var(--emerald-t); color:var(--emerald-d); font-size:.93rem;
}
.pref__saved:not(.is-on){ display:none; }
@media (max-width:560px){
  .pref__actions .btn{ flex:1 1 100%; justify-content:center; }
}

/* ── Do Not Sell: the rights request form ── */
.dns{
  position:relative;
  margin:1.6rem 0 2.4rem;
  padding:clamp(20px,3vw,32px);
  background:var(--card);
  border:1px solid var(--rule-soft);
  border-radius:var(--r);
}
.dns__grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 18px; }
.dns__field--wide{ grid-column:1 / -1; }
@media (max-width:640px){ .dns__grid{ grid-template-columns:minmax(0,1fr); } }
.dns__req{ color:var(--emerald); }
.dns__opt{ text-transform:none; letter-spacing:0; font-family:var(--sans); font-weight:400; }
.dns__select{
  appearance:none; -webkit-appearance:none;
  padding-right:2.6em; text-overflow:ellipsis; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%230E5C4A' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 1em center;
}
.legal__body .dns__hint{ margin:.5rem 0 0; font-size:.86rem; line-height:1.5; color:var(--muted); }
.dns__foot{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap:12px 20px; margin-top:26px; padding-top:22px;
  border-top:1px solid var(--rule-soft);
}
.legal__body .dns__legend{ margin:0; font-size:.86rem; color:var(--muted); }
.dns__legend span{ color:var(--emerald); }
@media (max-width:640px){
  .dns__foot{ flex-direction:column-reverse; align-items:stretch; }
  .dns .btn{ width:100%; justify-content:center; }
}
.dns__status:empty{ display:none; }
.legal__body .dns__status{
  margin:18px 0 0; padding:.85rem 1.1rem;
  border-radius:var(--r);
  border:1px solid rgba(14,92,74,.22);
  background:var(--emerald-t);
  font-size:.93rem; line-height:1.55; color:var(--emerald-d);
}
.legal__body .dns__status.is-error{
  border-color:rgba(179,69,61,.35);
  background:rgba(179,69,61,.08);
  color:#8F332C;
}
