/*
 * IndoSurgicals Desktop Product Detail — Patch 27 v1.0
 * --------------------------------------------------------------------------
 * Scope: desktop only (>= 901px).
 * Purpose: make the product-detail page feel like a precise, established
 * medical-manufacturer catalogue and quotation workspace while preserving
 * every existing product, variant, gallery, cart and description behaviour.
 *
 * IMPORTANT:
 * - No mobile rules are changed here.
 * - No product-description content is rewritten.
 * - Description blocks that contain their own embedded CSS remain sovereign.
 * - Advanced variants, linked component products and legacy selectors retain
 *   their existing DOM, IDs and JavaScript hooks.
 */

@media (min-width: 901px) {
    html body .isp-product-page {
        width: 100%;
        padding: 20px 0 46px;
        color: var(--isp-ds-text, #263746);
        background: transparent;
    }

    html body .isp-product-page .isp-product-shell {
        width: min(var(--isp-ds-content-max, 1200px), 100%);
        margin: 0 auto;
    }

    /* ---------- Product hero ---------- */
    html body .isp-product-page .isp-product-hero {
        display: grid;
        grid-template-columns: minmax(0, 1.06fr) minmax(390px, .94fr);
        gap: 26px;
        align-items: start;
    }

    html body .isp-product-page .isp-product-gallery-card,
    html body .isp-product-page .isp-product-summary {
        padding: 0;
    }

    html body .isp-product-page .isp-product-gallery-card {
        position: sticky;
        top: 72px;
        align-self: start;
    }

    html body .isp-product-page .isp-product-gallery {
        padding: 18px;
        border: 1px solid #d6e2e4;
        border-radius: 20px;
        background: #fff;
        box-shadow: var(--isp-ds-shadow-sm, 0 8px 24px rgba(39, 60, 77, .07));
    }

    html body .isp-product-page .isp-gallery-stage,
    html body .isp-product-page .isp-main-image-link,
    html body .isp-product-page .isp-gallery-empty {
        min-height: clamp(440px, 38vw, 540px);
    }

    html body .isp-product-page .isp-gallery-stage {
        border-radius: 15px;
        background: linear-gradient(145deg, #fff 0%, #fbfdfd 58%, #f5f9f8 100%);
    }

    html body .isp-product-page .isp-main-image-link img {
        width: 100% !important;
        max-width: 620px;
        height: auto !important;
        max-height: 520px;
        padding: 14px;
        object-fit: contain;
    }

    html body .isp-product-page .isp-image-zoom-hint {
        right: 14px;
        bottom: 14px;
        min-height: 34px;
        display: inline-flex;
        align-items: center;
        padding: 7px 12px;
        border: 1px solid rgba(39, 60, 77, .12);
        border-radius: 999px;
        background: rgba(255, 255, 255, .94);
        color: var(--isp-ds-navy, #405365);
        font-size: 11px;
        font-weight: 650;
        box-shadow: 0 5px 18px rgba(39, 60, 77, .08);
    }

    html body .isp-product-page .isp-gallery-thumbs {
        gap: 9px;
        padding: 13px 1px 1px;
    }

    html body .isp-product-page .isp-gallery-thumb {
        flex: 0 0 78px;
        width: 78px;
        height: 78px;
        padding: 5px;
        border-color: #d8e3e4;
        border-radius: 10px;
        background: #fff;
        box-shadow: none;
    }

    html body .isp-product-page .isp-gallery-thumb:hover,
    html body .isp-product-page .isp-gallery-thumb:focus,
    html body .isp-product-page .isp-gallery-thumb.is-active {
        border-color: var(--isp-ds-teal, #008f87);
        box-shadow: 0 0 0 3px rgba(0, 143, 135, .10);
        transform: none;
    }

    /* ---------- Product identity ---------- */
    html body .isp-product-page .isp-product-summary {
        min-width: 0;
        padding-top: 2px;
    }

    html body .isp-product-page .isp-product-eyebrow {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        margin: 0 0 7px;
        color: var(--isp-ds-teal-dark, #00746f);
        font-size: 11px;
        font-weight: 750;
        letter-spacing: .11em;
    }

    html body .isp-product-page .isp-product-eyebrow::before {
        content: "";
        width: 22px;
        height: 2px;
        border-radius: 999px;
        background: var(--isp-ds-teal, #008f87);
    }

    html body .isp-product-page .isp-product-summary h1 {
        max-width: 720px;
        margin: 0 0 15px !important;
        color: var(--isp-ds-navy-dark, #273c4d) !important;
        font-size: clamp(31px, 2.65vw, 42px) !important;
        line-height: 1.13 !important;
        font-weight: 750 !important;
        letter-spacing: -.03em;
    }

    html body .isp-product-page .isp-service-points {
        display: flex;
        flex-wrap: wrap;
        gap: 7px;
        margin: 0 0 15px;
    }

    html body .isp-product-page .isp-service-points span {
        min-height: 34px;
        flex: 0 1 auto;
        padding: 7px 11px 7px 30px;
        border: 1px solid #d4e7e3;
        border-radius: 999px;
        background: #f5faf9;
        color: #385163;
        font-size: 10.75px;
        line-height: 1.25;
        font-weight: 650;
    }

    html body .isp-product-page .isp-service-points span::before {
        left: 10px;
        width: 14px;
        height: 14px;
        font-size: 8px;
        box-shadow: none;
    }

    /* ---------- Quotation workspace ---------- */
    html body .isp-product-page .isp-quote-card {
        overflow: hidden;
        border: 1px solid #cfdedf;
        border-top: 0;
        border-radius: 18px;
        background: #fff;
        box-shadow: var(--isp-ds-shadow-md, 0 14px 36px rgba(39, 60, 77, .09));
    }

    html body .isp-product-page .isp-quote-card::before {
        content: "";
        display: block;
        height: 4px;
        background: linear-gradient(90deg, var(--isp-ds-teal, #008f87), var(--isp-ds-mint, #63c4ad));
    }

    html body .isp-product-page .isp-quote-card::after {
        width: 120px;
        height: 120px;
        background: radial-gradient(circle at 100% 0%, rgba(99, 196, 173, .16), rgba(99, 196, 173, 0) 68%);
    }

    html body .isp-product-page .isp-quote-heading {
        min-height: 72px;
        padding: 15px 18px 13px;
        border-bottom: 1px solid #e0e8e9;
        background: #fff;
    }

    html body .isp-product-page .isp-quote-kicker {
        font-size: 9.5px;
        letter-spacing: .11em;
    }

    html body .isp-product-page .isp-quote-heading h2 {
        margin-top: 2px !important;
        color: var(--isp-ds-navy-dark, #273c4d) !important;
        font-size: 20px !important;
        line-height: 1.2 !important;
        font-weight: 750 !important;
    }

    html body .isp-product-page .isp-quote-badge {
        min-height: 28px;
        display: inline-flex;
        align-items: center;
        padding: 5px 9px;
        border-color: #c9e6df;
        background: #edf9f6;
        color: #087b74;
        font-size: 9px;
        font-weight: 750;
    }

    html body .isp-product-page .isp-product-meta--inside-quote {
        gap: 7px;
        padding: 10px 18px 0;
    }

    html body .isp-product-page .isp-product-meta--inside-quote > span {
        min-height: 28px;
        padding: 5px 9px;
        border: 1px solid #d8e6e3;
        border-radius: 7px;
        background: #f7fbfa;
        color: #607481;
        font-size: 11px;
        line-height: 1.2;
    }

    html body .isp-product-page .isp-product-meta--inside-quote strong {
        color: #486171;
        font-size: 9px;
        font-weight: 750;
        letter-spacing: .06em;
    }

    html body .isp-product-page .isp-quote-card form {
        padding: 16px 18px 17px;
        background: linear-gradient(180deg, #fbfdfd 0%, #fff 100%);
    }

    html body .isp-product-page .isp-variant-grid,
    html body .isp-product-page .isp-advanced-variant-grid,
    html body .isp-product-page .isp-linked-compact-grid {
        gap: 10px 11px;
        margin-bottom: 12px;
    }

    html body .isp-product-page .isp-form-field label {
        margin-bottom: 5px;
        color: #415b6c;
        font-size: 11.5px;
        line-height: 1.3;
        font-weight: 700;
    }

    html body .isp-product-page .isp-form-field select,
    html body .isp-product-page .isp-form-field input {
        height: 42px !important;
        padding: 0 11px !important;
        border-color: #cbdadc !important;
        border-radius: 8px !important;
        color: #263746 !important;
        font-size: 13px !important;
    }

    html body .isp-product-page .isp-form-field select:focus,
    html body .isp-product-page .isp-form-field input:focus {
        border-color: var(--isp-ds-teal, #008f87) !important;
        box-shadow: 0 0 0 3px rgba(0, 143, 135, .11) !important;
    }

    html body .isp-product-page .isp-advanced-selector {
        margin-bottom: 12px;
        padding: 13px;
        border-color: #d2e4e1;
        border-radius: 11px;
        background: #f8fcfb;
    }

    html body .isp-product-page .isp-advanced-selector-heading {
        margin-bottom: 11px;
        padding-bottom: 9px;
        border-bottom-color: #dfecea;
    }

    html body .isp-product-page .isp-advanced-selector-heading h3 {
        font-size: 15px !important;
        font-weight: 750 !important;
    }

    html body .isp-product-page .isp-selector-kicker {
        font-size: 9px;
    }

    html body .isp-product-page .isp-selector-status {
        min-height: 25px;
        padding: 4px 8px;
        font-size: 8.5px;
    }

    html body .isp-product-page .isp-selected-variant,
    html body .isp-product-page .isp-linked-compact-summary {
        padding: 9px 10px;
        border-color: #d6e5e2;
        border-radius: 8px;
        background: #fff;
    }

    html body .isp-product-page .isp-selected-variant > strong,
    html body .isp-product-page .isp-linked-compact-summary > strong {
        font-size: 12px;
    }

    html body .isp-product-page .isp-quote-actions {
        grid-template-columns: 105px minmax(0, 1fr);
        gap: 10px;
        margin-top: 1px;
    }

    html body .isp-product-page .isp-primary-button {
        min-height: 42px;
        padding: 10px 15px;
        border: 1px solid var(--isp-ds-teal, #008f87);
        border-radius: 8px;
        background: var(--isp-ds-teal, #008f87);
        color: #fff;
        font-size: 12px;
        line-height: 1.2;
        font-weight: 750;
        letter-spacing: .015em;
        text-transform: none;
        box-shadow: 0 7px 18px rgba(0, 143, 135, .18);
    }

    html body .isp-product-page .isp-primary-button:hover,
    html body .isp-product-page .isp-primary-button:focus {
        border-color: var(--isp-ds-teal-dark, #00746f);
        background: var(--isp-ds-teal-dark, #00746f);
        box-shadow: 0 9px 22px rgba(0, 116, 111, .22);
    }

    html body .isp-product-page .isp-primary-button:disabled,
    html body .isp-product-page .isp-primary-button[aria-disabled="true"] {
        border-color: #afbbbb;
        background: #b8c2c2;
        box-shadow: none;
    }

    html body .isp-product-page .isp-quote-note {
        margin-top: 11px;
        padding: 8px 10px;
        border-left-width: 2px;
        background: #f7faf9;
        color: #6a7c87;
        font-size: 10.5px;
        line-height: 1.5;
    }

    html body .isp-product-page .isp-contact-strip {
        min-height: 57px;
        gap: 12px;
        padding: 11px 18px;
        background: linear-gradient(110deg, #2c4455 0%, #355466 100%);
    }

    html body .isp-product-page .isp-contact-strip small {
        margin-bottom: 1px;
        color: #dce7ea;
        font-size: 9.5px;
    }

    html body .isp-product-page .isp-contact-strip strong {
        font-size: 10.75px;
        font-weight: 650;
    }

    html body .isp-product-page .isp-contact-strip a {
        min-height: 34px;
        padding: 6px 11px;
        border-radius: 7px;
        font-size: 11px;
        font-weight: 700;
    }

    /* ---------- Product information ---------- */
    html body .isp-product-page .isp-product-details-section {
        margin: 28px 0 0;
        padding: 32px 34px 36px;
        border: 1px solid #d8e3e5;
        border-radius: 20px;
        background: #fff;
        box-shadow: var(--isp-ds-shadow-xs, 0 2px 8px rgba(39, 60, 77, .05));
    }

    html body .isp-product-page .isp-section-heading {
        margin-bottom: 22px;
        padding-bottom: 16px;
        border-bottom: 1px solid #e1e8ea;
    }

    html body .isp-product-page .isp-section-heading > span {
        color: var(--isp-ds-teal-dark, #00746f);
        font-size: 10px;
        letter-spacing: .11em;
    }

    html body .isp-product-page .isp-section-heading h2 {
        margin-top: 4px !important;
        color: var(--isp-ds-navy-dark, #273c4d) !important;
        font-size: 27px !important;
        line-height: 1.2 !important;
        font-weight: 750 !important;
        letter-spacing: -.02em;
    }

    html body .isp-product-page .isp-product-description {
        color: #344b5b;
        font-size: 14.5px;
        line-height: 1.74;
    }

    /* Generic descriptions receive a dependable shared reading system.
       Descriptions containing embedded CSS are intentionally left alone. */
    html body .isp-product-page .isp-product-description:not(.isp-product-description--custom) > :first-child {
        margin-top: 0 !important;
    }

    html body .isp-product-page .isp-product-description:not(.isp-product-description--custom) > :last-child {
        margin-bottom: 0 !important;
    }

    html body .isp-product-page .isp-product-description:not(.isp-product-description--custom) h2,
    html body .isp-product-page .isp-product-description:not(.isp-product-description--custom) h3,
    html body .isp-product-page .isp-product-description:not(.isp-product-description--custom) h4 {
        color: var(--isp-ds-navy-dark, #273c4d) !important;
        font-family: var(--isp-ds-font-sans, 'Poppins', Arial, sans-serif) !important;
        font-weight: 700 !important;
        text-align: left !important;
        letter-spacing: -.015em;
    }

    html body .isp-product-page .isp-product-description:not(.isp-product-description--custom) h2 {
        margin: 28px 0 12px !important;
        font-size: 23px !important;
        line-height: 1.25 !important;
    }

    html body .isp-product-page .isp-product-description:not(.isp-product-description--custom) h3 {
        margin: 24px 0 10px !important;
        font-size: 19px !important;
        line-height: 1.3 !important;
    }

    html body .isp-product-page .isp-product-description:not(.isp-product-description--custom) h4 {
        margin: 20px 0 8px !important;
        font-size: 16px !important;
        line-height: 1.35 !important;
    }

    html body .isp-product-page .isp-product-description:not(.isp-product-description--custom) p {
        margin: 0 0 14px;
    }

    html body .isp-product-page .isp-product-description:not(.isp-product-description--custom) strong {
        color: #263f50;
    }

    html body .isp-product-page .isp-product-description:not(.isp-product-description--custom) a {
        color: var(--isp-ds-teal-dark, #00746f);
        text-decoration-thickness: 1px;
        text-underline-offset: 2px;
    }

    html body .isp-product-page .isp-product-description:not(.isp-product-description--custom) table {
        width: 100%;
        border-collapse: separate !important;
        border-spacing: 0 !important;
        overflow: hidden;
        border: 1px solid #d7e2e4 !important;
        border-radius: 10px;
        background: #fff;
        font-size: 13px;
    }

    html body .isp-product-page .isp-product-description:not(.isp-product-description--custom) table th,
    html body .isp-product-page .isp-product-description:not(.isp-product-description--custom) table td {
        padding: 10px 12px !important;
        border: 0 !important;
        border-right: 1px solid #e2e9ea !important;
        border-bottom: 1px solid #e2e9ea !important;
        vertical-align: top;
    }

    html body .isp-product-page .isp-product-description:not(.isp-product-description--custom) table th {
        background: #f0f6f5 !important;
        color: #2e4a5a !important;
        font-weight: 700 !important;
    }

    html body .isp-product-page .isp-product-description:not(.isp-product-description--custom) table tr:last-child > * {
        border-bottom: 0 !important;
    }

    html body .isp-product-page .isp-product-description:not(.isp-product-description--custom) table tr > *:last-child {
        border-right: 0 !important;
    }

    /* ---------- Return path ---------- */
    html body .isp-product-page .isp-category-return {
        justify-content: flex-start;
        margin-top: 18px;
    }

    html body .isp-product-page .isp-category-return a {
        min-height: 40px;
        gap: 7px;
        padding: 8px 13px;
        border-color: #d3e0e2;
        border-radius: 8px;
        background: #fff;
        color: #385365 !important;
        font-size: 11.5px;
        font-weight: 700;
        box-shadow: none;
    }

    html body .isp-product-page .isp-category-return a:hover,
    html body .isp-product-page .isp-category-return a:focus {
        border-color: #9dcfc8;
        background: #f5faf9;
        box-shadow: 0 7px 18px rgba(39, 60, 77, .06);
        transform: none;
    }

    /* ---------- Lightbox alignment with the desktop design system ---------- */
    html body .isp-product-lightbox__image {
        border-width: 6px;
        border-radius: 8px;
    }

    html body .isp-product-lightbox__close,
    html body .isp-product-lightbox__arrow {
        font-family: Arial, Helvetica, sans-serif;
    }

    /* Compact desktop / laptop protection. */
    @media (max-width: 1110px) {
        html body .isp-product-page .isp-product-hero {
            grid-template-columns: minmax(0, 1fr) minmax(350px, .92fr);
            gap: 20px;
        }

        html body .isp-product-page .isp-product-summary h1 {
            font-size: clamp(29px, 3.2vw, 36px) !important;
        }

        html body .isp-product-page .isp-service-points {
            gap: 6px;
        }

        html body .isp-product-page .isp-service-points span {
            padding-right: 9px;
            font-size: 9.75px;
        }

        html body .isp-product-page .isp-gallery-stage,
        html body .isp-product-page .isp-main-image-link,
        html body .isp-product-page .isp-gallery-empty {
            min-height: 410px;
        }

        html body .isp-product-page .isp-product-details-section {
            padding: 28px 30px 32px;
        }
    }

    @media (max-width: 980px) {
        html body .isp-product-page .isp-product-hero {
            grid-template-columns: minmax(0, 1fr) minmax(330px, .9fr);
            gap: 17px;
        }

        html body .isp-product-page .isp-gallery-stage,
        html body .isp-product-page .isp-main-image-link,
        html body .isp-product-page .isp-gallery-empty {
            min-height: 365px;
        }

        html body .isp-product-page .isp-gallery-thumb {
            flex-basis: 68px;
            width: 68px;
            height: 68px;
        }

        html body .isp-product-page .isp-product-summary h1 {
            font-size: 29px !important;
        }

        html body .isp-product-page .isp-service-points span {
            min-height: 31px;
            padding: 6px 8px 6px 28px;
            font-size: 9px;
        }

        html body .isp-product-page .isp-advanced-selector {
            padding: 11px;
        }

        html body .isp-product-page .isp-linked-compact-grid {
            grid-template-columns: 1fr;
        }

        html body .isp-product-page .isp-form-field select,
        html body .isp-product-page .isp-form-field input {
            font-size: 12px !important;
        }
    }
}
