/* Buenos Bandidos — v2 · cinematic premium */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&display=swap');

:root{
  --bg:#0a0a09;
  --fg:#f0ece4;
  --muted:#a8a196;
  --accent:#c6a574;
  --serif:'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --sans: system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --max:1100px;
  --narrow:720px;
  --gutter:clamp(20px, 4vw, 40px);
  --space-xs:clamp(24px, 3vw, 40px);
  --space-sm:clamp(48px, 6vw, 80px);
  --space-md:clamp(80px, 10vw, 140px);
  --space-lg:clamp(120px, 15vw, 200px);
  --space-xl:clamp(160px, 20vw, 260px);
  --radius:8px;
}

/* ─── reset ─── */
*{box-sizing:border-box; margin:0; padding:0}
html{
  scroll-behavior:smooth;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
body{
  font-family:var(--sans);
  background:var(--bg);
  color:var(--fg);
  font-size:16px;
  line-height:1.6;
  letter-spacing:.01em;
}
img{display:block; max-width:100%}
a{color:inherit; text-decoration:none}
ul{list-style:none}

/* ─── utilities ─── */
.container{max-width:var(--max); margin:0 auto; padding:0 var(--gutter)}
.narrow{max-width:var(--narrow)}

/* ─── fade-in on scroll ─── */
.reveal{
  opacity:0;
  transform:translateY(20px);
  transition:opacity .8s cubic-bezier(.25,.1,.25,1), transform .8s cubic-bezier(.25,.1,.25,1);
}
.reveal.visible{opacity:1; transform:none}

/* ─── navigation ─── */
.site-header{
  position:fixed;
  top:0; left:0; right:0;
  z-index:50;
  padding:28px 0;
  transition:background .4s, padding .4s;
}
.site-header.scrolled{
  background:rgba(10,10,9,.88);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  padding:14px 0;
}
.site-header .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.brand{display:flex; align-items:center; text-decoration:none}
.brand-mark{height:64px; width:auto; transition:height .4s; }
.scrolled .brand-mark{height:38px}
.brand-text{display:none}
nav{display:flex; align-items:center; gap:28px}
nav a{
  font-size:11px;
  font-weight:400;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--muted);
  transition:color .3s;
  position:relative;
}
nav a:hover, nav a.active{color:var(--fg)}
nav a.active::after{
  content:'';
  position:absolute;
  bottom:-6px;
  left:0; right:0;
  height:1px;
  background:var(--accent);
}
nav a.lang{
  color:rgba(240,236,228,.35);
  border-left:1px solid rgba(240,236,228,.1);
  padding-left:28px;
  margin-left:4px;
}
nav a.lang:hover{color:var(--muted)}

/* ─── hero ─── */
.hero{
  height:100vh;
  min-height:600px;
  width:100%;
  position:relative;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  overflow:hidden;
}
.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.hero::after{
  content:'';
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(10,10,9,.25) 0%, transparent 25%),
    linear-gradient(180deg, transparent 55%, rgba(10,10,9,.75) 100%);
}
.hero-caption{
  position:relative;
  z-index:2;
  padding:0 var(--gutter) clamp(48px, 8vh, 80px);
  text-align:center;
}
.hero-caption .tagline{
  font-family:var(--serif);
  font-size:clamp(18px, 2.5vw, 24px);
  font-weight:300;
  font-style:italic;
  color:rgba(240,236,228,.7);
  letter-spacing:.02em;
}

/* ─── sections ─── */
.section{padding:var(--space-md) 0}
.section--tight{padding:var(--space-sm) 0}
.section--spacious{padding:var(--space-lg) 0}

