/* Umbral Andino — sitio en construcción
   Paleta y tipografías derivadas del logo. Contrastes verificados a 4,5:1. */

:root{
  --fondo:#FBFDFC;
  --tinta:#0B2C29;      /* texto principal      14,9:1 sobre blanco */
  --apoyo:#4E6E6A;      /* texto secundario      5,5:1 */
  --salvia:#6EA9A7;     /* decorativo            */
  --monte:#24754A;      /* botón                 5,7:1 con blanco */
  --pino:#06574E;       /* acentos y foco        */
  --borde:#66948E;      /* bordes de control     3,4:1 */
  --linea:#DCEAE7;      /* separadores           */
  --arena:#F6EBDD;      /* sello de estado       */
  --arena-tinta:#7A4E22;/*                       6,1:1 sobre arena */
  --display:'Big Shoulders Display','Oswald','Arial Narrow',sans-serif;
  --texto:'Instrument Sans','Helvetica Neue',Arial,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,Menlo,monospace;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--fondo);color:var(--tinta);
  font-family:var(--texto);font-size:16px;line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;height:auto}
svg.defs{position:absolute;width:0;height:0;overflow:hidden}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--pino);outline-offset:2px;border-radius:2px}
@media (prefers-reduced-motion: reduce){*{transition:none !important;animation:none !important}}

/* ---------- estructura ---------- */
.escena{display:flex;flex-direction:column;min-height:100svh}
.paisaje{position:relative;height:178px;flex:none}
.paisaje svg{display:block;width:100%;height:100%}
.paisaje .alto{display:none}
.texto{
  display:flex;flex-direction:column;
  padding:0 22px 0;flex:1 1 auto;
}
.contacto{padding:0 22px 26px}

/* ---------- marca ---------- */
.marca{display:flex;align-items:flex-end;gap:12px;margin:0 0 22px;position:relative;z-index:2}
.escudo{width:46px;height:54px;margin-top:-27px;border-radius:7px 7px 23px 23px;background:#fff;
  box-shadow:0 6px 18px -8px rgba(6,87,78,.7);object-fit:cover;flex:none}
.marca p{margin:0}
.marca b{display:block;font-family:var(--display);font-weight:700;font-size:21px;
  letter-spacing:.08em;text-transform:uppercase;line-height:1}
.marca span{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--apoyo);margin-top:4px}

/* ---------- sello ---------- */
.sello{
  align-self:flex-start;display:inline-flex;align-items:center;gap:8px;margin:0 0 14px;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;
  color:var(--arena-tinta);background:var(--arena);padding:7px 12px;
}
.sello i{width:6px;height:6px;border-radius:50%;background:#C4823C;display:block;flex:none}

/* ---------- titular y eslogan ---------- */
h1{
  font-family:var(--display);font-weight:800;text-transform:uppercase;
  font-size:clamp(38px,10vw,44px);line-height:.87;letter-spacing:.005em;
  margin:0;text-wrap:balance;
}
.eslogan{
  display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:14px 0 0;
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:clamp(18px,5vw,20px);letter-spacing:.03em;color:var(--pino);line-height:1;
}
.eslogan svg{width:9px;height:9px;fill:var(--salvia);flex:none}
.eslogan-pie{
  margin:7px 0 0;font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--apoyo);
}
.bajada{margin:14px 0 0;font-size:14.5px;color:var(--apoyo);max-width:42ch}

