/* ═══════════════════════════════════════════════════════
   MacSaint — Storefront Child Theme Styles
   Overrides Storefront defaults to match Figma design.
   ═══════════════════════════════════════════════════════ */

/* ─── Design Tokens ────────────────────────────────── */
:root {
    --color-white: #ffffff;
    --color-black: #000000;
    --color-beige: #f7f7f5;
    --color-grey: #a6a6a6;
    --color-grey-light: #f0f0f0;

    --font-primary: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-size-xs: 12px;
    --font-size-sm: 14px;

    --nav-height: 100px;
    --footer-height: 300px;
    --max-width: 1440px;
    --content-padding: 84px;

    --btn-height: 50px;
}

/* ─── Base Overrides ───────────────────────────────── */
body {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    color: var(--color-black);
    background: var(--color-white);
    -webkit-font-smoothing: antialiased;
    text-transform: uppercase;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-primary);
    text-transform: uppercase;
}

a {
    color: var(--color-black);
    text-decoration: none;
}

a:hover {
    color: var(--color-black);
    opacity: 0.7;
}

/* Full-width layout — remove Storefront's max-width on inner containers */
.site {
    max-width: 100%;
}

/* ─── Nav (Header) Override ────────────────────────── */
.site-header {
    background: var(--color-white) !important;
    border-bottom: none !important;
    padding: 0 !important;
    margin-bottom: 0 !important;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 999;
    height: var(--nav-height);
}

body.home .site-header {
    background: transparent !important;
}

.nav-inner {
    max-width: var(--max-width);
    margin: 0 auto;
    height: var(--nav-height);
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    padding: 0 84px;
}

/* Hide Storefront's default nav, search, cart elements we replace */
.site-header .storefront-primary-navigation,
.site-header .site-search,
.site-header .site-header-cart {
    display: none !important;
}

/* Left nav */
.nav-left {
    justify-self: start;
    min-width: 0;
}

