/* ============================================
   WDT ELEMENTOR WIDGETS - MASTER STYLESHEET
   Brand: We Do Tennis
   Colors: Navy #384862, Dark Navy #20344A, 
           Coral #EF563F, Dark Coral #C13923
   Fonts: Oswald (headings), Montserrat (body)
   ============================================ */

/* ---------- RESET ---------- */
[class^="wdt-w-"] *, [class^="wdt-w-"] *::before, [class^="wdt-w-"] *::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

[class^="wdt-w-"] {
    font-family: 'Montserrat', sans-serif;
    color: #333;
    line-height: 1.6;
}

/* ---------- SHARED SECTION TITLE ---------- */
.wdt-w-section-title {
    font-family: 'Oswald', sans-serif;
    font-size: 2rem;
    font-weight: 700;
    color: #384862;
    text-transform: uppercase;
    text-align: center;
    margin-bottom: 40px;
    position: relative;
}

.wdt-w-section-title::after {
    content: '';
    display: block;
    width: 60px;
    height: 4px;
    background: #EF563F;
    margin: 15px auto 0;
    border-radius: 2px;
}

.wdt-w-section-title.white {
    color: #ffffff;
}

.wdt-w-section-title.white::after {
    background: #ffffff;
}

.wdt-w-section-title.left {
    text-align: left;
}

.wdt-w-section-title.left::after {
    margin-left: 0;
}

/* ---------- SHARED BUTTON STYLES ---------- */
.wdt-w-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 36px;
    border-radius: 8px;
    font-family: 'Montserrat', sans-serif;
    font-weight: 600;
    font-size: 0.95rem;
    text-decoration: none;
    transition: all 0.3s ease;
    cursor: pointer;
    border: none;
    letter-spacing: 0.5px;
}

.wdt-w-btn-coral {
    background: linear-gradient(135deg, #EF563F 0%, #C13923 100%);
    color: #ffffff;
}

.wdt-w-btn-coral:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(239, 86, 63, 0.3);
    color: #ffffff;
}

.wdt-w-btn-navy {
    background: linear-gradient(135deg, #384862 0%, #20344A 100%);
    color: #ffffff;
}

.wdt-w-btn-navy:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(56, 72, 98, 0.3);
    color: #ffffff;
}

.wdt-w-btn-white {
    background: #ffffff;
    color: #EF563F;
    font-weight: 700;
}

.wdt-w-btn-white:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.2);
}

.wdt-w-btn-whatsapp {
    background: #25D366;
    color: #ffffff;
}

.wdt-w-btn-whatsapp:hover {
    background: #128C7E;
    transform: translateY(-2px);
    color: #ffffff;
}


/* ============================================
   1. HERO BANNER WIDGET
   ============================================ */

.wdt-w-hero {
    position: relative;
    min-height: 500px;
    overflow: hidden;
    display: flex;
    align-items: center;
}

.wdt-w-hero-bg {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background-size: cover;
    background-position: center;
}

.wdt-w-hero-video {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    z-index: 1;
}

.wdt-w-hero-overlay {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    z-index: 2;
}

.wdt-w-hero-overlay.navy {
    background: linear-gradient(135deg, rgba(56, 72, 98, 0.85) 0%, rgba(32, 52, 74, 0.9) 100%);
}

.wdt-w-hero-overlay.coral {
    background: linear-gradient(135deg, rgba(239, 86, 63, 0.85) 0%, rgba(193, 57, 35, 0.9) 100%);
}

.wdt-w-hero-content {
    position: relative;
    z-index: 3;
    max-width: 1200px;
    margin: 0 auto;
    padding: 80px 40px;
    width: 100%;
    text-align: center;
}

.wdt-w-hero-badge {
    display: inline-block;
    background: #EF563F;
    color: white;
    padding: 6px 16px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 15px;
}

