:root{
  --blue:#0e76bc;
  --blue-dk:#0a5c94;
  --lav:#0e76bc;
  --ink:#111;
  --text:#222;
  --grey:#707070;
  --panel:#f4f4f4;
  --pf:'Playfair Display',Georgia,'Times New Roman',serif;
  --mo:'Montserrat',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;background:#fff;color:var(--text);font:15px/1.65 var(--mo);-webkit-font-smoothing:antialiased}
img,video{max-width:100%;display:block}
a{color:var(--blue)}
h1,h2,h3{margin:0 0 .5em;line-height:1.2;font-weight:400}
p{margin:0 0 1em}
.wrap{max-width:1100px;margin:0 auto;padding:0 20px}
.wrap.narrow{max-width:760px}
.center{text-align:center}
.pf{font-family:var(--pf);font-weight:400}
.blue{color:var(--blue)}
.red{color:#e8323c}
b.hl{color:var(--blue);font-weight:700}

/* header */
.site-header{position:sticky;top:0;z-index:30;background:#000}
.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:92px;gap:16px}
.brand img{width:74px;height:74px}
.site-nav ul{list-style:none;display:flex;gap:6px;margin:0;padding:0}
.site-nav a{display:block;padding:10px 12px;color:#fff;text-decoration:none;font:600 11.5px var(--mo);letter-spacing:.09em}
.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--lav)}
.nav-toggle{display:none;background:none;border:0;padding:10px;cursor:pointer}
.nav-toggle span{display:block;width:24px;height:2px;background:#fff;margin:5px 0}
@media (max-width:860px){
  .header-inner{min-height:76px}.brand img{width:60px;height:60px}
  .nav-toggle{display:block}
  .site-nav{position:absolute;left:0;right:0;top:76px;background:#000;display:none;padding:6px 20px 16px}
  .site-nav.open{display:block}
  .site-nav ul{flex-direction:column}
  .site-nav a{font-size:13px;padding:12px 4px}
}

/* buttons */
.btn{display:inline-block;background:var(--blue);color:#fff;font:700 11px/1.35 var(--mo);letter-spacing:.06em;padding:13px 30px;text-decoration:none;border:0;cursor:pointer;text-align:center}
.btn:hover{background:var(--blue-dk)}
.btn.wide{min-width:186px}
.btn-row{display:flex;gap:40px;flex-wrap:wrap;margin-top:34px}
.btn-row .btn{min-width:152px}

/* media backgrounds */
.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tint{position:absolute;inset:0}
.tint.blue{background:rgba(64,140,205,.62);mix-blend-mode:normal}
.tint.dark{background:rgba(0,0,0,.55)}
.tint.soft{background:rgba(0,0,0,.18)}
.inner{position:relative;z-index:1}

/* hero */
.hero{position:relative;min-height:620px;display:flex;align-items:center;overflow:hidden;color:#fff;background:#4a8cc4}
.hero .wrap{width:100%;padding-top:80px;padding-bottom:80px}
.hero .inner{max-width:1100px}
.hero-kicker{font:400 17px var(--pf);margin-bottom:12px}
.hero-h1{font:800 clamp(30px,4.2vw,40px)/1.2 var(--mo);letter-spacing:.02em;margin-bottom:14px}
.pipe{color:var(--blue);margin:0 .25em}
.hero-sub{font:400 15px/1.4 var(--mo);text-transform:uppercase;max-width:380px;margin-bottom:12px}
.hero-quote{font:400 17px/1.6 var(--pf);max-width:370px}
.hero-quote b{font-weight:700}

/* split rows */
.split{display:grid;grid-template-columns:1fr 1fr;min-height:460px}
.split-media{position:relative;overflow:hidden;min-height:320px;background:#cfdbe6}
.split-media img,.split-media video{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.split-text{display:flex;flex-direction:column;justify-content:center;padding:72px 80px;background:#fff}
.split-text.grey{background:var(--panel)}
.split-text h2{font-family:var(--pf);font-size:clamp(28px,3.2vw,38px);color:var(--ink);margin-bottom:.8em}
.split-text h2.blue{color:var(--blue)}
.split-text p{font-size:15px;max-width:420px}
@media (max-width:860px){
  .split{grid-template-columns:1fr}
  .split-media{min-height:280px;order:0!important}
  .split-text{padding:48px 22px;order:1}
}

/* quote band */
.quote-band{position:relative;background-size:cover;background-position:center;padding:110px 0;color:#fff}
.quote-band p{font:400 clamp(22px,3vw,34px)/1.45 var(--pf);max-width:720px;margin:0 auto}

/* membership */
.membership{padding:56px 0 70px}
.membership h2{font-size:34px}
.membership p{color:var(--grey);font-size:15px}
.mcards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:40px}
.mcards figure{margin:0;text-align:center}
.mcards img{width:100%;aspect-ratio:3/2;object-fit:cover}
.mcards figcaption{font:700 40px var(--pf);color:#aaa;margin-top:28px}
.mcards .b{color:var(--blue)}
.mcards .two{font-size:.75em;color:var(--blue)}
.mcards small{font-size:.5em}
@media (max-width:700px){.mcards{grid-template-columns:1fr}.mcards figcaption{margin-top:10px;margin-bottom:20px}}

/* blue band */
.blue-band{background:var(--blue);color:#fff;padding:44px 0 50px}
.blue-band h2{font-size:38px}
.blue-band p{font-weight:600;font-size:15.5px;max-width:350px;line-height:1.5}

/* events */
.events{display:grid;grid-template-columns:1fr 1fr}
.events-video{position:relative;min-height:470px;overflow:hidden;background:#222}
.ev-label{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;z-index:1;text-align:center}
.ev-label h2{font-size:38px;margin:0}
.ev-label p{font-size:10px;font-weight:600;margin:4px 0 0}
.ev-label a{color:#fff;text-decoration:none}
.events-grid{display:grid;grid-template-columns:1fr 1fr}
.tile img{width:100%;aspect-ratio:1/1;object-fit:cover;transition:opacity .2s}
.tile:hover img{opacity:.85}
@media (max-width:860px){.events{grid-template-columns:1fr}.events-video{min-height:300px}}

/* calendar */
.calendar{padding:46px 0 60px}
.cal-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 40px;max-width:840px}
.cal-h{font:700 24px var(--mo);color:var(--ink);margin-bottom:6px}
.cal-item{margin-bottom:22px}
.cal-item p{margin:0;font-size:13.5px}
.cal-item .mon{font:700 20px var(--mo);color:var(--blue)}
.cal-item .ct{font:700 13px var(--mo);letter-spacing:.02em;color:var(--ink)}
@media (max-width:700px){.cal-grid{grid-template-columns:1fr}}

/* contact band */
.contact-band{position:relative;background-size:cover;background-position:center;padding:40px 0 60px;color:#fff}
.contact-band .inner{max-width:350px;margin:0 auto}
.contact-band h2{font-size:34px}
.contact-band p{font-weight:600;font-size:16px;line-height:1.45}
.sub-form{gap:8px;margin-top:30px}
.sub-form label{color:#fff;font-size:10px;font-weight:700}
.sub-form input{background:transparent;border:1px solid #fff;color:#fff;padding:6px 8px}
.sub-form .short input{max-width:105px}

/* banners */
.banner{position:relative;min-height:232px;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden;background:#4a8cc4}
.banner h1{font:800 clamp(30px,4.4vw,46px) var(--mo);letter-spacing:.01em;margin:0}
.banner .credit{font-size:12px;font-weight:600;margin:12px 0 0}
.banner .credit a{color:#fff;text-decoration:none}
.banner .inner{padding:40px 20px}

/* mission */
.mission{position:relative;padding:90px 0;color:#fff;overflow:hidden;background:#555}
.mission h2{font:400 46px var(--pf);text-align:center;margin-bottom:.6em}
.mission p{font:400 19px/1.55 var(--pf);margin-bottom:1.1em}

/* event rows */
.ev .split-text h2{margin-bottom:.3em}
.bigd{font-size:1.45em;line-height:.8}
.ev-sub{font:400 22px var(--pf);color:var(--ink);margin:0 0 1em!important}
.ev-tag{font-size:20px!important;color:#9a9a9a;margin:0 0 2em!important}
.ev .split-media{min-height:560px}

/* join + contact */
.join-h{font-size:clamp(32px,3.6vw,42px);color:var(--ink);margin-bottom:1em}
.join .lead{font-size:clamp(18px,2vw,24px)!important;max-width:560px!important;line-height:1.5}
.join .split-media,.contact-split .split-media{min-height:460px}
.contact-h{font-size:clamp(28px,3.2vw,38px);color:var(--ink);margin-bottom:1.3em;line-height:1.3}
.interest p{font-size:clamp(17px,1.8vw,22px)!important;margin:0 0 .35em!important;max-width:none!important}
.interest a{font-weight:700;text-decoration:none}
.else{font-size:clamp(17px,1.8vw,22px)!important;line-height:1.9!important;margin-top:1.4em;max-width:none!important}

/* forms */
.site-form{display:grid;gap:14px}
.line-form{margin-top:34px;max-width:520px}
.line-form label{display:grid;gap:4px;font-size:11px;color:#888}
.line-form input,.line-form textarea{border:0;border-bottom:1px solid #222;background:transparent;font:inherit;font-size:14px;padding:6px 0;color:var(--ink)}
.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media (max-width:560px){.row3{grid-template-columns:1fr}}
.check{display:flex!important;gap:10px;align-items:flex-start;font-size:11px!important;color:#888;line-height:1.45}
.check input{margin-top:3px}
.center-btn{justify-self:center;min-width:160px}
.hp{position:absolute;left:-9999px}
.form-msg{padding:10px 12px;margin:0;font-size:13px}
.form-msg.ok{background:#e4f4e8;color:#1d5a2c}
.form-msg.err{background:#fbe6e6;color:#8a1f1f}

/* footer */
.site-footer{background:#000;color:#fff;padding:40px 0 46px}
.footer-grid{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:30px;align-items:start}
.f-left{text-align:right;color:#9a9a9a;font-size:14px}
.f-left img{width:74px;height:74px;margin:0 0 10px auto;margin-right:36px}
.f-left p{margin:0}
.f-mid{text-align:center;font-size:13px;font-weight:600}
.social{display:flex;gap:12px;justify-content:center;margin:16px 0 50px}
.social a{width:25px;height:25px;border:1.5px solid var(--blue);border-radius:50%;display:grid;place-items:center}
.social svg{width:14px;height:14px;fill:var(--blue)}
.f-right{font-size:14px;font-weight:600}
.f-right .founded{font-size:12px;margin:8px 0 14px}
.f-right h3{font:400 22px var(--pf);margin-bottom:.8em}
.f-right a{color:var(--lav);text-decoration:none;font-weight:500}
.f-right a.plain{color:#fff;font-weight:600}
@media (max-width:760px){
  .footer-grid{grid-template-columns:1fr;text-align:center}
  .f-left{text-align:center}.f-left img{margin:0 auto 10px}
  .social{margin:6px 0 16px}
}
.line-form input,.line-form textarea{width:100%;min-width:0}
.row3 label{min-width:0}
.split-text{min-width:0}
.sub-form label{display:grid;gap:3px}
.sub-form .btn{justify-self:start;margin-top:8px}
.line-form .check input{width:auto;flex:0 0 auto}
.split-text p.ev-sub{font:400 22px var(--pf);color:var(--ink)}
.split-text p.ev-tag{font-size:20px;color:#9a9a9a}

/* parallax: background media moves slower than the page */
.hero,.quote-band,.contact-band,.banner,.mission{overflow:hidden}
.bg{will-change:transform;height:130%;top:-15%}
@media (prefers-reduced-motion:reduce){.bg{height:100%;top:0;transform:none!important}}
/* home About slideshow */
.slideshow .slide{opacity:0;transition:opacity 1s ease}
.slideshow .slide.active{opacity:1}
.dots{position:absolute;bottom:14px;left:0;right:0;display:flex;gap:8px;justify-content:center;z-index:2}
.dots button{width:9px;height:9px;border-radius:50%;border:0;padding:0;background:rgba(255,255,255,.55);cursor:pointer}
.dots button.active{background:#fff}
/* event tiles */
.tile{display:block;position:relative}
.tile:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}

/* map strip (Join IBA, Contact Us, Sponsor) */
.map-strip{position:relative;z-index:0;background:#eceae6}
#iba-map{height:205px;width:100%}
.iba-pin{background:none;border:0}
.iba-pop{font:italic 400 16px var(--pf);color:#222}
.leaflet-popup-content a{font:600 12px var(--mo);color:var(--blue)}
.leaflet-container{font-family:var(--mo)}
@media (max-width:760px){#iba-map{height:260px!important}}

/* contact interest lines — matched to original */
.interest{margin:2.2em 0 0}
.interest p{font-size:clamp(16px,1.55vw,19px)!important;font-weight:500;line-height:1.85!important;margin:0!important;color:#111;letter-spacing:.01em}
.interest a{font-weight:700;letter-spacing:.04em;color:var(--blue)}
.interest a:hover{color:var(--blue-dk)}
.else{font-size:clamp(16px,1.55vw,19px)!important;font-weight:500;line-height:1.85!important;margin-top:2.2em!important;color:#111;letter-spacing:.01em}
.f-mid{font-size:12px;letter-spacing:-.005em}
@media (min-width:901px){.f-mid .copy{white-space:nowrap}}
.interest{margin-top:.6em}
.else{letter-spacing:0;font-size:clamp(16px,1.45vw,18px)!important}
.join .lead{font-size:clamp(17px,1.65vw,20px)!important}
/* sponsor page — matched to original */
.split-text p.sp-intro{font-size:clamp(15px,1.3vw,17px);line-height:1.6;max-width:none;color:#111;margin:-.4em 0 1.6em}
@media (min-width:861px){.sp-h{white-space:nowrap;font-size:clamp(24px,2.5vw,32px)}}
/* light grey map look (street map tiles desaturated; pin stays blue) */
.iba-tiles{filter:grayscale(1) brightness(1.1) contrast(.82)}
