/* Rory Joubert recruiting site. Colours: swap --accent / --navy for team colours later */
:root{
  --navy:#0b1f3a; --navy-2:#16365f; --ice:#f4f7fb; --ink:#0f172a; --muted:#5b6b82;
  --line:#dde5ef; --accent:#d6a640; --accent-2:#c08f2a; --white:#fff; --ph:#b45309; --ph-bg:#fff7e6;
  --radius:14px; --shadow:0 10px 30px rgba(11,31,58,.12);
  --display:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  --body:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{font-family:var(--body);color:var(--ink);background:var(--white);line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{width:min(1140px,100% - 40px);margin-inline:auto}

/* Placeholders */
.ph-inline{color:var(--ph);background:var(--ph-bg);border:1px dashed #f0b45a;border-radius:6px;padding:0 6px;font-weight:600;font-style:normal;display:inline-block;line-height:1.5}
.ph-cell{color:var(--ph);background:var(--ph-bg)!important;font-weight:600}
.placeholder-box{margin-top:22px;padding:18px 20px;border:2px dashed #f0b45a;background:var(--ph-bg);border-radius:var(--radius);color:#7c4a03;font-size:.95rem}
.placeholder-box strong{display:block;color:var(--ph);text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;margin-bottom:6px}

/* Nav */
.nav{position:sticky;top:0;z-index:50;background:rgba(11,31,58,.96);backdrop-filter:blur(8px);color:var(--white)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--display);font-size:1.35rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:var(--accent);color:var(--navy);font-weight:800;font-size:1.05rem}
.nav-links{display:flex;gap:22px;align-items:center}
.nav-links a{text-decoration:none;font-size:.9rem;font-weight:500;opacity:.85}
.nav-links a:hover{opacity:1;color:var(--accent)}
.nav-cta{background:var(--accent);color:var(--navy)!important;padding:8px 16px;border-radius:999px;opacity:1!important;font-weight:700!important}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:8px}
.nav-toggle span{display:block;width:24px;height:2px;background:#fff;margin:5px 0;border-radius:2px}

/* Hero */
.hero{position:relative;color:var(--white);overflow:hidden;padding:72px 0 88px}
.hero-bg{position:absolute;inset:0;background:
  radial-gradient(900px 500px at 85% 10%,rgba(214,166,64,.22),transparent 60%),
  radial-gradient(700px 500px at 0% 100%,rgba(90,150,230,.25),transparent 60%),
  linear-gradient(135deg,#071528 0%,var(--navy) 45%,var(--navy-2) 100%)}
.hero-bg::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,rgba(255,255,255,.035) 0 2px,transparent 2px 22px)}
.hero-grid{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.78rem;font-weight:600;color:var(--accent)}
.hero h1{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(3.6rem,9vw,7rem);line-height:.88;margin:14px 0 18px;letter-spacing:.01em}
.hero h1 span{color:transparent;-webkit-text-stroke:2px var(--white)}
.tagline{font-size:1.2rem;color:#cfd8e6;max-width:30ch}
.hero-tags{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 30px}
.hero-tags li{border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);padding:6px 12px;border-radius:999px;font-size:.85rem;font-weight:500}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-block;text-decoration:none;font-weight:700;padding:13px 22px;border-radius:10px;font-size:.95rem;transition:transform .15s,background .15s;text-align:center}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--accent);color:var(--navy)}
.btn-primary:hover{background:var(--accent-2)}
.btn-ghost{border:1.5px solid rgba(255,255,255,.5);color:var(--white)}
.btn-light{background:var(--white);color:#8a2b6b;margin-top:22px}
.btn-block{display:block;width:100%;margin-top:18px}

/* Player card */
.player-card{background:var(--white);color:var(--ink);border-radius:20px;box-shadow:0 30px 60px rgba(0,0,0,.35);overflow:hidden;border-top:6px solid var(--accent)}
.pc-top{display:flex;gap:16px;align-items:center;padding:20px 20px 16px;background:linear-gradient(180deg,var(--ice),#fff)}
.pc-photo{position:relative;flex:0 0 96px;height:116px;border-radius:12px;background:linear-gradient(150deg,var(--navy-2),var(--navy));display:grid;place-items:center;overflow:hidden}
.pc-initials{font-family:var(--display);font-size:2.8rem;font-weight:800;color:rgba(255,255,255,.92)}
.pc-number{position:absolute;top:6px;right:6px;font-size:.62rem;color:#fff;font-weight:700}
.pc-number .ph-inline{font-size:.6rem;padding:0 3px}
.pc-photo-note{position:absolute;bottom:0;left:0;right:0;font-size:.6rem;text-align:center;background:rgba(0,0,0,.35);color:#fff;padding:3px 0;letter-spacing:.04em}
.pc-name strong{display:block;font-family:var(--display);font-size:1.8rem;text-transform:uppercase;line-height:1}
.pc-name span{display:block;margin-top:6px;color:var(--muted);font-weight:600;font-size:.9rem}
.pc-facts{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.pc-facts>div{padding:11px 20px;border-bottom:1px solid var(--line)}
.pc-facts>div:nth-child(odd):not(.span2){border-right:1px solid var(--line)}
.pc-facts .span2{grid-column:1/-1}
.pc-facts dt{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:600}
.pc-facts dd{font-weight:700;font-size:.98rem}
.badge{display:inline-block;background:var(--accent);color:var(--navy);font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;padding:2px 8px;border-radius:999px;vertical-align:middle;margin-left:6px;font-family:var(--body)}
.pc-ig{display:block;padding:14px 20px;text-align:center;text-decoration:none;font-weight:700;color:var(--white);background:linear-gradient(90deg,#833ab4,#e1306c,#f77737)}

/* Sections */
.section{padding:88px 0}
.section-alt{background:var(--ice)}
.section-dark{background:var(--navy);color:var(--white)}
.kicker{text-transform:uppercase;letter-spacing:.16em;font-size:.78rem;font-weight:700;color:var(--accent-2);margin-bottom:8px}
.kicker.light{color:#ffd9ec}
.section-dark .kicker{color:var(--accent)}
h2{font-family:var(--display);text-transform:uppercase;font-weight:800;font-size:clamp(2.1rem,4.5vw,3.2rem);line-height:1;margin-bottom:28px;letter-spacing:.01em}
.two-col{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start}
.prose p{margin-bottom:14px;font-size:1.05rem;color:#253247}
.lead{font-size:1.1rem}
.note{margin-top:14px;color:var(--muted);font-size:.92rem}

/* Timeline */
.timeline{list-style:none;position:relative;margin-left:8px}
.timeline::before{content:"";position:absolute;left:118px;top:6px;bottom:6px;width:3px;background:linear-gradient(var(--accent),var(--navy-2));border-radius:3px}
.tl-item{display:grid;grid-template-columns:118px 1fr;gap:32px;padding:0 0 30px;position:relative}
.tl-item::before{content:"";position:absolute;left:111px;top:6px;width:17px;height:17px;border-radius:50%;background:var(--white);border:4px solid var(--navy-2)}
.tl-current::before{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 6px rgba(214,166,64,.25)}
.tl-future::before{border-style:dashed;border-color:var(--accent)}
.tl-year{font-family:var(--display);font-weight:700;font-size:1.2rem;color:var(--navy-2);text-align:right;padding-right:14px;line-height:1.5}
.tl-body{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:16px 20px;box-shadow:0 4px 14px rgba(11,31,58,.05)}
.tl-body h3{font-size:1.1rem;margin-bottom:2px}
.tl-body p{color:var(--muted)}
.tl-ph .tl-year{color:var(--ph)}
.tl-ph .tl-body{border:2px dashed #f0b45a;background:var(--ph-bg)}

/* Tables */
.table-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;min-width:640px;background:var(--white)}
th{background:var(--navy);color:var(--white);text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;padding:13px 14px;white-space:nowrap}
td{padding:13px 14px;border-top:1px solid var(--line);font-size:.95rem;white-space:nowrap}
tbody tr:nth-child(even) td{background:#fafcff}
.stats td:nth-child(n+4),.stats th:nth-child(n+4){text-align:center}

/* Video */
.video-frame{position:relative;max-width:960px;aspect-ratio:16/9;border-radius:18px;overflow:hidden;background:linear-gradient(135deg,#0e2747,#1d4577);box-shadow:0 30px 60px rgba(0,0,0,.35)}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:20px;border:2px dashed rgba(214,166,64,.6);border-radius:18px}
.video-ph strong{font-family:var(--display);font-size:1.8rem;text-transform:uppercase}
.video-ph span{color:#f6d79a;font-size:.92rem;max-width:52ch}
.play{width:78px;height:78px;border-radius:50%;background:var(--accent);position:relative;margin-bottom:6px}
.play::after{content:"";position:absolute;left:31px;top:23px;border-left:24px solid var(--navy);border-top:16px solid transparent;border-bottom:16px solid transparent}
.clip-grid{max-width:960px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}
.clip{border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.05);border-radius:12px;padding:16px 18px;display:flex;justify-content:space-between;gap:10px;align-items:center}
.clip em{font-style:normal;color:#f6d79a;font-weight:600;font-size:.9rem}

/* Academics */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:start}
.card{border:1px solid var(--line);border-radius:var(--radius);padding:24px;background:var(--white);box-shadow:var(--shadow)}
.card.highlight{background:linear-gradient(160deg,var(--navy),var(--navy-2));color:var(--white);border:0}
.card.highlight p{color:#cfd8e6}
.card-icon{font-size:1.8rem;margin-bottom:10px}
.card h3{font-family:var(--display);text-transform:uppercase;font-size:1.5rem;line-height:1.05;margin-bottom:8px}
.mini>div{padding:7px 0;border-bottom:1px solid var(--line)}
.mini>div:last-child{border:0}
.mini dt{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:600}
.mini dd{font-weight:600;font-size:.93rem}

/* Instagram */
.section-ig{background:linear-gradient(135deg,#4f1d77 0%,#a3245f 55%,#d9532b 100%);color:var(--white)}
.ig-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.section-ig .lead{color:#fde7f1;max-width:44ch}
.ig-card{display:block;text-decoration:none;color:var(--ink);background:var(--white);border-radius:20px;padding:22px;box-shadow:0 30px 60px rgba(0,0,0,.3);transition:transform .2s}
.ig-card:hover{transform:translateY(-4px)}
.ig-head{display:flex;gap:14px;align-items:center}
.ig-avatar{width:60px;height:60px;border-radius:50%;display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:1.4rem;color:var(--white);background:var(--navy);box-shadow:0 0 0 3px #fff,0 0 0 6px #e1306c}
.ig-head strong{display:block;font-size:1.05rem}
.ig-head div span{color:var(--muted);font-size:.9rem}
.ig-stats{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;margin:18px 0;padding:12px 0;border-block:1px solid var(--line)}
.ig-stats b{display:block;font-size:1.2rem}
.ig-stats b .ph-inline{font-size:.8rem}
.ig-stats span{font-size:.78rem;color:var(--muted)}
.ig-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
.ig-tiles span{aspect-ratio:1;border-radius:4px;background:linear-gradient(135deg,var(--navy),var(--navy-2))}
.ig-tiles span:nth-child(2n){background:linear-gradient(135deg,#a3245f,#d9532b)}
.ig-tiles span:nth-child(3n){background:linear-gradient(135deg,var(--accent),#e9c97f)}
.ig-open{display:block;text-align:center;margin-top:14px;font-weight:700;color:#a3245f}

/* Contact */
.contact-card{background:var(--white);border-radius:18px;padding:24px;box-shadow:var(--shadow);border-top:6px solid var(--accent)}
.cc-row{display:flex;flex-direction:column;padding:10px 0;border-bottom:1px solid var(--line)}
.cc-row span{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:600}
.cc-row a{font-weight:600}

/* Footer */
.footer{background:#071528;color:#9fb0c8;padding:28px 0;font-size:.88rem}
.footer-inner{display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between}
.footer a{text-decoration:none}
.footer a:hover{color:var(--accent)}

/* Responsive */
@media (max-width:960px){
  .hero-grid,.two-col,.ig-grid{grid-template-columns:1fr;gap:36px}
  .cards{grid-template-columns:1fr 1fr}
  .cards .card:last-child{grid-column:1/-1}
}
@media (max-width:860px){
  .nav-toggle{display:block}
  .nav-links{position:absolute;top:64px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--navy);padding:8px 20px 18px;display:none;box-shadow:0 20px 30px rgba(0,0,0,.3)}
  .nav-links.open{display:flex}
  .nav-links a{padding:12px 0;border-bottom:1px solid rgba(255,255,255,.08)}
  .nav-cta{text-align:center;margin-top:10px;border:0!important}
}
@media (max-width:640px){
  .section{padding:64px 0}
  .hero{padding:48px 0 64px}
  .cards,.clip-grid{grid-template-columns:1fr}
  .cards .card:last-child{grid-column:auto}
  .timeline::before{left:7px}
  .tl-item{grid-template-columns:1fr;gap:6px;padding-left:34px}
  .tl-item::before{left:0}
  .tl-year{text-align:left;padding:0}
  .hero-actions .btn{flex:1 1 100%}
  .pc-facts>div{padding:10px 16px}
  .video-frame{aspect-ratio:auto;min-height:240px}
  .video-ph{position:relative;inset:auto;min-height:240px;padding:28px 18px}
  .video-ph strong{font-size:1.4rem;line-height:1.1}
  .play{width:60px;height:60px;flex:0 0 60px}
  .play::after{left:24px;top:18px;border-left-width:18px;border-top-width:12px;border-bottom-width:12px}
}

/* Schedule */
.sched-intro{margin:-12px 0 18px}
.sched td{white-space:normal;vertical-align:top}
.sched td:first-child{white-space:nowrap}
.sched .sub{display:block;font-size:.8rem;color:var(--muted)}
.tag{display:inline-block;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;padding:3px 9px;border-radius:999px}
.tag-home{background:#0b1f3a;color:#fff}
.tag-away{background:#e6ecf4;color:#16365f}
.tag-event{background:#efe4ff;color:#5b2a9c}
.tag-show{background:var(--accent);color:var(--navy)}
.sched-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.btn-outline{border:1.5px solid var(--navy);color:var(--navy)}
@media (max-width:640px){
  .sched-actions .btn{flex:1 1 100%}
  table.sched{min-width:0}
  .sched tbody,.sched tr{display:block}
  .sched tr{display:grid}
  .sched td{min-width:0;white-space:normal!important}
  .sched td:first-child{white-space:nowrap!important}
  .sched thead{display:none}
  .sched tr{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;padding:12px 14px;border-top:1px solid var(--line)}
  .sched td{border:0;padding:0;background:none!important}
  .sched td:nth-child(1){grid-row:1/4}
  .sched td:nth-child(4){font-size:.85rem;color:var(--muted)}
}

/* Photo player card */
.pc-hero{position:relative;aspect-ratio:4/3.6;overflow:hidden;background:var(--navy)}
.pc-hero img{width:100%;height:100%;object-fit:cover;object-position:50% 18%}
.pc-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(7,21,40,.92) 100%)}
.pc-num{position:absolute;top:14px;right:14px;z-index:1;background:var(--accent);color:var(--navy);font-family:var(--display);font-weight:800;font-size:1.5rem;line-height:1;padding:8px 12px;border-radius:10px}
.pc-hero .pc-name{position:absolute;left:20px;right:20px;bottom:16px;z-index:1;color:#fff}
.pc-hero .pc-name strong{font-size:2rem}
.pc-hero .pc-name span{color:#dbe4f0}

/* IG */
img.ig-avatar{object-fit:cover;object-position:50% 12%}
.ig-tiles img,.ig-tiles span{width:100%;aspect-ratio:1;object-fit:cover;object-position:50% 25%;border-radius:4px;display:block}
.ig-tiles span{display:grid;place-items:center;background:linear-gradient(135deg,var(--navy),var(--navy-2))!important}
.ig-tiles span b{font-family:var(--display);color:var(--accent);font-size:2rem}
.ig-stats span{display:block;line-height:1.3}

/* Gallery */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:260px;gap:12px}
.g-item{margin:0;border-radius:12px;overflow:hidden;background:var(--ice)}
.g-item img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;transition:transform .3s}
.g-item:hover img{transform:scale(1.03)}
.g-tall{grid-row:span 2}
.g-ph{grid-column:span 2}
.g-ph{display:grid;place-items:center;text-align:center;border:2px dashed #f0b45a;background:var(--ph-bg)}
.g-ph strong{display:block;font-family:var(--display);text-transform:uppercase;font-size:1.3rem;color:#7c4a03}
.g-ph span{color:var(--ph);font-weight:600;font-size:.9rem}

/* Partners */
.partners{padding:64px 0}
.partner-list{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.partner-list li{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 20px;text-align:center}
.partner-list strong{display:block;font-family:var(--display);text-transform:uppercase;font-size:1.35rem;letter-spacing:.02em;color:var(--navy)}
.partner-list span{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:600}

@media (max-width:960px){
  .gallery{grid-template-columns:repeat(3,1fr);grid-auto-rows:220px}
  .partner-list{grid-template-columns:repeat(2,1fr)}
  .g-ph{grid-column:span 3}
}
@media (max-width:640px){
  .gallery{grid-template-columns:1fr 1fr;grid-auto-rows:200px;gap:8px}
  .g-tall{grid-column:span 2;grid-row:span 2}
  .g-ph{grid-column:span 2;grid-auto-rows:auto;min-height:120px}
  .pc-hero{aspect-ratio:4/4.2}
}
