/*
 * PSFM public visual stability layer.
 * This file intentionally contains only high-confidence presentation fixes.
 * It must remain route-, content-, and SEO-neutral.
 */

:root {
    --psfm-corporate-navy: #07172c;
    --psfm-corporate-navy-soft: #102847;
    --psfm-corporate-red: #d71920;
    --psfm-corporate-ink: #15263a;
    --psfm-corporate-muted: #5f6f82;
    --psfm-corporate-surface: #f6f8fb;
}

/* Targeted corporate refinement: desktop navigation remains quiet at rest,
   then gains a single controlled brand cue for the active destination. */
@media (min-width: 1200px) {
    html body[class]:not(#psfm-final-contrast-guard) > header.header .header-menu-list,
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) > header.header .header-menu-list {
        gap: clamp(3px, 0.36vw, 7px) !important;
    }

    html body[class]:not(#psfm-final-contrast-guard) > header.header .header-menu-list > .nav-item > :is(.nav-link, .dropdown-toggle),
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) > header.header .header-menu-list > .nav-item > :is(.nav-link, .dropdown-toggle) {
        position: relative !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        min-height: 42px !important;
        padding: 9px clamp(8px, 0.7vw, 13px) !important;
        border: 1px solid transparent !important;
        border-radius: 11px !important;
        background: transparent !important;
        color: #102033 !important;
        -webkit-text-fill-color: #102033 !important;
        font-weight: 700 !important;
        letter-spacing: 0.005em !important;
        line-height: 1.15 !important;
        text-shadow: none !important;
        transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease !important;
    }

    html body[class]:not(#psfm-final-contrast-guard) > header.header .header-menu-list > .nav-item > :is(.nav-link, .dropdown-toggle)::after,
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) > header.header .header-menu-list > .nav-item > :is(.nav-link, .dropdown-toggle)::after {
        content: "" !important;
        position: absolute !important;
        right: 13px !important;
        bottom: 6px !important;
        left: 13px !important;
        height: 2px !important;
        border-radius: 999px !important;
        background: #c9151d !important;
        opacity: 0 !important;
        transform: scaleX(0.55) !important;
        transition: opacity 160ms ease, transform 160ms ease !important;
    }

    html body[class]:not(#psfm-final-contrast-guard) > header.header .header-menu-list > .nav-item > :is(.nav-link:hover, .nav-link:focus-visible, .dropdown-toggle:hover, .dropdown-toggle:focus-visible),
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) > header.header .header-menu-list > .nav-item > :is(.nav-link:hover, .nav-link:focus-visible, .dropdown-toggle:hover, .dropdown-toggle:focus-visible) {
        border-color: rgba(16, 32, 51, 0.08) !important;
        background: #f7f9fc !important;
        color: #102033 !important;
        -webkit-text-fill-color: #102033 !important;
        box-shadow: 0 5px 14px rgba(16, 32, 51, 0.06) !important;
        outline: none !important;
    }

    html body[class]:not(#psfm-final-contrast-guard) > header.header .header-menu-list > .nav-item > :is(.nav-link.active, .dropdown-toggle.active, .nav-link[aria-expanded="true"], .dropdown-toggle[aria-expanded="true"]),
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) > header.header .header-menu-list > .nav-item > :is(.nav-link.active, .dropdown-toggle.active, .nav-link[aria-expanded="true"], .dropdown-toggle[aria-expanded="true"]) {
        border-color: rgba(201, 21, 29, 0.12) !important;
        background: #fff4f4 !important;
        color: #b71920 !important;
        -webkit-text-fill-color: #b71920 !important;
        box-shadow: none !important;
    }

    html body[class]:not(#psfm-final-contrast-guard) > header.header .header-menu-list > .nav-item > :is(.nav-link.active, .dropdown-toggle.active, .nav-link[aria-expanded="true"], .dropdown-toggle[aria-expanded="true"])::after,
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) > header.header .header-menu-list > .nav-item > :is(.nav-link.active, .dropdown-toggle.active, .nav-link[aria-expanded="true"], .dropdown-toggle[aria-expanded="true"])::after {
        opacity: 1 !important;
        transform: scaleX(1) !important;
    }
}

/* Industry detail heroes use an explicit opaque navy treatment on phones so
   content stays readable over every supplied hero image. */
