/* =====================================================================
   Bloom Home Care Services — botanical editorial design system
   Display: Fraunces  ·  Body/UI: Figtree
   ===================================================================== */

:root{
  /* palette */
  --ink:        #17251f;
  --ink-soft:   #40564d;
  --evergreen:  #22463a;
  --evergreen-deep:#152c24;
  --sage:       #7f9c88;
  --sage-line:  #cbdccf;
  --mist:       #e9f0ea;
  --mist-2:     #f0efe6;
  --paper:      #fbf9f3;
  --paper-warm: #f5f1e7;
  --honey:      #d9913f;
  --honey-deep: #bd7a2a;
  --blush:      #e6b6a0;
  --white:      #ffffff;

  /* type */
  --display: "Fraunces", Georgia, "Times New Roman", serif;
  --body: "Figtree", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  /* structure */
  --wrap: 1200px;
  --gutter: clamp(1.15rem, 4vw, 2.75rem);
  --radius: 16px;
  --radius-lg: 26px;
  --shadow-sm: 0 2px 10px rgba(21,44,36,.06);
  --shadow-md: 0 18px 44px -22px rgba(21,44,36,.32);
  --shadow-lg: 0 40px 80px -40px rgba(21,44,36,.45);
  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- reset ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }
body{
  font-family:var(--body);
  color:var(--ink);
  background:var(--paper);
  font-size:clamp(1.02rem,.55vw + .9rem,1.15rem);
  line-height:1.65;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4{ font-family:var(--display); font-weight:500; line-height:1.06; letter-spacing:-.015em; color:var(--ink); }
em{ font-style:italic; }
::selection{ background:var(--honey); color:#fff; }

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter); }

.skip-link{
  position:absolute; left:12px; top:-60px; z-index:200;
  background:var(--evergreen); color:#fff; padding:.7rem 1.1rem; border-radius:10px;
  transition:top .2s var(--ease);
}
.skip-link:focus{ top:12px; }

:focus-visible{ outline:3px solid var(--honey); outline-offset:3px; border-radius:4px; }

/* ---------- shared bits ---------- */
.eyebrow{
  font-family:var(--body); font-weight:600; font-size:.8rem;
  text-transform:uppercase; letter-spacing:.18em; color:var(--honey-deep);
  display:flex; align-items:center; gap:.6rem; margin-bottom:1.1rem;
}
.eyebrow::before{ content:""; width:26px; height:1.5px; background:currentColor; opacity:.7; }
.eyebrow--light{ color:var(--blush); }

.bloom{ width:1em; height:1em; color:var(--honey); display:inline-block; }
.bloom--lg{ width:44px; height:44px; }

/* ---------- buttons ---------- */
.btn{
  --btn-fs:1rem;
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  font-family:var(--body); font-weight:600; font-size:var(--btn-fs);
  padding:.85em 1.4em; border-radius:999px; border:1.6px solid transparent;
  cursor:pointer; transition:transform .25s var(--ease), background .25s var(--ease), box-shadow .25s var(--ease), color .25s var(--ease);
  white-space:nowrap; line-height:1;
}
.btn--sm{ --btn-fs:.9rem; padding:.7em 1.15em; }
.btn--lg{ --btn-fs:1.05rem; padding:1em 1.7em; }
.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(0); }

