/*!
 Theme Name:   Tampa Senior Living Child
 Theme URI:    https://tampaseniorlivingguide.com
 Description:  Child theme for Tampa Senior Living Guide - Premium GeoDirectory listing template
 Author:       Tampa Senior Living Guide
 Author URI:   https://tampaseniorlivingguide.com
 Template:     blocksy
 Version:      1.0.0
 License:      GNU General Public License v2 or later
 License URI:  https://www.gnu.org/licenses/gpl-2.0.html
 Text Domain:  tampa-senior-living-child
 Tags:         senior-living, directory, Tampa
*/

/* ============================================
   Tampa Senior Living Guide - Child Theme CSS
   ============================================ */

/* CSS Variables */
:root {
    --tampa-primary: #2c5282;
    --tampa-secondary: #3182ce;
    --tampa-accent: #ed8936;
    --tampa-light: #ebf4ff;
    --tampa-dark: #1a365d;
    --tampa-gray: #718096;
    --tampa-success: #38a169;
    --tampa-gradient: linear-gradient(135deg, #2c5282 0%, #3182ce 100%);
    --tampa-hero-gradient: linear-gradient(135deg, rgba(44, 82, 130, 0.9) 0%, rgba(49, 130, 206, 0.85) 100%);
    --border-radius: 12px;
    --border-radius-sm: 8px;
    --shadow-sm: 0 2px 4px rgba(0,0,0,0.08);
    --shadow-md: 0 4px 12px rgba(0,0,0,0.12);
    --shadow-lg: 0 8px 24px rgba(0,0,0,0.16);
}

/* Reset & Base */
.tampa-senior-listing {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
    line-height: 1.6;
    color: #2d3748;
    margin: 0;
    padding: 0;
}

.tampa-senior-listing *,
.tampa-senior-listing *::before,
.tampa-senior-listing *::after {
    box-sizing: border-box;
}

/* Hero Section */
.listing-hero {
    position: relative;
    min-height: 500px;
    display: flex;
    align-items: flex-end;
    background-size: cover;
    background-position: center;
    background-color: var(--tampa-primary);
}

.listing-hero.has-featured-image {
    min-height: 550px;
}

.listing-hero.fallback-gradient {
    background: var(--tampa-hero-gradient);
    min-height: 400px;
}

.listing-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.2) 50%, rgba(0,0,0,0.1) 100%);
}

.listing-hero-content {
    position: relative;
    z-index: 2;
    width: 100%;
    padding: 60px 40px;
    color: #fff;
}

.listing-hero-content h1 {
    font-size: clamp(2rem, 5vw, 3.5rem);
    font-weight: 700;
    margin: 0 0 16px 0;
    text-shadow: 0 2px 8px rgba(0,0,0,0.3);
    line-height: 1.2;
}

.listing-category-badge {
    display: inline-block;
    background: var(--tampa-accent);
    color: #fff;
    padding: 6px 16px;
    border-radius: 50px;
    font-size: 0.875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 16px;
}

.listing-hero-address,
.listing-hero-phone {
    font-size: 1.125rem;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.listing-hero-address svg,
.listing-hero-phone svg {
    flex-shrink: 0;
}

.listing-hero-phone a {
    color: #fff;
    text-decoration: none;
    transition: opacity 0.2s;
}

.listing-hero-phone a:hover {
    opacity: 0.85;
    text-decoration: underline;
}

.listing-hero-price {
    font-size: 1.25rem;
    font-weight: 600;
    color: #90cdf4;
    margin-bottom: 24px;
}

.listing-hero-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 24px;
}

.btn-primary,
.btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 28px;
    border-radius: var(--border-radius-sm);
    font-size: 1rem;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.2s ease;
    cursor: pointer;
    border: none;
}

.btn-primary {
    background: var(--tampa-accent);
    color: #fff;
}

.btn-primary:hover {
    background: #dd6b20;
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.btn-secondary {
    background: rgba(255,255,255,0.15);
    color: #fff;
    backdrop-filter: blur(4px);
    border: 2px solid rgba(255,255,255,0.3);
}

.btn-secondary:hover {
    background: rgba(255,255,255,0.25);
    border-color: rgba(255,255,255,0.5);
}

/* Quick Facts Bar */
.quick-facts-bar {
    background: #fff;
    border-bottom: 1px solid #e2e8f0;
    padding: 0;
    box-shadow: var(--shadow-sm);
}

.quick-facts-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    max-width: 1200px;
    margin: 0 auto;
}

.quick-fact-item {
    padding: 24px 20px;
    text-align: center;
    border-right: 1px solid #e2e8f0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.quick-fact-item:last-child {
    border-right: none;
}

.quick-fact-label {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--tampa-gray);
}

.quick-fact-value {
    font-size: 1rem;
    font-weight: 700;
    color: var(--tampa-dark);
}

.quick-fact-value a {
    color: var(--tampa-secondary);
    text-decoration: none;
}

.quick-fact-value a:hover {
    text-decoration: underline;
}

/* Main Content */
.tampa-listing-content {
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 20px;
}

/* Section Styling */
.listing-section {
    margin-bottom: 48px;
}

.listing-section-title {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--tampa-dark);
    margin: 0 0 24px 0;
    padding-bottom: 12px;
    border-bottom: 3px solid var(--tampa-accent);
    display: inline-block;
}

/* About Section */
.about-content {
    font-size: 1.0625rem;
    line-height: 1.8;
    color: #4a5568;
}

