@charset "UTF-8";
/* Montserrat:             400     600     800 */
/* Libre-baskerville:                  700     */

/* montserrat-regular - latin */
@font-face {
  font-display: swap;
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/montserrat-v31-latin-regular.woff2') format('woff2');
}
/* montserrat-600 - latin */
@font-face {
  font-display: swap;
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  src: url('../fonts/montserrat-v31-latin-600.woff2') format('woff2');
}
/* montserrat-800 - latin */
@font-face {
  font-display: swap;
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 800;
  src: url('../fonts/montserrat-v31-latin-800.woff2') format('woff2');
}

/* libre-baskerville-400 - latin 
@font-face {
  font-display: swap;
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/libre-baskerville-v24-latin-regular.woff2') format('woff2');
}*/

/* libre-baskerville-700 - latin */
@font-face {
  font-display: swap;
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 700;
  src: url('../fonts/libre-baskerville-v24-latin-700.woff2') format('woff2');
}


/* ===================================== */
/* VARIABLES & CONFIGURACIÓN BASE        */
/* ===================================== */
:root {
    --container-width: 100%; /* En móvil aprovechamos todo el ancho */
    --max-width: 1600px;    /* Tope para pantallas gigantes */

    --font-title: 'Libre Baskerville', serif;
    --font-texte: 'Montserrat', sans-serif;
    
    --casi-negro:   #111111;
    --texto:        #444444;
    --gris-oscuro:  #555555;
    --gris-medio:   #888888;
    --gris-claro:   #DDDDDD;
    --fondo:        #F4F1EA; /* Beige Lino */
    --blanco:       #FFFFFF;

    --rojo:         #D32F2F;
    --carmin:       #CC2A2A;
    --salvia:       #74A58F;
    --salvia-fondo: #D7E7E0; /* #C9DED4; */
    --verde-oscuro: #2D6A4F;
    --terracota:    #C87F69;
	--terracota-fondo:  #F7ECE8;
    --ladrillo:     #A03125;
}

*, *::before, *::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* Accesibilidad: Mantiene el foco visible solo para teclado */
:focus-visible {
    outline: 2px solid var(--texto);
    outline-offset: 2px;
}
:focus:not(:focus-visible) {
    outline: none;
}

html {
    font-size: 18px;
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    padding-top: 42px; /* Espacio a Top Bar fija */
    background: var(--fondo);
    font-family: var(--font-texte);;
    font-weight: 400;
    color: var(--texto);
    
    line-height: 1.6;
    font-optical-sizing: auto;
    -webkit-font-smoothing: antialiased; /* Texto más nítido en Mac/iOS */
}

/* Imágenes fluidas: nunca se desbordan en móvil */
img {
    max-width: 100%;
    height: auto;
    border: 0;
    vertical-align: middle; 
    font-style: italic;
}

ul {
    list-style: none;
}

a {
    text-decoration: none;
    color: inherit; /* Hereda color del padre */
    transition: all 0.2s ease;
}

.link {
    color: var(--azul-link);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.container,
.encabezado,
.main-nav,
footer {
    width: var(--container-width);
    max-width: var(--max-width);
    margin: 0 auto; /* Centrado automático */
}

/* classe oculta per a l'usuari però visible per a Google (screen reader only) */
/* display:none l'ocultaria a Google també */
.ocult {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0, 0, 0, 0);
    white-space:nowrap;
    border:0;
}

/* ===================================== */
/* HEADER                                */
/* ===================================== */

/* ===================================== */
/* CABECERA PRINCIPAL                    */
/* ===================================== */
.cabecera {
    position:fixed;
    top:0;
    left:0;
    width:100%;
    height:auto;
    /*margin:0 auto;*/
    z-index:1000;
    background-color:var(--blanco);
    box-shadow:0 2px 5px rgba(0,0,0,0.2);
}
.encabezado {
    display:grid;
    grid-template-columns: 1fr auto 1fr;
    grid-template-rows: auto auto; /* Fila 1: Cabecera | Fila 2: Buscador */
    align-items: center;
    column-gap: 10px;
    padding: 3px 10px;
}

/* *********************************** */

.burguer {
    grid-column: 1; /* Columna Izquierda */
    grid-row: 1;
    justify-self: start;
    display: flex; /* Aseguramos que sea visible en móvil */
    position: relative;
    padding: 0;
    margin-left: 5px;
    width:40px;
    height:35px;
    background:none;
    border:none;
    cursor:pointer;
    z-index:2001;
    background-color: transparent;
    -webkit-tap-highlight-color: transparent;
}
.burguer .line {
    position:absolute;
    left:6px;
    width:28px;
    height:2px;
    background:var(--texto);
    border-radius:2px;
    transition:all 0.35s ease;
}
.burguer .top    { top:10px; }
.burguer .middle { top:18px; }
.burguer .bottom { top:26px; }

.burguer.abierto .top { transform:translateY(8px) rotate(45deg); }
.burguer.abierto .middle { opacity:0; }
.burguer.abierto .bottom { transform:translateY(-8px) rotate(-45deg); }

/* *********************************** */
/* *********************************** */

.encabezado .logo {
	grid-column: 2;
    grid-row: 1;
    justify-self: center;
}
.encabezado .logo img {
    height:38px;
    width:auto;
    padding: 4px 0;
}
.encabezado .logo a {
    font-size: 1.11rem;
}

/* *********************************** */

.controles {
	grid-column: 3;
    grid-row: 1;
    display: flex;
    justify-self: end;
    align-items: center;
    gap: 6px;
}
.lupa-trigger {
	order:1;
    background: none;
    border: none;
    cursor: pointer;
    /*margin-right: 4px; /* Separación con el carrito */
    /*display: block; /* Visible en móvil */
    color: var(--texto); /* Color del icono */
    -webkit-tap-highlight-color: transparent; /* Quita el parpadeo gris en iPhone */
}
.lupa-trigger .icono-x { display: none; }
.lupa-trigger .icono-lupa { display: block; }
.lupa-trigger.abierto .icono-lupa { display: none; } /* Se oculta la lupa */
.lupa-trigger.abierto .icono-x { display: block; } /* Aparece la X */

.mi-cuenta-icon {
	order: 2;
	display: none; /* Oculto en móvil; visible desde 1000px */
	align-items: center;
	color: var(--texto);
	-webkit-tap-highlight-color: transparent;
}
.mi-cuenta-icon svg {
	width: 28px;
	height: 28px;
	display: block;
}

.mi-carrito {
	order: 3;
	display:flex;
	position: relative;
	align-items: center;
	margin-right:10px;
}
.mi-carrito svg {
    /*position:relative;*/
    display: block;
    width:30px;
    height:auto;
    color:var(--texto);
}

#qty {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position:absolute;
    top:0;
    right:-6px;
    background:var(--rojo);
    color:var(--blanco);
    width:16px;
    height:16px;
    line-height:16px;
    border-radius:50%;
    font-size:0.67rem;
    text-align:center;
    font-weight:600;
    margin:0;
    transition: background-color 0.2s ease;
}

#qty.qty-bump {
    animation: qty-bump 0.4s cubic-bezier(0.36, 0.07, 0.19, 0.97) forwards;
}

@keyframes qty-bump {
    0%   { transform: scale(1); }
    30%  { transform: scale(1.45); }   /* crece */
    60%  { transform: scale(0.9); }    /* rebota ligeramente hacia abajo */
    80%  { transform: scale(1.1); }    /* segundo micro-rebote */
    100% { transform: scale(1); }      /* vuelve al tamaño original */
}


/* *********************************** */

.buscador {
	grid-column: 1 / span 3; 
    grid-row: 2;
    display: none; /* Escondido por defecto */
    width: 100%;
    padding: 5px 0 10px 0;
}
.buscador.activo {
    display: flex !important;
    justify-content: center;
}
.buscador form {
	width: 90%;
	position: relative;
	/*display:flex;
	align-items:center;
	justify-content:center;
	*/
}
.buscador input {
	width: 100%;
	padding:6px 40px 6px 15px;
	border-radius:30px;
	font-size:1rem;
	height:40px;
	border:2px solid var(--gris-claro);
	background-color: var(--fondo);
	transition:border-color 0.3s;
	outline: none;
	font-style:italic;
}
.buscador input:focus { 
    border-color: var(--texto);
}
.buscador .btn_busqueda {
    display: flex;
    border:none;
    transition:transform 0.2s ease;
    cursor:pointer;
}
.buscador .icono-lupa {
    position: absolute;
    top: 5px;
    right: 10px;
    height: auto;
    color: var(--texto);
}

/* ===================================== */
/* MENU DE NAVEGACIÓN                    */
/* ===================================== */

.main-nav {
    position:absolute;
    top:44px;
    left:0;
    width:340px;
    background:var(--blanco);
    z-index:2000;
    box-shadow:0 5px 10px rgba(0,0,0,0.5);
    max-height:0; 
    overflow:hidden;
    opacity:0;
    transition:max-height 0.6s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s ease;
}
.main-nav.activo {
    max-height:80vh;
    opacity:1;
    overflow-y:auto;
}
.main-nav ul {
    list-style:none;
    padding:0;
    margin:0;
}
.main-nav > ul > li {
    border-top:2px solid var(--gris-claro);
    position:relative;
}
/* Outlet destacado en rojo corporativo */
.nav-link--outlet {
    color: var(--rojo) !important;
    font-weight: 600;
}
/* Entradas de usuario en menú móvil: fondo salvia blanquecino + icono + texto alineados */
.nav-item--user {
    background-color: #E5EFEC;
    border-top: 1px solid #D7E7E0;
}
.nav-link--user {
    justify-content: flex-start !important;
    gap: 12px;
}
.nav-link--user svg {
    flex-shrink: 0;
}
.main-nav a,
.menu-trigger {
	display: flex;
    justify-content: space-between;
    align-items: center;
    padding:11px 30px;
    width:100%;
    background:none;
    border:none;
    cursor:pointer;
    text-transform: lowercase;
    font-variant: small-caps;
    font-family: inherit;
    font-weight: inherit;
    color:var(--texto);
    letter-spacing: 1px;
    font-size:1.22rem;
    -webkit-tap-highlight-color: transparent; /* No gris al clicar iphone */
}
.main-nav .children {
    background-color:var(--gris-claro);
    max-height:0;
    overflow:hidden;
    transition:max-height 0.4s ease;
    padding-left:0; /* Reset */
}
.parent.abierto .children {
    max-height:2500px; /* Suficiente para menús categorizados con muchos items */
}
.main-nav .children li a {
    padding-left:50px;
    border-bottom:1px solid var(--gris-claro); /* Separador ligeramente visible */
}

