/*GENERAL
--------------------------------------*/
:root {
    scroll-behavior: auto;
    --darkgreen: #063942;
    --green: #087B5B;
    --lightgreen: #91C020;
    --light: #F5F6ED;
    --orange: #FC4F2D;
    --dark: #191718;
    --red: #F4313F;
}

.color-darkgreen,
.hover-darkgreen:hover {
    color: var(--darkgreen) !important;
}

.bg-darkgreen,
.bghover-darkgreen:hover {
    background-color: var(--darkgreen) !important;
}

.bd-darkgreen,
.bdhover-darkgreen:hover {
    border-color: var(--darkgreen) !important;
}

.color-green,
.hover-green:hover {
    color: var(--green) !important;
}

.bg-green,
.bghover-green:hover {
    background-color: var(--green) !important;
}

.bd-green,
.bdhover-green:hover {
    border-color: var(--green) !important;
}

.color-lightgreen,
.hover-lightgreen:hover {
    color: var(--lightgreen) !important;
}

.bg-lightgreen,
.bghover-lightgreen:hover {
    background-color: var(--lightgreen) !important;
}

.bd-lightgreen,
.bdhover-lightgreen:hover {
    border-color: var(--lightgreen) !important;
}

.color-light,
.hover-light:hover {
    color: var(--light) !important;
}

.bg-light,
.bghover-light:hover {
    background-color: var(--light) !important;
}

.bd-light,
.bdhover-light:hover {
    border-color: var(--light) !important;
}

.color-orange,
.hover-orange:hover {
    color: var(--orange) !important;
}

.bg-orange,
.bghover-orange:hover {
    background-color: var(--orange) !important;
}

.bd-orange,
.bdhover-orange:hover {
    border-color: var(--orange) !important;
}

.color-white,
.hover-white:hover {
    color: #fff !important;
}

.bg-white,
.bghover-white:hover {
    background-color: #fff !important;
}

.bd-white,
.bdhover-white:hover {
    border-color: #fff !important;
}

.color-black,
.hover-black:hover {
    color: #000 !important;
}

.bg-black,
.bghover-black:hover {
    background-color: #000 !important;
}

.bd-black,
.bdhover-black:hover {
    border-color: #000 !important;
}

.color-dark,
.hover-dark:hover {
    color: var(--dark) !important;
}

.bg-dark,
.bghover-dark:hover {
    background-color: var(--dark) !important;
}

.bd-dark,
.bdhover-dark:hover {
    border-color: var(--dark) !important;
}

.color-red,
.hover-red:hover {
    color: var(--red) !important;
}

.bg-red,
.bghover-red:hover {
    background-color: var(--red) !important;
}

.bd-red,
.bdhover-red:hover {
    border-color: var(--red) !important;
}

body {
    font: normal normal 1rem 'roboto', 'arial', sans-serif;
    color: var(--dark);
}

body.pace-running:before {
    opacity: 1
}

a,
a:link,
a:visited,
a:hover,
a:active {
    text-decoration: none;
    color: currentColor;
}

a {
    -webkit-transition: background .3s, color .3s;
    -o-transition: background .3s, color .3s;
    transition: background .3s, color .3s;
}

p {
    margin: 0;
}

:focus {
    outline: none;
}

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

.pace-done #main-container {
    opacity: 1 !important
}

::placeholder {
    color: currentColor;
    opacity: .8;
    transition: opacity .3s;
}

:focus::placeholder {
    opacity: .3
}

/*Marquee*/
.marquee-container {
    width: 100%;
    height: 150px;
    overflow: hidden;
    position: relative;
}

.marquee-img {
    width: 100%;
    max-width: 600px;
}

.marquee-container .marquee {
    display: flex;
    width: max-content;
    height: 150px;
    font-weight: 700;
    font-size: 195px;
    position: absolute;
    bottom: 0;
    left: 0;
    text-transform: uppercase;
}

.marquee-inner-1,
.marquee-inner-2 {
    display: flex;
    align-items: center;
}

.marquee-container.straight .marquee-inner-1 {
    animation: slide-har 80s linear infinite;
}

.marquee-container.straight .marquee-inner-2 {
    animation: slide-har 80s linear infinite;
}

.marquee-container.reverse .marquee-inner-1 {
    animation: slide-hareverse 80s linear infinite;
}

.marquee-inner-2 {
    animation: slide-hareverse 80s linear infinite;
}

.marquee-text {
    padding: 0 5px;
    background: #f00
}

@keyframes slide-har {
    100% {
        -webkit-transform: translateX(-100%);
        transform: translateX(-100%);
    }
}

@keyframes slide-hareverse {
    100% {
        -webkit-transform: translateX(0%);
        transform: translateX(0%);
    }

    0% {
        -webkit-transform: translateX(-100%);
        transform: translateX(-100%);
    }
}


.kamburian-ul li{
    position: relative;
    padding-left: 2rem;
}

.kamburian-ul li:before{
    display:block;
    content:'';
    width: .5rem;
    height: .5rem;
    position: absolute;
    left: 0;
    top: 10px;
    border-radius: 50%;
    background: var(--darkgreen);
}

/*LAYOUT
--------------------------------------*/
.content {
    padding-top: 180px;
}

#header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 180px;
    z-index: 5;
    transition: transform .3s;
    background: var(--light);
}

#header-bottom {
    height: 120px;
}

#header.headroom--unpinned {
    transform: translateY(-180px);
}

#logo {
    width: 200px;
}

#logo img {
    width: 100%;
}

#nav {}

#nav ul {}

#nav li {}

#nav a {
    border-radius: 2px;
    padding: 0 1rem;
    height: 1.75rem;
    line-height: 1.75rem;
    color: var(--darkgreen);
    display: inline-block;
}

#nav a:hover {
    background: var(--darkgreen);
    color: #fff;
}

#header-shop .aws-container .aws-search-form {
    border: 1px solid var(--darkgreen);
    border-radius: 3px;
    width: 172px;
    height: 32px;
    overflow: hidden;
}

#header-shop .aws-container .aws-search-form input {
    border: unset;
    font-size: 1.1rem;
    color: var(--darkgreen);
}

#header-shop .aws-container .aws-search-form .aws-search-btn {
    border: unset;
    background: #fff;
    color: var(--darkgreen);
}

#header-shop .aws-container .aws-search-form .aws-search-btn_icon {
    fill: var(--darkgreen);
    color: var(--darkgreen);
}

#header-shop {
    font-size: 1.4rem;
    color: #fff;
    display: flex;
    align-items: center;
    column-gap: 1.2rem;
}

#header-shop .cart-count {
    position: absolute;
    top: 10px;
    right: 4px;
    background: var(--darkgreen);
    transform: translate(90%, -90%);
    color: #fff;
    font-size: 12px;
    padding: 2px 6px;
    border-radius: 50%;
    font-weight: bold;
}

#header-shop {
    position: relative;
}

.slicknav_menu {
    position: absolute;
    right: 0;
    top: 18px;
    padding: 0;
    margin: 0;
    background-color: transparent;
    width: 100%;
    display: none;
    z-index: 10;
}

.slicknav_nav {
    width: 100%;
    color: #fff;
    margin: 0;
    padding: 15px 0 0;
    background: var(--darkgreen);
    font-size: .95rem;
    font-weight: 600;
    text-align: center;
    position: absolute;
    top: 81px;
    left: 0;
}

.slicknav_nav ul {
    margin: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
}

.slicknav_nav li {
    margin-bottom: 30px;
}

.slicknav_nav li a.active,
.slicknav_nav li a.focus,
.slicknav_nav a:hover {
    color: #00a651;
    background: unset;
}

.slicknav_btn {
    background: unset;
    margin: 35px 5px 6px;
}

.slicknav_menu .slicknav_icon-bar {
    background: var(--darkgreen);
    box-shadow: none;
}

#submenu {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background: var(--darkgreen);
    color: #fff;
    z-index: 5;
    display: none;
}

#news form {
    position: relative;
}

#news input {
    border-radius: 11px;
    width: 100%;
    height: 3.5rem;
    padding: 0 11.2rem 0 2.2rem;
    line-height: 3.5rem;
    font-size: 1rem;
    color: #002d26;
    background: #fff;
    border: unset;
}

#news button {
    border-radius: 0 11px 11px 0;
    width: 11.2rem;
    height: 3.5rem;
    line-height: 3.5rem;
    background: var(--lightgreen);
    font-weight: 700;
    font-size: 1.25rem;
    color: var(--darkgreen);
    text-align: center;
    border: unset;
    position: absolute;
    right: 0;
    top: 0;
}

#footer {}

.footer-col {}

#footer-logo {}

#footer small {}

.fw-extrabold {
    font-weight: 900;
}

#floating-whatsapp{
    width: 3.125rem;
    height: 3.125rem;
    background: var(--darkgreen);
    box-shadow: 0 0 5px rgba(0, 0, 0, .2);
    border-radius: 50%;
    position: fixed;
    right: 15px;
    top: 0;
    bottom:0;
    margin: auto 0;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    transition: all .3s;
}

#floating-whatsapp:hover{
    background: var(--lightgreen);
}

/*WOOCOMMERCE
--------------------------------------*/
.kamburian-list-item {
    border: 1px solid #dcdcdc;
    border-radius: 15px;
}

.kamburian-widget.cat-list .badge {
    color: var(--darkgreen);
    transition: all .3s;
}

.kamburian-widget.cat-list li:hover .badge {
    color: var(--lightgreen);
    background: var(--darkgreen) !important;
}

.related .kamburian-list-item {
    border: unset;
}

.woocommerce a.added_to_cart {
    font-size: 1.5rem;
    border-radius: .2rem;
    background: var(--green);
    color: #fff;
    font-weight: 500;
    width: 100%;
    text-align: center;
    line-height: 1;
    padding: .5rem;
    margin-top: 1rem;
}

.woocommerce nav.woocommerce-pagination {
    padding-top: 50px;
}

.woocommerce nav.woocommerce-pagination ul,
.woocommerce nav.woocommerce-pagination ul li {
    border: unset;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    font-size: 1.125rem;
    color: var(--darkgreen);
}

.woocommerce nav.woocommerce-pagination ul li a:focus,
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
    background: unset;
    color: var(--darkgreen);
    font-weight: bold;
}

.flex-control-nav {
    display: flex;
    gap: 10px;
    margin-top: 10px;
    padding: 0;
    list-style: none;
}

.flex-control-thumbs li {
    flex: 0 0 auto;
    max-width: 80px;
    cursor: pointer;
}

.flex-control-thumbs img {
    display: block;
    width: 100%;
    border: 1px solid #ddd;
    transition: border 0.3s;
}

.flex-control-thumbs img:hover {
    border-color: #333;
}

.woocommerce-product-gallery__image a,
.woocommerce-product-gallery__image img {
    width: 100%;
}

.woocommerce img,
.woocommerce-page img {
    display: block;
    margin: 0 auto;

}

img.size-woocommerce_thumbnail {
    width: auto;
    height: 170px;
    padding: 30px 15px;
}

.woocommerce .quantity .qty{
    height: 100%;
    border-radius: 5px;
    border-width: 1px;
}

.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals {
    width: 100%;
}

.woocommerce-page table.cart img {
    width: 100%;
    max-width: 84px;
}

.woocommerce-cart table.cart th,
.woocommerce .cart-collaterals .cart_totals h2,
.woocommerce-page .cart-collaterals .cart_totals h2,
.woocommerce-page .cart-collaterals .cart-subtotal,
.woocommerce-checkout .checkout h3 {
    font-size: 1rem;
    text-transform: uppercase;
    font-weight: bold;
}

.woocommerce-cart .product-thumbnail img,
.woocommerce-page .product-thumbnail img {
    object-fit: contain !important;
    max-width: 80px;
    max-height: 80px;
    width: auto;
    height: auto;
}


.woocommerce-cart table.cart td.product-name {
    font-size: 1rem;
    font-weight: 400;
}

.woocommerce-cart table.cart td.product-name a {
    margin-bottom: 12px;
    display: block;
}

.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals {
    width: 100%;
}

.cart_totals td,
.order-total td {
    text-align: right;
}

.woocommerce-cart #coupon_code {
    width: 100%;
    height: 2.4rem;
    line-height: 2.4rem;
    padding: 0 5px;
    max-width: 11.375rem;
}

.woocommerce-cart button[name="update_cart"]:disabled{
    opacity: .5;
}

.wc_payment_methods {
    /*display: none;*/
}


/*HOME
--------------------------------------*/
#home-slider {
    min-height: 800px;
    height: calc(100vh - 180px);
}

#home-sale {
    transform: translateY(-50%);
}

#home-sale img {
    height: 240px;
    width: auto;
}


#home-cats img {
    height: 242px;
    aspect-ratio: 1/1;
}

#home-steps-list .number:before {
    display: block;
    content: '';
    width: 2px;
    height: 100%;
    position: absolute;
    left: 50%;
    top: 0;
    background: var(--darkgreen);
}

/* v1.9.0 — El patrón de fondo (pattern-01.webp, alto fijo de
   100% - 154px) cortaba al personaje a media altura y le dejaba
   la cabeza sobre blanco. Se reemplaza por color plano. */
#home-explore { background-color: #f5f6ee; }

/*TIPS / INFO
--------------------------------------*/
#info-main{
    position: relative;
    height: 560px;
}

#kambu-tips-title{
    position: relative;
}

