@font-face{font-family:"Plus Jakarta Sans";src:url(fonts/jakarta-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Plus Jakarta Sans";src:url(fonts/jakarta-500.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Plus Jakarta Sans";src:url(fonts/jakarta-600.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Plus Jakarta Sans";src:url(fonts/jakarta-700.woff2) format("woff2");font-weight:700;font-display:swap}

:root{
  --carbon:#231d19;
  --carbon-2:#3a312a;
  --tinta:#2b2420;
  --gris:#6a5f55;
  --arena-texto:#cfc3b5;
  --linea:#e0d5c6;
  --crema:#fbf6ee;
  --arena:#f1e7d9;
  --blanco:#fff;
  --acento:#c2602a;
  --acento-oscuro:#a44c1c;
  --ancho:1180px;
  --gutter:clamp(16px,5vw,64px);
  --rombos:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cpath d='M30 12 48 30 30 48 12 30ZM90 72l18 18-18 18-18-18Z' fill='none' stroke='%23e9c9a8' stroke-opacity='.13'/%3E%3C/svg%3E");
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}
body{background:var(--crema);color:var(--tinta);font:400 17px/1.7 "Plus Jakarta Sans",system-ui,sans-serif;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
ul,ol{list-style:none}
h1,h2{font-weight:700;line-height:1.14;letter-spacing:-.022em}
h2{font-size:clamp(30px,3.8vw,44px);max-width:20em;margin-bottom:52px}
h3{font-weight:600;font-size:18px;line-height:1.35;letter-spacing:-.01em}
a:focus-visible{outline:2px solid var(--acento);outline-offset:3px}

.antetitulo{font-weight:600;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--acento-oscuro);margin-bottom:14px}

/* Cabecera */
.cabecera{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px var(--gutter);background:var(--carbon);color:var(--blanco)}
.marca{display:flex;align-items:center;gap:12px;text-decoration:none}
.marca span{font-size:12px;font-weight:500;letter-spacing:.3em;text-transform:uppercase}
.cabecera nav{display:flex;align-items:center;gap:30px}
.cabecera nav a{font-size:15px;font-weight:500;text-decoration:none;color:#e6dccf;transition:color .15s}
.cabecera nav a:hover{color:var(--blanco)}
.cabecera .nav-contacto{color:var(--blanco);background:var(--acento);padding:7px 18px;border-radius:4px}
.cabecera .nav-contacto:hover{background:var(--acento-oscuro)}

/* Portada */
.portada{background:var(--carbon) var(--rombos);color:var(--blanco);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:center;padding:clamp(56px,7vw,96px) var(--gutter)}
.portada>*{min-width:0}
.portada .antetitulo{color:#e8a877}
.portada h1{font-size:clamp(38px,5.2vw,68px);margin-bottom:24px}
.entradilla{font-size:clamp(17px,1.5vw,20px);color:#e6dccf;max-width:32em;margin-bottom:36px}
.portada-foto{position:relative;width:min(100%,520px);aspect-ratio:1;justify-self:center}
.portada-foto img{width:100%;height:100%;object-fit:cover;object-position:45% 60%;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.portada-foto::after{content:"";position:absolute;inset:14.6%;border:1.5px solid #e8a877;transform:translate(16px,16px) rotate(45deg);pointer-events:none}
.boton{display:inline-block;background:var(--acento);color:var(--blanco);font-weight:600;font-size:16px;text-decoration:none;padding:14px 28px;border-radius:4px;transition:background .15s}
.boton:hover{background:var(--acento-oscuro)}

/* Secciones */
.seccion{padding:clamp(64px,8vw,112px) var(--gutter)}
.seccion>*{max-width:var(--ancho);margin-left:auto;margin-right:auto}
.oscura{background:var(--carbon);color:var(--blanco)}
.oscura .antetitulo{color:#e8a877}

/* Servicios */
.servicios{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.servicios article{background:var(--blanco);border-radius:6px;overflow:hidden;box-shadow:0 1px 2px rgba(60,40,20,.08),0 10px 28px rgba(60,40,20,.07)}
.servicios img{width:100%;aspect-ratio:3/2;object-fit:cover}
.servicio-texto{padding:24px 26px 28px}
.servicios h3{font-size:23px;font-weight:700;margin-bottom:8px}
.para{font-weight:600;font-size:15px;line-height:1.5;color:var(--acento-oscuro);margin-bottom:14px}
.servicios p:last-child{font-size:16px}

/* Obras */
#obras{background:var(--arena)}
.galeria{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.galeria-titulo{font-size:21px;font-weight:700;margin-bottom:16px}
.galeria+.galeria-titulo{margin-top:48px}
.galeria.tres{grid-template-columns:repeat(3,minmax(0,1fr))}
.galeria figure{min-width:0}
.galeria img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px}
.galeria .grande{grid-column:span 2;grid-row:span 2;display:flex;flex-direction:column}
.galeria .grande img{flex:1;min-height:0;aspect-ratio:auto}
.galeria figcaption{font-size:14px;line-height:1.4;color:var(--gris);margin-top:8px}

/* Fases */
.fases{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:28px}
.fases li{border-top:1px solid #6d5f53;padding-top:18px;position:relative}
.fases li::before{content:"";position:absolute;top:-6px;left:0;width:11px;height:11px;background:var(--acento);transform:rotate(45deg)}
.fases h3{margin-bottom:8px}
.fases p{color:var(--arena-texto);font-size:15px;line-height:1.55}

/* Experiencia */
#experiencia h2{margin-bottom:36px}
.destacado{font-size:clamp(20px,2.2vw,26px);font-weight:600;line-height:1.35;letter-spacing:-.012em;border-left:3px solid var(--acento);padding-left:22px;margin-bottom:56px}
.sectores{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:44px 40px}
.sectores h3{padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid var(--linea)}
.sectores li{font-size:16px;line-height:1.45;color:var(--gris);padding:5px 0}

/* Compromiso */
.compromiso{background:var(--arena);text-align:center;padding:clamp(56px,7vw,92px) var(--gutter)}
.compromiso blockquote{font-size:clamp(26px,3.4vw,40px);font-weight:700;letter-spacing:-.02em;line-height:1.2;margin-bottom:12px}
.compromiso p{color:var(--gris)}

/* Contacto */
.contacto h3{font-weight:600;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--arena-texto);margin-bottom:8px}
.contacto a{font-size:clamp(22px,3vw,32px);font-weight:600;line-height:1.35;text-decoration:none;border-bottom:2px solid var(--acento);overflow-wrap:anywhere}
.contacto a:hover{color:#e8a877}
#contacto{background-image:var(--rombos)}

/* Pie */
.pie{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 24px;background:var(--carbon);color:var(--arena-texto);font-size:14px;padding:22px var(--gutter);border-top:1px solid var(--carbon-2)}
.pie a:hover{color:var(--blanco)}

/* Aviso legal */
.legal{max-width:760px;margin:0 auto;padding:64px var(--gutter) 96px}
.legal h1{font-size:clamp(32px,5vw,44px);margin-bottom:32px}
.legal h2{font-weight:600;font-size:20px;margin:36px 0 10px}
.legal p{font-size:16px}
.legal dl{display:grid;grid-template-columns:minmax(0,190px) minmax(0,1fr);gap:6px 20px;margin-top:14px;font-size:16px}
.legal dt{color:var(--gris)}
.legal mark{background:#f8d9bb;padding:0 4px}

@media (max-width:960px){
  .portada{grid-template-columns:1fr}
  .portada-foto{width:min(84%,440px)}
  .servicios{grid-template-columns:1fr}
  .servicios img{aspect-ratio:16/9}
  .galeria,.galeria.tres{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fases{grid-template-columns:1fr;gap:24px}
  .sectores{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  body{font-size:16px}
  .cabecera nav a:not(.nav-contacto){display:none}
  .marca span{font-size:11px;letter-spacing:.24em}
  .portada-foto::after{transform:translate(10px,10px) rotate(45deg)}
  .sectores{grid-template-columns:1fr;gap:32px}
  .galeria,.galeria.tres{grid-template-columns:1fr}
  .galeria .grande{grid-column:auto;grid-row:auto}
  .galeria .grande img{aspect-ratio:4/3}
  .legal dl{grid-template-columns:1fr;gap:0}
  .legal dd{margin-bottom:10px}
  h2{margin-bottom:32px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
