/* Fuentes alojadas en el sitio (licencia SIL OFL) */
@font-face{font-family:"Montserrat";font-style:normal;font-weight:400 600;font-display:swap;src:url(../fonts/montserrat-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:600 700;font-display:swap;src:url(../fonts/playfair-display-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{
  --crema:#fcf4ea; --crema-2:#efe6dc; --cafe:#3a2016; --madera:#b9803f;
  --texto:#3b2b24; --gris:#5c5c5c; --wa:#0a7f55;
  --serif:"Playfair Display",Georgia,serif; --sans:"Montserrat",system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{background:var(--crema);color:var(--texto);font-family:var(--sans);line-height:1.6}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
:focus-visible{outline:3px solid var(--madera);outline-offset:3px}
.wrap{width:min(1120px,92%);margin-inline:auto}
h1,h2,h3{font-family:var(--serif);color:var(--cafe);line-height:1.15}
h2{font-size:clamp(2rem,4.5vw,3.2rem);text-align:center}
.sub{text-align:center;max-width:560px;margin:14px auto 40px;color:var(--gris)}
section{padding:80px 0}

/* Header */
header{position:sticky;top:0;z-index:50;background:rgba(252,244,234,.94);backdrop-filter:blur(8px)}
.nav{display:flex;align-items:center;justify-content:space-between;height:84px}
.logo{font-family:var(--serif);font-weight:700;font-size:1.6rem;color:var(--cafe);line-height:1}
.logo small{display:block;font-family:var(--sans);font-weight:500;font-size:.6rem;letter-spacing:.08em}
nav ul{display:flex;gap:36px;list-style:none}
nav a{padding-bottom:3px;border-bottom:2px solid transparent}
nav a:hover,nav a.on{border-color:var(--cafe)}
.redes{display:flex;gap:14px}
.redes svg{width:26px;height:26px;fill:var(--cafe)}
.burger{display:none;background:none;border:0;font-size:1.8rem;color:var(--cafe);cursor:pointer}

/* Hero */
.hero{padding:30px 0 80px}
.hero .wrap{display:grid;grid-template-columns:1.15fr 1fr;gap:56px;align-items:center}
.hero-img{border-radius:36px;overflow:hidden;aspect-ratio:4/4.4;background:linear-gradient(135deg,#d8b98a,#a8763f)}
.hero-img img{width:100%;height:100%;object-fit:cover}
.hero h1{font-size:clamp(2.6rem,6vw,4.6rem);text-align:center}
.hero p{text-align:center;margin:36px auto;max-width:380px;font-size:1.05rem}
.btn{display:inline-flex;align-items:center;gap:10px;justify-content:center;border:0;cursor:pointer;
  font:600 1rem var(--sans);padding:16px 40px;border-radius:14px;background:#595959;color:#fff;transition:background .2s}
.btn:hover{background:var(--cafe)}
.btn.wa{background:var(--wa)}
.btn.wa:hover{background:#066a47}
.btn svg{width:20px;height:20px;fill:currentColor}
.hero .cta{text-align:center}

/* Nosotros */
.nos{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center;margin-top:40px}
.nos img{border-radius:80px 80px 80px 80px / 60px 60px 60px 60px;aspect-ratio:4/3.3;object-fit:cover;width:100%;background:#d8b98a}
.nos .txt{text-align:center;display:grid;gap:22px;padding:0 20px}
.banda{margin:50px auto 0;max-width:860px;background:var(--crema-2);border-radius:28px;padding:24px 20px;
  text-align:center;font-family:var(--serif);font-weight:700;color:var(--cafe);text-transform:uppercase;font-size:clamp(.95rem,2vw,1.3rem)}

/* Galería */
.filtros{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:36px}
.filtros button{font:500 .9rem var(--sans);background:transparent;border:1.5px solid var(--cafe);color:var(--cafe);
  padding:9px 20px;border-radius:999px;cursor:pointer;transition:.2s}
.filtros button.on,.filtros button:hover{background:var(--cafe);color:var(--crema)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:26px}
.card[hidden]{display:none!important}
.card{background:#fff9f1;border-radius:26px;overflow:hidden;display:flex;flex-direction:column;border:1px solid #eadfd2}
.card .foto{overflow:hidden;position:relative;aspect-ratio:3/4;background:linear-gradient(135deg,#d8b98a,#a8763f);cursor:zoom-in;border:0;padding:0;width:100%}
.card .foto img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.card .foto:hover img{transform:scale(1.04)}
.card .foto::before{content:"Ampliar";position:absolute;right:12px;bottom:12px;z-index:1;background:rgba(58,32,22,.85);color:#fff;font:500 .75rem var(--sans);padding:6px 12px;border-radius:999px;opacity:0;transition:opacity .2s}
.card .foto:hover::before,.card .foto:focus-visible::before{opacity:1}
.card .foto.ph::after{content:attr(data-name);position:absolute;inset:0;display:grid;place-items:center;
  font:700 1.3rem var(--serif);color:#fff;text-align:center;padding:20px}
.card .info{padding:22px 24px 26px;display:flex;flex-direction:column;gap:10px;flex:1}
.card h3{font-size:1.35rem}
.card p{font-size:.93rem;color:var(--gris);flex:1}
.card .med{font-size:.8rem;color:var(--madera);font-weight:600}
.card .btn{padding:13px 20px;font-size:.92rem;border-radius:12px;margin-top:8px}

.preguntas{max-width:850px;margin:28px auto 0;display:grid;gap:12px}
.preguntas details{background:#fff9f1;border:1px solid #eadfd2;border-radius:14px;padding:18px 22px}
.preguntas summary{font-weight:600;cursor:pointer;color:var(--cafe)}
.preguntas p{margin-top:12px;color:var(--gris)}
.preguntas a{text-decoration:underline}
/* Contacto */
.contacto{background:var(--crema-2)}
.contacto .wrap{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.contacto h2{text-align:left}
.contacto ul{list-style:none;margin:20px 0 28px;display:grid;gap:8px}
form{display:grid;gap:14px}
label{font-weight:500;font-size:.9rem}
input,select,textarea{width:100%;font:inherit;padding:13px 16px;border-radius:12px;border:1.5px solid #d8c9b8;background:#fffdf9;margin-top:4px}
textarea{min-height:100px;resize:vertical}
footer{background:var(--cafe);color:var(--crema);padding:56px 0 24px;font-size:.92rem}
.pie-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
footer .logo{color:var(--crema)}
footer p{margin-top:14px;max-width:320px;color:#e6d6c4}
footer .pie-titulo{font:600 .95rem var(--sans);margin-bottom:14px;color:#fff;text-align:left}
footer ul{list-style:none;display:grid;gap:8px}
footer a:hover{text-decoration:underline}
footer .redes{margin-top:18px}
footer .redes svg{fill:var(--crema)}
.copy{margin-top:40px;padding-top:20px;border-top:1px solid rgba(252,244,234,.2);text-align:center;font-size:.8rem;color:#d9c7b3}

/* Flotante y lightbox */
.flota{position:fixed;right:22px;bottom:22px;width:64px;height:64px;border-radius:50%;background:var(--wa);color:#fff;
  display:grid;place-items:center;box-shadow:0 6px 18px rgba(0,0,0,.25);z-index:60}
.flota svg{width:36px;height:36px;fill:#fff}
dialog.lb{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border:0;border-radius:0;background:rgba(30,15,8,.95);color:#fff;overflow:hidden}
dialog.lb::backdrop{background:#000}
dialog.lb[open]{display:grid;grid-template-columns:64px 1fr 64px;grid-template-rows:1fr auto;align-items:center;justify-items:center;padding:16px}
.lb-img{grid-column:2;grid-row:1;max-width:100%;max-height:calc(100dvh - 200px);width:auto;height:auto;object-fit:contain;border-radius:12px}
.lb-info{grid-column:2;grid-row:2;text-align:center;display:grid;gap:6px;justify-items:center;padding-top:12px}
.lb-info h3{color:#fff;font-size:1.4rem}
.lb-info p{max-width:560px;font-size:.92rem;color:#eadfd2}
.lb-info .btn{margin-top:6px;padding:12px 26px}
.lb-nav{grid-row:1;width:48px;height:48px;border-radius:50%;border:0;background:rgba(255,255,255,.18);color:#fff;font-size:2rem;line-height:1;cursor:pointer}
.lb-nav:hover{background:rgba(255,255,255,.32)}
.lb-nav.prev{grid-column:1}.lb-nav.next{grid-column:3}
.lb-x{position:absolute;top:14px;right:16px;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.18);color:#fff;font-size:1.6rem;cursor:pointer}
@media(max-width:600px){dialog.lb[open]{grid-template-columns:36px 1fr 36px;padding:8px}.lb-nav{width:36px;height:36px;font-size:1.5rem}.lb-img{max-height:calc(100dvh - 230px)}}

@media(max-width:860px){
  .burger{display:block}
  nav{position:absolute;top:84px;left:0;right:0;background:var(--crema);display:none;padding:10px 0 24px;box-shadow:0 12px 20px rgba(0,0,0,.08)}
  nav.abierto{display:block}
  nav ul{flex-direction:column;align-items:center;gap:18px}
  .redes{display:none}
  .hero .wrap,.nos,.contacto .wrap{grid-template-columns:1fr}
  .hero .wrap{gap:30px}
  .contacto h2{text-align:center}
  .pie-grid{grid-template-columns:1fr;gap:30px}
  section{padding:56px 0}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Refinamiento visual y catálogo premium */
.logo{display:inline-flex;align-items:center;max-width:240px}
.logo img{height:64px;width:auto;max-width:230px;object-fit:contain;mix-blend-mode:multiply}
footer .logo img{background:#fff9f1;border-radius:10px;padding:4px;mix-blend-mode:normal}
#galeria{background:#f9f6f0}
#galeria>.wrap{width:min(1450px,96%)}
#galeria h2{text-align:left;font-size:clamp(2.1rem,3.7vw,3.3rem)}
#galeria .sub{text-align:left;margin:12px 0 26px;max-width:700px}
.catalogo-layout{display:grid;grid-template-columns:244px minmax(0,1fr);gap:26px;align-items:start}
.catalogo-aside{background:#f3eee7;border-radius:22px;padding:20px 14px;position:sticky;top:105px;border:1px solid #ebe4d9}
.catalogo-aside h3{font-size:1.3rem;margin:5px 8px 18px}
.filtros{display:flex;flex-direction:column;align-items:stretch;gap:5px;margin:0}
.filtros button{display:flex;align-items:center;text-align:left;gap:14px;width:100%;border:0;border-radius:11px;background:transparent;color:var(--cafe);padding:13px 12px;transition:background .25s,transform .25s;font-size:.91rem}
.filtros button:hover,.filtros button.on{background:#dedfca;color:#302b20;transform:translateX(3px)}
.categoria-icono{font-family:Georgia,serif;display:inline-grid;place-items:center;font-size:1.55rem;width:30px;min-width:30px;line-height:1}
.catalogo-barra{display:flex;gap:12px;justify-content:flex-end;margin-bottom:20px}
.catalogo-barra input,.catalogo-barra select{margin:0;background:#fffcf7;border:1px solid #e3dcd1;border-radius:12px;font-size:.91rem;min-height:46px}
.catalogo-barra input{max-width:340px}.catalogo-barra select{max-width:175px}
#galeria .grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:19px}
#galeria .card{border-radius:16px;background:#fff;box-shadow:0 5px 20px rgba(60,30,12,.035);transition:box-shadow .4s,transform .4s}
#galeria .card:hover{transform:translateY(-7px);box-shadow:0 20px 38px rgba(58,32,22,.13)}
#galeria .card .foto{aspect-ratio:4/4.25}
#galeria .card .foto img{object-fit:cover;object-position:center center}
#galeria .card .info{padding:15px 15px 18px;gap:8px}
#galeria .card h3{font-family:var(--sans);font-size:1.01rem;text-align:center;line-height:1.45}
#galeria .card p{font-size:.8rem;line-height:1.6}
#galeria .card .btn{padding:12px 9px;border-radius:10px;font-size:.79rem;background:#53613b}
#galeria .card .btn:hover{background:#36432a}
.nos{align-items:start;gap:35px}
.nos>img,.nos .txt>img{width:100%;height:auto;aspect-ratio:4/3.3;object-fit:cover;object-position:center;border-radius:62px!important}
.nos .txt{padding:0;gap:22px}
.nos .txt p{max-width:550px;margin:auto}
.btn,.flota{transition:transform .25s,box-shadow .25s,background .25s}
.btn:hover,.flota:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(38,54,26,.18)}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.75,.2,1)}
.reveal.visible{opacity:1;transform:translateY(0)}
.wa-verificacion{width:min(440px,calc(100% - 32px));margin:auto;padding:0;border:0;border-radius:22px;box-shadow:0 24px 70px rgba(0,0,0,.2);background:#fffaf3;color:var(--cafe)}
.wa-verificacion::backdrop{background:rgba(22,23,16,.62);backdrop-filter:blur(5px)}
.wa-verificacion form{padding:34px;display:grid;gap:16px;position:relative}
.wa-verificacion h2{font-size:1.8rem;text-align:left}
.wa-verificacion p{font-size:.94rem}
.wa-verificacion .wa-cerrar{position:absolute;right:15px;top:8px;background:transparent;border:0;font-size:2rem;cursor:pointer}
.wa-icono{background:#e0ead7;color:#3c5a32;border-radius:50%;width:42px;height:42px;display:grid;place-items:center;font-size:1.4rem}
.wa-confirmar{display:flex;gap:12px;align-items:flex-start;cursor:pointer;font-size:.87rem;line-height:1.5}
.wa-confirmar input{width:20px;flex:0 0 20px;height:20px;accent-color:#53613b;margin:2px 0 0}
#wa-error{color:#a22b23;font-size:.84rem;min-height:1em}
@media(max-width:1050px){#galeria .grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){#galeria>.wrap{width:92%}.catalogo-layout{grid-template-columns:1fr;gap:15px}.catalogo-aside{position:static;padding:15px}.filtros{flex-direction:row;overflow:auto;scroll-snap-type:x mandatory;padding-bottom:4px}.filtros button{width:auto;min-width:max-content;scroll-snap-align:start;padding:9px 12px}.catalogo-aside h3{margin:0 0 12px}.catalogo-barra input{max-width:none;min-width:0;flex:1}.catalogo-barra select{width:130px}.nos>img,.nos .txt>img{aspect-ratio:4/3}#galeria .grid{gap:11px}.card .foto{aspect-ratio:1!important}#galeria .card .info{padding:11px}#galeria .card h3{font-size:.88rem}#galeria .card p{font-size:.75rem}#galeria .card .btn{font-size:.71rem;padding:10px 6px}.logo img{height:54px}}
@media(max-width:390px){#galeria .grid{grid-template-columns:1fr}.catalogo-barra{flex-wrap:wrap}.catalogo-barra select{max-width:none;width:100%}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}.card,.btn{transition:none!important}}


/* ===========================================================
   MEJORAS 2026 — branding, experiencia móvil, producto y accesibilidad
   =========================================================== */
:root{--tinta:#362019;--oliva:#53613b;--madera-oscura:#87572e}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important}
[hidden]{display:none!important}
body{overflow-x:clip}
header{border-bottom:1px solid rgba(75,45,25,.09);box-shadow:0 3px 20px rgba(50,27,12,.03)}
.nav{height:106px;gap:18px}
.logo{display:inline-flex;align-items:center;justify-content:center;flex:none;max-width:none;line-height:0}
.logo img{display:block;width:auto;max-width:none;height:92px;object-fit:contain;mix-blend-mode:normal;filter:none}
header .logo img{height:93px}
nav ul{gap:clamp(12px,2.3vw,32px)}
nav a{font-size:.9rem;font-weight:600;white-space:nowrap}
.redes{gap:13px;flex-shrink:0}
.redes a{display:inline-grid;place-items:center;min-width:30px;min-height:36px}
.redes svg{width:23px;height:23px}
footer .logo{background:var(--crema);border-radius:18px;padding:7px 15px;max-width:max-content}
footer .logo img{height:93px;background:none;border-radius:0;padding:0;max-width:none;mix-blend-mode:normal}
footer .redes{display:flex}
footer a:hover{color:#ffe6c4}
footer .logo:hover{color:inherit}
.btn{min-height:48px}
/* Hero desktop shows the exact original designed banner */
section.hero-premium{padding:32px 0 66px}
.hero-container{width:min(1460px,96%)}
.hero-poster{position:relative;overflow:hidden;border-radius:27px;box-shadow:0 20px 50px rgba(77,49,23,.12);background:#e8d6bb;isolation:isolate}
.hero-poster picture,.hero-poster picture img{display:block;width:100%}
.hero-poster picture img{height:auto;aspect-ratio:2172/724;object-fit:cover}
.hero-texto-movil{display:none}
.hero-hotspot{position:absolute;z-index:4;border-radius:5px}
.hero-hotspot:focus-visible{outline:3px solid #87572e;outline-offset:3px;background:rgba(252,244,234,.25)}
.hero-hotspot-catalogo{left:5.8%;top:75.8%;width:13.65%;height:10.1%}
.hero-hotspot-whatsapp{left:20.65%;top:75.8%;width:12.2%;height:10.1%}
#galeria h2{text-align:center!important}
#galeria .sub{text-align:center!important;margin:12px auto 29px;max-width:780px}
.catalogo-aside{top:125px}
.filtros button{font-size:.92rem;min-height:52px}
.filtros button.on{font-weight:700}
.categoria-icono{display:grid;place-items:center;width:37px;height:37px;min-width:37px;border-radius:10px;background:#e8e4d6;color:#554932}
.categoria-icono svg{height:23px;width:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.filtros button.on .categoria-icono{background:#56623e;color:#fff}
.catalogo-contenido{min-width:0}
.catalogo-barra{align-items:center}
.catalogo-barra input,.catalogo-barra select{width:100%}
#galeria .card .foto::before{content:"Ver fotos  ↗"}
#galeria .card .foto:focus-visible{outline-offset:-5px}
#galeria .card .foto{touch-action:manipulation}
.nos>button.foto-exterior,.nos .txt>button.foto-exterior{border-radius:62px;overflow:hidden;display:block;cursor:zoom-in;border:0;padding:0;width:100%;background:#d8b98a}
.nos .foto-exterior img{display:block;width:100%;height:auto;aspect-ratio:4/3.3;object-fit:cover;border-radius:0;transition:transform .4s}
.nos .foto-exterior:hover img{transform:scale(1.045)}
.contacto-acciones{display:flex;align-items:center;flex-wrap:wrap;gap:17px}
.link-contacto{font-weight:600;text-decoration:underline;text-underline-offset:4px}
.formulario-protegido{position:relative}
.campo-trampa{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.form-estado{color:#9c3a23;font-size:.85rem;min-height:1.1em;margin:0}
.aviso-privacidad{color:#5c5c5c;line-height:1.6}
/* Viewer scoped to the selected product. No navigation to other items. */
dialog.lb[open]{grid-template-columns:minmax(40px,66px) minmax(0,1fr) minmax(40px,66px);grid-template-rows:minmax(0,1fr) auto;gap:10px;padding:24px 18px 18px}
.lb-foto-contenedor{grid-row:1;grid-column:2;position:relative;display:grid;place-items:center;width:100%;height:100%;min-height:0}
.lb-img{grid-column:auto;grid-row:auto;display:block;max-height:calc(100dvh - 225px);max-width:100%;min-width:0;object-fit:contain}
.lb-contador{position:absolute;bottom:6px;right:8px;border-radius:99px;padding:4px 11px;font:600 .75rem var(--sans);background:rgba(0,0,0,.56);color:white}
.lb-info{min-width:0;max-width:100%;gap:5px;padding:0 0 6px}
.lb-info .btn{min-height:40px;padding:10px 16px;margin-top:4px;font-size:.85rem}
.lb-miniaturas{display:flex;justify-content:center;gap:8px;max-width:min(100vw - 60px,600px);overflow-x:auto;scrollbar-width:thin}
.lb-miniaturas button{border:2px solid transparent;border-radius:8px;background:transparent;padding:2px;flex:none;cursor:pointer}
.lb-miniaturas button.activa{border-color:#ddbc8f}
.lb-miniaturas img{height:45px;width:53px;object-fit:cover;border-radius:5px}
.lb-nav:disabled{display:none}
.lb-nav{user-select:none}
/* Full contact page */
.contacto-hero{text-align:center;background:radial-gradient(ellipse at top right,#e8d7c1 0%,var(--crema) 55%);padding:86px 0 92px}
.contacto-hero .wrap{max-width:850px}
.kicker{font-size:.79rem;letter-spacing:.18em;color:#87572e;font-weight:700;margin-bottom:15px;text-align:center}
.contacto-hero h1{font-size:clamp(2.5rem,5vw,4.6rem);max-width:760px;margin:auto}
.contacto-hero p:not(.kicker){max-width:620px;margin:22px auto 27px;color:#5c5049;font-size:1.06rem}
.btn-madera{background:#87572e;color:#fff}
.btn-madera:hover{background:#57371e}
.btn-clara{background:#fff3df;color:#362319}
.btn-clara:hover{background:#ffdfaf;color:#362319}
.pagina-contacto{background:#fbf7f1}
.contacto-columnas{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:55px}
.contacto-informacion h2,.contacto-formulario h2{text-align:left;font-size:clamp(1.8rem,3vw,2.4rem)}
.contacto-informacion>p{margin:16px 0 33px;color:var(--gris);max-width:465px}
.datos-contacto{display:grid;gap:25px}
.datos-contacto>div{display:flex;gap:15px;align-items:start}
.dato-icono{display:grid;place-items:center;border-radius:15px;flex:none;background:#e9e2d5;width:49px;height:49px;font-size:1.3rem;color:#6e4728}
.datos-contacto strong{color:var(--cafe)}
.datos-contacto p{color:#5e5048;margin:4px 0 0;word-break:break-word}
.datos-contacto a{text-decoration:underline;text-underline-offset:3px}
.contacto-formulario{background:white;padding:clamp(20px,4vw,38px);border-radius:26px;border:1px solid #ece2d5;box-shadow:0 18px 55px rgba(65,38,19,.07)}
.contacto-formulario>p{font-size:.88rem;color:var(--gris)}
.contacto-formulario .form-estado{color:#a33425}
.seccion-ubicacion{background:#f3eee7;text-align:center}
.mapa-marco{overflow:hidden;max-width:1100px;margin:28px auto 18px;border-radius:24px;border:6px solid white;box-shadow:0 16px 42px rgba(62,42,29,.12)}
.mapa-marco iframe{display:block;width:100%;height:clamp(340px,42vw,515px);border:0}
.mapa-enlace{display:inline-flex;align-items:center;justify-content:center;min-height:46px;font-weight:700;color:#6d4528;text-decoration:underline;text-underline-offset:4px}
@media(max-width:1100px){
 .nav{height:94px}
 header .logo img{height:82px}
 nav ul{gap:16px}
 nav a{font-size:.79rem}
 .redes{gap:8px}
}
@media(max-width:860px){
 .nav{height:81px}
 header .logo img{height:71px}
 nav{top:81px;z-index:55}
 header .redes{display:none}
 .burger{font-size:1.75rem;min-width:44px;min-height:44px}
 .contacto-columnas{grid-template-columns:1fr;gap:35px}
 .contacto-hero{padding:67px 0}
 .contacto-informacion h2{text-align:center}
 .contacto-informacion>p{text-align:center;margin:16px auto 26px}
}
@media(max-width:720px){
 section.hero-premium{padding:14px 0 42px}
 .hero-container{width:min(520px,94%)}
 .hero-poster{border-radius:22px}
 .hero-poster picture img{height:clamp(500px,150vw,680px);aspect-ratio:auto;object-fit:cover}
 .hero-texto-movil{display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;position:absolute;z-index:3;inset:0;padding:clamp(22px,7vw,36px);color:#fff}
 .hero-texto-movil h1{font-size:clamp(2.3rem,9vw,3.5rem);line-height:1.05;letter-spacing:-.025em;margin:8px 0 14px;color:#fff;text-align:left}
 .hero-sello{font-size:.72rem;letter-spacing:.15em;font-weight:700;color:#fff2de}
 .hero-texto-movil p{color:#fff8ee;font-size:.94rem;margin:0 0 23px;line-height:1.6;max-width:430px}
 .hero-cta-movil{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
 .hero-cta-movil .btn{padding:13px 18px;min-height:45px;font-size:.85rem;border-radius:10px}
 .hero-hotspot{display:none}
 #galeria>.wrap{width:94%}
 #galeria .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 #galeria .card .foto{aspect-ratio:4/4.8!important}
 .filtros button{min-height:43px}
 .categoria-icono{width:30px;min-width:30px;height:30px}
 .categoria-icono svg{width:20px;height:20px}
 .catalogo-barra{flex-wrap:wrap;justify-content:center}
 .catalogo-barra input{flex:1;min-width:175px}
 .catalogo-barra select{width:160px;max-width:none}
 .contacto-acciones{justify-content:center}
 .contacto-formulario{padding:22px}
 .contacto-hero h1{font-size:2.5rem}
 .mapa-marco{border-width:3px;border-radius:15px}
 .mapa-marco iframe{height:365px}
 .lb-img{max-height:calc(100dvh - 215px)}
}
@media(max-width:430px){
 header .logo img{height:65px}
 .nav{height:76px}
 nav{top:76px}
 .hero-texto-movil h1{font-size:clamp(2rem,10vw,2.9rem)}
 .hero-poster picture img{height:540px}
 #galeria .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 #galeria .card .info{padding:12px 9px}
 #galeria .card h3{font-size:.87rem}
 #galeria .card p{font-size:.72rem;line-height:1.5}
 #galeria .card .btn{font-size:.69rem;letter-spacing:-.01em;gap:3px}
 #galeria .card .btn svg{width:16px;height:16px;flex:none}
 #galeria .card .foto{aspect-ratio:4/4.7!important}
 .catalogo-barra select{width:100%}
 .pie-grid{gap:35px}
 dialog.lb[open]{grid-template-columns:34px minmax(0,1fr) 34px;padding:14px 3px}
 .lb-info h3{font-size:1.14rem}
 .lb-info p{font-size:.78rem}
 .lb-nav{width:32px;height:32px}
 .flota{right:13px;bottom:13px;width:54px;height:54px}
 .flota svg{width:30px;height:30px}
}
@media(max-width:340px){#galeria .grid{grid-template-columns:1fr} .hero-cta-movil .btn{font-size:.75rem;padding:10px}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}.foto-exterior img{transition:none}}
/* Override the legacy two-column hero grid: the supplied banner is full-width. */
.hero-premium .hero-container{display:block!important;grid-template-columns:none!important;gap:0!important}
.hero-premium .hero-poster{width:100%;min-width:0}

/* Contacto: el diseño original es una imagen, sin texto duplicado.
   En móvil se muestra una adaptación recortada de la misma fotografía para
   que el mensaje en la madera y la fachada sigan siendo legibles. */
.contacto-hero.contacto-hero-imagen{padding:30px 0 55px;background:var(--crema);text-align:center}
.contacto-banner{width:min(1460px,96%);max-width:none!important}
.contacto-banner picture,.contacto-banner picture img{display:block;width:100%}
.contacto-banner picture{overflow:hidden;border-radius:24px;box-shadow:0 20px 48px rgba(58,32,22,.11);background:#d6bd9a}
.contacto-banner picture img{height:auto;object-fit:contain}
.contacto-hero-acciones{display:flex;align-items:center;justify-content:center;margin-top:24px}
@media(max-width:680px){
 .contacto-hero.contacto-hero-imagen{padding:14px 0 38px}
 .contacto-banner{width:min(520px,94%)}
 .contacto-banner picture{border-radius:18px}
 .contacto-hero-acciones{margin-top:18px}
 .contacto-hero-acciones .btn{max-width:100%;padding:12px 19px;font-size:.86rem}
}

/* SEO: un solo h1 expuesto por ancho de pantalla. */
@media(max-width:720px){.hero-desktop-titulo{display:none}}

/* ===========================================================
   Auditoría de calidad — accesibilidad y ajustes visuales
   =========================================================== */
.saltar{position:absolute;left:12px;top:-70px;z-index:100;background:var(--cafe);color:#fff;padding:10px 18px;border-radius:10px;font-weight:600}
.saltar:focus{top:12px}
/* Nosotros: fotos a la par y el texto debajo, sin huecos. */
.nos{grid-template-columns:1fr 1fr;gap:28px}
.nos .txt{grid-column:1/-1;text-align:center}
.nos .txt p{max-width:680px}
@media(max-width:860px){.nos{grid-template-columns:1fr 1fr;gap:16px}.nos>button.foto-exterior{border-radius:36px}}
@media(max-width:560px){.nos{grid-template-columns:1fr}}
/* Iconos reales en los datos de contacto */
.dato-icono svg{width:24px;height:24px;fill:currentColor}
/* Portada móvil: texto legible sobre la foto y alineado con el titular */
@media(max-width:720px){
 .hero-texto-movil{background:linear-gradient(to top,rgba(30,16,8,.78) 0%,rgba(30,16,8,.5) 45%,rgba(30,16,8,0) 72%)}
 .hero-texto-movil p{text-align:left;margin-inline:0}
 #galeria .card p{font-size:.8rem;line-height:1.5}
 #galeria .card .btn{font-size:.75rem}
}
/* Página 404 */
.pagina-404{min-height:100dvh;display:grid;place-content:center;justify-items:center;gap:18px;padding:32px 16px;text-align:center}
.pagina-404 .logo img{height:93px}
.pagina-404 h1{font-size:clamp(2rem,6vw,3.2rem)}
.pagina-404 p{color:var(--gris);max-width:460px}
.pagina-404-acciones{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
/* Mapa bajo demanda */
.mapa-cargar{display:grid;place-content:center;justify-items:center;gap:6px;width:100%;height:clamp(340px,42vw,515px);border:0;padding:20px;cursor:pointer;color:#fff;font:inherit;text-align:center;background:linear-gradient(rgba(40,22,12,.58),rgba(40,22,12,.58)),url(../img/hero-contacto-1000.webp) center/cover #6d4528}
.mapa-cargar strong{font:700 clamp(1.3rem,3vw,1.8rem) var(--serif)}
.mapa-cargar:hover strong{text-decoration:underline;text-underline-offset:5px}
.mapa-cargar:focus-visible{outline:3px solid #fff;outline-offset:-8px}
.mapa-pin{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--crema);color:#87572e}
.mapa-pin svg{width:30px;height:30px;fill:currentColor}
@media(max-width:720px){.mapa-cargar{height:365px}}
/* Verdes de WhatsApp: #25D366 (marca) en el botón flotante, que solo lleva el logo;
   #008069 (botones de la app) donde hay texto blanco, para mantener contraste 4.9:1. */
:root{--wa:#008069;--wa-marca:#25D366}
.btn.wa:hover{background:#006c59}
.flota{background:var(--wa-marca);box-shadow:0 6px 18px rgba(18,140,126,.35)}
.flota:hover{background:#1ebe5b}
