:root {
    --color-primary: #1f4e79;
    --color-primary-dark: #153956;
    --color-accent: #c8a86b;
    --color-warm: #f4efe7;
    --color-sand: #e8dcc8;
    --color-light: #fffaf3;
    --color-text: #2f2a25;
    --color-muted: #766f66;
    --border-radius: 18px;
    --shadow-soft: 0 12px 30px rgba(0,0,0,0.08);
}

* { box-sizing: border-box; }
body {
    margin: 0;
    color: var(--color-text);
    background: var(--color-light);
    font-family: "Inter", "Segoe UI", Arial, sans-serif;
    line-height: 1.6;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }
.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    border: 0;
}
.skip-link:focus {
    position: fixed;
    top: 1rem;
    left: 1rem;
    z-index: 999;
    width: auto;
    height: auto;
    padding: .75rem 1rem;
    background: #fff;
    clip: auto;
}

.top-bar {
    padding: .55rem 1rem;
    color: #fff;
    background: var(--color-primary-dark);
    text-align: center;
    font-size: .9rem;
}
.site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(255,250,243,.96);
    box-shadow: 0 1px 0 rgba(31,78,121,.12);
    backdrop-filter: blur(12px);
}
.header-inner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 1.25rem;
    max-width: 1240px;
    margin: 0 auto;
    padding: 1rem 1.25rem;
}
.site-logo {
    color: var(--color-primary);
    font-weight: 800;
    line-height: 1.05;
}
.site-logo span { display: block; font-size: 1.45rem; }
.site-logo small { display: block; color: var(--color-muted); font-size: .78rem; font-weight: 600; }
.primary-navigation ul {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.2rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.primary-navigation a {
    color: var(--color-primary-dark);
    font-weight: 700;
    font-size: .94rem;
}
.primary-navigation .sub-menu {
    position: absolute;
    display: none;
    width: auto;
    min-width: 260px;
    max-width: min(360px, calc(100vw - 2rem));
    padding: .75rem;
    background: #fff;
    border-radius: 12px;
    box-shadow: var(--shadow-soft);
    box-sizing: border-box;
    white-space: normal;
    word-break: break-word;
    overflow-wrap: anywhere;
}
.primary-navigation li:hover > .sub-menu,
.primary-navigation li:focus-within > .sub-menu { display: grid; gap: .5rem; }
.header-actions {
    display: flex;
    align-items: center;
    gap: .75rem;
    color: var(--color-primary);
    font-weight: 700;
    font-size: .9rem;
}
.header-actions .search-form { display: flex; }
.header-actions input[type="search"] {
    max-width: 140px;
    border: 1px solid var(--color-sand);
    border-radius: 999px;
    padding: .45rem .75rem;
    background: #fff;
}
.header-actions .search-submit { display: none; }
.menu-toggle { display: none; }

.site-main { min-height: 70vh; }
.page-shell, .esther-section, .hero-home, .newsletter-section {
    max-width: 1240px;
    margin: 0 auto;
    padding: 4.5rem 1.25rem;
}
.content-page {
    max-width: 900px;
    margin: 0 auto;
    background: #fff;
    border-radius: var(--border-radius);
    padding: 2rem;
    box-shadow: var(--shadow-soft);
}
h1, h2, h3 {
    margin: 0 0 1rem;
    color: var(--color-primary-dark);
    line-height: 1.12;
    font-family: Georgia, "Times New Roman", serif;
}
h1 { font-size: clamp(2.4rem, 5vw, 4.8rem); }
h2 { font-size: clamp(2rem, 3vw, 3rem); }
h3 { font-size: 1.25rem; }
.esther-eyebrow {
    margin: 0 0 .8rem;
    color: var(--color-accent);
    text-transform: uppercase;
    letter-spacing: 0;
    font-weight: 800;
    font-size: .78rem;
}
.esther-section-head {
    max-width: 720px;
    margin-bottom: 2rem;
}
.button, button, input[type="submit"], .woocommerce a.button, .woocommerce button.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    border: 0;
    border-radius: 999px;
    padding: .75rem 1.25rem;
    color: #fff;
    background: var(--color-primary);
    font-weight: 800;
    cursor: pointer;
}
.button.secondary {
    color: var(--color-primary);
    background: #fff;
    box-shadow: inset 0 0 0 1px var(--color-sand);
}

.hero-home {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(340px, .9fr);
    gap: 2rem;
    align-items: center;
    min-height: 680px;
}
.hero-copy p:not(.esther-eyebrow) {
    max-width: 620px;
    color: var(--color-muted);
    font-size: 1.15rem;
}
.hero-actions { display: flex; flex-wrap: wrap; gap: .9rem; margin-top: 1.5rem; }
.hero-image img {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    border-radius: var(--border-radius);
    box-shadow: var(--shadow-soft);
}

.entry-grid, .product-grid-demo, .family-grid, .promo-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
}
.entry-card, .product-card-demo, .family-card, .promo-grid article, .special-card {
    background: #fff;
    border: 1px solid rgba(31,78,121,.08);
    border-radius: var(--border-radius);
    overflow: hidden;
    box-shadow: var(--shadow-soft);
}
.entry-card { padding-bottom: 1.25rem; }
.entry-card img, .family-card img, .special-card img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}
.entry-card span, .entry-card p, .family-card h3, .family-card p, .special-card h3, .special-card p { margin-left: 1.1rem; margin-right: 1.1rem; }
.entry-card span {
    display: block;
    margin-top: 1rem;
    color: var(--color-primary);
    font-size: 1.35rem;
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 700;
}
.entry-card p, .family-card p, .product-card-demo p, .special-card p { color: var(--color-muted); }

