/* ============================================================
   KEYSTONE LANDSCAPE COMPANY · about.css (dueño: /about/ + /es/nosotros/)
   Eco del ADN sandwich: banner mini-sandwich B2 (foto muerde el
   ghost-word) · línea de vida · filas display · banda "Rolex" con
   la panorámica del hero sangrando · FAQ · stats count-up · cierre
   "who shows up" · CTA C2 (mismo contrato visual del ⑤ del Home).
   ============================================================ */

/* ============ A0 · BANNER "01 · ABOUT" — mini-sandwich (§13 B2 evolucionado) ============ */
.banner{
  position:relative;min-height:clamp(360px,46vh,560px);overflow:clip;
  display:grid;align-items:end;color:var(--on-dark);
  background:var(--ink);
  padding:104px var(--gutter) clamp(2.6rem,4vw,3.6rem);
}
.banner-media{
  position:absolute;left:0;top:-10%;width:100%;height:120%;z-index:0;
  opacity:.001;will-change:transform;
}
.banner-media img{width:100%;height:100%;object-fit:cover}
.banner-scrim{
  position:absolute;inset:0;z-index:1;
  background:radial-gradient(120% 90% at 50% 88%,rgba(11,22,38,.78) 0%,rgba(11,22,38,.58) 45%,rgba(11,22,38,.42) 100%);
}
/* el eco del sandwich: ghost-word detrás del H1, cortado por el borde inferior */
.banner-ghost{
  position:absolute;left:0;right:0;bottom:-.36em;z-index:2;text-align:center;
  font-family:var(--display);font-weight:900;line-height:.8;white-space:nowrap;
  font-size:min(14vw,230px);letter-spacing:.02em;
  color:transparent;-webkit-text-stroke:2px rgba(242,247,252,.24);
  pointer-events:none;user-select:none;will-change:transform;opacity:.001;
}
.banner-folio{
  position:absolute;top:104px;left:var(--gutter);z-index:3;
  font-weight:700;font-size:12px;letter-spacing:.34em;text-transform:uppercase;
  color:#9CC8F0;opacity:.001;
}
.banner-content{position:relative;z-index:3;max-width:1280px;margin:0 auto;width:100%}
.banner-crumb{
  display:flex;align-items:center;gap:.6em;margin-bottom:14px;
  font-weight:500;font-size:13.5px;letter-spacing:.05em;color:#C9DCF0;
  opacity:.001;
}
.banner-crumb a{position:relative}
.banner-crumb a::after{
  content:'';position:absolute;left:0;bottom:-2px;height:1px;width:100%;
  background:var(--sky);transform:scaleX(0);transform-origin:0 50%;transition:transform .25s var(--ease);
}
.banner-crumb a:hover::after{transform:scaleX(1)}
.banner-crumb img{width:13px;height:13px;flex:none;opacity:.9}
.banner-crumb b{font-weight:700;color:#fff}
.banner-h1{
  font-family:var(--display);font-weight:800;line-height:1.04;letter-spacing:-.01em;
  font-size:clamp(2.6rem,5.5vw,5.6rem);max-width:18ch;
  text-shadow:0 2px 14px rgba(4,16,36,.55);
}
.banner-h1 em{
  font-style:normal;color:transparent;text-shadow:none;
  -webkit-text-stroke:clamp(1.6px,.18vw,3px) #F2F7FC;
}
.banner-chip{position:absolute;right:var(--gutter);bottom:clamp(2.6rem,4vw,3.6rem);z-index:3;opacity:.001}
/* puente cromático: el borde anticipa la superficie clara de la historia */
.banner::after{
  content:'';position:absolute;left:-2%;right:-2%;bottom:-3vw;height:5vw;
  background:var(--surface);transform:skewY(-1.2deg);z-index:4;
}

/* ============ A1 · HISTORIA — LÍNEA DE VIDA compacta (H1 §14) ============ */
.story{
  position:relative;background:var(--surface);overflow:clip;
  padding:clamp(6.5rem,9vw,8.75rem) var(--gutter) clamp(4rem,6vw,5.5rem);
}
.story-ghost{
  position:absolute;top:2%;right:-2vw;z-index:0;
  font-family:var(--display);font-weight:900;font-size:min(22vw,340px);line-height:1;
  color:transparent;-webkit-text-stroke:2px rgba(5,70,164,.08);
  pointer-events:none;user-select:none;will-change:transform;
}
.story-head{position:relative;z-index:2;max-width:1280px;margin:0 auto 20px;width:100%}
.story-head .kicker{display:block;margin-bottom:20px}
.story-h{
  font-family:var(--display);font-weight:800;
  font-size:clamp(1.9rem,3.4vw,3.2rem);line-height:1.08;letter-spacing:-.01em;
  margin-bottom:22px;max-width:24ch;
}
.story-h .tone{color:var(--accent)}
.story-intro{color:var(--muted);font-size:clamp(1rem,1.2vw,1.13rem);max-width:56ch}
.timeline{
  position:relative;z-index:2;max-width:1080px;margin:clamp(2.5rem,4vw,3.5rem) auto 0;
  padding-left:clamp(1.4rem,3vw,2.5rem);
}
.tl-rail{
  position:absolute;left:calc(clamp(1.4rem,3vw,2.5rem)/2 - 1px);top:6px;bottom:6px;width:2px;
  background:linear-gradient(180deg,var(--sky),var(--sky-mid) 55%,var(--accent));
  transform-origin:50% 0;transform:scaleY(.001);border-radius:2px;
}
.tl-node{
  position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(1.6rem,4vw,4rem);
  align-items:center;padding:clamp(1.6rem,2.6vw,2.4rem) 0;
}
.tl-node::before{
  content:'';position:absolute;left:calc(-1*clamp(1.4rem,3vw,2.5rem)/2 - 6px);top:50%;
  width:12px;height:12px;border-radius:3px;transform:translateY(-50%) rotate(45deg);
  background:var(--accent);box-shadow:0 0 0 5px rgba(5,70,164,.12);
}
.tl-node:nth-child(3)::before{background:var(--sky-mid)}
.tl-node:nth-child(4)::before{background:var(--sky)}
.tl-copy .tl-tag{
  display:block;font-weight:700;font-size:12px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--sky-mid);margin-bottom:10px;
}
.tl-copy h3{
  font-family:var(--display);font-weight:800;font-size:clamp(1.3rem,1.9vw,1.8rem);
  line-height:1.12;margin-bottom:10px;letter-spacing:-.01em;
}
.tl-copy p{color:var(--muted);font-size:clamp(.98rem,1.1vw,1.08rem);max-width:44ch}
.tl-photo{
  position:relative;width:min(320px,100%);justify-self:start;
  border-radius:14px;overflow:clip;background:#fff;padding:10px 10px 30px;
  box-shadow:0 24px 55px rgba(11,38,74,.22),0 5px 14px rgba(11,38,74,.14);
  transform:rotate(-4deg);
}
.tl-node:nth-child(3) .tl-photo{transform:rotate(3.5deg);justify-self:end}
.tl-node:nth-child(4) .tl-photo{transform:rotate(-2.5deg)}
.tl-photo img{width:100%;height:auto;border-radius:6px}
.tl-photo figcaption{
  position:absolute;left:12px;bottom:7px;font-size:11.5px;letter-spacing:.06em;
  color:var(--muted);text-transform:uppercase;font-weight:500;
}