/* ─── typography ─── */
.heading-xl{
  font-family:var(--serif);
  font-size:clamp(42px, 6vw, 72px);
  font-weight:300;
  line-height:1.05;
  letter-spacing:-.01em;
  color:var(--fg);
}
.heading-lg{
  font-family:var(--serif);
  font-size:clamp(32px, 4.5vw, 54px);
  font-weight:300;
  line-height:1.1;
}
.heading-md{
  font-family:var(--serif);
  font-size:clamp(24px, 3vw, 36px);
  font-weight:400;
  line-height:1.2;
}
.kicker{
  font-family:var(--sans);
  font-size:11px;
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:16px;
}
.section-title{
  font-family:var(--sans);
  font-size:11px;
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--muted);
  text-align:center;
  margin-bottom:var(--space-xs);
}
.body-text{
  font-size:17px;
  line-height:1.75;
  color:rgba(240,236,228,.8);
  max-width:620px;
}
.body-text p{margin-bottom:1.2em}
.body-text p:last-child{margin-bottom:0}
.statement{
  font-family:var(--serif);
  font-size:clamp(24px, 3.5vw, 38px);
  font-weight:300;
  line-height:1.38;
  max-width:780px;
  margin:0 auto;
  text-align:center;
  color:var(--fg);
}
.statement em{font-style:italic; color:var(--accent)}

/* ─── manifesto ─── */
.manifesto{
  text-align:center;
  font-family:var(--serif);
  font-size:clamp(24px, 3.2vw, 34px);
  font-weight:300;
  line-height:1.8;
  color:var(--fg);
}
.manifesto .line{display:block}
.manifesto .muted{color:var(--muted)}

/* ─── project list ─── */
.projects{
  max-width:800px;
  margin:0 auto;
  display:flex;
  flex-direction:column;
}
.projects li{
  padding:clamp(28px, 3.5vw, 40px) 0;
  border-bottom:1px solid rgba(240,236,228,.06);
}
.projects li:first-child{border-top:1px solid rgba(240,236,228,.06)}
.project-title{
  font-family:var(--serif);
  font-size:clamp(28px, 3.8vw, 38px);
  font-weight:400;
  letter-spacing:.01em;
  color:var(--fg);
  display:block;
  margin-bottom:10px;
  transition:color .3s;
}
a.project-title:hover{color:var(--accent)}
.project-meta{
  display:block;
  color:var(--muted);
  font-size:14px;
  line-height:1.7;
  max-width:580px;
}
.projects-note{
  margin-top:var(--space-sm);
  text-align:center;
  color:var(--muted);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
}

/* ─── project list with thumbnails ─── */
.projects--visual li{
  display:grid;
  grid-template-columns:clamp(100px, 14vw, 160px) 1fr;
  gap:clamp(20px, 3vw, 32px);
  align-items:center;
}
.projects--visual li:has(.project-thumb){
  grid-template-columns:clamp(100px, 14vw, 160px) 1fr;
}
.projects--visual li:not(:has(.project-thumb)){
  grid-template-columns:1fr;
  padding-left:calc(clamp(100px, 14vw, 160px) + clamp(20px, 3vw, 32px));
}
.project-thumb{
  display:block;
  border-radius:var(--radius);
  overflow:hidden;
  aspect-ratio:16/9;
  transition:opacity .3s;
}
.project-thumb:hover{opacity:.85}
.project-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
@media(max-width:768px){
  .projects--visual li,
  .projects--visual li:not(:has(.project-thumb)){
    grid-template-columns:1fr;
    padding-left:0;
  }
  .project-thumb{
    max-width:200px;
    margin-bottom:8px;
  }
}

/* ─── fullbleed images ─── */
.fullbleed{
  width:100%;
  margin:var(--space-sm) 0;
  overflow:hidden;
}
.fullbleed img{width:100%; display:block}
.fullbleed--cinematic{margin:var(--space-md) 0}
.fullbleed--cinematic img{aspect-ratio:2.39/1; object-fit:cover}
.fullbleed--padded{padding:0 var(--gutter)}
.fullbleed--padded img{border-radius:var(--radius)}

/* ─── page headers ─── */
.pagehead{padding:clamp(140px, 18vh, 200px) 0 var(--space-sm)}
.pagehead .heading-xl{margin-top:14px}
.pagehead .status{
  color:var(--muted);
  font-size:16px;
  line-height:1.7;
  max-width:580px;
  margin-top:18px;
}

