/* Privacy, safety and photo consent pages, plus small trust and clarity additions. Uses the existing dark glass system. */
.trust-page main{min-height:60vh}
.policy-updated{margin-top:14px!important;font-size:14px!important;color:#8fa3b8!important}
.policy-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:48px;align-items:start;padding-block:48px 72px}
.policy{max-width:760px}
.policy-section{padding-block:26px;border-bottom:1px solid #769bc027}
.policy-section:first-child{padding-top:0}
.policy-section h2{font-size:clamp(24px,3vw,32px);letter-spacing:-.02em;line-height:1.15;margin:0 0 14px}
.policy-section p,.policy-section li{font-size:17px;line-height:1.7;color:#c4cfdd}
.policy-section ul{padding-left:20px;margin:0}
.policy-section li+li{margin-top:10px}
.policy-section a,.policy-aside a:not(.button),.photo-notice a,.privacy-note a,.research-note a{color:#8fd6ff;text-underline-offset:4px}
.policy-table{display:grid;border:1px solid #8dadde35;border-radius:12px;overflow:hidden;margin:18px 0}
.policy-row{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);gap:18px;padding:14px 18px;border-top:1px solid #8dadde24;font-size:15px;line-height:1.55;color:#c4cfdd}
.policy-row:first-child{border-top:0}
.policy-row-head{background:#16243a;color:#e9f0fd;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.policy-row span:first-child{color:#e9f0fd;font-weight:600}
.policy-aside{position:sticky;top:110px}
.policy-aside h2{margin:6px 0 10px}
.policy-aside p{color:#b6c3d3;line-height:1.6}
.policy-aside .button{margin-top:8px}
.policy-aside-links{display:grid;gap:10px;margin-top:22px}
.policy-aside-links a{display:inline-flex;align-items:center;min-height:44px}

/* Policy language that NXT UP TEENS must confirm before publication. Visible on purpose. */
.needs-confirmation{display:block;margin-top:6px;padding:12px 14px;border:1px dashed #f5c26b;border-radius:10px;background:#3a2a0d66;color:#f8e3b8;font-size:15px;line-height:1.55}
.needs-confirmation-label{display:inline-block;margin-right:8px;padding:2px 8px;border-radius:999px;background:#f5c26b;color:#1d1405;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}

/* Footer: one navigation system, plus policy links. */
.footer-links a,.footer-policies a{min-height:44px;display:inline-flex;align-items:center}
.footer-policies{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:4px 22px;padding-top:18px;border-top:1px solid #769bc027;font-size:14px}
.footer-policies a{color:#a9b8ca;text-underline-offset:4px}
.footer-policies a:hover{color:#e9f0fd}

/* Homepage plain-language explanation: supports the headline without competing with it. */
.program-summary{color:#c9d5e3!important;font-size:17px!important;line-height:1.6!important;max-width:600px!important}
@media(max-width:700px){.program-summary{font-size:16px!important;margin-top:10px}}

/* Registration: the spam trap must never be visible. A filled trap is accepted silently but not saved,
   so a visible field could lose a real registration. Mirrors the Contact form's rule. */
.registration-page .honey{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
/* Keep the confirmation and closed messages clear of the sticky header when scrolled into view. */
.registration-card{scroll-margin-top:110px}

/* Registration notices. */
.photo-notice{margin:20px 0 4px;padding:14px 16px;border:1px solid #8dadde35;border-radius:12px;background:#0e192a88;font-size:15px;line-height:1.6;color:#c4cfdd}
.photo-notice .needs-confirmation{margin-top:10px}

/* Research note. */
.research-note{position:relative;z-index:2;max-width:820px;padding-block:56px 72px}
.research-note h2{font-size:clamp(28px,4vw,44px);letter-spacing:-.03em;margin:10px 0 16px}
.research-note p{font-size:17px;line-height:1.7;color:#c4cfdd}

/* Event location detail. */
.event-details-band .event-place{display:block;margin-top:8px;color:#a9b8ca;font-size:14px;letter-spacing:.04em}

/* Visible keyboard focus for controls that had none. */
.trust-page a:focus-visible,.trust-page button:focus-visible,.footer-links a:focus-visible,.footer-policies a:focus-visible,.photo-notice a:focus-visible,.privacy-note a:focus-visible{outline:3px solid #8de6ff;outline-offset:4px;border-radius:4px}

@media(max-width:900px){
  .policy-layout{grid-template-columns:1fr;gap:32px;padding-block:32px 56px}
  .policy-aside{position:static}
  .policy-row{grid-template-columns:1fr;gap:4px}
  .policy-row-head{display:none}
}
@media(max-width:600px){
  .policy-section p,.policy-section li{font-size:16px}
  .footer-policies{gap:0 18px}
}
@media(prefers-reduced-motion:reduce){.policy-aside{position:static}}

/* Decorative glows (such as the event feature's ::before) must not create sideways scrolling.
   clip does not create a scroll container, so sticky sections keep working. */
main{overflow-x:clip}

/* Touch screens: comfortable tap targets for standalone links and form choices. */
@media(pointer:coarse){
  .breadcrumb a,.text-link,.footer-links a,.footer-policies a,.policy-aside-links a{display:inline-flex;align-items:center;min-height:44px}
  .breadcrumb{align-items:center}
  .registration-page .choice-row label,.registration-page .topic-grid label,.registration-page label.check{min-height:44px;display:flex;align-items:center;gap:10px}
  .registration-page input[type=checkbox],.registration-page input[type=radio]{width:22px;height:22px;flex:none}
}
