/* ══════════════════════════════════════════════════════════
   GroundsGroup Location Page  — Theme-Agnostic via CSS Vars
   All colors reference --ggm-* variables injected by PHP.
   ══════════════════════════════════════════════════════════ */

/* Fallback values (used if variables not set) */
:root {
    --ggm-primary:       #22b24c;
    --ggm-dark:          #1a3a1a;
    --ggm-mid:           #2d6a2d;
    --ggm-text:          #1a1a1a;
    --ggm-muted:         #5a6a5a;
    --ggm-hero-bg:       #1a3a1a;
    --ggm-hero-overlay:  rgba(15,40,15,0.82);
    --ggm-trust-bg:      #22b24c;
    --ggm-cta-bg:        #1a3a1a;
    --ggm-button:        #22b24c;
    --ggm-button-text:   #ffffff;
    --ggm-accent:        #7de8a0;
    --ggm-font:          inherit;
    --ggm-font-weight:   400;
    --ggm-border:        color-mix(in srgb, var(--ggm-primary) 20%, white);
    --ggm-light-bg:      color-mix(in srgb, var(--ggm-primary) 5%, white);
    --ggm-radius:        12px;
    --ggm-max:           1180px;
}

/* ── Reset theme overrides on plugin pages ───────────────── */
#ggm-location-page,
.ggm-index {
    font-family: var(--ggm-font) !important;
    color: var(--ggm-text);
}
#ggm-location-page h1,
#ggm-location-page h2,
#ggm-location-page h3,
#ggm-location-page h4,
.ggm-index h1,
.ggm-index h2,
.ggm-index h3 {
    color: inherit !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    font-family: var(--ggm-font) !important;
}
.fusion-page-title-bar,
.fusion-page-title-bar-wrapper { display: none !important; }

