/* GeoEvent "gfx" page system — shared by the Full AV Production and Stage Design pages.
   Scoped under #top .gfx so Enfold's theme styles cannot leak in. Loaded by ../geoevent-gfx-pages.php. */
#top .gfx{--b:#2096f2;--b2:#3aa6f7;--ink:#0a0a0a;--pan:#121517;--tx:#d6dbe0;--mu:#9aa4ad;--hi:#e8edf1;--ln:rgba(255,255,255,.12);--ln2:rgba(255,255,255,.2);--gut:clamp(20px,5vw,56px);background:var(--ink);color:var(--tx);font-family:"Open Sans",system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:clip;line-height:1.6}
#top .gfx *,#top .gfx *::before,#top .gfx *::after{box-sizing:border-box}
#top .gfx img{max-width:100%;display:block;height:auto;border-radius:0}
#top .gfx h1,#top .gfx h2,#top .gfx h3,#top .gfx dt,#top .gfx strong.gfx-cap{font-family:Oswald,sans-serif;font-weight:500;text-transform:uppercase;color:#fff;letter-spacing:0;margin:0}
#top .gfx p{margin:0}
#top .gfx ul,#top .gfx ol,#top .gfx dl{list-style:none;margin:0;padding:0}
#top .gfx li{margin:0;padding:0}
#top .gfx a{color:#fff;text-decoration:none}
#top .gfx section{border:0}
#top .gfx .alt{background:var(--pan)}
#top .gfx .w{max-width:1320px;margin:0 auto;padding-left:var(--gut);padding-right:var(--gut)}
#top .gfx .pad{padding-top:clamp(96px,12vw,176px);padding-bottom:clamp(96px,12vw,176px)}
#top .gfx .mono{font:500 11px/1 "IBM Plex Mono",monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--mu)}
#top .gfx .eye{color:var(--b)}
#top .gfx .h2{font-size:clamp(34px,5vw,60px);line-height:.98;text-wrap:balance}
#top .gfx .stack{display:flex;flex-direction:column;gap:24px}
#top .gfx .lede{font-size:16px;line-height:1.65;color:var(--mu);max-width:36em;text-wrap:pretty}

/* hero */
#top .gfx-hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,500px),1fr));gap:clamp(28px,4vw,56px);align-items:end;padding-top:clamp(48px,8vw,112px);padding-bottom:clamp(96px,12vw,160px)}
#top .gfx-hero h1{font-size:clamp(46px,8.4vw,104px);line-height:.92;letter-spacing:-.005em;text-wrap:balance}
#top .gfx-hero p{max-width:34em;font-size:17px;line-height:1.6;color:var(--tx);text-wrap:pretty}
#top .gfx-ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
#top .gfx .btn{flex:1 1 180px;display:flex;align-items:center;justify-content:center;gap:16px;min-height:56px;padding:0 20px;font:600 15px/1 "Open Sans",sans-serif;letter-spacing:.01em;color:#fff;transition:background .15s,border-color .15s}
#top .gfx .btn--p{background:var(--b)}
#top .gfx .btn--p:hover{background:var(--b2);color:#fff}
#top .gfx .btn--g{border:1px solid rgba(255,255,255,.35)}
#top .gfx .btn--g:hover{border-color:#fff;color:#fff}
#top .gfx-hero figure{margin:0}
#top .gfx-hero figure img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:45% center}

/* quick quote */
#top .gfx-qq{padding-top:clamp(64px,8vw,112px);padding-bottom:clamp(64px,8vw,112px)}
#top .gfx-qq__head{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:12px 48px;align-items:end;margin-bottom:48px}
#top .gfx-qq__head h2{font-size:clamp(26px,3.4vw,38px);line-height:1.05;text-wrap:balance}
#top .gfx-qq__head p{font-size:15px;line-height:1.6;color:var(--mu);text-wrap:pretty}

