/* ==========================================================================
   Casas Modulares Modernas — Design system
   Palette « Modular Cálido » (graphite + terracotta + sable), HSL.
   Typographies : Outfit (títulos) + Manrope (texto).
   Toda la identidad es personalizable desde las variables :root de abajo.
   ========================================================================== */

/* ---------- Polices (identité CMM : Outfit + Manrope) ---------- */
@font-face { font-family:'Manrope'; font-style:normal; font-weight:400; font-display:swap; src:url('../fonts/manrope-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family:'Manrope'; font-style:normal; font-weight:500; font-display:swap; src:url('../fonts/manrope-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family:'Manrope'; font-style:normal; font-weight:600; font-display:swap; src:url('../fonts/manrope-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family:'Manrope'; font-style:normal; font-weight:700; font-display:swap; src:url('../fonts/manrope-latin-700-normal.woff2') format('woff2'); }
@font-face { font-family:'Outfit'; font-style:normal; font-weight:600; font-display:swap; src:url('../fonts/outfit-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family:'Outfit'; font-style:normal; font-weight:700; font-display:swap; src:url('../fonts/outfit-latin-700-normal.woff2') format('woff2'); }
@font-face { font-family:'Outfit'; font-style:normal; font-weight:800; font-display:swap; src:url('../fonts/outfit-latin-800-normal.woff2') format('woff2'); }

/* ---------- Design tokens (personnalisables) ---------- */
:root{
  /* Palette « Modular Azul » : azul marino + azul + azul cielo */
  --background:0 0% 100%;
  --foreground:213 45% 14%;
  --card:0 0% 100%;
  --card-foreground:213 45% 14%;
  --primary:213 63% 22%;        /* azul marino #153C69 */
  --primary-foreground:0 0% 100%;
  --primary-glow:211 60% 34%;
  --secondary:210 68% 45%;      /* azul #2571BE */
  --secondary-foreground:0 0% 100%;
  --accent:205 78% 62%;         /* azul cielo #4FA8E7 */
  --accent-foreground:0 0% 100%;
  --muted:210 40% 96%;          /* gris azulado muy claro */
  --muted-foreground:213 18% 42%;
  --success:152 52% 38%;
  --warning:35 92% 52%;
  --destructive:0 72% 51%;
  --border:213 28% 88%;
  --input:213 28% 88%;
  --ring:210 68% 45%;
  --radius:.75rem;
  --gradient-primary:linear-gradient(135deg, hsl(213 63% 22%), hsl(211 60% 34%));
  --gradient-accent:linear-gradient(135deg, hsl(210 68% 45%), hsl(205 78% 62%));
  --shadow-card:0 4px 20px -4px hsl(213 45% 15% / .14);
  --shadow-elev:0 14px 44px -8px hsl(213 45% 15% / .26);
  --container:1200px;
  --font-body:'Manrope',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --font-head:'Outfit','Manrope',system-ui,sans-serif;
}

/* ---------- Reset léger ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;
  font-family:var(--font-body);
  color:hsl(var(--foreground));
  background:hsl(var(--background));
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{font-family:var(--font-head);font-weight:800;line-height:1.15;margin:0 0 .5em;color:hsl(var(--primary));letter-spacing:-.02em;}
/* Priorité de la typographie du thème sur les styles globaux d'Elementor / plugins.
   Placé tôt : les règles spécifiques (hero, cta en blanc) définies plus bas gardent la priorité. */
html body{font-family:var(--font-body);}
.site-main h1,.site-main h2,.site-main h3,.site-main h4{font-family:var(--font-head);color:hsl(var(--primary));}
h1{font-size:clamp(2rem,5vw,3.25rem);}
h2{font-size:clamp(1.6rem,3.5vw,2.4rem);}
h3{font-size:clamp(1.15rem,2vw,1.4rem);}
p{margin:0 0 1rem;}

/* ---------- Layout ---------- */
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:1.25rem;}
.section{padding-block:clamp(3rem,7vw,5.5rem);}
.section--muted{background:hsl(var(--muted));}
.section__head{text-align:center;max-width:720px;margin:0 auto 2.75rem;}
.section__head p{color:hsl(var(--muted-foreground));font-size:1.075rem;}
.eyebrow{display:inline-block;font-family:var(--font-head);font-weight:700;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:hsl(var(--secondary));margin-bottom:.75rem;}

/* ---------- Boutons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--font-head);font-weight:700;font-size:.95rem;
  padding:.8rem 1.6rem;border-radius:var(--radius);border:1px solid transparent;
  cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;
  line-height:1;white-space:nowrap;
}
.btn:hover{transform:translateY(-2px);}
.btn--primary{background:var(--gradient-primary);color:hsl(var(--primary-foreground));box-shadow:var(--shadow-card);}
.btn--accent{background:var(--gradient-accent);color:hsl(var(--accent-foreground));box-shadow:var(--shadow-card);}
.btn--outline{background:transparent;border-color:hsl(var(--border));color:hsl(var(--primary));}
.btn--outline:hover{background:hsl(var(--muted));}
.btn--ghost{background:hsl(var(--primary-foreground)/.12);color:hsl(var(--primary-foreground));}
.btn--lg{padding:1rem 2rem;font-size:1.05rem;}
.btn--block{width:100%;}

/* ---------- Header (multi-bandeaux) ---------- */
.site-header{position:sticky;top:0;z-index:60;}
/* En-tête pleine largeur : les bandeaux occupent toute la largeur de l'écran */
.site-header .container{max-width:100%;padding-inline:clamp(1rem,3vw,2.5rem);}
/* Icônes SVG dans les bandeaux */
.site-header svg{width:1em;height:1em;vertical-align:-.15em;}
.announce-bar .trust-item .ico,.announce-bar .trust-item svg{width:15px;height:15px;flex:none;}
.ship-bar svg,.info-bar svg{width:15px;height:15px;}
.header-search svg,.cart-link svg{width:20px;height:20px;}
/* Header pleine largeur (les bandeaux et l'en-tête s'étendent bord à bord) */
.site-header .container{max-width:100%;padding-inline:clamp(1rem,3vw,2.75rem);}
/* Icônes SVG des bandeaux */
.announce-bar svg,.ship-bar svg,.info-bar svg{width:15px;height:15px;vertical-align:middle;flex:none;}
.announce-bar .trust-item .ico{display:inline-flex;color:hsl(var(--accent));}
.ship-bar .ico,.ship-bar a svg{display:inline-flex;}
.info-bar .lang-cur svg{width:14px;height:14px;}

/* Bandeau 1 : badges de confiance — défilement automatique (ticker), fixe au scroll */
.announce-bar{background:hsl(var(--primary));color:hsl(0 0% 100% / .9);font-size:.8rem;overflow:hidden;}
.announce-track{display:flex;width:max-content;animation:cmm-marquee 42s linear infinite;}
.announce-track:hover{animation-play-state:paused;}
.announce-set{display:flex;align-items:center;gap:2.5rem;padding:.55rem 2.5rem .55rem 0;flex:none;}
.announce-bar .trust-item{display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap;font-weight:500;}
.announce-bar .trust-item .ico{font-size:.9rem;}
@keyframes cmm-marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media (prefers-reduced-motion:reduce){.announce-track{animation:none;flex-wrap:wrap;width:auto;justify-content:center;}.announce-set:nth-child(2){display:none;}}

/* Bandeau 2 : livraison (vert) */
.ship-bar{background:hsl(var(--secondary));color:#fff;font-size:.82rem;}
.ship-bar__inner{display:flex;align-items:center;justify-content:center;gap:1.5rem;padding-block:.5rem;flex-wrap:wrap;}
.ship-bar__msg{font-weight:500;text-align:center;display:inline-flex;align-items:center;gap:.45rem;}
.ship-bar__contacts{display:flex;gap:1.25rem;align-items:center;white-space:nowrap;}
.ship-bar__contacts a{font-weight:600;display:inline-flex;align-items:center;gap:.4rem;}
.info-bar__left,.info-bar .lang-cur{display:inline-flex;align-items:center;gap:.4rem;}

/* Bandeau 3 : infos (azul marino oscuro) */
.info-bar{background:hsl(213 52% 11%);color:hsl(0 0% 100% / .7);font-size:.78rem;}
.info-bar__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:.5rem;flex-wrap:wrap;}
.info-bar__right{display:flex;gap:1.25rem;align-items:center;flex-wrap:wrap;}
.info-bar .lang-cur{color:hsl(0 0% 100% / .9);font-weight:600;}

/* Bandeau 4 : en-tête principal (blanc, collant) */
.header-main{position:relative;z-index:60;background:hsl(var(--background)/.95);backdrop-filter:blur(10px);border-bottom:1px solid hsl(var(--border));}
.header-main .container{display:flex;align-items:center;gap:1.5rem;min-height:76px;}
.brand{display:flex;align-items:center;gap:.65rem;color:hsl(var(--primary));}
.brand img{height:46px;width:auto;}
.brand__text{display:flex;flex-direction:column;line-height:1;}
.brand__name{font-family:var(--font-head);font-weight:900;font-size:1.35rem;letter-spacing:.01em;white-space:nowrap;}
.brand__tag{font-family:var(--font-head);font-weight:600;font-size:.62rem;letter-spacing:.18em;color:hsl(var(--muted-foreground));margin-top:.25rem;white-space:nowrap;}
/* Logo personnalisé (Identidad del sitio) */
.brand--logo{display:flex;align-items:center;}
.brand--logo .custom-logo-link{display:inline-flex;align-items:center;line-height:0;}
.brand--logo .custom-logo{height:52px;width:auto;max-width:240px;object-fit:contain;}
@media (max-width:560px){ .brand--logo .custom-logo{height:42px;max-width:170px;} }
.header-search{background:none;border:0;cursor:pointer;padding:.35rem;line-height:0;color:hsl(var(--primary));opacity:.75;transition:opacity .15s;}
.header-search:hover{opacity:1;}
.header-search svg,.cart-link svg{width:21px;height:21px;}
.cart-link svg{color:hsl(var(--primary));}
.main-nav{margin-left:auto;}
.main-nav ul{display:flex;gap:1.15rem;list-style:none;margin:0;padding:0;align-items:center;}
.main-nav a{font-family:var(--font-head);font-weight:600;font-size:.92rem;color:hsl(var(--foreground));padding:.4rem 0;position:relative;white-space:nowrap;}
.main-nav a:hover{color:hsl(var(--secondary));}
.main-nav .current-menu-item>a{color:hsl(var(--secondary));}
/* Menu déroulant Categorías */
.main-nav .has-dropdown{position:relative;}
.main-nav .caret{display:inline-block;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;vertical-align:middle;margin-left:.15rem;opacity:.7;transition:transform .2s ease;}
.main-nav .has-dropdown:hover .caret{transform:rotate(180deg);}
.main-nav .dropdown{display:block;position:absolute;top:100%;left:0;min-width:250px;list-style:none;margin:.5rem 0 0;padding:.4rem;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:var(--shadow-elev);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .18s ease,transform .18s ease,visibility .18s;z-index:70;}
.main-nav .has-dropdown:hover>.dropdown,.main-nav .has-dropdown:focus-within>.dropdown{opacity:1;visibility:visible;transform:translateY(0);}
.main-nav .dropdown li{display:block;width:100%;}
.main-nav .dropdown a{display:block;padding:.55rem .8rem;border-radius:calc(var(--radius)*.55);font-size:.9rem;font-weight:600;white-space:nowrap;color:hsl(var(--foreground));}
.main-nav .dropdown a:hover{background:hsl(var(--muted));color:hsl(var(--secondary));}
.header-actions{display:flex;align-items:center;gap:.75rem;}
.cart-link{position:relative;display:inline-flex;align-items:center;gap:.4rem;font-weight:600;}
.cart-count{background:hsl(var(--secondary));color:#fff;font-size:.72rem;font-weight:700;min-width:20px;height:20px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;padding:0 .35rem;}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:.4rem;}
.nav-toggle span{display:block;width:24px;height:2px;background:hsl(var(--primary));margin:5px 0;transition:.2s;}

/* ---------- Hero ---------- */
.hero{position:relative;color:#fff;overflow:hidden;}
.hero__bg{position:absolute;inset:0;z-index:-2;}
.hero__bg img{width:100%;height:100%;object-fit:cover;}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(120deg,hsl(181 67% 14% / .92) 0%,hsl(181 60% 18% / .78) 55%,hsl(181 55% 16% / .55) 100%);}
.hero .container{padding-block:clamp(4rem,10vw,7rem);position:relative;}
.hero h1{color:#fff;max-width:16ch;}
.hero__lead{font-size:1.2rem;max-width:52ch;color:hsl(0 0% 100% / .9);margin-bottom:2rem;}
.hero__cta{display:flex;gap:1rem;flex-wrap:wrap;}
.hero__badges{display:flex;gap:1.75rem;flex-wrap:wrap;margin-top:2.5rem;color:hsl(0 0% 100% / .92);}
.hero__badges .item{display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:.95rem;}

/* ---------- Cartes catégories / produits ---------- */
.grid{display:grid;gap:1.5rem;}
.grid--3{grid-template-columns:repeat(3,1fr);}
.grid--4{grid-template-columns:repeat(4,1fr);}
.grid--2{grid-template-columns:repeat(2,1fr);}
.card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-card);transition:transform .2s ease,box-shadow .2s ease;display:flex;flex-direction:column;}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-elev);}
.card__media{aspect-ratio:4/3;overflow:hidden;background:hsl(var(--muted));}
.card__media img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.card:hover .card__media img{transform:scale(1.05);}
.card__body{padding:1.25rem;display:flex;flex-direction:column;gap:.5rem;flex:1;}
.card__title{font-family:var(--font-head);font-weight:700;font-size:1.1rem;color:hsl(var(--primary));}
.card__text{color:hsl(var(--muted-foreground));font-size:.92rem;}
.card__foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;padding-top:.5rem;}
.price{font-family:var(--font-head);font-weight:800;color:hsl(var(--secondary));font-size:1.15rem;}

/* ---------- Bandeau de confiance (trust badges) ---------- */
.trust{background:hsl(var(--muted));border-block:1px solid hsl(var(--border));}
.trust .container{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;padding-block:2rem;}
.trust .item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.35rem;}
.trust .item strong{font-family:var(--font-head);color:hsl(var(--primary));font-size:1rem;}
.trust .item span{font-size:.85rem;color:hsl(var(--muted-foreground));}
.trust .icon{width:44px;height:44px;color:hsl(var(--secondary));display:grid;place-items:center;}
.trust .icon svg{width:30px;height:30px;}
.feature .icon svg{width:24px;height:24px;}

