@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,700;1,400;1,700&family=Hanken+Grotesk:ital,wght@0,100..900;1,100..900&display=swap");

/*
 * Casa Costa 1.0.0
 * Capa visual privada para el tenant Casa Costa.
 * Toda regla queda aislada bajo body.store-theme-casa-costa.
 */

body.store-theme-casa-costa {
    --cc-ink: #383d3b;
    --cc-ink-deep: #252927;
    --cc-muted: #626866;
    --cc-grey: #7c7c7c;
    --cc-blue: #356289;
    --cc-cyan: #c7f2fa;
    --cc-brass: #c5a059;
    --cc-cyan-soft: #e9fafd;
    --cc-canvas: #f7f9fa;
    --cc-surface: #ffffff;
    --cc-header-bg: #333333;
    --cc-menu-bg: var(--cc-header-bg);
    --cc-menu-raised: #414141;
    --cc-menu-text: #f6f7f6;
    --cc-menu-muted: #b5bab7;
    --cc-menu-shadow: inset 0 1px 0 rgba(255, 255, 255, .09), 0 20px 48px rgba(0, 0, 0, .3), 0 4px 10px rgba(0, 0, 0, .2);
    --cc-hover-surface: #ecefed;
    --cc-line: rgba(56, 61, 59, .14);
    --cc-focus-soft: rgba(255, 255, 255, .28);
    --cc-focus-marker: var(--cc-muted);
    --cc-shadow: 0 18px 46px rgba(39, 48, 45, .11);
    --cc-font: "Hanken Grotesk", "Segoe UI", sans-serif;
    --cc-font-display: var(--cc-font);
    --primary-hover: var(--cc-ink-deep);
    background: var(--cc-canvas) !important;
    color: var(--cc-ink);
    font-family: var(--cc-font) !important;
    overflow-x: clip;
}

html:has(body.store-theme-casa-costa) {
    scroll-behavior: smooth;
    scrollbar-color: var(--cc-blue) var(--cc-canvas);
    scrollbar-width: thin;
}

body.store-theme-casa-costa ::selection {
    background: var(--cc-cyan);
    color: var(--cc-ink-deep);
}

body.store-theme-casa-costa button,
body.store-theme-casa-costa input,
body.store-theme-casa-costa select,
body.store-theme-casa-costa textarea {
    font-family: var(--cc-font) !important;
}

.store-theme-casa-costa #wrapper {
    background: var(--cc-canvas);
}

/* Mantener el cursor nativo sobre los fondos de cierre. */
.store-theme-casa-costa .modal,
.store-theme-casa-costa .offcanvas-backdrop,
.store-theme-casa-costa .overlay-filter {
    cursor: default;
}

.store-theme-casa-costa h1,
.store-theme-casa-costa h2,
.store-theme-casa-costa h3,
.store-theme-casa-costa h4,
.store-theme-casa-costa .h1,
.store-theme-casa-costa .h2,
.store-theme-casa-costa .h3,
.store-theme-casa-costa .title-display,
.store-theme-casa-costa .main-page-title {
    color: var(--cc-ink);
    font-family: var(--cc-font) !important;
    font-weight: 700;
    letter-spacing: -.03em;
}

.store-theme-casa-costa p,
.store-theme-casa-costa .cl-text-2,
.store-theme-casa-costa .cl-text-3 {
    color: var(--cc-muted);
}

/* styles.css fija DM Sans en todos los <a>; Casa Costa hereda la fuente de marca. */
body.store-theme-casa-costa a {
    font-family: inherit;
}

/* Centrar la máscara de WhatsApp sin el desplazamiento de la línea base tipográfica. */
.store-theme-casa-costa #whatsapp-float > .fa-whatsapp {
    display: grid;
    place-items: center;
    width: 1em;
    height: 1em;
    flex-shrink: 0;
}
.store-theme-casa-costa #whatsapp-float > .fa-whatsapp::before {
    display: block;
    vertical-align: 0;
}

.store-theme-casa-costa a {
    text-underline-offset: .22em;
}

.store-theme-casa-costa :is(a, button, input, select, textarea, summary, [tabindex]):focus {
    outline: none;
}

/* El foco usa una línea, no un marco. Prevalece sobre las sombras de hover. */
.store-theme-casa-costa :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    box-shadow: inset 0 -2px 0 var(--cc-focus-marker) !important;
}

.store-theme-casa-costa .theme-preview-bar {
    background: var(--cc-blue);
    border: 0;
}

/* Header */
.store-theme-casa-costa .tf-topbar,
.store-theme-casa-costa .tf-topbar.bg-dark {
    background: var(--cc-ink) !important;
    min-height: 34px;
}

.store-theme-casa-costa .tf-topbar p,
.store-theme-casa-costa .tf-topbar a {
    color: #fff !important;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .02em;
}

.store-theme-casa-costa header.tf-header,
.store-theme-casa-costa header.tf-header.bg-dark {
    background: var(--cc-header-bg) !important;
    border-bottom: 0;
    box-shadow: none;
    top: 0 !important;
    transition: background-color .2s ease-out;
}

/* El header conserva su espacio; sólo la marca queda sobre el contenido. */
.store-theme-casa-costa header.tf-header.cc-header-compact {
    background: transparent !important;
    box-shadow: none;
    pointer-events: none;
    mix-blend-mode: difference;
}

.store-theme-casa-costa header.cc-header-compact .header-center {
    pointer-events: auto;
}

/* Carrito, checkout y cuenta: compacto pero sólido, sin quedar sobre los formularios. */
.store-theme-casa-costa header.tf-header.cc-header-compact.cc-header-solid {
    background: var(--cc-header-bg) !important;
    mix-blend-mode: normal;
    pointer-events: auto;
}

.store-theme-casa-costa header.cc-header-compact :is(.theme-inline-navigation, .header-right) {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
}

.store-theme-casa-costa header.cc-header-compact .btn-open-menu:hover {
    background: transparent;
}

.store-theme-casa-costa header.tf-header .header-inner_wrap {
    background: transparent;
}

.store-theme-casa-costa header.tf-header .header-inner_wrap > .br-line {
    display: none !important;
}

.store-theme-casa-costa header.tf-header .header-inner {
    align-items: center;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 24px;
    min-height: 104px;
    padding-block: 12px;
}

.store-theme-casa-costa header.tf-header .header-center {
    align-items: center;
    display: flex;
    gap: 20px;
    grid-column: 1;
    grid-row: 1;
    justify-self: start;
    /* Compensa el contenedor de 94% + 15px sin mover los otros sectores. */
    margin-inline-start: calc(16px - 15px - 3vw);
}

.store-theme-casa-costa header.tf-header .theme-inline-navigation {
    grid-column: 2;
    grid-row: 1;
}

.store-theme-casa-costa header.tf-header .header-right {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
}

.store-theme-casa-costa header.tf-header .logo-site {
    align-items: center;
    display: inline-flex;
    line-height: 0;
}

.store-theme-casa-costa header.tf-header .logo-site img {
    height: 76px;
    max-height: 76px;
    object-fit: contain;
    object-position: left center;
    width: 76px;
}

.store-theme-casa-costa header.tf-header .nav-icon-list {
    gap: 4px;
}

.store-theme-casa-costa header.tf-header .nav-icon-item {
    position: relative;
}

.store-theme-casa-costa header.tf-header .cc-cart-icon {
    display: block;
    flex-shrink: 0;
    height: 22px;
    width: 22px;
}

.store-theme-casa-costa header.tf-header .nav-icon-item .count {
    background: var(--cc-blue);
    color: var(--cc-surface);
}

.store-theme-casa-costa header.tf-header .nav-icon-item,
.store-theme-casa-costa header.tf-header .btn-open-menu {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: 12px;
    color: var(--cc-surface) !important;
    cursor: pointer;
    display: inline-flex;
    flex-shrink: 0;
    justify-content: center;
    min-height: 44px;
    min-width: 44px;
    padding: 0;
    transition: background-color .2s ease;
}

.store-theme-casa-costa header.tf-header .nav-icon-item i,
.store-theme-casa-costa header.tf-header .btn-open-menu i {
    color: inherit !important;
}

.store-theme-casa-costa header.tf-header .nav-icon-item:hover,
.store-theme-casa-costa header.tf-header .btn-open-menu:hover {
    background: rgba(255, 255, 255, .14);
}

.store-theme-casa-costa header.tf-header .nav-icon-item:active,
.store-theme-casa-costa header.tf-header .btn-open-menu:active {
    background: rgba(255, 255, 255, .22);
}

.store-theme-casa-costa header.tf-header,
.store-theme-casa-costa .cc-hero,
.store-theme-casa-costa footer {
    --cc-focus-marker: rgba(255, 255, 255, .6);
}

.store-theme-casa-costa header.tf-header .sub-menu {
    --cc-focus-marker: var(--cc-muted);
}

.store-theme-casa-costa header.tf-header .cc-category-menu > .sub-menu {
    max-height: min(640px, calc(100dvh - 132px));
    overflow-y: auto;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.store-theme-casa-costa header.tf-header .cc-category-menu.is-open > .sub-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
}

.store-theme-casa-costa header.tf-header .cc-category-menu > button,
.store-theme-casa-costa header.tf-header [data-cc-mega-toggle] {
    background: transparent;
    border: 0;
    cursor: pointer;
    display: flex;
    gap: 8px;
}

/* Carrito en celular: footer.php oculta el panel de sugeridos hasta 767px pero le dejaba al
   carrito su margen de 260px, y los productos y totales quedaban en una columna de 115px. */
@media (max-width: 767px) {
    .store-theme-casa-costa #shoppingCart .has-sugeridos .cart-main-panel { margin-left: 0; }
}

/* Página /carrito */
.store-theme-casa-costa .section-shoping-cart .tf-cart_item .img-prd {
    border: 1px solid var(--cc-line);
    border-radius: 10px;
    background: #fff;
}

.store-theme-casa-costa .section-shoping-cart .tf-cart_item .prd_name { color: var(--cc-ink); }

/* El input general del tema le ponía una caja blanca al número dentro del selector. */
.store-theme-casa-costa .section-shoping-cart .wg-quantity input.qty-input {
    background: transparent;
    border: 0;
    border-radius: 0;
}

.store-theme-casa-costa .section-shoping-cart .col-lg-8 > .d-flex {
    flex-wrap: wrap;
    gap: 12px;
}

.store-theme-casa-costa .section-shoping-cart .col-lg-8 > .d-flex > .tf-btn {
    gap: 8px;
    height: auto;
    min-height: 46px;
    padding: 10px 20px;
    font-size: 14px;
    white-space: nowrap;
}

.store-theme-casa-costa .section-shoping-cart .col-lg-8 > .d-flex > .tf-btn i { margin: 0 !important; }

/* Vaciar carrito es secundario y destructivo: texto gris, rojo al pasar. */
.store-theme-casa-costa .section-shoping-cart .tf-btn.btn-stroke.btn-clear-cart {
    background: transparent !important;
    border-color: transparent !important;
    color: var(--cc-muted) !important;
    font-weight: 600;
    padding-inline: 12px;
}

.store-theme-casa-costa .section-shoping-cart .tf-btn.btn-stroke.btn-clear-cart:hover {
    background: rgba(198, 40, 40, .07) !important;
    border-color: transparent !important;
    box-shadow: none;
    color: #c62828 !important;
    transform: none;
}

.store-theme-casa-costa .section-shoping-cart .box-order-summary {
    background: var(--cc-surface);
    border: 1px solid var(--cc-line);
    border-radius: 14px;
    box-shadow: 0 14px 34px rgba(39, 48, 45, .07);
}

/* La fila de Envío ya trae su raya: la separadora de abajo la duplicaba. */
.store-theme-casa-costa .section-shoping-cart .box-order-summary .subtotal + .br-line { display: none; }

/* La columna Producto pedía 360px: entre 768 y ~1200px la tabla desbordaba y el Subtotal quedaba tapado. */
@media (min-width: 768px) {
    .store-theme-casa-costa .section-shoping-cart .tf-table-page-cart :is(td, th):nth-child(1) { min-width: 220px; }
}

/* Debajo de 992px el resumen baja y su mt-4 (4px) lo dejaba pegado a los botones. */
@media (max-width: 991px) {
    .store-theme-casa-costa .section-shoping-cart .col-lg-4 { margin-top: 28px !important; }
}

@media (max-width: 767px) {
    .store-theme-casa-costa .section-shoping-cart .tf-cart_item { padding-inline-start: 96px; }
    .store-theme-casa-costa .section-shoping-cart .tf-cart_item td.cart_product { padding-top: 0; }
    .store-theme-casa-costa .section-shoping-cart .tf-cart_item .prd_name { font-size: 15px; line-height: 1.4; }
    .store-theme-casa-costa .section-shoping-cart .tf-cart_item :is(td[data-cart-title], td:last-child)::before {
        color: var(--cc-muted);
        flex: 1 1 auto;
        font-size: 14px;
        font-weight: 500;
        line-height: 22px;
        text-align: start;
    }
    /* La celda del subtotal no trae data-cart-title: el precio quedaba suelto, sin rótulo. */
    .store-theme-casa-costa .section-shoping-cart .tf-cart_item td:last-child::before { content: "Subtotal"; }
    .store-theme-casa-costa .section-shoping-cart .tf-cart_item .cart_total { color: var(--cc-ink); font-size: 16px; font-weight: 700; }
    .store-theme-casa-costa .section-shoping-cart .tf-cart_item .wg-quantity { height: 40px; min-width: 112px; padding: 4px 8px; }
    .store-theme-casa-costa .section-shoping-cart .col-lg-8 > .d-flex { gap: 8px; margin-top: 16px !important; }
    .store-theme-casa-costa .section-shoping-cart .col-lg-8 > .d-flex > a.tf-btn { flex: 1 1 auto; padding-inline: 16px; }
    /* Entra al lado de Seguir comprando desde 360px; si se parte, queda centrado debajo. */
    .store-theme-casa-costa .section-shoping-cart .tf-btn.btn-stroke.btn-clear-cart { padding-inline: 10px; margin-inline: auto; }
    .store-theme-casa-costa .section-shoping-cart .box-order-summary { padding: 20px 18px; }
    .store-theme-casa-costa .section-shoping-cart .box-order-summary .total-order { font-size: 22px; }
}

.store-theme-casa-costa #mobileMenu .icon-close-popup,
.store-theme-casa-costa #search .icon-close-popup,
.store-theme-casa-costa #shoppingCart .icon-close-popup {
    align-items: center;
    background: transparent;
    border: 0;
    display: inline-flex;
    justify-content: center;
    min-height: 44px;
    min-width: 44px;
    cursor: pointer;
}

.store-theme-casa-costa #mobileMenu .icon-close-popup:hover,
.store-theme-casa-costa #search .icon-close-popup:hover,
.store-theme-casa-costa #shoppingCart .icon-close-popup:hover {
    background: var(--cc-hover-surface);
}

.store-theme-casa-costa #mobileMenu.cc-side-menu {
    width: min(600px, calc(100vw - 24px));
    height: 100dvh;
    max-height: 100%;
    border-radius: 0;
    box-shadow: 5px 0 20px rgba(0, 0, 0, .1);
    transition: transform .3s cubic-bezier(.16, 1, .3, 1);
}

body.store-theme-casa-costa.cc-side-menu-open .offcanvas-backdrop {
    background-color: rgba(17, 19, 18, .48);
    opacity: 0;
    -webkit-backdrop-filter: blur(0);
    backdrop-filter: blur(0);
    transition: opacity .3s ease-out, -webkit-backdrop-filter .3s ease-out, backdrop-filter .3s ease-out;
}

body.store-theme-casa-costa.cc-side-menu-open .offcanvas-backdrop.show {
    opacity: 1;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}

.store-theme-casa-costa .cc-side-menu-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
    padding: max(16px, env(safe-area-inset-top)) 16px 16px 24px;
    border-bottom: 1px solid var(--cc-line);
}

.store-theme-casa-costa .cc-side-menu-header h2 {
    margin: 0;
    font-size: 24px;
    font-weight: 650;
    line-height: 1.2;
    letter-spacing: -.02em;
}

.store-theme-casa-costa .cc-side-menu-header .icon-close-popup {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    color: var(--cc-ink);
    font-size: 22px;
    transition: background-color .18s ease-out;
}

/* El panel recibe el foco al abrir: sin línea de foco sobre el panel ni la X. */
.store-theme-casa-costa #mobileMenu.cc-side-menu:focus-visible {
    box-shadow: 5px 0 20px rgba(0, 0, 0, .1) !important;
}

.store-theme-casa-costa .cc-side-menu-body {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 16px 12px;
    scrollbar-width: thin;
    scrollbar-color: var(--cc-muted) var(--cc-surface);
}

.store-theme-casa-costa .cc-side-menu-links,
.store-theme-casa-costa .cc-side-menu-category-content ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

