:root{
  --ivory:#FBF5EC;
  --ivory-2:#F5ECDD;
  --maroon:#7C1F2E;
  --maroon-dark:#57121D;
  --gold:#B8863C;
  --gold-light:#D9B579;
  --charcoal:#2A211D;
  --charcoal-soft:#5B4F47;
  --blush:#F1DFCB;
  --line:#E1CFB2;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--ivory);
  color:var(--charcoal);
  font-family:'Jost', sans-serif;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.disp{
  font-family:'Cormorant Garamond', serif;
  color:var(--maroon-dark);
  font-weight:600;
  letter-spacing:0.2px;
}
a{color:inherit; text-decoration:none;}
img,svg{display:block; max-width:100%;}
ul{list-style:none;}
.wrap{max-width:1160px; margin:0 auto; padding:0 32px;}
.eyebrow{
  font-size:12.5px;
  text-transform:uppercase;
  letter-spacing:2.5px;
  color:var(--maroon);
  font-weight:700;
  display:flex;
  align-items:center;
  gap:10px;
}
.eyebrow::before{
  content:"";
  width:22px; height:1px;
  background:var(--gold);
  display:inline-block;
}
.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:14px 30px;
  border-radius:2px;
  font-family:'Jost', sans-serif;
  font-weight:700;
  font-size:14.5px;
  letter-spacing:0.4px;
  cursor:pointer;
  border:1px solid transparent;
  transition:all .2s ease;
}
.btn-primary{background:var(--maroon); color:var(--ivory); outline:none;}
.btn-primary:focus-visible{ box-shadow: none;border-color:transparent;}
.btn-primary:active,.btn-primary:hover,.btn-primary:focus-visible{background:var(--maroon-dark) !important;border: 1px solid transparent !important;}
.btn-ghost{background:transparent; color:var(--maroon-dark); border-color:var(--maroon-dark);}
.btn-ghost:hover{background:var(--maroon-dark); color:var(--ivory);}

.scallop{
  height:16px; width:100%;
  background:radial-gradient(circle at 8px 0, transparent 8px, var(--ivory) 8.5px) top/16px 16px repeat-x;
}
.scallop.on-blush{
  background:radial-gradient(circle at 8px 0, transparent 8px, var(--blush) 8.5px) top/16px 16px repeat-x;
}
.scallop.flip{ transform:rotate(180deg); }

/* ---------- NAV ---------- */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(251,245,236,0.94);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:10px 0;
}
.logo{display:flex; align-items:center; gap:10px;}
.logo img{height:100px; width:auto; display:block;}
.navlinks{display:flex; gap:34px; align-items:center;}
.navlinks a{font-size:16px; font-weight:600; color:var(--charcoal-soft);}
.navlinks a:hover{color:var(--maroon);}
.nav-right{display:flex; align-items:center; gap:14px; flex-shrink:0;}
.navcta{display:flex; align-items:center; gap:12px; flex-shrink:0;}
.navcta .btn{padding:10px 20px; font-size:13.5px;}
.navtoggle{
  display:none;
  width:38px; height:38px;
  border:1px solid var(--line);
  background:transparent;
  border-radius:2px;
  align-items:center; justify-content:center;
  cursor:pointer;
  flex-shrink:0;
}
.navtoggle span, .navtoggle span::before, .navtoggle span::after{
  content:"";
  display:block;
  width:18px; height:2px;
  background:var(--maroon-dark);
  position:relative;
  transition:transform .2s ease, opacity .2s ease;
}
.navtoggle span::before{position:absolute; top:-6px;}
.navtoggle span::after{position:absolute; top:6px;}
.navtoggle.open span{background:transparent;}
.navtoggle.open span::before{transform:translateY(6px) rotate(45deg);}
.navtoggle.open span::after{transform:translateY(-6px) rotate(-45deg);}

.mobile-menu{
  display:none;
  flex-direction:column;
  gap:2px;
  padding:8px 0 18px;
  border-top:1px solid var(--line);
}
.mobile-menu a{
  padding:12px 4px;
  font-size:15px;
  font-weight:600;
  color:var(--charcoal-soft);
  border-bottom:1px solid var(--line);
}
.mobile-menu a:hover{color:var(--maroon);}
.mobile-menu.open{display:flex;}

