/* ==========================================================================
   Glensara Events Core — front-end styles
   Colours come from the CSS variables printed by inc/dynamic-css.php, driven
   by the Design settings. Nav and footer rules target Impreza's markup.
   ========================================================================== */

/* ── Buttons ──────────────────────────────────────────────────────────── */

.ge-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--ge-font-body); font-size:var(--ge-btn-fs); font-weight:700;
  letter-spacing:var(--ge-btn-tracking); text-transform:uppercase;
  padding:var(--ge-btn-py) var(--ge-btn-px);
  border:1px solid transparent; border-radius:var(--ge-radius-pill);
  cursor:pointer; text-decoration:none;
  transition:background var(--ge-transition), color var(--ge-transition),
             border-color var(--ge-transition), transform var(--ge-transition);
}
.ge-btn:hover{ transform:translateY(-1px); }

.ge-btn--accent{ background:var(--ge-orange); color:var(--ge-text-light); }
.ge-btn--accent:hover{ background:var(--ge-orange-light); color:var(--ge-text-light); }

.ge-btn--primary{ background:var(--ge-gradient-gold); color:var(--ge-bg-dark); }
.ge-btn--primary:hover{ box-shadow:var(--ge-shadow-gold); }

.ge-btn--outline{ background:transparent; border-color:var(--ge-border-strong); color:var(--ge-gold); }
.ge-btn--outline:hover{ background:var(--ge-gold); color:var(--ge-bg-dark); }

.ge-btn--green{ background:var(--ge-green); color:var(--ge-text-light); }
.ge-btn--green:hover{ background:var(--ge-gold); color:var(--ge-bg-dark); }

/* ── Section helpers ──────────────────────────────────────────────────── */

.ge-section{ padding-block:var(--ge-section-py); background:var(--ge-bg); }
.ge-section-alt{ background:var(--ge-bg-alt); }
.ge-section-dark{ background:var(--ge-bg-dark); }

.ge-section-label{
  font-family:var(--ge-font-body); font-size:14px; font-weight:700;
  letter-spacing:.15em; text-transform:uppercase; color:var(--ge-gold); margin:0 0 12px;
}

.ge-container{
  width:100%; max-width:var(--ge-container); margin-inline:auto; padding-inline:var(--ge-pad);
}

.ge-grid{ display:grid; gap:var(--ge-gap); }
.ge-grid-2{ grid-template-columns:repeat(2,1fr); }
.ge-grid-3{ grid-template-columns:repeat(3,1fr); }
.ge-grid-4{ grid-template-columns:repeat(4,1fr); }

.ge-muted{ color:var(--ge-text-muted); }
.ge-gold{ color:var(--ge-gold); }
.ge-screen-reader-text{ position:absolute; width:1px; height:1px; overflow:hidden;
  clip:rect(0 0 0 0); white-space:nowrap; border:0; padding:0; margin:-1px; }

.ge-reveal{ opacity:0; transform:translateY(24px);
  transition:opacity .6s var(--ge-ease), transform .6s var(--ge-ease); }
.ge-reveal.is-visible{ opacity:1; transform:none; }

/* ── Event cards — [ge_event_cards] ───────────────────────────────────── */

.ge-event-cards{ gap:32px; }

.ge-event-card{
  display:flex; flex-direction:column; background:var(--ge-bg-card);
  border:1px solid var(--ge-border); border-radius:var(--ge-radius-lg); overflow:hidden;
  transition:border-color var(--ge-transition), transform var(--ge-transition), box-shadow var(--ge-transition);
}
.ge-event-card:hover{
  border-color:var(--ge-border-strong); transform:translateY(-4px);
  box-shadow:var(--ge-shadow-card), var(--ge-shadow-gold);
}

.ge-event-card__media{
  position:relative; display:block; aspect-ratio:3/2; overflow:hidden; background:var(--ge-bg-dark);
}
.ge-event-card__img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ge-ease); }
.ge-event-card:hover .ge-event-card__img{ transform:scale(1.04); }
.ge-event-card__media::after{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg,transparent 45%,var(--ge-overlay-strong) 100%);
}
.ge-event-card__placeholder{
  position:relative; display:block; width:100%; height:100%;
  background:radial-gradient(120% 90% at 50% 0%,var(--ge-gold-08) 0%,transparent 60%),
             linear-gradient(160deg,var(--ge-bg-card) 0%,var(--ge-bg-dark) 100%);
}
.ge-event-card__placeholder::after{
  content:''; position:absolute; top:50%; left:50%; width:34px; height:34px; margin:-17px 0 0 -17px;
  border:1px solid var(--ge-border-strong); transform:rotate(45deg); transition:transform .6s var(--ge-ease);
}
.ge-event-card:hover .ge-event-card__placeholder::after{ transform:rotate(135deg); }

.ge-event-card .ge-card-body{ display:flex; flex-direction:column; gap:10px; flex:1; padding:28px; }
.ge-event-card .ge-section-label{ margin:0; }
.ge-event-card__title{ margin:0; }
.ge-event-card__title a{ color:var(--ge-text-light); text-decoration:none; }
.ge-event-card__title a:hover{ color:var(--ge-gold); }
.ge-event-card .ge-muted{ font-size:.9375rem; margin:0 0 4px; }