.nav-left ul {
    display: flex;
    gap: 20px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.homepage--swiper {
    margin-top: 0;
}

.nav-left a {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 400;
    color: var(--color-black);
    text-transform: uppercase;
    text-decoration: none;
    line-height: 1;
    white-space: nowrap;
}

.nav-left .current-menu-item a,
.nav-left a:hover {
    font-weight: 700;
}

/* Inverted header: white text on dark hero (top bar only).
   Scoped to .site-header so the cloned cart inside the mobile overlay
   (appended to document.body, not inside .site-header) keeps its
   normal black color and stays visible on the white overlay. */
body.home.home-header-invert .site-header .nav-left a,
body.home.home-header-invert .site-header .site-logo .logo-text,
body.home.home-header-invert .site-header .nav-lang-toggle,
body.home.home-header-invert .site-header .nav-login,
body.home.home-header-invert .site-header .nav-search,
body.home.home-header-invert .site-header .nav-cart {
    color: var(--color-white);
}

/* SVG inside <img> needs filter, not color */
body.home.home-header-invert .site-branding img,
body.home.home-header-invert .site-branding svg {
    filter: invert(1);
}

body.home.home-header-invert .site-header .nav-hamburger span {
    background: var(--color-white);
}

body.home.home-header-invert .site-header .nav-cart .cart-count {
    background: var(--color-white);
    color: var(--color-black);
}

/* Center logo */
.site-logo .logo-text {
    font-family: var(--font-primary);
    font-size: 16px;
    font-weight: 700;
    color: var(--color-black);
    letter-spacing: 2px;
    text-transform: uppercase;
    text-decoration: none;
}

/* Right actions */
.nav-right {
    justify-self: end;
    display: flex;
    align-items: center;
    gap: 20px;
    min-width: 0;
}

/* Center logo — let it flow naturally */
.site-branding {
    justify-self: center;
    text-align: center;
    width: auto;
    margin-right: 0;
    margin-bottom: 0;
}

.woocommerce-active .site-header .site-branding {
    width: auto;
    margin-right: 0;
    margin-bottom: 0;
}

.site-branding img,
.site-branding svg {
    width: auto;
    max-width: 100%;
    height: auto;
    display: inline-block;
}

.site-logo {
    display: inline-block;
}

.nav-lang {
    position: relative;
}

.nav-lang-toggle {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 400;
    color: var(--color-black);
    background: none;
    border: none;
    cursor: pointer;
    text-transform: uppercase;
    padding: 0;
}

.nav-lang-toggle:disabled {
    opacity: 0.5;
}

.nav-lang-dropdown {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    background: var(--color-white);
    border: 1px solid var(--color-grey-light);
    list-style: none;
    margin: 4px 0 0;
    padding: 8px 0;
    min-width: 120px;
    z-index: 10;
}

.nav-lang:hover .nav-lang-dropdown {
    display: block;
}

.nav-lang-dropdown a {
    display: block;
    padding: 4px 12px;
    font-size: var(--font-size-xs);
    color: var(--color-black);
    text-transform: none;
}

.nav-lang-dropdown .active a {
    font-weight: 700;
}

.nav-login {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 400;
    color: var(--color-black);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.nav-search,
.nav-cart {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    color: var(--color-black);
    line-height: 0;
    position: relative;
    /* Belt-and-braces: keep inline SVG from collapsing inside the
       line-height:0 box on iOS Safari. */
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Force black cart/search icons inside the white mobile overlay,
   regardless of the top-bar's inverted-header state. */
.mobile-nav-right .nav-search,
.mobile-nav-right .nav-cart {
    color: var(--color-black);
}

/* Cart count badge */
.nav-cart .cart-count {
    position: absolute;
    top: -6px;
    right: -8px;
    background: var(--color-black);
    color: var(--color-white);
    font-size: 10px;
    font-weight: 700;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.nav-cart .cart-count:empty {
    display: none;
}

/* Search overlay */
.search-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(255, 255, 255, 0.97);
    z-index: 1001;
    align-items: center;
    justify-content: center;
}

.search-overlay.active {
    display: flex;
}

.search-overlay-inner {
    width: 600px;
    max-width: 90vw;
    position: relative;
}

.search-overlay input[type="search"] {
    width: 100%;
    padding: 12px 0;
    font-family: var(--font-primary);
    font-size: 16px;
    color: var(--color-black);
    background: transparent;
    border: none;
    border-bottom: 2px solid var(--color-black);
    outline: none;
}

.search-overlay button[type="submit"] {
    display: none;
}

.search-close {
    position: absolute;
    right: 0;
    top: -40px;
    background: none;
    border: none;
    font-size: 24px;
    cursor: pointer;
    color: var(--color-black);
}

/* Push content below fixed nav */
body {
    padding-top: var(--nav-height);
}

body.home {
    padding-top: 0;
}

/* ─── Footer Override ──────────────────────────────── */
.site-footer {
    background: var(--color-white) !important;
    padding: 0 !important;
    margin: 0 !important;
    color: var(--color-black) !important;
    border-top: none !important;
}

.footer-inner {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 63px var(--content-padding) 40px;
}

.footer-columns {
    display: flex;
    gap: 100px;
}

.footer-col {
    min-width: 0;
}

.footer-heading {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 700;
    color: var(--color-black);
    text-transform: uppercase;
    margin-bottom: 10px;
}

.footer-col ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.footer-col li {
    margin-bottom: 10px;
}

.footer-col a {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 400;
    color: var(--color-black);
    text-transform: uppercase;
    text-decoration: none;
}

.footer-col .active a {
    font-weight: 700;
}

.footer-subtext {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 400;
    color: var(--color-grey);
    text-transform: uppercase;
}

/* Social icons */
.footer-social {
    display: flex;
    justify-content: center;
    gap: 50px;
    margin-top: 43px;
}

.footer-social a {
    color: var(--color-black);
}

.footer-social a:hover {
    opacity: 0.6;
}

/* Copyright */
.footer-bottom {
    text-align: center;
    margin-top: 20px;
}

.footer-bottom p {
    font-size: 11px;
    color: var(--color-grey);
    text-transform: none;
}

/* ─── Homepage ──────────────────────────────────────── */
.home .site-content {
    padding: 0;
}

.home .content-area {
    margin-bottom: 0;
}

.homepage--swiper {
    position: relative;
}

.home-swiper,
.home-swiper .swiper-wrapper,
.home-swiper .swiper-slide {
    height: 100dvh;
}
.home-slide-footer {
    background: var(--color-white);
    display: flex;
    align-items: stretch;
}
.home-slide-footer .site-footer {
    width: 100%;
    margin: 0;
}

.home-slide-footer .footer-inner {
    padding-top: calc(var(--nav-height) + 24px);
}

.homepage--swiper .home-slide {
    height: 100dvh;
    min-height: 100dvh;
}

.home-slide--custom {
    position: relative;
    overflow: hidden;
    background: var(--color-grey-light);
}

.home-slide__media {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.home-slide__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.home-slide__content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    width: 100%;
    height: 100%;
    padding: calc(var(--nav-height) + 32px) var(--content-padding) 56px;
    color: var(--color-black);
}

.home-slide__content > :first-child {
    margin-top: 0;
}

.home-slide__content > :last-child {
    margin-bottom: 0;
}

.home-slide__content p,
.home-slide__content h1,
.home-slide__content h2,
.home-slide__content h3,
.home-slide__content h4,
.home-slide__content h5,
.home-slide__content h6,
.home-slide__content li,
.home-slide__content blockquote {
    color: inherit;
}

.home-slide[data-invert-header="1"] .home-slide__content {
    color: var(--color-white);
}

.home-slide__content a {
    color: inherit;
}

.home-slide__content .wp-block-buttons {
    margin-top: 18px;
}

/* ── Per-line text background ── */
/* invert=1 → white text, so bg is black */
.home-slide[data-text-bg="1"][data-invert-header="1"] .home-slide__title span,
.home-slide[data-text-bg="1"][data-invert-header="1"] .home-slide__subtitle span,
.home-slide[data-text-bg="1"][data-invert-header="1"] .home-slide__cta span {
    background-color: var(--color-black);
    color: var(--color-white);
}

/* invert=0 → dark text, so bg is white */
.home-slide[data-text-bg="1"][data-invert-header="0"] .home-slide__title span,
.home-slide[data-text-bg="1"][data-invert-header="0"] .home-slide__subtitle span,
.home-slide[data-text-bg="1"][data-invert-header="0"] .home-slide__cta span {
    background-color: var(--color-white);
    color: var(--color-black);
}

/* Shared inline-block treatment for per-line slab effect */
.home-slide[data-text-bg="1"] .home-slide__title span,
.home-slide[data-text-bg="1"] .home-slide__subtitle span,
.home-slide[data-text-bg="1"] .home-slide__cta span {
    display: inline;
    padding: 3px 10px;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
    line-height: 1.9;
}

.home-slide[data-text-bg="1"] .home-slide__title,
.home-slide[data-text-bg="1"] .home-slide__subtitle,
.home-slide[data-text-bg="1"] .home-slide__cta-wrap {
    line-height: 0;
    margin-bottom: 6px;
}

.home-slide__overlay {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.home-slide__title,
.home-slide__subtitle {
    margin: 0;
    text-transform: uppercase;
}

.home-slide__title {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 700;
}

.home-slide__subtitle {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 400;
}

.home-slide__cta {
    margin-top: 2px;
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 400;
    text-transform: uppercase;
    text-decoration: underline;
    text-underline-offset: 3px;
    color: inherit;
}

.home-slide--custom .home-slide__overlay {
    align-self: center;
    margin-bottom: 38px;
    width: max-content;
    max-width: calc(100% - 40px);
    text-align: center;
}

.hero-band {
    width: 100%;
    height: 100dvh;
    background: var(--color-grey-light);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.hero-band img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.banner-band {
    position: relative;
    width: 100%;
    height: 100dvh;
    background: var(--color-grey-light);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.banner-band img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.banner-overlay {
    position: absolute;
    text-align: center;
    color: var(--color-white);
}

.banner-tagline {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 5px;
}

.banner-link {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 400;
    text-transform: uppercase;
    text-decoration: underline;
    text-underline-offset: 3px;
    color: var(--color-white);
}

.collection-teaser {
    position: absolute;
    bottom: 94px;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
}

.collection-teaser .collection-title {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 700;
    color: var(--color-black);
    text-transform: uppercase;
    margin-bottom: 3px;
}

.collection-teaser .collection-link {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 400;
    color: var(--color-black);
    text-transform: uppercase;
    text-decoration: none;
}

@supports not (height: 100dvh) {
    .home-swiper,
    .home-swiper .swiper-wrapper,
    .home-swiper .swiper-slide,
    .homepage--swiper .home-slide,
    .hero-band,
    .banner-band {
        height: 100vh;
        min-height: 100vh;
    }
}

/* ─── Catalog / Shop ────────────────────────────────── */
.shop-header {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 56px var(--content-padding) 45px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.shop-collection-name {
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: 400;
    color: var(--color-black);
    text-transform: uppercase;
}

.shop-filter {
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: 400;
    color: var(--color-black);
    text-transform: uppercase;
    cursor: pointer;
    background: none;
    border: none;
}

/* Product grid */
ul.products {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0 var(--content-padding);
}

ul.products::before {
    display: none !important;
    content: none !important;
}

ul.products li.product {
    margin-bottom: 45px;
}

ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 400;
    text-transform: uppercase;
    text-align: center;
    color: var(--color-black);
    padding: 16px 0 0;
}

ul.products li.product .price {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 400;
    color: var(--color-black);
    text-align: center;
}

/* Hide default Storefront elements we don't need */
ul.products li.product .button,
.storefront-sorting,
.woocommerce-breadcrumb {
    display: none !important;
}

.woocommerce-result-count {
    display: none !important;
}

.woocommerce-ordering,
form.woocommerce-ordering {
    display: none !important;
}

/* ─── Shop Header (Figma match) ────────────────────── */
.shop-header {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 56px var(--content-padding) 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border: none;
}

.shop-collection-name {
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: 400;
    color: var(--color-black);
    text-transform: uppercase;
    margin: 0;
    padding: 0;
    border: none;
}

.shop-filter {
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: 400;
    color: var(--color-black);
    text-transform: uppercase;
    cursor: pointer;
    background: none;
    border: none;
    padding: 0;
}

/* Hide default shop page title */
.woocommerce-products-header__title {
    display: none;
}

/* ─── Buttons (Figma match) ────────────────────────── */
.btn-black {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: var(--btn-height);
    min-width: 250px;
    padding: 0 30px;
    background: var(--color-black);
    color: var(--color-white);
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 400;
    text-transform: uppercase;
    border: none;
    cursor: pointer;
    text-decoration: none;
}

.btn-black:hover {
    opacity: 0.85;
    color: var(--color-white);
}

.btn-black-full {
    width: 100%;
}

/* ─── Homepage Placeholders ─────────────────────────── */
.hero-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #e8e4df, #d5cfc7, #bfb8ae);
    padding: 40px;
}

.hero-title {
    font-family: var(--font-primary);
    font-size: 48px;
    font-weight: 700;
    color: var(--color-black);
    text-transform: uppercase;
    letter-spacing: 6px;
    margin-bottom: 10px;
}

.hero-subtitle {
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: 400;
    color: var(--color-black);
    text-transform: uppercase;
    letter-spacing: 2px;
}

.banner-placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #d5cfc7, #bfb8ae, #a8a098);
}

/* ─── Product Grid Polish ───────────────────────────── */
ul.products {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 9px;
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 45px var(--content-padding);
}

ul.products::before {
    display: none;
}

ul.products li.product {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0;
    border: none;
    position: relative;
    text-align: center;
}

ul.products li.product a {
    display: block;
}

ul.products li.product .woocommerce-loop-product__link {
    display: block;
}

ul.products li.product img {
    width: 100%;
    height: 593px;
    object-fit: cover;
    display: block;
    margin-bottom: 16px;
    border-radius: 0;
}

ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 400;
    text-transform: uppercase;
    text-align: center;
    color: var(--color-black);
    padding: 0;
    margin-bottom: 5px;
    line-height: 1.3;
}

ul.products li.product .price {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 400;
    color: var(--color-black);
    text-align: center;
    display: block;
    margin-bottom: 0;
}

ul.products li.product .price .woocommerce-Price-amount {
    font-weight: 400;
}

ul.products li.product .price del {
    opacity: 0.5;
}

ul.products li.product .onsale {
    display: none;
}

/* Add to cart button — hidden on grid (per Figma) */
ul.products li.product .button {
    display: none !important;
}

/* ─── Shop Page Header ──────────────────────────────── */
.woocommerce-products-header {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 56px var(--content-padding) 0;
    border: none;
}

.woocommerce-products-header__title {
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: 400;
    color: var(--color-black);
    text-transform: uppercase;
}

/* ─── Single Product Polish ─────────────────────────── */
.single-product .site-content {
    padding: 0;
}

.single-product .site-main div.product,
.single-product .content-area div.product {
    overflow: visible !important;
}

.single-product div.product {
    display: flex;
    align-items: flex-start;
    overflow: visible !important;
}

.single-product div.product .woocommerce-product-gallery {
    flex: 0 0 48%;
    width: 48% !important;
    height: auto !important;
    float: none !important;
    clear: none !important;
    margin: 0 !important;
    margin-right: 0 !important;
    margin-bottom: 0 !important;
    opacity: 1 !important;
    background: var(--color-white);
}

.single-product div.product .woocommerce-product-gallery__trigger,
.single-product div.product .flex-control-thumbs {
    display: none !important;
}

.single-product div.product .woocommerce-product-gallery__wrapper {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    transform: none !important;
    margin: 0 !important;
}

.single-product div.product .macsaint-static-gallery {
    display: flex;
    flex-direction: column;
    gap: 0 !important;
    row-gap: 0 !important;
    column-gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.single-product div.product .macsaint-static-gallery__item {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0;
}

.single-product div.product .woocommerce-product-gallery__image {
    float: none !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    margin-bottom: 0 !important;
}

.single-product div.product .woocommerce-product-gallery__image a {
    display: block;
    width: 100%;
}

.single-product div.product .woocommerce-product-gallery__image img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto;
    aspect-ratio: 697 / 979;
    object-fit: cover;
    display: block;
}

.single-product div.product .flex-viewport {
    overflow: visible !important;
    height: auto !important;
}

.single-product div.product .summary.entry-summary {
    flex: 1 1 52%;
    width: 52% !important;
    float: none !important;
    clear: none !important;
    position: sticky;
    top: calc(var(--nav-height) + 28px);
    align-self: start;
    min-height: calc(100vh - var(--nav-height) - 28px);
    margin: 0 !important;
    padding: 48px 72px 60px 66px;
}

.single-product div.product .product_title {
    font-family: var(--font-primary);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--color-black);
    margin-bottom: 6px;
    padding: 0;
    border: none;
    line-height: 1.2;
}

.single-product div.product .price {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 400;
    color: var(--color-black);
    margin-bottom: 18px;
}

.single-product .macsaint-product-collection {
    margin-bottom: 22px;
    color: var(--color-black);
}

.single-product div.product .woocommerce-product-details__short-description {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 400;
    color: var(--color-black);
    text-transform: uppercase;
    text-align: left;
    line-height: 1.38;
    margin: 18px 0 28px;
    max-width: 330px;
}

.single-product div.product .woocommerce-product-details__short-description p {
    margin: 0;
}

/* Variations / size selector */
.single-product table.variations,
.single-product form.cart .variations {
    margin-bottom: 10px;
}

.single-product .macsaint-size-display {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    max-width: 330px;
    padding: 0 0 8px;
    border-bottom: 1px solid var(--color-black);
    margin-bottom: 10px;
}

.single-product .macsaint-size-display-label {
    font-size: var(--font-size-xs);
    font-weight: 700;
    text-transform: uppercase;
    color: var(--color-black);
}

.single-product .macsaint-size-display-value {
    display: inline-flex;
    align-items: center;
    gap: 18px;
    padding: 0;
    background: none;
    border: none;
    color: var(--color-grey);
    font-size: var(--font-size-xs);
    text-transform: uppercase;
    cursor: default;
}

.single-product .macsaint-size-display-arrow {
    width: 7px;
    height: 7px;
    border-right: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    transform: rotate(45deg) translateY(-2px);
}

.single-product .variations .reset_variations {
    display: none !important;
}

.single-product .variations .label {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 700;
    text-transform: uppercase;
    color: var(--color-black);
    padding: 0;
    width: 86px;
}

.single-product div.product table.variations select {
    width: 100% !important;
    max-width: 100% !important;
}

.single-product .variations select {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    text-transform: uppercase;
    padding: 8px 28px 8px 0;
    border: none;
    border-bottom: 1px solid var(--color-black);
    border-radius: 0;
    background: transparent;
    color: var(--color-grey);
    min-width: 220px;
}

.single-product .variations_form,
.single-product form.cart {
    max-width: 330px;
}

.single-product div.product form.cart {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    column-gap: 10px;
    row-gap: 8px;
    margin: 0;
}

.single-product div.product .macsaint-size-section,
.single-product div.product .macsaint-size-guide,
.single-product div.product .macsaint-delivery {
    flex-basis: 100%;
}

.single-product div.product .macsaint-size-section {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    column-gap: 10px;
    row-gap: 8px;
}

/* Quantity input */
.single-product div.product form.cart .quantity {
    display: none; /* Hidden in Figma design */
}

/* Add to cart button */
.single-product div.product .single_add_to_cart_button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: var(--btn-height);
    min-width: 0;
    width: calc(50% - 5px);
    padding: 0 20px;
    background: var(--color-black) !important;
    color: var(--color-white) !important;
    font-family: var(--font-primary) !important;
    font-size: var(--font-size-xs) !important;
    font-weight: 400 !important;
    text-transform: uppercase !important;
    border: none !important;
    border-radius: 0 !important;
    cursor: pointer;
    line-height: 1;
    margin: 0 !important;
}

.single-product div.product .single_add_to_cart_button:hover {
    opacity: 0.85;
    background: var(--color-black) !important;
}

.single-product .macsaint-custom-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: calc(50% - 5px);
    min-width: 0;
    height: var(--btn-height);
    padding: 0 20px;
    margin: 0 !important;
    line-height: 1;
}