#kambu-tips-title:before{
    display:block;
    content:'';
    width: 100%;
    height: 3.375rem;
    position: absolute;
    left: 0;
    top: 0;
    background: url(../img/pattern-02.svg) repeat center 0 / auto 100%;
    opacity: .2;
}


.kambu-tips-item{
    position: relative;
}

.kambu-tips-item:before{
    display:block;
    content:'';
    width: 90%;
    height: 95%;
    border-radius: .9rem;
    position: absolute;
    right: 0;
    top: 0;
    background: var(--light);
}

/*CONTACT
--------------------------------------*/

#map {
    height: 700px;
}

.grecaptcha-badge {
    visibility: hidden;
}

.iti {
    width: 100%;
}

.iti__flag-container {
    height: 3rem;
}

.iti__country-list,
.iti__selected-dial-code {
    color: #000;
}

#contact input,
#contact textarea {
    width: 100%;
    background: unset;
    border-style: solid;
    border-color: var(--darkgreen);
    border-width: 0 0 1px;
    font-size: .9rem;
    color: var(--darkgreen);
}

#contact input {
    height: 2.125rem;
    line-height: 2.125rem;
    padding: 0;
}

#contact textarea {
    height: 6.25rem;
    padding: 0;
}


#contact .parsley-errors-list {
    display: none;
    font-size: 11px;
    color: #fff;
    position: absolute;
    top: 0;
    right: 0;
    pointer-events: none;
    background: #ff5252;
    text-align: center;
    padding: 0 5px;
}

#contact .parsley-errors-list.filled {
    display: block;
}

#contact #contact-loader {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: #fff;
}

#contact #contact-loader #loader {
    position: absolute;
    left: 50%;
    top: 50%;
    margin: -25px 0 0 -25px;
    width: 50px;
    height: 50px;
    background: url(../img/loader.svg) no-repeat center;
}

#contact #contact-msg-text {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: #fff;
    opacity: 0;
}

#contact #contact-msg-text h2 {
    font-weight: normal;
    font-style: normal;
    font-size: 32px;
    color: currentColor;
    line-height: 1.5;
}

#contact #contact-msg-text p {
    font-size: 14px;
    line-height: 1.5;
    font-weight: 400;
}

.woocommerce .widget_price_filter .price_slider_wrapper .ui-widget-content {
    background: var(--lightgreen);
}

.woocommerce .widget_price_filter .ui-slider .ui-slider-handle,
.woocommerce .widget_price_filter .ui-slider .ui-slider-range {
    background: var(--green);
}

/*MQ
--------------------------------------*/

@media screen and (max-width: 1399px) {
    #home-steps-list:before {
        left: 46px;
    }

}

@media screen and (max-width: 991px) {
    :root {
        font-size: 13px;
    }

    .kamburian-ul{
        max-width: 300px;
        margin: 0 auto;
        text-align: left;
    }

    .content {
        padding-top: 100px;
    }

    #header {
        height: 100px;
    }

    #header-bottom {
        height: 75px;
    }

    #header-shop {
        margin-right: 35px;
        z-index: 20;
    }

    #header-shop .cart-count {
        top: 0;
        right: 18px;
    }

    #header-shop .aws-container .aws-search-form {
        width: 112px;
    }

    #header-shop .aws-container .aws-search-form input{
        padding-right: 0;
    }

    #logo {
        width: 130px;
    }

    #nav {
        display: none;
    }

    .slicknav_menu {
        display: block;
    }

    #footer-logo {
        width: 180px;
    }

    #home-cats img {
        height: 130px;
        aspect-ratio: 1/1;
    }
    
    #home-slider {
        min-height:670px;
        height: calc(100vh - 180px);
    }


    #home-steps-list:before {
        left: 8.3vw;
    }



    .flex-control-nav {
        justify-content: center;
    }

    
    .kambu-tips-item:before{
        top: unset;
        bottom: 0;
        width: 100%;
        height: 75%;
    }

}

@media screen and (max-width: 767px) {
    #home-sale {
        transform: translateY(-10%);
    }
    
    #home-slider {
        min-height:300px;
        height: unset;
    }
}

@media screen and (max-width: 575px) {

    #header-top {
        font-size: 12px;
    }

    #home-steps-list:before {
        left: 12.5vw;
    }

    .flex-control-nav {
        flex-wrap: wrap;
    }

    .flex-control-thumbs li {
        max-width: unset;
        width: calc(25% - 10px);
    }

    img.size-woocommerce_thumbnail {
        height: 130px;
        padding: 15px;
    }

}

/*═══════════════════════════════════════════════════════════
  KAMBURIAN — REFINAMIENTO VISUAL v1.3.0
  Escala tipográfica fluida y ritmo vertical.
  No modifica colores ni familias tipográficas.
  Para revertir: borrar desde esta línea hasta el final.
═══════════════════════════════════════════════════════════*/

/* 1. BASE FLUIDA
   Todo el sistema (.fpx-*, spacers de Bootstrap) está en rem y
   hereda de aquí. Bajar la raíz comprime tipografía y espacios
   de forma proporcional, sin tocar una sola clase del markup. */
html {
    font-size: clamp(12.5px, 11px + 0.25vw, 14.5px);
    -webkit-text-size-adjust: 100%;
}

body {
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}


/* 2. ESCALA TIPOGRÁFICA FLUIDA
   Los tamaños de display se recalculan en clamp() para que
   compriman más que el texto corrido. Se mantienen los nombres
   de clase: el markup no cambia. */
.fpx-78 { font-size: clamp(30px, 5.1vw, 60px) !important; line-height: 1.06; letter-spacing: -0.02em; }
.fpx-64 { font-size: clamp(26px, 4.1vw, 48px) !important; line-height: 1.10; letter-spacing: -0.018em; }
.fpx-60 { font-size: clamp(25px, 3.9vw, 45px) !important; line-height: 1.12; letter-spacing: -0.016em; }
.fpx-59 { font-size: clamp(24px, 3.8vw, 44px) !important; line-height: 1.12; letter-spacing: -0.016em; }
.fpx-48 { font-size: clamp(22px, 3.1vw, 36px) !important; line-height: 1.16; letter-spacing: -0.014em; }
.fpx-45 { font-size: clamp(21px, 2.9vw, 34px) !important; line-height: 1.18; letter-spacing: -0.012em; }
.fpx-41 { font-size: clamp(20px, 2.7vw, 31px) !important; line-height: 1.20; letter-spacing: -0.011em; }
.fpx-40 { font-size: clamp(20px, 2.6vw, 30px) !important; line-height: 1.20; letter-spacing: -0.011em; }
.fpx-36 { font-size: clamp(19px, 2.3vw, 27px) !important; line-height: 1.24; letter-spacing: -0.01em; }
.fpx-35 { font-size: clamp(18px, 2.2vw, 26px) !important; line-height: 1.25; letter-spacing: -0.01em; }
.fpx-34 { font-size: clamp(18px, 2.1vw, 25px) !important; line-height: 1.26; letter-spacing: -0.009em; }
.fpx-32 { font-size: clamp(17px, 2.0vw, 24px) !important; line-height: 1.28; letter-spacing: -0.008em; }
.fpx-31 { font-size: clamp(17px, 1.9vw, 23px) !important; line-height: 1.30; }
.fpx-30 { font-size: clamp(16.5px, 1.85vw, 22px) !important; line-height: 1.30; }
.fpx-26 { font-size: clamp(15.5px, 1.6vw, 20px) !important; line-height: 1.34; }
.fpx-24 { font-size: clamp(14.5px, 1.4vw, 18px) !important; line-height: 1.40; }
.fpx-23 { font-size: clamp(14px, 1.35vw, 17px) !important; line-height: 1.42; }
.fpx-20 { font-size: clamp(13.5px, 1.15vw, 16px) !important; line-height: 1.44; }
.fpx-19 { font-size: clamp(13px, 1.1vw, 15.5px) !important; line-height: 1.48; }
.fpx-17 { font-size: clamp(12.5px, 0.98vw, 14.5px) !important; line-height: 1.50; }
.fpx-16 { font-size: clamp(12.5px, 0.94vw, 14px) !important; line-height: 1.52; }
.fpx-15 { font-size: clamp(12px, 0.88vw, 13.5px) !important; line-height: 1.54; }
.fpx-14 { font-size: clamp(11.5px, 0.84vw, 13px) !important; line-height: 1.54; }
.fpx-11 { font-size: clamp(10.5px, 0.7vw, 11.5px) !important; line-height: 1.50; }


/* 3. RITMO VERTICAL
   Los pasos 6 a 10 iban de 72px a 160px fijos. Se reemplazan
   por una escala fluida que respira sin dominar la pantalla. */
:root {
    --k-space-6: clamp(28px, 3.8vw, 46px);
    --k-space-7: clamp(34px, 4.7vw, 58px);
    --k-space-8: clamp(40px, 5.6vw, 70px);
    --k-space-9: clamp(46px, 6.5vw, 82px);
    --k-space-10: clamp(52px, 7.2vw, 90px);
}

.p-6  { padding: var(--k-space-6) !important; }
.px-6 { padding-left: var(--k-space-6) !important; padding-right: var(--k-space-6) !important; }
.py-6 { padding-top: var(--k-space-6) !important; padding-bottom: var(--k-space-6) !important; }
.pt-6 { padding-top: var(--k-space-6) !important; }
.pb-6 { padding-bottom: var(--k-space-6) !important; }
.m-6  { margin: var(--k-space-6) !important; }
.my-6 { margin-top: var(--k-space-6) !important; margin-bottom: var(--k-space-6) !important; }
.mt-6 { margin-top: var(--k-space-6) !important; }
.mb-6 { margin-bottom: var(--k-space-6) !important; }

.p-7  { padding: var(--k-space-7) !important; }
.px-7 { padding-left: var(--k-space-7) !important; padding-right: var(--k-space-7) !important; }
.py-7 { padding-top: var(--k-space-7) !important; padding-bottom: var(--k-space-7) !important; }
.pt-7 { padding-top: var(--k-space-7) !important; }
.pb-7 { padding-bottom: var(--k-space-7) !important; }
.my-7 { margin-top: var(--k-space-7) !important; margin-bottom: var(--k-space-7) !important; }
.mt-7 { margin-top: var(--k-space-7) !important; }
.mb-7 { margin-bottom: var(--k-space-7) !important; }

.p-8  { padding: var(--k-space-8) !important; }
.py-8 { padding-top: var(--k-space-8) !important; padding-bottom: var(--k-space-8) !important; }
.pt-8 { padding-top: var(--k-space-8) !important; }
.pb-8 { padding-bottom: var(--k-space-8) !important; }
.my-8 { margin-top: var(--k-space-8) !important; margin-bottom: var(--k-space-8) !important; }
.mt-8 { margin-top: var(--k-space-8) !important; }
.mb-8 { margin-bottom: var(--k-space-8) !important; }

.py-9 { padding-top: var(--k-space-9) !important; padding-bottom: var(--k-space-9) !important; }
.pt-9 { padding-top: var(--k-space-9) !important; }
.pb-9 { padding-bottom: var(--k-space-9) !important; }
.mt-9 { margin-top: var(--k-space-9) !important; }
.mb-9 { margin-bottom: var(--k-space-9) !important; }

.pt-10 { padding-top: var(--k-space-10) !important; }
.pb-10 { padding-bottom: var(--k-space-10) !important; }
.mb-n10 { margin-bottom: clamp(-90px, -7.2vw, -52px) !important; }

/* Gutters de Bootstrap extendidos */
.gx-lg-7 { --bs-gutter-x: var(--k-space-6) !important; }


/* 4. AVISOS DE WOOCOMMERCE
   Los avisos por defecto ocupan media pantalla. Se compactan a
   una barra de una línea, con la marca de color a la izquierda. */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info,
.woocommerce-noreviews,
p.no-comments {
    position: relative;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    margin: 0 0 1.25rem;
    padding: 0.85rem 1.1rem 0.85rem 2.6rem;
    border: 1px solid rgba(6, 57, 66, 0.12);
    border-left: 3px solid var(--green);
    border-radius: 6px;
    background: #fff;
    color: var(--dark);
    font-size: clamp(12.5px, 0.94vw, 14px);
    line-height: 1.45;
    list-style: none;
}

.woocommerce-message::before,
.woocommerce-error::before,
.woocommerce-info::before {
    position: absolute;
    top: 50%;
    left: 1rem;
    transform: translateY(-50%);
    margin: 0;
    padding: 0;
    font-family: 'Font Awesome 6 Free', 'FontAwesome';
    font-weight: 900;
    font-size: 1em;
    line-height: 1;
    background: none;
    color: var(--green);
}

.woocommerce-message::before { content: "\f058"; }
.woocommerce-info::before    { content: "\f05a"; color: var(--darkgreen); }
.woocommerce-error::before   { content: "\f06a"; color: var(--red); }

.woocommerce-info  { border-left-color: var(--darkgreen); }
.woocommerce-error { border-left-color: var(--red); }

.woocommerce-error li { list-style: none; margin: 0; }

/* El botón dentro del aviso deja de ser un bloque suelto */
.woocommerce-message .button,
.woocommerce-error .button,
.woocommerce-info .button {
    margin-left: auto;
    padding: 0.45em 1.1em;
    border-radius: 5px;
    font-size: 0.92em;
    line-height: 1.4;
    white-space: nowrap;
}