/* logos */
#top .gfx-logos{padding-top:clamp(80px,10vw,144px);padding-bottom:0}
#top .gfx-rule{display:flex;align-items:center;gap:16px;margin-bottom:40px}
#top .gfx-rule::after{content:"";flex:1;height:1px;background:var(--ln)}
#top .gfx-logo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(30%,120px),1fr));gap:clamp(16px,3vw,40px) clamp(24px,4vw,56px)}
#top .gfx-logo-grid div{aspect-ratio:3/2;display:flex;align-items:center;justify-content:center;padding:6px;overflow:hidden}
#top .gfx-logo-grid img{width:100%;height:100%;object-fit:contain;opacity:.55;transform:scale(1.25);transition:opacity .2s}
#top .gfx-logo-grid img:hover{opacity:.9}
@media (max-width:767px){#top .gfx-logo-grid{grid-template-columns:repeat(4,1fr);gap:20px 16px}#top .gfx-logo-grid div:nth-child(n+13){display:none}}

/* services */
#top .gfx-split{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:16px 56px;align-items:end;margin-bottom:clamp(64px,8vw,112px)}
#top .gfx-svc{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:28px clamp(32px,5vw,80px);align-items:center;padding:0}
#top .gfx-svc + .gfx-svc{margin-top:clamp(64px,8vw,120px)}
#top .gfx-svc img,#top .gfx-why img{width:100%;aspect-ratio:16/10;object-fit:cover}
#top .gfx-svc > div{display:flex;flex-direction:column;gap:18px}
#top .gfx-svc h3{font-size:clamp(26px,3vw,34px);line-height:1}
#top .gfx-svc p{font-size:15.5px;line-height:1.6;color:var(--mu);max-width:34em}
#top .gfx-svc ul{margin-top:8px;border-bottom:1px solid rgba(255,255,255,.1)}
#top .gfx-svc li{padding:11px 0;border-top:1px solid rgba(255,255,255,.1);font-size:15px;line-height:1.5;color:var(--hi)}

/* why */
#top .gfx-why{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:36px clamp(32px,5vw,72px);align-items:start}
#top .gfx-why .lede{color:var(--tx)}
#top .gfx-why dl{display:flex;flex-direction:column;gap:clamp(28px,4vw,44px)}
#top .gfx-why dl > div{padding:0}
#top .gfx-why dt{font-size:21px;line-height:1.2}
#top .gfx-why dd{margin:10px 0 0;font-size:15px;line-height:1.6;color:var(--mu)}

/* event types */
#top .gfx-types{padding-top:clamp(96px,12vw,176px);padding-bottom:clamp(96px,12vw,176px)}
#top .gfx-types h2{margin:24px 0 48px;font-size:clamp(22px,2.6vw,30px);line-height:1.1;color:var(--mu)}
#top .gfx-types ul{display:flex;flex-wrap:wrap;gap:8px 0;font:500 clamp(28px,4.6vw,56px)/1.2 Oswald,sans-serif;text-transform:uppercase;color:#fff}
#top .gfx-types li:not(:last-child)::after{content:"/";color:var(--b);margin:0 .28em}

/* recent work */
#top .gfx-work{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(min(84vw,360px),1fr);gap:clamp(16px,2.5vw,32px);overflow-x:auto;scroll-snap-type:x mandatory;margin:clamp(48px,6vw,80px) calc(-1 * var(--gut)) 0;padding:0 var(--gut) 8px;scroll-padding:0 var(--gut);scrollbar-width:none}
#top .gfx-work::-webkit-scrollbar{display:none}
#top .gfx-work figure{margin:0;scroll-snap-align:start;display:flex;flex-direction:column;gap:14px}
#top .gfx-work img{width:100%;aspect-ratio:3/2;object-fit:cover}
#top .gfx-work figcaption{display:flex;flex-direction:column;gap:6px;padding-top:4px}
#top .gfx-work strong{font:500 20px/1.15 Oswald,sans-serif;text-transform:uppercase;color:#fff}
#top .gfx-work span{font-size:14.5px;line-height:1.55;color:var(--mu)}

/* quote */
#top .gfx-quote{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:48px clamp(32px,5vw,80px);align-items:start}
#top .gfx #quote{scroll-margin-top:80px}
#top .gfx-quote h2{font-size:clamp(40px,6vw,72px);line-height:.95}
#top .gfx-quote .lede{color:var(--tx);max-width:34em}
#top .gfx-steps{margin-top:16px;display:flex;flex-direction:column;gap:14px}
#top .gfx-steps li{display:grid;grid-template-columns:44px 1fr;padding:0;font-size:15.5px;line-height:1.5;color:var(--hi)}
#top .gfx-steps li span{font:500 12px/1.9 "IBM Plex Mono",monospace;color:var(--b)}
#top .gfx-call{display:flex;flex-direction:column;gap:8px;margin-top:32px}
#top .gfx-call a{font:500 clamp(34px,4vw,44px)/1.1 Oswald,sans-serif;color:#fff;transition:color .15s}
#top .gfx-call a:hover{color:var(--b)}

/* stats */
#top .gfx-stats{display:flex;flex-wrap:wrap;gap:40px 0;padding:clamp(64px,8vw,112px) 0}
#top .gfx-stats > div{flex:1 1 440px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 0}
#top .gfx-stats > div > div{display:flex;flex-direction:column;gap:12px;padding:0}
#top .gfx-stats b{font:500 clamp(44px,6vw,72px)/1 Oswald,sans-serif;color:#fff}
#top .gfx-stats b.hl{color:var(--b)}
#top .gfx-stats .mono{line-height:1.4;letter-spacing:.12em}

/* faq */
#top .gfx-faq{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:32px clamp(32px,5vw,80px);align-items:start;padding-bottom:clamp(140px,14vw,200px)}
#top .gfx-faq__list{border-bottom:1px solid var(--ln2)}
#top .gfx-faq details{border-top:1px solid var(--ln2)}
#top .gfx-faq summary{list-style:none;display:grid;grid-template-columns:1fr 24px;gap:16px;align-items:start;padding:24px 0;cursor:pointer;color:#fff;font:600 16.5px/1.45 "Open Sans",sans-serif;transition:color .15s}
#top .gfx-faq summary::-webkit-details-marker{display:none}
#top .gfx-faq summary:hover{color:var(--b)}
#top .gfx-faq summary::after{content:"+";font:400 20px/1.1 "IBM Plex Mono",monospace;color:var(--b);text-align:right}
#top .gfx-faq details[open] summary::after{content:"\2013"}
#top .gfx-faq details p{padding:0 40px 22px 0;font-size:15.5px;line-height:1.65;color:var(--mu);text-wrap:pretty}

/* dock */
#top .gfx-dock{position:fixed;z-index:9990;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));max-width:380px;margin-left:auto;display:grid;grid-template-columns:1fr 1.4fr;background:var(--ink);border:1px solid rgba(255,255,255,.22);box-shadow:0 12px 32px rgba(0,0,0,.6)}
#top .gfx-dock a{display:flex;align-items:center;justify-content:center;min-height:54px;padding:0 18px;font:600 15px/1 "Open Sans",sans-serif;color:#fff;transition:background .15s,color .15s}
#top .gfx-dock a:first-child{border-right:1px solid rgba(255,255,255,.22)}
#top .gfx-dock a:first-child:hover{color:var(--b)}
#top .gfx-dock a:last-child{background:var(--b)}
#top .gfx-dock a:last-child:hover{background:var(--b2)}

/* let the page run edge to edge inside the theme */
#top .gfx-row .flex_cell{padding:0 !important}
#top .gfx-row .flex_cell_inner{max-width:none}

/* google reviews (Trustindex embed) */
#top .gfx-reviews{padding-top:clamp(72px,9vw,128px);padding-bottom:0}
#top .gfx-reviews .geoevent-reviews{min-height:120px}

/* card grid: image + title + line */
#top .gfx-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:clamp(48px,6vw,72px) clamp(24px,3vw,40px)}
#top .gfx-cards article{display:flex;flex-direction:column;gap:18px}
#top .gfx-cards img{width:100%;aspect-ratio:4/3;object-fit:cover}
#top .gfx-cards h3{font-size:clamp(22px,2.2vw,26px);line-height:1.1}
#top .gfx-cards p{font-size:15.5px;line-height:1.6;color:var(--mu)}

/* numbered process */
#top .gfx-proc{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:48px clamp(32px,4vw,56px)}
#top .gfx-proc li{display:flex;flex-direction:column;gap:14px}
#top .gfx-proc .n{font:500 12px/1 "IBM Plex Mono",monospace;color:var(--b)}
#top .gfx-proc h3{font-size:22px;line-height:1.15}
#top .gfx-proc p{font-size:15px;line-height:1.6;color:var(--mu)}

/* discipline list: title | description + roles */
#top .gfx-roles{display:flex;flex-direction:column;border-bottom:1px solid var(--ln)}
#top .gfx-roles > div{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:12px clamp(32px,5vw,80px);padding:clamp(32px,4vw,48px) 0;border-top:1px solid var(--ln)}
#top .gfx-roles h3{font-size:clamp(24px,2.6vw,30px);line-height:1.1}
#top .gfx-roles p{font-size:15.5px;line-height:1.65;color:var(--mu);max-width:36em}
#top .gfx-roles .mono{display:block;margin-top:16px;line-height:1.7;letter-spacing:.1em;color:var(--tx)}