.single-product .macsaint-size-guide {
    display: block;
    max-width: 330px;
    margin: 0 0 16px;
    text-align: right;
    font-size: 10px;
}

.single-product .macsaint-delivery {
    margin-top: 14px;
    font-size: 11px;
}

/* Product meta, tabs */
.single-product .product_meta,
.single-product .woocommerce-tabs {
    display: none; /* Figma doesn't show these */
}

/* Related products — hidden on all viewports */
.single-product .related.products {
    display: none;
}

/* Up-sells — disabled for all viewports */
.single-product .upsells.products {
    display: none !important;
}

/* Cross-sell ("COMPLETE THE LOOK") — mobile only, hidden on desktop */
.macsaint-cross-sells {
    display: none;
}

/* Cross-sell grid: 2 columns on all viewports to match the Figma design */
.macsaint-cross-sells ul.products {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    column-gap: 4px !important;
    row-gap: 20px !important;
    padding: 0 !important;
    max-width: 100% !important;
}

/* Cross-sell product image: compact 3:4 aspect ratio on all viewports */
.macsaint-cross-sells ul.products li.product img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 3 / 4 !important;
    object-fit: cover !important;
    margin-bottom: 0 !important;
}

/* Quick-add (+) button for cross-sell products */
.macsaint-cross-sells ul.products li.macsaint-cross-sell-item {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none;
    text-align: left;
}