.about-content p {
    margin-bottom: 1.25em;
}

/* Care Types & Amenities */
.care-amenities-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 32px;
}

.care-types-list,
.amenities-list {
    background: var(--tampa-light);
    border-radius: var(--border-radius);
    padding: 24px;
}

.care-types-list h3,
.amenities-list h3 {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--tampa-dark);
    margin: 0 0 16px 0;
}

.care-types-list ul,
.amenities-list ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.care-types-list li,
.amenities-list li {
    padding: 8px 0;
    display: flex;
    align-items: center;
    gap: 10px;
    border-bottom: 1px solid #e2e8f0;
}

.care-types-list li:last-child,
.amenities-list li:last-child {
    border-bottom: none;
}

.care-types-list li::before {
    content: ✓;
    color: var(--tampa-success);
    font-weight: 700;
    font-size: 1.125rem;
}

.amenities-list li::before {
    content: ★;
    color: var(--tampa-accent);
    font-weight: 700;
}

/* Location Section */
.location-content {
    background: #f7fafc;
    border-radius: var(--border-radius);
    overflow: hidden;
}

.location-map {
    margin-bottom: 24px;
}

.location-address {
    padding: 20px 24px;
    background: #fff;
    border-top: 1px solid #e2e8f0;
}

.location-address h4 {
    font-size: 1rem;
    font-weight: 700;
    color: var(--tampa-dark);
    margin: 0 0 8px 0;
}

.location-address p {
    margin: 0;
    color: var(--tampa-gray);
}

/* Facility Details Table */
.facility-details-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    border-radius: var(--border-radius);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
}

.facility-details-table th,
.facility-details-table td {
    padding: 16px 20px;
    text-align: left;
    border-bottom: 1px solid #e2e8f0;
}

.facility-details-table th {
    background: var(--tampa-light);
    font-size: 0.875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--tampa-gray);
    width: 200px;
}

.facility-details-table td {
    font-size: 1rem;
    color: var(--tampa-dark);
}

.facility-details-table tr:last-child td,
.facility-details-table tr:last-child th {
    border-bottom: none;
}

/* FAQ Section */
.faq-section {
    background: var(--tampa-light);
    border-radius: var(--border-radius);
    padding: 32px;
}

.faq-list {
    margin: 0;
}

.faq-item {
    background: #fff;
    border-radius: var(--border-radius-sm);
    margin-bottom: 16px;
    overflow: hidden;
    box-shadow: var(--shadow-sm);
}

.faq-item:last-child {
    margin-bottom: 0;
}

.faq-item summary {
    padding: 20px 24px;
    font-weight: 600;
    font-size: 1.0625rem;
    color: var(--tampa-dark);
    cursor: pointer;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.faq-item summary::-webkit-details-marker {
    display: none;
}

.faq-item summary::after {
    content: +;
    font-size: 1.5rem;
    font-weight: 300;
    color: var(--tampa-secondary);
    transition: transform 0.2s;
}

.faq-item[open] summary::after {
    transform: rotate(45deg);
}

.faq-item details[open] summary {
    background: var(--tampa-light);
    border-bottom: 1px solid #e2e8f0;
}

.faq-answer {
    padding: 20px 24px;
    color: var(--tampa-gray);
    line-height: 1.7;
}

/* Related Communities */
.related-communities {
    margin-top: 64px;
    padding-top: 48px;
    border-top: 2px solid #e2e8f0;
}

.related-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 24px;
}

.related-card {
    background: #fff;
    border-radius: var(--border-radius);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: all 0.3s ease;
    text-decoration: none;
    color: inherit;
}

.related-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
}

.related-card-image {
    height: 180px;
    background-size: cover;
    background-position: center;
    background-color: var(--tampa-primary);
}

.related-card-content {
    padding: 20px;
}

.related-card-category {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--tampa-accent);
    margin-bottom: 8px;
}

.related-card-title {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--tampa-dark);
    margin: 0 0 8px 0;
}

.related-card-price {
    font-size: 0.9375rem;
    color: var(--tampa-gray);
    margin-bottom: 16px;
}

.related-card-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--tampa-secondary);
    font-weight: 600;
    font-size: 0.9375rem;
}

.related-card-link:hover {
    text-decoration: underline;
}

/* Contact CTA Section */
.contact-cta-section {
    background: var(--tampa-gradient);
    border-radius: var(--border-radius);
    padding: 48px 40px;
    text-align: center;
    color: #fff;
    margin-top: 48px;
}

.contact-cta-title {
    font-size: 2rem;
    font-weight: 700;
    margin: 0 0 16px 0;
}

.contact-cta-text {
    font-size: 1.125rem;
    opacity: 0.9;
    margin: 0 0 32px 0;
}

.contact-cta-buttons {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 16px;
}

