*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#F7F4EF;color:#ECE8E0;-webkit-font-smoothing:antialiased}
img{max-width:100%}
a{color:#ECE8E0;text-decoration:none}
a:hover{color:#FFFFFF}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #FF7F3A;outline-offset:3px}
input::placeholder,textarea::placeholder{color:#8A9BB2}

/* Hero: text and photo in two columns that never overlap */
@media (min-width: 901px){
  .hero{display:grid !important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"text img";align-items:stretch !important;min-height:min(88vh,860px) !important}
  .hero-img{position:static !important;grid-area:img;width:100% !important;height:100% !important}
  .hero-text{grid-area:text;align-self:center;max-width:none !important;margin:0 !important;padding:96px clamp(28px,4vw,72px) 80px !important}
  .hero-text > div{flex:1 1 auto !important;max-width:640px !important}
  .hero-h1{font-size:clamp(44px,5.2vw,96px) !important}
  .hero:not(:has(.hero-img)){grid-template-columns:minmax(0,1fr);grid-template-areas:"text"}
}

/* Smaller laptops: keep the menu and booking button on one row */
@media (min-width: 901px) and (max-width: 1400px){
  .navlink{padding:0 10px !important;font-size:12px !important;letter-spacing:0.08em !important}
  header > div > a:first-child{padding:20px 18px !important;font-size:20px !important}
  header > div:last-child{padding:10px 12px !important}
}

/* Tablet and phone */
@media (max-width: 900px){
  .hero{flex-direction:column !important;align-items:stretch !important;min-height:0 !important}
  .hero-img{position:static !important;width:100% !important;height:460px !important;border-left:0 !important;border-bottom:1px solid #3A5272}
  .hero > div{padding-top:48px !important}
  .navlink{min-height:52px !important;padding:0 16px !important;font-size:13px !important}
}
@media (max-width: 600px){
  section > div{padding-left:20px !important;padding-right:20px !important}
  section > div[style*="padding: 120px"]{padding-top:72px !important;padding-bottom:72px !important}
  header > div > a:first-child{padding:16px 20px !important;font-size:22px !important}
  .hero-img{height:380px !important}
}

@media (max-width: 600px){ .section-photo{height:260px !important} }

/* Cream and navy theme: light reading sections */
[data-theme="light"] a{color:#1E2D42}
[data-theme="light"] a:hover{color:#000}
[data-theme="light"] input::placeholder,[data-theme="light"] textarea::placeholder{color:#8A93A0}
body.light{background:#F7F4EF;color:#1E2D42}
body.light a{color:#1E2D42}

/* Header nav always light on navy */
header a.navlink:not([aria-current]){color:#ECE8E0 !important}
header a.navlink[aria-current]{color:#FF7F3A !important}
header a.navlink:hover{color:#FF7F3A !important}

/* Accessibility */
.skip-link{position:absolute;left:12px;top:-60px;z-index:100;padding:12px 18px;background:#EE5E10;color:#FFFFFF !important;font-family:Oswald,sans-serif;font-size:14px;letter-spacing:0.12em;text-transform:uppercase}
.skip-link:focus{top:12px}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none !important;transition:none !important}}

/* Small laptops: keep the longer menu on one row with the booking button */
@media (min-width: 901px) and (max-width: 1100px){
  .navlink{padding:0 8px !important;letter-spacing:0.05em !important}
  header > div > a:first-child{padding:20px 14px !important;font-size:18px !important}
  header > div:last-child{padding:10px 10px !important}
}

/* Typography (Option D): Playfair Display headlines in normal case, Manrope labels and menu */
[style*="Bodoni"]{font-family:"Playfair Display",Georgia,serif !important;text-transform:none !important;font-weight:500 !important;letter-spacing:-0.01em !important;line-height:1.05 !important}
[style*="Oswald"]{font-family:Manrope,sans-serif !important;font-weight:600 !important;letter-spacing:0.08em !important}
.navlink{font-family:Manrope,sans-serif !important;font-weight:600 !important;letter-spacing:0.04em !important;text-transform:none !important;font-size:14px !important}
.hero-h1{font-size:clamp(44px,4.6vw,80px) !important}
.skip-link{font-family:Manrope,sans-serif}
@media (min-width: 901px) and (max-width: 1400px){ .navlink{font-size:13px !important;padding:0 10px !important;letter-spacing:0.02em !important} }
@media (min-width: 901px) and (max-width: 1100px){ .navlink{font-size:12px !important;padding:0 7px !important;letter-spacing:0 !important} header > div > a:first-child{font-size:17px !important;padding:20px 12px !important} }

/* Phone menu: name, Book button and a menu button; links open in a drop-down */
.menu-toggle{display:none}
@media (max-width: 900px){
  .site-header{position:sticky !important;top:0;z-index:50;flex-wrap:nowrap !important;align-items:center !important}
  .site-header .hdr-main{flex:1 1 auto;min-width:0}
  .site-header .logo{border-right:0 !important;padding:16px 16px !important;font-size:19px !important;white-space:nowrap}
  .site-header .main-nav{display:none !important;position:absolute;left:0;right:0;top:100%;flex-direction:column !important;background:#243A57;border-top:1px solid #3A5272;border-bottom:1px solid #3A5272;box-shadow:0 12px 24px rgba(0,0,0,0.18)}
  .site-header.menu-open .main-nav{display:flex !important}
  .site-header .main-nav .navlink{min-height:56px !important;padding:0 20px !important;border-right:0 !important;border-bottom:1px solid #3A5272;font-size:17px !important;letter-spacing:0.01em !important}
  .site-header .hdr-cta{padding:0 4px 0 0 !important}
  .site-header .hdr-cta a{padding:9px 12px !important;font-size:11px !important;gap:8px !important;letter-spacing:0.08em !important}
  .menu-toggle{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:52px;height:52px;margin-right:6px;background:transparent;border:0;cursor:pointer;color:#ECE8E0}
  .menu-toggle .bars,.menu-toggle .bars::before,.menu-toggle .bars::after{display:block;width:22px;height:2px;background:#ECE8E0;position:relative;transition:transform .2s}
  .menu-toggle .bars::before,.menu-toggle .bars::after{content:"";position:absolute;left:0}
  .menu-toggle .bars::before{top:-7px}.menu-toggle .bars::after{top:7px}
  .menu-open .menu-toggle .bars{background:transparent}
  .menu-open .menu-toggle .bars::before{transform:translateY(7px) rotate(45deg)}
  .menu-open .menu-toggle .bars::after{transform:translateY(-7px) rotate(-45deg)}
}
@media (max-width: 900px){
  .site-header .hdr-cta a{font-size:0 !important;padding:11px 14px !important;line-height:1 !important;white-space:nowrap}
  .site-header .hdr-cta a > span{display:none !important}
  .site-header .hdr-cta a::before{content:"Book a call";font-size:13px;letter-spacing:0.06em;font-weight:600;font-family:Manrope,sans-serif;text-transform:uppercase}
  .site-header .logo{font-size:17px !important;padding:16px 12px 16px 16px !important}
}
@media (max-width: 360px){ .site-header .logo{font-size:15px !important;padding:16px 8px 16px 12px !important} .site-header .hdr-cta a{padding:10px 10px !important} }

/* Homepage path cards (Option D): rounded, compact on phones, outline pill buttons */
.path-card{border-radius:16px !important;overflow:hidden;transition:transform .2s, box-shadow .2s;box-shadow:0 6px 20px rgba(30,45,66,.10)}
.path-card:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(30,45,66,.16)}
.arr{font-style:normal}
.btn{border-radius:999px !important}
.path-card .cta{align-self:flex-start;padding:9px 16px;border-radius:999px;border:1.5px solid currentColor;font-family:Manrope,sans-serif !important;text-transform:none !important;letter-spacing:0.01em !important;font-weight:600 !important;font-size:14px !important;line-height:1 !important}
.path-card[href="#longevity"] .cta{color:#243A57 !important}
@media (max-width:600px){
 .path-card{min-height:0 !important;gap:14px !important;padding:20px 20px !important}
 .path-card span[style*="font-size: 40px"]{font-size:24px !important}
 .path-card > span:last-child{gap:14px !important}
}

/* Matching rounded buttons everywhere */
a[style*="min-height: 48px"],a[style*="min-height: 52px"],a[style*="min-height: 56px"],a[style*="min-height: 64px"],
button[type="submit"],.hdr-cta a,.skip-link,a[style*="padding: 10px 18px; border: 1px solid"]{border-radius:999px !important}
a[style*="min-height: 64px"]{padding:0 28px !important}
input[type="email"],input[type="text"],input[type="tel"],select,textarea{border-radius:12px !important}
a[style*="min-height: 52px"],a[style*="min-height: 56px"],button[type="submit"]{transition:filter .15s, transform .15s}
a[style*="min-height: 52px"]:hover,a[style*="min-height: 56px"]:hover,button[type="submit"]:hover{filter:brightness(1.08)}

/* Section labels: plain text with a short rule, so only buttons look tappable */
span[style*="border-radius: 999px"]{border:0 !important;border-radius:0 !important;padding:0 !important;display:block !important;color:#FF7F3A !important;letter-spacing:0.14em !important;font-size:12.5px !important}
span[style*="border-radius: 999px"]::before{content:"";display:inline-block;width:28px;height:1.5px;background:currentColor;vertical-align:middle;margin:-2px 12px 0 0}
[data-theme="light"] span[style*="border-radius: 999px"]{color:#B5440C !important}
section[style*="background: #EE5E10"] span[style*="border-radius: 999px"]{color:#FFFFFF !important}

.hide-m{display:inline}
@media (max-width:600px){ .hide-m{display:none !important} }
@media (max-width:600px){ span[style*="border-radius: 999px"]{letter-spacing:0.1em !important;font-size:12px !important} }

/* Homepage hero tag hidden on phones */
@media (max-width:600px){ .hero-text span.hero-tag{display:none !important} }

/* Phone: tighter spacing, less dead space */
@media (max-width:600px){
  section > div[style*="padding: 1"], section > div[style*="padding: 9"], section > div[style*="padding: 8"]{padding-top:56px !important;padding-bottom:56px !important}
  .hero .hero-text{padding:32px 20px 48px !important}
  .hero .hero-text > div{gap:20px !important}
  .hero-img{height:320px !important;object-position:50% 20% !important}
}

@media (max-width:600px){
 .ind-list{display:grid !important;grid-template-columns:1fr 1fr;gap:10px 16px !important;font-size:18px !important;line-height:1.25 !important}
}

/* What I Use: rounded cards; on phones, name-only tiles that open on tap */
.wiu-grid article{border-radius:14px !important}
.section-photo{border-radius:14px}
@media (max-width:600px){
 .wiu-grid{grid-template-columns:1fr 1fr !important;gap:10px !important;align-items:start}
 .wiu-grid article{position:relative;padding:14px 34px 14px 14px !important;gap:4px !important;cursor:pointer;min-height:84px;justify-content:center}
 .wiu-grid article span[style*="font-size: 13px"]{font-size:10.5px !important;letter-spacing:0.08em !important}
 .wiu-grid article h3{font-size:18px !important;line-height:1.15 !important}
 .wiu-grid article p,.wiu-grid article a{display:none !important}
 .wiu-grid article::after{content:"+";position:absolute;top:10px;right:12px;font-size:20px;line-height:1;color:#B5440C;font-family:Manrope,sans-serif}
 .wiu-grid article.open{grid-column:1 / -1;padding:18px 18px !important;gap:8px !important}
 .wiu-grid article.open::after{content:"\2013"}
 .wiu-grid article.open h3{font-size:22px !important}
 .wiu-grid article.open p{display:block !important;font-size:15px !important;line-height:1.5 !important}
 .wiu-grid article.open a{display:inline-flex !important;min-height:42px !important;font-size:12px !important;margin-top:6px}
 .section-photo{height:200px !important}
}

/* Health Edge on phones: 2x2 stats, tighter numbered lists */
@media (max-width:600px){
 .stat-row{display:grid !important;grid-template-columns:1fr 1fr;gap:24px 16px !important}
 .stat-row span[style*="font-size: clamp(40px"]{font-size:36px !important}
 ol > li[style*="padding: 24px 0"]{padding:16px 0 !important;gap:16px !important}
}

/* FAQ on phones: questions only, answers open on tap */
@media (max-width:600px){
 .faq-item{padding:18px 0 !important;gap:8px !important}
 .faq-item h3{position:relative;padding-right:32px;font-size:22px !important;cursor:pointer}
 .faq-item h3::after{content:"+";position:absolute;right:2px;top:0;font-family:Manrope,sans-serif;font-size:24px;color:#B5440C}
 .faq-item.open h3::after{content:"\2013"}
 .faq-item > p{display:none !important}
 .faq-item.open > p{display:block !important}
}

/* About on phones: career items stacked full width, shorter team photo */
@media (max-width:600px){
 li[style*="grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr)"]{grid-template-columns:1fr !important;gap:8px !important;padding:20px 0 !important}
 li[style*="grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr)"] span[style*="font-size: 28px"]{font-size:24px !important}
 img[src="images/blazers.jpg"]{height:260px !important;border-radius:14px}
}

/* Franchise Fact of the Day */
.fod-card{background:#FFFFFF;border:1px solid #DDD6CB;border-radius:16px;padding:32px;display:flex;flex-direction:column;gap:12px;box-shadow:0 6px 20px rgba(30,45,66,.08)}
.fod-card.fod-locked{background:#243A57;border-color:#243A57;color:#F7F4EF}
.fod-card.fod-locked .fod-body{color:#C9D2DE}
.fod-meta{display:block;font-family:Manrope,sans-serif;font-size:12.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#B5440C}
.fod-locked .fod-meta{color:#FF7F3A}
.fod-hook{margin:0;font-family:"Playfair Display",Georgia,serif;font-weight:500;font-size:clamp(26px,3vw,36px);line-height:1.15}
.fod-body{margin:0;font-size:18px;line-height:1.6;color:#3F4E63;max-width:62ch}
.fod-src{font-size:14px;color:#5B6777}
.fod-src a,.fod-archive a{color:#B5440C !important;text-decoration:underline}
.fod-archive{list-style:none;margin:0;padding:0;border-top:1px solid #DDD6CB}
.fod-archive li{padding:16px 0;border-bottom:1px solid #DDD6CB;color:#4A586B;line-height:1.55}
.fod-archive li strong{color:#1E2D42}
.fod-more{margin-top:16px;font:600 14px Manrope,sans-serif;padding:12px 20px;border-radius:999px;border:1.5px solid #1E2D42;background:transparent;color:#1E2D42;cursor:pointer}
@media (max-width:600px){ .fod-card{padding:22px} .fod-body{font-size:16px} }

/* Career bar: names with orange dots */
.career-bar .cb-name{white-space:nowrap}
.career-bar .cb-dot{color:#FF7F3A;margin:0 14px;font-size:18px}
@media(max-width:600px){.career-bar .cb-name{display:block}.career-bar .cb-dot{display:block;margin:0;line-height:1.1}}

/* Desktop header: no divider boxes, booking button on one line and never cut off */
@media (min-width: 901px){
  .site-header .logo,.site-header .navlink{border-right:0 !important}
  .site-header .hdr-cta{flex:0 0 auto}
  .site-header .hdr-cta a{white-space:nowrap}
  .site-header .hdr-cta a br{display:none}
}
@media (min-width: 901px) and (max-width: 1280px){
  .site-header .hdr-cta a{font-size:0 !important;gap:0 !important;padding:13px 20px !important}
  .site-header .hdr-cta a > span{display:none !important}
  .site-header .hdr-cta a::before{content:"Book a call";font-size:13px;letter-spacing:0.08em;font-weight:600;font-family:Manrope,sans-serif;text-transform:uppercase}
}
