/* =====================================================================
   LiteCMS v4 blocks — pulse theme
   Every rule is scoped to a block (.b-*) or to the .blk wrapper so the
   header, footer and older blocks are never touched. Loaded once per page.
   ===================================================================== */
:root{
  --deep:#15242C;         /* dark bands */
  --aqua:#00C1CA;         /* brand */
  --aqua-ink:#008C93;     /* aqua text/icons on white (AA contrast) */
  --aqua-soft:#E3F7F8;    /* icon discs */
  --coral:#FF7A59;        /* booking CTA */
  --paper:#FFFFFF;
  --mist:#F2F4F5;         /* alternate light band */
  --on-deep:#FFFFFF;
  --on-deep-muted:rgba(255,255,255,.72);
  --font-display:'Barlow Condensed','Arial Narrow',system-ui,sans-serif;
  --font-body:'Barlow',system-ui,-apple-system,'Segoe UI',sans-serif;
  --radius:10px;
  --gutter:clamp(16px,4vw,48px);
  --band:clamp(56px,8vw,96px);
}

/* ---------- shared (scoped) ---------- */
.blk{color:var(--ink);font:400 1.0625rem/1.6 var(--font-body)}
.blk.on-deep{color:var(--on-deep)}
.blk h1,.blk h2,.blk h3{margin:0;line-height:1.05;color:inherit;letter-spacing:0;text-wrap:wrap}
.blk p{margin:0}
.blk[id]{scroll-margin-top:74px} /* sticky header height, so ?page=services#pricing lands below it */
.blk a{color:inherit}
.blk svg{display:block;max-width:100%}
.blk .ic{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.blk .eyebrow{font:600 .8125rem/1 var(--font-body);letter-spacing:.2em;text-transform:uppercase;color:var(--aqua-ink);margin-bottom:.9rem}
.blk.on-deep .eyebrow{color:var(--aqua)}
.blk .display{font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:-.005em}
.blk .btn-book{display:inline-flex;align-items:center;gap:.6em;background:var(--coral);color:#fff;text-decoration:none;
  font:600 .8125rem/1 var(--font-body);letter-spacing:.06em;text-transform:uppercase;padding:1.05em 1.5em;border-radius:6px;
  transition:filter .2s ease, transform .2s ease}
.blk .btn-book:hover{filter:brightness(1.06);transform:translateY(-1px)}
.blk .btn-book .ic{width:16px;height:16px}
.blk .disc{flex:none;align-self:center;display:grid;place-items:center;width:clamp(56px,6vw,68px);height:clamp(56px,6vw,68px);border-radius:50%;background:var(--aqua-soft);color:var(--aqua-ink)}
.blk .disc .ic{width:58%;height:58%;stroke-width:1.7}

/* scroll reveal: the theme script adds .in; without JS everything stays visible */
.js .blk .reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease, transform .6s ease}
.js .blk .reveal.in{opacity:1;transform:none}
html:not(.js) .blk .reveal{opacity:1;transform:none}

/* ================= BLOCK: page_hero ================= */
.b-hero{background:var(--deep);color:var(--on-deep);position:relative;overflow:hidden;padding:clamp(40px,6vw,72px) 0 clamp(44px,6vw,76px)}
.b-hero__arcs{position:absolute;inset:0;pointer-events:none;color:var(--aqua);opacity:.22}
.b-hero__arcs svg{position:absolute;right:-8%;top:-40%;width:min(900px,95vw);height:auto}
.b-hero .wrap{position:relative;display:grid;grid-template-columns:1fr;gap:32px}
.b-hero h1,.b-hero h2.b-hero__title{font-size:clamp(2.6rem,7vw,4.4rem);margin-bottom:1rem;max-width:none}
.b-hero__lead{max-width:36em;font-size:clamp(1.02rem,1.6vw,1.15rem);color:var(--on-deep-muted)}
.b-hero__lead strong{color:var(--on-deep);font-weight:600}
.b-hero__side{display:none}
@media (min-width:900px){
  .b-hero .wrap{grid-template-columns:1fr 220px;align-items:center}
  .b-hero__side{display:block;border-left:0;padding-left:8px}
  .b-hero__side::before{content:"";display:block;width:28px;height:2px;background:var(--aqua);margin-bottom:18px}
  .b-hero__side ul{list-style:none;margin:0 0 36px;padding:0;font:500 .75rem/2 var(--font-body);letter-spacing:.24em;text-transform:uppercase;color:var(--on-deep-muted)}
  .b-hero__side p{font:600 .75rem/1.7 var(--font-body);letter-spacing:.24em;text-transform:uppercase;color:var(--aqua)}
}

