:root{color-scheme:light;--ink:#172b33;--muted:#425d68;--brand:#165365;--accent:#066d92;--paper:#edf3f5;--line:#c6d4da;--focus:#9b3d00;--tab:#173f50}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.55 Arial,Helvetica,sans-serif}
img{display:block;max-width:100%;height:auto}
a{color:var(--brand);text-underline-offset:.2em}
a:hover{text-decoration-thickness:2px}
a,button{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
[hidden]{display:none!important}
.skip-link{position:absolute;z-index:10;left:1rem;top:0;transform:translateY(-150%);background:#fff;color:var(--ink);padding:.8rem}
.skip-link:focus{transform:translateY(0)}
.site-header{position:sticky;top:0;z-index:1000;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:12px 3%;background:var(--paper);border-bottom:1px solid #d9dee3}
.logo{display:block;max-width:100%;width:254px}
.logo img{width:100%;height:auto}
.main-nav{display:flex;flex-wrap:wrap;align-items:center;gap:8px;max-width:100%}
.main-nav a{display:flex;align-items:center;justify-content:center;text-align:center;flex:0 0 105px;width:105px;min-height:43.2px;padding:4px 12px;border-radius:4px;color:white;background:var(--brand);font-size:14px;font-weight:700;line-height:1.12;text-decoration:none}
.main-nav a[aria-current],.main-nav .active-section{background:var(--accent)}
.main-nav a:hover{background:#103d4a}
.main-nav .whatsapp{background:#19c65b;width:65px;min-height:50px;flex:0 0 65px;padding:8px 16px}
.main-nav .whatsapp svg{display:block;width:33px;height:33px;flex:none}
.hero{position:relative;height:450px;overflow:hidden;color:#fff;background:#222}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.58) 0%,rgba(0,0,0,.28) 42%,rgba(0,0,0,.68) 100%);z-index:1}
.hero-content{position:relative;z-index:2;height:100%}
.hero-message{position:absolute;left:5vw;top:58px;width:43%}
.hero h1{font-size:39.6px;line-height:1.08;margin:0 0 20px;font-weight:700;max-width:none}
.hero-message>p{font-size:18px;line-height:1.45;max-width:none;margin:0}
.hero-company{position:absolute;right:5vw;top:50%;transform:translateY(-50%);width:40%;color:#fff;text-shadow:0 1px 3px #0008}
.hero-company p{font-size:15px;line-height:1.4;margin:0 0 12px;text-align:justify}
.hero-company p:last-child{margin-bottom:0}
.hero-caption{position:absolute;z-index:2;left:5vw;bottom:8px;font-size:13px;padding:0;margin:0}
.cards{display:grid;grid-template-columns:1fr;gap:1.5rem}
.card{min-width:0;text-decoration:none;color:var(--ink)}
figure{margin:0;min-width:0}
.card img{width:100%;aspect-ratio:1/1;object-fit:contain;background:#e4edf0}
.card figcaption{padding:.8rem 0;line-height:1.45}
.card figcaption strong{display:block;margin-bottom:.65rem;background:var(--brand);color:white;text-align:center;padding:.7rem .5rem;font-size:1rem}
.card figcaption span{display:block}
.card:hover strong{background:var(--accent)}
.card:hover figcaption span{text-decoration:underline}
.home-projects{padding:14px 34px 6px}
.home-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px}
.home-cards .card{background:transparent;border:0}
.home-cards img{width:100%;aspect-ratio:3/2;object-fit:contain;background:transparent}
.content{padding:1.7rem 5% 2.5rem;max-width:1500px;margin:auto;min-height:70vh}
h1{font-size:clamp(1.75rem,3vw,2.1rem);line-height:1.2;margin:1.2rem 0 1.7rem}
h2{font-size:1.35rem;line-height:1.35;margin:0 0 1rem}
.intro{max-width:80ch;margin:0 0 1.7rem;font-size:1.05rem}
.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:.35rem .65rem;list-style:none;padding:0;margin:0;font-size:.9rem;color:var(--muted)}
.breadcrumbs li:not(:last-child)::after{content:"/";margin-left:.65rem}
.breadcrumbs a{display:inline-block;padding:0}
.section-nav{display:flex;flex-wrap:wrap;gap:.65rem;margin:0 0 1.8rem}
.section-nav a{display:inline-flex;align-items:center;min-height:44px;padding:.55rem .9rem;background:white;border:1px solid var(--brand);text-decoration:none}
.section-nav a[aria-current]{background:var(--brand);color:white}
.gallery-section{padding:1.2rem;background:transparent;margin-bottom:1.7rem;border:1px solid var(--line)}
.photo-grid{display:grid;grid-template-columns:1fr;gap:1.15rem;align-items:start}
.photo-link{display:block;background:var(--paper)}
.photo-link img{width:100%;height:auto;max-height:440px;object-fit:contain}
.square-photos .photo-link img{aspect-ratio:1/1;max-height:none;object-fit:contain}
.photo-caption,.photo-grid figcaption{font-family:Arial,Helvetica,sans-serif;font-size:11px;line-height:1.3;text-align:left;padding:6px 0 0}
.photo-link:hover{outline:2px solid var(--brand);outline-offset:2px}
.gallery-hidden{display:none!important}
.return{margin:2rem 0 0}
.return a,.contact-link{display:inline-block;min-height:44px;padding:.7rem 1rem;background:var(--brand);color:#fff;border-radius:5px}
.contact{max-width:750px;background:transparent;padding:0}
.contact-link{overflow-wrap:anywhere;background:transparent;color:inherit;padding:0;min-height:0;border-radius:0}
.site-footer{padding:1.3rem 5%;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:1rem;font-size:.85rem}
.site-footer a{padding:.3rem}
.viewer{width:min(96vw,1400px);height:94dvh;max-height:94dvh;padding:1rem;border:0;background:#14212b;color:#fff}
.viewer::backdrop{background:#000d}
.viewer-layout{display:flex;flex-direction:column;height:100%;gap:1rem}
.viewer-top{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.viewer h2{font-size:1rem;margin:0}
.viewer button{font:inherit;font-weight:bold;color:#fff;background:#284652;border:1px solid #829ba6;min-width:48px;min-height:48px;padding:.5rem .8rem;cursor:pointer}
.viewer button:focus-visible{outline-color:#ffd878}
.viewer-figure{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;gap:.7rem}
.viewer-figure img{width:100%;flex:1;min-height:0;object-fit:contain}
.viewer-figure figcaption{max-height:25%;overflow:auto;text-align:center;font-size:.9rem}
.viewer-controls{display:flex;align-items:center;justify-content:center;gap:1rem}
.viewer-controls p{margin:0;min-width:4rem;text-align:center}
body:has(.viewer[open]){overflow:hidden}
@media(min-width:600px){.cards:not(.home-cards),.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1001px){.site-header{min-height:96px;padding:0 5%;flex-wrap:nowrap;gap:2rem}.logo{flex:0 0 273px}.main-nav{flex-wrap:nowrap}.main-nav a{flex-basis:112px;width:112px;font-size:15px;text-align:center}}
@media(min-width:901px) and (max-width:1200px){.logo{flex-basis:210px;width:210px}.main-nav a:not(.whatsapp){flex-basis:88px;width:88px;font-size:14px}}
@media(min-width:1000px){.columns-4{grid-template-columns:repeat(4,minmax(0,1fr))}.columns-3,.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
@media(forced-colors:active){a,button{border:1px solid}.main-nav a[aria-current]{outline:2px solid}}
.section-tab{width:100%;box-sizing:border-box;height:40px;display:flex;align-items:center;justify-content:center;padding:7px 10px;margin-bottom:12px;border-radius:5px;background:var(--tab);color:#fff;font-family:Arial,Helvetica,sans-serif;font-size:15px;font-weight:700;line-height:1.1;text-align:center}
.arquitectura-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;width:100%;margin-top:12px}
.arquitectura-col{min-width:0;text-align:left;text-decoration:none;color:var(--ink)}
.arquitectura-col img{display:block;width:100%;aspect-ratio:1/1;object-fit:contain;background:#edf3f5}

@media(max-width:760px){.arquitectura-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.arquitectura-grid{grid-template-columns:1fr}}
.barandas-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;width:100%;margin-top:18px}
.barandas-col{display:block;min-width:0;text-align:left;text-decoration:none;color:var(--ink)}
.barandas-col img{display:block;width:100%;aspect-ratio:1/1;object-fit:contain;background:#edf3f5}
.barandas-caption{margin:0 0 3px;font-size:12px;line-height:1.4;text-align:justify}
@media(max-width:760px){.barandas-grid{grid-template-columns:1fr}}
.palacio-fila{display:grid;justify-content:center;gap:10px;margin-top:6px}
.palacio-cuadradas{grid-template-columns:repeat(4,24%)}
.palacio-horizontales{grid-template-columns:repeat(3,32%)}
.palacio-verticales{grid-template-columns:repeat(5,19.2%)}
.palacio-fila img{display:block;width:100%;height:auto;object-fit:contain}
@media(max-width:760px){.palacio-cuadradas,.palacio-horizontales,.palacio-verticales{grid-template-columns:1fr}}
.gallery-section:has(.palacio-fila){padding:0;background:transparent;border:0}

.palacio-descripcion{font-size:12px;line-height:1.5}
.palacio-descripcion:first-of-type{text-align:left}
.palacio-descripcion + .palacio-descripcion{text-align:justify}

.teatro-fotos{display:grid;grid-template-columns:repeat(3,32%);justify-content:center;gap:10px;margin-top:6px}
.teatro-fotos img{display:block;width:100%;height:auto;object-fit:contain}
@media(max-width:760px){.teatro-fotos{grid-template-columns:1fr}}

.teatro-descripcion{font-size:12px;line-height:1.5;text-align:justify}


.teatro-descripcion:first-of-type{display:grid;grid-template-columns:90px 1fr;text-align:left}
.teatro-descripcion:first-of-type br{display:none}
.teatro-descripcion:first-of-type strong{margin-left:0}


.gallery-section:has(.teatro-fotos){background:transparent}

.diseno-limites-fotos{display:grid;grid-template-columns:repeat(4,24%);justify-content:center;gap:10px;margin-top:6px;align-items:start}
.diseno-limites-fotos img{display:block;width:100%;height:auto;object-fit:contain}
@media(max-width:760px){.diseno-limites-fotos{grid-template-columns:1fr}}

.gallery-section:has(.diseno-limites-fotos){background:transparent}

.diseno-limites-descripcion{font-size:12px;line-height:1.5}

/* HERRAJES */
.herrajes-grupo{
  width:100%;
  margin-top:18px;
}

.herrajes-descripcion{
  margin:0 0 3px;
  font-size:12px;
  line-height:1.4;
  text-align:left;
}

.herrajes-fila{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  width:100%;
}

.herrajes-fila img{
  display:block;
  width:100%;
  aspect-ratio:1/1;
  object-fit:contain;
  background:#edf3f5;
}

.herrajes-fila-4x3 img{aspect-ratio:4/3}
.herrajes-fila-3x2 img{aspect-ratio:3/2}
.herrajes-fila-5x4 img{aspect-ratio:5/4}

.herrajes-especial{
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:12px;
  align-items:start;
}

.herrajes-pareja-fotos{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:4px;
}

.herrajes-pareja-fotos img{
  display:block;
  width:100%;
  aspect-ratio:3/4;
  object-fit:contain;
}

.herrajes-subgrupo > .photo-link img{
  display:block;
  width:100%;
  aspect-ratio:1/1;
  object-fit:contain;
}

.herrajes-fila-2x1{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
  width:100%;
}

.herrajes-fila-2x1 img{
  display:block;
  width:100%;
  aspect-ratio:2/1;
  object-fit:contain;
}

@media(min-width:761px){
  .herrajes-fila-5{
    grid-template-columns:repeat(5,1fr);
  }
}

@media(max-width:760px){
  .herrajes-fila,
  .herrajes-especial,
  .herrajes-fila-2x1{
    grid-template-columns:1fr;
  }
}

.terminaciones-galeria .photo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}


@media(max-width:760px){
  .terminaciones-galeria .photo-grid{grid-template-columns:1fr}
}

/* DECORACION */
.decoracion-grupo{width:100%;margin-top:18px}
.decoracion-descripcion{margin:0 0 5px;font-size:12px;line-height:1.4;text-align:left}
.decoracion-fotos{display:grid;gap:12px;width:100%}
.decoracion-fotos-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.decoracion-fotos-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.decoracion-fotos figure{margin:0}
.decoracion-fotos img{display:block;width:100%;height:300px;object-fit:contain;background:#edf3f5}
.decoracion-fotos-4 img{height:auto;aspect-ratio:1/1;object-fit:contain}

@media(max-width:760px){
  .decoracion-fotos-4,.decoracion-fotos-3{grid-template-columns:1fr}
  .decoracion-fotos img{height:auto}
}
/* INDUSTRIAS */
.industrias-intro{line-height:1.5}
.industrias-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;width:100%;margin-top:12px}
.industrias-col{min-width:0;text-align:center;text-decoration:none;color:var(--ink)}
.industrias-col img{display:block;width:100%;aspect-ratio:1/1;object-fit:contain;background:#edf3f5}


@media(max-width:760px){
  .industrias-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:480px){
  .industrias-grid{grid-template-columns:1fr}
}
/* FABRICACION */
.fabricacion-galeria .photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.15rem}
.fabricacion-galeria .photo-link img{width:100%;height:auto;max-height:300px;aspect-ratio:1/1;object-fit:contain}


@media(max-width:760px){
  .fabricacion-galeria .photo-grid{grid-template-columns:1fr}
}
/* GONDOLA: descripcion a 12px, cliente a la izquierda */
.gondola-descripcion,.carro-descripcion{font-size:12px;line-height:1.5;text-align:justify}
.gondola-descripcion:first-of-type,.carro-descripcion:first-of-type{text-align:left}

/* GONDOLA: dos filas completas, columnas segun proporcion de cada foto */
.gondola-gallery{padding:8px}
.gondola-grid{display:flex;flex-direction:column;gap:8px}
.gondola-row{display:grid;grid-template-columns:var(--gondola-columns);align-items:start;gap:8px}
.gondola-grid img{display:block;width:100%;height:auto;max-width:100%;background:transparent}
.gondola-photo,.gondola-plan{min-width:0;margin:0}
.gondola-plan{display:block;color:var(--ink);text-decoration:none}
.gondola-plan .barandas-caption{text-align:center;margin-top:5px}
.gondola-plan:hover .barandas-caption{text-decoration:underline}
@media(max-width:760px){.gondola-row{grid-template-columns:repeat(2,minmax(0,1fr))}.gondola-grid img{height:190px;object-fit:contain}}

/* POZOS: cinco accesos; galerias interiores de tres columnas */
.pozos-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}
.pozos-intro{margin:0 0 1.7rem}
.pozos-gallery .photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.pozos-gallery .photo-link img{width:100%;height:auto;max-height:none;aspect-ratio:1/1;object-fit:contain}
@media(max-width:760px){.pozos-grid,.pozos-gallery .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.pozos-grid,.pozos-gallery .photo-grid{grid-template-columns:1fr}}