/*
 * Filas del menú lateral: superficie neutra redondeada al hover, igual que el
 * selector del megamenú y la barra del listing. Sin cambios de peso ni de color
 * para que el texto no salte.
 */
.store-theme-casa-costa :is(.cc-side-menu-body, .cc-side-menu-footer) a,
.store-theme-casa-costa :is(.cc-side-menu-body, .cc-side-menu-footer) button,
.store-theme-casa-costa .cc-side-menu-body summary {
    display: flex;
    align-items: center;
    min-height: 44px;
    width: 100%;
    padding: 8px 12px;
    background: transparent;
    border: 0;
    border-radius: 12px;
    color: var(--cc-ink);
    /* styles.css fija DM Sans en todos los <a>; el menú usa solo la fuente de marca. */
    font-family: var(--cc-font);
    font-size: 16px;
    font-weight: 500;
    line-height: 24px;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    overflow-wrap: anywhere;
    transition: background-color .18s ease-out, color .18s ease-out;
}

@media (hover: hover) and (pointer: fine) {
    .store-theme-casa-costa :is(.cc-side-menu-body, .cc-side-menu-footer) :is(a, button:not(.cc-side-menu-session), summary):hover {
        background: var(--cc-hover-surface);
        color: var(--cc-ink);
    }
}

.store-theme-casa-costa :is(.cc-side-menu-body, .cc-side-menu-footer) :is(a, button:not(.cc-side-menu-session), summary):focus-visible {
    background: var(--cc-hover-surface);
}

.store-theme-casa-costa :is(.cc-side-menu-body, .cc-side-menu-footer) :is(a, button:not(.cc-side-menu-session), summary):active {
    background: #e2e6e4;
    color: var(--cc-ink-deep);
}

/* Menú lateral en tres niveles: accesos 22px/600, grupos y pie 18px, subcategorías 16px. */
.store-theme-casa-costa .cc-side-menu-links > li > a,
.store-theme-casa-costa .cc-side-menu-links > li > .cc-side-menu-categories > summary {
    padding-block: 10px;
    font-size: 22px;
    font-weight: 600;
    letter-spacing: -.01em;
    line-height: 1.2;
}

.store-theme-casa-costa .cc-side-menu-body summary {
    justify-content: space-between;
    gap: 12px;
    list-style: none;
}

.store-theme-casa-costa .cc-side-menu-body summary::-webkit-details-marker {
    display: none;
}

.store-theme-casa-costa .cc-side-menu-body summary i {
    flex-shrink: 0;
    color: var(--cc-muted);
    font-size: 14px;
    transition: transform .26s cubic-bezier(.16, 1, .3, 1);
}

.store-theme-casa-costa .cc-side-menu-disclosure[open] > summary:not([aria-expanded="false"]) i {
    transform: rotate(180deg);
}

.store-theme-casa-costa .cc-side-menu-disclosure-panel {
    overflow: hidden;
}

.store-theme-casa-costa .cc-side-menu-category-content {
    padding: 4px 0 12px 16px;
}

.store-theme-casa-costa .cc-side-menu-category-content :is(a, summary) {
    font-size: 16px;
    line-height: 1.35;
}

.store-theme-casa-costa .cc-side-menu-category-content .cc-side-menu-parent {
    font-size: 18px;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.3;
}

.store-theme-casa-costa .cc-side-menu-category-group .cc-side-menu-children {
    padding: 0 0 8px 16px;
}

.store-theme-casa-costa .cc-side-menu-children a {
    color: var(--cc-muted);
}

.store-theme-casa-costa .cc-side-menu-children .cc-side-menu-view-all {
    gap: 8px;
    color: var(--cc-ink);
    font-size: 16px;
    font-weight: 600;
}

.store-theme-casa-costa .cc-side-menu-children .cc-side-menu-view-all i {
    font-size: 13px;
    transition: transform .18s ease-out;
}

@media (hover: hover) and (pointer: fine) {
    .store-theme-casa-costa .cc-side-menu-children .cc-side-menu-view-all:hover i {
        transform: translateX(3px);
    }
}

.store-theme-casa-costa .cc-side-menu-footer {
    flex-shrink: 0;
    padding: 12px 12px max(20px, env(safe-area-inset-bottom));
    border-top: 1px solid var(--cc-line);
}

.store-theme-casa-costa .cc-side-menu-secondary a {
    gap: 14px;
    font-size: 18px;
    line-height: 1.3;
}

.store-theme-casa-costa .cc-side-menu-secondary a i {
    width: 24px;
    font-size: 18px;
    text-align: center;
}

.store-theme-casa-costa .cc-side-menu-account {
    margin-top: 12px;
}

.store-theme-casa-costa .cc-side-menu-footer .cc-side-menu-session {
    justify-content: center;
    min-height: 56px;
    padding: 12px 16px;
    border-radius: 12px;
    background: var(--cc-header-bg);
    color: var(--cc-surface);
    font-size: 16px;
    font-weight: 600;
    letter-spacing: .01em;
    line-height: 1.2;
    text-align: center;
    transition: background-color .18s ease-out;
}

.store-theme-casa-costa .cc-side-menu-footer .cc-side-menu-session:hover,
.store-theme-casa-costa .cc-side-menu-footer .cc-side-menu-session:active {
    background: var(--cc-ink);
    color: var(--cc-surface);
}

.store-theme-casa-costa #mobileMenu .cc-menu-actions {
    border-top: 1px solid var(--cc-line);
    display: grid;
    gap: 4px;
    padding-top: 20px;
}

.store-theme-casa-costa #mobileMenu .cc-menu-actions a,
.store-theme-casa-costa #mobileMenu .cc-menu-actions button {
    align-items: center;
    background: transparent;
    border: 0;
    color: var(--cc-ink);
    cursor: pointer;
    display: flex;
    gap: 12px;
    min-height: 44px;
    padding: 8px 0;
    text-align: left;
}

.store-theme-casa-costa #mobileMenu .cc-menu-actions a:hover,
.store-theme-casa-costa #mobileMenu .cc-menu-actions button:hover {
    color: var(--cc-ink);
    font-weight: 700;
}

/* Búsqueda visual Casa Costa; Bootstrap conserva el ciclo del modal. */
.store-theme-casa-costa.cc-search-open .modal-backdrop {
    background: rgba(25, 27, 26, .45);
    backdrop-filter: blur(8px);
}
.store-theme-casa-costa.cc-search-open .modal-backdrop.show { opacity: 1; }
.store-theme-casa-costa #search.cc-search .modal-dialog {
    margin: 24px auto;
    width: calc(100% - 48px);
    max-width: 1280px;
    min-height: calc(100% - 48px);
}
.store-theme-casa-costa #search.cc-search .modal-content {
    padding: 24px 30px 30px;
    gap: 28px;
    border: 0;
    border-radius: 16px;
    background: var(--cc-surface);
    max-height: calc(100dvh - 48px);
    overflow: hidden;
    box-shadow: var(--cc-shadow);
}
.store-theme-casa-costa .cc-search-top { display: flex; align-items: center; gap: 16px; position: relative; flex-shrink: 0; }
.store-theme-casa-costa .cc-search-form {
    display: flex;
    align-items: center;
    width: min(560px, calc(100% - 60px));
    margin: 0 auto;
    background: var(--cc-canvas);
    border-radius: 30px;
    padding: 2px 6px;
}
.store-theme-casa-costa #search .cc-search-form button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
    min-width: 44px;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    padding: 0;
    background: transparent;
    color: var(--cc-ink);
    cursor: pointer;
}
.store-theme-casa-costa #search .cc-search-form button:hover { background: var(--cc-hover-surface); }
.store-theme-casa-costa #search .cc-search-clear[hidden],
.store-theme-casa-costa #search #cc-search-all[hidden] { display: none; }
.store-theme-casa-costa #search.cc-search #search-modal-input {
    min-width: 0;
    flex: 1;
    height: 44px;
    padding: 8px 4px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--cc-ink);
    font-size: 16px;
    line-height: 24px;
}
.store-theme-casa-costa #search-modal-input::-webkit-search-cancel-button { display: none; }
.store-theme-casa-costa #search .cc-search-top > .icon-close-popup { position: absolute; right: 0; top: 50%; transform: translateY(-50%); border-radius: 50%; color: var(--cc-ink); font-size: 20px; }
.store-theme-casa-costa .cc-search-body {
    display: grid;
    grid-template-columns: 170px minmax(0, 1fr);
    gap: 32px;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: var(--cc-muted) var(--cc-canvas);
}
.store-theme-casa-costa .cc-search-label {
    margin: 0 0 16px;
    color: var(--cc-muted);
    font-size: 12px;
    line-height: 18px;
    letter-spacing: .06em;
    text-transform: uppercase;
    font-weight: 500;
}
.store-theme-casa-costa .cc-search-suggestions { display: grid; gap: 2px; padding: 0; margin: 0 0 24px; list-style: none; }
.store-theme-casa-costa .cc-search-suggestions :is(a, button) {
    display: block;
    width: 100%;
    padding: 7px 0;
    min-height: 32px;
    border: 0;
    background: transparent;
    color: var(--cc-ink);
    font-size: 14px;
    line-height: 20px;
    text-align: left;
    cursor: pointer;
}
.store-theme-casa-costa .cc-search-suggestions :is(a, button):hover { text-decoration: underline; text-underline-offset: 4px; }
.store-theme-casa-costa .cc-search-recent { margin-bottom: 24px; }
.store-theme-casa-costa .cc-search-recent-items .swiper-slide { width: 100%; }
.store-theme-casa-costa .cc-search-recent-items :is(.card-product_wrapper, .price-wrap),
.store-theme-casa-costa .cc-search-recent-items > :nth-child(n+4) { display: none; }
.store-theme-casa-costa .cc-search-recent-items .card-product_info { padding: 6px 0; }
.store-theme-casa-costa .cc-search-recent-items .name-product { font-size: 13px; line-height: 1.5; font-weight: 400; }
.store-theme-casa-costa .cc-search-catalog { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--cc-ink); }
.store-theme-casa-costa #cc-search-hint { margin-top: 24px; color: var(--cc-muted); font-size: 12px; line-height: 1.6; max-width: 24ch; }
.store-theme-casa-costa .cc-search-section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.store-theme-casa-costa #cc-search-all { flex-shrink: 0; color: var(--cc-ink); font-size: 12px; display: inline-flex; align-items: center; gap: 8px; }
.store-theme-casa-costa .cc-search-main { min-width: 0; }
.store-theme-casa-costa #search.cc-search #search-live-results { min-height: 285px; margin: 0; }
.store-theme-casa-costa .cc-search-products { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; list-style: none; margin: 0; padding: 0; }
.store-theme-casa-costa .cc-search-products li { min-width: 0; }
.store-theme-casa-costa .cc-search-product { display: flex; flex-direction: column; gap: 4px; color: var(--cc-ink); }
.store-theme-casa-costa .cc-search-product-image {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 4 / 5;
    width: 100%;
    background: var(--cc-canvas);
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 8px;
    color: var(--cc-muted);
    font-size: 12px;
}
.store-theme-casa-costa .cc-search-product-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .2s ease-out; }
.store-theme-casa-costa .cc-search-product:hover img { transform: scale(1.035); }
.store-theme-casa-costa .cc-search-product-name { font-size: 13px; line-height: 1.4; font-weight: 600; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.store-theme-casa-costa .cc-search-product-code { font-size: 11px; line-height: 1.4; color: var(--cc-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.store-theme-casa-costa .cc-search-product-price { font-size: 12px; color: var(--cc-ink); font-variant-numeric: tabular-nums; }
.store-theme-casa-costa .cc-search-product-note { margin-top: -2px; font-size: 11px; line-height: 1.35; color: var(--cc-muted); }
.store-theme-casa-costa .cc-search-message { display: flex; min-height: 285px; flex-direction: column; align-items: center; justify-content: center; gap: 16px; text-align: center; padding: 24px; }
.store-theme-casa-costa .cc-search-message p { font-size: 15px; color: var(--cc-muted); max-width: 46ch; margin: 0; }
.store-theme-casa-costa .cc-search-message button { cursor: pointer; border: 0; background: var(--cc-ink); color: var(--cc-surface); border-radius: 8px; padding: 10px 18px; min-height: 44px; }
.store-theme-casa-costa .cc-search-message button:hover { background: var(--cc-ink-deep); }
.store-theme-casa-costa .cc-search-categories { margin-top: 28px; }
.store-theme-casa-costa .cc-search-category-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.store-theme-casa-costa .cc-search-category { position: relative; display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; padding: 18px; min-height: 116px; border-radius: 12px; overflow: hidden; background: var(--cc-hover-surface); color: var(--cc-ink); font-size: 15px; font-weight: 600; }
.store-theme-casa-costa .cc-search-category img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.store-theme-casa-costa .cc-search-category.has-image::after { content: ''; position: absolute; inset: 0; background: linear-gradient(transparent, rgba(0, 0, 0, .7)); }
.store-theme-casa-costa .cc-search-category :is(span, i) { position: relative; z-index: 1; }
.store-theme-casa-costa .cc-search-category.has-image { color: var(--cc-surface); }
.store-theme-casa-costa .cc-search-category:hover { text-decoration: underline; text-underline-offset: 4px; }

@media (max-width: 991px) {
    .store-theme-casa-costa .cc-search-body { grid-template-columns: 140px minmax(0, 1fr); gap: 24px; }
    .store-theme-casa-costa .cc-search-products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
    .store-theme-casa-costa .cc-search-category-grid { gap: 12px; }
    .store-theme-casa-costa .cc-search-category { padding: 14px; font-size: 13px; min-height: 100px; }
}
@media (max-width: 575px) {
    .store-theme-casa-costa #search.cc-search .modal-dialog { width: calc(100% - 16px); margin: 8px auto; min-height: calc(100% - 16px); }
    .store-theme-casa-costa #search.cc-search .modal-content { padding: 16px; gap: 22px; max-height: calc(100dvh - 16px); }
    .store-theme-casa-costa .cc-search-form { margin-left: 0; width: calc(100% - 48px); }
    .store-theme-casa-costa #search.cc-search #search-modal-input { font-size: 16px; }
    .store-theme-casa-costa .cc-search-body { display: flex; flex-direction: column; gap: 24px; }
    .store-theme-casa-costa .cc-search-aside { flex-shrink: 0; }
    .store-theme-casa-costa .cc-search-aside .cc-search-label { margin-bottom: 8px; }
    .store-theme-casa-costa .cc-search-suggestions { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-bottom: 0; }
    .store-theme-casa-costa .cc-search-suggestions :is(a, button) { font-size: 13px; min-height: 36px; padding-block: 8px; }
    .store-theme-casa-costa .cc-search-aside .cc-search-catalog,
    .store-theme-casa-costa #cc-search-hint { display: none; }
    .store-theme-casa-costa .cc-search-products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 14px; }
    .store-theme-casa-costa .cc-search-product-image { aspect-ratio: 1; }
    .store-theme-casa-costa .cc-search-category-grid { grid-template-columns: 1fr; }
    .store-theme-casa-costa .cc-search-category { min-height: 88px; }
    .store-theme-casa-costa .cc-search-label { font-size: 11px; }
    .store-theme-casa-costa #cc-search-all { font-size: 12px; }
}

.store-theme-casa-costa header.tf-header .box-nav-menu {
    gap: clamp(14px, 1.8vw, 28px);
}

.store-theme-casa-costa header.tf-header .box-nav-menu > .menu-item > .item-link {
    align-items: center;
    color: #fff !important;
    font-size: 16px;
    font-weight: 650;
    letter-spacing: .055em;
    min-height: 48px;
    padding: 0 14px;
    position: relative;
    text-transform: none;
    transition: color .22s cubic-bezier(.16, 1, .3, 1), background-color .22s ease;
}

.store-theme-casa-costa header.tf-header .box-nav-menu > .menu-item > .item-link .text,
.store-theme-casa-costa header.tf-header .box-nav-menu > .menu-item > .item-link .cus-text,
.store-theme-casa-costa header.tf-header .box-nav-menu > .menu-item > .item-link i {
    color: #fff !important;
}

.store-theme-casa-costa header.tf-header .box-nav-menu > .menu-item > .item-link .text {
    display: inline-block;
    position: static;
    transform-origin: center;
    transition: transform .18s ease-out, font-weight .18s ease-out;
}

.store-theme-casa-costa header.tf-header .box-nav-menu > .menu-item > .item-link::before,
.store-theme-casa-costa header.tf-header .box-nav-menu > .menu-item > .item-link::after,
.store-theme-casa-costa header.tf-header .box-nav-menu > .menu-item > .item-link .cus-text::before,
.store-theme-casa-costa header.tf-header .box-nav-menu > .menu-item > .item-link .cus-text::after {
    content: none;
    display: none;
}

.store-theme-casa-costa header.tf-header .box-nav-menu > .menu-item > .item-link:hover .text,
.store-theme-casa-costa header.tf-header .box-nav-menu > .menu-item > .item-link:focus-visible .text {
    font-weight: 750;
    transform: scale(1.08);
}

.store-theme-casa-costa header.tf-header .box-nav-menu > .menu-item > .item-link:hover,
.store-theme-casa-costa header.tf-header .box-nav-menu > .menu-item > .item-link:active {
    background: transparent;
}

.store-theme-casa-costa .sub-menu,
.store-theme-casa-costa .shop-location-popover {
    background: var(--cc-surface) !important;
    border: 1px solid var(--cc-line) !important;
    border-radius: 14px !important;
    box-shadow: var(--cc-shadow) !important;
}

.store-theme-casa-costa header.tf-header .cc-category-menu > .sub-menu {
    border: 0 !important;
}

/* Panel oscuro: misma jerarquía y controlador de categorías compartidos. */
.store-theme-casa-costa #mm-categorias {
    --cc-focus-marker: var(--cc-menu-muted);
    position: fixed;
    top: var(--cc-menu-top, 76px);
    width: auto;
    left: 0;
    right: 0;
    transform: none;
    padding-top: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}
.store-theme-casa-costa .mm-trigger.mm-open #mm-categorias { transform: none; }

.store-theme-casa-costa .mm__inner {
    padding: 12px;
    background: var(--cc-menu-bg);
    border-radius: 0;
    box-shadow: var(--cc-menu-shadow);
    max-height: var(--cc-menu-max-height, calc(100dvh - 140px));
    overflow-y: auto;
    scrollbar-color: var(--cc-menu-muted) var(--cc-menu-bg);
    scrollbar-gutter: stable;
}

.store-theme-casa-costa .mm__sidebar {
    width: 266px;
    padding: 12px 12px 12px 0;
    position: sticky;
    top: 0;
    align-self: flex-start;
    background: var(--cc-menu-bg);
    border-right: 1px solid rgba(255, 255, 255, .08);
}

.store-theme-casa-costa .mm__sidebar-list { padding: 0; }

.store-theme-casa-costa .mm__sidebar-link {
    min-height: 40px;
    padding: 8px 12px;
    margin-block: 2px;
    gap: 14px;
    border: 0;
    border-radius: 8px;
    font-size: 17px;
    font-weight: 500;
    letter-spacing: 0;
    color: var(--cc-menu-muted);
    white-space: normal;
    transition: background-color .16s ease-out, color .16s ease-out;
}

.store-theme-casa-costa .mm__sidebar-item:is(:hover, .is-active) .mm__sidebar-link,
.store-theme-casa-costa .mm__sidebar-link:focus-visible {
    background: var(--cc-menu-raised);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06), 0 2px 3px rgba(0, 0, 0, .15);
    color: var(--cc-surface);
    font-weight: 700;
}

