/* ============================================================
   ALTO VALLEY — OIL & GAS LANDING
   Sistema de diseño: "documento técnico / spec sheet industrial"
   ============================================================ */

:root{
  --ink:#141C22;
  --paper:#ECEFE7;
  --paper-dim:#E1E5DA;
  --rust:#A83E09;
  --teal:#1A5865;
  --text:#1A1D1F;
  --muted:#5B6167;
  --line:#C9CDC1;
  --white:#FAFAF6;
  --radius:2px;
  --maxw:1120px;
}

/* ---------- Reset / base ---------- */
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--text);
  font-family:'IBM Plex Sans', sans-serif;
  font-size:17px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
}
a{color:inherit;}
:focus-visible{outline:2px solid var(--rust); outline-offset:3px;}
img,video{max-width:100%; display:block;}

.wrap{max-width:var(--maxw); margin:0 auto; padding:0 32px;}
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--rust);
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:18px;
}
.eyebrow::before{content:"";width:22px;height:1px;background:var(--rust);}

h1,h2,h3{
  font-family:'Big Shoulders Display', sans-serif;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.01em;
  line-height:0.98;
  margin:0 0 20px;
  color:var(--ink);
}
h2{font-size:clamp(32px,4.6vw,54px);}
h3{font-size:22px; letter-spacing:.02em;}
p{margin:0 0 16px; color:var(--text);}
.muted{color:var(--muted);}

/* ---------- Document spine (margin rule) ---------- */
.spine{
  position:fixed; top:0; left:24px; bottom:0; width:1px; background:var(--line);
  z-index:1;
}
@media (max-width:760px){ .spine{display:none;} }

/* ---------- Header ---------- */
header.site{
  position:sticky; top:0; z-index:40;
  background:rgba(236,239,231,0.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.nav{
  max-width:var(--maxw); margin:0 auto; padding:16px 32px;
  display:flex; align-items:center; justify-content:space-between;
}
.brand{
  display:flex; align-items:center; gap:10px;
  font-family:'IBM Plex Mono', monospace;
  font-weight:500; font-size:14px; letter-spacing:.08em; text-transform:uppercase;
  text-decoration:none; color:inherit;
}
.brand span{color:var(--rust); white-space:nowrap;}
.brand-logo{height:26px; width:auto; display:block; flex-shrink:0;}
@media (max-width:480px){
  .brand span{display:none;}
  .brand-logo{height:22px;}
}
.nav-cta{
  font-family:'IBM Plex Mono', monospace;
  font-size:13px; letter-spacing:.04em;
  background:var(--ink); color:var(--white);
  padding:10px 18px; border-radius:var(--radius);
  text-decoration:none;
  border:1px solid var(--ink);
}
.nav-cta:hover{background:transparent; color:var(--ink);}

/* ---------- Buttons ---------- */
.btn{
  font-family:'IBM Plex Mono', monospace;
  font-size:14px; letter-spacing:.03em;
  padding:14px 24px; border-radius:var(--radius);
  text-decoration:none; display:inline-flex; align-items:center; gap:10px;
  border:1px solid var(--ink);
  transition:transform .15s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--rust); border-color:var(--rust); color:var(--white);}
.btn-secondary{background:transparent; color:var(--ink);}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  padding:96px 0 70px;
  overflow:hidden;
  color:var(--white);
}
.hero-media{
  position:absolute; inset:0; z-index:0;
  background:var(--ink);
}
.hero-media video,
.hero-media img{
  width:100%; height:100%; object-fit:cover;
  position:absolute; inset:0;
}
.hero-media::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(20,28,34,.72) 0%, rgba(20,28,34,.55) 45%, rgba(20,28,34,.88) 100%);
}
.hero .wrap{position:relative; z-index:2;}
.hero h1{
  font-size:clamp(40px,7vw,84px);
  max-width:15ch;
  color:var(--white);
}
.hero .eyebrow{color:var(--rust);}
.hero-sub{
  font-size:19px; max-width:44ch; color:var(--paper);
}
.hero-actions{
  margin-top:36px; display:flex; gap:16px; flex-wrap:wrap; align-items:center;
}
.hero .btn-secondary{color:var(--white); border-color:var(--white);}
.hero-credit{
  margin-top:56px;
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--paper-dim);
}
svg.trace{ display:block; width:100%; height:auto; }
.trace path{
  fill:none; stroke:var(--teal); stroke-width:1.6;
  stroke-dasharray:1400; stroke-dashoffset:1400;
  transition:stroke-dashoffset 1.8s cubic-bezier(.2,.7,.2,1);
}
.trace.in path{stroke-dashoffset:0;}
.hero-trace{position:absolute; left:0; right:0; bottom:0; opacity:.7; z-index:2;}
.hero-trace .trace path{stroke:var(--paper);}

