/*
 * IndoSurgicals Public Page Standard — Patch 13.6.2 v1.1.0
 * --------------------------------------------------------------------------
 * Final public visual contract for the August 18, 2026 live baseline.
 *
 * Goals:
 * - one responsive public content width sourced from root_theme.php
 * - one Poppins / navy / teal / neutral palette for non-Blog public systems
 * - one semantic page-title / section-title / body-text scale
 * - one hero surface language
 * - one technical table language
 * - keep shared header/footer behavior untouched while aligning their max width
 * - preserve authored Blog creativity; only Blog outer width/chrome are governed
 *
 * This file intentionally loads on every public page. High-specificity rules are
 * limited to design-system invariants that must beat older page-family CSS.
 */

html:root {
    --isp-public-gutter: 32px;
    --isp-root-content-gutter: 32px;
    --isp-public-h1: var(--isp-root-h1-size, clamp(34px, 3.4vw, 45px));
    --isp-public-h2: var(--isp-root-h2-size, 27px);
    --isp-public-h3: var(--isp-root-h3-size, 15px);
    --isp-public-body: var(--isp-root-body-size, 14px);
    --isp-public-small: var(--isp-root-small-size, 12px);
    --isp-public-hero-copy: 15px;
    --isp-public-card-radius: var(--isp-root-radius-lg, 17px);
    --isp-public-hero-radius: var(--isp-root-radius-xl, 18px);
    --isp-public-hero-bg:
        radial-gradient(circle at 96% 6%, rgba(99,196,173,.22), transparent 30%),
        linear-gradient(135deg, #f8fbfb 0%, #ffffff 60%, #eef8f6 100%);
    --isp-public-hero-panel-bg: linear-gradient(145deg, var(--isp-root-hero-panel-start, #173a52) 0%, var(--isp-root-hero-panel-end, #284b5e) 100%);
    --isp-public-hero-panel-border: #254d62;
    --isp-public-hero-panel-accent: var(--isp-root-on-dark-accent, #7ee0cc);
    --isp-public-primary: var(--isp-root-teal-dark, #00746f);
    --isp-public-primary-hover: var(--isp-root-teal, #008f87);
    --isp-public-secondary-bg: var(--isp-root-white, #fff);
    --isp-public-secondary-border: var(--isp-root-line-strong, #c7d5d7);
    --isp-chrome-width: var(--isp-root-content-max, 1190px);
}

html body {
    background: var(--isp-root-page-bg, #f5f7f8) !important;
    color: var(--isp-root-text, #263746);
    font-family: var(--isp-root-font, 'Poppins', Arial, Helvetica, sans-serif);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* --------------------------------------------------------------------------
   ONE PUBLIC WIDTH
   The legacy .container is used only for public page/breadcrumb shells in the
   current codebase, so it is safe to make it the canonical width contract.
   -------------------------------------------------------------------------- */
html body .container,
html body .blog-page,
html body .isp-warranty-public-page {
    box-sizing: border-box;
    width: min(var(--isp-root-content-max, 1190px), calc(100% - var(--isp-public-gutter))) !important;
    max-width: var(--isp-root-content-max, 1190px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

html body .container {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Remove second-stage width caps inside the canonical outer grid.  These
   legacy inner shells used 95% / 1160px and made Product, /page/ and Search
   visibly narrower than Root pages even when the outer .container matched. */
html body .container .isp-product-page .isp-product-shell,
html body .container .isp-info-page .isp-info-shell,
html body .container .isp-smart-search-page .isp-search-shell {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Homepage uses its own width helper; bind it to the same public grid. */
html body .isp-home .isp-home-width {
    box-sizing: border-box;
    width: min(var(--isp-root-content-max, 1190px), calc(100% - var(--isp-public-gutter))) !important;
    max-width: var(--isp-root-content-max, 1190px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Keep all shared desktop chrome on the exact same outer grid as content. */
@media (min-width: 901px) {
    html body .top_bar_container .isp-topbar-inner,
    html body .header_container .isp-header-inner,
    html body #menu .isp-nav-inner,
    html body #footer .isp-footer-cta,
    html body #footer .isp-footer-inner,
    html body #copyright .isp-copyright-inner {
        width: min(var(--isp-root-content-max, 1190px), calc(100% - 32px)) !important;
        max-width: var(--isp-root-content-max, 1190px) !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

/* --------------------------------------------------------------------------
   SHARED PAGE-FAMILY TOKENS + FONT
   -------------------------------------------------------------------------- */
/* Bind older page-local token names to the live Root Theme so a future theme
   setting change cannot make one public family drift away from the others. */
html body .isp-home {
    --isp-home-navy: var(--isp-root-navy, #405365);
    --isp-home-navy-dark: var(--isp-root-navy-dark, #273c4d);
    --isp-home-teal: var(--isp-root-teal, #008f87);
    --isp-home-teal-dark: var(--isp-root-teal-dark, #00746f);
    --isp-home-mint: var(--isp-root-mint, #63c4ad);
    --isp-home-text: var(--isp-root-text, #263746);
    --isp-home-muted: var(--isp-root-muted, #687986);
    --isp-home-line: var(--isp-root-line, #d8e2e3);
    --isp-home-soft: var(--isp-root-soft, #f4f7f7);
    --isp-home-teal-soft: var(--isp-root-teal-soft, #eaf7f5);
    --isp-home-white: var(--isp-root-white, #fff);
}

html body .isp-products-directory-page {
    --isp-navy: var(--isp-root-navy, #405365);
    --isp-navy-dark: var(--isp-root-navy-dark, #273c4d);
    --isp-teal: var(--isp-root-teal, #008f87);
    --isp-teal-dark: var(--isp-root-teal-dark, #00746f);
    --isp-mint: var(--isp-root-mint, #63c4ad);
    --isp-text: var(--isp-root-text, #263746);
    --isp-muted: var(--isp-root-muted, #687986);
    --isp-line: var(--isp-root-line, #d8e2e3);
    --isp-soft: var(--isp-root-soft, #f4f7f7);
    --isp-teal-soft: var(--isp-root-teal-soft, #eaf7f5);
    --isp-white: var(--isp-root-white, #fff);
}

html body .isp-exhibition-page {
    --isp-exhibition-navy: var(--isp-root-navy, #405365);
    --isp-exhibition-navy-dark: var(--isp-root-navy-dark, #273c4d);
    --isp-exhibition-teal: var(--isp-root-teal, #008f87);
    --isp-exhibition-teal-dark: var(--isp-root-teal-dark, #00746f);
    --isp-exhibition-mint: var(--isp-root-mint, #63c4ad);
    --isp-exhibition-text: var(--isp-root-text, #263746);
    --isp-exhibition-muted: var(--isp-root-muted, #687986);
    --isp-exhibition-line: var(--isp-root-line, #d8e2e3);
    --isp-exhibition-soft: var(--isp-root-soft, #f4f7f7);
    --isp-exhibition-teal-soft: var(--isp-root-teal-soft, #eaf7f5);
    --isp-exhibition-white: var(--isp-root-white, #fff);
}

html body .isp-testimonial-page {
    --isp-testimonial-navy: var(--isp-root-navy, #405365);
    --isp-testimonial-navy-dark: var(--isp-root-navy-dark, #273c4d);
    --isp-testimonial-teal: var(--isp-root-teal, #008f87);
    --isp-testimonial-teal-dark: var(--isp-root-teal-dark, #00746f);
    --isp-testimonial-mint: var(--isp-root-mint, #63c4ad);
    --isp-testimonial-text: var(--isp-root-text, #263746);
    --isp-testimonial-muted: var(--isp-root-muted, #687986);
    --isp-testimonial-line: var(--isp-root-line, #d8e2e3);
    --isp-testimonial-soft: var(--isp-root-soft, #f4f7f7);
    --isp-testimonial-teal-soft: var(--isp-root-teal-soft, #eaf7f5);
    --isp-testimonial-white: var(--isp-root-white, #fff);
}
html body .isp-home,
html body .isp-category-page,
html body .isp-subcategory-page,
html body .isp-product-page,
html body .isp-category-faq-page,
html body .isp-enquiry-page,
html body .isp-smart-search-page,
html body .isp-catalogue-page,
html body .isp-exhibition-category-page,
html body .isp-exhibition-page,
html body .isp-testimonial-page,
html body .isp-warranty-page,
html body .isp-warranty-public-page,
html body .isp-info-page,
html body .isp-root-page,
html body .ind-cart-pro,
html body .ecs-wrap {
    font-family: var(--isp-root-font, 'Poppins', Arial, Helvetica, sans-serif) !important;
}

html body .isp-category-page {
    --isp-navy: var(--isp-root-navy, #405365);
    --isp-navy-dark: var(--isp-root-navy-dark, #273c4d);
    --isp-teal: var(--isp-root-teal, #008f87);
    --isp-teal-dark: var(--isp-root-teal-dark, #00746f);
    --isp-mint: var(--isp-root-mint, #63c4ad);
    --isp-text: var(--isp-root-text, #263746);
    --isp-muted: var(--isp-root-muted, #687986);
    --isp-line: var(--isp-root-line, #d8e2e3);
    --isp-soft: var(--isp-root-soft, #f4f7f7);
    --isp-teal-soft: var(--isp-root-teal-soft, #eaf7f5);
    --isp-white: var(--isp-root-white, #fff);
}

html body .isp-subcategory-page {
    --isp-navy: var(--isp-root-navy, #405365);
    --isp-navy-dark: var(--isp-root-navy-dark, #273c4d);
    --isp-teal: var(--isp-root-teal, #008f87);
    --isp-teal-dark: var(--isp-root-teal-dark, #00746f);
    --isp-mint: var(--isp-root-mint, #63c4ad);
    --isp-text: var(--isp-root-text, #263746);
    --isp-muted: var(--isp-root-muted, #687986);
    --isp-line: var(--isp-root-line, #d8e2e3);
    --isp-soft: var(--isp-root-soft, #f4f7f7);
    --isp-teal-soft: var(--isp-root-teal-soft, #eaf7f5);
    --isp-white: var(--isp-root-white, #fff);
}

html body .isp-product-page {
    --isp-navy: var(--isp-root-navy, #405365);
    --isp-navy-dark: var(--isp-root-navy-dark, #273c4d);
    --isp-teal: var(--isp-root-teal, #008f87);
    --isp-teal-dark: var(--isp-root-teal-dark, #00746f);
    --isp-mint: var(--isp-root-mint, #63c4ad);
    --isp-red: var(--isp-root-teal, #008f87);
    --isp-red-dark: var(--isp-root-teal-dark, #00746f);
    --isp-blue: var(--isp-root-teal, #008f87);
    --isp-text: var(--isp-root-text, #263746);
    --isp-muted: var(--isp-root-muted, #687986);
    --isp-line: var(--isp-root-line, #d8e2e3);
    --isp-soft: var(--isp-root-soft, #f4f7f7);
    --isp-teal-soft: var(--isp-root-teal-soft, #eaf7f5);
    --isp-white: var(--isp-root-white, #fff);
    --isp-success: var(--isp-root-teal, #008f87);
}

html body .isp-category-faq-page {
    --isp-faq-navy: var(--isp-root-navy, #405365);
    --isp-faq-navy-dark: var(--isp-root-navy-dark, #273c4d);
    --isp-faq-teal: var(--isp-root-teal, #008f87);
    --isp-faq-teal-dark: var(--isp-root-teal-dark, #00746f);
    --isp-faq-mint: var(--isp-root-mint, #63c4ad);
    --isp-faq-text: var(--isp-root-text, #263746);
    --isp-faq-muted: var(--isp-root-muted, #687986);
    --isp-faq-line: var(--isp-root-line, #d8e2e3);
    --isp-faq-soft: var(--isp-root-soft, #f4f7f7);
    --isp-faq-teal-soft: var(--isp-root-teal-soft, #eaf7f5);
    --isp-faq-white: var(--isp-root-white, #fff);
}

html body .isp-enquiry-page {
    --isp-enquiry-navy: var(--isp-root-navy, #405365);
    --isp-enquiry-navy-dark: var(--isp-root-navy-dark, #273c4d);
    --isp-enquiry-teal: var(--isp-root-teal, #008f87);
    --isp-enquiry-teal-dark: var(--isp-root-teal-dark, #00746f);
    --isp-enquiry-mint: var(--isp-root-mint, #63c4ad);
    --isp-enquiry-text: var(--isp-root-text, #263746);
    --isp-enquiry-muted: var(--isp-root-muted, #687986);
    --isp-enquiry-line: var(--isp-root-line, #d8e2e3);
    --isp-enquiry-soft: var(--isp-root-soft, #f4f7f7);
    --isp-enquiry-teal-soft: var(--isp-root-teal-soft, #eaf7f5);
    --isp-enquiry-white: var(--isp-root-white, #fff);
}

html body .ind-cart-pro {
    --ic-ink: var(--isp-root-navy-dark, #273c4d);
    --ic-muted: var(--isp-root-muted, #687986);
    --ic-line: var(--isp-root-line, #d8e2e3);
    --ic-soft: var(--isp-root-soft, #f4f7f7);
    --ic-teal: var(--isp-root-teal, #008f87);
    --ic-teal-dark: var(--isp-root-teal-dark, #00746f);
    --ic-shadow: var(--isp-root-shadow-md, 0 11px 30px rgba(31,58,75,.06));
}

/* Consistent page-family top/bottom rhythm. */
html body .isp-home,
html body .isp-category-page,
html body .isp-subcategory-page,
html body .isp-product-page,
html body .isp-category-faq-page,
html body .isp-enquiry-page,
html body .isp-products-directory-page,
html body .isp-catalogue-page,
html body .isp-exhibition-category-page,
html body .isp-exhibition-page,
html body .isp-testimonial-page,
html body .isp-warranty-page,
html body .isp-info-page,
html body .isp-root-page {
    color: var(--isp-root-text, #263746) !important;
    font-family: var(--isp-root-font, 'Poppins', Arial, Helvetica, sans-serif) !important;
}

html body .container .isp-category-page,
html body .container .isp-subcategory-page,
html body .container .isp-product-page,
html body .container .isp-category-faq-page,
html body .container .isp-enquiry-page {
    padding-top: 14px !important;
    padding-bottom: 44px !important;
}

html body .container .isp-category-faq-page {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}

/* --------------------------------------------------------------------------
   ONE HERO LANGUAGE — Blogs intentionally excluded.
   -------------------------------------------------------------------------- */
html body .isp-home .isp-home-intro {
    background: var(--isp-public-hero-bg) !important;
    color: var(--isp-root-text, #263746) !important;
}

html body .container .isp-category-page .isp-category-hero,
html body .container .isp-subcategory-page .isp-subcategory-hero,
html body .container .isp-category-faq-page .isp-category-faq-hero,
html body .container .isp-enquiry-page .isp-enquiry-hero,
html body .isp-products-directory-page .isp-products-directory-hero,
html body .isp-exhibition-page .isp-exhibition-hero,
html body .isp-testimonial-page .isp-testimonial-hero,
html body .isp-warranty-page .isp-warranty-hero,
html body .isp-info-page .isp-info-hero,
html body .isp-root-page .isp-root-hero,
html body .ind-cart-pro .ind-cart-top,
html body .isp-catalogue-page .isp-catalogue-intro,
html body .isp-exhibition-category-page .isp-exhibition-category-intro {
    border: 1px solid var(--isp-root-line, #d8e2e3) !important;
    border-radius: var(--isp-public-hero-radius) !important;
    background: var(--isp-public-hero-bg) !important;
    box-shadow: var(--isp-root-shadow-md, 0 11px 30px rgba(31,58,75,.06)) !important;
}

html body .container .isp-category-page .isp-category-hero,
html body .container .isp-subcategory-page .isp-subcategory-hero,
html body .container .isp-category-faq-page .isp-category-faq-hero,
html body .container .isp-enquiry-page .isp-enquiry-hero,
html body .isp-products-directory-page .isp-products-directory-hero,
html body .isp-exhibition-page .isp-exhibition-hero,
html body .isp-testimonial-page .isp-testimonial-hero,
html body .isp-warranty-page .isp-warranty-hero,
html body .isp-info-page .isp-info-hero,
html body .isp-root-page .isp-root-hero {
    margin: 0 0 14px !important;
    padding: 34px 36px !important;
}

/* Legacy category/subcategory heroes previously had 15px outer side margins. */
html body .container .isp-category-page .isp-category-hero,
html body .container .isp-subcategory-page .isp-subcategory-hero {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* --------------------------------------------------------------------------
   ONE HERO COMPONENT LANGUAGE — Patch 13.6.2
   The hero surface was already shared in 13.6. This layer also standardizes
   the visual mass placed inside the hero: accent rail, dark information panel,
   primary/secondary actions and their interaction states.
   -------------------------------------------------------------------------- */
html body .container .isp-category-page .isp-category-hero::before,
html body .container .isp-subcategory-page .isp-subcategory-hero::before,
html body .isp-products-directory-page .isp-products-directory-hero::before,
html body .isp-root-page .isp-root-hero::before {
    width: 5px !important;
    background: var(--isp-root-teal, #008f87) !important;
}

/* Information/support panels use the same navy surface as Root pages. */
html body .isp-root-page .isp-root-hero-panel,
html body .isp-home .isp-home-trust-card,
html body .isp-products-directory-page .isp-products-directory-trust,
html body .container .isp-category-page .isp-category-trust-panel,
html body .container .isp-subcategory-page .isp-subcategory-hero-actions,
html body .isp-testimonial-page .isp-testimonial-summary,
html body .isp-warranty-page .isp-warranty-hero-panel {
    overflow: hidden !important;
    border: 1px solid var(--isp-public-hero-panel-border) !important;
    border-radius: 14px !important;
    background: var(--isp-public-hero-panel-bg) !important;
    box-shadow: 0 12px 28px rgba(23,58,82,.13) !important;
}


/* Homepage procurement metrics keep their 2x2 information architecture but
   use the same navy surface, line and text palette as all hero-side panels. */
html body .isp-home .isp-home-trust-card {
    border-top-width: 1px !important;
}
html body .isp-home .isp-home-trust-heading {
    padding: 14px 16px !important;
    border-bottom: 1px solid rgba(255,255,255,.13) !important;
    background: transparent !important;
    color: var(--isp-root-on-dark, #fff) !important;
    font-family: var(--isp-root-font, 'Poppins', Arial, Helvetica, sans-serif) !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
    font-weight: 800 !important;
}
html body .isp-home .isp-home-trust-grid > div {
    border-color: rgba(255,255,255,.13) !important;
    background: transparent !important;
}
html body .isp-home .isp-home-trust-grid strong {
    color: var(--isp-public-hero-panel-accent) !important;
}
html body .isp-home .isp-home-trust-grid span {
    color: var(--isp-root-on-dark-muted, #d7e6eb) !important;
}

/* Testimonials use a count/status summary rather than key/value rows. */
html body .isp-testimonial-page .isp-testimonial-summary-main {
    border-bottom: 1px solid rgba(255,255,255,.13) !important;
    background: transparent !important;
}
html body .isp-testimonial-page .isp-testimonial-summary-main strong {
    color: var(--isp-public-hero-panel-accent) !important;
}
html body .isp-testimonial-page .isp-testimonial-summary-main span {
    color: var(--isp-root-on-dark, #fff) !important;
}
html body .isp-testimonial-page .isp-testimonial-summary-row {
    border-bottom-color: rgba(255,255,255,.13) !important;
    background: transparent !important;
    color: var(--isp-root-on-dark-muted, #d7e6eb) !important;
}
html body .isp-testimonial-page .isp-testimonial-summary-row span {
    color: var(--isp-root-on-dark-muted, #d7e6eb) !important;
}
html body .isp-testimonial-page .isp-testimonial-summary-row svg {
    background: rgba(126,224,204,.13) !important;
    fill: var(--isp-public-hero-panel-accent) !important;
}

/* Warranty eligibility/coverage rows now use exactly the Root hero-panel
   palette rather than a separate set of white mini-cards. */
html body .isp-warranty-page .isp-warranty-hero-panel {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
}
html body .isp-warranty-page .isp-warranty-hero-panel > div {
    min-height: 61px !important;
    padding: 12px 15px !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.13) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
html body .isp-warranty-page .isp-warranty-hero-panel > div:last-child {
    border-bottom: 0 !important;
}
html body .isp-warranty-page .isp-warranty-hero-panel span {
    color: var(--isp-public-hero-panel-accent) !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
}
html body .isp-warranty-page .isp-warranty-hero-panel strong {
    color: var(--isp-root-on-dark, #fff) !important;
    font-size: 12px !important;
    font-weight: 800 !important;
}

html body .isp-products-directory-page .isp-products-directory-trust,
html body .container .isp-category-page .isp-category-trust-panel {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
}

html body .isp-products-directory-page .isp-products-directory-trust > div,
html body .container .isp-category-page .isp-category-trust-panel > div {
    min-height: 61px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-content: center !important;
    padding: 12px 15px 12px 52px !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.13) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    text-align: left !important;
}
html body .isp-products-directory-page .isp-products-directory-trust > div:last-child,
html body .container .isp-category-page .isp-category-trust-panel > div:last-child {
    border-bottom: 0 !important;
}

html body .isp-products-directory-page .isp-products-directory-trust > div::before,
html body .container .isp-category-page .isp-category-trust-panel > div::before {
    left: 15px !important;
    top: 50% !important;
    width: 25px !important;
    height: 25px !important;
    transform: translateY(-50%) !important;
    border: 1px solid rgba(126,224,204,.24) !important;
    background: rgba(126,224,204,.12) !important;
    color: var(--isp-public-hero-panel-accent) !important;
    font-size: 13px !important;
}

html body .isp-products-directory-page .isp-products-directory-trust strong,
html body .container .isp-category-page .isp-category-trust-panel strong {
    color: var(--isp-root-on-dark, #fff) !important;
    font-family: var(--isp-root-font, 'Poppins', Arial, Helvetica, sans-serif) !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
    font-weight: 800 !important;
}
html body .isp-products-directory-page .isp-products-directory-trust span,
html body .container .isp-category-page .isp-category-trust-panel span {
    margin-top: 3px !important;
    color: var(--isp-root-on-dark-muted, #d7e6eb) !important;
    font-family: var(--isp-root-font, 'Poppins', Arial, Helvetica, sans-serif) !important;
    font-size: 11px !important;
    line-height: 1.4 !important;
}

/* Subcategory has actions rather than informational rows. Keep the function,
   but place those actions on the same navy hero-panel surface. */
html body .container .isp-subcategory-page .isp-subcategory-hero-actions {
    min-width: 220px !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 9px !important;
    padding: 16px !important;
}

/* One primary + secondary hero button treatment across public page families. */
html body .isp-root-page .isp-root-button,
html body .isp-products-directory-page :where(.isp-products-directory-primary-action,.isp-products-directory-secondary-action),
html body .container .isp-category-page :where(.isp-category-primary-action,.isp-category-secondary-action),
html body .container .isp-subcategory-page :where(.isp-subcategory-primary-action,.isp-subcategory-secondary-action),
html body .isp-testimonial-page :where(.isp-testimonial-primary-action,.isp-testimonial-secondary-action),
html body .isp-warranty-page :where(.isp-warranty-primary-link,.isp-warranty-secondary-link),
html body .isp-exhibition-page :where(.isp-exhibition-primary,.isp-exhibition-secondary),
html body .isp-home :where(.isp-home-button-primary,.isp-home-button-secondary) {
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 9px 16px !important;
    border-width: 1px !important;
    border-style: solid !important;
    border-radius: var(--isp-root-radius-sm, 9px) !important;
    font-family: var(--isp-root-font, 'Poppins', Arial, Helvetica, sans-serif) !important;
    font-size: 12px !important;
    line-height: 1.25 !important;
    font-weight: 800 !important;
    text-decoration: none !important;
    text-align: center !important;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease, color .18s ease, filter .18s ease !important;
}

html body .isp-root-page .isp-root-button--primary,
html body .isp-products-directory-page .isp-products-directory-primary-action,
html body .container .isp-category-page .isp-category-primary-action,
html body .container .isp-subcategory-page .isp-subcategory-primary-action,
html body .isp-testimonial-page .isp-testimonial-primary-action,
html body .isp-warranty-page .isp-warranty-primary-link,
html body .isp-exhibition-page .isp-exhibition-primary,
html body .isp-home .isp-home-button-primary {
    border-color: var(--isp-public-primary) !important;
    background: var(--isp-public-primary) !important;
    color: #fff !important;
    box-shadow: 0 8px 18px rgba(0,116,111,.18) !important;
}

html body .isp-root-page .isp-root-button--secondary,
html body .isp-products-directory-page .isp-products-directory-secondary-action,
html body .container .isp-category-page .isp-category-secondary-action,
html body .container .isp-subcategory-page .isp-subcategory-secondary-action,
html body .isp-testimonial-page .isp-testimonial-secondary-action,
html body .isp-warranty-page .isp-warranty-secondary-link,
html body .isp-exhibition-page .isp-exhibition-secondary,
html body .isp-home .isp-home-button-secondary {
    border-color: var(--isp-public-secondary-border) !important;
    background: var(--isp-public-secondary-bg) !important;
    color: var(--isp-root-navy, #405365) !important;
    box-shadow: none !important;
}

html body :where(
    .isp-root-page .isp-root-button,
    .isp-products-directory-page .isp-products-directory-primary-action,
    .isp-products-directory-page .isp-products-directory-secondary-action,
    .container .isp-category-page .isp-category-primary-action,
    .container .isp-category-page .isp-category-secondary-action,
    .container .isp-subcategory-page .isp-subcategory-primary-action,
    .container .isp-subcategory-page .isp-subcategory-secondary-action,
    .isp-testimonial-page .isp-testimonial-primary-action,
    .isp-testimonial-page .isp-testimonial-secondary-action,
    .isp-warranty-page .isp-warranty-primary-link,
    .isp-warranty-page .isp-warranty-secondary-link,
    .isp-exhibition-page .isp-exhibition-primary,
    .isp-exhibition-page .isp-exhibition-secondary,
    .isp-home .isp-home-button-primary,
    .isp-home .isp-home-button-secondary
):hover,
html body :where(
    .isp-root-page .isp-root-button,
    .isp-products-directory-page .isp-products-directory-primary-action,
    .isp-products-directory-page .isp-products-directory-secondary-action,
    .container .isp-category-page .isp-category-primary-action,
    .container .isp-category-page .isp-category-secondary-action,
    .container .isp-subcategory-page .isp-subcategory-primary-action,
    .container .isp-subcategory-page .isp-subcategory-secondary-action,
    .isp-testimonial-page .isp-testimonial-primary-action,
    .isp-testimonial-page .isp-testimonial-secondary-action,
    .isp-warranty-page .isp-warranty-primary-link,
    .isp-warranty-page .isp-warranty-secondary-link,
    .isp-exhibition-page .isp-exhibition-primary,
    .isp-exhibition-page .isp-exhibition-secondary,
    .isp-home .isp-home-button-primary,
    .isp-home .isp-home-button-secondary
):focus-visible {
    transform: translateY(-1px) !important;
    box-shadow: 0 10px 22px rgba(39,60,77,.12) !important;
}

html body :where(
    .isp-root-page .isp-root-button--primary,
    .isp-products-directory-page .isp-products-directory-primary-action,
    .container .isp-category-page .isp-category-primary-action,
    .container .isp-subcategory-page .isp-subcategory-primary-action,
    .isp-testimonial-page .isp-testimonial-primary-action,
    .isp-warranty-page .isp-warranty-primary-link,
    .isp-exhibition-page .isp-exhibition-primary,
    .isp-home .isp-home-button-primary
):hover,
html body :where(
    .isp-root-page .isp-root-button--primary,
    .isp-products-directory-page .isp-products-directory-primary-action,
    .container .isp-category-page .isp-category-primary-action,
    .container .isp-subcategory-page .isp-subcategory-primary-action,
    .isp-testimonial-page .isp-testimonial-primary-action,
    .isp-warranty-page .isp-warranty-primary-link,
    .isp-exhibition-page .isp-exhibition-primary,
    .isp-home .isp-home-button-primary
):focus-visible {
    background: var(--isp-public-primary-hover) !important;
    border-color: var(--isp-public-primary-hover) !important;
    color: #fff !important;
}

html body :where(
    .isp-root-page .isp-root-button--secondary,
    .isp-products-directory-page .isp-products-directory-secondary-action,
    .container .isp-category-page .isp-category-secondary-action,
    .container .isp-subcategory-page .isp-subcategory-secondary-action,
    .isp-testimonial-page .isp-testimonial-secondary-action,
    .isp-warranty-page .isp-warranty-secondary-link,
    .isp-exhibition-page .isp-exhibition-secondary,
    .isp-home .isp-home-button-secondary
):hover,
html body :where(
    .isp-root-page .isp-root-button--secondary,
    .isp-products-directory-page .isp-products-directory-secondary-action,
    .container .isp-category-page .isp-category-secondary-action,
    .container .isp-subcategory-page .isp-subcategory-secondary-action,
    .isp-testimonial-page .isp-testimonial-secondary-action,
    .isp-warranty-page .isp-warranty-secondary-link,
    .isp-exhibition-page .isp-exhibition-secondary,
    .isp-home .isp-home-button-secondary
):focus-visible {
    border-color: var(--isp-root-teal, #008f87) !important;
    background: var(--isp-root-teal-soft, #eaf7f5) !important;
    color: var(--isp-root-teal-dark, #00746f) !important;
}

@media (max-width: 860px) {
    html body .isp-products-directory-page .isp-products-directory-trust,
    html body .container .isp-category-page .isp-category-trust-panel {
        grid-template-columns: 1fr !important;
    }
    html body .isp-products-directory-page .isp-products-directory-trust > div,
    html body .container .isp-category-page .isp-category-trust-panel > div {
        min-height: 58px !important;
        padding: 11px 14px 11px 50px !important;
        text-align: left !important;
    }
    html body .isp-products-directory-page .isp-products-directory-trust > div::before,
    html body .container .isp-category-page .isp-category-trust-panel > div::before {
        left: 14px !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
    }
}

@media (max-width: 600px) {
    html body .container .isp-subcategory-page .isp-subcategory-hero-actions {
        min-width: 0 !important;
        grid-template-columns: 1fr !important;
        padding: 12px !important;
    }
    html body .isp-products-directory-page .isp-products-directory-actions,
    html body .container .isp-category-page .isp-category-hero-actions {
        grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    }
}

@media (max-width: 390px) {
    html body .isp-products-directory-page .isp-products-directory-actions,
    html body .container .isp-category-page .isp-category-hero-actions {
        grid-template-columns: 1fr !important;
    }
}

/* Page-title role. */
html body .isp-home .isp-home-intro h1,
html body .container .isp-category-page .isp-category-hero h1,
html body .container .isp-subcategory-page .isp-subcategory-hero h1,
html body .container .isp-category-faq-page .isp-category-faq-hero h1,
html body .container .isp-enquiry-page .isp-enquiry-hero h1,
html body .isp-products-directory-page .isp-products-directory-hero h1,
html body .isp-exhibition-page .isp-exhibition-hero h1,
html body .isp-testimonial-page .isp-testimonial-hero h1,
html body .isp-warranty-page .isp-warranty-hero h1,
html body .isp-info-page .isp-info-hero h1,
html body .isp-root-page .isp-root-hero h1,
html body .container .isp-product-page .isp-product-summary #isp-product-title,
html body .isp-smart-search-page .isp-search-hero h1,
html body .ind-cart-pro .ind-cart-top h1,
html body .ecs-wrap .ecs-hero h1,
html body .isp-warranty-public-page .isp-warranty-public-head h1 {
    color: var(--isp-root-navy-dark, #273c4d) !important;
    font-family: var(--isp-root-font, 'Poppins', Arial, Helvetica, sans-serif) !important;
    font-size: var(--isp-public-h1) !important;
    line-height: 1.08 !important;
    font-weight: 800 !important;
    letter-spacing: -.04em !important;
    text-transform: none !important;
}

/* Catalogue and exhibition directory use H4 as the historical page title. */
html body .isp-catalogue-page .isp-catalogue-intro h4,
html body .isp-exhibition-category-page .isp-exhibition-category-intro h4 {
    color: var(--isp-root-navy-dark, #273c4d) !important;
    font-family: var(--isp-root-font, 'Poppins', Arial, Helvetica, sans-serif) !important;
    font-size: var(--isp-public-h1) !important;
    line-height: 1.08 !important;
    font-weight: 800 !important;
    letter-spacing: -.04em !important;
    text-transform: none !important;
}

/* Hero lead role. */
html body .isp-home .isp-home-intro-copy > p,
html body .container .isp-category-page .isp-category-intro,
html body .container .isp-subcategory-page .isp-subcategory-intro,
html body .container .isp-category-faq-page .isp-category-faq-hero-copy > p,
html body .container .isp-enquiry-page .isp-enquiry-hero-copy > p,
html body .isp-products-directory-page .isp-products-directory-hero-copy > p,
html body .isp-exhibition-page .isp-exhibition-hero-copy > p,
html body .isp-testimonial-page .isp-testimonial-hero-copy > p,
html body .isp-warranty-page .isp-warranty-hero-copy > p,
html body .isp-info-page .isp-info-hero-copy > p,
html body .isp-root-page .isp-root-hero-copy > p,
html body .isp-smart-search-page .isp-search-hero p,
html body .ind-cart-pro .ind-cart-top p,
html body .isp-catalogue-page .isp-catalogue-summary,
html body .isp-exhibition-category-page .isp-exhibition-category-intro p,
html body .ecs-wrap .ecs-hero p,
html body .isp-warranty-public-page .isp-warranty-public-head p {
    color: var(--isp-root-muted, #687986) !important;
    font-family: var(--isp-root-font, 'Poppins', Arial, Helvetica, sans-serif) !important;
    font-size: var(--isp-public-hero-copy) !important;
    line-height: 1.65 !important;
}

/* Search retains its connected search-again workspace but uses the same hero palette/scale. */
html body .isp-smart-search-page .isp-search-hero {
    border-color: var(--isp-root-line, #d8e2e3) !important;
    background: var(--isp-public-hero-bg) !important;
    box-shadow: var(--isp-root-shadow-sm, 0 7px 20px rgba(31,58,75,.045)) !important;
}

/* Warranty support/status pages now use the same light public hero language. */
html body .isp-warranty-public-page {
    margin-top: 14px !important;
    margin-bottom: 44px !important;
    padding: 0 !important;
}
html body .isp-warranty-public-page .isp-warranty-public-card {
    border-color: var(--isp-root-line, #d8e2e3) !important;
    border-radius: var(--isp-public-hero-radius) !important;
    background: var(--isp-root-white, #fff) !important;
    box-shadow: var(--isp-root-shadow-md, 0 11px 30px rgba(31,58,75,.06)) !important;
}
html body .isp-warranty-public-page .isp-warranty-public-head {
    position: relative !important;
    padding: 34px 36px !important;
    border-bottom: 1px solid var(--isp-root-line, #d8e2e3) !important;
    background: var(--isp-public-hero-bg) !important;
    color: var(--isp-root-text, #263746) !important;
}
html body .isp-warranty-public-page .isp-warranty-public-head::before {
    color: var(--isp-root-teal, #008f87) !important;
}

/* Enquiry confirmation uses the same corporate hero instead of a separate colour system. */
html body .ecs-wrap {
    width: 100% !important;
    max-width: none !important;
    margin: 14px auto 44px !important;
    padding: 0 !important;
}
html body .ecs-wrap .ecs-card {
    border-color: var(--isp-root-line, #d8e2e3) !important;
    border-radius: var(--isp-public-hero-radius) !important;
    box-shadow: var(--isp-root-shadow-md, 0 11px 30px rgba(31,58,75,.06)) !important;
}
html body .ecs-wrap .ecs-hero {
    padding: 34px 36px !important;
    background: var(--isp-public-hero-bg) !important;
    color: var(--isp-root-text, #263746) !important;
}
html body .ecs-wrap .ecs-hero::after { display: none !important; }
html body .ecs-wrap .ecs-check {
    width: 58px !important;
    height: 58px !important;
    margin-bottom: 16px !important;
    background: var(--isp-root-teal-soft, #eaf7f5) !important;
    color: var(--isp-root-teal-dark, #00746f) !important;
    border: 1px solid var(--isp-root-line, #d8e2e3) !important;
    box-shadow: none !important;
    font-size: 30px !important;
}
html body .ecs-wrap .ecs-ref {
    background: var(--isp-root-teal-soft, #eaf7f5) !important;
    border-color: #cbe4df !important;
    color: var(--isp-root-teal-dark, #00746f) !important;
}

/* --------------------------------------------------------------------------
   SEMANTIC TYPE SCALE
   Section-title selectors are intentionally role-based so product/category
   card titles can stay compact and scannable.
   -------------------------------------------------------------------------- */
html body .isp-home .isp-home-section-head h2,
html body .isp-home .isp-home-quality h2,
html body .isp-home .isp-home-testimonial h2,
html body .isp-section-heading h2,
html body .isp-category-faq-directory > h2,
html body .isp-category-faq-help h2,
html body .isp-enquiry-guidance > h2,
html body .isp-enquiry-form-head h2,
html body .isp-product-details-section > .isp-section-heading h2,
html body .isp-exhibition-section-heading h2,
html body .isp-exhibition-cta h2,
html body .isp-info-content-card > h2,
html body .isp-info-content-card .isp-section-heading h2,
html body .isp-root-section-head h2,
html body .isp-root-final-cta h2,
html body .ind-cart-pro .ind-card-head h2,
html body .ecs-wrap .ecs-panel h2,
html body .ecs-wrap .ecs-products h2 {
    color: var(--isp-root-navy-dark, #273c4d) !important;
    font-family: var(--isp-root-font, 'Poppins', Arial, Helvetica, sans-serif) !important;
    font-size: var(--isp-public-h2) !important;
    line-height: 1.22 !important;
    font-weight: 800 !important;
    letter-spacing: -.025em !important;
    text-transform: none !important;
}

/* Body paragraph role. This intentionally standardizes narrative <p> text
   while smaller labels/kickers/status metadata keep their dedicated roles. */
html body :where(
    .isp-home,
    .isp-category-page,
    .isp-subcategory-page,
    .isp-product-page,
    .isp-products-directory-page,
    .isp-category-faq-page,
    .isp-enquiry-page,
    .isp-smart-search-page,
    .isp-catalogue-page,
    .isp-exhibition-category-page,
    .isp-exhibition-page,
    .isp-testimonial-page,
    .isp-warranty-page,
    .isp-warranty-public-page,
    .isp-info-page,
    .isp-root-page,
    .ind-cart-pro,
    .ecs-wrap
) p {
    font-family: var(--isp-root-font, 'Poppins', Arial, Helvetica, sans-serif) !important;
    font-size: var(--isp-public-body) !important;
    line-height: 1.7 !important;
}

/* Main authored / technical reading bodies. Blog content is excluded. */
html body .isp-category-description,
html body .isp-description-content,
html body .isp-page-body,
html body .isp-product-description,
html body .isp-category-faq-answer-inner,
html body .isp-enquiry-guidance,
html body .isp-warranty-public-body,
html body .ecs-body {
    color: var(--isp-root-text, #263746) !important;
    font-family: var(--isp-root-font, 'Poppins', Arial, Helvetica, sans-serif) !important;
    font-size: var(--isp-public-body) !important;
    line-height: 1.7 !important;
}

html body .isp-category-description :where(p, li, dt, dd, blockquote),
html body .isp-description-content :where(p, li, dt, dd, blockquote),
html body .isp-page-body :where(p, li, dt, dd, blockquote),
html body .isp-product-description :where(p, li, dt, dd, blockquote),
html body .isp-category-faq-answer-inner :where(p, li, dt, dd, blockquote) {
    font-family: var(--isp-root-font, 'Poppins', Arial, Helvetica, sans-serif) !important;
    font-size: var(--isp-public-body) !important;
    line-height: 1.7 !important;
}

html body .isp-category-description > h2,
html body .isp-description-content > h2,
html body .isp-page-body > h2,
html body .isp-product-description.isp-content-body > h2,
html body .isp-category-faq-answer-inner > h2 {
    color: var(--isp-root-navy-dark, #273c4d) !important;
    font-family: var(--isp-root-font, 'Poppins', Arial, Helvetica, sans-serif) !important;
    font-size: var(--isp-public-h2) !important;
    line-height: 1.22 !important;
    font-weight: 800 !important;
    letter-spacing: -.025em !important;
}

html body .isp-category-description > :where(h3,h4,h5,h6),
html body .isp-description-content > :where(h3,h4,h5,h6),
html body .isp-page-body > :where(h3,h4,h5,h6),
html body .isp-product-description.isp-content-body > :where(h3,h4,h5,h6),
html body .isp-category-faq-answer-inner > :where(h3,h4,h5,h6) {
    color: var(--isp-root-navy-dark, #273c4d) !important;
    font-family: var(--isp-root-font, 'Poppins', Arial, Helvetica, sans-serif) !important;
    font-size: var(--isp-public-h3) !important;
    line-height: 1.4 !important;
    font-weight: 800 !important;
    letter-spacing: 0 !important;
}

/* Normalize common section/card surfaces without flattening purpose-specific dark panels. */
html body .isp-category-grid-section,
html body .isp-category-information,
html body .isp-products-section,
html body .isp-subcategory-information,
html body .isp-related-section,
html body .isp-product-details-section,
html body .isp-category-faq-directory,
html body .isp-category-faq-help,
html body .isp-enquiry-form-card,
html body .isp-search-empty-state,
html body .isp-search-result-card,
html body .ind-cart-pro .ind-card,
html body .ecs-wrap .ecs-panel,
html body .ecs-wrap .ecs-products {
    border-color: var(--isp-root-line, #d8e2e3) !important;
    border-radius: var(--isp-public-card-radius) !important;
    box-shadow: var(--isp-root-shadow-sm, 0 7px 20px rgba(31,58,75,.045)) !important;
}

/* --------------------------------------------------------------------------
   ONE TECHNICAL TABLE LANGUAGE — non-Blog public content.
   -------------------------------------------------------------------------- */
html body :where(
    .isp-category-description,
    .isp-description-content,
    .isp-page-body,
    .isp-product-description,
    .isp-category-faq-answer-inner,
    .isp-warranty-public-body,
    .ecs-body
) table {
    width: 100% !important;
    max-width: 100% !important;
    margin: 18px 0 !important;
    border: 1px solid var(--isp-root-line, #d8e2e3) !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    border-radius: 12px !important;
    background: var(--isp-root-white, #fff) !important;
    color: var(--isp-root-text, #263746) !important;
    font-family: var(--isp-root-font, 'Poppins', Arial, Helvetica, sans-serif) !important;
    font-size: var(--isp-public-small) !important;
    line-height: 1.55 !important;
    table-layout: auto;
    white-space: normal !important;
}

html body :where(
    .isp-category-description,
    .isp-description-content,
    .isp-page-body,
    .isp-product-description,
    .isp-category-faq-answer-inner,
    .isp-warranty-public-body,
    .ecs-body
) table :where(th, td) {
    padding: 11px 13px !important;
    border-top: 0 !important;
    border-left: 0 !important;
    border-right: 1px solid var(--isp-root-line, #d8e2e3) !important;
    border-bottom: 1px solid var(--isp-root-line, #d8e2e3) !important;
    background: var(--isp-root-white, #fff) !important;
    color: var(--isp-root-text, #263746) !important;
    font-family: var(--isp-root-font, 'Poppins', Arial, Helvetica, sans-serif) !important;
    font-size: var(--isp-public-small) !important;
    line-height: 1.55 !important;
    vertical-align: top !important;
    text-align: left !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
}

html body :where(
    .isp-category-description,
    .isp-description-content,
    .isp-page-body,
    .isp-product-description,
    .isp-category-faq-answer-inner,
    .isp-warranty-public-body,
    .ecs-body
) table th {
    background: var(--isp-root-soft, #f4f7f7) !important;
    color: var(--isp-root-navy-dark, #273c4d) !important;
    font-weight: 800 !important;
}

/* Historic CMS/product tables often use <td><strong>…</strong></td> rather
   than semantic <th>. Give those first-row header cells the same appearance. */
html body :where(
    .isp-category-description,
    .isp-description-content,
    .isp-page-body,
    .isp-product-description,
    .isp-category-faq-answer-inner,
    .isp-warranty-public-body,
    .ecs-body
) table > :where(thead, tbody) > tr:first-child > td:has(> :where(strong, b)) {
    background: var(--isp-root-soft, #f4f7f7) !important;
    color: var(--isp-root-navy-dark, #273c4d) !important;
    font-weight: 800 !important;
}

html body :where(
    .isp-category-description,
    .isp-description-content,
    .isp-page-body,
    .isp-product-description,
    .isp-category-faq-answer-inner,
    .isp-warranty-public-body,
    .ecs-body
) table tr > :last-child { border-right: 0 !important; }

html body :where(
    .isp-category-description,
    .isp-description-content,
    .isp-page-body,
    .isp-product-description,
    .isp-category-faq-answer-inner,
    .isp-warranty-public-body,
    .ecs-body
) table tr:last-child > :where(th, td) { border-bottom: 0 !important; }

/* Table wrappers own the outer border on rich flagship/custom products. */
html body .isp-product-description--custom :where(
    .is-flagship__table-wrap,
    .is91161-table-wrap,
    .is-table-wrapper,
    .is-pen-table-wrap
) {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    border: 1px solid var(--isp-root-line, #d8e2e3) !important;
    border-radius: 12px !important;
    background: var(--isp-root-white, #fff) !important;
    box-shadow: none !important;
    -webkit-overflow-scrolling: touch;
}

html body .isp-product-description--custom :where(
    .is-flagship__table-wrap,
    .is91161-table-wrap,
    .is-table-wrapper,
    .is-pen-table-wrap
) > table {
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* Enquiry-cart functional table uses the same line/header language. */
html body .ind-cart-pro .ind-products-table {
    border: 1px solid var(--isp-root-line, #d8e2e3) !important;
    border-radius: 12px !important;
    background: var(--isp-root-white, #fff) !important;
    overflow: hidden !important;
}
html body .ind-cart-pro .ind-products-table th {
    background: var(--isp-root-soft, #f4f7f7) !important;
    color: var(--isp-root-navy-dark, #273c4d) !important;
    border-bottom-color: var(--isp-root-line, #d8e2e3) !important;
    font-family: var(--isp-root-font, 'Poppins', Arial, Helvetica, sans-serif) !important;
    font-size: var(--isp-public-small) !important;
}
html body .ind-cart-pro .ind-products-table td {
    color: var(--isp-root-text, #263746) !important;
    border-bottom-color: var(--isp-root-line, #d8e2e3) !important;
    font-family: var(--isp-root-font, 'Poppins', Arial, Helvetica, sans-serif) !important;
    font-size: var(--isp-public-body) !important;
}

/* --------------------------------------------------------------------------
   PRODUCT STANDARD — rich descriptions keep layout, but not rogue fonts,
   palettes, heading scales or table systems.
   -------------------------------------------------------------------------- */
html body .isp-product-description--custom,
html body .isp-product-description--custom * {
    font-family: var(--isp-root-font, 'Poppins', Arial, Helvetica, sans-serif) !important;
}

/* Approved flagship family: preserve richer composition, alias its palette. */
html body .isp-product-description--custom .is-flagship {
    --is-ink: var(--isp-root-navy-dark, #273c4d) !important;
    --is-text: var(--isp-root-text, #263746) !important;
    --is-muted: var(--isp-root-muted, #687986) !important;
    --is-teal: var(--isp-root-teal, #008f87) !important;
    --is-teal-dark: var(--isp-root-teal-dark, #00746f) !important;
    --is-teal-soft: var(--isp-root-teal-soft, #eaf7f5) !important;
    --is-blue-soft: var(--isp-root-soft, #f4f7f7) !important;
    --is-line: var(--isp-root-line, #d8e2e3) !important;
    --is-white: var(--isp-root-white, #fff) !important;
    --is-shadow: var(--isp-root-shadow-sm, 0 7px 20px rgba(31,58,75,.045)) !important;
    color: var(--isp-root-text, #263746) !important;
    font-size: var(--isp-public-body) !important;
    line-height: 1.7 !important;
}
html body .isp-product-description--custom .is-flagship :where(p, li) {
    font-size: var(--isp-public-body) !important;
    line-height: 1.7 !important;
}
html body .isp-product-description--custom .is-flagship h2 {
    font-size: var(--isp-public-h2) !important;
    line-height: 1.22 !important;
    letter-spacing: -.025em !important;
}
html body .isp-product-description--custom .is-flagship h3 {
    font-size: var(--isp-public-h3) !important;
    line-height: 1.4 !important;
}
html body .isp-product-description--custom .is-flagship__hero,
html body .isp-product-description--custom .is-flagship__section,
html body .isp-product-description--custom .is-flagship__buy {
    border-color: var(--isp-root-line, #d8e2e3) !important;
    border-radius: var(--isp-public-card-radius) !important;
    box-shadow: var(--isp-root-shadow-sm, 0 7px 20px rgba(31,58,75,.045)) !important;
}
html body .isp-product-description--custom .is-flagship__hero {
    background: var(--isp-public-hero-bg) !important;
}

/* Lead apron rich descriptions: alias every major colour token to corporate palette. */
html body .isp-product-description--custom .is91161-page {
    --is91161-navy: var(--isp-root-navy-dark, #273c4d) !important;
    --is91161-blue: var(--isp-root-teal-dark, #00746f) !important;
    --is91161-cyan: var(--isp-root-teal-soft, #eaf7f5) !important;
    --is91161-teal: var(--isp-root-teal, #008f87) !important;
    --is91161-green: var(--isp-root-teal-dark, #00746f) !important;
    --is91161-ink: var(--isp-root-text, #263746) !important;
    --is91161-muted: var(--isp-root-muted, #687986) !important;
    --is91161-line: var(--isp-root-line, #d8e2e3) !important;
    --is91161-soft: var(--isp-root-soft, #f4f7f7) !important;
    --is91161-white: var(--isp-root-white, #fff) !important;
    --is91161-shadow: var(--isp-root-shadow-sm, 0 7px 20px rgba(31,58,75,.045)) !important;
    color: var(--isp-root-text, #263746) !important;
    font-size: var(--isp-public-body) !important;
}
html body .isp-product-description--custom .is91161-page :where(p, li) {
    font-size: var(--isp-public-body) !important;
    line-height: 1.7 !important;
}
html body .isp-product-description--custom .is91161-page h2 {
    font-size: var(--isp-public-h2) !important;
    line-height: 1.22 !important;
}
html body .isp-product-description--custom .is91161-page :where(h3,h4,h5,h6) {
    font-size: var(--isp-public-h3) !important;
    line-height: 1.4 !important;
}

/* Full-overlap apron rich description. Different material badges may remain
   distinguishable, while structural/brand colours all resolve from one theme. */
html body .isp-product-description--custom .is-wrap-apron-page {
    --is-primary: var(--isp-root-teal-dark, #00746f) !important;
    --is-primary-dark: var(--isp-root-navy-dark, #273c4d) !important;
    --is-primary-light: var(--isp-root-teal-soft, #eaf7f5) !important;
    --is-accent: var(--isp-root-teal, #008f87) !important;
    --is-accent-dark: var(--isp-root-teal-dark, #00746f) !important;
    --is-heading: var(--isp-root-navy-dark, #273c4d) !important;
    --is-text: var(--isp-root-text, #263746) !important;
    --is-muted: var(--isp-root-muted, #687986) !important;
    --is-border: var(--isp-root-line, #d8e2e3) !important;
    --is-soft: var(--isp-root-soft, #f4f7f7) !important;
    --is-white: var(--isp-root-white, #fff) !important;
    --is-shadow: var(--isp-root-shadow-sm, 0 7px 20px rgba(31,58,75,.045)) !important;
    --is-radius: var(--isp-public-card-radius) !important;
    color: var(--isp-root-text, #263746) !important;
    font-size: var(--isp-public-body) !important;
}
html body .isp-product-description--custom .is-wrap-apron-page :where(p, li) {
    font-size: var(--isp-public-body) !important;
    line-height: 1.7 !important;
}
html body .isp-product-description--custom .is-wrap-apron-page h2 {
    font-size: var(--isp-public-h2) !important;
    line-height: 1.22 !important;
}
html body .isp-product-description--custom .is-wrap-apron-page :where(h3,h4,h5,h6) {
    font-size: var(--isp-public-h3) !important;
    line-height: 1.4 !important;
}

/* Pen torch used a separate Arial/blue system; bring it fully into the same
   Product Standard while keeping the rich composition and dark callout role. */
html body .isp-product-description--custom .is-pen-desc {
    color: var(--isp-root-text, #263746) !important;
    font-size: var(--isp-public-body) !important;
    line-height: 1.7 !important;
}
html body .isp-product-description--custom .is-pen-desc :where(p, li) {
    font-size: var(--isp-public-body) !important;
    line-height: 1.7 !important;
}
html body .isp-product-description--custom .is-pen-desc :where(h2, .is-pen-title, .is-pen-section-title) {
    color: var(--isp-root-navy-dark, #273c4d) !important;
    font-size: var(--isp-public-h2) !important;
    line-height: 1.22 !important;
}
html body .isp-product-description--custom .is-pen-desc :where(h3,h4) {
    color: var(--isp-root-navy-dark, #273c4d) !important;
    font-size: var(--isp-public-h3) !important;
    line-height: 1.4 !important;
}
html body .isp-product-description--custom .is-pen-hero {
    border-color: var(--isp-root-line, #d8e2e3) !important;
    border-radius: var(--isp-public-card-radius) !important;
    background: var(--isp-public-hero-bg) !important;
    box-shadow: var(--isp-root-shadow-sm, 0 7px 20px rgba(31,58,75,.045)) !important;
}
html body .isp-product-description--custom .is-pen-tag {
    background: var(--isp-root-teal-soft, #eaf7f5) !important;
    color: var(--isp-root-teal-dark, #00746f) !important;
    border-color: #cbe4df !important;
}
html body .isp-product-description--custom .is-pen-card,
html body .isp-product-description--custom .is-pen-faq details {
    border-color: var(--isp-root-line, #d8e2e3) !important;
    border-radius: var(--isp-public-card-radius) !important;
    box-shadow: var(--isp-root-shadow-sm, 0 7px 20px rgba(31,58,75,.045)) !important;
}
html body .isp-product-description--custom .is-pen-feature-box,
html body .isp-product-description--custom .is-pen-cta {
    background: linear-gradient(145deg,
        var(--isp-root-dark-surface-start, #13364f) 0%,
        var(--isp-root-dark-surface-end, #1d5366) 100%) !important;
    border-radius: var(--isp-public-card-radius) !important;
    box-shadow: var(--isp-root-shadow-sm, 0 7px 20px rgba(31,58,75,.045)) !important;
}
html body .isp-product-description--custom .is-pen-feature-box :where(h2,h3,h4,p,li),
html body .isp-product-description--custom .is-pen-cta :where(h2,h3,h4,p,li) {
    color: var(--isp-root-on-dark, #fff) !important;
}
html body .isp-product-description--custom .is-pen-btn {
    color: var(--isp-root-teal-dark, #00746f) !important;
}

/* Exact corporate-accent normalization for older literal-colour families. */
html body .isp-smart-search-page :where(.isp-search-kicker, .isp-search-correction a, .isp-search-open-link),
html body .isp-catalogue-page :where(.isp-catalogue-kicker, .isp-catalogue-action),
html body .isp-exhibition-category-page :where(.isp-exhibition-category-kicker, .isp-exhibition-category-label, .isp-exhibition-category-action) {
    color: var(--isp-root-teal-dark, #00746f) !important;
}
html body .isp-smart-search-page :where(.isp-search-primary-link, .isp-search-page-numbers a.is-current),
html body .ecs-wrap .ecs-primary {
    border-color: var(--isp-root-teal, #008f87) !important;
    background: var(--isp-root-teal, #008f87) !important;
    color: #fff !important;
}

/* --------------------------------------------------------------------------
   FORMS / CONTROLS — consistent typography, geometry and focus.
   -------------------------------------------------------------------------- */
html body :where(
    .isp-enquiry-page,
    .isp-product-page,
    .isp-category-faq-page,
    .isp-smart-search-page,
    .isp-warranty-page,
    .isp-warranty-public-page,
    .ind-cart-pro
) :where(input, select, textarea, button) {
    font-family: var(--isp-root-font, 'Poppins', Arial, Helvetica, sans-serif) !important;
}

html body :where(
    .isp-enquiry-page,
    .isp-product-page,
    .isp-category-faq-page,
    .isp-smart-search-page,
    .isp-warranty-page,
    .isp-warranty-public-page,
    .ind-cart-pro
) :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    border-color: var(--isp-root-line-strong, #c7d5d7) !important;
    border-radius: var(--isp-root-radius-sm, 9px) !important;
    color: var(--isp-root-text, #263746) !important;
}

html body :where(
    .isp-enquiry-page,
    .isp-product-page,
    .isp-category-faq-page,
    .isp-smart-search-page,
    .isp-warranty-page,
    .isp-warranty-public-page,
    .ind-cart-pro
) :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea):focus {
    border-color: var(--isp-root-teal, #008f87) !important;
    outline: 0 !important;
    box-shadow: 0 0 0 3px rgba(0,143,135,.12) !important;
}

/* --------------------------------------------------------------------------
   BLOG EXCEPTION
   Only outer width/chrome alignment belongs to the Page Standard. Authored
   article interiors remain governed by the Blog's own styles/content CSS.
   -------------------------------------------------------------------------- */
html body.isp-blog-site-body .blog-page {
    width: min(var(--isp-root-content-max, 1190px), calc(100% - var(--isp-public-gutter))) !important;
    max-width: var(--isp-root-content-max, 1190px) !important;
}

html body.isp-blog-site-body .blog-page .blog-article {
    width: 100% !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* --------------------------------------------------------------------------
   MOBILE / TABLET
   -------------------------------------------------------------------------- */
@media (max-width: 900px) {
    html:root {
        --isp-public-gutter: 28px;
        --isp-root-content-gutter: 28px;
    }
}

@media (max-width: 760px) {
    html:root {
        --isp-public-h1: 32px;
        --isp-public-h2: 24px;
        --isp-public-h3: 15px;
        --isp-public-body: var(--isp-root-body-size, 14px);
        --isp-public-small: var(--isp-root-small-size, 12px);
        --isp-public-hero-radius: 14px;
        --isp-public-card-radius: 14px;
    }

    html body .container .isp-category-page,
    html body .container .isp-subcategory-page,
    html body .container .isp-product-page,
    html body .container .isp-category-faq-page,
    html body .container .isp-enquiry-page {
        padding-top: 10px !important;
        padding-bottom: 34px !important;
    }

    html body .container .isp-category-page .isp-category-hero,
    html body .container .isp-subcategory-page .isp-subcategory-hero,
    html body .container .isp-category-faq-page .isp-category-faq-hero,
    html body .container .isp-enquiry-page .isp-enquiry-hero,
    html body .isp-products-directory-page .isp-products-directory-hero,
    html body .isp-exhibition-page .isp-exhibition-hero,
    html body .isp-testimonial-page .isp-testimonial-hero,
    html body .isp-warranty-page .isp-warranty-hero,
    html body .isp-info-page .isp-info-hero,
    html body .isp-root-page .isp-root-hero,
    html body .isp-warranty-public-page .isp-warranty-public-head,
    html body .ecs-wrap .ecs-hero {
        padding: 26px 20px !important;
        border-radius: 14px !important;
    }

    html body .isp-catalogue-page .isp-catalogue-intro,
    html body .isp-exhibition-category-page .isp-exhibition-category-intro,
    html body .ind-cart-pro .ind-cart-top {
        padding: 22px 18px !important;
        border-radius: 14px !important;
    }

    /* Technical tables scroll as a unit instead of overflowing the viewport. */
    html body :where(
        .isp-category-description,
        .isp-description-content,
        .isp-page-body,
        .isp-product-description,
        .isp-category-faq-answer-inner,
        .isp-warranty-public-body,
        .ecs-body
    ) table:not(.is-flagship__variant-table):not(.is91161-table):not(.is-spec-table):not(.is-pen-table) {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
    }

    html body .isp-product-description--custom :where(
        .is-flagship__table-wrap,
        .is91161-table-wrap,
        .is-table-wrapper,
        .is-pen-table-wrap
    ) {
        border-radius: 10px !important;
    }

    html body .ecs-wrap .ecs-body {
        padding: 24px 18px 28px !important;
    }
}

@media (max-width: 430px) {
    html:root {
        --isp-public-gutter: 24px;
        --isp-root-content-gutter: 24px;
        --isp-public-h1: 30px;
    }

    html body .container .isp-category-page .isp-category-hero,
    html body .container .isp-subcategory-page .isp-subcategory-hero,
    html body .container .isp-category-faq-page .isp-category-faq-hero,
    html body .container .isp-enquiry-page .isp-enquiry-hero,
    html body .isp-products-directory-page .isp-products-directory-hero,
    html body .isp-exhibition-page .isp-exhibition-hero,
    html body .isp-testimonial-page .isp-testimonial-hero,
    html body .isp-warranty-page .isp-warranty-hero,
    html body .isp-info-page .isp-info-hero,
    html body .isp-root-page .isp-root-hero,
    html body .isp-warranty-public-page .isp-warranty-public-head,
    html body .ecs-wrap .ecs-hero {
        padding-left: 18px !important;
        padding-right: 18px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    html body .isp-category-page *,
    html body .isp-subcategory-page *,
    html body .isp-product-page *,
    html body .isp-category-faq-page *,
    html body .isp-enquiry-page *,
    html body .isp-smart-search-page *,
    html body .isp-warranty-page *,
    html body .isp-warranty-public-page * {
        scroll-behavior: auto !important;
    }
}
