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

:root{
  --paper:#FDFBF5;
  --paper-dark:#F5F0E2;
  --ink:#20222A;
  --ink-soft:#4B4E5A;
  --line:#E7DFC8;
  --teal:#0E8A82; --teal-dark:#0A6961;
  --coral:#FF6A52; --coral-dark:#E14E36;
  --purple:#7C5CC4; --purple-dark:#5F429E;
  --gold:#F0AC2E; --gold-dark:#C6860F;
  --blue:#1B3F8B;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Archivo', sans-serif;
  font-size:19px;
  line-height:1.7;
}
a{color:inherit;}

/* ---------- top nav ---------- */
header.site-nav{
  position:sticky; top:0; z-index:20;
  display:flex; align-items:center; justify-content:space-between;
  padding:1rem 2.4rem;
  background:rgba(253,251,245,.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
header.site-nav .brand{
  display:flex; align-items:center; gap:.6rem;
  text-decoration:none;
}
header.site-nav .brand img{height:36px; width:36px;}
header.site-nav .brand-text{
  font-family:'Archivo', sans-serif;
  font-weight:700; font-size:1.15rem; color:var(--ink);
  line-height:1.1;
}
header.site-nav .brand-text em{color:var(--coral); font-style:italic;}
nav.links{display:flex; gap:1.8rem;}
nav.links a{
  text-decoration:none; color:var(--ink-soft);
  font-family:'Archivo', sans-serif; font-weight:600; font-size:1.02rem;
  padding:.3rem 0; border-bottom:2px solid transparent;
}
nav.links a:hover, nav.links a.active{color:var(--ink); border-bottom-color:var(--coral);}

main{max-width:980px; margin:0 auto; padding:0 2.4rem 6rem;}

/* ---------- hero ---------- */
.hero{
  position:relative;
  padding:5rem 0 3rem;
  overflow:visible;
  isolation:isolate;
}
.hero svg.rings-bg{
  position:absolute;
  left:50%; top:50%;
  width:640px; height:640px;
  transform:translate(-50%,-50%);
  opacity:.16;
  z-index:0;
  pointer-events:none;
}
.hero-inner{position:relative; z-index:1; max-width:640px;}
.eyebrow{
  font-size:.82rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--teal-dark); font-weight:600; margin:0 0 .8rem;
}
h1.hero-title{
  font-family:'Archivo', sans-serif; font-weight:700;
  font-size:3.6rem; line-height:1; color:var(--ink); margin:0 0 .8rem;
}
h1.hero-title em{color:var(--coral); font-style:italic;}
p.hero-sub{
  font-size:1.2rem; color:var(--ink-soft); font-style:italic; margin:0 0 1.8rem;
}
.cta-row{display:flex; gap:1rem; flex-wrap:wrap;}
.btn{
  display:inline-block; text-decoration:none;
  font-family:'Archivo', sans-serif; font-weight:700; font-size:1.05rem;
  padding:.7rem 1.5rem; border-radius:30px;
}
.btn.primary{background:var(--teal); color:#fff;}
.btn.primary:hover{background:var(--teal-dark);}
.btn.ghost{border:1.5px solid var(--ink); color:var(--ink);}
.btn.ghost:hover{background:var(--paper-dark);}

/* ---------- generic page header ---------- */
.page-header{padding:3.2rem 0 1rem; max-width:680px;}
.page-header .eyebrow{margin-bottom:.6rem;}
h1.page-title{
  font-family:'Archivo', sans-serif; font-weight:700;
  font-size:2.8rem; line-height:1.05; color:var(--ink); margin:0 0 .6rem;
}
p.page-dek{font-style:italic; color:var(--ink-soft); font-size:1.1rem; margin:0;}

h2{
  font-family:'Archivo', sans-serif; font-weight:700; font-size:1.7rem;
  color:var(--ink); margin:2.6rem 0 1rem; padding-bottom:.3rem;
  border-bottom:3px solid var(--teal); display:inline-block;
}
h3{font-family:'Archivo',sans-serif; font-weight:600; font-style:italic; font-size:1.15rem; margin:1.6rem 0 .5rem;}
p{margin:0 0 1.1rem; max-width:680px;}
ul{margin:0 0 1.2rem; padding-left:1.3rem; max-width:680px;}
li{margin-bottom:.4rem;}
li::marker{color:var(--teal);}

blockquote{
  position:relative; margin:2.2rem 0; padding:.4rem 0 .4rem 2.4rem;
  font-family:'Archivo', sans-serif; font-style:italic; font-weight:600;
  font-size:1.35rem; color:var(--ink); max-width:640px;
}
blockquote::before{
  content:'\201C'; position:absolute; left:-.15rem; top:-.3rem;
  font-family:'Archivo', sans-serif; font-size:3.4rem; color:var(--coral); opacity:.5;
}

.box{
  background:var(--paper-dark); border-radius:10px; padding:1.2rem 1.4rem;
  margin:1.8rem 0; border-left:5px solid var(--teal); max-width:680px;
}
.box .box-label{
  font-size:.72rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink); font-weight:700; margin-bottom:.5rem; display:block;
}
.box.deadline{border-left-color:var(--coral);}

/* ---------- lab cards ---------- */
.lab-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; margin:2rem 0 3rem;
}
.lab-card{
  display:block; text-decoration:none; color:inherit;
  background:#fff; border:1px solid var(--line); border-radius:12px;
  padding:1.6rem 1.5rem; border-top:5px solid var(--c-accent, var(--teal));
  transition:transform .15s ease, box-shadow .15s ease;
}
.lab-card:hover{transform:translateY(-3px); box-shadow:0 8px 20px rgba(30,25,10,.08);}
.lab-card .lab-eyebrow{
  font-size:.72rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--c-accent, var(--teal)); font-weight:700; margin-bottom:.5rem;
}
.lab-card h3{
  font-family:'Archivo', sans-serif; font-weight:700; font-style:normal;
  font-size:1.4rem; margin:0 0 .5rem; color:var(--ink);
}
.lab-card p{font-size:.92rem; color:var(--ink-soft); margin:0;}
.lab-card.disabled{opacity:.55; cursor:default;}
.lab-card .soon{
  display:inline-block; margin-top:.8rem; font-size:.72rem; letter-spacing:.1em;
  text-transform:uppercase; background:var(--paper-dark); padding:.25rem .6rem; border-radius:20px;
  color:var(--ink-soft);
}
.lab-card .lab-access{
  display:block; margin-top:1rem; font-size:.7rem; font-weight:700;
  letter-spacing:.08em; text-transform:uppercase; color:var(--ink);
  border-top:2px solid var(--ink); padding-top:.6rem;
}

