[hidden] { display: none !important; }
/* Secciones de proyecto tras el recorrido: ficha, galería con visor y siguiente proyecto.
   Usa los tokens de montgo.css / mar.css (--bg, --ink, --muted, --line, --accent, --stage). */
.wrap-p {
  max-width: 1180px; margin: 0 auto;
  padding-left: max(16px, env(safe-area-inset-left, 0px));
  padding-right: max(16px, env(safe-area-inset-right, 0px));
}
@media (min-width: 700px) {
  .wrap-p { padding-left: max(40px, env(safe-area-inset-left, 0px)); padding-right: max(40px, env(safe-area-inset-right, 0px)); }
}

.ficha { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 1.5rem 4rem; padding-block: clamp(3rem, 8vw, 5.5rem) clamp(2rem, 5vw, 3rem); }
.ficha .where { font: 400 .76rem/1.4 var(--font-data); letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.ficha h2 { margin: .5rem 0 0; font: 400 clamp(2.2rem, 5vw, 3.6rem)/1 var(--font-display); letter-spacing: .02em; }
.ficha .precio { margin: 1rem 0 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: .3rem .8rem; font: 400 clamp(1.3rem, 2.4vw, 1.7rem)/1.2 var(--font-display); color: var(--ink); font-variant-numeric: tabular-nums; }
.ficha .precio-nota { font: 400 .74rem/1.4 var(--font-data); letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.ficha p { margin: 0; color: var(--muted); font-size: 1.06rem; max-width: 56ch; }
@media (max-width: 700px) { .ficha { grid-template-columns: 1fr; } }
.claves { list-style: none; margin: 1.25rem 0 0; padding: 0; display: grid; border-top: 1px solid var(--line); }
.claves li { display: flex; gap: .9rem; align-items: baseline; padding-block: .7rem; border-bottom: 1px solid var(--line); }
.claves li::before { content: ""; flex: none; width: .5rem; height: .5rem; background: var(--accent); transform: translateY(-.1rem); }

.galeria-head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; padding-block: 1rem 1.25rem; }
.galeria-head h2 { margin: 0; font: 400 clamp(1.6rem, 3vw, 2.2rem)/1.1 var(--font-display); }
.galeria-head span { font: 400 .76rem/1.4 var(--font-data); color: var(--muted); font-variant-numeric: tabular-nums; }
.gal-grupo { display: grid; gap: 1rem; padding-block: .5rem 2.25rem; }
.gal-grupo-head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; border-top: 1px solid var(--ink); padding-top: .8rem; }
.gal-grupo-head h3 { margin: 0; font: 400 .8rem/1.3 var(--font-body); letter-spacing: .16em; text-transform: uppercase; }
.gal-grupo-head span { font: 400 .74rem/1.3 var(--font-data); color: var(--muted); font-variant-numeric: tabular-nums; }
.galeria { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(14px, 2vw, 28px); }
.galeria button { all: unset; cursor: zoom-in; display: block; min-width: 0; }
.galeria .destacada { grid-column: 1 / -1; }
.galeria figure { margin: 0; display: grid; gap: .6rem; }
.galeria .marco { display: block; overflow: hidden; aspect-ratio: 3 / 2; max-width: 100%; background: var(--surface); }
.galeria .destacada .marco { aspect-ratio: 21 / 9; }
.galeria img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.galeria button:hover img { transform: scale(1.03); }
.galeria button:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.galeria figcaption { display: flex; justify-content: space-between; gap: 1rem; font-size: .9rem; color: var(--ink); }
.galeria figcaption::after { content: "Ampliar"; font: 400 .7rem/1.6 var(--font-data); letter-spacing: .06em; text-transform: uppercase; color: var(--muted); opacity: 0; transition: opacity .25s ease; }
.galeria button:hover figcaption::after, .galeria button:focus-visible figcaption::after { opacity: 1; }
:lang(en) .galeria figcaption::after { content: "Enlarge"; }
:lang(fr) .galeria figcaption::after { content: "Agrandir"; }
:lang(de) .galeria figcaption::after { content: "Vergrößern"; }
@media (max-width: 640px) {
  .galeria { grid-template-columns: 1fr; }
  .galeria .destacada .marco { aspect-ratio: 3 / 2; }
}

