/* ============================================================
   Living Nest Hubs — Custom Stylesheet
   Palette: Deep Nest Green · Warm Amber · Soft Cream
   ============================================================ */

:root {
  --lnh-green: #0f3d2e;
  --lnh-green-2: #176149;
  --lnh-green-3: #1e7a5b;
  --lnh-amber: #f59e0b;
  --lnh-amber-soft: #fff4e0;
  --lnh-coral: #e76f51;
  --lnh-cream: #faf6ef;
  --lnh-cream-2: #f3ede1;
  --lnh-ink: #14231c;
  --lnh-muted: #5c6f66;
  --lnh-white: #ffffff;
  --lnh-radius: 18px;
  --lnh-shadow-sm: 0 4px 14px rgba(15, 61, 46, 0.08);
  --lnh-shadow-md: 0 14px 34px rgba(15, 61, 46, 0.14);
  --lnh-shadow-lg: 0 24px 60px rgba(15, 61, 46, 0.22);
  --lnh-font-head: "Fraunces", Georgia, "Times New Roman", serif;
  --lnh-font-body: "Inter", "Segoe UI", Arial, sans-serif;
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
body {
  font-family: var(--lnh-font-body);
  color: var(--lnh-ink);
  background: var(--lnh-white);
  line-height: 1.7;
  overflow-x: hidden;
}
h1, h2, h3, h4, h5, .display-font { font-family: var(--lnh-font-head); font-weight: 600; line-height: 1.2; color: var(--lnh-green); }
a { color: var(--lnh-green-2); text-decoration: none; transition: color .25s ease; }
a:hover { color: var(--lnh-amber); }
img { max-width: 100%; }
::selection { background: var(--lnh-amber); color: var(--lnh-green); }

.section-pad { padding: 96px 0; }
.section-pad-sm { padding: 64px 0; }
.bg-cream { background: var(--lnh-cream); }
.bg-green { background: var(--lnh-green); }

/* ---------- Eyebrow / Section headers ---------- */
.eyebrow {
  display: inline-flex; align-items: center; gap: .55rem;
  font-size: .8rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
  color: var(--lnh-green-3); background: rgba(23, 97, 73, .09);
  border: 1px solid rgba(23, 97, 73, .16);
  padding: .45rem 1.1rem; border-radius: 999px;
}
.eyebrow::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--lnh-amber); }
.section-title { font-size: clamp(1.9rem, 3.4vw, 2.9rem); margin: 1rem 0 0; }
.section-sub { color: var(--lnh-muted); max-width: 640px; margin: .9rem auto 0; font-size: 1.05rem; }