/* ---------- timeline (calendario) ---------- */
.timeline{margin:2rem 0 3rem; max-width:720px;}
.tl-item{
  display:grid; grid-template-columns:150px 1fr; gap:1.4rem;
  padding:1.2rem 0; border-bottom:1px solid var(--line);
}
.tl-item:last-child{border-bottom:none;}
.tl-date{
  font-family:'Archivo', sans-serif; font-weight:700; color:var(--c-accent, var(--teal));
  font-size:1.05rem;
}
.tl-body h3{margin:0 0 .35rem;}
.tl-body p{margin:0; font-size:.95rem;}

/* ---------- footer ---------- */
footer.site-footer{
  border-top:1px solid var(--line); padding:2.4rem; text-align:center;
  color:var(--ink-soft); font-size:.85rem;
}

@media (max-width:820px){
  header.site-nav{padding:1rem 1.2rem; flex-wrap:wrap; gap:.8rem;}
  nav.links{gap:1.1rem; font-size:.92rem;}
  main{padding:0 1.2rem 4rem;}
  .hero svg.rings-bg{width:380px; height:380px;}
  h1.hero-title{font-size:2.3rem;}
  .lab-grid{grid-template-columns:1fr;}
  .tl-item{grid-template-columns:1fr; gap:.3rem;}
}

/* ================= EDITORIAL HOMEPAGE (v3 — gamberra) ================= */
.ui-sans{font-family:-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif;}

header.site-nav-v2{
  position:sticky; top:0; z-index:30;
  display:flex; align-items:center; justify-content:space-between;
  padding:1rem 2.4rem;
  background:var(--ink);
  border-bottom:3px solid var(--ink);
}
header.site-nav-v2 .brand{display:flex; align-items:center; text-decoration:none;}
header.site-nav-v2 .brand-logo{height:44px; width:auto; display:block;}
nav.links-v2{display:flex; gap:1.6rem;}
nav.links-v2 a{
  text-decoration:none; color:#fff;
  font-family:'Archivo Black','Helvetica Neue',Arial,sans-serif;
  font-weight:400; font-size:.68rem; letter-spacing:.06em; text-transform:uppercase;
  padding:.3rem .1rem; border-bottom:3px solid transparent;
}
nav.links-v2 a:hover, nav.links-v2 a.active{border-bottom-color:var(--coral);}

/* full-bleed hero block */
.hero-block{
  background:var(--ink);
  color:#fff;
  padding:4.5rem 2.4rem 0;
  position:relative;
  overflow:hidden;
}
.hero-block::before, .hero-block::after{content:none;}
.hero-block-inner{position:relative; z-index:1; max-width:900px;}
.hero-block .eyebrow-v2{
  font-family:'Archivo Black',sans-serif;
  font-weight:400; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--gold); margin:0 0 1.4rem;
}
.hero-block h1{
  font-family:'Archivo Black',Arial,sans-serif; font-weight:400;
  font-size:5.6rem; line-height:.86; letter-spacing:-.01em;
  margin:0 0 1.6rem; color:#fff; text-transform:uppercase;
}
.hero-block h1 em{
  font-family:'Archivo', sans-serif; font-weight:700; font-style:italic;
  color:var(--ink); background:var(--coral);
  font-size:.62em; line-height:1.1; text-transform:none;
  padding:.05em .25em; margin-top:.12em; display:inline-block;
  transform:rotate(-2deg);
}
.hero-block p.lead{
  font-size:1.15rem; line-height:1.55; color:#D8D8DC; max-width:480px; margin:0 0 2rem;
}
.hero-block a.text-link{
  display:inline-block;
  font-family:'Archivo Black',sans-serif;
  font-weight:400; font-size:.85rem; letter-spacing:.02em; text-transform:uppercase;
  color:var(--ink); background:#fff; text-decoration:none;
  padding:.85rem 1.5rem; margin-bottom:3.2rem;
}
.hero-block a.text-link:hover{background:var(--gold);}