/* ============ A2 · VALORES — V1 FILAS DISPLAY con glifo-en-titular (§14 V1) ============ */
.values{
  position:relative;background:var(--surface-2);overflow:clip;
  padding:clamp(4rem,6.5vw,6rem) var(--gutter);
}
.values::before{
  content:'';position:absolute;inset:0;opacity:.05;pointer-events:none;
  background:url('/assets/img/pattern-pavers.svg');
}
.values-in{position:relative;z-index:2;max-width:1180px;margin:0 auto}
.values-in>.kicker{display:block;margin-bottom:8px}
.values-h{
  font-family:var(--display);font-weight:800;
  font-size:clamp(1.7rem,2.8vw,2.6rem);letter-spacing:-.01em;margin-bottom:clamp(1.6rem,3vw,2.6rem);
}
.vrow{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(1rem,3vw,2.6rem);
  padding:clamp(1.1rem,1.8vw,1.6rem) 4px;border-top:1px solid rgba(5,70,164,.16);
}
.vrow:last-of-type{border-bottom:1px solid rgba(5,70,164,.16)}
.vrow-idx{
  font-family:var(--body);font-weight:700;font-size:13px;letter-spacing:.2em;
  color:var(--sky-mid);font-variant-numeric:tabular-nums;
}
.vrow-word{
  display:flex;align-items:center;gap:0;
  font-family:var(--display);font-weight:800;letter-spacing:-.01em;
  font-size:clamp(1.7rem,4.2vw,3.9rem);line-height:1;color:var(--ink);
  white-space:nowrap;min-width:0;
}
.vrow-word .vw-key{color:var(--accent)}
/* glifo-en-titular (idx-glyph cap.12 §5 — exención CSS sancionada §12.12) */
.vg{
  display:inline-block;width:0;height:.82em;overflow:clip;border-radius:.16em;
  margin:0;vertical-align:baseline;flex:none;
  transition:width .45s var(--ease),margin .45s var(--ease);
}
.vg img{width:1.5em;height:.82em;object-fit:cover;display:block}
.vrow:hover .vg,.vrow:focus-within .vg{width:1.5em;margin:0 .18em}
.vrow-copy{color:var(--muted);font-size:clamp(.95rem,1.05vw,1.05rem);max-width:34ch;text-align:right}
@media (hover:none){.vrow .vg{width:1.5em;margin:0 .18em}}

