/**
 * Theme Name: PhysioZen Child
 * Description: This is a child theme of PhysioZen.
 * Author: <a href="https://cmsmasters.net/">cmsmasters</a>
 * Template: physiozen
 * Version: 1.1.0
 * Tested up to: 6.6
 * Requires PHP: 7.4
 * License:
 * License URI:
 * Text Domain: physiozen-child
 * Copyright: cmsmasters 2025 / All Rights Reserved
 */

/* ======================================================================
 * BALANCE STUDIO — COMPLETE RESPONSIVE SYSTEM
 * Covers: 320px → 2560px  |  All devices, all orientations
 * ====================================================================== */


/* ======================================================================
 * 1. GLOBAL FOUNDATION
 * ====================================================================== */

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    overflow-x: hidden;
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body {
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    word-break: break-word;
    overflow-wrap: break-word;
}

img,
video,
iframe,
embed,
object {
    max-width: 100%;
    height: auto;
}

img {
    display: block;
}

img[width][height] {
    height: auto;
}

table {
    width: 100%;
}


/* ======================================================================
 * 2. FLUID TYPOGRAPHY  — clamp(min, fluid, max)
 *    Scales smoothly at EVERY viewport width. No breakpoints needed.
 * ====================================================================== */

h1,
.elementor-widget-heading h1,
h1.elementor-heading-title,
.cmsmasters-widget-title__heading h1 {
    font-size: clamp(28px, 5.5vw, 68px) !important;
    line-height: 1.08 !important;
    letter-spacing: clamp(-0.5px, -0.03em, -2px) !important;
}

h2,
.elementor-widget-heading h2,
h2.elementor-heading-title,
.cmsmasters-widget-title__heading h2 {
    font-size: clamp(24px, 4.2vw, 54px) !important;
    line-height: 1.12 !important;
    letter-spacing: clamp(-0.5px, -0.025em, -2px) !important;
}

h3,
.elementor-widget-heading h3,
h3.elementor-heading-title,
.cmsmasters-widget-title__heading h3 {
    font-size: clamp(20px, 3.2vw, 42px) !important;
    line-height: 1.2 !important;
    letter-spacing: clamp(-0.5px, -0.02em, -2px) !important;
}

h4,
.elementor-widget-heading h4,
h4.elementor-heading-title,
.cmsmasters-widget-title__heading h4 {
    font-size: clamp(17px, 2.4vw, 30px) !important;
    line-height: 1.25 !important;
    letter-spacing: clamp(-0.3px, -0.015em, -1px) !important;
}

h5,
.elementor-widget-heading h5,
h5.elementor-heading-title {
    font-size: clamp(16px, 1.9vw, 24px) !important;
    line-height: 1.35 !important;
}

h6,
.elementor-widget-heading h6,
h6.elementor-heading-title {
    font-size: clamp(10px, 1vw, 13px) !important;
}

body,
p,
.elementor-widget-text-editor,
.elementor-text-editor {
    font-size: clamp(15px, 1.3vw, 18px);
    line-height: 1.6;
}

/* Blockquote */
blockquote,
.wp-block-quote {
    font-size: clamp(18px, 2.5vw, 32px) !important;
    line-height: 1.35 !important;
}


/* ======================================================================
 * 3. ELEMENTOR CONTAINERS — overflow & width safety
 * ====================================================================== */

.elementor-section,
.elementor-container,
.e-container,
.e-con {
    max-width: 100% !important;
    overflow-x: hidden;
}

/* Remove horizontal scroll caused by full-width sections */
.elementor-section.elementor-section-full_width {
    left: 0 !important;
    right: 0 !important;
}


/* ======================================================================
 * 4. ULTRA-WIDE (≥2560px)
 * ====================================================================== */

@media only screen and (min-width: 2560px) {
    .elementor-section .elementor-container,
    .e-con-inner {
        max-width: 1800px;
        margin-left: auto;
        margin-right: auto;
    }

    body,
    p {
        font-size: 20px;
    }
}


/* ======================================================================
 * 5. LARGE SCREENS (1920px – 2559px)
 * ====================================================================== */

@media only screen and (min-width: 1920px) and (max-width: 2559px) {
    .elementor-section .elementor-container,
    .e-con-inner {
        max-width: 1520px;
        margin-left: auto;
        margin-right: auto;
    }

    body,
    p {
        font-size: 19px;
    }
}