/* marquee ticker */
.ticker{
  background:var(--coral); color:var(--ink); overflow:hidden;
  border-top:3px solid var(--ink); border-bottom:3px solid var(--ink);
  white-space:nowrap;
}
.ticker-track{
  display:inline-block; padding:.65rem 0;
  animation:ticker-scroll 22s linear infinite;
  font-family:'Archivo Black',sans-serif; font-weight:400; font-size:.85rem;
  letter-spacing:.05em; text-transform:uppercase;
}
.ticker-track span{display:inline-flex; align-items:center;}
@keyframes ticker-scroll{
  0%{transform:translateX(0);}
  100%{transform:translateX(-50%);}
}

/* section title bar */
.section-bar{
  display:flex; align-items:baseline; justify-content:space-between;
  padding:3rem 2.4rem 1rem; max-width:1180px; margin:0 auto;
  border-bottom:3px solid var(--ink);
}
.section-bar h2{
  font-family:'Archivo Black',sans-serif; font-weight:400; font-size:1.9rem; margin:0; color:var(--ink);
  text-transform:uppercase;
}
.section-bar a{
  font-family:'Archivo Black',sans-serif;
  font-size:.7rem; font-weight:400; letter-spacing:.06em; text-transform:uppercase;
  color:var(--ink); text-decoration:none; border-bottom:2px solid var(--ink);
}

/* program grid: 1 featured + 3 regular */
.program-grid{
  max-width:1180px; margin:0 auto; padding:0 2.4rem 3rem;
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; padding-top:1.4rem;
}
.program-card{
  display:block; text-decoration:none; color:inherit;
  border:3px solid var(--ink);
  padding:1.7rem 1.5rem;
  position:relative;
  transition:background .12s ease, color .12s ease;
}
.program-card:hover{background:var(--ink); color:#fff;}
.program-card:hover .tag{background:#fff; color:var(--ink);}
.program-card:hover .meta{color:#cfcfd4;}
.program-card .tag{
  display:inline-block; font-family:'Archivo Black',sans-serif;
  font-size:.66rem; font-weight:400; letter-spacing:.08em; text-transform:uppercase;
  color:#fff; background:var(--c-accent, var(--teal)); padding:.3rem .6rem;
  margin-bottom:1rem; transform:rotate(-2deg);
}
.program-card h3{
  font-family:'Archivo', sans-serif; font-weight:700; font-style:italic; font-size:1.6rem; margin:0 0 .5rem;
}
.program-card p{font-size:.9rem; margin:0 0 .8rem; max-width:none; line-height:1.5;}
.program-card .meta{
  font-family:'Archivo Black',sans-serif;
  font-size:.66rem; font-weight:400; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-soft);
}
.program-card.featured{
  grid-column:span 3;
  display:grid; grid-template-columns:1fr auto; align-items:center; gap:2rem;
  background:var(--gold);
  border:3px solid var(--ink);
  padding:2.2rem 2rem;
}
.program-card.featured:hover{background:var(--ink);}
.program-card.featured h3{font-size:2.2rem;}
.program-card.featured .cta-arrow{
  font-family:'Archivo Black',sans-serif;
  font-weight:400; font-size:.78rem; white-space:nowrap; text-transform:uppercase;
  border:3px solid var(--ink); background:#fff; padding:.7rem 1.4rem;
}

/* about teaser strip */
.about-strip{
  max-width:1180px; margin:0 auto; padding:3.5rem 2.4rem 5rem;
  display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start;
  border-top:3px solid var(--ink);
}
.about-strip blockquote{
  font-family:'Archivo', sans-serif; font-style:italic; font-weight:600;
  font-size:1.7rem; color:var(--ink); margin:0; line-height:1.3;
}
.about-strip .about-text p{font-size:.98rem; color:var(--ink-soft);}
.about-strip .about-text a{
  font-family:'Archivo Black',sans-serif;
  font-size:.75rem; font-weight:400; letter-spacing:.05em; text-transform:uppercase;
  color:var(--ink); text-decoration:none; border-bottom:2px solid var(--ink);
}

@media (max-width:900px){
  .program-grid{grid-template-columns:1fr;}
  .program-card.featured{grid-column:span 1; grid-template-columns:1fr; text-align:left;}
  .about-strip{grid-template-columns:1fr; gap:1.5rem;}
  .hero-block h1{font-size:3rem;}
  nav.links-v2{gap:.8rem; flex-wrap:wrap;}
}
