/* ── COMPANIONS — SHARED STYLES ── */
:root {
  --cream:      #FAF7F2;
  --cream-dark: #F0EBE1;
  --royal:      #1B3FA8;
  --royal-dark: #122D7A;
  --royal-light:#E8EEFB;
  --logo-blue:  #5B8DC9;
  --logo-light: #83B8EC;
  --accent:     #B5723A;
  --accent-light:#F5EAE0;
  --accent-dark: #8A5228;
  --white:      #FFFFFF;
  --gray:       #8C8880;
  --dark:       #1C1C1A;
  --dark-blue:  #2A3F6F;
  --border:     rgba(27,63,168,0.12);
  --radius:     4px;
  --radius-lg:  12px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'DM Sans',sans-serif;background:var(--cream);color:var(--dark);line-height:1.6;font-size:16px;-webkit-font-smoothing:antialiased;padding-top:68px;}

/* ── NAV ── */
nav{position:fixed;top:0;left:0;right:0;z-index:9999;background:#FFFFFF;border-bottom:1px solid var(--border);padding:0 2rem;height:68px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 16px rgba(0,0,0,.08);}
/* ── TEXT LOGO (nav + footer) ── */
.nav-logo-text{font-family:'Playfair Display',serif;font-size:24px;font-weight:500;color:var(--royal);text-decoration:none;letter-spacing:-.3px;}
.nav-logo-text:hover{color:var(--accent);}
.footer-logo-text{font-family:'Playfair Display',serif;font-size:22px;font-weight:500;color:rgba(255,255,255,.9);letter-spacing:-.3px;}
.nav-logo img{height:42px;width:auto;display:block;max-width:180px;object-fit:contain;}
.nav-links{display:flex;align-items:center;gap:1.75rem;list-style:none;}
.nav-links a{font-size:14px;font-weight:500;color:var(--royal);text-decoration:none;transition:color .2s;}
.nav-links a:hover,.nav-links a.active{color:var(--accent);}
.nav-links a.active{border-bottom:2px solid var(--accent);padding-bottom:2px;}
.nav-cta{background:var(--royal)!important;color:var(--white)!important;padding:10px 20px;border-radius:100px;font-weight:500!important;font-size:13px!important;transition:background .2s!important;border-bottom:none!important;}
.nav-cta:hover{background:var(--accent-dark)!important;}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;padding:4px;}
.nav-toggle span{display:block;width:22px;height:1.5px;background:var(--royal);transition:all .3s;}

/* ── BUTTONS ── */
.btn-primary{background:var(--royal);color:var(--white);padding:14px 28px;border-radius:100px;font-size:15px;font-weight:500;text-decoration:none;display:inline-block;transition:background .2s,transform .15s;letter-spacing:.01em;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;}
.btn-primary:hover{background:var(--accent-dark);transform:translateY(-1px);}
.btn-secondary{color:var(--dark-blue);font-size:14px;font-weight:400;text-decoration:none;display:inline-flex;align-items:center;gap:6px;transition:color .2s;}
.btn-secondary:hover{color:var(--royal);}
.btn-secondary::after{content:'→';}
.btn-outline{border:1.5px solid var(--royal);color:var(--royal);padding:12px 24px;border-radius:100px;font-size:14px;font-weight:500;text-decoration:none;display:inline-block;transition:background .2s,color .2s;}
.btn-outline:hover{background:var(--royal);color:var(--white);}
.btn-accent{background:var(--accent);color:var(--white);padding:14px 28px;border-radius:100px;font-size:15px;font-weight:500;text-decoration:none;display:inline-block;transition:background .2s,transform .15s;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;}
.btn-accent:hover{background:var(--accent-dark);transform:translateY(-1px);}

/* ── PAGE HERO (inner pages) ── */
.page-hero{padding:4rem 5rem 4rem;background:var(--royal);position:relative;overflow:hidden;}
.page-hero::after{content:'';position:absolute;right:-100px;top:-100px;width:500px;height:500px;border-radius:50%;background:var(--royal-dark);opacity:.5;}
.page-hero-content{position:relative;z-index:1;max-width:640px;}
.page-eyebrow{font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--logo-light);margin-bottom:.75rem;}
.page-title{font-family:'Playfair Display',serif;font-size:clamp(32px,4vw,52px);font-weight:500;line-height:1.15;color:var(--white);margin-bottom:1rem;letter-spacing:-.3px;}
.page-title em{font-style:italic;color:var(--accent);}
.page-subtitle{font-size:17px;font-weight:300;color:rgba(255,255,255,.7);line-height:1.7;max-width:520px;}

