/* /public/assets/site.css */
/* ================================================= */
/* SIPA — PUBLIC SITE STYLES (MASTER)                 */
/* Videos: 2-column (YouTube + Podcast), matching UI */
/* ================================================= */

:root{
  --bg:#050608;
  --panel:#0b0f18;
  --line:rgba(242,242,242,.16);
  --text:#f2f2f2;
  --muted:rgba(242,242,242,.72);
  --red:#b10f1a;
  --red2:#d81e2b;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}

body{
  font-family:system-ui,-apple-system,Segoe UI,Inter,Arial,sans-serif;
  color:var(--text);
  background:
    radial-gradient(1200px 700px at 18% -10%, rgba(177,15,26,.18), transparent 60%),
    radial-gradient(900px 520px at 80% 10%, rgba(242,242,242,.06), transparent 62%),
    var(--bg);
}

/* ================================================= */
/* HEADER                                            */
/* ================================================= */
.siteTop{
  position:sticky;
  top:0;
  z-index:100;
  backdrop-filter:blur(10px);
  background:
    linear-gradient(135deg, rgba(177,15,26,.16), transparent 42%),
    rgba(5,6,8,.92);
  border-bottom:1px solid rgba(177,15,26,.35);
}
.siteTopInner{
  max-width:1100px;
  margin:0 auto;
  padding:14px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.brandRow{display:flex;align-items:center;gap:12px;min-width:0;}
.brandRow img{height:72px;width:auto;display:block;}
.brandText{min-width:0;}
.brandText .title{font-weight:900;letter-spacing:.18em;text-transform:uppercase;line-height:1;}
.brandText .sub{opacity:.78;letter-spacing:.12em;font-size:.85rem;margin-top:4px;}

.headerRight{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-shrink:0;}

/* desktop nav */
.siteNav{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end;}
.siteNav a{
  color:#ff3a3a; /* red header text */
  text-decoration:none;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(242,242,242,.12);
  background:rgba(0,0,0,.14);
  letter-spacing:.10em;
  text-transform:uppercase;
  font-size:.78rem;
  opacity:.92;
  white-space:nowrap;
}
.siteNav a:hover{
  border-color:rgba(177,15,26,.55);
  box-shadow:0 0 0 3px rgba(177,15,26,.12);
  color:#fff;
  opacity:1;
}

/* burger */
.burgerBtn{display:none;background:none;border:none;width:40px;height:34px;padding:0;cursor:pointer;}
.burgerBtn span{display:block;height:3px;margin:6px 0;background:#fff;border-radius:2px;}

/* Mobile overlay + drawer */
#navOverlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:110;}
#navOverlay.open{display:block}
#mobileNav{
  display:none;
  position:fixed;top:0;right:0;height:100%;
  width:min(86vw,360px);
  background:rgba(5,6,8,.98);
  border-left:1px solid rgba(177,15,26,.35);
  z-index:120;
  padding:16px;
  transform:translateX(110%);
  transition:transform .2s ease;
}
#mobileNav.open{display:block;transform:translateX(0);}
.mobileNavHead{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid rgba(242,242,242,.12);margin-bottom:12px;}
.mobileNavHead .label{font-weight:900;letter-spacing:.18em;text-transform:uppercase;}
.closeBtn{
  background:rgba(177,15,26,.12);
  border:1px solid rgba(177,15,26,.7);
  color:var(--text);
  border-radius:12px;
  padding:10px 12px;
  cursor:pointer;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.mobileLinks{display:flex;flex-direction:column;gap:10px;}
.mobileLinks a{
  display:block;width:100%;
  text-align:center;
  color:#ff3a3a; /* red */
  text-decoration:none;
  padding:12px 12px;
  border-radius:14px;
  border:1px solid rgba(242,242,242,.14);
  background:rgba(0,0,0,.18);
  letter-spacing:.10em;
  text-transform:uppercase;
  font-size:.85rem;
}
.mobileLinks a:hover{
  border-color:rgba(177,15,26,.55);
  box-shadow:0 0 0 3px rgba(177,15,26,.12);
  color:#fff;
}

/* responsive behavior */
@media (max-width:980px){
  .siteNav{display:none}
  .burgerBtn{display:block}
}
@media (max-width:620px){
  .siteTopInner{flex-direction:column;align-items:stretch;gap:10px;}
  .brandRow{justify-content:center;}
  .headerRight{justify-content:space-between;width:100%;}
}

html.nav-open, html.nav-open body{overflow:hidden}

/* ================================================= */
/* LAYOUT / CARDS                                    */
/* ================================================= */
.wrap{max-width:1100px;margin:0 auto;padding:18px;}
.card{
  background: linear-gradient(180deg, rgba(11,15,24,.92), rgba(11,15,24,.78));
  border:1px solid var(--line);
  border-left:3px solid rgba(177,15,26,.62);
  border-radius:18px;
  padding:16px;
  margin:18px 0;
}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.stack{display:flex;flex-direction:column;gap:10px;}
.msg{color:var(--muted);white-space:pre-wrap;}
.small{opacity:.8;font-size:.85rem;}
.line{height:1px;background:linear-gradient(90deg, rgba(177,15,26,.60), rgba(242,242,242,.14), transparent);}
.foot{padding:12px 0 22px;opacity:.9;}

/* ================================================= */
/* SECTION TITLES — RED ONLY + UNDERLINE             */
/* ================================================= */
.cardTitle{
  position:relative;
  padding-bottom:12px;
  margin-bottom:16px;

  font-size:1.5rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.22em;

  color:var(--red2);
  background:none !important;
  -webkit-text-fill-color:var(--red2) !important;
  text-shadow:none !important;
}
.cardTitle::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:100%;
  height:2px;
  background:linear-gradient(90deg, rgba(216,30,43,1), rgba(177,15,26,.6), transparent);
}
@media (max-width:520px){
  .cardTitle{
    font-size:1.2rem;
    letter-spacing:.16em;
  }
}

.subTitle{
  margin-top:16px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
  opacity:.9;
}

/* Panel title inside Videos */
.panelTitle{
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.18em;
  margin:4px 0 10px;
  color:#fff;
  opacity:.92;
}

/* ================================================= */
/* INPUTS                                            */
/* ================================================= */
.input, textarea{
  background:rgba(0,0,0,.26);
  border:1px solid rgba(242,242,242,.16);
  color:var(--text);
  padding:12px;
  border-radius:12px;
}
textarea.area{min-height:140px;resize:vertical;}

/* ================================================= */
/* BUTTONS                                           */
/* ================================================= */
.btn{
  background:linear-gradient(135deg, rgba(216,30,43,.95), rgba(177,15,26,.95));
  border:1px solid rgba(216,30,43,.95);
  color:#fff;
  padding:12px 16px;
  border-radius:12px;
  cursor:pointer;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.btn:hover{filter:brightness(1.08);box-shadow:0 0 0 3px rgba(177,15,26,.25);}

.btnGhost{
  display:inline-block;
  background:rgba(0,0,0,.20);
  border:1px solid rgba(177,15,26,.65);
  color:#fff;
  padding:12px 16px;
  border-radius:12px;
  text-decoration:none;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.btnGhost:hover{background:rgba(177,15,26,.14);box-shadow:0 0 0 3px rgba(177,15,26,.18);}

.btnRed{
  display:inline-block;
  background:linear-gradient(135deg, rgba(216,30,43,.95), rgba(177,15,26,.95));
  border:1px solid rgba(216,30,43,.95);
  color:#fff;
  padding:12px 16px;
  border-radius:12px;
  text-decoration:none;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.btnRed:hover{filter:brightness(1.10);box-shadow:0 0 0 4px rgba(177,15,26,.28);}

/* Smaller buttons for panels */
.btnSm{padding:10px 12px;border-radius:12px;font-size:.72rem;letter-spacing:.12em;}

/* Contact send bar */
#contactForm .btn{width:100%;display:block;padding:14px 16px;}

/* ================================================= */
/* VIDEOS — TWO MATCHING PANELS                      */
/* ================================================= */
.videoCols{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  align-items:start;
}
@media (max-width:980px){
  .videoCols{grid-template-columns:1fr;}
}
.videoPanel{
  border:1px solid rgba(242,242,242,.10);
  background:rgba(0,0,0,.10);
  border-radius:16px;
  padding:12px;
}

.videoShell{
  width:100%;
  border-radius:14px;
  overflow:hidden;
  border:1px solid rgba(242,242,242,.14);
  background:#000;
  aspect-ratio:16/9;
  max-height:520px;
}
.videoFrame, .videoFrame iframe{width:100%;height:100%;display:block;border:0;}

.videoMetaTop{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.videoActions{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-shrink:0;}

/* YouTube + Podcast main titles: IDENTICAL look */
#videoTitle, #podcastTitle, .videoTitle{
  flex:1;
  min-width:0;
  text-align:left;
  margin:0;

  font-family:system-ui,-apple-system,Segoe UI,Inter,Arial,sans-serif;
  font-size:1.05rem;
  font-weight:800;
  line-height:1.25;
  letter-spacing:.06em;

  color:#fff;
  background:none !important;
  -webkit-text-fill-color:#fff !important;
  text-shadow:none !important;
  text-transform:none !important;
}

/* clamp to 2 lines max */
#videoTitle, #podcastTitle{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.videoDate{margin-top:6px;opacity:.85;}
.videoDesc{margin-top:10px;line-height:1.6;white-space:pre-wrap;}

@media (max-width:620px){
  .videoMetaTop{flex-direction:column;align-items:flex-start;gap:10px;}
  .videoActions{width:100%;justify-content:flex-start;flex-wrap:wrap;}
}

/* Previous grids: smaller thumbs */
.grid{display:grid;gap:12px;}
.gridTiny{grid-template-columns:repeat(2, minmax(0,1fr));}
@media (max-width:520px){ .gridTiny{grid-template-columns:repeat(2, minmax(0,1fr));} }

.videoCard{
  display:block;
  text-decoration:none;
  color:var(--text);
  border:1px solid rgba(242,242,242,.14);
  background:rgba(0,0,0,.18);
  border-radius:14px;
  overflow:hidden;
  padding:8px;
}
.videoCard:hover{border-color:rgba(177,15,26,.55);box-shadow:0 0 0 3px rgba(177,15,26,.12);}
.videoCard .thumb{
  width:100%;
  display:block;
  aspect-ratio:16/9;
  object-fit:cover;
  border-radius:10px;
}
.vTitle{margin-top:6px;font-weight:800;font-size:.85rem;line-height:1.2;}
.vDate{margin-top:3px;font-size:.78rem;opacity:.8;}

/* ================================================= */
/* PHOTOS — SIDE BY SIDE CAROUSEL                    */
/* ================================================= */
#photos .carousel{position:relative;}
#photos .carStage{
  overflow:hidden;
  border-radius:16px;
  padding:0 56px;
}
#photos .carTrack{
  display:flex;
  gap:14px;
  transition:transform .4s ease;
  will-change:transform;
}
#photos .carItem{
  flex:0 0 32%;
  border-radius:14px;
  border:1px solid rgba(242,242,242,.14);
  background:rgba(0,0,0,.18);
  overflow:hidden;
  cursor:pointer;
  display:flex;
  flex-direction:column;
}
@media (max-width:980px){ #photos .carItem{flex:0 0 48%;} }
@media (max-width:520px){
  #photos .carStage{padding:0 50px;}
  #photos .carItem{flex:0 0 80%;}
}

/* make photos match Team aspect */
#photos .carMedia{
  width:100%;
  aspect-ratio:4 / 5;
  overflow:hidden;
  background:#000;
  border-radius:12px;
}
#photos .carItem img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:50% 20%;
  background:#000;
  transition:transform .25s ease;
}
#photos .carItem:hover img{transform:scale(1.04);}

#photos .carCap{
  padding:8px 10px;
  font-size:.8rem;
  color:var(--muted);
  text-align:center;
}

