/* Blue Forest · estilo Apple: fondo blanco, fotos grandes, un solo color (ultramar) */
:root { --azul:#2A3E9C; --texto:#1D1D1F; --gris:#6E6E73; --suave:#F5F5F7; --linea:#E5E5EA; --ancho:1180px; }
* { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; scroll-padding-top:80px; }
body { background:#fff; color:var(--texto); font-family:'Archivo', -apple-system, 'Helvetica Neue', Arial, sans-serif; font-size:17px; line-height:1.55; -webkit-font-smoothing:antialiased; }
a { color:var(--azul); text-decoration:none; } a:hover { text-decoration:underline; }
img { max-width:100%; display:block; }

/* menú */
.nav { position:sticky; top:0; z-index:10; display:flex; align-items:center; gap:32px; padding:12px max(20px, calc((100% - var(--ancho)) / 2)); background:rgba(255,255,255,.88); backdrop-filter:saturate(180%) blur(16px); -webkit-backdrop-filter:saturate(180%) blur(16px); border-bottom:1px solid var(--linea); }
.logo img { height:40px; width:auto; }
.enlaces { margin-left:auto; display:flex; gap:28px; }
.enlaces a, .langs a { color:var(--texto); font-size:14px; }
.langs { display:flex; gap:10px; padding-left:20px; border-left:1px solid var(--linea); }
.langs a { color:var(--gris); font-size:13px; letter-spacing:.05em; } .langs a.act { color:var(--azul); font-weight:600; }

/* portada */
.hero { text-align:center; padding:96px 20px 52px; max-width:900px; margin:0 auto; }
.hero h1 { font-size:clamp(44px, 7vw, 84px); font-weight:600; letter-spacing:-.03em; line-height:1.04; }
.hero p { font-size:clamp(19px, 2.2vw, 25px); color:var(--gris); margin-top:20px; line-height:1.4; }
.links { margin-top:28px; display:flex; gap:32px; justify-content:center; flex-wrap:wrap; font-size:20px; }
.gran { margin:0 auto; width:calc(100% - 40px); max-width:1400px; aspect-ratio:16/9; max-height:78vh; border-radius:24px; background-size:cover; background-position:center; }

.bloque { max-width:var(--ancho); margin:0 auto; padding:110px 20px 0; }
.bloque.gris { max-width:none; background:var(--suave); margin-top:110px; padding:100px max(20px, calc((100% - var(--ancho)) / 2)); }
.bloque h2 { font-size:clamp(34px, 4.5vw, 52px); font-weight:600; letter-spacing:-.02em; line-height:1.1; text-align:center; }
.lead { font-size:21px; color:var(--gris); text-align:center; max-width:720px; margin:14px auto 0; }

/* proyectos */
.tiles { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:52px; }
.tile { background:var(--suave); border-radius:24px; overflow:hidden; color:var(--texto); display:flex; flex-direction:column; transition:transform .3s; }
.tile:hover { text-decoration:none; transform:scale(1.01); }
.tile .tx { text-align:center; padding:40px 24px 28px; }
.tile h3 { font-size:34px; font-weight:600; letter-spacing:-.02em; margin-top:6px; }
.tile p { color:var(--gris); font-size:18px; margin-top:6px; }
.tile .lnk { color:var(--azul); display:inline-block; margin-top:12px; }
.tile .im { flex:1; min-height:340px; background-size:cover; background-position:center; }
.tile.grande { grid-column:1 / -1; }
.tile.grande .im { min-height:520px; }
.etq { font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--gris); }

/* cómo trabajamos */
.niveles { display:grid; grid-template-columns:repeat(3, 1fr); gap:18px; margin-top:52px; }
.nivel { background:#fff; border-radius:22px; padding:36px 30px; }
.nivel .num { color:var(--azul); font-weight:600; font-size:15px; }
.nivel h3 { font-size:24px; font-weight:600; margin:10px 0 10px; letter-spacing:-.01em; }
.nivel p { color:var(--gris); }
.equipo { text-align:center; font-size:20px; margin-top:40px; }
.inv { background:#fff; border-radius:22px; padding:40px; margin-top:40px; text-align:center; }
.inv h3 { font-size:28px; font-weight:600; } .inv p { color:var(--gris); max-width:700px; margin:10px auto 14px; }

/* estudio */
.estudio { display:grid; grid-template-columns:minmax(260px, 420px) 1fr; gap:64px; align-items:center; }
.estudio img { border-radius:24px; width:100%; height:auto; }
.estudio h2 { text-align:left; margin-bottom:20px; }
.estudio p { font-size:19px; margin-bottom:14px; }
blockquote { font-size:24px; line-height:1.35; color:var(--azul); margin:26px 0; letter-spacing:-.01em; }
.medios { font-size:15px !important; color:var(--gris); border-top:1px solid var(--linea); padding-top:16px; }

/* contacto */
.boton-wa { display:table; margin:34px auto 0; background:var(--azul); color:#fff; border-radius:999px; padding:14px 30px; font-size:17px; }
.boton-wa:hover { text-decoration:none; opacity:.92; }
form { max-width:760px; margin:40px auto 0; display:flex; flex-direction:column; gap:18px; }
.dos { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
label { display:flex; flex-direction:column; gap:6px; font-size:14px; color:var(--gris); }
input, select, textarea { font:inherit; font-size:17px; color:var(--texto); background:#fff; border:1px solid #D2D2D7; border-radius:12px; padding:13px 14px; }
input:focus, select:focus, textarea:focus { outline:2px solid var(--azul); outline-offset:1px; border-color:transparent; }
.chk { flex-direction:row; align-items:flex-start; gap:10px; } .chk input { width:18px; height:18px; margin-top:2px; }
button { align-self:center; font:inherit; font-size:17px; background:var(--texto); color:#fff; border:0; border-radius:999px; padding:14px 40px; cursor:pointer; }
button:disabled { opacity:.5; }
.estado { text-align:center; min-height:1.5em; }
.oculto { display:none; }

/* página de proyecto */
.hero-p { padding-bottom:40px; }
.ficha-texto { display:grid; grid-template-columns:320px 1fr; gap:64px; }
.ficha div { padding:14px 0; border-bottom:1px solid var(--linea); }
.ficha dt { font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--gris); }
.ficha dd { font-size:17px; margin-top:4px; }
.texto p { font-size:22px; line-height:1.5; margin-bottom:20px; letter-spacing:-.005em; }
.galeria { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.galeria img { width:100%; height:100%; aspect-ratio:4/3; object-fit:cover; border-radius:18px; }
.galeria img:first-child:nth-last-child(odd) { grid-column:1 / -1; aspect-ratio:16/9; }
.cita-p { max-width:900px; margin:110px auto 0; padding:0 20px; text-align:center; font-size:clamp(24px, 3vw, 34px); }
.proceso { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:40px; }
.proceso img { border-radius:18px; aspect-ratio:3/4; object-fit:cover; width:100%; }
.proceso figcaption { color:var(--gris); font-size:15px; margin-top:10px; }
.nota { color:var(--gris); font-size:14px; text-align:center; margin-top:12px; }
.sig { text-align:center; } .sig a h2 { margin:8px 0 22px; color:var(--texto); } .sig a:hover { text-decoration:none; } .sig a:hover h2 { color:var(--azul); }
.legal { max-width:760px; padding-bottom:80px; } .legal h1 { font-size:40px; font-weight:600; margin-bottom:24px; } .legal p { margin-bottom:14px; }

/* pie */
footer { text-align:center; padding:80px 20px 60px; color:var(--gris); font-size:14px; }
footer img { margin:0 auto 18px; height:44px; width:auto; }
footer p { margin-top:8px; } footer .peq { font-size:12px; }
.wa-flot { position:fixed; right:18px; bottom:18px; z-index:20; background:#fff; color:var(--azul); border:1px solid var(--linea); box-shadow:0 6px 24px rgba(0,0,0,.12); border-radius:999px; padding:11px 18px; font-size:14px; font-weight:500; }
.wa-flot:hover { text-decoration:none; }

/* móvil */
@media (max-width: 820px) {
  .nav { flex-wrap:wrap; gap:10px 18px; padding:10px 16px; }
  .logo img { height:32px; }
  .enlaces { order:3; width:100%; margin:0; gap:18px; overflow-x:auto; }
  .langs { margin-left:auto; border:0; padding:0; }
  .hero { padding:64px 16px 36px; }
  .gran { width:calc(100% - 32px); border-radius:18px; aspect-ratio:4/5; }
  .bloque { padding:80px 16px 0; } .bloque.gris { margin-top:80px; padding:72px 16px; }
  .tiles, .niveles, .galeria, .proceso, .dos, .estudio, .ficha-texto { grid-template-columns:1fr; }
  .tile .im, .tile.grande .im { min-height:300px; }
  .estudio { gap:32px; } .ficha-texto { gap:24px; }
  .texto p { font-size:19px; }
  .galeria img:first-child:nth-last-child(odd) { aspect-ratio:4/3; }
}
