/* ============================================================
   LIFELINE — a plan for every milestone
   Scoped to body.d-lifeline. 1rem = 10px.
   ============================================================ */
body.d-lifeline{
  --lf-navy:#0f1f4b;--lf-navy2:#172a5e;--lf-gold:#e0a526;--lf-gold2:#f6c453;--lf-cream:#fbf8f2;--lf-ink:#101a36;--lf-soft:#424b66;--lf-mute:#626a82;--lf-line:#e6e1d6;
  --bg-primary:var(--lf-cream);--bg-secondary:#f3eee4;--bg-card:#fff;--bg-inset:#f5f1e8;
  --fg-primary:var(--lf-ink);--fg-soft:var(--lf-soft);--fg-muted:var(--lf-mute);--border-color:var(--lf-line);--border-strong:#d3cbb9;
  background:var(--lf-cream);color:var(--lf-ink);font-family:'Figtree',system-ui,sans-serif
}
body.d-lifeline h1,body.d-lifeline h2,body.d-lifeline h3{font-family:'Young Serif',Georgia,serif;font-weight:400;line-height:1.1;letter-spacing:-.01em}
body.d-lifeline em{font-style:normal;color:var(--lf-gold)}
.lf-tag{display:inline-block;font-size:1.2rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#a8770f;margin-bottom:1.4rem}
.lf-tag-d{color:var(--lf-gold2)}

body.d-lifeline .bx-nav{background:rgba(15,31,75,.95);backdrop-filter:blur(12px)}
body.d-lifeline .bx-brand-mark{border-radius:50%;background:var(--lf-gold);color:var(--lf-navy)}
body.d-lifeline .bx-brand-txt b{color:#fff;font-family:'Young Serif',serif;font-weight:400;font-size:1.8rem}
body.d-lifeline .bx-brand-txt small{color:#aab4d0}
body.d-lifeline .bx-nav-links a{color:#c7cfe4;font-weight:600;font-size:1.28rem}
body.d-lifeline .bx-nav-links a:hover,body.d-lifeline .bx-nav-links a.active{color:#fff}
body.d-lifeline .bx-nav-links a::after{background:var(--lf-gold);height:3px}
body.d-lifeline .bx-nav-cta{background:var(--lf-gold);color:var(--lf-navy);border-radius:999px}
body.d-lifeline .burger span{background:#fff}

/* hero */
.lf-hero{background:radial-gradient(900px 500px at 85% 10%,rgba(224,165,38,.2),transparent 60%),linear-gradient(160deg,var(--lf-navy),#0a1638);color:#e8ecf7;padding:calc(var(--nav-h) + 7rem) 3rem 10rem;position:relative;overflow:hidden}
.lf-hero::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:80px;background:var(--lf-cream);clip-path:ellipse(70% 100% at 50% 100%)}
.lf-hero-in{position:relative;z-index:1;max-width:var(--max-w);margin:0 auto;display:grid;grid-template-columns:1.15fr .85fr;gap:6rem;align-items:center}
.lf-kick{display:inline-flex;align-items:center;gap:.9rem;font-size:1.3rem;font-weight:600;color:var(--lf-gold2);margin-bottom:2.4rem}
.lf-hero h1{font-size:clamp(4.2rem,5.8vw,7rem);color:#fff}
.lf-lede{font-size:1.75rem;line-height:1.65;color:#c3cbe0;margin-top:2.4rem;max-width:52ch}
.lf-actions{display:flex;flex-wrap:wrap;gap:1.2rem;margin-top:3.4rem}
.lf-btn{display:inline-flex;align-items:center;gap:1rem;padding:1.6rem 2.8rem;border-radius:999px;font-size:1.5rem;font-weight:700;transition:transform .25s var(--ease),box-shadow .25s,background .25s}
.lf-btn-main{background:var(--lf-gold);color:var(--lf-navy);box-shadow:0 14px 30px rgba(224,165,38,.35)}
.lf-btn-main:hover{transform:translateY(-2px);background:var(--lf-gold2)}
.lf-btn-line{border:1px solid rgba(255,255,255,.3);color:#fff}
.lf-btn-line:hover{background:rgba(255,255,255,.08)}

.lf-card{background:#fff;color:var(--lf-ink);border-radius:28px;padding:3rem;box-shadow:0 40px 80px rgba(0,0,0,.35)}
.lf-card-top{display:flex;align-items:center;gap:1.6rem;padding-bottom:2.4rem;border-bottom:1px solid var(--lf-line)}
.lf-card-top b{font-family:'Young Serif',serif;font-weight:400;font-size:6rem;line-height:1;color:var(--lf-navy)}
.lf-card-top span{font-size:1.35rem;font-weight:600;color:var(--lf-mute);line-height:1.35}
.lf-mini{padding:2rem 0;display:grid;gap:1.2rem;position:relative}
.lf-mini::before{content:'';position:absolute;left:21px;top:3rem;bottom:3rem;width:2px;background:repeating-linear-gradient(180deg,var(--lf-gold) 0 6px,transparent 6px 12px)}
.lf-mini li{display:flex;align-items:center;gap:1.4rem;font-size:1.55rem;font-weight:600;position:relative;opacity:0;animation:lf-in .6s var(--ease) forwards;animation-delay:calc(.25s + var(--i) * .18s)}
.lf-mini span{width:44px;height:44px;border-radius:50%;background:var(--lf-navy);color:var(--lf-gold2);display:flex;align-items:center;justify-content:center;font-size:1.6rem;flex-shrink:0;box-shadow:0 0 0 5px #fff}
@keyframes lf-in{from{opacity:0;transform:translateX(-12px)}to{opacity:1;transform:none}}
.lf-card-foot{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding-top:2.2rem;border-top:1px solid var(--lf-line)}
.lf-card-foot div{background:var(--lf-cream);border-radius:16px;padding:1.4rem 1.6rem}
.lf-card-foot b{display:block;font-family:'Young Serif',serif;font-weight:400;font-size:2.6rem;color:var(--lf-navy);line-height:1.1}
.lf-card-foot span{font-size:1.2rem;color:var(--lf-mute);font-weight:600}

/* sections */
.lf-sec{padding:8rem 3rem 0}
.lf-sec>*{max-width:var(--max-w);margin-left:auto;margin-right:auto}
.lf-head{text-align:center;margin-bottom:5rem;max-width:760px!important}
.lf-sec h2{font-size:clamp(3.2rem,4.4vw,5.2rem);color:var(--lf-navy)}

.lf-journey{position:relative;max-width:980px!important;padding:1rem 0}
.lf-journey::before,.lf-journey::after{content:'';position:absolute;left:50%;top:0;bottom:0;width:4px;margin-left:-2px;border-radius:4px;background:var(--lf-line)}
.lf-journey::after{background:linear-gradient(180deg,var(--lf-gold),var(--lf-navy));bottom:auto;height:calc(var(--p,1) * 100%);transition:height .1s linear}
.lf-stop{position:relative;display:grid;grid-template-columns:1fr 80px 1fr;align-items:center;margin-bottom:3rem}
.lf-node{grid-column:2;justify-self:center;width:64px;height:64px;border-radius:50%;background:var(--lf-navy);color:var(--lf-gold2);display:flex;align-items:center;justify-content:center;font-size:2.2rem;box-shadow:0 0 0 8px var(--lf-cream),0 10px 24px rgba(15,31,75,.25);z-index:1}
.lf-stop-card{grid-column:1;grid-row:1;background:#fff;border-radius:22px;padding:2.8rem;border:1px solid var(--lf-line);box-shadow:0 14px 34px rgba(15,31,75,.06);transition:transform .3s var(--ease),box-shadow .3s}
.lf-stop:nth-child(even) .lf-stop-card{grid-column:3}
.lf-stop-card:hover{transform:translateY(-4px);box-shadow:0 24px 50px rgba(15,31,75,.12)}
.lf-stop-n{font-size:1.15rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#a8770f}
.lf-stop-card h3{font-size:2.6rem;color:var(--lf-navy);margin:.6rem 0 .8rem}
.lf-stop-card p{font-size:1.5rem;color:var(--lf-soft);line-height:1.6}
.lf-stop-card a{display:inline-flex;align-items:center;gap:.6rem;margin-top:1.6rem;font-weight:700;font-size:1.35rem;color:var(--lf-navy)}
.lf-stop-card a i{color:var(--lf-gold);transition:transform .25s}
.lf-stop-card a:hover i{transform:translateX(4px)}

.lf-navy{background:var(--lf-navy);color:#dfe4f1;margin-top:8rem;padding-bottom:8rem}
.lf-navy h2{color:#fff;font-size:clamp(3.4rem,4.6vw,5.4rem)}
.lf-about{display:grid;grid-template-columns:.9fr 1.1fr;gap:6rem;align-items:start}
.lf-about-tag{font-size:1.6rem;color:var(--lf-gold2);margin-top:1.4rem;line-height:1.5}
.lf-about-copy p{font-size:1.65rem;line-height:1.8;color:#c3cbe0}
.lf-about-copy p+p{margin-top:1.4rem}
.lf-banner{margin-top:5rem!important;border-radius:20px;overflow:hidden;border:1px solid rgba(255,255,255,.1)}
.lf-banner img{width:100%;height:auto;display:block}

.lf-hl{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.6rem}
.lf-hl-item{display:flex;gap:1.6rem;align-items:flex-start;background:#fff;border-radius:22px;padding:2.8rem;border:1px solid var(--lf-line)}
.lf-hl-item i{width:52px;height:52px;border-radius:16px;background:rgba(224,165,38,.16);color:#a8770f;display:flex;align-items:center;justify-content:center;font-size:2rem;flex-shrink:0}
.lf-hl-item h3{font-size:2.2rem;color:var(--lf-navy)}
.lf-hl-item p{font-size:1.35rem;color:var(--lf-mute);margin-top:.4rem}

.lf-rev{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.6rem}
.lf-rev figure{background:#fff;border-radius:22px;padding:2.8rem;border:1px solid var(--lf-line)}
.lf-rev blockquote{font-family:'Young Serif',serif;font-size:1.9rem;line-height:1.45}
.lf-rev figcaption{margin-top:1.6rem;color:var(--lf-mute);font-weight:600}
.lf-gal{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.lf-gal-item{padding:0;border-radius:18px;overflow:hidden;aspect-ratio:4/3;cursor:zoom-in}
.lf-gal-item img{width:100%;height:100%;object-fit:cover}
body.d-lifeline .hours-card{max-width:none}

.lf-contact{display:grid;grid-template-columns:1fr 1fr;gap:5rem;padding:5rem;border-radius:32px;background:#fff;border:1px solid var(--lf-line);box-shadow:0 24px 60px rgba(15,31,75,.06)}
.lf-contact-lede{font-size:1.6rem;line-height:1.65;color:var(--lf-soft);margin:2rem 0 3rem}
.lf-social{display:flex;gap:1rem;margin-top:2rem}
body.d-lifeline .ci{border-radius:16px}
body.d-lifeline .ci-ico{background:rgba(224,165,38,.16);color:#a8770f}
body.d-lifeline .contact-form{border-radius:24px;background:var(--lf-cream)}
body.d-lifeline .contact-form h3{font-family:'Young Serif',serif;font-weight:400;font-size:2.6rem;color:var(--lf-navy);margin-bottom:2rem}
body.d-lifeline .cf-field input,body.d-lifeline .cf-field textarea{border-radius:12px;background:#fff}
body.d-lifeline .btn-onbiz{background:var(--lf-navy);border-radius:999px;text-transform:none;letter-spacing:0;font-size:1.5rem}
.lf-map{margin-top:3rem}
body.d-lifeline .biz-map{border-radius:24px}
.lf-share{max-width:var(--max-w);margin:4rem auto 0;padding:0 3rem}
body.d-lifeline .bx-foot{background:var(--lf-navy);color:#dfe4f1;border-top:0;margin-top:6rem}
body.d-lifeline .bx-foot p,body.d-lifeline .bx-foot li,body.d-lifeline .bx-foot a{color:#aab4d0}
body.d-lifeline .bx-foot-col h2{color:var(--lf-gold2)}
body.d-lifeline .bx-foot .bx-brand-txt b{color:#fff}
body.d-lifeline .bx-foot .btn-onbiz{background:var(--lf-gold);color:var(--lf-navy)}
body.d-lifeline .bx-foot .btn-outline{border-color:rgba(255,255,255,.3);color:#fff}
body.d-lifeline .bx-foot-bottom{border-top-color:rgba(255,255,255,.1)}

@media (max-width:980px){
  .lf-hero-in,.lf-about,.lf-contact{grid-template-columns:1fr}
  .lf-card{max-width:520px}
  .lf-contact{padding:3rem}
}
@media (max-width:760px){
  .lf-journey::before,.lf-journey::after{left:32px}
  .lf-stop{grid-template-columns:64px 1fr;gap:1.6rem;align-items:start}
  .lf-node{grid-column:1;width:52px;height:52px;font-size:1.8rem}
  .lf-stop-card,.lf-stop:nth-child(even) .lf-stop-card{grid-column:2}
}
@media (max-width:640px){
  .lf-hero{padding:calc(var(--nav-h) + 3rem) 1.6rem 8rem}
  .lf-sec{padding:6rem 1.6rem 0}
  .lf-navy{padding-bottom:6rem;margin-top:6rem}
  .lf-card{padding:2.2rem}
  .lf-card-top b{font-size:4.6rem}
  .lf-gal{grid-template-columns:1fr}
  .lf-contact{padding:2rem}
  .lf-share{padding:0 1.6rem}
}
@media (prefers-reduced-motion:reduce){.lf-mini li{animation:none;opacity:1}}