/* ---------- newsletter ---------- */
.news{margin:22px 0 0}
.news label{
  display:block;margin-bottom:8px;font-family:var(--mono);font-size:11px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--apoyo);
}
.campo{display:flex}
.campo input{
  flex:1 1 auto;min-width:0;min-height:48px;
  border:1.5px solid var(--borde);border-right:0;background:#fff;color:var(--tinta);
  padding:12px 14px;font-family:var(--texto);font-size:15px;border-radius:0;
}
.campo input::placeholder{color:var(--apoyo);opacity:1}
.campo button{
  flex:none;min-height:48px;border:0;background:var(--monte);color:#fff;cursor:pointer;
  font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  font-size:16px;padding:0 20px;transition:background 180ms ease;
}
.campo button:hover{background:var(--pino)}
.ayuda{margin:9px 0 0;font-size:13px;color:var(--apoyo)}
.error{margin:9px 0 0;font-size:13px;color:#A8431E;font-weight:500}
.campo input[aria-invalid="true"]{border-color:#A8431E;border-right-color:#A8431E}
.listo{
  margin:22px 0 0;padding:14px 16px;background:#EAF3EE;border-left:3px solid var(--monte);
  font-size:14.5px;color:var(--tinta);
}
.trampa{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.pie{
  margin:26px 0 24px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--apoyo);
}

/* ---------- tarjeta de contacto ---------- */
.contacto h2{
  margin:0 0 4px;font-family:var(--mono);font-size:11.5px;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;color:var(--apoyo);
}
.fila{
  display:flex;align-items:center;gap:14px;min-height:56px;padding:12px 0;
  border-top:1px solid var(--linea);transition:background 180ms ease;
}
.fila:hover{background:rgba(110,169,167,.08)}
.ic{
  width:38px;height:38px;flex:none;border:1.5px solid var(--pino);
  display:flex;align-items:center;justify-content:center;
}
.ic svg{width:19px;height:19px;fill:none;stroke:var(--pino);stroke-width:1.6}
.ic svg .relleno{fill:var(--pino);stroke:none}
.dato{min-width:0}
.k{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--apoyo)}
.v{display:block;font-weight:600;font-size:14.5px;margin-top:3px;word-break:break-word}
.programa{
  margin:0;padding:13px 0 0;border-top:1px solid var(--linea);
  font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--monte);
}

/* ---------- escritorio ---------- */
@media (min-width:960px){
  .escena{display:grid;grid-template-columns:1fr 1fr;position:relative;min-height:100svh}
  .paisaje{grid-column:2;grid-row:1;height:auto}
  .paisaje .alto{display:block;position:absolute;inset:0}
  .paisaje .ancho{display:none}
  .texto{grid-column:1;grid-row:1;padding:40px clamp(28px,4vw,54px) 0;justify-content:flex-start}
  .texto > *{max-width:460px}
  .texto > h1{max-width:620px}
  .marca{margin:0 0 44px;align-items:center}
  .escudo{margin-top:0}
  .sello{margin-bottom:20px;font-size:11px}
  h1{font-size:clamp(46px,4.6vw,62px)}
  .eslogan{font-size:clamp(21px,2vw,25px);gap:12px;margin-top:22px}
  .eslogan svg{width:11px;height:11px}
  .eslogan-pie{font-size:11px;margin-top:9px}
  .bajada{margin-top:20px;font-size:16px;max-width:40ch}
  .news{margin-top:auto}
  .campo{max-width:400px}
  .campo button{font-size:17px;padding:0 24px}
  .pie{margin:26px 0 34px}
  .contacto{
    position:absolute;left:41%;bottom:56px;width:min(520px,52%);
    background:#fff;box-shadow:0 26px 60px -30px rgba(6,87,78,.55);
    padding:24px 26px 22px;z-index:3;
  }
  .contacto h2{margin-bottom:16px}
  .fila{min-height:64px;padding:14px 0}
  .fila:first-of-type{border-top:1px solid var(--linea)}
  .v{font-size:16px}
  .programa{font-size:11.5px;margin-top:0}
}

/* pantallas muy bajas: que nada se corte */
@media (min-width:960px) and (max-height:700px){
  .contacto{position:static;width:auto;box-shadow:none;padding:0 clamp(28px,4vw,54px) 26px;
    grid-column:1;grid-row:2}
  .escena{grid-template-rows:1fr auto}
}