/* ── Container & layout ──────────────────────────────────── */
.ggm-lp { color: var(--ggm-text); }
.ggm-lp__container { max-width: var(--ggm-max); margin: 0 auto; padding: 0 24px; }
.ggm-lp__section { padding: 72px 0; }
.ggm-lp__section.ggm-lp__intro,
.ggm-lp__section.ggm-lp__faq    { background: #fff; }
.ggm-lp__section.ggm-lp__services,
.ggm-lp__section.ggm-lp__why    { background: color-mix(in srgb, var(--ggm-primary) 5%, white); }

.ggm-lp__section-header { text-align: center; margin-bottom: 48px; }
.ggm-lp__section-header h2 { font-size: clamp(22px,3vw,32px); font-weight: 800; color: var(--ggm-dark) !important; margin: 0 0 12px; }
.ggm-lp__section-header p  { font-size: 16px; color: var(--ggm-muted) !important; max-width: 560px; margin: 0 auto; }

/* ── Buttons ─────────────────────────────────────────────── */
.ggm-lp__btn {
    display: inline-block; padding: 14px 28px; border-radius: 8px;
    font-weight: 700; font-size: 15px; text-decoration: none !important;
    transition: all .2s; border: 2px solid transparent; cursor: pointer;
}
.ggm-lp__btn--primary  { background: var(--ggm-button) !important; color: var(--ggm-button-text) !important; }
.ggm-lp__btn--primary:hover  { filter: brightness(0.88); }
.ggm-lp__btn--outline  { background: transparent !important; color: #fff !important; border-color: rgba(255,255,255,.7) !important; }
.ggm-lp__btn--outline:hover  { background: rgba(255,255,255,.15) !important; }
.ggm-lp__btn--white    { background: #fff !important; color: var(--ggm-dark) !important; }
.ggm-lp__btn--white:hover    { filter: brightness(0.95); }

/* ── HERO ────────────────────────────────────────────────── */
.ggm-lp__hero {
    position: relative; overflow: hidden;
    padding: 100px 0 88px; text-align: center; color: #fff;
    background: var(--ggm-hero-bg);
    background-size: cover; background-position: center;
}
.ggm-lp__hero-video-wrap {
    position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none;
}
.ggm-lp__hero-video {
    position: absolute; top: 50%; left: 50%;
    width: max(100%, calc(100vh * 16 / 9));
    height: max(100%, calc(100vw * 9 / 16));
    transform: translate(-50%, -50%);
    border: none; pointer-events: none;
}
.ggm-lp__hero-overlay {
    position: absolute; inset: 0;
    background: var(--ggm-hero-overlay);
    z-index: 1;
}
.ggm-lp__hero-content { position: relative; z-index: 2; }
.ggm-lp__hero-badge {
    display: inline-block; background: rgba(255,255,255,.18);
    border: 1px solid rgba(255,255,255,.35); border-radius: 20px;
    padding: 5px 16px; font-size: 12px; font-weight: 700;
    letter-spacing: 1px; text-transform: uppercase; margin-bottom: 20px; color: #fff !important;
}
.ggm-lp__hero-title {
    font-size: clamp(28px,5vw,54px) !important; font-weight: 900 !important;
    line-height: 1.15 !important; color: #fff !important; margin: 0 0 20px !important;
    text-shadow: 0 2px 16px rgba(0,0,0,.45);
    text-transform: none !important; letter-spacing: normal !important;
}
.ggm-lp__hero-location { display: block; color: var(--ggm-accent) !important; }
.ggm-lp__hero-sub {
    font-size: 18px !important; color: rgba(255,255,255,.9) !important;
    max-width: 640px; margin: 0 auto 36px !important; line-height: 1.65 !important;
    text-shadow: 0 1px 8px rgba(0,0,0,.35);
}
.ggm-lp__hero-actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

/* ── TRUST BAR ───────────────────────────────────────────── */
.ggm-lp__trust { background: var(--ggm-trust-bg); padding: 16px 0; }
.ggm-lp__trust-grid { display: flex; gap: 28px; justify-content: center; flex-wrap: wrap; }
.ggm-lp__trust-item { color: #fff !important; font-size: 14px; font-weight: 600; display: flex; align-items: center; gap: 6px; }

/* ── INTRO ───────────────────────────────────────────────── */
.ggm-lp__two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; }
.ggm-lp__intro-text h2 { font-size: clamp(20px,2.5vw,28px) !important; font-weight: 800 !important; color: var(--ggm-dark) !important; margin: 0 0 16px !important; }
.ggm-lp__intro-text p  { font-size: 16px; color: var(--ggm-muted) !important; line-height: 1.7; margin: 0 0 16px; }
.ggm-lp__intro-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ggm-lp__stat-card { background: #fff; border: 1px solid color-mix(in srgb, var(--ggm-primary) 20%, white); border-radius: var(--ggm-radius); padding: 24px; text-align: center; box-shadow: 0 2px 12px rgba(0,0,0,.06); }
.ggm-lp__stat-num { font-size: 36px; font-weight: 900; color: var(--ggm-primary) !important; line-height: 1; }
.ggm-lp__stat-lbl { font-size: 13px; color: var(--ggm-muted) !important; margin-top: 4px; font-weight: 600; }

/* ── SERVICES ────────────────────────────────────────────── */
.ggm-lp__services-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.ggm-lp__service-card { background: #fff; border: 1px solid color-mix(in srgb, var(--ggm-primary) 20%, white); border-radius: var(--ggm-radius); overflow: hidden; text-decoration: none !important; box-shadow: 0 2px 12px rgba(0,0,0,.05); transition: transform .2s, box-shadow .2s; display: flex; flex-direction: column; }
.ggm-lp__service-card:hover { transform: translateY(-4px); box-shadow: 0 8px 24px rgba(0,0,0,.12); }
.ggm-lp__service-img { height: 180px; background-size: cover; background-position: center; background-color: color-mix(in srgb, var(--ggm-primary) 15%, white); }
.ggm-lp__service-body { padding: 20px; flex: 1; display: flex; flex-direction: column; }
.ggm-lp__service-body h3 { font-size: 16px !important; font-weight: 700 !important; color: var(--ggm-dark) !important; margin: 0 0 8px !important; }
.ggm-lp__service-body p  { font-size: 13px; color: var(--ggm-muted) !important; line-height: 1.6; margin: 0 0 14px; flex: 1; }
.ggm-lp__service-link { font-size: 13px; font-weight: 700; color: var(--ggm-primary) !important; margin-top: auto; }

/* ── WHY ─────────────────────────────────────────────────── */
.ggm-lp__why-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 24px; }
.ggm-lp__why-item { text-align: center; padding: 28px 16px; background: #fff; border-radius: var(--ggm-radius); border: 1px solid color-mix(in srgb, var(--ggm-primary) 20%, white); }
.ggm-lp__why-icon { font-size: 36px; margin-bottom: 14px; }
.ggm-lp__why-item h4 { font-size: 15px !important; font-weight: 700 !important; color: var(--ggm-dark) !important; margin: 0 0 8px !important; }
.ggm-lp__why-item p  { font-size: 13px; color: var(--ggm-muted) !important; line-height: 1.6; margin: 0; }

/* ── FAQ ─────────────────────────────────────────────────── */
.ggm-lp__faq-inner { max-width: 820px; }
.ggm-lp__faq-list  { display: flex; flex-direction: column; gap: 12px; }
.ggm-lp__faq-item  { border: 1px solid color-mix(in srgb, var(--ggm-primary) 20%, white); border-radius: var(--ggm-radius); overflow: hidden; }
.ggm-lp__faq-q { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 20px; background: #fff; border: none; cursor: pointer; text-align: left; font-family: var(--ggm-font) !important; font-size: 15px; font-weight: 600; color: var(--ggm-dark) !important; transition: background .15s; }
.ggm-lp__faq-q:hover { background: color-mix(in srgb, var(--ggm-primary) 5%, white); }
.ggm-lp__faq-q[aria-expanded="true"] { background: color-mix(in srgb, var(--ggm-primary) 5%, white); color: var(--ggm-mid) !important; }
.ggm-lp__faq-chevron { width: 20px; min-width: 20px; color: var(--ggm-primary); transition: transform .2s; }
.ggm-lp__faq-q[aria-expanded="true"] .ggm-lp__faq-chevron { transform: rotate(180deg); }
.ggm-lp__faq-a { padding: 0 20px 18px; background: color-mix(in srgb, var(--ggm-primary) 5%, white); }
.ggm-lp__faq-a[hidden] { display: none; }
.ggm-lp__faq-a p { font-size: 15px; color: var(--ggm-muted) !important; line-height: 1.7; margin: 0; }

/* ── CTA ─────────────────────────────────────────────────── */
.ggm-lp__cta { background: var(--ggm-cta-bg); color: #fff; text-align: center; padding: 72px 0; }
.ggm-lp__cta h2 { font-size: clamp(24px,3.5vw,38px) !important; font-weight: 900 !important; color: #fff !important; margin: 0 0 16px !important; }
.ggm-lp__cta p  { font-size: 17px; color: rgba(255,255,255,.85) !important; max-width: 520px; margin: 0 auto 32px; }

/* ── INDEX PAGE ──────────────────────────────────────────── */
.ggm-index__hero { background: linear-gradient(135deg, var(--ggm-dark) 0%, var(--ggm-mid) 100%); color: #fff; padding: 72px 0 60px; text-align: center; }
.ggm-index__eyebrow { font-size: 12px !important; font-weight: 700 !important; letter-spacing: 2px; text-transform: uppercase; color: var(--ggm-accent) !important; margin: 0 0 12px !important; }
.ggm-index__title { font-family: var(--ggm-font) !important; font-size: clamp(32px,5vw,56px) !important; font-weight: 700 !important; color: #fff !important; margin: 0 0 16px !important; text-transform: none !important; }
.ggm-index__sub { font-size: 17px !important; color: rgba(255,255,255,.85) !important; max-width: 580px; margin: 0 auto !important; line-height: 1.65 !important; }
.ggm-index__body { padding: 56px 0 72px; background: #fff; }
.ggm-index__state-block { margin-bottom: 48px; padding-bottom: 48px; border-bottom: 1px solid color-mix(in srgb, var(--ggm-primary) 20%, white); }
.ggm-index__state-block:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.ggm-index__state-name { font-size: 20px !important; font-weight: 700 !important; color: var(--ggm-dark) !important; margin: 0 0 20px !important; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ggm-index__state-badge { background: var(--ggm-primary); color: #fff; font-size: 12px; font-weight: 800; padding: 3px 10px; border-radius: 5px; letter-spacing: .5px; }
.ggm-index__state-count { font-size: 13px; font-weight: 400; color: var(--ggm-muted); }
.ggm-index__city-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-auto-flow: column; grid-template-rows: repeat(var(--rows,10),auto); grid-template-columns: repeat(3,1fr); gap: 4px 16px; }
.ggm-index__city-grid li { font-size: 14px; padding: 5px 0; border-bottom: 1px solid #f0f0f0; }
.ggm-index__city-grid a { color: var(--ggm-text) !important; text-decoration: none !important; transition: color .15s; }
.ggm-index__city-grid a:hover { color: var(--ggm-primary) !important; }

/* ── MOBILE ──────────────────────────────────────────────── */
@media (max-width: 900px) {
    .ggm-lp__two-col { grid-template-columns: 1fr; }
    .ggm-lp__services-grid { grid-template-columns: repeat(2,1fr); }
    .ggm-lp__why-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 768px) {
    .ggm-index__city-grid { grid-template-columns: repeat(2,1fr); grid-template-rows: repeat(calc(var(--rows)*2),auto); }
}
@media (max-width: 600px) {
    .ggm-lp__section { padding: 48px 0; }
    .ggm-lp__hero { padding: 64px 0 56px; }
    .ggm-lp__hero-video-wrap { display: none; }
    .ggm-lp__services-grid { grid-template-columns: 1fr; }
    .ggm-lp__why-grid { grid-template-columns: 1fr; }
    .ggm-lp__intro-stats { grid-template-columns: 1fr 1fr; }
    .ggm-lp__hero-actions { flex-direction: column; align-items: center; }
    .ggm-lp__trust-grid { gap: 12px; }
    .ggm-lp__hero-title { font-size: clamp(26px,7vw,40px) !important; }
    .ggm-index__city-grid { grid-template-columns: 1fr; grid-auto-flow: row; grid-template-rows: none; }
    .ggm-index__hero { padding: 48px 0 40px; }
}

/* ── Accordion city links ────────────────────────────────── */
.ggm-city-list__item a { color: var(--ggm-text); text-decoration: none; transition: color .15s; }
.ggm-city-list__item a:hover { color: var(--ggm-primary); text-decoration: underline; }
