/* =======================================
GLOBAL BASE STYLES
======================================= */
:root {
--primary-dark: #002147;
--primary-light: #2a4a75;
--accent-red: #d90016;
--bg-white: #ffffff;
--bg-soft: #f8fafc;
--text-main: #000000;
--text-secondary: #4d4d4d;
--border: #e0e0e0;
--shadow-soft: 0 2px 8px rgba(0,0,0,0.05);
--glass-bg: rgba(255, 255, 255, 0.85);
--font-sans: 'Inter', sans-serif;
--font-serif: 'Playfair Display', serif;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: var(--font-sans);
background: var(--bg-white);
color: var(--text-main);
line-height: 1.6;
overflow-x: hidden;
padding-top: 90px; /* â† Esto es clave: evita que navbar tape el contenido */
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
/* =======================================
NAVBAR - ESTILO PREMIUM (inspirado en Peet's Coffee, adaptado a tu paleta)
======================================= */
.navbar-container {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 1000;
background: var(--bg-white);
height: 90px;
display: flex;
align-items: center;
/* Solo transicionar box-shadow y background, nunca border */
transition: transform 0.4s ease, opacity 0.4s ease;
border-bottom: none;
}
.navbar-container.scrolled {
border-bottom: none;
filter: drop-shadow(0 2px 8px rgba(0,0,0,0.08));
background: #fff;
}
.navbar {
width: 100%;
max-width: 1400px;
margin: 0 auto;
padding: 0 40px;
display: flex;
justify-content: space-between;
align-items: center;
height: 100%;
}
@media (max-width: 576px) {
.navbar { padding: 0 18px; }
}
.logo picture,
.logo img {
height: 55px;
width: auto;
display: block;
transition: transform 0.3s ease;
}
.logo picture:hover img,
.logo img:hover {
transform: scale(1.05);
}
.nav-links {
display: flex;
gap: 50px;
list-style: none;
margin: 0;
}
.nav-links li a {
color: var(--text-main);
text-decoration: none;
font-family: var(--font-sans);
font-weight: 500;
font-size: 1.05rem;
position: relative;
transition: opacity 0.2s ease;
display: inline-flex;
align-items: center;
min-height: 44px;
padding: 4px 0;
}
.nav-links li a::after {
content: '';
position: absolute;
width: 100%;
height: 2px;
bottom: -6px;
left: 0;
background: var(--primary-dark);
transform: scaleX(0);
transform-origin: left center;
transition: transform 0.35s cubic-bezier(.4,0,.2,1);
}
.nav-links li a:hover::after {
transform: scaleX(1);
}
.nav-links li a:hover {
color: var(--primary-dark);
}
.btn-cotizar {
/* Círculo fijo — nada puede cambiar width/height */
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
width: 46px !important;
height: 46px !important;
min-width: 46px !important;
min-height: 46px !important;
max-width: 46px !important;
max-height: 46px !important;
border-radius: 50% !important;
background: #25D366;
text-decoration: none;
transition: transform 0.18s ease;
box-shadow: 0 4px 14px rgba(37,211,102,0.38);
flex-shrink: 0;
/* Neutralizar cualquier herencia de color de hover del li padre */
color: transparent !important;
}
.btn-cotizar svg {
width: 24px;
height: 24px;
min-width: 24px;
min-height: 24px;
fill: #fff;
/* inline-flex ya centra, display:inline evita que ocupe toda la línea */
display: inline;
pointer-events: none;
}
.btn-cotizar:hover,
.btn-cotizar:active {
transform: scale(1.08);
background: #25D366 !important;
color: transparent !important;
}
/* Hamburguesa mÃ³vil */
.menu-toggle {
display: none;
flex-direction: column;
gap: 6px;
cursor: pointer;
}
.menu-toggle span {
width: 28px;
height: 3px;
background: var(--text-main);
border-radius: 2px;
transition: transform 0.4s ease, opacity 0.4s ease;
}
.menu-toggle.open span:nth-child(1) {
transform: rotate(45deg) translate(6px, 6px);
}
.menu-toggle.open span:nth-child(2) {
opacity: 0;
}
.menu-toggle.open span:nth-child(3) {
transform: rotate(-45deg) translate(6px, -6px);
}
/* Responsive */
@media (max-width: 992px) {
/* Menu container — clip overflow for cascade effect */
.nav-links {
position: absolute;
top: 100%;
left: 0;
right: 0;
background: white;
flex-direction: column;
gap: 0;
padding: 0;
box-shadow: 0 12px 32px rgba(0,33,71,0.13);
border-radius: 0 0 16px 16px;
/* Cascade: clip height from 0 to auto */
overflow: hidden;
transform: scaleY(0);
transform-origin: top center;
transition: transform 0.30s cubic-bezier(.4,0,.2,1),
            opacity 0.25s ease;
opacity: 0;
display: flex !important;
pointer-events: none;
}
.nav-links.active {
transform: scaleY(1);
opacity: 1;
pointer-events: auto;
}
/* Each li slides + fades in with staggered delay */
.nav-links li {
opacity: 0;
transform: translateY(0);
transition: opacity 0.22s ease, transform 0.22s ease;
}
.nav-links li a {
display: block;
padding: 13px 20px;
font-size: 1.05rem;
text-align: center;
}
/* Stagger delays for opening — items appear top-down */
.nav-links.active li:nth-child(1) { opacity: 1; transform: none; transition-delay: 0.06s; }
.nav-links.active li:nth-child(2) { opacity: 1; transform: none; transition-delay: 0.12s; }
.nav-links.active li:nth-child(3) { opacity: 1; transform: none; transition-delay: 0.18s; }
.nav-links.active li:nth-child(4) { opacity: 1; transform: none; transition-delay: 0.24s; }
.nav-links.active li:nth-child(5) { opacity: 1; transform: none; transition-delay: 0.30s; }
.menu-toggle {
display: flex;
}
}

/* ═══════════════════════════════════════════════════════════════
   MOBILE MENU — CASCADA ANIMADA
   Separado del nav desktop para control total de la animación
   ═══════════════════════════════════════════════════════════════ */
.desktop-only {
display: inline-block;
}
.mobile-menu {
overflow: hidden;
background: #fff;
transform: scaleY(0);
transform-origin: top center;
transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1),
            opacity 0.28s ease;
opacity: 0;
position: absolute;
left: 0;
right: 0;
top: 100%;
box-shadow: 0 14px 24px -6px rgba(0,0,0,0.08);
border-radius: 0 0 20px 20px;
z-index: 999;
pointer-events: none;
border-top: none;
}
.mobile-menu.open {
transform: scaleY(1);
opacity: 1;
pointer-events: auto;
}
.mobile-menu-list {
list-style: none;
margin: 0;
padding: 12px 0 20px;
}
.mobile-menu-list li {
opacity: 0;
transform: translateY(0);
transition: opacity 0.2s ease, transform 0.2s ease;
/* No borders — clean look */
border: none;
}
.mobile-menu-list li a {
display: block;
padding: 14px 28px;
color: var(--text-main);
text-decoration: none;
font-family: var(--font-sans);
font-weight: 500;
font-size: 1.08rem;
text-align: center;
transition: opacity 0.2s;
border-radius: 10px;
margin: 0 16px;
}
.mobile-menu-list li a:hover {
color: var(--primary-dark);
background: rgba(0,33,71,0.04);
}
/* Stagger — items drop in top→down on open */
.mobile-menu.open li:nth-child(1) { opacity: 1; transform: none; transition-delay: 0.04s; }
.mobile-menu.open li:nth-child(2) { opacity: 1; transform: none; transition-delay: 0.10s; }
.mobile-menu.open li:nth-child(3) { opacity: 1; transform: none; transition-delay: 0.16s; }
.mobile-menu.open li:nth-child(4) { opacity: 1; transform: none; transition-delay: 0.22s; }
.mobile-menu.open li:nth-child(5) { opacity: 1; transform: none; transition-delay: 0.28s; }
/* CTA inside mobile menu */
.mobile-cta {
border: none !important;
padding: 10px 20px 22px;
display: flex;
justify-content: center;
}
/* Ensure the WhatsApp button stays circular in mobile menu */
.mobile-cta .btn-cotizar {
/* Neutralizar herencia de mobile-menu-list li a */
display: inline-flex !important;
width: 46px !important;
height: 46px !important;
min-width: 46px !important;
min-height: 46px !important;
max-width: 46px !important;
max-height: 46px !important;
border-radius: 50% !important;
padding: 0 !important;          /* li a tiene padding 14px 28px — lo aplana */
margin: 0 !important;
font-size: 0 !important;        /* evita que texto invisible ocupe espacio */
line-height: 1 !important;
/* Transición suave igual que en PC — sobreescribe color 0.2s del li a */
transition: transform 0.18s ease !important;
}
@media (min-width: 993px) {
.mobile-menu { display: none !important; }
.menu-toggle  { display: none !important; }
}
@media (max-width: 992px) {
.desktop-only { display: none !important; }
.menu-toggle  { display: flex; }
}