/* ================= BLOCK: service_grid ================= */
.b-services{padding:var(--band) 0;background:var(--paper)}
.b-services.is-mist{background:var(--mist)}
.b-services h2{font-size:clamp(2.4rem,6vw,3.9rem);margin-bottom:.9rem}
.b-services__intro{max-width:34em;font-size:clamp(1.02rem,1.6vw,1.15rem);color:var(--muted);margin-bottom:clamp(28px,4vw,40px)}
.svc-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:16px}
@media (min-width:760px){.svc-grid{grid-template-columns:1fr 1fr;gap:18px}}
.svc{height:100%;display:flex;align-items:center;gap:clamp(14px,2vw,22px);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(18px,2.4vw,26px);box-shadow:0 1px 2px rgba(14,23,27,.04);text-decoration:none;color:inherit;
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease}
a.svc:hover{border-color:var(--aqua);box-shadow:0 10px 28px -14px rgba(14,23,27,.28);transform:translateY(-2px)}
.svc__body{flex:1;min-width:0}
.svc h3{font:600 1.125rem/1.25 var(--font-body);margin-bottom:.35rem;text-transform:none}
.svc p{font-size:.95rem;line-height:1.55;color:var(--muted)}
.svc__chev{color:var(--ink);opacity:.55;transition:transform .2s ease, opacity .2s ease}
a.svc:hover .svc__chev{transform:translateX(3px);opacity:1;color:var(--aqua-ink)}
@media (max-width:520px){
  .svc{align-items:flex-start;gap:14px;padding:18px 16px}
  .svc .disc,.plan .disc{width:46px;height:46px;align-self:flex-start}
  .svc__chev{align-self:center;width:20px;height:20px;margin-right:-4px}
  .svc h3{font-size:1.06rem}
}

/* ================= BLOCK: care_modes ================= */
.b-modes{background:var(--deep);color:var(--on-deep);padding:clamp(44px,6vw,64px) 0}
.modes{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:1fr;gap:28px}
.mode{text-align:center;padding:0 12px}
.mode__ring{width:64px;height:64px;margin:0 auto 14px;border-radius:50%;border:1.5px solid rgba(255,255,255,.7);display:grid;place-items:center}
.mode__ring .ic{width:30px;height:30px;stroke-width:1.6}
.mode h3{font:700 1.7rem/1.05 var(--font-display);margin-bottom:.45rem}
.mode p{color:var(--on-deep-muted);max-width:18em;margin:0 auto;font-size:.98rem}
@media (min-width:760px){
  .modes{grid-template-columns:repeat(var(--cols,3),1fr);gap:0}
  .mode + .mode{border-left:1px solid rgba(255,255,255,.14)}
}
@media (max-width:759px){ .mode + .mode{border-top:1px solid rgba(255,255,255,.12);padding-top:28px} }

/* ================= BLOCK: pricing ================= */
.b-pricing{padding:var(--band) 0;background:var(--paper)}
.b-pricing h2{font-size:clamp(2.4rem,6vw,3.9rem);margin-bottom:.9rem}
.b-pricing .b-services__intro{margin-bottom:clamp(28px,4vw,40px)}
.plans{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:18px}
@media (min-width:760px){.plans{grid-template-columns:repeat(var(--cols,2),1fr)}}
.plan .disc{align-self:flex-start}
.plan{height:100%;display:flex;gap:clamp(14px,2vw,22px);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(20px,2.6vw,28px);box-shadow:0 1px 2px rgba(14,23,27,.04);text-decoration:none;color:inherit;
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease}
a.plan:hover{border-color:var(--aqua);box-shadow:0 10px 28px -14px rgba(14,23,27,.28);transform:translateY(-2px)}
.plan__body{flex:1;min-width:0;display:flex;flex-direction:column}
.plan h3{font:700 1.75rem/1.05 var(--font-display);margin-bottom:.4rem}
.plan__desc{color:var(--muted);font-size:.98rem;flex-grow:1}
.plan__price{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}
.plan__price small{display:block;color:var(--muted);font-size:.95rem}
.plan__price b{font:700 clamp(2.4rem,4.5vw,2.9rem)/1 var(--font-display)}
.plan__price span{color:var(--muted);margin-left:.3em}