/* --- Menú categorizado: grupos con cabecera (móvil) --- */
.menu-group__label {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 6px 20px 6px 30px;
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--gris-oscuro);
    background: var(--salvia-fondo);
    border-bottom: 1px solid var(--gris-claro);
    cursor: default;
}
.menu-group__label svg {
    flex-shrink: 0;
    opacity: 0.65;
}
.menu-group__items {
    list-style: none;
    padding: 0;
    margin: 0;
}
.menu-group__items li a {
    padding-top: 6px !important;
    padding-bottom: 6px !important;
    padding-left: 60px !important;
    font-size: 1.1rem;
    background: var(--blanco);
    border-bottom: 1px solid var(--gris-claro);
}

/* flecha menú desplegable */
.menu-trigger::after {
    content: "";
    width: 20px;
    height: 20px;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    transition: transform 0.3s ease;
}
.parent.abierto .menu-trigger::after {
    transform: rotate(180deg);
}


/* ===================================== */
/* WHATSAPP                              */
/* ===================================== */
.whatsapp {
    position:fixed;
    right:-225px; /* Escondemos el rectángulo (300px total - 60px del logo) */
    bottom:10%;
    -webkit-transform:translateZ(0); /* para iPhone */
    transform:translateZ(0);
    will-change:right; /* Le dice al navegador que lo que va a cambiar es la posición derecha */
    display:flex;
    align-items:center;
    width:275px;
    height:45px;
    background-color:#29a71a;
    border-radius:10px 0 0 10px; /* Redondeamos solo el lado izquierdo */
    transition:all 0.4s ease-in-out;
    text-decoration:none;
    z-index:999;
    overflow:hidden;
    cursor:pointer; /* ayuda a iPhone a detectar que es pulsable */
}
.whatsapp.visible {
    right:0;
}
.whatsapp svg {
    min-width:60px;
    height:60px;
    box-sizing:border-box;
}
.whatsapp-text {
    color:white;
    font-family:Arial, sans-serif;
    font-weight:bold;
    white-space:nowrap;
}

/* ===================================== */
/* FOOTER                                */
/* ===================================== */

/* BARRA DE CONFIANZA (Trust Bar)            */
.trust-bar {
    display: grid;
    grid-template-columns: 1fr 1fr; /* Dos columnas iguales */
    gap: 30px 15px; /* 30px espacio vertical, 15px horizontal */
    
    background-color: var(--blanco);
    padding: 30px 15px;
    box-shadow: 0 4px 15px rgba(0,0,0, 0.05);
    text-align: center;
}
.trust-item {
    min-width: 0; /* Quitamos el min-width de 200px para que quepan dos en un móvil */
    display: flex;
    flex-direction: column;
    align-items: center;
}
.trust-item h3 {
    font-family: var(--font-title);
    font-size: 0.83rem; /* para que no ocupe 3 líneas */
    margin-bottom: 4px;
    color: var(--texto);
    line-height: 1.3;
}
.trust-item p {
    font-size: 0.67rem;
    color: var(--gris-oscuro);
    line-height: 1.4;
    margin: 0;
    padding: 0;
}
.trust-item .icon-box {
    margin-bottom: 12px;
    color: var(--salvia);
    display: flex;
    justify-content: center;
}
.trust-item svg {
    width: 45px;
    height: 45px;
    stroke-width: 1.2;
    opacity: 0.8;
}

/* --- SECCIÓN LEGAL --- */
.legal {
    width:100%;
    background-color:#4E3B31; /* color café */
    color:var(--blanco);
    display:flex;
    justify-content:center;
    align-items:center;
    flex-direction:column; 
}
.legal li { 
    width:100%; 
    text-align:center; 
    border-bottom:1px solid #6B584D; /* marró clar */
    padding:12px 0; 
}
.legal a {
    font-size:0.95rem;
    text-decoration:none;
    transition:opacity 0.3s;
}

/* --- NEWSLETTER FOOTER --- */
.footer-newsletter {
    width: 100%;
    padding: 30px 5% 20px;
    text-align: center;
    box-sizing: border-box;
	background-color: var(--salvia-fondo);
}

.footer-newsletter__title {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0 0 6px;
    color: var(--casi-negro);
}

.footer-newsletter__subtitle {
    font-size: 0.88rem;
    color: var(--texto);;
    margin: 0 0 18px;
}

.footer-newsletter__form {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    max-width: 480px;
    margin: 0 auto;
}

.footer-newsletter__row {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
}

.footer-newsletter__input {
    width: 100%;
    box-sizing: border-box;
    padding: 12px 20px;
    border: 1px solid #E0E0E0;
    border-radius: 50px;
    background: #fff;
    font-size: 0.95rem;
    font-family: inherit;
    color: var(--texto);
    outline: none;
}

.footer-newsletter__input:focus {
    border-color: var(--carmin);
}

.footer-newsletter__btn {
    width: 100%;
    padding: 12px 24px;
    background: var(--terracota);
    color: #fff;
    font-weight: 700;
    font-size: 0.95rem;
    font-family: inherit;
    border: none;
    border-radius: 50px;
    cursor: pointer;
    transition: background 0.2s;
}

.footer-newsletter__btn:hover {
    background: #a82020;
}

.footer-newsletter__legal-label {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    font-size: 0.9rem;
    color: var(--texto);
    text-align: left;
    cursor: pointer;
}

.footer-newsletter__checkbox {
    flex-shrink: 0;
    margin-top: 5px;
    accent-color: var(--carmin);
}

.footer-newsletter__legal-label a {
    color: var(--gris-medio);
    text-decoration: underline;
}

.footer-newsletter__msg {
    font-size: 0.9rem;
    margin: 4px 0 0;
}

.footer-newsletter__msg--ok    { color: #1a7a3f; }
.footer-newsletter__msg--error { color: var(--carmin); }

/* --- SECCIÓN SOCIAL ---  */
.social {
    width:100%;
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    align-items:center;
    padding:10px 5%;
    gap:15px;
    flex-direction:column-reverse; 
    text-align:center;
}
.social .name{ 
    color:var(--texto);
    font-size:0.9rem; 
    line-height: 1.6;
    display:block; 
}
.social li { display:flex; align-items:center; }

.social-ico {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:40px; /* Tamaño del círculo */
  height:40px;
  border-radius:50%;
  color:white;
  margin:15px 5px 0 0;
}
.social-ico svg {
  width:30px;
  height:30px;
}
.instagram, .facebook, .email { background-color:#cc0000; }

/* --- RESEÑAS GOOGLE ---  */
.stars{
	display:flex;
    justify-content:center;
    align-items:center;
    text-align: center;
    height:120px;
}
.google {
    display:flex;          /* Alinea los elementos en línea */
    justify-content:center; /* Centra los botones horizontalmente */
    align-items: flex-start;
    height:200px;
    gap:20px;              /* Espacio de separación entre los rectángulos */
    flex-wrap:wrap;        /* Si no caben (en móviles), se ponen uno abajo del otro */
}
.google-button {
    flex:1;                /* Hace que ambos ocupen el mismo ancho */
    max-width:150px;       /* Evita que se estiren demasiado en pantallas grandes */
    min-width:50px;       /* Evita que se vean muy pequeños */
    height:30px;
    padding:10px 15px;     /* Espacio interno (altura y anchura) */
    background-color:var(--gris-oscuro); /* Color de fondo (cámbialo a tu gusto) */
    color:white;           /* Color del texto */
    text-transform:uppercase;
    text-align:center;
    font-size:0.8rem;
    line-height: 5px;
    border: solid 3px var(--gris-oscuro);
    border-radius:50px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    will-change: transform; /* ajuda a millor renderitzat després */
}


/* ============================================================
   CONTADOR DEL CARRITO (#qty) — animación bump
   ============================================================ */

#qty.qty-bump {
    animation: qty-bump 0.4s cubic-bezier(0.36, 0.07, 0.19, 0.97) forwards;
}

@keyframes qty-bump {
    0%   { transform: scale(1); }
    30%  { transform: scale(1.45); }
    60%  { transform: scale(0.9); }
    80%  { transform: scale(1.1); }
    100% { transform: scale(1); }
}


/* ============================================================
   SISTEMA DE TOASTS (missatges en pop-up)
   El contenedor (#toast-container) lo genera global.js.
   ============================================================ */

#toast-container {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    gap: 10px;
    pointer-events: none;
}

.toast {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    min-width: 280px;
    max-width: 360px;
    padding: 14px 16px;
    border-radius: 10px;
    box-shadow: 0 4px 20px rgba(0,0,0,.15);
    font-size: .875rem;
    line-height: 1.4;
    pointer-events: all;

    /* Estado inicial: oculto y desplazado */
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.25s ease, transform 0.25s ease;
}

.toast--visible {
    opacity: 1;
    transform: translateY(0);
}

.toast--hiding {
    opacity: 0;
    transform: translateY(8px);
}