/* backward compat */
.h1{
  font-family:var(--serif);
  font-size:clamp(42px, 6vw, 72px);
  font-weight:300;
  line-height:1.05;
  letter-spacing:-.01em;
  margin:14px 0 10px;
}
.status{
  color:var(--muted);
  font-size:16px;
  line-height:1.7;
  max-width:580px;
}
.prose{
  font-size:17px;
  line-height:1.8;
  color:rgba(240,236,228,.85);
  max-width:620px;
}
.prose p{margin:0 0 18px}

/* ─── divider ─── */
.hr{height:1px; background:rgba(240,236,228,.06); margin:var(--space-sm) 0}

/* ─── project hero (backdrop + overlay title) ─── */
.project-hero{
  position:relative;
  width:100%;
  min-height:50vh;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
}
.project-hero img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.project-hero::after{
  content:'';
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(10,10,9,.2) 0%, transparent 30%),
    linear-gradient(180deg, transparent 40%, rgba(10,10,9,.85) 100%);
}
.project-hero-content{
  position:relative;
  z-index:2;
  padding:0 var(--gutter) clamp(36px, 6vh, 64px);
  max-width:var(--max);
  margin:0 auto;
  width:100%;
}

/* ─── poster + synopsis layout ─── */
.poster-layout{
  display:grid;
  grid-template-columns:240px 1fr;
  gap:clamp(32px, 4vw, 56px);
  align-items:start;
}
.poster-layout .poster{
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:0 8px 40px rgba(0,0,0,.4);
}
.poster-layout .poster img{
  width:100%;
  height:auto;
  display:block;
}
@media(max-width:768px){
  .poster-layout{
    grid-template-columns:1fr;
    gap:var(--space-xs);
  }
  .poster-layout .poster{
    max-width:200px;
    margin:0 auto;
  }
  .project-hero{min-height:40vh}
}

/* ─── gallery ─── */
.gallery{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(8px, 1.5vw, 14px);
}
.tile{
  border-radius:var(--radius);
  overflow:hidden;
  cursor:pointer;
  transition:transform .4s cubic-bezier(.25,.1,.25,1), opacity .3s;
}
.tile:hover{transform:scale(1.01); opacity:.92}
.tile.wide{grid-column:1/-1}
.tile img{width:100%; height:100%; object-fit:cover; display:block}
.caption{margin-top:14px; color:var(--muted); font-size:13px; letter-spacing:.02em}

/* ─── video embed ─── */
.video{
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid rgba(240,236,228,.06);
  background:rgba(240,236,228,.02);
  margin-top:var(--space-xs);
}
.video .placeholder{
  aspect-ratio:16/9;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--muted);
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.video video{
  width:100%;
  display:block;
  border-radius:var(--radius);
  background:#000;
}

/* ─── industry page ─── */
.industry-intro{padding:clamp(140px, 18vh, 200px) 0 var(--space-sm)}
.industry-intro h1{
  font-family:var(--serif);
  font-size:clamp(42px, 6vw, 64px);
  font-weight:300;
  margin-bottom:24px;
}
.industry-intro p{
  font-size:17px;
  line-height:1.8;
  color:var(--muted);
  max-width:560px;
}
.founders{padding:var(--space-md) 0}
.founders-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(24px, 5vw, 56px);
  max-width:760px;
  margin:0 auto;
}
.founder img{
  width:100%;
  aspect-ratio:3/4;
  object-fit:cover;
  object-position:center 15%;
  border-radius:var(--radius);
  margin-bottom:24px;
}
.founder-name{
  font-family:var(--sans);
  font-size:11px;
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--fg);
}
.founder-role{
  font-family:var(--serif);
  font-size:17px;
  font-weight:300;
  font-style:italic;
  color:var(--muted);
  margin-top:6px;
}
.industry-details{padding:var(--space-md) 0}
.industry-details .narrow{max-width:var(--narrow)}
.industry-details h2{
  font-family:var(--serif);
  font-size:clamp(24px, 3vw, 32px);
  font-weight:400;
  margin-bottom:20px;
  margin-top:var(--space-sm);
}
.industry-details h2:first-child{margin-top:0}
.industry-details .hr + h2{margin-top:0}
.industry-details p,.industry-details li{
  font-size:16px;
  line-height:1.8;
  color:rgba(240,236,228,.75);
  max-width:560px;
  margin-bottom:12px;
}
.industry-details ul{padding-left:1.2em; list-style:disc}
.industry-details li{list-style:disc; margin-bottom:10px}
.industry-note{font-size:14px; color:var(--muted); font-style:italic; margin-top:var(--space-xs)}

