/* Custom Fixes for Tristar Localized Site */

/* ===== PROJECTS SCROLL SECTION — FULLY RESPONSIVE ===== */
@media (max-width: 1024px) {

    /* Stack layout: image on top, list below */
    .elementor-widget-spaciaz-projects-scroll .elementor-project-scroll {
        flex-direction: column !important;
        overflow: visible !important;
    }

    /* Image: fixed height hero, rounded corners */
    .elementor-widget-spaciaz-projects-scroll .project-scroll-image {
        flex: 0 0 240px !important;
        max-width: 100% !important;
        height: 240px !important;
        border-radius: 12px !important;
        overflow: hidden !important;
    }

    .elementor-widget-spaciaz-projects-scroll .project-post-thumbnail {
        padding-top: 0 !important;
        height: 240px !important;
    }

    /* Content list: static block below image, NOT an overlay */
    .elementor-widget-spaciaz-projects-scroll .project-scroll-content {
        position: static !important;
        background: transparent !important;
        border: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        padding: 0 0 0 70px !important; /* left offset clears floating buttons */
        max-width: 100% !important;
        width: 100% !important;
        margin-top: 8px !important;
    }

    /* Each project row */
    .elementor-widget-spaciaz-projects-scroll .project-content-inner {
        opacity: 1 !important;
        padding: 14px 16px 14px 0 !important;
        border-bottom: 1px solid rgba(255,255,255,0.15) !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 3px !important;
    }

    .elementor-widget-spaciaz-projects-scroll .project-content-inner.active,
    .elementor-widget-spaciaz-projects-scroll .project-content-inner:hover {
        border-bottom-color: var(--primary, #12648D) !important;
    }

    /* Project location label */
    .elementor-widget-spaciaz-projects-scroll .project-location {
        font-size: 10px !important;
        text-transform: uppercase !important;
        letter-spacing: 1.5px !important;
        color: #8899aa !important;
        margin-bottom: 2px !important;
        line-height: 1.4 !important;
    }

    /* Project title */
    .elementor-widget-spaciaz-projects-scroll .project-title {
        font-size: 18px !important;
        font-weight: 600 !important;
        line-height: 1.2 !important;
        margin: 0 !important;
    }

    .elementor-widget-spaciaz-projects-scroll .project-title a {
        color: #ffffff !important;
    }

    /* Subtitle pill — prevent overflow cut-off */
    .elementor-widget-spaciaz-projects-scroll .project-subtitle {
        margin-bottom: 12px !important;
        max-width: calc(100% - 70px) !important;
    }

    /* Heading */
    .elementor-widget-spaciaz-projects-scroll .project-scroll-heading,
    .elementor-widget-spaciaz-projects-scroll h2 {
        font-size: 28px !important;
        line-height: 1.2 !important;
        padding-left: 70px !important;
    }

    /* Hide the view button that appears on hover on mobile */
    .elementor-widget-spaciaz-projects-scroll .project-button-wrap {
        display: none !important;
    }
}

/* Smaller phones */
@media (max-width: 480px) {
    .elementor-widget-spaciaz-projects-scroll .project-scroll-image,
    .elementor-widget-spaciaz-projects-scroll .project-post-thumbnail {
        height: 200px !important;
    }

    .elementor-widget-spaciaz-projects-scroll .project-scroll-content {
        padding-left: 65px !important;
    }

    .elementor-widget-spaciaz-projects-scroll .project-title {
        font-size: 16px !important;
    }
}

/* Move floating buttons to right on mobile so they don't overlap project list */
@media (max-width: 1024px) {
    .floating-btns {
        left: auto !important;
        right: 16px !important;
        bottom: 20px !important;
    }
}

/* 
 * Mobile Responsiveness for Hero Section Logo
 */
@media (max-width: 767px) {
    .elementor-element-0966352 {
        top: 50% !important;
        left: 50% !important;
        transform: translate(-50%, -50%) !important;
        width: 60% !important;
        max-width: 220px !important;
        z-index: 20 !important;
    }
}

/* 
 * Scrolling Title - reduce size on mobile
 */
@media (max-width: 767px) {
    .scrolling-title {
        font-size: 28px !important;
        line-height: 1.2 !important;
    }
    .elementor-scrolling-item-inner {
        font-size: 28px !important;
    }
}

/*
 * Projects section - ensure text is visible on dark background
 */
.project-title a, .project-title a:visited {
    color: #ffffff !important;
}
.project-location a, .project-location a:visited {
    color: #cccccc !important;
}

/* Remove grey fade on non-active project items — make all white */
.elementor-widget-spaciaz-projects-scroll .project-content-inner {
    opacity: 1 !important;
}

/* 
 * Get In Touch section - reduce font weight and size
 */
.elementor-element-9a8fa13 .elementor-button-text span,
.elementor-element-9041218 .elementor-button-text span {
    font-size: 20px !important;
    font-weight: 400 !important;
}
.elementor-element-2c3c48c p {
    font-size: 14px !important;
    text-transform: uppercase;
    letter-spacing: 2px;
}

/* 
 * Builders section heading - reduce bold and size
 */
.builders-heading {
    font-size: 28px !important;
    font-weight: 500 !important;
}

/* 
 * Footer mobile - single column layout
 */
@media (max-width: 767px) {
    .elementor-element-9b14813 {
        flex-direction: column !important;
    }
    .elementor-element-9b14813 > .e-con-full {
        width: 100% !important;
        flex: none !important;
    }
}

/*
 * Testimonials font size - fix word collision caused by inherited letter-spacing
 */
.testimonial-content .content p,
.testimonial-content .wrap_content .content p {
    font-size: 18px !important;
    font-weight: 400 !important;
    letter-spacing: normal !important;
    word-spacing: normal !important;
    line-height: 1.7 !important;
}
@media (max-width: 767px) {
    .testimonial-content .content p,
    .testimonial-content .wrap_content .content p {
        font-size: 16px !important;
        line-height: 1.6 !important;
    }
}

/* 
 * Mobile Navbar Spacing Fix for "About Us" Page
 */
@media (max-width: 768px) {
    .page-id-49 .hfe-page-title,
    .page-id-61 .hfe-page-title {
        padding-top: 100px;
        display: block;
    }
}

/* 
 * Scrollup Button Styling
 */
.scrollup {
    position: fixed;
    right: 30px;
    bottom: 80px;
    width: 50px;
    height: 50px;
    display: none;
    justify-content: center;
    align-items: center;
    text-decoration: none;
    background: var(--primary, #12648D);
    border: 1px solid var(--primary, #12648D);
    border-radius: 50%;
    z-index: 999;
    box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.15);
    transition: all 0.3s ease;
}

.scrollup img {
    width: 18px;
    height: 18px;
    filter: brightness(0) invert(1);
    margin: 0;
}

.scrollup:hover {
    background: var(--text, #0C0305);
    border-color: var(--text, #0C0305);
    transform: translateY(-3px);
}

@media (min-width: 1024px) {
  .scrollup {
    bottom: 40px;
    right: 40px;
  }
}

/* 
 * Floating WhatsApp & Call Buttons
 */
.floating-btns {
    position: fixed;
    bottom: 30px;
    left: 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    z-index: 9999;
}

.floating-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    text-decoration: none;
    box-shadow: 0 4px 12px rgba(0,0,0,0.25);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.floating-btn:hover {
    transform: scale(1.1);
    box-shadow: 0 6px 18px rgba(0,0,0,0.35);
}

.floating-btn-whatsapp {
    background-color: #25D366;
}

.floating-btn-call {
    background-color: #007AFF;
}

.floating-btn svg {
    width: 26px;
    height: 26px;
    fill: #ffffff;
}

/* ===== TRISTAR CUSTOM FOOTER ===== */
footer#colophon {
    background: #0d1b2a !important;
    color: #cdd5e0 !important;
    padding: 0 !important;
}

/* Hide original Elementor footer content */
footer#colophon .footer-width-fixer {
    display: none !important;
}

.ts-footer-cta {
    background: #12648D;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 40px;
    gap: 16px;
    flex-wrap: wrap;
}

.ts-footer-cta span {
    font-size: 16px;
    font-weight: 500;
}

.ts-cta-btn {
    background: #e8272a;
    color: #fff !important;
    padding: 10px 24px;
    border-radius: 4px;
    text-decoration: none !important;
    font-weight: 600;
    font-size: 14px;
    white-space: nowrap;
    transition: background 0.2s;
    display: inline-block;
}

.ts-cta-btn:hover {
    background: #c41f22;
}

.ts-footer-main {
    display: flex;
    gap: 40px;
    padding: 48px 60px;
    max-width: 1200px;
    margin: 0 auto;
    flex-wrap: wrap;
}

.ts-footer-col {
    flex: 1;
    min-width: 200px;
}

.ts-footer-brand {
    flex: 1.4;
}

.ts-footer-logo {
    height: 90px;
    width: auto;
    margin-bottom: 16px;
    display: block;
}

.ts-footer-brand p {
    font-size: 14px;
    line-height: 1.7;
    color: #aab4c0;
    margin-bottom: 16px;
}

.ts-footer-social {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 8px;
}

.ts-footer-social a {
    font-size: 13px;
    color: #aab4c0 !important;
    text-decoration: none !important;
    padding: 4px 8px;
    border: 1px solid #2a3f55;
    border-radius: 3px;
    transition: all 0.2s;
}

.ts-footer-social a:hover {
    color: #fff !important;
    border-color: #12648D;
    background: #12648D;
}

.ts-footer-col h4 {
    font-size: 13px;
    font-weight: 700;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 18px;
    padding-bottom: 8px;
    border-bottom: 2px solid #12648D;
    display: inline-block;
}

.ts-footer-col ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.ts-footer-col ul li {
    margin-bottom: 10px !important;
    font-size: 14px;
    color: #aab4c0;
    line-height: 1.5;
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

.ts-footer-col ul li .ts-fi {
    color: #12648D;
    flex-shrink: 0;
    margin-top: 2px;
}

.ts-footer-col ul li a {
    color: #aab4c0 !important;
    text-decoration: none !important;
    transition: color 0.2s;
}

.ts-footer-col ul li a:hover {
    color: #fff !important;
}

.ts-footer-divider {
    border: none;
    border-top: 1px solid #1e2d3e;
    margin: 0;
}

.ts-footer-bottom {
    background: #080f17;
    text-align: center;
    padding: 14px 20px;
    font-size: 13px;
    color: #778899;
}

.ts-footer-bottom p {
    margin: 0 !important;
}

@media (max-width: 767px) {
    .ts-footer-cta {
        padding: 14px 20px;
        flex-direction: column;
        text-align: center;
        gap: 12px;
    }
    .ts-footer-main {
        padding: 32px 24px;
        flex-direction: column;
        gap: 28px;
    }
    .ts-footer-col {
        min-width: unset;
    }
}

/* Remove building background image from Get In Touch section */
.elementor-6354 .elementor-element.elementor-element-326b7a9:not(.elementor-motion-effects-element-type-background),
.elementor-6354 .elementor-element.elementor-element-326b7a9 > .elementor-motion-effects-container > .elementor-motion-effects-layer,
.elementor-element-326b7a9 {
    background-image: none !important;
    background-color: #0d1b2a !important;
}

/* Partners disclaimer */
.ts-partners-disclaimer {
    text-align: center;
    font-size: 11px;
    color: #888;
    margin-top: 16px;
    padding: 0 20px 4px;
    font-style: italic;
}

/* ============================================================
   FULL-SITE RESPONSIVE FIXES
   Breakpoints: 1024px (tablet), 768px (landscape phone), 480px (phone)
   ============================================================ */

/* ── 1. WHY INVEST IN PUNE — bullet grid ─────────────────── */
@media (max-width: 768px) {
    .ts-why-invest-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px 12px !important;
    }
}
@media (max-width: 480px) {
    .ts-why-invest-grid {
        grid-template-columns: 1fr 1fr !important;
        font-size: 13px !important;
        gap: 6px 8px !important;
    }
}

/* ── 2. HERO LOGO — override inline width on very small screens ─ */
@media (max-width: 480px) {
    .elementor-element-0966352 {
        max-width: 160px !important;
        width: 50% !important;
    }
}

/* ── 3. HERO BUILDING IMAGES — hide motion-effect offset on mobile ─ */
@media (max-width: 1024px) {
    .elementor-element-c7cf169,
    .elementor-element-b3469c7 {
        display: none !important;
    }
}

/* ── 4. GET IN TOUCH — white box fully responsive ─────────── */
@media (max-width: 1024px) {
    .elementor-element-326b7a9 {
        min-height: 480px !important;
    }
    .ts-cta-white-box {
        padding: 24px 32px 24px 36px !important;
        border-top-left-radius: 20px !important;
    }
    .ts-cta-white-box h2 {
        font-size: 2rem !important;
    }
}
@media (max-width: 768px) {
    .elementor-element-326b7a9 {
        min-height: 360px !important;
    }
    .ts-cta-white-box {
        position: static !important;
        width: 100% !important;
        padding: 20px 24px !important;
        border-top-left-radius: 0 !important;
        text-align: center !important;
        background: rgba(255,255,255,0.95) !important;
    }
    .ts-cta-white-box > div { display: none !important; } /* hide scoop decorations */
    .ts-cta-white-box h2 {
        font-size: 1.6rem !important;
        text-align: center !important;
    }
    .ts-cta-white-box p {
        font-size: 1rem !important;
        text-align: center !important;
    }
}

/* ── 5. PARTNERS SECTION HEADING — scale down on mobile ───── */
@media (max-width: 768px) {
    .elementor-element-partners h2.elementor-heading-title,
    .elementor-element-partners h2 {
        font-size: 26px !important;
    }
}
@media (max-width: 480px) {
    .elementor-element-partners h2.elementor-heading-title,
    .elementor-element-partners h2 {
        font-size: 22px !important;
    }
}

/* ── 6. FOOTER — tablet 768–920px 2+2 layout ──────────────── */
@media (max-width: 920px) {
    .ts-footer-main {
        padding: 36px 32px !important;
        gap: 28px !important;
    }
    .ts-footer-col {
        flex: 0 0 calc(50% - 14px) !important;
        min-width: unset !important;
    }
    .ts-footer-brand {
        flex: 0 0 100% !important;
    }
}
@media (max-width: 600px) {
    .ts-footer-main {
        padding: 28px 20px !important;
        gap: 24px !important;
    }
    .ts-footer-col {
        flex: 0 0 100% !important;
    }
    .ts-footer-cta {
        flex-direction: column !important;
        text-align: center !important;
        padding: 16px 20px !important;
        gap: 12px !important;
    }
    .ts-footer-logo {
        height: 70px !important;
    }
}

/* ── 7. ABOUT-US decorative vector image ──────────────────── */
@media (max-width: 1024px) {
    .elementor-element-1918a4b {
        display: none !important;
    }
}

/* ── 8. BREADCRUMB / PAGE TITLE on service pages ──────────── */
@media (max-width: 1024px) and (min-width: 768px) {
    .elementor-49 .elementor-element.elementor-element-39a0e77 .elementor-heading-title,
    .elementor-49 .elementor-element.elementor-element-39a0e77 .hfe-page-title a {
        font-size: 56px !important;
    }
}
@media (max-width: 767px) {
    .breadcrumb-wrap {
        min-height: 200px !important;
    }
    .elementor-49 .elementor-element.elementor-element-39a0e77 .elementor-heading-title,
    .elementor-49 .elementor-element.elementor-element-39a0e77 .hfe-page-title a {
        font-size: 36px !important;
        letter-spacing: 0 !important;
    }
}

/* ── 9. PROJECTS PAGE — tighter card grid on small phones ─── */
@media (max-width: 600px) {
    .tristar-projects-grid {
        grid-template-columns: 1fr !important;
    }
}
@media (max-width: 480px) {
    .tristar-project-card {
        margin: 0 !important;
    }
    .tristar-project-card .project-img {
        height: 180px !important;
    }
}

/* ── 10. GENERAL — prevent horizontal overflow site-wide ───── */
body, .site, #page, #content, main {
    overflow-x: hidden !important;
    max-width: 100vw !important;
}

/* ── ABOUT PAGE: fix horizontal-scroll section white space ────
   The spaciaz-horizontal-scroll widget sets height:300vh for a
   JS-driven sticky scroll. Without the WP plugin JS running on
   the static site this leaves ~2× viewport of empty whitespace.
   Override to a plain scrollable row so all 6 items are visible.
   ──────────────────────────────────────────────────────────── */
.elementor-widget-spaciaz-horizontal-scroll .horizontal-scroll-wrapper {
    height: auto !important;
    overflow: hidden !important;
}

.elementor-widget-spaciaz-horizontal-scroll .horizontal-scroll-inner {
    position: static !important;
    top: auto !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: var(--primary, #12648D) transparent;
    padding-bottom: 12px;
}

.elementor-widget-spaciaz-horizontal-scroll .horizontal-scroll-inner::-webkit-scrollbar {
    height: 4px;
}
.elementor-widget-spaciaz-horizontal-scroll .horizontal-scroll-inner::-webkit-scrollbar-track {
    background: transparent;
}
.elementor-widget-spaciaz-horizontal-scroll .horizontal-scroll-inner::-webkit-scrollbar-thumb {
    background: var(--primary, #12648D);
    border-radius: 2px;
}

/* Keep items at a sensible width so several are visible at once */
.elementor-widget-spaciaz-horizontal-scroll .horizontal-scroll-item {
    flex: 0 0 260px !important;
    width: 260px !important;
}

/* On mobile stack items into a 2-column grid instead */
@media (max-width: 767px) {
    .elementor-widget-spaciaz-horizontal-scroll .horizontal-scroll-inner {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        gap: 16px;
        overflow-x: visible !important;
    }
    .elementor-widget-spaciaz-horizontal-scroll .horizontal-scroll-item {
        flex: unset !important;
        width: auto !important;
    }
    /* Hide the decorative line on mobile — it doesn't align in grid */
    .elementor-widget-spaciaz-horizontal-scroll .horizontal-scroll-line {
        display: none !important;
    }
}

/* ── 11. SECTION PADDING — compress on mobile ───────────────── */
@media (max-width: 768px) {
    .e-con-boxed.e-parent {
        --padding-top: 48px !important;
        --padding-bottom: 48px !important;
    }
}

/* ── 12. IMAGES — prevent overflow ──────────────────────────── */
img {
    max-width: 100%;
    height: auto;
}

/* ── 13. PARTNERS SLIDER on mobile ──────────────────────────── */
@media (max-width: 480px) {
    .partner-logo-item {
        flex: 0 0 140px !important;
        padding: 0 16px !important;
    }
    .partner-logo-item img {
        max-height: 60px !important;
    }
}

/* ── 14. TYPOGRAPHY — global scale on small phones ──────────── */
@media (max-width: 480px) {
    h1 { font-size: clamp(24px, 7vw, 40px) !important; }
    h2 { font-size: clamp(20px, 6vw, 32px) !important; }
    h3 { font-size: clamp(16px, 5vw, 24px) !important; }
}

/* ============================================================
   SCROLLING TICKER OVERRIDES — high-specificity mobile fixes
   Must match the full .elementor-XXXX .elementor-element.elementor-element-YYYYYYY
   selector chain in post-*.css to actually win without !important.
   Using !important here for safety across all load orders.
   ============================================================ */

/* ── HOMEPAGE HERO TICKER (d7b1408) — 200px desktop ─────────── */
@media (max-width: 1024px) {
    .elementor-6354 .elementor-element.elementor-element-d7b1408 .scrolling-title a,
    .elementor-6354 .elementor-element.elementor-element-d7b1408 .scrolling-title {
        font-size: 100px !important;
        line-height: 1em !important;
    }
}
@media (max-width: 767px) {
    .elementor-6354 .elementor-element.elementor-element-d7b1408 .scrolling-title a,
    .elementor-6354 .elementor-element.elementor-element-d7b1408 .scrolling-title {
        font-size: 52px !important;
        line-height: 1em !important;
    }
}
@media (max-width: 480px) {
    .elementor-6354 .elementor-element.elementor-element-d7b1408 .scrolling-title a,
    .elementor-6354 .elementor-element.elementor-element-d7b1408 .scrolling-title {
        font-size: 36px !important;
    }
}

/* ── ABOUT-US / SERVICE PAGES TICKERS (post-49.css) ─────────── */
/* Ticker 1: "About Us" — 90px */
@media (max-width: 1024px) {
    .elementor-49 .elementor-element.elementor-element-3137479 .scrolling-title a,
    .elementor-49 .elementor-element.elementor-element-3137479 .scrolling-title {
        font-size: 52px !important;
    }
}
@media (max-width: 767px) {
    .elementor-49 .elementor-element.elementor-element-3137479 .scrolling-title a,
    .elementor-49 .elementor-element.elementor-element-3137479 .scrolling-title {
        font-size: 30px !important;
        line-height: 1.2em !important;
    }
}

/* Ticker 2: "Our Properties" — 70px */
@media (max-width: 1024px) {
    .elementor-49 .elementor-element.elementor-element-b525ad0 .scrolling-title a,
    .elementor-49 .elementor-element.elementor-element-b525ad0 .scrolling-title {
        font-size: 44px !important;
    }
}
@media (max-width: 767px) {
    .elementor-49 .elementor-element.elementor-element-b525ad0 .scrolling-title a,
    .elementor-49 .elementor-element.elementor-element-b525ad0 .scrolling-title {
        font-size: 28px !important;
        line-height: 1.2em !important;
    }
}

/* Ticker 3: "Explore Company" — 70px */
@media (max-width: 1024px) {
    .elementor-49 .elementor-element.elementor-element-b610c64 .scrolling-title a,
    .elementor-49 .elementor-element.elementor-element-b610c64 .scrolling-title {
        font-size: 44px !important;
    }
}
@media (max-width: 767px) {
    .elementor-49 .elementor-element.elementor-element-b610c64 .scrolling-title a,
    .elementor-49 .elementor-element.elementor-element-b610c64 .scrolling-title {
        font-size: 28px !important;
        line-height: 1.2em !important;
    }
}

/* ── SERVICE PAGE ICONS — scale down large SVG icons on mobile ── */
/* Icon 8aa9af9 (64px) and b8a5f5f (104px) in the counters section */
@media (max-width: 767px) {
    .elementor-49 .elementor-element.elementor-element-8aa9af9 .elementor-icon,
    .elementor-49 .elementor-element.elementor-element-8aa9af9 .elementor-icon svg {
        font-size: 40px !important;
        height: 40px !important;
        width: 40px !important;
    }
    .elementor-49 .elementor-element.elementor-element-b8a5f5f .elementor-icon,
    .elementor-49 .elementor-element.elementor-element-b8a5f5f .elementor-icon svg {
        font-size: 60px !important;
        height: 60px !important;
        width: auto !important;
    }
}

/* ── SERVICE PAGE COUNTERS SECTION — compact layout on mobile ── */
@media (max-width: 767px) {
    /* Counter number + label */
    .elementor-49 .elementor-element.elementor-element-cc3d78d {
        font-size: 14px !important;
        --width: 120px !important;
    }
}

/* ── PREVENT TICKER OVERFLOW SITE-WIDE ──────────────────────── */
.elementor-scrolling-wrapper,
.elementor-widget-spaciaz-scrolling-text {
    overflow: hidden !important;
    max-width: 100vw !important;
}

/* ── CONTACT PAGE — form layout on mobile ────────────────────── */
@media (max-width: 767px) {
    /* Stack contact form rows */
    .wpcf7-form .wpcf7-form-control-wrap,
    .elementor-field-group {
        width: 100% !important;
        margin-bottom: 12px !important;
    }
    /* Make inputs full-width */
    .wpcf7 input[type="text"],
    .wpcf7 input[type="email"],
    .wpcf7 input[type="tel"],
    .wpcf7 textarea {
        width: 100% !important;
        box-sizing: border-box !important;
    }
}

/* ── GALLERY & AWARDS PAGES — grid tighten on mobile ─────────── */
@media (max-width: 600px) {
    /* Gallery grid: 2 columns on small phones */
    .ts-gallery-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
    }
    /* Awards: single column */
    .ts-awards-grid {
        grid-template-columns: 1fr !important;
    }
}