/* ================= BLOCK: cta_band ================= */
.b-cta{background:var(--deep);color:var(--on-deep);text-align:center;padding:clamp(52px,7vw,80px) 0;position:relative;overflow:hidden}
.b-cta__arcs{position:absolute;inset:0;pointer-events:none;color:var(--aqua);opacity:.16}
.b-cta__arcs svg{position:absolute;width:120%;left:-10%;top:-20%;height:140%;max-width:none}
.b-cta .wrap{position:relative}
.b-cta h2{font-size:clamp(2.2rem,5.5vw,3.4rem);margin-bottom:.8rem;max-width:none}
.b-cta p{max-width:40em;margin-left:auto;margin-right:auto;color:var(--on-deep-muted);font-size:clamp(1.02rem,1.6vw,1.15rem);margin-bottom:1.6rem}

/* ================= BLOCK: faq_list ================= */
.b-faq{padding:var(--band) 0;background:var(--paper);--faq-bar:#555b6e}
.b-faq .wrap{max-width:880px}
.faq-tools{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:clamp(20px,3vw,32px)}
.faq-jump{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.faq-jump a{display:inline-block;font:600 .75rem/1 var(--font-body);letter-spacing:.1em;text-transform:uppercase;text-decoration:none;
  color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:.75em 1.1em;transition:border-color .2s ease,color .2s ease}
.faq-jump a:hover{border-color:var(--aqua);color:var(--aqua-ink)}
.faq-all{background:none;border:0;padding:.5em 0;font:600 .8125rem/1 var(--font-body);color:var(--aqua-ink);cursor:pointer;text-decoration:underline;text-underline-offset:3px;margin-left:auto}
html:not(.js) .faq-all{display:none}
.faq-group{scroll-margin-top:96px}
.faq-group + .faq-group{margin-top:clamp(40px,6vw,64px)}
.faq-group__title{font:700 clamp(1.7rem,3.4vw,2.2rem)/1.05 var(--font-display);text-transform:uppercase;margin-bottom:.4rem}
.faq{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:10px}
.faq__item{scroll-margin-top:96px;border-radius:8px;overflow:hidden}
.faq__q{margin:0;font:inherit;text-transform:none}
.faq__btn{all:unset;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;cursor:pointer;
  background:var(--faq-bar);color:#fff;padding:clamp(16px,2.2vw,20px) clamp(18px,2.6vw,26px);
  font:600 clamp(1.02rem,1.6vw,1.15rem)/1.35 var(--font-body);transition:background-color .2s ease}
.faq__btn:hover{background:color-mix(in srgb,var(--faq-bar) 88%,#fff)}
.faq__btn:focus-visible{outline:3px solid var(--aqua);outline-offset:-3px;border-radius:8px}
.faq__plus{position:relative;flex:none;width:16px;height:16px}
.faq__plus::before,.faq__plus::after{content:"";position:absolute;left:50%;top:50%;background:currentColor;border-radius:2px;transform:translate(-50%,-50%)}
.faq__plus::before{width:16px;height:2px}
.faq__plus::after{width:2px;height:16px;transition:transform .25s ease}
.faq__btn[aria-expanded="true"] .faq__plus::after{transform:translate(-50%,-50%) scaleY(0)}
.js .b-faq .faq__a{display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows .3s ease,visibility 0s linear .3s}
.js .b-faq .faq__a.is-open{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows .3s ease,visibility 0s}
.faq__inner{overflow:hidden;min-height:0}
.faq__inner > div{padding:clamp(16px,2.2vw,22px) clamp(18px,2.6vw,26px);color:var(--muted);background:var(--paper);
  border:1px solid var(--line);border-top:0;border-radius:0 0 8px 8px}
.faq__inner > div > *{max-width:68ch}
.faq__inner p + p{margin-top:.8em}
.faq__inner a{color:var(--aqua-ink);font-weight:600;text-underline-offset:3px}

@media (prefers-reduced-motion:reduce){
  .blk *,.blk *::before,.blk *::after{transition:none!important}
  .js .blk .reveal{opacity:1;transform:none}
}