.store-theme-casa-costa .mm__sidebar-arrow,
.store-theme-casa-costa .mm__sidebar-item:is(:hover, .is-active) .mm__sidebar-arrow {
    color: var(--cc-menu-muted);
    transform: none;
}

.store-theme-casa-costa .mm__panel-wrap { background: transparent; min-width: 0; overflow: visible; }
.store-theme-casa-costa .mm__panel-item { padding: 12px 24px; height: auto; }
.store-theme-casa-costa .cc-menu-title { color: var(--cc-menu-text); font-size: 23px; font-weight: 600; margin: 0 0 8px; }
.store-theme-casa-costa .mm__ver-todo {
    color: var(--cc-menu-muted);
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
    border: 0;
    min-height: 36px;
    margin-bottom: 12px;
    padding: 0;
}
.store-theme-casa-costa .mm__cat-list {
    display: grid;
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: clamp(180px, 14vw, 240px);
    gap: 16px;
    overflow-x: auto;
    padding-bottom: 12px;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
    scrollbar-color: var(--cc-menu-muted) var(--cc-menu-bg);
}
.store-theme-casa-costa .mm__cat-item { min-width: 0; scroll-snap-align: start; }
.store-theme-casa-costa .mm__cat-link {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    height: 100%;
    padding: 0;
    border: 0;
    border-radius: 0;
    color: var(--cc-menu-text);
    font-size: 16px;
    line-height: 1.4;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
    transition: color .16s ease-out;
}
.store-theme-casa-costa .mm__cat-link::before { content: none; }
.store-theme-casa-costa .cc-menu-image {
    position: relative;
    display: grid;
    place-items: center;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: var(--cc-surface);
    border-radius: 12px;
}
.store-theme-casa-costa .cc-menu-image img { display: block; width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.store-theme-casa-costa .cc-menu-image img[hidden] { display: none; }
.store-theme-casa-costa .cc-menu-caption {
    position: absolute;
    inset: auto 0 0;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    padding: 40px 14px 14px;
    color: var(--cc-menu-text);
    background: linear-gradient(transparent, rgba(0, 0, 0, .30) 70%);
    font-size: 17px;
    line-height: 1.35;
}
.store-theme-casa-costa .cc-menu-caption i { font-size: 15px; color: inherit; flex-shrink: 0; }
.store-theme-casa-costa .cc-menu-image-empty { display: none; color: var(--cc-menu-muted); font-size: 14px; font-weight: 400; }
.store-theme-casa-costa .cc-menu-image.is-missing { background: var(--cc-menu-raised); }
.store-theme-casa-costa .cc-menu-image.is-missing .cc-menu-image-empty { display: block; }
.store-theme-casa-costa .mm__cat-link:is(:hover, :focus-visible) { background: transparent; color: var(--cc-menu-text); padding: 0; }
.store-theme-casa-costa .mm__cat-link:is(:hover, :focus-visible) .cc-menu-caption { text-decoration: underline; text-underline-offset: 5px; }
.store-theme-casa-costa .mm__ver-todo:is(:hover, :focus-visible) { color: var(--cc-menu-text); }

/* The landing hero extends behind the frosted menu to the top edge. */
.store-theme-casa-costa:has(.cc-hero) header.tf-header.cc-landing-menu {
    position: fixed !important;
    inset-inline: 0;
}

/* Hero */
.store-theme-casa-costa .cc-hero {
    background: var(--cc-ink-deep);
    padding: 0;
}

.store-theme-casa-costa .cc-hero_shell {
    background: var(--cc-ink);
    display: grid;
    grid-template: minmax(0, 1fr) / minmax(0, 1fr);
    height: clamp(744px, 100vh, 924px);
    height: clamp(744px, 100svh, 924px);
    isolation: isolate;
    margin: 0 auto;
    max-width: none;
    min-height: 0;
    overflow: hidden;
    position: relative;
}

.store-theme-casa-costa .cc-hero_copy {
    align-content: center;
    display: grid;
    grid-area: 1 / 1;
    justify-items: center;
    margin: 0 auto;
    max-width: 1180px;
    padding: clamp(64px, 7vw, 108px) 32px 118px;
    pointer-events: none;
    position: relative;
    text-align: center;
    width: 100%;
    z-index: 4;
}

.store-theme-casa-costa .cc-hero_copy::before,
.store-theme-casa-costa .cc-hero_copy::after {
    content: none;
}

.store-theme-casa-costa .cc-hero_copy h1 {
    color: #fff;
    filter: blur(0);
    /* Excepción display: vence la familia global requerida por la plantilla compartida. */
    font-family: var(--cc-font-display) !important;
    font-size: clamp(64px, 7.5vw, 96px);
    font-weight: 300;
    letter-spacing: -.035em;
    line-height: .92;
    margin: 0 0 36px;
    max-width: 16ch;
    text-shadow: 0 2px 24px rgba(0, 0, 0, .24);
    text-wrap: balance;
}

.store-theme-casa-costa .cc-hero_title-line {
    display: block;
}

.store-theme-casa-costa .cc-hero_copy h1 em {
    color: var(--cc-brass);
    font-style: italic;
    font-weight: 400;
}

.store-theme-casa-costa .cc-hero_actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    margin: 0;
    pointer-events: auto;
}

.store-theme-casa-costa .cc-button {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 12px;
    display: inline-flex;
    font-size: 14px;
    font-weight: 700;
    justify-content: center;
    min-height: 58px;
    padding: 0 30px;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}

.store-theme-casa-costa .cc-button:hover {
    transform: translateY(-2px);
}

.store-theme-casa-costa .cc-button-primary {
    background: #fff;
    color: var(--cc-ink) !important;
}

.store-theme-casa-costa .cc-button-primary:hover {
    background: var(--cc-hover-surface);
    color: var(--cc-ink) !important;
}

.store-theme-casa-costa .cc-hero .cc-button,
.store-theme-casa-costa .cc-hero .cc-hero_arrow {
    --cc-focus-marker: var(--cc-muted);
}

.store-theme-casa-costa .cc-hero .cc-button {
    border-radius: 4px;
    font-size: 12px;
    letter-spacing: .12em;
    min-height: 56px;
    text-transform: uppercase;
}

.store-theme-casa-costa .cc-hero .cc-button-primary:hover {
    --cc-ink: var(--cc-ink-deep);
    background: var(--cc-brass);
}

.store-theme-casa-costa .cc-hero_media,
.store-theme-casa-costa .cc-hero_swiper,
.store-theme-casa-costa .cc-hero_swiper .swiper-wrapper,
.store-theme-casa-costa .cc-hero_swiper .swiper-slide,
.store-theme-casa-costa .cc-hero_slide {
    grid-area: 1 / 1;
    height: 100%;
    min-height: 0;
}

.store-theme-casa-costa .cc-hero_media {
    background: var(--cc-ink-deep);
    grid-area: 1 / 1;
    min-width: 0;
    overflow: hidden;
    position: relative;
    z-index: 1;
}

.store-theme-casa-costa .cc-hero_swiper {
    cursor: grab;
    touch-action: pan-y;
}

.store-theme-casa-costa .cc-hero_swiper:active {
    cursor: grabbing;
}

.store-theme-casa-costa .cc-hero_media::after { content: none; }

.store-theme-casa-costa .cc-hero_slide {
    overflow: hidden;
    position: relative;
}

.store-theme-casa-costa .cc-hero_slide picture,
.store-theme-casa-costa .cc-hero_slide img {
    display: block;
    height: 100%;
    width: 100%;
}

.store-theme-casa-costa .cc-hero_slide img {
    filter: none;
    object-fit: cover;
    transform: scale(1.015);
    user-select: none;
    -webkit-user-drag: none;
}

.store-theme-casa-costa .cc-hero_link {
    cursor: grab;
    inset: 0;
    position: absolute;
    touch-action: pan-y;
    user-select: none;
    -webkit-user-drag: none;
    z-index: 3;
}

.store-theme-casa-costa .cc-hero_link:active {
    cursor: grabbing;
}

.store-theme-casa-costa .cc-hero_empty {
    background: linear-gradient(145deg, var(--cc-grey) 0%, var(--cc-ink-deep) 100%);
    height: 100%;
    overflow: hidden;
    position: relative;
}

.store-theme-casa-costa .cc-hero_empty span {
    background: var(--cc-blue);
    border: 28px solid rgba(255, 255, 255, .26);
    border-radius: 50%;
    display: block;
    height: 420px;
    position: absolute;
    width: 650px;
}

.store-theme-casa-costa .cc-hero_empty span:nth-child(1) { bottom: -260px; left: -160px; }
.store-theme-casa-costa .cc-hero_empty span:nth-child(2) { bottom: -180px; left: 140px; opacity: .72; }
.store-theme-casa-costa .cc-hero_empty span:nth-child(3) { bottom: -235px; right: -230px; opacity: .48; }

.store-theme-casa-costa .cc-hero_controls {
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 6;
}

.store-theme-casa-costa .cc-hero_arrow {
    --cc-focus-marker: rgba(255, 255, 255, .72);
    align-items: center;
    background: transparent;
    border: 0;
    color: rgba(255, 255, 255, .62);
    display: inline-flex;
    height: 56px;
    justify-content: center;
    pointer-events: auto;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    transition: color .2s ease, opacity .2s ease, transform .2s ease;
    width: 48px;
}

.store-theme-casa-costa .cc-hero_arrow svg {
    fill: none;
    height: 24px;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.5;
    width: 24px;
}

.store-theme-casa-costa .cc-hero_arrow-prev {
    left: clamp(10px, 2vw, 28px);
}

.store-theme-casa-costa .cc-hero_arrow-next {
    right: clamp(10px, 2vw, 28px);
}

.store-theme-casa-costa .cc-hero_arrow:hover {
    color: #fff;
}

.store-theme-casa-costa .cc-hero_arrow-prev:hover {
    transform: translate(-2px, -50%);
}

.store-theme-casa-costa .cc-hero_arrow-next:hover {
    transform: translate(2px, -50%);
}

.store-theme-casa-costa .cc-hero_arrow:active {
    color: rgba(255, 255, 255, .82);
}

.store-theme-casa-costa .cc-hero_arrow:disabled,
.store-theme-casa-costa .cc-hero_arrow.swiper-button-disabled {
    color: rgba(255, 255, 255, .22);
    cursor: default;
}

.store-theme-casa-costa .cc-hero_arrow-prev:disabled,
.store-theme-casa-costa .cc-hero_arrow-prev.swiper-button-disabled,
.store-theme-casa-costa .cc-hero_arrow-next:disabled,
.store-theme-casa-costa .cc-hero_arrow-next.swiper-button-disabled {
    transform: translateY(-50%);
}

.store-theme-casa-costa .cc-hero_dots {
    display: none;
}

.store-theme-casa-costa .cc-hero_scroll {
    align-items: center;
    bottom: 24px;
    color: rgba(255, 255, 255, .68);
    display: flex;
    flex-direction: column;
    font-size: 10px;
    gap: 8px;
    grid-area: 1 / 1;
    justify-self: center;
    letter-spacing: .18em;
    pointer-events: none;
    position: absolute;
    text-transform: uppercase;
    z-index: 5;
}

.store-theme-casa-costa .cc-hero_scroll-line {
    background: linear-gradient(180deg, var(--cc-brass), transparent);
    display: block;
    height: 40px;
    width: 1px;
}

@keyframes ccHeroImageReveal {
    from { transform: scale(1.06); }
    to { transform: scale(1.015); }
}

@keyframes ccHeroCopyReveal {
    from { filter: blur(2px); transform: translateY(14px); }
    to { filter: blur(0); transform: translateY(0); }
}

@keyframes ccHeroScrollPulse {
    0%, 100% { opacity: .42; transform: scaleY(.72); transform-origin: top; }
    50% { opacity: 1; transform: scaleY(1); transform-origin: top; }
}

@media (prefers-reduced-motion: no-preference) {
    .store-theme-casa-costa .cc-hero_swiper .swiper-slide-active .cc-hero_slide img {
        animation: ccHeroImageReveal 1.2s cubic-bezier(.16, 1, .3, 1) both;
    }

    .store-theme-casa-costa .cc-hero_copy h1 {
        animation: ccHeroCopyReveal .8s cubic-bezier(.16, 1, .3, 1) both;
    }

    .store-theme-casa-costa .cc-hero_actions {
        animation: ccHeroCopyReveal .8s .12s cubic-bezier(.16, 1, .3, 1) both;
    }

    .store-theme-casa-costa .cc-hero_scroll-line {
        animation: ccHeroScrollPulse 2s ease-in-out infinite;
    }
}

/* Category index */
.store-theme-casa-costa .cc-categories {
    padding: clamp(78px, 9vw, 138px) 0 clamp(70px, 8vw, 118px);
}

.store-theme-casa-costa .cc-section-heading {
    align-items: end;
    display: flex;
    gap: 36px;
    justify-content: space-between;
    margin-bottom: clamp(30px, 4vw, 52px);
}

.store-theme-casa-costa .cc-section-heading h2 {
    font-size: clamp(34px, 4vw, 62px);
    line-height: 1.06;
    margin: 0 0 16px;
    max-width: 13ch;
    text-wrap: balance;
}

.store-theme-casa-costa .cc-section-heading p {
    font-size: 16px;
    line-height: 1.65;
    margin: 0;
    max-width: 62ch;
}

.store-theme-casa-costa .cc-text-link {
    align-items: center;
    color: var(--cc-blue) !important;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 14px;
    font-weight: 700;
    gap: 10px;
    padding-bottom: 4px;
}

.store-theme-casa-costa .cc-text-link i {
    transition: transform .2s ease;
}

.store-theme-casa-costa .cc-text-link:hover i {
    transform: translateX(4px);
}

.store-theme-casa-costa .cc-category-index {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(12, minmax(0, 1fr));
}

.store-theme-casa-costa .cc-category-item {
    align-items: flex-end;
    background: var(--cc-surface);
    border: 1px solid var(--cc-line);
    border-radius: 14px;
    color: var(--cc-ink) !important;
    display: flex;
    grid-column: span 3;
    justify-content: space-between;
    min-height: 164px;
    overflow: hidden;
    padding: 24px;
    position: relative;
    transition: background-color .25s ease, border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}