@media (max-width: 767.98px) {
    html body[class]:not(#psfm-final-contrast-guard) .premium-product-page .premium-product-hero,
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) .premium-product-page .premium-product-hero {
        background: linear-gradient(135deg, #081426 0%, #102b4a 100%) !important;
    }

    html body[class]:not(#psfm-final-contrast-guard) .premium-product-page .premium-product-hero :is(h1, p),
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) .premium-product-page .premium-product-hero :is(h1, p) {
        color: #ffffff !important;
        -webkit-text-fill-color: #ffffff !important;
        opacity: 1 !important;
        text-shadow: none !important;
    }

    html body[class]:not(#psfm-final-contrast-guard) .premium-product-page .premium-product-kicker,
    html body[class]:not(#psfm-final-contrast-guard) .premium-product-page .premium-product-kicker :is(i, svg),
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) .premium-product-page .premium-product-kicker,
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) .premium-product-page .premium-product-kicker :is(i, svg) {
        color: #ffd66b !important;
        -webkit-text-fill-color: #ffd66b !important;
        opacity: 1 !important;
    }

    html body[class]:not(#psfm-final-contrast-guard) .premium-product-page .premium-product-hero h1,
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) .premium-product-page .premium-product-hero h1 {
        font-size: clamp(2rem, 9vw, 2.55rem) !important;
        line-height: 1.1 !important;
        text-wrap: balance !important;
    }

    html body[class]:not(#psfm-final-contrast-guard) .premium-product-page .premium-product-hero p,
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) .premium-product-page .premium-product-hero p {
        color: #edf3fa !important;
        -webkit-text-fill-color: #edf3fa !important;
        font-size: 1rem !important;
        line-height: 1.65 !important;
    }
}

/* The assistant is a compact, high-contrast PSFM service desk. The red launcher
   is deliberately distinct from navy hero surfaces, while the prompt remains
   an optional, non-blocking invitation to start a conversation. */
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-launcher,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-home-page .psfm-ai-launcher,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-conversion-critical-page .psfm-ai-launcher {
    border: 2px solid #ffffff !important;
    background: #c9151d !important;
    box-shadow: 0 0 0 2px rgba(201, 21, 29, 0.16), 0 12px 28px rgba(16, 32, 51, 0.25) !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-launcher:hover,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-launcher:focus-visible,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-open .psfm-ai-launcher {
    border-color: #ffffff !important;
    background: #a91119 !important;
    box-shadow: 0 0 0 2px rgba(201, 21, 29, 0.2), 0 14px 30px rgba(16, 32, 51, 0.28) !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-launcher::after {
    border-color: #102033 !important;
    background: #ffffff !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-panel,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-home-page .psfm-ai-panel,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-conversion-critical-page .psfm-ai-panel {
    border-color: #cfd9e5 !important;
    border-radius: 14px !important;
    box-shadow: 0 22px 48px rgba(16, 32, 51, 0.24) !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-header {
    padding: 13px 14px !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-header strong,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-header #psfm-ai-status {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-header #psfm-ai-status {
    color: #d7e2ee !important;
    -webkit-text-fill-color: #d7e2ee !important;
    font-size: 0.72rem !important;
    line-height: 1.35 !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-messages {
    background: #f7f9fc !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-message.is-bot {
    border: 1px solid #e1e8f0 !important;
    background: #ffffff !important;
    color: #2d4057 !important;
    -webkit-text-fill-color: #2d4057 !important;
}

/* PSFM public visual baseline lock. These selectors are intentionally scoped
   to the verified public components, so future feature work does not create
   accidental colour, spacing, or typography regressions elsewhere. Override
   only with an explicit component decision, never with global text rules. */
html body[class]:not(#psfm-public-visual-unlock) main.main .seo-page .seo-card.seo-hero .seo-cta-group .theme-btn-white,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) main.main .seo-page .seo-card.seo-hero .seo-cta-group .theme-btn-white {
    border: 1px solid rgba(16, 32, 51, 0.14) !important;
    background: #ffffff !important;
    color: #102033 !important;
    -webkit-text-fill-color: #102033 !important;
    text-shadow: none !important;
}

html body[class]:not(#psfm-public-visual-unlock) main.main .seo-page .seo-card.seo-hero .seo-cta-group .theme-btn-white :where(span, strong),
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) main.main .seo-page .seo-card.seo-hero .seo-cta-group .theme-btn-white :where(span, strong) {
    color: inherit !important;
    -webkit-text-fill-color: currentColor !important;
}

html body[class]:not(#psfm-public-visual-unlock) main.main .seo-page .seo-card.seo-hero .seo-cta-group .theme-btn-white :is(i, svg),
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) main.main .seo-page .seo-card.seo-hero .seo-cta-group .theme-btn-white :is(i, svg) {
    color: #c9151d !important;
    -webkit-text-fill-color: #c9151d !important;
}

html body[class]:not(#psfm-public-visual-unlock) .psfm-ai-assistant :is(.psfm-ai-trust-row, .psfm-ai-footer),
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .psfm-ai-assistant :is(.psfm-ai-trust-row, .psfm-ai-footer) {
    display: none !important;
}

html body[class]:not(#psfm-public-visual-unlock) .psfm-ai-assistant .psfm-ai-messages,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .psfm-ai-assistant .psfm-ai-messages {
    min-height: 104px !important;
    padding: 12px 14px !important;
    background: #f7f9fc !important;
}

html body[class]:not(#psfm-public-visual-unlock) .psfm-ai-assistant .psfm-ai-quick-actions-wrap,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .psfm-ai-assistant .psfm-ai-quick-actions-wrap {
    padding: 10px 14px 0 !important;
}

html body[class]:not(#psfm-public-visual-unlock) .psfm-ai-assistant .psfm-ai-quick-actions,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .psfm-ai-assistant .psfm-ai-quick-actions {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 7px !important;
    max-height: none !important;
    overflow: visible !important;
}

html body[class]:not(#psfm-public-visual-unlock) .psfm-ai-assistant .psfm-ai-quick-actions button,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .psfm-ai-assistant .psfm-ai-quick-actions button {
    min-height: 38px !important;
    padding: 7px 6px !important;
    border-color: #d9e2ec !important;
    background: #ffffff !important;
    color: #102033 !important;
    -webkit-text-fill-color: #102033 !important;
    font-size: 0.69rem !important;
    font-weight: 800 !important;
    line-height: 1.18 !important;
}

html body[class]:not(#psfm-public-visual-unlock) .psfm-ai-assistant .psfm-ai-input-row,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .psfm-ai-assistant .psfm-ai-input-row {
    margin-top: 10px !important;
    padding: 10px 14px 14px !important;
    border-top: 1px solid #e5ebf2 !important;
    background: #ffffff !important;
}

html body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact > ul,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact > ul {
    display: grid !important;
    gap: 12px !important;
    margin: 0 !important;
    padding: 0 !important;
}

html body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact > ul > li:not(.footer-contact-hours),
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact > ul > li:not(.footer-contact-hours) {
    display: grid !important;
    grid-template-columns: 24px minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 10px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

html body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact > ul > li > i,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact > ul > li > i {
    grid-column: 1 !important;
    width: 24px !important;
    min-width: 24px !important;
    margin: 3px 0 0 !important;
    color: #ffffff !important;
    text-align: center !important;
}

html body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact > ul > li:not(.footer-phone-item) > a,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact > ul > li:not(.footer-phone-item) > a {
    display: grid !important;
    grid-column: 1 / -1 !important;
    grid-template-columns: 24px minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 10px !important;
    min-width: 0 !important;
    color: inherit !important;
}

html body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact > ul > li:not(.footer-phone-item) > a > i,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact > ul > li:not(.footer-phone-item) > a > i {
    grid-column: 1 !important;
    width: 24px !important;
    min-width: 24px !important;
    margin: 3px 0 0 !important;
    color: #ffffff !important;
    text-align: center !important;
}

html body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact > ul > li.footer-phone-item > a.footer-phone-link,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact > ul > li.footer-phone-item > a.footer-phone-link {
    display: block !important;
    grid-column: 2 !important;
    min-width: 0 !important;
}

html body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact :is(.footer-contact-copy, .footer-contact-number-localized),
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact :is(.footer-contact-copy, .footer-contact-number-localized) {
    display: block !important;
    min-width: 0 !important;
    color: inherit !important;
    -webkit-text-fill-color: currentColor !important;
}

html body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact .footer-contact-number-localized,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact .footer-contact-number-localized {
    white-space: nowrap !important;
    font-variant-numeric: tabular-nums !important;
}

html body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact .footer-support-line-contact-list,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact .footer-support-line-contact-list {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: rgba(255, 255, 255, 0.94) !important;
    -webkit-text-fill-color: rgba(255, 255, 255, 0.94) !important;
}

html body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact .footer-contact-hours,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact .footer-contact-hours {
    display: block !important;
    width: 100% !important;
    margin: 2px 0 0 !important;
    padding: 0 !important;
}

html body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact .footer-contact-hours .psfm-head-office-hours,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact .footer-contact-hours .psfm-head-office-hours {
    padding: 14px 0 0 !important;
    border: 0 !important;
    border-top: 1px solid rgba(255, 255, 255, 0.18) !important;
    border-radius: 0 !important;
    background: transparent !important;
}

html body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact .psfm-head-office-hours__row,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact .psfm-head-office-hours__row {
    grid-template-columns: minmax(0, 1fr) max-content !important;
    gap: 12px !important;
}

html body[class]:not(#psfm-public-visual-unlock) .blog-detail-card,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .blog-detail-card {
    overflow: hidden !important;
    border: 1px solid #dfe7f0 !important;
    border-radius: 18px !important;
    background: #ffffff !important;
    box-shadow: 0 18px 42px rgba(16, 32, 51, 0.08) !important;
}

html body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-body,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-body {
    padding: clamp(24px, 4vw, 52px) clamp(20px, 5vw, 72px) !important;
}

html body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-eyebrow,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-eyebrow {
    margin: 0 0 12px !important;
    color: #c9151d !important;
    -webkit-text-fill-color: #c9151d !important;
    font-size: 0.76rem !important;
    font-weight: 900 !important;
    letter-spacing: 0.08em !important;
    line-height: 1.2 !important;
    text-transform: uppercase !important;
}

html body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-body > h1,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-body > h1 {
    max-width: 24ch !important;
    margin: 0 0 18px !important;
    color: #07172c !important;
    -webkit-text-fill-color: #07172c !important;
    font-size: clamp(2rem, 4.1vw, 3.3rem) !important;
    font-weight: 850 !important;
    letter-spacing: -0.028em !important;
    line-height: 1.12 !important;
}

html body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-summary,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-summary {
    max-width: 72ch !important;
    margin: 0 0 28px !important;
    padding-inline-start: 18px !important;
    border-inline-start: 3px solid #c9151d !important;
    color: #42546c !important;
    -webkit-text-fill-color: #42546c !important;
    font-size: clamp(1rem, 1.4vw, 1.18rem) !important;
    font-weight: 600 !important;
    line-height: 1.7 !important;
}

html body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-content,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-content {
    max-width: 76ch !important;
    color: #31445e !important;
    -webkit-text-fill-color: #31445e !important;
    font-size: clamp(1rem, 1.25vw, 1.11rem) !important;
    line-height: 1.82 !important;
}

html body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-content :is(p, li),
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-content :is(p, li) {
    color: inherit !important;
    -webkit-text-fill-color: currentColor !important;
    line-height: inherit !important;
}

html body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-content p,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-content p {
    margin: 0 0 1.15em !important;
}

html body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-content :is(h2, h3, h4),
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-content :is(h2, h3, h4) {
    margin: 1.8em 0 0.62em !important;
    color: #07172c !important;
    -webkit-text-fill-color: #07172c !important;
    font-weight: 850 !important;
    line-height: 1.25 !important;
}

html body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-content h2,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-content h2 {
    font-size: clamp(1.45rem, 2.4vw, 2rem) !important;
}

html body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-content h3,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-content h3 {
    font-size: clamp(1.2rem, 1.9vw, 1.55rem) !important;
}

html body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-content :is(ul, ol),
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-content :is(ul, ol) {
    margin: 0 0 1.3em !important;
    padding-inline-start: 1.3em !important;
}

html body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-content a,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-content a {
    color: #b71920 !important;
    -webkit-text-fill-color: #b71920 !important;
    font-weight: 750 !important;
    text-decoration-color: rgba(183, 25, 32, 0.36) !important;
    text-underline-offset: 0.16em !important;
}

html body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-content blockquote,
html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-content blockquote {
    margin: 1.5em 0 !important;
    padding: 18px 20px !important;
    border-inline-start: 4px solid #c9151d !important;
    border-radius: 0 12px 12px 0 !important;
    background: #f7f9fc !important;
    color: #253952 !important;
    -webkit-text-fill-color: #253952 !important;
    font-weight: 650 !important;
}

@media (max-width: 575.98px) {
    html body[class]:not(#psfm-public-visual-unlock) .psfm-ai-assistant .psfm-ai-quick-actions,
    html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .psfm-ai-assistant .psfm-ai-quick-actions {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    html body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact > ul > li:not(.footer-contact-hours),
    html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact > ul > li:not(.footer-contact-hours) {
        grid-template-columns: 22px minmax(0, 1fr) !important;
        gap: 9px !important;
    }

    html body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact > ul > li:not(.footer-phone-item) > a,
    html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact > ul > li:not(.footer-phone-item) > a {
        grid-template-columns: 22px minmax(0, 1fr) !important;
        gap: 9px !important;
    }

    html body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact :is(ul > li > i, ul > li > a > i),
    html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact :is(ul > li > i, ul > li > a > i) {
        width: 22px !important;
        min-width: 22px !important;
    }

    html body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact .psfm-head-office-hours__row,
    html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .footer-area .footer-contact .psfm-head-office-hours__row {
        grid-template-columns: minmax(0, 1fr) max-content !important;
        gap: 10px !important;
    }

    html body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-body,
    html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-body {
        padding: 24px 20px 30px !important;
    }

    html body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-body > h1,
    html[dir="rtl"] body[class]:not(#psfm-public-visual-unlock) .blog-detail-card .blog-detail-body > h1 {
        max-width: none !important;
        font-size: clamp(1.9rem, 9vw, 2.38rem) !important;
        line-height: 1.14 !important;
    }
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-proactive-prompt {
    position: absolute !important;
    right: 0 !important;
    bottom: calc(100% + 12px) !important;
    display: inline-flex !important;
    align-items: center !important;
    width: min(286px, calc(100vw - 40px)) !important;
    min-height: 54px !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 11px 13px !important;
    overflow: hidden !important;
    border: 1px solid #d9e2ec !important;
    border-inline-start: 3px solid #c9151d !important;
    border-radius: 12px !important;
    background: #ffffff !important;
    color: #1b2e45 !important;
    -webkit-text-fill-color: #1b2e45 !important;
    box-shadow: 0 12px 30px rgba(16, 32, 51, 0.18) !important;
    font: inherit !important;
    font-size: 0.82rem !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    text-align: start !important;
    cursor: pointer !important;
    z-index: 2 !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-proactive-prompt > i {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 30px !important;
    height: 30px !important;
    flex: 0 0 30px !important;
    border-radius: 9px !important;
    background: #fff1f2 !important;
    color: #c9151d !important;
    -webkit-text-fill-color: #c9151d !important;
    font-size: 0.9rem !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-proactive-prompt > span {
    min-width: 0 !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-proactive-prompt:hover,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-proactive-prompt:focus-visible {
    border-color: rgba(201, 21, 29, 0.32) !important;
    background: #fff8f8 !important;
    outline: none !important;
}

html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-proactive-prompt,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant[dir="rtl"] .psfm-ai-proactive-prompt {
    right: auto !important;
    left: 0 !important;
    text-align: right !important;
}

@media (max-width: 575.98px) {
    html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-proactive-prompt {
        width: min(278px, calc(100vw - 32px)) !important;
        min-height: 50px !important;
        padding: 10px 11px !important;
        font-size: 0.78rem !important;
    }
}

/* Home: remove the visually empty desktop band beneath the fixed header. */
@media (min-width: 1200px) {
    html body main.main .homepage-hero,
    html[dir="rtl"] body main.main .homepage-hero {
        padding-top: clamp(38px, 3.2vw, 50px) !important;
        padding-bottom: clamp(44px, 3.8vw, 60px) !important;
    }

    html body main.main .homepage-hero .hero-layout,
    html[dir="rtl"] body main.main .homepage-hero .hero-layout {
        gap: clamp(30px, 3vw, 48px) !important;
    }

    html body main.main .homepage-hero .hero-copy h1,
    html body main.main .homepage-hero .hero-main-title,
    html body main.main .homepage-hero .hero-main-title span,
    html[dir="rtl"] body main.main .homepage-hero .hero-copy h1,
    html[dir="rtl"] body main.main .homepage-hero .hero-main-title,
    html[dir="rtl"] body main.main .homepage-hero .hero-main-title span {
        color: #ffffff !important;
        -webkit-text-fill-color: #ffffff !important;
        text-shadow: 0 2px 16px rgba(0, 0, 0, 0.22) !important;
    }

    html body main.main .homepage-hero .hero-copy > p,
    html[dir="rtl"] body main.main .homepage-hero .hero-copy > p {
        color: rgba(255, 255, 255, 0.9) !important;
        -webkit-text-fill-color: rgba(255, 255, 255, 0.9) !important;
    }
}

/* Keep primary and secondary actions legible against every corporate surface. */
html body main.main .homepage-hero .theme-btn,
html body main.main .site-breadcrumb-wrapper .theme-btn,
html[dir="rtl"] body main.main .homepage-hero .theme-btn,
html[dir="rtl"] body main.main .site-breadcrumb-wrapper .theme-btn {
    background: var(--psfm-corporate-red) !important;
    border-color: var(--psfm-corporate-red) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

html body main.main .homepage-hero .theme-btn-white,
html[dir="rtl"] body main.main .homepage-hero .theme-btn-white {
    background: #ffffff !important;
    border-color: #ffffff !important;
    color: var(--psfm-corporate-navy) !important;
    -webkit-text-fill-color: var(--psfm-corporate-navy) !important;
}

html body main.main .homepage-hero .theme-btn :where(span, i, strong, bdi),
html[dir="rtl"] body main.main .homepage-hero .theme-btn :where(span, i, strong, bdi) {
    color: currentColor !important;
    -webkit-text-fill-color: currentColor !important;
}

/* Shared public-page type scale: keeps long Arabic and English headings readable. */
html body main.main :where(.site-title, .seo-section-title) {
    line-height: 1.18 !important;
    letter-spacing: -0.018em !important;
    overflow-wrap: anywhere;
    word-break: normal;
    text-wrap: balance;
}

html[dir="rtl"] body main.main :where(.site-title, .seo-section-title) {
    line-height: 1.3 !important;
    letter-spacing: 0 !important;
}

html body main.main :where(.site-heading, .section-intro, .about-hero-card, .psfm-service-card, .service-card, .seo-card, .workspace-item) :where(p, li) {
    line-height: 1.7;
    overflow-wrap: break-word;
    word-break: normal;
}

html body main.main :where(.psfm-service-card, .service-card, .seo-card, .workspace-item) :where(h2, h3, h4, h5) {
    margin-top: 0;
    margin-bottom: 10px;
    line-height: 1.26;
    overflow-wrap: anywhere;
    text-wrap: balance;
}

html body main.main .site-breadcrumb-wrapper,
html[dir="rtl"] body main.main .site-breadcrumb-wrapper {
    min-height: clamp(220px, 20vw, 292px) !important;
    padding: clamp(50px, 5vw, 74px) 0 !important;
    background-color: var(--psfm-corporate-navy) !important;
    background-image:
        linear-gradient(120deg, rgba(7, 23, 44, 0.94), rgba(16, 40, 71, 0.78)),
        var(--psfm-breadcrumb-bg, none) !important;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    isolation: isolate;
}

html body main.main > .site-breadcrumb:first-child,
html[dir="rtl"] body main.main > .site-breadcrumb:first-child {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

html body main.main:has(> .site-breadcrumb + .psfm-login-page),
html[dir="rtl"] body main.main:has(> .site-breadcrumb + .psfm-login-page) {
    padding-top: 0 !important;
}

html body main.main > .site-breadcrumb + .psfm-login-page,
html[dir="rtl"] body main.main > .site-breadcrumb + .psfm-login-page {
    margin-top: 0 !important;
}

html body main.main .site-breadcrumb-wrapper::before,
html[dir="rtl"] body main.main .site-breadcrumb-wrapper::before {
    background: transparent !important;
}

html body main.main .site-breadcrumb-wrapper .container,
html[dir="rtl"] body main.main .site-breadcrumb-wrapper .container {
    position: relative;
    z-index: 1;
}

html body main.main .site-breadcrumb-wrapper :where(.breadcrumb-title, .breadcrumb-menu, .breadcrumb-menu li, .breadcrumb-menu a, .psfm-breadcrumb-summary, .psfm-breadcrumb-chips span),
html[dir="rtl"] body main.main .site-breadcrumb-wrapper :where(.breadcrumb-title, .breadcrumb-menu, .breadcrumb-menu li, .breadcrumb-menu a, .psfm-breadcrumb-summary, .psfm-breadcrumb-chips span) {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    opacity: 1 !important;
}

html body main.main .site-breadcrumb .breadcrumb-title,
html body main.main .breadcrumb-title,
html[dir="rtl"] body main.main .site-breadcrumb .breadcrumb-title,
html[dir="rtl"] body main.main .breadcrumb-title {
    max-inline-size: min(100%, 780px) !important;
    margin-bottom: 12px;
    line-height: 1.2 !important;
    overflow-wrap: anywhere;
    text-wrap: balance;
}

@media (max-width: 767.98px) {
    html body main.main :where(.site-title, .seo-section-title) {
        line-height: 1.24 !important;
        text-wrap: balance;
    }

    html[dir="rtl"] body main.main :where(.site-title, .seo-section-title) {
        line-height: 1.34 !important;
    }

    html body main.main .site-breadcrumb-wrapper,
    html[dir="rtl"] body main.main .site-breadcrumb-wrapper {
        min-height: 190px !important;
        padding: 42px 0 !important;
    }

    html body main.main .site-breadcrumb .breadcrumb-title,
    html body main.main .breadcrumb-title,
    html[dir="rtl"] body main.main .site-breadcrumb .breadcrumb-title,
    html[dir="rtl"] body main.main .breadcrumb-title {
        margin-bottom: 8px;
        font-size: clamp(1.5rem, 7vw, 2.05rem) !important;
        line-height: 1.25 !important;
    }
}

/* Desktop composition repair: do not compress substantive sales content into five columns. */
@media (min-width: 1200px) {
    html body main.main .psfm-recommendation-grid,
    html[dir="rtl"] body main.main .psfm-recommendation-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 22px !important;
    }

    html body main.main .psfm-recommendation-card,
    html[dir="rtl"] body main.main .psfm-recommendation-card {
        min-width: 0;
        min-height: 100%;
    }

    html body main.main .psfm-recommendation-card :where(h3, h4),
    html[dir="rtl"] body main.main .psfm-recommendation-card :where(h3, h4) {
        font-size: clamp(1rem, 1.15vw, 1.16rem) !important;
        line-height: 1.3 !important;
    }

html body main.main .psfm-recommendation-card :where(p, li),
html[dir="rtl"] body main.main .psfm-recommendation-card :where(p, li) {
    font-size: 0.95rem !important;
    line-height: 1.62 !important;
}

html body main.main .psfm-recommendation-actions a,
html body main.main .psfm-recommendation-actions a :where(i, span),
html[dir="rtl"] body main.main .psfm-recommendation-actions a,
html[dir="rtl"] body main.main .psfm-recommendation-actions a :where(i, span) {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    opacity: 1 !important;
}
}

@media (min-width: 1600px) {
    html body main.main .psfm-recommendation-grid,
    html[dir="rtl"] body main.main .psfm-recommendation-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
}

/* The public-trust signal is detailed content, so it uses one full-width card per slide. */
html body main.main .review-highlights-panel .review-highlights-carousel .owl-item,
html[dir="rtl"] body main.main .review-highlights-panel .review-highlights-carousel .owl-item {
    min-width: 0 !important;
}

html body main.main .review-highlights-panel .review-highlight-card,
html[dir="rtl"] body main.main .review-highlights-panel .review-highlight-card {
    min-width: 0;
    padding: clamp(20px, 2.15vw, 28px) !important;
}

html body main.main .review-highlights-panel .review-highlight-card :where(h3, p, span, a),
html[dir="rtl"] body main.main .review-highlights-panel .review-highlight-card :where(h3, p, span, a) {
    overflow-wrap: break-word;
    word-break: normal;
}

@media (min-width: 992px) and (max-width: 1599.98px) {
    html body main.main .client-trust-grid,
    html[dir="rtl"] body main.main .client-trust-grid {
        grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr) !important;
        gap: 24px !important;
    }

    html body main.main .review-confidence-grid,
    html[dir="rtl"] body main.main .review-confidence-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }

    html body main.main .review-confidence-grid span,
    html[dir="rtl"] body main.main .review-confidence-grid span {
        min-height: 54px !important;
        font-size: 0.92rem !important;
        line-height: 1.35 !important;
    }
}

/* Restore readable dark copy inside the service hero's white information cards. */
html body main.main .seo-card.seo-hero .seo-highlight,
html[dir="rtl"] body main.main .seo-card.seo-hero .seo-highlight {
    background: #ffffff !important;
    border: 1px solid rgba(255, 255, 255, 0.7) !important;
    box-shadow: 0 10px 22px rgba(0, 0, 0, 0.12) !important;
}

html body main.main .seo-card.seo-hero .seo-highlight :where(strong, span),
html[dir="rtl"] body main.main .seo-card.seo-hero .seo-highlight :where(strong, span) {
    color: var(--psfm-corporate-navy) !important;
    -webkit-text-fill-color: var(--psfm-corporate-navy) !important;
    opacity: 1 !important;
}

html body main.main .seo-card.seo-hero .seo-highlight span,
html[dir="rtl"] body main.main .seo-card.seo-hero .seo-highlight span {
    color: #46596f !important;
    -webkit-text-fill-color: #46596f !important;
}

html body main.main .seo-card.seo-hero .service-intent-item,
html[dir="rtl"] body main.main .seo-card.seo-hero .service-intent-item {
    background: #ffffff !important;
    border: 1px solid rgba(255, 255, 255, 0.72) !important;
    box-shadow: 0 10px 22px rgba(0, 0, 0, 0.1) !important;
}

html body main.main .seo-card.seo-hero .service-intent-item :where(strong, span, p),
html[dir="rtl"] body main.main .seo-card.seo-hero .service-intent-item :where(strong, span, p) {
    color: var(--psfm-corporate-navy) !important;
    -webkit-text-fill-color: var(--psfm-corporate-navy) !important;
    opacity: 1 !important;
}

html body main.main .seo-card.seo-hero .service-intent-item span,
html body main.main .seo-card.seo-hero .service-intent-item p,
html[dir="rtl"] body main.main .seo-card.seo-hero .service-intent-item span,
html[dir="rtl"] body main.main .seo-card.seo-hero .service-intent-item p {
    color: #46596f !important;
    -webkit-text-fill-color: #46596f !important;
}

html body main.main .seo-page .seo-panel,
html[dir="rtl"] body main.main .seo-page .seo-panel {
    border: 1px solid #dce4ed !important;
    box-shadow: 0 18px 42px rgba(7, 23, 44, 0.1) !important;
}

html body main.main .seo-page .seo-panel :where(p, li, label, .contact-line span),
html[dir="rtl"] body main.main .seo-page .seo-panel :where(p, li, label, .contact-line span) {
    color: #46596f !important;
    -webkit-text-fill-color: #46596f !important;
    line-height: 1.65 !important;
}

html body main.main .seo-page .seo-panel :where(h2, h3, h4, a[href^="tel:"], a[href^="mailto:"], .contact-line a),
html[dir="rtl"] body main.main .seo-page .seo-panel :where(h2, h3, h4, a[href^="tel:"], a[href^="mailto:"], .contact-line a) {
    color: var(--psfm-corporate-navy) !important;
    -webkit-text-fill-color: var(--psfm-corporate-navy) !important;
}

/* A laptop desktop is not wide enough for four dense footer columns. */
@media (min-width: 992px) and (max-width: 1599.98px) {
    html body .footer-area .psfm-footer-corporate-grid,
    html[dir="rtl"] body .footer-area .psfm-footer-corporate-grid {
        row-gap: 34px !important;
    }

    html body .footer-area .psfm-footer-corporate-grid > [class*="col-"],
    html[dir="rtl"] body .footer-area .psfm-footer-corporate-grid > [class*="col-"] {
        width: 50% !important;
        flex: 0 0 50% !important;
        max-width: 50% !important;
    }

    html body .footer-area .footer-contact :where(a, span, bdi),
    html[dir="rtl"] body .footer-area .footer-contact :where(a, span, bdi) {
        font-size: 0.95rem !important;
        line-height: 1.55 !important;
        overflow-wrap: break-word;
        word-break: normal;
    }
}

/* Header: clearly show the active navigation destination without enlarging the full desktop bar. */
@media (min-width: 1200px) {
    body > header.header .navbar .nav-link {
        border-radius: 8px !important;
        transition: color 0.2s ease, background-color 0.2s ease !important;
    }

    body > header.header .navbar .nav-link:hover,
    body > header.header .navbar .nav-link:focus-visible {
        background: #f3f6fa !important;
        color: var(--psfm-corporate-navy) !important;
    }

    body > header.header .navbar .nav-link.active {
        background: #fff1f2 !important;
        color: #b71920 !important;
    }
}

/* RTL inner pages already receive the fixed-header offset from body; remove the duplicate main offset. */
@media (min-width: 1200px) {
    html[dir="rtl"] body main.main:has(> .site-breadcrumb) {
        padding-top: 0 !important;
    }
}

/* Keep the content offset equal to the real fixed header on smaller screens.
   Earlier layers reserved a 134px header, creating a visible blank band above
   every inner-page breadcrumb on phones and tablets. */
@media (max-width: 575.98px) {
    :root {
        --psfm-fixed-header-height: 64px !important;
    }

    html body main.main,
    html body > main.main,
    html[dir="rtl"] body main.main,
    html[dir="rtl"] body > main.main {
        padding-top: var(--psfm-fixed-header-height) !important;
    }
}

/* A 1200px+ desktop can support four concise footer columns. Keeping the
   previous two-column layout through this range doubled the footer height and
   made the contact area feel disconnected from the rest of the page. */
@media (min-width: 1200px) and (max-width: 1599.98px) {
    html body[class] .footer-area .psfm-footer-corporate-grid > [class*="col-"]:nth-child(n),
    html[dir="rtl"] body[class] .footer-area .psfm-footer-corporate-grid > [class*="col-"]:nth-child(n) {
        width: 25% !important;
        flex: 0 0 25% !important;
        max-width: 25% !important;
    }
}

/* Keep the information-rich desktop footer compact without hiding any copy or
   links: smaller rhythm, not less content. */
@media (min-width: 1200px) and (max-width: 1599.98px) {
    html body[class] .footer-area .footer-widget-wrapper,
    html[dir="rtl"] body[class] .footer-area .footer-widget-wrapper {
        padding-top: 48px !important;
        padding-bottom: 48px !important;
    }

    html body[class] .footer-area .about-us .footer-logo,
    html[dir="rtl"] body[class] .footer-area .about-us .footer-logo {
        padding: 6px !important;
        margin-bottom: 12px !important;
    }

    html body[class] .footer-area .about-us .psfm-footer-accordion-panel > p,
    html[dir="rtl"] body[class] .footer-area .about-us .psfm-footer-accordion-panel > p {
        margin-bottom: 12px !important;
        font-size: 0.88rem !important;
        line-height: 1.55 !important;
    }

    html body[class] .footer-area .about-us .footer-location-links,
    html[dir="rtl"] body[class] .footer-area .about-us .footer-location-links {
        gap: 6px !important;
        margin: 12px 0 14px !important;
    }

    html body[class] .footer-area .about-us .footer-location-links a,
    html[dir="rtl"] body[class] .footer-area .about-us .footer-location-links a {
        padding: 4px 8px !important;
        font-size: 0.78rem !important;
        line-height: 1.25 !important;
    }

html body[class] .footer-area .about-us .footer-social,
html[dir="rtl"] body[class] .footer-area .about-us .footer-social {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    max-width: 100% !important;
    margin-top: 16px !important;
}

html body[class] .footer-area .about-us .footer-social > li,
html[dir="rtl"] body[class] .footer-area .about-us .footer-social > li {
    flex: 0 0 auto !important;
    margin: 0 !important;
}

    html body[class] .footer-area .about-us .footer-trust-seal,
    html[dir="rtl"] body[class] .footer-area .about-us .footer-trust-seal {
        gap: 6px !important;
        margin-top: 12px !important;
    }

    html body[class] .footer-area .about-us .footer-trust-badge,
    html[dir="rtl"] body[class] .footer-area .about-us .footer-trust-badge {
        padding: 5px 8px !important;
        font-size: 0.74rem !important;
        line-height: 1.25 !important;
    }

    html body[class] .footer-area .about-us .footer-brand-ownership-note,
    html[dir="rtl"] body[class] .footer-area .about-us .footer-brand-ownership-note {
        margin-top: 12px !important;
        font-size: 0.78rem !important;
        line-height: 1.5 !important;
    }
}

/* Full public-shell remediation. These rules deliberately own the light
   location contact surface so dark-panel inheritance can never hide business
   contact details on any city or service URL. */
html body[class] .footer-area .about-us .footer-social,
html[dir="rtl"] body[class] .footer-area .about-us .footer-social {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    max-width: 100% !important;
}

html body[class] .footer-area .about-us .footer-social > li,
html[dir="rtl"] body[class] .footer-area .about-us .footer-social > li {
    flex: 0 0 auto !important;
    margin: 0 !important;
}

/* The contact detail rail needs a full row on tablet widths; preserving a
   4/8 desktop split there leaves too little room for numbers and office hours. */
@media (min-width: 768px) and (max-width: 1199.98px) {
    html body[class] main.main .psfm-contact-page .contact-wrapper > .row > .col-md-4,
    html body[class] main.main .psfm-contact-page .contact-wrapper > .row > .col-md-8,
    html[dir="rtl"] body[class] main.main .psfm-contact-page .contact-wrapper > .row > .col-md-4,
    html[dir="rtl"] body[class] main.main .psfm-contact-page .contact-wrapper > .row > .col-md-8 {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }
}

html body[class] main.main .seo-page .local-contact-card,
html[dir="rtl"] body[class] main.main .seo-page .local-contact-card {
    background: #ffffff !important;
    color: #102033 !important;
    border: 1px solid #dbe5ef !important;
    box-shadow: 0 18px 42px rgba(7, 23, 44, 0.10) !important;
    overflow: hidden !important;
}

html body[class] main.main .seo-page .local-contact-card .local-contact-card__kicker,
html[dir="rtl"] body[class] main.main .seo-page .local-contact-card .local-contact-card__kicker {
    background: #fff0f1 !important;
    color: #b71920 !important;
    -webkit-text-fill-color: #b71920 !important;
}

html body[class] main.main .seo-page .local-contact-card .local-contact-list,
html[dir="rtl"] body[class] main.main .seo-page .local-contact-card .local-contact-list {
    display: grid !important;
    gap: 10px !important;
}

html body[class] main.main .seo-page .local-contact-card .local-contact-row,
html[dir="rtl"] body[class] main.main .seo-page .local-contact-card .local-contact-row {
    display: grid !important;
    grid-template-columns: 32px minmax(0, 1fr) !important;
    align-items: start !important;
    column-gap: 12px !important;
    min-width: 0 !important;
    padding: 12px !important;
    border: 1px solid #e2eaf2 !important;
    border-radius: 12px !important;
    background: #f8fafc !important;
    box-shadow: none !important;
}

html body[class] main.main .seo-page .local-contact-card .local-contact-row > div,
html[dir="rtl"] body[class] main.main .seo-page .local-contact-card .local-contact-row > div {
    min-width: 0 !important;
}

html body[class] main.main .seo-page .local-contact-card .local-contact-row > i,
html[dir="rtl"] body[class] main.main .seo-page .local-contact-card .local-contact-row > i {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 32px !important;
    height: 32px !important;
    margin: 0 !important;
    border-radius: 50% !important;
    background: #fff0f1 !important;
    color: #c9151d !important;
    -webkit-text-fill-color: #c9151d !important;
    box-shadow: none !important;
}

html body[class] main.main .seo-page .local-contact-card .local-contact-row > div > span,
html[dir="rtl"] body[class] main.main .seo-page .local-contact-card .local-contact-row > div > span {
    display: block !important;
    margin-bottom: 3px !important;
    color: #5f7088 !important;
    -webkit-text-fill-color: #5f7088 !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
}

html body[class] main.main .seo-page .local-contact-card .local-contact-row :where(a, strong),
html[dir="rtl"] body[class] main.main .seo-page .local-contact-card .local-contact-row :where(a, strong) {
    display: inline-block !important;
    max-width: 100% !important;
    color: #102033 !important;
    -webkit-text-fill-color: #102033 !important;
    font-size: 0.94rem !important;
    font-weight: 750 !important;
    line-height: 1.42 !important;
    overflow-wrap: anywhere !important;
}

html body[class] main.main .seo-page .local-contact-card .local-contact-row a > span,
html[dir="rtl"] body[class] main.main .seo-page .local-contact-card .local-contact-row a > span {
    color: inherit !important;
    -webkit-text-fill-color: currentColor !important;
    font: inherit !important;
}

html body[class] main.main .seo-page .local-contact-card .local-contact-row :is(a[href^="tel:"], a[href*="wa.me"]),
html[dir="rtl"] body[class] main.main .seo-page .local-contact-card .local-contact-row :is(a[href^="tel:"], a[href*="wa.me"]) {
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    font-variant-numeric: tabular-nums !important;
    direction: ltr !important;
    unicode-bidi: isolate !important;
}

html body[class] main.main .seo-page .local-contact-card .local-contact-row a[href^="mailto:"],
html[dir="rtl"] body[class] main.main .seo-page .local-contact-card .local-contact-row a[href^="mailto:"] {
    overflow-wrap: anywhere !important;
}

html body[class] main.main .seo-page .local-contact-card .psfm-contact-support-standalone > div > span,
html[dir="rtl"] body[class] main.main .seo-page .local-contact-card .psfm-contact-support-standalone > div > span {
    margin: 0 !important;
    color: #102033 !important;
    -webkit-text-fill-color: #102033 !important;
    font-size: 0.92rem !important;
    font-weight: 800 !important;
}

html[dir="rtl"] body[class] main.main .seo-page .local-contact-card .local-contact-row {
    grid-template-columns: minmax(0, 1fr) 32px !important;
    text-align: right !important;
}

html[dir="rtl"] body[class] main.main .seo-page .local-contact-card .local-contact-row > i {
    grid-column: 2 !important;
}

html[dir="rtl"] body[class] main.main .seo-page .local-contact-card .local-contact-row > div {
    grid-column: 1 !important;
}

/* At wide desktop widths the legacy header re-expanded a full phone label and
   allowed it to collide with the final navigation item. Keep the verified call
   action as a compact icon so every menu item retains a clear hit area. */
@media (min-width: 1600px) {
    html body[class] .main-navigation .header-contact-chip,
    html[dir="rtl"] body[class] .main-navigation .header-contact-chip {
        width: 44px !important;
        min-width: 44px !important;
        height: 44px !important;
        min-height: 44px !important;
        padding: 0 !important;
        justify-content: center !important;
    }

    html body[class] .main-navigation .header-contact-text,
    html[dir="rtl"] body[class] .main-navigation .header-contact-text {
        display: none !important;
    }

    html body[class] .main-navigation .header-menu-list,
    html[dir="rtl"] body[class] .main-navigation .header-menu-list {
        min-width: 0 !important;
    }
}

/* Footer contact information follows one calm, aligned reading rhythm. The
   office-hours panel is a divider-led list rather than a competing glass card. */
html body[class] .footer-area .footer-contact-hours .psfm-head-office-hours,
html[dir="rtl"] body[class] .footer-area .footer-contact-hours .psfm-head-office-hours {
    padding: 14px 0 0 !important;
    border: 0 !important;
    border-top: 1px solid rgba(255, 255, 255, 0.18) !important;
    border-radius: 0 !important;
    background: transparent !important;
}

html body[class] .footer-area .psfm-head-office-hours__row,
html[dir="rtl"] body[class] .footer-area .psfm-head-office-hours__row {
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 12px !important;
}

@media (max-width: 575.98px) {
    html body[class] main.main .seo-page .local-contact-card .local-contact-row,
    html[dir="rtl"] body[class] main.main .seo-page .local-contact-card .local-contact-row {
        grid-template-columns: 30px minmax(0, 1fr) !important;
        column-gap: 10px !important;
        padding: 11px !important;
    }

    html body[class] main.main .seo-page .local-contact-card .local-contact-row > i,
    html[dir="rtl"] body[class] main.main .seo-page .local-contact-card .local-contact-row > i {
        width: 30px !important;
        height: 30px !important;
    }

    html[dir="rtl"] body[class] main.main .seo-page .local-contact-card .local-contact-row {
        grid-template-columns: minmax(0, 1fr) 30px !important;
    }
}

@media (min-width: 576px) and (max-width: 1199.98px) {
    :root {
        --psfm-fixed-header-height: 78px !important;
    }

    html body main.main,
    html body > main.main,
    html[dir="rtl"] body main.main,
    html[dir="rtl"] body > main.main {
        padding-top: var(--psfm-fixed-header-height) !important;
    }
}

/* The mobile/tablet header remains in normal document flow while its navigation
   is fixed. Inner pages therefore need no second offset inside <main>. */
@media (max-width: 1199.98px) {
    html body main.main:has(> .site-breadcrumb),
    html body > main.main:has(> .site-breadcrumb),
    html[dir="rtl"] body main.main:has(> .site-breadcrumb),
    html[dir="rtl"] body > main.main:has(> .site-breadcrumb) {
        padding-top: 0 !important;
    }
}

/* The employee portal follows the breadcrumb directly; its internal shell
   supplies the breathing room, not an empty white spacer between sections. */
html body main.main > .site-breadcrumb + .psfm-login-page,
html[dir="rtl"] body main.main > .site-breadcrumb + .psfm-login-page {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Final contrast hardening: later legacy rules were recolouring text inside
   light cards and coloured actions without changing their backgrounds. */
html body main.main .psfm-service-filter-tab,
html[dir="rtl"] body main.main .psfm-service-filter-tab {
    color: var(--psfm-corporate-navy) !important;
    -webkit-text-fill-color: var(--psfm-corporate-navy) !important;
}

html body main.main .psfm-service-filter-tab :where(span, i),
html[dir="rtl"] body main.main .psfm-service-filter-tab :where(span, i) {
    color: inherit !important;
    -webkit-text-fill-color: currentColor !important;
}

html body main.main .psfm-smart-search-field > span,
html[dir="rtl"] body main.main .psfm-smart-search-field > span {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    opacity: 1 !important;
}

html body main.main .psfm-service-filter-tab:is(:hover, :focus-visible, .is-active),
html body main.main .psfm-service-filter-tab:is(:hover, :focus-visible, .is-active) :where(span, i),
html[dir="rtl"] body main.main .psfm-service-filter-tab:is(:hover, :focus-visible, .is-active),
html[dir="rtl"] body main.main .psfm-service-filter-tab:is(:hover, :focus-visible, .is-active) :where(span, i) {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

html body main.main .psfm-recommendation-actions a,
html body main.main .psfm-recommendation-actions a :where(span, i),
html body main.main .psfm-action-rail a,
html body main.main .psfm-action-rail a :where(span, i),
html body main.main .psfm-service-command-actions a,
html body main.main .psfm-service-command-actions a :where(span, i),
html body main.main .psfm-whatsapp-direct-panel a,
html body main.main .psfm-whatsapp-direct-panel a :where(span, i),
html[dir="rtl"] body main.main .psfm-recommendation-actions a,
html[dir="rtl"] body main.main .psfm-recommendation-actions a :where(span, i),
html[dir="rtl"] body main.main .psfm-action-rail a,
html[dir="rtl"] body main.main .psfm-action-rail a :where(span, i),
html[dir="rtl"] body main.main .psfm-service-command-actions a,
html[dir="rtl"] body main.main .psfm-service-command-actions a :where(span, i),
html[dir="rtl"] body main.main .psfm-whatsapp-direct-panel a,
html[dir="rtl"] body main.main .psfm-whatsapp-direct-panel a :where(span, i) {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    opacity: 1 !important;
}

html body main.main .about-operating-review-title,
html[dir="rtl"] body main.main .about-operating-review-title {
    color: var(--psfm-corporate-navy) !important;
    -webkit-text-fill-color: var(--psfm-corporate-navy) !important;
}

html body main.main .seo-card.seo-hero .seo-hero-media-badge,
html body main.main .seo-card.seo-hero .seo-hero-media-badge :where(span, i),
html body main.main .psfm-login-page .psfm-login-kicker,
html body main.main .psfm-login-page .psfm-login-kicker :where(span, i),
html[dir="rtl"] body main.main .seo-card.seo-hero .seo-hero-media-badge,
html[dir="rtl"] body main.main .seo-card.seo-hero .seo-hero-media-badge :where(span, i),
html[dir="rtl"] body main.main .psfm-login-page .psfm-login-kicker,
html[dir="rtl"] body main.main .psfm-login-page .psfm-login-kicker :where(span, i) {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    opacity: 1 !important;
}

/* Compact SEO navigation is a light corporate card, so every copy/link colour
   is explicitly scoped to that surface. Coloured CTA buttons remain white. */
html body .footer-area .psfm-compact-seo-inner,
html[dir="rtl"] body .footer-area .psfm-compact-seo-inner {
    background: #ffffff !important;
    color: var(--psfm-corporate-navy) !important;
}

html body footer.footer-area,
html[dir="rtl"] body footer.footer-area {
    margin-top: 0 !important;
}

html body .footer-area .psfm-compact-seo-copy h2,
html body .footer-area .psfm-compact-seo-links strong,
html[dir="rtl"] body .footer-area .psfm-compact-seo-copy h2,
html[dir="rtl"] body .footer-area .psfm-compact-seo-links strong {
    color: var(--psfm-corporate-navy) !important;
    -webkit-text-fill-color: var(--psfm-corporate-navy) !important;
}

html body .footer-area .psfm-compact-seo-copy > span,
html[dir="rtl"] body .footer-area .psfm-compact-seo-copy > span {
    color: #c8172f !important;
    -webkit-text-fill-color: #c8172f !important;
}

html body .footer-area .psfm-compact-seo-copy p,
html[dir="rtl"] body .footer-area .psfm-compact-seo-copy p {
    color: #46596f !important;
    -webkit-text-fill-color: #46596f !important;
}

html body .footer-area .psfm-compact-seo-links a,
html body .footer-area .psfm-compact-seo-links a :where(span, i),
html[dir="rtl"] body .footer-area .psfm-compact-seo-links a,
html[dir="rtl"] body .footer-area .psfm-compact-seo-links a :where(span, i) {
    color: var(--psfm-corporate-navy) !important;
    -webkit-text-fill-color: var(--psfm-corporate-navy) !important;
}

html body .footer-area .psfm-compact-seo-links a:is(:hover, :focus-visible),
html body .footer-area .psfm-compact-seo-links a:is(:hover, :focus-visible) :where(span, i),
html[dir="rtl"] body .footer-area .psfm-compact-seo-links a:is(:hover, :focus-visible),
html[dir="rtl"] body .footer-area .psfm-compact-seo-links a:is(:hover, :focus-visible) :where(span, i),
html body .footer-area .psfm-compact-seo-actions a,
html body .footer-area .psfm-compact-seo-actions a :where(span, i),
html[dir="rtl"] body .footer-area .psfm-compact-seo-actions a,
html[dir="rtl"] body .footer-area .psfm-compact-seo-actions a :where(span, i) {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    opacity: 1 !important;
}

/* Corporate footer sizing and office-hour alignment. The contact column must
   not be squeezed into a narrow 30% lane on common laptop widths. */
@media (min-width: 992px) and (max-width: 1599.98px) {
    html body .footer-area .psfm-footer-corporate-grid > [class*="col-"]:nth-child(1),
    html body .footer-area .psfm-footer-corporate-grid > [class*="col-"]:nth-child(2),
    html body .footer-area .psfm-footer-corporate-grid > [class*="col-"]:nth-child(3),
    html body .footer-area .psfm-footer-corporate-grid > [class*="col-"]:nth-child(4),
    html[dir="rtl"] body .footer-area .psfm-footer-corporate-grid > [class*="col-"]:nth-child(1),
    html[dir="rtl"] body .footer-area .psfm-footer-corporate-grid > [class*="col-"]:nth-child(2),
    html[dir="rtl"] body .footer-area .psfm-footer-corporate-grid > [class*="col-"]:nth-child(3),
    html[dir="rtl"] body .footer-area .psfm-footer-corporate-grid > [class*="col-"]:nth-child(4) {
        width: 50% !important;
        flex: 0 0 50% !important;
        max-width: 50% !important;
    }
}

html body .footer-area .footer-contact li.footer-contact-hours,
html[dir="rtl"] body .footer-area .footer-contact li.footer-contact-hours {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin-top: 8px !important;
}

html body .footer-area .footer-contact-hours .psfm-head-office-hours,
html[dir="rtl"] body .footer-area .footer-contact-hours .psfm-head-office-hours {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 15px 16px !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    border-radius: 8px !important;
    background: rgba(255, 255, 255, 0.06) !important;
    box-sizing: border-box !important;
}

html body .footer-area .psfm-head-office-hours__title,
html[dir="rtl"] body .footer-area .psfm-head-office-hours__title {
    display: flex !important;
    align-items: center !important;
    gap: 9px !important;
    width: 100% !important;
    margin-bottom: 12px !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-size: 0.95rem !important;
    line-height: 1.3 !important;
}

html body .footer-area .psfm-head-office-hours__list,
html[dir="rtl"] body .footer-area .psfm-head-office-hours__list {
    display: grid !important;
    gap: 7px !important;
    width: 100% !important;
    margin: 0 !important;
}

html body .footer-area .psfm-head-office-hours__row,
html[dir="rtl"] body .footer-area .psfm-head-office-hours__row {
    display: grid !important;
    grid-template-columns: minmax(110px, 1fr) minmax(94px, auto) !important;
    align-items: center !important;
    gap: 16px !important;
    width: 100% !important;
    margin: 0 !important;
}

html body .footer-area .psfm-head-office-hours__row dt,
html body .footer-area .psfm-head-office-hours__row dd,
html[dir="rtl"] body .footer-area .psfm-head-office-hours__row dt,
html[dir="rtl"] body .footer-area .psfm-head-office-hours__row dd {
    margin: 0 !important;
    color: rgba(255, 255, 255, 0.94) !important;
    -webkit-text-fill-color: rgba(255, 255, 255, 0.94) !important;
    font-size: 0.88rem !important;
    line-height: 1.35 !important;
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

html body .footer-area .psfm-head-office-hours__row dt,
html[dir="rtl"] body .footer-area .psfm-head-office-hours__row dt {
    text-align: start !important;
}

html body .footer-area .psfm-head-office-hours__row dd,
html[dir="rtl"] body .footer-area .psfm-head-office-hours__row dd {
    text-align: end !important;
    font-variant-numeric: tabular-nums;
}

@media (max-width: 575.98px) {
    html body .footer-area .psfm-head-office-hours__row,
    html[dir="rtl"] body .footer-area .psfm-head-office-hours__row {
        grid-template-columns: minmax(86px, 1fr) auto !important;
        gap: 10px !important;
    }

    html body .footer-area .psfm-head-office-hours__row dt,
    html body .footer-area .psfm-head-office-hours__row dd,
    html[dir="rtl"] body .footer-area .psfm-head-office-hours__row dt,
    html[dir="rtl"] body .footer-area .psfm-head-office-hours__row dd {
        font-size: 0.82rem !important;
    }
}

/* Animation content remains readable if a reveal event is interrupted. */
html body main.main .wow.animated,
html[dir="rtl"] body main.main .wow.animated {
    visibility: visible !important;
}

@media (prefers-reduced-motion: reduce) {
    html body main.main .wow,
    html[dir="rtl"] body main.main .wow {
        visibility: visible !important;
        animation: none !important;
        transform: none !important;
        transition-duration: 0.01ms !important;
    }
}

/* Cross-browser colour authority for the conversion hub. The legacy global
   text selector carries several :not() clauses, so these component selectors
   deliberately exceed its specificity instead of relying on text-fill alone. */
html body[class] main.main .homepage-shell.psfm-conversion-hub .psfm-conversion-panel .psfm-smart-search .psfm-smart-search-field > span,
html[dir="rtl"] body[class] main.main .homepage-shell.psfm-conversion-hub .psfm-conversion-panel .psfm-smart-search .psfm-smart-search-field > span,
html body[class] main.main .homepage-shell.psfm-conversion-hub .psfm-conversion-panel .psfm-service-filter-tab.is-active > :where(span, i),
html[dir="rtl"] body[class] main.main .homepage-shell.psfm-conversion-hub .psfm-conversion-panel .psfm-service-filter-tab.is-active > :where(span, i),
html body[class] main.main .homepage-shell.psfm-conversion-hub .psfm-conversion-panel .psfm-recommendation-card .psfm-recommendation-actions > a,
html body[class] main.main .homepage-shell.psfm-conversion-hub .psfm-conversion-panel .psfm-recommendation-card .psfm-recommendation-actions > a > :where(span, i),
html[dir="rtl"] body[class] main.main .homepage-shell.psfm-conversion-hub .psfm-conversion-panel .psfm-recommendation-card .psfm-recommendation-actions > a,
html[dir="rtl"] body[class] main.main .homepage-shell.psfm-conversion-hub .psfm-conversion-panel .psfm-recommendation-card .psfm-recommendation-actions > a > :where(span, i),
html body[class] main.main .homepage-shell.psfm-conversion-hub .psfm-conversion-panel .psfm-conversion-bottom .psfm-action-rail > a,
html body[class] main.main .homepage-shell.psfm-conversion-hub .psfm-conversion-panel .psfm-conversion-bottom .psfm-action-rail > a > :where(span, i),
html[dir="rtl"] body[class] main.main .homepage-shell.psfm-conversion-hub .psfm-conversion-panel .psfm-conversion-bottom .psfm-action-rail > a,
html[dir="rtl"] body[class] main.main .homepage-shell.psfm-conversion-hub .psfm-conversion-panel .psfm-conversion-bottom .psfm-action-rail > a > :where(span, i),
html body[class] main.main .psfm-services-page .psfm-service-command-panel .psfm-service-filter-tab.is-active > :where(span, i),
html[dir="rtl"] body[class] main.main .psfm-services-page .psfm-service-command-panel .psfm-service-filter-tab.is-active > :where(span, i) {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    opacity: 1 !important;
}

/* Contact numbers are operational data and must never break mid-number. */
html body main.main .contact-info .psfm-phone-support-stack,
html[dir="rtl"] body main.main .contact-info .psfm-phone-support-stack {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

html body main.main .contact-info .psfm-phone-support-stack a,
html body main.main .contact-info .psfm-phone-support-stack a > span,
html[dir="rtl"] body main.main .contact-info .psfm-phone-support-stack a,
html[dir="rtl"] body main.main .contact-info .psfm-phone-support-stack a > span {
    width: max-content !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    direction: ltr;
    unicode-bidi: isolate;
}

/* A split service layout leaves insufficient room for two form fields on
   common laptops; use a clear single-column form until the panel is wider. */
@media (min-width: 992px) and (max-width: 1399.98px) {
    html body main.main .seo-page .seo-form-grid,
    html[dir="rtl"] body main.main .seo-page .seo-form-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

/* Homepage stat cards: keep the light cards legible even when a legacy
   global text/fill rule is loaded after the component styles. */
html body[class] main.main .homepage-hero .hero-visual-stats > span,
html[dir="rtl"] body[class] main.main .homepage-hero .hero-visual-stats > span {
    background: #ffffff !important;
    color: #102033 !important;
    -webkit-text-fill-color: #102033 !important;
    opacity: 1 !important;
    visibility: visible !important;
}

html body[class] main.main .homepage-hero .hero-visual-stats > span > i,
html[dir="rtl"] body[class] main.main .homepage-hero .hero-visual-stats > span > i {
    color: #087f5b !important;
    -webkit-text-fill-color: #087f5b !important;
    opacity: 1 !important;
    visibility: visible !important;
}

html body[class] main.main .homepage-hero .hero-visual-stats > span > .hero-visual-stat-label,
html[dir="rtl"] body[class] main.main .homepage-hero .hero-visual-stats > span > .hero-visual-stat-label {
    color: #102033 !important;
    -webkit-text-fill-color: #102033 !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Shared public-page refinement: this final layer owns the presentation of
   the location, contact and footer shells, rather than correcting one URL at
   a time. It deliberately changes only appearance, not copy, links or SEO. */
html body[class] main.main .site-breadcrumb .site-breadcrumb-wrapper,
html[dir="rtl"] body[class] main.main .site-breadcrumb .site-breadcrumb-wrapper {
    background-color: #081a31 !important;
    background-image:
        radial-gradient(circle at 84% 14%, rgba(201, 21, 29, 0.20), transparent 30%),
        radial-gradient(circle at 12% 88%, rgba(34, 96, 151, 0.20), transparent 38%),
        linear-gradient(128deg, #07172c 0%, #0a294a 52%, #102d4c 100%) !important;
    background-position: center !important;
    background-size: cover !important;
}

html body[class] main.main .site-breadcrumb .breadcrumb-title,
html[dir="rtl"] body[class] main.main .site-breadcrumb .breadcrumb-title {
    max-width: min(100%, 24ch) !important;
    margin-inline: auto !important;
    font-size: clamp(2rem, 3vw, 2.75rem) !important;
    line-height: 1.12 !important;
    letter-spacing: -0.018em !important;
    text-wrap: balance;
}

html body[class] main.main .psfm-contact-page .contact-page-intro .site-title,
html[dir="rtl"] body[class] main.main .psfm-contact-page .contact-page-intro .site-title {
    font-size: clamp(2rem, 2.8vw, 2.7rem) !important;
    line-height: 1.12 !important;
    letter-spacing: -0.016em !important;
    text-wrap: balance;
}

html body[class] main.main :where(.seo-page .seo-section-title, .psfm-contact-page .contact-content-header h2, .psfm-contact-page .contact-form-header h2),
html[dir="rtl"] body[class] main.main :where(.seo-page .seo-section-title, .psfm-contact-page .contact-content-header h2, .psfm-contact-page .contact-form-header h2) {
    font-size: clamp(1.5rem, 2vw, 2rem) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.012em !important;
}

/* Location chips and local contact cards use one clear red accent against
   their light/dark surfaces. This also keeps Font Awesome icons from inheriting
   a low-contrast global text colour. */
html body[class] main.main .seo-page .seo-chip > :where(i, svg),
html[dir="rtl"] body[class] main.main .seo-page .seo-chip > :where(i, svg) {
    color: #c9151d !important;
    -webkit-text-fill-color: #c9151d !important;
    opacity: 1 !important;
}

html body[class] main.main .seo-page .local-contact-row > i,
html[dir="rtl"] body[class] main.main .seo-page .local-contact-row > i {
    width: 30px !important;
    height: 30px !important;
    margin-top: 1px !important;
    border-radius: 50% !important;
    background: rgba(226, 31, 38, 0.16) !important;
    color: #ff8c92 !important;
    -webkit-text-fill-color: #ff8c92 !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.10) !important;
}

html body[class] main.main .seo-page .local-contact-row :where(a, strong),
html[dir="rtl"] body[class] main.main .seo-page .local-contact-row :where(a, strong) {
    color: #102033 !important;
    -webkit-text-fill-color: #102033 !important;
}

/* Contact numbers are business data: calm sizing, tabular figures and no
   line break through the number itself on desktop, tablet or phone. */
html body[class] main.main .psfm-contact-page .contact-info .contact-info-content :is(a[href^="tel:"], a[href*="wa.me"]),
html body[class] main.main .psfm-contact-page .contact-info .contact-info-content :is(a[href^="tel:"], a[href*="wa.me"]) > span,
html[dir="rtl"] body[class] main.main .psfm-contact-page .contact-info .contact-info-content :is(a[href^="tel:"], a[href*="wa.me"]),
html[dir="rtl"] body[class] main.main .psfm-contact-page .contact-info .contact-info-content :is(a[href^="tel:"], a[href*="wa.me"]) > span {
    display: inline-block !important;
    max-width: 100% !important;
    color: #102033 !important;
    -webkit-text-fill-color: #102033 !important;
    font-size: clamp(0.90rem, 1.2vw, 0.98rem) !important;
    font-weight: 750 !important;
    line-height: 1.35 !important;
    letter-spacing: 0.01em !important;
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    font-variant-numeric: tabular-nums !important;
    direction: ltr !important;
    unicode-bidi: isolate !important;
}

/* Footer contact alignment. Older theme rules reduce the WhatsApp copy to a
   zero-width flex item; reset the whole shared contact pattern to a stable
   icon/content grid so phone, WhatsApp, email and hours align on every page. */
html body[class] .footer-area .footer-contact > ul,
html[dir="rtl"] body[class] .footer-area .footer-contact > ul {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
    width: 100% !important;
}

html body[class] .footer-area .footer-contact > ul > li,
html[dir="rtl"] body[class] .footer-area .footer-contact > ul > li {
    min-width: 0 !important;
    max-width: 100% !important;
}

html body[class] .footer-area .footer-contact > ul > li:not(.footer-phone-item):not(.footer-contact-hours):not(.footer-support-line-contact-list) > a,
html[dir="rtl"] body[class] .footer-area .footer-contact > ul > li:not(.footer-phone-item):not(.footer-contact-hours):not(.footer-support-line-contact-list) > a {
    display: grid !important;
    grid-template-columns: 28px minmax(0, 1fr) !important;
    align-items: start !important;
    column-gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
    grid-column: 1 / -1 !important;
}

html body[class] .footer-area .footer-contact > ul > li:not(.footer-phone-item):not(.footer-contact-hours):not(.footer-support-line-contact-list) > a > i,
html[dir="rtl"] body[class] .footer-area .footer-contact > ul > li:not(.footer-phone-item):not(.footer-contact-hours):not(.footer-support-line-contact-list) > a > i {
    grid-column: 1 !important;
    width: 28px !important;
    margin-top: 2px !important;
}

html body[class] .footer-area .footer-contact > ul > li:not(.footer-phone-item):not(.footer-contact-hours):not(.footer-support-line-contact-list) > a > :not(i),
html[dir="rtl"] body[class] .footer-area .footer-contact > ul > li:not(.footer-phone-item):not(.footer-contact-hours):not(.footer-support-line-contact-list) > a > :not(i) {
    grid-column: 2 !important;
    min-width: 0 !important;
    width: 100% !important;
}

html body[class] .footer-area .footer-contact .footer-phone-item,
html[dir="rtl"] body[class] .footer-area .footer-contact .footer-phone-item {
    display: grid !important;
    grid-template-columns: 28px minmax(0, 1fr) !important;
    align-items: start !important;
    column-gap: 10px !important;
    width: 100% !important;
}

html body[class] .footer-area .footer-contact .footer-phone-item > .footer-contact-icon,
html[dir="rtl"] body[class] .footer-area .footer-contact .footer-phone-item > .footer-contact-icon {
    grid-column: 1 !important;
    width: 28px !important;
    margin-top: 2px !important;
}

html body[class] .footer-area .footer-contact .footer-phone-link,
html[dir="rtl"] body[class] .footer-area .footer-contact .footer-phone-link {
    display: block !important;
    grid-column: 2 !important;
    width: 100% !important;
    min-width: 0 !important;
    white-space: normal !important;
}

html body[class] .footer-area .footer-contact .footer-contact-copy,
html[dir="rtl"] body[class] .footer-area .footer-contact .footer-contact-copy {
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 3px !important;
    width: 100% !important;
    min-width: 0 !important;
}

html body[class] .footer-area .footer-contact .footer-contact-number-localized,
html body[class] .footer-area .footer-contact .footer-contact-copy bdi,
html[dir="rtl"] body[class] .footer-area .footer-contact .footer-contact-number-localized,
html[dir="rtl"] body[class] .footer-area .footer-contact .footer-contact-copy bdi {
    display: block !important;
    max-width: 100% !important;
    color: rgba(255, 255, 255, 0.96) !important;
    -webkit-text-fill-color: rgba(255, 255, 255, 0.96) !important;
    font-size: 0.91rem !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    white-space: nowrap !important;
    font-variant-numeric: tabular-nums !important;
    direction: ltr !important;
    unicode-bidi: isolate !important;
}

/* The 24/7 message is supporting contact copy, not a separate glass card. */
html body[class] .footer-area .footer-contact .footer-support-line-contact-list,
html[dir="rtl"] body[class] .footer-area .footer-contact .footer-support-line-contact-list {
    display: grid !important;
    grid-template-columns: 28px minmax(0, 1fr) !important;
    align-items: center !important;
    column-gap: 10px !important;
    width: 100% !important;
    margin: 2px 0 !important;
    padding: 4px 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: rgba(255, 255, 255, 0.90) !important;
    -webkit-text-fill-color: rgba(255, 255, 255, 0.90) !important;
    font-size: 0.91rem !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
}

html body[class] .footer-area .footer-contact .footer-support-line-contact-list > i,
html[dir="rtl"] body[class] .footer-area .footer-contact .footer-support-line-contact-list > i {
    grid-column: 1 !important;
    width: 28px !important;
    height: 28px !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 50% !important;
    background: rgba(226, 31, 38, 0.16) !important;
    color: #ff8c92 !important;
    -webkit-text-fill-color: #ff8c92 !important;
}

html body[class] .footer-area .footer-contact .footer-support-line-contact-list > span,
html[dir="rtl"] body[class] .footer-area .footer-contact .footer-support-line-contact-list > span {
    grid-column: 2 !important;
    min-width: 0 !important;
}

html[dir="rtl"] body[class] .footer-area .footer-contact > ul > li:not(.footer-phone-item):not(.footer-contact-hours):not(.footer-support-line-contact-list) > a,
html[dir="rtl"] body[class] .footer-area .footer-contact .footer-phone-item,
html[dir="rtl"] body[class] .footer-area .footer-contact .footer-support-line-contact-list {
    grid-template-columns: minmax(0, 1fr) 28px !important;
    text-align: right !important;
}

html[dir="rtl"] body[class] .footer-area .footer-contact > ul > li:not(.footer-phone-item):not(.footer-contact-hours):not(.footer-support-line-contact-list) > a > i,
html[dir="rtl"] body[class] .footer-area .footer-contact .footer-phone-item > .footer-contact-icon,
html[dir="rtl"] body[class] .footer-area .footer-contact .footer-support-line-contact-list > i {
    grid-column: 2 !important;
}

html[dir="rtl"] body[class] .footer-area .footer-contact > ul > li:not(.footer-phone-item):not(.footer-contact-hours):not(.footer-support-line-contact-list) > a > :not(i),
html[dir="rtl"] body[class] .footer-area .footer-contact .footer-phone-link,
html[dir="rtl"] body[class] .footer-area .footer-contact .footer-support-line-contact-list > span {
    grid-column: 1 !important;
}

html[dir="rtl"] body[class] .footer-area .footer-contact .footer-contact-copy {
    align-items: flex-end !important;
    text-align: right !important;
}

@media (max-width: 575.98px) {
    html body[class] main.main .site-breadcrumb .breadcrumb-title,
    html[dir="rtl"] body[class] main.main .site-breadcrumb .breadcrumb-title {
        max-width: min(100%, 17ch) !important;
        font-size: clamp(1.68rem, 7vw, 2.12rem) !important;
        line-height: 1.13 !important;
    }

    html body[class] main.main .psfm-contact-page .contact-page-intro .site-title,
    html[dir="rtl"] body[class] main.main .psfm-contact-page .contact-page-intro .site-title {
        font-size: clamp(1.72rem, 6.9vw, 2.12rem) !important;
    }

    html body[class] .footer-area .footer-contact > ul,
    html[dir="rtl"] body[class] .footer-area .footer-contact > ul {
        gap: 11px !important;
    }

    html body[class] .footer-area .footer-contact .footer-contact-number-localized,
    html body[class] .footer-area .footer-contact .footer-contact-copy bdi,
    html[dir="rtl"] body[class] .footer-area .footer-contact .footer-contact-number-localized,
    html[dir="rtl"] body[class] .footer-area .footer-contact .footer-contact-copy bdi {
        font-size: 0.86rem !important;
    }
}

/* Final responsive completion pass. These selectors deliberately own the
   repeated public-shell patterns so a correction applies consistently across
   the public site without altering routes, content, forms, or SEO markup. */

/* An inner-page hero must start below the fixed mobile/tablet header. The
   nested standalone pages carry their own hero shell, so their outer wrapper
   must not create a second blank band. */
@media (max-width: 991.98px) {
    html body main.main:has(> .site-breadcrumb),
    html body > main.main:has(> .site-breadcrumb),
    html[dir="rtl"] body main.main:has(> .site-breadcrumb),
    html[dir="rtl"] body > main.main:has(> .site-breadcrumb) {
        padding-top: var(--psfm-fixed-header-height) !important;
    }

    /* Employee/client portal pages previously cancelled the shared header
       offset, which put their breadcrumb title behind the mobile header. */
    html body[class]:not(#psfm-final-contrast-guard) main.main:has(> .site-breadcrumb + .psfm-login-page),
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) main.main:has(> .site-breadcrumb + .psfm-login-page) {
        padding-top: var(--psfm-fixed-header-height) !important;
    }

    html body main.main:has(> main:is(.vendor-registration-page, .premium-product-page, .psfm-projects-page)),
    html body > main.main:has(> main:is(.vendor-registration-page, .premium-product-page, .psfm-projects-page)),
    html[dir="rtl"] body main.main:has(> main:is(.vendor-registration-page, .premium-product-page, .psfm-projects-page)),
    html[dir="rtl"] body > main.main:has(> main:is(.vendor-registration-page, .premium-product-page, .psfm-projects-page)) {
        padding-top: 0 !important;
    }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
    html body main.main:has(> .site-breadcrumb),
    html body > main.main:has(> .site-breadcrumb),
    html[dir="rtl"] body main.main:has(> .site-breadcrumb),
    html[dir="rtl"] body > main.main:has(> .site-breadcrumb) {
        padding-top: 72px !important;
    }

    html body[class]:not(#psfm-final-contrast-guard) main.main:has(> .site-breadcrumb + .psfm-login-page),
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) main.main:has(> .site-breadcrumb + .psfm-login-page) {
        padding-top: 72px !important;
    }
}

/* Legacy breadcrumb wrappers carried an extra blank top strip on a number of
   portal, account, and public pages. The fixed header already owns that space. */
html body[class]:not(#psfm-final-contrast-guard) main.main > .site-breadcrumb,
html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) main.main > .site-breadcrumb {
    margin-top: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* About uses the same white corporate chips as other breadcrumbs, with a
   deliberate dark label and red icon. This prevents white-on-white text. */
html body:not(#psfm-final-contrast-guard) main.main .site-breadcrumb-wrapper .about-breadcrumb-chips > span,
html[dir="rtl"] body:not(#psfm-final-contrast-guard) main.main .site-breadcrumb-wrapper .about-breadcrumb-chips > span {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    background: #ffffff !important;
    border: 1px solid rgba(7, 23, 44, 0.14) !important;
    color: #102033 !important;
    -webkit-text-fill-color: #102033 !important;
    font-weight: 800 !important;
    text-shadow: none !important;
}

html body:not(#psfm-final-contrast-guard) main.main .site-breadcrumb-wrapper .about-breadcrumb-chips > span > :where(i, svg),
html[dir="rtl"] body:not(#psfm-final-contrast-guard) main.main .site-breadcrumb-wrapper .about-breadcrumb-chips > span > :where(i, svg) {
    color: #d71920 !important;
    -webkit-text-fill-color: #d71920 !important;
    opacity: 1 !important;
}

@media (max-width: 575.98px) {
    html body main.main .site-breadcrumb .breadcrumb-title,
    html[dir="rtl"] body main.main .site-breadcrumb .breadcrumb-title {
        max-width: min(100%, 18ch) !important;
        font-size: clamp(1.48rem, 6.6vw, 1.92rem) !important;
        line-height: 1.14 !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        text-wrap: balance !important;
    }

    html body main.main .site-breadcrumb-wrapper,
    html[dir="rtl"] body main.main .site-breadcrumb-wrapper {
        padding-top: 32px !important;
        padding-bottom: 30px !important;
    }
}

/* The expanded mobile Services menu is a single-column service directory.
   Titles and supporting copy share the full row instead of competing in a
   narrow flex column, which prevents letter-by-letter wrapping. */
@media (max-width: 991.98px) {
    html body > header.header #main_nav.navbar-collapse.show .header-dropdown-services.show,
    html[dir="rtl"] body > header.header #main_nav.navbar-collapse.show .header-dropdown-services.show {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 8px !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        max-height: min(58dvh, 520px) !important;
        padding: 12px !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        overscroll-behavior: contain !important;
        border: 1px solid rgba(15, 32, 51, 0.12) !important;
        border-radius: 12px !important;
        background: #f8fafc !important;
        box-shadow: inset 3px 0 0 #d71920 !important;
    }

    html body > header.header #main_nav.navbar-collapse.show .header-dropdown-services.show > li,
    html[dir="rtl"] body > header.header #main_nav.navbar-collapse.show .header-dropdown-services.show > li {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    html body > header.header #main_nav.navbar-collapse.show .header-dropdown-services.show .dropdown-header,
    html[dir="rtl"] body > header.header #main_nav.navbar-collapse.show .header-dropdown-services.show .dropdown-header {
        padding: 4px 4px 6px !important;
        color: #b91c1c !important;
        -webkit-text-fill-color: #b91c1c !important;
        font-size: 0.73rem !important;
        font-weight: 900 !important;
        letter-spacing: 0.05em !important;
        line-height: 1.2 !important;
        text-transform: uppercase !important;
    }

    html body > header.header #main_nav.navbar-collapse.show .header-dropdown-services.show .dropdown-item,
    html[dir="rtl"] body > header.header #main_nav.navbar-collapse.show .header-dropdown-services.show .dropdown-item {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        min-height: 0 !important;
        height: auto !important;
        padding: 11px 12px !important;
        border: 1px solid #e2e8f0 !important;
        border-radius: 10px !important;
        background: #ffffff !important;
        color: #102033 !important;
        -webkit-text-fill-color: #102033 !important;
        white-space: normal !important;
        overflow: hidden !important;
    }

    html body > header.header #main_nav.navbar-collapse.show .header-dropdown-services.show .dropdown-item-title,
    html[dir="rtl"] body > header.header #main_nav.navbar-collapse.show .header-dropdown-services.show .dropdown-item-title {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        color: #102033 !important;
        -webkit-text-fill-color: #102033 !important;
        font-size: 0.96rem !important;
        font-weight: 850 !important;
        line-height: 1.28 !important;
        white-space: normal !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
    }

    html body > header.header #main_nav.navbar-collapse.show .header-dropdown-services.show .dropdown-item-copy,
    html[dir="rtl"] body > header.header #main_nav.navbar-collapse.show .header-dropdown-services.show .dropdown-item-copy {
        display: -webkit-box !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        margin-top: 5px !important;
        overflow: hidden !important;
        color: #52647b !important;
        -webkit-text-fill-color: #52647b !important;
        font-size: 0.79rem !important;
        font-weight: 550 !important;
        line-height: 1.38 !important;
        white-space: normal !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        -webkit-box-orient: vertical !important;
        -webkit-line-clamp: 2 !important;
    }
}

/* Contact cards preserve a calm information grid at every width. Email and
   phone values remain single business identifiers rather than breaking apart. */
html body main.main .psfm-contact-page .contact-info-content a[href^="mailto:"],
html[dir="rtl"] body main.main .psfm-contact-page .contact-info-content a[href^="mailto:"] {
    display: inline-flex !important;
    align-items: center !important;
    max-width: 100% !important;
    color: #102033 !important;
    -webkit-text-fill-color: #102033 !important;
    font-variant-numeric: tabular-nums !important;
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    direction: ltr !important;
    unicode-bidi: isolate !important;
}

html body main.main .psfm-contact-page .psfm-head-office-hours__list,
html[dir="rtl"] body main.main .psfm-contact-page .psfm-head-office-hours__list {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-auto-flow: row !important;
    gap: 0 !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
}

html body main.main .psfm-contact-page .psfm-head-office-hours__row,
html[dir="rtl"] body main.main .psfm-contact-page .psfm-head-office-hours__row {
    display: grid !important;
    grid-template-columns: minmax(92px, 0.88fr) minmax(0, 1.12fr) !important;
    align-items: center !important;
    gap: 12px !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 8px 0 !important;
    border-bottom: 1px solid rgba(16, 32, 51, 0.10) !important;
}

html body main.main .psfm-contact-page .psfm-head-office-hours__row:last-child,
html[dir="rtl"] body main.main .psfm-contact-page .psfm-head-office-hours__row:last-child {
    border-bottom: 0 !important;
}

html body main.main .psfm-contact-page .psfm-head-office-hours__row :is(dt, dd),
html[dir="rtl"] body main.main .psfm-contact-page .psfm-head-office-hours__row :is(dt, dd) {
    min-width: 0 !important;
    margin: 0 !important;
    color: #102033 !important;
    -webkit-text-fill-color: #102033 !important;
    font-size: 0.84rem !important;
    line-height: 1.3 !important;
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

html body main.main .psfm-contact-page .psfm-head-office-hours__row dt,
html[dir="rtl"] body main.main .psfm-contact-page .psfm-head-office-hours__row dt {
    font-weight: 800 !important;
    text-align: start !important;
}

html body main.main .psfm-contact-page .psfm-head-office-hours__row dd,
html[dir="rtl"] body main.main .psfm-contact-page .psfm-head-office-hours__row dd {
    font-weight: 850 !important;
    text-align: end !important;
    font-variant-numeric: tabular-nums !important;
}

@media (max-width: 575.98px) {
    html body main.main .psfm-contact-page .contact-info,
    html[dir="rtl"] body main.main .psfm-contact-page .contact-info {
        grid-template-columns: 48px minmax(0, 1fr) !important;
        gap: 12px !important;
        min-height: 96px !important;
        padding: 15px !important;
    }

    html[dir="rtl"] body main.main .psfm-contact-page .contact-info {
        grid-template-columns: minmax(0, 1fr) 48px !important;
    }

    html body main.main .psfm-contact-page .contact-info-icon,
    html body main.main .psfm-contact-page .psfm-contact-support-icon,
    html[dir="rtl"] body main.main .psfm-contact-page .contact-info-icon,
    html[dir="rtl"] body main.main .psfm-contact-page .psfm-contact-support-icon {
        width: 46px !important;
        min-width: 46px !important;
        max-width: 46px !important;
        height: 46px !important;
        min-height: 46px !important;
        max-height: 46px !important;
    }

    html body main.main .psfm-contact-page .contact-info-content a[href^="mailto:"],
    html[dir="rtl"] body main.main .psfm-contact-page .contact-info-content a[href^="mailto:"] {
        font-size: clamp(0.84rem, 3.8vw, 0.94rem) !important;
    }

    html body main.main .psfm-contact-page .psfm-head-office-hours__row,
    html[dir="rtl"] body main.main .psfm-contact-page .psfm-head-office-hours__row {
        grid-template-columns: minmax(80px, 0.82fr) minmax(0, 1.18fr) !important;
        gap: 8px !important;
        padding: 8px 0 !important;
    }

    html body main.main .psfm-contact-page .psfm-head-office-hours__row :is(dt, dd),
    html[dir="rtl"] body main.main .psfm-contact-page .psfm-head-office-hours__row :is(dt, dd) {
        font-size: 0.8rem !important;
    }
}

/* Footer contact data is kept as one aligned vertical sequence. The main
   phone label is redundant beside its icon, while the 24/7 icon follows the
   same quiet white icon treatment as the rest of the footer. */
html body .footer-area .footer-contact .footer-phone-item .footer-contact-label,
html[dir="rtl"] body .footer-area .footer-contact .footer-phone-item .footer-contact-label {
    display: none !important;
}

html body .footer-area .footer-contact .footer-phone-item .footer-contact-copy,
html[dir="rtl"] body .footer-area .footer-contact .footer-phone-item .footer-contact-copy {
    gap: 0 !important;
    justify-content: center !important;
}

html body[class]:not(#psfm-final-contrast-guard) .footer-area .footer-contact .footer-support-line-contact-list > i,
html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) .footer-area .footer-contact .footer-support-line-contact-list > i {
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: rgba(255, 255, 255, 0.96) !important;
    -webkit-text-fill-color: rgba(255, 255, 255, 0.96) !important;
    box-shadow: none !important;
}

html body .footer-area .footer-contact-hours .psfm-head-office-hours__list,
html[dir="rtl"] body .footer-area .footer-contact-hours .psfm-head-office-hours__list {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-auto-flow: row !important;
    width: 100% !important;
    min-width: 0 !important;
}

/* Shared hero contrast contract. A legacy dark-hero rule was also colouring
   the copy inside white information cards. These guarded selectors deliberately
   own every white chip, intent card and compact metric used by both service and
   location templates, so one repair applies across all public landing pages. */
html body[class]:not(#psfm-final-contrast-guard) main.main .seo-card.seo-hero .seo-chip,
html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) main.main .seo-card.seo-hero .seo-chip {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    background: rgba(255, 255, 255, 0.96) !important;
    border: 1px solid rgba(255, 255, 255, 0.72) !important;
    color: #102033 !important;
    -webkit-text-fill-color: #102033 !important;
    font-weight: 800 !important;
    text-shadow: none !important;
    opacity: 1 !important;
}

html body[class]:not(#psfm-final-contrast-guard) main.main .seo-card.seo-hero .seo-chip > :where(i, svg),
html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) main.main .seo-card.seo-hero .seo-chip > :where(i, svg) {
    color: #c9151d !important;
    -webkit-text-fill-color: #c9151d !important;
    opacity: 1 !important;
}

html body[class]:not(#psfm-final-contrast-guard) main.main .seo-card.seo-hero .service-intent-item,
html body[class]:not(#psfm-final-contrast-guard) main.main .seo-card.seo-hero .seo-highlight,
html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) main.main .seo-card.seo-hero .service-intent-item,
html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) main.main .seo-card.seo-hero .seo-highlight {
    background: #ffffff !important;
    border-color: rgba(255, 255, 255, 0.72) !important;
    color: #102033 !important;
    -webkit-text-fill-color: #102033 !important;
    text-shadow: none !important;
    opacity: 1 !important;
}

html body[class]:not(#psfm-final-contrast-guard) main.main .seo-card.seo-hero .service-intent-item > strong,
html body[class]:not(#psfm-final-contrast-guard) main.main .seo-card.seo-hero .seo-highlight > strong,
html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) main.main .seo-card.seo-hero .service-intent-item > strong,
html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) main.main .seo-card.seo-hero .seo-highlight > strong {
    color: #102033 !important;
    -webkit-text-fill-color: #102033 !important;
    font-weight: 850 !important;
    text-shadow: none !important;
    opacity: 1 !important;
}

html body[class]:not(#psfm-final-contrast-guard) main.main .seo-card.seo-hero .service-intent-item > span,
html body[class]:not(#psfm-final-contrast-guard) main.main .seo-card.seo-hero .seo-highlight > span,
html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) main.main .seo-card.seo-hero .service-intent-item > span,
html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) main.main .seo-card.seo-hero .seo-highlight > span {
    color: #46596f !important;
    -webkit-text-fill-color: #46596f !important;
    font-weight: 650 !important;
    text-shadow: none !important;
    opacity: 1 !important;
}

/* Breadcrumb strength pills are always a light surface; do not allow the
   surrounding dark breadcrumb's white-text rule to bleed into them. */
html body[class]:not(#psfm-final-contrast-guard) main.main .site-breadcrumb-wrapper .psfm-breadcrumb-chips > span,
html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) main.main .site-breadcrumb-wrapper .psfm-breadcrumb-chips > span {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    background: #ffffff !important;
    border: 1px solid rgba(255, 255, 255, 0.74) !important;
    color: #102033 !important;
    -webkit-text-fill-color: #102033 !important;
    font-weight: 800 !important;
    text-shadow: none !important;
    opacity: 1 !important;
}

html body[class]:not(#psfm-final-contrast-guard) main.main .site-breadcrumb-wrapper .psfm-breadcrumb-chips > span > :where(i, svg),
html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) main.main .site-breadcrumb-wrapper .psfm-breadcrumb-chips > span > :where(i, svg) {
    color: #c9151d !important;
    -webkit-text-fill-color: #c9151d !important;
    opacity: 1 !important;
}

/* Keep corporate motion purposeful: retain short hover feedback, but remove
   repeating glow, sheen and entrance effects that distract from quotation copy
   or can leave cards looking unfinished while a browser is loading. */
html body[class] main.main :is(.homepage-hero .hero-copy, .homepage-hero .hero-panel, .service-operating-model-card, .seo-link-card, .premium-product-card, .premium-product-section),
html[dir="rtl"] body[class] main.main :is(.homepage-hero .hero-copy, .homepage-hero .hero-panel, .service-operating-model-card, .seo-link-card, .premium-product-card, .premium-product-section) {
    animation: none !important;
}

html body[class] main.main :is(.site-breadcrumb-wrapper, .seo-card.seo-hero, .homepage-hero)::after,
html[dir="rtl"] body[class] main.main :is(.site-breadcrumb-wrapper, .seo-card.seo-hero, .homepage-hero)::after,
html body[class] main.main :is(.homepage-hero .hero-actions .theme-btn:first-child, .seo-hero .seo-cta-group .theme-btn:first-child, .seo-banner .seo-cta-group .theme-btn:first-child, .premium-product-actions .theme-btn:first-child),
html[dir="rtl"] body[class] main.main :is(.homepage-hero .hero-actions .theme-btn:first-child, .seo-hero .seo-cta-group .theme-btn:first-child, .seo-banner .seo-cta-group .theme-btn:first-child, .premium-product-actions .theme-btn:first-child) {
    animation: none !important;
}

@media (max-width: 575.98px) {
    html body[class]:not(#psfm-final-contrast-guard) main.main .seo-card.seo-hero .seo-chip,
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) main.main .seo-card.seo-hero .seo-chip {
        justify-content: flex-start !important;
        min-height: 48px !important;
        padding: 10px 14px !important;
        font-size: clamp(0.78rem, 3.6vw, 0.90rem) !important;
        line-height: 1.2 !important;
        white-space: normal !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
    }
}

/* Projects has a nested content shell but its breadcrumb belongs to the outer
   page. Keep the shared header offset here so the title never sits behind the
   fixed navigation on phones or tablets. */
@media (max-width: 991.98px) {
    html body[class]:not(#psfm-final-contrast-guard) main.main:has(> .site-breadcrumb):has(> main.psfm-projects-page),
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) main.main:has(> .site-breadcrumb):has(> main.psfm-projects-page) {
        padding-top: var(--psfm-fixed-header-height) !important;
    }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
    html body[class]:not(#psfm-final-contrast-guard) main.main:has(> .site-breadcrumb):has(> main.psfm-projects-page),
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) main.main:has(> .site-breadcrumb):has(> main.psfm-projects-page) {
        padding-top: 72px !important;
    }
}

/* Contact email cards use the full copy column. Keep the contextual label and
   the actual email on deliberate separate rows so neither identifier wraps or
   clips on a narrow desktop sidebar. */
html body[class]:not(#psfm-final-contrast-guard) main.main .psfm-contact-page .contact-info .contact-info-content,
html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) main.main .psfm-contact-page .contact-info .contact-info-content {
    min-width: 0 !important;
    padding: 0 !important;
}

html body[class]:not(#psfm-final-contrast-guard) main.main .psfm-contact-page .contact-info-content > p:has(.contact-email-label),
html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) main.main .psfm-contact-page .contact-info-content > p:has(.contact-email-label) {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin-bottom: 8px !important;
}

html body[class]:not(#psfm-final-contrast-guard) main.main .psfm-contact-page .contact-info-content > p:has(.contact-email-label) .contact-email-label,
html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) main.main .psfm-contact-page .contact-info-content > p:has(.contact-email-label) .contact-email-label {
    display: block !important;
    width: 100% !important;
    margin-bottom: 3px !important;
    color: #52647b !important;
    -webkit-text-fill-color: #52647b !important;
    font-size: 0.80rem !important;
    font-weight: 650 !important;
    line-height: 1.3 !important;
}

html body[class]:not(#psfm-final-contrast-guard) main.main .psfm-contact-page .contact-info-content > p:has(.contact-email-label) a[href^="mailto:"],
html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) main.main .psfm-contact-page .contact-info-content > p:has(.contact-email-label) a[href^="mailto:"] {
    display: block !important;
    width: max-content !important;
    max-width: 100% !important;
    color: #102033 !important;
    -webkit-text-fill-color: #102033 !important;
    font-size: 0.91rem !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
}

/* The service assistant is a compact corporate concierge, not a floating
   promotional effect. These final rules intentionally supersede older
   launch/pulse variants while retaining the existing chat and lead workflow. */
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-home-page,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-conversion-critical-page {
    --psfm-ai-navy: #102033;
    --psfm-ai-steel: #203b58;
    --psfm-ai-red: #c9151d;
    --psfm-ai-red-dark: #a80f16;
    --psfm-ai-soft: #f5f7fa;
    --psfm-ai-border: #d9e1ea;
    position: fixed !important;
    right: 20px !important;
    left: auto !important;
    top: auto !important;
    inset: auto !important;
    inset-inline-start: auto !important;
    inset-inline-end: 20px !important;
    inset-block-start: auto !important;
    inset-block-end: calc(168px + env(safe-area-inset-bottom, 0px)) !important;
    bottom: calc(168px + env(safe-area-inset-bottom, 0px)) !important;
    width: 50px !important;
    max-width: 50px !important;
    height: 50px !important;
    min-height: 50px !important;
    z-index: 1085 !important;
    overflow: visible !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}

html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant,
html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-home-page,
html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-conversion-critical-page,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant[dir="rtl"] {
    right: auto !important;
    left: 20px !important;
    inset-inline-start: auto !important;
    inset-inline-end: 20px !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-launcher,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-home-page .psfm-ai-launcher,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-conversion-critical-page .psfm-ai-launcher {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 50px !important;
    min-width: 50px !important;
    max-width: 50px !important;
    height: 50px !important;
    min-height: 50px !important;
    margin: 0 !important;
    padding: 0 !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    overflow: visible !important;
    border: 1px solid rgba(16, 32, 51, 0.18) !important;
    border-radius: 16px !important;
    background: #102033 !important;
    color: #ffffff !important;
    box-shadow: 0 10px 24px rgba(16, 32, 51, 0.22) !important;
    transform: none !important;
    animation: none !important;
    transition: background 150ms ease, border-color 150ms ease, box-shadow 150ms ease !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-launcher:hover,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-launcher:focus-visible,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-open .psfm-ai-launcher {
    background: #c9151d !important;
    border-color: #c9151d !important;
    box-shadow: 0 12px 26px rgba(201, 21, 29, 0.24) !important;
    transform: none !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-launcher::before,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-launcher::after {
    animation: none !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-launcher::before {
    content: none !important;
    display: none !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-launcher::after {
    content: "" !important;
    position: absolute !important;
    top: -3px !important;
    right: -3px !important;
    width: 10px !important;
    height: 10px !important;
    display: block !important;
    border: 2px solid #ffffff !important;
    border-radius: 999px !important;
    background: #c9151d !important;
    box-shadow: none !important;
}

html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-launcher::after,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant[dir="rtl"] .psfm-ai-launcher::after {
    right: auto !important;
    left: -3px !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-launcher-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 34px !important;
    height: 34px !important;
    flex: 0 0 34px !important;
    border-radius: 10px !important;
    background: transparent !important;
    color: #ffffff !important;
    font-size: 1.18rem !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-launcher-text {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-panel,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-home-page .psfm-ai-panel,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-conversion-critical-page .psfm-ai-panel {
    position: fixed !important;
    top: auto !important;
    inset: auto !important;
    right: 20px !important;
    left: auto !important;
    inset-inline-start: auto !important;
    inset-inline-end: 20px !important;
    inset-block-start: auto !important;
    inset-block-end: calc(230px + env(safe-area-inset-bottom, 0px)) !important;
    bottom: calc(230px + env(safe-area-inset-bottom, 0px)) !important;
    width: min(356px, calc(100vw - 40px)) !important;
    max-height: min(500px, calc(100vh - 320px)) !important;
    border: 1px solid #d9e1ea !important;
    border-radius: 16px !important;
    background: #ffffff !important;
    box-shadow: 0 18px 44px rgba(16, 32, 51, 0.22) !important;
    animation: none !important;
}

html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-panel,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant[dir="rtl"] .psfm-ai-panel {
    right: auto !important;
    left: 20px !important;
    inset-inline-start: auto !important;
    inset-inline-end: 20px !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-auto-opened .psfm-ai-panel {
    animation: none !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-header {
    padding: 14px !important;
    background: #102033 !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-header::after {
    content: none !important;
    display: none !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-header-icon {
    width: 34px !important;
    height: 34px !important;
    flex-basis: 34px !important;
    border-radius: 10px !important;
    background: rgba(255, 255, 255, 0.12) !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-header strong {
    font-size: 0.94rem !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-trust-row {
    flex-wrap: wrap !important;
    gap: 6px !important;
    padding: 9px 12px !important;
    overflow: visible !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-trust-row span {
    min-height: 25px !important;
    padding: 4px 8px !important;
    border-radius: 8px !important;
    font-size: 0.66rem !important;
    white-space: nowrap !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-messages {
    min-height: 114px !important;
    max-height: 162px !important;
    padding: 12px !important;
    background: #f5f7fa !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-message {
    max-width: 94% !important;
    border-radius: 10px !important;
    font-size: 0.84rem !important;
    line-height: 1.5 !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-quick-actions-wrap {
    padding: 8px 12px 0 !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-quick-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 6px !important;
    max-height: 90px !important;
    transition: none !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-quick-actions button {
    min-height: 36px !important;
    padding: 6px !important;
    border-radius: 8px !important;
    font-size: 0.68rem !important;
    line-height: 1.18 !important;
    transform: none !important;
    transition: background 150ms ease, border-color 150ms ease, color 150ms ease !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-quick-actions button:hover,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-quick-actions button:focus-visible {
    transform: none !important;
}

@media (max-width: 991.98px) {
    html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant,
    html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-home-page,
    html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-conversion-critical-page,
    html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-open {
        right: calc(env(safe-area-inset-right, 0px) + 12px) !important;
        left: auto !important;
        top: auto !important;
        inset: auto !important;
        inset-inline-start: auto !important;
        inset-inline-end: calc(env(safe-area-inset-right, 0px) + 12px) !important;
        inset-block-start: auto !important;
        inset-block-end: calc(94px + env(safe-area-inset-bottom, 0px)) !important;
        bottom: calc(94px + env(safe-area-inset-bottom, 0px)) !important;
        width: 50px !important;
        max-width: 50px !important;
        height: 50px !important;
        min-height: 50px !important;
        z-index: 1085 !important;
    }

    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant,
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-home-page,
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-conversion-critical-page,
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-open,
    html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant[dir="rtl"] {
        right: auto !important;
        left: calc(env(safe-area-inset-left, 0px) + 12px) !important;
        inset-inline-start: auto !important;
        inset-inline-end: calc(env(safe-area-inset-left, 0px) + 12px) !important;
    }

    html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-panel,
    html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-open .psfm-ai-panel {
        position: fixed !important;
        top: auto !important;
        inset: auto !important;
        right: calc(env(safe-area-inset-right, 0px) + 12px) !important;
        left: auto !important;
        inset-inline-start: auto !important;
        inset-inline-end: calc(env(safe-area-inset-right, 0px) + 12px) !important;
        inset-block-start: auto !important;
        inset-block-end: calc(156px + env(safe-area-inset-bottom, 0px)) !important;
        bottom: calc(156px + env(safe-area-inset-bottom, 0px)) !important;
        width: min(356px, calc(100vw - 24px)) !important;
        max-height: min(470px, calc(100vh - 178px)) !important;
        border-radius: 14px !important;
    }
}

@media (max-width: 420px) {
    html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-quick-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        max-height: 122px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant :is(.psfm-ai-launcher, .psfm-ai-panel, .psfm-ai-quick-actions, .psfm-ai-quick-actions button, .psfm-ai-typing-dots span) {
        animation: none !important;
        transition: none !important;
        transform: none !important;
    }
}

/* Mobile navigation is an independent light panel. It must never inherit a
   transparent/dark hero surface, and service summaries stay in deliberate
   stacked rows rather than squeezing their title and copy into narrow columns. */
@media (max-width: 991.98px) {
    html body[class]:not(#psfm-final-contrast-guard) > header.header #main_nav.navbar-collapse.show,
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) > header.header #main_nav.navbar-collapse.show {
        position: fixed !important;
        top: calc(var(--psfm-fixed-header-height, 64px) + 8px) !important;
        right: 10px !important;
        bottom: auto !important;
        left: 10px !important;
        width: auto !important;
        max-width: none !important;
        max-height: min(620px, calc(100dvh - var(--psfm-fixed-header-height, 64px) - 20px)) !important;
        margin: 0 !important;
        padding: 10px !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        border: 1px solid #d9e1ea !important;
        border-radius: 14px !important;
        background: #ffffff !important;
        box-shadow: 0 18px 42px rgba(16, 32, 51, 0.20) !important;
        z-index: 2147483005 !important;
    }

    html body[class]:not(#psfm-final-contrast-guard) > header.header #main_nav.navbar-collapse.show .header-menu-list,
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) > header.header #main_nav.navbar-collapse.show .header-menu-list {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        gap: 4px !important;
        background: transparent !important;
    }

    html body[class]:not(#psfm-final-contrast-guard) > header.header #main_nav.navbar-collapse.show .nav-item,
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) > header.header #main_nav.navbar-collapse.show .nav-item {
        width: 100% !important;
        min-width: 0 !important;
    }

    html body[class]:not(#psfm-final-contrast-guard) > header.header #main_nav.navbar-collapse.show :where(.nav-link, .dropdown-toggle),
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) > header.header #main_nav.navbar-collapse.show :where(.nav-link, .dropdown-toggle) {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        width: 100% !important;
        min-height: 42px !important;
        padding: 10px 12px !important;
        border: 1px solid transparent !important;
        border-radius: 8px !important;
        background: #ffffff !important;
        color: #102033 !important;
        -webkit-text-fill-color: #102033 !important;
        font-size: 0.90rem !important;
        font-weight: 800 !important;
        line-height: 1.25 !important;
        text-align: start !important;
        text-shadow: none !important;
    }

    html body[class]:not(#psfm-final-contrast-guard) > header.header #main_nav.navbar-collapse.show :where(.nav-link.active, .nav-link:hover, .nav-link:focus-visible, .dropdown-toggle:hover, .dropdown-toggle:focus-visible),
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) > header.header #main_nav.navbar-collapse.show :where(.nav-link.active, .nav-link:hover, .nav-link:focus-visible, .dropdown-toggle:hover, .dropdown-toggle:focus-visible) {
        border-color: rgba(201, 21, 29, 0.14) !important;
        background: #fff5f5 !important;
        color: #b71920 !important;
        -webkit-text-fill-color: #b71920 !important;
    }

    html body[class]:not(#psfm-final-contrast-guard) > header.header #main_nav.navbar-collapse.show :where(.header-dropdown-services, .header-dropdown-compact, .header-dropdown-more).show,
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) > header.header #main_nav.navbar-collapse.show :where(.header-dropdown-services, .header-dropdown-compact, .header-dropdown-more).show {
        position: static !important;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        width: 100% !important;
        max-width: 100% !important;
        max-height: min(48dvh, 350px) !important;
        margin: 4px 0 6px !important;
        padding: 8px !important;
        gap: 6px !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        border: 1px solid #e2e8f0 !important;
        border-radius: 10px !important;
        background: #f7f9fc !important;
        box-shadow: none !important;
    }

    html body[class]:not(#psfm-final-contrast-guard) > header.header #main_nav.navbar-collapse.show :where(.header-dropdown-services, .header-dropdown-compact, .header-dropdown-more).show .dropdown-item,
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) > header.header #main_nav.navbar-collapse.show :where(.header-dropdown-services, .header-dropdown-compact, .header-dropdown-more).show .dropdown-item {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        padding: 9px 10px !important;
        overflow: visible !important;
        border: 1px solid #e2e8f0 !important;
        border-radius: 8px !important;
        background: #ffffff !important;
        color: #102033 !important;
        -webkit-text-fill-color: #102033 !important;
        white-space: normal !important;
    }

    html body[class]:not(#psfm-final-contrast-guard) > header.header #main_nav.navbar-collapse.show :where(.header-dropdown-services, .header-dropdown-compact, .header-dropdown-more).show :where(.dropdown-item-title, .dropdown-item-copy),
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) > header.header #main_nav.navbar-collapse.show :where(.header-dropdown-services, .header-dropdown-compact, .header-dropdown-more).show :where(.dropdown-item-title, .dropdown-item-copy) {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        overflow: visible !important;
        text-overflow: clip !important;
        word-break: normal !important;
        overflow-wrap: normal !important;
    }

    html body[class]:not(#psfm-final-contrast-guard) > header.header #main_nav.navbar-collapse.show .dropdown-item-title,
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) > header.header #main_nav.navbar-collapse.show .dropdown-item-title {
        margin-bottom: 3px !important;
        color: #102033 !important;
        -webkit-text-fill-color: #102033 !important;
        font-size: 0.84rem !important;
        font-weight: 850 !important;
        line-height: 1.25 !important;
    }

    html body[class]:not(#psfm-final-contrast-guard) > header.header #main_nav.navbar-collapse.show .dropdown-item-copy,
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) > header.header #main_nav.navbar-collapse.show .dropdown-item-copy {
        color: #52647b !important;
        -webkit-text-fill-color: #52647b !important;
        font-size: 0.76rem !important;
        font-weight: 600 !important;
        line-height: 1.38 !important;
    }
}

/* Final cascade guard for the targeted July visual release. This deliberately
   sits after legacy assistant and route styles so contrast cannot regress. */
@media (max-width: 767.98px) {
    html body[class]:not(#psfm-final-contrast-guard) main.main .seo-page .seo-card.seo-hero,
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) main.main .seo-page .seo-card.seo-hero {
        background: linear-gradient(135deg, #07172c 0%, #123454 100%) !important;
    }

    html body[class]:not(#psfm-final-contrast-guard) main.main .seo-page .seo-card.seo-hero :is(h1, h2, .seo-section-title, .seo-arabic-support),
    html body[class]:not(#psfm-final-contrast-guard) main.main .seo-page .seo-card.seo-hero > p,
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) main.main .seo-page .seo-card.seo-hero :is(h1, h2, .seo-section-title, .seo-arabic-support),
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) main.main .seo-page .seo-card.seo-hero > p {
        color: #ffffff !important;
        -webkit-text-fill-color: #ffffff !important;
        opacity: 1 !important;
        text-shadow: none !important;
    }

    html body[class]:not(#psfm-final-contrast-guard) main.main .seo-page .seo-card.seo-hero .seo-kicker,
    html body[class]:not(#psfm-final-contrast-guard) main.main .seo-page .seo-card.seo-hero .seo-chip,
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) main.main .seo-page .seo-card.seo-hero .seo-kicker,
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) main.main .seo-page .seo-card.seo-hero .seo-chip {
        background: #ffffff !important;
        color: #102033 !important;
        -webkit-text-fill-color: #102033 !important;
        opacity: 1 !important;
    }

    html body[class]:not(#psfm-final-contrast-guard) main.main .seo-page .seo-card.seo-hero :is(.seo-kicker, .seo-chip) :is(i, svg),
    html[dir="rtl"] body[class]:not(#psfm-final-contrast-guard) main.main .seo-page .seo-card.seo-hero :is(.seo-kicker, .seo-chip) :is(i, svg) {
        color: #c9151d !important;
        -webkit-text-fill-color: #c9151d !important;
        opacity: 1 !important;
    }
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-launcher,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-home-page .psfm-ai-launcher,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-conversion-critical-page .psfm-ai-launcher {
    border: 2px solid #ffffff !important;
    background: #c9151d !important;
    box-shadow: 0 0 0 2px rgba(201, 21, 29, 0.16), 0 12px 28px rgba(16, 32, 51, 0.25) !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-launcher:hover,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-launcher:focus-visible,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-open .psfm-ai-launcher {
    border-color: #ffffff !important;
    background: #a91119 !important;
    box-shadow: 0 0 0 2px rgba(201, 21, 29, 0.20), 0 14px 30px rgba(16, 32, 51, 0.28) !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-launcher::after {
    border-color: #102033 !important;
    background: #ffffff !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-panel,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-home-page .psfm-ai-panel,
html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant.is-conversion-critical-page .psfm-ai-panel {
    border-color: #cfd9e5 !important;
    border-radius: 14px !important;
    box-shadow: 0 22px 48px rgba(16, 32, 51, 0.24) !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-header {
    padding: 13px 14px !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-header strong {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-header #psfm-ai-status {
    color: #d7e2ee !important;
    -webkit-text-fill-color: #d7e2ee !important;
    font-size: 0.72rem !important;
    line-height: 1.35 !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-messages {
    background: #f7f9fc !important;
}

html body[class]:not(#psfm-final-contrast-guard) .psfm-ai-assistant .psfm-ai-message.is-bot {
    border: 1px solid #e1e8f0 !important;
    background: #ffffff !important;
    color: #2d4057 !important;
    -webkit-text-fill-color: #2d4057 !important;
}