.contact-cta-phone {
    font-size: 1.5rem;
    font-weight: 700;
    margin-top: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

/* Responsive Design */
@media (max-width: 768px) {
    .quick-facts-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .quick-fact-item:nth-child(2) {
        border-right: none;
    }
    
    .quick-fact-item {
        border-bottom: 1px solid #e2e8f0;
        padding: 20px 16px;
    }
    
    .listing-hero-content {
        padding: 40px 20px;
    }
    
    .listing-hero-buttons {
        flex-direction: column;
    }
    
    .btn-primary,
    .btn-secondary {
        width: 100%;
        justify-content: center;
    }
    
    .care-amenities-grid {
        grid-template-columns: 1fr;
    }
    
    .facility-details-table th,
    .facility-details-table td {
        display: block;
        width: 100%;
    }
    
    .facility-details-table th {
        border-bottom: none;
    }
    
    .contact-cta-section {
        padding: 32px 20px;
    }
    
    .contact-cta-title {
        font-size: 1.5rem;
    }
}

@media (max-width: 480px) {
    .quick-facts-grid {
        grid-template-columns: 1fr;
    }
    
    .quick-fact-item {
        border-right: none;
    }
    
    .tampa-listing-content {
        padding: 24px 16px;
    }
}

/* GeoDirectory Overrides */
.tampa-senior-listing .geodir-map-container {
    border-radius: var(--border-radius);
    overflow: hidden;
}

/* Schema.org FAQ compliance */
.faq-section schema-faq {
    display: none;
}

/* Fix double H1: hide Blocksy page-title on homepage only */
.home .hero-section .entry-header {
    display: none;
}

/* ── PREMIUM POLISH v2.0 — injected 2026-04-15 ── */

/* ============================================================
   TAMPA SENIOR LIVING GUIDE — PREMIUM POLISH v2.0
   Tasks: 1) Profile Pages  2) Neighborhood Grids
          3) Review Blockquotes  4) Nav/Header
   ============================================================ */

/* ────────────────────────────────────────────────────────────
   TASK 1 · FACILITY PROFILE PAGE POLISH
   ──────────────────────────────────────────────────────────── */

/* Elevate content section cards */
.listing-section {
    background: #fff;
    border-radius: var(--border-radius);
    padding: 32px 36px;
    margin-bottom: 28px;
    box-shadow: 0 2px 8px rgba(44, 82, 130, 0.07), 0 1px 3px rgba(0,0,0,0.05);
    border: 1px solid rgba(226, 232, 240, 0.8);
    transition: box-shadow 0.25s ease;
}

.listing-section:hover {
    box-shadow: 0 6px 20px rgba(44, 82, 130, 0.11), 0 2px 6px rgba(0,0,0,0.06);
}

/* Tighten section title spacing */
.listing-section-title {
    font-size: 1.5rem;
    letter-spacing: -0.01em;
    margin-bottom: 20px;
    padding-bottom: 10px;
}

/* Improve about-section body typography */
.about-content {
    font-size: 1.0625rem;
    line-height: 1.85;
    color: #3d4a5c;
}

.about-content p + p {
    margin-top: 1em;
}

/* Care / amenity card lift */
.care-types-list,
.amenities-list {
    background: linear-gradient(145deg, #f0f7ff 0%, #e8f0fe 100%);
    border: 1px solid #c3d9f7;
    transition: box-shadow 0.2s ease;
}

.care-types-list:hover,
.amenities-list:hover {
    box-shadow: 0 4px 16px rgba(44, 82, 130, 0.12);
}

/* ── Claim This Listing CTA — pulsing primary button ── */
.btn.btn-primary.btn-block,
a[href*="add-listing"],
a[href*="claim"] {
    display: block !important;
    background: linear-gradient(135deg, #ed8936 0%, #dd6b20 100%) !important;
    color: #fff !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    padding: 14px 20px !important;
    border-radius: 10px !important;
    text-align: center !important;
    text-decoration: none !important;
    border: none !important;
    box-shadow: 0 4px 14px rgba(237, 137, 54, 0.4) !important;
    animation: claimPulse 2.4s ease-in-out infinite !important;
    position: relative !important;
    overflow: hidden !important;
    letter-spacing: 0.3px !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease !important;
}

.btn.btn-primary.btn-block:hover,
a[href*="add-listing"]:hover,
a[href*="claim"]:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 24px rgba(237, 137, 54, 0.55) !important;
    animation-play-state: paused !important;
}

@keyframes claimPulse {
    0%   { box-shadow: 0 4px 14px rgba(237, 137, 54, 0.4); }
    50%  { box-shadow: 0 4px 22px rgba(237, 137, 54, 0.75), 0 0 0 6px rgba(237, 137, 54, 0.12); }
    100% { box-shadow: 0 4px 14px rgba(237, 137, 54, 0.4); }
}

/* Sidebar card elevation */
.geodir-sidebar,
.geodir-details-sidebar {
    background: #fff;
    border-radius: var(--border-radius);
    padding: 24px;
    box-shadow: 0 4px 16px rgba(44, 82, 130, 0.09);
    border: 1px solid #e2e8f0;
}

/* ────────────────────────────────────────────────────────────
   TASK 2 · NEIGHBORHOOD & HOMEPAGE GRID HOVER STATES
   ──────────────────────────────────────────────────────────── */

/* Card-lift + image zoom on wp-block-column facility thumbnails */
.wp-block-column {
    transition: transform 0.28s cubic-bezier(0.34, 1.56, 0.64, 1),
                box-shadow 0.28s ease;
    border-radius: 12px;
    overflow: hidden;
}

.wp-block-column:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 32px rgba(44, 82, 130, 0.16), 0 4px 10px rgba(0,0,0,0.08);
    z-index: 2;
}

/* Image zoom inside column blocks */
.wp-block-column img,
.wp-block-column .wp-block-image img {
    transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    will-change: transform;
    display: block;
    width: 100%;
}

.wp-block-column:hover img,
.wp-block-column:hover .wp-block-image img {
    transform: scale(1.045);
}

/* Wrap images in columns with overflow:hidden so zoom is clipped */
.wp-block-column .wp-block-image {
    overflow: hidden;
    border-radius: 10px 10px 0 0;
    margin: 0;
}

/* Community card text area polish */
.wp-block-column .wp-block-group,
.wp-block-column > .wp-block-group__inner-container {
    padding: 16px 18px;
}

/* Neighborhood page: GeoDirectory listing cards */
.geodir-post-item,
.geodir-loop-action,
.gd-loop-post {
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    border-radius: 12px;
    overflow: hidden;
}

.geodir-post-item:hover,
.gd-loop-post:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 28px rgba(44, 82, 130, 0.14);
}

