/* =========================================================
   GYM DIRECTORY — Premium Home Page
   Companion stylesheet for templates/page-gym-home.php
   The template uses heavy inline styles for pixel fidelity;
   this file provides @media responsiveness + small helpers
   that cannot be expressed inline.
   ========================================================= */

/* ===== GYM HOME — FULL WIDTH + NO TITLE =========================
   High-specificity selectors confirmed working in prior sessions.
   Covers: container width, visual boxing (bg/shadow), page title.
   ================================================================ */
html body #page #content .ast-container                { max-width:100%!important; width:100%!important; padding-left:0!important; padding-right:0!important; }
html body #page #content #primary                      { max-width:100%!important; width:100%!important; padding:0!important; margin:0!important; float:none!important; }
html body #page #content .site-main                    { max-width:100%!important; width:100%!important; padding:0!important; margin:0!important; }
html body #page #content .hentry                       { background:transparent!important; box-shadow:none!important; border:none!important; padding:0!important; margin:0!important; }
html body #page #content .ast-article-single           { background:transparent!important; box-shadow:none!important; border:none!important; padding:0!important; margin:0!important; }
html body #page #content .entry-content                { max-width:100%!important; padding:0!important; margin:0!important; }
html body #page #content .entry-header                 { display:none!important; }
html body #page .entry-title                           { display:none!important; }

/* Fonts loaded globally via assets/css/fonts.css (Bunny Fonts CDN) */

