/**
 * Responsive rules mapped from Bootstrap 3/Helix breakpoints without runtime dependency.
 */

@media (max-width: 1199px) {
    :root {
        --container-max: 970px;
    }

    .site-navigation .mod-menu > li > a,
    .site-navigation .mod-menu > li > span,
    .site-navigation-inner > div > ul > li > a,
    .site-navigation-inner > div > ul > li > span {
        padding-inline: 10px;
        letter-spacing: 0.5px;
    }
}

@media (max-width: 1199px) {
    :root {
        --container-max: 750px;
    }

    .header-grid {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .site-navigation {
        grid-column: 1 / -1;
        display: block;
        justify-self: stretch;
        overflow-y: auto;
        color: var(--color-text);
        background: var(--color-surface);
    }

    .js .site-navigation {
        position: fixed;
        z-index: 1000;
        inset: var(--header-height) 0 0;
        display: none;
    }

    .js .site-navigation.is-open {
        display: block;
    }

    .site-navigation-inner {
        width: min(100% - var(--gutter), var(--container-max));
        margin-inline: auto;
        padding-block: 20px 60px;
    }

    .site-navigation .mod-menu,
    .site-navigation ul {
        display: block;
        padding: 0;
        margin: 0;
        list-style: none;
    }

    .site-navigation li {
        position: relative;
        border-bottom: 1px solid var(--color-border);
    }

    .site-navigation .mod-menu > li > a,
    .site-navigation .mod-menu > li > span,
    .site-navigation a,
    .site-navigation .nav-header {
        display: block;
        height: auto;
        padding: 10px 52px 10px 20px;
        color: var(--color-text);
        font-size: 14px;
        letter-spacing: normal;
        line-height: 28px;
        text-transform: none;
    }

    .site-navigation li > ul,
    .site-navigation li:hover > ul,
    .site-navigation li:focus-within > ul,
    .site-navigation li.submenu-open > ul {
        position: static;
        display: none;
        width: auto;
        max-height: none;
        padding: 0 0 0 20px;
        overflow: visible;
        box-shadow: none;
        animation: none;
    }

    .site-navigation li.mobile-submenu-open > ul {
        display: block;
    }

    .site-navigation li > ul.show-menu,
    .site-navigation li > ul[aria-hidden="false"] {
        display: block;
    }

    .submenu-toggle {
        display: inline-flex;
    }

    .mobile-nav-toggle {
        display: inline-flex;
    }

    html:not(.js) .site-header,
    html:not(.js) .header-grid {
        height: auto;
    }

    html:not(.js) .mobile-nav-toggle {
        display: none;
    }

    html:not(.js) .site-navigation li > ul {
        display: block;
    }

    .main-grid.has-left,
    .main-grid.has-right,
    .main-grid.has-left.has-right {
        grid-template-columns: minmax(0, 1fr);
    }

    .bottom-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .container {
        width: auto;
        margin-inline: 15px;
        padding-inline: 0;
    }

    .site-services {
        display: none;
    }

    .home-welcome-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 30px;
        padding-block: 38px;
    }

    .home-welcome-media img {
        max-height: 440px;
        object-fit: cover;
        object-position: center top;
    }

    .psm-slide {
        grid-template-columns: minmax(0, 1fr);
    }

    .psm-slide-copy {
        min-height: 260px;
        padding: 30px 24px 78px;
    }

    .psm-slide-media {
        order: -1;
        height: auto;
    }

    .psm-slide-media img {
        height: auto;
        aspect-ratio: 7 / 3;
    }

    .psm-slider-controls {
        right: 14px;
        bottom: 14px;
    }

    .com-contact__address,
    .contact-extra {
        grid-template-columns: minmax(0, 1fr);
    }

    .com-contact__address dt {
        margin-top: 8px;
    }

    .com-contact__address dd {
        grid-column: auto;
    }

    .contact-map {
        grid-column: auto;
    }

    .contact-map-actions {
        flex-direction: column;
    }

    .contact-map-frame iframe {
        min-height: 360px;
    }

    .topbar-grid {
        grid-template-columns: 1fr;
        gap: 4px;
        text-align: center;
    }

    .topbar-right {
        text-align: center;
    }

    .prefooter-callout {
        display: block;
        text-align: center;
    }

    .prefooter-callout .button {
        margin-top: 20px;
    }

    .site-footer > .container {
        grid-template-columns: minmax(0, 1fr);
    }

    .sp-page-title {
        min-height: 110px;
        padding-block: 24px;
        background-attachment: scroll;
    }

    .category-preview-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 768px) {

    .medical-container {
        flex-basis: 50%;
    }

    .rowered,
    .image_promo_container,
    .container_slide_main {
        flex-direction: column;
    }

    .image_promo_container {
        padding: 30px 0;
    }

    table.responsive,
    table.responsive tbody,
    table.responsive tr,
    table.responsive td {
        display: block;
        width: 100%;
    }

    table.responsive thead {
        display: none;
    }
}

@media (max-width: 500px) {
    :root {
        --gutter: 24px;
    }

    .site-brand img {
        max-width: min(100%, 260px);
    }

    .medical-container,
    .convenzioni-inner {
        flex-basis: 100%;
    }

    .bottom-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}