/* account block stays beside the hamburger at every width — compact it down instead of hiding it */
@media (max-width:560px){
  .navcta .btn{ padding:9px 14px; font-size:12.5px; }
  .user-trigger{ padding:6px 10px; gap:6px; }
  .user-trigger .user-name{ display:none; }
  .user-chevron{ display:none; }
}

/* ---------- USER MENU (self-contained — no Bootstrap JS dependency) ---------- */
.user-menu{ position:relative; }
.user-trigger{
  display:flex; align-items:center; gap:10px;
  background:transparent;
  border:1px solid var(--line);
  border-radius:2px;
  padding:8px 14px;
  cursor:pointer;
  font-family:'Jost', sans-serif;
}
.user-trigger:hover{ border-color:var(--gold); }
.user-trigger[aria-expanded="true"] .user-chevron{ transform:rotate(180deg); }
.user-avatar{
  width:26px; height:26px;
  border-radius:50%;
  background:var(--maroon);
  color:var(--ivory);
  font-size:12px; font-weight:700;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.user-name{
  font-size:14px; font-weight:600;
  color:var(--charcoal);
  max-width:140px;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.user-chevron{ color:var(--charcoal-soft); transition:transform .15s ease; flex-shrink:0; }

.user-dropdown{
  display:none;
  position:absolute;
  top:calc(100% + 10px);
  right:0;
  z-index:1000;
  min-width:190px;
  background:var(--ivory);
  border:1px solid var(--line);
  border-radius:4px;
  box-shadow:0 12px 28px rgba(42,33,29,0.14);
  padding:8px;
}
.user-dropdown.open{ display:block; }
.user-dropdown-link{
  display:block;
  width:100%;
  text-align:left;
  background:transparent;
  border:none;
  font-family:'Jost', sans-serif;
  font-size:14.5px;
  font-weight:600;
  color:var(--charcoal);
  padding:10px 12px;
  border-radius:2px;
  cursor:pointer;
}
.user-dropdown-link:hover{ background:var(--blush); color:var(--maroon-dark); }
.user-dropdown-logout{ color:var(--maroon); }
.user-dropdown-logout:hover{ color:var(--maroon-dark); }

/* ---------- HERO ---------- */
.hero{ padding:78px 0 60px; background:linear-gradient(180deg, var(--ivory) 0%, var(--ivory-2) 100%); }
.hero-grid{ display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:center; }
.hero h1{ font-size:52px; line-height:1.12; margin-bottom:22px; }
.hero h1 em{ font-style:italic; color:var(--maroon); }
.hero p.lede{ font-size:17.5px; color:var(--charcoal-soft); max-width:460px; margin-bottom:30px; }
.hero-actions{ display:flex; gap:14px; margin-bottom:34px; flex-wrap:wrap; }
.hero-trust{ display:flex; gap:28px; flex-wrap:wrap; padding-top:22px; border-top:1px solid var(--line); }
.hero-trust div b{ display:block; font-family:'Cormorant Garamond', serif; font-size:25px; color:var(--maroon-dark); font-weight:600; }
.hero-trust div span{ font-size:12.5px; color:var(--charcoal-soft); }
.arch-frame{ position:relative; }

/* ---------- STATS STRIP ---------- */
.stats{ background:var(--maroon-dark); color:var(--ivory); padding:38px 0; }
.stats .wrap{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; text-align:center; }
.stats b{ display:block; font-family:'Cormorant Garamond', serif; font-size:34px; font-weight:600; color:var(--gold-light); }
.stats span{ font-size:12.5px; letter-spacing:0.4px; color:#E8D9C4; }

/* ---------- SECTION GENERIC ---------- */
section.pad{ padding:88px 0; }
.section-head{ max-width:620px; margin-bottom:48px; }
.section-head h2{ font-size:38px; margin-top:12px; line-height:1.2; }
.section-head p{ color:var(--charcoal-soft); font-size:16px; margin-top:14px; }

/* ---------- ABOUT ---------- */
.about{ background:var(--blush); }
.about-grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:60px; align-items:center; }
.about-list{ margin-top:26px; display:flex; flex-direction:column; gap:16px;padding: 0; }
.about-list li{ display:flex; gap:14px; align-items:flex-start; font-size:15px; color:var(--charcoal-soft); }
.about-list li .mark{
  flex-shrink:0; width:26px; height:26px;
  border:1px solid var(--gold); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--maroon); font-family:'Cormorant Garamond', serif; font-weight:600; font-size:14px;
}

/* ---------- HOW IT WORKS ---------- */
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:10px; }
.step{ position:relative; padding:0 20px 0 20px; border-right:1px dashed var(--line); }
.step:last-child{ border-right:none; padding-right:0; }
.step-num{ font-family:'Cormorant Garamond', serif; font-size:44px; font-weight:600; color:var(--gold); line-height:1; margin-bottom:14px; }
.step h3{ font-size:19px; margin-bottom:8px; }
.step p{ font-size:14px; color:var(--charcoal-soft); }

