/* ==========================================================
   Hands of Life Home Care — custom styles (Tailwind via CDN)
   Palette: plum #5b3a6e · purple #8e62a0 · leaf #66a845 · stone #8c8b90
   ========================================================== */
:root{
  --plum-900:#2c1b37; --plum-700:#5b3a6e; --plum-500:#8e62a0; --plum-100:#eee3f2; --plum-50:#f7f2f9;
  --leaf-700:#3e6c2b; --leaf-500:#66a845; --leaf-400:#7fbb5c; --leaf-200:#bfe0ab;
  --ink:#241a2b; --bg:#fbf9fc; --surface:#ffffff; --line:#e9dff0;
  --radius-lg:28px; --radius:18px; --header-h:84px;
  --ease:cubic-bezier(.22,.8,.24,1);
  --text-scale:1;
}
html.dark{ --bg:#140f19; --surface:#1d1624; --line:rgba(255,255,255,.09); }
html{ font-size:calc(100% * var(--text-scale)); }
html[data-text="sm"]{ --text-scale:.92 }
html[data-text="lg"]{ --text-scale:1.18 }
body{ line-height:1.65; }
img{ max-width:100%; }
.anchor{ scroll-margin-top:110px; }

/* ---------- Accessibility basics ---------- */
.skip-link{ position:fixed; left:12px; top:-60px; z-index:100; background:var(--plum-700); color:#fff; padding:12px 18px; border-radius:12px; font-weight:700; transition:top .2s; }
.skip-link:focus{ top:12px; }
:focus-visible{ outline:3px solid var(--leaf-500); outline-offset:3px; border-radius:6px; }
#main:focus{ outline:none; }
.hp-field{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }

/* ---------- Header (transparent over banner) ---------- */
.site-header{ position:fixed; inset:0 0 auto 0; z-index:50; background:transparent; transition:background .35s var(--ease), box-shadow .35s, backdrop-filter .35s; }
.site-header.is-scrolled{ background:rgba(44,27,55,.86); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); box-shadow:0 6px 30px rgba(20,10,30,.25); }
.logo-glow{ filter:drop-shadow(0 2px 8px rgba(0,0,0,.35)); }
.nav-link{ display:inline-flex; align-items:center; white-space:nowrap; color:#fff; font-size:16px; padding:10px 14px; border-radius:999px; position:relative; transition:background .25s; }
.nav-link:hover{ background:rgba(255,255,255,.12); }
.nav-link.is-active{ background:rgba(255,255,255,.16); }
.nav-link.is-active::after{ content:""; position:absolute; left:50%; bottom:3px; width:6px; height:6px; margin-left:-3px; border-radius:50%; background:var(--leaf-400); }
.nav-link[aria-expanded="true"] svg{ transform:rotate(180deg); }
.dropdown{ position:absolute; top:calc(100% + 10px); left:50%; transform:translateX(-50%); width:min(560px,90vw); background:var(--surface); color:var(--ink); border-radius:var(--radius); padding:18px; box-shadow:0 24px 60px rgba(44,27,55,.28); display:grid; grid-template-columns:1fr 1fr; column-gap:18px; animation:dd .25s var(--ease); }
html.dark .dropdown{ color:#f7f2f9; border:1px solid var(--line); }
.dropdown[hidden]{ display:none; }
@keyframes dd{ from{opacity:0; transform:translate(-50%,8px)} to{opacity:1; transform:translate(-50%,0)} }
.dropdown-all{ grid-column:1/-1; display:block; padding:10px 12px; border-radius:12px; background:var(--plum-50); color:var(--plum-700); font-weight:700; margin-bottom:8px; }
html.dark .dropdown-all{ background:rgba(142,98,160,.18); color:#eee3f2; }
.dropdown-label{ font-family:Marcellus,serif; color:var(--leaf-700); margin:8px 12px 4px; font-size:15px; grid-row:2; }
html.dark .dropdown-label{ color:var(--leaf-200); }
.dropdown-label + ul{ grid-row:3; }
.dropdown ul a{ display:block; padding:7px 12px; border-radius:10px; font-size:15px; }
.dropdown ul a:hover, .dropdown ul a:focus-visible{ background:var(--plum-50); color:var(--plum-700); }
html.dark .dropdown ul a:hover{ background:rgba(255,255,255,.07); color:#fff; }
.menu-btn{ color:#fff; width:46px; height:46px; display:inline-grid; place-items:center; border-radius:14px; background:rgba(255,255,255,.12); }
.mobile-menu{ position:fixed; inset:0; z-index:60; background:rgba(20,10,30,.55); backdrop-filter:blur(4px); }
.mobile-menu[hidden]{ display:none; }
.mobile-menu__panel{ position:absolute; inset:0 0 0 auto; width:min(380px,88vw); background:var(--surface); padding:22px; overflow-y:auto; animation:slideIn .35s var(--ease); }
@keyframes slideIn{ from{transform:translateX(100%)} to{transform:none} }
.mobile-link{ display:block; padding:13px 14px; border-radius:14px; font-size:18px; color:var(--ink); }
html.dark .mobile-link{ color:#f7f2f9; }
.mobile-link:hover,.mobile-link.is-active{ background:var(--plum-50); color:var(--plum-700); }
html.dark .mobile-link:hover, html.dark .mobile-link.is-active{ background:rgba(142,98,160,.2); color:#fff; }

/* ---------- Buttons ---------- */
.btn{ display:inline-flex; align-items:center; gap:.55rem; font-weight:700; font-size:16.5px; padding:.85rem 1.4rem; border-radius:999px; transition:transform .25s var(--ease), box-shadow .25s, background .25s, color .25s; line-height:1.2; }
.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(0); }
.btn-leaf{ background:#4f8a34; color:#fff; box-shadow:0 10px 24px -10px rgba(79,138,52,.7); }
.btn-leaf:hover{ background:#3e6c2b; }
.btn-plum{ background:var(--plum-700); color:#fff; box-shadow:0 10px 24px -10px rgba(91,58,110,.7); }
.btn-plum:hover{ background:#432a52; }
html.dark .btn-plum{ background:#8e62a0; }
html.dark .btn-plum:hover{ background:#a47eb3; }
.btn-ghost{ color:#fff; border:2px solid rgba(255,255,255,.7); }
.btn-ghost:hover{ background:#fff; color:var(--plum-700); }
.btn-ghost-dark{ color:var(--plum-700); border:2px solid var(--plum-700); }
html.dark .btn-ghost-dark{ color:#fff; border-color:#fff; }
.btn-outline{ color:var(--plum-700); border:2px solid currentColor; }
.btn-outline:hover{ background:var(--plum-700); color:#fff; border-color:var(--plum-700); }
html.dark .btn-outline{ color:#eee3f2; }
html.dark .btn-outline:hover{ background:#eee3f2; color:var(--plum-900); border-color:#eee3f2; }

/* ---------- Hero (fits one screen, no scroll) ---------- */
.hero{ position:relative; height:100vh; height:100svh; min-height:560px; display:flex; flex-direction:column; overflow:hidden; background:var(--plum-900); isolation:isolate; }
.hero__slides, .hero__slide{ position:absolute; inset:0; }
.hero__slide{ width:100%; height:100%; object-fit:cover; object-position:center 35%; opacity:0; transform:scale(1.06); transition:opacity 1.6s ease, transform 9s linear; }
.hero__slide.is-active{ opacity:1; transform:scale(1); }
.hero__overlay, .page-hero__overlay{ position:absolute; inset:0; background:rgba(0,0,0,.5); z-index:1; }
.leaf-canvas{ position:absolute; inset:0; width:100%; height:100%; z-index:2; pointer-events:none; }
.hero__inner{ position:relative; z-index:3; flex:1; display:flex; align-items:center; padding-top:var(--header-h); }
.hero__strip{ position:relative; z-index:3; background:rgba(26,16,33,.55); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); border-top:1px solid rgba(255,255,255,.12); }
.hero-tag{ display:inline-flex; align-items:center; gap:.5rem; color:#fff; background:rgba(102,168,69,.85); padding:.4rem .9rem; border-radius:999px; font-size:15px; }
.reveal-hero{ opacity:0; transform:translateY(18px); animation:heroIn .9s var(--ease) forwards; animation-delay:var(--d,0s); }
@keyframes heroIn{ to{ opacity:1; transform:none; } }
@media (max-height:700px) and (min-width:640px){ .hero h1{ font-size:2.3rem } .hero p.text-lg{ font-size:1.05rem } }

/* ---------- Inner page hero ---------- */
.page-hero{ position:relative; min-height:340px; display:flex; align-items:flex-end; overflow:hidden; background:var(--plum-900); isolation:isolate; }
.page-hero__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 35%; animation:kb 14s ease-out forwards; }
.page-hero > .relative{ z-index:3; }
@keyframes kb{ from{ transform:scale(1.08) } to{ transform:scale(1) } }

/* ---------- Sections ---------- */
.section{ padding:5.5rem 0; }
.section--compact{ padding:3.5rem 0; }
@media (max-width:767px){ .section{ padding:3.75rem 0 } .section--compact{ padding:2.75rem 0 } }
.section--tint{ background:var(--plum-50); }
html.dark .section--tint{ background:#1a1420; }
.section--plum{ background:var(--plum-700); color:#fff; position:relative; overflow:hidden; }
html.dark .section--plum{ background:#2c1b37; }
.section--plum::before{ content:""; position:absolute; width:520px; height:520px; right:-160px; top:-200px; border-radius:50%; background:radial-gradient(circle, rgba(127,187,92,.22), transparent 70%); }
.h2{ font-family:Marcellus,Georgia,serif; font-size:clamp(1.65rem,2.6vw,2.2rem); line-height:1.2; color:var(--plum-700); }
html.dark .h2{ color:#eee3f2; }
.chip{ display:inline-flex; align-items:center; gap:.45rem; padding:.45rem .9rem; border-radius:999px; background:var(--surface); border:1px solid var(--line); font-size:15.5px; }

/* Scroll reveal */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .8s var(--ease), transform .8s var(--ease); transition-delay:var(--d,0s); }
.reveal.is-in{ opacity:1; transform:none; }
.no-js .reveal{ opacity:1; transform:none; }

/* ---------- Photo stack with light 3D tilt ---------- */
.photo-stack{ position:relative; aspect-ratio:5/4.4; perspective:1100px; }
.photo-stack figure{ position:absolute; overflow:hidden; border-radius:var(--radius-lg); box-shadow:0 30px 60px -25px rgba(44,27,55,.45); transition:transform .5s var(--ease); }
.photo-stack__back{ width:62%; aspect-ratio:3/2; right:0; top:0; transform:rotate(3deg) translateZ(-40px); }
.photo-stack__front{ width:78%; aspect-ratio:3/2; left:0; bottom:0; border:6px solid var(--surface); }
.photo-stack__badge{ position:absolute; left:58%; top:44%; width:92px; height:92px; border-radius:50%; background:#fff; display:grid; place-items:center; box-shadow:0 12px 30px rgba(44,27,55,.25); transform:translateZ(60px); animation:floaty 6s ease-in-out infinite; }
@keyframes floaty{ 50%{ transform:translateY(-8px) translateZ(60px) } }
[data-tilt]{ transform-style:preserve-3d; transition:transform .6s var(--ease); will-change:transform; }

/* ---------- Services ---------- */
.service-grid{ display:grid; gap:0; grid-template-columns:1fr; border-top:1px solid var(--line); }
@media (min-width:768px){ .service-grid{ grid-template-columns:1fr 1fr; } }
@media (min-width:1024px){ .service-grid{ grid-template-columns:repeat(3,1fr); } }
.service-item{ display:flex; gap:1.1rem; padding:1.8rem 1.4rem 1.8rem 0; border-bottom:1px solid var(--line); position:relative; }
@media (min-width:768px){ .service-item{ padding-left:1.4rem; } .service-grid > .service-item:not(:last-child){ border-right:1px solid var(--line); } }
.service-item__icon{ flex:none; width:60px; height:60px; border-radius:20px 20px 20px 6px; display:grid; place-items:center; color:#fff; background:var(--plum-500); transition:transform .4s var(--ease), background .3s; }
.service-item:nth-child(even) .service-item__icon{ background:#4f8a34; }
.service-item:hover .service-item__icon{ transform:rotate(-8deg) scale(1.06); }
.service-grid--4{ border-top:0; gap:1.1rem; }
@media (min-width:1024px){ .service-grid--4{ grid-template-columns:repeat(4,1fr); } }
.service-grid--4 .service-item{ border:1px solid var(--line) !important; border-radius:var(--radius); background:var(--surface); padding:1.5rem; }
.service-item--stack{ flex-direction:column; gap:0; }

/* ---------- Quote band ---------- */
.quote-band{ position:relative; overflow:hidden; background:#4f8a34; }
html.dark .quote-band{ background:#2f5222; }
.quote-band__mark{ position:absolute; right:-40px; bottom:-60px; height:360px; width:auto; opacity:.12; filter:brightness(10); pointer-events:none; }

/* ---------- Care-settings slider: 3 / 2 / 1 columns, no scrollbar ---------- */
.cs-slider{ overflow:hidden; padding:14px 6px 24px; margin:-14px -6px -24px; --per:1; --gap:20px; }
@media (min-width:640px){ .cs-slider{ --per:2; } }
@media (min-width:1024px){ .cs-slider{ --per:3; } }
.cs-track{ display:flex; gap:var(--gap); transition:transform .7s var(--ease); will-change:transform; perspective:1200px; }
.cs-slide{ flex:0 0 calc((100% - (var(--per) - 1) * var(--gap)) / var(--per)); min-width:0; }
.cs-slide[aria-hidden="true"] .rail-card__link{ opacity:.55; }
.cs-dots{ display:flex; justify-content:center; gap:10px; margin-top:26px; }
.cs-dot{ width:12px; height:12px; border-radius:99px; background:var(--plum-200,#dcc6e4); transition:width .35s var(--ease), background .3s; }
html.dark .cs-dot{ background:rgba(255,255,255,.25); }
.cs-dot[aria-current="true"]{ width:32px; background:var(--leaf-500); }
.rail-btn:disabled{ opacity:.4; cursor:default; }
.rail-card__link{ position:relative; display:block; aspect-ratio:4/5; transition:opacity .4s; border-radius:var(--radius-lg); overflow:hidden; transform-style:preserve-3d; transition:transform .5s var(--ease), box-shadow .5s; box-shadow:0 20px 40px -24px rgba(44,27,55,.6); }
.rail-card__link:hover, .rail-card__link:focus-visible{ transform:rotateY(-6deg) translateY(-6px); box-shadow:0 34px 60px -28px rgba(44,27,55,.7); }
.rail-card__media{ position:absolute; inset:0; }
.rail-card__media img{ transition:transform 1.2s var(--ease); }
.rail-card__link:hover .rail-card__media img{ transform:scale(1.06); }
.rail-card__link::after{ content:""; position:absolute; inset:0; background:rgba(0,0,0,.5); }
.rail-card__body{ position:absolute; inset:auto 0 0 0; z-index:2; padding:1.5rem; }
.rail-card__icon{ display:inline-grid; place-items:center; width:46px; height:46px; border-radius:14px; background:rgba(255,255,255,.18); color:#fff; margin-bottom:.8rem; backdrop-filter:blur(4px); }
.rail-btn{ width:50px; height:50px; border-radius:50%; display:grid; place-items:center; border:2px solid var(--plum-700); color:var(--plum-700); transition:background .25s,color .25s; }
.rail-btn:hover{ background:var(--plum-700); color:#fff; }
html.dark .rail-btn{ border-color:#eee3f2; color:#eee3f2; }

/* ---------- Caregivers / ticks / frames ---------- */
.tick{ flex:none; width:30px; height:30px; border-radius:50%; display:grid; place-items:center; background:var(--leaf-500); color:#fff; }
.tick--plum{ background:var(--plum-500); }
.frame-arch{ border-radius:240px 240px var(--radius-lg) var(--radius-lg); overflow:hidden; aspect-ratio:4/4.4; max-width:520px; margin-inline:auto; width:100%; box-shadow:0 40px 70px -30px rgba(0,0,0,.55); border:8px solid rgba(255,255,255,.12); }
.frame-arch--light{ border-color:var(--plum-100); }
html.dark .frame-arch--light{ border-color:rgba(255,255,255,.08); }
.ceo-portrait{ aspect-ratio:4/5; border-radius:200px 200px var(--radius-lg) var(--radius-lg); overflow:hidden; max-width:400px; width:100%; margin-inline:auto; box-shadow:0 30px 60px -28px rgba(44,27,55,.55); outline:2px solid var(--leaf-400); outline-offset:10px; }

/* ---------- CTA / areas ---------- */
.cta-panel{ border-radius:var(--radius-lg); padding:clamp(1.75rem,4vw,3.25rem); background:var(--plum-700); color:#fff; position:relative; overflow:hidden; }
html.dark .cta-panel{ background:#2c1b37; border:1px solid var(--line); }
.cta-panel::after{ content:""; position:absolute; left:-120px; bottom:-160px; width:420px; height:420px; border-radius:50%; background:radial-gradient(circle, rgba(127,187,92,.25), transparent 70%); pointer-events:none; }
.cta-panel > *{ position:relative; z-index:1; }
.area-pill{ display:flex; gap:.7rem; align-items:flex-start; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); border-radius:16px; padding:.85rem 1rem; color:#fff; }

/* ---------- Inner pages ---------- */
.subnav{ position:sticky; top:76px; z-index:30; background:var(--surface); border-bottom:1px solid var(--line); }
@media (min-width:1024px){ .subnav{ top:84px; } }
.subnav__link{ white-space:nowrap; padding:.5rem 1rem; border-radius:999px; font-size:15px; border:1px solid var(--line); }
.subnav__link:hover{ background:var(--plum-700); color:#fff; border-color:var(--plum-700); }
.setting{ display:grid; gap:0; background:var(--surface); border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--line); }
@media (min-width:900px){ .setting{ grid-template-columns:5fr 7fr; } .setting--flip{ grid-template-columns:7fr 5fr; } .setting--flip .setting__media{ order:2; } }
.setting__media{ aspect-ratio:3/2; overflow:hidden; }
@media (min-width:900px){ .setting__media{ aspect-ratio:auto; min-height:300px; } }
.setting__body{ padding:clamp(1.4rem,3vw,2.4rem); align-self:center; }
.setting__icon{ display:inline-grid; place-items:center; width:48px; height:48px; border-radius:14px; background:var(--plum-50); color:var(--plum-700); }
html.dark .setting__icon{ background:rgba(142,98,160,.2); color:#eee3f2; }
.mission-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:2rem; }
.glance{ background:var(--plum-50); border-radius:16px; padding:.9rem .6rem; }
html.dark .glance{ background:rgba(255,255,255,.05); }
.glance dt{ font-size:13.5px; color:#6d6c71; }
html.dark .glance dt{ color:#c3a1cf; }
.glance dd{ font-weight:700; color:var(--plum-700); margin-top:2px; }
html.dark .glance dd{ color:#fff; }
.staffing{ background:#4f8a34; border-radius:var(--radius-lg); padding:clamp(1.6rem,4vw,2.6rem); }
html.dark .staffing{ background:#2f5222; }
.staffing__icon{ display:inline-grid; place-items:center; width:56px; height:56px; border-radius:16px; background:rgba(255,255,255,.18); color:#fff; }
.standards{ display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); position:relative; }
.standard{ display:flex; align-items:center; gap:.9rem; padding:1.1rem 1.2rem; border-radius:18px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); font-size:17px; }
.standard .tick{ width:38px; height:38px; }
.prose-care p, .prose-care li{ font-size:1.075rem; line-height:1.75; }
.prose-care p{ margin-top:1rem; }
.prose-care h3{ font-family:Marcellus,serif; font-size:1.35rem; color:var(--plum-700); margin-top:2rem; }
html.dark .prose-care h3{ color:#eee3f2; }
.prose-care ul{ list-style:disc; padding-left:1.4rem; margin-top:.8rem; }
.prose-care a{ color:var(--plum-700); text-decoration:underline; text-underline-offset:3px; }
html.dark .prose-care a{ color:#dcc6e4; }

/* ---------- Contact & forms ---------- */
.contact-list{ display:grid; gap:1rem; }
.contact-list li{ display:flex; gap:1rem; align-items:flex-start; }
.contact-list__icon{ flex:none; width:50px; height:50px; border-radius:16px; display:grid; place-items:center; background:var(--plum-50); color:var(--plum-700); }
html.dark .contact-list__icon{ background:rgba(142,98,160,.2); color:#eee3f2; }
.contact-list__label{ font-size:14px; color:#6d6c71; }
html.dark .contact-list__label{ color:#c3a1cf; }
.contact-list__value{ font-weight:700; color:var(--ink); }
html.dark .contact-list__value{ color:#fff; }
a.contact-list__value:hover{ color:var(--plum-500); text-decoration:underline; }
.form-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:clamp(1.4rem,3.5vw,2.4rem); box-shadow:0 30px 60px -40px rgba(44,27,55,.4); }
.label{ display:block; font-weight:700; font-size:15.5px; margin-bottom:.35rem; }
.input{ width:100%; border:1.5px solid #cdbfd6; background:#fff; color:var(--ink); border-radius:14px; padding:.8rem 1rem; font-size:16px; transition:border-color .2s, box-shadow .2s; }
html.dark .input{ background:#140f19; border-color:#4a3a55; color:#fff; }
.input:focus{ outline:none; border-color:var(--plum-500); box-shadow:0 0 0 4px rgba(142,98,160,.22); }
.input[aria-invalid="true"]{ border-color:#b42318; }
.err{ color:#b42318; font-size:14.5px; margin-top:.35rem; font-weight:700; }
html.dark .err{ color:#ff9b8f; }
.alert{ display:flex; gap:.6rem; align-items:flex-start; border-radius:14px; padding:.9rem 1rem; margin-top:1rem; font-weight:700; }
.alert--ok{ background:#e9f5e2; color:#29461f; border:1px solid #9ccd7e; }
.alert--err{ background:#fdecea; color:#8a1c12; border:1px solid #f3a59c; }
.check-pill{ position:relative; cursor:pointer; }
.check-pill input{ position:absolute; opacity:0; inset:0; cursor:pointer; }
.check-pill span{ display:inline-block; padding:.5rem 1rem; border-radius:999px; border:1.5px solid #cdbfd6; font-size:15px; transition:all .2s; }
.check-pill input:checked + span{ background:var(--plum-700); border-color:var(--plum-700); color:#fff; }
.check-pill input:focus-visible + span{ outline:3px solid var(--leaf-500); outline-offset:2px; }

/* ---------- Footer ---------- */
.site-footer{ position:relative; background:var(--plum-900); color:#f7f2f9; overflow:hidden; }
html.dark .site-footer{ background:#0e0a12; }
.footer-roots{ position:absolute; inset:0; opacity:.07; background:radial-gradient(circle at 85% 0%, #7fbb5c 0, transparent 40%), radial-gradient(circle at 10% 100%, #8e62a0 0, transparent 45%); }
.footer-h{ font-family:Marcellus,serif; font-size:1.15rem; color:#fff; margin-bottom:.9rem; }
.footer-list li{ margin:.45rem 0; color:#dcc6e4; }
.footer-list a, .footer-a{ color:#eee3f2; }
.footer-list a:hover, .footer-a:hover{ color:#bfe0ab; text-decoration:underline; text-underline-offset:3px; }

/* ---------- Floating tools (theme + ADA) ---------- */
.float-tools{ position:fixed; left:18px; bottom:18px; z-index:70; display:flex; flex-direction:column; gap:10px; }
.float-btn{ width:56px; height:56px; border-radius:50%; display:grid; place-items:center; color:#fff; box-shadow:0 12px 28px -8px rgba(20,10,30,.55); transition:transform .25s var(--ease); }
.float-btn:hover{ transform:scale(1.07); }
.float-btn--a11y{ background:var(--plum-700); }
.float-btn--theme{ background:#4f8a34; width:48px; height:48px; margin-left:4px; }
.theme-ico-sun{ display:none; }
html.dark .theme-ico-sun{ display:block; }
html.dark .theme-ico-moon{ display:none; }
.a11y-panel{ position:fixed; left:18px; bottom:144px; z-index:71; width:min(340px,calc(100vw - 36px)); background:var(--surface); color:var(--ink); border-radius:22px; padding:20px; box-shadow:0 30px 70px rgba(20,10,30,.35); border:1px solid var(--line); animation:dd2 .25s var(--ease); }
html.dark .a11y-panel{ color:#f7f2f9; }
.a11y-panel[hidden]{ display:none; }
@keyframes dd2{ from{ opacity:0; transform:translateY(10px) } to{ opacity:1; transform:none } }
.a11y-opt{ padding:.7rem .5rem; border-radius:12px; border:1.5px solid var(--line); font-size:14.5px; font-weight:700; background:transparent; color:inherit; }
.a11y-opt[aria-pressed="true"]{ background:var(--plum-700); color:#fff; border-color:var(--plum-700); }
.a11y-close{ width:38px; height:38px; display:grid; place-items:center; border-radius:10px; background:var(--plum-50); color:var(--plum-700); }
.a11y-reset{ padding:.7rem; border-radius:12px; background:#4f8a34; color:#fff; font-weight:700; }

/* ---------- Accessibility modes ---------- */
html.a11y-contrast body{ background:#000 !important; color:#fff !important; }
html.a11y-contrast .section, html.a11y-contrast .section--tint, html.a11y-contrast .section--plum, html.a11y-contrast .setting,
html.a11y-contrast .form-card, html.a11y-contrast .mission-card, html.a11y-contrast .service-grid--4 .service-item,
html.a11y-contrast .cta-panel, html.a11y-contrast .quote-band, html.a11y-contrast .staffing, html.a11y-contrast .subnav{ background:#000 !important; color:#fff !important; border-color:#fff !important; }
html.a11y-contrast .h2, html.a11y-contrast h3, html.a11y-contrast p, html.a11y-contrast li, html.a11y-contrast dd, html.a11y-contrast dt, html.a11y-contrast label{ color:#fff !important; }
html.a11y-contrast a:not(.btn){ color:#ffeb3b !important; text-decoration:underline !important; }
html.a11y-contrast .btn{ background:#ffeb3b !important; color:#000 !important; border-color:#ffeb3b !important; }
html.a11y-contrast .input{ background:#000 !important; color:#fff !important; border-color:#fff !important; }
html.a11y-links a{ text-decoration:underline !important; text-underline-offset:3px; outline:2px dashed var(--leaf-500); outline-offset:2px; }
html.a11y-spacing body{ letter-spacing:.06em; word-spacing:.14em; }
html.a11y-spacing p, html.a11y-spacing li{ line-height:2 !important; }
html.a11y-gray{ filter:grayscale(1); }
html.a11y-cursor, html.a11y-cursor *{ cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24'%3E%3Cpath d='M4 2l16 9-7 2-3 7z' fill='%23000' stroke='%23fff' stroke-width='1.5'/%3E%3C/svg%3E") 4 2, auto !important; }
html.a11y-motion *, html.a11y-motion *::before, html.a11y-motion *::after{ animation:none !important; transition:none !important; }
html.a11y-motion .reveal, html.a11y-motion .reveal-hero{ opacity:1 !important; transform:none !important; }
html.a11y-motion .leaf-canvas{ display:none; }

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
  .reveal, .reveal-hero{ opacity:1 !important; transform:none !important; }
  .leaf-canvas{ display:none; }
}

/* ---------- Our Promises (letters) ---------- */
.letter{ position:relative; overflow:hidden; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:clamp(1.5rem,4vw,2.75rem); box-shadow:0 30px 60px -45px rgba(44,27,55,.5); }
.letter::before{ content:""; position:absolute; inset:0 auto 0 0; width:6px; background:linear-gradient(180deg,var(--plum-500),var(--leaf-500)); }
.letter__no{ position:absolute; right:22px; top:6px; font-family:Marcellus,serif; font-size:5.5rem; line-height:1; color:var(--plum-500); opacity:.12; pointer-events:none; }
.letter__head{ display:flex; gap:1rem; align-items:center; }
.letter__icon{ flex:none; width:58px; height:58px; border-radius:18px; display:grid; place-items:center; color:#fff; background:var(--plum-500); }
.letter:nth-of-type(2) .letter__icon{ background:#4f8a34; }
.letter__sub{ margin-top:.2rem; color:var(--leaf-700); font-style:italic; }
html.dark .letter__sub{ color:var(--leaf-200); }
.letter__body{ margin-top:1.4rem; font-size:1.075rem; line-height:1.75; }
.letter__body > p{ margin-top:.9rem; }
.letter__greet{ font-family:Marcellus,serif; font-size:1.2rem; color:var(--plum-700); }
html.dark .letter__greet{ color:#eee3f2; }
.promise-list{ margin:1.1rem 0 .4rem; display:grid; gap:.8rem; }
.promise-list li{ display:flex; gap:.85rem; align-items:flex-start; padding:.85rem 1rem; border-radius:16px; background:var(--plum-50); }
html.dark .promise-list li{ background:rgba(255,255,255,.05); }
.promise-list .tick{ margin-top:2px; }
.letter__sign{ margin-top:1.6rem; padding-top:1.2rem; border-top:1px dashed var(--line); }
.letter__name{ font-family:Marcellus,serif; font-size:1.5rem; color:var(--plum-700); margin-top:.3rem; }
html.dark .letter__name{ color:#dcc6e4; }
.promise-card{ display:block; height:100%; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:1.6rem; transition:transform .45s var(--ease), box-shadow .45s; }
.promise-card:hover, .promise-card:focus-visible{ transform:translateY(-6px) rotateX(3deg); box-shadow:0 30px 50px -30px rgba(44,27,55,.55); }
.grid > li:nth-child(2) .promise-card .letter__icon{ background:#4f8a34; }
@media (max-width:1279px){ .nav-link{ padding:10px 10px; } .hero__strip ul{ padding-left:92px; } }