/* ---------- Buttons ---------- */
.btn-lnh {
  --bs-btn-font-weight: 600;
  background: var(--lnh-amber); color: var(--lnh-green);
  border: 2px solid var(--lnh-amber);
  border-radius: 999px; padding: .8rem 1.9rem; font-weight: 600;
  box-shadow: 0 8px 22px rgba(245, 158, 11, .35);
  transition: all .3s ease;
}
.btn-lnh:hover, .btn-lnh:focus {
  background: var(--lnh-green); border-color: var(--lnh-green); color: #fff;
  transform: translateY(-3px); box-shadow: 0 14px 30px rgba(15, 61, 46, .3);
}
.btn-lnh-outline {
  background: transparent; color: #fff; border: 2px solid rgba(255,255,255,.75);
  border-radius: 999px; padding: .8rem 1.9rem; font-weight: 600; transition: all .3s ease;
}
.btn-lnh-outline:hover { background: #fff; color: var(--lnh-green); transform: translateY(-3px); }
.btn-lnh-green {
  background: var(--lnh-green); color: #fff; border: 2px solid var(--lnh-green);
  border-radius: 999px; padding: .8rem 1.9rem; font-weight: 600; transition: all .3s ease;
}
.btn-lnh-green:hover { background: var(--lnh-amber); border-color: var(--lnh-amber); color: var(--lnh-green); transform: translateY(-3px); }

/* ---------- Topbar ---------- */
.topbar {
  background: linear-gradient(90deg, var(--lnh-green), var(--lnh-green-2));
  color: rgba(255,255,255,.9); font-size: .88rem; padding: .55rem 0;
}
.topbar a { color: rgba(255,255,255,.92); font-weight: 600; }
.topbar a:hover { color: var(--lnh-amber); }
.topbar .sep { opacity: .35; margin: 0 .35rem; }
.topbar svg { width: 15px; height: 15px; vertical-align: -2px; margin-right: .35rem; fill: var(--lnh-amber); }

/* ---------- Navbar ---------- */
.navbar-lnh { background: #fff; box-shadow: var(--lnh-shadow-sm); padding: .9rem 0; }
.navbar-brand-lnh { display: flex; align-items: center; gap: .65rem; }
.brand-badge {
  width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center;
  background: linear-gradient(135deg, var(--lnh-green), var(--lnh-green-3));
  box-shadow: var(--lnh-shadow-sm); flex: 0 0 auto;
}
.brand-badge svg { width: 26px; height: 26px; }
.brand-text { font-family: var(--lnh-font-head); font-size: 1.35rem; font-weight: 700; color: var(--lnh-green); line-height: 1.05; }
.brand-text em { font-style: normal; color: var(--lnh-amber); }
.brand-text small { display: block; font-family: var(--lnh-font-body); font-size: .62rem; letter-spacing: .28em; text-transform: uppercase; color: var(--lnh-muted); font-weight: 600; }
.navbar-lnh .nav-link {
  font-weight: 600; color: var(--lnh-ink); margin: 0 .35rem; padding: .55rem .9rem !important;
  border-radius: 999px; transition: all .25s ease;
}
.navbar-lnh .nav-link:hover { color: var(--lnh-green-3); background: var(--lnh-cream); }
.navbar-lnh .nav-link.active { color: #fff; background: var(--lnh-green); }
.navbar-toggler { border: none; }
.navbar-toggler:focus { box-shadow: 0 0 0 .2rem rgba(245,158,11,.35); }

/* ---------- Hero ---------- */
.hero {
  position: relative; min-height: 92vh; display: flex; align-items: center; color: #fff;
  background:
    linear-gradient(100deg, rgba(10, 34, 26, .93) 0%, rgba(15, 61, 46, .82) 42%, rgba(15, 61, 46, .45) 100%),
    url("../img/hero-home.jpg") center/cover no-repeat;
    padding: 70px;
}
.hero::after {
  content: ""; position: absolute; inset: auto 0 0 0; height: 120px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='%23ffffff' d='M0,64 C240,110 480,20 720,44 C960,68 1200,116 1440,72 L1440,120 L0,120 Z'/%3E%3C/svg%3E") bottom/cover no-repeat;
}
.hero-badge {
  display: inline-flex; align-items: center; gap: .6rem; background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.25); backdrop-filter: blur(6px);
  padding: .5rem 1.2rem; border-radius: 999px; font-size: .85rem; font-weight: 600; letter-spacing: .06em;
}
.hero-badge svg { width: 16px; height: 16px; fill: var(--lnh-amber); }
.hero h1 { color: #fff; font-size: clamp(2.4rem, 5.2vw, 4.1rem); font-weight: 700; margin: 1.4rem 0 1.2rem; }
.hero h1 .accent { color: var(--lnh-amber); font-style: italic; }
.hero p.lead { color: rgba(255,255,255,.88); max-width: 580px; font-size: 1.12rem; }
.hero-stat { border-left: 3px solid var(--lnh-amber); padding-left: 1rem; }
.hero-stat .num { font-family: var(--lnh-font-head); font-size: 1.9rem; font-weight: 700; color: #fff; line-height: 1; }
.hero-stat .lbl { font-size: .82rem; color: rgba(255,255,255,.75); letter-spacing: .04em; }

/* ---------- Service cards ---------- */
.service-card {
  background: #fff; border-radius: var(--lnh-radius); overflow: hidden; height: 100%;
  border: 1px solid rgba(15,61,46,.08); box-shadow: var(--lnh-shadow-sm);
  transition: transform .35s ease, box-shadow .35s ease;
  display: flex; flex-direction: column;
}
.service-card:hover { transform: translateY(-10px); box-shadow: var(--lnh-shadow-lg); }
.service-card .thumb { position: relative; overflow: hidden; aspect-ratio: 16/10; }
.service-card .thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.service-card:hover .thumb img { transform: scale(1.08); }
.service-card .icon-chip {
  position: absolute; left: 18px; bottom: -26px; width: 56px; height: 56px; border-radius: 16px;
  display: grid; place-items: center; background: linear-gradient(135deg, var(--lnh-amber), #fbbf24);
  box-shadow: 0 10px 22px rgba(245,158,11,.45);
}
.service-card .icon-chip svg { width: 28px; height: 28px; fill: var(--lnh-green); }
.service-card .body { padding: 2.4rem 1.5rem 1.6rem; display: flex; flex-direction: column; flex: 1; }
.service-card h3 { font-size: 1.28rem; margin-bottom: .55rem; }
.service-card p { color: var(--lnh-muted); font-size: .95rem; flex: 1; }
.card-link { font-weight: 700; font-size: .92rem; color: var(--lnh-green-2); display: inline-flex; align-items: center; gap: .4rem; }
.card-link svg { width: 15px; height: 15px; fill: currentColor; transition: transform .3s ease; }
.card-link:hover svg { transform: translateX(5px); }

/* ---------- Feature cards (why choose us) ---------- */
.feature-card {
  background: #fff; border-radius: var(--lnh-radius); padding: 2rem 1.5rem; height: 100%;
  border: 1px solid rgba(15,61,46,.08); box-shadow: var(--lnh-shadow-sm);
  transition: all .35s ease; text-align: center;
}
.feature-card:hover { transform: translateY(-8px); background: var(--lnh-green); box-shadow: var(--lnh-shadow-lg); }
.feature-card:hover h3, .feature-card:hover .fnum { color: #fff; }
.feature-card:hover p { color: rgba(255,255,255,.82); }
.feature-card:hover .ficon { background: rgba(255,255,255,.14); }
.feature-card:hover .ficon svg { fill: var(--lnh-amber); }
.ficon {
  width: 66px; height: 66px; margin: 0 auto 1.1rem; border-radius: 20px; display: grid; place-items: center;
  background: var(--lnh-amber-soft); transition: all .35s ease;
}
.ficon svg { width: 32px; height: 32px; fill: var(--lnh-green-2); transition: all .35s ease; }
.feature-card h3 { font-size: 1.18rem; margin-bottom: .5rem; transition: color .3s; }
.feature-card p { color: var(--lnh-muted); font-size: .92rem; margin: 0; transition: color .3s; }

/* ---------- About preview ---------- */
.img-frame { position: relative; border-radius: var(--lnh-radius); }
.img-frame::before {
  content: ""; position: absolute; inset: -16px auto auto -16px; width: 120px; height: 120px;
  border-radius: 22px; background: var(--lnh-amber); opacity: .25; z-index: 0;
}
.img-frame img { border-radius: var(--lnh-radius); box-shadow: var(--lnh-shadow-md); position: relative; z-index: 1; }
.exp-badge {
  position: absolute; right: -14px; bottom: 28px; z-index: 2; background: var(--lnh-green); color: #fff;
  border-radius: 16px; padding: 1rem 1.4rem; box-shadow: var(--lnh-shadow-lg); text-align: center;
}
.exp-badge .big { font-family: var(--lnh-font-head); font-size: 2rem; font-weight: 700; color: var(--lnh-amber); line-height: 1; }
.exp-badge .small { font-size: .78rem; letter-spacing: .05em; opacity: .85; }
.check-list { list-style: none; padding: 0; margin: 0; }
.check-list li { display: flex; gap: .7rem; margin-bottom: .75rem; color: var(--lnh-muted); font-weight: 500; }
.check-list svg { width: 22px; height: 22px; flex: 0 0 auto; fill: var(--lnh-green-3); margin-top: 2px; }

/* ---------- Steps ---------- */
.step-card { position: relative; background: #fff; border-radius: var(--lnh-radius); padding: 2.1rem 1.6rem 1.7rem; height: 100%; box-shadow: var(--lnh-shadow-sm); border: 1px solid rgba(15,61,46,.08); }
.step-num {
  width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; margin-bottom: 1rem;
  background: var(--lnh-green); color: var(--lnh-amber); font-family: var(--lnh-font-head); font-size: 1.35rem; font-weight: 700;
  box-shadow: 0 10px 20px rgba(15,61,46,.28);
}
.step-card h3 { font-size: 1.15rem; margin-bottom: .5rem; }
.step-card p { color: var(--lnh-muted); font-size: .93rem; margin: 0; }

/* ---------- CTA band ---------- */
.cta-band {
  position: relative; overflow: hidden; border-radius: 26px;
  background: linear-gradient(110deg, var(--lnh-green) 0%, var(--lnh-green-2) 60%, var(--lnh-green-3) 100%);
  color: #fff; padding: 4rem 3rem; box-shadow: var(--lnh-shadow-lg);
}
.cta-band::before {
  content: ""; position: absolute; right: -70px; top: -70px; width: 280px; height: 280px; border-radius: 50%;
  background: rgba(245, 158, 11, .22);
}
.cta-band::after {
  content: ""; position: absolute; left: -50px; bottom: -90px; width: 220px; height: 220px; border-radius: 50%;
  background: rgba(255, 255, 255, .07);
}
.cta-band h2 { color: #fff; font-size: clamp(1.7rem, 3vw, 2.5rem); }
.cta-band p { color: rgba(255,255,255,.85); }

/* ---------- Testimonials ---------- */
.testimonial-card {
  background: #fff; border-radius: var(--lnh-radius); padding: 2rem 1.7rem; height: 100%;
  box-shadow: var(--lnh-shadow-sm); border: 1px solid rgba(15,61,46,.08); position: relative;
}
.testimonial-card .quote-mark { position: absolute; top: 18px; right: 22px; width: 42px; height: 42px; fill: var(--lnh-cream-2); }
.stars { color: var(--lnh-amber); letter-spacing: 2px; font-size: 1rem; margin-bottom: .8rem; }
.testimonial-card p { color: var(--lnh-muted); font-size: .95rem; font-style: italic; }
.t-person { display: flex; align-items: center; gap: .85rem; margin-top: 1.2rem; }
.t-avatar {
  width: 50px; height: 50px; border-radius: 50%; display: grid; place-items: center; color: #fff;
  font-weight: 700; font-family: var(--lnh-font-head); font-size: 1.05rem;
  background: linear-gradient(135deg, var(--lnh-green-2), var(--lnh-green-3));
}
.t-person .name { font-weight: 700; color: var(--lnh-green); font-size: .98rem; line-height: 1.2; }
.t-person .role { font-size: .82rem; color: var(--lnh-muted); }

/* ---------- Blog cards ---------- */
.blog-card {
  background: #fff; border-radius: var(--lnh-radius); overflow: hidden; height: 100%;
  box-shadow: var(--lnh-shadow-sm); border: 1px solid rgba(15,61,46,.08);
  transition: transform .35s ease, box-shadow .35s ease; display: flex; flex-direction: column;
}
.blog-card:hover { transform: translateY(-8px); box-shadow: var(--lnh-shadow-md); }
.blog-card .thumb { position: relative; aspect-ratio: 16/9; overflow: hidden; }
.blog-card .thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.blog-card:hover .thumb img { transform: scale(1.07); }
.blog-card .cat {
  position: absolute; top: 14px; left: 14px; background: var(--lnh-amber); color: var(--lnh-green);
  font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  padding: .35rem .85rem; border-radius: 999px;
}
.blog-card .body { padding: 1.5rem 1.5rem 1.4rem; display: flex; flex-direction: column; flex: 1; }
.blog-meta { font-size: .8rem; color: var(--lnh-muted); display: flex; gap: 1rem; margin-bottom: .55rem; }
.blog-card h3 { font-size: 1.18rem; margin-bottom: .55rem; }
.blog-card p { color: var(--lnh-muted); font-size: .93rem; flex: 1; }

/* ---------- Newsletter band ---------- */
.newsletter-band {
  position: relative; overflow: hidden;
  background: linear-gradient(120deg, #123126, var(--lnh-green) 55%, var(--lnh-green-2));
  color: #fff;
}
.newsletter-band .dots {
  position: absolute; inset: 0; opacity: .5; pointer-events: none;
  background-image: radial-gradient(rgba(245,158,11,.35) 1.5px, transparent 1.5px);
  background-size: 26px 26px;
}
.newsletter-band h2 { color: #fff; }
.newsletter-band p { color: rgba(255,255,255,.8); }
.newsletter-form .form-control {
  border-radius: 999px; border: 2px solid transparent; padding: .85rem 1.4rem; font-size: .95rem;
}
.newsletter-form .form-control:focus { border-color: var(--lnh-amber); box-shadow: 0 0 0 .25rem rgba(245,158,11,.25); }

/* ---------- Page hero (inner pages) ---------- */
.page-hero {
  position: relative; color: #fff; padding: 96px 0 110px;
  background:
    linear-gradient(100deg, rgba(10, 34, 26, .94), rgba(15, 61, 46, .78)),
    url("../img/hero-home.jpg") center/cover no-repeat;
}
.page-hero::after {
  content: ""; position: absolute; inset: auto 0 0 0; height: 70px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 70' preserveAspectRatio='none'%3E%3Cpath fill='%23ffffff' d='M0,35 C240,64 480,10 720,26 C960,42 1200,66 1440,40 L1440,70 L0,70 Z'/%3E%3C/svg%3E") bottom/cover no-repeat;
}
.page-hero h1 { color: #fff; font-size: clamp(2.1rem, 4.5vw, 3.3rem); font-weight: 700; }
.page-hero p { color: rgba(255,255,255,.85); max-width: 640px; }
.breadcrumb-lnh { display: inline-flex; gap: .5rem; align-items: center; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.22); padding: .45rem 1.1rem; border-radius: 999px; font-size: .85rem; }
.breadcrumb-lnh a { color: var(--lnh-amber); font-weight: 600; }
.breadcrumb-lnh span { color: rgba(255,255,255,.85); }

/* ---------- Service detail (services page) ---------- */
.svc-row { padding: 34px 0; }
.svc-row + .svc-row { border-top: 1px dashed rgba(15,61,46,.18); }
.svc-img { border-radius: var(--lnh-radius); box-shadow: var(--lnh-shadow-md); aspect-ratio: 4/3; object-fit: cover; width: 100%; }
.svc-tag { font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--lnh-coral); }
.pill-list { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.pill-list span {
  background: var(--lnh-cream); border: 1px solid rgba(15,61,46,.12); color: var(--lnh-green);
  font-size: .83rem; font-weight: 600; padding: .4rem .95rem; border-radius: 999px;
}

/* ---------- FAQ accordion ---------- */
.accordion-lnh .accordion-item { border: 1px solid rgba(15,61,46,.12); border-radius: 14px !important; overflow: hidden; margin-bottom: .9rem; box-shadow: var(--lnh-shadow-sm); }
.accordion-lnh .accordion-button { font-weight: 700; color: var(--lnh-green); font-family: var(--lnh-font-head); font-size: 1.05rem; background: #fff; }
.accordion-lnh .accordion-button:not(.collapsed) { background: var(--lnh-cream); color: var(--lnh-green); box-shadow: none; }
.accordion-lnh .accordion-button:focus { box-shadow: 0 0 0 .2rem rgba(245,158,11,.25); }
.accordion-lnh .accordion-body { color: var(--lnh-muted); }

/* ---------- Contact ---------- */
.contact-info-card { background: var(--lnh-green); color: #fff; border-radius: var(--lnh-radius); padding: 2.4rem 2rem; height: 100%; box-shadow: var(--lnh-shadow-md); position: relative; overflow: hidden; }
.contact-info-card::after { content: ""; position: absolute; right: -60px; bottom: -60px; width: 200px; height: 200px; border-radius: 50%; background: rgba(245,158,11,.18); }
.contact-info-card h3 { color: #fff; }
.ci-item { display: flex; gap: 1rem; margin-bottom: 1.5rem; position: relative; z-index: 1; }
.ci-icon { width: 48px; height: 48px; flex: 0 0 auto; border-radius: 14px; display: grid; place-items: center; background: rgba(255,255,255,.12); }
.ci-icon svg { width: 23px; height: 23px; fill: var(--lnh-amber); }
.ci-item .lbl { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.65); font-weight: 700; }
.ci-item .val { font-weight: 600; color: #fff; }
.ci-item a.val:hover { color: var(--lnh-amber); }
.social-row { display: flex; gap: .65rem; position: relative; z-index: 1; }
.social-row a {
  width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center;
  background: rgba(255,255,255,.12); transition: all .3s ease;
}
.social-row a:hover { background: var(--lnh-amber); transform: translateY(-4px); }
.social-row svg { width: 19px; height: 19px; fill: #fff; }

.form-card { background: #fff; border-radius: var(--lnh-radius); padding: 2.4rem; box-shadow: var(--lnh-shadow-md); border: 1px solid rgba(15,61,46,.08); }
.form-card .form-label { font-weight: 600; color: var(--lnh-green); font-size: .92rem; }
.form-card .form-control, .form-card .form-select {
  border-radius: 12px; border: 1.5px solid rgba(15,61,46,.18); padding: .75rem 1rem; font-size: .95rem;
  background: var(--lnh-cream);
}
.form-card .form-control:focus, .form-card .form-select:focus { border-color: var(--lnh-amber); box-shadow: 0 0 0 .25rem rgba(245,158,11,.18); background: #fff; }
.map-frame { border-radius: var(--lnh-radius); overflow: hidden; box-shadow: var(--lnh-shadow-md); border: 1px solid rgba(15,61,46,.1); }
.map-frame iframe { width: 100%; height: 380px; border: 0; display: block; }

/* ---------- Team / Value cards (about) ---------- */
.value-card { background: #fff; border-radius: var(--lnh-radius); padding: 2.1rem 1.6rem; height: 100%; box-shadow: var(--lnh-shadow-sm); border-top: 5px solid var(--lnh-amber); transition: all .3s ease; }
.value-card:hover { transform: translateY(-7px); box-shadow: var(--lnh-shadow-md); }
.value-card h3 { font-size: 1.2rem; margin: .9rem 0 .5rem; }
.value-card p { color: var(--lnh-muted); font-size: .93rem; margin: 0; }
.team-card { text-align: center; background: #fff; border-radius: var(--lnh-radius); padding: 2rem 1.2rem 1.6rem; height: 100%; box-shadow: var(--lnh-shadow-sm); border: 1px solid rgba(15,61,46,.08); transition: all .3s ease; }
.team-card:hover { transform: translateY(-7px); box-shadow: var(--lnh-shadow-md); }
.team-avatar {
  width: 86px; height: 86px; margin: 0 auto 1rem; border-radius: 50%; display: grid; place-items: center;
  font-family: var(--lnh-font-head); font-size: 1.7rem; font-weight: 700; color: #fff;
  box-shadow: 0 10px 22px rgba(15,61,46,.25);
}
.team-card .name { font-weight: 700; color: var(--lnh-green); font-family: var(--lnh-font-head); font-size: 1.12rem; }
.team-card .role { font-size: .85rem; color: var(--lnh-coral); font-weight: 600; }
.team-card p { font-size: .88rem; color: var(--lnh-muted); margin-top: .5rem; margin-bottom: 0; }

/* ---------- Legal pages ---------- */
.legal-body h2 { font-size: 1.45rem; margin: 2.2rem 0 .8rem; padding-top: 1rem; border-top: 1px dashed rgba(15,61,46,.18); }
.legal-body h2:first-of-type { border-top: 0; margin-top: 0; padding-top: 0; }
.legal-body p, .legal-body li { color: var(--lnh-muted); }
.legal-body ul { padding-left: 1.2rem; }
.legal-body li { margin-bottom: .4rem; }
.toc-card { position: sticky; top: 110px; background: var(--lnh-cream); border-radius: var(--lnh-radius); padding: 1.6rem; border: 1px solid rgba(15,61,46,.1); }
.toc-card a { display: block; padding: .35rem 0; font-size: .92rem; color: var(--lnh-green-2); border-bottom: 1px dashed rgba(15,61,46,.12); }
.toc-card a:last-child { border-bottom: 0; }

/* ---------- Footer ---------- */
.footer { background: #0c2e23; color: rgba(255,255,255,.78); }
.footer .top { padding: 76px 0 44px; }
.footer h4 { color: #fff; font-size: 1.15rem; margin-bottom: 1.2rem; position: relative; padding-bottom: .7rem; }
.footer h4::after { content: ""; position: absolute; left: 0; bottom: 0; width: 42px; height: 3px; border-radius: 3px; background: var(--lnh-amber); }
.footer ul { list-style: none; padding: 0; margin: 0; }
.footer ul li { margin-bottom: .6rem; }
.footer ul a { color: rgba(255,255,255,.75); font-size: .93rem; display: inline-flex; align-items: center; gap: .45rem; }
.footer ul a svg { width: 12px; height: 12px; fill: var(--lnh-amber); }
.footer ul a:hover { color: var(--lnh-amber); transform: translateX(4px); }
.footer .about-txt { font-size: .93rem; color: rgba(255,255,255,.7); }
.f-contact { font-size: .92rem; }
.f-contact li { display: flex; gap: .7rem; margin-bottom: .8rem; }
.f-contact svg { width: 17px; height: 17px; fill: var(--lnh-amber); flex: 0 0 auto; margin-top: 3px; }
.f-newsletter .form-control { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.2); color: #fff; border-radius: 999px; padding: .7rem 1.2rem; font-size: .9rem; }
.f-newsletter .form-control::placeholder { color: rgba(255,255,255,.5); }
.f-newsletter .form-control:focus { background: rgba(255,255,255,.12); border-color: var(--lnh-amber); box-shadow: none; color: #fff; }
.footer .bottom { border-top: 1px solid rgba(255,255,255,.12); padding: 1.3rem 0; font-size: .88rem; }
.footer .bottom a { color: rgba(255,255,255,.75); }
.footer .bottom a:hover { color: var(--lnh-amber); }

/* ---------- Back to top ---------- */
.back-to-top {
  position: fixed; right: 22px; bottom: 22px; z-index: 1050; width: 50px; height: 50px; border-radius: 14px;
  background: var(--lnh-amber); color: var(--lnh-green); border: none; display: grid; place-items: center;
  box-shadow: 0 12px 26px rgba(245,158,11,.45); opacity: 0; visibility: hidden; transform: translateY(16px);
  transition: all .35s ease;
}
.back-to-top.show { opacity: 1; visibility: visible; transform: translateY(0); }
.back-to-top:hover { background: var(--lnh-green); color: var(--lnh-amber); }
.back-to-top svg { width: 22px; height: 22px; fill: currentColor; }

/* ---------- Toasts ---------- */
.lnh-toast-wrap { position: fixed; top: 88px; right: 18px; z-index: 2000; display: flex; flex-direction: column; gap: .6rem; max-width: 360px; }
.lnh-toast {
  background: var(--lnh-green); color: #fff; border-radius: 14px; padding: .95rem 1.2rem;
  box-shadow: var(--lnh-shadow-lg); display: flex; gap: .7rem; align-items: flex-start;
  animation: toastIn .45s cubic-bezier(.2,.9,.3,1.2);
}
.lnh-toast.success { border-left: 5px solid #34d399; }
.lnh-toast.error { border-left: 5px solid var(--lnh-coral); }
.lnh-toast.info { border-left: 5px solid var(--lnh-amber); }
.lnh-toast .t { font-weight: 700; font-size: .93rem; }
.lnh-toast .m { font-size: .85rem; color: rgba(255,255,255,.82); }
.lnh-toast.out { animation: toastOut .4s ease forwards; }
@keyframes toastIn { from { opacity: 0; transform: translateX(60px); } to { opacity: 1; transform: none; } }
@keyframes toastOut { to { opacity: 0; transform: translateX(60px); } }

/* ---------- Form states ---------- */
.form-msg { border-radius: 12px; padding: .9rem 1.1rem; font-size: .92rem; font-weight: 500; display: none; }
.form-msg.ok { display: block; background: #e7f8f1; color: #0e6b47; border: 1px solid #a7e5cd; }
.form-msg.err { display: block; background: #fdecea; color: #a33224; border: 1px solid #f3c1b8; }
.was-validated .form-control:invalid, .was-validated .form-select:invalid { border-color: var(--lnh-coral); }

/* ---------- Reveal on scroll ---------- */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in { opacity: 1; transform: none; }

/* ---------- Misc ---------- */
.rounded-lnh { border-radius: var(--lnh-radius); }
.text-amber { color: var(--lnh-amber) !important; }
.text-green { color: var(--lnh-green) !important; }
.text-muted-lnh { color: var(--lnh-muted) !important; }
.divider-wave { height: 90px; margin-top: -1px; }
.badge-count { background: var(--lnh-amber); color: var(--lnh-green); border-radius: 999px; font-weight: 700; padding: .25rem .8rem; font-size: .8rem; }

@media (max-width: 991.98px) {
  .section-pad { padding: 70px 0; }
  .hero { min-height: auto; padding: 90px 0 130px; }
  .exp-badge { right: 8px; }
  .navbar-lnh .nav-link { border-radius: 10px; }
  .cta-band { padding: 3rem 1.6rem; }
}
