/* IndoSurgicals — Accessibility & Final Mobile Standards v1.0
   Public frontend safety layer. No business logic or desktop redesign. */

/* Keyboard focus: visible, high-contrast and consistent. */
:where(a[href], button, input, select, textarea, summary, [role="button"], [tabindex]:not([tabindex="-1"])):focus-visible {
    outline: 3px solid #006f69 !important;
    outline-offset: 2px !important;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto !important;
    }

    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}

@media only screen and (max-width: 760px) {
    html {
        -webkit-text-size-adjust: 100%;
        text-size-adjust: 100%;
    }

    /* Media must never force the page wider than the viewport. */
    img,
    video,
    canvas,
    svg {
        max-width: 100%;
    }

    img,
    video {
        height: auto;
    }

    iframe,
    object,
    embed {
        max-width: 100%;
    }

    pre {
        max-width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .container,
    .text_container,
    main,
    section,
    article,
    form,
    fieldset,
    .isp-site-search,
    .isp-home,
    .isp-product-page,
    .isp-information-page {
        min-width: 0;
    }

    /* iPhone/Safari: 16px text fields avoid automatic focus zoom. */
    input[type="text"],
    input[type="email"],
    input[type="tel"],
    input[type="search"],
    input[type="url"],
    input[type="password"],
    input[type="number"],
    input[type="date"],
    input[type="time"],
    input[type="datetime-local"],
    select,
    textarea {
        font-size: 16px !important;
    }

    input[type="text"],
    input[type="email"],
    input[type="tel"],
    input[type="search"],
    input[type="url"],
    input[type="password"],
    input[type="number"],
    input[type="date"],
    input[type="time"],
    input[type="datetime-local"] {
        min-height: 44px;
    }

    input::placeholder,
    textarea::placeholder {
        color: #687888 !important;
        opacity: 1 !important;
    }

    /* Native controls and disclosure controls get a safe touch floor. */
    button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    select,
    summary {
        min-height: 44px;
    }

    /* Shared mobile chrome. */
    #menu .isp-mobile-menu-toggle,
    #menu .isp-mobile-quick-quote,
    .header_container .isp-enquiry-cart,
    .isp-search-form button {
        min-height: 44px !important;
    }

    /* Small brand/accent labels need normal-text contrast on white. */
    .isp-home-kicker,
    .isp-search-kicker,
    .isp-catalogue-kicker,
    .isp-exhibition-category-kicker {
        color: #087c73 !important;
    }

    /* Primary mobile actions: darker brand teal for readable white labels. */
    .isp-search-form button,
    #menu .isp-mobile-quick-quote,
    .isp-home-button-primary,
    .isp-primary-button,
    .isp-enquiry-submit-copy button,
    .ind-cart-pro .ind-submit,
    .isp-warranty-primary-link,
    .isp-warranty-next,
    .isp-warranty-public-button:not(.isp-warranty-public-button--secondary) {
        border-color: #007f78 !important;
        background-color: #007f78 !important;
        color: #fff !important;
    }

    .isp-home-button-primary,
    .isp-primary-button,
    .isp-enquiry-submit-copy button,
    .ind-cart-pro .ind-submit {
        background-image: linear-gradient(135deg, #00857d 0%, #006f69 100%) !important;
    }

    /* Common page-level paging/actions should remain finger-friendly. */
    .paging a,
    .pagination a,
    .pagination button,
    .isp-catalogue-action,
    .isp-exhibition-category-action,
    .isp-search-view,
    .isp-search-filter {
        min-height: 44px;
    }

    /* Long identifiers/URLs should wrap rather than create page overflow. */
    [class*="sku"],
    [class*="serial"],
    .isp-warranty-summary td,
    .isp-search-meta,
    .isp-product-meta {
        overflow-wrap: anywhere;
        word-break: normal;
    }
}

/* Narrow-phone guardrails verified against the 320/360 class of devices. */
@media only screen and (max-width: 340px) {
    .isp-header-logo img {
        max-width: 136px !important;
    }

    #menu .isp-mobile-nav-row {
        gap: 8px !important;
    }

    #menu .isp-mobile-quick-quote {
        padding-left: 9px !important;
        padding-right: 9px !important;
        font-size: 12px !important;
    }

    .isp-search-form button {
        min-width: 78px;
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
}