.geodir-post-item img,
.gd-loop-post img {
    transition: transform 0.45s ease;
}

.geodir-post-item:hover img,
.gd-loop-post:hover img {
    transform: scale(1.04);
}

/* ────────────────────────────────────────────────────────────
   TASK 3 · PREMIUM REVIEW / BLOCKQUOTE STYLING
   ──────────────────────────────────────────────────────────── */

/* Single listing blockquotes → premium testimonial cards */
.tampa-senior-listing blockquote,
.single-gd_place .entry-content blockquote,
.about-content blockquote,
.listing-section blockquote {
    position: relative;
    background: linear-gradient(135deg, #f8faff 0%, #eef4fb 100%);
    border: none !important;
    border-left: 5px solid var(--tampa-accent) !important;
    border-radius: 0 12px 12px 0;
    padding: 28px 32px 24px 40px !important;
    margin: 28px 0 !important;
    font-style: italic;
    font-size: 1.0625rem;
    line-height: 1.8;
    color: #3d4a5c;
    box-shadow: 0 3px 12px rgba(44, 82, 130, 0.08);
}

/* Opening quotation mark */
.tampa-senior-listing blockquote::before,
.single-gd_place .entry-content blockquote::before,
.about-content blockquote::before,
.listing-section blockquote::before {
    content: '\201C';
    position: absolute;
    top: -8px;
    left: 12px;
    font-size: 4rem;
    line-height: 1;
    color: var(--tampa-accent);
    opacity: 0.35;
    font-family: Georgia, serif;
    font-style: normal;
}

/* Attribution / cite line */
.tampa-senior-listing blockquote cite,
.single-gd_place .entry-content blockquote cite,
.listing-section blockquote cite {
    display: block;
    margin-top: 16px;
    font-size: 0.875rem;
    font-style: normal;
    font-weight: 700;
    color: var(--tampa-secondary);
    letter-spacing: 0.3px;
}

.tampa-senior-listing blockquote cite::before,
.single-gd_place .entry-content blockquote cite::before,
.listing-section blockquote cite::before {
    content: '— ';
}

/* Star rating row for reviews */
.resident-review,
.review-block {
    background: #fff;
    border-radius: 12px;
    padding: 24px 28px;
    margin-bottom: 18px;
    border: 1px solid #e2e8f0;
    box-shadow: 0 2px 8px rgba(44, 82, 130, 0.06);
    transition: box-shadow 0.2s ease;
}

.resident-review:hover,
.review-block:hover {
    box-shadow: 0 6px 20px rgba(44, 82, 130, 0.11);
}

/* ────────────────────────────────────────────────────────────
   TASK 4 · NAVIGATION MENU & HEADER — SAAS-STYLE POLISH
   ──────────────────────────────────────────────────────────── */

/* Header wrapper — frosted glass / clean white strip */
#header,
.header-wrapper,
.ct-header,
[data-id="header"],
.site-header {
    background: rgba(255, 255, 255, 0.97) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    border-bottom: 1px solid rgba(44, 82, 130, 0.1) !important;
    box-shadow: 0 2px 16px rgba(44, 82, 130, 0.06) !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 1000 !important;
    transition: box-shadow 0.3s ease !important;
}

/* Nav link styling */
.ct-main-header nav a,
#header nav a,
.header-wrapper nav a,
.nav-links a,
.menu-item a {
    font-size: 0.9375rem !important;
    font-weight: 600 !important;
    color: #2d3748 !important;
    text-decoration: none !important;
    padding: 8px 14px !important;
    border-radius: 6px !important;
    letter-spacing: 0.15px !important;
    transition: color 0.2s ease, background 0.2s ease !important;
}

.ct-main-header nav a:hover,
#header nav a:hover,
.header-wrapper nav a:hover,
.nav-links a:hover,
.menu-item a:hover {
    color: var(--tampa-secondary) !important;
    background: rgba(49, 130, 206, 0.07) !important;
}

/* Active/current menu item */
.menu-item.current-menu-item > a,
.menu-item.current_page_item > a {
    color: var(--tampa-secondary) !important;
    background: rgba(49, 130, 206, 0.1) !important;
}

/* Nav CTA button — "Add Listing" or primary action */
.menu-item.menu-cta a,
.menu-item:last-child a,
.header-cta a {
    background: var(--tampa-accent) !important;
    color: #fff !important;
    border-radius: 8px !important;
    padding: 9px 20px !important;
    font-weight: 700 !important;
    box-shadow: 0 2px 8px rgba(237, 137, 54, 0.3) !important;
    transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease !important;
}

.menu-item.menu-cta a:hover,
.menu-item:last-child a:hover,
.header-cta a:hover {
    background: #dd6b20 !important;
    box-shadow: 0 4px 14px rgba(237, 137, 54, 0.45) !important;
    transform: translateY(-1px) !important;
}

/* Logo spacing */
.site-title a,
.ct-logo,
.header-branding {
    font-size: 1.25rem !important;
    font-weight: 800 !important;
    color: var(--tampa-dark) !important;
    letter-spacing: -0.3px !important;
}

/* Mobile hamburger menu */
@media (max-width: 768px) {
    #header,
    .ct-header,
    .site-header {
        padding: 0 16px !important;
    }

    .ct-main-header nav,
    .header-wrapper nav {
        background: #fff !important;
        border-top: 1px solid #e2e8f0 !important;
        box-shadow: 0 8px 24px rgba(0,0,0,0.1) !important;
        border-radius: 0 0 12px 12px !important;
    }

    .ct-main-header nav a,
    .header-wrapper nav a,
    .menu-item a {
        padding: 12px 20px !important;
        border-bottom: 1px solid #f0f4f8 !important;
        border-radius: 0 !important;
        display: block !important;
    }

    .menu-item:last-child a {
        margin: 8px 16px 16px !important;
        border-radius: 8px !important;
        text-align: center !important;
        border-bottom: none !important;
    }
}

/* Scroll-shadow boost when page is scrolled (JS-free fallback via sticky) */
#header.scrolled,
.ct-header.scrolled {
    box-shadow: 0 4px 24px rgba(44, 82, 130, 0.12) !important;
}

/* ────────────────────────────────────────────────────────────
   GLOBAL MICRO-POLISH
   ──────────────────────────────────────────────────────────── */

/* Smoother focus rings for accessibility */
a:focus-visible,
button:focus-visible {
    outline: 3px solid var(--tampa-accent);
    outline-offset: 3px;
    border-radius: 4px;
}

/* GeoDirectory star ratings */
.geodir-rating-stars span,
.geodir_post_meta .gd-star-rating {
    color: #f6ad55 !important;
    font-size: 1rem;
}

/* Subtle page entry animation */
.tampa-listing-content {
    animation: pageSlideIn 0.45s ease both;
}

@keyframes pageSlideIn {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
}


/* ── FIXES v3.0 — injected 2026-04-15 ── */

/* ============================================================
   TARGETED FIXES v3.0
   1) Blocksy duplicate post header on facility pages
   2) ADD LISTING nav button
   3) GeoDirectory archive grid
   4) entry-content wrapper constraints
   ============================================================ */

/* ── FIX 1: Hide Blocksy's duplicate post header on gd_place single pages ── */
.single-gd_place .hero-section.is-width-constrained {
    display: none !important;
}

/* Remove WP's constrained layout wrapper restrictions so custom template is full-width */
.single-gd_place .entry-content.is-layout-constrained {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Remove extra spacing Blocksy adds around the content area */
.single-gd_place .ct-container,
.single-gd_place #main-container > .ct-container {
    max-width: 100% !important;
    padding: 0 !important;
}

/* Ensure the main content area fills width */
.single-gd_place article.type-gd_place {
    max-width: 100% !important;
    padding: 0 !important;
}

/* ── FIX 2: ADD LISTING nav button — target by ID, pill style ── */
#menu-item-57 {
    background: none !important;
    padding: 0 !important;
}

