/**
 * altaris-responsive.css
 * Standardized responsive system — desktop-first cascade.
 * Breakpoints: Laptop <=1024px / Tablet <=768px / Mobile <=480px.
 * Desktop (1025px+) uses the un-mediated base styles in altaris.css.
 */

/* ============================================================
   LAPTOP  (max-width: 1024px)
   ============================================================ */
@media (max-width: 1024px) {

    .product-grid--related {
        grid-template-columns: repeat(3, calc((100% - 3 * 18px) / 4));
    }

    .product-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .contact-form-wrap {
        grid-template-columns: 1fr 300px;
        gap: 48px;
    }

    .container {
        padding: 0 24px;
    }

    .hero-headline {
        font-size: 44px;
    }

    .page-hero-title {
        font-size: 42px;
    }

    .section-title {
        font-size: 36px;
    }

    .footer-grid {
        grid-template-columns: 1fr 1fr 1fr;
        gap: 32px;
    }

    .footer-brand {
        grid-column: 1 / -1;
    }

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

    .service-card:last-child:nth-child(3n+1) {
        grid-column: unset;
    }

    .service-card:last-child:nth-child(2n+1) {
        grid-column: 1 / -1;
        max-width: calc(50% - 10px);
        margin-left: auto;
        margin-right: auto;
    }

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

    .industry-card:last-child:nth-child(3n+1) {
        grid-column: unset;
    }

    .industry-card:last-child:nth-child(2n+1) {
        grid-column: 1 / -1;
        max-width: calc(50% - 10px);
        margin-left: auto;
        margin-right: auto;
    }

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

    .material-card:last-child:nth-child(3n+1) {
        grid-column: unset;
    }

    .material-card:last-child:nth-child(2n+1) {
        grid-column: 1 / -1;
        max-width: calc(50% - 10px);
        margin-left: auto;
        margin-right: auto;
    }

    .shop-categories {
        grid-template-columns: repeat(3, 1fr);
    }

    .certs-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .trustbar-grid {
        gap: 16px;
    }

    .trust-stat-val {
        font-size: 28px;
    }

    .trust-stat-lbl {
        font-size: 11px;
    }

    .growth-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .case-featured {
        grid-template-columns: 1fr;
    }

    .product-hero-grid {
        grid-template-columns: 1fr;
    }

    /* PDP buybox — intelligent responsive wrapping (mobile / iPad / Surface /
       hybrid widths). Buttons sit inline next to the quantity counter while
       there is room, and wrap to their own line only when space runs out, via
       flex-wrap + flex-basis thresholds. The form is width-capped so the row
       never stretches edge-to-edge on wide tablets. Desktop (>1024) keeps its
       2-column hero and base layout. */
    .buybox-woo-form form.cart {
        flex-wrap: wrap;
        align-items: center;
        max-width: 600px;
    }

    /* Quantity counter keeps its size — Add to Cart wraps instead of squashing it. */
    .buybox-woo-form form.cart .quantity {
        flex: 0 0 auto;
    }

    /* Add to Cart: grows to share the row, but its flex-basis is the wrap
       threshold — once the space left beside the counter is narrower than this,
       it drops to the next line below the counter. */
    .buybox-woo-form form.cart .single_add_to_cart_button {
        flex: 1 1 220px;
        width: auto;
        min-width: 0;
    }

    /* View Cart: stays beside Add to Cart when the row can hold it, otherwise
       wraps to its own line below Add to Cart. */
    .buybox-woo-form form.cart .view-cart-btn {
        flex: 1 1 160px;
        width: auto;
        min-width: 0;
        margin-left: 0;
    }

    .gallery-wrap {
        position: static;
    }

    .products-layout {
        grid-template-columns: 1fr;
    }

    .sidebar {
        position: static;
        display: none;
    }

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

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

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

    .cta-grid {
        grid-template-columns: 1fr;
    }

    .cta-services,
    .cta-primary {
        padding: 48px 32px;
    }

    .cta-secondary,
    .cta-shop {
        padding: 40px 32px;
    }

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

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

    .value-card:last-child:nth-child(2n+1) {
        grid-column: 1 / -1;
        max-width: calc(50% - 12px);
        margin: 0 auto;
    }

    .capability-grid,
    .quality-grid,
    .consulting-grid,
    .story-grid,
    .facility-grid,
    .trust-cta-grid,
    .bridge-grid,
    .newsletter-grid,
    .volume-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

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

    .by-size-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .categories-grid {
        grid-template-columns: repeat(3, 1fr);
    }

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

    /* Odd-count routing cards: center the lone trailing card */
    .routing-grid .route-card:last-child:nth-child(odd) {
        grid-column: 1 / -1;
        max-width: calc(50% - 10px);
        margin-left: auto;
        margin-right: auto;
        justify-self: center;
    }

    .visiting-grid {
        grid-template-columns: 1fr 1fr;
    }

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

    .social-grid {
        grid-template-columns: 1fr;
    }

    .extras-grid {
        grid-template-columns: 1fr;
    }

    .proof-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .proof-stat:nth-last-child(2) {
        grid-column: 2;
    }

    .proof-stat:last-child {
        grid-column: 3;
    }

    .process-row {
        grid-template-columns: repeat(2, 1fr);
    }

    .quote-grid {
        grid-template-columns: 1fr;
    }

    .form-row-2 {
        grid-template-columns: 1fr 1fr;
    }

    .timeline-item {
        grid-template-columns: 1fr 24px 1fr;
    }

    .promise-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }

    .promise-item {
        border-right: none;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        padding: 16px 0;
    }

    .promise-item:nth-child(2n) {
        border-bottom: none;
    }

    .featured-band-grid {
        grid-template-columns: 1fr;
    }

    .featured-band-visual {
        display: none;
    }

    .shop-hero-grid {
        grid-template-columns: 1fr;
    }

    .related-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .spec-card-block h3 {
        margin-top: 24px;
    }


    .svc-hero-grid {
        padding: 50px 24px;
    }

    .svc-expertise-grid {
        grid-template-columns: 1fr;
    }

    .svc-solutions-grid {
        grid-template-columns: 1fr;
    }

    .svc-solutions-grid>div:nth-child(1) {
        order: 2;
    }

    .svc-solutions-grid>div:nth-child(2) {
        order: 1;
    }

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

    .shop-hero--cats .shop-hero-row {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .shop-hero--cats .shop-hero-intro {
        padding-right: 0;
    }

    .shop-hero--cats .shop-search,
    .shop-hero--cats .shop-hero-sub {
        max-width: none;
    }

    .mat-solutions-grid--5 {
        grid-template-columns: repeat(3, 1fr);
    }

    .mat-solutions-grid--5 .mat-solution-card:nth-child(n) {
        grid-column: unset;
    }

    .why-choose-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .product-grid--related {
        grid-template-columns: repeat(3, calc((100% - 3 * 14px) / 4));
    }

    .shop-layout {
        grid-template-columns: 220px 1fr;
        gap: 28px;
    }

    .product-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 14px;
    }

    .altaris-cart-list-head,
    .altaris-cart-item {
        grid-template-columns: minmax(0, 1fr) 90px 140px 100px 44px;
        gap: 12px;
    }

    .altaris-cart-item .col-product {
        grid-template-columns: 80px 1fr;
        gap: 12px;
    }

    .cart-item-media {
        width: 80px;
        height: 80px;
    }

    .quality-certs {
        grid-template-columns: repeat(2, 1fr);
    }

    .shop-hero-stats {
        grid-template-columns: repeat(3, 1fr);
        gap: 12px;
    }

    .facility-visual-wrap {
        grid-template-columns: 1fr 1fr;
        min-height: 360px;
    }

    /* Checkout step headings — tablet tier */
    .altaris-account-title,
    h2.woocommerce-order-details__title,
    h2.woocommerce-column__title,
    div#customer_details h3,
    h3#order_review_heading {
        font-size: 24px !important;
        line-height: 1.25 !important;
    }

    .wishlist-table-head {
        display: none;
    }

    .wishlist-page-header {
        flex-direction: column;
        align-items: stretch;
        gap: 14px;
    }

    .wishlist-keep-shopping {
        width: 100%;
        text-align: center;
        justify-content: center;
        align-self: stretch;
        display: inline-flex;
    }

    .wishlist-row {
        grid-template-columns: 1fr;
        grid-template-areas:
            "product"
            "price"
            "stock"
            "actions";
        row-gap: 8px;
        padding: 18px;
    }

    .wishlist-col-product {
        grid-area: product;
    }

    .wishlist-col-price {
        grid-area: price;
    }

    .wishlist-col-stock {
        grid-area: stock;
    }

    .wishlist-col-actions {
        grid-area: actions;
        justify-content: flex-start;
        gap: 12px;
        margin-top: 4px;
    }

    .wishlist-col-actions .wishlist-add-to-cart {
        flex: 0 1 auto;
        min-width: 160px;
    }

    .wishlist-col-price,
    .wishlist-col-stock {
        display: flex;
        align-items: center;
        gap: 8px;
        flex-wrap: wrap;
        text-align: left;
    }

    .wishlist-col-price::before,
    .wishlist-col-stock::before {
        content: attr(data-label) ":";
        font-size: 11px;
        font-weight: 700;
        color: var(--ink-500, #6b7280);
        text-transform: uppercase;
        letter-spacing: 0.06em;
        margin-right: 4px;
    }

    .hp-expertise-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .hp-expertise-col:nth-child(2) {
        border-right: none;
    }

    .hp-expertise-col:nth-child(3) {
        border-top: 1px solid var(--line-100);
    }

    .hp-expertise-col:nth-child(4) {
        border-top: 1px solid var(--line-100);
        border-right: none;
    }

    .case-study-hero-grid {
        grid-template-columns: 1fr;
        padding: 48px 0;
        gap: 40px;
    }

    .case-study-hero-visual {
        order: -1;
        aspect-ratio: 16 / 9;
    }

    .case-study-layout {
        grid-template-columns: 1fr;
    }

    .case-study-sidebar {
        position: static;
    }

    .outcome-stats {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px 0;
    }

    .outcome-stat {
        border-right: none;
        border-bottom: 1px solid rgba(255, 255, 255, 0.12);
        padding: 0 0 24px;
    }

    .outcome-stat:nth-child(3),
    .outcome-stat:last-child {
        border-bottom: none;
        padding-top: 24px;
    }

    .categories-grid--4 {
        grid-template-columns: repeat(2, 1fr);
    }

    .product-detail-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .spec-card-block {
        grid-column: span 2;
    }

    .wc-block-cart__sidebar {
        position: static !important;
    }

    .cross-sells .products {
        grid-template-columns: repeat(2, 1fr);
    }

    .wc-block-checkout__sidebar {
        margin-top: 32px !important;
    }

    .altaris-cart-layout {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .altaris-cart-sidebar {
        position: static;
    }

    .shop-hero--cats {
        padding: 36px 0 40px;
    }

    .shop-hero--cats .shop-hero-title {
        font-size: 30px;
    }

    .product-grid--related {
        grid-template-columns: repeat(2, calc((100% - 2 * 18px) / 3));
    }

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

    .contact-form-trust {
        grid-template-columns: 1fr;
    }

    .contact-form {
        padding: 28px 24px;
    }

    .nav-toggle {
        display: flex;
    }

    .header-actions .btn-primary {
        display: none;
    }

    .icon-btn[aria-label="Search"] {
        display: none;
    }

    .icon-btn[aria-label="My Account"] {
        display: none;
    }

    .nav-mobile-project-inquiry {
        display: none;
    }

    .main-nav.is-open a.nav-myaccount {
        display: block;
    }

    .main-nav.is-open a.nav-mobile-project-inquiry {
        display: flex;
    }


    .header-inner {
        height: 72px;
    }

    .site-logo img {
        height: 50px;
    }

    .main-nav {
        display: none;
    }

    .main-nav.is-open {
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        position: fixed;
        inset: 0;
        top: 72px;
        background: var(--navy-950);
        /* padding: 64px 24px 24px; */
        padding: 5px 24px 24px;
        z-index: 99;
        gap: 0;
        overflow-y: auto;
    }

    /* nav-toggle icon swap: hamburger when closed, X when open */
    .nav-toggle .nav-toggle-icon--close {
        display: none;
    }

    .nav-toggle[aria-expanded="true"] .nav-toggle-icon--bars {
        display: none;
    }

    .nav-toggle[aria-expanded="true"] .nav-toggle-icon--close {
        display: block;
    }

    .nav-toggle {
        position: relative;
        z-index: 101;
    }

    .main-nav.is-open>a,
    .main-nav.is-open>.nav-item-wrap>a.has-submenu {
        padding: 16px 0;
        font-size: 16px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        display: flex;
        color: white;
        justify-content: space-between;
        width: 100%;
    }

    .main-nav.is-open>a:first-of-type {
        border-top: 1px solid rgba(255, 255, 255, 0.08);
    }

    .main-nav.is-open>a::after,
    .main-nav.is-open>.nav-item-wrap>a::after {
        display: none !important;
    }

    /* Mobile dropdown accordion */
    .main-nav.is-open .nav-item-wrap {
        flex-direction: column;
        align-items: stretch;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    }

    .main-nav.is-open .nav-item-wrap>a.has-submenu {
        border-bottom: none;
    }

    .main-nav.is-open .nav-item-wrap .sub-menu {
        position: static;
        transform: none !important;
        opacity: 1 !important;
        visibility: hidden;
        max-height: 0;
        overflow: hidden;
        background: rgba(255, 255, 255, 0.05);
        border-top: none;
        border-radius: 0;
        box-shadow: none;
        padding: 0;
        pointer-events: none;
        transition: max-height .28s ease, visibility .28s, padding .28s;
    }

    .main-nav.is-open .nav-item-wrap .sub-menu::before {
        display: none;
    }

    .main-nav.is-open .nav-item-wrap.open .sub-menu {
        visibility: visible;
        max-height: 400px;
        padding: 4px 0 8px;
        pointer-events: auto;
    }

    .main-nav.is-open .nav-item-wrap .sub-menu a {
        color: rgba(255, 255, 255, 0.72) !important;
        padding: 11px 20px !important;
        font-size: 13px !important;
        border-bottom: none !important;
        display: block !important;
        background: transparent;
    }

    .main-nav.is-open .nav-item-wrap .sub-menu a:hover {
        background: rgba(255, 255, 255, 0.07);
        color: var(--orange-400) !important;
    }

    .main-nav.is-open .nav-item-wrap .sub-menu li:first-child a {
        color: var(--orange-400) !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
    }

    .main-nav.is-open .submenu-chevron {
        color: rgba(255, 255, 255, 0.7);
    }
}

/* ============================================================
   TABLET  (max-width: 768px)
   ============================================================ */
@media (max-width: 768px) {

    .consulting-pillars-grid {
        grid-template-columns: 1fr;
    }

    .consulting-detail-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .consulting-detail-visual {
        aspect-ratio: 16/9;
    }

    .consulting-lead {
        font-size: 18px;
    }

    .mat-tab-btn {
        padding: 12px 24px;
        font-size: 12px;
    }

    .mat-intro-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .mat-intro-visual {
        aspect-ratio: 16/9;
    }

    .mat-punchline {
        font-size: 28px;
    }

    .mat-solutions-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .mat-solutions-grid--5 {
        grid-template-columns: repeat(2, 1fr);
    }

    .mat-panel-cta {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .contact-form-wrap {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .contact-info-col {
        position: static;
    }

    .contact-form-title {
        font-size: 28px;
    }

    .product-grid--related {
        grid-template-columns: repeat(2, 1fr);
        justify-content: stretch;
    }

    .shop-layout {
        grid-template-columns: 1fr;
    }

    .shop-sidebar {
        position: static;
    }

    .product-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }

    .specs-grid {
        grid-template-columns: 1fr;
    }

    .spec-card-block {
        grid-column: span 1;
    }

    /* PDP buybox wrapping is handled by the intelligent flex rules in the
       <=1024 tier above (they also match <=768), so the qty / Add to Cart /
       View Cart row wraps gracefully instead of being force-stacked here. */


    body.woocommerce-view-order .woocommerce-customer-details .col2-set,
    body.woocommerce-view-order .woocommerce-customer-details .woocommerce-columns--addresses {
        grid-template-columns: 1fr;
    }

    body.woocommerce-view-order table.woocommerce-table--order-details thead {
        font-size: 10px;
    }

    body.woocommerce-view-order table.woocommerce-table--order-details thead th,
    body.woocommerce-view-order table.woocommerce-table--order-details tbody td,
    body.woocommerce-view-order table.woocommerce-table--order-details tfoot th,
    body.woocommerce-view-order table.woocommerce-table--order-details tfoot td {
        padding: 10px 12px;
        font-size: 12.5px;
    }

    .altaris-legal {
        padding: 40px 0 64px;
    }

    .altaris-legal__list>li {
        padding: 18px 18px 18px 50px;
    }

    .altaris-legal__list>li::before {
        top: 18px;
        left: 16px;
        font-size: 13px;
    }

    .altaris-legal__content {
        font-size: 14.5px;
    }


    /* Login/register columns stack */
    .woocommerce-account:not(.logged-in) .woocommerce>.u-columns {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    /* Logged-in: sidebar above content */
    .woocommerce-account.logged-in .woocommerce {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .woocommerce-MyAccount-navigation li a {
        padding: 11px 16px;
    }

    .woocommerce-MyAccount-content {
        padding: 24px 20px;
        overflow-x: scroll;
    }

    .mat-tab-btn {
        padding: 11px 20px;
        width: 100%;
        text-align: center;
    }

    .mat-solutions-grid,
    .mat-solutions-grid--5 {
        grid-template-columns: 1fr;
    }

    .mat-intro-visual {
        display: none;
    }

    .mat-punchline {
        font-size: 24px;
    }

    .why-choose-grid {
        grid-template-columns: 1fr;
    }

    .container {
        padding: 0 16px;
    }

    .utility {
        display: none;
    }

    .hero-grid {
        grid-template-columns: 1fr;
    }

    .hero-side {
        padding: 48px 24px;
    }

    .hero-headline {
        font-size: 36px;
    }

    .hero-divider {
        display: none;
    }

    .hero-services-cols {
        grid-template-columns: 1fr;
    }

    .page-hero-grid {
        grid-template-columns: 1fr;
    }

    .page-hero-visual {
        display: none;
    }

    .page-hero-title {
        font-size: 34px;
    }

    .section-title {
        font-size: 30px;
    }

    .section {
        padding: 56px 0;
    }

    .services-grid {
        grid-template-columns: 1fr;
    }

    .service-card:last-child:nth-child(2n+1) {
        grid-column: unset;
        max-width: none;
        margin: 0;
    }

    .service-card:last-child:nth-child(3n+1) {
        grid-column: unset;
    }

    .industries-grid {
        grid-template-columns: 1fr;
    }

    .industry-card:last-child:nth-child(2n+1) {
        grid-column: unset;
        max-width: none;
        margin: 0;
    }

    .industry-card:last-child:nth-child(3n+1) {
        grid-column: unset;
    }

    .materials-grid {
        grid-template-columns: 1fr;
    }

    .material-card:last-child:nth-child(2n+1) {
        grid-column: unset;
        max-width: none;
        margin: 0;
    }

    .material-card:last-child:nth-child(3n+1) {
        grid-column: unset;
    }

    .shop-categories {
        grid-template-columns: repeat(2, 1fr);
    }

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

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

    .cases-grid {
        grid-template-columns: 1fr;
    }

    .crosssell-grid {
        grid-template-columns: 1fr;
    }

    .leadership-grid {
        grid-template-columns: 1fr 1fr;
    }

    .values-grid {
        grid-template-columns: 1fr;
    }

    .value-card:last-child:nth-child(2n+1) {
        grid-column: unset;
        max-width: unset;
        margin: 0;
    }

    .process-row {
        grid-template-columns: 1fr 1fr;
    }

    .bestsellers-grid {
        grid-template-columns: 1fr 1fr;
    }

    .products-grid {
        grid-template-columns: 1fr 1fr;
    }

    .breadth-grid {
        grid-template-columns: 1fr;
    }

    .breadth-card {
        padding: 24px;
    }

    .breadth-items {
        grid-template-columns: 1fr;
    }

    .facility-stat-lbl {
        font-size: 9px;
    }

    .facility-stats {
        grid-template-columns: repeat(2, 1fr);
    }

    .trustbar-grid {
        grid-template-columns: 1fr;
    }

    .trust-stat {
        flex-direction: column;
        text-align: center;
    }

    .routing-grid {
        grid-template-columns: 1fr;
    }

    /* Reset tablet odd-card centering on mobile — single-col already full-width */
    .routing-grid .route-card:last-child:nth-child(odd) {
        grid-column: auto;
        max-width: none;
        margin-left: 0;
        margin-right: 0;
        justify-self: stretch;
    }

    .quote-grid {
        grid-template-columns: 1fr;
    }

    .form-row-2 {
        grid-template-columns: 1fr;
    }

    .process-detail-item {
        grid-template-columns: 48px 1fr;
    }

    .process-detail-link {
        grid-column: 1 / -1;
    }

    .spec-card {
        margin-bottom: 8px;
    }

    .specs-grid {
        grid-template-columns: 1fr 1fr;
    }

    .by-size-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .footer-grid {
        grid-template-columns: 1fr 1fr;
    }

    .footer-brand {
        grid-column: 1 / -1;
    }

    .footer-bottom {
        flex-direction: column;
        text-align: center;
    }

    .cta-services-title,
    .cta-title {
        font-size: 28px;
    }

    .cta-phone {
        display: block;
        margin-left: 0;
        margin-top: 12px;
    }

    .header-inner {
        padding: 0 16px;
    }

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

    .proof-stat:last-child:nth-child(2n+1) {
        grid-column: 1 / -1;
    }

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

    .downloads-grid {
        grid-template-columns: 1fr 1fr;
    }

    .qty-cart-row {
        flex-wrap: wrap;
    }

    .addcart-btn {
        width: 100%;
        justify-content: center;
    }

    .volume-table {
        font-size: 13px;
    }

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

    .svc-hero-grid {
        grid-template-columns: 1fr;
        gap: 32px;
        padding: 56px 20px;
    }

    .svc-hero-visual {
        /* display: none; */
    }

    .svc-hero-title {
        font-size: 36px;
    }

    .svc-hero-cta {
        flex-direction: column;
        align-items: flex-start;
    }

    .svc-expertise-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .svc-expertise-visual {
        aspect-ratio: 16/9;
    }

    .svc-solutions-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .svc-solutions-visual {
        aspect-ratio: 16/9;
    }

    .svc-types-grid {
        grid-template-columns: 1fr 1fr;
    }

    .svc-solutions-cta {
        flex-direction: column;
        align-items: flex-start;
    }

    .visiting-grid {
        grid-template-columns: 1fr;
    }

    .contact-chip-wrap {
        padding: 20px 16px;
    }

    .contact-chip-grid {
        grid-template-columns: 1fr;
    }

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

    .contact-form-success {
        flex-direction: column;
        text-align: center;
        align-items: center;
        border-left: unset;
        border-bottom: 4px solid #8CC63F;
    }

    .contact-form-success strong {
        font-size: 16px;
    }

    .contact-form-success svg {
        width: 60px;
        height: 60px;
    }

    .wp-block-woocommerce-empty-cart-block {
        padding: 48px 0;
    }

    .cross-sells .products {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }

    .woocommerce-account .woocommerce-Addresses {
        grid-template-columns: 1fr;
    }

    .shop-search-results {
        max-height: 240px;
    }

    .shop-search-thumb {
        flex-basis: 48px;
        width: 48px;
        height: 48px;
    }

    .shop-search-item {
        min-height: 72px;
    }

    .altaris-cart-list-head {
        display: none;
    }

    .altaris-cart-item {
        grid-template-columns: 1fr auto;
        grid-template-areas:
            "product remove"
            "meta    meta"
            "qty     subtotal";
        gap: 10px;
        padding: 16px 0;
        align-items: start;
    }

    .altaris-cart-item .col-product {
        grid-area: product;
        grid-template-columns: 72px 1fr;
        gap: 12px;
    }

    .cart-item-text {
        width: 200px;
    }

    .altaris-cart-item .col-price {
        grid-area: meta;
    }

    .altaris-cart-item .col-qty {
        grid-area: qty;
        justify-content: flex-start;
    }

    .altaris-cart-item .col-subtotal {
        grid-area: subtotal;
    }

    .altaris-cart-item .col-remove {
        grid-area: remove;
        justify-content: flex-end;
    }

    .cart-item-media {
        width: 72px;
        height: 72px;
    }

    .altaris-cart-item .col-price {
        text-align: left;
        font-size: 13px;
        color: var(--ink-700, #334155);
    }

    .altaris-cart-item .col-price::before {
        content: attr(data-label) ": ";
        font-weight: 600;
        color: var(--ink-500, #6b7280);
        margin-right: 4px;
    }

    .altaris-cart-item .col-qty {
        justify-content: flex-start;
    }

    .altaris-cart-item .col-subtotal {
        text-align: left;
        font-size: 15px;
    }

    .altaris-cart-item .col-subtotal::before {
        content: attr(data-label) ": ";
        font-family: inherit;
        font-weight: 600;
        font-size: 12px;
        color: var(--ink-500, #6b7280);
        text-transform: uppercase;
        letter-spacing: 0.06em;
        margin-right: 4px;
        color: var(--ink-500, #6b7280);
    }

    .cart-coupon {
        width: 100%;
        max-width: none;
        min-width: 0;
    }

    .gallery-wrap.has-slider .gallery-nav {
        opacity: 1;
        width: 32px;
        height: 32px;
    }

    .gallery-wrap.has-slider .gallery-nav-prev {
        left: 6px;
    }

    .gallery-wrap.has-slider .gallery-nav-next {
        right: 6px;
    }

    .buybox-volume {
        padding: 14px 14px 12px;
    }

    .buybox-volume-table tbody td {
        padding: 10px 0;
        font-size: 13px;
    }

    .wishlist-page {
        padding: 24px 0 56px;
    }

    .wishlist-title {
        font-size: 26px;
    }

    .wishlist-page-header {
        gap: 14px;
    }

    .wishlist-keep-shopping {
        width: 100%;
        text-align: center;
    }

    .wishlist-row {
        padding: 14px;
        gap: 12px;
    }

    .wishlist-thumb {
        width: 64px;
        height: 64px;
    }

    .wishlist-product-title {
        font-size: 13px;
    }

    .cat-hero-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .cat-hero-card {
        aspect-ratio: 16 / 10;
    }

    .altaris-cart-toast {
        right: 16px;
        bottom: 16px;
        padding: 10px 14px;
        font-size: 12.5px;
    }


    .woocommerce-order-details .my-wrapper a.button,
    .woocommerce-order-details .my-wrapper button.button,
    .woocommerce-order-details .altaris-order-actions a.button,
    .woocommerce-order-details .altaris-order-actions button.button {
        flex: 1 1 100%;
        min-width: 0;
    }

    .container {
        padding-left: 24px;
        padding-right: 24px;
    }

    .site-header .header-inner {
        padding-left: 24px;
        padding-right: 24px;
    }

    /* generic media safety */
    img,
    video,
    iframe {
        max-width: 100%;
        height: auto;
    }

    /* collapse remaining multi-column grids */
    .quality-certs,
    .facility-visual-wrap,
    .shop-hero-stats {
        grid-template-columns: 1fr;
        min-height: 0;
        grid-template-rows: auto;
    }

    .gallery-thumbs {
        grid-template-columns: repeat(4, 1fr);
    }

    /* WC checkout forms */
    .wc-block-components-address-form {
        grid-template-columns: 1fr !important;
    }

    .wc-block-components-payment-method-content .wc-block-components-form,
    .wc-block-components-payment-method-content form {
        grid-template-columns: 1fr !important;
    }

    /* WC account pages */
    .woocommerce-account .woocommerce>.u-columns,
    .woocommerce-account .woocommerce-Addresses,
    .woocommerce-account .woocommerce-address-fields,
    .woocommerce-account .woocommerce-EditAccountForm {
        grid-template-columns: 1fr;
        display: grid;
    }

    .woocommerce-account .woocommerce-EditAccountForm {
        display: block !important;
        grid-template-columns: unset !important;
    }

    .woocommerce-account .woocommerce-EditAccountForm>p {
        margin-top: 10px !important;
    }

    /* Tables — horizontal scroll fallback (skip Altaris cart + checkout review which need full-width block layout) */
    .shop_table:not(.altaris-cart-items):not(.woocommerce-checkout-review-order-table):not(.woocommerce-table--order-details),
    .woocommerce-cart-form table:not(.altaris-cart-items),
    .cart_totals table,
    .woocommerce-orders-table {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }

    /* Checkout Step 3 order review — proper table layout, full width, wrap content */
    .woocommerce-checkout-review-order-table,
    table.woocommerce-checkout-review-order-table {
        display: table !important;
        width: 100% !important;
        max-width: 100% !important;
        table-layout: fixed !important;
        overflow-x: visible !important;
        white-space: normal !important;
        border-collapse: collapse;
    }

    .woocommerce-checkout-review-order-table thead,
    .woocommerce-checkout-review-order-table tbody,
    .woocommerce-checkout-review-order-table tfoot {
        display: table-row-group;
        width: 100%;
    }

    .woocommerce-checkout-review-order-table tr {
        display: table-row;
        width: 100%;
    }

    .woocommerce-checkout-review-order-table th,
    .woocommerce-checkout-review-order-table td {
        display: table-cell;
        white-space: normal !important;
        overflow-wrap: anywhere;
        word-break: break-word;
        padding: 10px 8px !important;
        font-size: 13px;
        vertical-align: top;
    }

    .woocommerce-checkout-review-order-table .product-name {
        width: 60%;
    }

    .woocommerce-checkout-review-order-table .product-quantity {
        text-align: center;
    }

    .woocommerce-checkout-review-order-table .product-total,
    .woocommerce-checkout-review-order-table td.product-total {
        text-align: right;
        white-space: nowrap !important;
    }

    #order_review,
    .woocommerce-checkout-review-order {
        overflow-x: hidden !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    /* Cart product rows: no horizontal scroll, allow wrap */
    .altaris-cart-items,
    .altaris-cart-items.shop_table {
        display: block;
        overflow-x: visible;
        white-space: normal;
        width: 100%;
    }

    .altaris-cart-item .cart-item-title,
    .altaris-cart-item .cart-item-desc,
    .altaris-cart-item .col-price,
    .altaris-cart-item .col-subtotal {
        white-space: normal;
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    .altaris-cart-item .col-remove {
        align-self: start;
    }

    .altaris-cart-item .cart-item-remove {
        position: relative;
        z-index: 2;
    }

    .altaris-cart-table>tbody>tr>td {
        width: 100% !important;
    }

    /* Flex rows: allow wrap so child buttons stack */
    .hero-cta-row,
    .buybox-actions,
    .cart-totals-actions,
    .shop-search {
        flex-wrap: wrap;
    }

    /* Quick action buttons on product detail — even split per row */
    .quick-actions {
        flex-wrap: wrap;
        gap: 8px;
    }

    .quick-actions>.btn {
        flex: 1 1 calc(50% - 8px);
        min-width: 0;
        justify-content: center;
        padding-left: 10px;
        padding-right: 10px;
    }

    /* Checkout Step 2 — shipping/billing fields full width on mobile.
     * Plugin's grid layout (2-col / 3-col via .altaris-multistep-active) overridden
     * by switching wrappers from grid to block flow. */
    form.checkout.altaris-step-2 .woocommerce-shipping-fields__field-wrapper,
    form.checkout.altaris-multistep-active .woocommerce-shipping-fields__field-wrapper,
    form.checkout.altaris-step-2 .woocommerce-billing-fields__field-wrapper,
    form.checkout.altaris-multistep-active .woocommerce-billing-fields__field-wrapper {
        display: block !important;
        grid-column: unset !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    body.woocommerce-checkout form.checkout.woocommerce-checkout.altaris-multistep-active.altaris-step-2 .woocommerce-shipping-fields__field-wrapper>.form-row,
    body.woocommerce-checkout form.checkout.woocommerce-checkout.altaris-multistep-active.altaris-step-2 .woocommerce-billing-fields__field-wrapper>.form-row,
    form.checkout.altaris-multistep-active .woocommerce-shipping-fields__field-wrapper>#shipping_reference_field_field,
    form.checkout.altaris-multistep-active .woocommerce-billing-fields__field-wrapper>#billing_reference_field_field {
        grid-column: unset !important;
        width: 100% !important;
        max-width: 100% !important;
        display: block !important;
        margin-top: 10px !important;
    }

    body.woocommerce-checkout form.checkout.woocommerce-checkout.altaris-multistep-active.altaris-step-2 .woocommerce-shipping-fields__field-wrapper>.form-row>label,
    body.woocommerce-checkout form.checkout.woocommerce-checkout.altaris-multistep-active.altaris-step-2 .woocommerce-shipping-fields__field-wrapper>.form-row>span,
    body.woocommerce-checkout form.checkout.woocommerce-checkout.altaris-multistep-active.altaris-step-2 .woocommerce-billing-fields__field-wrapper>.form-row>label,
    body.woocommerce-checkout form.checkout.woocommerce-checkout.altaris-multistep-active.altaris-step-2 .woocommerce-billing-fields__field-wrapper>.form-row>span {
        width: 100% !important;
        display: block !important;
    }

    /* Checkout step-form headings (Your Account Details / Shipping / Billing) — shrink on mobile/tablet */
    .altaris-account-title,
    h2.woocommerce-order-details__title,
    h2.woocommerce-column__title,
    div#customer_details h3,
    h3#order_review_heading {
        font-size: 20px !important;
        line-height: 1.2 !important;
        letter-spacing: 0.5px !important;
    }

    /* Checkout step indicator (User Account / Shipping & Billing / Payment & Order) — fix circle alignment on mobile */
    .altaris-indicator__list {
        display: flex !important;
        align-items: flex-start !important;
        justify-content: space-between !important;
    }

    .altaris-indicator__item {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        flex: 1 1 0 !important;
        min-width: 0 !important;
        position: relative !important;
        text-align: center !important;
    }

    .altaris-indicator__bubble {
        flex-shrink: 0 !important;
        margin: 0 auto !important;
    }

    .altaris-indicator__item:not(:last-child)::after {
        top: 18px !important;
        left: 50% !important;
        right: auto !important;
        width: 100% !important;
        transform: translateX(0) !important;
    }

    .altaris-indicator__label {
        margin-top: 8px !important;
        max-width: 100% !important;
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    /* Contact page route + visiting cards — centered layout on mobile */
    .route-card,
    .visiting-card {
        text-align: center;
    }

    .route-icon,
    .visiting-icon {
        display: flex;
        justify-content: center;
        margin-bottom: 14px;
    }

    .route-icon img,
    .visiting-icon img {
        margin-left: auto;
        margin-right: auto;
    }

    .route-title,
    .visiting-title {
        margin-left: auto;
        margin-right: auto;
    }

    .visiting-meta {
        margin-left: auto;
        margin-right: auto;
        display: inline-block;
    }

    /* Service cards (homepage + services page) — centered layout on mobile */
    .service-card {
        text-align: center;
    }

    .service-card-icon {
        margin-left: auto;
        margin-right: auto;
    }

    .service-card-title {
        margin-bottom: 6px;
    }

    .service-card-sub,
    .service-card-desc {
        min-height: 0;
        margin-bottom: 12px;
    }

    .service-card-specs {
        justify-content: center;
    }

    /* Promise strip (Fast Shipping / Volume Pricing / Talk to an Engineer) — stack full width on mobile */
    .promise-grid {
        grid-template-columns: 1fr;
        gap: 0;
        padding: 0 24px;
    }

    .promise-item {
        padding: 18px 0;
        border-right: none;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    }

    .promise-item:last-child {
        border-bottom: none;
    }

    .promise-item:nth-child(2n) {
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    }

    /* Specs card — full-width on mobile (override 380px min from auto-fit) */
    .specs-grid {
        grid-template-columns: 1fr;
        gap: 20px;
        margin-top: 16px;
        margin-bottom: 24px;
    }

    .spec-card-block {
        padding: 24px 20px;
        width: 100%;
        grid-column: 1 / -1;
    }

    .spec-card-block .spec-table {
        width: 100%;
        table-layout: auto;
    }

    .spec-card-block .spec-table td {
        word-break: break-word;
        white-space: normal;
    }

    /* Section spacing tighten */
    .section,
    section[class*="section"] {
        padding-top: 48px;
        padding-bottom: 48px;
    }

    /* Typography catch-up for any heading still oversized */
    .hero-headline,
    .page-hero-title,
    .svc-hero-title,
    .case-study-hero-title,
    .shop-hero-title,
    .hero-shop .hero-headline,
    .page-hero-simple .page-hero-title {
        font-size: 34px;
        line-height: 1.1;
    }

    .section-title {
        font-size: 28px;
        line-height: 1.15;
    }

    .trust-stat-val,
    .outcome-stat-value,
    .value-number,
    .reviews-score-num {
        font-size: 36px;
    }

    .growth-title {
        font-size: 28px;
    }

    /* Cart / checkout layouts */
    .cart_totals,
    .altaris-cart-totals {
        max-width: 100%;
    }
}

/* ============================================================
   MOBILE  (max-width: 480px)
   ============================================================ */
@media (max-width: 480px) {

    .hp-expertise-grid {
        grid-template-columns: 1fr;
    }

    .hp-expertise-col {
        border-right: none;
        border-bottom: 1px solid var(--line-100);
    }

    .hp-expertise-col:last-child {
        border-bottom: none;
    }

    .contact-form {
        padding: 20px 16px;
    }

    .product-grid--related {
        grid-template-columns: 1fr;
    }

    .product-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .categories-grid--4 {
        grid-template-columns: repeat(2, 1fr);
    }

    .altaris-popup {
        padding: 28px 22px 22px;
    }

    .altaris-popup__title {
        font-size: 20px;
    }

    .container {
        padding-left: 20px;
        padding-right: 20px;
    }

    .site-header .header-inner {
        padding-left: 15px;
        padding-right: 15px;
    }

    /* Checkout step indicator — smaller bubble + recentered connecting line */
    .altaris-indicator__bubble {
        width: 30px !important;
        height: 30px !important;
        font-size: 12px !important;
    }

    .altaris-indicator__item:not(:last-child)::after {
        top: 15px !important;
    }

    .altaris-indicator__label {
        font-size: 10px !important;
        letter-spacing: 0.02em !important;
        margin-top: 6px !important;
    }

    .gallery-thumbs {
        grid-template-columns: repeat(3, 1fr);
    }

    /* Phone-size heading tier */
    .hero-headline,
    .page-hero-title,
    .svc-hero-title,
    .case-study-hero-title,
    .shop-hero-title,
    .hero-shop .hero-headline,
    .page-hero-simple .page-hero-title {
        font-size: 28px;
    }

    .section-title {
        font-size: 22px;
    }

    .trust-stat-val,
    .outcome-stat-value,
    .value-number,
    .reviews-score-num {
        font-size: 30px;
    }

    .growth-title {
        font-size: 24px;
    }

    /* Make standalone buttons easier to tap */
    .btn {
        padding: 12px 18px;
        font-size: 13px;
    }

    .btn-block {
        width: 100%;
    }

    /* Stack hero CTA row contents */
    .hero-cta-row .hero-phone {
        width: 100%;
    }

    /* Cart actions stack */
    .cart-totals-actions .btn,
    .wc-proceed-to-checkout .btn,
    .cart-continue-shopping {
        width: 100%;
    }

    /* Product card minor tightening */
    .product-card .product-name {
        font-size: 13px;
    }

    .product-card .product-price {
        font-size: 18px;
    }

    .altaris-cart-toast__cta {
        width: 40%;
        text-align: center;
    }

    .woocommerce-shop .altaris-cart-lock-label {
        margin-bottom: 10px;
    }

    body.woocommerce-checkout .altaris-account-tab,
    body.woocommerce-checkout button.altaris-account-tab {
        width: 100% !important;
        min-width: 100% !important;
        display: block !important;
        /* flex: 0 0 100%; */
    }

    body.woocommerce-checkout .altaris-account-tabs {
        flex-wrap: wrap !important;
        width: 100% !important;
    }
}

/* ============================================================
   MOTION / ACCESSIBILITY PREFERENCES
   ============================================================ */
@media (prefers-reduced-motion: reduce) {

    * {
        transition: none !important;
        transform: none !important;
    }
}

@media (prefers-reduced-motion: reduce) {


    .altaris-popup-overlay,
    .altaris-popup {
        transition: none;
    }
}