.woocommerce-notices-wrapper:empty { display: none; }


/* 5. AJUSTES FINOS
   Detalles que hacen la diferencia entre "grande" y "prolijo". */

/* Contenedor: un poco más angosto en pantallas muy grandes,
   para que las líneas de texto no se estiren de más. */
@media (min-width: 1400px) {
    .container-lg, .container { max-width: 1240px; }
}

/* Campos de formulario: altura y radio consistentes */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-shipping-calculator input.input-text,
#coupon_code {
    padding: 0.6em 0.85em;
    border: 1px solid rgba(6, 57, 66, 0.18);
    border-radius: 6px;
    font-size: clamp(12.5px, 0.94vw, 14px);
    line-height: 1.45;
    transition: border-color .18s ease, box-shadow .18s ease;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
#coupon_code:focus {
    outline: none;
    border-color: var(--lightgreen);
    box-shadow: 0 0 0 3px rgba(145, 192, 32, 0.18);
}

.woocommerce form .form-row label {
    margin-bottom: 0.35em;
    font-size: clamp(12px, 0.88vw, 13.5px);
    font-weight: 500;
}

/* Tablas de carrito y pedido: menos peso, más aire interno */
.woocommerce table.shop_table {
    border: 0;
    border-collapse: collapse;
    border-radius: 0;
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
    padding: 0.9rem 0.75rem;
    border-top: 0;
    border-bottom: 1px solid rgba(6, 57, 66, 0.10);
    vertical-align: middle;
}

.woocommerce table.shop_table thead th {
    border-bottom: 1px solid rgba(6, 57, 66, 0.22);
    font-size: clamp(11px, 0.8vw, 12.5px);
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--darkgreen);
}

.woocommerce table.shop_table img { max-width: 64px; height: auto; border-radius: 6px; }

/* Ficha de producto y tarjetas del listado */
.product-item {
    border: 1px solid rgba(6, 57, 66, 0.08);
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.product-item:hover {
    transform: translateY(-3px);
    border-color: rgba(6, 57, 66, 0.14);
    box-shadow: 0 10px 28px -14px rgba(6, 57, 66, 0.35);
}

/* Botones: radio y peso coherentes en todo el sitio */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
    padding: 0.7em 1.4em;
    border-radius: 6px;
    font-size: clamp(12.5px, 0.94vw, 14px);
    font-weight: 700;
    line-height: 1.3;
    transition: background-color .18s ease, color .18s ease, transform .18s ease;
}

.woocommerce a.button:active,
.woocommerce button.button:active { transform: translateY(1px); }

/* Cantidad: control compacto */
.woocommerce .quantity .qty {
    width: 4.5em;
    padding: 0.55em 0.4em;
    border: 1px solid rgba(6, 57, 66, 0.18);
    border-radius: 6px;
    text-align: center;
}

/* Foco visible para navegación por teclado */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 2px solid var(--lightgreen);
    outline-offset: 2px;
    border-radius: 3px;
}

/* Respetar la preferencia de menos movimiento */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
    .product-item:hover { transform: none; }
}


/* 6. ACCESO A LA CUENTA EN EL HEADER */
#header-shop {
    display: flex;
    align-items: center;
    gap: clamp(0.75rem, 1.6vw, 1.5rem);
}

#header-shop .account-link {
    display: inline-flex;
    align-items: center;
    gap: 0.45em;
    color: var(--darkgreen);
    font-size: clamp(12.5px, 0.94vw, 14px);
    font-weight: 500;
    line-height: 1;
    white-space: nowrap;
    transition: color .18s ease;
}

#header-shop .account-link i {
    font-size: 1.45em;
    line-height: 1;
}

#header-shop .account-link i.is-logged { color: var(--green); }
#header-shop .account-link:hover { color: var(--lightgreen); }

#header-shop .cart-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    color: var(--darkgreen);
}

#header-shop .cart-link .ico { width: 1.45em; height: auto; }

#header-shop .cart-count {
    position: absolute;
    top: -0.35em;
    right: -0.6em;
    min-width: 1.5em;
    height: 1.5em;
    padding: 0 0.35em;
    border-radius: 999px;
    background: var(--orange);
    color: #fff;
    font-size: 0.7em;
    font-weight: 700;
    line-height: 1.5em;
    text-align: center;
}

/* Formularios de cuenta de WooCommerce: caja contenida, no a todo el ancho */
.woocommerce-account .woocommerce form.login,
.woocommerce-account .woocommerce form.register {
    max-width: 26rem;
    margin: 0 auto;
    padding: clamp(1.25rem, 2.4vw, 2rem);
    border: 1px solid rgba(6, 57, 66, 0.12);
    border-radius: 10px;
}

.woocommerce-account .woocommerce .col2-set .col-1,
.woocommerce-account .woocommerce .col2-set .col-2 { float: none; width: 100%; }


/*═══════════════════════════════════════════════════════════
  KAMBURIAN — MODERNIZACIÓN v1.4.0
  Paleta cromática intacta. Cambia familia tipográfica,
  densidad, ritmo vertical y componentes de tienda.
  Para revertir: borrar desde esta línea hasta el final.
═══════════════════════════════════════════════════════════*/

/* ───────────────────────────────────────────────────────────
   0. FAILSAFE DE VISIBILIDAD
   El sitio entero colgaba de que Pace.js disparara `done`.
   Nunca lo hacía, así que la página quedaba en blanco.
   Esto garantiza que el contenido se vea pase lo que pase,
   incluso si vuelve a subirse un header.php viejo con el
   `style="opacity:0"` en línea.
   ─────────────────────────────────────────────────────────── */
#main-container { opacity: 1 !important; }


/* ───────────────────────────────────────────────────────────
   1. TIPOGRAFÍA
   style.css pedía 'roboto' pero el theme no cargaba ninguna
   fuente: sólo la veían los equipos que la tuvieran instalada.
   Ahora hay una familia real y consistente para todos.
   ─────────────────────────────────────────────────────────── */
:root {
    --k-font: 'Figtree', system-ui, -apple-system, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
    --k-header-h: 132px;
    --k-line: rgba(6, 57, 66, .12);
    --k-line-soft: rgba(6, 57, 66, .07);
    --k-shadow: 0 1px 2px rgba(6, 57, 66, .04), 0 8px 24px -16px rgba(6, 57, 66, .28);
    --k-radius: 12px;
}

body,
input, select, textarea, button,
.slicknav_nav, .aws-container {
    font-family: var(--k-font);
}

body {
    letter-spacing: -0.003em;
}

h1, h2, h3, h4, h5, h6,
.fw-bold, .fw-semibold, strong, b {
    letter-spacing: -0.015em;
}

/* Cifras de ancho fijo: los precios dejan de bailar entre filas */
.price, .amount, .woocommerce-Price-amount,
.counter, .cart-count, .badge,
table.shop_table td, table.shop_table th,
.kamburian-single__specs,
.woocommerce-result-count {
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum" 1;
}


/* ───────────────────────────────────────────────────────────
   2. CABECERA
   180px de alto fijo se comían un tercio de la primera
   pantalla. Se comprime y se le da un borde de apoyo.
   ─────────────────────────────────────────────────────────── */
.content       { padding-top: var(--k-header-h); }
#header        { height: var(--k-header-h); box-shadow: 0 1px 0 var(--k-line-soft); }
/* v1.12.2 — La altura se reparte con flex; ver el bloque del final. */
#header.headroom--unpinned { transform: translateY(calc(var(--k-header-h) * -1)); }

#header-top {
    letter-spacing: 0.01em;
    padding-top: .55rem !important;
    padding-bottom: .55rem !important;
}

#logo { width: clamp(132px, 12vw, 176px); }

#nav a {
    height: auto;
    padding: .45rem .85rem;
    border-radius: 7px;
    font-size: clamp(13px, 1vw, 15px);
    font-weight: 500;
    line-height: 1.2;
    transition: background-color .18s ease, color .18s ease;
}

#nav ul { gap: .25rem; }

/* Buscador: deja de ser una cajita apretada */
#header-shop .aws-container .aws-search-form {
    width: clamp(160px, 17vw, 230px);
    height: 38px;
    border: 1px solid var(--k-line);
    border-radius: 8px;
    background: #fff;
    transition: border-color .18s ease, box-shadow .18s ease;
}

#header-shop .aws-container .aws-search-form input {
    font-size: clamp(12.5px, .95vw, 14px);
}

#submenu { box-shadow: 0 18px 40px -24px rgba(6, 57, 66, .6); }


/* ───────────────────────────────────────────────────────────
   3. HOME
   ─────────────────────────────────────────────────────────── */

/* 3.1 Hero
   slide.webp (1767×827) es la foto sin texto: el titular vive
   en HTML. El encuadre ya no tiene que preservar nada, así que
   se centra y el degradado de la sección 2 hace el contraste. */
#home-slider {
    min-height: 0;
    height: clamp(300px, 40vw, 560px);
    overflow: hidden;
}

#home-slider .slide img {
    height: 100%;
    object-fit: cover;
    object-position: 62% center;
}

/* 3.2 Tarjeta de destacados
   `transform: translateY(-50%)` movía la tarjeta pero dejaba
   su caja original ocupando lugar en el flujo: de ahí el vacío
   de ~250px que quedaba abajo. Se reemplaza por margen real. */
#home-sale {
    transform: none;
    margin-top: clamp(-96px, -6vw, -56px) !important;
    margin-bottom: var(--k-space-9) !important;
    z-index: 2;
}

#home-sale .bg-darkgreen {
    padding: clamp(1.5rem, 3.2vw, 2.75rem) clamp(1.25rem, 3vw, 2.75rem) !important;
    border-radius: 18px;
    box-shadow: 0 30px 60px -34px rgba(6, 57, 66, .75);
}

#home-sale h2 { margin-bottom: clamp(1.25rem, 2.4vw, 2rem) !important; }

#home-sale .row { --bs-gutter-y: 1.25rem; --bs-gutter-x: 1.25rem; margin-bottom: 1.25rem !important; }

#home-sale img { height: clamp(140px, 15vw, 200px); object-fit: contain; }

#home-sale .product-item { border-radius: 12px; padding: 1.25rem 1rem 1rem !important; }

#home-sale .product-item h3 { margin-bottom: 1.1rem !important; }

/* 3.3 Categorías destacadas */
#home-cats { padding-bottom: var(--k-space-8) !important; }

#home-cats h3 { margin-bottom: .5rem !important; }

#home-cats > .container-lg > p { margin-bottom: clamp(1.75rem, 3vw, 2.75rem) !important; padding-bottom: 0 !important; }

#home-cats .row { --bs-gutter-y: clamp(1.25rem, 2.4vw, 2rem); }

#home-cats img {
    height: clamp(120px, 13vw, 180px);
    object-fit: contain;
    transition: transform .25s ease;
}

#home-cats .hover-lightgreen {
    display: block;
    padding: clamp(.85rem, 1.6vw, 1.4rem) .75rem;
    border: 1px solid transparent;
    border-radius: var(--k-radius);
    transition: border-color .22s ease, background-color .22s ease, transform .22s ease;
}

#home-cats .hover-lightgreen:hover {
    background: #fff;
    border-color: var(--k-line);
    transform: translateY(-3px);
}

#home-cats .hover-lightgreen:hover img { transform: scale(1.04); }

#home-cats h3.mb-3 {
    margin-bottom: 0 !important;
    font-size: clamp(15px, 1.35vw, 19px);
    font-weight: 600;
}

/* 3.4 Bloque "Explorar"
   La foto del comercial (474×711) se estiraba al ancho de su
   columna y arrastraba la sección a 742px de alto, con la
   columna de texto flotando en el medio del vacío. */
#home-explore .col-lg-5 img {
    display: block;
    width: auto;
    max-width: 100%;
    max-height: clamp(280px, 32vw, 460px);
    margin: 0 auto;
}

#home-explore .col-xl-6 { padding-top: clamp(1.5rem, 3.5vw, 3rem) !important; }

#home-explore p { margin-bottom: clamp(1.4rem, 2.4vw, 2rem) !important; }


/* ───────────────────────────────────────────────────────────
   4. LISTADO DE PRODUCTOS
   ─────────────────────────────────────────────────────────── */
.kamburian-banner img { border-radius: var(--k-radius); }

/* 4.1 Barra de orden y conteo */
.kamburian-shop-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: .75rem 1.25rem;
    margin-bottom: 1.5rem;
    padding-bottom: .9rem;
    border-bottom: 1px solid var(--k-line);
}

.kamburian-shop-title {
    margin: 0;
    color: var(--darkgreen);
    font-size: clamp(20px, 2.2vw, 30px);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.15;
}

.kamburian-shop-toolbar__controls {
    display: flex;
    align-items: center;
    gap: .9rem;
    margin-left: auto;
}

.kamburian-shop-toolbar .woocommerce-result-count {
    order: 2;
    margin: 0;
    color: rgba(25, 23, 24, .62);
    font-size: clamp(12px, .92vw, 13.5px);
    white-space: nowrap;
}

.kamburian-shop-toolbar .woocommerce-ordering { order: 1; margin: 0; }