#menu-item-57 > a.ct-menu-link {
    background: var(--tampa-accent, #ed8936) !important;
    color: #fff !important;
    padding: 9px 20px !important;
    border-radius: 8px !important;
    font-weight: 700 !important;
    font-size: 0.9rem !important;
    box-shadow: 0 2px 8px rgba(237,137,54,0.35) !important;
    transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease !important;
    text-transform: none !important;
    letter-spacing: 0.2px !important;
    display: inline-block !important;
    line-height: 1.4 !important;
}

#menu-item-57 > a.ct-menu-link:hover {
    background: #dd6b20 !important;
    box-shadow: 0 4px 14px rgba(237,137,54,0.5) !important;
    transform: translateY(-1px) !important;
    color: #fff !important;
}

/* Remove any leftover last-child nav styling that was too broad */
.menu-item:last-child > a.ct-menu-link {
    background: none !important;
    box-shadow: none !important;
    transform: none !important;
    padding: 8px 14px !important;
    color: #2d3748 !important;
    font-weight: 600 !important;
    border-radius: 6px !important;
}

/* ── FIX 3: GeoDirectory archive listing cards — 3-column responsive grid ── */

/* Wrap the GD listing loop in a grid */
.geodir-loop-container,
.geodir-post-items,
.bsui .geodir-post-items,
ul.geodir-posts {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 24px !important;
    padding: 0 !important;
    list-style: none !important;
}

/* Individual card */
.geodir-loop-container .geodir-post-item,
.geodir-post-items .geodir-post-item,
ul.geodir-posts > li {
    width: 100% !important;
    margin: 0 !important;
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(44,82,130,0.08);
    border: 1px solid #e2e8f0;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    display: flex !important;
    flex-direction: column !important;
}

.geodir-loop-container .geodir-post-item:hover,
.geodir-post-items .geodir-post-item:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 10px 28px rgba(44,82,130,0.14) !important;
}

/* Card image */
.geodir-post-item .geodir-post-thumbnail-wrap,
.geodir-post-item .geodir-image-container,
.geodir-post-item .gd-thumb {
    width: 100% !important;
    height: 200px !important;
    overflow: hidden !important;
    border-radius: 12px 12px 0 0 !important;
    flex-shrink: 0 !important;
}