.photoHint{
  margin-top:4px;
  font-size:.68rem;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:rgba(242,242,242,.65);
}
@media (max-width:520px){ .photoHint{display:none;} }

/* arrows */
#photos .carBtn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:5;
  width:46px;
  height:46px;
  border-radius:14px;
  border:1px solid rgba(216,30,43,.75);
  background:rgba(0,0,0,.35);
  color:#fff;
  cursor:pointer;
  font-size:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 0 0 3px rgba(177,15,26,.14);
}
#photos .carBtn:hover{
  background:rgba(177,15,26,.18);
  border-color:rgba(216,30,43,.95);
  box-shadow:0 0 0 4px rgba(177,15,26,.22);
}
#photos #carPrev{left:10px;}
#photos #carNext{right:10px;}
@media (max-width:520px){
  #photos .carBtn{width:42px;height:42px;font-size:26px;border-radius:13px;}
  #photos #carPrev{left:8px;}
  #photos #carNext{right:8px;}
}

/* Photo modal */
#photoModal{ position:fixed; inset:0; z-index:9999; display:none; }
#photoModal.open{ display:block; }
#photoModal .photoOverlay{ position:absolute; inset:0; background:rgba(0,0,0,.70); }
#photoModal .photoCard{
  position:relative;
  max-width:980px;
  margin:6vh auto;
  width:calc(100% - 22px);
  background:rgba(11,15,24,.97);
  border:1px solid rgba(242,242,242,.14);
  border-left:3px solid rgba(216,30,43,.7);
  border-radius:18px;
  padding:14px;
  max-height:86vh;
  overflow:auto;
}
#photoModal .photoHead{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding-bottom:10px;
  border-bottom:1px solid rgba(242,242,242,.12);
  margin-bottom:10px;
}
#photoModal .photoTitle{
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  margin:0;
}
#photoModal .photoClose{
  background:rgba(216,30,43,.12);
  border:1px solid rgba(216,30,43,.7);
  color:#fff;
  border-radius:12px;
  padding:10px 12px;
  cursor:pointer;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