.store-theme-casa-costa .cc-category-item:nth-child(1),
.store-theme-casa-costa .cc-category-item:nth-child(6) {
    background: var(--cc-cyan);
    grid-column: span 5;
}

.store-theme-casa-costa .cc-category-item:nth-child(2),
.store-theme-casa-costa .cc-category-item:nth-child(5) {
    grid-column: span 4;
}

.store-theme-casa-costa .cc-category-item:nth-child(3) {
    background: var(--cc-blue);
    border-color: var(--cc-blue);
    color: #fff !important;
    grid-column: span 3;
}

.store-theme-casa-costa .cc-category-item:nth-child(4) {
    background: var(--cc-ink);
    border-color: var(--cc-ink);
    color: #fff !important;
    grid-column: span 3;
}

.store-theme-casa-costa .cc-category-item:nth-child(n+7) {
    grid-column: span 3;
}

.store-theme-casa-costa .cc-category-item:hover {
    border-color: rgba(56, 61, 59, .34);
    box-shadow: 0 16px 36px rgba(39, 48, 45, .1);
    transform: translateY(-4px);
}

.store-theme-casa-costa .cc-category-item img {
    height: 100%;
    inset: 0;
    object-fit: cover;
    position: absolute;
    transition: transform .45s cubic-bezier(.16, 1, .3, 1);
    width: 100%;
}

.store-theme-casa-costa .cc-category-item.has-image::after {
    background: linear-gradient(180deg, rgba(37, 41, 39, .02) 25%, rgba(37, 41, 39, .8));
    content: "";
    inset: 0;
    position: absolute;
}

.store-theme-casa-costa .cc-category-item.has-image:hover img {
    transform: scale(1.045);
}

.store-theme-casa-costa .cc-category-name {
    font-size: clamp(17px, 1.4vw, 23px);
    font-weight: 700;
    letter-spacing: -.02em;
    line-height: 1.15;
    max-width: 14ch;
    position: relative;
    z-index: 2;
}

.store-theme-casa-costa .cc-category-item.has-image .cc-category-name {
    color: #fff;
}

.store-theme-casa-costa .cc-category-arrow {
    align-items: center;
    background: rgba(255, 255, 255, .72);
    border-radius: 50%;
    color: var(--cc-ink);
    display: inline-flex;
    flex: 0 0 auto;
    height: 36px;
    justify-content: center;
    position: relative;
    transition: background-color .2s ease, color .2s ease, transform .2s ease;
    width: 36px;
    z-index: 2;
}

.store-theme-casa-costa .cc-category-item:hover .cc-category-arrow {
    background: var(--cc-ink);
    color: #fff;
    transform: rotate(5deg);
}

/* Shared commerce surfaces */
.store-theme-casa-costa .flat-spacing,
.store-theme-casa-costa .flat-spacing-2,
.store-theme-casa-costa .flat-spacing-3 {
    background: transparent;
}

.store-theme-casa-costa .sect-heading,
.store-theme-casa-costa .heading-section,
.store-theme-casa-costa .flat-title,
.store-theme-casa-costa .section-title {
    margin-bottom: clamp(28px, 4vw, 48px);
}

.store-theme-casa-costa .sect-heading.text-center,
.store-theme-casa-costa .sect-heading.type-2.text-center {
    align-items: flex-start;
    text-align: left !important;
}

.store-theme-casa-costa .sect-heading .s-title,
.store-theme-casa-costa .heading-section .title,
.store-theme-casa-costa .flat-title .title,
.store-theme-casa-costa .section-title .title {
    font-size: clamp(31px, 3.6vw, 52px);
    font-weight: 700;
    line-height: 1.08;
}

.store-theme-casa-costa .sect-heading .s-desc {
    font-size: 15px;
    line-height: 1.65;
    margin-top: 12px;
    max-width: 68ch;
}

.store-theme-casa-costa .section-banner-collection-v02 .sect-heading .s-title {
    color: var(--cc-ink) !important;
}

.store-theme-casa-costa .card-product {
    min-width: 0;
}

.store-theme-casa-costa .card-product .card-product_wrapper,
.store-theme-casa-costa .card-product .product-img {
    background: #eef2f3;
    border-radius: 14px !important;
    overflow: hidden;
}

.store-theme-casa-costa .card-product .card-product_wrapper {
    box-shadow: 0 8px 24px rgba(39, 48, 45, .06);
    transition: box-shadow .25s ease, transform .25s ease;
}

.store-theme-casa-costa .card-product:hover .card-product_wrapper {
    box-shadow: 0 18px 42px rgba(39, 48, 45, .13);
    transform: translateY(-4px);
}

.store-theme-casa-costa .card-product img.img-product,
.store-theme-casa-costa .card-product img.img-hover {
    border-radius: 14px !important;
}

.store-theme-casa-costa .card-product .card-product_info {
    padding-top: 16px;
}

.store-theme-casa-costa .card-product .name-product,
.store-theme-casa-costa .card-product .name-product:hover {
    color: var(--cc-ink) !important;
    font-size: 14px;
    font-weight: 600 !important;
    line-height: 1.45;
}

.store-theme-casa-costa .card-product .price-new,
.store-theme-casa-costa .card-product .price-wrap .price-new {
    color: var(--cc-blue) !important;
    font-size: 17px;
    font-variant-numeric: tabular-nums;
    font-weight: 750 !important;
}

.store-theme-casa-costa .card-product .price-old {
    color: var(--cc-grey) !important;
    font-variant-numeric: tabular-nums;
}

.store-theme-casa-costa .card-product .card-hover-btn {
    background: rgba(255, 255, 255, .95);
    color: var(--cc-ink);
}

.store-theme-casa-costa .card-product .card-hover-btn:hover {
    background: var(--cc-ink);
    color: #fff;
}

.store-theme-casa-costa .card-product .product-badge_item,
.store-theme-casa-costa .card-product .product-badge_item.sale {
    background: var(--cc-blue);
    border-radius: 999px;
    color: #fff;
}

.store-theme-casa-costa .tf-btn:not(.btn-wa),
.store-theme-casa-costa .btn-action-price.tf-btn {
    background: var(--cc-blue) !important;
    border-color: var(--cc-blue) !important;
    border-radius: 12px !important;
    color: #fff !important;
    font-weight: 700;
    transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.store-theme-casa-costa .tf-btn:not(.btn-wa):hover,
.store-theme-casa-costa .btn-action-price.tf-btn:hover {
    background: var(--cc-ink-deep) !important;
    border-color: var(--cc-ink-deep) !important;
    box-shadow: 0 10px 24px rgba(37, 41, 39, .18);
    transform: translateY(-1px);
}

.store-theme-casa-costa .tf-btn.btn-stroke,
.store-theme-casa-costa .tf-btn.btn-white {
    background: #fff !important;
    border-color: rgba(56, 61, 59, .28) !important;
    color: var(--cc-ink) !important;
}

.store-theme-casa-costa .tf-btn.btn-stroke:hover,
.store-theme-casa-costa .tf-btn.btn-white:hover {
    background: var(--cc-hover-surface) !important;
    border-color: rgba(56, 61, 59, .4) !important;
    color: var(--cc-ink) !important;
}

.store-theme-casa-costa .tf-btn:disabled,
.store-theme-casa-costa .tf-btn.disabled {
    background: #dfe4e3 !important;
    border-color: #dfe4e3 !important;
    box-shadow: none !important;
    color: #666d6a !important;
    transform: none !important;
}

.store-theme-casa-costa .sw-dot-default .swiper-pagination-bullet,
.store-theme-casa-costa .tf-sw-pagination .swiper-pagination-bullet {
    background: var(--cc-grey);
}

.store-theme-casa-costa .sw-dot-default .swiper-pagination-bullet-active,
.store-theme-casa-costa .tf-sw-pagination .swiper-pagination-bullet-active {
    background: var(--cc-blue);
}

/* Catalog, product and checkout */
.store-theme-casa-costa .sidebar-filter,
.store-theme-casa-costa .tf-product-info-list,
.store-theme-casa-costa .checkout-main,
.store-theme-casa-costa .checkout-sidebar,
.store-theme-casa-costa .cart-total-wrap,
.store-theme-casa-costa .wg-box,
.store-theme-casa-costa .account-sidebar,
.store-theme-casa-costa .account-content {
    background: var(--cc-surface);
    border: 1px solid var(--cc-line);
    border-radius: 14px;
}

.store-theme-casa-costa .tf-product-info-list,
.store-theme-casa-costa .checkout-main,
.store-theme-casa-costa .checkout-sidebar,
.store-theme-casa-costa .cart-total-wrap {
    box-shadow: 0 14px 34px rgba(39, 48, 45, .07);
}

.store-theme-casa-costa .tf-product-info-heading .product-infor-name,
.store-theme-casa-costa .tf-product-info-wrap .product-infor-name {
    color: var(--cc-ink);
    font-family: var(--cc-font) !important;
    font-weight: 700;
    letter-spacing: -.025em;
}

.store-theme-casa-costa .tf-product-info-wrap .price-new,
.store-theme-casa-costa .tf-product-info-wrap .product-infor-price {
    color: var(--cc-blue) !important;
    font-variant-numeric: tabular-nums;
}

.store-theme-casa-costa input:not([type="checkbox"]):not([type="radio"]),
.store-theme-casa-costa textarea,
.store-theme-casa-costa select,
.store-theme-casa-costa .form-control,
.store-theme-casa-costa .tf-select select {
    background-color: #fff;
    border-color: rgba(56, 61, 59, .24);
    border-radius: 12px;
    color: var(--cc-ink);
}

.store-theme-casa-costa input::placeholder,
.store-theme-casa-costa textarea::placeholder {
    color: #707774;
    opacity: 1;
}

/* Desplegable de los formularios (Contacto → Asunto): flecha propia y gris como un placeholder hasta que se elige. */
.store-theme-casa-costa .tf-field--select select {
    padding-right: 44px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23383d3b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
    background-size: 16px;
    cursor: pointer;
}
.store-theme-casa-costa .tf-field--select select:invalid { color: #707774; }
.store-theme-casa-costa .tf-field--select option { color: var(--cc-ink); }

.store-theme-casa-costa input:not([type="checkbox"]):not([type="radio"]):focus,
.store-theme-casa-costa textarea:focus,
.store-theme-casa-costa select:focus,
.store-theme-casa-costa .form-control:focus {
    border-color: var(--cc-focus-soft);
    box-shadow: none;
}

.store-theme-casa-costa :is(input, textarea, select, .form-control) {
    --cc-focus-marker: var(--cc-muted);
}

.store-theme-casa-costa :is(.tf-btn, .cc-button-primary, .cc-side-menu-session) {
    --cc-focus-marker: rgba(255, 255, 255, .6);
}

/* Alto contraste conserva la señal del sistema cuando las sombras se omiten. */
@media (forced-colors: active) {
    .store-theme-casa-costa :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
        outline: 2px solid Highlight;
        outline-offset: 2px;
    }
}

.store-theme-casa-costa .offcanvas,
.store-theme-casa-costa .modal-content,
.store-theme-casa-costa .dropdown-menu {
    background: var(--cc-surface);
    border-color: var(--cc-line);
}

.store-theme-casa-costa .tf-btn-tab.active,
.store-theme-casa-costa .nav-link.active {
    color: var(--cc-blue) !important;
}

.store-theme-casa-costa .tf-btn-tab::after,
.store-theme-casa-costa .nav-link.active::after {
    background: var(--cc-blue) !important;
}

.store-theme-casa-costa .breadcrumb,
.store-theme-casa-costa .tf-breadcrumb-wrap {
    background: var(--cc-cyan-soft);
}

.store-theme-casa-costa #goTop {
    background: var(--cc-blue);
    color: #fff;
}

.store-theme-casa-costa #goTop .border-progress {
    border-color: var(--cc-cyan);
}

/* Footer */
.store-theme-casa-costa footer,
.store-theme-casa-costa footer.footer-default {
    background: #232323 !important;
    border-top: 5px solid var(--cc-cyan);
}

.store-theme-casa-costa footer,
.store-theme-casa-costa footer p,
.store-theme-casa-costa footer span,
.store-theme-casa-costa footer li {
    color: #ced6d2 !important;
}

.store-theme-casa-costa footer h1,
.store-theme-casa-costa footer h2,
.store-theme-casa-costa footer h3,
.store-theme-casa-costa footer h4,
.store-theme-casa-costa footer h5,
.store-theme-casa-costa footer h6 {
    color: #fff !important;
}

/* Links del footer: gris claro que pasa a blanco. Sin negrita ni escala al hover. */
.store-theme-casa-costa footer a {
    color: #ced6d2 !important;
    font-weight: 400;
    transition: color .18s ease-out;
}

.store-theme-casa-costa footer a:hover {
    color: #fff !important;
}

@media (max-width: 1199px) {
    .store-theme-casa-costa header.tf-header .header-inner {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 12px;
        min-height: 78px;
    }

    .store-theme-casa-costa header.tf-header .header-center {
        gap: 12px;
    }

    .store-theme-casa-costa header.tf-header .header-right {
        grid-column: 2;
        grid-row: 1;
        justify-self: end;
    }

    .store-theme-casa-costa header.tf-header .logo-site img {
        height: 62px;
        max-height: 62px;
        width: 62px;
    }

    .store-theme-casa-costa .cc-hero_shell {
        height: min(848px, 100vh);
        height: min(848px, 100svh);
    }

    .store-theme-casa-costa .cc-hero_copy {
        padding: 64px 32px 108px;
    }

    .store-theme-casa-costa .cc-hero_copy h1 {
        font-size: clamp(58px, 8vw, 88px);
    }

    .store-theme-casa-costa .cc-hero_scroll {
        display: none;
    }

    .store-theme-casa-costa .cc-category-item,
    .store-theme-casa-costa .cc-category-item:nth-child(n) {
        grid-column: span 4;
    }

    .store-theme-casa-costa .cc-category-item:nth-child(1),
    .store-theme-casa-costa .cc-category-item:nth-child(5) {
        grid-column: span 8;
    }
}

@media (max-width: 767px) {
    .store-theme-casa-costa .cc-hero {
        padding: 0;
    }

    .store-theme-casa-costa .cc-hero_shell {
        height: min(529.368px, 64.4vh);
        height: min(529.368px, 64.4svh);
        min-height: 0;
    }

    .store-theme-casa-costa .cc-hero_copy {
        align-content: center;
        grid-area: 1 / 1;
        min-height: 0;
        padding: 48px 24px 92px;
        pointer-events: none;
        z-index: 4;
    }

    .store-theme-casa-costa .cc-hero_copy h1 {
        font-size: clamp(50px, 14vw, 68px);
        line-height: .94;
        margin-bottom: 30px;
        max-width: 10ch;
    }

    .store-theme-casa-costa .cc-hero_actions {
        pointer-events: auto;
    }

    .store-theme-casa-costa .cc-button {
        min-height: 50px;
        padding-inline: 22px;
        width: auto;
    }

    .store-theme-casa-costa .cc-hero_media,
    .store-theme-casa-costa .cc-hero_swiper,
    .store-theme-casa-costa .cc-hero_swiper .swiper-wrapper,
    .store-theme-casa-costa .cc-hero_swiper .swiper-slide,
    .store-theme-casa-costa .cc-hero_slide {
        grid-area: 1 / 1;
        height: 100%;
        min-height: 0;
    }

    .store-theme-casa-costa .cc-hero_arrow {
        height: 48px;
        width: 44px;
    }

    .store-theme-casa-costa .cc-categories {
        padding: 72px 0 68px;
    }

    .store-theme-casa-costa .cc-section-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 20px;
    }

    .store-theme-casa-costa .cc-category-index {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .store-theme-casa-costa .cc-category-item,
    .store-theme-casa-costa .cc-category-item:nth-child(n) {
        grid-column: span 1;
        min-height: 146px;
        padding: 18px;
    }

    .store-theme-casa-costa .cc-category-item:nth-child(1),
    .store-theme-casa-costa .cc-category-item:nth-child(4),
    .store-theme-casa-costa .cc-category-item:nth-child(7) {
        grid-column: span 2;
    }

    .store-theme-casa-costa .cc-category-name {
        font-size: 17px;
    }

    .store-theme-casa-costa .sect-heading.text-center,
    .store-theme-casa-costa .sect-heading.type-2.text-center {
        padding-inline: 4px;
    }

    .store-theme-casa-costa .card-product .card-product_info {
        padding-top: 12px;
    }
}

@media (max-width: 767px) and (max-height: 620px) {
    .store-theme-casa-costa .cc-hero_copy {
        padding: 52px 20px 40px;
    }

    .store-theme-casa-costa .cc-hero_copy h1 {
        font-size: clamp(44px, 13vw, 54px);
        margin-bottom: 20px;
    }

}

