/* =========================================================
   Legendary Homecare Agency — Main Stylesheet
   Brand: Green / Navy / Gold / White
   ========================================================= */

/* ---- Local fonts (vendored, no external requests) ---- */
@font-face{
  font-family:"Fraunces";
  src:url("../fonts/fraunces/fraunces-latin-400-normal.woff2") format("woff2");
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Fraunces";
  src:url("../fonts/fraunces/fraunces-latin-600-normal.woff2") format("woff2");
  font-weight:600; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Fraunces";
  src:url("../fonts/fraunces/fraunces-latin-700-normal.woff2") format("woff2");
  font-weight:700; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Fraunces";
  src:url("../fonts/fraunces/fraunces-latin-400-italic.woff2") format("woff2");
  font-weight:400; font-style:italic; font-display:swap;
}
@font-face{
  font-family:"Fraunces";
  src:url("../fonts/fraunces/fraunces-latin-600-italic.woff2") format("woff2");
  font-weight:600; font-style:italic; font-display:swap;
}
@font-face{
  font-family:"Fraunces";
  src:url("../fonts/fraunces/fraunces-latin-700-italic.woff2") format("woff2");
  font-weight:700; font-style:italic; font-display:swap;
}
@font-face{
  font-family:"Inter";
  src:url("../fonts/inter/inter-latin-400-normal.woff2") format("woff2");
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Inter";
  src:url("../fonts/inter/inter-latin-500-normal.woff2") format("woff2");
  font-weight:500; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Inter";
  src:url("../fonts/inter/inter-latin-600-normal.woff2") format("woff2");
  font-weight:600; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Inter";
  src:url("../fonts/inter/inter-latin-700-normal.woff2") format("woff2");
  font-weight:700; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Inter";
  src:url("../fonts/inter/inter-latin-800-normal.woff2") format("woff2");
  font-weight:800; font-style:normal; font-display:swap;
}

:root{
  /* Brand palette sampled from the approved design mockups */
  --lh-green-dark:#06401f;
  --lh-green:#0b5d2e;
  --lh-green-mid:#0f7a3d;
  --lh-green-soft:#e9f5ee;
  --lh-mint:#eef8f2;
  --lh-navy:#0b2f63;
  --lh-navy-dark:#082347;
  --lh-gold:#f0c24b;
  --lh-gold-dark:#d9a72e;
  --lh-white:#ffffff;
  --lh-ink:#1b2430;
  --lh-muted:#54606d;
  --lh-border:#e1e7e2;

  --font-display:"Fraunces", Georgia, "Times New Roman", serif;
  --font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;

  --radius-lg:18px;
  --radius-md:12px;
  --radius-sm:8px;
  --shadow-card:0 10px 30px rgba(8,35,71,.08);
  --shadow-btn:0 8px 18px rgba(11,93,46,.25);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth; overflow-x:hidden;}
body{
  font-family:var(--font-body);
  color:var(--lh-ink);
  background:var(--lh-white);
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.font-display{
  font-family:var(--font-display);
  color:var(--lh-navy);
  font-weight:600;
  line-height:1.15;
}
a{color:var(--lh-green); text-decoration:none;}
a:hover{color:var(--lh-green-mid);}
img{max-width:100%; height:auto; display:block;}
.container-x{max-width:1240px; margin-inline:auto; padding-inline:1rem;}

/* Focus visibility for accessibility */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:3px solid var(--lh-gold-dark);
  outline-offset:2px;
}
.skip-link{
  position:absolute; left:-999px; top:0; background:var(--lh-navy); color:#fff;
  padding:.75rem 1.25rem; z-index:2000; border-radius:0 0 8px 0; font-weight:600;
}
.skip-link:focus{left:0;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
  .county-marquee{overflow:visible; -webkit-mask-image:none; mask-image:none;}
  .county-marquee-track{flex-wrap:wrap; width:auto; transform:none !important;}
}

/* ---------------- Top info bar ---------------- */
.top-bar{
  background:var(--lh-white);
  position:relative;
  padding:.7rem 0;
}
.top-bar::after{
  content:"";
  position:absolute; left:0; right:0; bottom:0; height:4px;
  background:linear-gradient(90deg, var(--lh-green) 0%, var(--lh-green) 38%, var(--lh-gold) 50%, var(--lh-green) 62%, var(--lh-green) 100%);
}
.top-bar-inner{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem;
}
.brand-lockup{display:flex; align-items:center; gap:.75rem; text-decoration:none;}
.brand-lockup img{height:115px!important; width:auto;}
.brand-tagline{
  font-family:var(--font-display); font-style:italic; color:var(--lh-navy);
  font-size:2.02rem; text-align:center; margin:0;
}
.brand-tagline small{
  display:block; font-family:var(--font-body); font-style:normal; color:var(--lh-green);
  font-weight:700; font-size:.72rem; letter-spacing:.04em;
}

/* Vertical contact stack — icon + text rows, matches reference design */
.top-contact-stack{
  display:flex; flex-direction:column; gap:.3rem; padding-left:1.4rem; position:relative;
}
.top-contact-stack::before{
  content:""; position:absolute; left:0; top:2px; bottom:2px; width:1px; background:var(--lh-green); opacity:.35;
}
.tc-row{display:flex; align-items:center; gap:.55rem; font-size:.94rem; line-height:1.25;}
.tc-icon{
  width:26px; height:26px; border-radius:7px; background:var(--lh-green);
  color:#fff; display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:.85rem;
}
.tc-row a{color:var(--lh-navy); font-weight:700;}
.tc-row a:hover{color:var(--lh-green);}
.tc-label{display:block; font-size:.72rem; color:var(--lh-navy); font-weight:600; line-height:1.2;}
.tc-phone{font-size:1.08rem; color:var(--lh-green) !important; font-weight:800 !important;}

.tc-mobile-call{
  align-items:center; gap:.55rem; text-decoration:none; margin-left:auto;
}
.tc-mobile-call span:last-child{color:var(--lh-green); font-weight:800; font-size:1.02rem;}