section{padding:78px 0; border-bottom:1px solid var(--line);}
.section-head{max-width:62ch; margin-bottom:44px;}

/* ---------- Problem ---------- */
.problem-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:start;}
@media (max-width:820px){ .problem-grid{grid-template-columns:1fr;} }
.filter-card{
  border:1px solid var(--line); background:var(--white); padding:26px;
}
.filter-row{display:flex; align-items:center; gap:12px; padding:9px 0; border-bottom:1px dashed var(--line); font-family:'IBM Plex Mono', monospace; font-size:13px; color:var(--muted);}
.filter-row:last-child{border-bottom:none;}
.filter-row.out{opacity:.35; text-decoration:line-through;}
.filter-row.win{color:var(--ink); font-weight:600;}
.dot{width:7px; height:7px; border-radius:50%; background:var(--line); flex-shrink:0;}
.filter-row.win .dot{background:var(--rust);}

/* ---------- Flow diagram ---------- */
.flow{
  display:grid; grid-template-columns:repeat(5,1fr); gap:0 16px; position:relative; margin-top:8px;
}
@media (max-width:1100px){ .flow{grid-template-columns:1fr; gap:34px;} }
.flow-step{position:relative; padding:26px 22px 22px 0;}
.flow-icon{
  width:38px; height:38px; color:var(--teal); margin-bottom:18px; display:block;
}
.flow-num{
  font-family:'IBM Plex Mono', monospace; font-size:13px; color:var(--rust); margin-bottom:10px; display:block;
}
.flow-title{font-family:'Big Shoulders Display'; font-weight:700; font-size:22px; text-transform:uppercase; margin-bottom:8px;}
.flow-trace{margin:26px 0 -6px;}

/* ---------- Phases ---------- */
.phase{
  border:1px solid var(--line); background:var(--white); margin-bottom:22px;
}
.phase-head{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:20px 26px; border-bottom:1px solid var(--line);
  flex-wrap:wrap;
}
.phase-tag{font-family:'IBM Plex Mono', monospace; font-size:13px; letter-spacing:.06em; color:var(--muted);}
.phase-title{font-family:'Big Shoulders Display'; font-weight:700; font-size:26px; text-transform:uppercase;}
.phase-price{
  font-family:'IBM Plex Mono', monospace; font-size:13px; letter-spacing:.05em;
  background:var(--paper-dim); padding:6px 12px; border-radius:var(--radius);
}
.phase-body{padding:22px 26px;}
.phase-body ul{margin:0; padding-left:0; list-style:none;}
.phase-body li{
  padding:10px 0; border-bottom:1px dashed var(--line); padding-left:20px; position:relative;
}
.phase-body li:last-child{border-bottom:none;}
.phase-body li::before{content:"—"; position:absolute; left:0; color:var(--teal);}

/* ---------- Extensions ---------- */
.ext-list{display:grid; gap:0; border-top:1px solid var(--line);}
.ext-item{
  display:flex; gap:18px; padding:20px 0; border-bottom:1px solid var(--line);
  align-items:baseline;
}
.ext-item .mark{font-family:'IBM Plex Mono', monospace; color:var(--teal); font-size:13px; flex-shrink:0; width:26px;}