.mas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 3rem; padding-block: clamp(3rem, 7vw, 4.5rem) 0; }
.mas div { border-top: 1px solid var(--line); padding-block: 1rem; display: grid; gap: .35rem; }
.mas h3 { margin: 0; font: 400 1.25rem/1.2 var(--font-display); }
.mas p { margin: 0; color: var(--muted); font-size: .95rem; }
@media (max-width: 640px) { .mas { grid-template-columns: 1fr; } }

.siguiente { display: block; text-decoration: none; margin-top: clamp(3rem, 7vw, 4.5rem); border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); }
.siguiente .wrap-p { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; padding-block: clamp(1.5rem, 4vw, 2.5rem); }
.siguiente small { display: block; font: 400 .76rem/1.4 var(--font-data); letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.siguiente strong { font: 400 clamp(2rem, 5vw, 3.4rem)/1 var(--font-display); font-weight: 400; }
.siguiente .flecha { font-size: clamp(1.6rem, 4vw, 2.6rem); color: var(--accent); transition: transform .3s ease; }
.siguiente:hover .flecha { transform: translateX(8px); }

/* Visor */
.visor { border: 0; padding: 0; margin: 0; max-width: none; max-height: none; width: 100%; height: 100%; background: rgb(10 12 11 / .96); color: #f2f1ec; }
.visor::backdrop { background: rgb(10 12 11 / .96); }
.visor[open] { display: grid; grid-template-rows: auto 1fr auto; }
.visor-top, .visor-bottom {
  display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  padding: calc(.8rem + env(safe-area-inset-top, 0px)) max(16px, env(safe-area-inset-right, 0px)) .8rem max(16px, env(safe-area-inset-left, 0px));
  font: 400 .78rem/1.3 var(--font-data); letter-spacing: .04em;
}
.visor-bottom { padding-top: .8rem; padding-bottom: calc(.8rem + env(safe-area-inset-bottom, 0px)); justify-content: center; gap: 2rem; }
.visor figure { margin: 0; min-height: 0; display: grid; place-items: center; padding-inline: max(16px, env(safe-area-inset-left, 0px)); }
.visor img { max-width: 100%; max-height: 100%; object-fit: contain; display: block; }
.visor button { all: unset; cursor: pointer; padding: .5rem .8rem; font: inherit; letter-spacing: .12em; text-transform: uppercase; border: 1px solid rgb(242 241 236 / .35); }
.visor button:hover { border-color: #f2f1ec; }
.visor button:focus-visible { outline: 2px solid #f2f1ec; outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) {
  .galeria img, .siguiente .flecha { transition: none; }
}

/* Selector de idioma en la cabecera */
.site-header .lang { display: flex; gap: .15rem; margin-left: auto; font: 400 .72rem/1 var(--font-data); letter-spacing: .08em; }
.site-header .lang a { text-decoration: none; color: var(--muted); padding: .4rem .35rem; }
.site-header .lang a[aria-current="true"] { color: var(--ink); text-decoration: underline; text-decoration-color: var(--accent); text-underline-offset: .35em; }
.site-header .proj-nav { margin-left: auto; }
.site-header .proj-nav + .lang { margin-left: 0; }
@media (max-width: 700px) {
  .site-header { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; row-gap: .5rem; }
  .site-header .lang { order: 2; margin-left: 0; }
  .site-header .proj-nav { order: 3; grid-column: 1 / -1; margin-left: 0; }
}

/* ---------- Planos ---------- */
.planos { padding-block: clamp(2.5rem, 6vw, 4rem) 0; }
.planos-intro { margin: 0 0 1.4rem; max-width: 60ch; color: var(--muted); }
.tabs-opcion, .tabs-plantas { display: flex; flex-wrap: wrap; gap: .5rem; }
.tabs-opcion { margin-bottom: 1rem; }
.tabs-opcion button, .tabs-plantas button {
  all: unset; box-sizing: border-box; cursor: pointer; font-size: .76rem; letter-spacing: .14em; text-transform: uppercase;
  padding: .7rem 1.05rem; border: 1px solid var(--line); color: var(--muted);
}
.tabs-opcion button { font: 400 1.05rem/1 var(--font-display); letter-spacing: .02em; text-transform: none; padding: .75rem 1.3rem; }
.tabs-opcion button[aria-selected="true"] { background: var(--ink); color: var(--bg); border-color: var(--ink); }
.tabs-plantas { border-bottom: 1px solid var(--line); gap: 0; margin-bottom: 1.25rem; }
.tabs-plantas button { border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; padding: .8rem 1rem .75rem; }
.tabs-plantas button[aria-selected="true"] { color: var(--ink); border-bottom-color: var(--accent); }
.tabs-opcion button:focus-visible, .tabs-plantas button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.plano { display: grid; grid-template-columns: minmax(0, 2.4fr) minmax(0, 1fr); gap: 1.5rem 2.5rem; align-items: start; }
.plano-solo { grid-template-columns: 1fr; }
.plano-figs { display: grid; gap: 1rem; min-width: 0; }
.plano-solo .plano-figs { grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); }
.plano-img { all: unset; box-sizing: border-box; display: block; cursor: zoom-in; background: #fff; border: 1px solid var(--line); padding: clamp(8px, 1.5vw, 18px); }
.plano-img img { width: 100%; height: auto; display: block; }
.plano-img:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.plano-info { display: grid; gap: .6rem; min-width: 0; }
.plano-info h4 { margin: .4rem 0 0; font: 400 .74rem/1.3 var(--font-data); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.plano-info p { margin: 0; color: var(--muted); }
.leyenda, .incluye { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.leyenda li, .incluye li { display: flex; gap: .9rem; align-items: baseline; padding-block: .5rem; border-bottom: 1px solid var(--line); font-size: .93rem; }
.leyenda .cod { flex: none; min-width: 2.6rem; font: 400 .74rem/1.4 var(--font-data); color: var(--accent); font-variant-numeric: tabular-nums; }
.leyenda .m2 { margin-left: auto; font: 400 .76rem/1.4 var(--font-data); color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.incluye li::before { content: ""; flex: none; width: .4rem; height: .4rem; background: var(--accent); transform: translateY(-.1rem); }
@media (max-width: 860px) { .plano { grid-template-columns: 1fr; } }

/* ---------- Memoria de calidades ---------- */
.calidades { padding-block: clamp(3rem, 7vw, 4.5rem) 0; }
.memoria { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2.5rem; border-top: 1px solid var(--ink); }
.memoria details { border-bottom: 1px solid var(--line); min-width: 0; }
.memoria summary { list-style: none; cursor: pointer; display: flex; gap: .9rem; align-items: baseline; padding-block: 1rem; font: 400 1.15rem/1.3 var(--font-display); }
.memoria summary::-webkit-details-marker { display: none; }
.memoria summary::after { content: "+"; margin-left: auto; font: 400 1.1rem/1 var(--font-body); color: var(--muted); }
.memoria details[open] summary::after { content: "–"; }
.memoria summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.memoria .n { font: 400 .72rem/1 var(--font-data); color: var(--accent); font-variant-numeric: tabular-nums; }
.memoria ul { margin: 0 0 1.1rem; padding: 0 0 0 1.9rem; display: grid; gap: .35rem; color: var(--muted); font-size: .94rem; }
@media (max-width: 760px) { .memoria { grid-template-columns: 1fr; } }

/* ---------- Lo esencial ---------- */
.esencial { padding-block: 0 clamp(2.5rem, 6vw, 3.5rem); }
.esencial-lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--ink); }
.esencial-lista li { display: grid; gap: .3rem; padding: 1rem 1.2rem 1.1rem 0; border-bottom: 1px solid var(--line); min-width: 0; }
.esencial-lista li:not(:nth-child(3n+1)) { padding-left: 1.2rem; border-left: 1px solid var(--line); }
.esencial-lista .k { font: 400 .72rem/1.3 var(--font-data); letter-spacing: .08em; text-transform: uppercase; color: var(--accent); }
.esencial-lista .v { font: 400 1.12rem/1.3 var(--font-display); }
@media (max-width: 760px) {
  .esencial-lista { grid-template-columns: 1fr 1fr; }
  .esencial-lista li, .esencial-lista li:not(:nth-child(3n+1)) { padding: .9rem 1rem 1rem 0; border-left: 0; }
  .esencial-lista li:nth-child(even) { padding-left: 1rem; border-left: 1px solid var(--line); }
}

/* ---------- Navegación flotante (aparece al bajar) ---------- */
.nav-flot {
  position: fixed; z-index: 40;
  top: calc(env(safe-area-inset-top, 0px) + 12px); right: max(12px, env(safe-area-inset-right, 0px));
  display: flex; align-items: center; gap: .1rem; padding: .3rem;
  background: rgb(16 19 18 / .72); color: #eceee9;
  -webkit-backdrop-filter: blur(12px) saturate(1.2); backdrop-filter: blur(12px) saturate(1.2);
  border: 1px solid rgb(236 238 233 / .14); border-radius: 999px;
  font: 400 .72rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase;
  opacity: 0; transform: translateY(-8px); pointer-events: none; visibility: hidden;
  transition: opacity .25s ease, transform .25s ease, visibility 0s linear .25s;
}
.nav-flot.on { opacity: 1; transform: none; pointer-events: auto; visibility: visible; transition: opacity .25s ease, transform .25s ease; }
.nav-flot a, .nav-flot button {
  all: unset; box-sizing: border-box; cursor: pointer; white-space: nowrap;
  padding: .65rem .85rem; border-radius: 999px; color: rgb(236 238 233 / .78);
}
.nav-flot a:hover, .nav-flot button:hover { color: #fff; background: rgb(236 238 233 / .1); }
.nav-flot a[aria-current="page"] { color: #fff; background: rgb(236 238 233 / .16); }
.nav-flot .nf-inicio { color: #fff; margin-right: .2rem; }
.nav-flot .nf-arriba { padding-inline: .8rem; font-size: .9rem; letter-spacing: 0; margin-left: .2rem; border-left: 1px solid rgb(236 238 233 / .16); border-radius: 0 999px 999px 0; }
.nav-flot a:focus-visible, .nav-flot button:focus-visible { outline: 2px solid #fff; outline-offset: 1px; }
@media (max-width: 560px) {
  .nav-flot { left: max(12px, env(safe-area-inset-left, 0px)); right: max(12px, env(safe-area-inset-right, 0px)); justify-content: space-between; font-size: .66rem; letter-spacing: .08em; }
  .nav-flot a, .nav-flot button { padding: .6rem .55rem; }
}
@media (prefers-reduced-motion: reduce) { .nav-flot, .nav-flot.on { transition: none; transform: none; } }

/* Selector de 4 idiomas */
.site-header .lang { gap: 0; }
.site-header .lang a { padding: .4rem .3rem; }

/* ---------- Pedir información y saltos dentro de la página ---------- */
.ficha .cta-info { display: inline-flex; align-items: center; gap: .6rem; margin-top: 1.2rem; padding: .95rem 1.35rem; background: var(--ink); color: var(--bg); text-decoration: none; font: 500 .76rem/1 var(--font-body); letter-spacing: .16em; text-transform: uppercase; }
.ficha .cta-info::after { content: "→"; transition: transform .25s ease; }
.ficha .cta-info:hover::after { transform: translateX(4px); }
.saltos { grid-column: 1 / -1; display: flex; gap: .5rem; overflow-x: auto; padding: 0 0 .2rem; margin: -.5rem 0 clamp(1.5rem, 4vw, 2.5rem); scrollbar-width: none; }
.saltos::-webkit-scrollbar { display: none; }
.saltos a { flex: none; padding: .6rem .95rem; border: 1px solid var(--line); border-radius: 999px; text-decoration: none; font: 400 .74rem/1 var(--font-data); letter-spacing: .06em; text-transform: uppercase; color: var(--ink); }
.saltos a:hover { border-color: var(--accent); color: var(--accent); }
@media (prefers-reduced-motion: reduce) { .ficha .cta-info::after { transition: none; } }

/* Aviso de inicio del recorrido: más visible, con una flecha que invita a bajar */
.r-intro .r-hint { margin-top: 1.3rem; font-size: .86rem; letter-spacing: .14em; color: var(--stage-ink); }
.r-intro .r-hint::after { content: "↓"; font-size: 1.15rem; letter-spacing: 0; animation: r-bajar 1.6s ease-in-out infinite; }
@keyframes r-bajar { 0%, 100% { transform: translateY(0); opacity: .55; } 50% { transform: translateY(6px); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .r-intro .r-hint::after { animation: none; } }
