/* Theme shell and reusable Elementor Advanced > CSS Classes. */
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--gbe-bg);color:var(--gbe-fg);font-family:var(--gbe-font-body);font-size:1rem;line-height:1.625}
::selection{background:var(--gbe-selection);color:var(--gbe-fg)}
:focus-visible{outline:2px solid var(--gbe-gold);outline-offset:3px}
a{color:inherit} a:hover{color:var(--gbe-gold)}
img{max-width:100%;height:auto}
h1,h2,h3,.gbe-wordmark{font-family:var(--gbe-font-heading);font-weight:400;text-transform:uppercase;letter-spacing:.005em;line-height:.94;color:var(--gbe-fg)}
h1{font-size:3rem} h2{font-size:2.25rem} h3{font-size:1.5rem}
p{margin:0 0 1.5rem;color:var(--gbe-muted-fg)}
.gbe-container{width:100%;max-width:var(--gbe-container);margin-inline:auto;padding-inline:20px}
.gbe-section{padding-block:80px}
.gbe-section--surface{background:var(--gbe-surface)}
.gbe-section--surface-40{background:var(--gbe-surface-40)}
.gbe-eyebrow{font-family:var(--gbe-font-body);font-size:.75rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--gbe-gold);margin-bottom:16px}
.gbe-text-gold-gradient{background:var(--gbe-gradient-gold);background-clip:text;-webkit-background-clip:text;color:var(--gbe-transparent)}
.gbe-scrim{background:var(--gbe-scrim)}
.gbe-stage-glow{background:var(--gbe-gradient-stage)}
.gbe-hairline-grid{display:grid;gap:1px;background:var(--gbe-border);border:1px solid var(--gbe-border)}
.gbe-hairline-grid>*{background:var(--gbe-surface);transition:background .5s}
.gbe-hairline-grid>*:hover{background:var(--gbe-surface-elevated)}
.gbe-frame{border:1px solid var(--gbe-border);border-radius:0;box-shadow:none}
.gbe-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:10px 24px;border:1px solid var(--gbe-border);border-radius:var(--gbe-radius-btn);font:600 .875rem/1.4 var(--gbe-font-body);text-decoration:none;cursor:pointer;transition:background .2s,opacity .2s}
.gbe-btn svg{width:16px;height:16px}
.gbe-btn--gold,.gbe-btn--gold:hover{background:var(--gbe-gold);color:var(--gbe-on-gold);border-color:var(--gbe-transparent)}
.gbe-btn--gold:hover{opacity:.9}
.gbe-btn--outline{background:var(--gbe-transparent);color:var(--gbe-fg)}
.gbe-btn--outline:hover{background:var(--gbe-accent);color:var(--gbe-fg)}
.gbe-btn--lg{min-height:44px;padding-inline:32px}
.gbe-btn--sm{min-height:44px;padding:8px 16px}
.gbe-hero-title{font-size:3.75rem;line-height:.92;max-width:896px}
.gbe-hero-title>span{display:block}
.gbe-page-title{font-size:3rem}
.gbe-light-beam{pointer-events:none;position:absolute;background:var(--gbe-gradient-beam);filter:blur(40px)}
.gbe-scroll-hint{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase}
.gbe-reveal{opacity:1;transform:none}
.skip-link{position:fixed;left:16px;top:-100px;z-index:1000;background:var(--gbe-gold);color:var(--gbe-on-gold);padding:12px 24px}
.skip-link:focus{top:16px}
@media(min-width:640px){.gbe-container{padding-inline:32px}.gbe-section{padding-block:112px}.gbe-hero-title{font-size:4.5rem}.gbe-page-title{font-size:3.75rem}h2{font-size:3rem}}
@media(min-width:1024px){.gbe-hero-title{font-size:7.5rem}.gbe-page-title{font-size:4.5rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.gbe-reveal{opacity:1!important;transform:none!important}}

/* Phase 2: navigation remains usable when scripts are unavailable. */
.gbe-header{position:absolute;top:0;left:0;z-index:50;width:100%;border-bottom:1px solid var(--gbe-transparent);transition:background .5s,border-color .5s,backdrop-filter .5s}
.gbe-header.gbe-nav-ready{position:fixed;inset:0 0 auto}
.gbe-header.is-scrolled{background:var(--gbe-nav-bg);backdrop-filter:blur(24px);border-bottom-color:var(--gbe-border)}
.gbe-header-row{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:var(--gbe-nav-h);flex-wrap:wrap;padding-block:14px}
.gbe-brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex-shrink:0}
.gbe-brand:hover{color:var(--gbe-fg)}
.gbe-brand-logo{width:40px;height:40px;object-fit:contain}
.gbe-brand .gbe-wordmark{font-size:1.125rem;white-space:nowrap}
.gbe-brand-label{display:none;margin-left:8px;color:var(--gbe-muted-fg);font:600 .75rem/1.2 var(--gbe-font-body);letter-spacing:.28em}
.gbe-header-actions{display:flex;gap:8px;align-items:center;margin-left:auto}
.gbe-header-book{display:none}
.gbe-menu-toggle,.gbe-menu-close{display:grid;place-items:center;min-width:44px;min-height:44px;padding:8px;border:1px solid var(--gbe-border);border-radius:0;background:var(--gbe-transparent);color:var(--gbe-fg);cursor:pointer}
.gbe-menu-toggle:hover,.gbe-menu-close:hover{border-color:var(--gbe-gold);color:var(--gbe-gold);background:var(--gbe-accent)}
.gbe-primary-panel{width:100%;padding-block:24px}
.gbe-primary-panel[hidden],.gbe-menu-toggle[hidden],.gbe-menu-close[hidden]{display:none!important}
.gbe-primary-menu,.gbe-footer-menu,.gbe-contact-list{list-style:none;padding:0;margin:0}
.gbe-primary-menu{display:flex;flex-direction:column;gap:12px}
.gbe-primary-menu a{position:relative;display:inline-flex;align-items:center;min-height:44px;color:var(--gbe-muted-fg);font:400 1.875rem/1.2 var(--gbe-font-heading);text-transform:uppercase;letter-spacing:.005em;text-decoration:none}
.gbe-primary-menu a::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--gbe-gold);transition:width .3s}
.gbe-primary-menu a:hover,.gbe-primary-menu .current-menu-item>a,.gbe-primary-menu a[aria-current=page]{color:var(--gbe-fg)}
.gbe-primary-menu a:hover::after,.gbe-primary-menu .current-menu-item>a::after,.gbe-primary-menu a[aria-current=page]::after{width:100%}
.gbe-mobile-book{margin-top:24px}
.gbe-nav-ready .gbe-primary-panel{position:fixed;inset:0;z-index:60;width:100%;height:100dvh;overflow-y:auto;overscroll-behavior:contain;background:var(--gbe-bg);padding:88px 32px 40px}
.gbe-menu-close{position:absolute;right:20px;top:14px}
body.gbe-menu-open{position:fixed;inset-inline:0;overflow:hidden;width:100%}
body.admin-bar .gbe-header{top:32px}
body.admin-bar .gbe-nav-ready .gbe-primary-panel{top:32px;height:calc(100dvh - 32px)}
.gbe-footer{background:var(--gbe-surface);border-top:1px solid var(--gbe-border)}
.gbe-footer-grid{display:grid;gap:48px;padding-block:64px}
.gbe-footer-wordmark{font-size:1.875rem;margin:0;color:var(--gbe-fg)}
.gbe-footer-bio{max-width:384px;margin:16px 0 0;font-size:.875rem}
.gbe-socials{display:flex;gap:12px;margin-top:24px}
.gbe-socials:empty{display:none}
.gbe-social-link{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--gbe-border);color:var(--gbe-muted-fg)}
.gbe-social-link:hover{border-color:var(--gbe-gold);color:var(--gbe-gold)}
.gbe-footer h2.gbe-eyebrow{font:700 .75rem/1.625 var(--gbe-font-body);letter-spacing:.22em;color:var(--gbe-gold);margin:0 0 20px}
.gbe-footer-menu{display:grid;gap:4px}
.gbe-footer-menu a,.gbe-contact-list a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;color:var(--gbe-muted-fg);font-size:.875rem}
.gbe-footer-menu a:hover,.gbe-contact-list a:hover{color:var(--gbe-gold)}
.gbe-contact-list{display:grid;gap:4px;font-size:.875rem;color:var(--gbe-muted-fg)}
.gbe-contact-list li{display:flex;align-items:center;gap:12px;min-height:44px;overflow-wrap:anywhere}
.gbe-contact-list svg{flex-shrink:0;color:var(--gbe-gold)}
.gbe-footer-bottom{border-top:1px solid var(--gbe-border)}
.gbe-footer-bottom>.gbe-container{display:flex;flex-direction:column;gap:8px;padding-block:24px}
.gbe-footer-bottom p{font-size:.75rem;margin:0}
/* Each animated element opts in only after its observer is successfully attached. */
.gbe-reveal[data-gbe-reveal-ready]{opacity:0;transform:translateY(28px);transition:opacity .9s var(--gbe-ease),transform .9s var(--gbe-ease);transition-delay:var(--gbe-reveal-delay,0ms)}
.gbe-reveal[data-visible=true]{opacity:1;transform:none}
.gbe-hero-media{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.gbe-hero-media>img{width:100%;height:100%;object-fit:cover}
.gbe-hero-media>img[data-gbe-parallax-ready]{transform:translate3d(var(--gbe-parallax-x,0px),var(--gbe-parallax-y,0px),0) scale(1.12);transition:transform .7s var(--gbe-ease);will-change:transform}
.gbe-light-beam{width:18%;height:140%;top:-20%;left:20%;animation:gbe-beam 12s ease-in-out infinite alternate;opacity:.25;transform:rotate(8deg)}
.gbe-light-beam+.gbe-light-beam{left:60%;animation-delay:-4s}
.gbe-scroll-hint svg{animation:gbe-bounce 2.2s ease-in-out infinite}
@keyframes gbe-beam{from{transform:translateX(-30%) rotate(8deg);opacity:.25}to{transform:translateX(30%) rotate(8deg);opacity:.55}}
@keyframes gbe-bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(8px)}}
@media(max-width:782px){body.admin-bar .gbe-header{top:46px}body.admin-bar .gbe-nav-ready .gbe-primary-panel{top:46px;height:calc(100dvh - 46px)}}
@media(max-width:600px){body.admin-bar #wpadminbar{position:fixed}}
@media(min-width:640px){.gbe-brand-label{display:inline}.gbe-header-book{display:inline-flex}.gbe-nav-ready .gbe-primary-panel{padding-inline:32px}.gbe-mobile-book{display:none}.gbe-footer-bottom>.gbe-container{flex-direction:row;align-items:center;justify-content:space-between}}
@media(min-width:1024px){
 .gbe-header{position:fixed;inset:0 0 auto}
 .gbe-header-row{flex-wrap:nowrap;gap:20px}
 .gbe-primary-panel,.gbe-nav-ready .gbe-primary-panel{position:static;width:auto;height:auto!important;padding:0;background:var(--gbe-transparent);overflow:visible;order:1}
 .gbe-header-actions{order:2;margin-left:0}
 .gbe-menu-toggle,.gbe-menu-close{display:none}
 .gbe-primary-menu{flex-direction:row;gap:clamp(8px,calc(5vw - 43px),28px)}
 .gbe-primary-menu a{font:600 .75rem/1.2 var(--gbe-font-body);letter-spacing:.16em}
 .gbe-footer-grid{grid-template-columns:1.4fr 1fr 1fr}
}
@media(prefers-reduced-motion:reduce){
 .gbe-reveal[data-gbe-reveal-ready]{opacity:1!important;transform:none!important}
 .gbe-hero-media>img[data-gbe-parallax-ready]{transform:none!important;will-change:auto}
}

/* Eight-item primary navigation: preserve space for The Push. */
@media(min-width:1024px) and (max-width:1279px){.gbe-header-book{display:none}.gbe-primary-menu{gap:16px}}
@media(min-width:1280px){.gbe-primary-menu{gap:28px}}