/* ---------- Content examples ---------- */
.content-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
@media (max-width:900px){ .content-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:600px){ .content-grid{grid-template-columns:1fr;} }
.content-card{
  background:var(--white); border:1px solid var(--line);
  display:flex; flex-direction:column;
  overflow:hidden;
}
.content-card .card-body{padding:22px; display:flex; flex-direction:column; justify-content:space-between; flex:1; min-height:108px;}
.content-card .tag{font-family:'IBM Plex Mono', monospace; font-size:11.5px; color:var(--rust); letter-spacing:.06em; text-transform:uppercase; margin-bottom:14px;}
.content-card p{margin:0; font-size:15.5px;}
.content-card .card-media{position:relative; aspect-ratio:16/9; background:var(--ink); overflow:hidden;}
.content-card .card-media video,
.content-card .card-media img{width:100%; height:100%; object-fit:cover;}
.content-card .card-media .media-label{
  position:absolute; bottom:10px; left:12px;
  font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--white); background:rgba(20,28,34,.55); padding:4px 8px; border-radius:var(--radius);
}

/* ---------- Why it works (dark, with background photo) ---------- */
.why{
  position:relative;
  color:var(--paper);
  border-bottom:1px solid var(--line);
  overflow:hidden;
}
.why-media{position:absolute; inset:0; z-index:0;}
.why-media img{width:100%; height:100%; object-fit:cover;}
.why-media::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(120deg, rgba(20,28,34,.94) 0%, rgba(20,28,34,.86) 55%, rgba(20,28,34,.7) 100%);
}
.why .wrap{position:relative; z-index:1;}
.why h2, .why .eyebrow{color:var(--paper);}
.why .eyebrow::before{background:var(--rust);}
.why blockquote{
  font-family:'Big Shoulders Display'; font-weight:600; text-transform:none;
  font-size:clamp(22px,3vw,32px); line-height:1.25; margin:0 0 20px; max-width:56ch;
}
.why cite{font-family:'IBM Plex Mono', monospace; font-style:normal; font-size:13px; color:#9CA6A3;}

/* ---------- Clients / manifest ---------- */
#clientes{position:relative; overflow:hidden;}
.clients-bg{
  position:absolute; inset:0; z-index:0;
  opacity:.10; pointer-events:none;
}
.clients-bg img{width:100%; height:100%; object-fit:cover;}
#clientes .wrap{position:relative; z-index:1;}
.clients-panel{
  border:1px solid var(--line); background:var(--white); padding:8px 32px;
}
.clients-list{
  margin:0; padding:0; list-style:none;
  column-count:3; column-gap:40px;
}
@media (max-width:820px){ .clients-list{column-count:2;} }
@media (max-width:560px){ .clients-list{column-count:1;} }
.clients-list li{
  font-family:'IBM Plex Mono', monospace; font-size:12.5px; color:var(--muted);
  line-height:1.5; padding:11px 0 11px 20px; position:relative;
  break-inside:avoid;
}
.clients-list li::before{content:"—"; position:absolute; left:0; color:var(--teal);}

/* ---------- Onboarding steps ---------- */
.steps{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
@media (max-width:900px){ .steps{grid-template-columns:1fr 1fr;} }
@media (max-width:600px){ .steps{grid-template-columns:1fr;} }
.step{border-top:2px solid var(--ink); padding-top:16px;}
.step .n{font-family:'IBM Plex Mono', monospace; font-size:26px; color:var(--rust); display:block; margin-bottom:8px;}

/* ---------- Banner (full-width photo band) ---------- */
.banner{
  position:relative;
  min-height:260px;
  display:flex; align-items:center;
  border-bottom:1px solid var(--line);
  overflow:hidden;
  padding:0;
}
.banner img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
}
.banner::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(20,28,34,.35) 0%, rgba(20,28,34,.75) 100%);
}
.banner .wrap{position:relative; z-index:1;}
.banner .eyebrow{color:var(--paper-dim);}
.banner .eyebrow::before{background:var(--rust);}
.banner p{color:var(--white); font-family:'IBM Plex Mono', monospace; font-size:14px; letter-spacing:.03em; max-width:48ch; margin:0;}