.ge-event-card .ge-btn{
  align-self:stretch; margin-top:auto; padding:18px 0 0; border:0;
  border-top:1px solid var(--ge-border); border-radius:0; background:none;
  color:var(--ge-gold); justify-content:space-between; transform:none;
}
.ge-event-card .ge-btn::after{ content:'→'; font-size:1rem; line-height:1; transition:transform var(--ge-transition); }
.ge-event-card .ge-btn:hover{ background:none; color:var(--ge-gold-light); transform:none; }
.ge-event-card .ge-btn:hover::after{ transform:translateX(4px); }
.ge-event-card:hover .ge-btn{ border-top-color:var(--ge-border-strong); }

/* ── Legacy stats — [ge_legacy_stats] ─────────────────────────────────── */

.ge-legacy-stat{ text-align:center; }
.ge-legacy-stat__value{
  display:block; font-family:var(--ge-font-heading); font-size:clamp(3rem,8vw,5rem);
  line-height:1; color:var(--ge-gold); font-variant-numeric:tabular-nums;
}
.ge-legacy-stat__label{
  display:block; margin-top:12px; font-size:14px; font-weight:700;
  letter-spacing:.15em; text-transform:uppercase; color:var(--ge-text-light);
}
.ge-legacy-stat__note{ display:block; margin-top:4px; font-size:14px; color:var(--ge-text-muted); }
.ge-legacy-stats--light .ge-legacy-stat__value{ color:var(--ge-green-light); }

/* ── Sub-page banner — [ge_banner] ────────────────────────────────────── */

.ge-banner{
  position:relative; padding:clamp(70px,10vw,120px) 0; background-color:var(--ge-bg-dark);
  background-size:cover; background-position:center center; overflow:hidden;
  border-top:1px solid var(--ge-border-faint); border-bottom:1px solid var(--ge-border-strong);
}
.ge-banner::before{ content:''; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(120% 100% at 50% 0%,var(--ge-gold-08) 0%,transparent 60%); }
.ge-banner::after{ content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg,var(--ge-overlay) 0%,var(--ge-overlay-strong) 100%); }
.ge-banner__inner{ position:relative; z-index:1; max-width:var(--ge-container); margin:0 auto; padding:0 var(--ge-pad); }
.ge-banner--center .ge-banner__inner{ text-align:center; }

.ge-banner__crumbs{ margin:0 0 20px; font-family:var(--ge-font-body); font-size:12px;
  font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--ge-text-muted); }
.ge-banner__crumbs a{ color:var(--ge-text-muted); text-decoration:none; transition:color var(--ge-transition); }
.ge-banner__crumbs a:hover{ color:var(--ge-gold); }
.ge-banner__current{ color:var(--ge-gold); }
.ge-banner__sep{ display:inline-block; width:5px; height:5px; margin:0 14px 2px;
  background:var(--ge-gold-dark); transform:rotate(45deg); vertical-align:middle; }

.ge-banner__title{ font-family:var(--ge-font-heading); font-size:clamp(2.5rem,6vw,4rem);
  line-height:.95; letter-spacing:.02em; text-transform:uppercase; color:var(--ge-text-light); margin:0; }
.ge-banner__title::after{ content:''; display:block; width:72px; height:2px; margin-top:24px;
  background:var(--ge-gradient-gold); }
.ge-banner--center .ge-banner__title::after{ margin-left:auto; margin-right:auto; }
.ge-banner__subtitle{ margin:20px 0 0; font-family:var(--ge-font-body); font-size:clamp(1rem,1.4vw,1.1875rem);
  line-height:1.6; color:var(--ge-text); max-width:60ch; }
.ge-banner--center .ge-banner__subtitle{ margin-left:auto; margin-right:auto; }

/* ── Impreza header nav ───────────────────────────────────────────────── */

.l-header .w-nav.ush_menu_1 > .w-nav-list.level_1 > .menu-item > .w-nav-anchor.level_1{
  font-family:var(--ge-font-body); font-size:14px; font-weight:600; letter-spacing:.15em;
  text-transform:uppercase; color:var(--ge-text); transition:color var(--ge-transition);
}
.l-header .w-nav.ush_menu_1 > .w-nav-list.level_1 > .menu-item > .w-nav-anchor.level_1:hover,
.l-header .w-nav.ush_menu_1 > .w-nav-list.level_1 > .current-menu-item > .w-nav-anchor.level_1,
.l-header .w-nav.ush_menu_1 > .w-nav-list.level_1 > .current-menu-parent > .w-nav-anchor.level_1{ color:var(--ge-gold); }

