@media (max-width: 1100px) {
    .header-inner { grid-template-columns: auto auto 1fr; }
    .menu-toggle {
        display: inline-grid;
        gap: 5px;
        width: 44px;
        height: 44px;
        padding: 10px;
        background: var(--color-primary);
    }
    .menu-toggle span:not(.screen-reader-text) {
        display: block;
        height: 2px;
        background: #fff;
    }
    .primary-navigation {
        position: fixed;
        top: 62px;
        right: 0;
        bottom: 0;
        left: 0;
        display: none;
        width: 100vw;
        max-width: 100%;
        padding: 1rem;
        box-sizing: border-box;
        background: var(--color-light);
        box-shadow: var(--shadow-soft);
        z-index: 1001;
    }
    .primary-navigation.is-open { display: block; }
    .primary-navigation ul {
        display: grid;
        justify-content: stretch;
        gap: .85rem;
    }
    .primary-navigation .sub-menu {
        position: static;
        display: grid;
        box-shadow: none;
        padding-left: 1rem;
    }
    .header-actions { justify-content: end; }
    .header-actions .search-form { display: none; }
    .hero-home { min-height: auto; grid-template-columns: 1fr; }
    .family-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .footer-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 780px) {
    .page-shell, .esther-section, .hero-home, .newsletter-section { padding: 3rem 1rem; }
    .header-inner { grid-template-columns: auto 1fr auto; align-items: center; }
    .header-actions { grid-column: auto; justify-self: end; justify-content: flex-end; }
    .entry-grid, .product-grid-demo, .promo-grid, .special-grid, .shop-layout { grid-template-columns: 1fr; }
    .brand-story, .newsletter-section { grid-template-columns: 1fr; }
    .family-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .shop-filters { position: static; }
    .newsletter-form { flex-direction: column; align-items: stretch; }
    .newsletter-form input { min-width: 0; width: 100%; }
    .footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 520px) {
    h1 { font-size: 2.35rem; }
    h2 { font-size: 1.85rem; }
    .hero-actions { flex-direction: column; align-items: stretch; }
    .family-grid, .footer-grid { grid-template-columns: 1fr; }
}

