:root{
  --navy: #10205c;
  --navy-deep: #0b1747;
  --mint-bg: #dff1f2;
  --accent: #6fc9d3;
  --accent-dark: #4bb3bf;
  --ink: #10205c;
  --muted: #5b6584;
  --white: #ffffff;
  --radius: 14px;
  --max: 1120px;
}
*{box-sizing:border-box;}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;color:var(--ink);line-height:1.55;}
h1,h2,h3,h4{margin:0 0 .5em;line-height:1.2;font-weight:700;}
p{margin:0 0 1em;color:var(--muted);}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px;}
.eyebrow{color:var(--accent-dark);font-weight:700;letter-spacing:.08em;font-size:.8rem;text-transform:uppercase;margin-bottom:.5em;}
.btn{display:inline-block;background:var(--accent);color:var(--navy-deep);font-weight:700;padding:14px 28px;border-radius:8px;border:none;cursor:pointer;font-size:1rem;transition:background .15s ease;}
.btn:hover{background:var(--accent-dark);}
.btn-outline{display:inline-block;background:var(--accent);color:var(--navy-deep);font-weight:700;padding:14px 28px;border-radius:8px;border:none;font-size:1rem;transition:background .15s ease;}
.btn-outline:hover{background:var(--accent-dark);}
.btn-outline.on-dark{color:#fff;}

/* Stat blocks (About Us) */
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px;}
.stat-block{text-align:center;}
.stat-block .num{font-size:2.4rem;font-weight:800;color:var(--navy);}
.stat-block .label{color:var(--muted);font-size:.9rem;margin-top:4px;}