/* ---------- TEAM ---------- */
section#team{background:var(--ivory-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.team-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
.team-card{ background:var(--ivory-2); border:1px solid var(--line); padding:28px 22px 24px; text-align:center; }
.team-avatar{
  width:100%; height:auto; border-radius:0; margin:0 auto 18px;
  background:var(--blush); border:1px solid var(--gold-light);
  display:flex; align-items:center; justify-content:center;
}
.team-avatar img {width: 100%;height: 250px;object-fit: contain;object-position: top;}
.team-card h3{ font-size:24px; margin-bottom:2px; }
.team-role{ font-size:12px; letter-spacing:0.5px; text-transform:uppercase; color:var(--gold); font-weight:700; margin-bottom:12px; }
.team-card p{ font-size:16px; color:var(--charcoal-soft); }
/* header row: text on the left, arrows on the right */
.team-section-head{display:flex; align-items:flex-end; justify-content:space-between;gap:20px; flex-wrap:wrap;}
.carousel-arrows{ display:flex; gap:10px; flex-shrink:0; }
.carousel-arrow{width:42px; height:42px;border-radius:50%;border:1px solid var(--line);background:var(--ivory);color:var(--maroon-dark);display:flex; align-items:center; justify-content:center;cursor:pointer;transition:all .2s ease;}
.carousel-arrow:hover{ background:var(--maroon); border-color:var(--maroon); color:var(--ivory); }
.team-carousel{ position:relative; margin-top:10px; }
.team-track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:4px;}
.team-track::-webkit-scrollbar{ display:none; }
.team-track .team-card{flex:0 0 calc(25% - 18px);scroll-snap-align:start;background:var(--ivory-2);border:1px solid var(--line);padding:28px 22px 24px;text-align:center;}
.team-track .team-avatar{width:84px; height:84px;border-radius:50%;margin:0 auto 18px;overflow:hidden;background:var(--blush);border:1px solid var(--gold-light);}
.team-track .team-avatar img{ width:100%; height:100%; object-fit:cover; display:block; }
.team-track .team-card h3{ font-size:18px; margin-bottom:6px; }
.team-track .team-card p{ font-size:13.5px; color:var(--charcoal-soft); }
/* ---------- multiple team carousels stacked under one section ---------- */
.team-block{ margin-top:56px; }
.team-block:first-of-type{ margin-top:10px; }
.team-block-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;}
.team-block-head h3{font-family:'Cormorant Garamond', serif;font-size:24px;color:var(--maroon-dark);font-weight:600;}
/* the arrows no longer live next to the big section title (section-head),
   they now sit next to each team-block's own sub-heading instead */
.team-block-head .carousel-arrows{ display:flex; gap:10px; flex-shrink:0; }
/* applied by team-carousel.js when a team has too few members to need scrolling —
   renders the real cards centered and static instead of a scroll track */
/*.team-track.static-row{overflow-x:visible;scroll-snap-type:none;justify-content:center;flex-wrap:wrap;}*/
.team-track.static-row{overflow-x:visible;scroll-snap-type:none;flex-wrap:wrap;}
/*.team-track.static-row .team-card{flex:0 0 260px;}*/
@media (max-width:920px){
  .team-track .team-card{ flex:0 0 calc(50% - 12px); }
}
@media (max-width:560px){
  .team-block{ margin-top:44px; }
  .team-block-head .carousel-arrows{ display:none; }
  .team-track .team-card{ flex:0 0 85%; }
  .carousel-arrows{ display:none; }
}