.macsaint-cross-sells ul.products li.macsaint-cross-sell-item .macsaint-cross-sell-item__image {
    display: block;
    margin-bottom: 0;
}

.macsaint-cross-sells ul.products li.macsaint-cross-sell-item .macsaint-cross-sell-item__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding-top: 0;
}

.macsaint-cross-sells ul.products li.macsaint-cross-sell-item .macsaint-cross-sell-item__title {
    flex: 1 1 auto;
    min-width: 0;
    font-family: var(--font-primary);
    font-size: 11px;
    font-weight: 400;
    line-height: 1.3;
    text-align: left;
    text-transform: uppercase;
    color: var(--color-black);
    padding: 0;
    margin: 0;
}

.macsaint-cross-sells ul.products li.macsaint-cross-sell-item .macsaint-cross-sell-item__price {
    font-family: var(--font-primary);
    font-size: 11px;
    font-weight: 400;
    line-height: 1.3;
    text-align: left;
    color: var(--color-black);
    display: block;
    margin: 0;
    padding: 0;
}

.macsaint-cross-sells ul.products li.macsaint-cross-sell-item .macsaint-cross-sell-item__price .woocommerce-Price-amount,
.macsaint-cross-sells ul.products li.macsaint-cross-sell-item .macsaint-cross-sell-item__price .price {
    font-weight: 400;
    color: var(--color-black);
}