@media (max-width: 420px) {
    .store-theme-casa-costa header.tf-header .header-inner {
        min-height: 72px;
    }

    .store-theme-casa-costa header.tf-header .logo-site img {
        height: 56px;
        max-height: 56px;
        width: 56px;
    }

    .store-theme-casa-costa .cc-hero_copy {
        padding-inline: 22px;
    }

    .store-theme-casa-costa .cc-category-index {
        grid-template-columns: 1fr;
    }

    .store-theme-casa-costa .cc-category-item,
    .store-theme-casa-costa .cc-category-item:nth-child(n) {
        grid-column: span 1;
    }
}

.store-theme-casa-costa header.tf-header .logo-site--wordmark picture {
    display: flex;
    align-items: center;
}

@media (min-width: 380px) {
    .store-theme-casa-costa header.tf-header .logo-site--wordmark img {
        filter: invert(1);
        height: auto;
        max-height: none;
        max-width: none;
        width: clamp(120px, calc(94vw - 236px), 220px);
    }
}

@media (min-width: 1200px) {
    .store-theme-casa-costa header.tf-header .logo-site--wordmark img {
        width: 240px;
    }
}

.store-theme-casa-costa header.tf-header.cc-header-compact:not(.cc-landing-menu) .logo-site--wordmark img {
    filter: invert(1);
    width: clamp(164px, 24vw, 240px);
    height: auto;
    max-height: none;
    max-width: none;
}

@media (prefers-reduced-motion: reduce) {
    .store-theme-casa-costa header.tf-header .box-nav-menu > .menu-item > .item-link:hover .text,
    .store-theme-casa-costa header.tf-header .box-nav-menu > .menu-item > .item-link:focus-visible .text {
        transform: none;
    }

    .store-theme-casa-costa *,
    .store-theme-casa-costa *::before,
    .store-theme-casa-costa *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}

/* Catalog sections, private to Casa Costa. */
html.cc-listing-scroll { scroll-behavior: auto !important; }
.store-theme-casa-costa .cc-listing-banner { width: 100%; height: clamp(393.12px, 56.784vw, 917.28px); margin-inline: auto; border-radius: 0; overflow: hidden; background: transparent; }
.store-theme-casa-costa .cc-listing-banner picture,
.store-theme-casa-costa .cc-listing-banner img { display: block; width: 100%; height: 100%; }
.store-theme-casa-costa .cc-listing-banner img { object-fit: cover; object-position: center; }
.store-theme-casa-costa .tf-shop-control { position: relative !important; top: auto !important; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; min-height: 58px; padding: 8px clamp(16px, 4.5vw, 80px); border: 1px solid #d9d9d9; border-radius: 999px; background: #fff; box-shadow: none; }
.store-theme-casa-costa .tf-shop-control .tf-btn-filter { justify-self: start; padding: 6px 0; border: 0; background: transparent; }
.store-theme-casa-costa .tf-shop-control .tf-control-layout { justify-self: center; margin: 0; }
.store-theme-casa-costa .tf-shop-control > form { justify-self: end; min-width: 0; }
.store-theme-casa-costa .tf-shop-control select { max-width: 100%; border: 0; border-radius: 0; background-color: transparent; box-shadow: none; padding-left: 0; }
@media (max-width: 575px) {
    .store-theme-casa-costa .tf-shop-control { grid-template-columns: auto auto minmax(0, 1fr); gap: 8px; padding: 6px 12px; min-height: 54px; }
    .store-theme-casa-costa .tf-shop-control .tf-btn-filter { gap: 6px; font-size: 12px; }
    .store-theme-casa-costa .tf-shop-control .tf-control-layout { gap: 4px; }
    .store-theme-casa-costa .tf-shop-control select { font-size: 12px; padding-right: 24px; }
}
.store-theme-casa-costa .cc-listing-index { margin-bottom: 32px; }
.store-theme-casa-costa .cc-listing-index__label { margin-bottom: 12px; font-weight: 600; color: var(--cc-muted); }
.store-theme-casa-costa .cc-listing-index ul { display: flex; flex-wrap: wrap; gap: 10px; }
.store-theme-casa-costa .cc-listing-index a { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 12px 16px; border: 1px solid rgba(56,61,59,.18); border-radius: 12px; color: var(--cc-ink); background: var(--cc-surface); font-size: 16px; line-height: 1.35; transition: background-color .15s, border-color .15s; }
.store-theme-casa-costa .cc-listing-index a:hover,
.store-theme-casa-costa .cc-listing-index a[aria-current] { background: var(--cc-hover-surface); border-color: var(--cc-muted); }
.store-theme-casa-costa .cc-listing-section { margin-top: 48px; scroll-margin-top: 180px; }
.store-theme-casa-costa .cc-listing-section:first-child { margin-top: 24px; }
.store-theme-casa-costa .cc-listing-section__heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 12px 24px; padding-bottom: 16px; margin-bottom: 24px; border-bottom: 1px solid rgba(56,61,59,.18); }
.store-theme-casa-costa .cc-listing-section__heading h2 { font-size: clamp(24px, 2.5vw, 32px); line-height: 1.2; font-weight: 650; letter-spacing: -.02em; color: var(--cc-ink); text-wrap: balance; }
.store-theme-casa-costa .cc-listing-empty { color: var(--cc-muted); font-variant-numeric: tabular-nums; }
.store-theme-casa-costa .cc-listing-empty { padding-block: 20px; }
@media (max-width: 575px) {
    .store-theme-casa-costa .cc-listing-index ul { gap: 8px; }
    .store-theme-casa-costa .cc-listing-index li { width: 100%; }
    .store-theme-casa-costa .cc-listing-index a { gap: 10px; }
    .store-theme-casa-costa .cc-listing-index a > span:first-child { flex: 1; }
    .store-theme-casa-costa .cc-listing-section { margin-top: 36px; }
    .store-theme-casa-costa .cc-listing-section__heading { gap: 8px; margin-bottom: 20px; }
}

