/* ==========================================================================
   SOTS – site enhancements: accessibility helpers, footer legal links,
   back-to-top, membership no-refund notice. Loaded on every page.
   ========================================================================== */
:root{--sx-navy:#071f35;--sx-deep:#061b2d;--sx-accent:#c5162c;--sx-gold:#d9ad52;--sx-line:#e5ebf1;--sx-ink:#14263a}

/* Skip link + keyboard focus */
.skip-link{position:absolute;left:16px;top:-80px;z-index:5000;background:var(--sx-accent);color:#fff!important;font-weight:800;padding:12px 18px;border-radius:0 0 12px 12px;text-decoration:none;transition:top .2s}
.skip-link:focus{top:0}
#main-content:focus{outline:none}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--sx-gold)!important;outline-offset:3px;border-radius:6px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1!important;transform:none!important}}

/* Footer: five columns with Legal & Policies */
.site-footer .footer-grid{grid-template-columns:1.35fr 1fr 1fr 1fr 1fr}
.footer-col--legal h4{display:flex;align-items:center;gap:8px}
.footer-col--legal h4 i{color:var(--sx-gold);font-size:14px}
.site-footer .footer-bottom{align-items:center;flex-wrap:wrap}
.sx-legalbar{display:flex;flex-wrap:wrap;gap:8px}
.sx-legalbar a{display:inline-block;padding:7px 14px;border:1px solid rgba(255,255,255,.18);border-radius:999px;color:rgba(255,255,255,.85)!important;font-size:13px;font-weight:700;transition:background .2s,color .2s,border-color .2s}
.sx-legalbar a:hover{background:var(--sx-accent);border-color:var(--sx-accent);color:#fff!important}
@media(max-width:1100px){.site-footer .footer-grid{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:900px){.site-footer .footer-grid{grid-template-columns:1fr}}

/* Back to top */
.sx-top{position:fixed;right:20px;bottom:20px;z-index:2500;width:48px;height:48px;border-radius:50%;background:var(--sx-accent);color:#fff!important;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px rgba(0,0,0,.25);opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .25s,transform .25s;font-size:18px}
.sx-top.is-visible{opacity:1;transform:none;pointer-events:auto}
.sx-top:hover{filter:brightness(.92)}

/* Membership no-refund notice */
.sx-notice-wrap{padding:0 0 70px}
.sx-notice{width:min(1180px,calc(100% - 40px));margin:0 auto;display:flex;gap:20px;align-items:flex-start;background:#fff;border:1px solid var(--sx-line);border-left:6px solid var(--sx-accent);border-radius:22px;padding:26px 30px;box-shadow:0 18px 50px rgba(6,31,53,.08);font-family:'Plus Jakarta Sans',system-ui,sans-serif}
.sx-notice__icon{flex:none;width:52px;height:52px;border-radius:16px;background:var(--sx-accent);color:#fff;display:grid;place-items:center;font-size:21px}
.sx-notice h2{margin:0 0 8px!important;font-size:22px!important;line-height:1.25!important;letter-spacing:-.01em!important;color:var(--sx-navy)!important;font-weight:850!important}
.sx-notice p{margin:0 0 10px;color:#334457;font-size:16px;line-height:1.65}
.sx-notice ul{margin:0 0 12px;padding-left:1.2em;list-style:disc}
.sx-notice li{margin:0 0 6px;color:#334457;font-size:15px;line-height:1.55}
.sx-notice a{color:var(--sx-accent);font-weight:800;text-decoration:underline;text-underline-offset:3px}
.sx-notice .sx-notice__more{display:inline-flex;align-items:center;gap:8px;text-decoration:none}
@media(max-width:640px){.sx-notice{flex-direction:column;padding:22px}}

/* Form acknowledgement */
.sx-ack{display:flex;gap:12px;align-items:flex-start;margin:6px 0 16px;padding:14px 16px;border:1px solid var(--sx-line);border-left:5px solid var(--sx-accent);border-radius:14px;background:#fbfcfe;font-size:14px;line-height:1.55;color:#334457}
.sx-ack input{width:18px!important;height:18px;flex:none;margin-top:2px;accent-color:var(--sx-accent)}
.sx-ack a{color:var(--sx-accent);font-weight:800;text-decoration:underline}
.sx-formnote{font-size:13px;color:#5f6f80;margin:12px 0 0}
.sx-formnote a{color:var(--sx-accent);font-weight:700;text-decoration:underline}

/* Allow longer FAQ answers */
.faq-item.open .faq-a{max-height:900px}
