/* ==========================================================================
   prv — Legal / Privacy Policy page (LIGHT)
   Namespace: prv-  |  Scoped tokens only, no :root writes, no element selectors
   Palette matches docs.css so both pages read as one system.
   ========================================================================== */

.prv-page{
  /* ---- scoped tokens ---- */
  --prv-page-bg:#ffffff;
  --prv-raise:#f6f8fa;
  --prv-soft:#fbfcfd;

  --prv-ink:#1f1f1f;
  --prv-body:#3c4043;
  --prv-muted:#5f6368;
  --prv-faint:#80868b;

  --prv-line:#e3e6ea;
  --prv-line-soft:#eef1f4;

  --prv-accent:#1a73e8;
  --prv-accent-dim:#a8c7fa;
  --prv-accent-hover:#1557b0;

  --prv-note-bg:#f4f8ff;
  --prv-note-line:#c6dafc;
  --prv-warn-bg:#fff8f0;
  --prv-warn-line:#f0b95f;

  /* MUST match the rendered height of your sticky <x-home-header />.
     Set to 0px if that header is not sticky. */
  --prv-header-h:72px;
  --prv-tabs-h:56px;

  --prv-side-w:340px;
  --prv-gutter:clamp(20px, 3vw, 44px);
  --prv-read-w:760px;

  --prv-font:'DM Sans','Helvetica Neue',Arial,sans-serif;
  --prv-ease:cubic-bezier(.2,.7,.2,1);

  background:var(--prv-page-bg);
  color:var(--prv-ink);
  font-family:var(--prv-font);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

.prv-page,
.prv-page *,
.prv-page *::before,
.prv-page *::after{
  box-sizing:border-box;
}


/* ==========================================================================
   TAB BAR
   ========================================================================== */

.prv-tabs{
  position:sticky;
  top:var(--prv-header-h);
  z-index:30;
  background:var(--prv-page-bg);
  border-bottom:1px solid var(--prv-line);
}

.prv-tabs-scroll{
  display:flex;
  align-items:stretch;
  gap:clamp(8px, 2vw, 28px);
  height:var(--prv-tabs-h);
  padding-inline:var(--prv-gutter);
  overflow-x:auto;
  scrollbar-width:none;
}
.prv-tabs-scroll::-webkit-scrollbar{ display:none; }

.prv-tab{
  display:flex;
  align-items:center;
  flex:0 0 auto;
  padding:0 6px;
  border-bottom:3px solid transparent;
  color:var(--prv-ink);
  font-size:15.5px;
  font-weight:500;
  line-height:1;
  text-decoration:none;
  white-space:nowrap;
  transition:color .16s ease, border-color .16s ease;
}
.prv-tab:hover{ color:#000000; }
.prv-tab.is-on{
  color:var(--prv-accent);
  border-bottom-color:var(--prv-accent);
}
.prv-tab:focus-visible{
  outline:2px solid var(--prv-accent);
  outline-offset:-4px;
  border-radius:4px;
}


/* ==========================================================================
   SHELL
   ========================================================================== */

.prv-shell{
  position:relative;
  display:grid;
  grid-template-columns:var(--prv-side-w) minmax(0, 1fr);
  align-items:start;
  width:100%;
}

/* pure-CSS mobile toggle: hidden and inert on desktop */
.prv-cb{
  position:absolute;
  width:0;
  height:0;
  opacity:0;
  pointer-events:none;
}
.prv-mtoggle{ display:none; }


/* ==========================================================================
   SECTION NAV
   ========================================================================== */

.prv-side{
  position:sticky;
  top:calc(var(--prv-header-h) + var(--prv-tabs-h));
  height:calc(100vh - var(--prv-header-h) - var(--prv-tabs-h));
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:26px 6px 60px 0;
  border-right:1px solid var(--prv-line);

  scrollbar-width:thin;
  scrollbar-color:#c9ced4 transparent;
}
.prv-side::-webkit-scrollbar{ width:12px; }
.prv-side::-webkit-scrollbar-track{ background:transparent; }
.prv-side::-webkit-scrollbar-thumb{
  background:#c9ced4;
  border:3px solid var(--prv-page-bg);
  border-radius:99px;
}
.prv-side::-webkit-scrollbar-thumb:hover{ background:#aeb4bb; }

.prv-nav-list{
  margin:0;
  padding:0;
  list-style:none;
}

.prv-nav-link{
  display:block;
  position:relative;
  padding:15px 20px 15px var(--prv-gutter);
  color:var(--prv-body);
  font-size:16px;
  font-weight:400;
  line-height:1.45;
  text-decoration:none;
  transition:color .14s ease, background-color .14s ease;
}
.prv-nav-link:hover{
  color:var(--prv-ink);
  background:var(--prv-line-soft);
}
.prv-nav-link.is-on{
  color:var(--prv-accent);
  font-weight:500;
  background:#f1f5fd;
}
.prv-nav-link.is-on::before{
  content:"";
  position:absolute;
  left:0;
  top:8px;
  bottom:8px;
  width:3px;
  border-radius:0 3px 3px 0;
  background:var(--prv-accent);
}
.prv-nav-link.is-on:hover{ color:var(--prv-accent); background:#f1f5fd; }
.prv-nav-link:focus-visible{
  outline:2px solid var(--prv-accent);
  outline-offset:-3px;
}


/* ==========================================================================
   MAIN
   ========================================================================== */

.prv-main{
  min-width:0;
  padding:clamp(40px, 6vw, 84px) var(--prv-gutter) 120px clamp(28px, 5vw, 80px);
}

.prv-eyebrow{
  margin:0 0 clamp(22px, 3vw, 34px);
  font-size:13px;
  font-weight:600;
  line-height:1.3;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:var(--prv-muted);
}

.prv-lead{
  max-width:var(--prv-read-w);
  margin:0 0 clamp(24px, 3vw, 36px);
  font-size:clamp(1.6rem, 2.6vw, 2.3rem);
  font-weight:400;
  line-height:1.32;
  letter-spacing:-.014em;
  color:var(--prv-ink);
  text-wrap:balance;
}

.prv-p{
  max-width:var(--prv-read-w);
  margin:0 0 18px;
  font-size:16.5px;
  font-weight:400;
  line-height:1.72;
  color:var(--prv-body);
}
.prv-p:last-child{ margin-bottom:0; }

.prv-meta{
  max-width:var(--prv-read-w);
  margin:0 0 clamp(28px, 4vw, 44px);
  font-size:14px;
  line-height:1.5;
  color:var(--prv-faint);
}

.prv-h2,
.prv-lead{
  scroll-margin-top:calc(var(--prv-header-h) + var(--prv-tabs-h) + 28px);
}

.prv-sec{
  max-width:var(--prv-read-w);
  padding-top:clamp(40px, 5vw, 68px);
}

.prv-h2{
  margin:0 0 20px;
  font-size:clamp(1.3rem, 1.9vw, 1.7rem);
  font-weight:500;
  line-height:1.28;
  letter-spacing:-.008em;
  color:var(--prv-ink);
}

.prv-h3{
  margin:30px 0 12px;
  font-size:16.5px;
  font-weight:600;
  line-height:1.4;
  color:var(--prv-ink);
}

.prv-ul{
  max-width:var(--prv-read-w);
  margin:0 0 20px;
  padding-left:24px;
  list-style:disc;
}
.prv-li{
  margin-bottom:11px;
  font-size:16.5px;
  line-height:1.72;
  color:var(--prv-body);
}
.prv-li::marker{ color:var(--prv-faint); }
.prv-li:last-child{ margin-bottom:0; }

.prv-strong{ font-weight:600; color:var(--prv-ink); }

.prv-a{
  color:var(--prv-accent);
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-thickness:1px;
}
.prv-a:hover{ color:var(--prv-accent-hover); }


/* ---- callout card ---- */
.prv-callout{
  display:grid;
  grid-template-columns:40px minmax(0, 1fr);
  gap:clamp(18px, 2.4vw, 32px);
  align-items:start;
  max-width:var(--prv-read-w);
  margin:clamp(28px, 3.6vw, 48px) 0 0;
}
.prv-callout-ico{
  display:block;
  color:var(--prv-accent);
}
.prv-callout-t{
  margin:0 0 8px;
  font-size:16.5px;
  font-weight:600;
  line-height:1.4;
  color:var(--prv-ink);
}
.prv-callout-d{
  margin:0 0 10px;
  font-size:16.5px;
  line-height:1.6;
  color:var(--prv-body);
}
.prv-callout-a{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:var(--prv-accent);
  font-size:16.5px;
  line-height:1.5;
  text-decoration:underline;
  text-underline-offset:4px;
  text-decoration-thickness:1px;
}
.prv-callout-a:hover{ color:var(--prv-accent-hover); }


/* ---- note ---- */
.prv-note{
  max-width:var(--prv-read-w);
  margin:22px 0 0;
  padding:16px 20px;
  border:1px solid var(--prv-note-line);
  border-left-width:3px;
  border-radius:0 10px 10px 0;
  background:var(--prv-note-bg);
}
.prv-note .prv-p{ font-size:16px; line-height:1.65; }
.prv-note--warn{
  border-color:var(--prv-warn-line);
  background:var(--prv-warn-bg);
}


/* ---- table ---- */
.prv-table-wrap{
  max-width:var(--prv-read-w);
  margin:6px 0 0;
  overflow-x:auto;
  border:1px solid var(--prv-line);
  border-radius:12px;
}
.prv-table{
  width:100%;
  border-collapse:collapse;
  font-size:16px;
}
.prv-th{
  padding:14px 18px;
  border-bottom:1px solid var(--prv-line);
  background:var(--prv-raise);
  color:var(--prv-ink);
  font-weight:600;
  line-height:1.4;
  text-align:left;
  white-space:nowrap;
}
.prv-td{
  padding:14px 18px;
  border-bottom:1px solid var(--prv-line-soft);
  color:var(--prv-body);
  line-height:1.6;
  vertical-align:top;
}
.prv-table tbody tr:last-child .prv-td{ border-bottom:0; }


/* ---- contact block ---- */
.prv-contact{
  display:grid;
  grid-template-columns:110px minmax(0, 1fr);
  gap:10px 20px;
  max-width:var(--prv-read-w);
  margin:6px 0 0;
}
.prv-contact-l{
  margin:0;
  font-size:15px;
  font-weight:600;
  line-height:1.6;
  color:var(--prv-ink);
}
.prv-contact-v{
  margin:0;
  font-size:16px;
  line-height:1.6;
  color:var(--prv-body);
}

.prv-foot{
  max-width:var(--prv-read-w);
  margin:clamp(48px, 6vw, 80px) 0 0;
  padding-top:26px;
  border-top:1px solid var(--prv-line);
  font-size:14px;
  line-height:1.5;
  color:var(--prv-faint);
}


/* ==========================================================================
   RESPONSIVE
   ========================================================================== */

@media (max-width:1080px){
  .prv-page{ --prv-side-w:290px; }
  .prv-nav-link{ font-size:15px; padding-block:13px; }
}

@media (max-width:900px){

  .prv-shell{ grid-template-columns:minmax(0, 1fr); }

  /* ---- mobile toggle ---- */
  .prv-mtoggle{
    display:flex;
    align-items:center;
    gap:10px;
    margin:16px var(--prv-gutter) 0;
    padding:13px 18px;
    border:1px solid var(--prv-line);
    border-radius:12px;
    background:var(--prv-raise);
    color:var(--prv-ink);
    font-size:15.5px;
    font-weight:500;
    line-height:1;
    cursor:pointer;
    user-select:none;
    -webkit-tap-highlight-color:transparent;
  }
  .prv-mtoggle:hover{ background:var(--prv-line-soft); }
  .prv-mtoggle-t{ flex:1 1 auto; }
  .prv-mtoggle-c{
    flex:0 0 auto;
    color:var(--prv-muted);
    transition:transform .2s var(--prv-ease);
  }
  #prvNav:checked ~ .prv-mtoggle .prv-mtoggle-c{ transform:rotate(180deg); }

  /* ---- panel: overlays, does not push content ---- */
  .prv-side{
    position:absolute;
    top:76px;                 /* sits just under the toggle button */
    left:var(--prv-gutter);
    right:var(--prv-gutter);
    z-index:25;
    height:auto; 

  }
}