/* BOAGS shared stylesheet — V15 cleanup (2026-07-24)
 * Rules genuinely identical across all 6 pages: nav/header, footer, buttons,
 * typography primitives, section background classes, notify-module, scroll-reveal
 * animations. Fix something here once, it's fixed on every page — this is the
 * direct answer to the per-page CSS duplication Darrel flagged.
 * Page-specific styles live in css/<page>.css. See kb comms-log for the full
 * V15 writeup (per-page divergences, what stayed local and why). */

*, *::before, *::after { box-sizing: border-box; }
a { overflow-wrap: break-word; }

.container { max-width:1400px; margin:0 auto; padding:0 2rem; }

.fastlane-inner { max-width:1400px; margin:0 auto; padding:0 2rem; }

.footer-inner { max-width:1400px; margin:0 auto; padding:0 2rem; }

html { scroll-behavior: smooth; overflow-x: hidden; }

body { font-family: 'Inter', sans-serif; font-size: 19px; background: #FFFFFF; color: #0D1F2D; margin: 0; overflow-x: hidden; }

.eyebrow { font-family:'Inter',sans-serif; font-size:1rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:#F2820D; display:block; margin-bottom:0.875rem; }

.amber-rule { display:block; width:32px; height:3px; background:#F2820D; margin-bottom:1.5rem; border-radius:2px; }

.amber-rule-wide { width:56px; }

.sh { font-family:'Oswald',sans-serif; font-weight:700; font-size:clamp(2.75rem,5.5vw,4.25rem); line-height:1.2; letter-spacing:-0.01em; margin:0 0 0.5rem; }

.sh-light { color:#E8EAED; }

.sh-dark { color:#14181D; }

.sec-intro { font-family:'Inter',sans-serif; font-size:1.375rem; font-weight:400; color:rgba(232,234,237,0.85); line-height:1.85; margin-bottom:2.75rem; }

.body-text { font-family:'Inter',sans-serif; font-size:1.25rem; font-weight:400; color:rgba(20,24,29,0.68); line-height:1.85; overflow-wrap:break-word; }

#site-nav { position:fixed; top:0; left:0; right:0; z-index:200; background:rgba(27,58,92,0.95); backdrop-filter:blur(18px); transition:box-shadow 0.3s ease; }

#site-nav.scrolled { box-shadow:0 1px 0 rgba(242,130,13,0.12),0 4px 40px rgba(0,0,0,0.55); }

.nav-inner { max-width:1400px; margin:0 auto; padding:0 2rem; display:flex; align-items:center; justify-content:space-between; height:120px; }

.nav-logo img { height:auto; width:200px; display:block; }

.nav-links { display:flex; align-items:center; gap:2rem; }

.nav-links a { font-family:'Inter',sans-serif; font-size:1.0625rem; font-weight:500; color:rgba(255,255,255,0.85); text-decoration:none; letter-spacing:0.02em; position:relative; transition:color 0.2s; }

.nav-links a::after { content:''; position:absolute; bottom:-2px; left:0; right:100%; height:1px; background:#F2820D; transition:right 0.2s ease; }

.nav-links a:hover { color:#F2820D; }

.nav-links a:hover::after { right:0; }

.nav-links a.active { color:#F2820D; }

.nav-links a.active::after { right:0; }

.btn-nav-cta { background:#F2820D; color:#0E1116; font-family:'Inter',sans-serif; font-size:1rem; font-weight:700; padding:0.6rem 1.4rem; border-radius:2px; text-decoration:none; border:none; cursor:pointer; letter-spacing:0.06em; text-transform:uppercase; transition:background 0.15s; white-space:nowrap; box-shadow:0 2px 12px rgba(242,130,13,0.28); }

.nav-links a.btn-nav-cta { color:#0E1116; }

.nav-links a.btn-nav-cta:hover { color:#0E1116; }

.nav-links a.btn-nav-cta::after { display:none; }

#menu-toggle { display:none; background:none; border:none; cursor:pointer; padding:6px; }

#menu-toggle svg { width:24px; height:24px; stroke:#E8EAED; }

#mobile-menu { display:none; position:fixed; top:120px; left:0; right:0; z-index:199; background:rgba(18,43,71,0.98); backdrop-filter:blur(18px); border-bottom:1px solid rgba(242,130,13,0.18); padding:1.75rem 2rem; flex-direction:column; gap:1.375rem; }

#mobile-menu.open { display:flex; }

#mobile-menu a { font-family:'Inter',sans-serif; font-size:1.0625rem; font-weight:500; color:rgba(232,234,237,0.82); text-decoration:none; }

#mobile-menu a:hover, #mobile-menu a.active { color:#F2820D; }

#mobile-menu a.btn-nav-cta { align-self:flex-start; }

.footer-credit-link { color:inherit; text-decoration:underline; }

@media(max-width:900px) { .nav-links { display:none; } #menu-toggle { display:block; } }

.sec-white { background:#FFFFFF; }

.sec-light { background:#F5F6F7; }

.sec-navy { background:#1B3A5C; }

.hero-bg { position:absolute; inset:0; z-index:0; }

.hero-overlay { position:absolute; inset:0; z-index:1; background: linear-gradient(to right, rgba(14,17,22,0.78) 0%, rgba(14,17,22,0.50) 55%, rgba(14,17,22,0.20) 100%), linear-gradient(to top, rgba(14,17,22,0.60) 0%, rgba(14,17,22,0.14) 45%, rgba(14,17,22,0.03) 100%); }

.hero-overlay::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:linear-gradient(to right,#F2820D 0%,rgba(242,130,13,0.30) 60%,transparent 100%); }

.hero-badge-dot { width:5px; height:5px; border-radius:50%; background:#F2820D; animation:pulse-dot 2s ease-in-out infinite; }

@keyframes pulse-dot { 0%,100% { opacity:1; transform:scale(1); } 50% { opacity:0.35; transform:scale(0.65); } }

.footer-top { display:grid; grid-template-columns:minmax(0,1fr); gap:2.75rem; padding-bottom:2.75rem; border-bottom:1px solid rgba(255,255,255,0.15); margin-bottom:1.75rem; }

@media(min-width:768px) { .footer-top { grid-template-columns:2fr 1fr 1fr 1fr; } }

.footer-logo { height:auto; width:160px; margin-bottom:1rem; }

.footer-chamber-logo { height:auto; width:130px; margin-top:1rem; opacity:0.90; }

.footer-tagline { font-family:'Inter',sans-serif; font-size:1.125rem; color:rgba(232,234,237,0.80); line-height:1.8; }

.footer-col-head { font-family:'Inter',sans-serif; font-size:0.875rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:#F2820D; margin-bottom:1rem; display:block; }

.footer-col a, .footer-col p { font-family:'Inter',sans-serif; font-size:1.0625rem; color:rgba(232,234,237,0.82); text-decoration:none; line-height:1.85; display:block; }

.footer-col a:hover { color:#F2820D; }

.footer-bottom { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem; font-family:'Inter',sans-serif; font-size:0.875rem; color:rgba(232,234,237,0.65); }

.notify-module { background:#FFFFFF; border:1px solid rgba(27,58,92,0.20); border-radius:6px; overflow:hidden; box-shadow:0 8px 48px rgba(27,58,92,0.15); grid-column: 1 / -1; max-width: unset; }

.notify-top { background:#1B3A5C; padding:1.625rem 2rem; border-bottom:3px solid #F2820D; }

.notify-title { font-family:'Oswald',sans-serif; font-weight:700; font-size:clamp(1.75rem,3.75vw,2.5rem); color:#FFFFFF; line-height:1.08; margin:0 0 0.3rem; }

.notify-sub { font-family:'Inter',sans-serif; font-size:1.125rem; color:rgba(255,255,255,0.82); font-weight:500; margin:0; }

.notify-body { padding:2rem; }

.notify-form { display:flex; gap:0.75rem; flex-wrap:wrap; margin-bottom:0.875rem; }

.notify-input { flex:1; min-width:200px; background:#F0F4F8; border:1px solid #C5D3E0; border-radius:3px; padding:1rem 1.125rem; font-family:'Inter',sans-serif; font-size:1.0625rem; color:#0D1F2D; outline:none; transition:border-color 0.18s; }

.notify-input:focus { border-color:rgba(242,130,13,0.65); box-shadow:0 0 0 3px rgba(242,130,13,0.12); }

.btn-notify { background:#F2820D; color:#0E1116; font-family:'Inter',sans-serif; font-size:1.0625rem; font-weight:700; padding:1rem 2rem; border-radius:3px; border:none; cursor:pointer; letter-spacing:0.05em; text-transform:uppercase; transition:background 0.15s; }

.btn-notify:hover { background:#E2B007; }

.notify-fine { font-family:'Inter',sans-serif; font-size:0.875rem; color:rgba(13,31,45,0.45); line-height:1.55; margin:0; }

.notify-thanks { display:none; background:rgba(226,176,7,0.10); border:1px solid rgba(226,176,7,0.30); border-radius:4px; padding:1.125rem; font-family:'Inter',sans-serif; font-size:1rem; font-weight:500; color:#E2B007; line-height:1.58; }

@media(prefers-reduced-motion:no-preference) {
      .reveal { opacity:0; transform:translateY(26px); transition:opacity 0.65s ease,transform 0.65s ease; }
      .reveal.in { opacity:1; transform:none; }
      .reveal-left { opacity:0; transform:translateX(-24px); transition:opacity 0.65s ease,transform 0.65s ease; }
      .reveal-left.in { opacity:1; transform:none; }
      .reveal-right { opacity:0; transform:translateX(24px); transition:opacity 0.65s ease,transform 0.65s ease; }
      .reveal-right.in { opacity:1; transform:none; }
    }

.notify-grid-outer { display:grid; grid-template-columns:minmax(0,1fr); gap:4rem; align-items:start; }

#notify-inner-grid { display:grid; gap:4rem; align-items:start; }

@media(min-width:900px) {
    #notify-inner-grid { grid-template-columns: repeat(2, 1fr); }
    .notify-image-col { display:block !important; }
  }

.sec-desc { font-family:'Inter',sans-serif; font-size:1.25rem; color:rgba(20,24,29,0.65); line-height:1.8; margin-top:0.75rem; }

.sponsor-tile { background:#FFFFFF; border:1px solid #E3E9F0; border-radius:6px; padding:1.25rem; display:flex; align-items:center; justify-content:center; height:140px; }
.sponsor-tile img { max-width:100%; max-height:100px; object-fit:contain; }

.notify-date-row { display:flex; gap:1.25rem; flex-wrap:wrap; align-items:flex-end; margin-bottom:2.5rem; }
.notify-date-tile { text-align:center; }
.notify-date-year { font-family:'Inter',sans-serif; font-size:0.6875rem; font-weight:700; letter-spacing:0.10em; text-transform:uppercase; color:rgba(232,234,237,0.35); display:block; margin-bottom:0.15rem; }
.notify-date-val { font-family:'Oswald',sans-serif; font-weight:700; font-size:2rem; color:#F2820D; line-height:1; display:block; }
.notify-date-label { font-family:'Inter',sans-serif; font-size:0.8125rem; font-weight:700; letter-spacing:0.10em; text-transform:uppercase; color:rgba(232,234,237,0.50); display:block; margin-top:0.3rem; }
.notify-date-divider { width:1px; height:52px; background:rgba(255,255,255,0.15); }
.notify-cal-btn { display:inline-flex; align-items:center; gap:0.5rem; background:transparent; border:1.5px solid rgba(232,234,237,0.22); border-radius:3px; padding:0.6875rem 1.25rem; font-family:'Inter',sans-serif; font-size:0.875rem; font-weight:600; color:rgba(232,234,237,0.62); cursor:pointer; letter-spacing:0.02em; }

.notify-image-col { display:none; }
.notify-image-frame { border-radius:8px; overflow:hidden; height:100%; min-height:480px; position:relative; }
.notify-image-cover { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.notify-image-gradient { position:absolute; inset:0; background:linear-gradient(to top,rgba(27,58,92,0.75) 0%,transparent 50%); }
.notify-image-caption-box { position:absolute; bottom:0; left:0; right:0; padding:2rem; }
.notify-image-caption-title { font-family:'Oswald',sans-serif; font-weight:700; font-size:1.5rem; color:#FFFFFF; margin:0 0 0.25rem; }
.notify-image-caption-sub { font-family:'Inter',sans-serif; font-size:1rem; color:rgba(232,234,237,0.80); margin:0; }

.producer-logo { height:56px; width:auto; display:block; }