/* ---------- Expo hook (countdown + material checklist) ---------- */
.expo{
  position:relative;
  color:var(--white);
  border-bottom:1px solid var(--line);
  overflow:hidden;
  padding:112px 0;
}
.expo-media{position:absolute; inset:0; z-index:0;}
.expo-media img{width:100%; height:100%; object-fit:cover;}
.expo-media::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(20,28,34,.82) 0%, rgba(20,28,34,.92) 100%);
}
.expo .wrap{position:relative; z-index:1;}
.expo .eyebrow{color:var(--rust);}
.expo h2{color:var(--white); max-width:none; font-size:clamp(30px,3.2vw,48px);}
@media (max-width:640px){ .expo h2{line-height:1.15;} }

/* Two-column split: poster on the left, sales copy on the right */
.expo-grid{
  display:grid; grid-template-columns:8fr 4fr; gap:64px; align-items:center;
}
@media (max-width:860px){ .expo-grid{grid-template-columns:1fr; gap:44px;} }

.expo-visual{display:flex; justify-content:center;}

.expo-countdown{
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
  margin:0 0 22px;
}
.expo-countdown-num{
  position:relative;
  font-family:'IBM Plex Mono', monospace; font-weight:500;
  font-variant-numeric:tabular-nums;
  font-size:clamp(52px,7vw,80px); line-height:0.85; color:var(--rust);
  text-shadow:0 0 26px rgba(168,62,9,.55);
}
.expo-countdown-num::before,
.expo-countdown-num::after{
  content:"";
  position:absolute; left:50%; top:50%;
  width:1.4em; height:1.4em;
  border:1.5px solid var(--rust);
  border-radius:50%;
  transform:translate(-50%,-50%) scale(.85);
  opacity:0;
  pointer-events:none;
  animation:expo-ping 2.4s cubic-bezier(.25,.6,.35,1) infinite;
}
.expo-countdown-num::after{ animation-delay:1.2s; }
@keyframes expo-ping{
  0%{ opacity:.35; transform:translate(-50%,-50%) scale(.85); }
  70%{ opacity:0; transform:translate(-50%,-50%) scale(1.0); }
  100%{ opacity:0; transform:translate(-50%,-50%) scale(1.0); }
}
.expo-countdown-label{
  font-family:'IBM Plex Mono', monospace; font-size:15px; letter-spacing:.02em;
  color:var(--paper); text-transform:uppercase; line-height:1.4;
}
.expo-sub{color:var(--paper) !important; max-width:60ch; font-size:17px;}

.expo-checklist{
  display:grid; grid-template-columns:repeat(2,1fr); gap:0;
  margin:32px 0 36px; border-top:1px solid rgba(250,250,246,.2);
}
@media (max-width:600px){ .expo-checklist{grid-template-columns:1fr;} }
.expo-item{
  display:flex; align-items:baseline; gap:10px;
  padding:14px 16px 14px 2px; border-bottom:1px solid rgba(250,250,246,.2);
  font-family:'IBM Plex Mono', monospace; font-size:14px; color:var(--paper);
}
.expo-item .mark{color:var(--rust); flex-shrink:0;}

/* Poster: fixed intrinsic ratio, never stretched — width is constrained,
   height is always "auto" so the image keeps its real 511:640 proportions. */
