/* ============================================================
   pt-mobile.css — Merged mobile overrides
   Consolidated from: pt-mobile-enhancements.css + pt-mobile-fixes.css
   Load order PRESERVED: enhancements → fixes (last wins)
   ============================================================ */

/* ============== SECTION 1: pt-mobile-enhancements.css ============== */
/* ════════════════════════════════════════════════════════
   Global Image Fix — যেকোনো size/ratio ছবি auto fix
   ════════════════════════════════════════════════════════ */

/* Theme-এর সব img — distort হওয়া বন্ধ */
.pt-slide-img-col img,
.pt-slide-img-link img,
.pt-rv-avatar img,
.pt-mpp-card-thumb img,
.pt-ra-thumb img,
.pt-blog-thumb img,
.pt-lc-thumb,
.ptb-card__thumb img {
object-fit: cover !important;
object-position: center center !important;
max-width: 100% !important;
height: 100% !important;
display: block !important;
}

/* Portrait ছবি (tall) — face/subject উপরে থাকে, top-align ভালো */
.pt-rv-avatar img,
.pt-slide-img-col img {
object-position: center top !important;
}

/* Contain mode — logo/icon ছবি stretch হওয়া উচিত না */
.pt-lc-thumb,
[class*="logo"] img,
[class*="brand"] img {
object-fit: contain !important;
object-position: center center !important;
}

/* ════════════════════════════════════════════════════════
   PluginTheme — Mobile Enhancements + Premium Features
   ════════════════════════════════════════════════════════ */

/* ── Universal touch-friendly sizing on mobile ── */
@media (max-width: 768px) {
  /* All buttons minimum 44x44px touch target (Apple HIG) */
button, .button, [role="button"],
input[type="submit"], input[type="button"] {
min-height: 44px !important;
padding-left: 16px !important;
padding-right: 16px !important;
  }
  /* All inputs 16px font (prevents iOS zoom) */
input[type="text"], input[type="email"], input[type="tel"],
input[type="number"], input[type="password"], input[type="search"],
textarea, select {
font-size: 16px !important;
  }
  /* Links wrapping prevention */
a { word-wrap: break-word; overflow-wrap: break-word; }
  /* Tables scrollable on mobile */
table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }
  /* Images responsive by default */
img { max-width: 100%; height: auto; }
  /* Container padding */
.container { padding-left: 16px !important; padding-right: 16px !important; }
}

/* ════════════════════════════════════════════════════════
   FEATURE 1: Back to Top Button
   ════════════════════════════════════════════════════════ */