.kamburian-shop-toolbar .woocommerce-ordering select {
    padding: .5em 2.2em .5em .85em;
    border: 1px solid var(--k-line);
    border-radius: 8px;
    background-color: #fff;
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23063942'%3E%3Cpath d='M4.5 6.5 8 10l3.5-3.5z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right .55em center;
    background-size: 1.15em;
    color: var(--darkgreen);
    font-family: inherit;
    font-size: clamp(12.5px, .95vw, 14px);
    font-weight: 500;
    line-height: 1.3;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
}

.kamburian-shop-description {
    max-width: 68ch;
    margin-bottom: 1.5rem;
    color: rgba(25, 23, 24, .72);
    font-size: clamp(13px, 1vw, 15px);
}

/* 4.2 Tarjetas parejas
   Las cards tenían alturas distintas porque el botón caía
   apenas terminaba el texto. Ahora precio y botón se alinean
   por fila, sin importar el largo del título. */
.row.products { --bs-gutter-y: 1.5rem; }

.kamburian-list-item {
    position: relative;
    overflow: hidden;
    padding-bottom: .9rem;
    border: 1px solid var(--k-line);
    border-radius: var(--k-radius);
    background: #fff;
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.kamburian-list-item:hover {
    transform: translateY(-3px);
    border-color: rgba(6, 57, 66, .2);
    box-shadow: var(--k-shadow);
}

.kamburian-list-item .woocommerce-LoopProduct-link,
.kamburian-list-item > a:first-of-type {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
}

.kamburian-list-item img.size-woocommerce_thumbnail,
.kamburian-list-item .attachment-woocommerce_thumbnail {
    height: clamp(112px, 11vw, 150px);
    padding: 1.1rem 1rem .35rem;
    object-fit: contain;
}

.kamburian-list-item .woocommerce-loop-product__title {
    display: -webkit-box;
    margin-bottom: .5rem !important;
    overflow: hidden;
    color: var(--darkgreen);
    font-size: clamp(13px, 1.05vw, 15.5px) !important;
    font-weight: 600;
    line-height: 1.35;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.kamburian-list-item .price {
    display: block;
    margin-top: auto;
    padding-top: .35rem;
    color: var(--darkgreen) !important;
    font-size: clamp(16px, 1.5vw, 21px);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.2;
}

.kamburian-list-item .price del { margin-right: .4em; color: rgba(25, 23, 24, .45); font-size: .72em; font-weight: 500; }
.kamburian-list-item .price ins { text-decoration: none; }

/* "N x bulto": el dato que de verdad importa al mayorista */
.kamburian-list-item .fpx-15 {
    padding-bottom: .85rem !important;
    color: rgba(25, 23, 24, .6);
    font-size: clamp(11.5px, .9vw, 13px) !important;
    font-weight: 500;
}

.kamburian-list-item > .button,
.kamburian-list-item > a.button,
.kamburian-list-item > .added_to_cart {
    margin: auto .9rem 0;
    width: auto !important;
}

.woocommerce a.added_to_cart {
    margin: .5rem .9rem 0;
    width: auto;
    border-radius: 7px;
    font-size: clamp(12px, .92vw, 13.5px);
}

/* 4.3 Sidebar de categorías */
.kamburian-widget.cat-list {
    padding: 1.25rem !important;
    border: 1px solid var(--k-line);
    border-radius: var(--k-radius);
    background: #fff;
}

.kamburian-widget.cat-list::before {
    display: block;
    margin-bottom: .9rem;
    color: rgba(6, 57, 66, .55);
    content: 'Categorías';
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.kamburian-widget.cat-list ul { font-size: clamp(13px, 1vw, 15px) !important; font-weight: 500 !important; }

.kamburian-widget.cat-list li { margin-bottom: 0 !important; }

.kamburian-widget.cat-list li a {
    padding: .48rem .55rem;
    border-radius: 7px;
    gap: .6rem;
    line-height: 1.3;
    transition: background-color .18s ease, color .18s ease;
}

.kamburian-widget.cat-list li a:hover { background: var(--light); }

.kamburian-widget.cat-list .badge {
    flex: 0 0 auto;
    padding: .22em .5em;
    border-radius: 999px;
    background: var(--light) !important;
    font-size: 11px !important;
    font-weight: 700;
}

.kamburian-widget.price-slide { margin-top: 1.25rem; }

/* 4.4 Paginación */
.woocommerce nav.woocommerce-pagination { padding-top: 2.25rem; }

.woocommerce nav.woocommerce-pagination ul { display: inline-flex; gap: .3rem; }

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.35em;
    height: 2.35em;
    padding: 0 .5em;
    border: 1px solid transparent;
    border-radius: 8px;
    font-size: clamp(13px, 1vw, 15px);
    font-weight: 600;
}

.woocommerce nav.woocommerce-pagination ul li a:hover { background: var(--light) !important; }

.woocommerce nav.woocommerce-pagination ul li span.current {
    border-color: var(--darkgreen);
    background: var(--darkgreen) !important;
    color: #fff !important;
}


/* ───────────────────────────────────────────────────────────
   5. FICHA DE PRODUCTO
   Antes: media pantalla derecha vacía, imagen enorme, sin
   precio y sin jerarquía. Ahora la columna derecha se lee de
   arriba a abajo y la compra tiene su propia caja.
   ─────────────────────────────────────────────────────────── */
.kamburian-single { align-items: flex-start; }

.kamburian-single .woocommerce-product-gallery {
    padding: clamp(1rem, 2.4vw, 2rem);
    border: 1px solid var(--k-line);
    border-radius: var(--k-radius);
    background: #fff;
}

.kamburian-single .woocommerce-product-gallery__image img {
    max-height: clamp(280px, 34vw, 460px);
    object-fit: contain;
}

.kamburian-single .woocommerce-product-gallery__trigger {
    top: 1rem;
    right: 1rem;
    z-index: 2;
}

.kamburian-single .summary { padding-top: clamp(.5rem, 1.5vw, 1rem); }

.kamburian-single__eyebrow {
    margin: 0 0 .65rem;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.kamburian-single__eyebrow a { color: var(--green); }
.kamburian-single__eyebrow a:hover { color: var(--lightgreen); }
.kamburian-single__eyebrow .sep { margin: 0 .45em; opacity: .4; }

.kamburian-single__title { margin-bottom: 1.1rem !important; }

/* Ficha técnica: los <p> sueltos del contenido se vuelven filas */
.kamburian-single__specs {
    margin-bottom: 1.4rem;
    border-top: 1px solid var(--k-line-soft);
    font-size: clamp(13px, 1.05vw, 15.5px) !important;
}

.kamburian-single__specs p {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem 1rem;
    justify-content: space-between;
    margin: 0;
    padding: .55rem .15rem;
    border-bottom: 1px solid var(--k-line-soft);
    color: rgba(25, 23, 24, .82);
    line-height: 1.45;
}

.kamburian-single__specs p:empty { display: none; }

.kamburian-single__sku {
    margin: 0 0 1.4rem;
    color: rgba(25, 23, 24, .55);
    font-size: 12.5px;
    font-weight: 500;
    letter-spacing: .02em;
}

.kamburian-single__sku .sku { color: var(--darkgreen); font-weight: 700; }

/* Caja de compra */
.kamburian-purchase {
    padding: clamp(1.1rem, 2.2vw, 1.6rem);
    border: 1px solid var(--k-line);
    border-radius: var(--k-radius);
    background: var(--light);
}

.kamburian-purchase__price .price,
.kamburian-purchase__price p.price {
    display: block;
    margin: 0;
    color: var(--darkgreen) !important;
    font-size: clamp(26px, 3.2vw, 40px);
    font-weight: 800;
    letter-spacing: -0.025em;
    line-height: 1.1;
}

.kamburian-purchase__price del { margin-right: .45em; color: rgba(25, 23, 24, .4); font-size: .55em; font-weight: 500; }
.kamburian-purchase__price ins { text-decoration: none; }
.kamburian-purchase__price:empty { display: none; }

.kamburian-purchase .stock {
    margin: .5rem 0 0;
    font-size: 13px;
    font-weight: 600;
}

.kamburian-purchase .stock.in-stock { color: var(--green); }
.kamburian-purchase .stock.out-of-stock { color: var(--red); }

.kamburian-purchase form.cart {
    align-items: stretch;
    margin: 0;
    padding-top: 1.1rem !important;
}

.kamburian-purchase .quantity .qty {
    width: 5.2em;
    height: 100%;
    min-height: 3rem;
    border-color: var(--k-line);
    background: #fff;
    font-size: clamp(14px, 1.1vw, 16px);
    font-weight: 600;
}

.kamburian-purchase .single_add_to_cart_button {
    flex: 1 1 auto;
    min-height: 3rem;
    padding: .85rem 1.6rem !important;
    font-size: clamp(13px, 1.05vw, 15px) !important;
}

.kamburian-purchase > div:last-child { padding-top: 1.1rem !important; }
.kamburian-purchase > div:last-child p { color: rgba(25, 23, 24, .65); }

/* Relacionados */
.related.products {
    margin-top: var(--k-space-8);
    padding-top: clamp(1.5rem, 3vw, 2.5rem);
    border-top: 1px solid var(--k-line);
}

.related.products > h2 {
    margin-bottom: clamp(1.25rem, 2.4vw, 2rem) !important;
    font-size: clamp(19px, 2vw, 28px) !important;
}


/* ───────────────────────────────────────────────────────────
   6. CARRITO Y CHECKOUT
   ─────────────────────────────────────────────────────────── */
.woocommerce-cart table.cart td.product-name a,
.woocommerce-checkout table.shop_table .product-name {
    color: var(--darkgreen);
    font-weight: 600;
}

.woocommerce-cart table.cart th,
.woocommerce .cart-collaterals .cart_totals h2,
.woocommerce-page .cart-collaterals .cart_totals h2,
.woocommerce-checkout .checkout h3 {
    font-size: clamp(12px, .9vw, 13.5px);
    letter-spacing: .06em;
}

.woocommerce .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review {
    padding: clamp(1.1rem, 2.2vw, 1.6rem);
    border: 1px solid var(--k-line);
    border-radius: var(--k-radius);
    background: var(--light);
}

.woocommerce .cart_totals table.shop_table td,
.woocommerce .cart_totals table.shop_table th { border-bottom-color: var(--k-line-soft); }

.woocommerce .cart_totals .order-total td,
.woocommerce .cart_totals .order-total th {
    padding-top: 1rem;
    border-top: 1px solid var(--k-line);
    border-bottom: 0;
    color: var(--darkgreen);
    font-size: clamp(15px, 1.3vw, 19px);
    font-weight: 800;
}

.woocommerce .checkout_coupon,
.woocommerce-cart .coupon {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    align-items: center;
}

.woocommerce-cart #coupon_code { max-width: 12rem; height: auto; line-height: 1.45; }

.wc-proceed-to-checkout a.checkout-button {
    display: block;
    width: 100%;
    padding: .95em 1.4em !important;
    border-radius: 8px;
    text-align: center;
}

.woocommerce-checkout #payment { border-radius: var(--k-radius); background: transparent; }

.woocommerce-checkout #payment ul.payment_methods {
    padding: 0 0 1rem;
    border-bottom: 1px solid var(--k-line);
}

.woocommerce-checkout #payment div.form-row { padding: 1rem 0 0; }

.woocommerce-checkout #payment #place_order {
    width: 100%;
    padding: .95em 1.4em !important;
    border-radius: 8px;
}

/* Pasos del pedido: el vacío de la página de "gracias" */
.woocommerce-order .woocommerce-thankyou-order-received {
    padding: 1.1rem 1.25rem;
    border: 1px solid var(--k-line);
    border-left: 3px solid var(--green);
    border-radius: var(--k-radius);
    background: #fff;
    font-size: clamp(14px, 1.15vw, 17px);
    font-weight: 600;
}


/* ───────────────────────────────────────────────────────────
   7. PIE
   ─────────────────────────────────────────────────────────── */
#footer-bottom ul a,
#footer-bottom h5 { font-size: clamp(13px, 1.05vw, 15.5px); }

#footer-bottom .fpx-24 { font-size: clamp(13px, 1.05vw, 15.5px) !important; }

#footer-logo { width: clamp(150px, 15vw, 210px); }

#footer-social { gap: .75rem !important; font-size: clamp(20px, 1.9vw, 26px) !important; }


/* ───────────────────────────────────────────────────────────
   8. WHATSAPP FLOTANTE
   ─────────────────────────────────────────────────────────── */
#floating-whatsapp {
    right: clamp(12px, 1.6vw, 22px);
    width: 3.1rem;
    height: 3.1rem;
    font-size: 1.7rem;
    box-shadow: 0 6px 20px -6px rgba(6, 57, 66, .45);
}


/* ───────────────────────────────────────────────────────────
   9. RESPONSIVE
   ─────────────────────────────────────────────────────────── */
@media screen and (max-width: 991px) {
    :root { --k-header-h: 112px; }

    #home-slider { height: clamp(240px, 46vw, 340px); }
    #home-slider .slide img { object-position: 26% center; }

    #home-sale { margin-top: clamp(-56px, -5vw, -32px) !important; }

    .kamburian-widget.cat-list { margin-top: 2rem; }

    .kamburian-shop-toolbar { align-items: flex-start; }
    .kamburian-shop-toolbar__controls { width: 100%; margin-left: 0; justify-content: space-between; }
}

