/* ElementalEs — self-hosted rebuild
   Clean reimplementation of the original marketing site. No framework, no tracker. */

/* ---------- Fonts (self-hosted) ---------- */
@font-face{
  font-family:'Libre Franklin';font-style:normal;font-weight:100 900;font-display:swap;
  src:url(../fonts/librefranklin-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Libre Franklin';font-style:normal;font-weight:100 900;font-display:swap;
  src:url(../fonts/librefranklin-latinext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'Merriweather';font-style:normal;font-weight:400;font-display:swap;
  src:url(../fonts/merriweather-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Merriweather';font-style:normal;font-weight:700;font-display:swap;
  src:url(../fonts/merriweather-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Merriweather';font-style:normal;font-weight:400 700;font-display:swap;
  src:url(../fonts/merriweather-latinext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ---------- Tokens ---------- */
:root{
  --bg:#ffffff;
  --ink:#050505;
  --primary:#e3002b;
  --muted-fg:#656565;
  --border:#d9d9d9;
  --sans:'Libre Franklin',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --serif:'Merriweather',Georgia,serif;
}

/* ---------- Reset / base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--sans);line-height:1.5;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img,video{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{margin:0}

/* ---------- Header ---------- */
.site-header{
  position:fixed;inset:0 0 auto;z-index:50;height:100px;padding:0 3vw;
  display:grid;grid-template-columns:minmax(270px,1fr) auto minmax(105px,1fr);
  align-items:center;color:#fff;background:rgba(5,5,5,.96);box-shadow:0 8px 24px rgba(0,0,0,.14);
}
.logo{display:flex;align-items:center;width:clamp(260px,22vw,326px);height:83px;text-decoration:none}
.logo img{width:100%;height:100%;object-fit:contain;object-position:left center}
.main-nav{display:flex;gap:clamp(.75rem,1.45vw,1.65rem)}
.main-nav a,.header-cta{color:inherit;text-decoration:none;font-size:.7rem;text-transform:uppercase;font-weight:700;letter-spacing:.02em}
.main-nav a{transition:color .18s ease}
.main-nav a:hover{color:var(--primary)}
.header-controls{justify-self:end;display:flex;align-items:center;gap:.25rem}
.header-cta{
  display:inline-flex;align-items:center;gap:.4rem;
  border:1px solid rgba(255,255,255,.5);padding:.8rem 1rem;border-radius:999px;
  transition:background .2s ease,color .2s ease;
}
.header-cta:hover{background:#fff;color:var(--ink)}
.nav-toggle{display:none}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.55rem;padding:1rem 1.25rem;
  background:#fff;color:#151412;border-radius:999px;text-decoration:none;font-weight:800;
  transition:transform .18s ease,box-shadow .18s ease;
}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(0,0,0,.25)}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100svh;background:#000;overflow:hidden;color:#fff}
.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.72}
.hero__video--layer{opacity:0;transition:opacity .6s ease;pointer-events:none}
.hero__overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.1) 34%,rgba(0,0,0,.78))}
.hero__content{
  position:relative;z-index:2;min-height:100svh;padding:9rem 5vw 3rem;
  display:flex;flex-direction:column;justify-content:flex-end;
}
.eyebrow,.kicker{font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.hero h1{
  font-weight:800;font-size:clamp(4.5rem,11vw,10rem);line-height:.86;
  max-width:9ch;letter-spacing:-.055em;
}
.hero__bottom{margin-top:2.2rem;display:flex;justify-content:space-between;gap:2rem;align-items:flex-end}
.hero__lead{font-family:var(--serif);font-size:clamp(1.55rem,2.4vw,2.4rem);font-weight:700;line-height:1.18;margin:0}
.hero__sub{font-size:1.05rem;color:rgba(255,255,255,.72);margin:.4rem 0 0}
.hero__tags{margin-top:2.8rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.28);font-size:.82rem;color:rgba(255,255,255,.78)}
.hero__down{margin-top:1rem;color:#fff;text-decoration:none;display:inline-flex;gap:.5rem;align-items:center;font-size:.72rem;text-transform:uppercase;font-weight:700}

/* ---------- Section shells ---------- */
.section{padding:8rem 5vw}
.section-head{display:grid;grid-template-columns:1.5fr .7fr;gap:4rem;align-items:end;margin-bottom:5rem}
.section-head h2{margin:.6rem 0 0}
.section-head p{color:var(--muted-fg);line-height:1.7;margin:0}
.kicker{display:block}

h2.display,.section-head h2{
  font-weight:800;font-size:clamp(3rem,6vw,6rem);line-height:.94;letter-spacing:-.045em;
}

/* ---------- Services (Qué hacemos) ---------- */
.section--light{background:#fff;color:var(--ink)}
.services{border-top:1px solid var(--border)}
.service{display:grid;grid-template-columns:.2fr .9fr 1fr;gap:2rem;padding:2.5rem 0;border-bottom:1px solid var(--border)}
.service__num{color:var(--primary);font-weight:800}
.service h3{font-weight:800;font-size:clamp(1.8rem,3vw,3rem);letter-spacing:-.035em}
.service__premise{font-family:var(--serif);font-size:1rem;margin:0;line-height:1.55}
.service__detail{grid-column:3;color:var(--muted-fg);margin:.7rem 0 0;line-height:1.6}

/* ---------- Statement (La diferencia) ---------- */
.section--statement{background:#fff;color:var(--ink);border-top:1px solid #ececec}
.section--statement .kicker{color:var(--primary)}
.section--statement h2{
  font-weight:800;font-size:clamp(3rem,6vw,6rem);line-height:.94;letter-spacing:-.045em;max-width:13ch;margin:.3rem 0 0;
}
.statement__red{color:var(--primary)}
.section--statement p{max-width:850px;font-family:var(--serif);font-size:1.24rem;line-height:1.75;color:#333;margin-top:3rem}

/* ---------- Cases ---------- */
.section--cases{background:#050505;color:#fff}
.section--cases .section-head h2{color:#fff}
.section--cases .section-head p{color:#a8a8a8}
.case-list{display:grid;gap:7rem}
.case{display:grid;grid-template-columns:1.15fr .85fr;gap:5vw;align-items:center}
.case:nth-child(2n) .case__visual{order:2}
.case__visual{position:relative;aspect-ratio:4/3;background:#121212;overflow:hidden;border:12px solid #fff}
.case__visual img{width:100%;height:100%;object-fit:cover}
.case:nth-child(1) .case__visual{border-color:#e3002b}
.case:nth-child(2) .case__visual{border-color:#11647e}
.case:nth-child(3) .case__visual{border-color:#42bdd0}
.case:nth-child(4) .case__visual{border-color:#e3002b}
.case__index{position:absolute;z-index:2;top:1rem;left:1rem;background:var(--primary);padding:.7rem;font-weight:800;font-size:.7rem;color:#fff}
.case__copy .kicker{color:var(--primary)}
.case__copy h3{font-weight:800;font-size:clamp(2.5rem,5vw,5rem);line-height:.95;margin:.7rem 0 2rem;letter-spacing:-.04em}
.case__copy dl{margin:0}
.case__copy dl div{padding:1.2rem 0;border-top:1px solid #2f2f2f}
.case__copy dt{font-size:.65rem;color:#9d9d9d;font-weight:800;letter-spacing:.04em}
.case__copy dd{margin:.5rem 0 0;line-height:1.65;color:#eee}

/* ---------- Production ---------- */
.section--production{background:#fff;color:var(--ink)}
.production__head{display:grid;grid-template-columns:1.6fr 1fr;gap:2rem 6vw;align-items:end;margin-bottom:3rem}
.production__head .kicker{grid-column:1/-1;color:var(--primary);margin:0 0 .4rem}
.production__head h2{font-weight:800;font-size:clamp(2.9rem,5vw,5.3rem);line-height:1.04;letter-spacing:-.045em;max-width:13ch}
.production__head p{line-height:1.7;color:#555;max-width:28rem;margin:0 0 .25rem}
.production__grid{display:grid;grid-template-columns:1.45fr .8fr;gap:1.25rem}
.production__grid figure{margin:0;position:relative;overflow:hidden;background:#050505}
.production__grid img{width:100%;height:100%;object-fit:cover}
.production__grid figure.main{aspect-ratio:16/9}
.production__grid figure.side{aspect-ratio:4/5}
.production__grid figcaption{position:absolute;left:0;right:0;bottom:0;padding:1rem 1.2rem;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.78));font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700}

/* ---------- Brand band ---------- */
.brand-band{background:#050505;color:#fff;display:flex;justify-content:space-between;align-items:center;gap:5vw;padding:4.4rem 5vw}
.brand-band>div{max-width:850px}
.brand-band p{font-size:.7rem;font-weight:800;letter-spacing:.16em;color:#b7b7b7;margin:0}
.brand-band h2{font-family:var(--serif);font-size:clamp(2.1rem,4.2vw,4.1rem);font-weight:700;line-height:1.18;margin:1rem 0 0}
.brand-band h2 span{color:var(--primary)}
.brand-band img{width:clamp(225px,28vw,430px);height:auto;object-fit:contain}

/* ---------- Legacy / Trayectoria ---------- */
.section--legacy{background:#fff;color:var(--ink);border-top:1px solid #ececec}
.section--legacy>p{max-width:1000px;font-family:var(--serif);font-size:1.15rem;line-height:1.75;margin:0 0 1.8rem}
.section--legacy h2{font-weight:800;max-width:1000px;font-size:clamp(2.8rem,5.3vw,5.4rem);line-height:1.04;margin:.75rem 0 2.1rem;letter-spacing:-.045em}
.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-top:3.2rem;border-top:1px solid #ddd;border-bottom:1px solid #ddd}
.stats div{padding:2rem 1.2rem 2rem 0}
.stats div+div{border-left:1px solid #e8e8e8;padding-left:1.2rem}
.stats strong{display:block;font-weight:800;font-size:clamp(2.5rem,4vw,4.2rem);letter-spacing:-.04em;white-space:nowrap}
.stats span{font-size:.8rem}
.stats .plus{color:var(--primary)}
.legacy__geo{max-width:100%;font-size:.85rem;margin:1.6rem 0 0;color:#555}

/* ---------- VandCamp ---------- */
.vandcamp{display:grid;grid-template-columns:1.05fr .95fr;min-height:760px;background:#002a55;color:#fff}
.vandcamp__media{min-height:760px;overflow:hidden}
.vandcamp__media img{width:100%;height:100%;object-fit:cover}
.vandcamp__copy{padding:7rem 5vw;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(145deg,#002a55,#0b4d70)}
.vandcamp__copy .kicker{color:#48c4d3}
.vandcamp__copy h2{font-weight:800;font-size:clamp(3rem,5.7vw,5.8rem);line-height:.95;letter-spacing:-.045em;margin:.6rem 0 1.5rem}
.vandcamp__intro{font-family:var(--serif);font-size:1.15rem;line-height:1.7;color:#d8edf2;max-width:680px;margin:0}
.vandcamp__paths{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2.5rem}
.vandcamp__paths article{border:1px solid rgba(72,196,211,.5);padding:1.5rem;background:rgba(0,0,0,.08)}
.vandcamp__paths span{font-size:.68rem;letter-spacing:.1em;color:#9edfe8;font-weight:800}
.vandcamp__paths h3{font-weight:800;font-size:1.45rem;line-height:1.05;margin:.8rem 0}
.vandcamp__paths p{font-size:.95rem;line-height:1.6;color:#d8edf2}
.vandcamp__paths a{display:inline-flex;align-items:center;gap:.45rem;color:#fff;text-decoration:none;font-weight:800;font-size:.8rem;margin-top:.5rem}
.vandcamp__paths a:hover{text-decoration:underline}

/* ---------- Clients ---------- */
.section--clients{background:#fff;border-top:1px solid #ececec;overflow:hidden}
.clients-head{display:grid;grid-template-columns:1.4fr .6fr;align-items:end;gap:4rem}
.clients-head h2{font-weight:800;font-size:clamp(3rem,6vw,6rem);line-height:1.03;letter-spacing:-.045em;max-width:13ch}
.clients-head p{max-width:420px;color:#575757;line-height:1.75;margin:0}
.marquee-caption{font-size:.69rem;font-weight:800;letter-spacing:.13em;color:#777;margin:5rem 0 1.7rem;text-align:center}
.marquee{position:relative;width:calc(100% + 10vw);margin-left:-5vw;overflow:hidden;
  -webkit-mask-image:linear-gradient(to right,transparent,#000 9%,#000 91%,transparent);
  mask-image:linear-gradient(to right,transparent,#000 9%,#000 91%,transparent);}
.marquee__track{width:max-content;display:flex;animation:marquee 140s linear infinite;will-change:transform}
.marquee:hover .marquee__track,.marquee:focus-within .marquee__track{animation-play-state:paused}
.marquee__set{display:flex;flex:0 0 auto;align-items:center}
.wordmark{width:clamp(205px,19vw,270px);height:150px;padding:1.35rem;display:flex;align-items:center;justify-content:center;flex:none}
.wordmark img{width:100%;max-width:238px;height:112px;object-fit:contain}
.wordmark strong{font-weight:800;font-size:clamp(1.3rem,2vw,1.9rem);color:#252525;line-height:1.08;letter-spacing:-.035em;text-align:center}
.marquee-note{display:none;font-size:.7rem;color:#777;text-align:center;margin-top:1.2rem}
@keyframes marquee{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){
  .marquee{overflow-x:auto;scrollbar-width:thin}
  .marquee__track{animation:none;will-change:auto}
  .marquee-note{display:block}
}

/* ---------- Contact ---------- */
.section--contact{background:var(--primary);color:#fff;text-align:center}
.section--contact .kicker{color:#fff;opacity:.78}
.section--contact h2{font-weight:800;font-size:clamp(3rem,6vw,6rem);line-height:.94;letter-spacing:-.045em;margin:1rem auto 1.4rem;max-width:12ch}
.contact__lead{max-width:720px;margin:0 auto 2.2rem;font-family:var(--serif);font-size:1.12rem;line-height:1.7}
.section--contact .btn{margin:auto}
.contact__email{display:block;width:fit-content;margin:1rem auto 0;color:#fff;text-underline-offset:4px;font-size:.9rem}

/* ---------- Footer ---------- */
.site-footer{background:#050505;color:#fff;padding:2.25rem 5vw;display:grid;grid-template-columns:1fr auto auto;gap:2rem;align-items:center}
.site-footer img{width:clamp(260px,28vw,360px);height:100px;object-fit:contain;object-position:left center}
.site-footer p{font-size:.75rem;color:#aaa;margin:0}
.site-footer nav{display:flex;gap:1.25rem;flex-wrap:wrap}
.site-footer a{color:#ddd;text-decoration:none;font-size:.75rem;display:inline-flex;gap:.35rem;align-items:center}
.site-footer a:hover{color:#fff}

/* ---------- Responsive ---------- */
@media(max-width:1100px){
  .site-header{height:88px;grid-template-columns:1fr auto;padding:0 1.5rem}
  .main-nav{
    position:absolute;top:100%;right:0;left:0;flex-direction:column;gap:0;
    background:rgba(5,5,5,.98);padding:0;max-height:0;overflow:hidden;
    transition:max-height .3s ease;
  }
  .main-nav.open{max-height:60vh}
  .main-nav a{padding:1rem 1.5rem;font-size:.85rem;border-top:1px solid rgba(255,255,255,.08)}
  .logo{width:clamp(205px,26vw,275px);height:72px}
  .header-cta{font-size:.68rem}
  .nav-toggle{
    display:inline-flex;align-items:center;justify-content:center;justify-self:end;
    width:44px;height:44px;margin-left:.75rem;background:none;border:0;color:#fff;cursor:pointer;
  }
  .nav-toggle svg{width:26px;height:26px}
}
@media(max-width:950px){
  .stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .stats div:nth-child(4){border-left:0;padding-left:0}
  .stats div{border-bottom:1px solid #eee}
  .brand-band{flex-direction:column;align-items:flex-start}
  .production__head{grid-template-columns:1fr}
  .production__head h2{max-width:14ch}
}
@media(max-width:800px){
  .site-header{height:78px;padding:0 1rem}
  .logo{width:clamp(175px,46vw,240px);height:62px}
  .hero__content{padding:7rem 1.25rem 2rem}
  .hero h1{font-size:18vw}
  .hero__bottom{flex-direction:column;align-items:flex-start}
  .section{padding:5rem 1.25rem}
  .section-head,.clients-head{grid-template-columns:1fr;gap:1.5rem}
  .service{grid-template-columns:2.5rem 1fr}
  .service__premise,.service__detail{grid-column:2}
  .case{grid-template-columns:1fr}
  .case:nth-child(2n) .case__visual{order:0}
  .stats{grid-template-columns:1fr 1fr}
  .stats div{padding:1.35rem .75rem 1.35rem 0}
  .stats div+div{padding-left:.75rem}
  .stats div:nth-child(odd){border-left:0;padding-left:0}
  .stats strong{font-size:clamp(2.2rem,9vw,3.25rem)}
  .marquee{width:calc(100% + 2.5rem);margin-left:-1.25rem}
  .marquee-caption{margin-top:3rem}
  .wordmark{width:175px;height:100px;padding:1.2rem}
  .wordmark img{height:70px}
  .header-cta{font-size:.65rem;padding:.65rem .8rem}
  .production__head,.production__grid{grid-template-columns:1fr}
  .production__head h2{font-size:clamp(2.7rem,11vw,4rem)}
  .production__grid figure.side{aspect-ratio:16/10}
  .brand-band{padding:3.5rem 1.25rem}
  .brand-band img{width:min(100%,320px)}
  .vandcamp{grid-template-columns:1fr}
  .vandcamp__media{min-height:440px}
  .vandcamp__copy{padding:4.5rem 1.25rem}
  .vandcamp__paths{grid-template-columns:1fr}
  .site-footer{grid-template-columns:1fr;align-items:start}
  .site-footer img{width:240px;height:72px}
}