/* ============ A3 · BANDA "ROLEX" — la panorámica del hero sangra y muerde (§14 A3) ============ */
.promise{
  position:relative;background:var(--ink);color:var(--on-dark);
  min-height:clamp(480px,72vh,720px);overflow:clip;
  display:grid;align-items:center;
  padding:clamp(5rem,8vw,7rem) var(--gutter) clamp(6.5rem,10vw,9rem);
}
.promise-ghost{
  position:absolute;left:0;right:0;bottom:-.32em;z-index:1;text-align:center;
  font-family:var(--display);font-weight:900;line-height:.8;white-space:nowrap;
  font-size:min(13vw,220px);color:transparent;
  -webkit-text-stroke:2px rgba(242,247,252,.1);
  pointer-events:none;user-select:none;will-change:transform;
}
.promise-in{position:relative;z-index:2;max-width:1280px;margin:0 auto;width:100%}
.promise-in .kicker{display:block;margin-bottom:26px}
.promise-phrase{
  font-family:var(--display);font-weight:800;text-transform:uppercase;
  font-size:clamp(2.2rem,6.4vw,6rem);line-height:1.02;letter-spacing:-.005em;
  max-width:14ch;text-shadow:0 2px 14px rgba(4,16,36,.5);
}
.promise-phrase em{
  font-style:normal;color:transparent;text-shadow:none;
  -webkit-text-stroke:clamp(1.8px,.2vw,3.5px) #F2F7FC;
}
/* photo-pill DENTRO del flujo del h2 (em-units, 05 §9) */
.p-pill{
  display:inline-block;width:2.2em;height:.78em;border-radius:.5em;overflow:clip;
  vertical-align:-.08em;margin:0 .06em;
  box-shadow:0 10px 26px rgba(4,16,36,.5);opacity:.001;transform:scale(.85);
}
.p-pill img{width:100%;height:100%;object-fit:cover;display:block}
/* la panorámica del hero SANGRA derecha y OCLUYE el final de la frase (eco del sandwich) */
.promise-pano{
  position:absolute;right:-10vw;bottom:0;z-index:3;
  width:min(66vw,1050px);pointer-events:none;will-change:transform;
  filter:none;
}
/* ES: la frase es más larga — cuerpo propio (sin wrap) + pano más angosto (gate ≤30% de línea) */
html[lang="es"] .promise-phrase{font-size:clamp(1.9rem,5.6vw,5.2rem);max-width:none}
html[lang="es"] .promise-pano{right:-12vw;width:min(62vw,990px)}
.promise-polaroid{
  position:absolute;left:clamp(1rem,4vw,4rem);bottom:clamp(.9rem,1.6vw,1.4rem);z-index:2;
  width:min(140px,16vw);background:#fff;border-radius:10px;padding:7px 7px 22px;
  transform:rotate(-4deg);box-shadow:0 18px 44px rgba(4,16,36,.5);
  opacity:.001;
}
.promise-polaroid img{width:100%;height:auto;border-radius:4px}
.promise-polaroid figcaption{
  position:absolute;left:9px;bottom:4px;font-size:9.5px;letter-spacing:.08em;
  color:#51637A;text-transform:uppercase;font-weight:600;
}

