
:root{--ink:#0a0807;--ink2:#1a1512;--cream:#faf5ee;--sand:#e8d5b0;--gold:#c8973a;--glt:#e8b84b;--white:#ffffff;--D:'Bebas Neue',sans-serif;--S:'Cormorant Garamond',Georgia,serif;--B:'DM Sans',sans-serif;}
*{margin:0;padding:0;box-sizing:border-box;}html{scroll-behavior:smooth;}
img,video,svg{max-width:100%;height:auto;display:block;}
body{font-family:var(--B);background:var(--cream);color:var(--ink);overflow-x:hidden;overflow-wrap:break-word;word-wrap:break-word;}
.afo-page{min-height:60vh;}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(10,8,7,0.97);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:space-between;padding:0 48px;height:70px;border-bottom:1px solid rgba(200,151,58,0.25);}
.nav-logo{display:flex;align-items:center;gap:10px;cursor:pointer;text-decoration:none;}
.nav-logo img{height:36px;object-fit:contain;}
.nav-wm{font-family:var(--D);font-size:1.6rem;letter-spacing:0.08em;color:var(--gold);line-height:1;}
.nav-wm span{color:var(--white);}
.nav-links{display:flex;align-items:center;gap:2px;list-style:none;}
.nav-links li a,.nav-links li button{font-family:var(--B);font-size:0.7625rem;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;color:rgba(255,255,255,0.7);text-decoration:none;padding:6px 10px;border:none;background:none;cursor:pointer;border-radius:2px;transition:color 0.2s,background 0.2s;white-space:nowrap;}
.nav-links li a:hover,.nav-links li button:hover,.nav-links li a.nact,.nav-links li button.nact{color:var(--gold);background:rgba(200,151,58,0.08);}
.nav-cta{background:var(--gold)!important;color:var(--ink)!important;padding:6px 16px!important;font-weight:600!important;}
.nav-cta:hover{background:var(--glt)!important;}
.dropdown{position:relative;}
.dropdown-menu{position:absolute;top:calc(100% + 1px);left:0;background:rgba(10,8,7,0.98);border:1px solid rgba(200,151,58,0.2);border-top:2px solid var(--gold);min-width:200px;display:none;flex-direction:column;z-index:999;}
.dropdown:hover .dropdown-menu{display:flex;}
.dropdown-menu a{font-family:var(--B);font-size:0.7625rem;font-weight:400;letter-spacing:0.08em;text-transform:uppercase;color:rgba(255,255,255,0.7)!important;text-decoration:none;padding:10px 16px!important;border-bottom:1px solid rgba(255,255,255,0.04);transition:background 0.2s,color 0.2s;display:block;background:none!important;}
.dropdown-menu a:hover{color:var(--gold)!important;background:rgba(200,151,58,0.08)!important;}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:8px;}
.hamburger span{width:22px;height:2px;background:var(--gold);display:block;}
#mob{display:none;position:fixed;inset:0;background:var(--ink);z-index:998;padding:90px 36px 36px;flex-direction:column;gap:4px;overflow-y:auto;}
.mob-btn{font-family:var(--D);font-size:2rem;color:var(--white);background:none;border:none;cursor:pointer;text-align:left;letter-spacing:0.04em;padding:10px 0;border-bottom:1px solid rgba(255,255,255,0.06);width:100%;transition:color 0.2s;}
.mob-btn:hover{color:var(--gold);}
.mob-close{position:absolute;top:22px;right:24px;background:none;border:none;color:rgba(255,255,255,0.6);font-size:1.6rem;cursor:pointer;}

/* BUTTONS */
.btn{display:inline-block;font-family:var(--B);font-size:0.8225rem;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;text-decoration:none;padding:13px 32px;border:none;cursor:pointer;transition:all 0.22s;}
.btn-g{background:var(--gold);color:var(--ink);}
.btn-g:hover{background:var(--glt);transform:translateY(-2px);box-shadow:0 8px 24px rgba(200,151,58,0.28);}
.btn-ow{background:transparent;color:var(--white);border:1.5px solid rgba(255,255,255,0.35);}
.btn-ow:hover{border-color:var(--gold);color:var(--gold);}
.btn-od{background:transparent;color:var(--ink);border:1.5px solid rgba(10,8,7,0.4);}
.btn-od:hover{border-color:var(--gold);color:var(--gold);}