#photoModal .photoImg{
  width:100%;
  height:auto;
  max-height:68vh;
  object-fit:contain;
  background:#000;
  border-radius:16px;
  border:1px solid rgba(242,242,242,.14);
  display:block;
}
#photoModal .photoCap{
  margin-top:10px;
  color:rgba(242,242,242,.72);
  white-space:pre-wrap;
  line-height:1.6;
}

/* ================================================= */
/* LISTS / EVENTS / NEWSLETTER                       */
/* ================================================= */
.list .listRow, .listRow{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:12px;
  border:1px solid rgba(242,242,242,.12);
  border-radius:14px;
  background:rgba(0,0,0,.14);
  margin-top:10px;
}
.listLeft{flex:1;min-width:0;}
.listTitle{font-weight:900;letter-spacing:.08em;}

#newsletterLatest .nlBody,
#newsletterArchive .nlArchiveBody{
  line-height:1.7;
  word-break:break-word;
}
#newsletterLatest .nlBody a,
#newsletterArchive .nlArchiveBody a{
  color:#fff;
  text-decoration:underline;
  text-decoration-color:rgba(216,30,43,.85);
}
.nlArchiveBody{
  border:1px solid rgba(242,242,242,.12);
  border-radius:14px;
  background:rgba(0,0,0,.14);
  padding:12px;
  margin-top:10px;
}
.nlArchRow{cursor:pointer;}
.nlArchRow:hover{border-color:rgba(177,15,26,.55);box-shadow:0 0 0 3px rgba(177,15,26,.12);}