/* ── SECTION STYLES ── */
section{padding:5rem;}
.section-eyebrow{font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:.75rem;}
.section-title{font-family:'Playfair Display',serif;font-size:clamp(26px,3vw,38px);font-weight:500;line-height:1.2;letter-spacing:-.3px;color:var(--royal);margin-bottom:1.25rem;}
.section-title em{font-style:italic;color:var(--accent);}
.section-body{font-size:17px;font-weight:300;color:var(--dark-blue);line-height:1.85;max-width:580px;}
.section-body p{margin-bottom:1.25rem;}
.section-body p:last-child{margin-bottom:0;}

/* ── STATS BAR ── */
.stats-bar{background:var(--royal);padding:2.5rem 5rem;display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;}
.stat-item{text-align:center;}
.stat-number{font-family:'Playfair Display',serif;font-size:34px;font-weight:500;color:var(--white);line-height:1;margin-bottom:.4rem;}
.stat-label{font-size:12px;font-weight:300;color:rgba(255,255,255,.6);line-height:1.5;}

/* ── CARDS ── */
.card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2rem;transition:border-color .2s,transform .2s,box-shadow .2s;}
.card:hover{border-color:var(--logo-blue);transform:translateY(-3px);box-shadow:0 12px 32px rgba(27,63,168,.1);}
.card-top-bar{height:4px;background:var(--royal);border-radius:var(--radius-lg) var(--radius-lg) 0 0;margin:-2rem -2rem 1.5rem;}

/* ── HIGHLIGHT BOX ── */
.highlight-box{background:var(--accent-light);border-left:3px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;padding:1rem 1.25rem;font-size:15px;font-weight:400;color:var(--accent-dark);font-style:italic;line-height:1.6;}

/* ── PHOTO BREAK ── */
.photo-break{position:relative;height:400px;overflow:hidden;}
.photo-break img{width:100%;height:100%;object-fit:cover;object-position:center 30%;display:block;}
.photo-break-overlay{position:absolute;inset:0;background:linear-gradient(to right,rgba(27,63,168,.75) 0%,rgba(27,63,168,.35) 55%,transparent 100%);display:flex;align-items:center;padding:0 5rem;}
.photo-break-quote{font-family:'Playfair Display',serif;font-size:clamp(20px,2.5vw,32px);font-weight:400;font-style:italic;color:var(--white);max-width:480px;line-height:1.4;}

/* ── FAQ ── */
.faq-list{list-style:none;}
.faq-item{border-bottom:1px solid var(--border);}
.faq-item:first-child{border-top:1px solid var(--border);}
.faq-question{width:100%;background:none;border:none;text-align:left;padding:1.25rem 0;display:flex;justify-content:space-between;align-items:center;gap:1rem;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:16px;font-weight:500;color:var(--royal);transition:color .2s;}
.faq-question:hover{color:var(--accent);}
.faq-icon{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:300;color:var(--gray);flex-shrink:0;transition:transform .25s,background .2s;line-height:1;}
.faq-item.open .faq-icon{transform:rotate(45deg);background:var(--accent);border-color:var(--accent);color:var(--white);}
.faq-answer{font-size:15px;font-weight:300;color:var(--dark-blue);line-height:1.8;max-height:0;overflow:hidden;transition:max-height .35s ease,padding .3s;}
.faq-item.open .faq-answer{max-height:400px;padding-bottom:1.25rem;}