/* ─── contact page ─── */
.contact-intro{padding:clamp(140px, 18vh, 200px) 0 var(--space-xs)}
.contact-intro h1{
  font-family:var(--serif);
  font-size:clamp(42px, 6vw, 64px);
  font-weight:300;
  margin-bottom:20px;
}
.contact-intro p{
  font-size:17px;
  line-height:1.8;
  color:var(--muted);
  max-width:520px;
}
.contact-hero{padding:var(--space-xs) var(--gutter)}
.contact-hero-img{
  width:100%;
  border-radius:var(--radius);
  aspect-ratio:21/9;
  object-fit:cover;
}
.contact-details{padding:var(--space-md) 0}
.contact-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(24px, 4vw, 48px);
  max-width:760px;
}
.contact-label{
  font-size:11px;
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:12px;
}
.contact-link,.contact-text{
  font-family:var(--serif);
  font-size:clamp(18px, 2.2vw, 24px);
  font-weight:400;
  color:var(--fg);
  line-height:1.35;
}
.contact-link{transition:color .3s}
.contact-link:hover{color:var(--accent)}

/* ─── footer ─── */
.footer{
  padding:var(--space-sm) 0;
  border-top:1px solid rgba(240,236,228,.06);
  margin-top:var(--space-md);
}
.footer-grid{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  flex-wrap:wrap;
  color:var(--muted);
  font-size:12px;
}
.footer .smallnav{
  display:flex;
  gap:24px;
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.footer a{color:var(--muted); transition:color .3s}
.footer a:hover{color:var(--fg)}

/* ─── lightbox ─── */
.lightbox{
  position:fixed; inset:0;
  background:rgba(10,10,9,.95);
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
  z-index:100;
  cursor:pointer;
}
.lightbox.open{display:flex}
.lightbox img{
  max-width:min(1200px,94vw);
  max-height:88vh;
  border-radius:var(--radius);
}
.lightbox .hint{
  position:fixed;
  bottom:28px;
  left:0; right:0;
  text-align:center;
  color:var(--muted);
  font-size:11px;
  letter-spacing:.2em;
  text-transform:uppercase;
}

/* ─── back to top ─── */
.back-to-top-wrap{text-align:center; padding:0 0 var(--space-sm)}
.back-to-top{
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(168,161,150,.5);
  transition:color .3s;
}
.back-to-top:hover{color:var(--fg)}

/* ─── responsive ─── */
@media(max-width:768px){
  nav{gap:18px}
  nav a{font-size:10px; letter-spacing:.16em}
  nav a.lang{padding-left:18px; margin-left:0}
  .hero{min-height:500px}
  .brand-mark{height:48px}
  .scrolled .brand-mark{height:30px}
  .brand-text{font-size:11px; letter-spacing:.2em}
  .gallery{grid-template-columns:1fr}
  .tile.wide{grid-column:auto}
  .founders-grid{grid-template-columns:1fr; max-width:360px}
  .contact-grid{grid-template-columns:1fr}
  .fullbleed--cinematic img{aspect-ratio:16/9}
}
@media(max-width:480px){
  .site-header{padding:18px 0}
  .brand-text{display:none}
  nav{gap:12px}
}