/* Variantes de color */
.toast--success { background: #f0faf5; border-left: 4px solid #3a9e6f; color: #1d6444; }
.toast--success .toast__icon { color: #3a9e6f; }

.toast--error   { background: #fff5f5; border-left: 4px solid #e05555; color: #7a2020; }
.toast--error   .toast__icon { color: #e05555; }

.toast--warning { background: #fffbf0; border-left: 4px solid #e0a030; color: #7a5010; }
.toast--warning .toast__icon { color: #e0a030; }

.toast--info    { background: #f0f6ff; border-left: 4px solid #4a90d9; color: #1a3a6a; }
.toast--info    .toast__icon { color: #4a90d9; }

/* Partes internas */
.toast__icon  { flex-shrink: 0; margin-top: 1px; }
.toast__msg   { flex: 1; }

.toast__close {
    flex-shrink: 0;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    opacity: 0.45;
    color: inherit;
    line-height: 1;
    transition: opacity 0.15s ease;
    margin-top: 2px;
}
.toast__close:hover { opacity: 1; }


/**************************************************/
/* HOMEPAGE */
/**************************************************/

.hero {
  position: relative;
  width: 100%;
  margin-top: 0;
  min-height: 70vh;
  max-height: 700px;
  background-color: #111; 
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  overflow: hidden;
  color: #ffffff;
}
.hero img {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  display: block;     /* Evita una pequeña línea blanca debajo de la foto */
  object-fit: cover;
  object-position: center bottom;
  z-index: 0;
  filter: brightness(0.75);
  animation: hero-img-fadein 1.0s ease forwards;
}
@keyframes hero-img-fadein {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.hero-txt {
  z-index: 2;
  max-width: 800px;
}
.hero .eyebrow {
  display: block;
  font-size: 0.75rem;
  letter-spacing: 3px;
  font-weight: 800; /* MONTSERRAT */
  opacity: 0.7; 
}
.hero-txt h1 {
  font-family: var(--font-title); /* Libre Baskerville */
  font-size: clamp(1.89rem, 3.6vw, 2.78rem);
  line-height: 1.25;
  padding: 40px 30px;
  margin-bottom: 20px;
  letter-spacing: -0.02em;
  text-shadow: 0px 4px 6px rgba(0,0,0,0.8);
}
.hero-txt h2 {
  /*font-family: var(--font-texte);;*/
  font-weight:400;
  font-size: 1.2rem;
  line-height: 1.25;
  max-width: 90%;
  margin-bottom: 20px;
  margin-left: auto;
  margin-right: auto;
  text-shadow: 0px 4px 6px rgba(0,0,0,0.8);
}
.hero-btn {
  display: inline-block;
  margin-top: 25px;
  padding: 12px 30px; 
  background-color: var(--carmin);
  color: var(--blanco);
  border-radius: 100px;
  font-weight: 600; /* MONTSERRAT */
  text-decoration: none;
  text-transform: uppercase;
  font-size: 0.75rem;
  letter-spacing: 1px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
  transition: transform 0.2s ease, background-color 0.2s ease;
}
.hero-btn:active {
  transform: scale(0.96); /* El botón se hunde un poco al tocarlo en movil?*/
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

/* ── Hero: animaciones de entrada ── */
@keyframes hero-slide-up {
    to { opacity: 1; transform: translateY(0); }
}
@keyframes hero-eyebrow-in {
    to { opacity: 0.7; transform: translateY(0); }
}
@keyframes hero-rise {
    to { opacity: 1; transform: translateY(0); }
}
.hero-eyebrow-anim {
    opacity: 0 !important;
    transform: translateY(12px);
    animation: hero-eyebrow-in 0.7s 0.4s forwards;
}
.hero-line-wrap {
    display: block;
    overflow: hidden;
    padding-bottom: 0.08em;
    margin-bottom: -0.08em;
}
.hero-line-inner {
    display: block;
    opacity: 0;
    transform: translateY(110%);
}
.hero-sub-anim {
    opacity: 0;
    transform: translateY(10px);
    animation: hero-rise 0.7s forwards;
}
.hero-btn-anim {
    opacity: 0;
    transform: translateY(10px);
    animation: hero-rise 0.7s forwards;
}

/**************************************************/
/* CARDS de categories                            */
/**************************************************/

.categories-grid {
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    margin:0;
    padding:30px;
    width:100%;
    box-sizing:border-box;
}
.categories-grid .cat-item {
    width:100%;
    margin:0 0 30px 0;
    background-color:var(--blanco);
    box-sizing:border-box;
    text-align:center;
    position:relative;
    border-radius: 12px;
    box-shadow:0 4px 15px rgba(0,0,0, 0.08);
    overflow: hidden;
    transition: all 0.3s ease;
    cursor: pointer;
}
.categories-grid .cat-item a {
  display: flex;
  flex-direction: column;
  color: inherit;
  height: 100%;
}
.categories-grid .cat-item img {
    height:auto;
    display:block;
    transition: transform 0.5s ease;
}
.categories-grid .cat-item h3 {
    font-weight:600; /* MONTSERRAT */
    padding: 20px 15px;
    margin: 0;
    text-transform: uppercase;
    /*  line-height: 1.6em; */
    font-size: 0.89rem;
    letter-spacing: 1px;
    background:var(--blanco);
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
}
.categories-grid .cat-item h3::after {
    content: '→';
    font-weight: 300;
    transition: transform 0.3s ease;
    opacity: 0; /* Invisible al principio */
    transform: translateX(-10px);
}
.categories-grid .cat-item:hover h3::after {
    opacity: 1;
    transform: translateX(0);
    color: var(--rojo);
}

/* ------------------------------------------------------ */
/* MINICAT: categories secundàries               */
/* ------------------------------------------------------ */

.minicat-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr); /* 2 x 2 */
  gap: 15px;
  padding: 0 15px;
  margin-bottom: 30px;
}

.minicat-item {
  position: relative;
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4/3;
  border-radius: 12px;
  overflow: hidden; /* Mantiene la imagen dentro de los bordes redondos al hacer zoom */
  text-decoration: none;
  background: #f5f5f5;
  box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

/* --- IMAGEN DE FONDO --- */
.minicat-item img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* Asegura que la foto rellene todo sin deformarse */
  transition: transform 0.4s ease;
  filter: brightness(0.75); /* para que el texto blanco resalte más */
}

.minicat-item .content {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  z-index: 2;
  color: #ffffff;
  text-align: center;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.6); 
  padding: 10px;
}

.minicat-item .content h3 {
  margin: 0;
  font-size: 1.3rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1px;
  line-height: 1.1;
}

.minicat-item .content p {
  margin: 4px 0 0;
  font-size: 0.9rem;
  font-weight: 500;
  opacity: 0.95;
}




/**************************************************/
/* LIST de CARDS de productes                     */
/**************************************************/

.homepage .cards-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px 15px;
    padding: 13px;
}

/**************************************************/
/* SLIDER de CARDS de productes                   */
/**************************************************/

.slider-container {
    position: relative;
    /*width: 100%;*/
    margin: 0 15px;
}
.slider-wrapper {
    display: flex;
    gap: 20px;
    overflow-x: auto;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}
.slider-wrapper::-webkit-scrollbar {
    display: none;
}
.slider-wrapper .simple-card {
    flex: 0 0 55%;
    scroll-snap-align: start;
    width: 55%; /* Refuerzo */
}
.slider-nav-btn {
    display:none;
}
/**************************************************/
/* INSTAGRAM                                      */
/**************************************************/

.instagram-section {
    overflow: hidden; /* Evita scroll horizontal indeseado en la página */
}
.insta-card {
    flex: 0 0 85%; /* Ocupa el 85% (se ve un trozo de la siguiente) */
    width: 85%;
    scroll-snap-align: center; /* Se centra al soltar */
    
    /* Estética Card */
    background: #fff;
    border: 1px solid #dbdbdb;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    margin-right: 0; /* El gap del padre se encarga del espacio */
}
/* INTERIOR DE LA TARJETA (Estilo Insta) */
.insta-header {
    display: flex;
    align-items: center;
    padding: 10px;
    height: 50px;
}
.insta-header .avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    margin-right: 10px;
    object-fit: cover;
    border: 1px solid #eee;
}
.insta-header .username {
    font-size: 0.9rem;
    font-weight: 600;
    color: #262626;
}
.insta-img-container {
    width: 100%;
    aspect-ratio: 1 / 1; /* garantiza el cuadrado perfecto sin hacks */
    background-color: #f0f0f0;
    position: relative;
}
.insta-img-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* PIE DE FOTO */
.insta-body {padding: 10px 12px;}
.insta-body .actions svg {vertical-align: middle;}
.insta-body .actions {margin-bottom: 8px;}
.insta-body .caption {
    font-size: 0.85rem;
    line-height: 1.4;
    color: #262626;
    /* Limitamos texto a 3 líneas en móvil para que no queden cards gigantes */
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.insta-body .bold {
    font-weight: 600;
    margin-right: 4px;
}
/* 4. BOTÓN CTA (SEGUIR) */
.insta-cta-container {
    margin-top: 30px;
    text-align: center;
    padding: 0 20px;
}
.btn-instagram-big {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    /*max-width:350px;*/
    padding: 12px 15px;
    margin: 10px 0 40px 0;
    border-radius: 50px;
    color: #fff;
    font-weight: 600;
    text-decoration: none;
    font-size: 0.9em;
    background-color: #E1306C; /* El Rosa Oficial de Instagram plano */
    box-shadow: 0 4px 10px rgba(225, 48, 108, 0.3); /* Sombra suave del mismo color */
    transition: all 0.3s ease;
}
.btn-instagram-big svg {
    margin-right: 8px;      /* Espacio entre icono y texto */
    vertical-align: middle; /* Alineación vertical */
    position: relative;     
    top: -1px;              /* Ajuste fino para que quede perfecto visualmente */
    width:30;
    height:30px;
}

/**************************************************/
/* OPINIONES DE CLIENTES                          */
/**************************************************/

.grid-opiniones {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 25px;
    padding: 20px;
    justify-content: center;
    text-align: left; /* IMPORTANTE: El contenido de las tarjetas va a la izquierda */
}
.review-card {
    background: white;
    padding: 25px;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08); /* Sombra suave */
    display: flex;
    flex-direction: column;
    border: 1px solid #E5E0D8; /* Borde sutil opcional */
}
.review-header {
    display: flex;
    align-items: center; /* Alinea verticalmente círculo y texto */
    gap: 15px; /* Espacio entre el círculo y el nombre */
    margin-bottom: 15px;
}

.review-avatar {
    width: 45px;
    height: 45px;
    border-radius: 50%;
    color: white;
    font-weight: bold;
    font-size: 1.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0; /* Evita que se aplaste si el nombre es largo */
}
.review-avatar--red    { background-color: #db4437; }
.review-avatar--green  { background-color: #0F9D58; }
.review-avatar--purple { background-color: #8E24AA; }

.review-info {
    display: flex;
    flex-direction: column;
    line-height: 1.3;
}
.review-author {
    font-weight: 700;
    color: #202124; /* Color casi negro de Google */
    font-size: 0.95rem;
}
.review-meta {
    display: flex;
    align-items: center;
    gap: 8px;
}
.review-stars {
    color: #fbbc04; /* El amarillo de Google */
    letter-spacing: 1px;
    font-size: 1.1rem;
}

.review-date {
    font-size: 0.85rem;
    color: #70757a; /* Gris de Google para fechas */
}
.review-body p {
    color: #4b4b4b;
    font-size: 0.95rem;
    line-height: 1.5;
    margin: 0;
}
.google-btn-wrapper {
    width: 100%;
    text-align: center;
    margin: 40px 0;
}
.btn-google {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    
    background-color: white;
    color: #444;
    font-weight: 600;
    font-size: 0.90rem;
    
    padding: 10px 24px;
    border-radius: 50px;
    border: 1px solid #ddd;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
    
    text-decoration: none;
    transition: all 0.3s ease;
}

/* ===================================== */
/* PAGINAS INTERNAS                      */
/* ===================================== */

/*.pag-interna{}*/

.breadcrumb{
    text-align: left;
    padding-left: 30px;
    margin: 10px 0;
}
.breadcrumb a{
    color: #999;
    font-size: 0.85rem;
    text-transform: uppercase;
    font-weight: 600;
}
.breadcrumb .slash{
    color: #ccc;
    margin: 0 1px;
}
.breadcrumb .pagina{
    color: #333;
    font-size: 0.85rem;
    text-transform: uppercase;
    font-weight: 600;
}
/* En móvil: oculta pasos intermedios, muestra "…" + carpeta inmediata */
.breadcrumb__middle   { display: none; }
.breadcrumb__ellipsis { display: inline; color: #999; font-size: 0.85rem; }
.breadcrumb__parent   { display: inline; color: #999; font-size: 0.85rem; font-weight: 600; text-transform: uppercase; }

.texte{
	background-color:var(--blanco);
	width:100%;
	padding:0 5% 25px 5%;
	display:flow-root;
    letter-spacing: 0.9px;
}
.texte h1 { letter-spacing:1.1px; text-align:center; padding:20px; margin:20px 0; line-height: 2.5rem; color:#000;}
.texte h2 { letter-spacing:1.1px; padding:10px 0 5px 0; font-weight:600; color:#000;}
.texte h3 { padding-top:10px; }
.texte a { color:#800; text-decoration:underline; }
.texte p { margin:5px 15px 10px 15px; }
.texte .video { width:560px; height:315px; } /* Esto asume un iframe de YouTube (16:9), pero no es responsive. En móvil se desborda.*/

.error {
    grid-column: 1 / -1; /* Ocupa todo el ancho si estás en un layout de grid */
    text-align: center;
    padding: 2rem;
    background-color: #fff5f5; /* Un fondo rojizo muy suave, casi blanco */
    border: 1px dashed #eecaca; /* Borde discontinuo para que parezca una costura */
    border-radius: 8px;
    color: #a94442; /* Un granate suave, más fácil de leer que el rojo puro */
    font-family: inherit;
    font-size: 0.95rem;
    margin: 20px 0;
}


/**************************************************/
/* Seccion                                        */
/**************************************************/

section {padding: 20px 0;}

.fondo-blanco{
    background-color: #fafafa; /* Fondo suave típico de Insta */
	padding-top: 20px;
}
.fondo-gris{
    background-color: var(--fondo);
	padding-top: 20px;
}
.fondo-salvia{
    background-color: #D7E7E0;
	padding-top: 20px;
}

.section-header{
    text-align: left;
    padding: 0 30px;
    margin: 10px auto;
}
.section-header h1{
    font-size: 2.5rem;
    margin-bottom: 0.5rem;
    color:var(--casi-negro);
    line-height: 1.25;
}
.section-header h2{
    margin: 0 auto 20px auto;
    font-family: var(--font-texte);;
    font-size: 1.5rem;
    font-weight: 600;
    line-height:1.3;
    color:var(--casi-negro);
}
.section-header p{
    max-width: 700px;
    margin: 0 auto;
    font-size: 1.1rem;
    display: block;
    color:var(--texto);
}
.section-header strong{
    font-weight: 600;
    color: var(--texto);
}
.section-linea-roja{
    width: 60px;
    height: 3px;
    background-color: #D32F2F;
    margin: 10px auto 20px 0;
}

.section-header-marca{
    text-align: left;
    margin: 20px;
    padding: 10px 10px;
	border-radius: 8px;
	background-color: var(--salvia-fondo);
}
.section-header-marca h2{
    font-family: var(--font-texte);;
    font-size: 1.9rem;
    font-weight: 600;
    line-height:1.3;
    color:var(--casi-negro);
	margin-bottom:20px;
}
.section-header-marca p{
    font-size: 1.1rem;
    display: block;
    color:var(--texto);
}
/**************************************************/
/* SORT BAR (selector de orden)                   */
/**************************************************/

.sort-bar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    padding: 0 20px;
    margin-bottom: 10px;
}
.sort-bar__label {
    font-size: 0.85rem;
    color: var(--gris-medio);
    white-space: nowrap;
}
.sort-bar__select {
    font-family: inherit;
    font-size: 0.9rem;
    color: var(--texto);
    background: var(--salvia-fondo);
    border: 1px solid #8fa09a;
    border-radius: 50px;
    padding: 6px 32px 6px 14px;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='7' viewBox='0 0 10 7'%3E%3Cpolyline points='1,1 5,6 9,1' fill='none' stroke='%238fa09a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
}
.sort-bar__select:focus {
    outline: none;
    border-color: var(--ladrillo);
}

/**************************************************/
/* BOTON "VER TODAS"                              */
/**************************************************/

.btn-ver-todas {
    display: table;              /* Usamos table para que el margin: auto funcione y lo centre */
    padding: 12px 20px;
    margin: 30px auto 40px auto; /* El 'auto' a los lados ahora sí centrará el botón */
    border: 2px solid var(--terracota);
    border-radius: 50px;
    background-color: transparent;
    color: var(--terracota);
    font-weight: 800;
    text-transform: uppercase;
    text-decoration: none;
    letter-spacing: 1px;
    font-size: 0.9rem;
}

.btn-ver-todas-flecha {
    display: inline-block;
    margin-left: 8px;
}

/* Bloque "próximamente" */
.coming-soon-box {
    text-align: center;
    padding: 48px 24px 56px;
    max-width: 560px;
    margin: 0 auto;
}
.coming-soon-box__titulo {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--carmin);
    margin-bottom: 16px;
    letter-spacing: 0.5px;
}
.coming-soon-box p {
    color: var(--gris-oscuro);
    line-height: 1.7;
    margin-bottom: 32px;
}


/**************************************************/
/* CARDS de productes                             */
/**************************************************/


/* ==========================================================================
   1. COMPARTIDO
   ========================================================================== */

.cards-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 50px 15px;
    padding: 20px;
}

/* BADGES (NUEVO / OFERTA) */
.badge {
    position: absolute;
    color: var(--blanco);
    font-family: var(--font-texte);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    z-index: 10;
    border-radius: 50px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}
.simple-card .badge{
    top: 10px;
    left: 10px;
    padding: 5px 12px 3px;
    font-size: 0.75rem;
}
.buy-card .badge{
    top: 15px;
    left: 15px;
    padding: 5px 12px;
    font-size: 0.9rem;
}

.badge.nuevo { background-color: var(--casi-negro); }
.badge.descuento { background-color: var(--verde-oscuro); }

/* STOCK STRIP (AGOTADO / ÚLTIMAS UNIDADES) */
.stock-strip {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 2px;
    text-align: center;
    font-family: var(--font-texte);
    font-weight: 600;
    font-size: 0.75rem;
    color: var(--blanco);
    text-transform: uppercase;
    letter-spacing: 1px;
    z-index: 10;
    backdrop-filter: blur(6px);
}

.stock-strip.agotado,
.stock-strip.ultimas { 
    background: linear-gradient(to top, rgba(0,0,0,0.8), rgba(0,0,0,0.5));
}


/* ==========================================================================
   2. SIMPLE CARDS
   ========================================================================== */

.simple-card {
    background-color: var(--blanco);
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04), 0 4px 16px rgba(0,0,0,0.06);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    font-family: var(--font-texte);
    color: var(--casi-negro);
    cursor: pointer;
}
.simple-card a {
    color: inherit;
}
.simple-card-img-link {
    display: block;
    line-height: 0;
}
.simple-card-name {
    text-decoration: none;
}

.simple-card-img {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: 12px 12px 0 0;
    flex-shrink: 0;
}
.simple-card-img img {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 12px 12px 0 0;
    transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.simple-card-body {
    padding: 8px 10px 10px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    position: relative;
}

.simple-card-name {
    font-weight: 600;
    font-size: 0.9rem;
    line-height: 1.3;
    margin-bottom: 6px;
    /* Máximo 2 líneas */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.simple-card-footer {
    display: flex;
    align-items: center;
    margin-top: auto;
    gap: 8px;
}
.simple-card-footer .simple-card-price-wrap {
    flex: 1;
}

.simple-card-price-wrap {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    min-width: 0;
}

.simple-card-price {
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: 1.1px;
    white-space: nowrap;
}

.simple-card-euro {
    font-size: 0.8em;
    padding-left: 2px;
}

.simple-card-subprice {
    font-size: 0.8rem;
    color: var(--gris-oscuro);
    margin-top: 2px;
    line-height: 1;
}

.simple-card-btn {
    background-color: var(--blanco);
    color: var(--carmin);
    border: 1.5px solid var(--carmin);
    padding: 6px 10px;
    font-size: 0.65rem;
    font-weight: 600;
    border-radius: 50px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    white-space: nowrap;
    flex-shrink: 0;
    transition: background 0.2s ease, color 0.2s ease;
    cursor: pointer;
}


/* ==========================================================================
   BUY-CARD  (contenedor)
   ========================================================================== */

.buy-card {
    background-color: var(--blanco);
    font-family: var(--font-texte);
    color: var(--casi-negro);
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.06), 0 4px 16px rgba(0,0,0,0.08);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.buy-card-img-link {
    display: block;
    text-decoration: none;
    flex-shrink: 0;
}
.buy-card-img {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    border-radius: 12px 12px 0 0;
}
.buy-card-img img {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 12px 12px 0 0;
    transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.buy-card-body {
    padding: 0 30px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    position: relative;
}

/* ============= */
/* PRIMERA LINIA */
/* ============= */

.buy-card-name {
    display: -webkit-box; /* para puntos suspensivos */
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    padding-right: 30px; /* Espacio reservado para el corazón absoluto */
    width: 100%;
    margin: 8px 0 4px 0; 
    text-align: left;
    font-weight: 600;
    font-size: 1.3rem;
    color: var(--casi-negro);
    line-height: 1.3;
    text-decoration: none;
}
.buy-card-collection {
    clear: both;
    display: block;
    color: var(--terracota);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-top: -4px;
    margin-bottom: 16px;
    font-weight: 600;
}
.btn-fav {
    position: absolute;
    top: 10px;
    right: 15px;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    color: var(--terracota);
    transition: all 0.3s ease;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
}

.btn-fav svg {
    display: block; /* Para que el icono mantenga su forma */
}

/* Estado activo (favorito guardado) */
.btn-fav--active svg {
    fill: var(--carmin);
    stroke: var(--carmin);
}

/* Animación zoom al pulsar */
@keyframes fav-pop {
    0%   { transform: scale(1); }
    40%  { transform: scale(1.45); }
    70%  { transform: scale(0.9); }
    100% { transform: scale(1); }
}

.btn-fav--pop {
    animation: fav-pop 0.35s ease forwards;
}

/* ============ */
/* SEGONA LINIA */
/* ============ */

.buy-card-qty {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center; /* ← Centra el grupo de precio + stepper */
    align-items: center;     /* ← Alinea verticalmente por si acaso */
    margin-top: auto;        /* ← empuja precio+stepper+botón hacia abajo */ 
    gap: 0 5%;              /* ← Este será el espacio real entre precio y stepper */
}
.buy-card-price-original {
    display: block;
    font-size: 0.9rem;
    color: var(--gris-medio);
    text-decoration: line-through;
    line-height: 1.2;
    margin-bottom: 2px;
}
.buy-card-price-main {
    font-variant-numeric: tabular-nums;
    -webkit-font-feature-settings: "tnum";
    font-feature-settings: "tnum";
    font-size: 1.75rem;
	font-weight: 600;
    line-height: 45px;     /* misma altura que buy-card-stepper */
    white-space: nowrap;
    flex: 0 1 auto;        /* ← CAMBIO: No crece, solo ocupa su espacio */
    min-width: auto;       /* ← Quita el min-width si quieres que se peguen más */
    text-align: right;     /* Alinea el texto hacia el stepper */
}
.buy-card-euro {
    font-size: 1.25rem;
    margin-left: -5px;
}
.buy-card-price-dec {
    font-size: 1.25rem;
}
.buy-card-stepper {
    display: flex;
    justify-content: space-between;
    background-color: var(--fondo);
    border: 1px solid var(--gris-medio);
    border-radius: 50px;
    height: 45px; /* misma altura que buy-card-price-main */
    flex: 0 0 165px;
    box-sizing: border-box;
    position: relative;
    min-width: 120px;
}
.buy-card-stepper::before,
.buy-card-stepper::after {
    content: '';
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 24px;
    background: var(--gris-medio);
}
.buy-card-stepper::before { left: 44px; }
.buy-card-stepper::after  { right: 44px; }
.buy-card-stepper-btn {
    background: transparent;
    border: none;
    color: var(--gris-medio);
    width: 44px;
    height: 100%;
    font-size: 1.75rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    transition: color 0.15s, transform 0.1s;
    flex-shrink: 0;
    user-select: none;
    -webkit-user-select: none; /* Para Safari en iOS/Mac */
    -moz-user-select: none;    /* Para Firefox */
    -ms-user-select: none;     /* Para Internet Explorer/Edge */
    outline: none;             /* Elimina el borde de enfoque al hacer clic */
}
.buy-card-stepper-btn.disabled {
    opacity: 0.2;
    cursor: not-allowed;
    pointer-events: none;
}
.buy-card-stepper-btn.anim-click {
    transform: scale(1.35);
}
.buy-card-stepper-center {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-grow: 1;
    gap: 3px;
}
.buy-card-stepper-input {
    font-family: var(--font-texte);
    font-variant-numeric: tabular-nums;
    -webkit-font-feature-settings: "tnum";
    font-feature-settings: "tnum";
    font-size: 1.1rem;
    width: 44px;
    height: 28px;
    border-radius: 4px;
    background-color: transparent;
    border: none;
    text-align: right;
    margin: 0;
    cursor: pointer;
    outline: none;
    -moz-appearance: textfield;
}
.buy-card-stepper-input::-webkit-outer-spin-button,
.buy-card-stepper-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.buy-card-stepper-unit {
    font-size: 0.7rem;
    text-transform: lowercase;
    pointer-events: none;
    white-space: nowrap;
    display: inline-block;
    padding: 6px 2px 0 0;
}

/* ── Stock agotado ──────────────────────────────── */
.buy-card-qty.qty--agotado {
     display: none !important;
}
/* ── Stock máximo alcanzado ─────────────────────── */
.buy-card-stepper.at-max {
    border-color: var(--carmin);
    box-shadow: 0 0 0 3px rgba(204, 42, 42, 0.12);
    transition: border-color 0.2s, box-shadow 0.2s;
}
.stepper-stock-msg {
    width: 100%; /* Fuerza a que salte a la línea de abajo */
    text-align: center; /* Centra el texto */
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--carmin);
    margin-top: 6px; /* Un poco de aire respecto al stepper/precio */
    opacity: 0;
    transform: translateY(-4px);
    transition: opacity 0.2s ease, transform 0.2s ease;
    pointer-events: none;
    user-select: none;
    -webkit-user-select: none;
}

.stepper-stock-msg.visible {
    opacity: 1;
    transform: translateY(0);
}

/* ============= */
/* TERCERA LINIA */
/* ============= */

.buy-card-btn {
    background-color: var(--carmin);
    color: var(--blanco);
    padding: 15px 0;
    border-radius: 50px;
    font-size: 0.8rem;
	font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    cursor: pointer;
    transition: background-color 0.25s ease, transform 0.1s ease;
    margin: 0 15px 15px 15px;
    border: none;
    user-select: none; /* evita selecció de texte per doble click */
    -webkit-user-select: none; /* Para Safari y navegadores basados en WebKit */
}
.buy-card-btn:active {
    transform: scale(0.97);
}
.buy-card-btn[disabled] {
    /*opacity: 0.45;*/
    cursor: not-allowed;
    pointer-events: none;
    background-color: var(--gris-oscuro);
}

.buy-card-btn.success-btn {
    background-color: #3a9e6f;   /* verde — ajusta a tu paleta */
    border-color: #3a9e6f;
    color: #fff;
    cursor: default;
    animation: btn-pop 0.2s ease forwards; /* Pequeño "pop" al aparecer el estado verde */
}
@keyframes btn-pop {
    0%   { transform: scale(1); }
    50%  { transform: scale(1.04); }
    100% { transform: scale(1); }
}


/**************************************************/
/* INFO */
/**************************************************/
.info .container img {
    float:left;
    margin-right:15px;
	margin-bottom:12px;
}
.info .mapa-container {
	display:block;
    margin:15px auto;
    text-align:center;
}
.info .mapa{
	height:350px;
	width:100%;
}

/* ── Nota introductoria ─────────────────────────── */
.info-intro {
    font-size: 0.85em;
    color: var(--gris-oscuro);
    padding: 0.6em 1em;
    border-left: 3px solid var(--terracota);
    margin-bottom: 2em;
    background-color: rgba(200, 127, 105, 0.06);
}
.info-intro a {
    color: var(--terracota);
    font-weight: 600;
    text-decoration: none;
}
.info-intro a:hover {
    text-decoration: underline;
}

/* ── Preguntas frecuentes ───────────────────────── */
.texte p:has(.faq) {
    background: color-mix(in srgb, var(--salvia) 10%, white);
    border-radius: 8px;
    padding: 1em 1.2em;
    border-left: 3px solid var(--salvia);
    margin-bottom: 0.8em;
}
.faq {
    display: block;
    font-weight: 700;
    color: var(--casi-negro);
    margin-bottom: 0.3em;
    font-size: 1.02em;
}
.faq + br {
    display: none;
}

/* ── Tabla de tarifas ───────────────────────────── */
.taula {
    display: flex;
    flex-wrap: wrap;
    gap: 2.5em;
    margin: 1.5em 0;
    justify-content: center;
}
.taula > div {
    flex: 0 1 450px;
    background: var(--blanco);
    border-radius: 8px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
    overflow: hidden;
}
.taula h2 {
    background-color: var(--terracota);
    color: var(--blanco);
    font-size: calc(0.88em + 0.1rem);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 0.6em 12px;
    /*background: color-mix(in srgb, var(--terracota) 18%, white);*/
    text-align: left;
}
.taula table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9em;
}
.taula thead .th-left,
.taula thead .th-right {
    color: var(--carmin);
    padding: 8px 0;
    font-weight: 600;
    font-size: 0.9em;
    letter-spacing: 0.03em;
}
.taula thead .th-left {
    text-align: left;
    padding-left: 12px;
}
.taula thead .th-right {
    text-align: right;
    padding-right: 12px;
}
.taula td {
    padding: 7px 12px;
    border-bottom: 1px solid var(--gris-claro);
    color: var(--texto);
    white-space: nowrap;
}
.taula td + td {
    text-align: right;
    padding-right: 45px;
}
.taula tr:nth-child(even) td {
    background-color: rgba(0, 0, 0, 0.025);
}
.taula tr:last-child td {
    border-bottom: none;
}
.taula > div > p {
    font-size: 0.75em;
    color: var(--gris-oscuro);
    padding: 0.7em 12px;
    border-top: 1px solid var(--gris-claro);
    line-height: 1.5;
}


/* ============================================================== */
/* FICHA DE PRODUCTO (detalles.php)                               */
/* ============================================================== */

/* ── Layout principal ── */
.detail-layout {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 20px;
    margin-bottom: 40px;
    background-color: #fafafa;
}

/* ── Galería ── */
.detail-gallery {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.detail-thumbs {
    display: none; /* Solo escritorio */
}

.detail-thumb {
    width: 70px;
    height: 70px;
    object-fit: cover;
    border-radius: 4px;
    cursor: pointer;
    border: 2px solid transparent;
    opacity: 0.6;
    transition: opacity 0.15s, border-color 0.15s;
}

.detail-thumb--active,
.detail-thumb:hover {
    border-color: var(--carmin);
    opacity: 1;
}

.detail-gallery-main {
    position: relative;
    overflow: hidden;
    border-radius: 8px;
    background: var(--fondo);
    aspect-ratio: 1 / 1;
}

/* Flechas de navegación de galería */
.detail-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 5;
    background: rgba(255, 255, 255, 0.85);
    border: none;
    border-radius: 50%;
    width: 2.2rem;
    height: 2.2rem;
    font-size: 0.9rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.2s ease, background 0.15s;
    box-shadow: 0 1px 6px rgba(0,0,0,0.18);
    color: var(--casi-negro);
}
.detail-nav--prev { left: 10px; }
.detail-nav--next { right: 10px; }

/* Móvil: fondo muy suave, sin sombra, siempre visibles */
.detail-nav {
    background: rgba(255, 255, 255, 0.35);
    box-shadow: none;
    opacity: 1;
}

.detail-gallery-main .badge {
    top: 15px;
    left: 15px;
    padding: 5px 12px;
    font-size: 0.9rem;
}

/* Carrusel */
.detail-carousel-track {
    display: flex;
    height: 100%;
    transition: transform 0.3s ease;
}

.detail-carousel-slide {
    min-width: 100%;
    height: 100%;
    overflow: hidden;
}

.detail-carousel-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Indicador 1/N (solo móvil) */
.detail-indicator {
    position: absolute;
    top: 12px;
    right: 14px;
    background: rgba(0, 0, 0, 0.45);
    color: var(--blanco);
    font-size: 0.85rem;
    font-family: var(--font-texte);
    padding: 4px 11px;
    border-radius: 20px;
    letter-spacing: 0.5px;
    pointer-events: none;
}

.detail-no-img {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: var(--gris-medio);
    font-size: 0.85rem;
}

/* ── Información ── */
.detail-info{
	padding: 20px;
	color: var(--casi-negro);
}
.detail-title {
    /*font-family: var(--font-title);*/
    line-height: 1.25;
    margin-bottom: 6px;
}

.detail-subtitle {
    font-size: 0.85rem;
    letter-spacing: 0.95px;
    margin-bottom: 5px;
    text-transform: uppercase;
    color: var(--terracota);
	font-weight:600;
}

.detail-linea {
    border: none;
    border-top: 1px solid var(--gris-claro);
    margin: 14px 0;
}

.detail-precio-row {
    display: flex;
    align-items: baseline;
    flex-wrap: nowrap;
    gap: 0.75rem;
    margin-bottom: 35px;
}

.detail-precio-tachado {
    font-size: 0.95rem;
    color: var(--gris-medio);
    text-decoration: line-through;
}

.detail-precio-metro {
    color: var(--gris-medio);
}

.detail-precio-metro span {
    font-size: 0.95rem;
    font-weight: 400;
    color: var(--gris-medio);
    margin-left: 4px;
}

.detail-stock-msg {
    font-size: 0.95rem;
    color: var(--gris-medio);
    margin: 4px 0 0 0;
}

.detail-precio-label {
    font-size: 0.95rem;
    color: var(--gris-medio);
}

.detail-stock-ancho,
.detail-stock-sep {
    color: var(--gris-medio);
}

.detail-stock-msg--poc {
    color: var(--carmin);
    font-weight: 600;
}
.detail-stock-msg--agotado {
    color: var(--carmin);
    font-weight: 600;
}

/* ── Wrapper de compra (contiene stepper + botón) ── */
.detail-buy-wrap {
    background: transparent;
    border-radius: 0;
    transform: none !important;
    box-shadow: none !important;
    transition: none !important;
    overflow: visible;
    margin: 0;
    padding: 0;
}

.detail-buy-wrap .buy-card-btn {
    display: block;
    margin: 10px auto 0;
    width: 100%;
    max-width: 400px;
}

/* ── Botón de favoritos en fila de precio ── */
.detail-precio-row__fav {
    position: static;
    margin-left: auto;
    align-self: center;
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px;
    color: var(--terracota);
    -webkit-tap-highlight-color: transparent;
}

.detail-precio-row__fav:hover,
.detail-precio-row__fav.btn-fav--active {
    color: var(--carmin);
}

/* ── Separador info ── */
.detail-sep {
    border: none;
    border-top: 1px solid var(--gris-medio);
    margin: 24px 0;
}

/* ── Descripción ── */
.detail-description {
    font-size: 0.95rem;
    line-height: 1.75;
    margin-bottom: 24px;
}

/* ── Tabla de especificaciones ── */
.detail-specs {
    width: auto;
    min-width: 350px;
    border-collapse: collapse;
    font-size: 0.88rem;
    background: var(--salvia-fondo);
    border: 1px solid color-mix(in srgb, var(--salvia) 35%, white);
    border-radius: 8px;
    overflow: hidden;
    margin: 0 auto;
}

.detail-specs__caption {
    background: color-mix(in srgb, var(--salvia) 40%, white);
    text-align: center;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--casi-negro);
    padding: 7px 24px;
    border-bottom: 1px solid color-mix(in srgb, var(--salvia) 35%, white);
}

.detail-specs th {
    text-align: left;
    font-weight: 600;
    font-variant: small-caps;
    letter-spacing: 0.5px;
    color: var(--casi-negro);
    padding: 8px 20px 8px 24px;
    white-space: nowrap;
    border-bottom: 1px solid color-mix(in srgb, var(--salvia) 15%, white);
}

.detail-specs td {
    color: var(--texto);
    padding: 8px 24px 8px 16px;
    border-bottom: 1px solid color-mix(in srgb, var(--salvia) 15%, white);
}

.detail-specs tr:last-child th,
.detail-specs tr:last-child td {
    border-bottom: none;
}

/* ========================================================== */
/* ZOOM MODAL (lightbox de producto)                          */
/* ========================================================== */

.zoom-trigger {
    cursor: zoom-in;
}

.zoom-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 1000;
    align-items: center;
    justify-content: center;
}

.zoom-modal.is-open {
    display: flex;
}

@keyframes zoom-modal-in {
    from { opacity: 0; transform: scale(0.88); }
    to   { opacity: 1; transform: scale(1); }
}

.zoom-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.75);
}

.zoom-modal__container {
    position: relative;
    z-index: 1;
    background: var(--blanco);
    border-radius: 6px;
    overflow: hidden;
    width: min(92vw, 540px);
    display: flex;
    flex-direction: column;
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.45);
}

.zoom-modal.is-open .zoom-modal__container {
    animation: zoom-modal-in 0.45s cubic-bezier(0.2, 0, 0.2, 1) 200ms both;
}

.zoom-modal__close {
    position: absolute;
    top: 0.6rem;
    right: 0.6rem;
    z-index: 2;
    background: rgba(0, 0, 0, 0.5);
    color: var(--blanco);
    border: none;
    border-radius: 50%;
    width: 2.4rem;
    height: 2.4rem;
    font-size: 1.6rem;
    line-height: 1;
    padding-bottom: 0.1rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
}

.zoom-modal__close:hover {
    background: rgba(0, 0, 0, 0.85);
}

.zoom-modal__viewport {
    overflow: hidden;
    aspect-ratio: 1 / 1;
    width: 100%;
}

.zoom-modal__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1);
    transform-origin: center center;
    transition: transform 0.15s ease;
    will-change: transform;
}

.zoom-modal__footer {
    padding: 0.7rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border-top: 1px solid var(--gris-claro);
}

.zoom-modal__title {
    font-family: var(--font-texte);
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--casi-negro);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.zoom-modal__link {
    flex-shrink: 0;
    max-width: 50%;
    font-family: var(--font-texte);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--carmin);
    text-decoration: none;
    background: var(--blanco);
    border: 1.5px solid var(--carmin);
    border-radius: 50px;
    padding: 0.45rem 1.1rem;
    white-space: nowrap;
    text-align: center;
    transition: background 0.2s, color 0.2s;
}

.zoom-modal__link:hover {
    background: var(--carmin);
    color: var(--blanco);
}

.zoom-modal__nav-wrap {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-shrink: 0;
}

.zoom-modal__nav {
    background: none;
    border: 1.5px solid var(--gris-medio);
    border-radius: 50%;
    width: 2rem;
    height: 2rem;
    font-size: 0.85rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--casi-negro);
    transition: background 0.2s, border-color 0.2s;
}

.zoom-modal__nav:hover {
    background: var(--gris-claro);
}

.zoom-modal__nav-indicator {
    font-family: var(--font-texte);
    font-size: 0.8rem;
    color: var(--gris-oscuro);
    min-width: 2.8rem;
    text-align: center;
}

/* ========================================================== */
/* BLOG              */
/* ========================================================== */

.blog-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  margin-top: 32px;
  margin-bottom: 48px;
  padding: 0 20px;
}
.blog-card {
  background: #fff;
  border: 1px solid var(--gris-claro);
  border-radius: 6px;
  overflow: hidden;
  transition: box-shadow .2s, border-color .2s;
}
.blog-card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,.08);
  border-color: var(--gris-medio);
}
.blog-card a {
  display: block;
  text-decoration: none;
  color: inherit;
}
.blog-card__img {
  width: 100%;
  aspect-ratio: 300 / 170;
  object-fit: cover;
  display: block;
}
.blog-card__body {
  padding: 16px;
}
.blog-card__title {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--casi-negro);
  margin: 0 0 6px;
}
.blog-card__excerpt {
  font-size: 0.82rem;
  color: var(--gris-oscuro);
  line-height: 1.5;
  margin: 0;
}