/* ================================================= */
/* EVENTS: make ALL posters the same size             */
/* ================================================= */
.eventPoster{
  width:220px;
  height:300px;
  border-radius:14px;
  overflow:hidden;
  border:1px solid rgba(242,242,242,.14);
  background:rgba(0,0,0,.18);
  flex:0 0 auto;
}
.eventPoster img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
}
@media (max-width:520px){
  .eventPoster{width:170px;height:240px;}
}

/* ================================================= */
/* MEET THE TEAM CAROUSEL + MODAL                    */
/* ================================================= */
.teamCarousel{
  position:relative;
  display:flex;
  align-items:center;
  gap:10px;
}

.teamStage{
  position:relative;
  flex:1;
  overflow:hidden;
  border-radius:16px;
  border:1px solid rgba(242,242,242,.14);
  background:rgba(0,0,0,.18);
  padding:12px 56px; /* room for arrows */
}

.teamTrack{
  display:flex;
  gap:14px;
  transition:transform .35s ease;
  will-change:transform;
}

.teamCard{
  flex:0 0 calc((100% - 28px) / 3);
  border-radius:14px;
  border:1px solid rgba(242,242,242,.14);
  background:rgba(0,0,0,.16);
  overflow:hidden;
  cursor:pointer;
  text-decoration:none;
  color:var(--text);
}
.teamCard:hover{
  border-color:rgba(177,15,26,.55);
  box-shadow:0 0 0 3px rgba(177,15,26,.12);
}

