/* ── LEGAL HERO ── */
.legal-hero{background:linear-gradient(135deg,#020c4a,#061288,#0a1ea0);padding:60px 24px 52px;text-align:center;position:relative;overflow:hidden;}
.legal-hero::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:44px 44px;}
.lh-inner{position:relative;z-index:1;}

.legal-hero h1{font-size:clamp(1.8rem,4vw,3rem);font-weight:900;color:#fff;margin-bottom:10px;}
.legal-hero p{font-size:1rem;color:rgba(255,255,255,.58);max-width:580px;margin:0 auto;}

/* ── STICKY SUBNAV ── */
.subnav{position:sticky;top:var(--hdr);z-index:900;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);border-bottom:2px solid var(--border);box-shadow:0 4px 20px rgba(6,18,136,.08);overflow-x:auto;scrollbar-width:none;}
.subnav::-webkit-scrollbar{display:none;}
.subnav-row{max-width:1200px;margin:0 auto;padding:0 24px;display:flex;white-space:nowrap;}
.subnav-row a{display:inline-flex;align-items:center;gap:6px;padding:0 16px;height:50px;font-size:.82rem;font-weight:600;color:var(--muted);border-bottom:3px solid transparent;transition:.22s;flex-shrink:0;}
.subnav-row a:hover{color:var(--blue);background:rgba(6,18,136,.03);}
.subnav-row a.active{color:var(--blue);border-bottom-color:var(--blue);background:rgba(6,18,136,.04);}

/* ── LAYOUT ── */
.legal-layout{max-width:1200px;margin:0 auto;padding:48px 24px 80px;display:grid;grid-template-columns:250px 1fr;gap:32px;align-items:start;}

/* ── SIDEBAR ── */
.sidebar{position:sticky;top:calc(var(--hdr) + 54px);background:#fff;border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-sm);overflow:hidden;}
.sb-head{background:linear-gradient(135deg,var(--blue),var(--blue-mid));padding:16px 20px;color:#fff;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;}
.sb-links{padding:8px 0;}
.sb-links a{display:flex;align-items:center;gap:9px;padding:10px 18px;font-size:.83rem;font-weight:500;color:var(--muted);border-left:3px solid transparent;transition:.2s;}
.sb-links a:hover{color:var(--blue);background:rgba(6,18,136,.04);border-left-color:rgba(6,18,136,.3);}
.sb-links a.active{color:var(--blue);font-weight:700;background:rgba(6,18,136,.06);border-left-color:var(--blue);}
.sb-div{height:1px;background:var(--border);margin:6px 0;}
.sb-help{background:var(--page-bg);margin:10px 12px 14px;border-radius:10px;padding:14px;border:1px solid var(--border);}
.sb-help p{font-size:.78rem;color:var(--muted);line-height:1.65;}
.sb-help a{color:var(--blue);font-weight:600;}

/* ── POLICY CARD ── */
.pol{background:#fff;border:1px solid var(--border);border-radius:var(--r);padding:44px 48px;margin-bottom:26px;scroll-margin-top:132px;box-shadow:var(--shadow-sm);}
.pol:last-child{margin-bottom:0;}
.pol-lbl{display:inline-flex;align-items:center;gap:6px;background:rgba(6,18,136,.06);color:var(--blue);border:1px solid rgba(6,18,136,.14);border-radius:50px;padding:4px 14px;font-size:.72rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:12px;}
.pol-title{font-size:1.6rem;font-weight:900;color:var(--text);line-height:1.2;border-bottom:2px solid var(--border);padding-bottom:16px;}
.pol-meta{font-size:.78rem;color:var(--muted);padding-top:12px;margin-bottom:28px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.pol-body h3{font-size:1.05rem;font-weight:800;color:var(--text);margin:28px 0 10px;display:flex;align-items:center;gap:8px;}
.pol-body h3::before{content:'';width:4px;height:18px;background:linear-gradient(135deg,var(--blue),var(--cyan));border-radius:4px;flex-shrink:0;display:inline-block;}
.pol-body h4{font-size:.93rem;font-weight:700;color:var(--text);margin:18px 0 7px;}
.pol-body p{font-size:.975rem;color:#2d3a5e;line-height:1.85;margin-bottom:14px;}
.pol-body ul,.pol-body ol{margin:10px 0 16px 20px;}
.pol-body li{font-size:.975rem;color:#2d3a5e;line-height:1.85;margin-bottom:6px;}
.pol-body ul li::marker{color:var(--blue);}
.pol-body ol li::marker{color:var(--blue);font-weight:700;}
.pol-body a{color:var(--blue);text-decoration:underline;}
.pol-body code{background:rgba(6,18,136,.06);padding:2px 6px;border-radius:4px;font-size:.85rem;font-family:monospace;}

/* ── NOTE BOXES ── */
.nb{border-radius:8px;padding:14px 16px;margin:14px 0;font-size:.86rem;}
.nb-blue{background:rgba(6,18,136,.04);border-left:4px solid var(--blue);color:var(--text);}
.nb-green{background:rgba(21,128,61,.05);border-left:4px solid #16a34a;color:#134e28;}
.nb-amber{background:rgba(245,158,11,.06);border-left:4px solid #f59e0b;color:#7c4e00;}

/* ── TWO-COL MINI CARDS ── */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0;}
.mini-card{background:var(--page-bg);border:1px solid var(--border);border-radius:10px;padding:14px;}
.mini-card h5{font-size:.82rem;font-weight:700;color:var(--blue);margin-bottom:5px;text-transform:uppercase;letter-spacing:.8px;}
.mini-card p{font-size:.82rem;color:var(--muted);margin:0;}

/* ── POLICY CTA ── */
.pol-cta{background:linear-gradient(135deg,var(--blue),var(--blue-mid));border-radius:12px;padding:20px 24px;margin-top:28px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.pol-cta p{font-size:.88rem;color:rgba(255,255,255,.8);margin:0;}
.pol-cta strong{display:block;font-size:1rem;color:#fff;margin-bottom:2px;}
.pol-cta a{background:#fff;color:var(--blue);padding:9px 22px;border-radius:50px;font-size:.85rem;font-weight:700;white-space:nowrap;transition:.2s;display:inline-block;text-decoration:none;}
.pol-cta a:hover{background:var(--page-bg);transform:translateY(-1px);}

/* ── BACK TO TOP BUTTON ── */
#back-to-top{position:fixed;bottom:28px;right:28px;z-index:999;background:linear-gradient(135deg,var(--blue),var(--blue-mid));color:#fff;border:none;border-radius:50%;width:44px;height:44px;font-size:1.2rem;cursor:pointer;box-shadow:0 4px 18px rgba(6,18,136,.35);opacity:0;transform:translateY(20px);transition:opacity .3s,transform .3s;pointer-events:none;display:flex;align-items:center;justify-content:center;}
#back-to-top.show{opacity:1;transform:translateY(0);pointer-events:auto;}
#back-to-top:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(6,18,136,.45);}

/* ── RESPONSIVE ── */
@media(max-width:1024px){
  .legal-layout{grid-template-columns:210px 1fr;gap:24px;}
  .pol{padding:32px 28px;}
}
@media(max-width:768px){
  .legal-layout{grid-template-columns:1fr;}
  .sidebar{position:static;}
  .pol{padding:24px 18px;}
  .two-col{grid-template-columns:1fr;}
}
@media(max-width:480px){
  .subnav-row a{padding:0 10px;font-size:.76rem;}
  .pol-title{font-size:1.3rem;}
}

/* ── DATA RIGHTS PORTAL STYLES ── */
.dr-wrap { max-width: 900px; margin: 60px auto; padding: 0 24px; text-align: center; }
.dr-section { margin-bottom: 80px; text-align: left; }
.pol-lbl { display: inline-block; padding: 6px 16px; background: rgba(6,18,136,0.06); color: var(--blue); border-radius: 50px; font-weight: 700; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 20px; }
.dr-section-title { font-size: 2.2rem; color: var(--dark); margin-bottom: 16px; font-family: 'Orbitron', sans-serif; }
.dr-section-sub { font-size: 1.15rem; color: var(--muted); margin-bottom: 40px; line-height: 1.6; }
.dr-rights-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; }
.dr-right-card { background: #fff; padding: 24px; border-radius: 16px; box-shadow: 0 4px 24px rgba(6,18,136,.04); border: 1px solid rgba(6,18,136,.08); transition: transform 0.3s ease; }
.dr-right-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(6,18,136,.08); }

@media (max-width: 991px) {
}
@media (max-width: 580px) {
}
.dr-form-card { background: #fff; padding: 48px; border-radius: 20px; box-shadow: 0 12px 40px rgba(6,18,136,.08); border: 1px solid rgba(6,18,136,.06); }
.dr-success { text-align: center; }
.drs-icon { font-size: 4rem; margin-bottom: 24px; }
.drs-ref { font-family: monospace; font-size: 1.5rem; color: var(--blue); background: rgba(6,18,136,.05); padding: 16px 32px; border-radius: 12px; display: inline-block; margin: 24px 0; font-weight: 700; letter-spacing: 2px; }
.drs-note { color: var(--muted); margin-bottom: 32px; line-height: 1.6; }
.dr-btn-primary { background: var(--blue); color: #fff; box-shadow: 0 8px 24px rgba(6,18,136,.2); width: 100%; }
.dr-btn-primary:hover { transform: translateY(-2px); box-shadow: 0 12px 32px rgba(6,18,136,.3); }
.dr-btn-primary:disabled { opacity: 0.7; cursor: not-allowed; transform: none; }
.dr-btn-outline { background: transparent; color: var(--blue); border: 2px solid var(--blue); }
.dr-btn-outline:hover { background: rgba(6,18,136,.05); }
.dr-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 32px; text-align: left; }
.dr-group { display: flex; flex-direction: column; }
.dr-group.full { grid-column: 1 / -1; }
.dr-group label { font-weight: 600; color: var(--dark); margin-bottom: 8px; font-size: 0.95rem; }
.dr-group input, .dr-group select, .dr-group textarea { padding: 14px 16px; border: 2px solid var(--border); border-radius: 12px; font-family: 'Inter', sans-serif; font-size: 1rem; color: var(--dark); background: #fcfcfd; transition: all 0.3s ease; }
.dr-group input:focus, .dr-group select:focus, .dr-group textarea:focus { border-color: var(--blue); outline: none; background: #fff; box-shadow: 0 0 0 4px rgba(6,18,136,.05); }
.dr-group input.invalid, .dr-group select.invalid, .dr-group textarea.invalid { border-color: #dc2626; background: #fef2f2; }
.dr-help { font-size: 0.85rem; color: var(--muted); margin-top: 8px; line-height: 1.5; }
.dr-err { color: #dc2626; font-size: 0.85rem; margin-top: 8px; font-weight: 600; }
.dr-api-msg { padding: 16px 20px; border-radius: 12px; margin-bottom: 32px; font-weight: 500; font-size: 0.95rem; border: 1px solid transparent; text-align: left; }

.timeline-wrap { position: relative; padding-left: 32px; border-left: 2px dashed rgba(6,18,136,.15); margin: 40px 0 0 16px; }
.tl-item { position: relative; padding-bottom: 40px; }
.tl-item:last-child { padding-bottom: 0; }
.tl-icon { position: absolute; left: -50px; top: -4px; width: 36px; height: 36px; background: #fff; border: 2px solid var(--blue); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; box-shadow: 0 4px 12px rgba(6,18,136,.1); }
.tl-content h4 { color: var(--dark); margin: 0 0 8px 0; font-size: 1.1rem; }
.tl-content p { color: var(--muted); font-size: 0.95rem; margin: 0; line-height: 1.5; }

.dr-contact-card { display: flex; align-items: flex-start; gap: 24px; background: #fff; padding: 40px; border-radius: 16px; border: 1px solid var(--border); box-shadow: 0 4px 24px rgba(0,0,0,.03); }
.dr-go-avatar { width: 80px; height: 80px; background: rgba(6,18,136,.05); color: var(--blue); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 2.5rem; flex-shrink: 0; }
.dcc-content h3 { font-size: 1.4rem; color: var(--dark); margin: 0 0 12px 0; }
.dcc-content p { color: var(--muted); margin: 0 0 8px 0; font-size: 0.95rem; display: flex; align-items: center; gap: 8px; }
.dcc-content a { color: var(--blue); font-weight: 500; text-decoration: none; }
.dcc-content a:hover { text-decoration: underline; }
.dcc-note { margin-top: 24px !important; padding-top: 24px; border-top: 1px solid var(--border); font-size: 0.9rem !important; color: var(--muted); }
@media (max-width: 768px) {
  .dr-form-grid { grid-template-columns: 1fr; }
  .dr-contact-card { flex-direction: column; align-items: center; text-align: center; padding: 24px; }
  .dcc-content p { justify-content: center; }
  .dr-form-card { padding: 24px; }
}

/* ── Spinner ── */
.dr-spinner {
  display: inline-block;
  width: 18px;
  height: 18px;
  border: 2px solid rgba(255,255,255,0.3);
  border-radius: 50%;
  border-top-color: #fff;
  animation: dr-spin 0.8s linear infinite;
  vertical-align: middle;
}
@keyframes dr-spin {
  to { transform: rotate(360deg); }
}

.legal-layout--single {
  grid-template-columns: 1fr;
  max-width: 900px;
  margin: 0 auto;
}

.sb-help-mt { margin-top: 10px; }
.btn-width-100-center { width: 100%; justify-content: center; }
.btn-mb-8 { margin-bottom: 8px; }
.pol-title-no-border { border-bottom: none !important; padding-bottom: 0 !important; }
.pol-meta-mb-24 { margin-bottom: 24px; }
.nb-blue-dsar { margin-top: 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; text-align: left; }
.flex-1-min-250 { flex: 1; min-width: 250px; }
.display-block-mb-2 { display: block; margin-bottom: 2px; }
.cookie-desc-p { margin: 0; font-size: 0.85rem; color: var(--muted); line-height: 1.5; }
.flex-gap-8-wrap { display: flex; gap: 8px; flex-wrap: wrap; }
.dsar-success-alert { display: none; }
.btn-auto-center-block { width: auto; margin: 0 auto; display: block; }
.req-star-red { color: #dc2626; }
.label-optional { font-weight: normal; color: var(--muted); font-size: 0.85rem; }
.dr-help-justify { display: flex; justify-content: space-between; }
.char-count-text { font-size: 0.8rem; }
.char-count-text-italic { font-size: 0.8rem; font-style: italic; }
.dr-api-msg-err { display: none; border: 1px solid #dc2626; background: #fef2f2; color: #dc2626; margin-bottom: 24px; }
.dsar-btn-spinner { display: none; }
.otp-section-box { display: none; margin-top: 20px; padding: 24px; background: rgba(6,18,136,.04); border-radius: 12px; border: 2px dashed var(--blue); text-align: left; }
.otp-group-mb-16 { margin-bottom: 16px; }
.otp-label-bold { font-weight: 700; }
.otp-input-code { letter-spacing: 2px; font-weight: bold; text-align: center; font-size: 1.2rem; background: #fff; }
.dsar-verify-btn-spinner { display: none; }
.dsar-footnote-p { font-size: 0.8rem; color: var(--muted); margin-top: 20px; line-height: 1.5; text-align: center; }
.privacy-link-footnote { color: var(--blue); font-weight: 600; text-decoration: underline; }
.go-officer-title-p { font-weight: 700; color: var(--blue); margin-bottom: 12px; }
.legal-action-bar { margin: 15px 0 25px; display: flex; gap: 12px; flex-wrap: wrap; }

/* SPA-style tabbed layout: hide sections by default except active tab */
.legal-layout .pol {
  display: none;
}
.legal-layout .pol:first-of-type {
  display: block;
}

/* ── Parental Consent Portal Utility Classes ── */
.dr-alert-hidden, .otp-section-hidden, .spinner-hidden, .dr-step-hidden { display: none !important; }
.dr-hp-hidden { display: none !important; }
.dr-age-box { background: #f4f6ff; padding: 20px; border-radius: 12px; border: 1px solid rgba(6,18,136,0.08); margin-top: 10px; box-sizing: border-box; }
.dr-age-label { font-weight: 700; }
.dr-age-select { width: 100%; padding: 10px; border-radius: 6px; border: 1px solid rgba(6,18,136,0.15); margin-top: 8px; font-family: inherit; font-size: 0.9rem; }
.dr-parental-box { display: none; margin-top: 15px; border-top: 1px solid rgba(6,18,136,0.12); padding-top: 15px; }
.dr-parental-warn { font-size: 0.85rem; color: #ef4444; font-weight: 700; margin-bottom: 8px; display: flex; align-items: center; gap: 6px; }
.dr-parental-desc { font-size: 0.82rem; color: var(--muted); margin-bottom: 15px; line-height: 1.4; }
.dr-portal-card { background: #fff; padding: 28px; border-radius: 12px; border: 1px solid var(--border); box-shadow: var(--shadow-sm); margin-bottom: 20px; }
.dr-portal-tab-bar { display: flex; gap: 10px; border-bottom: 1px solid var(--border); padding-bottom: 12px; margin-bottom: 20px; }
.dr-portal-tab-btn { background: none; border: none; padding: 8px 16px; font-weight: 700; cursor: pointer; color: var(--muted); font-size: 0.88rem; font-family: inherit; }
.dr-portal-tab-btn.active { color: var(--blue); border-bottom: 2px solid var(--blue); }
.dr-input-full { width: 100%; padding: 10px; border-radius: 6px; border: 1px solid var(--border-md); font-family: inherit; }
.dr-label-bold { font-weight: 600; font-size: 0.88rem; display: block; margin-bottom: 6px; }
.dr-submit-btn-full { margin-top: 20px; width: 100%; padding: 12px; border-radius: 8px; }
.dr-otp-input-center { width: 100%; padding: 12px; border: 1px solid var(--border-md); border-radius: 6px; text-align: center; font-size: 1.25rem; letter-spacing: 4px; font-weight: 700; font-family: inherit; }
.dr-step-hidden { display: none; }
.dr-center-text { text-align: center; padding: 20px 0; }
.dr-result-uuid { font-family: monospace; background: var(--page-bg); padding: 12px; border-radius: 6px; font-weight: bold; font-size: 1rem; margin-bottom: 20px; border: 1px solid var(--border); }
.btn-round-50 { border-radius: 50px; }