.carousel-dots{ display:flex; justify-content:center; gap:8px; margin-top:24px;display: none !important; }
.carousel-dot{width:8px; height:8px;border-radius:50%;background:var(--line);border:none;padding:0;cursor:pointer;transition:background .2s ease, transform .2s ease;}
.carousel-dot.active{ background:var(--maroon); transform:scale(1.3); }

/* ---------- TESTIMONIALS ---------- */
.testimonials{ background:var(--maroon-dark); color:var(--ivory); }
.testimonials .section-head h2{ color:var(--ivory); }
.testimonials .section-head p{ color:#E8D9C4; }
.testi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.testi-card{ background:rgba(251,245,236,0.06); border:1px solid rgba(216,181,121,0.35); padding:28px 24px; }
.testi-quote{ font-family:'Cormorant Garamond', serif; font-style:italic; font-size:18px; line-height:1.5; color:#F5ECDD; margin-bottom:18px; }
.testi-who{ font-size:13px; color:var(--gold-light); font-weight:700; }
.testi-loc{ font-size:12px; color:#C9B393; }

/* ---------- CTA ---------- */
.cta{ background:var(--gold); padding:64px 0; }
.cta-inner{ display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap; }
.cta h2{ color:var(--maroon-dark); font-size:32px; max-width:480px; }
.cta p{ color:#4A3410; margin-top:8px; font-size:15px; }
.cta .btn-primary{ background:var(--maroon-dark); }
.cta .btn-primary:hover{ background:var(--charcoal); border: 1px solid transparent !important;}

/* ---------- Candidate Profile ---------- */
.profile.section{ background-color: var(--blush);}
.profile .card { background-color: #f5ecdd; border: 1px solid var(--line);}
.profile .card-header h4{ margin-bottom: 0;}

/* ---------- FOOTER ---------- */
footer{ background:var(--charcoal); color:#D8C9B6; padding:56px 0 26px; }
.foot-grid{
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:36px;
  padding-bottom:36px; border-bottom:1px solid rgba(216,181,121,0.2);
}
footer h4{ font-size:13px; text-transform:uppercase; letter-spacing:1px; color:var(--gold-light); margin-bottom:16px; font-weight:700; }
footer .flinks{ display:flex; flex-direction:column; gap:10px; padding: 0;}
footer .flinks a{ font-size:14px; color:#C9BAA6; }
footer .flinks a:hover{ color:var(--ivory); }
footer .flogo{ margin-bottom:14px; }
footer .flogo img{ width:auto; display:block; }
footer .fdesc{ font-size:13.5px; max-width:280px; color:#B7A791; }
.foot-bottom{ padding-top:22px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:12.5px; color:#8C7C68; }

/* ---------- RESPONSIVE ---------- */
@media (min-width:576px){
  .wrap{max-width:540px;}
}
@media (min-width:768px){
  .wrap{max-width:720px;}
}
@media (min-width:992px){
  .wrap{max-width:960px;}
}
@media (min-width:1200px){
  .wrap{max-width:1140px;}
}
@media (min-width:1400px){
  .wrap{max-width:1320px;}
}
@media (max-width:1400px){
  section.pad{padding: 65px 0;}
}
@media (max-width:1200px){
  section.pad{padding: 50px 0;}
}
@media (max-width:920px){
  .navlinks{display:none;}
  .navtoggle{display:flex;}
  .hero-grid{grid-template-columns:1fr; gap:40px;}
  .hero h1{font-size:38px;}
  .about-grid{grid-template-columns:1fr;}
  .stats .wrap{grid-template-columns:repeat(2,1fr); row-gap:26px;}
  .steps{grid-template-columns:repeat(2,1fr); row-gap:32px;}
  .step{border-right:none;}
  .team-grid{grid-template-columns:repeat(2,1fr);}
  .testi-grid{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr 1fr;}
  .cta-inner{flex-direction:column; align-items:flex-start;}
}
@media (max-width:767px){
  .section-head {margin-bottom: 30px;}
  .section-head h2 {font-size: 32px;}
  .step {padding: 0;}
  .steps{grid-template-columns:repeat(1,1fr); row-gap:5px;}
}
@media (max-width:560px){
  .wrap{padding:0 20px;}
  .hero h1{font-size:32px;}
  .team-grid{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{transition:none !important;}
}
a:focus-visible, button:focus-visible{ outline:2px solid var(--maroon); outline-offset:2px; }