/* ── Blog: artículo ────────────────────── */

.blog-post__meta {
  font-size: 0.8rem;
  color: var(--gris-oscuro);
  text-align: center;
  margin: -12px 0 24px;
}
.blog-post__back {
  display: block;
  margin-top: 40px;
  margin-bottom: 24px;
  font-size: 0.85rem;
  margin-left: 30px;
}
.blog-post__back a {
  color: var(--carmin);
  text-decoration: none;
  font-weight: 600;
}
.blog-post__back a:hover {
  text-decoration: underline;
}
/* ========================================================== */
/* VIDEOS */
/* ========================================================== */

.video-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
  margin-top: 32px;
  margin-bottom: 48px;
  padding: 0 20px;
}
.video-card {
  background: #fff;
  border: 1px solid var(--gris-claro);
  border-radius: 6px;
  overflow: hidden;
  transition: box-shadow .2s, border-color .2s;
}
.video-card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,.08);
  border-color: var(--gris-medio);
}
.video-card__embed {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 */
  height: 0;
  overflow: hidden;
}
.video-card__embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.video-card__body {
  padding: 14px 16px 16px;
}
.video-card__title {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--casi-negro);
  margin: 0 0 6px;
}
.video-card__desc {
  font-size: 0.82rem;
  color: var(--gris-oscuro);
  line-height: 1.5;
  margin: 0;
}