/* UTILS */
.eb{font-family:var(--B);font-size:0.7325rem;letter-spacing:0.28em;text-transform:uppercase;color:var(--gold);margin-bottom:14px;display:flex;align-items:center;gap:12px;}
.eb::before{content:'';display:block;width:30px;height:1px;background:var(--gold);flex-shrink:0;}
.st{font-family:var(--D);font-size:clamp(2.8rem,5.5vw,5rem);line-height:0.92;letter-spacing:0.02em;color:var(--ink);}
.stw{color:var(--white);}
.sb{font-family:var(--S);font-size:1.1825rem;line-height:1.72;color:#42403c;margin-top:16px;}
.sbl{color:var(--sand);}
.gtxt{color:var(--gold);}
.fu{opacity:0;transform:translateY(26px);transition:opacity 0.6s ease,transform 0.6s ease;}
.fu.vis{opacity:1;transform:none;}

/* MARQUEE */
.mq{background:var(--gold);padding:13px 0;overflow:hidden;white-space:nowrap;}
.mq-t{display:inline-block;animation:mqr 22s linear infinite;}
.mq-i{display:inline-block;font-family:var(--D);font-size:0.9825rem;letter-spacing:0.14em;color:var(--ink);padding:0 34px;}
.mq-d{display:inline-block;width:5px;height:5px;background:rgba(10,8,7,0.3);border-radius:50%;vertical-align:middle;margin-right:34px;}
@keyframes mqr{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* FOOTER */
footer{background:#060504;padding:60px 60px 0;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:44px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,0.06);}
.footer-logo img{height:38px;margin-bottom:12px;}
.footer-tagline{font-family:var(--S);font-style:italic;font-size:0.9825rem;color:rgba(255,255,255,0.32);line-height:1.6;}
.footer-col-title{font-size:0.6625rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--gold);margin-bottom:16px;}
.footer-links{list-style:none;display:flex;flex-direction:column;gap:8px;}
.footer-links li a{font-size:0.8825rem;color:rgba(255,255,255,0.4);text-decoration:none;cursor:pointer;transition:color 0.2s;}
.footer-links li a:hover{color:var(--gold);}
.footer-bottom{padding:16px 0;display:flex;justify-content:space-between;align-items:center;}
.footer-copy{font-size:0.7625rem;color:rgba(255,255,255,0.22);}
.socials{display:flex;gap:8px;}
.sp{font-size:0.7425rem;letter-spacing:0.1em;text-transform:uppercase;color:rgba(255,255,255,0.38);text-decoration:none;padding:5px 11px;border:1px solid rgba(255,255,255,0.1);border-radius:2px;transition:all 0.2s;}
.sp:hover{border-color:var(--gold);color:var(--gold);}

/* PAGE HERO */
.ph{background:var(--ink2);padding:100px 60px 70px;position:relative;overflow:hidden;}
.ph::after{content:attr(data-bg);position:absolute;right:-24px;top:50%;transform:translateY(-50%);font-family:var(--D);font-size:clamp(6rem,14vw,13rem);color:rgba(255,255,255,0.025);letter-spacing:0.04em;pointer-events:none;white-space:nowrap;}
.ph-title{font-family:var(--D);font-size:clamp(3.5rem,8vw,7rem);color:var(--white);line-height:0.92;}

/* HERO */
.hero{min-height:100vh;background:var(--ink);position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding:80px 60px;overflow:hidden;}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center top;filter:brightness(0.32);}
.hero-ov{position:absolute;inset:0;background:linear-gradient(to top,rgba(10,8,7,0.98) 0%,rgba(10,8,7,0.38) 55%,rgba(10,8,7,0.12) 100%);}
.hero-cnt{position:relative;z-index:2;max-width:920px;}
.hero-ey{font-family:var(--B);font-size:0.7325rem;letter-spacing:0.28em;text-transform:uppercase;color:var(--gold);margin-bottom:16px;display:flex;align-items:center;gap:14px;animation:fup 0.8s ease both;}
.hero-ey::before{content:'';width:42px;height:1px;background:var(--gold);}
.hero-h1{font-family:var(--D);font-size:clamp(5rem,12vw,11rem);line-height:0.88;color:var(--white);letter-spacing:0.015em;animation:fup 0.8s 0.1s ease both;}
.hero-sub{font-family:var(--S);font-style:italic;font-size:clamp(1.1rem,2.2vw,1.55rem);color:var(--sand);margin-top:20px;max-width:560px;line-height:1.55;animation:fup 0.8s 0.2s ease both;}
.hero-acts{display:flex;gap:13px;flex-wrap:wrap;margin-top:38px;animation:fup 0.8s 0.3s ease both;}
.hero-badge{position:absolute;top:80px;right:60px;z-index:2;background:rgba(200,151,58,0.1);border:1px solid rgba(200,151,58,0.3);backdrop-filter:blur(6px);padding:20px 26px;text-align:center;animation:fup 0.8s 0.4s ease both;}
.hb-l{font-size:0.6625rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--gold);}
.hb-d{font-family:var(--D);font-size:1.5rem;color:var(--white);letter-spacing:0.06em;margin-top:4px;}
.hb-v{font-size:0.7925rem;color:rgba(255,255,255,0.5);margin-top:5px;line-height:1.4;}
@keyframes fup{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}