.wdt-w-hero h1 {
    font-family: 'Oswald', sans-serif;
    font-size: 3rem;
    font-weight: 700;
    color: #ffffff;
    text-transform: uppercase;
    line-height: 1.1;
    margin-bottom: 18px;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.wdt-w-hero-subtitle {
    font-family: 'Montserrat', sans-serif;
    font-size: 1rem;
    color: rgba(255, 255, 255, 0.9);
    line-height: 1.7;
    margin-bottom: 30px;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

@media (max-width: 768px) {
    .wdt-w-hero { min-height: 400px; }
    .wdt-w-hero-content { padding: 60px 20px; }
    .wdt-w-hero h1 { font-size: 2rem; }
    .wdt-w-hero-subtitle { font-size: 0.9rem; }
}


/* ============================================
   2. STATS BAR WIDGET
   ============================================ */

.wdt-w-stats {
    background: linear-gradient(135deg, #EF563F 0%, #C13923 100%);
    padding: 0;
}

.wdt-w-stats-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    text-align: center;
}

.wdt-w-stat {
    padding: 35px 20px;
    border-right: 1px solid rgba(255,255,255,0.2);
}

.wdt-w-stat:last-child {
    border-right: none;
}

.wdt-w-stat-number {
    font-family: 'Oswald', sans-serif;
    font-size: 2.5rem;
    font-weight: 700;
    color: #ffffff;
    line-height: 1;
    margin-bottom: 5px;
}

.wdt-w-stat-label {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.85rem;
    font-weight: 500;
    color: rgba(255,255,255,0.9);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

@media (max-width: 768px) {
    .wdt-w-stats-inner { grid-template-columns: repeat(2, 1fr); }
    .wdt-w-stat { border-bottom: 1px solid rgba(255,255,255,0.2); padding: 25px 15px; }
    .wdt-w-stat:nth-child(2) { border-right: none; }
    .wdt-w-stat:nth-child(3), .wdt-w-stat:nth-child(4) { border-bottom: none; }
    .wdt-w-stat-number { font-size: 2rem; }
}

@media (max-width: 500px) {
    .wdt-w-stats-inner { grid-template-columns: 1fr 1fr; }
}


/* ============================================
   3. SERVICE CARDS WIDGET
   ============================================ */

.wdt-w-services {
    padding: 70px 20px;
    background: #f8f9fa;
}

.wdt-w-services-grid {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
}

.wdt-w-service-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 35px 30px;
    text-align: center;
    box-shadow: 0 10px 40px rgba(56, 72, 98, 0.1);
    transition: all 0.3s ease;
    border: 2px solid transparent;
    position: relative;
    overflow: hidden;
}

.wdt-w-service-card:hover {
    transform: translateY(-5px);
    border-color: #EF563F;
    box-shadow: 0 15px 50px rgba(56, 72, 98, 0.15);
}

.wdt-w-service-card-number {
    position: absolute;
    top: 15px;
    right: 20px;
    font-family: 'Oswald', sans-serif;
    font-size: 3rem;
    font-weight: 700;
    color: rgba(56, 72, 98, 0.08);
    line-height: 1;
}

.wdt-w-service-card-icon {
    width: 70px;
    height: 70px;
    background: linear-gradient(135deg, #384862 0%, #20344A 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px;
}

.wdt-w-service-card-icon svg {
    width: 30px;
    height: 30px;
    stroke: white;
    fill: none;
    stroke-width: 2;
}

.wdt-w-service-card-icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}

.wdt-w-service-card h3 {
    font-family: 'Oswald', sans-serif;
    font-size: 1.3rem;
    font-weight: 600;
    color: #384862;
    text-transform: uppercase;
    margin-bottom: 12px;
}

.wdt-w-service-card p {
    font-size: 0.9rem;
    color: #555;
    line-height: 1.7;
    margin-bottom: 20px;
}

.wdt-w-service-card a {
    color: #EF563F;
    font-weight: 600;
    font-size: 0.9rem;
    text-decoration: none;
    transition: color 0.3s;
}

.wdt-w-service-card a:hover {
    color: #C13923;
}

@media (max-width: 1000px) {
    .wdt-w-services-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
    .wdt-w-services-grid { grid-template-columns: 1fr; }
    .wdt-w-services { padding: 50px 15px; }
}


/* ============================================
   4. TABBED CONTENT WIDGET
   ============================================ */

.wdt-w-tabs {
    padding: 70px 20px;
    background: #ffffff;
}

.wdt-w-tabs-inner {
    max-width: 1200px;
    margin: 0 auto;
}

.wdt-w-tab-bar {
    display: flex;
    background: linear-gradient(135deg, #384862 0%, #20344A 100%);
    border-radius: 12px 12px 0 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.wdt-w-tab-btn {
    flex: 1;
    padding: 18px 20px;
    background: none;
    border: none;
    color: rgba(255,255,255,0.7);
    font-family: 'Oswald', sans-serif;
    font-size: 0.95rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    cursor: pointer;
    transition: all 0.3s ease;
    white-space: nowrap;
    position: relative;
}

.wdt-w-tab-btn:hover {
    color: #ffffff;
    background: rgba(255,255,255,0.1);
}

.wdt-w-tab-btn.active {
    color: #ffffff;
    background: rgba(255,255,255,0.15);
}

.wdt-w-tab-btn.active::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 40px;
    height: 3px;
    background: #EF563F;
    border-radius: 2px;
}

.wdt-w-tab-panel {
    display: none;
    background: #ffffff;
    border: 1px solid #e0e0e0;
    border-top: none;
    border-radius: 0 0 12px 12px;
    padding: 35px;
}

.wdt-w-tab-panel.active {
    display: block;
}

.wdt-w-tab-panel h3 {
    font-family: 'Oswald', sans-serif;
    font-size: 1.4rem;
    font-weight: 600;
    color: #384862;
    text-transform: uppercase;
    margin-bottom: 15px;
}

.wdt-w-tab-panel p {
    color: #555;
    font-size: 0.95rem;
    line-height: 1.8;
    margin-bottom: 15px;
}

.wdt-w-tab-panel ul {
    padding-left: 20px;
    margin-bottom: 15px;
}

.wdt-w-tab-panel li {
    color: #555;
    font-size: 0.95rem;
    line-height: 1.8;
    margin-bottom: 5px;
}

.wdt-w-tab-panel li::marker {
    color: #EF563F;
}

@media (max-width: 768px) {
    .wdt-w-tab-bar { flex-wrap: nowrap; }
    .wdt-w-tab-btn { font-size: 0.8rem; padding: 15px 12px; flex: 0 0 auto; min-width: 100px; }
    .wdt-w-tab-panel { padding: 25px 20px; }
}


/* ============================================
   5. CTA SECTION WIDGET
   ============================================ */

.wdt-w-cta {
    padding: 70px 20px;
    text-align: center;
}

.wdt-w-cta.navy {
    background: linear-gradient(135deg, #384862 0%, #20344A 100%);
}

.wdt-w-cta.coral {
    background: linear-gradient(135deg, #EF563F 0%, #C13923 100%);
}

.wdt-w-cta-inner {
    max-width: 800px;
    margin: 0 auto;
}

.wdt-w-cta h2 {
    font-family: 'Oswald', sans-serif;
    font-size: 2.2rem;
    font-weight: 700;
    color: #ffffff;
    text-transform: uppercase;
    margin-bottom: 15px;
}

.wdt-w-cta p {
    font-family: 'Montserrat', sans-serif;
    font-size: 1rem;
    color: rgba(255,255,255,0.9);
    line-height: 1.7;
    margin-bottom: 30px;
}

@media (max-width: 768px) {
    .wdt-w-cta { padding: 50px 20px; }
    .wdt-w-cta h2 { font-size: 1.6rem; }
}


/* ============================================
   6. CONTACT SECTION WIDGET
   ============================================ */

.wdt-w-contact {
    padding: 70px 20px;
    background: #f8f9fa;
}

.wdt-w-contact-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start;
}

.wdt-w-contact-info-card {
    background: linear-gradient(135deg, #384862 0%, #20344A 100%);
    border-radius: 16px;
    padding: 35px;
    color: white;
}

.wdt-w-contact-info-card h3 {
    font-family: 'Oswald', sans-serif;
    font-size: 1.4rem;
    font-weight: 600;
    text-transform: uppercase;
    margin-bottom: 25px;
}

.wdt-w-contact-item {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}

.wdt-w-contact-item:last-child {
    margin-bottom: 0;
}

.wdt-w-contact-item-icon {
    width: 45px;
    height: 45px;
    background: rgba(255,255,255,0.15);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.wdt-w-contact-item-icon svg {
    width: 20px;
    height: 20px;
    stroke: #EF563F;
    fill: none;
    stroke-width: 2;
}

.wdt-w-contact-item a {
    color: white;
    text-decoration: none;
    font-size: 0.95rem;
    transition: color 0.3s;
}

.wdt-w-contact-item a:hover {
    color: #EF563F;
}

.wdt-w-contact-item span {
    font-size: 0.95rem;
    color: rgba(255,255,255,0.9);
}

.wdt-w-contact-cta {
    background: #ffffff;
    border-radius: 16px;
    padding: 35px;
    box-shadow: 0 10px 40px rgba(56, 72, 98, 0.1);
    text-align: center;
}

.wdt-w-contact-cta h3 {
    font-family: 'Oswald', sans-serif;
    font-size: 1.4rem;
    font-weight: 600;
    color: #384862;
    text-transform: uppercase;
    margin-bottom: 15px;
}

.wdt-w-contact-cta p {
    color: #555;
    font-size: 0.95rem;
    line-height: 1.7;
    margin-bottom: 25px;
}

@media (max-width: 800px) {
    .wdt-w-contact-inner { grid-template-columns: 1fr; }
}


/* ============================================
   7. PRICING CARDS WIDGET
   ============================================ */

.wdt-w-pricing {
    padding: 70px 20px;
    background: #f8f9fa;
}

.wdt-w-pricing-grid {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
    align-items: stretch;
}

.wdt-w-pricing-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 35px 30px;
    text-align: center;
    box-shadow: 0 10px 40px rgba(56, 72, 98, 0.1);
    transition: all 0.3s ease;
    border: 2px solid transparent;
    display: flex;
    flex-direction: column;
}

.wdt-w-pricing-card:hover {
    transform: translateY(-5px);
    border-color: #EF563F;
}

.wdt-w-pricing-card.featured {
    border-color: #EF563F;
    position: relative;
}

.wdt-w-pricing-card.featured::before {
    content: attr(data-badge);
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    background: #EF563F;
    color: white;
    padding: 5px 20px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    white-space: nowrap;
}

.wdt-w-pricing-card h3 {
    font-family: 'Oswald', sans-serif;
    font-size: 1.3rem;
    font-weight: 600;
    color: #384862;
    text-transform: uppercase;
    margin-bottom: 15px;
}

.wdt-w-pricing-price {
    font-family: 'Oswald', sans-serif;
    font-size: 2.5rem;
    font-weight: 700;
    color: #EF563F;
    margin-bottom: 20px;
}

.wdt-w-pricing-features {
    list-style: none;
    padding: 0;
    margin-bottom: 25px;
    flex-grow: 1;
}

.wdt-w-pricing-features li {
    padding: 10px 0;
    border-bottom: 1px solid #f0f0f0;
    font-size: 0.9rem;
    color: #555;
}

.wdt-w-pricing-features li:last-child {
    border-bottom: none;
}

@media (max-width: 900px) {
    .wdt-w-pricing-grid { grid-template-columns: 1fr; max-width: 450px; }
}


/* ============================================
   8. VENUE HEADER WIDGET
   ============================================ */

.wdt-w-venue-hero {
    position: relative;
    height: 50vh;
    min-height: 400px;
    max-height: 500px;
    overflow: hidden;
}

.wdt-w-venue-hero-bg {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background-size: cover;
    background-position: center;
}

.wdt-w-venue-hero-overlay {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background: linear-gradient(180deg, rgba(32,52,74,0.5) 0%, rgba(56,72,98,0.85) 100%);
}

.wdt-w-venue-hero-content {
    position: relative;
    z-index: 2;
    max-width: 1200px;
    margin: 0 auto;
    padding: 60px 20px;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.wdt-w-venue-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #EF563F;
    color: white;
    padding: 6px 16px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 15px;
    width: fit-content;
}

.wdt-w-venue-title {
    font-family: 'Oswald', sans-serif;
    font-size: 3.5rem;
    font-weight: 700;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    margin-bottom: 10px;
}

.wdt-w-venue-location {
    display: flex;
    align-items: center;
    gap: 8px;
    color: rgba(255,255,255,0.9);
    font-size: 1.1rem;
    margin-bottom: 20px;
}

.wdt-w-venue-location svg {
    flex-shrink: 0;
}

.wdt-w-venue-stats {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
}

.wdt-w-venue-stat {
    display: flex;
    align-items: center;
    gap: 10px;
    background: rgba(255,255,255,0.15);
    backdrop-filter: blur(10px);
    padding: 12px 20px;
    border-radius: 10px;
    color: white;
}

.wdt-w-venue-stat-icon {
    width: 40px;
    height: 40px;
    background: #EF563F;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.wdt-w-venue-stat-icon svg {
    width: 20px;
    height: 20px;
    stroke: white;
    fill: none;
    stroke-width: 2;
}

.wdt-w-venue-stat strong {
    display: block;
    font-size: 1.3rem;
    font-weight: 700;
}

.wdt-w-venue-stat span {
    font-size: 0.8rem;
    opacity: 0.9;
}

@media (max-width: 768px) {
    .wdt-w-venue-hero { min-height: 350px; }
    .wdt-w-venue-title { font-size: 2.2rem; }
    .wdt-w-venue-stats { gap: 10px; }
    .wdt-w-venue-stat { padding: 10px 15px; }
}


/* ============================================
   9. COACHING TABS WIDGET
   ============================================ */

.wdt-w-coaching {
    background: #fff;
    border-radius: 16px;
    padding: 35px;
    box-shadow: 0 5px 25px rgba(0,0,0,0.06);
    margin-bottom: 30px;
}

.wdt-w-coaching-title {
    font-family: 'Oswald', sans-serif;
    font-size: 1.6rem;
    font-weight: 600;
    color: #384862;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    margin-bottom: 20px;
    padding-bottom: 12px;
    border-bottom: 3px solid #EF563F;
    display: inline-block;
}

.wdt-w-coaching-tabs {
    display: flex;
    gap: 5px;
    margin-bottom: 25px;
    overflow-x: auto;
    padding-bottom: 5px;
    -webkit-overflow-scrolling: touch;
}

.wdt-w-coaching-tab {
    padding: 12px 24px;
    background: #f0f2f5;
    border: none;
    border-radius: 8px;
    font-family: 'Montserrat', sans-serif;
    font-weight: 600;
    font-size: 0.9rem;
    color: #666;
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
}

.wdt-w-coaching-tab:hover {
    background: #e0e3e8;
}

.wdt-w-coaching-tab.active {
    background: #384862;
    color: white;
}

.wdt-w-coaching-panel {
    display: none;
}

.wdt-w-coaching-panel.active {
    display: block;
}

.wdt-w-coaching-sessions {
    display: grid;
    gap: 15px;
}

.wdt-w-coaching-session {
    display: flex;
    align-items: center;
    background: #f8f9fa;
    border-radius: 12px;
    overflow: hidden;
    transition: all 0.2s;
    border: 2px solid transparent;
}

.wdt-w-coaching-session:hover {
    border-color: #EF563F;
    box-shadow: 0 8px 25px rgba(0,0,0,0.08);
}

.wdt-w-coaching-session-img {
    width: 140px;
    height: 100px;
    object-fit: cover;
    flex-shrink: 0;
}

.wdt-w-coaching-session-body {
    flex: 1;
    padding: 15px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
}

.wdt-w-coaching-session-info h4 {
    font-family: 'Montserrat', sans-serif;
    font-size: 1rem;
    font-weight: 700;
    color: #384862;
    margin-bottom: 4px;
}

.wdt-w-coaching-session-info p {
    font-size: 0.85rem;
    color: #666;
    margin: 0;
}

.wdt-w-coaching-session-price {
    font-size: 1.1rem;
    font-weight: 700;
    color: #EF563F;
}

.wdt-w-coaching-session-btn {
    background: #EF563F;
    color: white;
    padding: 10px 20px;
    border-radius: 6px;
    text-decoration: none;
    font-weight: 600;
    font-size: 0.85rem;
    transition: all 0.2s;
}

.wdt-w-coaching-session-btn:hover {
    background: #C13923;
    color: white;
}

@media (max-width: 768px) {
    .wdt-w-coaching-session { flex-direction: column; }
    .wdt-w-coaching-session-img { width: 100%; height: 120px; }
    .wdt-w-coaching-session-body { flex-direction: column; align-items: flex-start; gap: 12px; }
}


/* ============================================
   10. INFO CARDS WIDGET
   ============================================ */

.wdt-w-info-cards {
    padding: 70px 20px;
    background: #f8f9fa;
}

.wdt-w-info-cards-grid {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.wdt-w-info-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 30px 25px;
    text-align: center;
    box-shadow: 0 10px 40px rgba(56, 72, 98, 0.1);
    transition: all 0.3s ease;
    border: 2px solid transparent;
    text-decoration: none;
    display: block;
}

.wdt-w-info-card:hover {
    transform: translateY(-5px);
    border-color: #EF563F;
}

.wdt-w-info-card-icon {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #384862 0%, #20344A 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 15px;
}

.wdt-w-info-card-icon svg {
    width: 24px;
    height: 24px;
    stroke: white;
    fill: none;
    stroke-width: 2;
}

.wdt-w-info-card h4 {
    font-family: 'Oswald', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    color: #384862;
    text-transform: uppercase;
    margin-bottom: 8px;
}

.wdt-w-info-card p {
    font-size: 0.85rem;
    color: #555;
    line-height: 1.6;
}

@media (max-width: 900px) {
    .wdt-w-info-cards-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 500px) {
    .wdt-w-info-cards-grid { grid-template-columns: 1fr; }
}

/* 5-column info cards: drop to 3 at 1000px, then 2, then 1 */
@media (max-width: 1000px) {
    .wdt-w-info-cards-grid[style*="repeat(5"] { grid-template-columns: repeat(3, 1fr); }
}



/* ============================================
   11. BANNER SLOT WIDGET
   ============================================ */

.wdt-w-banner {
    width: 100%;
    position: relative;
    overflow: hidden;
}

.wdt-w-banner img {
    width: 100%;
    height: auto;
    display: block;
}

.wdt-w-banner a {
    display: block;
}

.wdt-w-banner-placeholder {
    background: linear-gradient(135deg, #384862 0%, #20344A 100%);
    height: 200px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,0.5);
    font-family: 'Montserrat', sans-serif;
    font-size: 0.9rem;
}


/* ============================================
   12. SPONSOR BAR WIDGET
   ============================================ */

.wdt-w-sponsors {
    padding: 30px 20px;
    background: linear-gradient(135deg, #384862 0%, #20344A 100%);
}

.wdt-w-sponsors-inner {
    max-width: 1200px;
    margin: 0 auto;
}

.wdt-w-sponsors-label {
    text-align: center;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.75rem;
    font-weight: 600;
    color: rgba(255,255,255,0.5);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
}

.wdt-w-sponsors-logos {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 30px;
    flex-wrap: wrap;
}

.wdt-w-sponsors-logos img {
    max-height: 50px;
    width: auto;
    opacity: 0.7;
    transition: opacity 0.3s;
    filter: brightness(0) invert(1);
}

.wdt-w-sponsors-logos img:hover {
    opacity: 1;
}

@media (max-width: 768px) {
    .wdt-w-sponsors-logos { gap: 20px; }
    .wdt-w-sponsors-logos img { max-height: 35px; }
}


/* ============================================
   13. BOOKING MODAL (iframe popup)
   ============================================ */

.wdt-w-booking-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(32, 52, 74, 0.95);
    z-index: 10000;
    align-items: center;
    justify-content: center;
    padding: 20px;
    backdrop-filter: blur(10px);
}

.wdt-w-booking-modal.active {
    display: flex !important;
}

.wdt-w-booking-modal-content {
    background: #ffffff;
    border-radius: 12px;
    width: 100%;
    max-width: 800px;
    max-height: 90vh;
    overflow: hidden;
    box-shadow: 0 25px 80px rgba(0, 0, 0, 0.4);
    animation: wdtWModalSlideIn 0.3s ease;
}

@keyframes wdtWModalSlideIn {
    0% { opacity: 0; transform: translateY(-20px) scale(0.98); }
    100% { opacity: 1; transform: translateY(0) scale(1); }
}

.wdt-w-booking-modal-header {
    background: linear-gradient(135deg, #384862 0%, #20344A 100%);
    padding: 16px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.wdt-w-booking-modal-title {
    font-family: 'Oswald', sans-serif;
    font-size: 1.2rem;
    font-weight: 600;
    color: #ffffff;
    text-transform: uppercase;
    margin: 0;
}

.wdt-w-booking-modal-close {
    background: rgba(255, 255, 255, 0.15);
    border: none;
    color: #ffffff;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    font-size: 1.3rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: 0.2s;
}

.wdt-w-booking-modal-close:hover {
    background: #EF563F;
    transform: rotate(90deg);
}

.wdt-w-booking-modal-body {
    height: 70vh;
    max-height: 600px;
}

.wdt-w-booking-modal-body iframe {
    width: 100%;
    height: 100%;
    border: none;
}

.wdt-w-booking-modal-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: #666;
    font-size: 1rem;
    font-family: 'Montserrat', sans-serif;
}

@media (max-width: 600px) {
    .wdt-w-booking-modal { padding: 10px; }
    .wdt-w-booking-modal-content { border-radius: 8px; }
}


/* ============================================
   14. BOOKING BUTTON (standalone)
   ============================================ */

.wdt-w-booking-btn {
    background: linear-gradient(135deg, #EF563F 0%, #C13923 100%);
    color: #ffffff;
    padding: 14px 20px;
    border-radius: 8px;
    font-family: 'Oswald', sans-serif;
    font-size: 0.85rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
    display: inline-block;
    text-align: center;
    width: 100%;
}

.wdt-w-booking-btn:hover {
    background: linear-gradient(135deg, #C13923 0%, #a83020 100%);
    transform: translateY(-2px);
    box-shadow: 0 5px 20px rgba(239, 86, 63, 0.4);
}

.wdt-w-booking-btn.navy {
    background: linear-gradient(135deg, #384862 0%, #20344A 100%);
}

.wdt-w-booking-btn.navy:hover {
    box-shadow: 0 5px 20px rgba(56, 72, 98, 0.4);
}

/* ==========================================================================
   WDT SEARCH BAR WIDGET
   ========================================================================== */

.wdt-w-search-wrapper {
    padding: 40px 20px;
    background: #f8f9fa;
}

.wdt-w-search-overlap {
    margin-top: -70px;
    padding-top: 0;
    position: relative;
    z-index: 10;
}

.wdt-w-search-container {
    margin: 0 auto;
    background: #ffffff;
    border-radius: 20px;
    padding: 30px 40px;
    box-shadow: 0 10px 40px rgba(56, 72, 98, 0.15);
    display: flex;
    align-items: center;
    gap: 30px;
    flex-wrap: wrap;
}

.wdt-w-search-tagline {
    font-family: 'Oswald', sans-serif;
    font-weight: 600;
    font-size: 20px;
    color: #384862;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0;
    white-space: nowrap;
    flex-shrink: 0;
}

.wdt-w-search-form {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 280px;
}

.wdt-w-search-input {
    flex: 1;
    padding: 14px 20px;
    border: 2px solid #e0e4e8;
    border-radius: 10px;
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    color: #333;
    background: #f8f9fa;
    outline: none;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.wdt-w-search-input:focus {
    border-color: #EF563F;
    box-shadow: 0 0 0 3px rgba(239, 86, 63, 0.15);
    background: #fff;
}

.wdt-w-search-input::placeholder {
    color: #999;
}

.wdt-w-search-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 14px 28px;
    background: linear-gradient(135deg, #EF563F 0%, #C13923 100%);
    color: #fff;
    border: none;
    border-radius: 10px;
    font-family: 'Montserrat', sans-serif;
    font-weight: 600;
    font-size: 15px;
    cursor: pointer;
    transition: all 0.3s ease;
    white-space: nowrap;
    flex-shrink: 0;
}

.wdt-w-search-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(239, 86, 63, 0.3);
}

.wdt-w-search-btn svg {
    flex-shrink: 0;
}

@media (max-width: 768px) {
    .wdt-w-search-container {
        flex-direction: column;
        padding: 24px 20px;
        gap: 16px;
        text-align: center;
    }
    .wdt-w-search-tagline {
        font-size: 17px;
        white-space: normal;
    }
    .wdt-w-search-form {
        width: 100%;
        min-width: 0;
    }
    .wdt-w-search-overlap {
        margin-top: -50px;
    }
}

@media (max-width: 500px) {
    .wdt-w-search-form {
        flex-direction: column;
    }
    .wdt-w-search-btn {
        width: 100%;
        justify-content: center;
    }
}


/* ==========================================================================
   WDT TESTIMONIALS WIDGET
   ========================================================================== */

.wdt-w-testimonials {
    padding: 60px 20px;
    background: #f8f9fa;
}

.wdt-w-testimonials.wdt-w-test-white {
    background: #ffffff;
}

.wdt-w-testimonials.wdt-w-test-navy {
    background: linear-gradient(135deg, #384862 0%, #20344A 100%);
}

.wdt-w-testimonials.wdt-w-test-navy .wdt-w-test-title {
    color: #ffffff;
}

.wdt-w-test-title {
    font-family: 'Oswald', sans-serif;
    font-weight: 700;
    font-size: 32px;
    color: #384862;
    text-transform: uppercase;
    text-align: center;
    margin: 0 0 40px 0;
    position: relative;
    padding-bottom: 15px;
}

.wdt-w-test-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 4px;
    background: #EF563F;
    border-radius: 2px;
}

.wdt-w-test-grid {
    display: grid;
    gap: 30px;
    max-width: 1200px;
    margin: 0 auto;
}

.wdt-w-test-cols-2 { grid-template-columns: repeat(2, 1fr); }
.wdt-w-test-cols-3 { grid-template-columns: repeat(3, 1fr); }
.wdt-w-test-cols-4 { grid-template-columns: repeat(4, 1fr); }

.wdt-w-test-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 35px 30px 30px;
    box-shadow: 0 10px 40px rgba(56, 72, 98, 0.08);
    border: 2px solid transparent;
    text-align: center;
    transition: all 0.3s ease;
    position: relative;
}

.wdt-w-test-card:hover {
    transform: translateY(-5px);
    border-color: #EF563F;
    box-shadow: 0 15px 45px rgba(56, 72, 98, 0.15);
}

.wdt-w-test-quote-icon {
    margin-bottom: 15px;
}

.wdt-w-test-quote-icon svg {
    opacity: 0.5;
}

.wdt-w-test-photo {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    overflow: hidden;
    margin: 0 auto 15px;
    border: 3px solid #EF563F;
}

.wdt-w-test-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.wdt-w-test-text {
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    line-height: 1.7;
    color: #555;
    margin: 0 0 18px 0;
    font-style: italic;
}

.wdt-w-test-stars {
    margin-bottom: 12px;
}

.wdt-w-test-star {
    color: #f5a623;
    font-size: 18px;
    margin: 0 1px;
}

.wdt-w-test-name {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 15px;
    color: #384862;
    margin: 0 0 4px 0;
}

.wdt-w-test-location {
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    color: #EF563F;
    margin: 0;
    font-weight: 500;
}

@media (max-width: 1000px) {
    .wdt-w-test-cols-4 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 800px) {
    .wdt-w-test-cols-3 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
    .wdt-w-test-cols-2,
    .wdt-w-test-cols-3,
    .wdt-w-test-cols-4 {
        grid-template-columns: 1fr;
    }
    .wdt-w-testimonials {
        padding: 40px 15px;
    }
    .wdt-w-test-title {
        font-size: 26px;
    }
}


/* ==========================================================================
   WDT FEATURE CTA WIDGET
   ========================================================================== */

.wdt-w-feature-cta {
    padding: 0;
}

.wdt-w-fcta-inner {
    display: flex;
    align-items: center;
    gap: 40px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 60px 40px;
}

.wdt-w-fcta-img-left .wdt-w-fcta-inner {
    flex-direction: row-reverse;
}

/* Backgrounds */
.wdt-w-fcta-peach {
    background: linear-gradient(135deg, #fdf0ec 0%, #fce4df 50%, #f8d8d2 100%);
}

.wdt-w-fcta-light {
    background: #f8f9fa;
}

.wdt-w-fcta-white {
    background: #ffffff;
}

.wdt-w-fcta-navy {
    background: linear-gradient(135deg, #384862 0%, #20344A 100%);
}

.wdt-w-fcta-coral {
    background: linear-gradient(135deg, #EF563F 0%, #C13923 100%);
}

/* Text colours for dark backgrounds */
.wdt-w-fcta-navy .wdt-w-fcta-subtitle,
.wdt-w-fcta-coral .wdt-w-fcta-subtitle {
    color: rgba(255, 255, 255, 0.8);
}

.wdt-w-fcta-navy .wdt-w-fcta-title,
.wdt-w-fcta-coral .wdt-w-fcta-title {
    color: #ffffff;
}

.wdt-w-fcta-navy .wdt-w-fcta-desc,
.wdt-w-fcta-coral .wdt-w-fcta-desc {
    color: rgba(255, 255, 255, 0.85);
}

/* Content */
.wdt-w-fcta-text {
    flex: 1;
    min-width: 280px;
}

.wdt-w-fcta-subtitle {
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: #555;
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 10px 0;
}

.wdt-w-fcta-title {
    font-family: 'Oswald', sans-serif;
    font-weight: 700;
    font-size: 34px;
    color: #384862;
    text-transform: uppercase;
    margin: 0 0 12px 0;
    line-height: 1.2;
}

.wdt-w-fcta-desc {
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    line-height: 1.6;
    color: #555;
    margin: 0 0 24px 0;
}

/* Buttons */
.wdt-w-fcta-btn {
    display: inline-block;
    padding: 14px 32px;
    border-radius: 8px;
    font-family: 'Montserrat', sans-serif;
    font-weight: 600;
    font-size: 15px;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

.wdt-w-fcta-btn.navy {
    background: linear-gradient(135deg, #384862 0%, #20344A 100%);
    color: #ffffff;
}

.wdt-w-fcta-btn.navy:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(56, 72, 98, 0.3);
}

.wdt-w-fcta-btn.coral {
    background: linear-gradient(135deg, #EF563F 0%, #C13923 100%);
    color: #ffffff;
}

.wdt-w-fcta-btn.coral:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(239, 86, 63, 0.3);
}

.wdt-w-fcta-btn.white {
    background: transparent;
    color: #ffffff;
    border-color: #ffffff;
}

.wdt-w-fcta-btn.white:hover {
    background: #ffffff;
    color: #384862;
    transform: translateY(-2px);
}

/* Image */
.wdt-w-fcta-image {
    flex-shrink: 0;
}

.wdt-w-fcta-image img {
    display: block;
    width: auto;
    height: auto;
    object-fit: contain;
}

@media (max-width: 900px) {
    .wdt-w-fcta-inner {
        flex-direction: column !important;
        text-align: center;
        padding: 40px 20px;
        gap: 30px;
    }
    .wdt-w-fcta-subtitle {
        justify-content: center;
    }
    .wdt-w-fcta-title {
        font-size: 28px;
    }
    .wdt-w-fcta-image img {
        max-height: 300px !important;
        margin: 0 auto;
    }
}

@media (max-width: 500px) {
    .wdt-w-fcta-title {
        font-size: 24px;
    }
    .wdt-w-fcta-btn {
        width: 100%;
        text-align: center;
    }
}

/* ==========================================================================
   WDT VENUE AMENITIES WIDGET
   ========================================================================== */

.wdt-w-amenities {
    padding: 12px 0;
    overflow: hidden;
}

.wdt-w-amen-scroll {
    display: flex;
    align-items: center;
    gap: 8px;
    overflow-x: auto;
    padding: 8px 4px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.wdt-w-amen-scroll::-webkit-scrollbar {
    display: none;
}

.wdt-w-amen-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    white-space: nowrap;
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    font-weight: 500;
    color: #555;
    flex-shrink: 0;
    transition: color 0.2s ease;
}

.wdt-w-amen-pill:hover {
    color: #384862;
}

.wdt-w-amen-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    line-height: 0;
}

.wdt-w-amen-icon svg {
    display: block;
}

/* Divider mode — light line between each pill */
.wdt-w-amen-dividers .wdt-w-amen-pill + .wdt-w-amen-pill {
    border-left: 1px solid #e8e8e8;
    padding-left: 16px;
}

/* On small screens slightly reduce padding */
@media (max-width: 768px) {
    .wdt-w-amen-pill {
        font-size: 12px;
        padding: 6px 12px;
        gap: 6px;
    }
    .wdt-w-amen-dividers .wdt-w-amen-pill + .wdt-w-amen-pill {
        padding-left: 12px;
    }
}

/* ==========================================================================
   WDT VENUE TABS WIDGET (Pro-free nested tabs)
   ========================================================================== */

.wdt-vt-wrapper {
    margin: 0;
    padding: 0;
}

.wdt-vt-heading {
    font-family: 'Oswald', sans-serif;
    font-weight: 700;
    font-size: 28px;
    color: #384862;
    text-transform: uppercase;
    text-align: center;
    margin: 0 0 20px 0;
    padding-bottom: 15px;
    position: relative;
}

.wdt-vt-heading::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 4px;
    background: #EF563F;
    border-radius: 2px;
}

/* Bar wrapper — holds arrows + fades + scrollable bar */
.wdt-vt-bar-wrap {
    position: relative;
}

/* Tab bar */
.wdt-vt-bar {
    display: flex;
    background: linear-gradient(135deg, #384862 0%, #20344A 100%);
    border-radius: 12px 12px 0 0;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
    gap: 0;
    padding: 0 40px; /* room for arrows */
    scroll-behavior: smooth;
}

.wdt-vt-bar::-webkit-scrollbar {
    display: none;
}

/* Scroll arrow buttons */
.wdt-vt-arrow {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 36px;
    z-index: 5;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.3s ease;
    padding: 0;
}

.wdt-vt-arrow-left {
    left: 0;
    background: linear-gradient(90deg, #384862 60%, transparent 100%);
    border-radius: 12px 0 0 0;
}

.wdt-vt-arrow-right {
    right: 0;
    background: linear-gradient(-90deg, #20344A 60%, transparent 100%);
    border-radius: 0 12px 0 0;
}

.wdt-vt-arrow:hover {
    opacity: 0.85;
}

.wdt-vt-arrow svg {
    flex-shrink: 0;
}

/* Fade edge indicators — subtle gradient hint that more tabs exist */
.wdt-vt-fade-left,
.wdt-vt-fade-right {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 30px;
    z-index: 3;
    pointer-events: none;
}

.wdt-vt-fade-left {
    left: 36px;
    background: linear-gradient(90deg, rgba(56, 72, 98, 0.6) 0%, transparent 100%);
}

.wdt-vt-fade-right {
    right: 36px;
    background: linear-gradient(-90deg, rgba(32, 52, 74, 0.6) 0%, transparent 100%);
}

/* Individual tab button */
.wdt-vt-tab {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 16px 24px;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    color: rgba(255, 255, 255, 0.7);
    font-family: 'Montserrat', sans-serif;
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
    transition: all 0.3s ease;
    position: relative;
}

.wdt-vt-tab:hover {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.08);
}

.wdt-vt-tab.active {
    color: #ffffff;
    border-bottom-color: #EF563F;
    background: rgba(255, 255, 255, 0.1);
}

.wdt-vt-tab-icon {
    display: flex;
    align-items: center;
    line-height: 0;
}

/* Sticky mode */
.wdt-vt-sticky .wdt-vt-bar-wrap {
    position: sticky;
    top: 0;
    z-index: 100;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

.wdt-vt-sticky .wdt-vt-bar {
    border-radius: 0;
}

/* Pills style variant */
.wdt-vt-wrapper.wdt-vt-pills .wdt-vt-bar {
    background: transparent;
    gap: 8px;
    padding: 10px 0;
    flex-wrap: wrap;
    justify-content: center;
}

.wdt-vt-wrapper.wdt-vt-pills .wdt-vt-tab {
    background: #f0f2f5;
    border: 2px solid transparent;
    border-bottom: none;
    border-radius: 25px;
    color: #555;
    padding: 10px 22px;
    font-size: 13px;
}

.wdt-vt-wrapper.wdt-vt-pills .wdt-vt-tab:hover {
    border-color: #EF563F;
    color: #384862;
    background: #fff;
}

.wdt-vt-wrapper.wdt-vt-pills .wdt-vt-tab.active {
    background: linear-gradient(135deg, #EF563F 0%, #C13923 100%);
    color: #ffffff;
    border-color: transparent;
}

.wdt-vt-wrapper.wdt-vt-pills .wdt-vt-arrow,
.wdt-vt-wrapper.wdt-vt-pills .wdt-vt-fade-left,
.wdt-vt-wrapper.wdt-vt-pills .wdt-vt-fade-right {
    display: none !important;
}

/* Clean style variant */
.wdt-vt-wrapper.wdt-vt-clean .wdt-vt-bar {
    background: transparent;
    border-bottom: 2px solid #e8e8e8;
    border-radius: 0;
    gap: 0;
}

.wdt-vt-wrapper.wdt-vt-clean .wdt-vt-tab {
    color: #777;
    padding: 14px 20px;
    border-bottom: 3px solid transparent;
    margin-bottom: -2px;
}

.wdt-vt-wrapper.wdt-vt-clean .wdt-vt-tab:hover {
    color: #384862;
    background: transparent;
}

.wdt-vt-wrapper.wdt-vt-clean .wdt-vt-tab.active {
    color: #384862;
    border-bottom-color: #EF563F;
    background: transparent;
}

.wdt-vt-wrapper.wdt-vt-clean .wdt-vt-arrow-left {
    background: linear-gradient(90deg, #fff 60%, transparent 100%);
}

.wdt-vt-wrapper.wdt-vt-clean .wdt-vt-arrow-right {
    background: linear-gradient(-90deg, #fff 60%, transparent 100%);
}

.wdt-vt-wrapper.wdt-vt-clean .wdt-vt-arrow svg {
    stroke: #384862;
}

.wdt-vt-wrapper.wdt-vt-clean .wdt-vt-fade-left {
    background: linear-gradient(90deg, rgba(255,255,255,0.8) 0%, transparent 100%);
}

.wdt-vt-wrapper.wdt-vt-clean .wdt-vt-fade-right {
    background: linear-gradient(-90deg, rgba(255,255,255,0.8) 0%, transparent 100%);
}

/* Responsive */
@media (max-width: 768px) {
    .wdt-vt-bar {
        padding: 0 32px;
    }
    .wdt-vt-arrow {
        width: 32px;
    }
    .wdt-vt-fade-left { left: 32px; width: 24px; }
    .wdt-vt-fade-right { right: 32px; width: 24px; }
    .wdt-vt-tab {
        padding: 12px 16px;
        font-size: 13px;
    }
    .wdt-vt-tab-icon svg {
        width: 12px;
        height: 12px;
    }
}

@media (max-width: 500px) {
    .wdt-vt-bar {
        padding: 0 28px;
    }
    .wdt-vt-arrow {
        width: 28px;
    }
    .wdt-vt-fade-left { left: 28px; width: 20px; }
    .wdt-vt-fade-right { right: 28px; width: 20px; }
    .wdt-vt-tab {
        padding: 10px 14px;
        font-size: 12px;
        gap: 4px;
    }
}

/* ==========================================================================
   WDT VENUE SIDEBAR WIDGET
   ========================================================================== */

.wdt-w-venue-sidebar {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

/* ── Quick Contact Card ── */
.wdt-w-vs-contact {
    background: linear-gradient(135deg, #384862 0%, #20344A 100%);
    border-radius: 12px;
    padding: 15px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.wdt-w-vs-contact-item {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #ffffff;
    text-decoration: none;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.85rem;
    font-weight: 500;
    padding: 8px 12px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 8px;
    transition: all 0.2s ease;
}

.wdt-w-vs-contact-item:hover {
    background: rgba(255, 255, 255, 0.2);
    transform: translateX(3px);
    color: #ffffff;
}

.wdt-w-vs-contact-item svg {
    flex-shrink: 0;
}

/* WhatsApp override */
.wdt-w-vs-whatsapp {
    background: rgba(37, 211, 102, 0.2);
}

.wdt-w-vs-whatsapp:hover {
    background: rgba(37, 211, 102, 0.35);
}

/* ── Mini Map ── */
.wdt-w-vs-map {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 15px rgba(56, 72, 98, 0.08);
}

.wdt-w-vs-map iframe {
    width: 100%;
    border: none;
    display: block;
}

.wdt-w-vs-map-info {
    background: #ffffff;
    padding: 12px 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
}

.wdt-w-vs-map-address {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.75rem;
    color: #666;
    line-height: 1.4;
}

.wdt-w-vs-map-address strong {
    color: #384862;
    display: block;
    font-weight: 700;
}

.wdt-w-vs-directions {
    display: flex;
    align-items: center;
    gap: 5px;
    background: #f5f7fa;
    color: #384862;
    padding: 8px 12px;
    border-radius: 6px;
    font-family: 'Oswald', sans-serif;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    text-decoration: none;
    transition: all 0.2s ease;
    white-space: nowrap;
    flex-shrink: 0;
}

.wdt-w-vs-directions:hover {
    background: #384862;
    color: #ffffff;
}

.wdt-w-vs-directions:hover svg {
    stroke: #ffffff;
}

/* ── Promo Card ── */
.wdt-w-vs-promo {
    background: linear-gradient(135deg, #EF563F 0%, #C13923 100%);
    border-radius: 12px;
    padding: 18px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.wdt-w-vs-promo::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -50%;
    width: 100%;
    height: 200%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, transparent 60%);
    pointer-events: none;
}

/* Navy variant */
.wdt-w-vs-promo-navy {
    background: linear-gradient(135deg, #384862 0%, #20344A 100%);
}

.wdt-w-vs-promo-badge {
    display: inline-block;
    background: rgba(255, 255, 255, 0.2);
    color: #ffffff;
    padding: 3px 10px;
    border-radius: 4px;
    font-family: 'Oswald', sans-serif;
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 8px;
    position: relative;
}

.wdt-w-vs-promo-title {
    font-family: 'Oswald', sans-serif;
    font-size: 1.2rem;
    font-weight: 700;
    color: #ffffff;
    text-transform: uppercase;
    margin: 0 0 6px 0;
    position: relative;
}

.wdt-w-vs-promo-text {
    color: rgba(255, 255, 255, 0.9);
    font-family: 'Montserrat', sans-serif;
    font-size: 0.75rem;
    margin: 0 0 12px 0;
    line-height: 1.4;
    position: relative;
}

.wdt-w-vs-promo-btn {
    display: inline-block;
    background: #384862;
    color: #ffffff;
    padding: 10px 20px;
    border-radius: 6px;
    font-family: 'Oswald', sans-serif;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
    position: relative;
}

.wdt-w-vs-promo-btn:hover {
    background: #20344A;
    transform: scale(1.05);
    color: #ffffff;
}

/* Navy promo → coral button */
.wdt-w-vs-promo-navy .wdt-w-vs-promo-btn {
    background: linear-gradient(135deg, #EF563F 0%, #C13923 100%);
}

.wdt-w-vs-promo-navy .wdt-w-vs-promo-btn:hover {
    background: linear-gradient(135deg, #C13923 0%, #a83020 100%);
}

/* ── Responsive ── */
@media (max-width: 1000px) {
    .wdt-w-venue-sidebar {
        flex-direction: row;
        flex-wrap: wrap;
    }
    .wdt-w-vs-contact,
    .wdt-w-vs-map,
    .wdt-w-vs-promo {
        flex: 1 1 250px;
        min-width: 250px;
    }
}

@media (max-width: 600px) {
    .wdt-w-venue-sidebar {
        flex-direction: column;
    }
    .wdt-w-vs-contact,
    .wdt-w-vs-map,
    .wdt-w-vs-promo {
        flex: 1 1 100%;
        min-width: 0;
    }
}


/* ============================================
   VENUE DIRECTORY CARDS — v1.5
   Prefix: .wdt-w-vdir-
   ============================================ */

.wdt-w-vdir {
    padding: 70px 20px;
    background: #f8f9fa;
}

.wdt-w-vdir-grid {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
}

.wdt-w-vdir-card {
    background: #ffffff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 8px 30px rgba(56, 72, 98, 0.1);
    border: 2px solid transparent;
    transition: all 0.3s ease;
}

.wdt-w-vdir-card:hover {
    transform: translateY(-5px);
    border-color: #EF563F;
    box-shadow: 0 15px 40px rgba(56, 72, 98, 0.15);
}

/* Image tile */
.wdt-w-vdir-card-image {
    position: relative;
    width: 100%;
    height: 200px;
    overflow: hidden;
}

.wdt-w-vdir-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.wdt-w-vdir-card:hover .wdt-w-vdir-card-image img {
    transform: scale(1.05);
}

/* Navy placeholder fallback */
.wdt-w-vdir-card-placeholder {
    width: 100%;
    height: 200px;
    background: linear-gradient(135deg, #384862 0%, #20344A 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.wdt-w-vdir-card-placeholder::before {
    content: '';
    position: absolute;
    top: -20%;
    right: -10%;
    width: 180px;
    height: 180px;
    border: 3px solid rgba(255, 255, 255, 0.08);
    border-radius: 50%;
}

.wdt-w-vdir-card-placeholder::after {
    content: '';
    position: absolute;
    bottom: -15%;
    left: -5%;
    width: 120px;
    height: 120px;
    border: 3px solid rgba(239, 86, 63, 0.15);
    border-radius: 50%;
}

.wdt-w-vdir-card-placeholder-text {
    font-family: 'Oswald', sans-serif;
    font-size: 1.4rem;
    font-weight: 700;
    color: #ffffff;
    text-transform: uppercase;
    text-align: center;
    padding: 20px;
    position: relative;
    z-index: 1;
    line-height: 1.3;
}

.wdt-w-vdir-card-placeholder-text span {
    display: block;
    font-size: 0.75rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.6);
    margin-top: 5px;
    font-family: 'Montserrat', sans-serif;
    text-transform: none;
    letter-spacing: 0.03em;
}

/* Card body */
.wdt-w-vdir-card-body {
    padding: 25px;
    text-align: center;
}

.wdt-w-vdir-card-name {
    font-family: 'Oswald', sans-serif;
    font-size: 1.25rem;
    font-weight: 700;
    color: #384862;
    text-transform: uppercase;
    margin-bottom: 8px;
    line-height: 1.2;
}

.wdt-w-vdir-card-location {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.85rem;
    color: #777;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.wdt-w-vdir-card-location svg {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
}

.wdt-w-vdir-card-btn {
    display: inline-block;
    background: linear-gradient(135deg, #EF563F 0%, #C13923 100%);
    color: #ffffff;
    padding: 11px 28px;
    border-radius: 8px;
    font-family: 'Oswald', sans-serif;
    font-size: 0.9rem;
    font-weight: 600;
    text-transform: uppercase;
    text-decoration: none;
    transition: all 0.3s ease;
    border: none;
    cursor: pointer;
}

.wdt-w-vdir-card-btn:hover {
    background: linear-gradient(135deg, #C13923 0%, #a83020 100%);
    transform: translateY(-2px);
}

/* Responsive */
@media (max-width: 1000px) {
    .wdt-w-vdir-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 700px) {
    .wdt-w-vdir-grid {
        grid-template-columns: 1fr;
        max-width: 450px;
        margin-left: auto;
        margin-right: auto;
    }
}


/* ============================================
   FEATURE GRID — v1.5
   Prefix: .wdt-w-fgrid-
   ============================================ */

.wdt-w-fgrid {
    padding: 70px 20px;
}

.wdt-w-fgrid-inner {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    /* Weighted towards the cards: three of them need more room than the
       heading block beside them. */
    grid-template-columns: 0.85fr 1.6fr;
    gap: 50px;
    align-items: center;
}

.wdt-w-fgrid-inner.reversed {
    direction: rtl;
}

.wdt-w-fgrid-inner.reversed > * {
    direction: ltr;
}

.wdt-w-fgrid-content h2 {
    font-family: 'Oswald', sans-serif;
    font-size: 2rem;
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 15px;
    line-height: 1.2;
}

.wdt-w-fgrid-content p {
    font-family: 'Montserrat', sans-serif;
    font-size: 1rem;
    line-height: 1.7;
    margin-bottom: 25px;
}

.wdt-w-fgrid-btn {
    display: inline-block;
    color: #ffffff;
    padding: 14px 35px;
    border-radius: 8px;
    font-family: 'Oswald', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    text-transform: uppercase;
    text-decoration: none;
    transition: all 0.3s ease;
    border: none;
    cursor: pointer;
}

.wdt-w-fgrid-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
}

.wdt-w-fgrid-features {
    display: grid;
    /* Three across. Every use of this widget has exactly three features,
       so two columns always left one card orphaned on its own row. */
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.wdt-w-fgrid-feature {
    border-radius: 12px;
    padding: 20px;
    text-align: center;
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition: all 0.3s ease;
}

.wdt-w-fgrid-feature:hover {
    transform: translateY(-3px);
}

.wdt-w-fgrid-feature-icon {
    width: 45px;
    height: 45px;
    margin: 0 auto 12px;
    background: linear-gradient(135deg, #EF563F 0%, #C13923 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.wdt-w-fgrid-feature-icon svg {
    width: 20px;
    height: 20px;
    stroke: white;
    fill: none;
}

.wdt-w-fgrid-feature h4 {
    font-family: 'Oswald', sans-serif;
    font-size: 0.9rem;
    font-weight: 600;
    text-transform: uppercase;
    margin-bottom: 5px;
}

.wdt-w-fgrid-feature p {
    font-size: 0.8rem;
    margin-bottom: 0;
    line-height: 1.4;
}

/* Responsive */
@media (max-width: 1024px) {
    .wdt-w-fgrid-inner {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .wdt-w-fgrid-inner.reversed {
        direction: ltr;
    }
}

@media (max-width: 600px) {
    .wdt-w-fgrid-features {
        grid-template-columns: 1fr;
        max-width: 280px;
        margin: 0 auto;
    }
}


/* ============================================
   SOCIAL LINKS — v1.6
   Prefix: .wdt-w-sl-
   ============================================ */

.wdt-w-sl {
    padding: 60px 20px;
    text-align: center;
}

.wdt-w-sl-inner {
    max-width: 800px;
    margin: 0 auto;
}

.wdt-w-sl-subtitle {
    font-family: 'Montserrat', sans-serif;
    font-size: 1rem;
    line-height: 1.7;
    max-width: 600px;
    margin: 20px auto 30px;
}

.wdt-w-sl-links {
    display: flex;
    justify-content: center;
    gap: 15px;
    flex-wrap: wrap;
}

/* Pill style (default) */
.wdt-w-sl-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 24px;
    border-radius: 8px;
    text-decoration: none;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.95rem;
    font-weight: 600;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

.wdt-w-sl-link:hover {
    border-color: #EF563F;
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(56, 72, 98, 0.12);
}

.wdt-w-sl-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}

.wdt-w-sl-icon svg {
    width: 22px;
    height: 22px;
}

.wdt-w-sl-label {
    white-space: nowrap;
}

/* WhatsApp override — always green */
.wdt-w-sl-whatsapp {
    background: #25D366 !important;
    color: #ffffff !important;
}

.wdt-w-sl-whatsapp:hover {
    background: #128C7E !important;
    border-color: #128C7E !important;
}

/* Compact icon-only style */
.wdt-w-sl-compact .wdt-w-sl-link {
    width: 50px;
    height: 50px;
    padding: 0;
    border-radius: 50%;
    justify-content: center;
}

.wdt-w-sl-compact .wdt-w-sl-icon {
    width: 24px;
    height: 24px;
}

.wdt-w-sl-compact .wdt-w-sl-icon svg {
    width: 24px;
    height: 24px;
}

/* Navy background adjustments */
.wdt-w-sl .wdt-w-sl-link:hover {
    border-color: #EF563F;
}

/* Responsive */
@media (max-width: 600px) {
    .wdt-w-sl-links {
        flex-direction: column;
        align-items: center;
    }

    .wdt-w-sl-link {
        width: 100%;
        max-width: 280px;
        justify-content: center;
    }

    .wdt-w-sl-compact .wdt-w-sl-links {
        flex-direction: row;
    }

    .wdt-w-sl-compact .wdt-w-sl-link {
        width: 50px;
        max-width: 50px;
    }
}


/* Dark variant for Venue Directory Cards (navy background) */
.wdt-w-vdir-dark .wdt-w-vdir-card {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.1);
}

.wdt-w-vdir-dark .wdt-w-vdir-card:hover {
    border-color: #EF563F;
    background: rgba(255, 255, 255, 0.1);
}

.wdt-w-vdir-dark .wdt-w-vdir-card-name {
    color: #ffffff;
}

.wdt-w-vdir-dark .wdt-w-vdir-card-location {
    color: rgba(255, 255, 255, 0.7);
}


/* ============================================
   GLOBAL: Force white text on dark backgrounds
   Theme overrides h1-h6 colour to black.
   This catches ALL WDT widgets with navy/coral
   gradient backgrounds in one rule.
   ============================================ */

/* Navy gradient containers */
[class*="wdt-w-"][class*="-navy"] h1,
[class*="wdt-w-"][class*="-navy"] h2,
[class*="wdt-w-"][class*="-navy"] h3,
[class*="wdt-w-"][class*="-navy"] h4,
[class*="wdt-w-"][class*="-navy"] h5,
[class*="wdt-w-"][class*="-navy"] h6,
[class*="wdt-w-"][class*="-navy"] p,
[class*="wdt-w-"][class*="-navy"] span,
[class*="wdt-w-"][class*="-navy"] a:not(.wdt-w-btn):not([class*="btn"]),
.wdt-w-cta.navy h1, .wdt-w-cta.navy h2, .wdt-w-cta.navy h3,
.wdt-w-cta.navy h4, .wdt-w-cta.navy h5, .wdt-w-cta.navy h6,
.wdt-w-cta.navy p,
.wdt-w-hero h1, .wdt-w-hero h2, .wdt-w-hero h3, .wdt-w-hero p,
.wdt-w-venue-hero h1, .wdt-w-venue-hero p, .wdt-w-venue-hero span {
    color: #ffffff !important;
}

/* Coral gradient containers */
[class*="wdt-w-"][class*="-coral"] h1,
[class*="wdt-w-"][class*="-coral"] h2,
[class*="wdt-w-"][class*="-coral"] h3,
[class*="wdt-w-"][class*="-coral"] h4,
[class*="wdt-w-"][class*="-coral"] h5,
[class*="wdt-w-"][class*="-coral"] h6,
[class*="wdt-w-"][class*="-coral"] p,
[class*="wdt-w-"][class*="-coral"] span,
.wdt-w-cta.coral h1, .wdt-w-cta.coral h2, .wdt-w-cta.coral h3,
.wdt-w-cta.coral h4, .wdt-w-cta.coral h5, .wdt-w-cta.coral h6,
.wdt-w-cta.coral p,
.wdt-w-stats h1, .wdt-w-stats h2, .wdt-w-stats h3, .wdt-w-stats p, .wdt-w-stats span {
    color: #ffffff !important;
}

/* Inline-style dark backgrounds (widgets using style="" navy gradients) */
[style*="linear-gradient"][style*="384862"] h1,
[style*="linear-gradient"][style*="384862"] h2,
[style*="linear-gradient"][style*="384862"] h3,
[style*="linear-gradient"][style*="384862"] h4,
[style*="linear-gradient"][style*="384862"] h5,
[style*="linear-gradient"][style*="384862"] h6,
[style*="linear-gradient"][style*="384862"] p,
[style*="linear-gradient"][style*="EF563F"] h1,
[style*="linear-gradient"][style*="EF563F"] h2,
[style*="linear-gradient"][style*="EF563F"] h3,
[style*="linear-gradient"][style*="EF563F"] h4,
[style*="linear-gradient"][style*="EF563F"] h5,
[style*="linear-gradient"][style*="EF563F"] h6,
[style*="linear-gradient"][style*="EF563F"] p {
    color: #ffffff !important;
}

/* =======================================================
   WHITE CARDS ON DARK BACKGROUNDS — TRIPLE SPECIFICITY
   These MUST beat the inline gradient selectors above.
   Using .class.class.class pattern for maximum weight.
   ======================================================= */

/* Expect Cards */
.ec-card.ec-card.ec-card:not(.ec-hl) h3,
.ec-card.ec-card.ec-card:not(.ec-hl) h4,
.ec-card.ec-card.ec-card:not(.ec-hl) h5 { color: #384862 !important; }
.ec-card.ec-card.ec-card:not(.ec-hl) p,
.ec-card.ec-card.ec-card:not(.ec-hl) span { color: #555555 !important; }
.ec-card.ec-card.ec-card.ec-hl h3,
.ec-card.ec-card.ec-card.ec-hl p { color: #ffffff !important; }

/* Session Listing */
.sl-card.sl-card.sl-card h3,
.sl-card.sl-card.sl-card h4 { color: #384862 !important; }
.sl-card.sl-card.sl-card p { color: #555555 !important; }
.sl-card.sl-card.sl-card span { color: #555555 !important; }
.sl-card.sl-card.sl-card .sl-time span { color: #384862 !important; }
.sl-card.sl-card.sl-card .sl-desc { color: #555555 !important; }
.sl-card.sl-card.sl-card .sl-location { color: #777777 !important; }
.sl-card.sl-card.sl-card .sl-promo-text { color: rgba(255,255,255,0.9) !important; }
.sl-card.sl-card.sl-card .sl-promo-code { color: #EF563F !important; }

/* Info Cards */
.wdt-w-info-card.wdt-w-info-card.wdt-w-info-card h4 { color: #384862 !important; }
.wdt-w-info-card.wdt-w-info-card.wdt-w-info-card p { color: #555555 !important; }

/* Service Cards */
.wdt-w-service-card.wdt-w-service-card.wdt-w-service-card h3 { color: #384862 !important; }
.wdt-w-service-card.wdt-w-service-card.wdt-w-service-card p { color: #555555 !important; }

/* Testimonial Cards */
.wdt-w-test-card.wdt-w-test-card.wdt-w-test-card h3,
.wdt-w-test-card.wdt-w-test-card.wdt-w-test-card h4 { color: #384862 !important; }
.wdt-w-test-text.wdt-w-test-text.wdt-w-test-text { color: #555555 !important; }
.wdt-w-test-name.wdt-w-test-name.wdt-w-test-name { color: #384862 !important; }
.wdt-w-test-location.wdt-w-test-location.wdt-w-test-location { color: #EF563F !important; }

/* Pricing Cards */
.wdt-w-pricing-card.wdt-w-pricing-card.wdt-w-pricing-card h3 { color: #384862 !important; }
.wdt-w-pricing-card.wdt-w-pricing-card.wdt-w-pricing-card p,
.wdt-w-pricing-features.wdt-w-pricing-features li { color: #555555 !important; }

/* Directory Cards */
.wdt-w-vdir-card-name.wdt-w-vdir-card-name.wdt-w-vdir-card-name { color: #384862 !important; }
.wdt-w-vdir-card-location.wdt-w-vdir-card-location.wdt-w-vdir-card-location { color: #777777 !important; }

/* Session Cards (venue pages) */
.wdt-vp-openday-card.wdt-vp-openday-card.wdt-vp-openday-card h4 { color: #384862 !important; }
.wdt-vp-openday-card.wdt-vp-openday-card.wdt-vp-openday-card p { color: #555555 !important; }

/* Park Sessions slim rows */
.ps-info.ps-info.ps-info h4 { color: #384862 !important; }
.ps-info.ps-info.ps-info p { color: #666666 !important; }

/* WooCommerce product titles */
.woocommerce .woocommerce-loop-product__title.woocommerce-loop-product__title { color: #384862 !important; }
.woocommerce .price.price { color: #555555 !important; }

/* Preserve navy text on light backgrounds */
[class*="wdt-w-"][class*="-light"] h1,
[class*="wdt-w-"][class*="-light"] h2,
[class*="wdt-w-"][class*="-light"] h3,
[class*="wdt-w-"][class*="-light"] h4 {
    color: #384862 !important;
}

[class*="wdt-w-"][class*="-light"] p {
    color: #555555 !important;
}

[class*="wdt-w-"][class*="-white"] h1,
[class*="wdt-w-"][class*="-white"] h2,
[class*="wdt-w-"][class*="-white"] h3,
[class*="wdt-w-"][class*="-white"] h4 {
    color: #384862 !important;
}

[class*="wdt-w-"][class*="-white"] p {
    color: #555555 !important;
}

/* ============================================
   GLOBAL: Restore dark text inside white cards
   that sit on dark backgrounds. The navy/coral
   global override above is too aggressive for
   cards with white backgrounds.
   ============================================ */

/* Old single-specificity card fixes removed — replaced by triple-specificity rules above */

/* Old single-specificity Session Listing fixes removed — replaced by triple-specificity rules above */

/* WDT card button alignment */
.wdt-vp-openday-card{display:flex;flex-direction:column;}
.wdt-vp-openday-card .wdt-vp-openday-desc{flex:0 0 auto;}
.wdt-vp-openday-buttons{margin-top:auto;}

/* ===== Explore / directory map markers =====
   White teardrop pin with a navy centre, plus legible cluster bubbles.
   The pin shape is an SVG mask on .dtdr-marker-image, so the fill is set
   via background-color and the shadow must use filter: drop-shadow()
   (box-shadow would trace the square box, not the teardrop).
   The mask has a hole in the middle, so the navy centre is painted by the
   UNMASKED parent .dtdr-marker-container::before, sitting behind the pin.
   Styling only - no directory-plugin files are modified. ===== */
.dtdr-marker-container{ position:absolute; }
.dtdr-marker-container::before{
  content:"";
  position:absolute;
  left:50%;
  top:42%;
  width:19px;
  height:19px;
  margin:-9.5px 0 0 -9.5px;
  border-radius:50%;
  background:#384862;
  z-index:0;
  pointer-events:none;
}
.dtdr-marker-image{
  position:relative;
  z-index:1;
  background-color:#ffffff !important;
  filter:drop-shadow(0 1px 1px rgba(16,24,40,.55)) drop-shadow(0 4px 6px rgba(16,24,40,.35));
}
/* Empty "category image" badge renders as a bare red dot beside the pin.
   :empty hides it only while it has no image, so it returns by itself
   if a category image is ever added. */
.dtdr-marker-addition-info-categoryimage:empty{ display:none !important; }
.dt-cluster{
  background-image:none !important;
  background-color:#384862 !important;
  border-radius:50% !important;
  color:#ffffff !important;
  font-weight:700 !important;
  font-size:13px !important;
  box-shadow:0 0 0 3px #ffffff, 0 2px 6px rgba(16,24,40,.45) !important;
}

/* ===== Stray lightbox arrow =====
   Elementor prints its PhotoSwipe lightbox markup into every page. The
   library's own base rule - .pswp { display: none } - is missing from the
   CSS this site loads; only the button skin survives. The result is the
   lightbox's "next" arrow painted as a black square at the left edge of
   every page, on top of the banner, doing nothing when clicked.

   Restore the closed state. Keyed on aria-hidden, which PhotoSwipe itself
   maintains (true when closed, false when open), so this lifts by itself
   the moment a real lightbox opens and cannot break galleries. ===== */
.pswp[aria-hidden="true"]{ display:none !important; }

/* ===== Back-to-top button =====
   The Vazhi theme draws its own logo mark here. Replaced with a circular
   WDT button: navy, white chevron, coral on hover.

   Deliberately does NOT set display or transform on #back-to-top. The
   theme's script toggles display to reveal the button on scroll and uses
   transform in that reveal, so setting either here would break the
   show/hide. The theme markup, its script and the link are untouched -
   this is styling only, and it lives in this plugin rather than the theme
   so a theme update cannot undo it. ===== */
#back-to-top{
  width:46px;
  height:46px;
  border-radius:50%;
  /* !important on the two properties the theme also sets on this id;
     its stylesheet loads after this one, so it would otherwise win. */
  background-color:#384862 !important;
  box-shadow:0 4px 12px rgba(16,24,40,.28);
  transition:background-color .2s ease;
}
#back-to-top:hover{
  background-color:#EF563F !important;
}
#back-to-top .back-to-top-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
}
/* Hide the theme glyph but keep the element, so the whole circle stays clickable. */
#back-to-top .back-to-top-icon svg{
  display:none;
}
#back-to-top .back-to-top-icon::after{
  content:"";
  width:11px;
  height:11px;
  border-top:2.5px solid #ffffff;
  border-right:2.5px solid #ffffff;
  transform:rotate(-45deg);
  margin-top:3px;
}
/* On desktop the "Select and listen" accessibility widget sits in the same
   corner at the maximum z-index and covers the lower half of this button,
   making part of it unclickable. Lift the button clear of it. Mobile puts
   that widget elsewhere, so narrow screens are left as they were. */
@media (min-width:1025px){
  #back-to-top{ bottom:135px !important; }
}

/* ===== Service cards on small screens =====
   The widget writes grid-template-columns as an INLINE style from its
   "columns" setting. An inline style beats every stylesheet rule, including
   the media queries further up this file, so those never took effect and the
   cards stayed at the desktop column count on phones. !important is the only
   way CSS can override an inline style, so it is used deliberately here and
   only on this one property.
   Desktop keeps whatever column count the editor chose. ===== */
@media (max-width: 1000px){
  .wdt-w-services-grid{ grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 640px){
  .wdt-w-services-grid{ grid-template-columns: 1fr !important; }
}
/* Grid items default to min-width:auto, so long words push past the card
   edge instead of wrapping - that is the clipped text on narrow screens. */
.wdt-w-services-grid > *{ min-width: 0; }
.wdt-w-service-card h3,
.wdt-w-service-card p,
.wdt-w-service-card a{ overflow-wrap: break-word; }

/* ===== Contact card heading =====
   The card is a dark navy panel and sets color:white, but a global h3 rule
   sets navy on every h3 and wins, leaving the heading invisible against its
   own background. Set it explicitly on the heading inside the card. ===== */
.wdt-w-contact-info-card h3{ color: #ffffff; }