/* Listing canvas and card shadows, isolated from other storefront pages. */
body.store-theme-casa-costa:has(.wrapper-control-shop) { --cc-canvas: #ffffff; }
.store-theme-casa-costa .wrapper-control-shop .card-product .card-product_wrapper { box-shadow: 0 8px 24px rgba(39, 48, 45, .0726); }
.store-theme-casa-costa .wrapper-control-shop .card-product:hover .card-product_wrapper { box-shadow: 0 18px 42px rgba(39, 48, 45, .1573); }

.store-theme-casa-costa #filterShop .cc-listing-index li { width: 100%; }

/* Listing media starts at the page edge, behind the collapsing header. */
.store-theme-casa-costa:has(.cc-listing-banner) header.tf-header { position: fixed !important; inset-inline: 0; }

/* Equal breathing room between the banner, toolbar and product listing. */
.store-theme-casa-costa .flat-spacing:has(> .container > .tf-shop-control) { --cc-toolbar-gap: clamp(28px, 3vw, 48px); padding-top: var(--cc-toolbar-gap); }
.store-theme-casa-costa .tf-shop-control { margin-top: 0; margin-bottom: var(--cc-toolbar-gap); }
.store-theme-casa-costa .wrapper-control-shop .cc-listing-section:first-child { margin-top: 0; }

/* Toolbar icons render immediately, independently of deferred icon fonts. */
.store-theme-casa-costa .tf-shop-control i { display: inline-block; width: 18px; height: 18px; flex-shrink: 0; background: currentColor; mask: var(--cc-toolbar-icon) center / contain no-repeat; }
.store-theme-casa-costa .tf-shop-control i::before { content: none !important; }
.store-theme-casa-costa .tf-shop-control .fa-sliders { --cc-toolbar-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%205h4m4%200h10M3%2012h10m4%200h4M3%2019h2m4%200h12%22/%3E%3Ccircle%20cx%3D%229%22%20cy%3D%225%22%20r%3D%222%22/%3E%3Ccircle%20cx%3D%2215%22%20cy%3D%2212%22%20r%3D%222%22/%3E%3Ccircle%20cx%3D%227%22%20cy%3D%2219%22%20r%3D%222%22/%3E%3C/svg%3E"); }
.store-theme-casa-costa .tf-shop-control .fa-list { --cc-toolbar-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9%205h12M9%2012h12M9%2019h12%22/%3E%3Ccircle%20cx%3D%224%22%20cy%3D%225%22%20r%3D%221%22/%3E%3Ccircle%20cx%3D%224%22%20cy%3D%2212%22%20r%3D%221%22/%3E%3Ccircle%20cx%3D%224%22%20cy%3D%2219%22%20r%3D%221%22/%3E%3C/svg%3E"); }
.store-theme-casa-costa .tf-shop-control .fa-grid-2 { --cc-toolbar-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223.0%22%20y%3D%223.0%22%20width%3D%228.0%22%20height%3D%228.0%22%20rx%3D%220.5%22/%3E%3Crect%20x%3D%2213.0%22%20y%3D%223.0%22%20width%3D%228.0%22%20height%3D%228.0%22%20rx%3D%220.5%22/%3E%3Crect%20x%3D%223.0%22%20y%3D%2213.0%22%20width%3D%228.0%22%20height%3D%228.0%22%20rx%3D%220.5%22/%3E%3Crect%20x%3D%2213.0%22%20y%3D%2213.0%22%20width%3D%228.0%22%20height%3D%228.0%22%20rx%3D%220.5%22/%3E%3C/svg%3E"); }
.store-theme-casa-costa .tf-shop-control .fa-grid-3 { --cc-toolbar-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223.0%22%20y%3D%223.0%22%20width%3D%224.666666666666667%22%20height%3D%224.666666666666667%22%20rx%3D%220.5%22/%3E%3Crect%20x%3D%229.666666666666668%22%20y%3D%223.0%22%20width%3D%224.666666666666667%22%20height%3D%224.666666666666667%22%20rx%3D%220.5%22/%3E%3Crect%20x%3D%2216.333333333333336%22%20y%3D%223.0%22%20width%3D%224.666666666666667%22%20height%3D%224.666666666666667%22%20rx%3D%220.5%22/%3E%3Crect%20x%3D%223.0%22%20y%3D%229.666666666666668%22%20width%3D%224.666666666666667%22%20height%3D%224.666666666666667%22%20rx%3D%220.5%22/%3E%3Crect%20x%3D%229.666666666666668%22%20y%3D%229.666666666666668%22%20width%3D%224.666666666666667%22%20height%3D%224.666666666666667%22%20rx%3D%220.5%22/%3E%3Crect%20x%3D%2216.333333333333336%22%20y%3D%229.666666666666668%22%20width%3D%224.666666666666667%22%20height%3D%224.666666666666667%22%20rx%3D%220.5%22/%3E%3Crect%20x%3D%223.0%22%20y%3D%2216.333333333333336%22%20width%3D%224.666666666666667%22%20height%3D%224.666666666666667%22%20rx%3D%220.5%22/%3E%3Crect%20x%3D%229.666666666666668%22%20y%3D%2216.333333333333336%22%20width%3D%224.666666666666667%22%20height%3D%224.666666666666667%22%20rx%3D%220.5%22/%3E%3Crect%20x%3D%2216.333333333333336%22%20y%3D%2216.333333333333336%22%20width%3D%224.666666666666667%22%20height%3D%224.666666666666667%22%20rx%3D%220.5%22/%3E%3C/svg%3E"); }
.store-theme-casa-costa .tf-shop-control .fa-grid-4 { --cc-toolbar-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223.0%22%20y%3D%223.0%22%20width%3D%223.0%22%20height%3D%223.0%22%20rx%3D%220.5%22/%3E%3Crect%20x%3D%228.0%22%20y%3D%223.0%22%20width%3D%223.0%22%20height%3D%223.0%22%20rx%3D%220.5%22/%3E%3Crect%20x%3D%2213.0%22%20y%3D%223.0%22%20width%3D%223.0%22%20height%3D%223.0%22%20rx%3D%220.5%22/%3E%3Crect%20x%3D%2218.0%22%20y%3D%223.0%22%20width%3D%223.0%22%20height%3D%223.0%22%20rx%3D%220.5%22/%3E%3Crect%20x%3D%223.0%22%20y%3D%228.0%22%20width%3D%223.0%22%20height%3D%223.0%22%20rx%3D%220.5%22/%3E%3Crect%20x%3D%228.0%22%20y%3D%228.0%22%20width%3D%223.0%22%20height%3D%223.0%22%20rx%3D%220.5%22/%3E%3Crect%20x%3D%2213.0%22%20y%3D%228.0%22%20width%3D%223.0%22%20height%3D%223.0%22%20rx%3D%220.5%22/%3E%3Crect%20x%3D%2218.0%22%20y%3D%228.0%22%20width%3D%223.0%22%20height%3D%223.0%22%20rx%3D%220.5%22/%3E%3Crect%20x%3D%223.0%22%20y%3D%2213.0%22%20width%3D%223.0%22%20height%3D%223.0%22%20rx%3D%220.5%22/%3E%3Crect%20x%3D%228.0%22%20y%3D%2213.0%22%20width%3D%223.0%22%20height%3D%223.0%22%20rx%3D%220.5%22/%3E%3Crect%20x%3D%2213.0%22%20y%3D%2213.0%22%20width%3D%223.0%22%20height%3D%223.0%22%20rx%3D%220.5%22/%3E%3Crect%20x%3D%2218.0%22%20y%3D%2213.0%22%20width%3D%223.0%22%20height%3D%223.0%22%20rx%3D%220.5%22/%3E%3Crect%20x%3D%223.0%22%20y%3D%2218.0%22%20width%3D%223.0%22%20height%3D%223.0%22%20rx%3D%220.5%22/%3E%3Crect%20x%3D%228.0%22%20y%3D%2218.0%22%20width%3D%223.0%22%20height%3D%223.0%22%20rx%3D%220.5%22/%3E%3Crect%20x%3D%2213.0%22%20y%3D%2218.0%22%20width%3D%223.0%22%20height%3D%223.0%22%20rx%3D%220.5%22/%3E%3Crect%20x%3D%2218.0%22%20y%3D%2218.0%22%20width%3D%223.0%22%20height%3D%223.0%22%20rx%3D%220.5%22/%3E%3C/svg%3E"); }

/* Compact sorting card echoes the category menu without changing shared controls. */
.store-theme-casa-costa .tf-shop-control select[hidden] { display: none; }
.store-theme-casa-costa .cc-sort { position: relative; width: 189px; max-width: 100%; }
.store-theme-casa-costa .cc-sort__trigger { display: flex; align-items: center; justify-content: flex-end; gap: 10px; width: 100%; min-height: 36px; padding: 0 8px; border: 0; background: transparent; color: inherit; font: inherit; font-size: 14px; cursor: pointer; }
.store-theme-casa-costa .cc-sort__trigger > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.store-theme-casa-costa .cc-sort__arrow { width: 7px; height: 7px; flex-shrink: 0; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); margin-top: -4px; }
.store-theme-casa-costa .cc-sort__menu { position: absolute; right: 0; top: calc(100% + 12px); width: 100%; z-index: 50; padding: 8px; border: 0; border-radius: 12px; background: var(--cc-header-bg, #333); color: #fff; box-shadow: 0 12px 28px rgba(0,0,0,.16); }
.store-theme-casa-costa .cc-sort__menu[hidden] { display: none; }
.store-theme-casa-costa .cc-sort__option { display: block; width: 100%; min-height: 40px; padding: 10px 8px; border: 0; border-radius: 6px; background: transparent; color: #ddd; font: inherit; font-size: 13px; line-height: 1.4; text-align: left; cursor: pointer; }
.store-theme-casa-costa .cc-sort__option:is(:hover, :focus-visible, [aria-checked="true"]) { color: #fff; background: rgba(255,255,255,.09); }
@media (max-width: 575px) {
    .store-theme-casa-costa .cc-sort { width: 145px; }
    .store-theme-casa-costa .cc-sort__trigger { font-size: 12px; }
    .store-theme-casa-costa .cc-sort__option { font-size: 12px; }
}

/* The sorting card fades down from its label; closed options cannot receive focus. */
.store-theme-casa-costa .cc-sort__menu { right: auto; opacity: 0; visibility: hidden; transform: translateY(-8px); pointer-events: none; transition: opacity 220ms ease, transform 220ms ease, visibility 0s linear 220ms; }
.store-theme-casa-costa .cc-sort__menu.is-open { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto; transition-delay: 0s; }
@media (prefers-reduced-motion: reduce) {
    .store-theme-casa-costa .cc-sort__menu { transition: none; transform: none; }
}

/* Banner copy comes from the individual slider editor. */
.store-theme-casa-costa .cc-hero_copy h1 { overflow-wrap: anywhere; }
.store-theme-casa-costa .cc-hero_subtitle { color: #fff; font-size: clamp(16px, 2vw, 22px); line-height: 1.5; max-width: 60ch; margin: -12px 0 28px; overflow-wrap: anywhere; }
.store-theme-casa-costa .cc-hero_subtitle[hidden] { display: none; }

/* Use the banner editor's coordinates and typography without a darkening layer. */
.store-theme-casa-costa .cc-hero_media::after { content: none; }
.store-theme-casa-costa .cc-hero_slide img { filter: none; }
.store-theme-casa-costa .cc-hero_copy {
    --cc-x: var(--cc-d-x, 50%); --cc-y: var(--cc-d-y, 50%);
    --cc-title-size: var(--cc-d-title-size, 36px); --cc-sub-size: var(--cc-d-sub-size, 14px);
    --cc-title-color: var(--cc-d-title-color, #fff); --cc-sub-color: var(--cc-d-sub-color, #fff);
    --cc-title-weight: var(--cc-d-title-weight, 400); --cc-sub-weight: var(--cc-d-sub-weight, 400);
    --cc-title-style: var(--cc-d-title-style, normal); --cc-sub-style: var(--cc-d-sub-style, normal);
    --cc-gap: var(--cc-d-gap, 8px);
    position: absolute; left: var(--cc-x); top: var(--cc-y);
    transform: translate(-50%, -50%); width: max-content; max-width: 90%;
    padding: 0; margin: 0; display: flex; flex-direction: column; align-items: center;
}
.store-theme-casa-costa .cc-hero_copy h1 {
    font-size: var(--cc-title-size); color: var(--cc-title-color);
    font-weight: var(--cc-title-weight); font-style: var(--cc-title-style);
    line-height: 1.2; letter-spacing: normal; margin: 0; max-width: 100%; text-shadow: none;
}
.store-theme-casa-costa .cc-hero_copy h1 em { color: inherit; font-weight: inherit; }
.store-theme-casa-costa .cc-hero_subtitle {
    order: -1; margin: 0 0 var(--cc-gap); max-width: 100%; line-height: 1.3;
    color: var(--cc-sub-color); font-size: var(--cc-sub-size);
    font-weight: var(--cc-sub-weight); font-style: var(--cc-sub-style);
}
.store-theme-casa-costa .cc-hero_copy .cc-hero_actions {
    position: absolute; top: 100%; left: 50%; transform: translateX(-50%);
    margin-top: 32px; width: max-content; max-width: 90vw; animation: none;
}
@media(max-width:767px) {
    .store-theme-casa-costa .cc-hero_copy {
        --cc-x: var(--cc-m-x, 50%); --cc-y: var(--cc-m-y, 50%);
        --cc-title-size: var(--cc-m-title-size, 36px); --cc-sub-size: var(--cc-m-sub-size, 14px);
        --cc-title-color: var(--cc-m-title-color, #fff); --cc-sub-color: var(--cc-m-sub-color, #fff);
        --cc-title-weight: var(--cc-m-title-weight, 400); --cc-sub-weight: var(--cc-m-sub-weight, 400);
        --cc-title-style: var(--cc-m-title-style, normal); --cc-sub-style: var(--cc-m-sub-style, normal);
        --cc-gap: var(--cc-m-gap, 8px);
    }
}

.store-theme-casa-costa .cc-hero_copy h1 { font-family: var(--cc-font) !important; }
.store-theme-casa-costa .cc-hero_copy h1 em { font-style: inherit; }
.store-theme-casa-costa .cc-hero_copy .cc-hero_subtitle { font-family: var(--cc-font) !important; }
.store-theme-casa-costa .cc-hero .cc-button-primary,
.store-theme-casa-costa .cc-hero .cc-button-primary:is(:hover, :focus, :active) {
    border: 1px solid currentColor; border-radius: 999px; background: transparent;
    color: var(--cc-button-color, #fff) !important; box-shadow: none; min-height: 48px; padding: 12px 32px;
}
.store-theme-casa-costa .cc-hero .cc-button-primary::before,
.store-theme-casa-costa .cc-hero .cc-button-primary::after { content: none; }

/* Fixed white controls at seventy percent opacity on every banner. */
.store-theme-casa-costa .cc-hero .cc-hero_arrow,
.store-theme-casa-costa .cc-hero .cc-hero_arrow:is(:hover, :focus, :active, :disabled) {
    color: #fff; opacity: .7; --cc-focus-marker: #fff;
    transition: opacity .2s ease, transform .2s ease;
}

/* Honor the banner editor visibility even when flex styles are applied. */
.store-theme-casa-costa .cc-hero [hidden] { display: none !important; }

/* Separate editorial heading from the full-width category cards. */
.store-theme-casa-costa #cc-categorias { position:relative; margin:0; padding:clamp(40px,5vw,72px) 0 0; background:#ffffff; scroll-margin-top:110px; }
.store-theme-casa-costa #cc-categorias>.container { position:static; }
.store-theme-casa-costa #cc-categorias .cc-category-stage { position:relative; padding:0; }
.store-theme-casa-costa #cc-categorias .cc-category-index { display:flex; flex-wrap:wrap; align-items:flex-start; gap:0; margin:0; }
.store-theme-casa-costa #cc-categorias .cc-category-item { flex:1 0 33.333333%; width:33.333333%; grid-column:auto; aspect-ratio:4 / 5; min-height:0; min-width:0; box-sizing:border-box; border:0; border-radius:0; padding:clamp(16px,2.5vw,48px); box-shadow:none; }
.store-theme-casa-costa #cc-categorias .cc-category-item:hover { transform:none; box-shadow:none; }
.store-theme-casa-costa #cc-categorias .cc-section-heading { position:relative; color:#000000; margin-bottom:clamp(32px,4vw,56px); }
.store-theme-casa-costa #cc-categorias .cc-section-heading :is(h2,p) { color:#000000; }
.store-theme-casa-costa #cc-categorias .cc-text-link { color:var(--cc-blue)!important; }
@media(max-width:767px) {
 .store-theme-casa-costa #cc-categorias .cc-category-item { flex:0 0 100%; width:100%; aspect-ratio:16 / 9; padding:24px; gap:16px; flex-direction:row; justify-content:space-between; align-items:flex-end; }
 .store-theme-casa-costa #cc-categorias .cc-category-name { font-size:clamp(20px,5vw,28px); line-height:1.25; min-width:0; overflow-wrap:anywhere; }
 .store-theme-casa-costa #cc-categorias .cc-category-arrow { width:36px; height:36px; min-width:36px; font-size:16px; }
}

.store-theme-casa-costa .cc-listing-banner > video { display:block;width:100%;height:100%;object-fit:cover; }

@media (max-width: 767px) {
  .store-theme-casa-costa #cc-categorias .cc-text-link { display: none !important; }
}

@media (max-width: 767px) {
  .store-theme-casa-costa #cc-categorias { background: #ffffff; }
  .store-theme-casa-costa #cc-categorias .cc-section-heading,
  .store-theme-casa-costa #cc-categorias .cc-section-heading :is(h2,p) { color: #000000; }
  .store-theme-casa-costa #cc-categorias .cc-section-heading {
    display: block;
    text-align: center;
  }
  .store-theme-casa-costa #cc-categorias .cc-section-heading h2 { margin-inline: auto; }
  .store-theme-casa-costa #cc-categorias .cc-section-heading p {
    margin-inline: auto;
    text-align: center;
    font-size: calc(clamp(15px, 4.5vw, 19px) - 1pt);
  }
}

.store-theme-casa-costa .cc-category-action-label { display: none; }
@media (max-width: 767px) {
  .store-theme-casa-costa #cc-categorias .cc-category-item {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
    gap: 10px;
    padding: 20px;
  }
  .store-theme-casa-costa #cc-categorias .cc-category-name { font-size: calc(clamp(20px, 5vw, 28px) + 3pt); line-height: 30px; }
  .store-theme-casa-costa #cc-categorias .cc-category-arrow {
    width: auto;
    height: 30px;
    min-height: 30px;
    padding: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    font-size: 16px;
    line-height: 20px;
    gap: 10px;
    transform: none;
    transition: none;
  }
  .store-theme-casa-costa #cc-categorias .cc-category-arrow i { display: none; }
  .store-theme-casa-costa #cc-categorias .cc-category-item.has-image .cc-category-arrow { color: #fff; }
  .store-theme-casa-costa .cc-category-action-label {
    display: inline;
    text-decoration: none;
  }
  .store-theme-casa-costa #cc-categorias .cc-category-arrow::after {
    content: "";
    width: 7px;
    height: 7px;
    border-top: 1.5px solid currentColor;
    border-right: 1.5px solid currentColor;
    transform: rotate(45deg);
  }
}

/* Load only the active slide video for the current device; images remain the fallback. */
.store-theme-casa-costa .cc-hero_slide .cc-hero_video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.store-theme-casa-costa .cc-hero_slide .cc-hero_video[hidden]{display:none}

/* Search uses the same floating island surfaces as the category menu. */
.store-theme-casa-costa #search.cc-search {
    --cc-ink: #ffffff;
    --cc-muted: #d5d5d5;
    --cc-canvas: #333333;
    --cc-hover-surface: rgba(255,255,255,.12);
}
.store-theme-casa-costa.cc-search-open .modal-backdrop {
    background: rgba(0,0,0,.18);
    backdrop-filter: none;
}
.store-theme-casa-costa #search.cc-search .modal-dialog {
    width: min(1440px,calc(100% - 48px));
    max-width: 1440px;
    min-height: calc(100dvh - 48px);
    margin: 24px auto;
    align-items: center;
}
.store-theme-casa-costa #search.cc-search .modal-content {
    padding: 0;
    gap: 0;
    border-radius: 18px;
    background: rgba(51,51,51,.68);
    -webkit-backdrop-filter: blur(20px) saturate(120%);
    backdrop-filter: blur(20px) saturate(120%);
    box-shadow: var(--cc-menu-shadow);
    max-height: calc(100dvh - 48px);
}
.store-theme-casa-costa #search .cc-search-top { padding: 16px; border-bottom: 1px solid rgba(255,255,255,.12); }
.store-theme-casa-costa #search .cc-search-form { background: rgba(255,255,255,.1); }
.store-theme-casa-costa #search #search-modal-input::placeholder { color: #dedede; opacity: 1; }
.store-theme-casa-costa #search .cc-search-top > .icon-close-popup { right: 16px; min-width: 44px; min-height: 44px; background: transparent; }
.store-theme-casa-costa #search .cc-search-body { grid-template-columns: minmax(180px,240px) minmax(0,1fr); gap: 0; }
.store-theme-casa-costa #search .cc-search-aside { padding: 20px 16px; background: #333333; }
.store-theme-casa-costa #search .cc-search-main { padding: 20px 16px; }
.store-theme-casa-costa #search .cc-search-suggestions :is(a,button) { padding: 10px 12px; border-radius: 8px; }
.store-theme-casa-costa #search .cc-search-suggestions :is(a,button):hover { background: rgba(255,255,255,.12); text-decoration: none; }
.store-theme-casa-costa #search .cc-search-recent .name-product { color: #ffffff; }
.store-theme-casa-costa #search .cc-search-products { gap: 12px; }
.store-theme-casa-costa #search .cc-search-product-image { background: #ffffff; border-radius: 12px; }
.store-theme-casa-costa #search :is(a,button,input):focus-visible { outline: 2px solid #c7f2fa; outline-offset: 2px; }
.store-theme-casa-costa #search .cc-search-message button { background: #ffffff; color: #333333; }
@media(max-width:767px) {
    .store-theme-casa-costa #search.cc-search .modal-dialog { width: calc(100% - 24px); min-height: calc(100dvh - 24px); margin: 12px auto; }
    .store-theme-casa-costa #search.cc-search .modal-content { border-radius: 14px; max-height: calc(100dvh - 24px); }
    .store-theme-casa-costa #search .cc-search-top { padding: 12px; }
    .store-theme-casa-costa #search .cc-search-top > .icon-close-popup { right: 8px; }
    .store-theme-casa-costa #search .cc-search-body { gap: 0; }
    .store-theme-casa-costa #search :is(.cc-search-aside,.cc-search-main) { padding: 16px 12px; }
}

/* Compact search content; the help belongs to its input, not the category list. */
.store-theme-casa-costa #search .cc-search-entry { width: min(560px,calc(100% - 60px)); margin: 0 auto; min-width: 0; }
.store-theme-casa-costa #search .cc-search-entry .cc-search-form { width: 100%; margin: 0; }
.store-theme-casa-costa #search .cc-search-entry #cc-search-hint { display: block; max-width: none; margin: 8px 8px 0; font-size: 12px; line-height: 1.5; }
.store-theme-casa-costa #search.cc-search #search-modal-input:focus { outline: none; box-shadow: none !important; border: 0; }
.store-theme-casa-costa #search .cc-search-form:has(#search-modal-input:focus-visible) { box-shadow: 0 0 0 1px rgba(199,242,250,.4); }
@media(min-width:768px) {
    .store-theme-casa-costa #search .cc-search-suggestions :is(a,button) { padding: 5px 12px; min-height: 30px; }
    .store-theme-casa-costa #search .cc-search-suggestions { margin-bottom: 16px; }
    .store-theme-casa-costa #search .cc-search-aside,
    .store-theme-casa-costa #search .cc-search-main { padding-block: 16px; }
}
@media(max-width:767px) {
    .store-theme-casa-costa #search .cc-search-entry { width: calc(100% - 48px); margin-left: 0; }
}

/* Fixed bars keep their pre-modal width while Bootstrap compensates the body. */
.store-theme-casa-costa.cc-navigation-overlay-open header.tf-header,
.store-theme-casa-costa.cc-navigation-overlay-open .cc-announcement {
    width: calc(100vw - var(--cc-overlay-scrollbar-width, 0px)) !important;
}

/* Mobile search: one compact viewport, four products and the search field. */
@media (max-width: 767px) {
    .store-theme-casa-costa #search .cc-search-aside,
    .store-theme-casa-costa #search .cc-search-section-heading,
    .store-theme-casa-costa #search .cc-search-products > li:nth-child(n+5),
    .store-theme-casa-costa #search .cc-search-product-code { display: none; }
    .store-theme-casa-costa #search .cc-search-body { display: block; }
    .store-theme-casa-costa #search .cc-search-main { padding: 12px; }
    .store-theme-casa-costa #search.cc-search #search-live-results,
    .store-theme-casa-costa #search .cc-search-message { min-height: 0; }
    .store-theme-casa-costa #search .cc-search-products { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
    .store-theme-casa-costa #search .cc-search-product { gap: 4px; }
    .store-theme-casa-costa #search .cc-search-product-image {
        height: max(64px, min(38vw, calc((100dvh - 280px) / 2)));
        aspect-ratio: auto;
        margin-bottom: 2px;
    }
    .store-theme-casa-costa #search .cc-search-product-image img { object-fit: contain; }
    .store-theme-casa-costa #search .cc-search-product-name { font-size: 12px; line-height: 16px; height: 32px; }
    .store-theme-casa-costa #search .cc-search-product-price { font-size: 12px; line-height: 18px; }
}

.store-theme-casa-costa .cc-search-mobile-all { display: none; }
@media (max-width: 767px) {
    .store-theme-casa-costa.cc-search-open { overflow: hidden !important; overscroll-behavior: none; }
    .store-theme-casa-costa #search.cc-search {
        top: var(--cc-search-visible-top, 0px);
        height: var(--cc-search-visible-height, 100dvh);
        overscroll-behavior: contain;
    }
    .store-theme-casa-costa #search.cc-search .modal-dialog { min-height: 0; margin: 8px auto; align-items: flex-start; }
    .store-theme-casa-costa #search.cc-search .modal-content { max-height: calc(var(--cc-search-visible-height, 100dvh) - 16px); }
    .store-theme-casa-costa #search .cc-search-top { padding: 8px 12px; }
    .store-theme-casa-costa #search .cc-search-entry #cc-search-hint { display: none; }
    .store-theme-casa-costa #search .cc-search-main { padding: 8px 12px; }
    .store-theme-casa-costa #search .cc-search-products { gap: 8px 12px; }
    .store-theme-casa-costa #search .cc-search-product-image {
        height: max(12px, min(38vw, calc((var(--cc-search-visible-height, 100dvh) - 310px) / 2)));
    }
    .store-theme-casa-costa #search .cc-search-mobile-all {
        display: flex; align-items: center; justify-content: center;
        min-height: 40px; margin-top: 8px; border: 1px solid rgba(255,255,255,.5);
        border-radius: 20px; color: #fff; font-size: 14px;
    }
}

/* Search stays inside the mobile drawer; desktop navigation is unchanged. */
.store-theme-casa-costa .cc-side-search { display: none; }
@media (max-width: 767px) {
    body.store-theme-casa-costa.cc-mobile-navigation header.tf-header.cc-mobile-header .nav-icon-list > li:has([aria-controls="search"]) { display: none !important; }
    .store-theme-casa-costa #mobileMenu .cc-side-search { display: block; margin-bottom: 16px; }
    .store-theme-casa-costa #mobileMenu #cc-side-search-input {
        width: 100%; min-height: 56px; border: 1px solid rgba(255,255,255,.5);
        border-radius: 12px; padding: 12px 16px; background: transparent;
        color: #fff; font-size: 16px; line-height: 24px;
    }
    .store-theme-casa-costa #mobileMenu #cc-side-search-input::placeholder { color: #ddd; opacity: 1; }
    .store-theme-casa-costa #mobileMenu .cc-side-search-status { color: #fff; font-size: 12px; margin: 8px 0; }
    .store-theme-casa-costa #mobileMenu .cc-side-search-status:empty { display: none; }
    .store-theme-casa-costa #mobileMenu .cc-side-search-results { display: grid; grid-template-columns: 1fr; gap: 8px; padding: 0; margin: 12px 0 0; list-style: none; }
    .store-theme-casa-costa #mobileMenu .cc-side-search-results a { display: flex; gap: 10px; padding: 6px 0; color: #fff; }
    .store-theme-casa-costa #mobileMenu .cc-side-search-results img { width: 64px; height: 64px; object-fit: contain; background: #fff; border-radius: 8px; flex: 0 0 64px; }
    .store-theme-casa-costa #mobileMenu .cc-side-search-results a > span { min-width: 0; }
    .store-theme-casa-costa #mobileMenu .cc-side-search-name { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 12px; line-height: 16px; }
    .store-theme-casa-costa #mobileMenu .cc-side-search-price { display: block; font-size: 12px; line-height: 20px; }
    .store-theme-casa-costa #mobileMenu .cc-side-search-all { justify-content: center; color: #fff; font-size: 14px; }
}