.btn--primary{ background:var(--evergreen); color:#fff; box-shadow:var(--shadow-md); }
.btn--primary:hover{ background:var(--evergreen-deep); box-shadow:var(--shadow-lg); }

.btn--honey{ background:var(--honey); color:var(--evergreen-deep); box-shadow:0 18px 40px -20px rgba(217,145,63,.8); }
.btn--honey:hover{ background:#e6a253; }

.btn--ghost{ background:transparent; color:var(--evergreen); border-color:var(--sage-line); }
.btn--ghost:hover{ border-color:var(--evergreen); background:var(--mist); }

.btn--outline-light{ background:transparent; color:#fff; border-color:rgba(255,255,255,.4); }
.btn--outline-light:hover{ background:rgba(255,255,255,.1); border-color:#fff; }

/* =====================================================================
   Utility bar
   ===================================================================== */
.utility{ background:var(--evergreen-deep); color:#dfe9e1; font-size:.86rem; }
.utility__inner{ display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:42px; flex-wrap:wrap; }
.utility__contact{ display:flex; gap:1.4rem; flex-wrap:wrap; }
.utility__item{ display:inline-flex; align-items:center; gap:.5rem; color:#dfe9e1; transition:color .2s; }
.utility__item:hover{ color:var(--honey); }
.utility__item .ic{ width:15px; height:15px; flex:none; fill:none; stroke:var(--honey); stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.utility__right{ display:flex; align-items:center; gap:1.3rem; }
.utility__status{ display:inline-flex; align-items:center; gap:.5rem; color:#c6d5c9; }
.pulse{ width:8px; height:8px; border-radius:50%; background:#8fd0a3; box-shadow:0 0 0 0 rgba(143,208,163,.7); animation:pulse 2.2s infinite; }
@keyframes pulse{ 70%{ box-shadow:0 0 0 7px rgba(143,208,163,0);} 100%{ box-shadow:0 0 0 0 rgba(143,208,163,0);} }
.utility__cta{ color:var(--honey); font-weight:600; }
.utility__cta:hover{ text-decoration:underline; text-underline-offset:3px; }
@media (max-width:720px){ .utility__contact{ gap:1rem; } .utility__status{ display:none; } }

/* =====================================================================
   Header
   ===================================================================== */
.site-header{ position:sticky; top:0; z-index:100; background:rgba(251,249,243,.86); backdrop-filter:blur(12px); border-bottom:1px solid transparent; transition:box-shadow .3s var(--ease), border-color .3s, background .3s; }
.site-header.is-stuck{ box-shadow:var(--shadow-sm); border-color:var(--sage-line); background:rgba(251,249,243,.94); }
.header__inner{ display:flex; align-items:center; gap:1.5rem; min-height:74px; }

.brand{ display:inline-flex; align-items:center; gap:.7rem; }
.brand__mark{ width:44px; height:44px; border-radius:12px; background:var(--evergreen); display:grid; place-items:center; box-shadow:var(--shadow-sm); flex:none; }
.brand__mark .bloom{ width:26px; height:26px; color:var(--honey); }
.brand__text{ display:flex; flex-direction:column; line-height:1; }
.brand__name{ font-family:var(--display); font-weight:600; font-size:1.5rem; color:var(--evergreen); letter-spacing:-.02em; }
.brand__sub{ font-family:var(--body); font-weight:600; font-size:.6rem; text-transform:uppercase; letter-spacing:.22em; color:var(--sage); margin-top:.18rem; }

.nav{ display:flex; gap:1.7rem; margin-left:auto; }
.nav a{ font-weight:500; font-size:.98rem; color:var(--ink-soft); position:relative; padding:.3rem 0; transition:color .2s; white-space:nowrap; }
.nav a::after{ content:""; position:absolute; left:0; bottom:-2px; width:0; height:2px; background:var(--honey); border-radius:2px; transition:width .28s var(--ease); }
.nav a:hover{ color:var(--evergreen); }
.nav a:hover::after{ width:100%; }

.header__actions{ display:flex; gap:.6rem; }

.menu-toggle{ display:none; background:none; border:none; width:44px; height:44px; cursor:pointer; margin-left:auto; padding:10px; }
.menu-toggle span{ display:block; height:2px; background:var(--evergreen); border-radius:2px; margin:5px 0; transition:transform .3s var(--ease), opacity .3s; }
.menu-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.mobile-nav{ display:none; flex-direction:column; padding:1rem var(--gutter) 1.8rem; border-top:1px solid var(--sage-line); background:var(--paper); }
.mobile-nav a{ padding:.85rem 0; font-weight:500; font-size:1.1rem; border-bottom:1px solid rgba(203,220,207,.6); color:var(--ink); }
.mobile-nav__cta{ display:flex; flex-direction:column; gap:.7rem; margin-top:1.2rem; }
.mobile-nav__cta .btn{ width:100%; }

/* tighten header on laptops: drop the secondary call button, keep full nav */
@media (max-width:1120px){
  .header__inner{ gap:1.1rem; }
  .nav{ gap:1.35rem; }
  .header__actions .btn--ghost{ display:none; }
}
@media (max-width:940px){
  .nav, .header__actions{ display:none; }
  .menu-toggle{ display:block; }
  .mobile-nav.open{ display:flex; }
}

/* =====================================================================
   Hero
   ===================================================================== */
.hero{ position:relative; overflow:hidden; background:
    radial-gradient(120% 80% at 88% -8%, var(--mist) 0%, transparent 55%),
    linear-gradient(180deg, var(--paper) 0%, var(--paper) 60%, var(--mist-2) 100%); }
.hero__inner{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; padding-block:clamp(3rem,6vw,5.5rem); position:relative; z-index:2; }

.hero__botanical{ position:absolute; top:-40px; left:-30px; width:min(38vw,440px); color:var(--sage); opacity:.5; z-index:1; pointer-events:none; }
.hero__botanical svg{ width:100%; height:auto; }

.hero__copy h1{ font-size:clamp(2.7rem,6.2vw,5rem); font-weight:500; margin:.2em 0 .35em; }
.hero__copy h1 em{ color:var(--evergreen); }
.hero__lede{ font-size:clamp(1.1rem,1.4vw,1.28rem); color:var(--ink-soft); max-width:34ch; margin-bottom:2rem; }
.hero__cta{ display:flex; flex-wrap:wrap; gap:.9rem; margin-bottom:1.6rem; }
.hero__note{ display:flex; align-items:center; gap:.6rem; font-size:.94rem; color:var(--ink-soft); font-weight:500; }
.hero__note .dot{ width:9px; height:9px; border-radius:50%; background:var(--honey); flex:none; }

/* arched image frame — the signature */
.hero__media{ position:relative; }
.arch{ position:relative; border-radius:290px 290px var(--radius-lg) var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg); border:8px solid var(--white); }
.arch img{ width:100%; height:100%; object-fit:cover; aspect-ratio:7/7.4; }
.arch--soft{ border-radius:var(--radius-lg) var(--radius-lg) 200px 200px; }

.hero__media::after{ /* botanical ring accent */
  content:""; position:absolute; inset:-18px; border:1.5px solid var(--sage-line);
  border-radius:300px 300px var(--radius-lg) var(--radius-lg); z-index:-1; opacity:.8;
}
.hero__badge{ position:absolute; left:-18px; bottom:34px; background:#fff; border-radius:16px; padding:.85rem 1.1rem; display:flex; align-items:center; gap:.7rem; box-shadow:var(--shadow-md); }
.hero__badge .bloom{ width:30px; height:30px; flex:none; }
.hero__badge strong{ display:block; font-family:var(--body); font-weight:700; font-size:.95rem; color:var(--evergreen); }
.hero__badge span{ font-size:.8rem; color:var(--ink-soft); }

@media (max-width:900px){
  .hero__inner{ grid-template-columns:1fr; gap:2.5rem; }
  .hero__media{ max-width:460px; margin-inline:auto; width:100%; }
  .hero__lede{ max-width:46ch; }
  .hero__botanical{ opacity:.32; }
}

/* =====================================================================
   Trust strip
   ===================================================================== */
.trust{ background:var(--evergreen); color:#eaf2ec; }
.trust__grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:1.4rem; padding-block:1.8rem; }
.trust__item{ display:flex; align-items:center; gap:.8rem; }
.trust__ic{ width:34px; height:34px; flex:none; fill:none; stroke:var(--honey); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.trust__item strong{ display:block; font-family:var(--body); font-weight:700; font-size:.95rem; color:#fff; }
.trust__item span{ font-size:.82rem; color:#b9ccbe; line-height:1.35; }
@media (max-width:980px){ .trust__grid{ grid-template-columns:repeat(2,1fr); gap:1.3rem 1.6rem; } }
@media (max-width:520px){ .trust__grid{ grid-template-columns:1fr; } }

/* =====================================================================
   Section rhythm + heads
   ===================================================================== */
.section{ padding-block:clamp(3.6rem,7vw,6.5rem); }
.section-head{ max-width:44ch; margin-bottom:clamp(2.2rem,4vw,3.4rem); }
.section-head--center{ max-width:52ch; margin-inline:auto; text-align:center; }
.section-head--center .eyebrow{ justify-content:center; }
.section-head h2{ font-size:clamp(1.9rem,3.6vw,3rem); }
.section-head__lede{ margin-top:1rem; color:var(--ink-soft); font-size:1.1rem; }

/* =====================================================================
   Services
   ===================================================================== */
.services{ background:linear-gradient(180deg,var(--paper) 0%, #fff 100%); }
.cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.3rem; }
.card{
  background:#fff; border:1px solid var(--sage-line); border-radius:var(--radius-lg);
  padding:2rem 1.9rem 1.7rem; position:relative; overflow:hidden;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s;
}
.card::before{ content:""; position:absolute; inset:0 0 auto 0; height:4px; background:linear-gradient(90deg,var(--honey),var(--blush)); transform:scaleX(0); transform-origin:left; transition:transform .4s var(--ease); }
.card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:transparent; }
.card:hover::before{ transform:scaleX(1); }
.card__ic{ width:56px; height:56px; border-radius:16px; background:var(--mist); display:grid; place-items:center; margin-bottom:1.3rem; transition:background .35s var(--ease); }
.card__ic svg{ width:30px; height:30px; fill:none; stroke:var(--evergreen); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; transition:stroke .35s; }
.card:hover .card__ic{ background:var(--evergreen); }
.card:hover .card__ic svg{ stroke:var(--honey); }
.card h3{ font-size:1.4rem; margin-bottom:.55rem; }
.card p{ color:var(--ink-soft); font-size:1rem; margin-bottom:1.2rem; }
.card__link{ font-weight:600; font-size:.94rem; color:var(--evergreen); display:inline-flex; align-items:center; gap:.4rem; }
.card__link span{ transition:transform .28s var(--ease); }
.card:hover .card__link span{ transform:translateX(5px); }
.card__link:hover{ color:var(--honey-deep); }
@media (max-width:900px){ .cards{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .cards{ grid-template-columns:1fr; } }

/* =====================================================================
   Why Bloom
   ===================================================================== */
.why{ background:#fff; }
.why__grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; }
.why__media .arch--soft{ aspect-ratio:auto; }
.why__media img{ aspect-ratio:6.2/5.6; width:100%; object-fit:cover; }
.why__copy h2{ font-size:clamp(1.9rem,3.4vw,2.9rem); }
.why__copy h2 em{ color:var(--honey-deep); }
.why__copy > p{ color:var(--ink-soft); margin-top:1rem; }
.ticks{ list-style:none; margin:1.8rem 0; display:grid; gap:.85rem; }
.ticks li{ position:relative; padding-left:2.1rem; font-weight:500; color:var(--ink); }
.ticks li::before{
  content:""; position:absolute; left:0; top:2px; width:22px; height:22px; border-radius:50%;
  background:var(--mist);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2322463a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:center;
}
.stats{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.4rem 2rem; margin-top:2.2rem; padding-top:2rem; border-top:1px solid var(--sage-line); }
.stat__num{ display:block; font-family:var(--display); font-weight:600; font-size:clamp(2.1rem,3vw,2.7rem); color:var(--evergreen); line-height:1; }
.stat__num em{ color:var(--honey); font-style:normal; }
.stat__label{ display:block; font-size:.92rem; color:var(--ink-soft); margin-top:.4rem; }
@media (max-width:860px){ .why__grid{ grid-template-columns:1fr; } .why__media{ max-width:440px; } }

/* =====================================================================
   Process
   ===================================================================== */
.process{ background:linear-gradient(180deg,#fff 0%, var(--mist-2) 100%); }
.steps{ list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:1.3rem; counter-reset:none; }
.step{ position:relative; padding:2rem 1.6rem; background:var(--paper); border-radius:var(--radius-lg); border:1px solid var(--sage-line); }
.step__num{ font-family:var(--display); font-weight:600; font-size:1.5rem; color:var(--honey); display:grid; place-items:center; width:52px; height:52px; border-radius:50%; border:1.5px solid var(--honey); margin-bottom:1.2rem; }
.step h3{ font-size:1.25rem; margin-bottom:.5rem; }
.step p{ color:var(--ink-soft); font-size:.98rem; }
.step:not(:last-child)::after{
  content:""; position:absolute; top:2.6rem; right:-.85rem; width:1.1rem; height:2px; background:var(--sage);
  z-index:2;
}
@media (max-width:900px){ .steps{ grid-template-columns:repeat(2,1fr); } .step:nth-child(2)::after{ display:none; } }
@media (max-width:520px){ .steps{ grid-template-columns:1fr; } .step::after{ display:none !important; } }

/* =====================================================================
   Compassion band
   ===================================================================== */
.band{ background:var(--evergreen); color:#fff; overflow:hidden; }
.band__inner{ display:grid; grid-template-columns:.9fr 1.1fr; align-items:center; gap:clamp(2rem,5vw,4rem); padding-block:clamp(3rem,5vw,4.5rem); }
.band__media{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg); border:6px solid rgba(255,255,255,.08); }
.band__media img{ width:100%; aspect-ratio:5.2/4.2; object-fit:cover; }
.band__quote{ position:relative; }
.band__quote .bloom--lg{ color:var(--honey); margin-bottom:1.2rem; }
.band__quote p{ font-family:var(--display); font-weight:500; font-size:clamp(1.9rem,3.4vw,2.9rem); line-height:1.15; letter-spacing:-.02em; }
.band__quote p em{ color:var(--blush); }
.band__quote cite{ display:block; font-style:normal; margin-top:1.4rem; color:#c3d3c6; font-size:1.05rem; max-width:46ch; }
@media (max-width:820px){ .band__inner{ grid-template-columns:1fr; } .band__media{ max-width:440px; } }

/* =====================================================================
   Coverage
   ===================================================================== */
.coverage{ background:var(--mist-2); }
.coverage__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
.coverage__copy h2{ font-size:clamp(1.8rem,3.2vw,2.7rem); }
.coverage__copy p{ color:var(--ink-soft); margin:1rem 0 1.8rem; }
.coverage__plans{ display:flex; flex-wrap:wrap; gap:.8rem; }
.plan{ background:#fff; border:1px solid var(--sage-line); border-radius:999px; padding:.7rem 1.3rem; font-weight:600; color:var(--evergreen); box-shadow:var(--shadow-sm); font-size:.98rem; }
.plan--muted{ background:transparent; color:var(--ink-soft); border-style:dashed; box-shadow:none; }
@media (max-width:760px){ .coverage__grid{ grid-template-columns:1fr; } }

/* =====================================================================
   Testimonials
   ===================================================================== */
.testimonials{ background:var(--paper); }
.quotes{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.3rem; }
.quote{ background:#fff; border:1px solid var(--sage-line); border-radius:var(--radius-lg); padding:2rem 1.8rem; display:flex; flex-direction:column; }
.quote__stars{ color:var(--honey); letter-spacing:.14em; font-size:1.05rem; margin-bottom:1rem; }
.quote blockquote{ font-size:1.08rem; color:var(--ink); line-height:1.55; margin-bottom:1.6rem; flex:1; }
.quote figcaption{ display:flex; align-items:center; gap:.85rem; border-top:1px solid var(--sage-line); padding-top:1.2rem; }
.quote figcaption img{ width:52px; height:52px; border-radius:50%; object-fit:cover; }
.quote figcaption strong{ display:block; font-family:var(--body); font-weight:700; color:var(--evergreen); font-size:1rem; }
.quote figcaption span{ font-size:.86rem; color:var(--ink-soft); }
@media (max-width:900px){ .quotes{ grid-template-columns:1fr; max-width:520px; margin-inline:auto; } }

/* =====================================================================
   Service areas
   ===================================================================== */
.areas{ background:#fff; }
.areas__inner{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
.areas__copy h2{ font-size:clamp(1.9rem,3.4vw,2.9rem); }
.areas__copy p{ color:var(--ink-soft); margin-top:1rem; }
.areas__list{ list-style:none; display:grid; grid-template-columns:repeat(2,1fr); gap:.7rem; }
.areas__list li{ display:flex; align-items:center; gap:.7rem; font-weight:600; color:var(--evergreen); font-size:1.08rem; padding:.55rem 0; border-bottom:1px solid var(--mist); }
.areas__list li::before{ content:""; width:18px; height:18px; flex:none; border-radius:50%; background:var(--mist);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23d9913f' stroke-width='2.4'%3E%3Cpath d='M12 21s-7-5.2-7-11a7 7 0 0 1 14 0c0 5.8-7 11-7 11Z'/%3E%3Ccircle cx='12' cy='10' r='2.4'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:center; }
.areas__more{ grid-column:1/-1; color:var(--ink-soft) !important; font-weight:500 !important; font-style:italic; border-bottom:none !important; }
.areas__more::before{ display:none; }
@media (max-width:760px){ .areas__inner{ grid-template-columns:1fr; } }

/* =====================================================================
   Final CTA
   ===================================================================== */
.cta{ background:
    radial-gradient(90% 120% at 100% 0%, #2c5747 0%, transparent 55%),
    var(--evergreen-deep); color:#fff; position:relative; overflow:hidden; }
.cta__inner{ display:grid; grid-template-columns:1.3fr 1fr; gap:clamp(2rem,5vw,4rem); align-items:center; padding-block:clamp(3.2rem,6vw,5rem); position:relative; z-index:2; }
.cta__botanical{ position:absolute; right:-40px; top:-30px; width:260px; height:260px; color:rgba(217,145,63,.16); z-index:1; }
.cta__botanical .bloom{ width:100%; height:100%; color:inherit; }
.cta__copy h2{ color:#fff; font-size:clamp(2rem,4vw,3.2rem); }
.cta__copy p{ color:#c3d3c6; margin-top:1rem; max-width:44ch; }
.cta__actions{ display:flex; flex-direction:column; gap:.9rem; align-items:flex-start; }
.cta__actions .btn{ width:100%; }
.cta__fine{ font-size:.9rem; color:#9db3a2; margin-top:.4rem; }
@media (max-width:800px){ .cta__inner{ grid-template-columns:1fr; } .cta__actions{ align-items:stretch; } }

/* =====================================================================
   Footer
   ===================================================================== */
.footer{ background:var(--ink); color:#c7d2cb; padding-top:clamp(3rem,5vw,4.5rem); }
.footer__grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1.2fr; gap:2.5rem; padding-bottom:3rem; }
.brand--light .brand__name{ color:#fff; }
.brand--light .brand__sub{ color:var(--sage); }
.brand--light .brand__mark{ background:var(--evergreen); }
.footer__blurb{ margin:1.2rem 0 1rem; font-size:.96rem; max-width:34ch; color:#a9b7af; }
.footer__promise{ font-family:var(--display); font-style:italic; color:var(--honey); font-size:1.1rem; }
.footer__col h4{ font-family:var(--body); font-weight:700; font-size:.8rem; text-transform:uppercase; letter-spacing:.16em; color:#fff; margin-bottom:1.1rem; }
.footer__col a{ display:block; padding:.4rem 0; color:#a9b7af; font-size:.96rem; transition:color .2s, padding-left .2s; }
.footer__col a:hover{ color:var(--honey); padding-left:5px; }
.footer__contact-item{ display:flex !important; align-items:center; gap:.6rem; }
.footer__contact-item .ic{ width:17px; height:17px; flex:none; fill:none; stroke:var(--honey); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.footer__hours{ margin-top:1rem; color:var(--honey); font-weight:600; font-size:.95rem; }
.footer__bottom{ display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; padding-block:1.6rem; border-top:1px solid rgba(255,255,255,.1); font-size:.88rem; color:#8a988f; }
.footer__legal{ display:flex; gap:1.5rem; flex-wrap:wrap; }
.footer__legal a:hover{ color:var(--honey); }
.footer__legal a[aria-current="page"]{ color:var(--honey); font-weight:600; }
@media (max-width:860px){ .footer__grid{ grid-template-columns:1fr 1fr; gap:2rem; } }
@media (max-width:520px){ .footer__grid{ grid-template-columns:1fr; } .footer__bottom{ justify-content:flex-start; } }

/* =====================================================================
   Reveal animation
   ===================================================================== */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.reveal:nth-child(2){ transition-delay:.05s; }
.reveal:nth-child(3){ transition-delay:.1s; }
.reveal:nth-child(4){ transition-delay:.15s; }

/* hero botanical draw-on */
.hero__botanical path, .hero__botanical .petals path{ stroke-dasharray:1; stroke-dashoffset:1; }
@media (prefers-reduced-motion:no-preference){
  .hero__botanical .stem{ stroke-dasharray:600; stroke-dashoffset:600; animation:draw 2.4s var(--ease) .3s forwards; }
  .hero__botanical .leaf{ stroke-dasharray:200; stroke-dashoffset:200; animation:draw 1.4s var(--ease) 1.1s forwards; }
  .hero__botanical .petals path{ stroke-dasharray:140; stroke-dashoffset:140; animation:draw 1.2s var(--ease) 1.9s forwards; }
  .hero__botanical .core{ opacity:0; animation:fadeIn .6s ease 2.9s forwards; }
}
@keyframes draw{ to{ stroke-dashoffset:0; } }
@keyframes fadeIn{ to{ opacity:1; } }

@media (prefers-reduced-motion:reduce){
  .reveal{ opacity:1 !important; transform:none !important; }
  .hero__botanical path, .hero__botanical .core{ stroke-dashoffset:0 !important; opacity:1 !important; }
  .btn:hover, .card:hover{ transform:none; }
}

/* =====================================================================
   Legal / inner pages  (Privacy · Terms · HIPAA)
   ===================================================================== */
.legal-hero{
  position:relative; overflow:hidden;
  background:
    radial-gradient(120% 90% at 92% -20%, var(--mist) 0%, transparent 55%),
    linear-gradient(180deg, var(--paper) 0%, var(--mist-2) 100%);
  border-bottom:1px solid var(--sage-line);
  padding-block:clamp(2.6rem,5vw,4.2rem);
}
.legal-hero__botanical{ position:absolute; right:-30px; top:-40px; width:min(30vw,300px); color:var(--sage); opacity:.4; pointer-events:none; }
.legal-hero__botanical .bloom{ width:100%; height:100%; }
.legal-hero__inner{ position:relative; z-index:2; max-width:820px; }
.legal-hero h1{ font-size:clamp(2.1rem,4.4vw,3.4rem); margin-top:.3rem; }
.legal-hero__lede{ margin-top:1rem; color:var(--ink-soft); font-size:1.12rem; max-width:60ch; }
.legal-hero__meta{ display:flex; flex-wrap:wrap; gap:.6rem 1.4rem; margin-top:1.4rem; font-size:.9rem; color:var(--ink-soft); }
.legal-hero__meta strong{ color:var(--evergreen); font-weight:600; }

.breadcrumb{ display:flex; align-items:center; gap:.5rem; font-size:.86rem; color:var(--ink-soft); font-weight:500; }
.breadcrumb a{ color:var(--evergreen); }
.breadcrumb a:hover{ color:var(--honey-deep); text-decoration:underline; text-underline-offset:3px; }
.breadcrumb span{ opacity:.5; }

.legal-shell{ max-width:820px; margin-inline:auto; padding-block:clamp(2.6rem,5vw,4.5rem); }

/* required-statement / callout box */
.legal-callout{
  background:var(--evergreen); color:#eaf2ec; border-radius:var(--radius-lg);
  padding:1.6rem 1.8rem; margin-bottom:2.6rem; display:flex; gap:1rem; align-items:flex-start;
  box-shadow:var(--shadow-md);
}
.legal-callout .bloom{ width:30px; height:30px; flex:none; color:var(--honey); margin-top:2px; }
.legal-callout p{ margin:0; font-size:1.02rem; line-height:1.55; }
.legal-callout strong{ color:#fff; }

/* table of contents */
.toc{ border:1px solid var(--sage-line); background:#fff; border-radius:var(--radius); padding:1.4rem 1.6rem; margin-bottom:2.8rem; }
.toc h2{ font-family:var(--body); font-weight:700; font-size:.8rem; text-transform:uppercase; letter-spacing:.16em; color:var(--sage); margin-bottom:.9rem; }
.toc ol{ margin:0; padding:0; list-style:none; counter-reset:toc; columns:2; column-gap:2rem; }
.toc li{ counter-increment:toc; break-inside:avoid; margin-bottom:.5rem; }
.toc a{ color:var(--ink); font-weight:500; font-size:.96rem; display:flex; gap:.6rem; }
.toc a::before{ content:counter(toc,decimal-leading-zero); color:var(--honey); font-family:var(--display); font-weight:600; }
.toc a:hover{ color:var(--honey-deep); }
@media (max-width:600px){ .toc ol{ columns:1; } }

/* prose */
.prose{ color:var(--ink-soft); }
.prose > section{ scroll-margin-top:110px; }
.prose > section + section{ margin-top:2.6rem; }
.prose h2{
  font-size:clamp(1.4rem,2.4vw,1.9rem); color:var(--ink); margin-bottom:.9rem;
  padding-bottom:.7rem; border-bottom:1px solid var(--sage-line);
  display:flex; align-items:baseline; gap:.7rem;
}
.prose h2 .n{ font-family:var(--body); font-size:.82rem; font-weight:700; color:var(--honey); letter-spacing:.04em; flex:none; }
.prose h3{ font-size:1.18rem; color:var(--evergreen); margin:1.6rem 0 .6rem; }
.prose p{ margin-bottom:1rem; }
.prose ul, .prose ol.list{ margin:0 0 1.1rem; padding-left:0; list-style:none; display:grid; gap:.6rem; }
.prose ul li, .prose ol.list li{ position:relative; padding-left:1.7rem; }
.prose ul li::before{ content:""; position:absolute; left:0; top:.62em; width:7px; height:7px; border-radius:50%; background:var(--honey); }
.prose ol.list{ counter-reset:pl; }
.prose ol.list li{ counter-increment:pl; }
.prose ol.list li::before{ content:counter(pl); position:absolute; left:0; top:0; color:var(--evergreen); font-weight:700; font-size:.9rem; }
.prose a{ color:var(--evergreen); text-decoration:underline; text-underline-offset:2px; text-decoration-color:var(--sage-line); }
.prose a:hover{ text-decoration-color:var(--honey); color:var(--honey-deep); }
.prose strong{ color:var(--ink); font-weight:600; }
.prose .placeholder{ background:rgba(217,145,63,.14); color:var(--honey-deep); padding:.05em .4em; border-radius:5px; font-weight:600; font-size:.95em; white-space:nowrap; }

/* rights cards */
.rights{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin:1.2rem 0 .4rem; }
.rights__item{ background:#fff; border:1px solid var(--sage-line); border-radius:var(--radius); padding:1.2rem 1.3rem; }
.rights__item h3{ margin:0 0 .35rem; font-size:1.05rem; }
.rights__item p{ margin:0; font-size:.95rem; }
@media (max-width:640px){ .rights{ grid-template-columns:1fr; } }

/* contact block */
.legal-contact{ margin-top:2.8rem; background:var(--mist); border:1px solid var(--sage-line); border-radius:var(--radius-lg); padding:1.8rem; }
.legal-contact h2{ border:none; padding:0; margin-bottom:.4rem; }
.legal-contact p{ margin-bottom:.4rem; }
.legal-contact a{ font-weight:600; }
.legal-contact .legal-contact__row{ display:flex; flex-wrap:wrap; gap:.4rem 1.4rem; margin-top:.8rem; }

/* back-to-top / to-home strip */
.legal-foothint{ text-align:center; margin-top:2.6rem; }
.legal-foothint a{ font-weight:600; color:var(--evergreen); }
.legal-foothint a:hover{ color:var(--honey-deep); }

/* language-assistance taglines */
.taglines{ display:grid; gap:.7rem; margin:1.2rem 0 .4rem; }
.tagline{ display:grid; grid-template-columns:130px 1fr; gap:.4rem 1.1rem; align-items:start;
  background:#fff; border:1px solid var(--sage-line); border-radius:var(--radius); padding:1rem 1.2rem; }
.tagline__lang{ font-weight:700; color:var(--evergreen); font-size:.95rem; }
.tagline__text{ color:var(--ink-soft); font-size:1rem; line-height:1.5; }
.tagline__text[dir="rtl"]{ text-align:right; }
@media (max-width:560px){ .tagline{ grid-template-columns:1fr; gap:.25rem; } }