@media screen and (max-width: 575px) {
    :root { --k-header-h: 104px; }

    #home-slider { height: clamp(210px, 58vw, 290px); }
    #home-slider .slide img { object-position: 22% center; }

    #home-sale { margin-top: -28px !important; }
    #home-sale .bg-darkgreen { border-radius: 14px; }

    .kamburian-list-item .woocommerce-loop-product__title { -webkit-line-clamp: 3; }

    .kamburian-purchase form.cart { flex-wrap: wrap; }
    .kamburian-purchase .single_add_to_cart_button { flex: 1 1 100%; }

    .kamburian-shop-toolbar__controls { flex-direction: column; align-items: stretch; gap: .6rem; }
    .kamburian-shop-toolbar .woocommerce-ordering select { width: 100%; }
}


/*═══════════════════════════════════════════════════════════
  KAMBURIAN — v1.5.0
  Alta de cliente mayorista, header unificado, titulares en
  texto real y grilla de categorías de 4 columnas.
  Paleta cromática intacta.
═══════════════════════════════════════════════════════════*/

/* ───────────────────────────────────────────────────────────
   1. HEADER: CUENTA Y CARRITO CON EL MISMO LENGUAJE
   El acceso era un ícono de línea verde oscuro con texto, y el
   carrito un SVG naranja macizo, más grande, con el contador
   flotando afuera. Ahora comparten tamaño, color y estructura.
   ─────────────────────────────────────────────────────────── */
#header-shop .account-link,
#header-shop .cart-link {
    display: inline-flex;
    align-items: center;
    gap: .45em;
    color: var(--darkgreen);
    font-size: clamp(12.5px, .94vw, 14px);
    font-weight: 500;
    line-height: 1;
    white-space: nowrap;
    transition: color .18s ease;
}

#header-shop .account-link:hover,
#header-shop .cart-link:hover { color: var(--lightgreen); }

#header-shop .account-link i,
#header-shop .cart-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.45em;
    height: 1.45em;
    font-size: 1.45em;
    line-height: 1;
}

#header-shop .cart-icon { position: relative; }

/* El SVG se inyecta en línea (SVGInjector) y trae el naranja
   escrito a mano en el path. Se lo devuelve al color heredado. */
#header-shop .cart-link .ico,
#header-shop .cart-link svg {
    width: 100%;
    height: auto;
    color: inherit;
}

#header-shop .cart-link svg path { fill: currentColor; }

/* Contador: pegado al ícono, no flotando lejos */
#header-shop .cart-count {
    position: absolute;
    top: -.45em;
    right: -.55em;
    min-width: 1.35em;
    height: 1.35em;
    padding: 0 .3em;
    border-radius: 999px;
    background: var(--orange);
    color: #fff;
    font-size: .52em;
    font-weight: 700;
    line-height: 1.35em;
    text-align: center;
    transform: none;
}

#header-shop .account-link i.is-logged { color: var(--green); }


/* ───────────────────────────────────────────────────────────
   2. HERO CON TITULAR EN TEXTO
   La imagen (slide.webp) ya no trae texto quemado.
   El degradado corre de izquierda a derecha: cubre la zona del
   titular y se abre antes de la mitad, para que la foto se siga
   leyendo. Las paradas están calculadas sobre una foto clara
   —árboles y calle en el borde izquierdo—, que es el peor caso
   para texto blanco.
   ─────────────────────────────────────────────────────────── */
#home-slider .slide::after {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        to right,
        rgba(6, 57, 66, .94) 0%,
        rgba(6, 57, 66, .88) 18%,
        rgba(6, 57, 66, .72) 40%,
        rgba(6, 57, 66, .40) 62%,
        rgba(6, 57, 66, .10) 80%,
        rgba(6, 57, 66, 0) 92%
    );
    content: '';
    pointer-events: none;
}

#home-slider .slide > .container-lg { z-index: 2; }

#home-slider-copy {
    max-width: 46rem;
    text-shadow: 0 1px 24px rgba(6, 57, 66, .35);
}

#home-slider-copy p { max-width: 34rem; opacity: .92; }


/* ───────────────────────────────────────────────────────────
   3. CATEGORÍAS DESTACADAS: 8 EN DOS FILAS DE CUATRO
   ─────────────────────────────────────────────────────────── */
#home-cats .row { --bs-gutter-y: clamp(1rem, 2vw, 1.75rem); }

#home-cats .hover-lightgreen {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    height: 100%;
    padding: clamp(.9rem, 1.6vw, 1.5rem) .75rem clamp(.75rem, 1.4vw, 1.25rem);
    border: 1px solid transparent;
    border-radius: var(--k-radius);
    transition: border-color .22s ease, background-color .22s ease, transform .22s ease;
}

#home-cats .hover-lightgreen:hover {
    background: #fff;
    border-color: var(--k-line);
    transform: translateY(-3px);
}

#home-cats img {
    height: clamp(96px, 9.5vw, 140px);
    width: auto;
    max-width: 100%;
    margin-bottom: .85rem;
    object-fit: contain;
    transition: transform .25s ease;
}

#home-cats .hover-lightgreen:hover img { transform: scale(1.04); }

#home-cats h3.mb-3 {
    margin-bottom: 0 !important;
    margin-top: auto;
    font-size: clamp(14px, 1.15vw, 17px);
    font-weight: 600;
    line-height: 1.3;
}


/* ───────────────────────────────────────────────────────────
   4. BLOQUE "EXPLORAR"
   La banda de patrón cortaba al personaje a la altura del pecho
   y le dejaba la cabeza flotando sobre blanco. El saliente pasa
   de 154px fijos a un porcentaje chico: ahora sólo asoma la gorra.
   ─────────────────────────────────────────────────────────── */
#home-explore { padding-top: clamp(1.5rem, 3vw, 2.75rem); }

#home-explore .col-lg-5 img { max-height: clamp(280px, 33vw, 450px); }

#home-explore .col-xl-6 { padding-top: clamp(1rem, 2.5vw, 2rem) !important; }

#home-explore .col-xl-6 > .d-flex.gap-3 a { min-width: 0; }


/* ───────────────────────────────────────────────────────────
   5. BANNER DE TIENDA CON TITULAR EN TEXTO
   Mismo criterio que el hero, sobre banner.webp.
   ─────────────────────────────────────────────────────────── */
.kamburian-banner__media {
    position: relative;
    overflow: hidden;
    border-radius: var(--k-radius);
}

.kamburian-banner__media img {
    display: block;
    width: 100%;
    height: clamp(200px, 26vw, 340px);
    object-fit: cover;
    object-position: center;
}

.kamburian-banner__media::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to right,
        rgba(6, 57, 66, .93) 0%,
        rgba(6, 57, 66, .86) 20%,
        rgba(6, 57, 66, .64) 42%,
        rgba(6, 57, 66, .3) 62%,
        rgba(6, 57, 66, .06) 80%,
        rgba(6, 57, 66, 0) 92%
    );
    content: '';
    pointer-events: none;
}

.kamburian-banner__copy {
    position: absolute;
    top: 50%;
    left: clamp(1.25rem, 4vw, 3.5rem);
    z-index: 2;
    max-width: 32rem;
    transform: translateY(-50%);
    text-shadow: 0 1px 20px rgba(6, 57, 66, .35);
}


/* ───────────────────────────────────────────────────────────
   6. ALTA DE CLIENTE MAYORISTA
   ─────────────────────────────────────────────────────────── */
#registro { padding-bottom: var(--k-space-9); }

.kamburian-register-intro {
    max-width: 44rem;
    margin-bottom: clamp(1.75rem, 3.5vw, 2.75rem);
}

.kamburian-register-eyebrow {
    margin: 0 0 .5rem;
    color: var(--green);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.kamburian-register-intro h1 { margin-bottom: .75rem; }

.kamburian-register-intro p:last-child {
    margin: 0;
    color: rgba(25, 23, 24, .72);
    font-size: clamp(14px, 1.2vw, 17px) !important;
    line-height: 1.55;
}

.kamburian-register {
    padding: clamp(1.25rem, 3vw, 2.5rem);
    border: 1px solid var(--k-line);
    border-radius: var(--k-radius);
    background: #fff;
}

.kamburian-register-fields { --bs-gutter-x: 1rem; --bs-gutter-y: 0; }

.kamburian-register-heading {
    margin: clamp(1rem, 2vw, 1.75rem) 0 .85rem;
    padding-bottom: .5rem;
    border-bottom: 1px solid var(--k-line-soft);
    color: var(--darkgreen);
    font-size: clamp(14px, 1.15vw, 17px);
    font-weight: 700;
    letter-spacing: -0.01em;
}

.kamburian-register-fields > .col-12:first-child .kamburian-register-heading { margin-top: 0; }

.kamburian-register .form-row {
    display: flex;
    flex-direction: column;
    margin-bottom: 1rem;
    padding: 0 calc(var(--bs-gutter-x) * .5);
}

.kamburian-register .form-row label {
    margin-bottom: .35em;
    color: var(--darkgreen);
    font-size: clamp(12px, .9vw, 13.5px);
    font-weight: 600;
}

.kamburian-register .form-row .required {
    border: 0;
    color: var(--orange);
    text-decoration: none;
}

.kamburian-register input.input-text,
.kamburian-register select {
    width: 100%;
    padding: .65em .85em;
    border: 1px solid var(--k-line);
    border-radius: 8px;
    background-color: #fff;
    color: var(--dark);
    font-family: inherit;
    font-size: clamp(13px, 1vw, 15px);
    line-height: 1.4;
    transition: border-color .18s ease, box-shadow .18s ease;
}

.kamburian-register select {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23063942'%3E%3Cpath d='M4.5 6.5 8 10l3.5-3.5z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right .6em center;
    background-size: 1.15em;
    padding-right: 2.2em;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
}

.kamburian-register input.input-text:focus,
.kamburian-register select:focus {
    outline: none;
    border-color: var(--lightgreen);
    box-shadow: 0 0 0 3px rgba(145, 192, 32, .18);
}

.kamburian-register .password-input { display: block; position: relative; }

.kamburian-register-submit {
    margin: clamp(1.25rem, 2.5vw, 2rem) 0 0;
    padding-top: clamp(1.25rem, 2.5vw, 2rem);
    border-top: 1px solid var(--k-line-soft);
}

.kamburian-register-submit button {
    width: 100%;
    padding: .95em 1.4em !important;
    border: 0;
    border-radius: 8px;
    background: var(--orange);
    color: #fff;
    font-size: clamp(13px, 1.05vw, 15px) !important;
    font-weight: 700;
    transition: background-color .18s ease;
}

.kamburian-register-submit button:hover { background: var(--lightgreen); }

.kamburian-register .woocommerce-privacy-policy-text {
    margin-top: 1rem;
    color: rgba(25, 23, 24, .6);
    font-size: 12.5px;
}

/* Enlace de ida y vuelta entre login y alta */
.kamburian-login-alt {
    margin: 1.1rem 0 0;
    color: rgba(25, 23, 24, .7);
    font-size: clamp(12.5px, .95vw, 14px);
    text-align: center;
}

.kamburian-login-alt a {
    color: var(--green);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.kamburian-login-alt a:hover { color: var(--lightgreen); }

/* El bloque de login de WooCommerce hereda el mismo tratamiento */
.woocommerce-account .woocommerce form.login,
.woocommerce-account .woocommerce form.register { background: #fff; }

.woocommerce-account .woocommerce form.login .kamburian-login-alt {
    padding-top: 1rem;
    border-top: 1px solid var(--k-line-soft);
}


/* ───────────────────────────────────────────────────────────
   7. RESPONSIVE v1.5.0
   ─────────────────────────────────────────────────────────── */
@media screen and (max-width: 991px) {
    #home-slider-copy p { display: none; }
    #home-cats img { height: clamp(88px, 16vw, 120px); }
    .kamburian-banner__copy { max-width: 24rem; }
}

@media screen and (max-width: 575px) {
    #header-shop .cart-count { font-size: .5em; }
    /* El titular ocupa el ancho completo: el degradado lateral no
       alcanza y se reemplaza por un velo parejo, más denso abajo. */
    #home-slider .slide::after {
        background: linear-gradient(
            180deg,
            rgba(6, 57, 66, .62) 0%,
            rgba(6, 57, 66, .80) 55%,
            rgba(6, 57, 66, .88) 100%
        );
    }
    #home-slider-copy { max-width: 100%; }
    .kamburian-banner__media img { height: clamp(180px, 46vw, 240px); }
    .kamburian-banner__media::after {
        background: linear-gradient(
            180deg,
            rgba(6, 57, 66, .58) 0%,
            rgba(6, 57, 66, .80) 55%,
            rgba(6, 57, 66, .88) 100%
        );
    }
    .kamburian-banner__copy {
        left: 1.1rem;
        right: 1.1rem;
        max-width: none;
    }
    .kamburian-register { padding: 1.1rem; }
    .kamburian-register-fields { --bs-gutter-x: .75rem; }
}


/*═══════════════════════════════════════════════════════════
  KAMBURIAN — v1.6.0
  Correcciones puntuales y sistema de botones.
  Paleta cromática intacta.
═══════════════════════════════════════════════════════════*/

/* ───────────────────────────────────────────────────────────
   1. FOOTER AL FONDO EN PÁGINAS CORTAS
   #header es fixed, así que no participa del flujo: el margen
   automático del footer lo empuja al pie de la ventana.
   ─────────────────────────────────────────────────────────── */
html, body { height: auto; }

#main-container {
    display: flex;
    flex-direction: column;
    /* Descontar la barra de administración cuando hay sesión de staff. */
    min-height: calc(100vh - var(--wp-admin--admin-bar--height, 0px));
    min-height: calc(100svh - var(--wp-admin--admin-bar--height, 0px));
}

#main-container > #footer { margin-top: auto; }


/* ───────────────────────────────────────────────────────────
   2. AIRE SUPERIOR EN PÁGINAS INTERNAS
   El contenido arrancaba pegado al header en todo lo que no
   fuera la home, donde el hero ocupa ese lugar.
   ─────────────────────────────────────────────────────────── */
body:not(.home) .content {
    padding-top: calc(var(--k-header-h) + clamp(1.75rem, 3.5vw, 3rem));
}

body.home .content { padding-top: var(--k-header-h); }


/* ───────────────────────────────────────────────────────────
   3. FOTO DEL COMERCIAL
   El markup lleva `w-100`, que es `width: 100% !important` y
   le ganaba al `width: auto`. Con el alto tope puesto, la foto
   se estiraba: 474×711 renderizando a 495×450.
   ─────────────────────────────────────────────────────────── */
#home-explore .col-lg-5 img {
    width: auto !important;
    height: auto;
    max-width: 100%;
    max-height: clamp(280px, 33vw, 450px);
    margin: 0 auto;
    object-fit: contain;
}


