:root { --evfr-sky:#a9c4dc; --evfr-sky-soft:#dce9f3; --evfr-navy:#173f6d; --evfr-navy-deep:#0f2d4f; --evfr-gold:#b59a5d; --evfr-paper:#f7f8f6; --evfr-text:#1d2d3d; }
* { box-sizing:border-box; }
html { min-width:360px; }
body { margin:0; color:var(--evfr-text); background:var(--evfr-paper); font-family:Inter,Segoe UI,Arial,sans-serif; line-height:1.65; }
a { color:var(--evfr-navy); text-underline-offset:3px; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline:3px solid var(--evfr-gold); outline-offset:3px; }
.site-header { background:var(--evfr-sky); }
.evfr-nav-wrap { min-height:104px; max-width:1440px; padding:16px 4vw; }
.navbar-brand { color:var(--evfr-navy-deep); display:flex; flex-direction:column; gap:0; line-height:1; }
.navbar-brand:hover { color:var(--evfr-navy-deep); }
.brand-mark { font-family:Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif; font-size:2.15rem; letter-spacing:.08em; }
.brand-subtitle { font-size:.62rem; font-weight:700; letter-spacing:.08em; max-width:270px; line-height:1.25; }
.navbar-toggler { border-color:var(--evfr-navy); }
.navbar-toggler-icon { filter:invert(20%) sepia(32%) saturate(1110%) hue-rotate(169deg); }
.nav-link { color:var(--evfr-navy-deep); font-weight:700; font-size:.9rem; padding:.55rem .7rem !important; }
.nav-link:hover, .nav-link.active { color:var(--evfr-navy-deep); text-decoration:underline; text-decoration-color:var(--evfr-gold); text-decoration-thickness:3px; }
.header-divider { height:12px; background:#fff; }
.hero { background-position:center; background-size:cover; color:#fff; display:flex; align-items:flex-end; }
.hero-home { min-height:min(66vw,660px); }
.hero-page { min-height:clamp(280px,34vw,460px); }
.hero-content { padding:clamp(3rem,8vw,8rem) max(1rem,4vw); max-width:1180px; margin:0 auto; width:100%; }
.hero h1 { max-width:900px; margin:0; color:#fff; font-family:Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif; font-size:clamp(2.75rem,7vw,6.5rem); font-weight:400; line-height:.98; letter-spacing:.025em; text-shadow:0 2px 16px rgba(0,0,0,.32); }
.hero p:not(.eyebrow) { max-width:670px; margin:1.25rem 0 0; font-size:clamp(1rem,2vw,1.3rem); }
.eyebrow { margin:0 0 .5rem; color:var(--evfr-gold); font-size:.78rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.section-shell { padding:clamp(3.5rem,8vw,7rem) 0; }
.intro-section { background:#fff; }
.narrow-copy { max-width:850px; }
.narrow-copy h2 { color:var(--evfr-navy-deep); font-family:Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif; font-size:clamp(2rem,4vw,3.2rem); font-weight:400; letter-spacing:.02em; }
.lead { color:var(--evfr-navy-deep); font-size:1.25rem; }
.quick-links { display:flex; flex-wrap:wrap; gap:1rem 1.5rem; margin-top:2rem; }
.quick-links a, .button-link { border-bottom:3px solid var(--evfr-gold); font-weight:800; text-decoration:none; }
.card-grid { display:grid; gap:1.25rem; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:2rem; }
.info-card { background:#fff; border-top:5px solid var(--evfr-gold); box-shadow:0 10px 28px rgba(15,45,79,.1); padding:1.7rem; }
.info-card h2 { color:var(--evfr-navy-deep); font-size:1.35rem; font-family:Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif; font-weight:400; letter-spacing:.025em; }
.info-card p { margin-bottom:0; }
.gallery-grid { display:grid; gap:1.25rem; grid-template-columns:repeat(2,minmax(0,1fr)); }
.gallery-card { margin:0; overflow:hidden; background:#fff; box-shadow:0 8px 25px rgba(15,45,79,.11); }
.gallery-card img { aspect-ratio:10/7; display:block; object-fit:cover; width:100%; }
.gallery-card figcaption { display:flex; flex-direction:column; padding:1rem 1.1rem; color:var(--evfr-navy-deep); }
.members-hero { min-height:clamp(230px,37vw,500px); background-size:cover; background-position:center; border-bottom:12px solid #fff; }
.members-only-empty { min-height:40vh; background:var(--evfr-paper); }
.site-footer { background:var(--evfr-navy-deep); color:#fff; padding:1.5rem 0; font-size:.88rem; }
.footer-links { display:flex; flex-wrap:wrap; gap:.75rem; } .footer-links a { color:#fff; }
.error-page { min-height:48vh; display:flex; flex-direction:column; justify-content:center; }
@media (max-width: 991px) { .navbar-collapse { padding:.75rem 0; } .nav-link { padding-left:0 !important; } }
@media (max-width: 640px) { .evfr-nav-wrap { min-height:84px; } .brand-mark { font-size:1.8rem; } .hero-home { min-height:540px; } .card-grid, .gallery-grid { grid-template-columns:1fr; } .section-shell { padding-left:1rem; padding-right:1rem; } }