.teamMedia{
  width:100%;
  aspect-ratio:4/5;
  overflow:hidden;
  background:#000;
}

.teamPhoto{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:50% 20%;
  background:#000;
  transition:transform .25s ease;
}
.teamCard:hover .teamPhoto{transform:scale(1.04);}

.teamCap{
  padding:10px 12px;
  text-align:center;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:.82rem;
  color:#fff;
}

.teamHint{
  margin-top:4px;
  font-size:.68rem;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:rgba(242,242,242,.65);
}
@media (max-width:520px){ .teamHint{display:none;} }

/* 2-up tablet */
@media (max-width:980px){
  .teamCard{ flex-basis: calc((100% - 14px) / 2); }
}
/* 1-up mobile */
@media (max-width:520px){
  .teamStage{padding:12px 50px;}
  .teamCard{ flex-basis: 100%; }
  .teamCarousel{ align-items:stretch; }
}

/* Team arrows: match Photos arrows */
.teamCarousel .teamBtn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:5;
  width:46px;
  height:46px;
  border-radius:14px;
  border:1px solid rgba(216,30,43,.75);
  background:rgba(0,0,0,.35);
  color:#fff;
  cursor:pointer;
  font-size:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 0 0 3px rgba(177,15,26,.14);
}
.teamCarousel .teamBtn:hover{
  background:rgba(177,15,26,.18);
  border-color:rgba(216,30,43,.95);
  box-shadow:0 0 0 4px rgba(177,15,26,.22);
}
.teamCarousel #teamPrev{left:10px;}
.teamCarousel #teamNext{right:10px;}
@media (max-width:520px){
  .teamCarousel .teamBtn{width:42px;height:42px;font-size:26px;border-radius:13px;}
  .teamCarousel #teamPrev{left:8px;}
  .teamCarousel #teamNext{right:8px;}
}

/* Team bio modal */
#teamModal{ position:fixed; inset:0; z-index:9999; display:none; }
#teamModal.open{ display:block; }
#teamModal .teamOverlay{ position:absolute; inset:0; background:rgba(0,0,0,.65); }
#teamModal .teamCardModal{
  position:relative;
  max-width:920px;
  margin:6vh auto;
  width:calc(100% - 22px);
  background:rgba(11,15,24,.97);
  border:1px solid rgba(242,242,242,.14);
  border-left:3px solid rgba(216,30,43,.7);
  border-radius:18px;
  padding:14px;
  max-height:86vh;
  overflow:auto;
}
#teamModal .teamHead{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding-bottom:10px;
  border-bottom:1px solid rgba(242,242,242,.12);
  margin-bottom:10px;
}
#teamModal .teamName{
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  margin:0;
}
#teamModal .teamClose{
  background:rgba(216,30,43,.12);
  border:1px solid rgba(216,30,43,.7);
  color:#fff;
  border-radius:12px;
  padding:10px 12px;
  cursor:pointer;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
#teamModal .teamBody{
  display:grid;
  grid-template-columns:260px 1fr;
  gap:14px;
}
#teamModal .teamBody img{
  width:100%;
  height:auto;
  max-height:360px;
  object-fit:cover;
  object-position:50% 15%;
  border-radius:16px;
  border:1px solid rgba(242,242,242,.14);
  background:#000;
}
#teamModal .teamBio{
  line-height:1.7;
  color:var(--text);
  white-space:pre-wrap;
  word-break:break-word;
}
@media (max-width:720px){
  #teamModal .teamBody{ grid-template-columns:1fr; }
}