.brand-story {
    display: grid;
    grid-template-columns: .8fr 1fr;
    gap: 2rem;
    border-radius: var(--border-radius);
    background: var(--color-warm);
}
.brand-story p:last-child { font-size: 1.15rem; }
.product-grid-demo { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.product-card-demo { padding-bottom: 1.1rem; }
.product-card-demo-link {
    display: block;
    height: 100%;
}
.product-image-wrap { position: relative; }
.product-card-demo img {
    width: 100%;
    aspect-ratio: 1 / 1.12;
    object-fit: cover;
}
.badge, .esther-product-badges span, .special-card span, .promo-grid span {
    display: inline-flex;
    width: fit-content;
    border-radius: 999px;
    padding: .35rem .65rem;
    color: var(--color-primary-dark);
    background: #f4e7c8;
    font-size: .75rem;
    font-weight: 800;
}
.product-image-wrap .badge {
    position: absolute;
    top: .75rem;
    left: .75rem;
}
.product-card-demo h3, .product-card-demo p, .product-card-demo strong { margin-left: 1rem; margin-right: 1rem; }
.product-family { color: var(--color-accent); font-size: .82rem; font-weight: 800; }

.accordion-list {
    display: grid;
    gap: .8rem;
    margin-bottom: 1.5rem;
}
details {
    border: 1px solid var(--color-sand);
    border-radius: 14px;
    padding: 1rem 1.15rem;
    background: #fff;
}
summary {
    color: var(--color-primary-dark);
    cursor: pointer;
    font-weight: 800;
}

.decoracion-familias { background: linear-gradient(180deg, transparent, var(--color-warm)); }
.family-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.family-card h3 { margin-top: 1rem; font-size: 1rem; }

.outlet-section {
    border-radius: var(--border-radius);
    background: var(--color-primary-dark);
    color: #fff;
}
.outlet-section h2, .outlet-section h3, .outlet-section .esther-section-head p { color: #fff; }
.promo-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 2rem; }
.promo-grid article { padding: 1.25rem; color: var(--color-text); }

.seleccion-especial {
    background: #fff;
    border-top: 1px solid var(--color-sand);
    border-bottom: 1px solid var(--color-sand);
}
.special-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
}
.special-card span { margin: 1rem 1rem 0; background: var(--color-primary); color: #fff; }

.newsletter-section {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 1.5rem;
    margin-bottom: 4rem;
    border-radius: var(--border-radius);
    background: var(--color-warm);
}
.newsletter-form {
    display: flex;
    gap: .75rem;
}
.newsletter-form input {
    min-width: 280px;
    border: 1px solid var(--color-sand);
    border-radius: 999px;
    padding: .8rem 1rem;
    background: #fff;
}

.shop-layout {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 2rem;
    align-items: start;
}
.product-filter-toggle {
    display: none;
}
.shop-filters {
    position: sticky;
    top: 120px;
    padding: 1.25rem;
    background: #fff;
    border-radius: var(--border-radius);
    box-shadow: var(--shadow-soft);
    max-width: 100%;
}
.icon-inner-count {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 12px;
    height: 12px;
    border-radius: 999px;
    padding: 0 3px;
    color: #fff;
    background: #111;
    font-size: .48rem;
    font-weight: 800;
    line-height: 1;
    transform: translate(-50%, -40%);
}
.cart-icon .icon-inner-count {
    min-width: 14px;
    height: 12px;
    padding: 0 3px;
    font-size: .46rem;
    transform: translate(-50%, 5%);
    white-space: nowrap;
}
.favorite-product-button {
    gap: .45rem;
    border: 1px solid #ddd;
    color: #111;
    background: #fff;
}
.favorite-product-button svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.favorite-product-button.is-favorite {
    border-color: #111;
    color: #fff;
    background: #111;
}
.favorite-product-button.is-favorite svg {
    fill: currentColor;
}
.favorite-product-button--single {
    min-height: 44px;
    margin: 0 0 1rem;
    border-radius: 999px;
    padding: .75rem 1.1rem;
}
.favorites-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.25rem;
}
.favorite-card {
    position: relative;
}
.favorite-card-link {
    display: block;
}
.favorite-card img {
    width: 100%;
    aspect-ratio: 1 / 1.32;
    object-fit: cover;
    background: #f8f8f8;
}
.favorite-remove-button {
    width: calc(100% - 20px);
    min-height: 40px;
    margin: .75rem 10px 0;
    border-radius: 0;
    color: #111;
    background: #fff;
    box-shadow: inset 0 0 0 1px #ddd;
    text-transform: uppercase;
    font-size: .78rem;
}
.favorites-empty {
    max-width: 620px;
    padding: 2rem;
    border: 1px solid #eee;
    background: #fff;
}
.shop-filters h2 {
    margin: 0 0 1rem;
    font-size: 1.45rem;
    line-height: 1.1;
    white-space: nowrap;
    overflow-wrap: normal;
}
.visual-filters { display: grid; gap: 1rem; }
.visual-filters label { display: grid; gap: .35rem; color: var(--color-muted); font-weight: 700; font-size: .95rem; overflow-wrap: normal; }
.visual-filters label.checkbox-filter { display: flex; align-items: center; gap: .65rem; font-weight: 600; }
.visual-filters label.checkbox-filter input {
    margin: 0;
}
.visual-filters input,
.visual-filters select {
    width: 100%;
    min-width: 0;
    border: 1px solid var(--color-sand);
    border-radius: 10px;
    padding: .75rem .9rem;
    background: #fff;
    color: #111;
}
.visual-filters input::placeholder {
    color: var(--color-muted);
}
.esther-product-badges {
    position: absolute;
    z-index: 4;
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    padding: .65rem;
}
.woocommerce ul.products li.product {
    overflow: hidden;
    position: relative;
    border-radius: var(--border-radius);
    background: #fff;
    box-shadow: var(--shadow-soft);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price { padding-left: 1rem; padding-right: 1rem; }
.woocommerce ul.products li.product .button { margin-left: 1rem; margin-bottom: 1rem; }
.product-extra-accordions {
    max-width: 980px;
    margin: 2rem auto;
    padding: 0 1.25rem;
}

.site-footer {
    padding: 3rem 1.25rem 1.5rem;
    color: #fff;
    background: var(--color-primary-dark);
}
.footer-grid {
    display: grid;
    grid-template-columns: 1.4fr repeat(5, 1fr);
    gap: 2rem;
    max-width: 1240px;
    margin: 0 auto;
}
.site-footer h2 { color: #fff; font-size: 1.1rem; }
.site-footer a {
    display: block;
    margin: .35rem 0;
    color: rgba(255,255,255,.82);
}
.footer-copy {
    max-width: 1240px;
    margin: 2rem auto 0;
    color: rgba(255,255,255,.7);
    font-size: .9rem;
}
.footer-language {
    max-width: 1480px;
    margin: 2rem auto 0;
    font-size: .9rem;
}
.footer-language a,
.footer-language select {
    margin: 0;
}
.kit-digital-footer {
    display: grid;
    gap: 1rem;
    max-width: 1480px;
    margin: 2rem auto 0;
    padding-top: 1.5rem;
    border-top: 1px solid #eee;
}
.kit-digital-footer p {
    max-width: 760px;
    margin: 0;
    color: #555;
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.45;
    text-transform: uppercase;
}
.kit-digital-logos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.4rem;
}
.kit-digital-logos img {
    width: auto;
    max-width: 190px;
    max-height: 44px;
    object-fit: contain;
}

/* Perez 78 inspired editorial layer: tienda limpia, visual y muy navegable. */
body {
    background: #fff;
    color: #1d1a16;
}

.top-bar {
    background: #111;
    color: #fff;
    font-size: .76rem;
    font-weight: 700;
    text-transform: uppercase;
}

.site-header {
    background: rgba(255,255,255,.98);
    box-shadow: 0 1px 0 rgba(0,0,0,.08);
}

.header-inner {
    max-width: 1480px;
    min-height: 78px;
    padding: 1rem 2rem;
}

.site-logo {
    color: #111;
    letter-spacing: 0;
}

.site-logo span {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.65rem;
}

.site-logo small {
    color: var(--color-primary);
    text-transform: uppercase;
    font-size: .68rem;
}

.primary-navigation a,
.header-actions a {
    color: #141414;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: 0;
}

.primary-navigation a:hover,
.header-actions a:hover {
    color: var(--color-primary);
}

.primary-navigation .sub-menu {
    border-radius: 0;
    border: 1px solid rgba(0,0,0,.08);
    box-shadow: 0 18px 40px rgba(0,0,0,.09);
}

.header-actions input[type="search"] {
    border-radius: 0;
    border-color: #ddd;
    background: #fafafa;
}

.page-shell,
.esther-section,
.newsletter-section {
    max-width: 1480px;
    padding: 5.5rem 2rem;
}

h1,
h2,
h3 {
    color: #111;
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 500;
}

h1 {
    max-width: 780px;
    font-size: clamp(3rem, 5.8vw, 6.8rem);
    letter-spacing: 0;
}

h2 {
    font-size: clamp(2.2rem, 4vw, 4.7rem);
}

.esther-eyebrow {
    color: var(--color-primary);
    font-size: .73rem;
    letter-spacing: 0;
}

.esther-section-head {
    max-width: 860px;
    margin: 0 auto 2.6rem;
    text-align: center;
}

.esther-section-head p {
    max-width: 650px;
    margin: 0 auto;
    color: #6d665e;
}

.button,
button,
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button {
    border-radius: 0;
    min-height: 46px;
    padding: .85rem 1.55rem;
    background: #111;
    color: #fff;
    text-transform: uppercase;
    font-size: .75rem;
    letter-spacing: 0;
}

.button:hover,
button:hover,
input[type="submit"]:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
    background: var(--color-primary);
    color: #fff;
}