/* ======================================================================
 * 6. WIDESCREEN — Elementor breakpoint (1601px – 1919px)
 * ====================================================================== */

@media only screen and (min-width: 1601px) and (max-width: 1919px) {
    .elementor-section .elementor-container,
    .e-con-inner {
        max-width: 1340px;
    }
}


/* ======================================================================
 * 7. LARGE LAPTOP (1440px – 1600px)
 * ====================================================================== */

@media only screen and (min-width: 1440px) and (max-width: 1600px) {
    .elementor-section .elementor-container,
    .e-con-inner {
        max-width: 1300px;
    }
}


/* ======================================================================
 * 8. STANDARD LAPTOP (1281px – 1439px)
 * ====================================================================== */

@media only screen and (min-width: 1281px) and (max-width: 1439px) {
    .elementor-section .elementor-container,
    .e-con-inner {
        max-width: 1180px;
    }

    .elementor-section > .elementor-container {
        padding-left: 40px;
        padding-right: 40px;
    }
}


/* ======================================================================
 * 9. SMALL LAPTOP (1181px – 1280px)
 * ====================================================================== */

@media only screen and (min-width: 1181px) and (max-width: 1280px) {
    .elementor-section .elementor-container,
    .e-con-inner {
        max-width: 1100px;
    }

    .elementor-section > .elementor-container {
        padding-left: 30px;
        padding-right: 30px;
    }
}


/* ======================================================================
 * 10. TABLET LANDSCAPE / LARGE TABLET (1025px – 1180px)
 *     Elementor tablet breakpoint top — show burger, fix nav
 * ====================================================================== */

@media only screen and (min-width: 1025px) and (max-width: 1180px) {
    /* Switch to burger at Elementor tablet breakpoint (not at 1025) */
    .cmsmasters-menu {
        display: none !important;
    }

    .cmsmasters-header-mid__inner,
    .cmsmasters-header-bot__inner {
        padding-left: 30px !important;
        padding-right: 30px !important;
    }

    /* 2-column grids on this range */
    .elementor-col-25,
    .elementor-col-20 {
        width: 50% !important;
    }

    /* WooCommerce: 2 columns */
    .woocommerce ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}


/* ======================================================================
 * 11. TABLET PORTRAIT (768px – 1024px)
 * ====================================================================== */

@media only screen and (min-width: 768px) and (max-width: 1024px) {
    /* Navigation */
    .cmsmasters-menu {
        display: none !important;
    }

    /* Container padding */
    .elementor-section > .elementor-container,
    .e-con-inner {
        padding-left: 30px !important;
        padding-right: 30px !important;
    }

    /* Two-column grid layouts */
    .elementor-col-25,
    .elementor-col-20,
    .elementor-col-33 {
        width: 50% !important;
    }

    /* Logo */
    .cmsmasters-logo img,
    .elementor-widget-cmsmasters-logo img {
        max-width: 180px !important;
        height: auto !important;
    }

    /* WooCommerce: 2 columns */
    .woocommerce ul.products,
    .woocommerce-page ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    .woocommerce ul.products li.product,
    .woocommerce-page ul.products li.product {
        width: 100% !important;
        float: none !important;
    }

    /* Footer: 2-column */
    .cmsmasters-footer .elementor-col-25 {
        width: 50% !important;
    }

    /* Section padding reduce */
    .elementor-section {
        padding-top: 80px !important;
        padding-bottom: 80px !important;
    }
}


/* ======================================================================
 * 12. FULL TABLET + BURGER MENU RANGE (max-width: 1180px)
 * ====================================================================== */

@media only screen and (max-width: 1180px) {
    /* Force desktop menu hidden, burger visible */
    .cmsmasters-menu {
        display: none !important;
    }

    /* Burger / hamburger button */
    .cmsmasters-burger,
    [class*="burger"],
    [class*="nav-toggle"],
    [class*="menu-toggle"],
    .cmsmasters-header-mid__burger {
        display: flex !important;
        align-items: center;
        justify-content: center;
        min-width: 44px;
        min-height: 44px;
        cursor: pointer;
    }

    /* Prevent images overflowing cards */
    .elementor-widget-image img {
        max-width: 100%;
        height: auto;
    }

    /* Table overflow */
    .woocommerce table.shop_table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}


/* ======================================================================
 * 13. MOBILE (max-width: 767px) — PRIMARY MOBILE BREAKPOINT
 * ====================================================================== */