/* Team card Know More button */
.team-member .know-more{display:block;margin:14px 16px 0;text-align:center;background:var(--navy);color:#fff;font-weight:700;padding:10px 0;border-radius:6px;font-size:.85rem;text-decoration:none;}
.team-member .know-more:hover{background:var(--navy-deep);}

/* Bio pages */
.bio-hero{background:var(--navy);padding:56px 0;}
.bio-hero .wrap{display:grid;grid-template-columns:.55fr 1fr;gap:40px;align-items:center;}
.bio-hero .photo{border-radius:var(--radius);overflow:hidden;background:rgba(255,255,255,.08);aspect-ratio:1/1;padding:8px;}
.bio-hero .photo img{width:100%;height:100%;object-fit:contain;}
.bio-hero h1{color:#fff;margin-bottom:8px;}
.bio-hero .role{color:var(--accent);font-weight:700;margin-bottom:6px;}
.bio-hero .years{color:#fff;font-weight:700;}
.bio-content{background:var(--navy-deep);padding:48px 0;}
.bio-content p{color:#c7cde0;max-width:760px;}

/* Booking modal */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(10,15,40,.55);z-index:200;align-items:center;justify-content:center;padding:20px;}
.modal-overlay.open{display:flex;}
.modal-card{background:#fff;border-radius:16px;max-width:480px;width:100%;padding:32px;position:relative;display:flex;gap:24px;align-items:flex-start;box-shadow:0 20px 60px rgba(0,0,0,.3);}
.modal-close{position:absolute;top:16px;right:18px;background:none;border:none;font-size:1.4rem;color:#8791b3;cursor:pointer;line-height:1;padding:4px;}
.modal-close:hover{color:var(--navy);}
.modal-icon{width:64px;height:64px;border-radius:16px;background:linear-gradient(160deg,#4bb3bf,#10205c);display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.8rem;flex-shrink:0;}
.modal-body h3{margin:0 0 14px;font-size:1.2rem;letter-spacing:.02em;text-transform:uppercase;color:#0a0f1f;}
.modal-body p{margin:0 0 8px;color:#3a3f55;}
.modal-body a{color:var(--accent-dark);font-weight:700;}
@media (max-width:520px){.modal-card{flex-direction:column;align-items:center;text-align:center;}}

/* HEADER */
header{background:var(--mint-bg);padding:20px 0;position:relative;z-index:50;}
header .wrap{display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:16px;}
.logo{font-size:1.3rem;font-weight:800;color:var(--navy);white-space:nowrap;}
.logo span{display:block;font-size:.62rem;font-weight:500;letter-spacing:.03em;color:var(--muted);}
nav{flex:1;min-width:0;}
nav ul{list-style:none;display:flex;gap:26px;margin:0;padding:0;font-weight:600;font-size:.95rem;white-space:nowrap;align-items:center;}
nav ul li{position:relative;}
header .wrap > .btn{flex-shrink:0;white-space:nowrap;}

/* Services dropdown */
.has-dropdown > .dropdown-toggle::after{content:" ▾";font-size:.7em;}
.dropdown{display:none;position:absolute;top:100%;left:0;background:#fff;border-radius:10px;box-shadow:0 12px 28px rgba(16,32,92,.15);padding:10px;min-width:220px;list-style:none;margin:0;flex-direction:column;gap:2px;}
.has-dropdown{padding-bottom:10px;margin-bottom:-10px;}
.has-dropdown:hover .dropdown, .has-dropdown:focus-within .dropdown{display:flex;}
.dropdown li{width:100%;}
.dropdown a{display:block;padding:10px 14px;border-radius:6px;font-size:.9rem;color:var(--navy);white-space:nowrap;}
.dropdown a:hover{background:var(--mint-bg);}

/* PAGE HERO (sub-pages) */
.page-hero{background:linear-gradient(160deg,var(--navy),var(--navy-deep));color:#fff;padding:56px 0;}
.page-hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;}
.page-hero h1{font-size:clamp(1.8rem,3.6vw,2.4rem);}
.page-hero p{color:#c7cde0;max-width:52ch;}
.page-hero img{border-radius:var(--radius);width:100%;height:auto;object-fit:cover;}
.breadcrumb{font-size:.85rem;color:var(--accent);margin-bottom:14px;}

/* HOME HERO */
.hero{background:linear-gradient(160deg,var(--navy),var(--navy-deep));color:#fff;padding:64px 0;}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;}
.hero h1{font-size:clamp(1.9rem,4vw,2.7rem);}
.hero p{color:#c7cde0;max-width:46ch;}
.hero img{border-radius:var(--radius);width:100%;height:auto;object-fit:cover;}

/* SERVICE STRIP */
.service-strip{background:var(--navy);padding:0 0 28px;}
.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.service-card{text-align:center;color:#fff;font-weight:600;font-size:.95rem;padding:18px 8px;border-left:1px solid rgba(255,255,255,.15);}
.service-card:first-child{border-left:none;}
.service-card.active{color:var(--accent);}
.service-card .icon{width:38px;height:38px;margin:0 auto 10px;border-radius:50%;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;font-size:1.1rem;}

/* ABOUT (home) */
.about{padding:80px 0;}
.about.dark{background:linear-gradient(160deg,var(--navy),var(--navy-deep));color:#fff;}
.about.dark p{color:#c7cde0;}
.about.dark .eyebrow{color:var(--accent);}
.about.dark h2{color:#fff;}
.about.dark .icon-card .icon-box{background:rgba(255,255,255,.1);color:#fff;}
.about.dark .icon-card h4{color:#fff;}
.about .wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:center;}
.about .photo{width:100%;aspect-ratio:1/1;border-radius:50%;overflow:hidden;background:var(--mint-bg);}
.about .photo img{width:100%;height:100%;object-fit:cover;}
.services-list{display:grid;grid-template-columns:1fr 1fr;gap:8px 32px;margin-top:20px;padding:0;list-style:none;}
.services-list li{padding:6px 0;border-bottom:1px solid #eef0f6;font-size:.95rem;}

/* SPLIT SECTIONS */
.split{padding:70px 0;}
.split.dark{background:linear-gradient(160deg,var(--navy),var(--navy-deep));color:#fff;}
.split.dark p, .split.dark .eyebrow{color:#c7cde0;}
.split.dark .eyebrow{color:var(--accent);}
.split .wrap{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
.split .photo{border-radius:var(--radius);overflow:hidden;}
.split .photo img{width:100%;height:100%;object-fit:cover;}
.split.reverse .wrap{direction:rtl;}
.split.reverse .wrap > *{direction:ltr;}

.pill-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:28px 0;}
.pill{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);border-radius:10px;padding:16px 12px;text-align:center;font-size:.85rem;font-weight:600;}
.pill.on-light{background:var(--mint-bg);border-color:transparent;color:var(--ink);}
.pill a{display:block;}

/* Icon card grid (occupational medicine services) */
.icon-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px 24px;margin-top:32px;}
.icon-card{display:block;text-decoration:none;color:inherit;transition:transform .15s ease;}
.icon-card:hover{transform:translateY(-3px);}
.icon-card .icon-box{width:64px;height:64px;border-radius:14px;background:var(--mint-bg);display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-bottom:14px;color:var(--accent-dark);}
.icon-card h4{font-size:1rem;color:var(--navy);margin:0;font-weight:700;}

/* Sports medicine service badges */
.badge-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:24px 0;}
.badge{border:1px solid #d7ddec;border-radius:10px;padding:14px 18px;font-weight:700;color:var(--navy);font-size:.95rem;text-align:center;}

/* Centered dark hero (service pages) */
.hero-centered{background:linear-gradient(160deg,var(--navy),var(--navy-deep));color:#fff;padding:70px 24px;text-align:center;position:relative;overflow:hidden;}
.hero-centered::before, .hero-centered::after{content:"";position:absolute;bottom:-30px;width:220px;height:220px;background-image:radial-gradient(circle,rgba(255,255,255,.22) 1.5px,transparent 1.5px);background-size:13px 13px;pointer-events:none;}
.hero-centered::before{left:-50px;transform:rotate(15deg);}
.hero-centered::after{right:-50px;transform:rotate(-15deg) scaleX(-1);}
.hero-centered h1{font-size:clamp(1.8rem,4vw,2.6rem);margin-bottom:14px;position:relative;z-index:1;}
.hero-centered p{color:#c7cde0;max-width:640px;margin:0 auto;position:relative;z-index:1;}
.hero-centered .btn{position:relative;z-index:1;margin:20px 0;}

/* Dot bullet list */
.dot-list{list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px 32px;}
.dot-list li{display:flex;align-items:flex-start;gap:10px;font-weight:700;color:var(--navy);font-size:.95rem;}
.dot-list li::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--navy);flex-shrink:0;margin-top:6px;}

/* CTA banner */
.cta-wrap{padding:48px 0;}
.cta-banner{background:var(--accent);border-radius:20px;padding:56px 32px;text-align:center;position:relative;overflow:hidden;}
.cta-banner::before, .cta-banner::after{content:"";position:absolute;width:200px;height:200px;background-image:radial-gradient(circle,rgba(255,255,255,.35) 1.5px,transparent 1.5px);background-size:11px 11px;pointer-events:none;}
.cta-banner::before{top:-40px;left:-40px;}
.cta-banner::after{bottom:-40px;right:-40px;}
.cta-banner h2, .cta-banner p, .cta-banner .btn{position:relative;z-index:1;}
.cta-banner h2{color:#fff;font-size:clamp(1.3rem,3vw,1.8rem);max-width:700px;margin:0 auto 24px;}
.cta-banner .btn{background:var(--navy);color:#fff;}
.cta-banner .btn:hover{background:var(--navy-deep);}
/* Service detail pages (breadcrumb + title band) */
.detail-hero{background:var(--navy-deep);}
.detail-hero .crumb-bar{padding:16px 0;}
.detail-hero .crumb-bar a{color:#c7cde0;text-decoration:none;}
.detail-hero .crumb-bar a:hover{text-decoration:underline;}
.detail-hero .crumb-bar span{color:#c7cde0;font-size:.85rem;}
.detail-hero .title-band{background:#1f3fae;padding:36px 0;}
.detail-hero .title-band h1{color:#fff;font-size:clamp(1.6rem,3.4vw,2.2rem);margin:0;}
.detail-content{padding:56px 0;}
.detail-content h3{color:#1f3fae;font-size:1.15rem;margin-bottom:14px;max-width:760px;}
.detail-content p{margin-bottom:18px;max-width:760px;}
.detail-content ul, .detail-content ol{margin:0 0 20px;padding-left:20px;max-width:760px;}
.detail-content ul li, .detail-content ol li{margin-bottom:6px;color:var(--muted);}
.detail-content a.inline-link{color:var(--accent-dark);text-decoration:underline;display:block;margin-bottom:6px;}

.hours{background:var(--mint-bg);padding:64px 0;}
.hours .wrap{display:grid;grid-template-columns:1fr 1fr;gap:40px;}
.hours-card h3{font-size:1.1rem;}
.hours-card p{font-size:.9rem;}

/* TEAM */
.team{padding:80px 0;text-align:center;}
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:40px;}
.team-member{background:#fff;border-radius:14px;box-shadow:0 12px 28px rgba(16,32,92,.12);overflow:hidden;padding-bottom:18px;}
.team-member .photo{width:100%;aspect-ratio:1/1;border-radius:0;background:var(--mint-bg);margin:0 0 14px;border-bottom:1px solid #e6ecf5;padding:3px;overflow:hidden;}
.team-member .photo img{width:100%;height:100%;object-fit:contain;}
.team-member h4{margin:0;font-size:1.05rem;color:var(--navy);padding:0 16px;}
.team-member span{color:var(--muted);font-size:.85rem;font-weight:600;padding:0 16px;display:block;}
.team.dark{background:linear-gradient(160deg,var(--navy),var(--navy-deep));color:#fff;}
.team.dark p{color:#c7cde0;}

/* CAREER / ABOUT extra blocks */
.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:32px;}
.value-card{background:var(--mint-bg);border-radius:var(--radius);padding:24px;}
.job-list{display:grid;gap:16px;margin-top:24px;}
.job-card{border:1px solid #e6e9f2;border-radius:var(--radius);padding:20px 24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;}
.job-card h4{margin:0 0 4px;}
.job-card span{font-size:.85rem;color:var(--muted);}

/* CONTACT */
.contact{background:linear-gradient(160deg,var(--navy),var(--navy-deep));color:#fff;padding:80px 0;position:relative;overflow:hidden;}
.contact::after{content:"";position:absolute;top:-60px;right:-120px;width:520px;height:520px;background-image:radial-gradient(circle,rgba(255,255,255,.14) 1.5px,transparent 1.5px);background-size:14px 14px;border-radius:50%;pointer-events:none;}
.contact .wrap{position:relative;z-index:1;}
.contact .wrap{display:grid;grid-template-columns:1fr 1fr;gap:48px;}
.contact-info p{color:#c7cde0;}
.contact-detail{margin-bottom:20px;}
.contact-detail h4{font-size:.95rem;color:var(--accent);margin-bottom:6px;}
form{display:grid;gap:14px;}
form input, form textarea{padding:12px 14px;border-radius:8px;border:none;font-family:inherit;font-size:.95rem;}
form textarea{min-height:110px;resize:vertical;}

/* FOOTER */
footer{background:#fff;color:var(--muted);padding:56px 0 24px;font-size:.9rem;border-top:1px solid #eef0f6;}
.footer-grid h5{color:var(--accent-dark);font-size:.95rem;font-weight:700;letter-spacing:0;text-transform:none;margin-bottom:14px;}
.footer-grid ul a{color:var(--navy);}
.footer-grid ul a:hover{color:var(--accent-dark);}
.copyright{border-top:1px solid #eef0f6;margin-top:40px;padding-top:20px;text-align:center;font-size:.8rem;color:#9aa0b4;}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr 1.2fr;gap:32px;}
.footer-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;}

/* ============ RESPONSIVE ============ */
.split.family h2{font-size:1.85rem;}
.split.family p{font-size:1.05rem;}

@media (max-width: 900px){
  .hero .wrap, .page-hero .wrap, .about .wrap, .split .wrap, .contact .wrap, .hours .wrap{grid-template-columns:1fr;}
  .split.reverse .wrap{direction:ltr;}
  .service-grid{grid-template-columns:repeat(2,1fr);}
  .pill-grid{grid-template-columns:repeat(2,1fr);}
  .icon-grid{grid-template-columns:repeat(2,1fr);}
  .badge-grid{grid-template-columns:1fr;}
  .team-grid{grid-template-columns:repeat(2,1fr);}
  .value-grid{grid-template-columns:1fr 1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .hero, .page-hero{padding:44px 0;}
  .hero img, .page-hero img{order:-1;}
  header .wrap{flex-wrap:wrap;}
  nav{order:3;flex-basis:100%;}
  nav ul{flex-wrap:wrap;}
}
/* Mobile menu toggle */
.menu-toggle{display:none;background:none;border:none;font-size:1.7rem;color:var(--navy);cursor:pointer;padding:2px 6px;line-height:1;}

@media (max-width: 640px){
  header .wrap{flex-wrap:wrap;}
  .menu-toggle{display:block;order:2;}
  header .wrap > .btn{order:3;padding:10px 16px;font-size:.85rem;}
  nav{order:4;flex-basis:100%;display:none;}
  nav.open{display:block;}
  nav ul{display:flex;flex-direction:column;gap:0;width:100%;padding:10px 0 0;align-items:stretch;}
  nav ul li{width:100%;}
  nav ul > li > a{display:block;padding:12px 4px;border-top:1px solid rgba(16,32,92,.08);}
  .has-dropdown .dropdown-toggle::after{float:right;}
  .dropdown{position:static;box-shadow:none;display:none;padding:0 0 6px 16px;margin:0;min-width:0;border-radius:0;background:transparent;}
  .has-dropdown.open .dropdown{display:flex;}
  .dropdown a{padding:8px 4px;color:var(--navy);}
  .service-grid{grid-template-columns:1fr 1fr;}
  .service-card{border-left:none;border-bottom:1px solid rgba(255,255,255,.12);}
  .services-list{grid-template-columns:1fr;}
  .pill-grid{grid-template-columns:1fr 1fr;}
  .icon-grid{grid-template-columns:1fr 1fr;}
  .team-grid{grid-template-columns:1fr 1fr;}
  .value-grid{grid-template-columns:1fr;}
  .job-card{flex-direction:column;align-items:flex-start;}
  .footer-grid{grid-template-columns:1fr;text-align:center;}
  .about, .split, .team, .hours, .contact{padding:44px 0;}
  .hero h1, .page-hero h1{font-size:1.6rem;}
}