.geodir-post-item .geodir-post-thumbnail-wrap img,
.geodir-post-item .gd-thumb img,
.geodir-post-item img.geodir-post-thumbnail {
    width: 100% !important;
    height: 200px !important;
    object-fit: cover !important;
    transition: transform 0.4s ease !important;
    display: block !important;
}

.geodir-post-item:hover img.geodir-post-thumbnail,
.geodir-post-item:hover .geodir-post-thumbnail-wrap img {
    transform: scale(1.05) !important;
}

/* Card body */
.geodir-post-item .geodir-post-info,
.geodir-post-item .geodir-content,
.geodir-post-item .gd-listing-info {
    padding: 16px 18px !important;
    flex: 1 !important;
}

/* Card title */
.geodir-post-item .geodir-post-title,
.geodir-post-item h3.geodir-post-title,
.geodir-post-item .gd-title {
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    color: var(--tampa-dark, #1a365d) !important;
    margin: 0 0 8px 0 !important;
    line-height: 1.3 !important;
}

.geodir-post-item .geodir-post-title a,
.geodir-post-item .gd-title a {
    color: inherit !important;
    text-decoration: none !important;
}

.geodir-post-item .geodir-post-title a:hover,
.geodir-post-item .gd-title a:hover {
    color: var(--tampa-secondary, #3182ce) !important;
}

/* Card address/meta */
.geodir-post-item .geodir-post-address,
.geodir-post-item .gd-address {
    font-size: 0.85rem !important;
    color: var(--tampa-gray, #718096) !important;
    margin-bottom: 6px !important;
}

/* Responsive grid */
@media (max-width: 900px) {
    .geodir-loop-container,
    .geodir-post-items,
    ul.geodir-posts {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 600px) {
    .geodir-loop-container,
    .geodir-post-items,
    ul.geodir-posts {
        grid-template-columns: 1fr !important;
    }
}


/* ── v4.0 Grid + Nav ── */

/* ============================================================
   FIXES v4.0 — GD Grid + Nav Button + Card Polish
   ============================================================ */

/* ── GD Listing Grid: force 3 columns on desktop ── */
.row.geodir-listing-posts.geodir-gridview,
.row.geodir-category-list-view {
    --bs-columns: 3 !important;
    row-cols: 3 !important;
}

/* Override Bootstrap row-cols-md-2 with 3 cols on large screens */
@media (min-width: 992px) {
    .row.geodir-listing-posts > .col,
    .row.geodir-category-list-view > .col {
        flex: 0 0 auto !important;
        width: 33.3333% !important;
    }
}

@media (min-width: 576px) and (max-width: 991px) {
    .row.geodir-listing-posts > .col,
    .row.geodir-category-list-view > .col {
        flex: 0 0 auto !important;
        width: 50% !important;
    }
}

@media (max-width: 575px) {
    .row.geodir-listing-posts > .col,
    .row.geodir-category-list-view > .col {
        flex: 0 0 auto !important;
        width: 100% !important;
    }
}

/* ── GD Card polish ── */
.geodir-post .card {
    border: 1px solid #e2e8f0 !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    box-shadow: 0 2px 8px rgba(44,82,130,0.07) !important;
    transition: transform 0.25s ease, box-shadow 0.25s ease !important;
    height: 100% !important;
}

.geodir-post .card:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 10px 28px rgba(44,82,130,0.14) !important;
}

/* Card image container */
.geodir-post .card .overflow-hidden.d-block {
    height: 200px !important;
    overflow: hidden !important;
}

.geodir-post .card .overflow-hidden.d-block img {
    width: 100% !important;
    height: 200px !important;
    object-fit: cover !important;
    transition: transform 0.4s ease !important;
}

.geodir-post .card:hover .overflow-hidden.d-block img {
    transform: scale(1.05) !important;
}

/* Hide author avatar (irrelevant for directory) */
.geodir-post .card .gv-hide-3 {
    display: none !important;
}

/* Card title */
.geodir-post .geodir-entry-title a {
    color: #1a365d !important;
    font-weight: 700 !important;
    font-size: 1.05rem !important;
    text-decoration: none !important;
}

.geodir-post .geodir-entry-title a:hover {
    color: #3182ce !important;
}

/* Card body padding */
.geodir-post .card-body {
    padding: 14px 16px 8px !important;
}

.geodir-post .card-footer {
    background: #f8fafc !important;
    border-top: 1px solid #e2e8f0 !important;
    padding: 10px 16px !important;
}

/* Truncate description */
.geodir-post .geodir-post-content-container {
    font-size: 0.875rem !important;
    color: #718096 !important;
    line-height: 1.5 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 3 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
}

/* ── Nav ADD LISTING button — high-specificity fix ── */
#header #menu-item-57 > a,
.ct-header #menu-item-57 > a,
nav #menu-item-57 > a.ct-menu-link {
    background: #ed8936 !important;
    color: #fff !important;
    padding: 8px 18px !important;
    border-radius: 8px !important;
    font-weight: 700 !important;
    font-size: 0.9rem !important;
    box-shadow: 0 2px 8px rgba(237,137,54,0.3) !important;
    transition: all 0.2s ease !important;
    display: inline-block !important;
}

#header #menu-item-57 > a:hover,
.ct-header #menu-item-57 > a:hover,
nav #menu-item-57 > a.ct-menu-link:hover {
    background: #dd6b20 !important;
    color: #fff !important;
    box-shadow: 0 4px 14px rgba(237,137,54,0.5) !important;
    transform: translateY(-1px) !important;
}


/* ── v5.0: Homepage facility card grid polish ── */
.tampa-facility-card {
    background: #fff;
    border-radius: 12px !important;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(44,82,130,0.08) !important;
    border: 1px solid #e2e8f0 !important;
    transition: transform 0.25s cubic-bezier(0.34,1.56,0.64,1), box-shadow 0.25s ease !important;
    display: flex !important;
    flex-direction: column !important;
    padding: 0 !important;
}

.tampa-facility-card:hover {
    transform: translateY(-6px) !important;
    box-shadow: 0 12px 32px rgba(44,82,130,0.16) !important;
}

.tampa-facility-card img {
    border-radius: 0 !important;
    margin-bottom: 0 !important;
    height: 190px !important;
    object-fit: cover !important;
    width: 100% !important;
    display: block !important;
    transition: transform 0.4s ease !important;
}

.tampa-facility-card:hover img {
    transform: scale(1.05) !important;
}

.tampa-facility-card h3 {
    padding: 14px 16px 4px !important;
    margin: 0 !important;
}

.tampa-facility-card h3 a {
    color: #1a365d !important;
    text-decoration: none !important;
    font-weight: 700 !important;
}

.tampa-facility-card h3 a:hover {
    color: #3182ce !important;
}

.tampa-facility-card p {
    padding: 0 16px 14px !important;
    margin: 0 !important;
    color: #718096 !important;
    font-size: 0.875rem !important;
}


/* ── v6.0: Nav CTA pill via PHP class ── */
li.menu-cta > a.ct-menu-link,
li.menu-cta > a {
    background: #ed8936 !important;
    color: #fff !important;
    padding: 8px 20px !important;
    border-radius: 8px !important;
    font-weight: 700 !important;
    box-shadow: 0 2px 10px rgba(237,137,54,0.35) !important;
    transition: background 0.2s ease, transform 0.15s ease !important;
}
li.menu-cta > a.ct-menu-link:hover,
li.menu-cta > a:hover {
    background: #dd6b20 !important;
    transform: translateY(-1px) !important;
}

/* ── v7.0: Claim Listing CTA Banner ── */
.claim-listing-banner {
    background: linear-gradient(135deg, #1a365d 0%, #2a4a7f 100%);
    border-left: 4px solid #ed8936;
    border-radius: 10px;
    padding: 20px 28px;
    margin: 32px 0 8px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
}
.claim-listing-banner p {
    color: #e2e8f0 !important;
    margin: 0 !important;
    font-size: 0.95rem !important;
    line-height: 1.5 !important;
}
.claim-listing-banner strong {
    color: #fff !important;
    display: block;
    font-size: 1rem;
    margin-bottom: 4px;
}
.claim-listing-banner a.claim-btn {
    background: #ed8936;
    color: #fff !important;
    padding: 10px 22px;
    border-radius: 8px;
    font-weight: 700;
    font-size: 0.9rem;
    text-decoration: none !important;
    white-space: nowrap;
    box-shadow: 0 2px 8px rgba(237,137,54,0.4);
    transition: background 0.2s ease;
    flex-shrink: 0;
}
.claim-listing-banner a.claim-btn:hover {
    background: #dd6b20;
}

/* ══════════════════════════════════════════════════════
   v8.0 — Facility Profile Page: Full Layout Polish
   ══════════════════════════════════════════════════════ */

/* ── Two-column layout wrapper ── */
.listing-content-wrapper {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 40px;
    max-width: 1200px;
    margin: 48px auto 0;
    padding: 0 24px;
    align-items: start;
}

/* ── Main content area ── */
.listing-main-content {
    min-width: 0;
}

.listing-post-content {
    background: #fff;
    border-radius: 12px;
    padding: 32px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.07);
    margin-bottom: 32px;
    line-height: 1.8;
    color: #374151;
    font-size: 1.0625rem;
}

.listing-post-content p:last-child {
    margin-bottom: 0;
}

/* ── Section titles ── */
.listing-section-title {
    font-size: 1.375rem !important;
    font-weight: 700 !important;
    color: #1a365d !important;
    margin: 0 0 20px !important;
    padding-bottom: 12px !important;
    border-bottom: 2px solid #e2e8f0 !important;
}

/* ── Reviews ── */
.listing-reviews {
    background: #fff;
    border-radius: 12px;
    padding: 32px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.07);
    margin-bottom: 32px;
}