/* ───────────────────────────────────────────────────────────
   4. CARRITO A LA MEDIDA ÓPTICA DE LA CUENTA
   Los dos contenedores medían 29px, pero el glifo de Font
   Awesome deja aire interno y el SVG llenaba la caja entera.
   ─────────────────────────────────────────────────────────── */
/* El ícono del carrito y su contador pasaron a v1.11.1. */


/* ───────────────────────────────────────────────────────────
   5. SISTEMA DE BOTONES
   Había radios, alturas y pesos distintos según el bloque.
   Tres variantes, una sola geometría.
   ─────────────────────────────────────────────────────────── */
.kb-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5em;
    padding: .82em 1.6em;
    border: 1px solid transparent;
    border-radius: 8px;
    font-size: clamp(13px, 1.05vw, 15px);
    font-weight: 700;
    letter-spacing: -0.005em;
    line-height: 1.2;
    text-align: center;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
    cursor: pointer;
}

.kb-btn:active { transform: translateY(1px); }

.kb-btn--lg { padding: .95em 1.9em; font-size: clamp(14px, 1.2vw, 17px); }

.kb-btn--primary {
    background: var(--orange);
    border-color: var(--orange);
    color: #fff !important;
}

.kb-btn--primary:hover {
    background: var(--lightgreen);
    border-color: var(--lightgreen);
    color: #fff !important;
}

/* Sobre fondo oscuro: contorno, no mancha */
.kb-btn--ghost {
    background: transparent;
    border-color: rgba(255, 255, 255, .45);
    color: #fff !important;
}

.kb-btn--ghost:hover {
    background: rgba(255, 255, 255, .1);
    border-color: #fff;
    color: #fff !important;
}

/* Sobre fondo claro: secundario */
.kb-btn--outline {
    background: transparent;
    border-color: var(--darkgreen);
    color: var(--darkgreen) !important;
}

.kb-btn--outline:hover {
    background: var(--darkgreen);
    border-color: var(--darkgreen);
    color: #fff !important;
}

.product-item .kb-btn { width: 100%; }


/* ───────────────────────────────────────────────────────────
   6. ALTA DE CLIENTE
   WooCommerce le pone su propio borde y padding a form.register,
   que se sumaban a los de la tarjeta: doble marco.
   ─────────────────────────────────────────────────────────── */
#registro { padding-bottom: var(--k-space-9); }

.kamburian-register form.register,
.kamburian-register form.woocommerce-form-register {
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.kamburian-register .woocommerce-privacy-policy-text { margin-top: 1.25rem; }


/* ───────────────────────────────────────────────────────────
   7. AVISOS DE WOOCOMMERCE SIN DEPENDER DE FONT AWESOME
   El ícono se pedía por font-family y en varias vistas salía el
   cuadrito de carácter no soportado. Ahora es un SVG embebido.
   ─────────────────────────────────────────────────────────── */
.woocommerce-message::before,
.woocommerce-error::before,
.woocommerce-info::before {
    width: 1.05em;
    height: 1.05em;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    content: '';
    font-family: inherit;
}

.woocommerce-message::before {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23087B5B'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm-1.2 14.3-4-4 1.4-1.4 2.6 2.6 5.6-5.6 1.4 1.4-7 7Z'/%3E%3C/svg%3E");
}

.woocommerce-info::before {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23063942'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm1 15h-2v-6h2v6Zm0-8h-2V7h2v2Z'/%3E%3C/svg%3E");
}

.woocommerce-error::before {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23F4313F'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm1 15h-2v-2h2v2Zm0-4h-2V7h2v6Z'/%3E%3C/svg%3E");
}


/* ───────────────────────────────────────────────────────────
   8. HEADER CON APOYO AL HACER SCROLL
   headroom.js ya marca el estado; sólo faltaba usarlo.
   ─────────────────────────────────────────────────────────── */
#header {
    transition: transform .3s ease, box-shadow .25s ease, background-color .25s ease;
    box-shadow: none;
}

#header.headroom--not-top {
    background: rgba(245, 246, 237, .92);
    box-shadow: 0 6px 24px -18px rgba(6, 57, 66, .7);
    backdrop-filter: saturate(180%) blur(10px);
    -webkit-backdrop-filter: saturate(180%) blur(10px);
}

#header-top { letter-spacing: .012em; font-weight: 600; }


/* ───────────────────────────────────────────────────────────
   9. AJUSTES DE DETALLE
   ─────────────────────────────────────────────────────────── */

/* "N x bulto" pasa a ser un dato con forma, no un renglón suelto */
.kamburian-list-item .fpx-15 {
    align-self: flex-start;
    margin: 0 .9rem .85rem;
    padding: .2em .6em !important;
    border-radius: 999px;
    background: var(--light);
    color: var(--darkgreen);
    font-weight: 600;
}

/* Pie: jerarquía y aire */
#footer-bottom ul a {
    display: inline-block;
    padding: .12rem 0;
    opacity: .88;
    transition: opacity .18s ease, color .18s ease;
}

#footer-bottom ul a:hover { opacity: 1; }

#footer-bottom h5 {
    margin-bottom: .9rem;
    opacity: .7;
    font-size: clamp(11px, .85vw, 12.5px) !important;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

/* Selección de texto con color de marca */
::selection { background: var(--lightgreen); color: var(--darkgreen); }

/* Anclas que no quedan tapadas por el header fijo */
:target { scroll-margin-top: calc(var(--k-header-h) + 1rem); }

/* Imágenes: nunca desbordan su columna */
#main-container img { max-width: 100%; }


@media screen and (max-width: 575px) {
    .kb-btn { width: 100%; }
    #home-explore .col-xl-6 .d-flex .kb-btn { width: 100%; }
}


/* ───────────────────────────────────────────────────────────
   10. PÁGINA 404
   El theme no tenía 404.php, así que WordPress caía en
   index.php: cualquier URL rota devolvía la home completa.
   ─────────────────────────────────────────────────────────── */
#error-404 { padding-bottom: var(--k-space-9); }