@media (max-width: 767px) {
    .store-theme-casa-costa #mobileMenu .cc-side-search:not(.has-query) :is(.cc-side-search-results, .cc-side-search-status, .cc-side-search-all) { display: none; }
}

@media (max-width: 767px) {
    .store-theme-casa-costa #mobileMenu:has(.cc-side-search.has-query) .cc-side-menu-body > nav,
    .store-theme-casa-costa #mobileMenu:has(.cc-side-search.has-query) .cc-side-menu-footer { display: none; }
}

.store-theme-casa-costa .cc-hero_play {
    position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
    z-index: 7; min-height: 44px; padding: 12px 20px; border: 1px solid #fff;
    border-radius: 24px; color: #fff; background: rgba(0,0,0,.65);
    font: inherit; cursor: pointer;
}
.store-theme-casa-costa .cc-hero_play[hidden] { display: none; }

/* Tarjetas de producto (card-price.php): precio en efectivo o transferencia como principal; debajo
   «20% OFF con efectivo o transferencia» y después el precio con tarjeta o Mercado Pago. */
.store-theme-casa-costa .cc-card-price { display: flex; align-items: baseline; flex-wrap: wrap; column-gap: 6px; row-gap: 0; }
.store-theme-casa-costa .cc-card-price__medios { margin: 2px 0 0; font-size: 12.5px; font-weight: 500; line-height: 1.4; color: var(--cc-muted); }
.store-theme-casa-costa .cc-card-price__off { display: inline-block; margin-right: 2px; padding: 0 6px; border-radius: 999px; background: #659cb3; color: #fff; font-size: 11px; font-weight: 700; line-height: 1.6; white-space: nowrap; }
.store-theme-casa-costa .cc-card-price__lista { margin: 2px 0 0; font-size: 12.5px; line-height: 1.35; color: #8a908e; font-variant-numeric: tabular-nums; }
.store-theme-casa-costa .cc-card-price__lista s { margin-left: 4px; color: #a7acaa; }

/* Popup del módulo popup_salida con la paleta y los radios del tema. */
.store-theme-casa-costa .hm-exit-popup__card { border-radius: 16px; color: var(--cc-ink-deep); }
.store-theme-casa-costa .hm-exit-popup__text { color: var(--cc-muted); }
.store-theme-casa-costa .hm-exit-popup__cta { border-radius: 12px; background: var(--cc-blue); font-weight: 700; transition: background-color .2s ease; }
.store-theme-casa-costa .hm-exit-popup__cta:hover { background: var(--cc-ink-deep); filter: none; }
.store-theme-casa-costa .hm-exit-popup__card:focus-visible { box-shadow: 0 30px 80px rgba(0, 0, 0, .28) !important; }
.store-theme-casa-costa .hm-exit-popup__close { background: var(--cc-canvas); color: var(--cc-muted); }
.store-theme-casa-costa .hm-exit-popup__close:hover { background: var(--cc-hover-surface); color: var(--cc-ink-deep); }
.store-theme-casa-costa .hm-exit-popup__close:focus-visible { outline: 0; box-shadow: 0 0 0 2px var(--cc-blue) !important; }
/* Popup con opciones (Asesoramiento): fotos protagonistas con el texto encima, un antetítulo (el
   "Mensaje" del módulo) y el título en dos pesos como el logo ("*Te acompañamos* en tu proyecto").
   En escritorio el llamado aparece al pasar el mouse; en celular el popup es una hoja que sube desde
   abajo con las opciones como franjas de foto, y se cierra deslizándola (header.js). */
.store-theme-casa-costa .hm-exit-popup:has(.hm-exit-popup__card--opciones) .hm-exit-popup__backdrop { background: rgba(26, 29, 28, .6); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.store-theme-casa-costa .hm-exit-popup__card--opciones { display: flex; flex-direction: column; width: min(1080px, 100%); padding: 40px; border-radius: 20px; background: var(--cc-surface); }
.store-theme-casa-costa .hm-exit-popup__card--opciones .hm-exit-popup__close { top: 16px; right: 16px; width: 40px; height: 40px; }
.store-theme-casa-costa .hm-exit-popup__card--opciones .hm-exit-popup__text { order: -1; max-width: none; margin: 0 0 10px; color: var(--cc-blue); font-size: 12px; font-weight: 700; letter-spacing: .16em; line-height: 1.4; text-transform: uppercase; }
.store-theme-casa-costa .hm-exit-popup__card--opciones .hm-exit-popup__title { margin: 0 0 28px; padding: 0 56px; color: var(--cc-ink-deep); font-size: clamp(1.6rem, 2.4vw, 2.15rem); letter-spacing: -.01em; line-height: 1.15; text-wrap: balance; }
.store-theme-casa-costa .hm-exit-popup__title--mixto { font-weight: 300; }
.store-theme-casa-costa .hm-exit-popup__title--mixto strong { font-weight: 700; }
.store-theme-casa-costa .hm-exit-popup__opciones { gap: 16px; }
.store-theme-casa-costa .hm-exit-popup__opcion { position: relative; isolation: isolate; height: clamp(300px, 54vh, 440px); border: 0; border-radius: 16px; background: var(--cc-ink-deep); color: #fff !important; animation: ccPopupOpcion .5s cubic-bezier(.2, .7, .2, 1) backwards; }
.store-theme-casa-costa .hm-exit-popup__opcion:nth-child(2) { animation-delay: .07s; }
.store-theme-casa-costa .hm-exit-popup__opcion:nth-child(3) { animation-delay: .14s; }
.store-theme-casa-costa a.hm-exit-popup__opcion:hover { box-shadow: var(--cc-shadow); }
.store-theme-casa-costa .hm-exit-popup__opcion-img { position: absolute; inset: 0; z-index: -1; aspect-ratio: auto; background: var(--cc-ink-deep); }
.store-theme-casa-costa .hm-exit-popup__opcion-img img { filter: saturate(.85) contrast(1.04); transition: transform .7s cubic-bezier(.2, .7, .2, 1); }
.store-theme-casa-costa a.hm-exit-popup__opcion:hover .hm-exit-popup__opcion-img img { transform: scale(1.05); }
.store-theme-casa-costa .hm-exit-popup__opcion-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20, 23, 22, 0) 36%, rgba(20, 23, 22, .5) 60%, rgba(20, 23, 22, .88) 100%); }
.store-theme-casa-costa .hm-exit-popup__opcion-body { justify-content: flex-end; gap: 6px; padding: 22px; }
.store-theme-casa-costa .hm-exit-popup__opcion-title { color: #fff; font-size: 1.3rem; }
.store-theme-casa-costa .hm-exit-popup__opcion-text { display: -webkit-box; overflow: hidden; color: rgba(255, 255, 255, .84); font-size: .92rem; line-height: 1.45; -webkit-line-clamp: 4; -webkit-box-orient: vertical; }
.store-theme-casa-costa .hm-exit-popup__opcion-cta { margin-top: 10px; padding-top: 0; color: #fff; font-size: .95rem; line-height: 22px; }
/* Con mouse, el llamado espera debajo del borde y sube con el texto al pasar por la tarjeta. */
@media (hover: hover) and (min-width: 601px) and (prefers-reduced-motion: no-preference) {
    .store-theme-casa-costa .hm-exit-popup__opcion-body { transform: translateY(32px); transition: transform .35s cubic-bezier(.2, .7, .2, 1); }
    .store-theme-casa-costa .hm-exit-popup__opcion-cta { opacity: 0; transition: opacity .25s ease; }
    .store-theme-casa-costa a.hm-exit-popup__opcion:is(:hover, :focus-visible) .hm-exit-popup__opcion-body { transform: none; }
    .store-theme-casa-costa a.hm-exit-popup__opcion:is(:hover, :focus-visible) .hm-exit-popup__opcion-cta { opacity: 1; }
}
@media (max-width: 600px) {
    .store-theme-casa-costa .hm-exit-popup:has(.hm-exit-popup__card--opciones) { align-items: flex-end; padding: 0; }
    .store-theme-casa-costa .hm-exit-popup__card--opciones { width: 100%; max-height: 92dvh; padding: 28px 16px calc(18px + env(safe-area-inset-bottom)); border-radius: 22px 22px 0 0; text-align: left; animation: ccPopupHoja .38s cubic-bezier(.2, .7, .2, 1) backwards; touch-action: pan-y; }
    .store-theme-casa-costa .hm-exit-popup__card--opciones::before { content: ""; position: absolute; top: 8px; left: 50%; width: 40px; height: 4px; margin-left: -20px; border-radius: 2px; background: rgba(56, 61, 59, .2); }
    .store-theme-casa-costa .hm-exit-popup__card--opciones .hm-exit-popup__close { top: 14px; right: 12px; }
    .store-theme-casa-costa .hm-exit-popup__card--opciones .hm-exit-popup__text { margin-bottom: 6px; font-size: 11px; }
    .store-theme-casa-costa .hm-exit-popup__card--opciones .hm-exit-popup__title { margin-bottom: 16px; padding: 0 52px 0 0; font-size: 1.45rem; }
    .store-theme-casa-costa .hm-exit-popup__opciones { gap: 10px; }
    .store-theme-casa-costa .hm-exit-popup__opcion { height: 124px; border-radius: 14px; }
    .store-theme-casa-costa .hm-exit-popup__opcion-img { flex: none; width: auto; height: auto; border-radius: 0; }
    .store-theme-casa-costa .hm-exit-popup__opcion-img::after { background: linear-gradient(90deg, rgba(20, 23, 22, .88) 0%, rgba(20, 23, 22, .7) 55%, rgba(20, 23, 22, .25) 100%); }
    .store-theme-casa-costa .hm-exit-popup__opcion-body { justify-content: center; gap: 4px; padding: 14px 64px 14px 16px; }
    .store-theme-casa-costa .hm-exit-popup__opcion-title { font-size: 1.1rem; }
    .store-theme-casa-costa .hm-exit-popup__opcion-text { color: rgba(255, 255, 255, .78); font-size: 13px; line-height: 1.4; -webkit-line-clamp: 2; }
    /* En celular el llamado es una flecha: el título y la descripción ya dicen a qué lleva cada opción. */
    .store-theme-casa-costa .hm-exit-popup__opcion-cta { display: none; }
    .store-theme-casa-costa a.hm-exit-popup__opcion::after { content: ""; position: absolute; top: 50%; right: 14px; width: 36px; height: 36px; margin-top: -18px; border: 1px solid rgba(255, 255, 255, .4); border-radius: 50%; background: rgba(255, 255, 255, .14) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8h10M9 4l4 4-4 4'/%3E%3C/svg%3E") center / 16px no-repeat; -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
}
@keyframes ccPopupOpcion { from { opacity: 0; transform: translateY(14px); } }
@keyframes ccPopupHoja { from { transform: translateY(100%); } }
@media (prefers-reduced-motion: reduce) {
    .store-theme-casa-costa :is(.hm-exit-popup__opcion, .hm-exit-popup__card--opciones) { animation: none; }
    .store-theme-casa-costa .hm-exit-popup__opcion-img img { transition: none; }
}

/* Barra superior: los mensajes con link del panel (Topbar) conservan el estilo de los demás. */
.store-theme-casa-costa a.cc-announcement-message { color: inherit; text-decoration: none; }

/* Quiénes somos: la portada se ancla a la derecha, donde va el producto; el texto queda sobre el degradé. */
.store-theme-casa-costa .about-hero img { object-position: right center; }

/* Desarrolladores: el tema pone h1-h4 y p en tinta oscura; en la portada y la franja oscura van en blanco,
   y el contenido usa el mismo ancho que el resto de las secciones del tema. */
.store-theme-casa-costa :is(.dev-hero, .dev-proof, .dev-section) > .container { width: min(1320px, 90.8%); padding-inline: 0; }
.store-theme-casa-costa .dev-hero h1,
.store-theme-casa-costa .dev-dark :is(h2, h3) { color: #fff; }
.store-theme-casa-costa .dev-hero .dev-hero-lead { color: rgba(255, 255, 255, .86); }
.store-theme-casa-costa .dev-dark :is(p, li) { color: rgba(255, 255, 255, .72); }
.store-theme-casa-costa .dev-breadcrumbs :is(a, p, i) { color: inherit; }
.store-theme-casa-costa .dev-eyebrow,
.store-theme-casa-costa .dev-benefit-grid span { color: var(--cc-blue); }
.store-theme-casa-costa :is(.dev-hero, .dev-dark) .dev-eyebrow { color: #c7d7e5; }
.store-theme-casa-costa .dev-form-note { border-left-color: var(--cc-blue); }

/* Business services: one centered row, horizontally scrollable when it cannot fit. */
.store-theme-casa-costa .cc-header-services { width: 80%; box-sizing: border-box; margin: 0 auto; border: var(--cc-hs-desktop-border_width, 0px) solid var(--cc-hs-desktop-border, transparent); border-radius: var(--cc-hs-desktop-radius, 24px); overflow: hidden; background: var(--cc-hs-desktop-background, #fff); color: var(--cc-hs-desktop-text, #383d3b); height: var(--cc-services-menu-height, 104px); --cc-hs-content-height: calc(var(--cc-services-menu-height, 104px) - 2 * var(--cc-hs-desktop-border_width, 0px)); padding: 0; }
.store-theme-casa-costa .cc-header-services-scroll { height: 100%; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; }
.store-theme-casa-costa .cc-header-services-row { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; align-items: center; height: 100%; gap: 20px; width: max-content; min-width: 100%; box-sizing: border-box; margin: 0; padding: 0 20px; list-style: none; }
.store-theme-casa-costa .cc-header-service { display: flex; align-items: center; justify-content: center; gap: 12px; min-width: 144px; text-align: left; }
.store-theme-casa-costa .cc-header-service img { display: block; flex: 0 0 auto; width: 64px; height: min(56px, var(--cc-hs-content-height)); object-fit: contain; margin: 0; }
.store-theme-casa-costa .cc-header-service p { margin: 0; color: inherit; font-size: clamp(8px, calc(var(--cc-hs-content-height) * .22), 14px); line-height: 1.2; white-space: nowrap; }
@media(max-width:767px) {
    .store-theme-casa-costa .cc-header-services { border-radius: var(--cc-hs-mobile-radius, 18px); border-width: var(--cc-hs-mobile-border_width, 0px); border-color: var(--cc-hs-mobile-border, transparent); background: var(--cc-hs-mobile-background, #fff); color: var(--cc-hs-mobile-text, #383d3b); height: auto; --cc-hs-content-height: calc(var(--cc-services-menu-height, 64px) - 2 * var(--cc-hs-mobile-border_width, 0px)); padding: 0; }
    .store-theme-casa-costa .cc-header-services-scroll { height: auto; overflow: visible; }
    .store-theme-casa-costa .cc-header-services-row { grid-auto-flow: row; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-columns: auto; width: 100%; height: auto; align-items: start; gap: 16px 8px; padding: 16px 8px; }
    .store-theme-casa-costa .cc-header-service { min-width: 0; flex-direction: column; gap: 10px; text-align: center; }
    .store-theme-casa-costa .cc-header-service-caption { min-width: 0; width: 100%; }
    .store-theme-casa-costa .cc-header-service .cc-header-service-caption h3,
    .store-theme-casa-costa .cc-header-service .cc-header-service-caption p { white-space: normal; overflow-wrap: anywhere; }
    .store-theme-casa-costa .cc-header-service .cc-header-service-caption h3 { font-size: clamp(10px, 2.8vw, 12px); line-height: 1.3; }
    body.store-theme-casa-costa #whatsapp-float { right: 20px !important; bottom: 20px !important; }
    .store-theme-casa-costa .cc-header-service img { width: 32px; height: 32px; filter: brightness(0); }
    .store-theme-casa-costa .cc-header-service p { display: none; }
}

.store-theme-casa-costa .cc-header-service h3 { margin: 0 0 2px; color: inherit; font-size: clamp(10px, calc(var(--cc-hs-content-height) * .25), 16px); line-height: 1.2; font-weight: 600; white-space: nowrap; }

.store-theme-casa-costa .cc-header-services-surround { padding: 28px 0; background: var(--cc-hs-desktop-outer_background, #fff); }
@media(max-width:767px) {
 .store-theme-casa-costa .cc-header-services-surround { padding: 20px 0; background: var(--cc-hs-mobile-outer_background, #fff); }
}

.store-theme-casa-costa .cc-header-service-caption { padding: 0; }
.store-theme-casa-costa .cc-header-services-scroll::-webkit-scrollbar { display: none; }

@media(min-width:768px) {
 .store-theme-casa-costa .cc-header-services-surround.cc-services-hide-desktop { display:none; }
}
@media(max-width:767px) {
 .store-theme-casa-costa .cc-header-services-surround.cc-services-hide-mobile { display:none; }
}

.store-theme-casa-costa .cc-header-service .cc-service-title-mobile { display: none; }
@media (max-width:767px) {
 .store-theme-casa-costa .cc-header-service .cc-service-title-desktop { display: none; }
 .store-theme-casa-costa .cc-header-service .cc-service-title-mobile { display: block; }
 .store-theme-casa-costa .cc-header-services-surround + .cc-featured-viewport--desktop + .cc-featured-viewport--mobile .cc-featured-products { padding-top: 0; }
}

/* Mobile category islands use the same 20px rhythm as header services. */
@media (max-width:767px) {
 .store-theme-casa-costa .cc-featured-viewport--mobile:has(+ #cc-categorias) .cc-featured-products { padding-bottom: 0; }
 .store-theme-casa-costa #cc-categorias { padding-top: 20px; padding-bottom: 20px; }
 .store-theme-casa-costa #cc-categorias .cc-section-heading { margin-bottom: 20px; }
 .store-theme-casa-costa #cc-categorias .cc-category-index { gap: 20px; margin-inline: 20px; }
 .store-theme-casa-costa #cc-categorias .cc-category-item { border-radius: 18px; overflow: hidden; }
}

.store-theme-casa-costa .cc-recommended-nav { display: none; }
@media (max-width:767px) {
 .store-theme-casa-costa #cc-categorias + .cc-featured-viewport .cc-recommended-grid,
 .store-theme-casa-costa #cc-categorias + .cc-featured-viewport--desktop + .cc-featured-viewport--mobile .cc-recommended-grid { padding-top: 0; }
 .store-theme-casa-costa .cc-recommended-grid > .container { padding-inline: 20px; }
 .store-theme-casa-costa .cc-recommended-grid .sect-heading { margin-bottom: 20px; }
 .store-theme-casa-costa .cc-recommended-grid .card-product { background: transparent; box-shadow: none; border: 0; }
 .store-theme-casa-costa .cc-recommended-grid .card-product_wrapper { border-radius: 12px; background: #fff; overflow: hidden; box-shadow: 0 2px 8px rgb(0 0 0 / 8%); aspect-ratio: 1; }
 .store-theme-casa-costa .cc-recommended-grid .product-img { aspect-ratio: 1; display: block; }
 .store-theme-casa-costa .cc-recommended-grid .img-product { width: 100%; height: 100%; object-fit: contain; }
 .store-theme-casa-costa .cc-recommended-grid .img-hover,
 .store-theme-casa-costa .cc-recommended-grid .card-hover-actions,
 .store-theme-casa-costa .cc-recommended-grid .product-action_bot,
 .store-theme-casa-costa .cc-recommended-grid .cc-recommended-sku { display: none; }
 .store-theme-casa-costa .cc-recommended-grid .card-product_info { text-align: center; padding-top: 12px; gap: 4px; }
 .store-theme-casa-costa .cc-recommended-grid .name-product { font-size: 14px; line-height: 1.3; min-height: 2.6em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
 .store-theme-casa-costa .cc-recommended-grid .price-wrap { display: flex; width: 100%; justify-content: center; text-align: center; margin-top: 4px !important; }
 .store-theme-casa-costa .cc-recommended-grid .price-new { font-size: 16px; color: #356289 !important; }
 .store-theme-casa-costa .cc-recommended-grid .cc-recommended-nav { display: flex; align-items: center; justify-content: center; position: absolute; z-index: 2; top: calc((100vw - 50px) / 4); transform: translateY(-50%); width: 28px; height: 44px; background: transparent; border: 0; border-radius: 0; box-shadow: none; color: #333; font-size: 28px; }
 .store-theme-casa-costa .cc-recommended-grid .nav-prev-swiper { left: 0; }
 .store-theme-casa-costa .cc-recommended-grid .nav-next-swiper { right: 0; }
 .store-theme-casa-costa .cc-recommended-grid .cc-recommended-nav.swiper-button-disabled { opacity: .3; }
}

@media (max-width:767px) {
 .store-theme-casa-costa .cc-recommended-grid .cc-recommended-all { margin-top: 20px !important; }
 .store-theme-casa-costa .cc-recommended-grid .cc-recommended-discount,
 .store-theme-casa-costa .cc-recommended-grid .cc-recommended-list,
 .store-theme-casa-costa .cc-recommended-grid .cc-recommended-installments { margin: 0; width: 100%; align-self: center; font-size: 12px; line-height: 1.4; text-align: center; }
 .store-theme-casa-costa .cc-recommended-grid .cc-recommended-discount { display: flex; flex-direction: column; align-items: center; gap: 2px; }
 .store-theme-casa-costa .cc-recommended-grid .cc-recommended-discount .cc-card-price__off { margin-right: 0; }
 .store-theme-casa-costa .cc-recommended-grid .name-product { font-weight: 600; }
}

/* Unified Casa Costa text family; icon fonts and existing weights remain intact. */
/* Desktop reading sizes: keep section headings and mobile typography unchanged. */
@media (min-width:768px) {
 body.store-theme-casa-costa #cc-categorias .cc-section-heading { display: block; text-align: center; }
 body.store-theme-casa-costa #cc-categorias .cc-section-heading :is(h2,p) { margin-inline: auto; text-align: center; }
 body.store-theme-casa-costa .cc-recommended-grid .sect-heading :is(h3,p) { margin-inline: auto; text-align: center; }
 body.store-theme-casa-costa { font-size: 16px; }
 body.store-theme-casa-costa #cc-categorias #cc-categories-title + p,
 body.store-theme-casa-costa .cc-featured-products .cc-featured-subtitle,
 body.store-theme-casa-costa .sect-heading .s-desc,
 body.store-theme-casa-costa .cc-real-estate-copy p { font-size: 19px !important; color: #696e73 !important; }
 body.store-theme-casa-costa .cc-real-estate-button,
 body.store-theme-casa-costa .cc-featured-products .cc-featured-card-button,
 body.store-theme-casa-costa footer :is(p,a,input,button) { font-size: 16px; }
 body.store-theme-casa-costa .cc-featured-products :is(.cc-featured-card-price-note,.cc-featured-card-price-lista),
 body.store-theme-casa-costa :is(.cc-card-price__medios,.cc-card-price__lista) { font-size: 14px; }
 body.store-theme-casa-costa .cc-product-description { font-size: clamp(16px, .85vw, 20px); }
}
/* The island owns the spacing to its adjacent landing sections. */
.store-theme-casa-costa #cc-categorias:has(+ .cc-real-estate) { padding-bottom: 0; }
.store-theme-casa-costa .cc-real-estate + .cc-featured-viewport .cc-recommended-grid,
.store-theme-casa-costa .cc-real-estate + .cc-featured-viewport--desktop + .cc-featured-viewport--mobile .cc-recommended-grid { padding-top: 0; }
.store-theme-casa-costa .cc-real-estate { --cc-estate-fondo: var(--cc-estate-fondo-desktop, #2b2b2b); --cc-estate-titulo: var(--cc-estate-titulo-desktop, #fff); --cc-estate-subtitulo: var(--cc-estate-subtitulo-desktop, #d1d1d1); --cc-estate-boton: var(--cc-estate-boton-desktop, #356289); --cc-estate-boton-texto: var(--cc-estate-boton_texto-desktop, #fff); padding: 40px 0; background: #fff; }
.store-theme-casa-costa .cc-real-estate > .container { width: calc(100% - 40px); max-width: 2316.6px; margin-inline: auto; padding-inline: 0; }
.store-theme-casa-costa .cc-real-estate-card { display: grid; grid-template-columns: 1fr 1fr; background: #fff; border-radius: 18px; overflow: hidden; box-shadow: 0 2px 8px rgb(0 0 0 / 8%); }
.store-theme-casa-costa .cc-real-estate-eyebrow { display: block; margin-bottom: 12px; font-size: 14px; font-weight: 700; letter-spacing: .08em; color: #356289; }
.store-theme-casa-costa .cc-real-estate-card > img { width: 100%; height: 100%; min-height: 486px; object-fit: cover; border-radius: 18px 0 0 18px; }
.store-theme-casa-costa .cc-real-estate-copy { padding: clamp(24px, 4vw, 64px); align-self: stretch; display: flex; flex-direction: column; justify-content: center; background: var(--cc-estate-fondo); min-width: 0; overflow-wrap: anywhere; }
.store-theme-casa-costa .cc-real-estate-copy h2 { color: var(--cc-estate-titulo); font-size: clamp(28px, 3vw, 44px); line-height: 1.15; margin: 0 0 16px; }
body.store-theme-casa-costa .cc-real-estate-copy p { color: var(--cc-estate-subtitulo) !important; margin: 0 0 24px; }
.store-theme-casa-costa .cc-real-estate-button { display: inline-flex; align-self: flex-start; position: relative; overflow: hidden; font-weight: 700; background: var(--cc-estate-boton); align-items: center; gap: 16px; padding: 12px 24px; border: 1px solid var(--cc-estate-boton); border-radius: 999px; color: var(--cc-estate-boton-texto); }
.store-theme-casa-costa .cc-real-estate-button:hover { background: var(--cc-estate-boton); color: var(--cc-estate-boton-texto); }
@media (max-width:767px) {
 .store-theme-casa-costa .cc-real-estate { --cc-estate-fondo: var(--cc-estate-fondo-mobile, #2b2b2b); --cc-estate-titulo: var(--cc-estate-titulo-mobile, #fff); --cc-estate-subtitulo: var(--cc-estate-subtitulo-mobile, #d1d1d1); --cc-estate-boton: var(--cc-estate-boton-mobile, #356289); --cc-estate-boton-texto: var(--cc-estate-boton_texto-mobile, #fff); padding: 20px 0; }
 .store-theme-casa-costa .cc-real-estate-card { grid-template-columns: minmax(0, 1fr); }
 .store-theme-casa-costa .cc-real-estate-card > img { aspect-ratio: 4 / 3; height: auto; min-height: 0; border-radius: 18px 18px 0 0; }
 .store-theme-casa-costa .cc-real-estate-copy { padding: 24px; }
}
body.store-theme-casa-costa :is(h1,h2,h3,h4,h5,h6,p,a,button,input,select,textarea,label,strong,b,small,li,td,th,div,span):not([class*="icon"]):not([class^="fa-"]):not([class*=" fa-"]) {
    font-family: var(--cc-font) !important;
}
@media (max-width:767px) {
 .store-theme-casa-costa .cc-recommended-grid .sect-heading { text-align: center; align-items: center; }
 .store-theme-casa-costa .cc-recommended-grid .sect-heading :is(h3,p) { text-align: center; margin-inline: auto; }
 .store-theme-casa-costa #cc-categorias .cc-section-heading h2,
 .store-theme-casa-costa .cc-recommended-grid .sect-heading h3 { font-size: clamp(20px, 6vw, 30px) !important; text-align: center; }
 body.store-theme-casa-costa .cc-featured-products .cc-featured-subtitle,
 body.store-theme-casa-costa #cc-categorias #cc-categories-title + p,
 body.store-theme-casa-costa .cc-recommended-grid .sect-heading .s-desc {
   font-size: calc(clamp(15px, 4.5vw, 19px) - 1pt) !important;
   color: #696e73 !important;
 }
}

/* Landing slider controls retain the original responsive banner dimensions. */
body.store-theme-casa-costa .cc-hero { position: relative; }
body.store-theme-casa-costa .cc-hero .cc-hero_arrow { top: 50%; transform: translateY(-50%); z-index: 5; }
body.store-theme-casa-costa .cc-hero .cc-hero_arrow-prev { left: 1rem; }
body.store-theme-casa-costa .cc-hero .cc-hero_arrow-next { right: 1rem; }
body.store-theme-casa-costa .cc-hero .cc-hero_arrow svg { width: 2rem; height: 2rem; }
body.store-theme-casa-costa .cc-hero > .cc-hero_dots { position: absolute; left: 0; right: 0; bottom: 24px; z-index: 7; display: flex; justify-content: center; align-items: center; gap: 8px; width: auto; padding: 0; background: transparent; transform: none; }
body.store-theme-casa-costa .cc-hero .cc-hero_dots .swiper-pagination-bullet { width: .75rem; height: .75rem; margin: 0; border: 0; border-radius: 1rem; background: #fff; opacity: .7; transition: width .5s; }
body.store-theme-casa-costa .cc-hero .cc-hero_dots .swiper-pagination-bullet::before,
body.store-theme-casa-costa .cc-hero .cc-hero_dots .swiper-pagination-bullet::after { content: none; }
body.store-theme-casa-costa .cc-hero .cc-hero_dots .swiper-pagination-bullet-active { width: 2rem; }
@media (max-width: 767px) {
 body.store-theme-casa-costa .cc-hero .cc-hero_shell { width: 100%; height: auto; min-height: 0; max-height: none; aspect-ratio: 1256 / 1687; }
 body.store-theme-casa-costa .cc-hero > .cc-hero_dots { display: none; }
}
@media (prefers-reduced-motion: reduce) {
 body.store-theme-casa-costa .cc-hero .swiper-wrapper { transition-duration: 0ms !important; }
 body.store-theme-casa-costa .cc-hero .cc-hero_dots .swiper-pagination-bullet { transition: none; }
}

/* Same scale and hover shadow as the floating WhatsApp button. */
.store-theme-casa-costa .cc-real-estate-button { transition: transform .2s, box-shadow .2s; }
.store-theme-casa-costa .cc-real-estate-button:is(:hover,:focus-visible) { transform: scale(1.12); box-shadow: 0 6px 24px rgba(0,0,0,.4) !important; }
@media (prefers-reduced-motion: reduce) {
 .store-theme-casa-costa .cc-real-estate-button { transition: none; }
}

/* Independent banner destinations, matching the media breakpoint. */
.store-theme-casa-costa .cc-hero_link-mobile { display: none; }
@media (max-width: 767px) {
    .store-theme-casa-costa .cc-hero_link-desktop { display: none; }
    .store-theme-casa-costa .cc-hero_link-mobile { display: block; }
}

/* Contacto: logos de WhatsApp e Instagram más grandes. El link del número cubre la fila de WhatsApp,
   así el logo también abre el chat; la columna de íconos tiene ancho fijo para que los textos sigan alineados. */
.store-theme-casa-costa .contact-info-icon { width: 32px; text-align: center; }
.store-theme-casa-costa .contact-info-item--whatsapp { position: relative; align-self: flex-start; }
.store-theme-casa-costa .contact-info-item--whatsapp .contact-info-icon { font-size: 32px !important; margin-top: 0 !important; transition: transform .2s; }
.store-theme-casa-costa .contact-info-item--whatsapp:has(a:only-of-type) a::after { content: ""; position: absolute; inset: 0; }
.store-theme-casa-costa .contact-info-item--whatsapp:hover .contact-info-icon,
.store-theme-casa-costa .contact-social-link:hover i { transform: scale(1.1); }
.store-theme-casa-costa .contact-social-link { display: inline-flex; align-items: center; gap: 8px; }
.store-theme-casa-costa .contact-social-link i { font-size: 28px; margin: 0 !important; transition: transform .2s; }
@media (prefers-reduced-motion: reduce) {
    .store-theme-casa-costa :is(.contact-info-item--whatsapp .contact-info-icon, .contact-social-link i) { transition: none; }
}