/* ── FORMS ── */
.form-block{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2rem;margin-bottom:1.5rem;}
.form-block-title{font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--royal);margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border);}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.form-group{display:flex;flex-direction:column;gap:6px;}
.form-group.full{grid-column:1/-1;}
label{font-size:12px;font-weight:500;color:var(--gray);letter-spacing:.04em;text-transform:uppercase;}
input,select,textarea{font-family:'DM Sans',sans-serif;font-size:14px;font-weight:300;color:var(--dark);background:var(--cream);border:1px solid rgba(27,63,168,.15);border-radius:var(--radius);padding:11px 14px;outline:none;transition:border-color .2s;width:100%;}
input:focus,select:focus,textarea:focus{border-color:var(--royal);}
textarea{resize:none;}
select{appearance:none;cursor:pointer;}
.radio-group{display:flex;flex-wrap:wrap;gap:10px;}
.radio-pill{display:flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--border);border-radius:100px;cursor:pointer;font-size:13px;font-weight:400;color:var(--dark-blue);transition:border-color .2s,background .2s;}
.radio-pill:has(input:checked){border-color:var(--royal);background:var(--royal-light);color:var(--royal);}
.radio-pill input{display:none;}
.checkbox-group{display:flex;flex-direction:column;gap:10px;}
.checkbox-item{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:14px;font-weight:300;color:var(--dark-blue);line-height:1.5;}
.checkbox-item input[type="checkbox"]{width:16px;height:16px;flex-shrink:0;margin-top:2px;accent-color:var(--royal);cursor:pointer;padding:0;}
.form-note{font-size:12px;color:var(--gray);text-align:center;margin-top:1rem;line-height:1.6;}
.success-msg{display:none;background:#EAF3DE;border:1px solid #C0DD97;border-radius:var(--radius-lg);padding:2rem;text-align:center;color:#27500A;font-size:15px;line-height:1.6;}

/* ── PLAN CARDS ── */
.plan{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2rem;position:relative;transition:border-color .2s,transform .2s;display:flex;flex-direction:column;}
.plan:hover{border-color:var(--logo-blue);transform:translateY(-3px);}
.plan.featured{border-color:var(--accent);background:var(--royal);}
.plan-badge{display:inline-block;font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;background:var(--accent);color:var(--white);padding:4px 10px;border-radius:100px;margin-bottom:1.25rem;}
.plan-name{font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--gray);margin-bottom:.5rem;}
.plan.featured .plan-name{color:rgba(255,255,255,.55);}
.plan-price{font-family:'Playfair Display',serif;font-size:40px;font-weight:500;color:var(--royal);line-height:1;margin-bottom:.25rem;letter-spacing:-1px;}
.plan.featured .plan-price{color:var(--white);}
.plan-period{font-size:13px;color:var(--gray);margin-bottom:1.5rem;}
.plan.featured .plan-period{color:rgba(255,255,255,.5);}
.plan-divider{height:1px;background:var(--border);margin-bottom:1.5rem;}
.plan.featured .plan-divider{background:rgba(255,255,255,.15);}
.plan-features{list-style:none;display:flex;flex-direction:column;gap:.75rem;margin-bottom:2rem;flex:1;}
.plan-features li{font-size:14px;font-weight:300;color:var(--dark-blue);display:flex;align-items:flex-start;gap:10px;line-height:1.5;}
.plan.featured .plan-features li{color:rgba(255,255,255,.75);}
.plan-features li::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--accent);flex-shrink:0;margin-top:7px;}
.plan-cta{display:block;text-align:center;padding:12px;border-radius:100px;font-size:14px;font-weight:500;text-decoration:none;transition:all .2s;border:1.5px solid var(--royal);color:var(--royal);background:transparent;}
.plan-cta:hover{background:var(--royal);color:var(--white);}
.plan.featured .plan-cta{background:var(--accent);border-color:var(--accent);color:var(--white);}
.plan.featured .plan-cta:hover{background:var(--accent-dark);border-color:var(--accent-dark);}

/* ── STEP NUMBERS ── */
.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--border);border-radius:var(--radius-lg);overflow:hidden;}
.step{background:var(--white);padding:2.5rem 2rem;text-align:left;}
.step-num{font-family:'Playfair Display',serif;font-size:48px;font-weight:400;color:var(--cream-dark);line-height:1;margin-bottom:1rem;letter-spacing:-1px;}
.step-title{font-size:16px;font-weight:500;color:var(--royal);margin-bottom:.5rem;}
.step-desc{font-size:14px;font-weight:300;color:var(--dark-blue);line-height:1.7;}

/* ── TEAM CARDS ── */
.team-card{background:var(--white);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border);transition:transform .2s,box-shadow .2s;}
.team-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(27,63,168,.1);}
.team-photo{height:420px;background:var(--cream-dark);overflow:hidden;}
.team-photo img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;}
.team-info{padding:1.5rem 1.25rem 2rem;}
.team-name{font-family:'Playfair Display',serif;font-size:20px;font-weight:500;color:var(--royal);margin-bottom:4px;}
.team-role{font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--logo-blue);margin-bottom:.75rem;}
.team-bio{font-size:14px;font-weight:300;color:var(--gray);line-height:1.65;}