/* ========================================================== */
/* MODAL PARADA (no acceptem vendes temporalment              */
/* ========================================================== */

.parada-modal {
    position: fixed;
    inset: 0;
    z-index: 9000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}
.parada-modal[hidden] { display: none; }

.parada-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.55);
}
.parada-modal__box {
    position: relative;
    background: var(--blanco);
    border-radius: 16px;
    padding: 40px 32px 32px;
    max-width: 440px;
    width: 100%;
    text-align: left;
    box-shadow: 0 20px 60px rgba(0,0,0,.18);
    animation: parada-modal-in .2s ease;
}


@keyframes parada-modal-in {
    from { opacity: 0; transform: translateY(12px) scale(.97); }
    to   { opacity: 1; transform: none; }
}

.parada-modal__close {
    position: absolute;
    top: 14px;
    right: 14px;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--gris-oscuro);
    padding: 4px;
    border-radius: 4px;
    line-height: 0;
}
.parada-modal__close:hover { color: var(--casi-negro); }

.parada-modal__title {
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--casi-negro);
    margin: 0 0 14px;
}
.parada-modal__text {
    font-size: 0.9rem;
    color: var(--gris-oscuro);
    line-height: 1.6;
    margin: 0 0 10px;
}
.parada-modal__login-hint {
    font-size: 0.85rem;
    color: var(--gris-oscuro);
    background: var(--fondo);
    border-radius: 8px;
    padding: 10px 14px;
    margin: 10px 0 0;
}
.parada-modal__login-hint a {
    color: var(--carmin);
    font-weight: 600;
    text-decoration: none;
}
.parada-modal__login-hint a:hover { text-decoration: underline; }

