:root{
  --black:#1A1A1A;
  --red:#C8102E;
  --red-dark:#A50D26;
  --cream:#FAF7F2;
  --cream-2:#F1ECE3;
  --ink:#2B2722;
  --muted:#6B6359;
  --white:#ffffff;
  --maxw:1100px;
  --radius:14px;
  --shadow:0 6px 24px rgba(26,26,26,.08);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,Helvetica,sans-serif;
  color:var(--ink);
  background:var(--cream);
  line-height:1.65;
}
a{color:var(--red);text-decoration:none;}
a:hover{text-decoration:underline;}
img{max-width:100%;display:block;}
.container{max-width:var(--maxw);margin:0 auto;padding:0 22px;}

/* ---------- Header / nav ---------- */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(250,247,242,.94);
  backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--cream-2);
}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 22px;max-width:var(--maxw);margin:0 auto;}
.brand{display:flex;align-items:center;gap:12px;font-weight:800;color:var(--black);letter-spacing:.3px;}
.brand:hover{text-decoration:none;}
.brand img{width:46px;height:46px;border-radius:50%;}
.brand small{display:block;font-weight:600;color:var(--muted);font-size:.72rem;letter-spacing:1px;text-transform:uppercase;}
.nav-links{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.nav-links a{
  color:var(--black);font-weight:600;padding:8px 14px;border-radius:999px;font-size:.95rem;
}
.nav-links a:hover{background:var(--cream-2);text-decoration:none;}
.nav-links a.active{background:var(--black);color:var(--white);}
.nav-toggle{display:none;background:none;border:0;font-size:1.6rem;color:var(--black);cursor:pointer;line-height:1;}

/* ---------- Hero ---------- */
.hero{
  position:relative;overflow:hidden;
  background:
    radial-gradient(900px 500px at 85% -10%, rgba(200,16,46,.07), transparent 60%),
    linear-gradient(160deg, #FFFFFF 0%, var(--cream) 55%, var(--cream-2) 100%);
  border-bottom:1px solid var(--cream-2);
}
.hero-inner{display:grid;grid-template-columns:1fr 1.3fr;gap:40px;align-items:center;padding:74px 0;}
.eyebrow{display:inline-block;font-weight:700;letter-spacing:3px;text-transform:uppercase;font-size:.78rem;color:var(--red);margin-bottom:14px;}
.hero h1{font-size:clamp(2rem,3.5vw,3rem);line-height:1.1;margin:0 0 16px;color:var(--black);font-weight:800;letter-spacing:-.5px;text-wrap:balance;}
.hero p.lead{font-size:1.18rem;color:var(--ink);max-width:42ch;margin:0 0 26px;}
.hero-badge{justify-self:center;width:100%;}

/* hero video */
.hero-video{
  position:relative;width:100%;max-width:600px;margin:0 auto;
  aspect-ratio:16/9;border-radius:16px;overflow:hidden;
  box-shadow:0 14px 34px rgba(26,26,26,.17);
  background:var(--cream-2);
}
.hero-video video,.hero-video img{width:100%;height:100%;object-fit:cover;display:block;}

/* animated hero visual (kept for reference) */
.hero-visual{position:relative;width:340px;height:340px;display:flex;align-items:center;justify-content:center;margin:0 auto;}
.badge-float{width:250px;height:250px;position:relative;z-index:3;border-radius:50%;filter:drop-shadow(var(--shadow));animation:floaty 5s ease-in-out infinite;}
.pulse{position:absolute;top:50%;left:50%;width:250px;height:250px;margin:-125px 0 0 -125px;border-radius:50%;border:2px solid var(--red);opacity:0;z-index:1;animation:pulse 3.6s ease-out infinite;}
.pulse2{animation-delay:1.8s;}
.orbit{position:absolute;top:50%;left:50%;width:320px;height:320px;margin:-160px 0 0 -160px;z-index:4;animation:spin 24s linear infinite;}
.chip{position:absolute;width:52px;height:52px;border-radius:50%;background:#fff;border:2px solid var(--black);display:flex;align-items:center;justify-content:center;color:var(--red);box-shadow:0 4px 14px rgba(26,26,26,.16);animation:spin-rev 24s linear infinite;}
.chip svg{width:26px;height:26px;}
.chip1{left:134px;top:-16px;}
.chip2{left:264px;top:209px;}
.chip3{left:4px;top:209px;}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes pulse{0%{transform:scale(.82);opacity:.4}100%{transform:scale(1.45);opacity:0}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes spin-rev{to{transform:rotate(-360deg)}}
@media(prefers-reduced-motion:reduce){.badge-float,.pulse,.orbit,.chip{animation:none}.pulse{display:none}}

/* ---------- Buttons ---------- */
.btns{display:flex;gap:14px;flex-wrap:wrap;}
.btn{
  display:inline-block;padding:13px 26px;border-radius:999px;font-weight:700;font-size:1rem;
  border:2px solid var(--black);cursor:pointer;transition:transform .05s ease;
}
.btn:hover{text-decoration:none;transform:translateY(-1px);}
.btn-primary{background:var(--red);border-color:var(--red);color:var(--white);}
.btn-primary:hover{background:var(--red-dark);border-color:var(--red-dark);}
.btn-dark{background:var(--black);color:var(--white);}
.btn-ghost{background:transparent;color:var(--black);}
.btn-ghost:hover{background:var(--black);color:var(--white);}

/* ---------- Sections ---------- */
section{padding:64px 0;}
.section-head{max-width:680px;margin:0 auto 40px;text-align:center;}
.section-head .eyebrow{display:block;text-align:center;}
.section-head h2{font-size:2rem;color:var(--black);margin:0 0 10px;font-weight:800;}
.section-head p{color:var(--muted);font-size:1.08rem;margin:0;}
.alt{background:var(--white);border-top:1px solid var(--cream-2);border-bottom:1px solid var(--cream-2);}

h2,h3{letter-spacing:-.3px;}
.page-title{padding:56px 0 10px;}
.page-title .eyebrow{display:block;}
.page-title h1{font-size:2.6rem;color:var(--black);margin:6px 0 0;font-weight:800;}

/* ---------- Cards ---------- */
.grid{display:grid;gap:22px;}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
.card{
  background:var(--white);border:1px solid var(--cream-2);border-radius:var(--radius);
  padding:26px;box-shadow:var(--shadow);
}
.card .ic{
  width:50px;height:50px;border-radius:12px;background:var(--cream);
  display:flex;align-items:center;justify-content:center;margin-bottom:14px;color:var(--red);
  border:1px solid var(--cream-2);
}
.card .ic svg{width:26px;height:26px;}
.card h3{margin:.1rem 0 .4rem;font-size:1.2rem;color:var(--black);}
.card p{margin:0;color:var(--ink);font-size:.98rem;}

/* prose */
.prose{max-width:760px;margin:0 auto;}
.prose p{margin:0 0 18px;font-size:1.07rem;}
.prose h3{color:var(--black);margin:30px 0 10px;font-size:1.3rem;}
.prose ul{margin:0 0 18px;padding-left:22px;}
.prose li{margin:6px 0;}
.lead-quote{border-left:4px solid var(--red);padding:6px 0 6px 20px;color:var(--black);font-size:1.25rem;font-style:italic;margin:28px 0;}

/* fact strip */
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.fact{background:var(--white);border:1px solid var(--cream-2);border-radius:var(--radius);padding:22px;text-align:center;box-shadow:var(--shadow);}
.fact .n{font-size:1.5rem;font-weight:800;color:var(--red);}
.fact .l{font-size:.9rem;color:var(--muted);}

/* CTA band */
.cta-band{background:var(--black);color:var(--white);text-align:center;}
.cta-band h2{color:var(--white);font-size:2rem;margin:0 0 12px;}
.cta-band p{color:#D8D2C8;max-width:52ch;margin:0 auto 24px;font-size:1.1rem;}
.cta-band .btn-ghost{color:var(--white);border-color:var(--white);}
.cta-band .btn-ghost:hover{background:var(--white);color:var(--black);}

/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:start;}
.info-row{display:flex;gap:14px;align-items:flex-start;margin-bottom:18px;}
.info-row .ic{flex:0 0 42px;width:42px;height:42px;border-radius:10px;background:var(--cream-2);display:flex;align-items:center;justify-content:center;color:var(--red);}
.info-row .ic svg{width:22px;height:22px;}
.info-row b{color:var(--black);}
.ph{color:var(--red);font-weight:700;}
form label{display:block;font-weight:600;color:var(--black);margin:14px 0 6px;font-size:.95rem;}
form input,form textarea{width:100%;padding:12px 14px;border:1px solid var(--cream-2);border-radius:10px;font:inherit;background:var(--white);}
form textarea{min-height:130px;resize:vertical;}
.note{background:#FBEAEC;border:1px solid #F2C6cd;color:#7a1020;padding:12px 16px;border-radius:10px;font-size:.9rem;margin-bottom:18px;}

/* footer */
.site-footer{background:#161310;color:#CFC8BD;padding:46px 0 26px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:30px;}
.site-footer h4{color:var(--white);margin:0 0 12px;font-size:1rem;letter-spacing:.5px;}
.site-footer a{color:#CFC8BD;}
.site-footer a:hover{color:var(--white);}
.footer-brand{display:flex;gap:12px;align-items:center;margin-bottom:12px;}
.footer-brand img{width:54px;height:54px;border-radius:50%;}
.footer-brand b{color:var(--white);font-size:1.05rem;}
.foot-list{list-style:none;padding:0;margin:0;line-height:2;}
.legal{border-top:1px solid #2a2520;margin-top:30px;padding-top:18px;font-size:.82rem;color:#9a9286;text-align:center;}

/* team / directors */
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.member{background:var(--white);border:1px solid var(--cream-2);border-radius:var(--radius);padding:24px 20px;text-align:center;box-shadow:var(--shadow);}
.avatar{width:104px;height:104px;border-radius:50%;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(160deg,var(--cream) 0%,var(--cream-2) 100%);border:2px solid var(--black);
  color:var(--red);font-weight:800;font-size:1.7rem;font-family:Georgia,serif;font-style:italic;overflow:hidden;}
.avatar img{width:100%;height:100%;object-fit:cover;object-position:center 15%;}
.member h3{margin:.2rem 0 .1rem;font-size:1.12rem;color:var(--black);}
.member .role{color:var(--red);font-weight:700;font-size:.85rem;letter-spacing:.4px;text-transform:uppercase;margin-bottom:8px;}
.member p{font-size:.92rem;color:var(--ink);margin:0;}
.stakeholder-note{background:var(--white);border:1px dashed var(--red);border-radius:var(--radius);padding:24px 26px;margin-top:26px;}
.stakeholder-note h3{margin:0 0 8px;color:var(--black);}
.stakeholder-note p{margin:0;color:var(--ink);}

/* gallery */
.subhead{font-size:1.3rem;color:var(--black);font-weight:800;margin:34px 0 16px;display:flex;align-items:center;gap:10px;}
.subhead::before{content:"";width:22px;height:4px;background:var(--red);border-radius:2px;}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:22px 18px;}
.g-item{margin:0;}
.g-item figcaption{margin-top:10px;font-size:.92rem;line-height:1.45;color:var(--muted);text-align:center;}
.tile{position:relative;aspect-ratio:4/3;border-radius:var(--radius);overflow:hidden;border:1px solid var(--cream-2);
  background:linear-gradient(160deg,var(--cream) 0%,var(--cream-2) 100%);box-shadow:var(--shadow);
  display:flex;align-items:center;justify-content:center;text-align:center;}
.tile img,.tile video,.tile iframe{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:0;}
.tile .placeholder{padding:16px;color:var(--muted);font-size:.9rem;z-index:1;}
.tile .placeholder b{display:block;color:var(--black);margin-bottom:4px;}
.tile.video::after{content:"";position:absolute;z-index:2;width:56px;height:56px;border-radius:50%;background:rgba(200,16,46,.92);
  box-shadow:0 4px 16px rgba(0,0,0,.25);}
.tile.video::before{content:"";position:absolute;z-index:3;border-style:solid;border-width:11px 0 11px 18px;border-color:transparent transparent transparent #fff;margin-left:5px;}
.gallery-help{background:var(--white);border:1px dashed var(--muted);border-radius:var(--radius);padding:18px 22px;margin-top:22px;color:var(--ink);font-size:.92rem;}

/* responsive */
@media(max-width:860px){
  .hero-inner{grid-template-columns:1fr;text-align:center;padding:50px 0;}
  .hero h1{font-size:2.3rem;}
  .hero p.lead{margin-left:auto;margin-right:auto;}
  .btns{justify-content:center;}
  .hero-badge{order:-1;}
  .hero-visual{width:260px;height:260px;}
  .badge-float{width:180px;height:180px;}
  .pulse{width:180px;height:180px;margin:-90px 0 0 -90px;}
  .orbit{width:250px;height:250px;margin:-125px 0 0 -125px;}
  .chip{width:44px;height:44px;}
  .chip svg{width:22px;height:22px;}
  .chip1{left:103px;top:-14px;}
  .chip2{left:204px;top:164px;}
  .chip3{left:2px;top:164px;}
  .grid-3,.grid-4,.facts,.contact-grid,.footer-grid{grid-template-columns:1fr;}
  .team-grid{grid-template-columns:repeat(2,1fr);}
  .gallery{grid-template-columns:repeat(2,1fr);}
  .grid-2{grid-template-columns:1fr;}
  .nav-toggle{display:block;}
  .nav-links{display:none;width:100%;flex-direction:column;align-items:stretch;}
  .nav-links.show{display:flex;}
  .nav-links a{padding:12px 14px;}
  .nav{flex-wrap:wrap;}
}

/* phones: full-width tiles so photos and videos are properly visible */
@media(max-width:620px){
  .gallery{grid-template-columns:1fr;gap:26px;}
  .team-grid{grid-template-columns:1fr;}
  .g-item figcaption{font-size:.95rem;}
  section{padding:48px 0;}
}