/* STATS BAR */
.stats-bar{background:var(--gold);padding:20px 60px;display:grid;grid-template-columns:repeat(5,1fr);gap:16px;}
.stat{text-align:center;}
.stat-n{font-family:var(--D);font-size:2.5rem;color:var(--ink);line-height:1;}
.stat-l{font-size:0.6925rem;font-weight:600;letter-spacing:0.13em;text-transform:uppercase;color:rgba(10,8,7,0.58);margin-top:3px;}

/* MISSION */
.mission{background:var(--cream);padding:108px 60px;display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start;}
.pillars{display:flex;flex-direction:column;gap:2px;}
.pillar{display:flex;align-items:stretch;background:var(--white);border-left:3px solid var(--gold);overflow:hidden;transition:transform 0.22s,box-shadow 0.22s;}
.pillar:hover{transform:translateX(6px);box-shadow:0 4px 28px rgba(0,0,0,0.09);}
.p-num{font-family:var(--D);font-size:2.6rem;color:var(--gold);padding:18px 20px;min-width:66px;display:flex;align-items:center;justify-content:center;border-right:1px solid rgba(200,151,58,0.15);}
.p-body{padding:18px 20px;}
.p-t{font-family:var(--D);font-size:1.4125rem;letter-spacing:0.06em;color:var(--ink);margin-bottom:4px;}
.p-p{font-size:0.9125rem;line-height:1.6;color:#5a5550;}

/* EVENTS */
.evs{background:var(--ink2);padding:108px 60px;}
.evs-hdr{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:44px;}
.ev-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:3px;}
.ev-col{display:flex;flex-direction:column;gap:3px;}
.ev-card{position:relative;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;justify-content:flex-end;padding:32px;min-height:300px;transition:all 0.3s;}
.ev-card.tall{min-height:490px;}
.ev-bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform 0.4s ease;}
.ev-card:hover .ev-bg{transform:scale(1.04);}
.ev-ov{position:absolute;inset:0;background:linear-gradient(to top,rgba(10,8,7,0.95) 0%,rgba(10,8,7,0.28) 58%,transparent 100%);z-index:1;}
.ev-cnt{position:relative;z-index:2;}
.ev-tag{display:inline-block;font-size:0.6425rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--gold);border:1px solid rgba(200,151,58,0.45);padding:3px 8px;margin-bottom:8px;}
.ev-title{font-family:var(--D);font-size:1.9rem;letter-spacing:0.04em;color:var(--white);line-height:1;margin-bottom:5px;}
.ev-desc{font-size:0.8725rem;color:rgba(255,255,255,0.58);line-height:1.5;max-width:320px;}
.ev-arr{position:absolute;top:22px;right:22px;z-index:2;width:36px;height:36px;border:1px solid rgba(255,255,255,0.16);display:flex;align-items:center;justify-content:center;color:var(--white);font-size:0.9625rem;transition:background 0.2s,border-color 0.2s;}
.ev-card:hover .ev-arr{background:var(--gold);border-color:var(--gold);color:var(--ink);}

/* GALLERY STRIP */
.gs{display:grid;grid-template-columns:repeat(5,1fr);height:230px;}
.gs-item{overflow:hidden;}
.gs-item img{width:100%;height:100%;object-fit:cover;transition:transform 0.4s;filter:brightness(0.78);}
.gs-item:hover img{transform:scale(1.08);filter:brightness(1);}