/* ---------- Features ---------- */
.feature{display:flex;gap:1rem;align-items:flex-start;}
.feature .icon{flex:none;width:48px;height:48px;border-radius:var(--radius);background:hsl(var(--secondary)/.12);color:hsl(var(--secondary));display:grid;place-items:center;}
.feature h3{margin-bottom:.25rem;font-size:1.1rem;}
.feature p{color:hsl(var(--muted-foreground));font-size:.95rem;margin:0;}

/* ---------- CTA final ---------- */
.cta{background:var(--gradient-primary);color:#fff;border-radius:calc(var(--radius) * 1.5);padding:clamp(2rem,5vw,3.5rem);text-align:center;}
.cta h2{color:#fff;}
.cta p{color:hsl(0 0% 100% / .9);max-width:60ch;margin-inline:auto;}

/* ---------- Footer ---------- */
.site-footer{background:hsl(213 50% 12%);color:hsl(0 0% 100% / .75);font-size:.92rem;}
.site-footer a:hover{color:hsl(var(--accent));}
.site-footer h4{color:#fff;font-size:1rem;margin-bottom:1rem;font-family:var(--font-head);}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem;}

/* Bande atouts (haut du footer) */
.footer-features{border-bottom:1px solid hsl(0 0% 100% / .1);}
.footer-features .container{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;padding-block:1.75rem;}
.footer-features .cf{display:flex;gap:.85rem;align-items:flex-start;}
.footer-features .cf .ico{flex:none;width:42px;height:42px;border-radius:var(--radius);background:hsl(0 0% 100% / .06);display:grid;place-items:center;font-size:1.2rem;}
.footer-features .cf strong{display:block;color:#fff;font-family:var(--font-head);font-size:.98rem;}
.footer-features .cf span{color:hsl(0 0% 100% / .6);font-size:.85rem;}

/* Colonnes principales */
.footer-grid{display:grid;grid-template-columns:1.5fr 1.1fr 1.3fr 1.2fr;gap:2rem;padding-block:3rem;}
.footer-about .brand{color:#fff;}
.footer-about .brand span{font-family:var(--font-head);font-weight:900;font-size:1.1rem;}
.footer-brand .footer-logo-img{height:44px;width:auto;max-width:220px;object-fit:contain;}
.footer-contact ul{gap:.75rem;}
.footer-contact li{display:flex;gap:.5rem;align-items:flex-start;color:hsl(0 0% 100% / .7);}

/* Bandes villes / international */
.footer-strip{border-top:1px solid hsl(0 0% 100% / .1);padding-block:1.5rem;}
.footer-strip__title{display:block;font-family:var(--font-head);font-weight:700;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:hsl(0 0% 100% / .45);margin-bottom:.85rem;}
.footer-strip__links{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;}
.footer-strip__links a,.footer-strip__links span{color:hsl(0 0% 100% / .72);font-size:.88rem;}

/* Paiement sécurisé */
.footer-pay{border-top:1px solid hsl(0 0% 100% / .1);padding-block:1.75rem;}
.footer-pay__inner{display:grid;grid-template-columns:1.4fr 1fr;gap:2rem;align-items:center;}
.footer-pay .pay-row{display:flex;flex-wrap:wrap;gap:.5rem;}
.footer-pay .pay-chip{display:inline-flex;align-items:center;gap:.35rem;height:32px;padding:0 .7rem;background:hsl(0 0% 100% / .06);border:1px solid hsl(0 0% 100% / .12);border-radius:8px;font-size:.78rem;font-weight:600;color:hsl(0 0% 100% / .85);}
.footer-pay .pay-chip--ok{background:hsl(var(--secondary)/.2);border-color:hsl(var(--secondary));color:#fff;}
.footer-pay__note{color:hsl(0 0% 100% / .5);font-size:.8rem;text-align:right;margin:0;line-height:1.5;}

/* Bas de page */
.footer-bottom{border-top:1px solid hsl(0 0% 100% / .12);padding-block:1.5rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.82rem;color:hsl(0 0% 100% / .55);}

/* ---------- Elementor / pleine largeur ---------- */
.cmm-fullwidth{width:100%;}
/* Le contenu Elementor gère sa propre largeur ; on n'impose aucune contrainte ici. */
.elementor-page .site-main{padding:0;}

/* ---------- Page Contacto ---------- */
.contact-top{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:-2.5rem;position:relative;z-index:2;}
.contact-top .cc{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:1.35rem 1.5rem;box-shadow:var(--shadow-card);}
.contact-top .cc.is-primary{border-color:hsl(var(--secondary));border-width:2px;}
.contact-top .cc .lbl{display:flex;align-items:center;gap:.5rem;font-family:var(--font-head);font-weight:700;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:hsl(var(--secondary));margin-bottom:.5rem;}
.contact-top .cc .val{font-family:var(--font-head);font-weight:800;color:hsl(var(--primary));font-size:1.25rem;line-height:1.25;word-break:break-word;}
.contact-top .cc .sub{color:hsl(var(--muted-foreground));font-size:.85rem;margin-top:.35rem;}

.contact-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:2rem;margin-top:2.5rem;align-items:start;}
.contact-form-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:var(--shadow-card);padding:clamp(1.5rem,3vw,2.25rem);}
.contact-form-card .ff-placeholder{border:2px dashed hsl(var(--border));border-radius:var(--radius);padding:2.5rem 1.5rem;text-align:center;color:hsl(var(--muted-foreground));font-size:.95rem;}

/* Champs génériques (FluentForm hérite de ces styles de base) */
.contact-form-card input[type=text],
.contact-form-card input[type=email],
.contact-form-card input[type=tel],
.contact-form-card textarea,
.contact-form-card select{width:100%;border:1px solid hsl(var(--border));border-radius:var(--radius);padding:.8rem 1rem;font-family:var(--font-body);font-size:.95rem;background:hsl(var(--background));color:hsl(var(--foreground));}
.contact-form-card textarea{min-height:140px;resize:vertical;}
.contact-form-card label{font-family:var(--font-head);font-weight:600;font-size:.9rem;color:hsl(var(--primary));display:block;margin-bottom:.4rem;}

.contact-info{display:grid;gap:.85rem;}
.contact-info .info-item{display:flex;align-items:flex-start;gap:.85rem;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:1rem 1.15rem;box-shadow:var(--shadow-card);transition:transform .15s ease;}
.contact-info .info-item:hover{transform:translateY(-2px);}
.contact-info .info-item .ico{flex:none;width:42px;height:42px;border-radius:calc(var(--radius)*.7);background:hsl(var(--secondary)/.12);color:hsl(var(--secondary));display:grid;place-items:center;}
.contact-info .info-item .k{font-family:var(--font-head);font-weight:700;color:hsl(var(--primary));font-size:.95rem;}
.contact-info .info-item .v{color:hsl(var(--muted-foreground));font-size:.9rem;margin-top:.15rem;}
.contact-info .info-item a:hover{color:hsl(var(--secondary));}

/* Bande de réassurance (avant footer) */
.contact-features{border-top:1px solid hsl(var(--border));background:hsl(var(--muted));}
.contact-features .container{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;padding-block:2.25rem;}
.contact-features .cf{display:flex;gap:.85rem;align-items:flex-start;}
.contact-features .cf .ico{flex:none;width:44px;height:44px;border-radius:var(--radius);background:hsl(var(--secondary)/.12);color:hsl(var(--secondary));display:grid;place-items:center;}
.contact-features .cf strong{display:block;font-family:var(--font-head);color:hsl(var(--primary));font-size:1rem;}
.contact-features .cf span{color:hsl(var(--muted-foreground));font-size:.88rem;}

@media (max-width:900px){
  .contact-top{grid-template-columns:1fr;margin-top:1.5rem;}
  .contact-layout{grid-template-columns:1fr;}
  .contact-features .container{grid-template-columns:1fr;gap:1.25rem;}
}

/* ---------- Catálogo 3D ---------- */
.t3d{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-elev);background:hsl(213 55% 18%);}
.t3d__stage{position:relative;width:100%;height:clamp(360px,60vh,620px);}
.t3d__stage canvas{display:block;width:100%!important;height:100%!important;}
.t3d__loading{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-family:var(--font-head);font-weight:700;letter-spacing:.02em;background:hsl(213 55% 15%);z-index:2;}
.t3d__hint{position:absolute;left:1rem;bottom:1rem;z-index:3;color:hsl(0 0% 100% / .7);font-size:.82rem;display:flex;align-items:center;gap:.4rem;pointer-events:none;}
.t3d__cats{position:absolute;top:1rem;left:1rem;right:1rem;z-index:3;display:flex;flex-wrap:wrap;gap:.5rem;}
.t3d__cats button{font-family:var(--font-head);font-weight:700;font-size:.82rem;padding:.5rem .9rem;border-radius:999px;border:1px solid hsl(0 0% 100% / .25);background:hsl(0 0% 100% / .1);color:#fff;cursor:pointer;backdrop-filter:blur(6px);transition:background .15s,transform .15s;}
.t3d__cats button:hover{transform:translateY(-1px);background:hsl(0 0% 100% / .2);}
.t3d__cats button.is-active{background:var(--gradient-accent);border-color:transparent;}
.t3d__classic{position:absolute;top:1rem;right:1rem;z-index:4;}
.t3d__cats-wrap{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;}
/* Vue classique (grille d'images) */
.t3d__classic-view{display:none;padding:1.5rem;background:hsl(var(--card));}
.t3d--classic .t3d__stage,.t3d--classic .t3d__cats,.t3d--classic .t3d__hint{display:none;}
.t3d--classic .t3d__classic-view{display:block;}
.t3d--error .t3d__loading::after{content:" — WebGL no disponible";}
/* Viewer 3D dans la fiche produit */
.product-3d{margin-top:2.5rem;}
.t3d--product .t3d__stage{height:clamp(320px,42vh,440px);}

/* ---------- Témoignages ---------- */
.testi-rating{color:hsl(38 92% 50%);letter-spacing:.05em;}
.testi-grid{margin-top:.5rem;}
.testi{display:flex;flex-direction:column;gap:.85rem;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow-card);transition:transform .2s ease,box-shadow .2s ease;}
.testi:hover{transform:translateY(-4px);box-shadow:var(--shadow-elev);}
.testi__stars{color:hsl(38 92% 50%);font-size:1.05rem;letter-spacing:.08em;line-height:1;}
.testi__text{color:hsl(var(--foreground));font-size:.96rem;line-height:1.6;margin:0;flex:1;}
.testi__author{display:flex;align-items:center;gap:.75rem;margin-top:.25rem;padding-top:.9rem;border-top:1px solid hsl(var(--border));}
.testi__avatar{flex:none;width:42px;height:42px;border-radius:50%;background:var(--gradient-primary);color:#fff;display:grid;place-items:center;font-family:var(--font-head);font-weight:800;font-size:.9rem;}
.testi__meta{display:flex;flex-direction:column;line-height:1.2;}
.testi__name{font-family:var(--font-head);font-weight:700;color:hsl(var(--primary));font-size:.95rem;}
.testi__city{color:hsl(var(--muted-foreground));font-size:.82rem;}

/* ---------- Pages Nosotros / Usos / FAQ ---------- */
.prose{max-width:760px;margin:0 auto;color:hsl(var(--muted-foreground));font-size:1.05rem;}
.prose p{margin:0 0 1.1rem;}
.prose strong{color:hsl(var(--foreground));}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;text-align:center;}
.stats .stat{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:1.5rem 1rem;box-shadow:var(--shadow-card);}
.stats .n{font-family:var(--font-head);font-weight:900;font-size:clamp(1.8rem,3vw,2.4rem);color:hsl(var(--secondary));line-height:1;}
.stats .l{color:hsl(var(--muted-foreground));font-size:.9rem;margin-top:.4rem;}

.use-item{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow-card);transition:transform .2s ease,box-shadow .2s ease;}
.use-item:hover{transform:translateY(-4px);box-shadow:var(--shadow-elev);}
.use-item .icon{width:52px;height:52px;border-radius:var(--radius);background:hsl(var(--secondary)/.12);color:hsl(var(--secondary));display:grid;place-items:center;margin-bottom:1rem;}
.use-item .icon svg{width:26px;height:26px;}
.use-item h3{font-size:1.1rem;margin-bottom:.4rem;}
.use-item p{color:hsl(var(--muted-foreground));font-size:.92rem;margin:0;}

.faq-list{max-width:820px;margin:0 auto;display:grid;gap:.85rem;}
.faq-item{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-card);}
.faq-item summary{list-style:none;cursor:pointer;padding:1.15rem 1.35rem;font-family:var(--font-head);font-weight:700;color:hsl(var(--primary));display:flex;justify-content:space-between;gap:1rem;align-items:center;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+";font-size:1.5rem;font-weight:400;color:hsl(var(--secondary));line-height:1;}
.faq-item[open] summary::after{content:"–";}
.faq-item .faq-a{padding:0 1.35rem 1.25rem;color:hsl(var(--muted-foreground));font-size:.98rem;}

@media (max-width:720px){ .stats{grid-template-columns:1fr 1fr;} }

/* ---------- Utilitaires ---------- */
.text-center{text-align:center;}
.mt-2{margin-top:2rem;}
.badge{display:inline-block;background:hsl(var(--secondary)/.12);color:hsl(var(--secondary));font-weight:700;font-size:.75rem;padding:.25rem .6rem;border-radius:999px;}

/* ========== Différenciation visuelle (identité propre) ========== */
/* Motif de marque (grille de points) sur le CTA foncé */
.cta{position:relative;overflow:hidden;}
.cta::before{content:"";position:absolute;inset:0;background:radial-gradient(circle, hsl(0 0% 100% / .06) 1.1px, transparent 1.3px) 0 0/22px 22px;pointer-events:none;}
.cta>*{position:relative;z-index:1;}

/* Cartes : liseré d'accent animé au survol */
.card,li.product .product-card,.use-item,.testi{position:relative;}
.card::after,li.product .product-card::after{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--gradient-accent);transform:scaleX(0);transform-origin:left;transition:transform .3s ease;z-index:3;}
.card:hover::after,li.product .product-card:hover::after{transform:scaleX(1);}

/* Boutons : léger relief au survol */
.btn--primary:hover,.btn--accent:hover{filter:brightness(1.06);}

/* Micro-animations : apparition au défilement */
.cmm-anim{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease;}
.cmm-anim.in-view{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){.cmm-anim{opacity:1!important;transform:none!important;transition:none!important;}}

/* ---------- Responsive ---------- */
@media (max-width:1100px){
  /* Menu mobile EN FLUX : il pousse le contenu vers le bas, toujours sous la barre blanche */
  .header-main .container{flex-wrap:wrap;}
  .header-actions{margin-left:auto;}
  .main-nav{order:10;flex-basis:100%;width:100%;margin-left:0;max-height:0;overflow:hidden;transition:max-height .3s ease;background:hsl(var(--background));}
  .main-nav.open{max-height:85vh;overflow-y:auto;border-top:1px solid hsl(var(--border));}
  .main-nav ul{flex-direction:column;align-items:stretch;gap:0;padding:.25rem 0 .75rem;}
  .main-nav li{width:100%;border-bottom:1px solid hsl(var(--border));}
  .main-nav li:last-child{border-bottom:0;}
  .main-nav a{display:block;padding:.9rem .25rem;font-size:1rem;}
  .nav-toggle{display:block;}
  /* Dropdown Categorías : déplié et indenté dans le menu mobile */
  .main-nav .dropdown{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;border-radius:0;min-width:0;margin:0;padding:0 0 .4rem;background:hsl(var(--muted));}
  .main-nav .dropdown a{padding:.7rem 1rem;font-size:.92rem;font-weight:500;}
  .main-nav .dropdown li{border-bottom:1px solid hsl(var(--border));}
  .main-nav .caret{transform:rotate(180deg);}
}
@media (max-width:960px){
  .grid--4{grid-template-columns:repeat(2,1fr);}
  .grid--3{grid-template-columns:repeat(2,1fr);}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .footer-features .container{grid-template-columns:1fr;gap:1.25rem;}
  .footer-pay__inner{grid-template-columns:1fr;}
  .footer-pay__note{text-align:left;}
  .trust .container{grid-template-columns:repeat(2,1fr);}
  .ship-bar__msg{font-size:.78rem;}
  .info-bar__inner{justify-content:center;}
}
@media (max-width:560px){
  .grid--4,.grid--3,.grid--2{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .trust .container{grid-template-columns:1fr 1fr;}
  .hero__cta{flex-direction:column;}
  .hero__cta .btn{width:100%;}
  .announce-bar{font-size:.74rem;}
  .announce-set{gap:1.75rem;padding-right:1.75rem;}
  .ship-bar__contacts{display:none;}
}

/* ==========================================================================
   Variantes de secciones (identidad Casas Modulares Modernas)
   ========================================================================== */

/* ---------- Hero « split » (texto + imagen) ---------- */
.hero-split{background:linear-gradient(180deg,hsl(var(--muted)) 0%,hsl(var(--background)) 100%);overflow:hidden;}
.hero-split__inner{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:center;padding-block:clamp(2.75rem,6vw,4.75rem);}
.hero-split__text h1{max-width:16ch;}
.hero-split .hero__lead{color:hsl(var(--muted-foreground));font-size:1.15rem;max-width:52ch;margin-bottom:1.75rem;}
.hero-split .hero__cta{display:flex;gap:1rem;flex-wrap:wrap;}
.hero-split__points{list-style:none;margin:1.9rem 0 0;padding:0;display:grid;gap:.65rem;}
.hero-split__points li{display:flex;gap:.55rem;align-items:center;font-weight:600;color:hsl(var(--primary));}
.hero-split__points li svg{width:18px;height:18px;color:hsl(var(--secondary));flex:none;}
.hero-split__media{position:relative;}
.hero-split__media>img{width:100%;height:auto;aspect-ratio:4/3.4;object-fit:cover;border-radius:calc(var(--radius) * 1.4);box-shadow:var(--shadow-elev);}
.hero-split__stat{position:absolute;left:-.75rem;bottom:1.5rem;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:var(--shadow-elev);padding:.9rem 1.15rem;display:flex;flex-direction:column;}
.hero-split__stat .n{font-family:var(--font-head);font-weight:800;font-size:1.55rem;color:hsl(var(--secondary));line-height:1;}
.hero-split__stat .l{font-size:.78rem;color:hsl(var(--muted-foreground));margin-top:.2rem;}
.hero-split__badge{position:absolute;right:-.4rem;top:1.25rem;background:var(--gradient-primary);color:#fff;border-radius:999px;padding:.55rem 1.1rem;display:flex;flex-direction:column;line-height:1;box-shadow:var(--shadow-elev);}
.hero-split__badge strong{font-family:var(--font-head);font-size:1.15rem;}
.hero-split__badge span{font-size:.66rem;opacity:.85;margin-top:.25rem;}
@media (max-width:900px){
  .hero-split__inner{grid-template-columns:1fr;}
  .hero-split__media{order:-1;max-width:560px;margin-inline:auto;}
}

/* ---------- « Por qué » : columna intro + lista numerada ---------- */
.why__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,5vw,4rem);align-items:start;}
.why__intro{position:sticky;top:110px;}
.why__intro h2{margin-bottom:1rem;}
.why__intro p{color:hsl(var(--muted-foreground));margin-bottom:1.5rem;}
.why__list{display:grid;gap:0;}
.why__item{display:flex;gap:1.25rem;padding:1.4rem 0;border-top:1px solid hsl(var(--border));}
.why__item:last-child{border-bottom:1px solid hsl(var(--border));}
.why__num{font-family:var(--font-head);font-weight:800;font-size:1.5rem;color:hsl(var(--accent));min-width:2.6rem;line-height:1.1;}
.why__item h3{margin-bottom:.3rem;font-size:1.15rem;}
.why__item p{color:hsl(var(--muted-foreground));font-size:.95rem;margin:0;}
@media (max-width:900px){ .why__grid{grid-template-columns:1fr;} .why__intro{position:static;} }

/* ---------- « Cómo funciona » : 4 pasos ---------- */
.process__grid{margin-top:.5rem;}
.pstep{position:relative;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:1.85rem 1.4rem 1.5rem;box-shadow:var(--shadow-card);}
.pstep__n{position:absolute;top:-15px;left:1.4rem;width:34px;height:34px;border-radius:50%;background:var(--gradient-accent);color:hsl(var(--accent-foreground));display:grid;place-items:center;font-family:var(--font-head);font-weight:800;font-size:.95rem;box-shadow:var(--shadow-card);}
.pstep__ic{width:48px;height:48px;border-radius:var(--radius);background:hsl(var(--secondary)/.12);color:hsl(var(--secondary));display:grid;place-items:center;margin:.4rem 0 1rem;}
.pstep__ic svg{width:26px;height:26px;}
.pstep h3{font-size:1.05rem;margin-bottom:.35rem;}
.pstep p{color:hsl(var(--muted-foreground));font-size:.92rem;margin:0;}

/* ---------- Catálogo « bento » (primera categoría destacada) ---------- */
.bento{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;}
.bento .card--feat{grid-column:span 2;flex-direction:row;}
.bento .card--feat .card__media{aspect-ratio:auto;width:55%;min-height:250px;flex:none;}
.bento .card--feat .card__body{justify-content:center;padding:1.75rem;}
.bento .card--feat .card__title{font-size:1.5rem;}
.bento .card--feat .card__text{font-size:1rem;}
@media (max-width:760px){
  .bento{grid-template-columns:1fr 1fr;}
  .bento .card--feat{grid-column:span 2;flex-direction:column;}
  .bento .card--feat .card__media{width:100%;aspect-ratio:4/3;min-height:0;}
  .bento .card--feat .card__title{font-size:1.2rem;}
}
@media (max-width:520px){ .bento{grid-template-columns:1fr;} }

/* ---------- CTA banda a todo el ancho ---------- */
.cta-band{background:var(--gradient-primary);color:#fff;position:relative;overflow:hidden;}
.cta-band::before{content:"";position:absolute;inset:0;background:radial-gradient(circle, hsl(0 0% 100% / .06) 1.1px, transparent 1.3px) 0 0/22px 22px;pointer-events:none;}
.cta-band__inner{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding-block:clamp(2.5rem,6vw,4rem);position:relative;z-index:1;flex-wrap:wrap;}
.cta-band h2{color:#fff;margin-bottom:.5rem;}
.cta-band__text .eyebrow{margin-bottom:.6rem;}
.cta-band p{color:hsl(0 0% 100% / .85);margin:0;max-width:46ch;}
.cta-band__actions{display:flex;gap:1rem;flex-wrap:wrap;}
@media (max-width:760px){ .cta-band__actions{width:100%;} .cta-band__actions .btn{flex:1;} }

/* ---------- Bandeau défilant en SECTION (milieu de page) ---------- */
.announce-bar--section{display:block;font-size:.92rem;border-block:1px solid hsl(0 0% 100% / .14);box-shadow:var(--shadow-card);}
.announce-bar--section .announce-set{gap:3rem;padding-block:1.05rem;padding-right:3rem;}
.announce-bar--section .trust-item{font-weight:600;}
.announce-bar--section .trust-item .ico{color:hsl(var(--accent));}
.announce-bar--section .trust-item svg{width:18px;height:18px;}
@media (max-width:560px){ .announce-bar--section{font-size:.82rem;} .announce-bar--section .announce-set{gap:2rem;padding-block:.85rem;} }

/* ==========================================================================
   Header refonte (barre utilitaire + búsqueda central + barra de categorías)
   ========================================================================== */
.site-header{position:relative;}                    /* seule la barre principale sera sticky */

/* Barre utilitaire */
.util-bar{background:hsl(213 52% 13%);color:hsl(0 0% 100% / .82);font-size:.8rem;}
.util-bar__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:.5rem;flex-wrap:wrap;}
.util-bar__left,.util-bar__right{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;}
.util-bar a,.util-bar span{display:inline-flex;align-items:center;gap:.4rem;color:inherit;}
.util-bar a:hover{color:#fff;}
.util-bar svg{width:15px!important;height:15px!important;color:hsl(var(--accent));}

/* En-tête principal (sticky) */
.header-main{position:sticky;top:0;z-index:60;background:hsl(var(--background));border-bottom:1px solid hsl(var(--border));box-shadow:0 1px 0 hsl(var(--border));backdrop-filter:none;}
.header-main .container{display:flex;align-items:center;gap:1.5rem;min-height:84px;}

/* Recherche centrale */
.header-search{flex:1;max-width:560px;display:flex;align-items:center;background:hsl(var(--muted));border:1px solid hsl(var(--border));border-radius:999px;padding:.15rem .15rem .15rem .35rem;opacity:1;}
.header-search input[type=search]{flex:1;min-width:0;border:0;background:transparent;padding:.7rem .9rem;font-family:var(--font-body);font-size:.95rem;color:hsl(var(--foreground));outline:none;-webkit-appearance:none;}
.header-search input[type=search]::placeholder{color:hsl(var(--muted-foreground));}
.header-search button{flex:none;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;background:var(--gradient-primary);color:#fff;cursor:pointer;transition:filter .15s ease;padding:0;}
.header-search button:hover{filter:brightness(1.1);}
.header-search button svg{width:20px;height:20px;}

/* CTA téléphone dans l'en-tête */
.header-actions{display:flex;align-items:center;gap:1rem;margin-left:auto;}
.header-cta{display:inline-flex;align-items:center;gap:.6rem;white-space:nowrap;}
.header-cta__ic{width:42px;height:42px;border-radius:50%;background:hsl(var(--secondary)/.12);color:hsl(var(--secondary));display:grid;place-items:center;flex:none;}
.header-cta__ic svg{width:20px;height:20px;}
.header-cta__txt{display:flex;flex-direction:column;line-height:1.15;}
.header-cta__txt small{font-size:.68rem;color:hsl(var(--muted-foreground));font-weight:600;}
.header-cta__txt strong{font-family:var(--font-head);font-weight:800;color:hsl(var(--primary));font-size:1rem;}

/* Barre de catégories */
.cat-bar{background:hsl(var(--muted));border-bottom:1px solid hsl(var(--border));}
.cat-bar .container{display:flex;align-items:center;justify-content:center;gap:1rem;min-height:50px;}
.cat-bar .main-nav{margin-left:0;}
.cat-bar .main-nav .nav-list{gap:1.5rem;}
.cat-bar .main-nav a{font-size:.9rem;}
.cat-bar__cta{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font-head);font-weight:700;font-size:.85rem;color:hsl(var(--secondary));white-space:nowrap;}
.cat-bar__cta svg{width:18px;height:18px;}
.cat-bar__cta:hover{color:hsl(var(--primary));}

/* Responsive header */
@media (max-width:1100px){
  .header-main .container{flex-wrap:wrap;row-gap:.5rem;}
  .header-search{order:3;flex-basis:100%;max-width:none;}
  .header-cta__txt{display:none;}
  .util-bar__right{display:none;}
  .cat-bar .container{display:block;min-height:0;}
  .cat-bar__cta{display:none;}
}
@media (max-width:560px){
  .util-bar__inner{justify-content:center;}
  .util-bar__left{gap:1rem;font-size:.75rem;}
}

/* ==========================================================================
   Footer refonte
   ========================================================================== */
/* Bouton outline clair (sur fond foncé) */
.btn--outline-light{background:transparent;border-color:hsl(0 0% 100% / .4);color:#fff;}
.btn--outline-light:hover{background:hsl(0 0% 100% / .12);border-color:#fff;}

/* Bande contact CTA */
.footer-cta{border-bottom:1px solid hsl(0 0% 100% / .1);background:linear-gradient(180deg,hsl(213 52% 15%),transparent);}
.footer-cta__inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-block:2.25rem;flex-wrap:wrap;}
.footer-cta__eyebrow{display:inline-block;font-family:var(--font-head);font-weight:700;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:hsl(var(--accent));margin-bottom:.5rem;}
.footer-cta__text h3{color:#fff;font-size:clamp(1.3rem,2.5vw,1.7rem);margin:0 0 .35rem;}
.footer-cta__text p{color:hsl(0 0% 100% / .72);margin:0;max-width:46ch;}
.footer-cta__actions{display:flex;gap:.85rem;flex-wrap:wrap;}
.footer-cta__actions .btn svg{width:18px;height:18px;}

/* Mini-atouts dans la colonne marque */
.footer-trust{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.25rem;}
.footer-trust__item{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:600;color:hsl(0 0% 100% / .85);background:hsl(0 0% 100% / .06);border:1px solid hsl(0 0% 100% / .1);border-radius:999px;padding:.3rem .7rem;}
.footer-trust__item svg{width:15px;height:15px;color:hsl(var(--accent));}

/* Liste contact à icônes */
.footer-contact ul{gap:.85rem;}
.footer-contact li{display:flex;gap:.6rem;align-items:flex-start;color:hsl(0 0% 100% / .78);}
.footer-contact li svg{width:17px;height:17px;flex:none;margin-top:.15rem;color:hsl(var(--accent));}

/* Chips de paiement (icône) */
.footer-pay .pay-chip svg{width:14px;height:14px;}

/* ==========================================================================
   Slider « Nuestro catálogo »
   ========================================================================== */
.slider-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;text-align:left;max-width:none;margin-bottom:1.75rem;}
.slider-head .eyebrow{margin-bottom:.5rem;}
.slider-head h2{margin-bottom:.4rem;}
.slider-head p{color:hsl(var(--muted-foreground));font-size:1.05rem;margin:0;}
.slider-nav{display:flex;gap:.6rem;flex:none;}
.slider-btn{width:46px;height:46px;border-radius:50%;border:1px solid hsl(var(--border));background:hsl(var(--card));color:hsl(var(--primary));font-size:1.5rem;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--shadow-card);transition:transform .15s ease,background .15s ease,color .15s ease,opacity .15s ease;}
.slider-btn:hover{background:var(--gradient-primary);color:#fff;transform:translateY(-2px);border-color:transparent;}
.slider-btn[disabled]{opacity:.3;cursor:default;pointer-events:none;transform:none;}
.cat-slider{position:relative;}
.cat-slider__track{display:flex;gap:1.25rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:.25rem .25rem 1rem;scrollbar-width:none;-ms-overflow-style:none;}
.cat-slider__track::-webkit-scrollbar{display:none;}
.cat-slide{flex:0 0 auto;width:clamp(240px,26vw,300px);scroll-snap-align:start;}
@media (max-width:560px){ .slider-head{flex-direction:column;align-items:flex-start;} .slider-nav{align-self:flex-end;} .cat-slide{width:80vw;} }

/* ==========================================================================
   Boutons plus arrondis (pill) + menu centré
   ========================================================================== */
.btn,.button,.wp-element-button{border-radius:999px !important;}
/* Menu du header parfaitement centré */
.cat-bar .container{justify-content:center !important;}
.cat-bar .main-nav{margin-left:0 !important;margin-inline:auto;width:auto;}
.cat-bar .main-nav .nav-list{justify-content:center;flex-wrap:wrap;}

/* ==========================================================================
   Bandeau titre de page (distinctif) — chargé sur TOUTES les pages
   ========================================================================== */
.shop-hero,.page-hero{position:relative;overflow:hidden;background:var(--gradient-primary);color:#fff;padding-block:clamp(2.75rem,5vw,4.25rem);}
/* Motif de points + halo décoratif */
.shop-hero::before,.page-hero::before{content:"";position:absolute;inset:0;background:
	radial-gradient(circle at 85% -20%, hsl(var(--accent)/.35), transparent 45%),
	radial-gradient(circle, hsl(0 0% 100% / .07) 1.1px, transparent 1.3px) 0 0/22px 22px;
	pointer-events:none;}
/* Liseré d'accent en bas */
.shop-hero::after,.page-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--gradient-accent);}
.shop-hero>.container,.page-hero>.container{position:relative;z-index:1;}
.shop-hero h1,.page-hero h1{color:#fff;font-size:clamp(1.9rem,4vw,2.9rem);margin:0;}
.shop-hero p,.page-hero p{color:hsl(0 0% 100% / .88);margin:.5rem 0 0;max-width:64ch;font-size:1.05rem;}
.page-hero__crumb{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;font-size:.85rem;color:hsl(0 0% 100% / .8);margin-bottom:.75rem;}
.page-hero__crumb a{color:hsl(0 0% 100% / .8);}
.page-hero__crumb a:hover{color:#fff;}
.page-hero__crumb .sep{opacity:.5;}
.page-hero__crumb [aria-current]{color:#fff;font-weight:600;}

/* Témoignages en slider — 4 par lot (desktop) */
.testi-slider .testi{flex:0 0 auto;width:calc((100% - 3 * 1.25rem) / 4);white-space:normal;scroll-snap-align:start;}
@media (max-width:1024px){ .testi-slider .testi{width:calc((100% - 1.25rem) / 2);} }
@media (max-width:600px){ .testi-slider .testi{width:100%;} }

/* Liste « Qué ofrecemos » (checklist) */
.offer-list{list-style:none;margin:0 auto;padding:0;max-width:840px;display:grid;grid-template-columns:1fr 1fr;gap:.7rem 1.75rem;}
.offer-list li{display:flex;align-items:center;gap:.6rem;font-weight:600;color:hsl(var(--foreground));background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:999px;padding:.6rem 1rem;}
.offer-list li svg{color:hsl(var(--secondary));flex:none;}
@media (max-width:640px){ .offer-list{grid-template-columns:1fr;} }

/* ==========================================================================
   Formulaire de contact intégré
   ========================================================================== */
.cmm-form__hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;}
.cmm-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:.25rem 1.25rem;}
.cmm-field{margin:0 0 1rem;}
.cmm-field label{font-family:var(--font-head);font-weight:600;font-size:.9rem;color:hsl(var(--primary));display:block;margin-bottom:.4rem;}
.cmm-field--check label{font-weight:500;font-size:.85rem;color:hsl(var(--muted-foreground));display:flex;gap:.5rem;align-items:flex-start;cursor:pointer;}
.cmm-field--check input{margin-top:.2rem;flex:none;}
.contact-form-card .cmm-form select{width:100%;border:1px solid hsl(var(--border));border-radius:var(--radius);padding:.8rem 1rem;font-family:var(--font-body);font-size:.95rem;background:hsl(var(--background));color:hsl(var(--foreground));}
.cmm-notice{display:flex;align-items:center;gap:.6rem;border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1.5rem;font-weight:600;}
.cmm-notice svg{flex:none;}
.cmm-notice--ok{background:hsl(var(--success)/.12);color:hsl(var(--success));border:1px solid hsl(var(--success)/.4);}
.cmm-notice--err{background:hsl(var(--destructive)/.1);color:hsl(var(--destructive));border:1px solid hsl(var(--destructive)/.4);}
@media (max-width:640px){ .cmm-form__grid{grid-template-columns:1fr;} }

/* ==========================================================================
   Hero principal — slider de 3 diapositivas
   ========================================================================== */
.hero-slider{position:relative;overflow:hidden;}
.hero-slider__track{display:flex;transition:transform .6s cubic-bezier(.4,0,.2,1);}
.hero-slide{position:relative;flex:0 0 100%;min-height:clamp(440px,62vh,620px);display:flex;align-items:center;background-size:cover;background-position:center;}
.hero-slide::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,hsl(213 62% 12% / .9) 0%,hsl(213 62% 12% / .55) 55%,hsl(213 62% 12% / .15) 100%);}
.hero-slide .container{position:relative;z-index:1;}
.hero-slide__content{max-width:640px;color:#fff;}
.hero-slide__content .eyebrow{color:hsl(var(--accent));margin-bottom:.75rem;}
.hero-slide h1{color:#fff;max-width:18ch;}
.hero-slide p{color:hsl(0 0% 100% / .9);font-size:1.15rem;max-width:52ch;margin-bottom:1.9rem;}
.hero-slide .hero__cta{display:flex;gap:1rem;flex-wrap:wrap;}

.hero-slider__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:48px;height:48px;border-radius:50%;border:0;background:hsl(0 0% 100% / .18);color:#fff;font-size:1.7rem;line-height:1;cursor:pointer;backdrop-filter:blur(6px);display:grid;place-items:center;transition:background .15s ease;}
.hero-slider__nav:hover{background:hsl(0 0% 100% / .35);}
.hero-slider__nav.prev{left:1.25rem;}
.hero-slider__nav.next{right:1.25rem;}

.hero-slider__dots{position:absolute;bottom:1.4rem;left:50%;transform:translateX(-50%);z-index:3;display:flex;gap:.5rem;}
.hero-slider__dots button{width:10px;height:10px;border-radius:999px;border:0;background:hsl(0 0% 100% / .5);cursor:pointer;padding:0;transition:width .25s ease,background .25s ease;}
.hero-slider__dots button.is-active{background:#fff;width:30px;}

@media (max-width:768px){
  .hero-slide{text-align:center;}
  .hero-slide::before{background:linear-gradient(hsl(213 62% 12% / .75),hsl(213 62% 12% / .75));}
  .hero-slide__content{margin-inline:auto;}
  .hero-slide .hero__cta{justify-content:center;}
  .hero-slider__nav{display:none;}
}

/* ==========================================================================
   Footer réorganisé (5 colonnes + réseaux + bande contact/horaire)
   ========================================================================== */
.footer-grid--5{grid-template-columns:1.8fr 1fr 1fr 1.35fr 1fr;gap:2rem;padding-block:3rem 2rem;}
.footer-about__desc{color:hsl(0 0% 100% / .6);font-size:.88rem;margin:1rem 0 1.35rem;max-width:44ch;line-height:1.6;}
.footer-social__lbl{display:block;font-family:var(--font-head);font-weight:700;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:hsl(0 0% 100% / .85);margin-bottom:.6rem;}
.footer-social__row{display:flex;gap:.6rem;flex-wrap:wrap;}
.footer-social__ico{width:38px;height:38px;border-radius:50%;background:hsl(0 0% 100% / .08);border:1px solid hsl(0 0% 100% / .12);display:grid;place-items:center;color:#fff;transition:background .15s ease,transform .15s ease;}
.footer-social__ico:hover{background:var(--gradient-accent);transform:translateY(-2px);color:#fff;border-color:transparent;}

.footer-contactband{border-top:1px solid hsl(0 0% 100% / .1);}
.footer-contactband__inner{display:grid;grid-template-columns:1.7fr 1fr;gap:2rem;padding-block:1.85rem;}
.footer-hours__list{list-style:none;margin:0;padding:0;display:grid;gap:.45rem;}
.footer-hours__list li{display:flex;justify-content:space-between;gap:1rem;color:hsl(0 0% 100% / .7);border-bottom:1px dashed hsl(0 0% 100% / .1);padding-bottom:.4rem;font-size:.9rem;}
.footer-hours__list b{color:#fff;font-family:var(--font-head);font-weight:700;}

@media (max-width:1024px){ .footer-grid--5{grid-template-columns:1fr 1fr 1fr;} }
@media (max-width:768px){ .footer-grid--5{grid-template-columns:1fr 1fr;} .footer-contactband__inner{grid-template-columns:1fr;gap:1.5rem;} }
@media (max-width:520px){ .footer-grid--5{grid-template-columns:1fr;} }

/* ==========================================================================
   Espace client (Mi cuenta) dans le header
   ========================================================================== */
.account-link{display:inline-flex;align-items:center;gap:.4rem;color:hsl(var(--primary));font-weight:600;white-space:nowrap;}
.account-link svg{width:23px;height:23px;color:hsl(var(--primary));}
.account-link:hover{color:hsl(var(--secondary));}
.account-link:hover svg{color:hsl(var(--secondary));}
.account-link__txt small{font-size:.85rem;font-weight:600;}
@media (max-width:1100px){ .account-link__txt{display:none;} }

/* ==========================================================================
   Améliorations globales — identité « premium » (motif conteneur, chiffres,
   boutons flottants, micro-interactions)
   ========================================================================== */

/* --- Liseré « corrugado » (paroi de conteneur) en haut du footer --- */
.site-footer{position:relative;}
.site-footer::before{content:"";display:block;height:6px;background:repeating-linear-gradient(90deg, hsl(var(--accent)) 0 9px, transparent 9px 18px);opacity:.55;}

/* --- Titres de section : liseré d'accent --- */
.section__head h2{position:relative;display:inline-block;}
.section__head h2::after{content:"";display:block;width:56px;height:4px;border-radius:999px;background:var(--gradient-accent);margin:.85rem auto 0;}
.slider-head h2::after{margin-left:0;}

/* --- Bande de chiffres animés --- */
.stats-band{background:var(--gradient-primary);color:#fff;position:relative;overflow:hidden;padding-block:clamp(2.5rem,5vw,3.5rem);}
.stats-band::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg, hsl(0 0% 100% / .045) 0 2px, transparent 2px 26px);pointer-events:none;}
.stats-band .container{position:relative;z-index:1;}
.stats-band__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;text-align:center;}
.stat-item{position:relative;}
.stat-item + .stat-item::before{content:"";position:absolute;left:-.75rem;top:50%;transform:translateY(-50%);height:54px;width:1px;background:hsl(0 0% 100% / .15);}
.stat-item__n{display:block;font-family:var(--font-head);font-weight:800;font-size:clamp(2rem,4vw,2.9rem);line-height:1;color:#fff;letter-spacing:-.02em;}
.stat-item__l{display:block;color:hsl(0 0% 100% / .8);font-size:.92rem;margin-top:.5rem;}
@media (max-width:720px){ .stats-band__grid{grid-template-columns:1fr 1fr;gap:2rem 1rem;} .stat-item + .stat-item::before{display:none;} }

/* --- Boutons flottants (WhatsApp + haut de page) --- */
.cmm-fabs{position:fixed;right:1rem;bottom:1rem;z-index:90;display:flex;flex-direction:column;gap:.6rem;}
.cmm-fab{width:52px;height:52px;border-radius:50%;border:0;cursor:pointer;display:grid;place-items:center;box-shadow:var(--shadow-elev);color:#fff;transition:transform .15s ease,opacity .2s ease,visibility .2s ease;}
.cmm-fab:hover{transform:translateY(-3px);}
.cmm-fab--wa{background:#25D366;}
.cmm-fab--top{background:var(--gradient-primary);opacity:0;visibility:hidden;}
.cmm-fab--top.is-visible{opacity:1;visibility:visible;}
@media (max-width:560px){ .cmm-fabs{right:.75rem;bottom:.75rem;} .cmm-fab{width:48px;height:48px;} }

/* --- Micro-interaction : brillance au survol des boutons pleins --- */
.btn{position:relative;overflow:hidden;}
.btn--primary::after,.btn--accent::after{content:"";position:absolute;top:0;left:-130%;width:60%;height:100%;background:linear-gradient(120deg,transparent,hsl(0 0% 100% / .28),transparent);transform:skewX(-20deg);transition:left .55s ease;pointer-events:none;}
.btn--primary:hover::after,.btn--accent:hover::after{left:140%;}
@media (prefers-reduced-motion:reduce){.btn--primary::after,.btn--accent::after{display:none;}}

/* ==========================================================================
   « Nuestro catálogo » compacto (chips) + section compacte
   ========================================================================== */
.section--compact{padding-block:clamp(1.75rem,4vw,2.75rem);}
.slider-head--compact{align-items:center;margin-bottom:1.1rem;}
.slider-head--compact .eyebrow{margin-bottom:.2rem;}
.slider-head--compact h2{font-size:clamp(1.25rem,2.4vw,1.6rem);margin:0;}
.slider-head__right{display:flex;align-items:center;gap:1.1rem;flex:none;}
.catalog-all{font-family:var(--font-head);font-weight:700;font-size:.9rem;color:hsl(var(--secondary));white-space:nowrap;}
.catalog-all:hover{color:hsl(var(--primary));}

.cat-slider--chips .cat-slider__track{gap:.75rem;padding:.3rem;}
.cat-chip{flex:0 0 auto;display:flex;align-items:center;gap:.65rem;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:999px;padding:.4rem 1rem .4rem .4rem;box-shadow:var(--shadow-card);transition:transform .15s ease,box-shadow .15s ease;scroll-snap-align:start;}
.cat-chip:hover{transform:translateY(-2px);box-shadow:var(--shadow-elev);}
.cat-chip__img{width:44px;height:44px;border-radius:50%;overflow:hidden;flex:none;background:hsl(var(--muted));}
.cat-chip__img img{width:100%;height:100%;object-fit:cover;}
.cat-chip__txt{display:flex;flex-direction:column;line-height:1.15;}
.cat-chip__txt strong{font-family:var(--font-head);font-weight:700;font-size:.92rem;color:hsl(var(--primary));white-space:nowrap;}
.cat-chip__txt small{font-size:.75rem;color:hsl(var(--muted-foreground));}
@media (max-width:560px){ .slider-head__right .catalog-all{display:none;} }