/* ============ A5 · FAQ (arriba de stats, 0704-i2) ============ */
.faq{
  position:relative;background:var(--surface);overflow:clip;
  padding:clamp(4.5rem,7vw,6.5rem) var(--gutter);
}
.faq-cota{position:absolute;right:6vw;top:34px;width:150px;opacity:.5;pointer-events:none}
.faq-in{position:relative;z-index:2;max-width:820px;margin:0 auto}
.faq-in>.kicker{display:block;margin-bottom:8px}
.faq-h{
  font-family:var(--display);font-weight:800;
  font-size:clamp(1.7rem,2.8vw,2.6rem);letter-spacing:-.01em;margin-bottom:clamp(1.4rem,2.6vw,2.2rem);
}
.faq details{border-top:1px solid rgba(5,70,164,.16)}
.faq details:last-of-type{border-bottom:1px solid rgba(5,70,164,.16)}
.faq summary{
  list-style:none;cursor:pointer;display:grid;grid-template-columns:auto 1fr auto;
  align-items:center;gap:clamp(.9rem,2vw,1.5rem);padding:18px 4px;
}
.faq summary::-webkit-details-marker{display:none}
.faq-n{
  font-weight:700;font-size:12.5px;letter-spacing:.18em;color:var(--sky-mid);
  font-variant-numeric:tabular-nums;
}
.faq-q{font-family:var(--display);font-weight:700;font-size:clamp(1.02rem,1.35vw,1.25rem);line-height:1.25}
.faq-x{
  width:26px;height:26px;flex:none;position:relative;
  transition:transform .3s var(--ease);
}
.faq-x::before,.faq-x::after{
  content:'';position:absolute;left:50%;top:50%;background:var(--accent);border-radius:2px;
}
.faq-x::before{width:14px;height:2px;transform:translate(-50%,-50%)}
.faq-x::after{width:2px;height:14px;transform:translate(-50%,-50%)}
.faq details[open] .faq-x{transform:rotate(45deg)}
.faq-a{
  display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s var(--ease);
}
.faq details[open] .faq-a{grid-template-rows:1fr}
.faq-a>div{overflow:hidden;min-height:0}
.faq-a p{color:var(--muted);font-size:clamp(.95rem,1.1vw,1.05rem);max-width:62ch;padding:0 4px 20px 0}
.faq-a a{color:var(--accent);font-weight:700}

/* ============ A4 · STATS count-up — los números cierran antes del CTA (0704-i2) ============ */
.stats{
  position:relative;background:var(--surface-2);overflow:clip;
  /* F5 (gate k5/r1): costura stats->crew medía 221px; bottom recortado a 4.2vw */
  padding:clamp(4rem,6.5vw,6rem) var(--gutter) clamp(3rem,4.2vw,4rem);
}
.stats::before{
  content:'';position:absolute;inset:0;opacity:.045;pointer-events:none;
  background:url('/assets/img/pattern-pavers.svg');
}
.stats-ghost{
  position:absolute;right:-1vw;bottom:-.28em;z-index:0;
  font-family:var(--display);font-weight:900;line-height:.8;
  font-size:min(20vw,320px);color:transparent;
  -webkit-text-stroke:2px rgba(5,70,164,.07);
  pointer-events:none;user-select:none;will-change:transform;
}
.stats-in{
  position:relative;z-index:2;max-width:1080px;margin:0 auto;
  display:grid;grid-template-columns:1fr 1fr auto;gap:clamp(1.6rem,4vw,4rem);align-items:center;
}
.stat{position:relative;padding-left:clamp(1rem,2vw,1.8rem);border-left:2px solid rgba(5,70,164,.2)}
.stat-n{
  display:inline-block;font-family:var(--display);font-weight:900;color:var(--accent);
  font-size:clamp(3rem,6.5vw,5.9rem);line-height:1;letter-spacing:-.01em;
  font-variant-numeric:tabular-nums;min-width:2ch;
}
.stat sup{
  font-family:var(--display);font-weight:800;font-size:.38em;color:var(--sky-mid);
  vertical-align:super;
}
.stat-l{
  display:block;margin-top:8px;font-weight:700;font-size:12.5px;letter-spacing:.26em;
  text-transform:uppercase;color:var(--muted);
}
.stats-chip{justify-self:end}
.stats-chip .chip{
  background:rgba(245,248,251,.94);border:1px solid rgba(5,70,164,.16);color:var(--ink);
  box-shadow:0 12px 30px rgba(11,38,74,.14);
}
.stats-chip .chip b{color:var(--accent)}

