
:root{--bg:#f5f7fb;--surface:#fff;--ink:#172033;--muted:#5b6475;--line:#dfe6f0;--blue:#1d4ed8;--blue2:#0f3ea8;--soft:#eef5ff;--green:#047857;--amber:#b45309;--red:#b91c1c;--shadow:0 12px 28px rgba(15,23,42,.08);--radius:18px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;line-height:1.6;color:var(--ink);background:var(--bg)}a{color:var(--blue)}
.site-header{position:relative;color:#fff;overflow:hidden;background:#0f172a}.hero{min-height:420px}.hero-image{position:absolute;inset:0;background-image:url('spb-bridges.jpg');background-size:cover;background-position:center}.hero-image:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,15,34,.84),rgba(15,23,42,.48))}.hero-wrap{position:relative;z-index:1;max-width:1160px;margin:0 auto;padding:86px 22px 64px}.eyebrow{display:inline-block;padding:7px 12px;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:rgba(255,255,255,.12);font-size:14px;margin-bottom:18px}h1{margin:0;font-size:clamp(30px,5vw,54px);line-height:1.1;max-width:980px}.hero p{max-width:900px;font-size:20px;opacity:.96;margin-top:18px}.page-title{background:#0f172a;color:#fff}.page-title .wrap{max-width:1160px;margin:0 auto;padding:46px 20px}.page-title h1{font-size:clamp(28px,4vw,42px)}.page-title p{max-width:860px;font-size:18px;color:#dbeafe}
.topbar{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;box-shadow:0 2px 12px rgba(15,23,42,.04)}nav{max-width:1160px;margin:0 auto;padding:11px 20px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}nav a{text-decoration:none;color:var(--blue);font-weight:700;font-size:14px;padding:8px 9px;border-radius:10px}nav a:hover,nav a.active{background:var(--soft)}main{max-width:1160px;margin:0 auto;padding:34px 20px 54px}section,.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px;margin-bottom:22px}h2{margin:0 0 16px;font-size:27px;line-height:1.25;color:#0f172a}h3{margin:22px 0 10px;font-size:20px;color:var(--blue2)}p{margin:9px 0}ul,ol{margin-top:8px;padding-left:23px}li{margin-bottom:6px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:14px;margin-top:16px}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:18px}.card{background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:16px}.card strong{display:block;margin-bottom:5px;color:#0f172a}.notice{background:var(--soft);border-left:5px solid var(--blue);padding:16px 18px;border-radius:12px;margin:16px 0}.ok{background:#ecfdf5;border-left-color:var(--green)}.warn{background:#fff7ed;border-left-color:var(--amber)}.danger{background:#fef2f2;border-left-color:var(--red)}.small{font-size:14px;color:var(--muted)}table{width:100%;border-collapse:collapse;margin:14px 0 20px;font-size:15px}th,td{border:1px solid var(--line);padding:11px 12px;vertical-align:top}th{background:#f1f5f9;text-align:left;color:#0f172a}.doc-list a,.button{display:inline-flex;align-items:center;gap:7px;margin:6px 8px 6px 0;padding:10px 13px;border:1px solid var(--line);border-radius:10px;background:#fff;text-decoration:none;font-weight:700}.button.primary{background:var(--blue);color:#fff;border-color:var(--blue)}.button.primary:hover{background:var(--blue2)}.placeholder{color:var(--red);font-weight:700}.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}.sveden-menu .card a{font-weight:800;text-decoration:none}.breadcrumbs{font-size:14px;color:var(--muted);margin-bottom:16px}.breadcrumbs a{text-decoration:none}.meta-row{display:grid;grid-template-columns:210px 1fr;gap:10px;border-bottom:1px solid var(--line);padding:10px 0}.meta-row strong{color:#0f172a}footer{background:#0f172a;color:#fff;padding:28px 20px}footer .wrap{max-width:1160px;margin:0 auto}footer p{margin:5px 0}footer a{color:#bfdbfe}@media(max-width:760px){.two{grid-template-columns:1fr}.meta-row{grid-template-columns:1fr}section,.panel{padding:20px}nav{gap:4px}nav a{font-size:13px}.hero-wrap{padding-top:62px}}@media print{.topbar,.site-header,.page-title,footer,.breadcrumbs{display:none}main{max-width:none;padding:0}section,.panel{box-shadow:none;break-inside:avoid}a{color:#000;text-decoration:none}}

/* Header variants for licensing-ready multipage structure */
.page-title.official{background:#fff;color:var(--ink);border-bottom:1px solid var(--line)}
.page-title.official .wrap{padding:34px 20px 28px}
.page-title.official h1{color:#0f172a;font-size:clamp(26px,3.4vw,38px)}
.page-title.official p{color:var(--muted);max-width:900px}
.page-title.strict{background:#fff;color:var(--ink);border-bottom:2px solid var(--line)}
.page-title.strict .wrap{padding:28px 20px 22px}
.page-title.strict h1{color:#0f172a;font-size:clamp(26px,3.2vw,36px)}
.page-title.strict p{color:var(--muted)}
.page-title.mini-banner{position:relative;overflow:hidden;background:#0f172a;color:#fff}
.page-title.mini-banner:before{content:'';position:absolute;inset:0;background-image:url('spb-bridges.jpg');background-size:cover;background-position:center 55%;opacity:.42}
.page-title.mini-banner:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,23,42,.88),rgba(30,64,175,.50))}
.page-title.mini-banner .wrap{position:relative;z-index:1;padding:52px 20px 46px}
.page-title.mini-banner h1{font-size:clamp(28px,4vw,42px)}
.page-title.mini-banner p{color:#eff6ff}
.page-title.contact-simple{background:#f8fafc;color:var(--ink);border-bottom:1px solid var(--line)}
.page-title.contact-simple .wrap{padding:32px 20px 26px}
.page-title.contact-simple h1{color:#0f172a;font-size:clamp(26px,3.4vw,38px)}
.page-title.contact-simple p{color:var(--muted);max-width:760px}


/* Public document set audit / structured supporting files */
.doc-section-title{margin-top:28px;padding-top:14px;border-top:1px solid var(--line)}
.audit-group{background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin:18px 0}
.audit-group summary{cursor:pointer;font-weight:800;color:#0f172a}
.audit-group[open] summary{margin-bottom:10px}
.audit-group .doc-list{margin-top:8px}
.doc-note{font-size:14px;color:var(--muted);margin:6px 0 12px}


/* Open licensing package structure */
.license-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin:18px 0}
.license-status{border:1px solid var(--line);border-radius:16px;background:#ecfdf5;padding:18px}
.license-status.support{background:#fff7ed}
.license-status strong{display:block;font-size:18px;color:#0f172a;margin-bottom:6px}
.license-status span{color:var(--muted)}
.license-tier{border-left:6px solid var(--green)}
.license-tier.support{border-left-color:var(--amber);background:#fffdf7}
.doc-list.stacked{display:grid;grid-template-columns:1fr;gap:8px;margin-top:10px}
.doc-list.stacked a{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0;padding:12px 14px}
.doc-list.stacked a em{font-style:normal;font-size:12px;color:var(--muted);background:#f1f5f9;border-radius:999px;padding:3px 8px;white-space:nowrap}
.related-links a em{background:#e0f2fe}
@media(max-width:760px){.doc-list.stacked a{align-items:flex-start;flex-direction:column}.doc-list.stacked a em{align-self:flex-start}}

/* v35: soft darkened header, light typography, and harmonized hero buttons */
.site-header{background:#122033;color:#f8fafc}
.hero-image{filter:saturate(1.12) contrast(1.08) brightness(.96);transform:scale(1.01)}
.hero-image:after{background:linear-gradient(90deg,rgba(8,18,38,.62),rgba(12,31,62,.42),rgba(15,23,42,.20))}
.hero-wrap{padding:76px 22px 58px}
.eyebrow{border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.12);color:#eaf2ff;backdrop-filter:blur(2px);box-shadow:0 8px 20px rgba(15,23,42,.10)}
.hero h1{color:#f8fafc;text-shadow:0 2px 14px rgba(15,23,42,.28)}
.hero p{color:#dbe7f5;opacity:1}
.site-header .button{background:rgba(255,255,255,.14);color:#f8fafc;border-color:rgba(255,255,255,.26);box-shadow:0 8px 20px rgba(15,23,42,.10)}
.site-header .button:hover{background:rgba(255,255,255,.20);border-color:rgba(255,255,255,.38)}
.site-header .button.primary{background:#2563eb;color:#fff;border-color:#2563eb}
.site-header .button.primary:hover{background:#1d4ed8}
.page-title.mini-banner{background:#122033;color:#f8fafc;border-bottom:1px solid rgba(255,255,255,.08)}
.page-title.mini-banner:before{opacity:.42;filter:saturate(1.10) contrast(1.06) brightness(.96)}
.page-title.mini-banner:after{background:linear-gradient(90deg,rgba(8,18,38,.58),rgba(12,31,62,.38),rgba(15,23,42,.18))}
.page-title.mini-banner h1{color:#f8fafc;text-shadow:0 2px 14px rgba(15,23,42,.28)}
.page-title.mini-banner p{color:#dbe7f5}
footer{background:#172033;color:#f8fafc;border-top:1px solid rgba(255,255,255,.12);padding:30px 20px}
footer .wrap{display:grid;gap:7px}
footer p{margin:0}
footer .small{color:#d6e2f3}
footer a{color:#bfdbfe;text-decoration:none;font-weight:700}
footer a:hover{color:#eff6ff;text-decoration:underline}


/* v38: keep footer at the bottom of short pages */
html,body{min-height:100%}
body{min-height:100vh;display:flex;flex-direction:column}
main{width:100%;flex:1 0 auto}
footer{flex-shrink:0}