.button.secondary {
    background: #fff;
    color: #111;
    box-shadow: inset 0 0 0 1px #111;
}

.hero-home {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
    gap: 0;
    max-width: none;
    min-height: calc(100vh - 118px);
    padding: 0;
    background: #f7f1e8;
}

.hero-copy {
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 680px;
    padding: clamp(3rem, 7vw, 7rem);
    background: #fffaf3;
}

.hero-copy p:not(.esther-eyebrow) {
    max-width: 560px;
    color: #5e574f;
    font-size: clamp(1.05rem, 1.5vw, 1.32rem);
}

.hero-actions {
    gap: 1rem;
    margin-top: 2rem;
}

.hero-image {
    height: 100%;
    min-height: 680px;
    margin: 0;
}

.hero-image img {
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    border-radius: 0;
    object-fit: cover;
    box-shadow: none;
}

.hero-note {
    position: absolute;
    right: clamp(1rem, 4vw, 4rem);
    bottom: clamp(1rem, 4vw, 4rem);
    z-index: 3;
    display: grid;
    gap: .3rem;
    width: min(410px, calc(100% - 2rem));
    padding: 1.35rem 1.5rem;
    background: rgba(255,255,255,.92);
    border: 1px solid rgba(255,255,255,.72);
}

.hero-note strong {
    color: #111;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.25rem;
    font-weight: 500;
}

.hero-note span {
    color: #6d665e;
}

.entry-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    border-top: 1px solid #eee;
    border-left: 1px solid #eee;
}

.entry-card {
    position: relative;
    min-height: 520px;
    padding: 0;
    border: 0;
    border-right: 1px solid #eee;
    border-bottom: 1px solid #eee;
    border-radius: 0;
    box-shadow: none;
    background: #111;
    color: #fff;
}

.entry-card img {
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    object-fit: cover;
    opacity: .78;
    transition: transform .35s ease, opacity .35s ease;
}

.entry-card:hover img {
    transform: scale(1.025);
    opacity: .9;
}

.entry-card span,
.entry-card p {
    position: absolute;
    left: 2rem;
    right: 2rem;
    z-index: 2;
    margin: 0;
    color: #fff;
}

.entry-card span {
    bottom: 6.2rem;
    font-size: clamp(2rem, 3vw, 3.4rem);
    font-weight: 500;
}

.entry-card p {
    bottom: 2rem;
    max-width: 420px;
}

.brand-story {
    max-width: none;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 4rem;
    padding-left: max(2rem, calc((100vw - 1480px) / 2 + 2rem));
    padding-right: max(2rem, calc((100vw - 1480px) / 2 + 2rem));
    border-radius: 0;
    background: #111;
    color: #fff;
}

.brand-story h2,
.brand-story .esther-eyebrow {
    color: #fff;
}

.brand-story p:last-child {
    color: rgba(255,255,255,.76);
    font-size: clamp(1.12rem, 1.7vw, 1.45rem);
}

.product-grid-demo {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 2.4rem 1.4rem;
}

.product-card-demo,
.woocommerce ul.products li.product {
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
}

.product-card-demo img,
.woocommerce ul.products li.product a img {
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    background: #f5f1ea;
}

.product-card-demo h3,
.product-card-demo p,
.product-card-demo strong {
    margin-left: 0;
    margin-right: 0;
}

.product-card-demo h3,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    margin: .65rem 0 .25rem;
    padding: 0;
    color: #111;
    font-family: "Inter", "Segoe UI", Arial, sans-serif;
    font-size: .98rem;
    font-weight: 700;
}

.product-card-demo p:not(.product-family) {
    display: none;
}

.product-card-demo strong,
.woocommerce ul.products li.product .price {
    display: block;
    padding: 0;
    color: #111;
    font-size: .95rem;
    font-weight: 600;
}

.product-family {
    margin: .9rem 0 .2rem;
    color: #8b7655;
    text-transform: uppercase;
    font-size: .72rem;
}

.badge,
.esther-product-badges span,
.special-card span,
.promo-grid span {
    border-radius: 0;
    background: #111;
    color: #fff;
    text-transform: uppercase;
    font-size: .68rem;
}

.personalizacion-section {
    max-width: none;
    padding-left: max(2rem, calc((100vw - 1180px) / 2 + 2rem));
    padding-right: max(2rem, calc((100vw - 1180px) / 2 + 2rem));
    background: #f6efe4;
}

details {
    border: 0;
    border-bottom: 1px solid rgba(0,0,0,.14);
    border-radius: 0;
    background: transparent;
}

summary {
    color: #111;
}

.decoracion-familias {
    background: #fff;
}

.family-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    background: #eee;
}

.family-card {
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: #fff;
}

.family-card img {
    aspect-ratio: 16 / 11;
}