.pt-back-top {
position: fixed;
bottom: 24px;
right: 24px;
width: 48px;
height: 48px;
border-radius: 50%;
background: linear-gradient(135deg, #ff8c2a, #a855f7);
color: #fff;
font-size: 1.4rem;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
border: 0;
box-shadow: 0 8px 24px rgba(99, 102, 241, 0.4);
opacity: 0;
visibility: hidden;
transform: translateY(20px);
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
z-index: 9990;
}
.pt-back-top.visible {
opacity: 1;
visibility: visible;
transform: translateY(0);
}
.pt-back-top:hover {
transform: translateY(-4px);
box-shadow: 0 12px 32px rgba(99, 102, 241, 0.5);
}
@media (max-width: 768px) {
.pt-back-top {
bottom: 80px; /* Above mobile cart sticky bar */
right: 16px;
width: 44px;
height: 44px;
  }
}

/* ════════════════════════════════════════════════════════
   FEATURE 2: Reading Progress Bar (top of page)
   ════════════════════════════════════════════════════════ */
.pt-reading-progress {
position: fixed;
top: 0;
left: 0;
height: 3px;
background: linear-gradient(90deg, #ff8c2a, #a855f7, #ec4899);
z-index: 9999;
transition: width 0.1s ease-out;
width: 0;
}

/* ════════════════════════════════════════════════════════
   FEATURE 4: Smooth Scroll Behavior
   ════════════════════════════════════════════════════════ */
html {
scroll-behavior: smooth;
scroll-padding-top: 56px; /* matches mobile navbar height */
}

/* ════════════════════════════════════════════════════════
   FEATURE 5: Lazy Image Skeleton Loader
   ════════════════════════════════════════════════════════ */
img[loading="lazy"] {
background: linear-gradient(110deg, #ececec 8%, #f5f5f5 18%, #ececec 33%);
background-size: 200% 100%;
animation: pt-skeleton 1.5s ease-in-out infinite;
}
img[loading="lazy"].loaded { animation: none; background: none; }
@keyframes pt-skeleton {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* ════════════════════════════════════════════════════════
   FEATURE 6: Cookie Consent Bar (Premium)
   ════════════════════════════════════════════════════════ */
.pt-cookie-consent {
position: fixed;
bottom: 0;
left: 0;
right: 0;
background: rgba(12,25,41, 0.97);
backdrop-filter: blur(12px);
color: #fff;
padding: 18px 24px;
z-index: 9995;
transform: translateY(100%);
transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.2);
}
.pt-cookie-consent.show { transform: translateY(0); }
.pt-cookie-inner {
max-width: 1200px;
margin: 0 auto;
display: flex;
align-items: center;
justify-content: space-between;
gap: 20px;
flex-wrap: wrap;
}
.pt-cookie-text { font-size: 0.92rem; line-height: 1.5; flex: 1; min-width: 280px; }
.pt-cookie-text a { color: #fbbf24; text-decoration: underline; }
.pt-cookie-actions { display: flex; gap: 10px; flex-shrink: 0; }
.pt-cookie-btn {
padding: 10px 20px;
border-radius: 8px;
font-size: 0.88rem;
font-weight: 700;
border: 0;
cursor: pointer;
transition: all 0.2s;
}
.pt-cookie-accept { background: #ff8c2a; color: #fff; }
.pt-cookie-accept:hover { background: #4f46e5; transform: translateY(-1px); }
.pt-cookie-reject { background: rgba(255, 255, 255, 0.1); color: #fff; }
@media (max-width: 560px) {
.pt-cookie-inner { flex-direction: column; align-items: stretch; gap: 14px; }
.pt-cookie-actions { width: 100%; }
.pt-cookie-btn { flex: 1; }
}

/* ════════════════════════════════════════════════════════
   FEATURE 7: Loading Skeleton for AJAX
   ════════════════════════════════════════════════════════ */
.pt-skeleton-card {
background: linear-gradient(110deg, #ececec 8%, #f5f5f5 18%, #ececec 33%);
background-size: 200% 100%;
animation: pt-skeleton 1.5s ease-in-out infinite;
border-radius: 12px;
height: 200px;
margin-bottom: 16px;
}

/* ════════════════════════════════════════════════════════
   FEATURE 8: Better Mobile Menu (hamburger)
   ════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
.pt-mobile-menu-toggle {
display: flex !important;
flex-direction: column;
justify-content: center;
align-items: center;
width: 40px;
height: 40px;
border-radius: 8px;
background: transparent;
border: 0;
cursor: pointer;
gap: 4px;
  }
.pt-mobile-menu-toggle span {
width: 22px;
height: 2px;
background: currentColor;
border-radius: 2px;
transition: all 0.25s;
  }
.pt-mobile-menu-toggle.active span:nth-child(1) {
transform: translateY(6px) rotate(45deg);
  }
.pt-mobile-menu-toggle.active span:nth-child(2) {
opacity: 0;
  }
.pt-mobile-menu-toggle.active span:nth-child(3) {
transform: translateY(-6px) rotate(-45deg);
  }
}

/* ════════════════════════════════════════════════════════
   FEATURE 9: Print Styles (clean print version)
   ════════════════════════════════════════════════════════ */
@media print {
.pt-back-top,
.pt-cookie-consent,
.pt-reading-progress,
.pt-mobile-menu-toggle,
.ptcc-steps-bar,
.pt-cta-section,
.pt-newsletter-section,
header, footer, .header, .footer { display: none !important; }
body { background: #fff !important; color: #000 !important; }
a { color: #000 !important; text-decoration: underline !important; }
.container { max-width: 100% !important; padding: 0 !important; }
}

/* ════════════════════════════════════════════════════════
   FIX: Existing tiny font input
   ════════════════════════════════════════════════════════ */
.pt-faq-row input[type="text"] { font-size: 16px !important; }

/* ════════════════════════════════════════════════════════
   v2.3.0 — Mobile Slider Fixes (Banner Plugin Compatibility)
   ════════════════════════════════════════════════════════ */
@media (max-width: 768px) {

  /* ── 1. Slider counter "4 / 4" — relocate / hide ── */
.ptbs-counter,
.pt-slide-counter,
.ptbs-slide-counter,
  [class*="slide-counter"],
  [class*="banner-counter"] {
position: absolute !important;
top: 12px !important;
right: 12px !important;
z-index: 5 !important;
font-size: .65rem !important;
padding: 4px 10px !important;
background: rgba(0,0,0,.5) !important;
backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
border: 1px solid rgba(255,255,255,.15) !important;
border-radius: 12px !important;
color: rgba(255,255,255,.9) !important;
font-weight: 700 !important;
pointer-events: none !important;
  }

  /* ── 2. Banner plugin slide layout (any class name) ── */
.ptbs-slider,
.ptbs-banner,
  [class*="ptbs"][class*="slider"],
  [class*="banner-slider"] {
position: relative !important;
border-radius: 0 0 24px 24px !important;
overflow: hidden !important;
  }

  /* ── 3. Pagination dots inside slider — bottom centered, NOT overlapping CTA ── */
.ptbs-dots,
.ptbs-pagination,
  [class*="ptbs-dot"],
  [class*="banner-dots"],
  [class*="slider-pagination"] {
position: absolute !important;
bottom: 14px !important;
left: 50% !important;
transform: translateX(-50%) !important;
display: flex !important;
gap: 6px !important;
z-index: 4 !important;
justify-content: center !important;
background: rgba(0,0,0,.4) !important;
backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
padding: 6px 12px !important;
border-radius: 30px !important;
  }
.ptbs-dot,
  [class*="ptbs-dot"]:not([class*="dots"]),
  [class*="banner-dot"]:not([class*="dots"]) {
width: 8px !important;
height: 8px !important;
border-radius: 50% !important;
background: rgba(255,255,255,.4) !important;
border: 0 !important;
cursor: pointer !important;
transition: all .25s !important;
padding: 0 !important;
  }
.ptbs-dot.active,
.ptbs-dot.is-active,
  [class*="ptbs-dot"].active {
background: #fff !important;
width: 24px !important;
border-radius: 4px !important;
  }

  /* ── 4. Prev/Next arrows — vertical center, NOT below CTA ── */
.ptbs-arrow,
.ptbs-prev,
.ptbs-next,
  [class*="ptbs-arrow"],
  [class*="banner-prev"],
  [class*="banner-next"],
  [class*="slider-arrow"]:not(.pt-slider-arrow) {
position: absolute !important;
top: 50% !important;
transform: translateY(-50%) !important;
width: 40px !important;
height: 40px !important;
border-radius: 50% !important;
background: rgba(0,0,0,.5) !important;
backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
border: 1px solid rgba(255,255,255,.2) !important;
color: #fff !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
z-index: 4 !important;
cursor: pointer !important;
font-size: 1rem !important;
padding: 0 !important;
transition: background .2s !important;
  }
.ptbs-prev,
  [class*="banner-prev"],
  [class*="-prev"]:not([class*="prevent"]) {
left: 12px !important;
right: auto !important;
  }
.ptbs-next,
  [class*="banner-next"],
  [class*="-next"]:not([class*="next-step"]) {
right: 12px !important;
left: auto !important;
  }
.ptbs-arrow:active,
  [class*="ptbs-arrow"]:active {
background: rgba(0,0,0,.7) !important;
transform: translateY(-50%) scale(.92) !important;
  }

  /* ── 5. Slide content padding — bottom space for dots ── */
.ptbs-slide,
  [class*="ptbs-slide"]:not([class*="slider"]):not([class*="counter"]) {
padding-bottom: 60px !important;
min-height: 360px !important;
box-sizing: border-box !important;
  }

  /* ── 6. CTA button inside slide — full width, prominent ── */
.ptbs-cta,
.ptbs-button,
  [class*="ptbs-cta"],
  [class*="banner-cta"],
  [class*="banner-btn"] {
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
padding: 12px 24px !important;
border-radius: 12px !important;
font-weight: 800 !important;
font-size: .92rem !important;
text-decoration: none !important;
margin-top: 12px !important;
margin-bottom: 36px !important;  /* leave space for dots */
box-shadow: 0 8px 20px rgba(168,85,247,.35) !important;
  }

  /* ── 7. Slide title responsive ── */
.ptbs-title,
  [class*="ptbs-title"]:not([class*="banner-titles"]) {
font-size: 1.5rem !important;
line-height: 1.2 !important;
  }
.ptbs-subtitle,
.ptbs-desc,
  [class*="ptbs-desc"] {
font-size: .92rem !important;
line-height: 1.5 !important;
color: rgba(255,255,255,.75) !important;
  }
}

/* ── Tiny phones (≤ 380px) ── */
@media (max-width: 380px) {
.ptbs-arrow,
  [class*="ptbs-arrow"] {
width: 36px !important;
height: 36px !important;
  }
.ptbs-prev, [class*="banner-prev"] { left: 8px !important; }
.ptbs-next, [class*="banner-next"] { right: 8px !important; }
.ptbs-dots, [class*="banner-dots"] { padding: 5px 10px !important; }
.ptbs-title, [class*="ptbs-title"] { font-size: 1.3rem !important; }
}

/* ════════════════════════════════════════════════════════
   v2.3.1 — Header/Footer Visibility Guarantee
   Ensures site-header and site-footer are ALWAYS visible
   on every page, regardless of overlapping styles.
   ════════════════════════════════════════════════════════ */
.site-header,
header#masthead,
header.site-header,
.pt-topbar {
display: block !important;
visibility: visible !important;
opacity: 1 !important;
position: relative;
z-index: 100;
}
/* .pt-navbar display is handled by the flex layout block below — not overridden here */
.pt-navbar {
visibility: visible !important;
opacity: 1 !important;
position: relative;
z-index: 100;
}

.site-footer,
footer#colophon,
footer.site-footer {
display: block !important;
visibility: visible !important;
opacity: 1 !important;
position: relative !important;
z-index: 10 !important;
background: var(--color-dark, #0a0820) !important;
margin-top: 0 !important;
clear: both !important;
}

/* Single product page — ensure footer doesn't blend with dark content */
body.single-product .site-footer {
border-top: 1px solid rgba(255,255,255,.05);
}

/* Make sure no rogue rule hides footer */
body .site-footer { display: block !important; }
body footer#colophon { display: block !important; }

/* Print-only override — these should ONLY hide in print, not screen */
@media screen {
.site-header, .site-footer, header#masthead, footer#colophon {
        display: block !important;
    }
}

/* ════════════════════════════════════════════════════════
   v2.3.9 — FINAL Navbar Layout Fix (Bulletproof)
   ════════════════════════════════════════════════════════ */
.pt-navbar {
display: flex !important;
flex-direction: row !important;
flex-wrap: nowrap !important;
align-items: center !important;
justify-content: space-between !important;
}
.pt-navbar > .pt-nav-links {
flex: 1 1 auto !important;
min-width: 0;
}
.pt-navbar > .pt-nav-right {
flex: 0 0 auto !important;
margin-left: auto !important;
display: inline-flex !important;
flex-direction: row !important;
flex-wrap: nowrap !important;
align-items: center !important;
}
.pt-nav-right #ptb-search-trigger,
.pt-nav-right .pt-nav-cta,
.pt-nav-right .pt-nav-cta-cart {
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
vertical-align: middle !important;
flex-shrink: 0 !important;
}

/* DESKTOP: Hide hamburger menu (only mobile shows it) */
.pt-mobile-toggle,
.pt-nav-right .pt-mobile-toggle,
button.pt-mobile-toggle,
#ptMobileToggle {
display: none !important;
}

/* MOBILE (≤768px): Hide nav links, show hamburger */
@media (max-width: 768px) {
.pt-nav-links { display: none !important; }
.pt-nav-right { margin-left: auto !important; }
.pt-mobile-toggle,
.pt-nav-right .pt-mobile-toggle,
button.pt-mobile-toggle,
#ptMobileToggle {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex-shrink: 0 !important;
    }
    /* Hide desktop search trigger on mobile - mobile drawer has its own search */
    /* Actually keep search visible on mobile - user wants quick access */
}

/* ════════════════════════════════════════════════════════
   v2.5.1 — Mobile Slider Arrow Position Fix
   ════════════════════════════════════════════════════════ */

.pt-back-top {
    /* Ensure z-index above content but below modals */
z-index: 9990 !important;
    /* Slight transparency so it doesn't dominate visually */
opacity: 0.92;
}
.pt-back-top:hover { opacity: 1; }

@media (max-width: 768px) {
.pt-back-top {
        bottom: 88px !important;
        right: 12px !important;
        width: 38px !important;
        height: 38px !important;
    }
}

/* On extra small phones, give them even more room */
@media (max-width: 380px) {
        .pt-back-top {
        bottom: 76px !important;
        width: 36px !important;
        height: 36px !important;
    }
}

/* ════════════════════════════════════════════════════════
   v2.5.1 — Slider Arrow Mobile Fix (visible + properly sized)
   ════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
    /* Banner slider prev/next arrows — ensure proper rendering */
.ptbs-arrow,
.ptbs-prev,
.ptbs-next,
    [class*="ptbs-arrow"],
    [class*="banner-prev"],
    [class*="banner-next"] {
        position: absolute !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        width: 38px !important;
        height: 38px !important;
        min-width: 38px !important;
        min-height: 38px !important;
        max-width: 38px !important;
        max-height: 38px !important;
        border-radius: 50% !important;
        background: rgba(0,0,0,.55) !important;
        backdrop-filter: blur(8px) !important;
        -webkit-backdrop-filter: blur(8px) !important;
        border: 1.5px solid rgba(255,255,255,.25) !important;
        color: #fff !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        z-index: 5 !important;
        cursor: pointer !important;
        font-size: 0.95rem !important;
        line-height: 1 !important;
        padding: 0 !important;
        margin: 0 !important;
        font-family: inherit !important;
        -webkit-appearance: none !important;
        appearance: none !important;
        box-sizing: border-box !important;
    }
    /* Prev (left) */
.ptbs-prev,
    [class*="banner-prev"],
    [class*="ptbs-prev"] {
        left: 10px !important;
        right: auto !important;
    }
    /* Next (right) */
.ptbs-next,
    [class*="banner-next"],
    [class*="ptbs-next"] {
        right: 10px !important;
        left: auto !important;
    }
    /* Arrow icon/text inside button */
.ptbs-arrow > *,
.ptbs-prev > *,
.ptbs-next > *,
    [class*="ptbs-arrow"] > *,
    [class*="banner-prev"] > *,
    [class*="banner-next"] > * {
        max-width: 16px !important;
        max-height: 16px !important;
        font-size: 0.95rem !important;
    }
    /* Active state */
.ptbs-arrow:active,
    [class*="ptbs-arrow"]:active {
        background: rgba(0,0,0,.75) !important;
        transform: translateY(-50%) scale(0.92) !important;
    }
}

/* ════════════════════════════════════════════════════════
   v2.5.6 — Topbar Single-Row Layout (Bulletproof)
   ════════════════════════════════════════════════════════ */
.pt-topbar {
display: flex !important;
flex-direction: row !important;
flex-wrap: nowrap !important;
align-items: center !important;
justify-content: space-between !important;
}
.pt-topbar > .pt-topbar-left,
.pt-topbar > .pt-topbar-right {
flex-wrap: nowrap !important;
flex-shrink: 0 !important;
}
.pt-topbar-left .pt-logo {
flex-shrink: 0 !important;
}
.pt-topbar-links {
flex-shrink: 0 !important;
flex-wrap: nowrap !important;
}

/* Tablet & smaller — adjust progressive hiding */
@media (max-width: 1100px) {
.pt-topbar { padding: 6px 16px !important; }
.pt-topbar-left { gap: 12px !important; }
.pt-topbar-links a {
        padding: 4px 6px !important;
        font-size: 0.7rem !important;
    }
}

@media (max-width: 900px) {
    /* Hide secondary topbar links to save space */
.pt-topbar-links { display: none !important; }
.pt-topbar .pt-badge-sol { display: none !important; }
}

@media (max-width: 700px) {
.pt-topbar .pt-badge-contact { display: none !important; }
.pt-topbar .pt-badge-premium { display: none !important; }
}

@media (max-width: 540px) {
.pt-topbar { padding: 4px 12px !important; min-height: 48px !important; }
.pt-topbar .pt-lang-btn { padding: 4px 8px !important; font-size: 0.72rem !important; }
}

/* ════════════════════════════════════════════════════════
   FIX: Double Logo — Hide topbar logo on mobile
   (Navbar already shows pt-mob-logo on mobile)
   ════════════════════════════════════════════════════════ */
@media (max-width: 960px) {
.pt-topbar .pt-logo { display: none !important; }
.pt-topbar-left { gap: 8px !important; }
}

/* ════════════════════════════════════════════════════════
   v2.6.7 — Universal Mobile Safety (catch-all for any page)
   ════════════════════════════════════════════════════════ */

/* Single post page mobile */
@media (max-width: 768px) {
.single-post .entry-content,
.single-product .entry-content,
.single .post,
.page .entry-content {
        padding: 0 16px !important;
    }
.single-post h1.entry-title,
.single h1.entry-title,
.page h1.entry-title {
        font-size: 1.65rem !important;
        line-height: 1.25 !important;
        margin-bottom: 16px !important;
    }
.single-post .entry-content h2,
.single .entry-content h2 {
        font-size: 1.35rem !important;
    }
.single-post .entry-content h3,
.single .entry-content h3 {
        font-size: 1.15rem !important;
    }
.single-post .entry-content p,
.single .entry-content p {
        font-size: 0.95rem !important;
        line-height: 1.7 !important;
    }
.single-post .entry-content img,
.single .entry-content img,
.page .entry-content img {
        max-width: 100% !important;
        height: auto !important;
        border-radius: 10px !important;
    }
    /* Comments */
.comments-area {
        padding: 0 16px !important;
    }
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
        width: 100% !important;
        font-size: 16px !important;
        padding: 12px !important;
        box-sizing: border-box !important;
    }
}

/* Tables responsive */
@media (max-width: 768px) {
table {
        display: block !important;
        overflow-x: auto !important;
        white-space: nowrap !important;
        -webkit-overflow-scrolling: touch !important;
        max-width: 100% !important;
    }
.wp-block-table {
        overflow-x: auto !important;
    }
}

/* Embedded videos (YouTube, Vimeo) */
@media (max-width: 768px) {
iframe[src*="youtube.com"],
iframe[src*="youtu.be"],
iframe[src*="vimeo.com"] {
        max-width: 100% !important;
        aspect-ratio: 16/9 !important;
        height: auto !important;
    }
.wp-block-embed iframe {
        max-width: 100% !important;
    }
}

/* Image alignment safety */
@media (max-width: 768px) {
.alignleft,
.alignright {
        float: none !important;
        display: block !important;
        margin: 16px auto !important;
    }
.wp-caption {
        max-width: 100% !important;
        height: auto !important;
    }
}

/* Forms universal safety */
@media (max-width: 768px) {
form input[type="text"],
form input[type="email"],
form input[type="tel"],
form input[type="url"],
form input[type="search"],
form input[type="password"],
form input[type="number"],
form select,
form textarea {
        width: 100% !important;
        max-width: 100% !important;
        font-size: 16px !important;  /* Prevents iOS zoom */
        padding: 12px 14px !important;
        box-sizing: border-box !important;
        border-radius: 8px !important;
    }
form button[type="submit"],
form input[type="submit"] {
        width: 100% !important;
        min-height: 48px !important;
        padding: 12px 16px !important;
        font-size: 0.95rem !important;
    }
}

/* Touch target enhancement (accessibility) */
@media (max-width: 768px) and (pointer: coarse) {
a, button, [role="button"], .button {
        min-height: 44px !important;
    }
.pt-btn,
.button,
button:not(.sc-faq-q):not(.pt-pass-toggle) {
        padding-top: 10px !important;
        padding-bottom: 10px !important;
    }
}

/* Horizontal scroll prevention */
html, body {
overflow-x: hidden !important;
max-width: 100vw !important;
}
@media (max-width: 768px) {
.container,
.pt-container,
main,
article,
section {
        max-width: 100vw !important;
        overflow-x: hidden !important;
    }
}

/* ════════════════════════════════════════════════════════
   v2.7.8 — Banner Slider Plugin Mobile Fix
   For pt-banner-slider plugin (NOT theme's native slider)
   ════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
    /* Plugin slider container — auto-height instead of fixed */
.ptbs-wrapper,
.ptbs-slider-wrap,
.pt-banner-slider-wrap,
    [class*="banner-slider-container"],
    [id*="banner-slider"] {
        min-height: auto !important;
        height: auto !important;
        padding: 0 !important;
    }

    /* Plugin slide — image-first layout */
.ptbs-slide,
.pt-banner-slide,
    [class*="banner-slide"] {
        min-height: auto !important;
        height: auto !important;
        padding: 0 !important;
        display: block !important;
    }

    /* Plugin slide image — full width + auto height */
.ptbs-slide img,
.pt-banner-slide img,
    [class*="banner-slide"] img,
    [class*="ptbs"] img {
        width: 100% !important;
        height: auto !important;
        max-height: 240px !important;
        object-fit: cover !important;
        display: block !important;
    }

    /* Hide blank dark space below slide */
.ptbs-slide-empty,
.ptbs-slide:empty {
        display: none !important;
    }

    /* Plugin slide content (text overlay) */
.ptbs-slide-content,
.pt-banner-slide-content,
    [class*="slide-content"] {
        padding: 16px !important;
    }
.ptbs-slide-heading,
    [class*="slide-heading"] {
        font-size: 1.2rem !important;
        line-height: 1.3 !important;
        margin-bottom: 6px !important;
    }
.ptbs-slide-subtitle,
    [class*="slide-subtitle"] {
        font-size: .85rem !important;
        line-height: 1.5 !important;
    }
.ptbs-slide-button,
    [class*="slide-button"] {
        padding: 10px 18px !important;
        font-size: .85rem !important;
    }
}

/* ════════════════════════════════════════════════════════
   v2.7.8 — Reviews Section Position Fix
   Force reviews to render BEFORE footer with proper containment
   ════════════════════════════════════════════════════════ */
.pt-reviews-section,
.pt-reviews,
[class*="reviews-section"] {
position: relative !important;
z-index: 1 !important;
clear: both !important;
width: 100% !important;
overflow: hidden !important;
}

/* Mobile reviews — proper sizing */
@media (max-width: 768px) {
.pt-reviews-section {
        padding: 40px 16px !important;
    }
.pt-rv-summary {
        flex-direction: column !important;
        gap: 24px !important;
    }
.pt-rv-score {
        text-align: center !important;
    }
.pt-rv-bars {
        width: 100% !important;
    }
.pt-rv-cards-grid,
.pt-reviews-grid {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }
.pt-rv-title,
    [class*="rv-title"] {
        font-size: 1.5rem !important;
        line-height: 1.25 !important;
    }
}

/* Universal: prevent any section from overlapping footer */
footer,
.site-footer,
#colophon {
position: relative !important;
z-index: 2 !important;
clear: both !important;
margin-top: 0 !important;
}

/* Prevent absolute-positioned children from breaking layout */
main,
#content,
#main,
.site-main {
position: relative !important;
z-index: 1 !important;
overflow-x: hidden !important;
}

/* ════════════════════════════════════════════════════════
   v2.8.5 — FINAL Reviews Section Layout Fix
   Force section ordering — Reviews stays in its place,
   never overflows past the footer.
   ════════════════════════════════════════════════════════ */

/* All major homepage sections — proper containment */
.pt-hero-wrap,
.pt-mp-section,
.pt-ra-section,
.pt-stats-section,
.pt-dynamic-features,
.pt-why-section,
.pt-blog-section,
.pt-reviews-section,
.pt-newsletter-section,
.pt-faq-section,
.pt-cta-section,
.pt-announcement-bar {
position: relative !important;
z-index: 1 !important;
width: 100% !important;
max-width: 100vw !important;
overflow: hidden !important;
clear: both !important;
float: none !important;
display: block !important;
margin: 0 !important;
contain: layout style !important;
}

/* Reviews section — fixed: contain:paint and isolation broke the slider */
.pt-reviews-section {
position: relative !important;
z-index: 1 !important;
overflow-x: hidden !important;
overflow-y: visible !important;
}
.pt-reviews-section .container,
.pt-reviews-section > * {
max-width: 100% !important;
position: relative !important;
}

/* Track must respect parent — never escape */
.pt-rv-slider-wrap,
#ptRvTrack {
overflow: hidden !important;
max-width: 100% !important;
position: relative !important;
}

/* Footer ALWAYS comes after everything (highest z-index, clear) */
footer.site-footer,
footer#colophon,
.site-footer,
#colophon {
position: relative !important;
z-index: 5 !important;
clear: both !important;
margin-top: 0 !important;
width: 100% !important;
max-width: 100vw !important;
overflow: hidden !important;
display: block !important;
}

/* Body / main wrapper — prevents any horizontal overflow */
body,
html {
overflow-x: hidden !important;
max-width: 100vw !important;
}
#page,
#main,
main,
.site-main,
.site-content {
overflow-x: hidden !important;
max-width: 100vw !important;
position: relative !important;
}

/* v6.4.89 — Mobile scrollbar rules MOVED to pt-no-scrollbar.css.
   Old code (v6.4.x) hid html/body scrollbar on mobile globally with `*` selector —
   removed because it caused users to lose scroll position visibility, and on some
   touch devices made the page feel "stuck". The new pt-no-scrollbar.css restores
   slim themed scrollbars on html/body and hides only inner carousel/slider scrollbars. */

/* ============== SECTION 2: pt-mobile-fixes.css ============== */
/* ════════════════════════════════════════════════════════
   PluginTheme — Mobile Responsive Fixes
   For: feature cards, hero text size, overflow protection
   (Header logo fixes now live in header.php inline CSS for
proper cascade priority over inline media queries.)
   ════════════════════════════════════════════════════════ */

/* ──────────────────────────────────────────────────
   1. FEATURE CARDS — Text wrap fix (≤640px)
   ────────────────────────────────────────────────── */
@media (max-width: 640px) {
.pt-fc-name {
font-size: 0.78rem !important;
line-height: 1.25 !important;
word-break: normal !important;
overflow-wrap: break-word !important;
hyphens: auto !important;
    -webkit-hyphens: auto !important;
white-space: normal !important;
display: block !important;
flex: 1 1 auto !important;
min-width: 0 !important;
  }

.pt-fc-sub {
font-size: 0.68rem !important;
line-height: 1.35 !important;
word-break: normal !important;
overflow-wrap: break-word !important;
white-space: normal !important;
  }

.pt-fc-icon-row {
gap: 8px !important;
align-items: flex-start !important;
  }
.pt-fc-icon {
width: 32px !important;
height: 32px !important;
font-size: 1rem !important;
border-radius: 8px !important;
  }

.pt-fc {
padding: 12px 10px !important;
  }

.pt-fc-link {
font-size: 0.68rem !important;
  }

.pt-feature-wrap {
padding: 12px 12px 16px !important;
gap: 8px !important;
  }
}

/* Very small phones */
@media (max-width: 360px) {
.pt-fc-name { font-size: 0.72rem !important; }
.pt-fc-sub { font-size: 0.64rem !important; }
.pt-fc { padding: 10px 8px !important; }
}

/* ──────────────────────────────────────────────────
   2. HERO BANNER — Text size on mobile
   ────────────────────────────────────────────────── */
@media (max-width: 480px) {
.hero-title,
.pt-hero-title {
font-size: 1.6rem !important;
line-height: 1.2 !important;
  }
.hero-description,
.pt-hero-description {
font-size: 0.85rem !important;
line-height: 1.5 !important;
  }
}

/* ──────────────────────────────────────────────────
   3. CONTAINER OVERFLOW PROTECTION
   ────────────────────────────────────────────────── */
@media (max-width: 768px) {
body {
overflow-x: hidden !important;
  }
.pt-hero-wrap,
.pt-feature-wrap,
.pt-main-content {
max-width: 100vw !important;
overflow-x: hidden !important;
  }
}

/* ── Global mobile overflow fix ── */
@media(max-width:640px){
body{overflow-x:hidden;}
.woocommerce,.woocommerce-page,.site-main,#primary,.entry-content{
overflow-x:hidden !important;max-width:100vw !important;
  }
}
@media(max-width:400px){
.ptcart-container,.ptco{max-width:97%;width:97%;}
}

/* ──────────────────────────────────────────────────
   v5.7.4 — Header submenu vertical stack on mobile
   Drawer & ≤991px: dropdown becomes inline stacked
   ────────────────────────────────────────────────── */
@media (max-width: 991px) {
  .pt-nav-item { display: block !important; height: auto !important; width: 100%; }
  .pt-nav-link { width: 100%; display: flex !important; justify-content: space-between; align-items: center; }
  .pt-mega-drop,
  .pt-mega-drop.wide,
  .pt-mega-drop.cols-2 {
    position: static !important;
    display: none !important;
    grid-template-columns: 1fr !important;
    min-width: 0 !important;
    width: 100% !important;
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 4px 0 8px 14px !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    background: transparent !important;
  }
  .pt-mega-drop::before { display: none !important; }
  .pt-nav-item.is-open > .pt-mega-drop { display: block !important; }
  .pt-mega-item {
    width: 100%;
    padding: 10px 12px !important;
  }
  .pt-mega-header { display: none; }
}