/* NEW CARDS */
.new-sec{background:var(--ink);padding:108px 60px;}
.new-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin-top:44px;}
.new-card{background:var(--ink2);overflow:hidden;cursor:pointer;transition:transform 0.25s;}
.new-card:hover{transform:translateY(-4px);}
.nc-img{width:100%;height:210px;object-fit:cover;display:block;filter:brightness(0.82);transition:filter 0.3s;}
.new-card:hover .nc-img{filter:brightness(1);}
.nc-body{padding:26px;}
.nc-tag{font-size:0.6425rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--gold);margin-bottom:7px;}
.nc-title{font-family:var(--D);font-size:1.55rem;letter-spacing:0.04em;color:var(--white);margin-bottom:7px;}
.nc-desc{font-size:0.8825rem;color:rgba(255,255,255,0.48);line-height:1.55;}
.nc-link{display:flex;align-items:center;gap:7px;margin-top:16px;font-size:0.7625rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--gold);text-decoration:none;}

/* FEST HERO */
.fest-hero{min-height:92vh;position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding:80px 60px;overflow:hidden;background:var(--ink);}
.fh-bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:brightness(0.28);}
.fh-ov{position:absolute;inset:0;background:linear-gradient(to top,rgba(10,8,7,1) 0%,rgba(10,8,7,0.48) 52%,rgba(10,8,7,0.08) 100%);}
.fh-yr{position:absolute;top:76px;right:60px;z-index:2;font-family:var(--D);font-size:clamp(5rem,12vw,10rem);color:rgba(200,151,58,0.1);letter-spacing:0.04em;line-height:1;pointer-events:none;}
.fh-cnt{position:relative;z-index:2;max-width:780px;}
.fest-h1{font-family:var(--D);font-size:clamp(4rem,10vw,9.5rem);color:var(--white);letter-spacing:0.02em;line-height:0.87;}
.fest-h1 .ol{-webkit-text-stroke:1px var(--gold);color:transparent;}
.info-pills{display:flex;gap:3px;flex-wrap:wrap;margin-top:24px;}
.ip{background:rgba(200,151,58,0.09);border:1px solid rgba(200,151,58,0.22);padding:9px 16px;}
.ip-l{font-size:0.6325rem;letter-spacing:0.2em;text-transform:uppercase;color:rgba(255,255,255,0.38);}
.ip-v{font-family:var(--D);font-size:1.1125rem;color:var(--white);letter-spacing:0.05em;margin-top:2px;}

