/* Tipografias autoalojadas: Fraunces + Archivo (variable, latin + latin-ext). Origen: Google Fonts, licencia OFL. */

@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 300 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(../fonts/Archivo-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 300 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(../fonts/Archivo-normal-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: 'Fraunces';
  font-style: italic;
  font-weight: 300 600;
  font-display: swap;
  src: url(../fonts/Fraunces-italic-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 300 600;
  font-display: swap;
  src: url(../fonts/Fraunces-italic-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: 'Fraunces';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url(../fonts/Fraunces-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url(../fonts/Fraunces-normal-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{
  --ink:#2B2A28;
  --ink-soft:#5C574F;
  --bronze:#A8814E;
  --bronze-lt:#CBAE7E;
  --bronze-dk:#8A6836;
  --paper:#FBF9F5;
  --beige:#F5EFE3;
  --beige-dp:#EDE3CF;
  --hair:#DAD0BC;
  --display:"Fraunces",Georgia,serif;
  --body:"Archivo",system-ui,sans-serif;
  --pad:clamp(1.25rem,5vw,5rem);
  --gap:clamp(2.5rem,7vw,6rem);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--paper);color:var(--ink);
  font-family:var(--body);font-weight:300;
  font-size:clamp(1rem,.95rem + .2vw,1.0625rem);
  line-height:1.65;-webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit}

/* ---------- utilidades ---------- */
.wrap{max-width:1240px;margin-inline:auto;padding-inline:var(--pad)}
.narrow{max-width:660px}
.eyebrow{
  font-size:.6875rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  color:var(--bronze-dk);display:flex;align-items:center;gap:.75rem;
}
.eyebrow::after{content:"";flex:1;height:1px;background:var(--hair)}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.1;letter-spacing:-.01em}
h2{font-size:clamp(1.9rem,1.2rem + 2.6vw,3.1rem);margin:.9rem 0 1.2rem}
h3{font-size:1.3rem;line-height:1.25}
h2 em,h1 em{font-style:italic;color:var(--bronze-dk)}
.lead{font-size:clamp(1.06rem,1rem + .45vw,1.3rem);color:var(--ink-soft);line-height:1.55}
section{padding-block:var(--gap)}

/* ---------- cabecera ---------- */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(251,249,245,.9);backdrop-filter:blur(10px);
  border-bottom:1px solid transparent;transition:border-color .3s,padding .3s;
}
header.stuck{border-color:var(--hair)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:1rem}
.bar img{height:70px;width:auto;transition:height .3s}
header.stuck .bar img{height:54px}
@media(min-width:901px){.bar img{height:70px}header.stuck .bar img{height:54px}}
nav ul{display:flex;gap:1.9rem;list-style:none}
nav a{
  text-decoration:none;font-size:.875rem;letter-spacing:.02em;color:var(--ink-soft);
  padding-block:.35rem;border-bottom:1px solid transparent;transition:.2s;
}
nav a:hover,nav a:focus-visible{color:var(--bronze-dk);border-color:var(--bronze)}
nav a[aria-current="page"]{color:var(--bronze-dk);border-color:var(--bronze)}
.burger{display:none;background:none;border:0;cursor:pointer;padding:.6rem;color:var(--ink)}
.burger svg{display:block}

/* ---------- hero (home) ---------- */
.hero{
  position:relative;min-height:clamp(16rem,40vh,22rem);
  display:flex;align-items:flex-end;padding-bottom:clamp(1.75rem,4vw,2.5rem);
  color:var(--paper);overflow:hidden;padding-top:1.25rem;
}
.hero::before{
  content:"";position:absolute;inset:0;
  background:url("../img/jardin-Caldetas.webp") center center/cover no-repeat;
  transform:scale(1.06);animation:drift 22s ease-out forwards;
}
@keyframes drift{to{transform:scale(1)}}
.hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(78deg,rgba(43,42,40,.66) 0%,rgba(43,42,40,.42) 30%,rgba(43,42,40,0) 58%);
}
.hero .wrap{position:relative;z-index:1;width:100%}
.hero .eyebrow{color:var(--bronze-lt)}
.hero .eyebrow::after{background:rgba(203,174,126,.45)}
.hero h1{
  font-size:clamp(2.7rem,1.4rem + 6vw,6rem);font-weight:300;margin:1.2rem 0 0;
  max-width:14ch;text-wrap:balance;color:var(--paper);
  text-shadow:0 2px 6px rgba(0,0,0,.6),0 8px 30px rgba(0,0,0,.45);
}
.hero h1 .year{
  display:block;font-weight:600;font-style:italic;
  color:var(--bronze-lt);font-variant-numeric:lining-nums;font-size:.7em;
}
.hero p{margin-top:1.4rem;max-width:44ch;color:rgba(251,249,245,.92);font-size:1.05rem;text-shadow:0 1px 4px rgba(0,0,0,.55),0 6px 20px rgba(0,0,0,.4)}
.cta{
  display:inline-block;margin-top:2rem;padding:.85rem 2.1rem;
  background:var(--bronze);color:#fff;text-decoration:none;
  font-size:.8125rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
  transition:background .25s,transform .25s;
  border:0;cursor:pointer;font-family:var(--body);
}
.cta:hover,.cta:focus-visible{background:var(--bronze-dk);transform:translateY(-2px)}

/* ---------- sobre nosotros (home) ---------- */
.about{background:var(--beige)}
.about .grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap);align-items:center}
.values{display:grid;gap:2rem;margin-top:3.5rem;grid-template-columns:repeat(3,1fr)}
.value{padding-top:1.25rem;border-top:2px solid var(--bronze)}
.value h3{margin-bottom:.5rem}
.value p{font-size:.95rem;color:var(--ink-soft)}
.about figure{position:relative}
.about figure::after{
  content:"";position:absolute;inset:auto -14px -14px auto;width:60%;height:60%;
  border-right:1px solid var(--bronze-lt);border-bottom:1px solid var(--bronze-lt);z-index:-1;
}