.parada-modal__actions {
    margin-top: 24px;
}
.parada-modal__btn--close {
    display: inline-block;
    background: var(--carmin);
    color: var(--blanco);
    font-family: var(--font-texte);
    font-size: 0.9rem;
    font-weight: 700;
    padding: 12px 32px;
    border-radius: 50px;
    border: none;
    cursor: pointer;
    transition: background .2s;
}
.parada-modal__btn--close:hover { background: var(--casi-negro); }





















/* ========================================================== */
/* RESPONSIVE MOVILES PEQUEÑOS                                */
/* ========================================================== */


@media (max-width: 380px) {
  .minicat-grid {gap: 10px; padding: 0 10px;}
  .minicat-item {height: 110px;}
  .minicat-item .content h3 {font-size: 1rem;}
  .minicat-item .content p {font-size: 0.75rem;}
}

@media (max-width: 480px) {
    #toast-container {bottom: 16px; right: 16px; left: 16px;}
    .toast {min-width: unset; max-width: unset; width: 100%;}
}

/* ========================================================== */
/* RESPONSIVE 600px (tablet)                                  */
/* ========================================================== */

@media screen and (min-width:600px) {
    section { padding: 20px 5%; }
    .section-header {max-width: 800px;}
    .section-header h2 {margin-bottom: 25px;}
	.section-header-marca{margin-left: 0; margin-right: 0; padding: 20px; }
    .categories-grid .cat-item {width:45%; margin:20px 0;}
    .minicat-grid {grid-template-columns: repeat(3, 1fr)};
    .grid-opiniones { margin: 0 10px;}

    /* .slider-container davant necessari per donar especifitat */
    .slider-container .simple-card {
        flex: 0 0 35%; width: 35%;
    }
        
    .insta-card {flex: 0 0 300px; width: 300px;}

    .info {padding:15px 0;}
    .info .container {
        padding-left: 5%;
        padding-right: 5%;
    }

    .breadcrumb{ text-align: center; padding-left: 0;}
    .breadcrumb__middle   { display: inline; }
    .breadcrumb__ellipsis { display: none; }
    .breadcrumb__parent   { display: none; }

    .homepage .cards-list,
    .cards-list {
        grid-template-columns: repeat(2, 1fr);
        gap: 50px 5%;
        padding: 20px 0;
     }

    .simple-card-name,
    .simple-card-price { font-size: 1rem; letter-spacing: 0;}
    .simple-card-btn { font-size: 0.75rem; padding: 7px 12px; }

    .buy-card-body { padding: 0 15px; }
    .buy-card-price-unit { font-size: 0.7rem; }

    .stock-strip { padding: 4px; }
	
    .detail-layout {
        padding: 50px 10%;
	}

	.sort-bar {
    	padding: 0;
	}

    .blog-grid { padding: 0; grid-template-columns: repeat(2, 1fr); }
    .video-grid { padding: 0 5%; }
	
	    .footer-newsletter__row {
        flex-direction: row;
    }

    .footer-newsletter__input {
        flex: 1;
        width: auto;
    }

    .footer-newsletter__btn {
        width: auto;
        flex-shrink: 0;
    }

}