.macsaint-cross-sells ul.products li.macsaint-cross-sell-item .macsaint-cross-sell-item__button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 16px;
    height: 18px;
    margin: 0;
    padding: 0;
    background: transparent;
    color: var(--color-black);
    font-family: var(--font-primary);
    font-size: 0;
    font-weight: 300;
    line-height: 1;
    text-indent: 0;
    border: none;
    border-radius: 0;
    position: static;
    text-decoration: none;
}

.macsaint-cross-sells ul.products li.macsaint-cross-sell-item .macsaint-cross-sell-item__button::after {
    content: '+';
    font-size: 14px;
    line-height: 1;
    color: var(--color-black);
    display: inline-block;
}

.macsaint-cross-sells ul.products li.macsaint-cross-sell-item .macsaint-cross-sell-item__button:hover {
    opacity: 0.5;
    background: transparent;
}

.macsaint-cross-sells ul.products li.macsaint-cross-sell-item .macsaint-cross-sell-item__button.added::after {
    content: '✓';
    font-size: 11px;
}

.macsaint-cross-sells ul.products li.macsaint-cross-sell-item .macsaint-cross-sell-item__button.loading::after {
    display: none;
}

/* ─── Cart Page ─────────────────────────────────────── */
.woocommerce-cart .site-content {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 40px var(--content-padding);
}

.woocommerce-cart table.cart {
    border: none;
    border-radius: 0;
}

.woocommerce-cart table.cart th {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 700;
    text-transform: uppercase;
    padding: 12px 0;
}

.woocommerce-cart table.cart td {
    padding: 20px 0;
}

.woocommerce-cart .cart_item .product-name a {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    text-transform: uppercase;
    color: var(--color-black);
}

.woocommerce-cart .cart_item .product-price,
.woocommerce-cart .cart_item .product-subtotal {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
}

.woocommerce-cart .cart-collaterals {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    text-transform: uppercase;
}

.woocommerce-cart .cart-collaterals .cart_totals h2 {
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: 700;
    text-transform: uppercase;
}

.woocommerce-cart .checkout-button,
.woocommerce-cart .wc-proceed-to-checkout a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: var(--btn-height);
    min-width: 300px;
    background: var(--color-black) !important;
    color: var(--color-white) !important;
    font-family: var(--font-primary) !important;
    font-size: var(--font-size-xs) !important;
    font-weight: 400 !important;
    text-transform: uppercase !important;
    border: none !important;
    border-radius: 0 !important;
}

/* ─── Checkout ──────────────────────────────────────── */
.woocommerce-checkout .site-content {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 40px var(--content-padding);
}

.woocommerce-checkout h3 {
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: 700;
    text-transform: uppercase;
}

.woocommerce-checkout .woocommerce-input-wrapper input,
.woocommerce-checkout .woocommerce-input-wrapper textarea,
.woocommerce-checkout .select2-container .select2-selection--single {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    border-radius: 0;
    border: 1px solid var(--color-grey);
    padding: 10px 12px;
}

.woocommerce-checkout #place_order {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: var(--btn-height);
    min-width: 300px;
    background: var(--color-black) !important;
    color: var(--color-white) !important;
    font-family: var(--font-primary) !important;
    font-size: var(--font-size-xs) !important;
    font-weight: 400 !important;
    text-transform: uppercase !important;
    border: none !important;
    border-radius: 0 !important;
}

/* ─── Account Pages ─────────────────────────────────── */
.woocommerce-account .site-content {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 40px var(--content-padding);
}

/* ─── Storefront cleanup ───────────────────────────── */
.storefront-handheld-footer-bar {
    display: none !important;
}

.site-content {
    padding: 0;
}

.hentry {
    margin: 0;
}

/* ─── About Page ───────────────────────────────────── */
.page-about {
    max-width: 860px;
    margin: 0 auto;
    padding: 88px var(--content-padding) 72px;
}

.about-inner {
    text-align: center;
}

.about-title {
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: 400;
    text-transform: uppercase;
    color: var(--color-black);
    margin-bottom: 36px;
}

.about-tagline {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 700;
    text-transform: uppercase;
    max-width: 420px;
    margin: 0 auto 26px;
    line-height: 1.5;
}

.about-content {
    display: flex;
    flex-direction: column;
    gap: 42px;
}

.about-description p {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 400;
    text-transform: uppercase;
    text-align: center;
    line-height: 1.58;
    margin-bottom: 14px;
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
}

.about-image {
    width: 100%;
    max-width: 584px;
    margin: 0 auto;
}