.family-card h3,
.family-card p {
    margin-left: 1.35rem;
    margin-right: 1.35rem;
}

.family-card h3 {
    margin-top: 1.35rem;
    font-size: 1.3rem;
}

.family-card p {
    margin-bottom: 1.35rem;
}

.outlet-section {
    max-width: none;
    border-radius: 0;
    background: #111;
    padding-left: max(2rem, calc((100vw - 1480px) / 2 + 2rem));
    padding-right: max(2rem, calc((100vw - 1480px) / 2 + 2rem));
}

.promo-grid {
    gap: 1px;
    background: rgba(255,255,255,.18);
}

.promo-grid article {
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: #fff;
}

.seleccion-especial {
    max-width: none;
    padding-left: max(2rem, calc((100vw - 1320px) / 2 + 2rem));
    padding-right: max(2rem, calc((100vw - 1320px) / 2 + 2rem));
    background: #fffaf3;
}

.special-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.2rem;
}

.special-card {
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: #fff;
}

.newsletter-section {
    max-width: none;
    margin-bottom: 0;
    padding-left: max(2rem, calc((100vw - 1180px) / 2 + 2rem));
    padding-right: max(2rem, calc((100vw - 1180px) / 2 + 2rem));
    border-radius: 0;
    background: #f6efe4;
}

.newsletter-form input,
.visual-filters input,
.visual-filters select {
    border-radius: 0;
}

.shop-layout {
    max-width: 1480px;
    grid-template-columns: 260px minmax(0, 1fr);
}

.shop-filters {
    border: 1px solid #eee;
    border-radius: 0;
    box-shadow: none;
}

.woocommerce ul.products {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 2.2rem 1.4rem;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
    content: none;
}

.woocommerce ul.products li.product {
    width: auto !important;
    margin: 0 !important;
}

.woocommerce ul.products li.product .button {
    margin-left: 0;
    margin-bottom: 0;
}

.site-footer {
    background: #111;
}

.footer-grid {
    max-width: 1480px;
}

/* Reparaciones UX/UI para catalogos largos y productos WooCommerce reales. */
.primary-navigation,
.primary-navigation ul,
.primary-navigation li,
.primary-navigation a,
.header-actions,
.button,
button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.product-card-demo h3,
.family-card h3,
.entry-card span,
.entry-card p {
    min-width: 0;
}

.primary-navigation a,
.header-actions a,
.button,
button,
.woocommerce a.button,
.woocommerce button.button {
    white-space: normal;
    overflow-wrap: anywhere;
    text-align: center;
    line-height: 1.2;
}

.primary-navigation .menu > li > a {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
}

.primary-navigation .sub-menu {
    width: auto;
    max-width: min(360px, calc(100vw - 2rem));
    box-sizing: border-box;
}

.primary-navigation .sub-menu a {
    display: block;
    padding: .45rem .35rem;
    text-align: left;
    text-transform: none;
    font-size: .88rem;
    font-weight: 600;
    white-space: normal;
    word-break: break-word;
    overflow-wrap: anywhere;
}

.header-actions {
    flex-wrap: wrap;
}

.header-actions a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
}

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

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

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    min-height: 2.55em;
    overflow-wrap: anywhere;
}

.woocommerce ul.products li.product .price {
    min-height: 1.5em;
}

.woocommerce ul.products li.product .button {
    width: 100%;
    margin-top: .7rem;
}

.woocommerce span.onsale {
    min-height: auto;
    border-radius: 0;
    background: #111;
    color: #fff;
    text-transform: uppercase;
    font-size: .68rem;
    line-height: 1;
    padding: .45rem .65rem;
}

.esther-product-badges {
    max-width: 100%;
    pointer-events: none;
}

.esther-product-badges span {
    max-width: calc(100% - .75rem);
    overflow-wrap: anywhere;
}

.shop-filters,
.visual-filters label {
    overflow-wrap: normal;
}
.widget,
.widget a,
.widget li,
.woocommerce .woocommerce-breadcrumb {
    overflow-wrap: anywhere;
}

.woocommerce-result-count,
.woocommerce-ordering {
    margin-bottom: 1.5rem;
}

.woocommerce-ordering select {
    max-width: 100%;
    border: 1px solid #ddd;
    border-radius: 0;
    padding: .65rem .8rem;
    background: #fff;
}
.catalog-page-with-filters .woocommerce-ordering {
    display: flex;
    justify-content: flex-end;
}

.shop-results .woocommerce-ordering {
    display: flex;
    justify-content: flex-end;
    margin: 0 24px 1.5rem 0;
    width: calc(100% - 24px);
    float: none;
}

.shop-results .woocommerce-ordering select {
    width: min(100%, 292px);
}

.woocommerce div.product {
    max-width: 1480px;
    margin: 0 auto;
    padding: 4rem 2rem;
}

.woocommerce div.product div.images img {
    width: 100%;
    background: #f5f1ea;
    object-fit: cover;
}

.woocommerce div.product .summary {
    min-width: 0;
}

.woocommerce div.product .product_title {
    font-size: clamp(2rem, 4vw, 4.5rem);
    overflow-wrap: anywhere;
}

.single_add_to_cart_button {
    width: 100%;
    margin: .65rem 0 0 !important;
}

/* P78-style final skin */
.top-bar {
    display: none !important;
}

.site-header {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 1000;
    height: 62px;
    background: rgba(255,255,255,.98);
    border-top: 0;
    border-bottom: 1px solid rgba(0,0,0,.06);
    box-shadow: none;
    transform: translateY(0);
    transition: transform .26s ease, background-color .26s ease, border-color .26s ease;
    will-change: transform;
}

.admin-bar .site-header {
    top: 32px;
}

body.header-hidden .site-header {
    transform: translateY(calc(-100% - 4px));
}

body.header-hidden.admin-bar .site-header {
    transform: translateY(calc(-100% - 36px));
}

.header-inner {
    position: relative;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    max-width: none;
    min-height: 60px;
    padding: 0 24px;
}

.header-left-tools,
.header-actions {
    display: flex;
    align-items: center;
    gap: 18px;
    min-width: 0;
}

.header-left-tools {
    justify-self: start;
}

.header-actions {
    justify-self: end;
}

.site-logo {
    grid-column: 2;
    justify-self: center;
    align-self: center;
    color: #111;
    text-align: center;
    line-height: .9;
}

.site-logo span {
    display: inline;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2rem;
    font-weight: 400;
    letter-spacing: 0;
}

.site-logo small {
    display: inline;
    margin-left: .18em;
    color: #111;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.45rem;
    font-weight: 400;
    text-transform: none;
}

.menu-toggle {
    display: inline-grid !important;
    place-items: center;
    gap: 5px;
    width: 22px;
    height: 22px;
    min-height: 22px;
    padding: 0;
    background: transparent !important;
    border: 0;
}