/* ========================================================== */
/* RESPONSIVE 1000 (desktop)                                  */
/* ========================================================== */
/* A partir d'aquí afegim els efectes :hover                  */
/* ========================================================== */

@media screen and (min-width:1000px) {

body {padding-top:105px;}
.encabezado {width: 95%; padding: 5px 15px 0 15px;}

/* Iconos de favoritos y mi-cuenta: visibles solo en desktop */
.mi-cuenta-icon { display: flex; }

/* Entradas de menú exclusivas del menú móvil */
.nav-item--mobile-only { display: none; }

/* ============== */
/* HEADER         */
/* ============== */
.encabezado {
	margin: 0 auto;
}
.encabezado .logo {
    grid-column: 1;
    display: flex;
    justify-content: flex-start;
    justify-self: left;
    align-items: center;
}
.encabezado .logo img {	margin-left: 0; height:60px; }
.encabezado .logo a { font-size:1.40rem; }


/* ============== */
/* BUSCAR         */
/* ============== */

.buscador {
	grid-column: 2;
	grid-row: 1;
	display: flex !important;
	justify-self: center;
	width: 100%;
	min-width: 350px; /* Evita que sea demasiado pequeño */
	max-width: 500px; /* Evita que sea demasiado gigante */
}
.buscador form { 
	width: 100%;
	display: flex;
	justify-content: center; /* Centra el input dentro del form */
	position: relative;
}
.buscador input { background-color: var(--blanco); }
.buscador .icono-lupa {	right: 12px; }
.buscador .icono-lupa:hover { transform:scale(1.10); }
.lupa-trigger { display: none; }

/* ============== */
/* ICONOS         */
/* ============== */

.controles{
    gap: 20px;
}

.mi-cuenta-icon svg {
	width: 45px;
	height: 45px;
}
.mi-cuenta-icon:hover {
	transform: scale(1.10);
	transition: transform 0.2s ease;
	color: var(--casi-negro);
}

.mi-carrito {
   transition:transform 0.2s ease;
   margin-right:0;
}
.mi-carrito svg {
  width:45px;
  cursor:pointer;
}
.mi-carrito:hover {
    transform:scale(1.10);
}

#qty {
 top:0;
 right:-8px;
 width:22px;
 height:22px;
 line-height:22px;
 font-size:0.75rem;
}

/* ============== */
/* MENU PRINCIPAL */
/* ============== */

.burguer { display:none; }

.main-nav {
    position:relative;
    top:0;
    width: var(--container-width);
    max-width: var(--max-width);
    /*margin: 5px auto 0 auto; /* Centrado horizontalmente */
    max-height:none; /* Anular restricción de altura móvil */
    opacity:1;
    overflow:visible; /* CRUCIAL  */
    box-shadow:none;
    background:transparent;
    border-top:1px solid var(--gris-claro);
    display: block !important;
}
.main-nav > ul {
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:2px;
}
.main-nav > ul > li {
    border:none;
    width:auto;
    flex:0 0 auto;
}
.menu-trigger,
.main-nav a,
.main-nav .children li a{
    padding:5px 12px;
    line-height: 28px;
}
.caret { display:none; } 

/* --- Submenús en Escritorio (Dropdown Flotante) --- */
.main-nav .children {
    display:none;
    position:absolute;
    top:100%;
    left:0;
    width:220px;
    background:var(--blanco);
    box-shadow:0 4px 10px rgba(0,0,0,0.15);
    border:1px solid var(--gris-claro);
    max-height:none;
    overflow:visible; /* Anula overflow:hidden del CSS móvil */
    z-index:1000;
}
/* Mostrar al hacer Hover en el padre */
.main-nav li.parent:hover .children {
    display:block;
}
.main-nav .children li {
    border:none;
}
.main-nav .children li a {
    text-align:left;
    padding-left:20px; /* Resetear indentación móvil */
    border-bottom:1px solid var(--gris-claro);
}
.main-nav a:hover,
.menu-trigger:hover {
   background-color:var(--gris-claro);
   color:var(--rojo);
}
.main-nav a:active,
.menu-trigger:active {
   background-color: var(--terracota-fondo);
}
.main-nav.activo {
   overflow-y:none; /* Scroll sólo para móvil */
}

/* --- Submenú categorizado: mega-menú ancho completo del nav --- */
/* El <li> padre se desposiciona para que el dropdown se ancle al .main-nav */
.main-nav > ul > li.parent--mega {
    position: static !important;
}
.main-nav .children--categorized {
    left: 0 !important;
    right: 0 !important;
    width: auto !important;
    min-width: unset;
    overflow: visible !important;
}
.main-nav li.parent:hover .children--categorized {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
}
.main-nav .children--categorized .menu-group {
    display: flex;
    flex-direction: column;
    border-right: 1px solid var(--gris-claro);
}
.main-nav .children--categorized .menu-group:last-child {
    border-right: none;
}
.main-nav .children--categorized .menu-group__label {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    margin: 0 1px;
    font-size: 0.9rem;
    background: var(--salvia-fondo);
    border-bottom: 1px solid var(--gris-claro);
}
.main-nav .children--categorized .menu-group__items li a {
    padding-left: 16px !important;
    padding-right: 16px;
    font-size: 1.15rem;
    background: var(--blanco);
    border-bottom: 1px solid var(--gris-claro);
    white-space: nowrap;
}
.main-nav .children--categorized .menu-group:nth-child(even) .menu-group__items li a {
    background: var(--fondo);
}
.main-nav .children--categorized .menu-group__items li a:hover {
    background: var(--gris-claro) !important;
    color: var(--rojo);
}

.menu-trigger::after {display:none;}

/* ============== */
/* FOOTER         */
/* ============== */