/* ---------- cartelas (locales) ---------- */
.plates{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-top:3rem}
.plate{background:var(--beige);border-top:2px solid var(--bronze);display:flex;flex-direction:column}
.plate .ph{aspect-ratio:4/3;overflow:hidden}
.plate .ph img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.plate:hover .ph img{transform:scale(1.05)}
.plate .txt{padding:1.5rem 1.4rem 1.75rem;display:flex;flex-direction:column;gap:.75rem;flex:1}
.plate .name{
  font-family:var(--display);font-size:1.15rem;font-weight:600;
  order:-1;letter-spacing:.01em;
}
.plate p{font-size:.9rem;color:var(--ink-soft);line-height:1.6}

/* ---------- fincas (home) ---------- */
.estate{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--gap);align-items:center}
@media(min-width:901px){.estate.steps{grid-template-columns:1fr 1fr}}
.estate.flip>figure{order:-1}
.estate figure{display:grid;gap:.75rem}
.estate .duo{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.estate img{width:100%;aspect-ratio:4/3;object-fit:cover}
.estate .duo img{aspect-ratio:3/4}
/* Escoles Pies (home): fachada arriba y salón debajo en todos los formatos */
#fincas .estate figure img:last-child{order:-1}
/* casa en la playa (composición propia) */
.svm{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(1.5rem,3vw,2.5rem);align-items:start}
.svm img{width:100%;object-fit:cover}
.svm-left{display:grid;gap:1.1rem}
.sv-beach{aspect-ratio:21/8}
.svm-duo{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.svm-duo img{aspect-ratio:4/3}
.sv-hort{aspect-ratio:1/1}
.sv-pond{aspect-ratio:3/2;margin-bottom:1.9rem}
@media(max-width:900px){.svm{grid-template-columns:1fr}}

/* grèixer */
.grx{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,4vw,4rem);align-items:center}
.grx-txt{text-align:right}
.grx-txt p{font-style:italic;color:var(--ink-soft);margin-top:1.1rem}
.grx-fotos{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;align-items:start}
.grx-col{display:grid;gap:1.4rem;min-width:0}
.grx-col img{width:100%;object-fit:cover;aspect-ratio:4/3}
.grx-col img.alta{aspect-ratio:1/1}
@media(max-width:900px){.grx{grid-template-columns:1fr}.grx-txt{text-align:left}}
.meta{
  margin-top:2rem;display:flex;flex-wrap:wrap;gap:.5rem;
}
.tag{
  font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;
  border:1px solid var(--hair);padding:.4rem .85rem;color:var(--ink-soft);
}
.mountain{background:var(--beige-dp)}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;margin-top:2.5rem}
.gallery a{overflow:hidden;display:block}
.gallery img{aspect-ratio:1;object-fit:cover;width:100%;transition:transform .7s ease,filter .5s}
.gallery a:hover img{transform:scale(1.06)}