@media only screen and (max-width: 767px) {

    /* ——— Global ——— */
    html,
    body {
        overflow-x: hidden;
    }

    /* ——— Elementor Columns → full width ——— */
    .elementor-col-10,
    .elementor-col-11,
    .elementor-col-12,
    .elementor-col-14,
    .elementor-col-16,
    .elementor-col-20,
    .elementor-col-25,
    .elementor-col-33,
    .elementor-col-40,
    .elementor-col-50,
    .elementor-col-60,
    .elementor-col-66,
    .elementor-col-75,
    .elementor-column {
        width: 100% !important;
        max-width: 100% !important;
    }

    .elementor-section .elementor-row {
        flex-wrap: wrap !important;
    }

    /* Elementor flex containers (E3 containers) */
    .e-con-inner {
        flex-wrap: wrap !important;
    }

    .e-con > .e-con-inner > .e-con,
    .e-con > .e-con-inner > .elementor-widget {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    /* ——— Container padding ——— */
    .elementor-section > .elementor-container,
    .e-con-inner {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    /* ——— Section vertical spacing ——— */
    .elementor-section {
        padding-top: 60px !important;
        padding-bottom: 60px !important;
    }

    /* ——— Header & Navigation ——— */
    #header,
    .cmsmasters-header {
        position: sticky;
        top: 0;
        z-index: 1000;
        will-change: transform;
    }

    .cmsmasters-menu {
        display: none !important;
    }

    .cmsmasters-logo img,
    .elementor-widget-cmsmasters-logo img {
        max-width: 160px !important;
        width: auto !important;
        height: auto !important;
    }

    /* Header bar height */
    .cmsmasters-header-mid__outer,
    .cmsmasters-header-bot__outer {
        padding-top: 10px !important;
        padding-bottom: 10px !important;
    }

    /* Header inner row: space-between */
    .cmsmasters-header-mid__inner,
    .cmsmasters-header-bot__inner {
        padding-left: 20px !important;
        padding-right: 20px !important;
        justify-content: space-between !important;
    }

    /* Top bar: hide on mobile */
    .cmsmasters-header-top__outer {
        display: none !important;
    }

    /* ——— Off-canvas / Drawer menu ——— */
    .cmsmasters-offcanvas,
    [class*="offcanvas"],
    .cmsmasters-nav-offcanvas {
        max-width: min(340px, 88vw) !important;
        width: min(340px, 88vw) !important;
    }

    /* Off-canvas nav links: touch-friendly */
    .cmsmasters-offcanvas .cmsmasters-menu__list li a,
    [class*="offcanvas"] li a {
        min-height: 44px;
        display: flex !important;
        align-items: center;
        padding: 10px 20px !important;
    }

    /* ——— Hero / Banner ——— */
    [class*="hero"],
    [class*="banner"],
    .elementor-section.elementor-section-full_width {
        min-height: auto !important;
    }

    /* Background video: cover */
    .elementor-background-video-container video {
        object-fit: cover !important;
        width: 100% !important;
        height: 100% !important;
    }

    /* ——— Images ——— */
    img {
        max-width: 100%;
        height: auto;
    }

    .elementor-widget-image {
        text-align: center;
    }

    .elementor-widget-image img {
        margin-left: auto;
        margin-right: auto;
    }

    /* ——— Buttons & CTAs ——— */
    .elementor-button,
    .cmsmasters-btn,
    .woocommerce a.button,
    .woocommerce button.button,
    .woocommerce input.button,
    button,
    input[type="submit"],
    .wp-block-button__link {
        min-height: 44px;
        padding: 12px 22px !important;
        font-size: 11px !important;
        letter-spacing: 1.5px !important;
    }

    .elementor-widget-button .elementor-button-wrapper {
        text-align: center;
    }

    /* ——— Forms ——— */
    input[type="text"],
    input[type="email"],
    input[type="tel"],
    input[type="number"],
    input[type="password"],
    input[type="search"],
    input[type="url"],
    textarea,
    select,
    .forminator-input,
    .forminator-textarea,
    .forminator-select {
        width: 100% !important;
        min-height: 48px;
        font-size: 16px !important; /* Prevents iOS auto-zoom on focus */
        padding: 12px 18px !important;
    }

    textarea,
    .forminator-textarea {
        min-height: 120px !important;
        resize: vertical;
    }

    /* Forminator multi-column: force single */
    .forminator-col-6,
    .forminator-col-4,
    .forminator-col-3 {
        width: 100% !important;
        float: none !important;
    }

    .forminator-row {
        margin-bottom: 14px;
    }

    /* Forminator submit button */
    .forminator-btn-submit {
        width: 100% !important;
        min-height: 48px !important;
    }

    /* ——— Service / Post / Team cards ——— */
    .cmsmasters-blog__post,
    [class*="service-card"],
    [class*="team-member"],
    [class*="doctor-card"],
    [class*="post-card"] {
        width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    /* ——— Testimonials ——— */
    [class*="testimonial"] {
        text-align: center;
    }

    /* ——— Tabs ——— */
    .elementor-tab-title,
    .elementor-tab-title a {
        font-size: 13px !important;
        padding: 10px 14px !important;
        min-height: 44px;
    }

    /* ——— Accordion ——— */
    .elementor-accordion-title {
        font-size: 15px !important;
        min-height: 44px;
    }

    /* ——— Video embeds (16:9) ——— */
    .elementor-video-container,
    .cmsmasters-video-wrapper,
    .wp-block-embed__wrapper {
        position: relative;
        width: 100% !important;
        padding-top: 56.25%;
        height: 0 !important;
    }

    .elementor-video-container iframe,
    .cmsmasters-video-wrapper iframe,
    .elementor-video-container video,
    .wp-block-embed__wrapper iframe {
        position: absolute;
        top: 0;
        left: 0;
        width: 100% !important;
        height: 100% !important;
    }

    /* ——— WooCommerce ——— */
    .woocommerce ul.products,
    .woocommerce-page ul.products {
        grid-template-columns: 1fr !important;
        columns: 1 !important;
    }

    .woocommerce ul.products li.product,
    .woocommerce-page ul.products li.product {
        width: 100% !important;
        float: none !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    /* Product single page */
    .woocommerce div.product div.images,
    .woocommerce div.product div.summary {
        width: 100% !important;
        float: none !important;
        padding: 0 !important;
    }

    /* Cart table */
    .woocommerce table.shop_table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        font-size: 14px;
    }

    .woocommerce table.shop_table td,
    .woocommerce table.shop_table th {
        padding: 10px 8px !important;
    }

    .woocommerce-cart .woocommerce-cart-form__cart-item .product-thumbnail img {
        max-width: 64px !important;
    }

    /* Checkout */
    .woocommerce-checkout #customer_details,
    .woocommerce-checkout #order_review_heading,
    .woocommerce-checkout #order_review {
        width: 100% !important;
        float: none !important;
        padding: 0 !important;
    }

    .woocommerce form .form-row {
        width: 100% !important;
        float: none !important;
    }

    .woocommerce form .form-row input.input-text,
    .woocommerce form .form-row select {
        font-size: 16px !important; /* Prevent iOS zoom */
    }

    /* ——— Footer ——— */
    .cmsmasters-footer .elementor-column {
        width: 100% !important;
        text-align: center !important;
    }

    .cmsmasters-footer .elementor-widget-text-editor {
        text-align: center;
    }

    .cmsmasters-footer [class*="social"],
    .cmsmasters-footer .cmsmasters-social-icons {
        justify-content: center !important;
    }

    .cmsmasters-footer [class*="info-item"],
    .cmsmasters-footer [class*="contact"] {
        text-align: center;
    }

    /* Footer copyright bar */
    .cmsmasters-footer-bottom .elementor-row {
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
        gap: 10px;
    }

    /* ——— Popup / Modal ——— */
    .elementor[data-elementor-type="cmsmasters_popup"] {
        width: 90vw !important;
        max-width: 90vw !important;
        max-height: 88vh !important;
        overflow-y: auto !important;
    }

    .elementor[data-elementor-type="cmsmasters_popup"] .elementor-section > .elementor-container {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    /* ——— Breadcrumbs ——— */
    .cmsmasters-widget-breadcrumbs {
        font-size: 13px !important;
    }

    /* ——— Page heading ——— */
    .cmsmasters-heading-section {
        padding-top: 80px !important;
        padding-bottom: 60px !important;
    }
}


/* ======================================================================
 * 14. SMALL PHONES (max-width: 480px)
 * ====================================================================== */

@media only screen and (max-width: 480px) {
    .elementor-section > .elementor-container,
    .e-con-inner {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .elementor-section {
        padding-top: 48px !important;
        padding-bottom: 48px !important;
    }

    .cmsmasters-logo img,
    .elementor-widget-cmsmasters-logo img {
        max-width: 140px !important;
    }

    /* Tighter heading leading on very small screens */
    h1, h1.elementor-heading-title { line-height: 1.05 !important; }
    h2, h2.elementor-heading-title { line-height: 1.1 !important; }

    /* Full-width buttons */
    .elementor-button,
    .cmsmasters-btn {
        display: block !important;
        width: 100% !important;
        text-align: center !important;
    }

    /* Remove side-by-side button groups */
    .elementor-button-wrapper + .elementor-button-wrapper {
        margin-top: 12px !important;
        margin-left: 0 !important;
    }

    /* WooCommerce product price */
    .woocommerce ul.products li.product .woocommerce-loop-product__title {
        font-size: 16px !important;
    }

    /* Tabs: vertical stack on tiny screens */
    .elementor-tabs-wrapper {
        flex-direction: column !important;
    }

    .elementor-tab-title {
        width: 100% !important;
        text-align: left !important;
    }
}


/* ======================================================================
 * 15. TINY PHONES (max-width: 375px)
 * ====================================================================== */

@media only screen and (max-width: 375px) {
    .elementor-section > .elementor-container,
    .e-con-inner {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    /* Safety-net hard values for the very smallest screens */
    h1, h1.elementor-heading-title {
        font-size: 26px !important;
        letter-spacing: -0.3px !important;
    }

    h2, h2.elementor-heading-title {
        font-size: 22px !important;
    }

    h3, h3.elementor-heading-title {
        font-size: 19px !important;
    }

    .cmsmasters-logo img {
        max-width: 130px !important;
    }

    .elementor-button,
    .cmsmasters-btn {
        font-size: 10px !important;
        letter-spacing: 1.2px !important;
        padding: 11px 18px !important;
    }

    /* Off-canvas menu fits even on 320px */
    .cmsmasters-offcanvas,
    [class*="offcanvas"] {
        max-width: 88vw !important;
        width: 88vw !important;
    }
}


/* ======================================================================
 * 16. RETINA / HIGH-DPI
 * ====================================================================== */

@media only screen and (-webkit-min-device-pixel-ratio: 2),
       only screen and (min-resolution: 192dpi) {
    /* Prevent blurry text rendering on retina */
    body {
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
    }
}


/* ======================================================================
 * 17. LANDSCAPE ORIENTATION — phones & small tablets
 * ====================================================================== */

@media only screen and (max-width: 900px) and (orientation: landscape) {
    /* Reduce hero height in landscape to show content without scrolling */
    [class*="hero"],
    [class*="banner"] {
        min-height: 70vh !important;
    }

    /* Sticky header takes less space in landscape */
    .cmsmasters-header-mid__outer,
    .cmsmasters-header-bot__outer {
        padding-top: 8px !important;
        padding-bottom: 8px !important;
    }

    /* Off-canvas: half screen width in landscape */
    .cmsmasters-offcanvas,
    [class*="offcanvas"] {
        max-width: 60vw !important;
        width: 60vw !important;
        overflow-y: auto;
    }
}


/* ======================================================================
 * 18. TOUCH TARGETS & INTERACTIVE ELEMENTS
 *     Minimum 44×44px tap targets for all interactive elements
 * ====================================================================== */

a,
button,
[role="button"],
input[type="submit"],
input[type="button"],
.elementor-button,
.cmsmasters-btn,
.woocommerce a.button,
.woocommerce button.button,
.page-numbers,
.cmsmasters-social-icon,
[class*="social-icon"] a {
    touch-action: manipulation; /* Eliminate 300ms tap delay */
}

@media only screen and (max-width: 1024px) {
    /* Touch target enforcement on all interactive elements */
    .cmsmasters-menu__list li a,
    [class*="offcanvas"] li a,
    [class*="nav-menu"] li a,
    .cmsmasters-social-icon a,
    [class*="social-icon"] a,
    .page-numbers {
        min-height: 44px;
        min-width: 44px;
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
    }
}


/* ======================================================================
 * 19. ACCESSIBILITY
 * ====================================================================== */

/* Focus rings — visible on keyboard navigation */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
    outline: 3px solid #708E86;
    outline-offset: 3px;
    border-radius: 4px;
}

/* Remove focus ring only for mouse users */
a:focus:not(:focus-visible),
button:focus:not(:focus-visible) {
    outline: none;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}


/* ======================================================================
 * 20. PERFORMANCE — GPU LAYERS & RENDERING HINTS
 * ====================================================================== */

/* Sticky header — promote to own compositing layer */
#header,
.cmsmasters-header {
    will-change: transform;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

/* Prevent layout shift for lazy-loaded images */
img[loading="lazy"] {
    min-height: 1px;
}

/* Smooth scrolling container */
html {
    scroll-padding-top: 80px; /* Offset for sticky header */
}

/* ======================================================================
 * 21. CLS PREVENTION — Cumulative Layout Shift fixes
 *     Images without explicit dimensions cause layout jumps as they load.
 *     These rules prevent the page from "jumping" while content renders.
 * ====================================================================== */

/* Reserve space for images before they load */
.elementor-widget-image img,
.cmsmasters-blog__post img,
.woocommerce ul.products li.product img,
.woocommerce div.product div.images img,
[class*="team"] img,
[class*="doctor"] img,
[class*="testimonial"] img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: auto;
}

/* Hero/banner: prevent height jump on load */
.elementor-background-video-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

/* Prevent font-swap layout shift on headings */
h1, h2, h3, h4, h5, h6,
.elementor-heading-title {
    font-display: swap;
    text-rendering: optimizeLegibility;
}

/* Placeholder shimmer for lazy-loading images (avoids blank space) */
.elementor-widget-image .elementor-widget-container {
    background-color: #EFF6F4;
    min-height: 1px;
}

/* Prevent horizontal scroll from any element */
.elementor-section,
.e-con,
.elementor-container {
    overflow-x: hidden;
}


/* ======================================================================
 * 22. CONTACT PAGE — Typo fix display patch
 *     Visual fix while the Elementor content typo is corrected in admin
 * ====================================================================== */

/* Force correct rendering for the hours section heading */
.elementor-widget-heading [class*="heading"] {
    word-break: normal;
    hyphens: auto;
    -webkit-hyphens: auto;
}


/* ======================================================================
 * 23. TEAM PAGE — Profile completeness improvements
 * ====================================================================== */

/* Doctor/team member card: fixed aspect ratio for consistency */
.cmsms_doctor .cmsmasters-doctor__image img,
[class*="doctor-card"] img,
[class*="team-member"] img {
    aspect-ratio: 3 / 4;
    object-fit: cover;
    object-position: top center;
    width: 100%;
    height: auto;
}

/* Team page: ensure bio text is readable */
.cmsms_doctor .cmsmasters-doctor__bio,
[class*="doctor-bio"] {
    font-size: clamp(15px, 1.3vw, 17px);
    line-height: 1.65;
    color: #687276;
}


/* ======================================================================
 * 24. FORM UX IMPROVEMENTS
 * ====================================================================== */

/* Date/time dropdowns: visual consistency */
.forminator-select select,
.forminator-field select {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23687276' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
    padding-right: 40px !important;
    cursor: pointer;
}

/* Focus state: use brand colour */
.forminator-input:focus,
.forminator-textarea:focus,
.forminator-select select:focus,
input:focus,
textarea:focus,
select:focus {
    outline: none;
    border-color: #708E86 !important;
    box-shadow: 0 0 0 3px rgba(112, 142, 134, 0.15) !important;
}

/* Submit button: full width on all screens for maximum tap area */
.forminator-btn,
.forminator-btn-submit {
    width: 100% !important;
    justify-content: center !important;
}


/* ======================================================================
 * 25. RESULTS PAGE — Before/After layout
 * ====================================================================== */

/* Result cards: consistent image presentation */
[class*="result"] img,
.cmsmasters-blog__post-image img {
    aspect-ratio: 4 / 3;
    object-fit: cover;
    width: 100%;
    height: auto;
}


/* ======================================================================
 * 26. PRINT STYLES — basic print optimisation
 * ====================================================================== */

@media print {
    #header,
    .cmsmasters-header,
    footer,
    .cmsmasters-footer,
    [class*="popup"],
    .elementor-widget-button,
    nav {
        display: none !important;
    }

    body {
        font-size: 12pt;
        color: #000;
        background: #fff;
    }

    h1, h2, h3 {
        page-break-after: avoid;
    }

    img {
        max-width: 100% !important;
        page-break-inside: avoid;
    }
}