/* ============ q1 · CIERRE "WHO SHOWS UP" (0705-q1: lo que la página aún no dijo) ============ */
.crew{
  position:relative;background:var(--surface);overflow:clip;
  /* F5 (gate k5/r1): top recortado a 4.2vw — aire stats->kicker dentro de 96-140 */
  padding:clamp(3rem,4.2vw,4rem) var(--gutter) clamp(4.5rem,7vw,6.5rem);
}
.crew-in{position:relative;z-index:2;max-width:1180px;margin:0 auto}
.crew-in>.kicker{display:block;margin-bottom:8px}
.crew-h{
  font-family:var(--display);font-weight:800;
  font-size:clamp(1.9rem,3.4vw,3.2rem);letter-spacing:-.01em;margin-bottom:clamp(1.6rem,3vw,2.4rem);
  max-width:24ch;
}
.crew-h .tone{color:var(--accent)}
.crew-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.2rem,2.6vw,2.4rem)}
.crew-card{
  position:relative;padding:clamp(1.3rem,2vw,1.8rem);border-radius:14px;
  background:linear-gradient(160deg,#FDFEFF 0%,#EFF5FB 100%);
  border:1px solid rgba(5,70,164,.12);
  box-shadow:0 14px 36px rgba(11,38,74,.1);
}
.crew-card .cc-ico{display:block;width:38px;height:38px;margin-bottom:14px;color:var(--accent)}
.crew-card .cc-ico svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.crew-card h3{
  font-family:var(--display);font-weight:800;font-size:clamp(1.05rem,1.4vw,1.3rem);
  margin-bottom:8px;letter-spacing:-.01em;
}
.crew-card p{color:var(--muted);font-size:clamp(.92rem,1.05vw,1.02rem)}
.crew-card a{color:var(--accent);font-weight:700;white-space:nowrap}
.crew-cube{
  position:absolute;right:5vw;top:clamp(2rem,4vw,3.5rem);width:min(64px,5vw);
  opacity:.14;pointer-events:none;
}

/* CTA ⑤ — consolidado en base.css (j9a, F5) */

/* ============ MOBILE (ley 0704-l — todo DENTRO de la MQ) ============ */
@media (max-width:900px){
  .stats-in{grid-template-columns:1fr 1fr}
  .stats-chip{grid-column:1/-1;justify-self:start}
  .crew-grid{grid-template-columns:1fr}
  .vrow-copy{display:none}
  .vrow{grid-template-columns:auto 1fr}
}
@media (max-width:760px){
  .banner{min-height:340px;padding-top:96px}
  .banner-ghost{font-size:26vw}
  .banner-folio{top:84px}
  .banner-chip{display:none}
  .tl-node{grid-template-columns:1fr;gap:1.1rem}
  .tl-photo,.tl-node:nth-child(3) .tl-photo{justify-self:start;width:min(280px,86%)}
  .story-ghost{font-size:40vw;top:.6%}
  .promise{min-height:0;padding-bottom:clamp(9rem,38vw,12rem)}
  .promise-phrase{font-size:clamp(2rem,9.4vw,2.9rem);max-width:16ch}
  .promise-pano{width:112vw;right:-26vw;bottom:-1%}
  .promise-polaroid{display:none}
  .promise-ghost{font-size:22vw}
  .stats-ghost{font-size:34vw}
  .faq-cota{display:none}
  .cta{min-height:0}
  .cta-cube{display:none}
  .crew-cube{display:none}
}

/* ============ SIN JS / SIN GSAP / REDUCED: la página COMPONE estática ============ */
html:not(.js) .banner-media,html.motion-off .banner-media,
html:not(.js) .banner-ghost,html.motion-off .banner-ghost,
html:not(.js) .banner-folio,html.motion-off .banner-folio,
html:not(.js) .banner-crumb,html.motion-off .banner-crumb,
html:not(.js) .banner-chip,html.motion-off .banner-chip,
html:not(.js) .p-pill,html.motion-off .p-pill,
html:not(.js) .promise-polaroid,html.motion-off .promise-polaroid{opacity:1;transform:none}
html:not(.js) .tl-rail,html.motion-off .tl-rail{transform:scaleY(1)}
html.langswap .banner-media,html.langswap .banner-ghost,html.langswap .banner-folio,
html.langswap .banner-crumb,html.langswap .banner-chip,html.langswap .p-pill,
html.langswap .promise-polaroid{opacity:1;transform:none}
html.langswap .tl-rail{transform:scaleY(1)}