.about-figure {
    width: 100%;
    aspect-ratio: 584 / 779;
    position: relative;
    overflow: hidden;
    background: radial-gradient(circle at 65% 24%, rgba(255, 255, 255, 0.55), transparent 18%), radial-gradient(circle at 30% 62%, rgba(255, 255, 255, 0.28), transparent 24%), linear-gradient(150deg, #161616 0%, #2b2b2b 28%, #676d73 66%, #dfe4e7 100%);
}

.about-figure::before,
.about-figure::after {
    content: '';
    position: absolute;
    border-radius: 999px;
}

.about-figure::before {
    width: 52%;
    height: 72%;
    right: 10%;
    top: 8%;
    background: linear-gradient(180deg, rgba(17, 17, 17, 0.96), rgba(45, 45, 45, 0.55));
}

.about-figure::after {
    width: 38%;
    height: 40%;
    left: 9%;
    bottom: 7%;
    background: linear-gradient(180deg, rgba(123, 90, 69, 0.96), rgba(60, 40, 29, 0.7));
}

.about-figure--intro::before {
    width: 34%;
    height: 48%;
    left: 5%;
    top: 12%;
    background: linear-gradient(180deg, rgba(100, 72, 55, 0.92), rgba(49, 35, 28, 0.76));
}

.about-figure--intro::after {
    width: 46%;
    height: 34%;
    left: 25%;
    bottom: 2%;
    background: linear-gradient(180deg, rgba(32, 32, 32, 0.98), rgba(88, 96, 101, 0.58));
}

.about-figure--story {
    aspect-ratio: 584 / 703;
    background: radial-gradient(circle at 52% 16%, rgba(255, 255, 255, 0.36), transparent 16%), linear-gradient(165deg, #141414 0%, #30343a 48%, #d7dcdf 100%);
}

.about-figure--story::before {
    width: 40%;
    height: 70%;
    right: 12%;
    top: 7%;
    background: linear-gradient(180deg, rgba(18, 18, 18, 0.98), rgba(42, 42, 42, 0.6));
}

.about-figure--story::after {
    width: 54%;
    height: 30%;
    left: 6%;
    bottom: 6%;
    background: linear-gradient(180deg, rgba(132, 95, 72, 0.98), rgba(58, 38, 28, 0.72));
}

.about-figure--look {
    background: radial-gradient(circle at 58% 18%, rgba(255, 255, 255, 0.38), transparent 18%), linear-gradient(165deg, #111111 0%, #353535 45%, #dce0e3 100%);
}

.about-figure--look::before {
    width: 48%;
    height: 72%;
    left: 18%;
    top: 10%;
    transform: rotate(6deg);
    background: linear-gradient(180deg, rgba(12, 12, 12, 0.98), rgba(55, 55, 55, 0.58));
}

.about-figure--look::after {
    width: 30%;
    height: 22%;
    right: 18%;
    bottom: 11%;
    background: linear-gradient(180deg, rgba(9, 9, 9, 0.96), rgba(66, 66, 66, 0.7));
}

.about-story h2,
.about-logo h2 {
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 20px;
}

.about-story-text p {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 400;
    text-transform: uppercase;
    text-align: center;
    line-height: 1.58;
    margin-bottom: 14px;
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
}

.about-story-image {
    max-width: 584px;
    margin: 0 auto 24px;
}

.about-logo-image {
    max-width: 240px;
    margin: 20px auto;
}

.about-logo-placeholder {
    width: 100%;
    aspect-ratio: 240 / 282;
    background: var(--color-black);
    display: flex;
    align-items: center;
    justify-content: center;
}

.about-logo-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 62%;
    height: 62%;
    border: 2px solid rgba(255, 255, 255, 0.9);
    color: var(--color-white);
    font-size: 56px;
    line-height: 1;
    letter-spacing: -6px;
    font-weight: 400;
}

/* ─── FAQ Page ─────────────────────────────────────── */
.page-faq {
    max-width: 860px;
    margin: 0 auto;
    padding: 88px var(--content-padding) 72px;
}

.faq-inner {
    max-width: 820px;
    margin: 0 auto;
}

.faq-title {
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: 700;
    text-transform: uppercase;
    text-align: center;
    margin-bottom: 10px;
}

.faq-subtitle {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 400;
    text-transform: uppercase;
    text-align: center;
    color: #575757;
    margin-bottom: 58px;
}

.faq-list {
    max-width: 100%;
    margin: 0 auto;
}

.faq-item {
    border-bottom: 1px solid #e7e7e7;
}

.faq-question {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: 18px 0 17px;
    background: none;
    border: none;
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 700;
    color: var(--color-black);
    text-transform: uppercase;
    cursor: pointer;
    text-align: left;
    line-height: 1.4;
}

.faq-question:hover {
    opacity: 0.7;
}

.faq-arrow {
    font-size: 16px;
    transition: transform 0.2s ease;
    flex-shrink: 0;
    margin-left: 20px;
}

.faq-item.open .faq-arrow {
    transform: rotate(90deg);
}

.faq-answer {
    display: none;
    padding: 0 56px 20px 0;
}

.faq-item.open .faq-answer {
    display: block;
}

.faq-answer p {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 400;
    color: var(--color-black);
    text-transform: none;
    line-height: 1.5;
    margin: 0;
}

/* ─── Services Page ────────────────────────────────── */
.page-services {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 88px var(--content-padding) 72px;
    text-align: center;
}

.services-title {
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 18px;
}

.services-welcome {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 400;
    text-transform: uppercase;
    color: #575757;
    margin-bottom: 54px;
}

.services-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(300px, 412px));
    gap: 54px 62px;
    justify-content: center;
}

.service-card {
    text-align: left;
    border: none;
    padding: 0;
}

