/* ==========================================================================
   GoGarage design system
   Tokens + component classes shared by the PHP header/footer, the GoGarage
   shortcodes/widgets, and the Elementor templates (via the CSS Classes field).
   ========================================================================== */

:root {
  --gg-red: #E8262E;
  --gg-red-dark: #C81E25;
  --gg-red-deep: #B4161D;
  --gg-red-tint: #FDEDEE;
  --gg-red-light: #FF7A7F;
  --gg-navy: #0E1240;
  --gg-navy-footer: #0B0E2A;
  --gg-navy-alt: #141B54;
  --gg-blue: #1B2496;
  --gg-text: #4A4D66;
  --gg-text-strong: #3A3E5C;
  --gg-muted: #6A6E8A;
  --gg-faint: #8A8DA6;
  --gg-fainter: #9A9DB4;
  --gg-brandgrey: #C3C6D6;
  --gg-border: #ECEDF4;
  --gg-border-lt: #F0F1F6;
  --gg-bg-soft: #F6F7FB;
  --gg-bg-input: #F3F4F8;
  --gg-bg-input-hover: #E9EAF1;
  --gg-navy-text: #B9BEE6;
  --gg-navy-text2: #C6CAEA;
  --gg-navy-muted: #8B90BC;
  --gg-navy-body: #DDE0F2;
  --gg-footer-text: #A9ACC8;
  --gg-green: #1BA854;
  --gg-green-bg: #EDF9F0;
  --gg-wa: #25D366;
  --gg-wa-dark: #1FB458;
  --gg-amber: #F6A21B;
  --gg-font-display: 'Plus Jakarta Sans', sans-serif;
  --gg-font-body: 'Figtree', sans-serif;
  --gg-shadow-card: 0 8px 30px -16px rgba(14, 18, 64, .12);
  --gg-shadow-card-hover: 0 26px 60px -24px rgba(14, 18, 64, .3);
  --gg-shadow-lift: 0 20px 44px -20px rgba(14, 18, 64, .28);
  --gg-shadow-panel: 0 30px 80px -36px rgba(14, 18, 64, .3);
  --gg-shadow-hero: 0 40px 100px -36px rgba(14, 18, 64, .4);
  --gg-shadow-btn: 0 14px 30px -10px rgba(232, 38, 46, .55);
  --gg-radius-card: 22px;
  --gg-radius-panel: 28px;
  --gg-radius-band: 32px;
  --gg-radius-input: 14px;
}

body {
  font-family: var(--gg-font-body);
  color: var(--gg-text);
  background: #fff;
  -webkit-font-smoothing: antialiased;
  margin: 0;
}

body a { text-decoration: none; }
::selection { background: var(--gg-red-tint); }

.gg-site a { color: var(--gg-blue); }
.gg-site a:hover { color: var(--gg-red); }

/* --------------------------------------------------------------------------
   Sticky pill header (PHP fallback header — Elementor Pro can replace it via
   the "header" theme location)
   -------------------------------------------------------------------------- */
.gg-header-wrap {
  position: sticky;
  top: 14px;
  z-index: 90;
  padding: 0 28px;
}
.gg-header {
  max-width: 1150px;
  margin: 0 auto;
  background: rgba(255, 255, 255, .88);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  border-radius: 999px;
  box-shadow: 0 12px 44px -14px rgba(14, 18, 64, .22);
  display: flex;
  align-items: center;
  gap: clamp(14px, 2.4vw, 30px);
  padding: 10px 12px 10px 28px;
}
.gg-header__logo { flex: none; display: flex; align-items: center; }
.gg-header__logo img { height: 22px; width: auto; display: block; }
.gg-header__nav { display: flex; gap: clamp(10px, 1.6vw, 22px); font: 600 14.5px var(--gg-font-body); flex-wrap: wrap; row-gap: 6px; align-items: center; }
.gg-header__nav ul { display: contents; list-style: none; margin: 0; padding: 0; }
.gg-header__nav li { display: inline-flex; }
.gg-header__nav a { color: var(--gg-text-strong); white-space: nowrap; }
.gg-header__nav a:hover { color: var(--gg-red); }
.gg-header__nav .current-menu-item > a,
.gg-header__nav .current_page_item > a { color: var(--gg-red); font-weight: 700; }
.gg-header__cta { margin-left: auto; display: flex; align-items: center; gap: clamp(10px, 1.6vw, 20px); }
.gg-header__phone { display: inline-flex; align-items: center; gap: 8px; font: 700 14.5px var(--gg-font-display); color: var(--gg-navy) !important; white-space: nowrap; }
.gg-header__phone svg { flex: none; }
.gg-header__book {
  background: var(--gg-red);
  color: #fff !important;
  font: 700 14.5px var(--gg-font-display);
  padding: 12px 24px;
  border-radius: 999px;
  white-space: nowrap;
  box-shadow: 0 10px 24px -10px rgba(232, 38, 46, .6);
  transition: all .2s;
}
.gg-header__book:hover { background: var(--gg-red-dark); transform: translateY(-1px); }
.gg-nav-toggle {
  display: none;
  margin-left: auto;
  background: var(--gg-bg-input);
  border: 0;
  border-radius: 999px;
  width: 42px;
  height: 42px;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  flex: none;
}
.gg-nav-toggle span,
.gg-nav-toggle span::before,
.gg-nav-toggle span::after {
  display: block;
  content: '';
  width: 18px;
  height: 2px;
  border-radius: 2px;
  background: var(--gg-navy);
  position: relative;
  transition: transform .2s;
}
.gg-nav-toggle span::before { position: absolute; top: -6px; }
.gg-nav-toggle span::after { position: absolute; top: 6px; }