.menu-toggle span:not(.screen-reader-text) {
    width: 17px;
    height: 1px;
    background: #111 !important;
}

.search-toggle,
.header-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    min-height: 22px;
    padding: 0;
    color: #111;
    background: transparent;
    border: 0;
    font-size: 1.28rem;
    font-family: Georgia, "Times New Roman", serif;
    line-height: 1;
}

.account-icon,
.cart-icon {
    font-size: 1rem;
}

.primary-navigation {
    position: fixed;
    top: 62px;
    left: 0;
    z-index: 1001;
    display: block;
    width: min(420px, 88vw);
    height: calc(100vh - 62px);
    padding: 34px 28px;
    box-sizing: border-box;
    overflow: auto;
    background: #fff;
    border-right: 1px solid rgba(0,0,0,.08);
    box-shadow: 30px 0 60px rgba(0,0,0,.08);
    transform: translateX(-105%);
    transition: transform .28s ease;
}

.admin-bar .primary-navigation {
    top: 94px;
    height: calc(100vh - 94px);
}

.primary-navigation.is-open {
    transform: translateX(0);
}

.primary-navigation ul,
.primary-navigation .menu {
    display: grid;
    justify-content: stretch;
    gap: 0;
}

.primary-navigation .menu > li {
    border-bottom: 1px solid #eee;
}

.primary-navigation .menu > li > a {
    display: flex;
    justify-content: space-between;
    width: 100%;
    min-height: 48px;
    padding: 13px 0;
    color: #111;
    text-align: left;
    text-transform: none;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.35rem;
    font-weight: 400;
}

.primary-navigation .sub-menu {
    position: static;
    display: grid;
    width: 100%;
    padding: 0 0 14px 14px;
    border: 0;
    box-shadow: none;
    background: transparent;
}

.primary-navigation .sub-menu a {
    min-height: 34px;
    padding: 7px 0;
    color: #444;
    font-family: "Inter", "Segoe UI", Arial, sans-serif;
    font-size: .86rem;
}

.header-search-panel {
    position: absolute;
    top: 62px;
    left: 0;
    right: 0;
    padding: 18px 24px;
    background: #fff;
    border-bottom: 1px solid #eee;
}

.header-search-panel .search-form {
    max-width: 860px;
    margin: 0 auto;
    display: flex;
    gap: 10px;
}

.header-search-panel input[type="search"] {
    flex: 1;
    border: 0;
    border-bottom: 1px solid #111;
    border-radius: 0;
    padding: .8rem 0;
    font-size: 1.2rem;
}

.header-search-panel .search-submit {
    display: inline-flex;
}

.site-main {
    padding-top: 62px;
}

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

.hero-home {
    position: relative;
    display: block;
    width: 100%;
    max-width: none;
    min-height: calc(100vh - 62px);
    padding: 0;
    overflow: hidden;
    background: #111;
}

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

.hero-image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,.06) 0%, rgba(0,0,0,.08) 44%, rgba(0,0,0,.5) 100%);
}

.hero-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.hero-copy {
    position: absolute;
    left: clamp(24px, 3.2vw, 60px);
    bottom: clamp(42px, 7vw, 96px);
    z-index: 2;
    display: block;
    min-height: 0;
    max-width: 760px;
    padding: 0;
    background: transparent;
    color: #fff;
}

.hero-copy h1 {
    max-width: 780px;
    margin-bottom: 1rem;
    color: #fff;
    font-size: clamp(3rem, 5vw, 5.15rem);
    font-weight: 400;
    line-height: .98;
}

.hero-copy p {
    max-width: 600px !important;
    margin-bottom: 2rem;
    color: #fff !important;
    font-size: clamp(1.05rem, 1.4vw, 1.35rem) !important;
    font-family: "Inter", "Segoe UI", Arial, sans-serif;
}

.hero-copy .button {
    min-width: 205px;
    min-height: 56px;
    background: rgba(255,255,255,.9);
    color: #111;
    font-size: .82rem;
}

.hero-note {
    display: none;
}

.esther-section-head {
    padding-top: 1rem;
    margin-bottom: 3.8rem;
}

.esther-section-head .esther-eyebrow {
    display: none;
}

.esther-section-head h2 {
    font-size: clamp(2rem, 2.15vw, 2.75rem);
    font-weight: 400;
}

.nueva-seleccion {
    max-width: none;
    padding: 6.2rem 0 0;
}

.nueva-seleccion .esther-section-head {
    max-width: none;
    padding: 0 24px;
}

.product-grid-demo,
.woocommerce ul.products {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4px;
    width: 100%;
    margin: 0 !important;
}

.product-card-demo,
.woocommerce ul.products li.product {
    padding: 0 0 28px;
    background: #fff;
}

.product-image-wrap,
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
    position: relative;
    display: block;
    background: #f8f8f8;
}

.product-card-demo img,
.woocommerce ul.products li.product a img {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 1 / 1.32;
    object-fit: cover;
    object-position: center;
    padding: 0;
    background: #f8f8f8;
}

.product-card-demo h3,
.product-card-demo strong,
.product-family,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price {
    padding-left: 10px !important;
    padding-right: 10px !important;
}

.product-card-demo h3,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    min-height: 0;
    margin-top: 12px;
    margin-bottom: 4px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.22rem;
    font-weight: 400;
}

.product-card-demo strong,
.woocommerce ul.products li.product .price {
    color: #111;
    font-family: "Inter", "Segoe UI", Arial, sans-serif;
    font-size: .88rem;
    font-weight: 500;
}

.woocommerce ul.products li.product .button,
.product-card-demo p:not(.product-family),
.product-family,
.esther-product-badges,
.woocommerce span.onsale {
    display: none !important;
}

/* Inicio: las fotos de producto llenan su cuadro sin dejar margenes interiores. */
.nueva-seleccion .product-image-wrap {
    aspect-ratio: 1 / 1.32;
    overflow: hidden;
    background: #f8f8f8;
}

.nueva-seleccion .product-card-demo img {
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    object-fit: cover;
    object-position: center;
    padding: 0;
    background: #f8f8f8;
}

.categorias-principales {
    max-width: none;
    padding-left: 0;
    padding-right: 0;
}

.entry-grid,
.family-grid {
    gap: 4px;
    background: #fff;
    border: 0;
}

.entry-card,
.family-card {
    min-height: 520px;
    background: #f7f7f7;
}

.entry-card img,
.family-card img {
    opacity: 1;
    filter: none;
}

.entry-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0) 20%, rgba(0,0,0,.42) 100%);
}

.entry-card span {
    bottom: 5.5rem;
    font-weight: 400;
}