.gd-fp, .gd-fp * { box-sizing: border-box; }
.gd-fp { font-family: 'Source Sans Pro', sans-serif; color: #1C1C1E; overflow-x: hidden; line-height: 1.5; }
.gd-fp h1, .gd-fp h2, .gd-fp h3, .gd-fp h4 { font-family: 'Source Sans Pro', sans-serif; }
.gd-fp a { text-decoration: none; }
.gd-fp button { font-family: inherit; }

/* Native select option color tweak */
.gd-fp select option { background: #1A1B1F; color: #F9F8F6; }

/* Image placeholder helper (used as bg in cards / hero) */
.gd-fp .gd-img-ph {
    background: repeating-linear-gradient(135deg, #1e1e22 0px, #1e1e22 8px, #252529 8px, #252529 16px);
    display: flex; align-items: center; justify-content: center;
    color: #555; font-family: monospace; font-size: 11px; text-align: center;
    padding: 8px;
}

/* Hover transitions baseline */
.gd-fp .gd-hover { transition: all 0.2s ease; }
.gd-fp .gd-cat-card:hover { transform: translateY(-3px); }
.gd-fp .gd-cat-card { transition: all 0.2s ease; }
.gd-fp .gd-cat-card:hover .gd-cat-label { color: #F9F8F6; }
.gd-fp .gd-cat-card:hover .gd-cat-count { color: #C9A84C; }
.gd-fp .gd-cat-card:hover { background: #0F0F11; border-color: #C9A84C; box-shadow: 0 8px 32px rgba(0,0,0,0.15); }

.gd-fp .gd-trust-card:hover,
.gd-fp .gd-check-card:hover,
.gd-fp .gd-ofeat-card:hover { background: #0F0F11; border-color: #C9A84C; }
.gd-fp .gd-check-card:hover .gd-card-title,
.gd-fp .gd-ofeat-card:hover .gd-card-title { color: #F9F8F6; }
.gd-fp .gd-check-card:hover .gd-card-desc,
.gd-fp .gd-ofeat-card:hover .gd-card-desc { color: #9CA3AF; }
.gd-fp .gd-trust-card:hover .gd-card-title { color: #F9F8F6; }
.gd-fp .gd-trust-card:hover { background: rgba(201,168,76,0.08); border-color: rgba(201,168,76,0.3); }

.gd-fp .gd-city-card:hover .gd-city-overlay { background: linear-gradient(to top, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.3) 100%); }
.gd-fp .gd-city-card:hover .gd-city-explore { opacity: 1 !important; }

.gd-fp .gd-gym-card { transition: all 0.2s ease; }
.gd-fp .gd-gym-card:hover { transform: translateY(-4px); box-shadow: 0 16px 48px rgba(0,0,0,0.12); }

.gd-fp .gd-redbtn { transition: all 0.18s; }
.gd-fp .gd-redbtn:hover { background: #B91C1C !important; }
.gd-fp .gd-redbtn-outline:hover { background: rgba(220,38,38,0.08) !important; }
.gd-fp .gd-goldbtn { transition: all 0.18s; }
.gd-fp .gd-goldbtn:hover { background: #C9A84C !important; color: #0F0F11 !important; }

.gd-fp .gd-nav-link { transition: color 0.15s; }
.gd-fp .gd-nav-link:hover { color: #F9F8F6 !important; }

.gd-fp .gd-quick-chip { transition: all 0.15s; }
.gd-fp .gd-quick-chip:hover { background: rgba(201,168,76,0.12) !important; border-color: #C9A84C !important; color: #C9A84C !important; }

.gd-fp .gd-foot-link { transition: color 0.15s; }
.gd-fp .gd-foot-link:hover { color: #C9A84C !important; }

/* FAQ accordion */
.gd-fp .gd-faq-item .gd-faq-body { max-height: 0; overflow: hidden; transition: max-height 0.35s ease; }
.gd-fp .gd-faq-item.is-open .gd-faq-body { max-height: 600px; }
.gd-fp .gd-faq-item.is-open .gd-faq-plus { transform: rotate(45deg); }
.gd-fp .gd-faq-item .gd-faq-plus { transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease; }
.gd-fp .gd-faq-item.is-open { box-shadow: 0 4px 20px rgba(0,0,0,0.06); }
.gd-fp .gd-faq-item.is-open.gd-faq-red { border-color: #DC2626 !important; }
.gd-fp .gd-faq-item.is-open.gd-faq-red .gd-faq-plus { background: #DC2626; color: #fff; }
.gd-fp .gd-faq-item.is-open.gd-faq-gold { border-color: #C9A84C !important; }
.gd-fp .gd-faq-item.is-open.gd-faq-gold .gd-faq-plus { background: #C9A84C; color: #fff; }

/* FAQ tabs */
.gd-fp .gd-faq-pane { display: none; }
.gd-fp .gd-faq-pane.is-active { display: block; }

/* ────── Responsive ────── */
@media (max-width: 1024px) {
    .gd-fp .gd-grid-2 { grid-template-columns: 1fr !important; gap: 40px !important; }
    .gd-fp .gd-cities-grid { grid-template-columns: repeat(2, 1fr) !important; }
    .gd-fp .gd-pricing-grid { grid-template-columns: 1fr !important; gap: 32px !important; }
    .gd-fp .gd-pricing-grid > * { transform: none !important; }
    .gd-fp .gd-foot-grid { grid-template-columns: 1fr 1fr 1fr !important; }
}

@media (max-width: 768px) {
    .gd-fp .gd-section { padding: 56px 20px !important; }
    .gd-fp .gd-nav { padding: 16px 20px !important; }
    .gd-fp .gd-nav-links { display: none !important; }
    .gd-fp .gd-nav-cta { display: inline-flex !important; }
    .gd-fp .gd-hero-content { padding: 88px 20px 56px !important; }
    .gd-fp .gd-hero-search { flex-direction: column !important; }
    .gd-fp .gd-hero-search > * { flex: 1 1 auto !important; width: 100% !important; }
    .gd-fp .gd-hero-stats > div { padding: 12px 16px !important; border-right: none !important; }
    .gd-fp .gd-cities-grid { grid-template-columns: 1fr !important; }
    .gd-fp .gd-cmp-row { grid-template-columns: 1.6fr 1fr 1fr 1fr !important; font-size: 12px; }
    .gd-fp .gd-cmp-row > div { padding: 10px 8px !important; font-size: 12px !important; }
    .gd-fp .gd-cmp-row > div:first-child { font-size: 12.5px !important; }
    .gd-fp .gd-foot-grid { grid-template-columns: 1fr !important; gap: 28px !important; }
    .gd-fp .gd-final-cta-row { flex-direction: column !important; }
    .gd-fp .gd-final-cta-row > * { width: 100% !important; justify-content: center; }
    .gd-fp .gd-promo-row { flex-direction: column !important; }
    .gd-fp .gd-trust-grid { grid-template-columns: 1fr !important; }
    .gd-fp .gd-categories-grid { grid-template-columns: repeat(2, 1fr) !important; }
    .gd-fp .gd-gyms-header { flex-direction: column !important; align-items: flex-start !important; }
}

@media (max-width: 480px) {
    .gd-fp .gd-categories-grid { grid-template-columns: 1fr 1fr !important; }
    .gd-fp .gd-cmp-row { grid-template-columns: 1.4fr 1fr 1fr 1fr !important; }
}