@media (max-width: 1180px) {
    .hero-home {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .hero-copy,
    .hero-image {
        min-height: auto;
    }

    .hero-image {
        height: min(70vh, 720px);
    }

    .hero-note {
        position: static;
        width: auto;
        margin: -5rem 2rem 2rem auto;
    }

    .entry-grid,
    .family-grid,
    .special-grid,
    .woocommerce ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

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

@media (max-width: 820px) {
    .header-inner {
        padding: .85rem 1rem;
    }

    .primary-navigation {
        top: 62px;
        right: 0;
        bottom: 0;
        left: 0;
        width: 100vw;
        max-width: 100%;
        box-sizing: border-box;
        max-height: calc(100vh - 62px);
        overflow: auto;
    }

    .hero-copy {
        padding: 3.2rem 1.2rem;
    }

    .hero-image {
        height: 58vh;
        min-height: 360px;
    }

    .hero-note {
        margin: 0;
        padding: 1.1rem 1.2rem;
        border-left: 0;
        border-right: 0;
    }

    .entry-grid,
    .family-grid,
    .special-grid,
    .promo-grid,
    .shop-layout {
        grid-template-columns: 1fr;
    }

    .entry-card {
        min-height: 390px;
    }

    .product-grid-demo,
    .woocommerce ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.5rem .85rem;
    }

    .brand-story {
        grid-template-columns: 1fr;
        gap: 1.6rem;
    }

    .newsletter-section {
        grid-template-columns: 1fr;
    }

    .shop-filters {
        position: static;
    }
}

@media (max-width: 460px) {
    .page-shell,
    .esther-section,
    .newsletter-section {
        padding: 3.5rem 1rem;
    }

    h1 {
        font-size: 2.55rem;
    }

    h2 {
        font-size: 2.1rem;
    }

    .header-actions {
        gap: .55rem;
        font-size: .72rem;
    }

    .product-grid-demo,
    .woocommerce ul.products {
        grid-template-columns: 1fr;
    }

    .entry-card span {
        bottom: 5.3rem;
        font-size: 2.1rem;
    }
}

@media (max-width: 1180px) {
    .primary-navigation .menu > li > a {
        justify-content: flex-start;
        width: 100%;
        text-align: left;
    }

    .primary-navigation .sub-menu {
        width: 100%;
        border: 0;
        background: #f8f4ee;
    }
}

@media (max-width: 640px) {
    .woocommerce ul.products li.product .woocommerce-loop-product__title {
        min-height: auto;
    }

    .woocommerce ul.products li.product a img,
    .product-card-demo img {
        min-height: 220px;
    }

    .woocommerce-result-count,
    .woocommerce-ordering {
        float: none;
        width: 100%;
    }

    .woocommerce-ordering select {
        width: 100%;
    }

    .woocommerce div.product {
        padding: 2.5rem 1rem;
    }
}

@media (max-width: 1180px) {
    .site-main {
        padding-top: 62px;
    }

    body.home .site-main,
    body.front-page .site-main {
        padding-top: 0;
    }

    .hero-home {
        display: block;
        min-height: calc(100vh - 62px);
    }

    .hero-image {
        position: absolute;
        height: 100%;
        min-height: 100%;
    }

    .hero-copy {
        position: absolute;
        padding: 0;
    }

    .product-grid-demo,
    .woocommerce ul.products {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

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

@media (max-width: 760px) {
    .header-inner {
        min-height: 60px;
        padding: 0 16px;
    }

    .header-left-tools,
    .header-actions {
        gap: 12px;
    }

    .site-logo span {
        font-size: 1.55rem;
    }

    .site-logo small {
        display: none;
    }

    .primary-navigation {
        top: 62px;
        right: 0;
        bottom: 0;
        left: 0;
        width: 100vw;
        max-width: 100%;
        box-sizing: border-box;
        padding: 28px 22px;
    }

    .hero-copy {
        left: 24px;
        right: 24px;
        bottom: 42px;
    }

    .hero-copy h1 {
        font-size: clamp(2.65rem, 12vw, 4.2rem);
    }

    .hero-copy p {
        font-size: 1rem !important;
    }

    .product-grid-demo,
    .woocommerce ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 3px;
    }

    .product-card-demo h3,
    .woocommerce ul.products li.product .woocommerce-loop-product__title {
        font-size: 1rem;
    }

    .entry-grid,
    .family-grid,
    .special-grid,
    .promo-grid {
        grid-template-columns: 1fr;
    }

    .entry-card,
    .family-card {
        min-height: 410px;
    }
}

@media (max-width: 430px) {
    .header-actions {
        gap: 8px;
    }

    .search-toggle,
    .header-icon {
        width: 20px;
        font-size: 1rem;
    }

    .product-grid-demo,
    .woocommerce ul.products {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .search-toggle svg,
    .header-icon svg {
        width: 19px;
        height: 19px;
    }

    .primary-navigation .menu > li > a {
        font-size: 1.16rem;
    }

    .primary-navigation .sub-menu a {
        font-size: .84rem;
    }

    .button,
    button,
    input[type="submit"],
    .wp-element-button {
        min-width: 0;
        max-width: 100%;
    }

    .shop-layout.page-shell {
        padding: 4.5rem 14px 3rem;
    }

    .single-product-shell {
        padding: 4.5rem 14px 3rem;
    }

    .single-product form.cart {
        grid-template-columns: 92px minmax(0, 1fr);
        max-width: none;
    }

    .single-product .woocommerce div.product div.images,
    .single-product .woocommerce div.product div.summary {
        margin-bottom: 2rem;
    }
}

@media (max-width: 430px) {
    .site-logo span {
        font-size: 1.36rem;
    }

    .header-inner {
        grid-template-columns: auto 1fr auto;
        gap: 10px;
    }

    .header-left-tools,
    .header-actions {
        gap: 7px;
    }

    .search-toggle svg,
    .header-icon svg {
        width: 18px;
        height: 18px;
    }

    .hero-copy h1 {
        font-size: clamp(2.25rem, 11vw, 3.4rem);
    }

    .single-product form.cart {
        grid-template-columns: 1fr;
    }
}

/* Capa final: paginas de catalogo a ancho completo y textos contenidos. */
@media (max-width: 1180px) {
    .page-shell {
        width: 100%;
        max-width: none;
        padding-left: 20px;
        padding-right: 20px;
    }

    .content-page--wide .nueva-seleccion,
    .content-page--wide .categorias-principales,
    .content-page--wide .outlet-section,
    .content-page--wide .seleccion-especial,
    .content-page--wide .newsletter-section {
        margin-left: -20px;
        margin-right: -20px;
        padding-left: 20px;
        padding-right: 20px;
    }

    .product-grid-demo,
    .woocommerce ul.products {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .entry-grid,
    .family-grid,
    .special-grid,
    .promo-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .page-shell {
        padding: 3.6rem 14px 3rem;
    }

    .content-page--wide .nueva-seleccion,
    .content-page--wide .categorias-principales,
    .content-page--wide .outlet-section,
    .content-page--wide .seleccion-especial,
    .content-page--wide .newsletter-section {
        margin-left: -14px;
        margin-right: -14px;
        padding-left: 14px;
        padding-right: 14px;
    }

    .page-title-block h1 {
        font-size: clamp(2.35rem, 12vw, 3.8rem);
    }

    .entry-grid,
    .family-grid,
    .special-grid,
    .promo-grid,
    .shop-layout {
        grid-template-columns: 1fr;
    }

    .entry-card,
    .family-card {
        min-height: 360px;
    }

    .entry-card span {
        left: 1.1rem;
        right: 1.1rem;
        bottom: 5rem;
        font-size: clamp(2rem, 10vw, 3rem);
    }

    .entry-card p {
        left: 1.1rem;
        right: 1.1rem;
        bottom: 1.4rem;
    }

    .product-grid-demo,
    .woocommerce ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 4px;
    }

    .product-card-demo h3,
    .woocommerce ul.products li.product .woocommerce-loop-product__title {
        font-size: .98rem;
    }

    .content-page:not(.content-page--wide) {
        padding: 1.35rem;
    }

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

    .content-page:not(.content-page--wide) .page-title-block h1 {
        font-size: clamp(2rem, 10vw, 2.75rem);
    }
}

@media (max-width: 430px) {
    .product-grid-demo,
    .woocommerce ul.products {
        grid-template-columns: 1fr;
    }

    .product-card-demo h3,
    .woocommerce ul.products li.product .woocommerce-loop-product__title {
        max-height: none;
        -webkit-line-clamp: 3;
    }
}