.brand-story,
.outlet-section {
    background: #fff;
    color: #111;
}

.brand-story h2,
.brand-story .esther-eyebrow,
.outlet-section h2,
.outlet-section h3,
.outlet-section .esther-section-head p {
    color: #111;
}

.brand-story p:last-child {
    color: #555;
}

.promo-grid article {
    background: #f8f8f8;
}

.promo-grid article {
    overflow: hidden;
    padding: 0 0 1.4rem;
}

.promo-grid article img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    margin-bottom: 1.1rem;
}

.promo-grid article span,
.promo-grid article h3,
.promo-grid article p {
    display: block;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
}

.site-footer {
    border-top: 1px solid #eee;
    background: #fff;
    color: #111;
}

.site-footer h2,
.site-footer a {
    color: #111;
}

.footer-copy {
    color: #777;
}
.footer-language {
    color: #111;
}
.kit-digital-footer {
    color: #111;
}

/* Ajustes finales de estabilidad visual y responsive */
.search-toggle svg,
.header-icon svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.65;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.header-icon,
.search-toggle,
.menu-toggle,
.button,
button,
input[type="submit"],
.wp-element-button {
    flex: 0 0 auto;
}
.header-icon {
    position: relative;
}

.primary-navigation a,
.entry-card span,
.family-card span,
.button,
button,
.wp-element-button,
.product-card-demo h3,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-breadcrumb,
.shop-filters,
.shop-results,
.archive-card {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: normal;
}

.primary-navigation .menu > li > a,
.primary-navigation .sub-menu a {
    white-space: normal;
    line-height: 1.18;
}

.button,
button,
input[type="submit"],
.wp-element-button,
.hero-copy .button {
    border-radius: 0;
    letter-spacing: .08em;
    text-transform: uppercase;
    white-space: normal;
    text-align: center;
}

.product-card-demo .badge,
.product-image-wrap .badge {
    display: none !important;
}

.product-card-demo img,
.woocommerce ul.products li.product a img {
    display: block;
    height: auto;
}

.woocommerce ul.products li.product {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
}

.woocommerce ul.products li.product .price del {
    color: #8f8f8f;
    font-weight: 400;
}

.woocommerce ul.products li.product .price ins {
    margin-left: .25rem;
    color: #111;
    text-decoration: none;
}

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
    margin: 0 24px 1.5rem;
    color: #555;
    font-size: .86rem;
}

.woocommerce .woocommerce-ordering select {
    min-height: 42px;
    border-radius: 0;
    border-color: #ddd;
}

.shop-layout.page-shell {
    max-width: none;
    padding: 6rem 24px 4rem;
    background: #fff;
}

.shop-filters {
    border-radius: 0;
    box-shadow: none;
    border: 1px solid #eee;
    background: #fff;
}

.archive-card {
    border-radius: 0;
    box-shadow: none;
    border: 1px solid #eee;
}

.woocommerce div.product {
    max-width: 1400px;
}