@media (max-width: 1023px) {
  .gg-header-wrap { padding: 0 16px; top: 10px; }
  .gg-header { flex-wrap: wrap; border-radius: 26px; padding: 10px 16px; }
  .gg-nav-toggle { display: inline-flex; }
  .gg-header__cta { margin-left: 0; order: 4; width: 100%; justify-content: flex-start; padding: 4px 4px 8px; display: none; }
  .gg-header__nav { display: none; width: 100%; order: 3; flex-direction: column; align-items: flex-start; gap: 4px; padding: 10px 4px 6px; font-size: 16px; }
  .gg-header__nav li { display: block; width: 100%; }
  .gg-header__nav a { display: block; padding: 8px 6px; }
  .gg-header.is-open .gg-header__nav,
  .gg-header.is-open .gg-header__cta { display: flex; }
}

/* --------------------------------------------------------------------------
   Footer (PHP fallback footer — Elementor Pro can replace it via the
   "footer" theme location)
   -------------------------------------------------------------------------- */
.gg-footer { background: var(--gg-navy-footer); color: var(--gg-footer-text); }
.gg-footer__grid {
  max-width: 1180px;
  margin: 0 auto;
  padding: 64px 32px 0;
  display: grid;
  grid-template-columns: 1.3fr 1fr 1fr 1.2fr;
  gap: 44px;
}
.gg-footer__brand img { height: 22px; width: auto; filter: brightness(0) invert(1); }
.gg-footer__brand p { font-size: 14px; line-height: 1.65; margin: 16px 0 0; max-width: 280px; }
.gg-footer__col { display: flex; flex-direction: column; gap: 11px; font: 500 14px var(--gg-font-body); }
.gg-footer__col ul { display: contents; list-style: none; margin: 0; padding: 0; }
.gg-footer__col li { display: block; }
.gg-footer__title {
  font: 700 11.5px var(--gg-font-display);
  letter-spacing: .14em;
  color: #fff;
  text-transform: uppercase;
  margin-bottom: 4px;
}
.gg-footer a { color: var(--gg-footer-text); }
.gg-footer a:hover { color: #fff; }
.gg-footer__phone { color: #fff !important; font-weight: 700; }
.gg-footer__bottom {
  max-width: 1180px;
  margin: 48px auto 0;
  padding: 26px 32px;
  border-top: 1px solid rgba(255, 255, 255, .08);
  display: flex;
  justify-content: space-between;
  gap: 20px;
  font: 500 13px var(--gg-font-body);
  flex-wrap: wrap;
}
.gg-footer__bottom nav { display: flex; gap: 22px; flex-wrap: wrap; }
@media (max-width: 900px) { .gg-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .gg-footer__grid { grid-template-columns: 1fr; gap: 30px; } }

/* --------------------------------------------------------------------------
   Section helpers for Elementor (apply via Advanced → CSS Classes)
   -------------------------------------------------------------------------- */
.gg-hero-bg {
  background:
    radial-gradient(900px 480px at 88% -10%, rgba(232, 38, 46, .08), transparent 60%),
    radial-gradient(700px 420px at -8% 110%, rgba(20, 27, 84, .07), transparent 60%),
    #fff;
}
.gg-hero-bg--subtle {
  background: radial-gradient(900px 480px at 88% -10%, rgba(232, 38, 46, .06), transparent 60%), #fff;
}
.gg-band-navy {
  background-color: var(--gg-navy);
  background-image: radial-gradient(700px 300px at 90% -20%, rgba(232, 38, 46, .25), transparent 60%);
  border-radius: var(--gg-radius-band);
}
.gg-band-navy--left {
  background-color: var(--gg-navy);
  background-image: radial-gradient(400px 200px at 100% -20%, rgba(232, 38, 46, .3), transparent 60%);
}
.gg-band-red {
  background-color: var(--gg-red);
  background-image: radial-gradient(600px 280px at 12% -20%, rgba(255, 255, 255, .18), transparent 60%);
  border-radius: var(--gg-radius-band);
}
.gg-band-red--right {
  background-color: var(--gg-red);
  background-image: radial-gradient(300px 140px at 100% -30%, rgba(255, 255, 255, .25), transparent 60%);
}

/* Hover-lift cards (put on the Elementor column or widget wrapper) */
.gg-lift { transition: all .2s ease; }
.gg-lift:hover { box-shadow: var(--gg-shadow-lift); transform: translateY(-3px); }
.gg-lift--white:hover { background-color: #fff !important; }
.gg-card-hover { transition: all .2s ease; }
.gg-card-hover:hover { box-shadow: var(--gg-shadow-card-hover); transform: translateY(-3px); }

/* Eyebrow kicker above headings */
.gg-eyebrow,
.gg-eyebrow .elementor-heading-title {
  font: 700 12px var(--gg-font-display) !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: var(--gg-red);
}
.gg-eyebrow--light .elementor-heading-title { color: var(--gg-red-light); }

/* Numbered "how it works" step column */
.gg-step { border-top: 2.5px solid var(--gg-red); }

/* Stat cell in navy band */
.gg-stat { border-left: 2px solid rgba(255, 255, 255, .14); }

/* Brand marquee strip */
.gg-brands { display: flex; gap: 26px; flex-wrap: wrap; font: 800 14px var(--gg-font-display); color: var(--gg-brandgrey); letter-spacing: .02em; align-items: center; }
.gg-brands-label { font: 700 11.5px var(--gg-font-display); letter-spacing: .14em; color: var(--gg-fainter); text-transform: uppercase; flex: none; }

/* Chips (areas served, offers) */
.gg-chip { background: var(--gg-bg-soft); border-radius: 999px; padding: 8px 18px; font: 600 13.5px var(--gg-font-body); color: var(--gg-text-strong); display: inline-block; }
.gg-chip--offer { background: var(--gg-red-tint); color: var(--gg-red-deep); font: 700 12.5px var(--gg-font-body); letter-spacing: .05em; text-transform: uppercase; padding: 9px 18px; }
.gg-chip--offer::before { content: ''; width: 8px; height: 8px; border-radius: 99px; background: var(--gg-red); display: inline-block; margin-right: 8px; }

/* Rating badge pill */
.gg-badge-pill { display: inline-flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--gg-border); border-radius: 999px; padding: 7px 16px; font: 600 12.5px var(--gg-font-body); color: var(--gg-text-strong); box-shadow: 0 4px 14px rgba(14, 18, 64, .06); }
.gg-star { color: var(--gg-amber); }

/* Buttons — attach to the Elementor Button widget (Advanced → CSS Classes)   */
.gg-btn .elementor-button,
a.gg-btn, button.gg-btn {
  border-radius: 999px;
  font-family: var(--gg-font-display);
  font-weight: 700;
  transition: all .2s;
}
.gg-btn--primary .elementor-button, a.gg-btn--primary {
  background-color: var(--gg-red); color: #fff;
  box-shadow: var(--gg-shadow-btn);
}
.gg-btn--primary .elementor-button:hover, a.gg-btn--primary:hover { background-color: var(--gg-red-dark); color: #fff; transform: translateY(-2px); }
.gg-btn--white .elementor-button, a.gg-btn--white { background-color: #fff; color: var(--gg-red); }
.gg-btn--white .elementor-button:hover, a.gg-btn--white:hover { background-color: var(--gg-navy); color: #fff; transform: translateY(-2px); }
.gg-btn--navy .elementor-button, a.gg-btn--navy { background-color: var(--gg-navy); color: #fff; }
.gg-btn--navy .elementor-button:hover, a.gg-btn--navy:hover { background-color: var(--gg-blue); color: #fff; }
.gg-btn--soft .elementor-button, a.gg-btn--soft { background-color: var(--gg-bg-input); color: var(--gg-navy); }
.gg-btn--soft .elementor-button:hover, a.gg-btn--soft:hover { background-color: var(--gg-bg-input-hover); color: var(--gg-navy); }
.gg-btn--ghost .elementor-button, a.gg-btn--ghost { background-color: #fff; color: var(--gg-navy); border: 1px solid var(--gg-border); box-shadow: 0 4px 14px rgba(14, 18, 64, .06); }
.gg-btn--ghost .elementor-button:hover, a.gg-btn--ghost:hover { color: var(--gg-red); transform: translateY(-2px); }
.gg-btn--outline-white .elementor-button, a.gg-btn--outline-white { background: transparent; border: 2px solid rgba(255, 255, 255, .7); color: #fff; }
.gg-btn--outline-white .elementor-button:hover, a.gg-btn--outline-white:hover { background: rgba(255, 255, 255, .14); color: #fff; }
.gg-btn--wa .elementor-button, a.gg-btn--wa { background-color: #fff; color: var(--gg-navy); border: 1px solid var(--gg-border); box-shadow: 0 4px 14px rgba(14, 18, 64, .06); }
.gg-btn--wa .elementor-button:hover, a.gg-btn--wa:hover { border-color: var(--gg-wa); color: var(--gg-navy); transform: translateY(-2px); }
.gg-btn--wa .elementor-button::before, a.gg-btn--wa::before { content: ''; width: 9px; height: 9px; border-radius: 99px; background: var(--gg-wa); display: inline-block; margin-right: 9px; }

/* Text link arrow */
.gg-link-cta, .gg-link-cta a { font: 700 15px var(--gg-font-display); color: var(--gg-red) !important; }

/* --------------------------------------------------------------------------
   Forms (booking + lead forms rendered by the GoGarage shortcodes/widgets)
   -------------------------------------------------------------------------- */
.gg-panel {
  background: #fff;
  border-radius: var(--gg-radius-panel);
  box-shadow: var(--gg-shadow-panel);
  overflow: hidden;
}
.gg-panel--hero { box-shadow: var(--gg-shadow-hero); }
.gg-panel__head {
  background: var(--gg-navy);
  color: #fff;
  padding: 18px 28px;
  font: 800 18px var(--gg-font-display);
  letter-spacing: -.015em;
  background-image: radial-gradient(300px 120px at 100% -30%, rgba(232, 38, 46, .35), transparent 60%);
}
.gg-panel__head--red { background-color: var(--gg-red); background-image: radial-gradient(300px 140px at 100% -30%, rgba(255, 255, 255, .25), transparent 60%); padding: 20px 28px; }
.gg-panel__head small { display: block; font: 500 12.5px var(--gg-font-body); color: var(--gg-navy-text); margin-top: 2px; }
.gg-panel__head--red small { color: #FFD8DA; }
.gg-panel__title-row { padding: 26px 30px 0; display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.gg-panel__title-row strong { font: 800 21px var(--gg-font-display); letter-spacing: -.02em; color: var(--gg-navy); }
.gg-panel__hint { display: inline-flex; align-items: center; gap: 7px; font: 600 12.5px var(--gg-font-body); color: var(--gg-muted); }
.gg-dot { width: 8px; height: 8px; border-radius: 99px; background: var(--gg-wa); display: inline-block; flex: none; }

.gg-form { padding: 20px 30px 30px; display: flex; flex-direction: column; gap: 13px; }
.gg-form--roomy { padding: 34px 36px 38px; gap: 24px; }
.gg-form input[type="text"],
.gg-form input[type="tel"],
.gg-form input[type="email"],
.gg-form select,
.gg-form textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 14px 16px;
  border: 1.5px solid transparent;
  border-radius: var(--gg-radius-input);
  font: 500 15px var(--gg-font-body);
  color: var(--gg-navy);
  background: var(--gg-bg-input);
  outline: none;
  -webkit-appearance: none;
  appearance: none;
}
.gg-form select {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%236A6E8A' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  padding-right: 40px;
}
.gg-form input:focus, .gg-form select:focus, .gg-form textarea:focus { border-color: var(--gg-navy); background-color: #fff; }
.gg-form textarea { resize: vertical; font-family: var(--gg-font-body); }
.gg-form ::placeholder { color: var(--gg-faint); opacity: 1; }
.gg-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 560px) { .gg-form__row { grid-template-columns: 1fr; } }
.gg-form__label { font: 800 13px var(--gg-font-display); letter-spacing: .08em; color: var(--gg-navy); text-transform: uppercase; margin-bottom: 10px; }
.gg-form__fine { font: 500 12.5px var(--gg-font-body); color: var(--gg-faint); text-align: center; }
.gg-form__submit {
  background: var(--gg-red);
  color: #fff;
  border: none;
  cursor: pointer;
  font: 700 16px var(--gg-font-display);
  padding: 16px;
  border-radius: 999px;
  box-shadow: 0 14px 30px -12px rgba(232, 38, 46, .6);
  transition: all .2s;
  width: 100%;
}
.gg-form__submit:hover { background: var(--gg-red-dark); transform: translateY(-1px); }
.gg-form__submit[disabled] { opacity: .6; cursor: wait; transform: none; }

/* Segmented control (Bike/Car, Doorstep/Workshop) */
.gg-seg { background: var(--gg-bg-input); border-radius: var(--gg-radius-input); padding: 5px; display: flex; gap: 5px; }
.gg-seg button {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 11px 0;
  border-radius: 10px;
  font: 600 14.5px var(--gg-font-body);
  cursor: pointer;
  border: none;
  background: transparent;
  color: var(--gg-muted);
  transition: all .15s ease;
}
.gg-seg button.is-active { background: #fff; color: var(--gg-navy); box-shadow: 0 4px 14px rgba(14, 18, 64, .14); }

/* Chip pickers (dates / time slots) */
.gg-chips { display: flex; gap: 9px; flex-wrap: wrap; }
.gg-chips button {
  padding: 10px 18px;
  border-radius: 12px;
  font: 500 14px var(--gg-font-body);
  cursor: pointer;
  text-align: left;
  border: none;
  background: var(--gg-bg-input);
  color: var(--gg-text);
  transition: all .15s ease;
}
.gg-chips button.is-active { background: var(--gg-navy); color: #fff; }
.gg-chips button b { display: block; font-weight: 700; }
.gg-chips button small { display: block; font-size: 12px; opacity: .72; }

/* Success panel */
.gg-success { padding: 48px 30px; text-align: center; display: none; }
.gg-success.is-visible { display: block; }
.gg-success__icon { width: 56px; height: 56px; border-radius: 99px; background: var(--gg-green-bg); display: flex; align-items: center; justify-content: center; margin: 0 auto 14px; }
.gg-success__title { font: 900 26px var(--gg-font-display); letter-spacing: -.025em; color: var(--gg-navy); }
.gg-success p { font-size: 15px; margin: 8px 0 16px; }
.gg-success button { background: none; border: none; cursor: pointer; font: 600 14px var(--gg-font-body); color: var(--gg-blue); text-decoration: underline; }
.gg-form-error { display: none; font: 500 13px var(--gg-font-body); color: var(--gg-red-deep); text-align: center; }
.gg-form-error.is-visible { display: block; }

/* --------------------------------------------------------------------------
   Branch locator (shortcode)
   -------------------------------------------------------------------------- */
.gg-locator { display: grid; grid-template-columns: 1fr 1.1fr; gap: 32px; align-items: start; }
@media (max-width: 900px) { .gg-locator { grid-template-columns: 1fr; } }
.gg-locator__filters { display: flex; gap: 10px; margin-bottom: 14px; }
.gg-locator__filters select { flex: 1; }
.gg-locator__filters input { flex: 1.4; }
.gg-locator__filters select, .gg-locator__filters input {
  padding: 14px 16px; border: 1.5px solid transparent; border-radius: var(--gg-radius-input);
  font: 500 15px var(--gg-font-body); color: var(--gg-navy); background: var(--gg-bg-input); outline: none;
}
.gg-locator__filters select:focus, .gg-locator__filters input:focus { border-color: var(--gg-navy); background: #fff; }
.gg-locator__list { display: flex; flex-direction: column; gap: 10px; max-height: 520px; overflow-y: auto; padding-right: 4px; }
.gg-branch {
  display: block; width: 100%; text-align: left; cursor: pointer;
  border-radius: 16px; padding: 16px 18px;
  background: var(--gg-bg-soft); border: 1.5px solid transparent;
  font-family: var(--gg-font-body); transition: all .15s ease;
}
.gg-branch.is-active { background: #fff; border-color: var(--gg-red); box-shadow: 0 14px 34px -16px rgba(14, 18, 64, .25); }
.gg-branch__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.gg-branch__name { font: 700 15.5px var(--gg-font-display); color: var(--gg-navy); }
.gg-branch__status { font: 600 11.5px var(--gg-font-body); color: var(--gg-green); background: var(--gg-green-bg); border-radius: 999px; padding: 4px 11px; flex: none; }
.gg-branch__addr { display: block; font: 500 13.5px var(--gg-font-body); color: var(--gg-faint); margin-top: 4px; }
.gg-branch__formats { display: block; font: 600 12.5px var(--gg-font-body); color: var(--gg-muted); margin-top: 6px; }
.gg-locator__map { position: sticky; top: 96px; border-radius: 24px; overflow: hidden; height: 560px; background: #E5E7F0; }
.gg-locator__map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.gg-locator__card {
  position: absolute; left: 16px; right: 16px; bottom: 16px;
  background: rgba(255, 255, 255, .94);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  border-radius: 18px; box-shadow: 0 18px 44px -18px rgba(14, 18, 64, .35);
  padding: 20px 24px;
}
.gg-locator__card-top { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; }
.gg-locator__card-name { font: 800 21px var(--gg-font-display); letter-spacing: -.02em; color: var(--gg-navy); }
.gg-locator__card-status { font: 600 12.5px var(--gg-font-body); color: var(--gg-green); flex: none; }
.gg-locator__card-addr { font: 500 13.5px var(--gg-font-body); color: var(--gg-text); margin: 6px 0 14px; }
.gg-locator__card-actions { display: flex; gap: 9px; flex-wrap: wrap; }
.gg-locator__card-actions a { font: 700 13.5px var(--gg-font-display); padding: 11px 20px; border-radius: 999px; transition: all .2s; display: inline-flex; align-items: center; gap: 8px; }
@media (max-width: 900px) { .gg-locator__map { position: relative; top: 0; height: 440px; } }

/* --------------------------------------------------------------------------
   WhatsApp floating button
   -------------------------------------------------------------------------- */
.gg-wa-float {
  position: fixed; right: 26px; bottom: 26px; z-index: 95;
  width: 58px; height: 58px; border-radius: 99px;
  background: var(--gg-wa);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 14px 30px -8px rgba(37, 211, 102, .55);
  transition: all .2s;
}
.gg-wa-float:hover { background: var(--gg-wa-dark); transform: translateY(-2px); }

/* --------------------------------------------------------------------------
   Content fallbacks (non-Elementor pages: posts, archives, search)
   -------------------------------------------------------------------------- */
.gg-content { max-width: 820px; margin: 0 auto; padding: 64px 32px 88px; }
.gg-content h1, .gg-content h2, .gg-content h3 { font-family: var(--gg-font-display); color: var(--gg-navy); letter-spacing: -.02em; }
.gg-content h1 { font-weight: 900; font-size: clamp(34px, 4.6vw, 50px); line-height: 1.05; letter-spacing: -.035em; }
.gg-content p { font-size: 15.5px; line-height: 1.75; }
.gg-content img { max-width: 100%; height: auto; border-radius: 16px; }

/* Elementor niceties */
.elementor-widget-heading .elementor-heading-title { font-family: var(--gg-font-display); }
.gg-radius-24 img, .gg-radius-24 { border-radius: 24px; overflow: hidden; }
.gg-radius-28 img, .gg-radius-28 { border-radius: 28px; overflow: hidden; }
.gg-radius-20 img, .gg-radius-20 { border-radius: 20px; overflow: hidden; }
.gg-img-cover img { width: 100%; height: 100%; object-fit: cover; }

/* Icon tile: rounded square on Elementor Icon widget (view: stacked) */
.gg-icon-tile .elementor-icon { border-radius: 13px; }
.gg-icon-tile.elementor-view-stacked .elementor-icon { background-color: var(--gg-red-tint); }

/* Review card on navy band */
.gg-review { background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .09); border-radius: 20px; }
.gg-review .elementor-widget-container { color: var(--gg-navy-body); }

/* Divider dots between trust items */
.gg-vdiv { width: 1px; height: 16px; background: #E3E5EF; display: inline-block; }

/* Screen-reader text (WP a11y) */
.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;
}

/* Admin bar offset for sticky header */
body.admin-bar .gg-header-wrap { top: 46px; }
@media (min-width: 783px) { body.admin-bar .gg-header-wrap { top: 46px; } }
