/* DVSTUDIO V125 — privacy, consent and legal pages */
:root{
  --dv-consent-bg:#f6f4ef;
  --dv-consent-ink:#061927;
  --dv-consent-muted:#637483;
  --dv-consent-line:rgba(6,25,39,.14);
  --dv-consent-accent:#79afd0;
}

/* Footer legal controls */
.footer-links .footer-legal-link,
.footer-links .cookie-settings-link{
  font:inherit;
  color:inherit;
}
.footer-links .cookie-settings-link{
  appearance:none;
  border:0;
  padding:0;
  margin:0;
  background:none;
  cursor:pointer;
  text-decoration:none;
}
.footer-links .cookie-settings-link:hover,
.footer-links .cookie-settings-link:focus-visible{
  text-decoration:underline;
  text-underline-offset:.24em;
}

/* Consent banner */
.dv-consent-banner{
  position:fixed;
  z-index:2147482500;
  left:max(16px,env(safe-area-inset-left));
  right:max(16px,env(safe-area-inset-right));
  bottom:max(16px,calc(env(safe-area-inset-bottom) + 10px));
  width:min(780px,calc(100vw - 32px));
  margin-inline:auto;
  color:var(--dv-consent-ink);
  background:rgba(246,244,239,.96);
  border:1px solid rgba(6,25,39,.16);
  border-radius:24px;
  box-shadow:0 24px 80px rgba(6,25,39,.26);
  -webkit-backdrop-filter:blur(18px) saturate(1.05);
  backdrop-filter:blur(18px) saturate(1.05);
  padding:22px;
}
.dv-consent-banner[hidden]{display:none!important}
.dv-consent-kicker{
  display:block;
  margin-bottom:8px;
  font-size:11px;
  line-height:1;
  letter-spacing:.13em;
  text-transform:uppercase;
  font-weight:800;
  color:#598bac;
}
.dv-consent-banner h2,
.dv-consent-panel h2{
  margin:0;
  color:var(--dv-consent-ink);
  font-family:Arial,Helvetica,sans-serif;
  font-size:clamp(23px,3vw,34px);
  line-height:1.02;
  letter-spacing:-.035em;
  font-weight:800;
}
.dv-consent-banner p,
.dv-consent-panel p{
  margin:12px 0 0;
  color:var(--dv-consent-muted);
  font-size:15px;
  line-height:1.5;
}
.dv-consent-banner a,
.dv-consent-panel a{
  color:var(--dv-consent-ink);
  text-decoration:underline;
  text-underline-offset:.2em;
}
.dv-consent-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}
.dv-consent-button{
  min-height:46px;
  border-radius:999px;
  border:1px solid var(--dv-consent-line);
  padding:0 18px;
  background:transparent;
  color:var(--dv-consent-ink);
  cursor:pointer;
  font:700 13px/1 Arial,Helvetica,sans-serif;
  letter-spacing:.015em;
  transition:transform .2s ease,background .2s ease,color .2s ease,border-color .2s ease;
}
.dv-consent-button:hover{transform:translateY(-1px)}
.dv-consent-button:focus-visible{outline:3px solid rgba(121,175,208,.5);outline-offset:2px}
.dv-consent-button--primary{
  background:var(--dv-consent-ink);
  border-color:var(--dv-consent-ink);
  color:#fff;
}
.dv-consent-button--secondary{background:#fff}
.dv-consent-button--ghost{border-color:transparent;padding-inline:8px}

/* Preference modal */
.dv-consent-modal{
  position:fixed;
  z-index:2147482600;
  inset:0;
  display:grid;
  place-items:center;
  padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));
  background:rgba(3,15,24,.58);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
}
.dv-consent-modal[hidden]{display:none!important}
.dv-consent-panel{
  width:min(680px,100%);
  max-height:min(780px,calc(100dvh - 36px));
  overflow:auto;
  overscroll-behavior:contain;
  padding:26px;
  border-radius:28px;
  background:var(--dv-consent-bg);
  color:var(--dv-consent-ink);
  box-shadow:0 30px 110px rgba(0,0,0,.35);
  border:1px solid rgba(255,255,255,.34);
}
.dv-consent-panel-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
}
.dv-consent-close{
  flex:0 0 auto;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:1px solid var(--dv-consent-line);
  background:#fff;
  color:var(--dv-consent-ink);
  font-size:25px;
  line-height:1;
  cursor:pointer;
}
.dv-consent-list{
  display:grid;
  gap:10px;
  margin:22px 0 0;
}
.dv-consent-option{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px;
  align-items:center;
  padding:16px 17px;
  border:1px solid var(--dv-consent-line);
  background:rgba(255,255,255,.55);
  border-radius:18px;
}
.dv-consent-option strong{
  display:block;
  font:800 14px/1.2 Arial,Helvetica,sans-serif;
  color:var(--dv-consent-ink);
}
.dv-consent-option small{
  display:block;
  margin-top:5px;
  color:var(--dv-consent-muted);
  font:400 13px/1.42 Arial,Helvetica,sans-serif;
}
.dv-consent-switch{
  position:relative;
  width:48px;
  height:28px;
}
.dv-consent-switch input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.dv-consent-switch span{
  display:block;
  width:48px;
  height:28px;
  border-radius:999px;
  background:#cbd2d6;
  transition:background .18s ease;
  cursor:pointer;
}
.dv-consent-switch span::after{
  content:"";
  position:absolute;
  top:4px;
  left:4px;
  width:20px;
  height:20px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 2px 7px rgba(6,25,39,.2);
  transition:transform .18s ease;
}
.dv-consent-switch input:checked + span{background:#0b3d56}
.dv-consent-switch input:checked + span::after{transform:translateX(20px)}
.dv-consent-switch input:focus-visible + span{outline:3px solid rgba(121,175,208,.55);outline-offset:2px}
.dv-consent-switch input:disabled + span{background:#0b3d56;opacity:.65;cursor:not-allowed}
.dv-consent-panel .dv-consent-actions{justify-content:flex-end}

/* Per-media consent layer. The authored poster stays visible below it. */
.dv-media-consent{
  position:absolute;
  z-index:9;
  inset:0;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(6,25,39,.72);
  color:#fff;
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
}
.dv-media-consent-card{
  width:min(440px,100%);
  border:1px solid rgba(255,255,255,.24);
  border-radius:20px;
  background:rgba(6,25,39,.82);
  padding:18px;
  box-shadow:0 18px 60px rgba(0,0,0,.28);
}
.dv-media-consent-card strong{
  display:block;
  font:800 18px/1.1 Arial,Helvetica,sans-serif;
}
.dv-media-consent-card p{
  margin:8px 0 0;
  color:rgba(255,255,255,.78);
  font:400 13px/1.45 Arial,Helvetica,sans-serif;
}
.dv-media-consent-card .dv-consent-actions{margin-top:14px}
.dv-media-consent-card .dv-consent-button{border-color:rgba(255,255,255,.28);color:#fff}
.dv-media-consent-card .dv-consent-button--primary{background:#fff;color:#061927;border-color:#fff}

/* Legal pages */
.legal-hero{
  padding-top:clamp(150px,17vw,210px);
  padding-bottom:clamp(56px,8vw,100px);
}
.legal-hero .eyebrow{margin-bottom:18px}
.legal-hero h1{
  max-width:980px;
  margin:0;
  font-family:var(--font-brand);
  font-size:clamp(52px,9vw,132px);
  line-height:.78;
  letter-spacing:-.035em;
}
.legal-hero .section-intro{max-width:820px;margin-top:28px}
.legal-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,340px);
  gap:clamp(36px,7vw,100px);
  align-items:start;
  padding-bottom:clamp(90px,12vw,160px);
}
.legal-copy{min-width:0}
.legal-block{
  padding:30px 0;
  border-top:1px solid rgba(6,25,39,.14);
}
.legal-block:first-child{border-top:0;padding-top:0}
.legal-block h2{
  margin:0 0 12px;
  font:800 clamp(22px,3vw,32px)/1.05 Arial,Helvetica,sans-serif;
  letter-spacing:-.025em;
  color:#061927;
}
.legal-block h3{
  margin:22px 0 8px;
  font:800 16px/1.2 Arial,Helvetica,sans-serif;
  color:#061927;
}
.legal-block p,
.legal-block li{
  color:#5d6e7b;
  font-size:clamp(15px,1.5vw,18px);
  line-height:1.65;
}
.legal-block p{margin:0 0 12px}
.legal-block ul{margin:10px 0 0;padding-left:1.2em}
.legal-block a{color:#0a5d86;text-decoration:underline;text-underline-offset:.18em}
.legal-aside{
  position:sticky;
  top:120px;
  border:1px solid rgba(6,25,39,.12);
  background:rgba(255,255,255,.55);
  border-radius:24px;
  padding:20px;
}
.legal-aside strong{display:block;color:#061927;font:800 14px/1.2 Arial,Helvetica,sans-serif}
.legal-aside p{margin:8px 0 0;color:#657682;font:400 14px/1.5 Arial,Helvetica,sans-serif}
.legal-aside .dv-consent-button{margin-top:15px}
.cookie-table-wrap{overflow-x:auto;margin-top:16px;border:1px solid rgba(6,25,39,.12);border-radius:18px;background:rgba(255,255,255,.48)}
.cookie-table{width:100%;border-collapse:collapse;min-width:720px}
.cookie-table th,.cookie-table td{padding:13px 14px;text-align:left;vertical-align:top;border-bottom:1px solid rgba(6,25,39,.09);font:400 13px/1.45 Arial,Helvetica,sans-serif;color:#5d6e7b}
.cookie-table th{font-weight:800;color:#061927;background:rgba(6,25,39,.035)}
.cookie-table tr:last-child td{border-bottom:0}
.cookie-table code{font-size:12px;color:#061927;background:rgba(6,25,39,.06);padding:2px 5px;border-radius:5px}

@media(max-width:820px){
  .dv-consent-banner{padding:18px;border-radius:20px}
  .dv-consent-actions{display:grid;grid-template-columns:1fr 1fr}
  .dv-consent-button--ghost{grid-column:1/-1}
  .dv-consent-panel{padding:20px;border-radius:22px}
  .dv-consent-panel .dv-consent-actions{grid-template-columns:1fr}
  .legal-layout{grid-template-columns:1fr}
  .legal-aside{position:static;order:-1}
}
@media(max-width:520px){
  .dv-consent-banner{left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));bottom:max(10px,calc(env(safe-area-inset-bottom) + 6px));width:calc(100vw - 20px)}
  .dv-consent-actions{grid-template-columns:1fr}
  .dv-consent-button--ghost{grid-column:auto}
  .dv-consent-option{grid-template-columns:minmax(0,1fr) auto;padding:14px}
}

/* Keep privacy UI out of the branded intro / page-transition choreography. */
html.dv90-booting .dv-consent-banner,
body:has(.dv73-transition.is-leaving) .dv-consent-banner{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

/* V124 lesson: avoid large live blurs on touch Safari. */
@media(max-width:820px),(hover:none) and (pointer:coarse){
  .dv-consent-banner{
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
    background:#f6f4ef!important;
  }
  .dv-consent-modal{
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
    background:rgba(3,15,24,.84)!important;
  }
  .dv-media-consent{
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
  }
}
