/* Site additions on top of the verbatim SFS26 CSS (styles.css). Keep this file small: anything a page needs
   that the design system already has belongs in its classes or the inline grid placements, not here. */

/* From the prototype's ui_kits/website/index.html <style>. */
html,body{margin:0;background:var(--surface-page)}
a{color:var(--text-primary)}
a:hover{color:var(--text-accent)}

/* Server-rendered overlays and states use the hidden attribute; the DS classes set display, so restate it. */
.sfs-page [hidden]{display:none!important}

/* Theme toggle label follows <html data-theme>, so it is right before site.js runs. */
.sfs-theme-toggle .sfs-when-dark{display:none}
[data-theme="dark"] .sfs-theme-toggle .sfs-when-dark{display:inline}
[data-theme="dark"] .sfs-theme-toggle .sfs-when-light{display:none}

/* Skip link: off-screen until focused. */
.sfs-skip{position:absolute;left:var(--grid-margin-narrow);top:-200px;z-index:300;background:var(--surface-page);padding:12px 16px}
.sfs-skip:focus{top:12px}

/* Enquiry honeypot: off-screen for people, still filled in by bots. */
.sfs-hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}

/* Body scroll lock while the enquiry sheet or the menu is open (set by site.js). */
html.sfs-locked,html.sfs-locked body{overflow:hidden}

/* components.css resets .sfs-grid's whole margin shorthand at ≤1100, ≤900 and ≤420. Those rules come after
   .sfs-section-head and .sfs-footer-base and have the same specificity, so on a grid element they zero its
   margin-bottom (901–1100 and ≤420) and its margin-top (601–1100 and ≤420). Restate the DS values with the
   doubled class so they beat the reset at every width. Inline style="margin-…" on a page still wins. */
.sfs-grid.sfs-section-head{margin-bottom:var(--section-head-gap)}
.sfs-grid.sfs-footer-base{margin-top:64px}
@media (max-width:900px){.sfs-grid.sfs-section-head{margin-bottom:28px}}
@media (max-width:600px){.sfs-grid.sfs-footer-base{margin-top:40px}}

/* Cookie notice (partials/cookie-notice.php): slim ink strip fixed to the foot of the screen. Below the menu (150)
   and the enquiry sheet (200); footer-style padding so the FSP line can still be scrolled clear of it. */
.sfs-consent{position:fixed;left:0;right:0;bottom:0;z-index:120;padding:20px 0;border-top:1px solid var(--rule-on-dark);animation:sfs-fade var(--motion-base) both}
.sfs-consent-actions{display:flex;gap:12px}
.sfs-consent .sfs-btn{min-width:120px;justify-content:center}
.sfs-page:has(.sfs-consent:not([hidden])) .sfs-footer{padding-bottom:120px}
@media (max-width:900px){.sfs-consent-actions{width:100%}.sfs-consent-actions .sfs-btn{flex:1}}
@media (prefers-reduced-motion:reduce){.sfs-consent{animation:none}}

/* Links inside running text (Privacy, Terms, articles): the design system resets underlines, so restore them here. */
.sfs-prose a{text-decoration:underline;text-underline-offset:.15em;text-decoration-thickness:1px}
.sfs-prose a:hover{color:var(--text-accent)}