.service-card h3 {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.service-card p {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: 400;
    text-transform: uppercase;
    margin-bottom: 18px;
    min-height: 50px;
    line-height: 1.38;
}

.service-card .btn-black {
    width: 100%;
    min-width: auto;
}

/* ─── Policy Pages (Privacy, Terms, Shipping) ──────── */
.page-template-default .entry-content {
    max-width: 700px;
    margin: 0 auto;
    padding: 100px var(--content-padding) 60px;
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    line-height: 1.5;
    text-transform: none;
}

.page-template-default .entry-content h1,
.page-template-default .entry-content h2 {
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: 700;
    text-transform: uppercase;
    text-align: center;
    margin-bottom: 20px;
}

.page-template-default .entry-content p {
    margin-bottom: 15px;
}

/* Remove Storefront page title from non-shop pages */
.page:not(.woocommerce-page) .entry-header,
.single-post .entry-header {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 40px var(--content-padding);
}

/* ─── Mobile Nav Toggle ─────────────────────────────── */
/* ══════════════════════════════════════════════════════
   Storefront Override: Full-width, no sidebar
   Figma design has NO sidebar on any page.
   ═══════════════════════════════════════════════════════ */

/* Hide sidebar globally */
#secondary,
.widget-area,
.sidebar {
    display: none !important;
}

/* Force content area full-width */
.content-area,
#primary {
    width: 100% !important;
    max-width: 100% !important;
    margin-right: 0 !important;
    float: none !important;
}

/* Remove Storefront layout constraints */
.site-content .col-full,
.col-full {
    max-width: var(--max-width) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Hide breadcrumbs (Figma has none) */
.storefront-breadcrumb,
.woocommerce-breadcrumb,
nav.woocommerce-breadcrumb {
    display: none !important;
}

/* Hide Storefront page header (Figma pages use custom headers) */
.storefront-breadcrumb {
    display: none !important;
}

/* Remove default Storefront content padding */
.site-content {
    padding: 0 !important;
    margin-top: 0 !important;
}

/* Force full-width storefront content wrapper */
.storefront-full-width-content .site-main,
.storefront-full-width-content .content-area {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
}

/* ─── Hamburger Button ─────────────────────────────── */
.nav-hamburger {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 24px;
    height: 24px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    z-index: 1002;
}

.nav-hamburger span {
    display: block;
    width: 100%;
    height: 2px;
    background: var(--color-black);
    transition: transform 0.25s ease, opacity 0.25s ease;
}

.nav-hamburger.active span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.nav-hamburger.active span:nth-child(2) {
    opacity: 0;
}

.nav-hamburger.active span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

/* Mobile nav overlay */
.mobile-nav-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: var(--color-white);
    z-index: 1000;
    padding: 80px 24px 24px;
    overflow-y: auto;
}

.mobile-nav-overlay.active {
    display: block;
}

.mobile-nav-close {
    position: absolute;
    top: 28px;
    right: 24px;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
    color: var(--color-black);
    background: none;
    border: none;
}