/* ---------------- Navigation ---------------- */
.main-nav{background:var(--lh-green-dark);}
.navbar{padding:0;}
.navbar-nav{align-items:stretch;}
.navbar-nav .nav-item{display:flex; align-items:stretch;}
.navbar-nav .nav-link{
  color:#fff !important; font-weight:600; padding:8px 1.25rem !important;
  display:flex; align-items:center; transition:background-color .18s ease, color .18s ease;
}
.navbar-nav .nav-link:hover,
.navbar-nav .nav-link:focus{background:rgba(255,255,255,.1);}
.navbar-nav .nav-link.active{
  background:var(--lh-gold); color:var(--lh-navy-dark) !important; font-weight:800;
}
.navbar-nav .nav-link.active:hover{background:var(--lh-gold);}
.navbar-nav .dropdown-menu{
  border-radius:var(--radius-sm); border:none; box-shadow:0 18px 40px rgba(6,64,31,.22); padding:.5rem;
  margin-top:0 !important; position:static;
}
.navbar-nav .dropdown-item{
  font-weight:600; color:var(--lh-navy); padding:.6rem .95rem; border-radius:6px;
  transition:background-color .15s ease, color .15s ease, padding-left .15s ease;
}
.navbar-nav .dropdown-item:hover,
.navbar-nav .dropdown-item:focus{background:var(--lh-green-soft); color:var(--lh-green-dark); padding-left:1.15rem;}
.navbar-nav .dropdown-item.active{background:var(--lh-green); color:#fff;}
.nav-cta{
  background:linear-gradient(135deg, #ffdd85 0%, var(--lh-gold) 55%, var(--lh-gold-dark) 100%);
  color:var(--lh-navy-dark) !important; font-weight:800;
  padding:.65rem 1.35rem !important; border-radius:999px; margin:.6rem 0 .6rem 1rem;
  border:1px solid rgba(255,255,255,.5);
  box-shadow:0 6px 18px rgba(217,167,46,.45), 0 2px 5px rgba(8,35,71,.15);
  transition:transform .25s ease, box-shadow .25s ease, background .3s ease;
  animation:navCtaGlow 3.4s ease-in-out infinite;
}
.nav-cta:hover{
  background:linear-gradient(135deg, #ffe6a3 0%, var(--lh-gold-dark) 60%, var(--lh-gold-dark) 100%);
  color:var(--lh-navy-dark) !important;
  transform:translateY(-2px);
  box-shadow:0 10px 26px rgba(217,167,46,.6), 0 3px 8px rgba(8,35,71,.2);
}
@keyframes navCtaGlow{
  0%,100%{box-shadow:0 6px 18px rgba(217,167,46,.45), 0 2px 5px rgba(8,35,71,.15);}
  50%{box-shadow:0 6px 24px rgba(217,167,46,.75), 0 2px 5px rgba(8,35,71,.15);}
}
.navbar-toggler{border-color:rgba(255,255,255,.5);}
.navbar-toggler-icon{
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255,255,255,1)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* ---------------- Unified mobile header ----------------
   Below the nav breakpoint (991.98px) the full top info bar (tagline,
   phone/email/address stack) is hidden and the nav row itself becomes
   a single line: logo on the left, hamburger toggle on the right —
   the standard mobile header pattern. Contact info moves into the
   collapsible menu itself so it's never lost, just tucked away. */
.nav-mobile-brand{display:none; align-items:center; text-decoration:none;}
.nav-mobile-brand img{height:40px; width:auto; display:block;}
.mobile-nav-contact{display:none;}
@media (max-width:991.98px){
  .top-bar{display:none;}
  .main-nav .container-x{
    display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.75rem;
    margin-inline:0; width:100%; max-width:100%;
  }
  .nav-mobile-brand{display:flex;}

  .navbar-toggler{margin:.6rem 0 !important; padding:.4rem .55rem;}
  .navbar-collapse{flex:0 0 100%; width:100%;}
  .mobile-nav-contact{
    display:flex; flex-direction:column; gap:.65rem; padding:1rem 1.1rem 1.2rem; margin-top:.4rem;
    border-top:1px solid rgba(255,255,255,.18);
  }
  .mobile-nav-contact a{
    color:#fff; font-weight:700; font-size:.95rem; display:flex; align-items:center; gap:.6rem;
  }
  .mobile-nav-contact .bi{color:var(--lh-gold); font-size:1.05rem; width:1.2rem; text-align:center;}
  .nav-cta{display:block; text-align:center; margin:.3rem 1.1rem .9rem !important;}
  
}

/* Hoverable dropdown (desktop only) — smooth fade + slide, Bootstrap click/keyboard still works */
@media (min-width:992px){
  .navbar-nav .dropdown-menu{
    display:block;
    position:absolute;
    min-width:14rem;
    opacity:0;
    visibility:hidden;
    transform:translateY(8px);
    transition:opacity .22s ease, transform .22s ease, visibility .22s;
    pointer-events:none;
  }
  .navbar-nav .dropdown:hover > .dropdown-menu,
  .navbar-nav .dropdown-menu.show{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
    pointer-events:auto;
  }
  .navbar-nav .dropdown-toggle::after{
    transition:transform .22s ease; vertical-align:.15em;
  }
  .navbar-nav .dropdown:hover > .dropdown-toggle::after{transform:rotate(180deg);}
}

/* ---------------- Buttons ---------------- */
.btn-lh-green{
  background:var(--lh-green); color:#fff; border:2px solid var(--lh-green);
  font-weight:700; padding:.75rem 1.5rem; border-radius:999px; box-shadow:var(--shadow-btn);
  transition:.2s ease;
}
.btn-lh-green:hover{background:var(--lh-green-mid); border-color:var(--lh-green-mid); color:#fff;}
.btn-lh-outline{
  background:transparent; color:var(--lh-navy); border:2px solid var(--lh-navy);
  font-weight:700; padding:.75rem 1.5rem; border-radius:999px; transition:.2s ease;
}
.btn-lh-outline:hover{background:var(--lh-navy); color:#fff;}
.btn-lh-white{
  background:#fff; color:var(--lh-navy); border:2px solid #fff;
  font-weight:700; padding:.75rem 1.5rem; border-radius:999px;
}
.btn-lh-white:hover{background:transparent; color:#fff;}
.btn-lh-gold{
  background:linear-gradient(135deg, #ffdd85 0%, var(--lh-gold) 55%, var(--lh-gold-dark) 100%);
  color:var(--lh-navy-dark); border:2px solid var(--lh-gold-dark);
  font-weight:800; padding:.85rem 1.6rem; border-radius:999px;
  box-shadow:0 8px 20px rgba(217,167,46,.4), 0 2px 5px rgba(8,35,71,.12);
  transition:transform .22s ease, box-shadow .22s ease, background .3s ease;
}
.btn-lh-gold:hover{
  background:linear-gradient(135deg, #ffe6a3 0%, var(--lh-gold-dark) 60%, var(--lh-gold-dark) 100%);
  border-color:var(--lh-gold-dark);
  transform:translateY(-2px);
  box-shadow:0 12px 26px rgba(217,167,46,.5), 0 3px 8px rgba(8,35,71,.16);
}

/* ---------------- Hero (Home) ---------------- */
.hero{
  /*padding:0 0 1.25rem;*/
  position:relative;
}
.hero-feature{
  display:flex; flex-direction:column; align-items:center; gap:.35rem; font-weight:700; color:var(--lh-navy);
  font-size:.92rem; white-space:nowrap;
}
.hero-feature .bi{font-size:40px; color:var(--lh-green);}
.blue{
  color: #0b2f63!important;
}
.hero h1{font-size:clamp(2rem,3.6vw,2.85rem); font-style:italic;}
.hero h1 .accent{color:var(--lh-green);}
.hero-lede{font-size:1.1rem; color:var(--lh-ink); max-width:40ch;}

/* Full-bleed hero banner — spans the entire viewport width (breaks out of
   the container), real photo asset as background, with a soft white
   overlay behind the left-hand text for legibility. No rounded corners. */
.hero-banner{
  position:relative; width:100vw; left:50%; right:50%; margin-left:-50vw; margin-right:-50vw;
  overflow:hidden; min-height:460px; display:flex; align-items:center;
}
.hero-banner-bg{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; z-index:0;
}
.hero-banner::before{
  content:"";
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(90deg, rgba(255,255,255,.98) 0%, rgba(255,255,255,.95) 32%, rgba(255,255,255,.65) 52%, rgba(255,255,255,0) 72%);
}
.hero-banner-content{
  position:relative; z-index:2; padding:2.5rem 2.5rem 2.5rem calc((100vw - 1240px) / 2 + 1rem); max-width:680px;
}
@media (max-width:1300px){
  .hero-banner-content{padding-left:2.5rem;}
}
.hero-quote-badge{
  position:absolute; z-index:2; top:72%; right:4%; width:17%; min-width:150px;
  color:var(--lh-gold); font-family:var(--font-display); font-style:italic;
  font-size:1.05rem; line-height:1.3; text-align:center;
  background:rgba(6,64,31,.42); backdrop-filter:blur(2px);
  border-radius:var(--radius-md); padding:.9rem .7rem;
}
.hero-quote-badge .bi{color:var(--lh-gold); font-size:1rem; margin-top:.35rem; display:block;}

@media (max-width:991.98px){
  .hero-banner{min-height:0; display:block;}
  .hero-banner-bg{display:none;}
  .hero-banner::before{display:none;}
  .hero-banner-content{
    max-width:none; padding:1.5rem 1.25rem; background:#fff;
  }
  .hero-banner-content h1,
  .hero-banner-content .hero-lede{color:var(--lh-ink);}
  .hero-banner-content h1{color:var(--lh-navy);}
  .hero-banner-content h1 .accent{color:var(--lh-green);}
  .hero-quote-badge{
    position:static; width:auto; margin:1rem 1.25rem 0; text-align:right; color:var(--lh-navy);
    background:none; padding:0;
  }
.dnonemobile{
  display: none;
}

}

/* Community strip — real photo asset with baked-in "Proudly Serving..." text,
   paired with a live navy "Now Accepting New Clients" panel */
.community-strip{
  position:relative; overflow:hidden;
  box-shadow:var(--shadow-card); display:flex; min-height:150px;
}
.community-strip .town-bg{
  flex:1 1 60%; position:relative; min-width:0;
}
.community-strip .town-bg img{width:100%; height:100%; object-fit:cover; display:block;}
.community-strip .now-accepting{
  flex:1 1 35%; background:var(--lh-navy); color:#fff; display:flex; flex-direction:column;
  justify-content:center; padding:1.5rem 2rem; position:relative;
}
.community-strip .now-accepting .eyebrow{color:#fff; font-weight:800; font-size:1.5rem; line-height:1.1;}
.community-strip .now-accepting .headline{color:var(--lh-gold); font-weight:800; font-size:2.1rem; line-height:1.1; margin-bottom:.5rem;}
.community-strip .now-accepting p{margin:0; color:#dfe8ff; font-size:.95rem;}
@media (max-width:767.98px){
  .community-strip{flex-direction:column;}
  .community-strip .now-accepting{padding:1.25rem 1.5rem;}
}


/* ---------------- Section basics ---------------- */
.section{padding:3.5rem 0;}
.section-title{display:flex; align-items:baseline; gap:.9rem; flex-wrap:wrap; margin-bottom:.4rem;}
.section-title h2{font-size:clamp(1.8rem,3vw,2.4rem); margin:0;}
.section-subtitle{
  font-family:var(--font-display); font-style:italic; color:var(--lh-green-dark); font-size:1.05rem; margin:0;
  border-left:2px solid var(--lh-border); padding-left:.9rem;
}
.section-head-row{display:flex; align-items:flex-end; justify-content:space-between; flex-wrap:wrap; gap:1rem; margin-bottom:2rem;}

/* Service cards */
.svc-card{
  background:var(--lh-mint); border-radius:var(--radius-md); padding:1.15rem 1rem; height:100%;
  border:1px solid #dff0e6; transition:transform .2s ease, box-shadow .2s ease;
}
.svc-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-card);}
.svc-icon{
  width:75px; height:75px; border-radius:50%; background:var(--lh-green); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:1.2rem; margin-bottom:.75rem;
}
.svc-card h3{font-size:.98rem; color:var(--lh-navy); line-height:1.25;}
.svc-card p{color:var(--lh-muted); font-size:.82rem; margin-bottom:.85rem; line-height:1.45;}
.svc-photo{border-radius:var(--radius-sm); overflow:hidden; margin-bottom:.85rem; aspect-ratio:4/3;}
.svc-photo img{width:100%;}
.svc-card .btn-lh-outline.btn-sm{font-size:.78rem; padding:.45rem .9rem;}

/* Why choose / help panels */
.panel-navy{
  background:var(--lh-navy); color:#fff; border-radius:var(--radius-lg); padding:2.3rem;
}
.panel-navy h2{color:#fff;}
.panel-navy .lede{font-family:var(--font-display); font-style:italic; color:#dfe8ff; font-size:1.05rem;}
.check-list{list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:.6rem 1.4rem;}
.check-list li{display:flex; gap:.55rem; align-items:flex-start;}
.check-list .bi{color:var(--lh-green); font-size:1.2rem; flex-shrink:0;}

.panel-light{
  background:var(--lh-mint); border-radius:var(--radius-lg); padding:2.3rem; height:100%;
}
.panel-light h2{font-size:1.8rem;}
.panel-light .lede{font-family:var(--font-display); font-style:italic; color:var(--lh-green-dark); font-size:1.1rem;}
.call-chip{
  display:inline-flex; align-items:center; gap:.9rem; background:#fff; border-radius:999px;
  padding:.6rem .6rem .6rem 1rem; box-shadow:var(--shadow-card); margin-top:1rem;
}
.call-chip .icon-badge{
  width:44px; height:44px; border-radius:50%; background:var(--lh-green); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:1.3rem;
}
.call-chip a{color:var(--lh-navy); font-weight:800; font-size:14px;}
.audience-list{list-style:none; padding:0; margin:1.2rem 0 1.3rem; display:grid; gap:.5rem;}
.audience-list li{display:flex; gap:.6rem; align-items:center; font-weight:600;     font-size: 14px; color:var(--lh-navy);}
.audience-list .bi{color:var(--lh-green); font-size:1.15rem;}

/* Stat / feature strip */
.feature-strip{
  background:var(--lh-green-dark); color:#fff; border-radius:var(--radius-lg); padding:1.6rem 2rem;
  display:flex; flex-wrap:wrap; gap:1.5rem; justify-content:space-around; align-items:center;
}
.feature-strip .item{display:flex; align-items:center; gap:.6rem; font-weight:700;}
.feature-strip .bi{color:var(--lh-gold); font-size:1.4rem;}

/* Page hero (inner pages) */
.page-hero{
  background:linear-gradient(120deg,var(--lh-navy-dark) 0%, var(--lh-navy) 55%, var(--lh-green-dark) 100%);
  color:#fff; padding:3.4rem 0 5.5rem; position:relative; overflow:hidden;
}
.page-hero::before{
  content:""; position:absolute; right:-60px; top:-60px; width:260px; height:260px;
  background:radial-gradient(circle,rgba(240,194,75,.2),transparent 70%);
}
.page-hero::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:80px;
  background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%201440%20100%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20d%3D%27M0%2C55%20C240%2C100%20480%2C15%20720%2C58%20C960%2C100%201200%2C20%201440%2C55%20L1440%2C100%20L0%2C100%20Z%27%20fill%3D%27%23ffffff%27/%3E%3Cpath%20d%3D%27M0%2C55%20C240%2C100%20480%2C15%20720%2C58%20C960%2C100%201200%2C20%201440%2C55%27%20fill%3D%27none%27%20stroke%3D%27%23f0c24b%27%20stroke-width%3D%275%27/%3E%3C/svg%3E") no-repeat bottom center / 100% 100%;
  pointer-events:none;
}
.page-hero .container-x{position:relative; z-index:1;}
.page-hero .eyebrow{color:var(--lh-gold); font-weight:800; letter-spacing:.03em; margin-bottom:.2rem; display:block;}
.page-hero h1{color:#fff; font-style:italic; font-size:clamp(2rem,4vw,2.9rem);}
.page-hero p.lede{font-size:1.1rem; color:#e7edff; max-width:60ch;}
.page-hero .quote{font-family:var(--font-display); font-style:italic; color:var(--lh-gold); font-size:1.25rem;}
.breadcrumb-lh{font-size:.85rem; color:#cfe0d8; margin-bottom:.8rem;}
.breadcrumb-lh a{color:#cfe0d8; text-decoration:underline;}

/* Pills / mini icon row */
.mini-pill-row{display:flex; flex-wrap:wrap; gap:1.6rem; margin-top:1.5rem;}
.mini-pill{display:flex; align-items:center; gap:.5rem; font-weight:700; color:#fff;}
.mini-pill .bi{color:var(--lh-gold);}

/* Photo hero — full-bleed photo background with dark gradient overlay for
   white text legibility. Used on About, Careers, Referrals, Founder's Story. */
.photo-hero{
  position:relative; width:100vw; left:50%; right:50%; margin-left:-50vw; margin-right:-50vw;
  overflow:hidden; min-height:400px; display:flex; align-items:center; color:#fff;
}
.photo-hero-bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;}
.photo-hero::before{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(90deg, rgba(6,35,71,.92) 0%, rgba(6,64,31,.82) 40%, rgba(6,64,31,.25) 68%, transparent 85%);
}
.photo-hero-content{
  position:relative; z-index:2; padding:2.75rem 2.5rem 2.75rem calc((100vw - 1240px) / 2 + 1rem);
  max-width:640px;
}
@media (max-width:1300px){.photo-hero-content{padding-left:2.5rem;}}
.photo-hero-content .eyebrow{color:var(--lh-gold); font-weight:800; letter-spacing:.03em; margin-bottom:.2rem; display:block;}
.photo-hero-content h1{color:#fff; font-style:normal; font-weight:800; font-size:clamp(2rem,3.8vw,2.9rem); line-height:1.08;}
.photo-hero-content h1 .accent{color:var(--lh-gold);}
.photo-hero-content .subtitle{
  display:block; font-family:var(--font-display); font-style:italic; color:var(--lh-gold);
  font-size:1.35rem; margin-top:.15rem;
}
.photo-hero-content p.lede{font-size:1.05rem; color:#eef2ff; max-width:56ch; margin-top:1rem;}
.photo-hero-quote{
  position:absolute; z-index:2; top:69%; right:4%; width:16%; min-width:140px;
  color:var(--lh-gold); font-family:var(--font-display); font-style:italic;
  font-size:1.05rem; line-height:1.3; text-align:center;
  background:rgba(6,64,31,.4); backdrop-filter:blur(2px);
  border-radius:var(--radius-md); padding:.8rem .65rem;
}
.photo-hero-quote .bi{color:var(--lh-gold); font-size:1rem; margin-top:.35rem; display:block;}
.photo-hero-strip{
  position:relative; z-index:2;
  background:var(--lh-green-dark); padding:1.4rem 0 4.5rem;
}
.photo-hero-strip::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:72px;
  background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%201440%20100%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20d%3D%27M0%2C55%20C240%2C100%20480%2C15%20720%2C58%20C960%2C100%201200%2C20%201440%2C55%20L1440%2C100%20L0%2C100%20Z%27%20fill%3D%27%23ffffff%27/%3E%3Cpath%20d%3D%27M0%2C55%20C240%2C100%20480%2C15%20720%2C58%20C960%2C100%201200%2C20%201440%2C55%27%20fill%3D%27none%27%20stroke%3D%27%23f0c24b%27%20stroke-width%3D%275%27/%3E%3C/svg%3E") no-repeat bottom center / 100% 100%;
  pointer-events:none;
}
.photo-hero-strip .icon-row{
  display:flex; justify-content:center; gap:2.5rem; flex-wrap:wrap; position:relative; z-index:1;
}
.photo-hero-strip .icon-item{display:flex; align-items:center; gap:.5rem; font-weight:700; color:#fff; font-size:.95rem;}
.photo-hero-strip .icon-item .bi{color:var(--lh-gold); font-size:1.25rem;}
.photo-hero-strip.text-only{text-align:center; font-weight:800; letter-spacing:.04em; font-size:.85rem; color:#fff;}

@media (max-width:991.98px){
  .photo-hero{min-height:0; display:block; background:var(--lh-green-dark);}
  .photo-hero-bg{display:none;}
  .photo-hero::before{display:none;}
  .photo-hero-content{
    max-width:none; padding:1.1rem 1.25rem 1.4rem; position:static;
    background:var(--lh-green-dark);
  }
  .photo-hero-content h1{font-size:1.7rem;}
  .photo-hero-content .subtitle{font-size:1.05rem;}
  .photo-hero-content .lede{font-size:.92rem; margin-top:.5rem; line-height:1.45;}
  .contact-hero-icons{margin-top:.85rem; gap:1.2rem;display: none !important;}
  .contact-hero-icon .circle{width:42px; height:42px; font-size:1rem;}
  .contact-hero-icon{font-size:.75rem;}
  .photo-hero-quote{
    position:static; width:auto; margin:0 1.25rem .75rem; text-align:left;
    background:none; padding:0;
  }
  .photo-hero-strip{position:static; padding:1rem 1.25rem 3.5rem; margin-top:-1px;}
  .photo-hero-strip .icon-row{justify-content:flex-start; gap:1.25rem 2rem;}
  .eligibility-callout{display: none;}
}

/* Value / icon grid (Our Mission, Our Vision, etc.) */
.value-card{height:100%;}
.value-card .value-icon{
  width:75px; height:75px; border-radius:50%; background:var(--lh-mint); color:var(--lh-green);
  display:flex; align-items:center; justify-content:center; font-size:1.4rem; margin-bottom:.9rem;
}
.value-card i{
  font-size: 36px;
}
.value-card ul li i{
  font-size: 15px!important;
}
.value-card h3{font-size:1.05rem; margin-bottom:.4rem;}
.value-card p{font-size:.9rem; color:var(--lh-muted); margin:0;}

/* Referral / audience cards (5-across, like services grid) */
.audience-card{
  background:var(--lh-mint); border-radius:var(--radius-md); padding:1.3rem 1.1rem; height:100%;
  border:1px solid #dff0e6;
}
.audience-card.navy-variant{background:var(--lh-navy); border-color:var(--lh-navy); color:#fff;}
.audience-card .aud-icon{
  width:46px; height:46px; border-radius:50%; background:var(--lh-green); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:1.2rem; margin-bottom:.75rem;
}
.audience-card.navy-variant .aud-icon{background:var(--lh-gold); color:var(--lh-navy-dark);}
.audience-card h3{font-size:1rem; color:var(--lh-navy); margin-bottom:.6rem; line-height:1.25;}
.audience-card.navy-variant h3{color:#fff;}
.audience-card ul{list-style:none; padding:0; margin:0 0 .9rem; display:grid; gap:.4rem;}
.audience-card ul li{display:flex; gap:.4rem; align-items:flex-start; font-size:.82rem; color:var(--lh-ink);}
.audience-card ul li .bi{color:var(--lh-green); flex-shrink:0; margin-top:.15rem;}
.audience-card.navy-variant p{font-size:.85rem; color:#dfe8ff;}
.audience-card .btn-lh-green.btn-sm,
.audience-card .btn-lh-outline.btn-sm{font-size:.8rem; padding:.45rem .9rem;}

/* Numbered step list */
.numbered-step{display:flex; gap:.9rem; align-items:flex-start; margin-bottom:1rem;}
.numbered-step .num{
  width:32px; height:32px; border-radius:50%; background:var(--lh-green); color:#fff; font-weight:800;
  display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:.9rem;
}
.numbered-step p{margin:0; font-size:.92rem; color:var(--lh-ink); padding-top:.3rem;}

/* Photo with overlaid pull-quote (Together We Build a Stronger Tomorrow) */
.photo-quote-card{position:relative; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-card);}
.photo-quote-card img{width:100%; height:100%; object-fit:cover; display:block; min-height:220px;}
.photo-quote-card .overlay-quote{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); text-align:center;
  color:#fff; font-family:var(--font-display); font-style:italic; font-size:1.3rem; line-height:1.3;
  text-shadow:0 2px 12px rgba(0,0,0,.55); width:80%;
}
.photo-quote-card .overlay-quote .bi{color:var(--lh-gold); display:block; margin-top:.4rem;}

/* Cards generic */
.card-lh{
  background:#fff; border:1px solid var(--lh-border); border-radius:var(--radius-md);
  padding:1.6rem; box-shadow:var(--shadow-card);
}
.card-lh h3{font-size:1.2rem;}

/* Founder's story */
.founder-photo-card{border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-card);}
.founder-photo-card img{width:100%; width: 100%;
    height: 500px;
    aspect-ratio: 0 / 0;
    object-fit: cover;}
.founder-caption{padding:1rem 1.2rem; color:#fff;}
.founder-caption.navy{background:var(--lh-navy);}
.founder-caption.green{background:var(--lh-green-dark);}
.founder-caption h3{color:#fff; font-size:1.25rem; margin-bottom:.15rem;}
.founder-caption p{margin:0; font-size:.9rem; color:#e6ecf5;}
.pull-quote{
  background:var(--lh-mint); border-left:4px solid var(--lh-gold); padding:1.3rem 1.6rem;
  font-family:var(--font-display); font-style:italic; color:var(--lh-navy); font-size:1.2rem; border-radius:0 var(--radius-sm) var(--radius-sm) 0;
}
.promise-icon{
  width:64px; height:64px; border-radius:50%; background:var(--lh-mint); color:var(--lh-green);
  display:flex; align-items:center; justify-content:center; font-size:1.8rem; margin:0 auto 1rem;
}

/* Service area / county chips */
.county-chip-list{display:flex; flex-wrap:wrap; gap:.6rem; margin:1.2rem 0 0;}
.county-chip{
  background:var(--lh-white); border:1.5px solid var(--lh-green); color:var(--lh-green-dark);
  font-weight:700; padding:.45rem 1rem; border-radius:999px; font-size:.92rem;
  transition:background-color .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}

/* Marquee-style auto-scrolling county strip (homepage service-area section) */
.county-marquee{
  overflow:hidden; margin:1.2rem 0 0; position:relative;
  -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
  mask-image:linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
}
.county-marquee-track{
  display:flex; align-items:center; gap:.6rem; width:max-content;
  animation:countyMarquee 26s linear infinite;
}
.county-marquee:hover .county-marquee-track,
.county-marquee:focus-within .county-marquee-track{animation-play-state:paused;}
.county-marquee .county-chip{flex-shrink:0; cursor:default;}
.county-marquee .county-chip:hover{
  background:var(--lh-green); color:#fff; transform:translateY(-2px);
  box-shadow:0 6px 16px rgba(6,64,31,.25);
}
/* The marquee's own container fade-in (via .panel-light) is enough context for
   entrance motion — individual chips stay fully visible so the continuous
   scroll never fights the one-time scroll-reveal fade used elsewhere on the site. */
.county-marquee .county-chip{opacity:1 !important; transform:none !important;}
@keyframes countyMarquee{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
@media (max-width:575.98px){
  .county-marquee-track{animation-duration:18s;}
}

@media (max-width:991.98px){
  .navbar-nav .dropdown-menu{
    background:rgba(255,255,255,.06); box-shadow:none; padding:.25rem 0 .25rem 1rem; border-radius:0;
  }
  .navbar-nav .dropdown-item{color:#fff; padding:.6rem .5rem;}
  .navbar-nav .dropdown-item:hover,
  .navbar-nav .dropdown-item:focus{background:rgba(255,255,255,.12); color:#fff;}
  .navbar-nav .dropdown-item.active{background:var(--lh-gold); color:var(--lh-navy-dark);}
  .navbar-nav .nav-item{display:block;}
  .navbar-nav .nav-link{padding:.85rem 1rem !important;}
}

/* Get Care tab pills — override Bootstrap's default active-pill blue */
#getCareTabs .nav-link.active.btn-lh-green{
  background:var(--lh-green) !important; border-color:var(--lh-green) !important; color:#fff !important;
}
#getCareTabs .nav-link.btn-lh-outline{
  background:transparent !important; color:var(--lh-navy) !important; border-color:var(--lh-navy) !important;
}
#getCareTabs .nav-link.btn-lh-outline.active{
  background:var(--lh-navy) !important; color:#fff !important;
}

/* Forms */
.form-card{background:#fff; border-radius:var(--radius-lg); box-shadow:var(--shadow-card); padding:2rem;}
.form-label{font-weight:700; color:var(--lh-navy);}
.form-control,.form-select{
  border-radius:var(--radius-sm); border:1.5px solid var(--lh-border); padding:.65rem .9rem;
}
.form-control:focus,.form-select:focus{
  border-color:var(--lh-green); box-shadow:0 0 0 .2rem rgba(11,93,46,.15);
}
.form-hint{font-size:.82rem; color:var(--lh-muted);}
.honeypot-field{position:absolute; left:-9999px; top:-9999px; opacity:0; height:0; width:0; overflow:hidden;}
.required-mark{color:#b3261e;}

/* Steps / process */
.step-card{display:flex; gap:1rem; align-items:flex-start;}
.step-num{
  width:42px; height:42px; border-radius:50%; background:var(--lh-navy); color:#fff; font-weight:800;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}

/* Job listing */
.job-card{border:1px solid var(--lh-border); border-radius:var(--radius-md); padding:1.5rem; background:#fff;}
.job-card .badge-type{
  background:var(--lh-green-soft); color:var(--lh-green-dark); font-weight:700; font-size:.78rem;
  padding:.3rem .7rem; border-radius:999px; display:inline-block;
}

/* Accordion tweaks */
.accordion-button{font-weight:700; color:var(--lh-navy);}
.accordion-button:not(.collapsed){background:var(--lh-green-soft); color:var(--lh-green-dark);}
.accordion-button:focus{box-shadow:0 0 0 .2rem rgba(11,93,46,.15);}

/* CTA band */
.cta-band{
  background:linear-gradient(120deg,var(--lh-green-dark),var(--lh-green));
  color:#fff; border-radius:var(--radius-lg); padding:2.6rem; text-align:center;
}
.cta-band h2{color:#fff;}
.cta-band p{color:#e3f3e9;}

/* ---------------- Footer ---------------- */
.site-footer{background:var(--lh-green-dark); color:#dce8e0; padding:0;}
.site-footer h3{color:#fff; font-size:1.05rem; margin-bottom:1rem;}
.site-footer a{color:#dce8e0;}
.site-footer a:hover{color:var(--lh-gold);}

/* Footer bar — logo+QSP | tagline | nav links + contact info,
   matching the approved reference design */
.footer-top{
  background:linear-gradient(180deg, rgba(255,255,255,.03), transparent 40%), var(--lh-green-dark);
  padding:1.3rem 0;
}
.footer-top-inner{
  display:flex; align-items:center; gap:1.8rem;
}
.ft-col{min-width:0;}
.ft-brand{
  flex:0 0 auto; display:flex; flex-direction:column; gap:.35rem; align-items:flex-start;
  border-right:1px solid rgba(240,194,75,.5); padding-right:1.8rem;
}
.ft-logo-img{height:95px; width:auto; display:block;}
.ft-qsp{font-size:.62rem; font-weight:700; letter-spacing:.04em; color:#e7f0ea; white-space:nowrap;}
.ft-tagline{
  flex:0 0 auto; border-right:1px solid rgba(240,194,75,.5); padding-right:1.8rem;
  font-family:var(--font-display); font-style:italic; color:#fff; font-size:1.05rem; line-height:1.25;
  text-align:center;
}
.ft-links-contact{flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:.5rem;}
.ft-nav{display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; font-weight:700; font-size:.92rem;}
.ft-nav a{color:#fff;}
.ft-nav a:hover{color:var(--lh-gold);}
.ft-nav span{color:var(--lh-gold); opacity:.6;}
.ft-contact-row-inline{display:flex; flex-wrap:wrap; gap:1.1rem 1.5rem; font-size:.85rem;}
.ft-contact-row-inline span{display:flex; align-items:center; gap:.4rem; color:#dce8e0; white-space:nowrap;}
.ft-contact-row-inline .bi{color:var(--lh-gold);}
.ft-contact-row-inline a{color:#dce8e0; font-weight:600;}
.ft-contact-row-inline a:hover{color:var(--lh-gold);}

/* Standalone gold divider (heart between two rules) — reused in quote panels */
.ft-motto-divider{
  display:flex; align-items:center; justify-content:center; gap:.6rem; margin:.5rem 0; color:var(--lh-gold);
}
.ft-motto-divider::before,
.ft-motto-divider::after{content:""; height:1px; width:70px; background:var(--lh-gold);}

@media (max-width:991.98px){
  .footer-top-inner{flex-direction:column; align-items:stretch; text-align:center; gap:1.1rem;}
  .ft-brand,.ft-tagline{
    border-right:none; padding-right:0; border-bottom:1px solid rgba(240,194,75,.5); padding-bottom:1.1rem;
    align-items:center;
  }
  .ft-nav,.ft-contact-row-inline{justify-content:center;}
}

.footer-links{list-style:none; padding:0; margin:0; display:grid; gap:.55rem;}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.15); margin-top:2.2rem; padding:1.2rem 0; font-size:.85rem;
}
.footer-bottom .container-x{display:flex; flex-wrap:wrap; justify-content:space-between; gap:.6rem; align-items:center;}
.social-row{display:flex; gap:.6rem;}
.social-row a{
  width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.12); color:#fff;
  display:flex; align-items:center; justify-content:center;
}
.social-row a:hover{background:var(--lh-gold); color:var(--lh-navy-dark);}

/* Sticky mobile call bar */
.mobile-call-bar{
  position:fixed; bottom:0; left:0; right:0; z-index:1030; background:var(--lh-green-dark);
  display:flex; box-shadow:0 -6px 18px rgba(0,0,0,.2);
}
.mobile-call-bar a{
  flex:1; text-align:center; padding:.85rem .5rem; color:#fff; font-weight:700; font-size:.92rem;
  display:flex; flex-direction:column; align-items:center; gap:.15rem;
}
.mobile-call-bar a:first-child{background:var(--lh-gold); color:var(--lh-navy-dark);}
.mobile-call-bar .bi{font-size:1.2rem;}
@media (min-width:768px){.mobile-call-bar{display:none;}}
body{padding-bottom:0;}
@media (max-width:767.98px){body{padding-bottom:64px;}}

/* ---------------- Our Impact page: testimonials + photo panels ---------------- */
.testimonial-card{
  background:var(--lh-mint); border-radius:var(--radius-md); padding:1.3rem 1.2rem; height:100%;
  border:1px solid #dff0e6;
}
.testimonial-card .tc-avatar{
  width:50px; height:50px; border-radius:50%; background:var(--lh-green); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:1.4rem; margin-bottom:.8rem;
}
.testimonial-card p{font-size:.88rem; font-style:italic; color:var(--lh-ink); margin-bottom:.8rem;}
.testimonial-card .tc-name{font-weight:800; color:var(--lh-navy); font-size:.9rem;}
.testimonial-card .tc-role{font-size:.78rem; color:var(--lh-muted);}

.impact-photo-panel{
  position:relative; border-radius:var(--radius-lg); overflow:hidden; min-height:220px;
  display:flex; align-items:flex-end; padding:1.5rem; color:#fff; height:100%;
}
.impact-photo-panel img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;}
.impact-photo-panel::before{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(6,35,71,.1) 30%, rgba(6,35,71,.8) 100%);
}
.impact-photo-panel .ipp-text{position:relative; z-index:2;}
.impact-photo-panel h3{font-family:var(--font-display); font-style:italic; font-weight:600; font-size:1.4rem; color:#fff; margin-bottom:0; line-height:1.2;}
.impact-photo-panel .bi{color:var(--lh-gold); margin-top:.5rem; display:block; font-size:.95rem;}

.impact-cta-panel{
  background:var(--lh-mint); border-radius:var(--radius-lg); padding:1.8rem 1.6rem; height:100%;
  display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:.3rem;
}
.impact-cta-panel .icp-icon{
  width:48px; height:48px; border-radius:50%; background:#fff; color:var(--lh-green); box-shadow:var(--shadow-card);
  display:flex; align-items:center; justify-content:center; font-size:1.3rem; margin-bottom:.6rem;
}
.impact-cta-panel h3{color:var(--lh-navy); font-size:1.2rem; margin-bottom:0;}
.impact-cta-panel p{font-family:var(--font-display); font-style:italic; color:var(--lh-green-dark); font-size:.95rem; margin-bottom:.9rem;}
@media (max-width:767.98px){
  .impact-photo-panel{min-height:180px;}
}

/* ---------------- Back to top button ---------------- */
.back-to-top{
  position:fixed; right:1.25rem; bottom:1.25rem; z-index:1035;
  width:48px; height:48px; border-radius:50%; background:var(--lh-green); color:#fff;
  border:none; display:flex; align-items:center; justify-content:center; font-size:1.25rem;
  box-shadow:0 8px 20px rgba(6,64,31,.35); cursor:pointer;
  opacity:0; visibility:hidden; transform:translateY(12px);
  transition:opacity .25s ease, transform .25s ease, visibility .25s, background-color .2s ease, box-shadow .2s ease;
}
.back-to-top.is-visible{opacity:1; visibility:visible; transform:translateY(0);}
.back-to-top:hover{background:var(--lh-green-mid); box-shadow:0 10px 24px rgba(6,64,31,.45);}
.back-to-top:focus-visible{outline:3px solid var(--lh-gold-dark); outline-offset:2px;}
@media (max-width:767.98px){
  .back-to-top{right:1rem; bottom:calc(64px + 1rem); width:44px; height:44px; font-size:1.1rem;}
}

/* Utility */
.text-green{color:var(--lh-green) !important;}
.text-navy{color:var(--lh-navy) !important;font-size: 12px;}
.text-gold{color:var(--lh-gold) !important;}
.bg-mint{background:var(--lh-mint) !important;}
.bg-navy{background:var(--lh-navy) !important;}
.bg-green-dark{background:var(--lh-green-dark) !important;}
.rounded-lh{border-radius:var(--radius-lg) !important;}
.shadow-lh{box-shadow:var(--shadow-card) !important;}

/* Responsive tweaks */
@media (max-width:991.98px){
  .top-bar-inner{justify-content:center; text-align:center;}
  .brand-lockup{margin:0 auto;}
  .community-strip .cta-panel::before{display:none;}
  .check-list{grid-template-columns:1fr;}


}
@media (max-width:767.98px){
  .top-bar-inner{justify-content:space-between; text-align:left;}
  .brand-lockup{margin:0;}
}
@media (max-width:575.98px){
  .brand-lockup img{height:48px;}
  .section{padding:2.4rem 0;}
  .panel-navy,.panel-light,.cta-band{padding:1.6rem;}
}

/* ---------------- Animations ---------------- */
@keyframes fadeInUp{
  from{opacity:0; transform:translateY(22px);}
  to{opacity:1; transform:translateY(0);}
}
@keyframes fadeIn{
  from{opacity:0;}
  to{opacity:1;}
}

/* Hero content fades/slides in on page load */
.hero-banner-content{animation:fadeInUp .8s cubic-bezier(.22,1,.36,1) both;}
.hero-quote-badge{animation:fadeInUp .8s cubic-bezier(.22,1,.36,1) .18s both;}
.photo-hero-content{animation:fadeInUp .8s cubic-bezier(.22,1,.36,1) both;}
.photo-hero-quote{animation:fadeInUp .8s cubic-bezier(.22,1,.36,1) .18s both;}
.photo-hero-strip .icon-row{animation:fadeIn 1s ease .35s both;}
.hero-feature{animation:fadeIn .8s ease .3s both;}

/* Nav underline sweep on hover */
.navbar-nav .nav-link:not(.nav-cta):not(.active){position:relative;}
.navbar-nav .nav-link:not(.nav-cta):not(.active)::after{
  content:""; position:absolute; left:1.25rem; right:1.25rem; bottom:8px; height:2px;
  background:var(--lh-gold); transform:scaleX(0); transform-origin:left; transition:transform .25s ease;
}
.navbar-nav .nav-link:not(.nav-cta):not(.active):hover::after{transform:scaleX(1);}

/* Buttons: gentle lift + shadow grow on hover (in addition to existing color change) */
.btn-lh-green,.btn-lh-outline,.btn-lh-white,.btn-lh-gold{
  transition:background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.btn-lh-green:hover{transform:translateY(-2px); box-shadow:0 10px 22px rgba(6,64,31,.28);}
.btn-lh-outline:hover,.btn-lh-white:hover{transform:translateY(-2px);}

/* Scroll-reveal: elements fade + rise into place as they enter the viewport.
   JS (main.js) adds .js-reveal to <body> once IntersectionObserver is ready,
   then toggles .is-visible per element — so content stays visible by default
   if JS fails to load (progressive enhancement, no accessibility regression). */
body.js-reveal .svc-card,body.js-reveal .audience-card,body.js-reveal .value-card,
body.js-reveal .card-lh,body.js-reveal .job-card,body.js-reveal .photo-quote-card,
body.js-reveal .founder-photo-card,body.js-reveal .step-card,body.js-reveal .numbered-step,
body.js-reveal .pull-quote,body.js-reveal .county-chip,
body.js-reveal .panel-navy,body.js-reveal .panel-light,
body.js-reveal .feature-card,body.js-reveal .mini-benefit-row,body.js-reveal .eligibility-callout,
body.js-reveal .benefit-photo,body.js-reveal .form-card,body.js-reveal .testimonial-card,
body.js-reveal .trust-item{
  opacity:0; transform:translateY(28px); transition:opacity .65s cubic-bezier(.22,1,.36,1), transform .65s cubic-bezier(.22,1,.36,1);
}
.svc-card.is-visible,.audience-card.is-visible,.value-card.is-visible,.card-lh.is-visible,
.job-card.is-visible,.photo-quote-card.is-visible,.founder-photo-card.is-visible,
.step-card.is-visible,.numbered-step.is-visible,.pull-quote.is-visible,.county-chip.is-visible,
.panel-navy.is-visible,.panel-light.is-visible,
.feature-card.is-visible,.mini-benefit-row.is-visible,.eligibility-callout.is-visible,.benefit-photo.is-visible,
.form-card.is-visible,.testimonial-card.is-visible,.trust-item.is-visible,
body.js-reveal .svc-card.is-visible,body.js-reveal .audience-card.is-visible,
body.js-reveal .value-card.is-visible,body.js-reveal .card-lh.is-visible,
body.js-reveal .job-card.is-visible,body.js-reveal .photo-quote-card.is-visible,
body.js-reveal .founder-photo-card.is-visible,body.js-reveal .step-card.is-visible,
body.js-reveal .numbered-step.is-visible,body.js-reveal .pull-quote.is-visible,
body.js-reveal .county-chip.is-visible,body.js-reveal .panel-navy.is-visible,
body.js-reveal .panel-light.is-visible,
body.js-reveal .feature-card.is-visible,body.js-reveal .mini-benefit-row.is-visible,
body.js-reveal .eligibility-callout.is-visible,body.js-reveal .benefit-photo.is-visible,
body.js-reveal .form-card.is-visible,body.js-reveal .testimonial-card.is-visible,
body.js-reveal .trust-item.is-visible{
  opacity:1; transform:translateY(0);
}
/* Stagger trust-strip icons slightly for a nicer cascade */
.trust-item:nth-child(1){transition-delay:.05s;}
.trust-item:nth-child(2){transition-delay:.12s;}
.trust-item:nth-child(3){transition-delay:.19s;}
.trust-item:nth-child(4){transition-delay:.26s;}
/* Stagger steps slightly for a nicer cascade */
.numbered-step:nth-child(1){transition-delay:.05s;}
.numbered-step:nth-child(2){transition-delay:.12s;}
.numbered-step:nth-child(3){transition-delay:.19s;}
.numbered-step:nth-child(4){transition-delay:.26s;}
.numbered-step:nth-child(5){transition-delay:.33s;}

/* Icon badges get a soft pulse on hover to feel alive */
.svc-icon,.value-icon,.aud-icon,.promise-icon{transition:transform .25s ease;     font-size: 46px;background-color .25s ease;}
.svc-card:hover .svc-icon,.value-card:hover .value-icon,.audience-card:hover .aud-icon{transform:scale(1.08) rotate(-4deg);}

/* Count-up ready state for future stat blocks (kept subtle, no layout shift) */
.svc-card,.audience-card{will-change:transform;}

/* ---------------- Contact page ---------------- */
.contact-hero-icons{display:flex; gap:1.8rem; margin-top:1.6rem; flex-wrap:wrap;}
.contact-hero-icon{display:flex; flex-direction:column; align-items:center; gap:.5rem; color:#fff; font-weight:700; font-size:.82rem; text-align:center; text-decoration:none;}
.contact-hero-icon .circle{
  width:52px; height:52px; border-radius:50%; background:var(--lh-green); display:flex; align-items:center;
  justify-content:center; font-size:1.3rem; color:#fff; box-shadow:0 4px 14px rgba(0,0,0,.28);
  transition:transform .2s ease, background-color .2s ease;
}
.contact-hero-icon:hover .circle{transform:translateY(-3px); background:var(--lh-green-mid);}
.contact-hero-icon:hover{color:#fff;}

.contact-info-item{display:flex; gap:.9rem; margin-bottom:1.3rem;}
.contact-info-item .icon-badge-lg{
  width:44px; height:44px; border-radius:50%; background:var(--lh-green); color:#fff; display:flex;
  align-items:center; justify-content:center; font-size:1.1rem; flex-shrink:0;
}
.contact-info-item h3{font-size:1rem; color:var(--lh-navy); margin-bottom:.2rem;}
.contact-info-item p{margin:0; color:var(--lh-ink); font-size:.92rem;}
.contact-info-item a{font-weight:600;}

.map-placeholder{
  position:relative; border-radius:var(--radius-md); overflow:hidden; aspect-ratio:4/3;
  background:
    linear-gradient(0deg, rgba(11,93,46,.06) 1px, transparent 1px) 0 0/100% 22px,
    linear-gradient(90deg, rgba(11,93,46,.06) 1px, transparent 1px) 0 0/22px 100%,
    #eef3ee;
  border:1px solid var(--lh-border);
  display:flex; align-items:center; justify-content:center;
}
.map-placeholder::before{
  content:""; position:absolute; left:8%; top:15%; right:38%; bottom:55%;
  border:3px solid rgba(11,93,46,.18); border-radius:6px 40px 6px 6px; background:rgba(255,255,255,.4);
}
.map-placeholder::after{
  content:""; position:absolute; left:30%; right:10%; top:55%; bottom:12%;
  border:3px solid rgba(11,93,46,.18); border-radius:6px; background:rgba(255,255,255,.4);
}
.map-pin{
  position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:.3rem;
}
.map-pin .bi{font-size:2.4rem; color:#c0392b; filter:drop-shadow(0 4px 6px rgba(0,0,0,.25));}
.map-pin span{
  background:#fff; padding:.3rem .8rem; border-radius:999px; font-weight:700; font-size:.82rem;
  color:var(--lh-navy); box-shadow:var(--shadow-card);
}

.office-hours-list{list-style:none; padding:0; margin:0; display:grid; gap:.5rem;}
.office-hours-list li{display:flex; justify-content:space-between; font-size:.92rem; color:var(--lh-ink);}
.office-hours-list .day{font-weight:700; color:var(--lh-navy);}

.difference-banner{
  background:linear-gradient(90deg,#eef8f0 0%,#ffffff 55%,#eef8f0 100%);
  border-radius:var(--radius-lg); padding:1.8rem 2.2rem; display:flex; align-items:center;
  justify-content:space-between; gap:1.5rem; flex-wrap:wrap; box-shadow:var(--shadow-card);
}
.difference-banner .db-left{display:flex; align-items:center; gap:1rem;}
.difference-banner .db-icon{
  width:56px; height:56px; border-radius:50%; background:var(--lh-mint); color:var(--lh-green);
  display:flex; align-items:center; justify-content:center; font-size:1.5rem; flex-shrink:0;
}
.difference-banner h2{font-size:1.3rem; font-style:italic; margin:0;}
.difference-banner .db-mid{font-style:italic; color:var(--lh-green-dark); font-weight:600; text-align:center; flex:1 1 260px;}

/* ---------------- Service detail pages ---------------- */
.feature-card{
  background:var(--lh-mint); border:1px solid #dff0e6; border-radius:var(--radius-md);
  padding:1.4rem 1.1rem; height:100%; text-align:center; transition:transform .2s ease, box-shadow .2s ease;
}
.feature-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-card);}
.feature-card .fc-icon{
  width:50px; height:50px; border-radius:50%; background:var(--lh-green); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:1.3rem; margin:0 auto .7rem;
}
.feature-card h3{font-size:1rem; color:var(--lh-navy); margin-bottom:.8rem;}
.feature-card .fc-photo{border-radius:var(--radius-sm); overflow:hidden; margin-bottom:.8rem; aspect-ratio:4/3;}
.feature-card .fc-photo img{width:100%; height:100%; object-fit:cover;}
.feature-card p{font-size:.85rem; color:var(--lh-muted); margin:0; text-align:left;}

.benefit-split{display:flex; flex-direction:column; gap:1rem;}
.benefit-photo{border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-card); aspect-ratio:4/3;}
.benefit-photo img{width:100%; height:100%; object-fit:cover;}

.eligibility-callout{
  background:linear-gradient(135deg,#fdf3d8,#f9e6b0); border:1px solid #eccf7c; border-radius:var(--radius-lg);
  padding:1.6rem 1.8rem; display:flex; gap:1.2rem; align-items:flex-start;
}
.eligibility-callout .ec-icon{
  width:48px; height:48px; border-radius:50%; background:#fff; color:var(--lh-gold-dark);
  display:flex; align-items:center; justify-content:center; font-size:1.3rem; flex-shrink:0; box-shadow:var(--shadow-card);
}
.eligibility-callout h3{color:var(--lh-navy); margin-bottom:.4rem;}
.eligibility-callout p{margin:0; color:#5a4a1c; font-size:.94rem;}

.mini-benefit-row{display:flex; align-items:center; gap:.8rem; padding:1rem; background:#fff; border:1px solid var(--lh-border); border-radius:var(--radius-md); height:100%;}
.mini-benefit-row .icon-badge-lg{flex-shrink:0;}
.mini-benefit-row h3{font-size:.95rem; color:var(--lh-navy); margin-bottom:.15rem;}
.mini-benefit-row p{margin:0; font-size:.82rem; color:var(--lh-muted);}

/* Generic large icon badge (circle) — base look shared by every context
   that places an .icon-badge-lg icon; specific parents may still resize it. */
.icon-badge-lg{
  width:48px; height:48px; border-radius:50%; background:var(--lh-green); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:1.25rem; flex-shrink:0;
}
.btn-sm{font-size:.82rem !important; padding:.5rem 1.1rem !important;}
.section-eyebrow{
  display:block; color:var(--lh-green); font-weight:800; letter-spacing:.04em; font-size:.8rem;
  text-transform:uppercase; margin-bottom:.35rem;
}

/* Transportation — vertical service list with icon + title + description,
   paired alongside a large photo. */
.transport-service-list{list-style:none; margin:0; padding:0; display:grid; gap:1.15rem;}
.transport-service-list li{display:flex; gap:1rem; align-items:flex-start;}
.transport-service-list h3{font-size:1.02rem; color:var(--lh-navy); margin-bottom:.15rem;}
.transport-service-list p{margin:0; font-size:.87rem; color:var(--lh-muted);}

/* Trust strip — 4-across icon/title/sub-line row */
.trust-strip{
  background:var(--lh-mint); border-radius:var(--radius-lg); padding:2rem 1.5rem;
  display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; text-align:center;
}
.trust-strip .trust-item{padding:0 .4rem;}
.trust-strip .ti-icon{
  width:56px; height:56px; border-radius:50%; background:#fff; color:var(--lh-green); box-shadow:var(--shadow-card);
  display:flex; align-items:center; justify-content:center; font-size:1.5rem; margin:0 auto .8rem;
}
.trust-strip h3{font-size:1rem; color:var(--lh-navy); margin-bottom:.2rem;}
.trust-strip p{margin:0; font-size:.85rem; color:var(--lh-muted);}
@media (max-width:767.98px){.trust-strip{grid-template-columns:1fr 1fr;}}
@media (max-width:479.98px){.trust-strip{grid-template-columns:1fr; text-align:left;}
  .trust-strip .trust-item{display:flex; align-items:center; gap:1rem; text-align:left;}
  .trust-strip .ti-icon{margin:0;}
}

/* Ride CTA bar — "Need a Ride?" call block + gold action button, used at
   the foot of the transportation page. */
.ride-cta-bar{
  background:#fff; border:1px solid var(--lh-border); border-radius:var(--radius-lg);
  padding:1.7rem 2.2rem; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap:1.5rem; box-shadow:var(--shadow-card);
}
.rcb-left{display:flex; align-items:center; gap:1rem;}
.rcb-left h3{font-size:1.1rem; margin-bottom:.1rem;}
.rcb-left a{font-size:1.35rem; font-weight:800; color:var(--lh-green); display:block;}
.rcb-left p{margin:0; font-size:.85rem; color:var(--lh-muted);}
.rcb-right{display:flex; flex-direction:column; align-items:flex-end; gap:.6rem;}
.rcb-tagline{font-family:var(--font-display); font-style:italic; color:var(--lh-green-dark); font-size:1.05rem;}
@media (max-width:767.98px){
  .ride-cta-bar{flex-direction:column; text-align:center; padding:1.5rem;}
  .rcb-left{flex-direction:column; text-align:center;}
  .rcb-right{align-items:center; width:100%;}
}

/* Sidebar service navigation for detail pages */
.service-sidebar{background:var(--lh-mint); border-radius:var(--radius-md); padding:1.2rem; position:sticky; top:1rem;}
.service-sidebar h3{font-size:1.05rem; color:var(--lh-navy); margin-bottom:.8rem;}
.service-sidebar-list{list-style:none; padding:0; margin:0 0 1.2rem; display:grid; gap:.35rem;}
.service-sidebar-list a{
  display:flex; align-items:center; gap:.6rem; padding:.65rem .8rem; border-radius:var(--radius-sm);
  color:var(--lh-navy); font-weight:600; font-size:.92rem; transition:background-color .15s ease, color .15s ease;
}
.service-sidebar-list a .bi{color:var(--lh-green); font-size:1.05rem; flex-shrink:0;}
.service-sidebar-list a:hover{background:#fff;}
.service-sidebar-list a.active{background:var(--lh-green); color:#fff;}
.service-sidebar-list a.active .bi{color:#fff;}
.service-sidebar .call-chip{width:100%;}

/* Get-started banner with side photos (used on service detail pages) */
.get-started-banner{
  position:relative; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-card);
  background:var(--lh-navy); color:#fff; min-height:170px; display:flex; align-items:center;
}
.get-started-banner .gsb-photo-left,.get-started-banner .gsb-photo-right{
  flex:0 0 160px; align-self:stretch; position:relative; display:none;
}
.get-started-banner .gsb-photo-left img,.get-started-banner .gsb-photo-right img{width:100%;}
.get-started-banner .gsb-content{flex:1 1 auto; padding:1.6rem 2rem; text-align:center;}
.get-started-banner h2{color:#fff; font-size:1.6rem; margin-bottom:.4rem;}
.get-started-banner p{color:#dfe8ff; margin-bottom:1rem;}
.get-started-banner .gsb-quote{
  flex:0 0 180px; padding:1rem; font-family:var(--font-display); font-style:italic; color:var(--lh-gold);
  text-align:center; font-size:1.05rem; display:none;
}
@media (min-width:768px){
  .get-started-banner .gsb-photo-left,.get-started-banner .gsb-photo-right,.get-started-banner .gsb-quote{display:flex; align-items:center; justify-content:center;}
}

.how-it-works-row{display:flex; flex-wrap:wrap; align-items:flex-start; gap:1rem 2rem; justify-content:center;}
.how-it-works-row .hiw-step{display:flex; gap:.8rem; align-items:flex-start; max-width:280px;}
.how-it-works-row .hiw-arrow{color:var(--lh-green); font-size:1.4rem; align-self:center; display:none;}
@media (min-width:992px){.how-it-works-row .hiw-arrow{display:block;}}



.svc-icon i{font-size: 36px;}
.marg {
  margin-top: -128px;
      z-index: 1;
}
.impact-cta-panel img{
  width: 25%;
}
.testimonial-card img{
      height: 177px;
          object-fit: cover;
}
.card-lh {
  margin-top: 30px;
}

