/* SDIS / BSPP93 — visual system */
:root{--red:#C8102E;--red-dark:#9a0c24;--navy:#0b1c2c;--navy-2:#132f46;--ink:#182532;--muted:#637382;--gray:#f4f6f8;--line:#dbe3e8;--white:#fff;--shadow:0 14px 35px rgba(11,28,44,.10);--radius:10px;--max:1120px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.6;background:var(--white)}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}.container{width:min(var(--max),calc(100% - 2.5rem));margin-inline:auto}.top-bar{background:var(--red);color:#fff;font-size:.78rem;letter-spacing:.01em}.top-bar .container{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.top-bar strong{font-weight:800}.site-header{position:sticky;top:0;z-index:20;background:var(--navy);color:#fff;box-shadow:0 8px 20px rgba(11,28,44,.16)}.header-inner{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.brand{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.brand-badge{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--red);border:2px solid #fff;font-weight:900;font-size:1.1rem}.brand-text{display:flex;flex-direction:column;line-height:1.12}.brand-text strong{font-size:1.08rem;letter-spacing:.04em}.brand-text span{font-size:.72rem;color:#b9c7d1;margin-top:.2rem}.site-nav{display:flex;align-items:center;justify-content:flex-end;gap:.35rem 1rem;flex-wrap:wrap}.site-nav a{position:relative;color:#fff;padding:.48rem .12rem;font-size:.92rem;opacity:.9;white-space:nowrap}.site-nav a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:0;bottom:.16rem;height:2px;background:var(--red);transform:scaleX(0);transform-origin:right;transition:transform .2s ease}.site-nav a:hover,.site-nav a[aria-current="page"]{opacity:1}.site-nav a:hover::after,.site-nav a[aria-current="page"]::after{transform:scaleX(1);transform-origin:left}.site-nav .nav-cta{background:var(--red);padding:.4rem .85rem;border-radius:6px;font-weight:700;opacity:1}.site-nav .nav-cta:hover{background:var(--red-dark)}.nav-toggle{display:none;background:transparent;border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:6px;padding:.4rem .65rem;font-size:1.25rem;cursor:pointer}.site-nav [data-auth="guest"],.site-nav [data-auth="user"]{transition:opacity .2s}[data-auth="guest"],[data-auth="user"]{display:none}body:not(.is-logged-in) [data-auth="guest"]{display:inline-flex}body.is-logged-in [data-auth="user"]{display:inline-flex}body.is-logged-in [data-auth="guest"]{display:none}
.page-hero{background:linear-gradient(120deg,var(--navy),var(--navy-2));color:#fff;padding:4.7rem 0 4.3rem;position:relative;overflow:hidden}.page-hero::after{content:"";position:absolute;width:480px;height:480px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-180px;top:-180px;box-shadow:0 0 0 34px rgba(255,255,255,.035),0 0 0 68px rgba(255,255,255,.025)}.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:4rem;align-items:center;position:relative;z-index:1}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;color:#ff8da0;font-weight:800;margin:0 0 .85rem}.page-hero h1{font-size:clamp(2.35rem,5vw,4.6rem);line-height:1.02;letter-spacing:-.055em;margin:.2rem 0 1.2rem;max-width:750px}.page-hero p{font-size:1.1rem;color:#d5e0e7;max-width:680px;margin:0 0 1.6rem}.hero-card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.17);padding:1.5rem;border-radius:var(--radius);backdrop-filter:blur(6px)}.hero-card strong{display:block;font-size:2.6rem;line-height:1;color:#fff}.hero-card span{display:block;color:#d5e0e7;margin-top:.35rem}.hero-card hr{border:0;border-top:1px solid rgba(255,255,255,.18);margin:1.15rem 0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;border:1px solid transparent;border-radius:6px;padding:.72rem 1.05rem;font-weight:750;cursor:pointer;transition:transform .2s,background .2s,box-shadow .2s}.btn:hover{transform:translateY(-2px);box-shadow:0 8px 16px rgba(11,28,44,.14)}.btn-primary{background:var(--red);color:#fff}.btn-primary:hover{background:var(--red-dark)}.btn-secondary{background:transparent;border-color:currentColor;color:inherit}.btn-light{background:#fff;color:var(--navy)}
section{padding:4.5rem 0}.section-head{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:2rem}.section-head h2{margin:0;font-size:clamp(1.75rem,3vw,2.45rem);line-height:1.12;letter-spacing:-.035em}.section-head p{max-width:550px;color:var(--muted);margin:.55rem 0 0}.section-kicker{color:var(--red);font-weight:800;text-transform:uppercase;letter-spacing:.13em;font-size:.72rem}.grid{display:grid;gap:1.15rem}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow)}.card h3{margin:.65rem 0 .45rem;font-size:1.12rem}.card p{color:var(--muted);margin:.2rem 0 0}.icon{width:42px;height:42px;display:grid;place-items:center;border-radius:8px;background:#fff1f3;color:var(--red);font-weight:900;font-size:1.3rem}.soft{background:var(--gray)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.stat{background:#fff;padding:1.35rem 1.5rem}.stat strong{display:block;color:var(--navy);font-size:2.2rem;line-height:1.1}.stat span{color:var(--muted);font-size:.9rem}.split{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.split h2{font-size:2.2rem;line-height:1.15;letter-spacing:-.035em}.list-check{list-style:none;padding:0;margin:1.25rem 0}.list-check li{padding:.55rem 0 .55rem 1.7rem;position:relative;border-bottom:1px solid var(--line)}.list-check li::before{content:"✓";position:absolute;left:0;color:var(--red);font-weight:900}.news-date{color:var(--red);text-transform:uppercase;letter-spacing:.09em;font-size:.72rem;font-weight:800}.news-card h3{margin:.55rem 0}.text-link{color:var(--red);font-weight:800;font-size:.9rem;display:inline-block;margin-top:1rem}.text-link:hover{text-decoration:underline}.callout{background:var(--navy);color:#fff;border-radius:var(--radius);padding:2.4rem;display:flex;justify-content:space-between;align-items:center;gap:2rem}.callout h2{margin:0 0 .4rem;font-size:1.8rem}.callout p{margin:0;color:#c8d4dc}.breadcrumb{padding:1rem 0;color:var(--muted);font-size:.84rem}.breadcrumb a{color:var(--red);font-weight:700}.prose{max-width:780px}.prose h2{margin-top:2rem}.prose p,.prose li{color:var(--muted)}.prose ul{padding-left:1.3rem}
.form-card{max-width:620px;margin:auto}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.35rem;font-weight:750;color:var(--ink)}input,textarea,select{width:100%;padding:.75rem .8rem;border:1px solid #cbd6dd;border-radius:6px;background:#fff;color:var(--ink);outline:none;transition:border .2s,box-shadow .2s}input:focus,textarea:focus,select:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(200,16,46,.12)}textarea{min-height:140px;resize:vertical}.form-help{color:var(--muted);font-size:.85rem;margin-top:.35rem}.form-message{padding:.75rem 1rem;background:#e9f7ef;color:#17683a;border-radius:6px;margin-bottom:1rem;display:none}.form-message.is-visible{display:block}.contact-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:2rem;align-items:start}.info-card{display:flex;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line)}.info-card:first-child{padding-top:0}.info-card h3{margin:0;font-size:1rem}.info-card p{margin:.15rem 0 0;color:var(--muted)}.auth-wrap{min-height:calc(100vh - 112px);display:grid;place-items:center;padding:3rem 0;background:linear-gradient(140deg,var(--gray),#fff)}.auth-card{width:min(100%,470px);padding:2.2rem}.auth-card h1{margin:0 0 .5rem;font-size:2rem}.auth-card > p{color:var(--muted);margin-top:0}.member-banner{background:linear-gradient(120deg,var(--navy),var(--navy-2));color:#fff;border-radius:var(--radius);padding:2rem;display:flex;justify-content:space-between;gap:1rem;align-items:center}.member-banner h1{margin:0;font-size:2rem}.member-banner p{color:#cbd8e0;margin:.3rem 0 0}.member-banner .role{color:#ff9bad;font-weight:800}.footer{background:var(--navy);color:#fff;padding:3.2rem 0 1.2rem}.footer-grid{display:grid;grid-template-columns:1.25fr .8fr .95fr;gap:3rem;padding-bottom:2.2rem}.footer h2{font-size:1.05rem;margin:0 0 .85rem}.footer p,.footer li{color:#b8c7d1;font-size:.9rem}.footer p{max-width:360px}.footer ul{list-style:none;padding:0;margin:0}.footer li{margin:.35rem 0}.footer a:hover{color:#fff;text-decoration:underline}.footer-bottom{border-top:1px solid rgba(255,255,255,.14);padding-top:1rem;display:flex;justify-content:space-between;gap:1rem;color:#9fb1bd;font-size:.78rem}.notice{padding:1rem 1.2rem;border-radius:6px;background:#fff5f6;border:1px solid #f4c5cd;color:#7d1327}.mt-2{margin-top:2rem}.mb-0{margin-bottom:0}.center{text-align:center}
@media(max-width:900px){.nav-toggle{display:block}.site-nav{display:none;position:absolute;left:1.25rem;right:1.25rem;top:calc(100% + .5rem);background:var(--navy);border:1px solid rgba(255,255,255,.16);border-radius:8px;padding:.75rem;box-shadow:0 12px 25px rgba(0,0,0,.25);align-items:stretch;flex-direction:column;gap:.1rem}.site-nav.is-open{display:flex}.site-nav a{padding:.72rem .8rem}.site-nav .nav-cta{justify-content:center;margin-top:.3rem}.hero-grid,.split,.contact-grid{grid-template-columns:1fr;gap:2rem}.page-hero{padding:3.5rem 0}.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.container{width:min(var(--max),calc(100% - 1.5rem))}.top-bar .container{padding:.38rem 0}.top-bar .container span:last-child{display:none}.header-inner{min-height:70px}.brand-text strong{font-size:.95rem}.brand-text span{font-size:.66rem}.page-hero h1{font-size:2.65rem}.page-hero p{font-size:1rem}.section-head{display:block}.section-head .btn{margin-top:1rem}.grid-3,.grid-4,.stats{grid-template-columns:1fr}.stats{background:transparent;border:0;gap:.7rem}.stat{border:1px solid var(--line);border-radius:var(--radius)}section{padding:3.2rem 0}.callout{display:block;padding:1.6rem}.callout .btn{margin-top:1.2rem}.member-banner{display:block}.member-banner .btn{margin-top:1rem}.footer-grid{grid-template-columns:1fr;gap:1.5rem}.footer-bottom{display:block}.footer-bottom span{display:block;margin-top:.35rem}.auth-card{padding:1.4rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Authenticated member administration */
.admin-only, .non-admin-only { display: none; }
.is-admin .admin-only { display: block; }
.is-logged-in:not(.is-admin) .non-admin-only { display: block; }
.member-note { padding: 1.25rem; border-left: 3px solid var(--accent, #d84835); background: #f7f4ef; }
.admin-table { width: 100%; border-collapse: collapse; margin-top: 1rem; }
.admin-table th, .admin-table td { padding: .9rem .75rem; border-bottom: 1px solid #ddd8cf; text-align: left; vertical-align: middle; }
.admin-table th { color: #5f5a52; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.admin-table .actions { white-space: nowrap; }
.btn-small { padding: .5rem .75rem; font-size: .8rem; }
.account-form { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
.account-form .form-group:last-of-type { grid-column: 1 / -1; }
.account-form-actions { grid-column: 1 / -1; display:flex; gap:.75rem; align-items:center; }
@media (max-width: 700px) { .admin-table { display:block; overflow-x:auto; } .account-form { grid-template-columns:1fr; } .account-form .form-group:last-of-type, .account-form-actions { grid-column:auto; } }
