/* Privacy and 404. Built on fleks-page.css (base); only what those two pages add. */

/* Privacy: hero with an index of the six sections */
.policy-hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(48px,7vw,120px);align-items:end}
.policy-hero .lead{max-width:30ch;text-wrap:pretty}
.policy-index{max-width:520px;width:100%;justify-self:end}
.policy-index .label{padding-bottom:16px;border-bottom:1px solid var(--bone);color:var(--bone)}
.policy-index ol{list-style:none;margin:0;padding:0}
.policy-index a{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:56px;padding:12px 0;border-bottom:1px solid var(--line-dark);color:#d9d9d2;font:600 15px/1.35 var(--body);text-decoration:none;transition:color .2s}
.policy-index a:hover{color:var(--bone)}
.policy-index-no{font:600 11px/1 var(--body);letter-spacing:.14em;color:var(--mute-dark)}
.policy-index-go{font-size:17px;line-height:1;color:var(--mute-dark);transition:transform .2s var(--ease),color .2s}
.policy-index a:hover .policy-index-go{color:var(--bone);transform:translateY(3px)}

/* Privacy: one row per section, heading left, text right */
.policy-part{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,112px);padding:clamp(48px,5.5vw,80px) 0;border-top:1px solid var(--stone)}
.policy{padding-top:clamp(72px,8vw,128px)}
.policy-part:first-child{padding-top:0;border-top:0}
.policy-part:last-child{padding-bottom:0}
.policy-head{position:sticky;top:40px;align-self:start}
.policy-no{display:flex;align-items:center;gap:10px;margin-bottom:20px;font:600 12px/1.3 var(--body);letter-spacing:.14em;color:var(--mute-light)}
.policy-no::before{content:'';width:16px;height:2px;background:var(--oxblood)}
.policy-head h2{font-size:clamp(44px,4.6vw,72px);line-height:.9;max-width:11.5ch;text-wrap:balance}
.policy .prose{max-width:62ch;padding-top:36px}
.policy .prose a{text-decoration-thickness:1px}
.policy .prose a:hover{text-decoration-color:var(--oxblood);text-decoration-thickness:2px}
.prose .policy-status{display:flex;align-items:baseline;gap:14px;padding:18px 22px;border:1px solid var(--stone);background:var(--bone-2);font-weight:600;line-height:1.5;color:var(--ink)}
.prose .policy-status::before{content:'';flex:none;width:16px;height:2px;background:var(--oxblood);transform:translateY(-5px)}
.prose .policy-status+p{margin-top:28px}

/* Privacy: contact band */
.policy-contact .split{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:end}
.policy-contact h2{max-width:none}
.policy-contact .lead{max-width:36ch;text-wrap:pretty}
.policy-next{display:grid;gap:clamp(40px,5vw,56px);max-width:560px;width:100%;justify-self:end}
.policy-next>.button{width:100%}
.policy-next nav .label{padding-bottom:16px;border-bottom:1px solid var(--ink)}
.policy-next nav a{display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:60px;border-bottom:1px solid var(--sand-line);font-weight:600;text-decoration:none}
.policy-next nav a span{transition:transform .2s var(--ease)}
.policy-next nav a:hover span{transform:translateX(4px)}

/* 404: one full-height dark screen */
.lost{min-height:100svh;display:flex;align-items:flex-end;padding-bottom:clamp(72px,11vh,136px)}
.lost .shell{width:100%}
.lost .page-mega{left:0;right:-.04em;top:50%;bottom:auto;transform:translateY(-62%);text-align:right;font-size:clamp(300px,52vw,860px);color:rgba(245,245,240,.05)}
.lost h1{font-size:clamp(76px,11.5vw,188px);max-width:8ch}
.lost .lead{max-width:34ch;text-wrap:pretty}
.lost-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:44px}
.lost-actions .button{min-width:250px}
.on-dark .button.button-ghost{background:transparent;color:var(--bone);border-color:rgba(245,245,240,.45)}
.on-dark .button.button-ghost:hover{background:var(--bone);color:var(--ink);box-shadow:none}
.lost-main+.site-footer{border-top:1px solid var(--line-dark)}

@media(max-width:899px){
  .policy-hero-grid{grid-template-columns:1fr;gap:56px}
  .policy-index{justify-self:stretch;max-width:none}
  .policy-part{grid-template-columns:1fr;gap:24px}
  .policy-head{position:static}
  .policy .prose{padding-top:0}
  .policy-contact .split{grid-template-columns:1fr}
  .policy-next{justify-self:stretch;max-width:none}
}
@media(max-width:699px){
  .policy-hero h1{font-size:clamp(60px,17vw,72px)}
  .policy-hero .lead{max-width:none}
  .policy-index a{grid-template-columns:40px minmax(0,1fr) auto;min-height:52px}
  .policy-head h2{font-size:clamp(42px,12vw,56px)}
  .policy-no{margin-bottom:14px}
  .prose .policy-status{padding:16px 18px}
  .policy-contact h2{font-size:clamp(52px,15vw,72px)}
  .lost{padding-bottom:56px}
  .lost .page-mega{top:30%;font-size:74vw;right:-.06em}
  .lost h1{font-size:clamp(68px,21vw,96px)}
  .lost-actions{flex-direction:column;margin-top:36px}
  .lost-actions .button{width:100%;min-width:0}
}