/* FEAT GRID */
.link-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;background:var(--ink);padding:3px;}
.fg2{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--ink);padding:2px;}
.fc{background:var(--cream);padding:28px 24px;transition:background 0.22s;}
.fc:hover{background:var(--gold);}
.fc:hover .fc-t,.fc:hover .fc-p{color:var(--ink);}
.fc-ico{font-size:1.7rem;margin-bottom:9px;}
.fc-t{font-family:var(--D);font-size:1.3125rem;letter-spacing:0.06em;color:var(--ink);margin-bottom:5px;transition:color 0.22s;}
.fc-p{font-size:0.8825rem;line-height:1.55;color:#6a6560;transition:color 0.22s;}

/* BOMA */
.boma-sec{background:var(--ink);padding:100px 60px;}
.boma-grid2{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;margin-top:44px;}
.boma-img2{width:100%;height:400px;object-fit:cover;}
.boma-areas{display:flex;flex-direction:column;gap:2px;margin-top:28px;}
.ba{display:flex;align-items:center;background:var(--ink2);border-left:3px solid transparent;transition:all 0.22s;cursor:pointer;}
.ba:hover{border-left-color:var(--gold);background:#221e1a;}
.ba-num{font-family:var(--D);font-size:1.5rem;color:rgba(200,151,58,0.38);min-width:50px;height:58px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color 0.22s;}
.ba:hover .ba-num{color:var(--gold);}
.ba-info{padding:11px 14px;}
.ba-t{font-family:var(--D);font-size:1.1125rem;letter-spacing:0.06em;color:var(--white);}
.ba-s{font-size:0.8125rem;color:rgba(255,255,255,0.36);margin-top:2px;}

/* STATS DARK */
.stats-dk{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin-top:72px;background:var(--ink2);padding:3px;}
.sdc{background:var(--ink);padding:40px 32px;border-top:3px solid transparent;transition:border-color 0.22s;}
.sdc:hover{border-top-color:var(--gold);}
.sdc-n{font-family:var(--D);font-size:3.5rem;color:var(--gold);line-height:1;}
.sdc-l{font-size:0.7825rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--sand);margin-top:5px;}
.sdc-p{font-size:0.8725rem;color:rgba(255,255,255,0.34);margin-top:8px;line-height:1.5;}

/* TECH / FILM / GENERIC GRID */
.t3{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;background:var(--ink);padding:3px;margin-top:44px;}
.tc{background:var(--cream);padding:36px 28px;border-top:3px solid transparent;transition:all 0.25s;}
.tc:hover{background:var(--ink2);border-top-color:var(--gold);}
.tc:hover .tc-t{color:var(--gold);}
.tc:hover .tc-p{color:var(--sand);}
.tc-n{font-family:var(--D);font-size:2.8rem;color:rgba(10,8,7,0.06);line-height:1;margin-bottom:10px;transition:color 0.25s;}
.tc:hover .tc-n{color:rgba(200,151,58,0.12);}
.tc-t{font-family:var(--D);font-size:1.4625rem;letter-spacing:0.05em;color:var(--ink);margin-bottom:7px;transition:color 0.25s;}
.tc-p{font-size:0.9025rem;line-height:1.58;color:#6a6560;transition:color 0.25s;}

/* SCHEDULE */
.sched{display:flex;flex-direction:column;gap:2px;margin-top:44px;}
.sched-row{display:grid;grid-template-columns:130px 1fr;background:var(--white);border-left:3px solid transparent;transition:all 0.22s;}
.sched-row:hover{border-left-color:var(--gold);background:var(--sand);}
.sched-time{padding:20px 16px;background:var(--ink);font-family:var(--D);font-size:1.0125rem;color:var(--gold);letter-spacing:0.06em;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.3;}
.sched-body{padding:20px 24px;}
.sched-t{font-family:var(--D);font-size:1.2125rem;letter-spacing:0.05em;color:var(--ink);}
.sched-p{font-size:0.8825rem;line-height:1.55;color:#6a6560;margin-top:4px;}

/* PARTNERS */
.pg{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin-top:44px;background:var(--ink);padding:3px;}
.pc{background:var(--cream);padding:24px;text-align:center;transition:background 0.22s;}
.pc:hover{background:var(--gold);}
.pc:hover .pc-n,.pc:hover .pc-r{color:var(--ink);}
.pc-n{font-family:var(--D);font-size:1.2125rem;letter-spacing:0.05em;color:var(--ink);margin-bottom:4px;transition:color 0.22s;}
.pc-r{font-size:0.8225rem;color:#7a7570;transition:color 0.22s;}

/* BOMA FULL PAGE */
.boma-zone-row{background:var(--cream);border-left:4px solid var(--gold);padding:26px 30px;display:grid;grid-template-columns:56px 1fr 1fr;align-items:center;gap:20px;transition:background 0.22s;}
.boma-zone-row:hover{background:var(--sand);}
.bz-num{font-family:var(--D);font-size:2.8rem;color:var(--gold);line-height:1;}
.bz-t{font-family:var(--D);font-size:1.5rem;letter-spacing:0.05em;color:var(--ink);}
.bz-s{font-size:0.8325rem;color:#7a7570;margin-top:4px;}
.bz-p{font-size:0.9125rem;color:#5a5550;line-height:1.55;}

/* TIER CARDS */
.tier-card{background:var(--white);padding:32px;border-top:4px solid var(--gold);transition:box-shadow 0.22s;}
.tier-card:hover{box-shadow:0 8px 36px rgba(200,151,58,0.14);}
.tc2-name{font-family:var(--D);font-size:1.7rem;letter-spacing:0.05em;color:var(--ink);}
.tc2-price{font-family:var(--D);font-size:2.4rem;color:var(--gold);}
.tc2-perks{list-style:none;margin-top:14px;display:flex;flex-direction:column;gap:7px;}
.tc2-perks li{font-size:0.9125rem;color:#5a5550;padding-left:14px;position:relative;line-height:1.5;}
.tc2-perks li::before{content:'—';position:absolute;left:0;color:var(--gold);}

/* SPONSOR TIERS */
.spon-tier{display:flex;flex-direction:column;gap:3px;background:var(--ink);padding:3px;}
.st-row{display:grid;grid-template-columns:150px 1fr auto;gap:32px;align-items:center;background:var(--ink2);padding:24px 36px;border-left:4px solid transparent;transition:all 0.22s;}
.st-row:hover{border-left-color:var(--gold);background:#1f1b16;}
.str-name{font-family:var(--D);font-size:1.6rem;letter-spacing:0.06em;color:var(--white);}
.str-bar-w{height:4px;background:rgba(255,255,255,0.07);border-radius:2px;overflow:hidden;}
.str-bar{height:100%;background:var(--gold);border-radius:2px;}
.str-perks{font-size:0.8425rem;color:rgba(255,255,255,0.38);margin-top:6px;}
.str-price{font-family:var(--D);font-size:1.9rem;color:var(--gold);letter-spacing:0.04em;white-space:nowrap;}

/* FORMS */
.form-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.fg3{display:flex;flex-direction:column;gap:5px;}
.fg3 label{font-size:0.7025rem;letter-spacing:0.16em;text-transform:uppercase;}
.fg3.dk label{color:rgba(255,255,255,0.42);}
.fg3.lt label{color:#9a9590;}
.fg3 input,.fg3 textarea,.fg3 select{padding:11px 13px;font-family:var(--B);font-size:0.9525rem;outline:none;transition:border-color 0.2s;}
.fg3.dk input,.fg3.dk textarea,.fg3.dk select{background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.09);color:var(--white);}
.fg3.lt input,.fg3.lt textarea,.fg3.lt select{background:var(--white);border:1px solid #e0d8cc;color:var(--ink);}
.fg3 input:focus,.fg3 textarea:focus,.fg3 select:focus{border-color:var(--gold);}
.fg3 textarea{resize:vertical;min-height:105px;}

/* VOLUNTEER */
.vol-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;background:var(--ink);padding:3px;margin-top:44px;}
.vc{background:var(--cream);padding:32px 24px;border-top:3px solid transparent;transition:all 0.22s;}
.vc:hover{background:var(--gold);border-top-color:transparent;}
.vc:hover .vc-t,.vc:hover .vc-p{color:var(--ink);}
.vc-ico{font-size:1.9rem;margin-bottom:10px;}
.vc-t{font-family:var(--D);font-size:1.4125rem;letter-spacing:0.05em;color:var(--ink);margin-bottom:7px;transition:color 0.22s;}
.vc-p{font-size:0.9025rem;line-height:1.55;color:#6a6560;transition:color 0.22s;}

/* GALLERY */
.gal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;margin-top:44px;}
.gal-item{overflow:hidden;aspect-ratio:1;cursor:pointer;}
.gal-item img{width:100%;height:100%;object-fit:cover;transition:transform 0.4s,filter 0.4s;filter:brightness(0.82);}
.gal-item:hover img{transform:scale(1.06);filter:brightness(1);}
.gal-item.w2{grid-column:span 2;aspect-ratio:2/1;}

/* CONTACT */
.contact-split{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100vh - 70px);}
.cl{background:var(--ink2);padding:76px 52px;display:flex;flex-direction:column;justify-content:space-between;}
.cr{background:var(--cream);padding:76px 52px;}
.ci-l{font-size:0.6425rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--gold);margin-bottom:5px;}
.ci-v{font-family:var(--S);font-size:1.0825rem;color:var(--sand);}

/* ABOUT */
.aig{display:grid;grid-template-columns:1fr 1fr;gap:3px;}
.aig-i{overflow:hidden;}
.aig-i img{width:100%;height:250px;object-fit:cover;display:block;transition:transform 0.4s;filter:brightness(0.88);}
.aig-i:hover img{transform:scale(1.04);filter:brightness(1);}

/* HOTEL */
.hotel-sec{background:var(--cream);padding:100px 60px;display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;}

/* RESPONSIVE */
/* Switch to the mobile hamburger menu earlier than the theme's other
   1100px breakpoint, specifically for navigation -- with 9 top-level
   items plus a CTA button, the full desktop nav needs more headroom
   than other 2-column layout collapses do. This guarantees the nav
   never overflows or wraps, rather than relying on a tight fit between
   1101-1280px. */
@media(max-width:1280px){
  .nav-links{display:none;}
  .hamburger{display:flex;}
}
@media(min-width:1281px) and (max-width:1400px){
  .nav-links{gap:0;}
  .nav-links li button,.nav-links li>a{padding:6px 7px;font-size:0.7rem;}
}

@media(max-width:1100px){
nav{padding:0 22px;}.nav-links{display:none;}.hamburger{display:flex;}
.hero,.fest-hero,.ph{padding:80px 22px 52px;}
.stats-bar{grid-template-columns:repeat(3,1fr);padding:16px 22px;}
.mission{grid-template-columns:1fr;padding:60px 22px;gap:36px;}
.evs{padding:60px 22px;}.ev-grid{grid-template-columns:1fr;}.ev-col{gap:3px;}
.gs{grid-template-columns:repeat(3,1fr);}
.new-sec{padding:60px 22px;}.new-grid{grid-template-columns:1fr;}
.boma-sec{padding:60px 22px;}.boma-grid2{grid-template-columns:1fr;}
.stats-dk{grid-template-columns:1fr;padding:40px 22px;}
.t3{grid-template-columns:1fr;}
.sched-row{grid-template-columns:1fr;}.sched-time{justify-content:flex-start;}
.pg{grid-template-columns:1fr 1fr;}
.fg2{grid-template-columns:1fr;}.link-grid{grid-template-columns:1fr;}
.evs-hdr{flex-direction:column;align-items:flex-start;gap:14px;}
.contact-split{grid-template-columns:1fr;}.cl,.cr{padding:52px 22px;}
.aig{grid-template-columns:1fr;}
.hotel-sec{grid-template-columns:1fr;padding:60px 22px;}
.gal-grid{grid-template-columns:repeat(2,1fr);}.gal-item.w2{grid-column:1;aspect-ratio:1;}
.vol-grid{grid-template-columns:1fr 1fr;}
.st-row{grid-template-columns:1fr;padding:18px 22px;gap:8px;}
.form-2{grid-template-columns:1fr;}
footer{padding:44px 22px 0;}.footer-grid{grid-template-columns:1fr 1fr;gap:28px;}
.footer-bottom{flex-direction:column;gap:10px;padding:14px 0;text-align:center;}
.info-pills{flex-wrap:wrap;}
.hero-badge{top:auto;bottom:80px;right:22px;}
.boma-zone-row{grid-template-columns:48px 1fr;}.bz-p{display:none;}
}


/* ============================================
   ACCESSIBILITY ENHANCEMENTS
   ============================================ */
.skip-link{position:absolute;top:-48px;left:0;background:var(--gold);color:var(--ink);padding:12px 20px;z-index:2000;font-family:var(--B);font-size:0.8625rem;font-weight:600;text-decoration:none;transition:top 0.2s;}
.skip-link:focus{top:0;}

/* Visible focus states for keyboard users (buttons/links only rely on hover by default) */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
.nav-links li a:focus-visible,.nav-links li button:focus-visible{color:var(--gold);background:rgba(200,151,58,0.08);}

/* Keyboard access to dropdown menus (mirrors :hover behaviour) */
.dropdown:focus-within .dropdown-menu{display:flex;}

/* Honeypot field - hidden from sighted users and screen readers alike, catches bots */
.afo-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

/* Form submit status message */
.afo-form-status{font-size:0.8825rem;min-height:1.2em;}
.afo-form-status.ok{color:#4caf7d;}
.afo-form-status.err{color:#e0645a;}
.afo-form button[disabled]{opacity:0.6;cursor:not-allowed;}

/* Respect reduced-motion preference */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;}
  .fu{opacity:1;transform:none;}
}

/* ============================================
   RESPONSIVE — SMALL TABLET / LARGE PHONE
   ============================================ */
@media(max-width:760px){
  .stats-bar{grid-template-columns:repeat(2,1fr);}
  .gs{grid-template-columns:repeat(2,1fr);height:auto;}
  .gs-item{aspect-ratio:1;}
  .pg{grid-template-columns:1fr;}
  .vol-grid{grid-template-columns:1fr;}
  .gal-grid{grid-template-columns:repeat(2,1fr);}
  .footer-grid{grid-template-columns:1fr;gap:26px;}
  .boma-zone-row{grid-template-columns:44px 1fr;padding:20px 18px;gap:14px;}
  .hero-badge{position:static;margin-top:20px;display:inline-block;}
  .fh-yr{display:none;}
}

/* ============================================
   RESPONSIVE — PHONE
   ============================================ */
@media(max-width:480px){
  nav{padding:0 16px;height:64px;}
  .nav-wm{font-size:1.3625rem;}
  .nav-logo img{height:30px;}
  .hero,.fest-hero,.ph{padding:70px 16px 40px;}
  .stats-bar{grid-template-columns:1fr 1fr;padding:14px 16px;}
  .mission,.evs,.new-sec,.boma-sec,.hotel-sec{padding:48px 16px;}
  .stats-dk{padding:28px 16px;}
  .t3{padding:2px;}
  .tc,.vc,.pc{padding:24px 18px;}
  .gs{grid-template-columns:repeat(2,1fr);}
  .gal-grid{grid-template-columns:1fr 1fr;}
  .gal-item.w2{grid-column:span 2;}
  .cl,.cr{padding:40px 18px;}
  .contact-split{min-height:auto;}
  footer{padding:36px 16px 0;}
  .p-num{min-width:52px;font-size:2.1rem;padding:14px;}
  .ev-card{padding:22px;min-height:220px;}
  .ev-card.tall{min-height:340px;}
}

/* Ensure the skip-link's underlying text is hidden until focused, even if a
   parent theme/plugin doesn't already define .screen-reader-text (WP core
   normally does via wp-includes, but we don't rely on that being present). */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important;}
.skip-link.screen-reader-text:focus{clip:auto!important;clip-path:none;height:auto;width:auto;display:block;}

/* Header logo desktop/mobile variant switching (only relevant when a
   separate mobile logo is configured via the Customizer -- otherwise
   only one <img> exists in the markup and this has nothing to do). */
.afo-logo-mobile{display:none;}
@media(max-width:760px){
  .afo-logo-desktop{display:none;}
  .afo-logo-mobile{display:block;}
}

/* ============================================
   FIX: inline grid-template-columns overrides
   ============================================
   The page content (imported once, editable via the normal WordPress
   editor from then on) has several 2/3/4-column grids set via inline
   "style" attributes rather than CSS classes -- inline styles beat any
   external stylesheet rule regardless of specificity or !important on
   the OTHER side, so ordinary responsive CSS classes can never collapse
   them on small screens. This is very likely the actual cause of pages
   overflowing on mobile (and on narrower desktop widths). Fixed here
   with attribute-selector overrides using !important -- the one case
   where !important on an external stylesheet is the correct tool,
   since it's specifically needed to beat an inline style. This requires
   zero changes to any page's actual content. */
@media(max-width:760px){
  [style*="grid-template-columns:1.2fr 1fr"],
  [style*="grid-template-columns:1.3fr 1fr"],
  [style*="grid-template-columns:1fr 1.3fr"],
  [style*="grid-template-columns:1fr 1fr"],
  [style*="grid-template-columns:repeat(3,1fr)"],
  [style*="grid-template-columns:repeat(4,1fr)"],
  [style*="grid-template-columns:56px 1fr 1fr"]{
    grid-template-columns:1fr !important;
    gap:20px !important;
  }
}
@media(max-width:1100px) and (min-width:761px){
  [style*="grid-template-columns:repeat(4,1fr)"],
  .link-grid{
    grid-template-columns:repeat(2,1fr) !important;
  }
}

/* Same reasoning, applied to inline padding: several section wrappers
   use inline padding:100px 60px (or similar fixed values) which stays
   fixed at small screen widths for the same "inline beats external
   CSS" reason as the grid issue above. Reduced specifically on mobile;
   desktop/tablet spacing is untouched. */
@media(max-width:480px){
  [style*="padding:100px 60px"],
  [style*="padding:80px 60px"],
  [style*="padding:68px 60px"]{
    padding:48px 18px !important;
  }
}
@media(max-width:760px) and (min-width:481px){
  [style*="padding:100px 60px"],
  [style*="padding:80px 60px"],
  [style*="padding:68px 60px"]{
    padding:60px 24px !important;
  }
}