/* =======================================
FOOTER - FULL WIDTH (toca los bordes laterales)
======================================= */
.footer {
width: 100vw;
margin-left: calc(-50vw + 50%);
margin-right: calc(-50vw + 50%);
background: linear-gradient(135deg, var(--primary-dark), #0a1426);
color: white;
padding: 80px 0 40px;
text-align: center;
}
.footer-content {
max-width: 1200px;
margin: 0 auto 40px;
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
gap: 40px;
padding: 0 24px;
}
.footer-logo-img {
height: 44px;
width: auto;
filter: brightness(0) invert(1);
}
.footer-links {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 4px 0;
}
.footer-links a {
color: rgba(255,255,255,0.8);
margin: 0 20px;
text-decoration: none;
}
.footer-links a:hover {
color: var(--accent-red);
}
.footer-copyright {
width: 100%;
text-align: center;
padding: 0 24px;
}
@media (max-width: 640px) {
.footer {
padding: 48px 0 32px;
}
.footer-content {
flex-direction: column;
align-items: center;
text-align: center;
gap: 24px;
padding: 0 20px;
}
.footer-links {
flex-direction: column;
align-items: center;
gap: 12px;
}
.footer-links a {
margin: 0;
font-size: .95rem;
}
.footer-copyright {
font-size: .82rem;
opacity: .7;
padding: 0 16px;
}
}
/* =======================================
OLA AZUL (pegada a los bordes y visible sobre hero)
======================================= */
.wave-divider {
width: 100vw;
margin-left: calc(-50vw + 50%);
margin-right: calc(-50vw + 50%);
position: relative;
height: 340px;
margin-top: -100px;
z-index: 3;
}
.wave-divider svg {
position: absolute;
bottom: 0;
width: 100%;
height: 100%;
}
/* =======================================
FONDO AZUL CONTINUO DEBAJO DE CATEGORÃAS Y MÃS (toca bordes laterales)
======================================= */
.blue-bg-extend {
width: 100vw;
margin-left: calc(-50vw + 50%);
margin-right: calc(-50vw + 50%);
background: var(--primary-dark);
color: white;
padding: 60px 0 180px 0;
margin-top: -60px;
}
/* =======================================
CATEGORÃAS - TÃ­tulo ajustado a 2.5rem + tarjetas en cÃ­rculo blanco
======================================= */
.categories-section {
padding: 60px 5% 40px;
background: transparent;
text-align: center;
margin-top: -80px; /* â† Ajustado para que el tÃ­tulo no quede enterrado debajo del azul */
position: relative;
z-index: 4; /* â† Subido z-index para que quede por encima del azul extendido */
}
.section-title-cat {
font-family: var(--font-serif);
font-size: 2.5rem;
font-weight: 700;

letter-spacing: 3px;
color: white;
margin-bottom: 50px;
display: block;
position: relative;
z-index: 5; /* â† MÃ¡ximo z-index para garantizar que el tÃ­tulo sea visible */
}
/* Restaurar cÃ­rculo blanco en tarjetas de categorÃ­as */
.tile-image {
width: 140px;
height: 140px;
margin: 0 auto 16px;
border-radius: 50%;
overflow: hidden;
background: #ffffff;
border: 1px solid var(--border);
box-shadow: 0 4px 14px rgba(0,0,0,0.05);
transition: transform 0.28s ease;
}
.tile-image img {
width: 100%;
height: 100%;
object-fit: contain;
aspect-ratio: 1 / 1;
display: block;
}
/* =======================================
PROMO SECTION - Estilo premium corregido
======================================= */
.promo-section {
padding: 60px 20px 100px;
background: #ffffff;
display: flex;
justify-content: center;
}
.promo-box {
width: 100%;
max-width: 1400px;
display: flex;
background: #0A1930;
border-radius: 40px;
overflow: hidden;
min-height: 460px;
position: relative;
box-shadow: 0 25px 50px -12px rgba(0,0,0,0.25);
}
.promo-info {
flex: 1;
min-width: 40%;
padding: 60px 20px 60px 80px;
color: #ffffff;
z-index: 10;
display: flex;
flex-direction: column;
justify-content: center;
background: #0A1930;
}
.promo-info h2 {
font-family: var(--font-serif);
font-size: 3rem;
margin-bottom: 20px;
line-height: 1.1;
color: #ffffff;
}
.promo-info p {
font-family: var(--font-sans);
opacity: 0.9;
margin-bottom: 35px;
font-size: 1.15rem;
max-width: 480px;
line-height: 1.6;
}
.promo-divider {
width: 450px;
background: #0A1930;
transform: skewX(-12deg);
z-index: 5;
margin-left: -250px;
position: relative;
border-left: 2px solid rgba(255,255,255,0.1);
}
.promo-visual {
flex: 0 0 50%;
margin-left: -150px;
z-index: 1;
overflow: hidden;
display: flex;
align-items: stretch;
justify-content: stretch;
position: relative;
}
.promo-visual img,
.promo-visual picture,
.promo-visual picture img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center center;
display: block;
filter: brightness(0.9);
position: absolute;
inset: 0;
}
.promo-visual picture {
position: absolute;
inset: 0;
}
/* CÃ³digo de Descuento y BotÃ³n (sin cambios) */
.promo-code {
display: inline-flex;
align-items: center;
background: rgba(255, 255, 255, 0.08);
border: 1px dashed rgba(255, 255, 255, 0.4);
padding: 14px 24px;
border-radius: 12px;
margin-bottom: 30px;
width: fit-content;
}
.promo-code span {
font-size: 0.85rem;
letter-spacing: 1px;
margin-right: 10px;
}
.promo-code strong {
font-family: var(--font-sans);
font-size: 1.4rem;
color: #ffffff;
font-weight: 800;
}
.btn-start {
background: #ffffff;
color: #0A1930;
padding: 18px 40px;
border-radius: 14px;
font-weight: 700;
border: none;
cursor: pointer;
transition: transform 0.3s ease;
width: fit-content;
text-transform: uppercase;
font-size: 0.9rem;
letter-spacing: 0.5px;
text-decoration: none;
display: inline-block;
}
.btn-start:hover {
transform:none;
box-shadow: 0 12px 25px rgba(0,0,0,0.3);
background: #f8f8f8;
}
/* RESPONSIVE promo (sin cambios) */
@media (max-width: 1024px) {
.promo-info { padding-left: 50px; }
.promo-info h2 { font-size: 2.4rem; }
}
@media (max-width: 850px) {
.promo-section { padding: 30px 15px 50px; }

/* Grid de 2 filas: imagen arriba (altura fija), contenido abajo (altura libre).
   display:grid es la única forma de garantizar que la fila de contenido
   crezca con su contenido sin ser recortada por overflow:hidden del padre. */
.promo-box {
    display: grid;
    grid-template-rows: 230px auto;
    grid-template-columns: 1fr;
    border-radius: 28px;
    overflow: hidden;       /* clip limpio en los bordes redondeados */
    min-height: 0;
    width: 100%;
}
.promo-divider { display: none; }

/* Imagen — fila 1, altura fija por grid-template-rows */
.promo-visual {
    grid-row: 1;
    grid-column: 1;
    margin-left: 0;
    position: relative;     /* contiene la img absolute */
    overflow: hidden;
    width: 100%;
}
.promo-visual img,
.promo-visual picture,
.promo-visual picture img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 25%; /* muestra zona superior de la imagen */
}
.promo-visual picture {
    position: absolute;
    inset: 0;
}

