/* ============================================================
   TSG Talent Roster — component styles
   Loaded alongside assets/css/og.css (shares its :root tokens,
   .container/.btn/.reveal/header/footer/.og-form* atoms). This
   file only adds roster-specific components: card grid, profile
   hero, portfolio tiles, client strip, service tags.

   Accent: uses the MAIN SITE'S --burgundy-light rather than
   --og-red-light, so the public Roster reads as part of the main
   brand — OG Castings keeps its own red as a distinct sub-brand.
   ============================================================ */

.roster-eyebrow{font-family:var(--sans);font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--burgundy-light);font-weight:500;margin-bottom:22px;display:flex;align-items:center;gap:14px;}
.roster-eyebrow::before{content:"";width:34px;height:1px;background:var(--burgundy-light);}

/* ---------- placeholder tiles (until real photos/video land) ---------- */
.roster-ph{position:relative;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--charcoal),var(--graphite));color:rgba(242,240,236,.3);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;text-align:center;}
.roster-ph::before{content:"";position:absolute;inset:0;border:1px dashed rgba(242,240,236,.12);}
.roster-ph span{position:relative;z-index:1;padding:0 14px;}
.roster-ph.is-video::after{content:"";position:relative;width:0;height:0;border-style:solid;border-width:8px 0 8px 13px;border-color:transparent transparent transparent rgba(242,240,236,.35);margin-left:8px;}

/* ---------- roster grid (roster/index.html) ---------- */
.roster-grid-section{padding:190px 0 120px;}
.roster-grid-head{max-width:640px;margin:0 auto 56px;text-align:center;}
.roster-grid-head h1{font-family:var(--serif);font-size:clamp(32px,4.4vw,46px);font-weight:600;margin-bottom:16px;}
.roster-grid-head p{color:var(--silver);font-size:14.5px;line-height:1.8;}
.roster-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.roster-card{background:var(--rich-black);border:1px solid rgba(242,240,236,.1);display:flex;flex-direction:column;overflow:hidden;transition:border-color .35s var(--ease),transform .35s var(--ease);}
.roster-card:hover{border-color:rgba(153,31,43,.5);transform:translateY(-3px);}
.roster-card-visual{aspect-ratio:4/5;}
.roster-card-body{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1;}
.roster-card h3{font-family:var(--serif);font-size:19px;font-weight:600;margin-bottom:6px;}
.roster-card-tagline{font-size:12px;color:var(--silver);line-height:1.6;margin-bottom:16px;}
.roster-card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:14px;border-top:1px solid rgba(242,240,236,.08);}
.roster-tag{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--silver);border:1px solid rgba(242,240,236,.16);padding:5px 10px;}
.roster-card-foot{margin-top:16px;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;color:var(--burgundy-light);display:flex;align-items:center;gap:8px;}

/* ---------- profile page (roster/profile.html) ---------- */
.roster-profile-hero{padding:190px 0 76px;display:grid;grid-template-columns:280px 1fr;gap:56px;align-items:center;}
.roster-avatar{aspect-ratio:1;border-radius:2px;overflow:hidden;}
.roster-avatar img{width:100%;height:100%;object-fit:cover;}
.roster-profile-info h1{font-family:var(--serif);font-size:clamp(34px,5vw,54px);font-weight:600;margin-bottom:10px;}
.roster-profile-tagline{font-size:15px;color:var(--offwhite);line-height:1.6;margin-bottom:8px;}
.roster-profile-location{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--silver);margin-bottom:26px;}
.roster-profile-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:30px;}
.roster-profile-actions{display:flex;gap:16px;flex-wrap:wrap;}

.roster-crumbs{display:flex;gap:10px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--silver);margin-bottom:18px;}
.roster-crumbs a{color:var(--offwhite);}
.roster-crumbs a:hover{color:var(--burgundy-light);}

.roster-section{padding:70px 0;}
.roster-section-head{margin-bottom:34px;}
.roster-section-head h2{font-family:var(--serif);font-size:clamp(26px,3.2vw,36px);font-weight:600;}

.roster-tabs{display:flex;gap:10px;margin-bottom:30px;}
.roster-tab{background:transparent;border:1px solid rgba(242,240,236,.16);color:var(--silver);padding:10px 20px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;transition:all .3s var(--ease);}
.roster-tab.active{color:var(--offwhite);border-color:var(--burgundy-light);background:rgba(153,31,43,.12);}

.roster-portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.roster-tile{aspect-ratio:4/5;position:relative;overflow:hidden;}
.roster-tile img{width:100%;height:100%;object-fit:cover;display:block;}
.roster-tile-caption{position:absolute;left:0;right:0;bottom:0;padding:14px 16px;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--offwhite);background:linear-gradient(to top,rgba(5,5,5,.85),transparent);}

.roster-clients{display:flex;flex-wrap:wrap;gap:14px 34px;padding:30px 0;border-top:1px solid rgba(242,240,236,.1);border-bottom:1px solid rgba(242,240,236,.1);}
.roster-client{font-family:var(--serif);font-size:16px;color:var(--silver);letter-spacing:.02em;}

.roster-services-top{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:26px;}
.roster-price-label{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--silver);}
.roster-price-stat{font-family:var(--serif);font-size:clamp(30px,4vw,42px);font-weight:600;color:var(--offwhite);}
.roster-offerings{display:flex;flex-wrap:wrap;gap:10px;}
.roster-offering{font-size:11px;letter-spacing:.05em;color:var(--offwhite);border:1px solid rgba(242,240,236,.16);padding:9px 16px;}

/* ---------- homepage "Featured Talent" preview ---------- */
.roster-preview-section{padding:100px 0;}
.roster-preview-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:44px;}
.roster-preview-head h2{font-family:var(--serif);font-size:clamp(28px,3.6vw,40px);font-weight:600;}
.roster-preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}

@media(max-width:1024px){
  .roster-grid{grid-template-columns:repeat(2,1fr);}
  .roster-portfolio-grid{grid-template-columns:repeat(2,1fr);}
  .roster-preview-grid{grid-template-columns:repeat(2,1fr);}
  .roster-profile-hero{grid-template-columns:220px 1fr;}
}
@media(max-width:680px){
  .roster-grid{grid-template-columns:1fr;}
  .roster-portfolio-grid{grid-template-columns:1fr;}
  .roster-preview-grid{grid-template-columns:1fr;}
  .roster-profile-hero{grid-template-columns:1fr;text-align:center;}
  .roster-profile-tags,.roster-profile-actions{justify-content:center;}
  .roster-avatar{max-width:200px;margin:0 auto;}
}
