/* MAT Mobile — matshop.ch
 * Everything is scoped to phones (max-width: 767px, Elementor's mobile breakpoint)
 * except the touch polish block. Brand: #111 ink, #f97316 orange, #dc2626 red, #f0f0f0 paper.
 */

:root {
    --mm-ink: #111;
    --mm-paper: #f0f0f0;
    --mm-orange: #f97316;
    --mm-red: #dc2626;
    --mm-muted: #555;
    --mm-gutter: 16px;
    --mm-gap: 12px;
    --mm-radius: 14px;
    --mm-tab-h: 62px;
    --mm-safe-b: env(safe-area-inset-bottom, 0px);
    --mm-ease: cubic-bezier(.2, .8, .2, 1);
}

/* ---------- Touch polish (all touch devices) ---------- */
@media (hover: none) and (pointer: coarse) {
    html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
    body.mat-m { -webkit-tap-highlight-color: transparent; }
    body.mat-m a, body.mat-m button, body.mat-m [role="button"] { touch-action: manipulation; }
    body.mat-m .ifa-product-card,
    body.mat-m .ifa-subcat-card,
    body.mat-m .mat-card,
    body.mat-m .elementor-button,
    body.mat-m .ms-btn-o,
    body.mat-m .ms-btn-r,
    body.mat-m .ifa-back-to-cats,
    body.mat-m #ifa-angebot-btn {
        transition: transform .18s var(--mm-ease), box-shadow .18s var(--mm-ease);
    }
    body.mat-m .ifa-product-card:active,
    body.mat-m .ifa-subcat-card:active,
    body.mat-m .mat-card:active,
    body.mat-m .elementor-button:active,
    body.mat-m .ms-btn-o:active,
    body.mat-m .ms-btn-r:active,
    body.mat-m #ifa-angebot-btn:active { transform: scale(.975); }
}

/* ---------- Bottom tab bar ---------- */
.mat-tabbar { display: none; }