/* Contenido — fila 2, altura la dicta el texto + botón */
.promo-info {
    grid-row: 2;
    grid-column: 1;
    padding: 36px 28px 48px;
    text-align: center;
    align-items: center;
    /* No flex-shrink ni overflow:hidden — crece siempre con su contenido */
}

.promo-info h2 { font-size: 2rem; }
.promo-code { flex-direction: row !important; gap: 10px; }
.btn-start {
    width: auto;
    min-width: 200px;
    display: inline-block; /* garantiza visibilidad aunque el padre sea flex */
}
}

@media (max-width: 576px) {
.promo-box { grid-template-rows: 200px auto; }
.promo-info { padding: 28px 20px 44px; }
.promo-info h2 { font-size: 1.6rem; }
.promo-info p { font-size: 0.95rem; }
.promo-code { padding: 10px 14px; }
.promo-code strong { font-size: 1rem; }
.btn-start { min-width: 160px; padding: 14px 28px; }
}
/* =======================================
BLOG PREVIEW - Imagen pegada arriba (sin espacio blanco con azul) + overlay blanco + tÃ­tulos dentro
======================================= */
.blog-preview-container {
width: 100vw;
margin-left: calc(-50vw + 50%);
margin-right: calc(-50vw + 50%);
padding-top: 0;
background: var(--bg-white);
position: relative;
z-index: 2;
}
.blog-header-image-wrapper {
position: relative;
width: 100%;
height: 420px;
overflow: hidden;
}
.blog-header-image {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
filter: brightness(.52);
}
.blog-header-section {
position: absolute;
inset: 0;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
padding: 0 20px;
color: #fff;
pointer-events: none;
}
.blog-overline {
font-family: var(--font-sans);
font-size: .85rem;
text-transform: uppercase;
letter-spacing: 3px;
opacity: .85;
margin-bottom: 12px;
color: #fff;
}
.blog-main-title {
font-family: var(--font-serif);
font-size: 3.2rem;
font-weight: 700;
margin: 0;
line-height: 1.1;
color: #fff;
}
@media (max-width: 640px) {
.blog-header-image-wrapper { height: 260px; }
.blog-main-title { font-size: 2rem; }
}
/* Blog action footer */
.blog-action-footer {
text-align: center;
padding: 40px 0 60px;
}
.link-view-all {
font-family: var(--font-sans);
font-weight: 700;
color: var(--primary-dark);
text-decoration: none;
font-size: 1rem;
letter-spacing: .3px;
border-bottom: 2px solid currentColor;
padding-bottom: 2px;
}
.link-view-all:hover { opacity: .7; }
.blog-posts-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 32px;
max-width: 1200px;
margin: 60px auto 0;
padding: 0 24px;
}
@media (max-width: 640px) {
.blog-posts-grid {
  grid-template-columns: 1fr;
  gap: 24px;
  padding: 0 16px;
  margin: 40px auto 0;
}
}
.blog-card-item {
cursor: pointer;
transition: transform 0.2s;
}
.blog-card-item:hover {
transform:none;
}
.blog-card-visual {
margin-bottom: 16px;
border-radius: 10px;
overflow: hidden;
aspect-ratio: 16/9;
}
.blog-card-img {
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 8px;
display: block;
transition: transform .3s;
aspect-ratio: 16 / 9;
}
.blog-card-item:hover .blog-card-img { transform: scale(1.04); }
.blog-card-meta {
font-family: var(--font-sans);
font-size: 0.8rem;
text-transform: uppercase;
color: var(--text-secondary);
margin-bottom: 10px;
}
.blog-card-title {
font-family: var(--font-serif);
font-size: 1.8rem;
font-weight: 600;
margin-bottom: 15px;
}
.blog-card-summary {
font-family: var(--font-sans);
font-size: 1rem;
color: var(--text-secondary);
margin-bottom: 20px;
}
.blog-card-category {
display: inline-block;
font-family: var(--font-sans);
font-size: .68rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 1.2px;
color: #002147;
border: 1.5px solid #002147;
border-radius: 20px;
padding: 2px 10px;
margin-bottom: 10px;
}
.blog-card-cta {
font-family: var(--font-sans);
font-size: 1rem;
color: var(--text-main);
text-decoration: underline;
}
.blog-action-footer {
text-align: center;
margin-top: 60px;
}
.link-view-all {
font-family: var(--font-sans);
font-size: 1rem;
color: var(--text-main);
text-transform: uppercase;
letter-spacing: 1px;
text-decoration: none;
border-bottom: 1px solid var(--text-main);
}
/* =======================================
ABOUT - Texto izquierda + imagen intervia.avif a la derecha
======================================= */
.about-section {
padding: 80px 5%;
background: var(--bg-soft);
text-align: center;
}
.about-wrapper {
display: flex;
align-items: center;
gap: 80px;
max-width: 1400px;
margin: 0 auto;
}
.about-text {
flex: 1;
text-align: left;
}
.about-text .section-title {
font-family: var(--font-serif);
font-size: 2.5rem;
margin-bottom: 20px;
text-align: left;
}
.about-text p {
font-size: 1.2rem;
color: var(--text-secondary);
max-width: 600px;
}
.about-image {
flex: 1;
}
.about-image img {
width: 100%;
height: auto;
border-radius: 20px;
box-shadow: 0 20px 50px rgba(0,0,0,0.15);
object-fit: cover;
}
@media (max-width: 992px) {
.about-wrapper {
flex-direction: column;
text-align: center;
gap: 50px;
padding: 0 20px;
}
.about-text {
text-align: center;
}
.about-text .section-title {
text-align: center;
}
.about-image {
width: 100%;
max-width: 420px;
margin: 0 auto;
}
.about-image img {
min-height: 260px;
object-fit: cover;
}
}
/* =======================================
TRUST - Full width (toca bordes laterales)
======================================= */
.trust-section {
width: 100vw;
margin-left: calc(-50vw + 50%);
margin-right: calc(-50vw + 50%);
padding: 80px 5%;
background: var(--bg-white);
text-align: center;
}
.trust-title {
font-family: var(--font-serif);
font-size: 2.5rem;
margin-bottom: 60px;
}
.logo-slider {
display: flex;
justify-content: center;
flex-wrap: wrap;
gap: 80px;
}
.logo-item {
width: 180px;
height: auto;
aspect-ratio: 16 / 5;
object-fit: contain;
filter: grayscale(1);
opacity: 0.7;
transition: transform 0.3s, filter 0.3s, opacity 0.3s;
}
.logo-item:hover {
filter: grayscale(0);
opacity: 1;
transform: scale(1.1);
}
/* =======================================
HERO (imagen debajo del buscador en mÃ³viles)
======================================= */
.hero {
width: 100vw;
margin-left: calc(-50vw + 50%);
margin-right: calc(-50vw + 50%);
position: relative;
min-height: 80vh;
display: flex;
align-items: center;
justify-content: center;
background: var(--bg-white);
padding: 120px 20px 60px;
z-index: 2;
}
.hero-wrapper {
display: flex;
justify-content: space-between;
align-items: center;
max-width: 1200px;
width: 100%;
gap: 40px;
}
.hero-text-content {
max-width: 50%;
}
.hero-title {
font-family: var(--font-serif);
font-size: 4rem;
font-weight: 700;
line-height: 1.1;
margin-bottom: 20px;
}
.hero-subtitle {
font-family: var(--font-sans);
font-size: 1.2rem;
color: var(--text-secondary);
margin-bottom: 30px;
}
.hero-search-container {
display: flex;
gap: 10px;
}
.hero-search-container input {
flex: 1;
padding: 15px 20px;
border: 1px solid var(--border);
border-radius: 4px;
font-family: var(--font-sans);
font-size: 1rem;
outline: none;
min-width: 0;
}
.hero-btn-search {
padding: 15px 24px;
background: var(--text-main);
color: var(--bg-white);
border: none;
border-radius: 4px;
cursor: pointer;
font-family: var(--font-sans);
font-weight: 600;
text-transform: uppercase;
letter-spacing: 1px;
white-space: nowrap;
flex-shrink: 0;
font-size: .9rem;
}
.hero-btn-search:hover { opacity: .88; }
@media (max-width: 480px) {
.hero-search-container {
  flex-direction: column;
  gap: 8px;
}
.hero-search-container input {
  width: 100%;
  padding: 14px 16px;
}
.hero-btn-search {
  width: 100%;
  padding: 14px 16px;
  font-size: .88rem;
}
}
.hero-image-container {
max-width: 48%;
display: flex;
align-items: center;
justify-content: center;
}
.hero-main-img {
width: 100%;
max-height: 520px;
object-fit: contain;
object-position: center;
border-radius: 12px;
}
/* En mÃ³viles: imagen del hero debajo del buscador */
@media (max-width: 992px) {
.hero-wrapper {
flex-direction: column-reverse;
text-align: center;
gap: 40px;
}
.hero-text-content, .hero-image-container {
max-width: 100%;
}
/* On mobile the wave overlaps hero — reduce its intrusion */
.wave-divider {
margin-top: -40px;
height: 180px;
}
.blue-bg-extend {
margin-top: -20px;
}
}
@media (max-width: 640px) {
/* On small screens hero is tall (stacked) — don't let wave cover search */
.hero {
padding-bottom: 80px;
}
.wave-divider {
margin-top: 0;
height: 100px;
}
.blue-bg-extend {
margin-top: -10px;
}
}
/* =======================================
CATEGORIES CARRUSEL (resto de estilos originales)
======================================= */
.categories-carousel-container {
position: relative;
max-width: 1200px;
margin: 0 auto;
}
.categories-track {
display: flex;
gap: 24px;
overflow-x: auto;
scroll-behavior: smooth;
scroll-snap-type: x mandatory;
padding: 20px 0 40px;
scrollbar-width: none;
}
.categories-track::-webkit-scrollbar {
display: none;
}
.category-tile {
flex: 0 0 160px;
text-align: center;
text-decoration: none;
color: inherit;
scroll-snap-align: center;
transition: transform 0.25s ease;
}
.category-tile:hover {
transform:none;
}
.cat-img {
width: 130px;
height: 130px;
border-radius: 50%;
overflow: hidden;
margin: 0 auto 10px;
border: 2.5px solid rgba(255,255,255,.25);
background: rgba(255,255,255,.1);
}
.cat-img img {
width: 100%;
height: 100%;
object-fit: cover;
}
.tile-label {
font-family: var(--font-serif);
font-size: 1rem;
font-weight: 500;
color: white;
display: block;
}
.carousel-arrow {
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 56px;
height: 56px;
background: rgba(255, 255, 255, 0.94);
border: 1px solid var(--border);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
z-index: 10;
box-shadow: 0 4px 14px rgba(0,0,0,0.08);
transition: transform 0.22s ease, opacity 0.22s ease;
}
.carousel-arrow svg {
width: 24px;
height: 24px;
stroke: var(--text-main);
stroke-width: 2.2;
}
.carousel-arrow:hover:not(.disabled) {
background: var(--primary-dark);
border-color: var(--primary-dark);
transform:none scale(1.08);
}
.carousel-arrow:hover:not(.disabled) svg {
stroke: white;
}
.carousel-arrow.prev { left: -28px; }
.carousel-arrow.next { right: -28px; }
.carousel-arrow.disabled {
opacity: 0.28;
cursor: not-allowed;
box-shadow: none;
}
/* =======================================
SECCIONES SOBRE FONDO AZUL - TRANSPARENTES
======================================= */
.categories-section,
.promo-section,
.about-section,
.trust-section {
background: transparent !important;
}
.blue-bg-extend .container,
.blue-bg-extend section {
background: transparent;
}
.blue-bg-extend .section-title-cat,
.blue-bg-extend h2,
.blue-bg-extend p,
.blue-bg-extend .trust-title {
color: white !important;
}


/* =======================================
   MOBILE GLOBAL PADDING FIX
   ======================================= */
@media (max-width: 768px) {
.container {
  padding: 0 18px;
}
.about-section {
  padding: 60px 18px;
}
.trust-section {
  padding: 60px 18px;
}
/* Prevent any full-vw element from causing right overflow */
body {
  overflow-x: hidden;
  max-width: 100vw;
}
}