/* ── CTA BAND ── */
.cta-band{background:var(--royal);padding:5rem;display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;}
.cta-band-title{font-family:'Playfair Display',serif;font-size:clamp(26px,3vw,38px);font-weight:500;color:var(--white);line-height:1.2;margin-bottom:.75rem;letter-spacing:-.3px;}
.cta-band-title em{font-style:italic;color:var(--accent);}
.cta-band-sub{font-size:15px;font-weight:300;color:rgba(255,255,255,.65);line-height:1.7;margin-bottom:1.5rem;}
.cta-form{display:flex;flex-direction:column;gap:1rem;}
.cta-form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.cta-form .form-group label{color:rgba(255,255,255,.5);}
.cta-form input,.cta-form select,.cta-form textarea{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);color:var(--white);}
.cta-form input::placeholder,.cta-form textarea::placeholder{color:rgba(255,255,255,.3);}
.cta-form input:focus,.cta-form select:focus,.cta-form textarea:focus{border-color:var(--accent);}
.cta-form select{color:rgba(255,255,255,.65);}
.cta-form select option{background:var(--royal);}
.cta-form textarea{height:90px;}
.cta-note{font-size:12px;color:rgba(255,255,255,.35);margin-top:.5rem;}

/* ── FOOTER ── */
footer{background:var(--royal);border-top:1px solid rgba(255,255,255,.08);padding:3rem 5rem;}
.footer-inner{display:grid;grid-template-columns:1fr 2fr 1fr;gap:3rem;align-items:start;}
.footer-logo img{height:36px;width:auto;filter:brightness(0) invert(1);opacity:.85;}
.footer-tagline{font-size:12px;color:rgba(255,255,255,.4);margin-top:.5rem;}
.footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 2rem;}
.footer-nav a{font-size:13px;color:rgba(255,255,255,.5);text-decoration:none;transition:color .2s;}
.footer-nav a:hover{color:var(--white);}
.footer-contact{font-size:13px;color:rgba(255,255,255,.5);line-height:1.8;}
.footer-contact a{color:rgba(255,255,255,.5);text-decoration:none;transition:color .2s;}
.footer-contact a:hover{color:var(--white);}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);margin-top:2.5rem;padding-top:1.5rem;display:flex;justify-content:space-between;align-items:center;font-size:12px;color:rgba(255,255,255,.25);}

/* ── APPLY BAND ── */
.apply-band{background:var(--cream-dark);border-top:1px solid var(--border);padding:2.5rem 5rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap;}
.apply-band-title{font-family:'Playfair Display',serif;font-size:20px;font-weight:500;color:var(--royal);margin-bottom:4px;}
.apply-band-sub{font-size:14px;font-weight:300;color:var(--gray);}
.apply-band-actions{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;}

/* ── ANIMATIONS ── */
.fade-up{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease;}
.fade-up.visible{opacity:1;transform:translateY(0);}
.delay-1{transition-delay:.1s;}
.delay-2{transition-delay:.2s;}
.delay-3{transition-delay:.3s;}

/* ── MOBILE ── */
@media(max-width:900px){
  nav{padding:0 1.25rem;}
  .nav-links{display:none;flex-direction:column;position:absolute;top:68px;left:0;right:0;background:var(--cream);padding:1.5rem;gap:1.25rem;border-bottom:1px solid var(--border);z-index:99;}
  .nav-links.open{display:flex;}
  .nav-toggle{display:flex;}
  .page-hero{padding:90px 1.5rem 3rem;}
  section{padding:3.5rem 1.5rem;}
  .stats-bar{grid-template-columns:repeat(2,1fr);padding:2.5rem 1.5rem;}
  .steps-grid{grid-template-columns:1fr;}
  .cta-band{grid-template-columns:1fr;gap:2.5rem;padding:4rem 1.5rem;}
  .cta-form-row{grid-template-columns:1fr;}
  .form-grid{grid-template-columns:1fr;}
  .apply-band{padding:2rem 1.5rem;flex-direction:column;align-items:flex-start;}
  .photo-break{height:260px;}
  .photo-break-overlay{padding:0 1.5rem;}
  footer{padding:2.5rem 1.5rem;}
  .footer-inner{grid-template-columns:1fr;}
  .footer-bottom{flex-direction:column;gap:.5rem;text-align:center;}
}