.kamburian-404-code {
    margin: 0 0 .6rem;
    color: var(--orange);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.kamburian-404-text {
    max-width: 40rem;
    margin: 0 auto clamp(1.5rem, 3vw, 2.25rem);
    color: rgba(25, 23, 24, .72);
    font-size: clamp(14px, 1.2vw, 17px) !important;
    line-height: 1.55;
}

.kamburian-404-search {
    max-width: 26rem;
    margin: 0 auto clamp(1.5rem, 3vw, 2.25rem);
}

.kamburian-404-search .aws-container .aws-search-form {
    width: 100%;
    height: 46px;
    border: 1px solid var(--k-line);
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
}

.kamburian-404-cats {
    margin-top: clamp(2rem, 4vw, 3.25rem);
    padding-top: clamp(1.5rem, 3vw, 2.25rem);
    border-top: 1px solid var(--k-line);
}

.kamburian-404-cats h2 {
    margin-bottom: 1rem;
    color: rgba(6, 57, 66, .55);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.kamburian-404-cats ul {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    justify-content: center;
}

.kamburian-404-cats a {
    display: inline-block;
    padding: .42em .95em;
    border: 1px solid var(--k-line);
    border-radius: 999px;
    color: var(--darkgreen);
    font-size: clamp(12.5px, .95vw, 14px);
    font-weight: 600;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}

.kamburian-404-cats a:hover {
    background: var(--darkgreen);
    border-color: var(--darkgreen);
    color: #fff;
}


/*═══════════════════════════════════════════════════════════
  KAMBURIAN — v1.7.0
  Mi cuenta muestra sólo el acceso.
═══════════════════════════════════════════════════════════*/

.kamburian-login {
    max-width: 27rem;
    margin: 0 auto;
}

.kamburian-login__intro {
    margin-bottom: clamp(1.25rem, 2.5vw, 1.85rem);
    text-align: center;
}

.kamburian-login__eyebrow {
    margin: 0 0 .5rem;
    color: var(--green);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.kamburian-login__title {
    margin: 0 0 .5rem;
    color: var(--darkgreen);
    font-size: clamp(22px, 2.6vw, 32px);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.15;
}

.kamburian-login__lead {
    margin: 0;
    color: rgba(25, 23, 24, .7);
    font-size: clamp(13px, 1.05vw, 15px);
    line-height: 1.5;
}

/* La caja del formulario, ahora una sola y centrada */
.woocommerce-account .woocommerce form.login,
.kamburian-login form.login {
    max-width: none;
    margin: 0;
    padding: clamp(1.25rem, 2.6vw, 2rem);
    border: 1px solid var(--k-line);
    border-radius: var(--k-radius);
    background: #fff;
}

.kamburian-login form.login .form-row {
    display: flex;
    flex-direction: column;
    margin-bottom: 1rem;
    padding: 0;
}

.kamburian-login form.login label {
    margin-bottom: .35em;
    color: var(--darkgreen);
    font-size: clamp(12px, .9vw, 13.5px);
    font-weight: 600;
}

.kamburian-login form.login .required { border: 0; color: var(--orange); text-decoration: none; }

.kamburian-login form.login input.input-text {
    width: 100%;
    padding: .65em .85em;
    border: 1px solid var(--k-line);
    border-radius: 8px;
    background: #fff;
    font-family: inherit;
    font-size: clamp(13px, 1vw, 15px);
    line-height: 1.4;
    transition: border-color .18s ease, box-shadow .18s ease;
}

.kamburian-login form.login input.input-text:focus {
    outline: none;
    border-color: var(--lightgreen);
    box-shadow: 0 0 0 3px rgba(145, 192, 32, .18);
}

.kamburian-login__actions {
    flex-direction: column !important;
    gap: .85rem;
    margin-bottom: .5rem !important;
}

.kamburian-login__actions .kb-btn { width: 100%; }

.kamburian-login__actions .woocommerce-form-login__rememberme {
    display: flex !important;
    align-items: center;
    gap: .5em;
    margin: 0;
    color: rgba(25, 23, 24, .7);
    font-size: clamp(12.5px, .95vw, 14px);
    font-weight: 500 !important;
}

.kamburian-login__actions .woocommerce-form-login__rememberme input { width: auto; margin: 0; }

.kamburian-login .lost_password {
    margin: 0;
    text-align: center;
}

.kamburian-login .lost_password a {
    color: rgba(25, 23, 24, .65);
    font-size: clamp(12.5px, .95vw, 14px);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.kamburian-login .lost_password a:hover { color: var(--green); }

.kamburian-login .kamburian-login-alt {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--k-line-soft);
}

/* El h2 "Acceder" del layout viejo de dos columnas ya no aplica */
.woocommerce-account #customer_login > .u-column1 > h2,
.woocommerce-account #customer_login > .u-column2 > h2 { display: none; }


/* ───────────────────────────────────────────────────────────
   PÁGINAS LEGALES
   ─────────────────────────────────────────────────────────── */

/* Enlaces del pie: presentes pero discretos */
#footer-legales {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem 1.4rem;
    justify-content: center;
    padding: 0 0 1.25rem;
    list-style: none;
}

#footer-legales a {
    color: rgba(255, 255, 255, .62);
    font-size: clamp(11px, .85vw, 12.5px);
    line-height: 1.5;
    transition: color .18s ease;
}

#footer-legales a:hover { color: var(--lightgreen); }

@media (min-width: 992px) {
    #footer-legales { justify-content: flex-start; }
}

/* Cuerpo de texto legal: ancho de lectura y jerarquía */
.kamburian-legal { max-width: 46rem; }

.kamburian-legal-header {
    margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
    padding-bottom: clamp(1rem, 2vw, 1.5rem);
    border-bottom: 1px solid var(--k-line);
}

.kamburian-legal-header h1 { margin: 0; }

.kamburian-legal h2 {
    margin: clamp(1.75rem, 3.2vw, 2.5rem) 0 .75rem;
    color: var(--darkgreen);
    font-size: clamp(16px, 1.5vw, 21px);
    font-weight: 700;
    letter-spacing: -0.012em;
    line-height: 1.25;
}

.kamburian-legal h2:first-child { margin-top: 0; }

.kamburian-legal p,
.kamburian-legal li {
    color: rgba(25, 23, 24, .82);
    font-size: clamp(13.5px, 1.05vw, 15.5px);
    line-height: 1.65;
}

.kamburian-legal p { margin: 0 0 .9rem; }

.kamburian-legal ul {
    margin: 0 0 1.1rem;
    padding-left: 1.1rem;
    list-style: disc;
}

.kamburian-legal li { margin-bottom: .4rem; }

.kamburian-legal a {
    color: var(--green);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.kamburian-legal a:hover { color: var(--lightgreen); }

.kamburian-legal strong { color: var(--darkgreen); }

.kamburian-legal em {
    display: inline-block;
    margin-top: 1.5rem;
    color: rgba(25, 23, 24, .5);
    font-size: 12.5px;
}


.kamburian-register-hint {
    margin: 0 0 .5rem;
    padding: 0 calc(var(--bs-gutter-x, 1rem) * .5);
    color: rgba(25, 23, 24, .6);
    font-size: clamp(12px, .92vw, 13.5px);
    line-height: 1.5;
}


/*═══════════════════════════════════════════════════════════
  KAMBURIAN — v1.9.0
  Revisión de móvil y anchos intermedios.
  Paleta cromática intacta.
═══════════════════════════════════════════════════════════*/

/* ───────────────────────────────────────────────────────────
   1. BOTONES SOBRE LOS ESTILOS DE WOOCOMMERCE
   `.woocommerce button.button` tiene especificidad (0,2,1) y le
   ganaba a `.kb-btn--primary` (0,1,0): el botón de acceso salía
   gris con el estilo por defecto del plugin.
   ─────────────────────────────────────────────────────────── */
.kb-btn--primary,
.woocommerce .kb-btn--primary,
.woocommerce button.kb-btn--primary,
.woocommerce input.kb-btn--primary {
    background-color: var(--orange) !important;
    border-color: var(--orange) !important;
    color: #fff !important;
}

.kb-btn--primary:hover,
.woocommerce .kb-btn--primary:hover,
.woocommerce button.kb-btn--primary:hover {
    background-color: var(--lightgreen) !important;
    border-color: var(--lightgreen) !important;
}

.kb-btn--ghost,
.woocommerce .kb-btn--ghost {
    background-color: transparent !important;
    border-color: rgba(255, 255, 255, .45) !important;
    color: #fff !important;
}

.kb-btn--ghost:hover { background-color: rgba(255, 255, 255, .1) !important; border-color: #fff !important; }

.kb-btn--outline,
.woocommerce .kb-btn--outline {
    background-color: transparent !important;
    border-color: var(--darkgreen) !important;
    color: var(--darkgreen) !important;
}

.kb-btn--outline:hover {
    background-color: var(--darkgreen) !important;
    color: #fff !important;
}


/* ───────────────────────────────────────────────────────────
   2. IMÁGENES DE PRODUCTO SIN FOTO
   El placeholder de WooCommerce sale a tamaño completo y se
   comía una pantalla entera en la ficha, además de descuadrar
   las tarjetas del listado.
   ─────────────────────────────────────────────────────────── */
.kamburian-list-item img,
.kamburian-list-item .woocommerce-placeholder {
    height: clamp(112px, 11vw, 150px) !important;
    width: auto;
    max-width: 100%;
    margin: 0 auto;
    padding: 1.1rem 1rem .35rem;
    object-fit: contain;
}

.kamburian-single .woocommerce-product-gallery img,
.kamburian-single .woocommerce-placeholder {
    max-height: clamp(220px, 30vw, 420px);
    width: auto !important;
    margin: 0 auto;
    object-fit: contain;
}


/* ───────────────────────────────────────────────────────────
   3. BOTÓN FLOTANTE DE WHATSAPP
   Estaba centrado verticalmente con `top: 0; bottom: 0`, así que
   en pantallas angostas quedaba encima del contenido.
   ─────────────────────────────────────────────────────────── */
#floating-whatsapp {
    top: auto;
    bottom: clamp(14px, 3vw, 26px);
    margin: 0;
}


/* ───────────────────────────────────────────────────────────
   4. ANCHOS INTERMEDIOS (576–991)
   ─────────────────────────────────────────────────────────── */
@media screen and (min-width: 576px) and (max-width: 991px) {
    #home-slider { height: clamp(300px, 48vw, 400px); }

    /* El titular ocupa más proporción del ancho que en escritorio:
       el degradado se corre para acompañarlo. */
    #home-slider .slide::after {
        background: linear-gradient(
            to right,
            rgba(6, 57, 66, .94) 0%,
            rgba(6, 57, 66, .90) 24%,
            rgba(6, 57, 66, .78) 48%,
            rgba(6, 57, 66, .52) 68%,
            rgba(6, 57, 66, .22) 86%,
            rgba(6, 57, 66, .08) 100%
        );
    }

    .kamburian-banner__media::after {
        background: linear-gradient(
            to right,
            rgba(6, 57, 66, .93) 0%,
            rgba(6, 57, 66, .89) 26%,
            rgba(6, 57, 66, .74) 50%,
            rgba(6, 57, 66, .46) 72%,
            rgba(6, 57, 66, .18) 92%,
            rgba(6, 57, 66, .08) 100%
        );
    }

    .kamburian-banner__copy { max-width: 26rem; }

    /* El layout del header en este rango pasó a v1.11.1. */

    /* La ficha se apila: la foto no tiene por qué ocupar una pantalla */
    .kamburian-single .woocommerce-product-gallery { max-width: 26rem; margin: 0 auto 1.5rem; }
}


/* ───────────────────────────────────────────────────────────
   5. MÓVIL (≤575)
   ─────────────────────────────────────────────────────────── */
@media screen and (max-width: 575px) {

    /* La cabecera en móvil pasó a v1.11.1: logo, cuenta, carrito y
       menú en una línea, y el buscador en el segundo nivel. */

    /* 5.2 Hero: el bloque de texto no entraba cómodo en 226px */
    #home-slider { height: clamp(310px, 82vw, 400px); }

    #home-slider-copy { padding-right: .5rem; }

    /* 5.3 El texto de los botones del listado partía en dos líneas.
       Ver también el bloque hasta 767, donde las tarjetas son aún
       más angostas que en móvil. */
    .kamburian-list-item > .button,
    .kamburian-list-item > a.button {
        margin-left: .6rem;
        margin-right: .6rem;
        padding: .6em .5em !important;
        font-size: 11.5px !important;
        line-height: 1.25;
    }

    .kamburian-list-item .woocommerce-loop-product__title { font-size: 12.5px !important; }

    .kamburian-list-item .price { font-size: 15px; }

    .kamburian-list-item .fpx-15 { margin-left: .6rem; margin-right: .6rem; }

    /* 5.4 Ficha */
    .kamburian-single .woocommerce-product-gallery { padding: .9rem; }

    .kamburian-single .woocommerce-product-gallery img,
    .kamburian-single .woocommerce-placeholder { max-height: 240px; }

    /* 5.5 Alta: la nota quedaba pegada al encabezado siguiente */
    .kamburian-register-hint { margin-bottom: 1.1rem; }

    /* 5.6 Barra superior: menos alto, mismo mensaje */
    #header-top { font-size: 12px !important; line-height: 1.35; }
}


/* ───────────────────────────────────────────────────────────
   6. PANTALLAS MUY ANGOSTAS (≤380)
   ─────────────────────────────────────────────────────────── */
@media screen and (max-width: 380px) {
    #home-slider { height: clamp(300px, 88vw, 360px); }
    .kamburian-list-item > .button,
    .kamburian-list-item > a.button { font-size: 11px !important; }
}


/* ───────────────────────────────────────────────────────────
   7. TARJETAS ANGOSTAS HASTA 767
   Entre 576 y 767 la grilla pasa a dos columnas sin sidebar, que
   es donde la tarjeta queda más angosta de todo el rango.
   ─────────────────────────────────────────────────────────── */
@media screen and (max-width: 767px) {
    .kamburian-list-item > .button,
    .kamburian-list-item > a.button {
        padding: .62em .5em !important;
        font-size: 12px !important;
        line-height: 1.25;
    }

    .kamburian-list-item .woocommerce-loop-product__title { font-size: 13px !important; }
}


/* ───────────────────────────────────────────────────────────
   8. HERO DE NOSOTROS
   Mismo tratamiento que el de la home y el banner de tienda:
   foto a sangre, degradado de izquierda a derecha y titular en
   texto. La foto (about-kamburian.webp) es clara —cajas beige—,
   así que el degradado arranca denso.
   ─────────────────────────────────────────────────────────── */
.content#about { padding-top: var(--k-header-h); }

#about-hero {
    position: relative;
    height: clamp(260px, 33vw, 440px);
    overflow: hidden;
}

#about-hero > img {
    height: 100%;
    object-fit: cover;
    object-position: center;
}

#about-hero::after {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(
        to right,
        rgba(6, 57, 66, .94) 0%,
        rgba(6, 57, 66, .88) 18%,
        rgba(6, 57, 66, .74) 40%,
        rgba(6, 57, 66, .46) 62%,
        rgba(6, 57, 66, .14) 80%,
        rgba(6, 57, 66, 0) 92%
    );
    content: '';
    pointer-events: none;
}

#about-hero > .container-lg { z-index: 2; }

#about-hero-copy {
    max-width: 44rem;
    text-shadow: 0 1px 24px rgba(6, 57, 66, .35);
}

@media screen and (min-width: 576px) and (max-width: 991px) {
    #about-hero { height: clamp(280px, 42vw, 360px); }

    #about-hero::after {
        background: linear-gradient(
            to right,
            rgba(6, 57, 66, .94) 0%,
            rgba(6, 57, 66, .90) 24%,
            rgba(6, 57, 66, .78) 48%,
            rgba(6, 57, 66, .52) 68%,
            rgba(6, 57, 66, .22) 86%,
            rgba(6, 57, 66, .08) 100%
        );
    }
}

@media screen and (max-width: 575px) {
    #about-hero { height: clamp(230px, 60vw, 300px); }

    #about-hero::after {
        background: linear-gradient(
            180deg,
            rgba(6, 57, 66, .70) 0%,
            rgba(6, 57, 66, .86) 50%,
            rgba(6, 57, 66, .92) 100%
        );
    }
}


/* ───────────────────────────────────────────────────────────
   9. MIGA DE PAN
   Además de orientar, es lo que Google usa para reemplazar la
   URL cruda en el resultado de búsqueda por la ruta de
   categorías. Va junto al BreadcrumbList de functions.php.
   ─────────────────────────────────────────────────────────── */
.kamburian-breadcrumb {
    margin-bottom: clamp(.85rem, 1.8vw, 1.4rem);
    font-size: clamp(11.5px, .9vw, 13px);
    line-height: 1.4;
}

.kamburian-breadcrumb ol {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .3rem .55rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.kamburian-breadcrumb li {
    display: flex;
    align-items: center;
    gap: .55rem;
    color: rgba(25, 23, 24, .55);
}

.kamburian-breadcrumb li + li::before {
    color: rgba(25, 23, 24, .3);
    content: '/';
}

.kamburian-breadcrumb a {
    color: rgba(25, 23, 24, .62);
    transition: color .18s ease;
}

.kamburian-breadcrumb a:hover { color: var(--green); }

.kamburian-breadcrumb [aria-current="page"] {
    color: var(--darkgreen);
    font-weight: 600;
}

/* En la ficha, la miga va antes del bloque de producto */
.single-product .kamburian-breadcrumb { margin-bottom: clamp(1rem, 2.2vw, 1.75rem); }


/*═══════════════════════════════════════════════════════════
  KAMBURIAN — v1.11.1
  Header: íconos parejos, saludo con nombre y reordenado
  del móvil. Paleta cromática intacta.
═══════════════════════════════════════════════════════════*/

/* ───────────────────────────────────────────────────────────
   1. ÍCONOS DE CUENTA Y CARRITO
   Eran de familias distintas: `circle-user` venía en el estilo
   regular (trazo fino) y `cart-shopping` en solid (macizo), así
   que a diez píxeles de distancia se veían de dos pesos.
   Font Awesome Free no trae carrito en regular, así que los dos
   pasan a solid: misma familia, mismo peso, misma caja óptica.
   ─────────────────────────────────────────────────────────── */
#header-shop .kb-ico {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5em;
    height: 1.5em;
    flex: 0 0 auto;
    font-size: 1.5em;
    line-height: 1;
}

/* Font Awesome corre en modo SVG+JS: el <i> se reemplaza por un
   <svg>, que hay que encuadrar igual que el glifo. */
#header-shop .kb-ico i,
#header-shop .kb-ico svg {
    display: block;
    width: 1em;
    height: 1em;
    font-size: inherit;
    line-height: 1;
}

#header-shop .kb-ico svg { color: inherit; }

#header-shop .kb-ico.is-logged { color: var(--green); }

#header-shop .account-link,
#header-shop .cart-link {
    display: inline-flex;
    align-items: center;
    gap: .5em;
    color: var(--darkgreen);
    font-size: clamp(12.5px, .94vw, 14px);
    font-weight: 500;
    line-height: 1;
    white-space: nowrap;
    transition: color .18s ease;
}

#header-shop .account-link:hover,
#header-shop .cart-link:hover { color: var(--lightgreen); }

#header-shop .account-link:hover .kb-ico.is-logged { color: var(--lightgreen); }