.review-item {
    background: #f8fafc !important;
    border-left: 4px solid #ed8936 !important;
    border-radius: 0 8px 8px 0 !important;
    padding: 20px 24px !important;
    margin: 0 0 20px !important;
    font-style: italic;
    color: #4a5568 !important;
    line-height: 1.7 !important;
}

.review-item:last-child {
    margin-bottom: 0 !important;
}

.review-item p {
    margin: 0 0 10px !important;
    font-size: 1rem !important;
}

.review-item cite {
    font-style: normal;
    font-weight: 600;
    color: #1a365d !important;
    font-size: 0.9rem !important;
}

/* ── Related communities ── */
.listing-related {
    background: #fff;
    border-radius: 12px;
    padding: 32px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.07);
    margin-bottom: 32px;
}

.related-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px;
}

.related-card {
    display: block !important;
    border-radius: 10px !important;
    overflow: hidden !important;
    border: 1px solid #e2e8f0 !important;
    text-decoration: none !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease !important;
    background: #f8fafc !important;
}

.related-card:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 8px 24px rgba(0,0,0,0.12) !important;
}

.related-card-img {
    width: 100%;
    height: 140px;
    object-fit: cover;
    display: block;
}

.related-card-info {
    padding: 14px 16px;
}

.related-card-info h4 {
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    color: #1a365d !important;
    margin: 0 0 6px !important;
    line-height: 1.3 !important;
}