/* ---------- reforma (home) ---------- */
.reform{background:var(--ink);color:var(--paper)}
.reform .eyebrow{color:var(--bronze-lt)}
.reform .eyebrow::after{background:rgba(218,208,188,.25)}
.reform .lead{color:rgba(251,249,245,.72)}
.rooms{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:3rem}
.room figure{overflow:hidden}
.room img{width:100%;aspect-ratio:3/4;object-fit:cover;transition:transform .8s ease}
.room:hover img{transform:scale(1.05)}
.room h3{margin:1.25rem 0 .5rem;font-size:1.15rem}
.room .label{font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bronze-lt)}
.room p{font-size:.9rem;color:rgba(251,249,245,.65);line-height:1.6}

/* ---------- cierre ---------- */
.closing{text-align:center}
.closing h2{max-width:18ch;margin-inline:auto}

/* ---------- pie ---------- */
footer{background:var(--beige);border-top:1px solid var(--hair);padding-block:3.5rem 2.5rem;font-size:.85rem}
.fgrid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2.5rem}
footer img{height:52px;width:auto;margin-bottom:1rem}
footer h4{
  font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--bronze-dk);font-weight:500;margin-bottom:.9rem;
}
footer ul{list-style:none;display:grid;gap:.5rem}
footer a{text-decoration:none;color:var(--ink-soft)}
footer a:hover,footer a:focus-visible{color:var(--bronze-dk);text-decoration:underline;text-underline-offset:3px}
.fapp{margin-top:1rem}
.fapp a{color:var(--bronze-dk)}
.legal{
  margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--hair);
  display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between;
  color:var(--ink-soft);font-size:.78rem;
}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.3,1)}
.rv.in{opacity:1;transform:none}

/* ---------- páginas interiores ---------- */
.page-hero{background:var(--beige);border-bottom:1px solid var(--hair);padding-block:calc(var(--gap)*.75)}
.page-hero h1{font-size:clamp(2.2rem,1.3rem + 3.6vw,4rem);font-weight:300;margin-top:1rem;max-width:18ch;text-wrap:balance}
.page-hero .lead{margin-top:1.2rem;max-width:56ch}

/* pasos (cómo trabajamos) */
.num{font-family:var(--display);font-style:italic;font-weight:300;font-size:2.4rem;line-height:1;color:var(--bronze)}
.step-title{font-size:clamp(1.6rem,1.2rem + 1.6vw,2.3rem);margin:.7rem 0 1.1rem}

/* cita de cierre */
.quote{background:var(--ink);color:var(--paper);text-align:center}
.quote p{
  font-family:var(--display);font-style:italic;font-weight:300;
  font-size:clamp(1.4rem,1rem + 1.9vw,2.3rem);line-height:1.4;
  max-width:30ch;margin-inline:auto;text-wrap:balance;
}
.quote em{color:var(--bronze-lt);font-style:italic}

/* galería del piso muestra */
.showcase{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-top:3rem}
.shot figure{overflow:hidden}
.shot img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .7s ease}
.shot:hover img{transform:scale(1.05)}
.shot .label{
  font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--bronze-dk);margin-top:.9rem;
}

/* contacto */
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:var(--gap);align-items:start}
.info-block{border-top:2px solid var(--bronze);padding-top:1.25rem;margin-bottom:2.25rem}
.info-block h3{font-size:1.15rem;margin-bottom:.5rem}
.info-block p{color:var(--ink-soft);font-size:.95rem}
.info-block a{color:var(--bronze-dk);text-decoration:none}
.info-block a:hover{text-decoration:underline;text-underline-offset:3px}