.mobile-nav-content {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.mobile-nav-content ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.mobile-nav-content ul a {
    font-family: var(--font-primary);
    font-size: 18px;
    font-weight: 400;
    color: var(--color-black);
    text-transform: uppercase;
    text-decoration: none;
}

.mobile-nav-content ul .current-menu-item a {
    font-weight: 700;
}

.mobile-nav-right {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid var(--color-grey-light);
}

/* ─── Responsive Breakpoints ───────────────────────── */

/* Tablet / Small Desktop (768px - 1024px) */
@media (max-width: 1024px) {
    :root {
        --nav-height: 64px;
        --content-padding: 20px;
    }

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

    .nav-left {
        display: none;
    }

    .nav-hamburger {
        display: flex;
        justify-self: start;
    }

    .site-branding {
        justify-self: center;
        text-align: center;
    }

    .nav-right {
        justify-self: end;
        gap: 12px;
    }

    .nav-login {
        display: none;
    }

    /* Homepage */
    body.home {
        padding-top: 0;
    }

    .hero-band {
        min-height: 100dvh;
    }

    .hero-title {
        font-size: 28px;
        letter-spacing: 3px;
    }

    .banner-band {
        min-height: 100dvh;
    }

    .collection-teaser {
        bottom: 40px;
    }

    .home-slide--custom .home-slide__overlay {
        margin-bottom: 0;
    }

    .home-slide__content {
        padding: calc(var(--nav-height) + 24px) 20px 40px;
    }

    /* Product grid */
    ul.products {
        grid-template-columns: repeat(2, 1fr);
        gap: 6px;
        padding: 16px;
    }

    ul.products li.product img {
        height: auto;
        aspect-ratio: 4 / 5;
    }

    /* Shop header */
    .shop-header {
        padding: 30px 16px 0;
    }

    /* Single product */
    .single-product div.product {
        flex-direction: column;
    }

    .single-product div.product .woocommerce-product-gallery {
        width: 100% !important;
        flex: none;
        float: none;
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .single-product div.product .woocommerce-product-gallery::-webkit-scrollbar {
        display: none;
    }

    .single-product div.product .woocommerce-product-gallery__trigger {
        display: none !important;
    }

    .single-product div.product .woocommerce-product-gallery__image,
    .single-product div.product .macsaint-static-gallery__item {
        flex: 0 0 100%;
        scroll-snap-align: start;
        width: 100% !important;
        float: none !important;
    }

    .single-product div.product .woocommerce-product-gallery__image a,
    .single-product div.product .macsaint-static-gallery__item a {
        display: block;
    }

    .single-product div.product .summary.entry-summary {
        width: 100% !important;
        float: none;
        position: static;
        min-height: 0;
        padding: 24px 16px;
    }

    .single-product div.product .woocommerce-product-gallery__image img {
        height: auto;
        aspect-ratio: 3 / 4;
    }

    /* Footer — single column, centered text on mobile */
    .footer-columns {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 24px;
    }

    .footer-col {
        width: 100%;
    }

    .footer-col ul {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 6px;
    }

    .footer-col li {
        margin-bottom: 0;
    }

    .footer-inner {
        padding: 40px 20px 30px;
    }

    .footer-social {
        gap: 40px;
        margin-top: 24px;
    }

    .footer-heading {
        font-size: 12px;
    }

    .footer-col a {
        font-size: 12px;
    }

    /* Cart / Checkout */
    .woocommerce-cart .site-content,
    .woocommerce-checkout .site-content {
        padding: 16px;
    }

    .woocommerce-cart table.cart td {
        padding: 10px 4px;
    }

    /* Buttons full-width on mobile */
    .single_add_to_cart_button {
        width: 100%;
        min-width: auto;
    }

    .macsaint-custom-btn {
        width: 100%;
        min-width: auto;
        margin-left: 0;
        margin-top: 8px;
    }

    .single-product .variations_form,
    .single-product form.cart,
    .single-product .macsaint-size-guide,
    .single-product .macsaint-size-display,
    .single-product div.product .woocommerce-product-details__short-description {
        max-width: 100%;
    }

    /* Account pages */
    .woocommerce-account .site-content {
        padding: 16px;
    }

    /* Services page */
    .services-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
        padding: 0 16px;
    }

    .page-services {
        padding: 60px 20px 40px;
    }

    /* FAQ page */
    .page-faq {
        padding: 60px 16px 40px;
    }

    /* About page */
    .page-about {
        padding: 60px 16px 40px;
    }

    .about-content {
        gap: 34px;
    }
}

/* Phone (up to 767px) */
@media (max-width: 767px) {
    ul.products {
        grid-template-columns: repeat(2, 1fr);
        gap: 4px;
        padding: 12px;
    }

    ul.products li.product img {
        height: auto;
        aspect-ratio: 3 / 4;
    }

    ul.products li.product .woocommerce-loop-product__title {
        font-size: 10px;
        padding-top: 8px;
    }

    ul.products li.product .price {
        font-size: 10px;
    }

    /* Shop header compact */
    .shop-header {
        padding: 24px 12px 0;
    }

    .shop-collection-name,
    .shop-filter {
        font-size: 11px;
    }

    .shop-filter {
        gap: 6px;
    }

    .hero-band {
        min-height: 100dvh;
    }

    .hero-title {
        font-size: 20px;
    }

    .hero-subtitle {
        font-size: 10px;
    }

    .banner-band {
        min-height: 100dvh;
    }

    .site-logo .logo-text {
        font-size: 12px;
    }

    .home-slide__content {
        padding: calc(var(--nav-height) + 20px) 16px 32px;
    }

    .nav-right {
        gap: 8px;
    }

    .nav-lang {
        display: none;
    }

    /* Footer compact — single column */

    .footer-inner {
        padding: 30px 16px 24px;
    }

    .footer-columns {
        gap: 20px;
    }

    .footer-heading {
        font-size: 12px;
        margin-bottom: 8px;
    }

    .footer-col a {
        font-size: 12px;
    }

    .footer-col ul {
        gap: 8px;
    }

    .footer-social {
        gap: 40px;
        margin-top: 24px;
    }

    .footer-columns {
        gap: 16px 20px;
    }

    .footer-heading {
        font-size: 9px;
        margin-bottom: 6px;
    }

    .footer-col a {
        font-size: 9px;
    }

    .footer-col li {
        margin-bottom: 4px;
    }

    .footer-social {
        gap: 30px;
        margin-top: 20px;
    }

    .footer-social a {
        width: 16px;
        height: 16px;
    }

    .footer-social a svg {
        width: 16px;
        height: 16px;
    }

    .footer-bottom p {
        font-size: 9px;
    }

    /* Services — single column on phone */
    .services-grid {
        grid-template-columns: 1fr;
        gap: 28px;
        padding: 0;
    }

    .page-services {
        padding: 48px 16px 32px;
    }

    /* FAQ compact */
    .faq-question {
        font-size: 10px;
        padding: 16px 0;
    }

    .faq-subtitle {
        margin-bottom: 36px;
    }

    .faq-answer {
        padding: 0 0 18px;
    }

    .page-faq {
        padding: 48px 16px 32px;
    }

    .page-about {
        padding: 48px 16px 32px;
    }

    .about-title {
        margin-bottom: 28px;
    }

    .about-tagline,
    .about-description p,
    .about-story-text p {
        max-width: 100%;
    }

    .about-logo-image {
        max-width: 156px;
    }

    .about-logo-mark {
        font-size: 40px;
        letter-spacing: -4px;
    }

    /* Product detail — mobile fixes */
    .single-product div.product .summary.entry-summary {
        padding: 24px 16px;
    }

    .single-product .variations select,
    .single-product .variations_form select {
        width: 100%;
    }

    .single-product div.product .single_add_to_cart_button,
    .single-product .macsaint-custom-btn {
        width: 100%;
        min-width: auto;
        margin-left: 0;
        margin-top: 8px;
    }

    .single-product div.product form.cart .quantity {
        display: none !important;
    }

    /* Cross-sell ("COMPLETE THE LOOK") — visible on mobile */
    .macsaint-cross-sells {
        display: block;
        padding: 0 12px 32px;
    }

    .macsaint-cross-sells__title {
        font-family: var(--font-primary);
        font-size: 14px;
        font-weight: 700;
        text-transform: uppercase;
        text-align: center;
        color: var(--color-black);
        margin-bottom: 16px;
    }

    .macsaint-cross-sells ul.products li.macsaint-cross-sell-item .macsaint-cross-sell-item__title {
        font-size: 10px;
    }

    .macsaint-cross-sells ul.products li.macsaint-cross-sell-item .macsaint-cross-sell-item__price {
        font-size: 10px;
    }

    .macsaint-cross-sells ul.products li.macsaint-cross-sell-item .macsaint-cross-sell-item__button {
        font-size: 0;
        height: 16px;
        display: inline-flex !important;
    }

    .macsaint-cross-sells ul.products li.macsaint-cross-sell-item .macsaint-cross-sell-item__button::after {
        font-size: 12px;
    }

    .macsaint-cross-sells ul.products li.macsaint-cross-sell-item .macsaint-cross-sell-item__button.added::after {
        font-size: 9px;
    }
}