.related-card-price {
    font-size: 0.825rem !important;
    color: #718096 !important;
    margin: 0 !important;
}

/* ── Sidebar ── */
.listing-sidebar {
    position: sticky;
    top: 100px;
}

.sidebar-card {
    background: #fff;
    border-radius: 12px;
    padding: 28px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.09);
    border: 1px solid #e2e8f0;
    margin-bottom: 24px;
}

.sidebar-card-title {
    font-size: 1.125rem !important;
    font-weight: 700 !important;
    color: #1a365d !important;
    margin: 0 0 20px !important;
    padding-bottom: 14px !important;
    border-bottom: 2px solid #ed8936 !important;
}

/* ── Detail rows in sidebar ── */
.facility-details-table {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.detail-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid #f1f5f9;
}

.detail-row:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.detail-label {
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: #718096;
    flex-shrink: 0;
    padding-top: 2px;
}

.detail-value {
    font-size: 0.95rem;
    font-weight: 500;
    color: #1a365d;
    text-align: right;
    word-break: break-word;
}

.detail-value a {
    color: #ed8936 !important;
    text-decoration: none !important;
    font-weight: 600;
}

.detail-value a:hover {
    text-decoration: underline !important;
}

/* ── Location section ── */
.location-section {
    max-width: 1200px;
    margin: 0 auto 60px;
    padding: 0 24px;
}

.location-section .listing-section-title {
    margin-bottom: 20px !important;
}

.location-map {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,0.1);
    margin-bottom: 16px;
}

.location-map iframe,
.location-map > div {
    display: block;
    border-radius: 12px;
}

.location-address {
    color: #718096;
    font-size: 0.95rem;
}

.location-address p {
    margin: 0;
}

/* ── Hero: constrain to page width ── */
.listing-hero {
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
}

/* ── Responsive: stack on tablet/mobile ── */
@media (max-width: 1024px) {
    .listing-content-wrapper {
        grid-template-columns: 1fr;
        gap: 28px;
    }
    .listing-sidebar {
        position: static;
    }
}

@media (max-width: 640px) {
    .listing-content-wrapper {
        padding: 0 16px;
        margin-top: 32px;
    }
    .listing-post-content,
    .listing-reviews,
    .listing-related,
    .sidebar-card {
        padding: 20px;
    }
    .listing-hero-content {
        padding: 40px 20px !important;
    }
    .related-grid {
        grid-template-columns: 1fr;
    }
    .location-section {
        padding: 0 16px;
    }
}

/* ══════════════════════════════════════════════════════
   v9.0 — Hero image overlay fix + Nav button fix
   ══════════════════════════════════════════════════════ */

/* ── Fix: hero-img-tag must be absolute so text overlays it ── */
.listing-hero {
    position: relative !important;
    overflow: hidden !important;
    min-height: 480px !important;
    display: flex !important;
    align-items: flex-end !important;
}

.hero-img-tag {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    z-index: 0 !important;
    display: block !important;
}

.listing-hero-overlay {
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(to top, rgba(0,0,0,0.82) 0%, rgba(0,0,0,0.35) 55%, rgba(0,0,0,0.1) 100%) !important;
    z-index: 1 !important;
}

.listing-hero-content {
    position: relative !important;
    z-index: 2 !important;
    width: 100% !important;
    padding: 60px 48px 48px !important;
    color: #fff !important;
    max-width: 900px !important;
}

.listing-hero-content h1,
.listing-title {
    font-size: clamp(1.75rem, 4vw, 3rem) !important;
    font-weight: 800 !important;
    margin: 12px 0 10px !important;
    line-height: 1.15 !important;
    text-shadow: 0 2px 12px rgba(0,0,0,0.5) !important;
    color: #fff !important;
}

.listing-category-badge {
    display: inline-block !important;
    background: #ed8936 !important;
    color: #fff !important;
    padding: 5px 14px !important;
    border-radius: 50px !important;
    font-size: 0.8rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.8px !important;
    margin-bottom: 10px !important;
    text-decoration: none !important;
}

.listing-hero-address {
    font-size: 1rem !important;
    color: rgba(255,255,255,0.88) !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
}

/* ── Fix: ADD LISTING nav button — constrain size ── */
li.menu-cta {
    display: flex !important;
    align-items: center !important;
}

li.menu-cta > a.ct-menu-link,
li.menu-cta > a {
    background: #ed8936 !important;
    color: #fff !important;
    padding: 9px 20px !important;
    border-radius: 8px !important;
    font-weight: 700 !important;
    font-size: 0.9rem !important;
    box-shadow: 0 2px 8px rgba(237,137,54,0.35) !important;
    transition: background 0.2s ease !important;
    line-height: 1.2 !important;
    display: inline-block !important;
    width: auto !important;
    height: auto !important;
    min-height: unset !important;
}

/* ── Hero no-image fallback ── */
.listing-hero:not(.has-featured-image) {
    background: linear-gradient(135deg, #1a365d 0%, #2c5282 100%) !important;
    min-height: 320px !important;
}