/* formularios */
.form{display:grid;gap:1.4rem;max-width:760px}
/* formulario de contratación: la caja del formulario centrada en la página */
.wrap > .form{margin-inline:auto}
.form h3{margin-top:1.5rem;padding-bottom:.6rem;border-bottom:1px solid var(--hair)}
.form h3:first-child{margin-top:0}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.field{display:grid;gap:.45rem}
.field label{
  font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-soft);
}
.field label .opt{color:var(--bronze-dk);text-transform:none;letter-spacing:.02em;font-weight:400}
.field input,.field select,.field textarea{
  font:inherit;font-weight:300;color:var(--ink);background:#fff;
  border:1px solid var(--hair);border-radius:0;padding:.7rem .9rem;width:100%;
  transition:border-color .2s;
}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{
  outline:none;border-color:var(--bronze);
}
.field textarea{min-height:9rem;resize:vertical}
.field input[type="file"]{background:var(--paper);padding:.55rem .6rem;cursor:pointer}
.field input[type="file"]::file-selector-button{
  font:inherit;font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;
  background:var(--beige-dp);border:1px solid var(--hair);color:var(--ink-soft);
  padding:.45rem 1rem;margin-right:1rem;cursor:pointer;
}
.check{display:flex;gap:.7rem;align-items:flex-start;font-size:.9rem;color:var(--ink-soft)}
.check input{accent-color:var(--bronze);margin-top:.3rem;flex:none}
.check a{color:var(--bronze-dk)}
.form .cta{justify-self:end;margin-top:1rem}
.note{font-size:.8rem;font-style:italic;color:var(--ink-soft)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.formmsg{font-size:.95rem;margin-top:.4rem}
.formmsg.ok{color:var(--bronze-dk);font-size:1.05rem;line-height:1.5}
.formmsg.err{color:#a5342a}

/* tarjetas de documentación (formulario) */
.docs{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.doc{
  background:var(--beige);border:1px solid var(--hair);
  padding:1.4rem 1rem 1.2rem;text-align:center;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;gap:.65rem;
}
.doc svg{color:var(--bronze-dk)}
.doc .dlabel{font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
.doc .dlabel .opt{color:var(--bronze-dk);text-transform:none;letter-spacing:.02em;font-weight:400}
.doc .btn-adj{
  display:inline-block;background:var(--bronze);color:#fff;
  font-size:.85rem;font-weight:500;padding:.5rem 1.5rem;border-radius:10px;
  transition:background .2s;
}
.doc:hover .btn-adj{background:var(--bronze-dk)}
.doc input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.doc .fname{font-size:.75rem;color:var(--ink-soft);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 📎 LO QUE FALTA SE VE; LO QUE YA ESTÁ, SE APAGA (Ivo, 29/08/2026: «quiero que
   el área donde está el adjunto que falta se destaque, y los botones donde ya
   hay adjunto que queden más suavizados»). Sin esto, las cuatro tarjetas se ven
   igual llenas o vacías, y hay que leerlas una por una para saber cuál queda.

   ⚠️ Es la misma idea que la norma de la casa «no se marca lo normal», al
   revés: aquí lo pendiente ES lo excepcional mientras quede algo por adjuntar,
   y en cuanto se pone deja de pedir atención. */
.doc.falta{
  border-color:var(--bronze);border-width:2px;padding:calc(1.4rem - 1px) calc(1rem - 1px) calc(1.2rem - 1px);
  background:#fff;
}
.doc.falta .dlabel{color:var(--bronze-dk)}
/* Ya adjuntado: se apaga entero —marco, icono, letra y botón— y aparece la
   marca de hecho. No se esconde: se puede cambiar el fichero. */
.doc.puesto{opacity:.62;border-color:var(--hair);background:var(--beige)}
.doc.puesto svg{color:var(--ink-soft)}
.doc.puesto .btn-adj{background:transparent;color:var(--ink-soft);
  border:1px solid var(--hair);font-weight:400}
.doc.puesto:hover{opacity:1}
.doc.puesto:hover .btn-adj{background:var(--hair);color:var(--ink)}
.doc.puesto .fname{color:var(--ink);font-weight:600}
.doc.puesto .fname::before{content:"✓ ";color:#2f8a4b}

/* 🔔 «MIRA AQUÍ», con la letra de la casa (Ivo, 29/08/2026). Al pulsar Enviar
   sin un documento, en vez del globo gris del navegador se lleva el ojo a la
   tarjeta que falta: se enciende un momento y se apaga sola. Un parpadeo corto
   se ve; uno que se queda, molesta y se acaba ignorando. */
@keyframes pide{
  0%{box-shadow:0 0 0 0 rgba(138,106,59,.78)}
  70%{box-shadow:0 0 0 13px rgba(138,106,59,0)}
  100%{box-shadow:0 0 0 0 rgba(138,106,59,0)}
}
/* TRES parpadeos y un punto mas de color (Ivo, 29/08/2026: «haz que haga 3
   parpadeos seguidos para que se identifique bien, incluso con un color un poco
   mas fuerte sin pasarte»). Uno solo se podia perder si en ese momento estabas
   mirando otra parte de la pagina; tres se ven seguro y siguen acabando. */
.pide{animation:pide .85s ease-out 3}
/* Y si alguien no quiere animaciones, el navegador lo dice y se respeta: el
   marco se queda fijo un momento en vez de latir (MDN, prefers-reduced-motion). */
@media (prefers-reduced-motion: reduce){
  .pide{animation:none;outline:2px solid var(--bronze);outline-offset:3px}
}

/* aviso destacado (portada del formulario) */
.panel{
  background:var(--beige);border-top:2px solid var(--bronze);
  padding:2.25rem 2rem;max-width:720px;margin-top:2.75rem;
}
.panel .big{font-family:var(--display);font-size:1.35rem;line-height:1.4;margin-bottom:.9rem}
.panel p{color:var(--ink-soft)}

/* texto legal */
.prose{max-width:720px}
.prose h2{font-size:1.55rem;margin:2.6rem 0 .9rem}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:1.15rem;margin:1.8rem 0 .6rem}
.prose p{color:var(--ink-soft);margin-bottom:.95rem}
.prose ul{padding-left:1.15rem;margin-bottom:.95rem;color:var(--ink-soft)}
.prose li{margin-bottom:.4rem}
.prose strong{color:var(--ink);font-weight:500}
.prose a{color:var(--bronze-dk)}

/* ---------- responsive ---------- */
@media(max-width:900px){
  .about .grid,.estate{grid-template-columns:1fr}
  .estate.flip>figure{order:0}
  .values{grid-template-columns:1fr;gap:1.75rem}
  .rooms{grid-template-columns:1fr 1fr;gap:1.75rem 1rem}
  .room img{aspect-ratio:3/4}
  .room:nth-child(3){grid-column:1 / -1}
  .room:nth-child(3) img{aspect-ratio:16/10}
  .fgrid{grid-template-columns:1fr;gap:2rem}
  .contact-grid{grid-template-columns:1fr}
  .f2{grid-template-columns:1fr}
  .form{margin-top:1.25rem}
  .showcase{grid-template-columns:1fr 1fr;gap:1.1rem}
  .shot .label{margin-top:.6rem}
  .plates{grid-template-columns:1fr 1fr;gap:1.1rem}
  .docs{grid-template-columns:1fr 1fr;gap:.9rem}
  .plate .txt{padding:1.1rem .95rem 1.25rem;gap:.55rem}
  .plate .name{font-size:1rem}
  .plate p{font-size:.82rem}
  .burger{display:block}
  nav{
    position:absolute;top:100%;left:0;right:0;background:var(--paper);
    border-block:1px solid var(--hair);
    display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s ease;
  }
  nav>ul{overflow:hidden;flex-direction:column;gap:0;padding-inline:var(--pad)}
  nav[data-open="true"]{grid-template-rows:1fr}
  nav li+li{border-top:1px solid var(--hair)}
  nav a{display:block;padding-block:1rem;font-size:1rem;border:0}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv{opacity:1;transform:none}
  html{scroll-behavior:auto}
}
:focus-visible{outline:2px solid var(--bronze);outline-offset:3px}

/* ---------- equipo (dentro del cierre) ---------- */
.team-intro{max-width:46ch;margin:1.4rem auto 0;color:var(--ink-soft);font-size:1rem}
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin:2.25rem auto 1.75rem;max-width:560px}
.team-grid figure{margin:0}
.team-grid img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:10px}
.team-grid .name{font-family:var(--display);font-weight:400;font-size:1rem;line-height:1.2;margin-top:.8rem}
.team-grid .role{font-size:.66rem;letter-spacing:.09em;text-transform:uppercase;color:var(--bronze-dk);margin-top:.25rem}
@media(max-width:900px){.team-grid{gap:.9rem;max-width:420px}.team-grid .name{font-size:.82rem}.team-grid .role{font-size:.55rem;letter-spacing:.05em}}
/* nombres y cargos: texto real, pero inyectado desde aquí (no está en el HTML ni legible aquí) */
.team-grid .p1 .name::before{content:"\4D \61 \72 \ED \61 \20 \4C \75 \69 \73 \61 \20 \47 \6F \64 \F3 \20 \50 \6F \6E \73 \61 "}
.team-grid .p1 .role::before{content:"\54 \69 \74 \75 \6C \61 \72 \20 \79 \20 \67 \65 \72 \65 \6E \74 \65 "}
.team-grid .p2 .name::before{content:"\49 \76 \6F \20 \64 \65 \20 \56 \61 \6C \6C \E8 \73 \20 \47 \6F \64 \F3 "}
.team-grid .p2 .role::before{content:"\44 \69 \72 \65 \63 \74 \6F \72 \20 \47 \65 \6E \65 \72 \61 \6C "}
.team-grid .p3 .name::before{content:"\4D \61 \72 \ED \61 \20 \4C \75 \69 \73 \61 \20 \64 \65 \20 \56 \61 \6C \6C \E8 \73 \20 \47 \6F \64 \F3 "}
.team-grid .p3 .role::before{content:"\52 \65 \73 \70 \6F \6E \73 \61 \62 \6C \65 \20 \64 \65 \20 \61 \64 \6D \69 \6E \69 \73 \74 \72 \61 \63 \69 \F3 \6E "}