.expo-official{
  display:flex; flex-direction:column; align-items:center; text-decoration:none;
  width:100%; max-width:260px;
}
.expo-official-poster{
  display:block; width:100%; background:var(--white); padding:8px;
  transform:rotate(-4deg);
  box-shadow:0 22px 40px rgba(0,0,0,.5), 0 8px 16px rgba(0,0,0,.35);
  transition:transform .2s ease, box-shadow .2s ease;
}
.expo-official:hover .expo-official-poster{
  transform:rotate(-1.5deg) translateY(-4px);
  box-shadow:0 28px 52px rgba(0,0,0,.55), 0 12px 22px rgba(0,0,0,.4);
}
.expo-official-poster picture{display:block; width:100%;}
.expo-official-poster img{display:block; width:100%; height:auto;}
.expo-official-label{
  display:block; margin-top:18px;
  font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:.04em; text-transform:uppercase;
  color:var(--paper-dim); text-align:center;
}

/* ---------- CTA / form ---------- */
.cta{background:var(--paper-dim);}
.cta-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px;}
@media (max-width:860px){ .cta-grid{grid-template-columns:1fr;} }

.cta-contacts{
  display:flex; flex-direction:column; gap:16px; margin-top:36px;
  padding-top:28px; border-top:1px solid var(--line);
}
.cta-contact{font-size:14px; font-family:'IBM Plex Mono', monospace;}
.cta-contact .name{font-weight:600; font-family:'IBM Plex Sans', sans-serif; display:block; margin-bottom:4px; color:var(--ink);}
.cta-contact a{color:var(--muted); text-decoration:none;}
.cta-contact a:hover{color:var(--rust);}
form{display:flex; flex-direction:column; gap:14px;}
label{font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted);}
input, textarea{
  font-family:'IBM Plex Sans', sans-serif; font-size:15px;
  padding:12px 14px; border:1px solid var(--line); background:var(--white);
  border-radius:var(--radius); color:var(--text);
  width:100%;
}
textarea{resize:vertical; min-height:90px;}
.submit-btn{
  align-self:flex-start; margin-top:6px;
  font-family:'IBM Plex Mono', monospace; font-size:14px;
  background:var(--ink); color:var(--white); border:1px solid var(--ink);
  padding:14px 26px; border-radius:var(--radius); cursor:pointer;
}
.submit-btn:hover{background:var(--rust); border-color:var(--rust);}
.form-note{font-size:13px; color:var(--muted); margin-top:14px;}
.success{
  display:none; border:1px solid var(--teal); background:rgba(44,134,152,.08);
  padding:18px 20px; font-family:'IBM Plex Mono', monospace; font-size:14px; color:var(--ink);
}
.success.show{display:block;}
.error{
  display:none; border:1px solid var(--rust); background:rgba(168,62,9,.08);
  padding:18px 20px; font-family:'IBM Plex Mono', monospace; font-size:14px; color:var(--ink);
}
.error.show{display:block;}

/* ---------- Footer ---------- */
footer{padding:56px 0 32px; border-top:1px solid var(--line);}
.foot-top{
  display:flex; justify-content:space-between; align-items:flex-start; gap:48px;
  flex-wrap:wrap; padding-bottom:32px;
}
.foot-about{max-width:38ch;}
.foot-about .brand{margin-bottom:12px;}
.foot-about p{margin:0; font-size:14px;}
.foot-nav{
  display:flex; gap:24px; flex-wrap:wrap;
  font-family:'IBM Plex Mono', monospace; font-size:13px; letter-spacing:.03em;
}
.foot-nav a{color:var(--muted); text-decoration:none;}
.foot-nav a:hover{color:var(--rust);}
.foot-bottom{
  display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap;
  padding-top:24px; border-top:1px solid var(--line);
  font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--muted); letter-spacing:.05em;
}
.foot-bottom a{color:var(--muted); text-decoration:none;}
.foot-bottom a:hover{color:var(--rust);}

/* ---------- Scroll reveal ---------- */
.reveal{opacity:0; transform:translateY(14px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1; transform:none;}

/* Respect data-saver / reduced-motion: never force-load background video */
@media (prefers-reduced-motion: reduce){
  .hero-media video{display:none;}
}