.trust-bar {
	display: flex; /* IMPORTANTE: Sobrescribe el grid del móvil */
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: space-between;
	align-items: flex-start;
	gap: 0;
	margin-top: 40px;
	padding: 40px 20px; /* Recuperamos padding grande */
}
.trust-item {
	flex: 1;
	width: auto;
	padding: 0 30px;
	border-right: 1px solid #e5e5e5;
}
.trust-item h3 { font-size: 1.1rem; } 
.trust-item p { font-size: 0.9rem; padding: 0 5px; }
.trust-item svg { width: 48px; height: 48px; }

.trust-item:last-child {
	border-right: none;
}

.legal {
	display: flex;
    flex-direction:row;
    padding:15px 0;
}
.legal li {
    width:auto;
    margin:0 30px;
    border-bottom:none;
    padding:0;
}
.legal a:hover { opacity:0.8; text-decoration:underline; }

.social-ico { transition:background 0.3s; }
.social-ico:hover { background-color:var(--texto); }

.whatsapp{
    height:60px;
    width:285px;
}
.whatsapp svg {
    min-width:70px;
    height:70px;
}

/* ============== */
/* HOMEPAGE       */
/* ============== */

.hero h2 {
    font-size: 1.3rem; /* Subtítulo más grande */
    margin-bottom: 2rem;
    max-width: 700px; /* Permitimos que sea más ancho */
}
.hero img { object-position: center center; }	
.hero .btn { transition:all 0.35s ease; }
.hero .btn:hover { transform:scale(1.10); background-color: var(--blanco);
  color: var(--ladrillo);}

section { padding: 20px 2%; }
.section-header h1 {text-align: center; }
.section-header h2 {font-size: 2.5rem; margin: 30px auto;}
.section-header p {font-size: 1.1rem;}
.section-linea-roja{margin-left: auto;}

.categories-grid .cat-item,
.categories-grid .minicat-item {width:30%; max-width: 500px; }

.categories-grid .cat-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 25px rgba(0,0,0, 0.15);
}
.categories-grid .cat-item:hover img {
    transform: scale(1.03);
}

.minicat-grid {
    margin: 0 40px;
    /*grid-template-columns: repeat(4, 1fr);*/
    gap:60px;
}
.minicat-item:hover img {
  transform: scale(1.08);
  filter: brightness(0.65);
}
.btn-google:hover {
    background-color: #fff;
    border-color: var(--salvia); /* verde salvia */
    color: var(--salvia);
    box-shadow: 0 4px 8px rgba(227, 38, 25, 0.15); /* Sombra rojiza suave */
    transform: translateY(-2px); /* Se eleva un poquito */
}
.google-button:hover {
    cursor: pointer;
    transform: scale(1.05);
    box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}

.btn-ver-todas:hover .btn-ver-todas-flecha {
    transition: all 0.3s ease;
    transform: translateX(5px);
    color: var(--carmin);
}

/* ============== */
/*     SLIDER     */
/* ============== */

.slider-container {margin: 0 30px;}

/* div davant necessari per donar especifitat */
.slider-container .simple-card {flex: 0 0 25%; width: 25%;}

.slider-nav-btn {
    display:flex;
    background: rgba(220,220,220,0.8);
    border: none;
    border-radius: 50%;
    width: 50px;
    height: 50px;
    cursor: pointer;
    position: absolute;
    z-index: 10;
    font-size: 1.11rem;
    top: 35%;
    justify-content: center;
    align-items: center;
    padding: 0;
    transition: all 0.3s ease;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.slider-nav-btn:hover {
    background-color: var(--blanco); /* Se vuelve blanco puro (más brillante) */
    color: var(--terracota);         /* La flecha se pinta del rosa de tu marca/insta */
    transform: scale(1.15); /* Crece un 15% (efecto pop) */
    box-shadow: 0 5px 15px rgba(0,0,0,0.2); /* La sombra crece (da sensación de elevación) */
}
.slider-nav-btn:active {
    transform: scale(0.95) !important; 
    background-color: #e8e8e8; 
    box-shadow: 0 1px 2px rgba(0,0,0,0.1); /* La sombra se reduce (botón pegado al fondo) */
}
.slider-nav-prev { left: -30px; }
.slider-nav-next { right: -30px; }


/* =============== */
/* Instagram CARDS */
/* =============== */
.insta-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
}
.btn-instagram-big {
 max-width: 400px;
 padding: 10px 25px;
 transition: transform 0.2s;
 font-size: 1rem;
}
.btn-instagram-big svg {
  width:50px;
  height:50px;
}
.btn-instagram-big:hover {
     background-color: #C13584; /* Un tono más oscuro/morado */
     transform: translateY(-2px);
     box-shadow: 0 6px 15px rgba(193, 53, 132, 0.4);
 }
/* ============== */
/* CARDS          */
/* ============== */

.homepage .cards-list,
.cards-list {
    grid-template-columns: repeat(3, 1fr);
    gap:50px 25px;
    padding: 20px 5px;
}
    /* Simple cards */
.simple-card-body {
    padding: 11px 14px 14px;
}
.simple-card-name,
.simple-card-price {
    font-size: 1.1rem;
}
.simple-card-subprice {
    font-size: 0.8rem;
    letter-spacing: 0.5px;
}
.simple-card-btn {
    font-size: 0.8rem;
}
.simple-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 4px 12px rgba(90,40,10,0.08), 0 24px 64px rgba(90,40,10,0.14);
}
.simple-card:hover .simple-card-btn {
    background-color: var(--ladrillo);
    color: var(--blanco);
}

.buy-card-price-main { /*font-size: 1.3rem;*/ min-width: 75px; }
/*.buy-card-euro, .buy-card-price-dec { font-size: 0.85rem; }*/
.buy-card-stepper { flex: 0 0 150px; }
.buy-card-stepper-input { font-size: 1rem; }
.buy-card-stepper-btn { width: 36px; }
.buy-card-stepper::before { left: 36px;}
.buy-card-stepper::after { right: 36px;}
	
.buy-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 4px 12px rgba(90,40,10,0.08), 0 24px 64px rgba(90,40,10,0.14);
}
.buy-card:hover .buy-card-img img {
    transform: scale(1.06);
}
.btn-fav:hover {
    transform: scale(1.1);
    color: var(--rojo);
}
.buy-card-stepper-btn:hover {
    color: var(--casi-negro);
}
.buy-card-btn:hover {
    background-color: var(--ladrillo);
    color: var(--blanco);
}

/* ============== */
/* INFO           */
/* ============== */

.info .container img { width:50%; margin-bottom: 0;}
.info .mapa { width:75%; }

/* ============================================================== */
/* FICHA DE PRODUCTO (detalles.php)                               */
/* ============================================================== */

.detail-layout {
    flex-direction: row;
    gap: 56px;
    align-items: flex-start;
    padding: 50px 20px;
	margin: 0 2%;
}

.detail-nav {
    background: rgba(255, 255, 255, 0.85);
    box-shadow: 0 1px 6px rgba(0,0,0,0.18);
    opacity: 0;
}

.detail-nav:hover { background: rgba(255, 255, 255, 1); }

.detail-gallery {
    flex: 1;
    flex-direction: row;
    gap: 12px;
    position: sticky;
    top: 120px;
    max-width: 560px;
	padding-left: 30px;
}

.detail-thumbs {
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex-shrink: 0;
}

.detail-gallery-main {
    flex: 1;
    aspect-ratio: 1 / 1;
}

.detail-gallery-main:hover .detail-nav { opacity: 1; }

.detail-indicator {
    display: none;
}

.detail-info {
    flex: 1;
	padding: 0 30px 0 0;
}

.sort-bar {
   	padding: 0 10px;
}

.blog-grid { padding: 0 1%; gap: 20px; grid-template-columns: repeat(2, 1fr); }
.blog-card__body {padding: 10px 15px 0 0;}

.video-grid { padding: 0 5%; grid-template-columns: repeat(2, 1fr); }

}





/* ========================================================== */
/* RESPONSIVE 1280px (pantalla gran)                          */
/* ========================================================== */

@media screen and (min-width:1280px) {
	.menu-trigger,
    .main-nav a,
    .main-nav .children li a{
        padding:8px 20px;
    }
    .menu-trigger,
    .main-nav a{
        padding-top: 4px;   
    }
    /* .slider-container davant necessari per donar especifitat */
    .slider-container .simple-card {
        flex: 0 0 20%;
    }
    
    .homepage .cards-list,
    .cards-list {
        grid-template-columns: repeat(4, 1fr);
	    padding: 20px 5px;
    }
	
	.section-header,
	.section-header p{
		max-width:1000px;
	}
	.section-header-marca{
		margin-left: 10px;
		margin-right: 10px;
		padding-left: 25px;
		padding-right:20px;
	}
	
    /* Buy cards */
    .buy-card-name { font-size: 1.1rem; }
	
	.sort-bar__select { margin-right: 20px; }

	.blog-grid { padding: 0 5%; gap: 30px;}

	.video-grid { grid-template-columns: repeat(3, 1fr); }
}





/* ========================================================== */
/* RESPONSIVE 1400px (pantalla molt gran)                          */
/* ========================================================== */

@media screen and (min-width:1400px) {
    .cards-list {
    	gap:50px 30px;
    	padding: 30px;
    }
	.section-header-marca {margin-left: 30px; margin-right: 30px;}
}






/* ========================================================== */
/* NAVEGACIÓN ANTERIOR / SIGUIENTE (detalles.php)             */
/* ========================================================== */

.detail-nav-products {
    display: flex;
    justify-content: center;
    gap: 12px;
    padding: 36px 20px 48px;
}

.detail-nav-products__btn {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    background: var(--terracota);
    color: var(--blanco);
    text-decoration: none;
    border-radius: 50px;
    padding: 10px 18px;
    font-family: var(--font-texte);
    font-size: 0.85rem;
    font-weight: 600;
    width: 200px;
    overflow: hidden;
    transition: background 0.2s;
}

.detail-nav-products__btn--disabled {
    background: transparent;
    pointer-events: none;
}

.detail-nav-products__btn:hover {
    background: color-mix(in srgb, var(--terracota) 80%, black);
}

.detail-nav-products__arrow {
    flex-shrink: 0;
    width: 1.2em;
    height: 1.2em;
}

.detail-nav-products__name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

/* ========================================================== */
/* RESPONSIVE (sin movimiento)                                */
/* ========================================================== */
/* A personas con problemas vestibulares les molesta mucho el movimiento */

@media (prefers-reduced-motion:reduce) {
    * {
        transition:none !important;
        animation:none !important;
    }
}