@media (max-width: 767px) {

    body.mat-m { padding-bottom: calc(var(--mm-tab-h) + var(--mm-safe-b)) !important; }

    .mat-tabbar {
        display: grid;
        grid-template-columns: repeat(5, 1fr);
        position: fixed;
        left: 0; right: 0; bottom: 0;
        z-index: 99990;
        height: calc(var(--mm-tab-h) + var(--mm-safe-b));
        padding: 6px 4px calc(6px + var(--mm-safe-b));
        background: rgba(17, 17, 17, .92);
        -webkit-backdrop-filter: saturate(160%) blur(14px);
        backdrop-filter: saturate(160%) blur(14px);
        border-top: 1px solid rgba(255, 255, 255, .08);
        box-shadow: 0 -8px 24px rgba(0, 0, 0, .18);
        transition: transform .28s var(--mm-ease);
    }
    .mat-tabbar.is-hidden { transform: translateY(110%); }
    .mat-tabbar a {
        display: flex; flex-direction: column; align-items: center; justify-content: center;
        gap: 3px; min-height: 48px; border-radius: 12px;
        color: rgba(255, 255, 255, .62) !important; text-decoration: none !important;
        font: 600 10.5px/1.1 'Barlow', system-ui, sans-serif; letter-spacing: .3px;
        position: relative;
    }
    .mat-tabbar a svg {
        width: 23px; height: 23px; fill: none; stroke: currentColor;
        stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
        transition: transform .2s var(--mm-ease);
    }
    .mat-tabbar a.is-active { color: #fff !important; }
    .mat-tabbar a.is-active svg { stroke: var(--mm-orange); transform: translateY(-1px); }
    .mat-tabbar a.is-active::before {
        content: ''; position: absolute; top: -6px; left: 30%; right: 30%; height: 3px;
        border-radius: 0 0 3px 3px; background: linear-gradient(90deg, var(--mm-orange), var(--mm-red));
    }
    .mat-tabbar a:active svg { transform: scale(.88); }
    .mat-tabbar a.is-lang span { font-weight: 800; letter-spacing: 1px; }
    .mat-tabbar a:focus-visible { outline: 2px solid var(--mm-orange); outline-offset: -2px; }

    /* The tab bar carries the language switch → hide TranslatePress' floating pill */
    .trp-floating-switcher { display: none !important; }

    /* ---------- Header: edge-to-edge app bar ---------- */
    .elementor-element-e413f16, .elementor-element-3eb7ca4, .elementor-element-d14a9c8 { --padding-left: 0px !important; --padding-right: 0px !important; padding-left: 0 !important; padding-right: 0 !important; }
    #ms-header-wrap { margin: 0 !important; width: 100% !important; }
    #ms-hdr-top, #ms-hdr-main { border-radius: 0 !important; margin-left: 0 !important; margin-right: 0 !important; width: 100% !important; }
    #ms-hdr-top-inner { padding-left: var(--mm-gutter) !important; padding-right: var(--mm-gutter) !important; }
    #ms-hdr-inner { padding-left: var(--mm-gutter) !important; padding-right: 8px !important; }
    #ms-hdr-main .ms-hdr-corner { display: none !important; }
    #ms-logo img { height: 40px !important; width: auto !important; }
    #ms-burger { width: 48px !important; height: 48px !important; display: inline-flex !important; flex-direction: column; align-items: center; justify-content: center; gap: 5px; }
    .ms-top-item { min-height: 40px; display: inline-flex !important; align-items: center; }

    /* ---------- Global typography ---------- */
    body.mat-m { font-size: 16px; }
    body.mat-m .elementor-widget-text-editor,
    body.mat-m .elementor-widget-text-editor p { font-size: 16px !important; line-height: 1.6 !important; }
    /* Elementor kit capitalizes every word of h1–h6 (wrong in German/French); keep only intentional uppercase */
    body.mat-m :where(h1, h2, h3, h4, h5, h6):where(:not(.pg-section-title, .pg-steps-title, .mat-pp-title, .mat-pp-h2)),
    body.mat-m .elementskit-info-box-title { text-transform: none !important; }
    body.mat-m .ms-hero :is(h1, h2), body.mat-m .pg-hero h1, body.mat-m .pg-two-col-text h2,
    body.mat-m .pg-cta-banner h2, body.mat-m .mat-services :is(h2, h3), body.mat-m .tx-headline :is(h1, h2) { text-transform: uppercase !important; }
    .pg-steps-title { color: #fff !important; }
    body.mat-m .elementor-heading-title { text-transform: none !important; overflow-wrap: anywhere; hyphens: auto; -webkit-hyphens: auto; }
    body.mat-m h1.elementor-heading-title { font-size: clamp(30px, 8.6vw, 40px) !important; line-height: 1.08 !important; }
    body.mat-m h2.elementor-heading-title { font-size: clamp(25px, 7vw, 32px) !important; line-height: 1.12 !important; }
    body.mat-m h3.elementor-heading-title { font-size: clamp(19px, 5.2vw, 23px) !important; line-height: 1.25 !important; }
    body.mat-m h5.elementor-heading-title { font-size: 16px !important; line-height: 1.55 !important; font-weight: 500 !important; }
    body.mat-m .elementor-button { min-height: 52px; border-radius: 12px !important; text-transform: none !important; text-decoration: none !important; font-size: 16px !important; line-height: 1.3 !important; padding: 14px 20px !important; }
    body.mat-m .elementor-button .elementor-button-text { text-decoration: none !important; text-transform: none !important; }
    body.mat-m .e-con, body.mat-m .elementor-section { --padding-left: var(--mm-gutter); --padding-right: var(--mm-gutter); }

    /* ---------- Home hero (.ms-hero): image becomes a full-width banner ---------- */
    .ms-hero { min-height: 0 !important; }
    .ms-hero .ms-left, .ms-hero .ms-right { min-height: 0 !important; justify-content: flex-start !important; }
    .ms-hero .ms-left .ms-img,
    .ms-hero .ms-right .ms-img {
        position: relative !important; inset: auto !important;
        width: 100% !important; height: 46vw !important; max-height: 240px; min-height: 170px;
        object-fit: cover !important; object-position: center 30% !important;
        opacity: 1 !important; display: block;
        -webkit-mask-image: linear-gradient(180deg, #000 62%, transparent 100%);
        mask-image: linear-gradient(180deg, #000 62%, transparent 100%);
    }
    .ms-hero .ms-left::before, .ms-hero .ms-right::before { display: none !important; }
    .ms-hero .ms-content,
    .ms-hero .ms-right .ms-content { padding: 4px var(--mm-gutter) 32px !important; margin-top: -18px; }
    .ms-hero .ms-corner { display: none !important; }
    .ms-hero .ms-eyebrow { margin-bottom: 12px !important; }
    .ms-hero .ms-eyebrow span { font-size: 11.5px !important; letter-spacing: 2.4px !important; }
    .ms-hero .ms-h1 { font-size: clamp(38px, 11.4vw, 48px) !important; line-height: .92 !important; }
    .ms-hero .ms-h2 { font-size: clamp(33px, 10vw, 42px) !important; line-height: .92 !important; }
    .ms-hero .ms-bar { margin: 12px 0 16px !important; }
    .ms-hero .ms-tagline { font-size: 11.5px !important; letter-spacing: 1.6px !important; margin-bottom: 18px !important; }
    .ms-hero .ms-desc { font-size: 16px !important; line-height: 1.55 !important; max-width: none !important; }
    .ms-hero .ms-feats { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 8px !important; margin-bottom: 22px !important; }
    .ms-hero .ms-feat { align-items: center !important; text-align: center; background: rgba(255,255,255,.7); border-radius: 12px; padding: 10px 4px 9px; }
    .ms-hero .ms-ficon { width: 38px !important; height: 38px !important; border-radius: 10px !important; }
    .ms-hero .ms-flabel { font-size: 10px !important; letter-spacing: .6px !important; max-width: none !important; color: #333 !important; }
    .ms-hero .ms-rows { gap: 14px !important; }
    .ms-hero .ms-ricon { width: 36px !important; height: 36px !important; border-radius: 10px !important; }
    .ms-hero .ms-rtitle { font-size: 15.5px !important; }
    .ms-hero .ms-rsub { font-size: 13.5px !important; line-height: 1.45 !important; color: #555 !important; margin-top: 2px; }
    .ms-hero .ms-btn-o, .ms-hero .ms-btn-r { min-height: 54px; border-radius: 12px !important; font-size: 13px !important; letter-spacing: 1.8px !important; }

    /* ---------- Services grid (.mat-services): 2 cards fill the screen ---------- */
    .mat-services.premium { padding: 48px 0 !important; }
    .mat-services .mat-container { padding-left: var(--mm-gutter) !important; padding-right: var(--mm-gutter) !important; max-width: none !important; }
    .mat-services .mat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: var(--mm-gap) !important; width: 100% !important; }
    .mat-services .mat-grid > * { min-width: 0; border-radius: var(--mm-radius) !important; }
    .mat-services .mat-grid img { width: 100% !important; aspect-ratio: 4 / 3; height: auto !important; object-fit: cover; }
    .mat-services h2 { font-size: clamp(32px, 9.4vw, 40px) !important; line-height: .95 !important; }
    .mat-services h3 { font-size: 16px !important; line-height: 1.15 !important; letter-spacing: .3px !important; }
    .mat-services p { font-size: 13.5px !important; line-height: 1.45 !important; }

    /* ---------- Home: Kennzeichenhalter block — tighter, readable body text ---------- */
    .elementor-element-e7e2d89 { padding-top: 24px !important; padding-bottom: 24px !important; }
    .elementor-element-e7e2d89 .e-con-full { padding-top: 0 !important; padding-bottom: 0 !important; --padding-top: 0px; --padding-bottom: 0px; gap: 14px !important; }
    .elementor-element-52f9d0c7, .elementor-element-137e4960 { padding-left: 0 !important; padding-right: 0 !important; --padding-left: 0px; --padding-right: 0px; }
    .elementor-element-d3aff30 { width: 100% !important; }
    .elementor-element-d3aff30 img { width: 100% !important; border-radius: var(--mm-radius); }
    .elementor-element-1393db0d:empty, .elementor-element-1393db0d:not(:has(*:not(:empty))) { display: none !important; }
    .elementor-element-30c39ab .elementor-heading-title { font-size: 16px !important; font-weight: 400 !important; line-height: 1.6 !important; color: #444 !important; }
    .elementor-element-4e9d29f { padding-top: 8px !important; padding-bottom: 8px !important; }
    .elementor-element-263a84b6 .ekit-wid-con, .elementor-element-263a84b6 .elementskit-funfact { height: 100%; }

    /* ---------- Counters: all four, compact 2×2 ---------- */
    .elementor-element-2de510fd { padding-top: 28px !important; padding-bottom: 36px !important; }
    .elementor-element-2de510fd > .e-con-inner { padding-top: 0 !important; padding-bottom: 0 !important; }
    .elementor-element-1b7c7d32 { gap: 10px !important; padding: 0 !important; }
    .elementor-element-263a84b6 { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: var(--mm-gap) !important; padding: 0 var(--mm-gutter) !important; }
    .elementor-element-263a84b6 > .e-con-full,
    .elementor-element-48dc41d0.elementor-hidden-mobile,
    .elementor-element-13562d69.elementor-hidden-mobile { display: flex !important; width: auto !important; max-width: none !important; padding: 0 !important; margin: 0 !important; --padding-left: 0px; --padding-right: 0px; }
    .elementor-element-263a84b6 .elementor-widget-elementskit-funfact { width: 100% !important; margin: 0 !important; }
    .elementor-element-263a84b6 .elementskit-funfact { padding: 18px 8px 16px !important; border-radius: var(--mm-radius) !important; height: 100%; }
    .elementor-element-263a84b6 .number-percentage-wraper { font-size: 30px !important; line-height: 1.1 !important; font-weight: 700 !important; }
    .elementor-element-263a84b6 .funfact-title { font-size: 13px !important; line-height: 1.3 !important; margin: 6px 0 0 !important; color: #444 !important; }

    /* ---------- ifa-katalog: category tiles + product grid in 2 columns ---------- */
    .ifa-kategorie-wrap { padding-left: 0 !important; padding-right: 0 !important; }
    .ifa-subcat-grid:not(.ifa-hidden) { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: var(--mm-gap) !important; }
    .ifa-subcat-card { border-radius: var(--mm-radius) !important; min-width: 0; }
    .ifa-subcat-img { aspect-ratio: 1 / 1; height: auto !important; padding: 8px !important; }
    .ifa-subcat-img img { width: 100% !important; height: 100% !important; object-fit: contain !important; }
    .ifa-subcat-body { padding: 10px 12px 12px !important; }
    .ifa-subcat-body h3, .ifa-subcat-body h4, .ifa-subcat-body strong { font-size: 15px !important; line-height: 1.2 !important; }
    .ifa-subcat-count { font-size: 12.5px !important; }

    #ifa-products-inner { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: var(--mm-gap) !important; }
    .ifa-product-card { border-radius: var(--mm-radius) !important; min-width: 0; }
    .ifa-card-image { aspect-ratio: 1 / 1; height: auto !important; }
    .ifa-card-image img { width: 100% !important; height: 100% !important; object-fit: contain !important; }
    .ifa-card-overlay { opacity: 0 !important; }           /* card itself opens the modal (ifa-katalog) */
    .ifa-card-body { padding: 10px 12px 12px !important; }
    .ifa-card-code { font-size: 11px !important; letter-spacing: 1px !important; }
    .ifa-card-title { font-size: 14.5px !important; line-height: 1.25 !important; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
    .ifa-kat-header { padding: 0 2px; }
    .ifa-subcat-bar { gap: 12px !important; align-items: center !important; }
    .ifa-back-to-cats { min-height: 44px; border-radius: 12px !important; }

    /* ---------- Product modal: full-bleed swipe gallery, sticky CTA ---------- */
    #ifa-modal { border-radius: 0 !important; }
    #ifa-modal-close { top: calc(10px + env(safe-area-inset-top, 0px)) !important; right: 10px !important; background: rgba(255,255,255,.92) !important; box-shadow: 0 2px 10px rgba(0,0,0,.15); z-index: 20 !important; }
    #ifa-modal-gallery { padding: 0 !important; background: #fff; }
    #ifa-slider-wrap { width: 100% !important; padding: 0 !important; }
    #ifa-slider-main { margin: 0 !important; max-width: 100% !important; width: 100% !important; height: auto !important; aspect-ratio: 1 / 1; border-radius: 0 !important; touch-action: pan-y; }
    #ifa-main-img { width: 100% !important; height: 100% !important; object-fit: contain !important; transition: opacity .2s ease, transform .25s var(--mm-ease); }
    #ifa-prev, #ifa-next { width: 40px !important; height: 40px !important; background: rgba(255,255,255,.9) !important; box-shadow: 0 2px 10px rgba(0,0,0,.12); }
    #ifa-prev { left: 8px !important; } #ifa-next { right: 8px !important; }
    #ifa-slider-thumbs { margin-top: 0 !important; overflow-x: auto !important; flex-wrap: nowrap !important; gap: 8px !important; padding: 10px var(--mm-gutter) 12px !important; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
    #ifa-slider-thumbs::-webkit-scrollbar { display: none; }
    #ifa-slider-thumbs .ifa-thumb { flex: 0 0 64px !important; width: 64px !important; height: 64px !important; object-fit: contain; border-radius: 10px !important; scroll-snap-align: start; }
    #ifa-modal-title { font-size: 22px !important; line-height: 1.2 !important; }
    #ifa-modal-info { padding-left: var(--mm-gutter) !important; padding-right: var(--mm-gutter) !important; }
    .ifa-tab-pane { font-size: 15.5px !important; line-height: 1.55 !important; padding-left: var(--mm-gutter) !important; padding-right: var(--mm-gutter) !important; }
    #ifa-angebot-wrap { position: sticky !important; bottom: 0; z-index: 15; background: linear-gradient(180deg, rgba(255,255,255,0), #fff 30%) !important; padding: 18px var(--mm-gutter) calc(14px + var(--mm-safe-b)) !important; }
    #ifa-angebot-btn { width: 100% !important; min-height: 54px; border-radius: 12px !important; }

    /* ---------- Service pages (.pg-*: Textildruck, UV-Druck, Firmenlogo, Werbeartikel, Produktion) ---------- */
    .pg-section { padding: 40px var(--mm-gutter) !important; }
    .pg-hero-content { padding: 44px var(--mm-gutter) !important; }
    .pg-hero h1 { font-size: clamp(40px, 12vw, 52px) !important; line-height: .95 !important; overflow-wrap: anywhere; }
    .pg-hero-desc { font-size: 16px !important; line-height: 1.55 !important; }
    .pg-hero-cta, .pg-cta-btn { text-decoration: none !important; min-height: 52px; border-radius: 12px !important; justify-content: center; width: 100%; }
    .pg-hero-cta span, .pg-cta-btn span { text-decoration: none !important; }
    .pg-breadcrumb-inner { padding-left: var(--mm-gutter) !important; padding-right: var(--mm-gutter) !important; font-size: 13.5px; }
    .pg-section-title, .pg-steps-title { font-size: clamp(28px, 8.4vw, 36px) !important; line-height: 1 !important; overflow-wrap: anywhere; }
    .pg-section-sub { font-size: 16px !important; line-height: 1.55 !important; }
    .pg-features { gap: var(--mm-gap) !important; }
    .pg-feat-card { padding: 20px 18px !important; border-radius: var(--mm-radius) !important; }
    .pg-feat-card h3 { font-size: 17px !important; }
    .pg-feat-card p { font-size: 15px !important; line-height: 1.5 !important; }
    .pg-two-col { gap: 20px !important; margin-bottom: 40px !important; min-width: 0; }
    .pg-two-col > * { min-width: 0; }
    .pg-two-col img { border-radius: var(--mm-radius) !important; }
    .pg-two-col-text h2 { font-size: clamp(26px, 8vw, 34px) !important; overflow-wrap: anywhere; hyphens: auto; -webkit-hyphens: auto; }
    .pg-two-col-text p { font-size: 16px !important; line-height: 1.6 !important; }
    .pg-two-col-text ul li { font-size: 15px !important; line-height: 1.45 !important; }
    .pg-steps { padding: 28px var(--mm-gutter) !important; border-radius: var(--mm-radius) !important; }
    .pg-steps-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: var(--mm-gap) !important; }
    .pg-step h4 { font-size: 15px !important; line-height: 1.25 !important; }
    .pg-step p { font-size: 13.5px !important; line-height: 1.45 !important; }
    .pg-faq-q { line-height: 1.35 !important; padding-top: 16px !important; padding-bottom: 16px !important; font-size: 16px !important; gap: 12px; }
    .pg-faq-q svg { flex-shrink: 0; }
    .pg-faq-a { font-size: 15.5px !important; line-height: 1.55 !important; }
    .pg-cta-banner { border-radius: var(--mm-radius) !important; padding: 28px 20px !important; }
    .pg-cta-banner h2 { font-size: clamp(26px, 8vw, 32px) !important; line-height: 1.05 !important; }

    /* ---------- Forms (WPForms): no iOS zoom, thumb-sized fields ---------- */
    body.mat-m .wpforms-container { margin: 12px 0 !important; }
    body.mat-m .wpforms-form input[type=text], body.mat-m .wpforms-form input[type=email], body.mat-m .wpforms-form input[type=tel],
    body.mat-m .wpforms-form input[type=number], body.mat-m .wpforms-form select, body.mat-m .wpforms-form textarea {
        font-size: 16px !important; min-height: 50px !important; border-radius: 10px !important; padding: 12px 14px !important; max-width: 100% !important; width: 100% !important;
    }
    body.mat-m .wpforms-form textarea { min-height: 120px !important; }
    body.mat-m .wpforms-form .wpforms-field-label { font-size: 15px !important; margin-bottom: 6px !important; }
    body.mat-m .wpforms-form .wpforms-layout-column-50 { width: 100% !important; }
    body.mat-m .wpforms-form .wpforms-field { padding: 8px 0 !important; }
    body.mat-m .wpforms-form button[type=submit], body.mat-m .wpforms-form .wpforms-submit { width: 100% !important; min-height: 54px !important; border-radius: 12px !important; font-size: 16px !important; }
    body.mat-m .wpforms-field-radio li, body.mat-m .wpforms-field-checkbox li { min-height: 40px; display: flex !important; align-items: center; }

    /* Kontakt: 120px top padding after the page hero */
    .page-id-207 .page-content > .elementor > .e-con + .e-con > .e-con-inner { padding-top: 28px !important; }

    /* ---------- Contact info boxes (whole box is a link): no underline ---------- */
    body.mat-m a.ekit_global_links, body.mat-m .elementskit-infobox, body.mat-m .elementskit-infobox * { text-decoration: none !important; }
    body.mat-m .elementskit-infobox .box-body p { color: #555 !important; }
    body.mat-m .elementskit-infobox { padding: 20px !important; border-radius: var(--mm-radius) !important; }
    body.mat-m .elementskit-info-box-title { font-size: 18px !important; }
    body.mat-m .elementskit-infobox .box-body p { font-size: 15.5px !important; line-height: 1.55 !important; }
    body.mat-m .elementor-widget-spacer .elementor-spacer-inner { height: 24px !important; max-height: 24px; }
    body.mat-m .elementor-widget-google_maps iframe, body.mat-m iframe[src*="google.com/maps"] { height: 320px !important; border-radius: var(--mm-radius); }

    /* ---------- Katalog page: 4 key figures as 2×2 ---------- */
    .page-id-2465 .page-content div[style*="minmax(180px"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 18px 8px !important; padding: 1.25rem 0 !important; text-align: center; }
    .page-id-2465 .page-content div[style*="minmax(180px"] > div > div:first-child { font-size: 2.1rem !important; }
    .page-id-2465 .page-content div[style*="minmax(180px"] > div > div:last-child { font-size: .7rem !important; letter-spacing: 1.5px !important; }

    /* ---------- FAQ page ---------- */
    .mat-faq { padding: 20px var(--mm-gutter) 40px !important; }
    .mat-faq summary { font-size: 17px !important; padding: 18px 36px 18px 0 !important; }
    .mat-faq-cta { border-radius: var(--mm-radius); padding: 22px !important; }
    .mat-faq-cta a { flex: 1 1 100%; text-align: center; min-height: 48px; border-radius: 10px; display: flex !important; align-items: center; justify-content: center; }

    /* ---------- Footer ---------- */
    #colophon a { min-height: 40px; display: inline-flex; align-items: center; }
    #colophon .elementor-icon-list-text, #colophon p, #colophon .elementor-widget-text-editor { font-size: 15px !important; }

    /* ---------- Images never overflow ---------- */
    body.mat-m img { max-width: 100%; height: auto; }
}

/* Small phones (≤ 360px): tighten gutters */
@media (max-width: 360px) {
    :root { --mm-gutter: 12px; --mm-gap: 10px; }
    .ms-hero .ms-feats { grid-template-columns: repeat(2, 1fr); }
    .mat-tabbar a { font-size: 10px; }
}

/* Installed as app (Add to Home Screen) */
@media (display-mode: standalone) and (max-width: 767px) {
    #ms-hdr-top { display: none !important; }
    #ms-hdr-main { padding-top: env(safe-area-inset-top, 0px); }
}

@media (prefers-reduced-motion: reduce) {
    .mat-tabbar, .mat-tabbar a svg, #ifa-main-img { transition: none !important; }
}

/* ---------- Desing page (page-id-2021, .tx-*): source type was 7–22px — make it readable on every screen ---------- */
body.page-id-2021 .tx-wrap { padding-top: 48px !important; }
body.page-id-2021 .tx-headline { margin-bottom: 36px !important; }
body.page-id-2021 .tx-label { font-size: 13px !important; letter-spacing: 3px !important; gap: 10px !important; margin-bottom: 14px !important; }
body.page-id-2021 .tx-label::before { width: 8px !important; height: 8px !important; }
body.page-id-2021 .tx-headline h1 { font-size: clamp(28px, 3vw, 46px) !important; line-height: .95 !important; letter-spacing: .5px !important; }
body.page-id-2021 .tx-headline h2 { font-size: clamp(13px, 1.05vw, 16px) !important; letter-spacing: 3px !important; color: #555 !important; margin-top: 14px !important; }
body.page-id-2021 .tx-underline { width: 64px !important; height: 3px !important; margin-top: 16px !important; }
body.page-id-2021 .tx-card-label { font-size: 19px !important; letter-spacing: 2.5px !important; }
body.page-id-2021 .tx-feature-text { font-size: 11px !important; letter-spacing: .6px !important; color: #555 !important; }
body.page-id-2021 .tx-trust-title { font-size: 17px !important; }
body.page-id-2021 .tx-trust-sub { font-size: 13.5px !important; color: #666 !important; }
@media (max-width: 767px) {
    body.page-id-2021 .tx-wrap { padding: 32px 16px 28px !important; }
    body.page-id-2021 .tx-headline h1 { font-size: clamp(26px, 7.8vw, 32px) !important; }
    body.page-id-2021 .tx-headline h2 { font-size: 12px !important; letter-spacing: 2px !important; }
    body.page-id-2021 .tx-feature-text { font-size: 11px !important; }
}