.l-header .w-nav.ush_menu_1 .w-nav-list.level_2{
  padding:10px 0; background:var(--ge-bg); border:1px solid var(--ge-border);
  border-radius:12px; box-shadow:0 24px 48px rgba(0,0,0,.55); overflow:hidden;
}
.l-header .w-nav.ush_menu_1 .w-nav-list.level_2 .w-nav-anchor.level_2{
  padding:14px 26px; font-family:var(--ge-font-body); font-size:15px; font-weight:600;
  letter-spacing:0; text-transform:none; color:var(--ge-text); border-left:3px solid transparent;
  transition:color var(--ge-transition), background-color var(--ge-transition), border-color var(--ge-transition);
}
.l-header .w-nav.ush_menu_1 .w-nav-list.level_2 .w-nav-anchor.level_2:hover,
.l-header .w-nav.ush_menu_1 .w-nav-list.level_2 .current-menu-item > .w-nav-anchor.level_2{
  color:var(--ge-gold); background-color:var(--ge-gold-08); border-left-color:var(--ge-orange);
}

.l-header .l-subheader.at_middle{ border-bottom:1px solid var(--ge-border-faint); }

/* Register Interest button (add element with class ge-cta) */
.ge-cta .w-btn, a.w-btn.ge-cta{
  background:var(--ge-orange)!important; color:var(--ge-text-light)!important; border:0!important;
  border-radius:999px!important; padding:13px 28px!important; font-size:12px!important;
  font-weight:700!important; letter-spacing:.18em!important; text-transform:uppercase!important;
}
.ge-cta .w-btn:hover, a.w-btn.ge-cta:hover{ background:var(--ge-orange-light)!important; }

/* ── Footer (Reusable Block with class ge-footer) ─────────────────────── */

.l-footer{ background:var(--ge-bg-dark); border-top:1px solid var(--ge-border-strong)!important; }

.ge-footer{ padding-top:80px!important; padding-bottom:60px!important; color:var(--ge-text); }
.ge-footer a{ color:var(--ge-text); text-decoration:none; transition:color var(--ge-transition); }
.ge-footer a:hover{ color:var(--ge-gold); }

.ge-footer__logo{ font-family:var(--ge-font-heading); font-size:2rem; letter-spacing:.02em;
  text-transform:uppercase; color:var(--ge-text-light); line-height:1; }
.ge-footer__motto{ margin:14px 0 0; font-size:14px; font-weight:700; letter-spacing:.15em;
  text-transform:uppercase; color:var(--ge-gold); }
.ge-footer__tagline{ margin:12px 0 0; max-width:34ch; line-height:1.7; color:var(--ge-text-muted); }

.ge-footer__title{ font-family:var(--ge-font-heading); font-size:1.25rem; letter-spacing:.02em;
  text-transform:uppercase; color:var(--ge-gold); margin:0 0 24px; }
.ge-footer__menu{ list-style:none; margin:0; padding:0; }
.ge-footer__menu li+li{ margin-top:10px; }
.ge-footer__menu a{ font-size:.9375rem; }

.ge-footer > .wpb_column:nth-child(4) .vc_column-inner{ border-left:3px solid var(--ge-green); padding-left:24px; }
.ge-footer > .wpb_column:nth-child(4) p{ line-height:1.7; margin:0 0 24px; }
.ge-footer > .wpb_column:nth-child(4) strong{ color:var(--ge-text-light); }

.ge-btn-green{
  display:inline-flex; align-items:center; padding:13px 28px; font-size:12px; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase; background:var(--ge-green); color:var(--ge-text-light)!important;
  border-radius:999px; text-decoration:none; transition:background var(--ge-transition), color var(--ge-transition);
}
.ge-btn-green:hover{ background:var(--ge-gold); color:var(--ge-bg-dark)!important; }

.ge-footer__bottom{
  display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
  border-top:1px solid var(--ge-border-faint); padding:24px 0!important; font-size:14px; color:var(--ge-text-muted);
}
.ge-footer__bottom p{ margin:0; }
.ge-footer__bottom a{ color:var(--ge-text-muted); }
.ge-footer__bottom a:hover{ color:var(--ge-gold); }

/* ── Responsive ───────────────────────────────────────────────────────── */

@media (max-width:1024px){ .ge-grid-4{ grid-template-columns:repeat(2,1fr); } }

@media (max-width:767px){
  .ge-section{ padding-block:60px; }
  .ge-grid-2,.ge-grid-3,.ge-grid-4{ grid-template-columns:1fr; }
  .ge-banner__title{ font-size:clamp(2rem,9vw,2.5rem); }
  .ge-banner__title::after{ margin-top:16px; width:56px; }
  .ge-banner__crumbs{ letter-spacing:.14em; font-size:11px; }
  .ge-banner__sep{ margin:0 10px 2px; }

  .ge-footer{ padding-top:60px!important; padding-bottom:40px!important; text-align:left; }
  .ge-footer > .wpb_column:nth-child(4) .vc_column-inner{ border-left:0; padding-left:0; }
  .ge-footer__title{ margin-bottom:16px; }
  .ge-footer__tagline,.ge-footer > .wpb_column:nth-child(4) p{ line-height:1.5; }
  .ge-footer > .wpb_column{ margin-bottom:12px; }
  .ge-footer__bottom{ flex-direction:column; align-items:flex-start; gap:8px; text-align:left; }
}