/* El saludo puede traer un nombre largo: no debe empujar el carrito */
#header-shop .account-label {
    max-width: 11rem;
    overflow: hidden;
    text-overflow: ellipsis;
}

#header-shop .cart-count {
    position: absolute;
    top: -.28em;
    right: -.42em;
    min-width: 1.35em;
    height: 1.35em;
    padding: 0 .3em;
    border-radius: 999px;
    background: var(--orange);
    color: #fff;
    font-size: .45em;
    font-weight: 700;
    line-height: 1.35em;
    text-align: center;
    transform: none;
}


/* ───────────────────────────────────────────────────────────
   2. HEADER EN ESCRITORIO
   El buscador salió de #header-shop y pasó a ser hermano del
   logo, para poder bajarlo a una segunda fila en móvil. Acá se
   lo vuelve a pegar al grupo de la derecha.
   ─────────────────────────────────────────────────────────── */
#header-search { display: flex; align-items: center; }

@media screen and (min-width: 992px) {
    /* v1.12.3 — Al sacar el buscador de #header-shop quedaron cuatro
       bloques en la fila y `margin-left: auto` en el buscador absorbía
       todo el espacio libre: el menú terminaba pegado al logo.
       Los márgenes automáticos van en el menú, que así queda centrado
       en el hueco entre el logo y el buscador. */
    #nav {
        margin-left: auto;
        margin-right: auto;
    }

    #header-search { margin-right: clamp(1rem, 2vw, 1.75rem); }
}

#header-shop {
    display: flex;
    align-items: center;
    gap: clamp(.9rem, 1.8vw, 1.6rem);
}


/* ───────────────────────────────────────────────────────────
   3. HEADER EN MÓVIL
   Antes: logo y hamburguesa arriba; buscador, cuenta y carrito
   abajo. Ahora los tres accesos comparten línea con el logo y
   con la hamburguesa, y el buscador queda solo en el segundo
   nivel, a todo el ancho.
   ─────────────────────────────────────────────────────────── */
@media screen and (max-width: 991px) {
    #header-bottom > .container-lg {
        height: auto !important;
        flex-wrap: wrap;
        align-items: center;
        row-gap: .7rem;
    }

    /* `margin-right: auto` en el logo empujaba al resto a la línea
       siguiente: en un contenedor con wrap, un margen automático
       consume todo el espacio libre de la línea. El empuje va en el
       último elemento, no en el primero. */
    #logo { order: 1; }

    #header-shop { order: 2; margin-left: auto; }

    /* Sin `order` el botón cae en 0 y se dibuja antes que el logo. */
    #kb-menu-toggle { order: 3; }

    /* v1.12.1 — El buscador pasó al menú: la cabecera vuelve a una
       sola línea y recupera unos 55px de alto útil. */
    #header-search { display: none !important; }

    /* El menú móvil pasó a ser un panel a pantalla completa (v1.12.0). */
}

@media screen and (max-width: 575px) {
    :root { --k-header-h: 104px; }

    #header-bottom { height: auto; padding: .7rem 0 .75rem; }

    /* Más presencia para el logo, que quedaba diminuto */
    #logo { width: clamp(140px, 40vw, 168px); }

    #header-shop { gap: 1.15rem; }

    /* Las etiquetas ya están ocultas por `d-none d-lg-inline-block`;
       colapsar la tipografía del enlace haría desaparecer también el
       ícono si el markup cambiara. */
    #header-shop .kb-ico { font-size: 1.65rem; }

    #header-shop .cart-count { font-size: 9.5px; }

}

@media screen and (max-width: 380px) {
    #logo { width: clamp(128px, 38vw, 148px); }
    #header-shop { gap: .95rem; }
}


/*═══════════════════════════════════════════════════════════
  KAMBURIAN — v1.12.0
  Menú móvil a pantalla completa.
  Reemplaza al desplegable de slicknav, una solapa de 195px
  colgando del botón que se leía como un error de maquetado.
  Paleta cromática intacta.
═══════════════════════════════════════════════════════════*/

/* slicknav ya no se inicializa; por si quedara alguna sobra */
.slicknav_menu { display: none !important; }

@media screen and (min-width: 992px) {
    #kb-menu, #kb-menu-toggle { display: none !important; }
}


/* ── Botón ─────────────────────────────────────────────── */
#kb-menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 2.6rem;
    height: 2.6rem;
    margin-left: .35rem;
    padding: 0;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--darkgreen);
    cursor: pointer;
    transition: background-color .18s ease;
}

#kb-menu-toggle:hover { background: rgba(6, 57, 66, .06); }

.kb-burger {
    position: relative;
    display: block;
    width: 22px;
    height: 15px;
}

.kb-burger span {
    position: absolute;
    left: 0;
    display: block;
    width: 100%;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    transition: transform .26s ease, opacity .18s ease, top .26s ease;
}

.kb-burger span:nth-child(1) { top: 0; }
.kb-burger span:nth-child(2) { top: 6.5px; }
.kb-burger span:nth-child(3) { top: 13px; }

/* Se transforma en cruz mientras el panel está abierto */
#kb-menu-toggle.is-open .kb-burger span:nth-child(1) { top: 6.5px; transform: rotate(45deg); }
#kb-menu-toggle.is-open .kb-burger span:nth-child(2) { opacity: 0; }
#kb-menu-toggle.is-open .kb-burger span:nth-child(3) { top: 6.5px; transform: rotate(-45deg); }


/* ── Panel ─────────────────────────────────────────────── */
body.kb-menu-abierto { overflow: hidden; }

#kb-menu {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(6, 57, 66, 0);
    opacity: 0;
    transition: opacity .26s ease, background-color .26s ease;
}

#kb-menu[hidden] { display: none; }

#kb-menu.is-open {
    background: rgba(6, 57, 66, .45);
    opacity: 1;
}

.kb-menu__panel {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 26rem;
    height: 100%;
    height: 100dvh;
    margin-left: auto;
    padding: 1.15rem 1.35rem 1.6rem;
    overflow-y: auto;
    background: var(--light);
    box-shadow: -24px 0 60px -30px rgba(6, 57, 66, .8);
    transform: translateX(100%);
    transition: transform .28s cubic-bezier(.32, .72, 0, 1);
    -webkit-overflow-scrolling: touch;
}

#kb-menu.is-open .kb-menu__panel { transform: translateX(0); }

/* En teléfonos ocupa todo el ancho: no es una solapa, es una pantalla */
@media screen and (max-width: 575px) {
    .kb-menu__panel { max-width: none; }
}


/* ── Encabezado del panel ──────────────────────────────── */
.kb-menu__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1.1rem;
    border-bottom: 1px solid var(--k-line);
}

.kb-menu__brand img { display: block; width: 132px; height: auto; }

.kb-menu__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    padding: 0;
    border: 1px solid var(--k-line);
    border-radius: 9px;
    background: #fff;
    color: var(--darkgreen);
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
    transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}

.kb-menu__close:hover {
    background: var(--darkgreen);
    border-color: var(--darkgreen);
    color: #fff;
}


/* ── Buscador dentro del panel ─────────────────────────── */
.kb-menu__search { padding: 1.15rem 0 .35rem; }

.kb-menu__search .aws-container,
.kb-menu__search .aws-container .aws-search-form {
    width: 100%;
    height: 46px;
    border: 1px solid var(--k-line);
    border-radius: 9px;
    overflow: hidden;
    background: #fff;
    transition: border-color .18s ease, box-shadow .18s ease;
}

.kb-menu__search .aws-container .aws-search-form input {
    font-size: 15px;
    color: var(--darkgreen);
}

/* Los resultados en vivo no deben quedar tapados por el panel */
.kb-menu__search .aws-search-result { z-index: 1010; }


/* ── Navegación principal ──────────────────────────────── */
.kb-menu__nav {
    display: flex;
    flex-direction: column;
    padding: .5rem 0;
}

.kb-menu__nav a {
    display: block;
    padding: .78rem 0;
    border-bottom: 1px solid var(--k-line-soft);
    color: var(--darkgreen);
    font-size: clamp(17px, 4.6vw, 21px);
    font-weight: 700;
    letter-spacing: -0.018em;
    line-height: 1.25;
    transition: color .18s ease, padding-left .18s ease;
}

.kb-menu__nav a:hover,
.kb-menu__nav a:focus-visible { color: var(--green); padding-left: .35rem; }


/* ── Pie del panel ─────────────────────────────────────── */
.kb-menu__foot {
    display: flex;
    flex-direction: column;
    gap: .6rem;
    margin-top: auto;
    padding-top: 1.5rem;
}

.kb-menu__foot .kb-btn { width: 100%; }

/* Sobre el fondo claro del panel, el contorno blanco no se vería */
.kb-menu__foot .kb-btn--ghost,
.woocommerce .kb-menu__foot .kb-btn--ghost {
    border-color: var(--darkgreen) !important;
    color: var(--darkgreen) !important;
}

.kb-menu__foot .kb-btn--ghost:hover {
    background-color: var(--darkgreen) !important;
    color: #fff !important;
}

.kb-menu__wa {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5em;
    margin-top: .35rem;
    color: var(--green);
    font-size: clamp(12.5px, 3.4vw, 14px);
    font-weight: 600;
}

.kb-menu__wa:hover { color: var(--lightgreen); }

.kb-menu__wa i,
.kb-menu__wa svg { width: 1.15em; height: 1.15em; font-size: 1.15em; }


@media (prefers-reduced-motion: reduce) {
    #kb-menu,
    .kb-menu__panel,
    .kb-burger span { transition: none !important; }
}


/*═══════════════════════════════════════════════════════════
  KAMBURIAN — v1.12.2
═══════════════════════════════════════════════════════════*/

/* ───────────────────────────────────────────────────────────
   CENTRADO DEL CONTENIDO EN LA BANDA CLARA
   `#header-bottom` calculaba su alto restando 44px fijos a la
   altura del header, pero la barra verde de arriba mide 30. Los
   14px sobrantes quedaban vacíos abajo y el logo, los accesos y
   el menú se apoyaban 11px por encima del centro de la banda.
   Peor todavía: ese 44 deja de valer apenas cambia el cuerpo de
   texto del aviso de envío, o si el texto pasa a dos líneas.

   Se reemplaza el cálculo por reparto flexible: la barra verde
   ocupa lo suyo y la banda clara se queda con el resto, sea
   cual sea.
   ─────────────────────────────────────────────────────────── */
#header {
    display: flex;
    flex-direction: column;
}

#header-top { flex: 0 0 auto; }

#header-bottom {
    display: flex;
    align-items: center;
    flex: 1 1 auto;
    height: auto !important;
    min-height: 0;
}

/* Centrado explícito: no depende de que el contenido llene la
   banda ni de que quepa en una sola línea. `align-content` cubre
   el caso de dos filas, donde `align-items` centraría dentro de
   cada línea pero dejaría el bloque pegado arriba. */
#header-bottom > .container-lg {
    width: 100%;
    height: auto;
    align-items: center;
    align-content: center;
}

/* El logo era inline y arrastraba el espacio de la línea base,
   que descentraba unos píxeles más. */
#logo { display: flex; align-items: center; }

#logo img { display: block; }

@media screen and (max-width: 991px) {
    /* Con el buscador fuera, la cabecera es una sola línea: el
       reparto flexible ya centra, sin padding propio que corrija. */
    #header-bottom {
        padding-top: 0;
        padding-bottom: 0;
    }

    #header-bottom > .container-lg { row-gap: 0; }
}


/* ───────────────────────────────────────────────────────────
   BANNERS ADMINISTRABLES (v1.14.0)
   Hero de la home y banner de la tienda cargados desde
   Banners (ACF). Son sólo imagen: se muestran enteras, a su
   proporción, sin recorte ni degradado, porque el texto (si lo
   hay) viene dentro de la imagen. Con más de una, slick.
   ─────────────────────────────────────────────────────────── */
.kamburian-hero { position: relative; }

.kamburian-hero__slide a,
.kamburian-hero__slide picture { display: block; }

.kamburian-hero__img {
    display: block;
    width: 100%;
    height: auto;
}

.kamburian-hero--tienda {
    overflow: hidden;
    border-radius: var(--k-radius);
}

/* Antes de que slick arranque se ve sólo la primera. */
.kamburian-hero.is-slider:not(.slick-initialized) .kamburian-hero__slide + .kamburian-hero__slide { display: none; }

.kamburian-hero .slick-dots {
    position: absolute;
    left: 0;
    right: 0;
    bottom: clamp(.5rem, 1.6vw, 1.25rem);
    display: flex;
    justify-content: center;
    gap: .5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.kamburian-hero .slick-dots li { display: flex; }

.kamburian-hero .slick-dots button {
    width: 10px;
    height: 10px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .6);
    box-shadow: 0 0 0 1px rgba(6, 57, 66, .25);
    font-size: 0;
    cursor: pointer;
    transition: background-color .2s ease, transform .2s ease;
}

.kamburian-hero .slick-dots .slick-active button {
    background: var(--lightgreen);
    transform: scale(1.2);
}

/* En la home la tarjeta de destacados pisa el borde inferior del
   hero: los puntos van a la derecha, en columna. */
.kamburian-hero--home .slick-dots {
    top: 50%;
    bottom: auto;
    left: auto;
    right: clamp(.6rem, 2vw, 1.5rem);
    flex-direction: column;
    transform: translateY(-50%);
}