.woocommerce div.product div.images img {
    background: radial-gradient(circle at 50% 45%, #fff 0, #fff 34%, #f7f7f7 74%);
    object-fit: contain;
}

.single-product-shell {
    max-width: none;
    padding: 5.5rem 24px 4rem;
    background: #fff;
}

.single-product .woocommerce div.product {
    max-width: 1420px;
    padding: 0;
}

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

.single-product .woocommerce div.product div.images img {
    aspect-ratio: 1 / 1.22;
    object-fit: contain;
    background: radial-gradient(circle at 50% 45%, #fff 0, #fff 34%, #f7f7f7 74%);
}

.single-product .esther-product-badges {
    position: static;
    display: flex !important;
    padding: 0;
    margin: 0 0 1rem;
}

.single-product .esther-product-badges span {
    display: inline-flex;
    padding: .45rem .7rem;
    border: 1px solid #ddd;
    border-radius: 999px;
    color: #111;
    background: #fff;
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.single-product .product_title {
    margin-bottom: 1rem;
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 400;
}

.single-product .summary .price {
    margin: 0 0 1.25rem;
    color: #111;
    font-size: clamp(1.35rem, 2vw, 2rem);
    font-weight: 500;
}

.single-product .summary .price del {
    color: #888;
    font-size: .72em;
    font-weight: 400;
}

.single-product .summary .price ins {
    color: #111;
    text-decoration: none;
}

.single-product .woocommerce-product-details__short-description {
    max-width: 620px;
    margin-bottom: 1.65rem;
    color: #4d4740;
    font-size: 1rem;
    line-height: 1.7;
}

.single-product form.cart {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: .8rem;
    align-items: stretch;
    max-width: 520px;
    margin: 1.5rem 0;
}

.single-product form.cart::before,
.single-product form.cart::after {
    content: none !important;
}

.single-product form.cart .quantity {
    float: none;
    width: 100%;
    margin: 0 !important;
}

.single-product form.cart .qty {
    width: 100%;
    height: 54px;
    padding: 0 .75rem;
    border: 1px solid #d8d2c8;
    border-radius: 0;
    text-align: center;
    font-size: 1rem;
}

.single-product .single_add_to_cart_button {
    width: 100%;
    min-height: 54px;
    margin: 0 !important;
    background: #111 !important;
    color: #fff !important;
}

.single-product .stock,
.single-product .product_meta {
    color: #5f5a52;
    font-size: .92rem;
}

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

.single-product .product_meta {
    display: grid;
    gap: .35rem;
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid #eee;
}

.product-extra-accordions {
    clear: both;
    max-width: 980px;
    margin: 1rem auto 4rem;
    padding: 0;
}

.product-extra-accordions details {
    border-top: 1px solid #e8e2d8;
}

.product-extra-accordions details:last-child {
    border-bottom: 1px solid #e8e2d8;
}

.product-extra-accordions summary {
    padding: 1.1rem 0;
    color: #111;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.2rem;
    cursor: pointer;
}

.product-extra-accordions p,
.product-extra-accordions li,
.product-extra-accordions div {
    color: #4d4740;
    line-height: 1.7;
}

.product-extra-accordions ul {
    margin: 0 0 1.2rem;
    padding-left: 1.2rem;
}

/* Filtros: alineacion correcta de checkboxes */
.visual-filters label.checkbox-filter {
    display: flex !important;
    grid-template-columns: none !important;
    align-items: flex-start;
    justify-content: flex-start;
    gap: .65rem;
    width: 100%;
    margin: .15rem 0;
    color: #625b53;
    line-height: 1.35;
    text-align: left;
}

.visual-filters label.checkbox-filter input[type="checkbox"] {
    flex: 0 0 16px;
    width: 16px !important;
    min-width: 16px !important;
    max-width: 16px !important;
    height: 16px;
    margin: .12rem 0 0 !important;
    padding: 0 !important;
    border-radius: 2px;
}

/* Correcciones globales de maquetacion para paginas creadas con shortcodes. */
.page-shell {
    width: 100%;
    max-width: none;
    padding: clamp(3.5rem, 6vw, 6rem) 24px 4rem;
    background: #fff;
}

.content-page {
    width: min(100%, 980px);
    margin: 0 auto;
}

.content-page--wide {
    width: 100%;
    max-width: none;
    padding: 0;
    background: transparent;
    box-shadow: none;
}

.content-page--wide > .page-title-block {
    width: min(100%, 1480px);
    margin: 0 auto 2rem;
}

.page-title-block h1 {
    max-width: none;
    margin: 0;
    font-size: clamp(2.7rem, 6vw, 5.8rem);
    line-height: .98;
    overflow-wrap: anywhere;
}

.content-page--wide .esther-section,
.content-page--wide .newsletter-section {
    width: 100%;
    max-width: 1480px;
    padding-left: 0;
    padding-right: 0;
}

.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 {
    max-width: none;
    margin-left: -24px;
    margin-right: -24px;
    padding-left: max(24px, calc((100vw - 1480px) / 2 + 24px));
    padding-right: max(24px, calc((100vw - 1480px) / 2 + 24px));
}

.content-page--wide .categorias-principales {
    padding-top: 2.5rem;
}

.entry-grid,
.family-grid,
.promo-grid,
.special-grid,
.product-grid-demo,
.woocommerce ul.products {
    min-width: 0;
}

.entry-card,
.family-card,
.special-card,
.promo-grid article,
.product-card-demo,
.woocommerce ul.products li.product {
    min-width: 0;
    overflow: hidden;
}

.entry-card span,
.entry-card p,
.family-card h3,
.family-card p,
.special-card h3,
.special-card p,
.promo-grid article h3,
.promo-grid article p,
.product-card-demo h3,
.product-card-demo strong,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price {
    max-width: 100%;
    overflow-wrap: anywhere;
    hyphens: auto;
}

.entry-card span {
    font-size: clamp(2rem, 3.7vw, 4rem);
    line-height: .95;
}

.entry-card p {
    font-size: clamp(.86rem, 1vw, 1rem);
    line-height: 1.35;
}

.product-card-demo h3,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    display: -webkit-box;
    min-height: 2.8em;
    max-height: 2.8em;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    font-size: clamp(.95rem, 1.1vw, 1.12rem);
    line-height: 1.35;
}

.product-card-demo strong,
.woocommerce ul.products li.product .price {
    line-height: 1.35;
}

.woocommerce ul.products li.product .price del,
.woocommerce ul.products li.product .price ins {
    display: inline-block;
}

.shop-layout.page-shell {
    width: 100%;
    max-width: none;
    padding-left: 24px;
    padding-right: 24px;
}

.shop-results {
    min-width: 0;
}

.shop-results > .woocommerce,
.content-page--wide > .woocommerce {
    width: 100%;
}

.woocommerce ul.products {
    clear: both;
}

/* Ajuste final de fichas de producto: titulos contenidos. */
.single-product .product_title,
.woocommerce div.product .product_title {
    max-width: 760px;
    font-size: clamp(1.8rem, 3vw, 3.15rem);
    line-height: 1.08;
}

.single-product .woocommerce-tabs {
    clear: both;
    max-width: 980px;
    margin: 2rem auto 3rem;
}

.single-product .woocommerce-tabs ul.tabs {
    padding-left: 0 !important;
}

.single-product .woocommerce-tabs ul.tabs li a {
    font-size: .95rem;
}

.single-product .woocommerce-tabs .panel h2,
.single-product .related.products > h2,
.single-product .upsells.products > h2 {
    margin-bottom: 1rem;
    font-size: clamp(1.6rem, 2.25vw, 2.4rem);
    line-height: 1.12;
}

.single-product .woocommerce-tabs .panel,
.single-product .woocommerce-tabs .panel p {
    color: #3f3934;
    font-size: .98rem;
    line-height: 1.65;
}

.esther-single-product-template {
    width: 100%;
    max-width: 1360px;
    margin: 0 auto;
    padding-top: clamp(5rem, 10vw, 10rem);
}

.elementor-section.esther-single-product-template {
    max-width: 1360px;
    margin-right: auto;
    margin-left: auto;
}

.elementor-section.esther-single-product-card > .elementor-container {
    display: grid;
    grid-template-columns: minmax(320px, 640px) minmax(360px, 640px);
    gap: clamp(3rem, 5vw, 5rem);
    align-items: start;
    max-width: 1060px;
}

.elementor-section.esther-single-product-card > .elementor-container > .elementor-column {
    width: auto;
}

.esther-single-product-template .esther-single-product-card {
    display: grid;
    grid-template-columns: minmax(320px, 640px) minmax(360px, 640px);
    gap: clamp(3rem, 5vw, 5rem);
    align-items: start;
    max-width: 1060px;
    margin: 0 auto 5rem;
}

.esther-single-product-template .esther-single-product-media {
    width: 100%;
    padding-top: .35rem;
}

.esther-single-product-template .elementor-widget-esther_product_image {
    width: 100%;
}

.esther-single-product-template .esther-single-product-media img {
    width: 100%;
    aspect-ratio: 2 / 1;
    object-fit: cover;
    object-position: center;
    background: #f7f7f7;
}

.esther-single-product-template .esther-single-product-summary {
    min-width: 0;
}

.esther-single-product-template .esther-single-product-summary > .elementor-widget-wrap {
    display: block;
}

.esther-single-product-template .product_title {
    max-width: 680px;
    margin: 0 0 1rem;
    color: #111;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.6rem, 4vw, 4.05rem);
    font-weight: 400;
    line-height: 1.04;
}

.esther-single-product-template .summary .price,
.esther-single-product-template .price {
    margin: 0 0 1.55rem;
    color: #9c8700;
    font-family: "Inter", "Segoe UI", Arial, sans-serif;
    font-size: 1.25rem;
    font-weight: 500;
}

.esther-single-product-template .price del {
    color: #888;
    font-size: .72em;
}

.esther-single-product-template .price ins {
    color: #9c8700;
    text-decoration: none;
}

.esther-single-product-template .woocommerce-product-details__short-description {
    max-width: 620px;
    margin: 0 0 1.8rem;
    color: #2b2b2b;
    font-size: 1rem;
    line-height: 1.7;
}

.esther-single-product-template form.cart {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: .85rem;
    align-items: stretch;
    max-width: 520px;
    margin: 0 0 2rem;
}

.esther-single-product-template form.cart::before,
.esther-single-product-template form.cart::after {
    content: none !important;
}

.esther-single-product-template form.cart .quantity {
    float: none;
    width: 100%;
    margin: 0 !important;
}

.esther-single-product-template form.cart .qty {
    width: 100%;
    height: 54px;
    padding: 0 .75rem;
    border: 1px solid #d8d2c8;
    border-radius: 0;
    color: #111;
    background: #fff;
    text-align: center;
    font-size: 1rem;
}

.esther-single-product-template .single_add_to_cart_button {
    width: 100%;
    min-height: 54px;
    margin: 0 !important;
    border-radius: 0;
    background: #111 !important;
    color: #fff !important;
    font-size: .78rem;
    font-weight: 800;
}

.esther-single-product-template .favorite-product-button--single {
    width: fit-content;
    margin: 0 0 2.2rem;
    border-color: #ddd;
    border-radius: 999px;
    background: #fff;
    color: #111;
}

.esther-single-product-template .product_meta {
    display: grid;
    gap: .35rem;
    margin-top: 0;
    padding-top: 1.3rem;
    border-top: 1px solid #eee;
    color: #4f4a44;
    font-size: .92rem;
}

.esther-single-product-template .product_meta a {
    color: inherit;
}

.esther-single-product-template .product-extra-accordions {
    max-width: 980px;
    margin: 0 auto 4rem;
    padding: 0;
}

.elementor-section.esther-single-product-accordions-section {
    padding-top: 0;
}

.elementor-section.esther-single-product-accordions-section > .elementor-container {
    max-width: 980px;
}

@media (max-width: 900px) {
    .esther-single-product-template {
        padding-top: 3rem;
    }

    .esther-single-product-template .esther-single-product-card {
        grid-template-columns: 1fr;
        gap: 2rem;
        margin-bottom: 3rem;
    }

    .elementor-section.esther-single-product-card > .elementor-container {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .esther-single-product-template .esther-single-product-media img {
        aspect-ratio: 4 / 3;
    }
}

@media (max-width: 560px) {
    .esther-single-product-template form.cart {
        grid-template-columns: 1fr;
    }

    .esther-single-product-template .product_title {
        font-size: clamp(2.1rem, 12vw, 3rem);
    }
}

.woocommerce-products-header__title.page-title,
.woocommerce-products-header .page-title,
.woocommerce-products-header h1,
.shop-results > h1,
.search-results-head h1,
.catalog-page-with-filters .page-title-block h1 {
    font-size: clamp(2rem, 3.2vw, 3.4rem) !important;
    line-height: 1.05;
}

@media (max-width: 760px) {
    .shop-layout.page-shell {
        display: block;
    }

    .product-filter-toggle {
        display: inline-flex;
        align-items: center;
        gap: .6rem;
        position: relative;
        width: 100%;
        min-height: 48px;
        margin: 0 0 1rem;
        border: 1px solid #ddd;
        border-radius: 0;
        padding: .75rem 1rem .75rem 3rem;
        color: #111;
        background: #fff;
        font-weight: 800;
        text-transform: uppercase;
        font-size: .86rem;
        letter-spacing: 0;
    }

    .product-filter-toggle span[aria-hidden="true"] {
        position: absolute;
        left: 1rem;
        display: block;
        width: 18px;
        height: 2px;
        background: currentColor;
    }

    .product-filter-toggle span[aria-hidden="true"]:nth-child(1) {
        top: calc(50% - 7px);
    }

    .product-filter-toggle span[aria-hidden="true"]:nth-child(2) {
        top: 50%;
    }

    .product-filter-toggle span[aria-hidden="true"]:nth-child(3) {
        top: calc(50% + 7px);
    }

    .shop-filters {
        display: none;
        margin: 0 0 1.25rem;
        padding: 1.1rem;
    }

    .shop-filters.is-open {
        display: block;
    }

    .favorites-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 4px;
    }

    .favorites-page {
        padding-left: 14px;
        padding-right: 14px;
    }

    .kit-digital-logos {
        gap: .8rem 1rem;
    }

    .kit-digital-logos img {
        max-width: 140px;
        max-height: 38px;
    }
}

.woocommerce-result-count,
.woocommerce-ordering select {
    font-size: .92rem;
}

.esther-product-badges,
.woocommerce span.onsale {
    display: none !important;
}

/* Paginas informativas del footer */
.content-page:not(.content-page--wide) {
    max-width: 1080px;
    padding: clamp(2rem, 4vw, 3rem);
    border: 1px solid #eee;
    background: #fff;
}

.content-page:not(.content-page--wide) .page-title-block {
    margin-bottom: 1.5rem;
}

.content-page:not(.content-page--wide) .page-title-block h1 {
    max-width: 760px;
    font-size: clamp(2rem, 4vw, 3.4rem);
    line-height: 1.04;
}

.content-page .info-intro {
    max-width: 820px;
    margin-bottom: 2.5rem;
}

.content-page .info-intro h2,
.content-page .info-band h2 {
    max-width: 820px;
    font-size: clamp(1.75rem, 3vw, 2.55rem);
    line-height: 1.12;
}

.content-page .info-intro p:not(.esther-eyebrow),
.content-page .info-band p,
.content-page .info-grid p,
.content-page .info-faq p {
    color: #555;
    font-size: 1rem;
    line-height: 1.75;
}

.content-page .info-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin: 2rem 0;
    background: #eee;
}

.content-page .info-grid article {
    min-width: 0;
    padding: clamp(1.25rem, 2.4vw, 2rem);
    background: #fafafa;
}

.content-page .info-grid h3 {
    margin-bottom: .75rem;
    font-family: "Inter", "Segoe UI", Arial, sans-serif;
    font-size: 1.05rem;
    font-weight: 700;
}

.content-page .info-band {
    margin-top: 2.5rem;
    padding: clamp(1.5rem, 3vw, 2.5rem);
    background: #f6efe4;
}

.content-page .legal-content {
    max-width: 920px;
    display: grid;
    gap: .85rem;
}

.content-page .legal-content h2 {
    margin-top: 1.2rem;
    font-size: clamp(1.35rem, 2vw, 1.9rem);
    line-height: 1.2;
}

.content-page .legal-content p,
.content-page .legal-content li {
    color: #555;
    font-size: 1rem;
    line-height: 1.75;
}

.content-page .legal-content ul {
    margin: 0 0 .75rem;
    padding-left: 1.25rem;
}

.content-page .legal-content a {
    text-decoration: underline;
}

.content-page .info-faq {
    display: grid;
    gap: .4rem;
    margin-top: 2rem;
}

.content-page .info-faq details {
    padding: 1.1rem 0;
}

.content-page .info-faq summary {
    font-family: "Inter", "Segoe UI", Arial, sans-serif;
    font-size: 1.02rem;
    font-weight: 700;
}

.content-page .info-faq p {
    max-width: 820px;
    margin: .9rem 0 0;
}
