/* Zeal Publishers — landing pages (templates/landing/page.html, Job 2).
 * Loaded after site.css. Service pages = A (house look) + an animation plate (anims.css);
 * local / intent pages = C (phone-first hero with the conversational form in it).     */

/* ---------- Service hero (A) ---------- */
.s-lphero { padding-bottom: clamp(2.5rem, 1.5rem + 3vw, 4.5rem); }
.s-lphero__grid { padding-top: clamp(1.5rem, 1rem + 2.5vw, 3.5rem); }
@media (min-width: 980px) { .s-lphero__grid { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); } }
@media (min-width: 980px) { .s-lphero__grid--solo { grid-template-columns: minmax(0, 1fr); } }
.s-lphero__title { margin-top: 1.2rem; max-width: 16em; font-size: clamp(2.2rem, 1.15rem + 3.6vw, 4.4rem); font-weight: 500; line-height: 1.03; letter-spacing: -.032em; }
.s-animplate { margin: 0; justify-self: center; width: min(100%, 480px); }
.s-animplate .s-plate__cap { margin-top: .9rem; }
@media (max-width: 979px) { .s-animplate { width: min(100%, 360px); } }
.s-lptrust { display: flex; flex-wrap: wrap; gap: .5rem 1.6rem; margin-top: 1.75rem; padding: 1rem 0 0; list-style: none; border-top: 1px solid var(--line); font-size: var(--z-fs-sm); color: var(--fg-muted); }
.s-lptrust b { font-family: var(--z-font-display); font-weight: 600; color: var(--fg-strong); }
@media (max-width: 520px) { .s-hero__ctas .z-btn { width: 100%; } }

/* ---------- Local / intent hero (C) ---------- */
.s-lphero--c { position: relative; overflow: hidden; padding-block: clamp(2rem, 1.2rem + 3vw, 4.5rem) clamp(2.5rem, 1.5rem + 3vw, 4.5rem); }
.s-lphero__gridbg {
  position: absolute; inset: 0; pointer-events: none;
  background-image: linear-gradient(rgba(6,69,48,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(6,69,48,.07) 1px, transparent 1px);
  background-size: 56px 56px;
  -webkit-mask-image: radial-gradient(75% 70% at 72% 32%, #000 15%, transparent 72%); mask-image: radial-gradient(75% 70% at 72% 32%, #000 15%, transparent 72%);
}
.s-lphero__cgrid { position: relative; display: grid; gap: 2rem; align-items: start; }
@media (min-width: 1000px) { .s-lphero__cgrid { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: clamp(3rem, 5vw, 5rem); align-items: center; } }
.s-pill { display: inline-flex; align-items: center; gap: .6rem; padding: .5rem 1rem .4rem; border-radius: 999px; border: 1px solid rgba(6,69,48,.14); background: var(--z-green-50); color: var(--z-green); font-size: var(--z-fs-sm); font-weight: 500; line-height: 1.3; }
.s-pill__dot { flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--z-amber); animation: s-pulse 2.4s var(--z-ease-out) infinite; }
@keyframes s-pulse { 0% { box-shadow: 0 0 0 0 rgba(239,154,16,.55); } 70%, 100% { box-shadow: 0 0 0 9px rgba(239,154,16,0); } }
.s-lphero__title--c { margin-top: 1.25rem; max-width: 18em; font-size: clamp(2.1rem, 1.2rem + 3vw, 3.9rem); font-weight: 500; line-height: 1.04; }
.s-lphero__sub { margin-top: 1.25rem; max-width: 36rem; font-size: var(--z-fs-md); line-height: 1.55; color: var(--fg-muted); }
.s-lpcall { margin-top: 1.75rem; }
.s-lpcall__phone .z-btn__icon { width: 1.2em; height: 1.2em; }
.s-lptrust--c { border-top: 0; padding-top: 0; margin-top: 1.5rem; }
@media (max-width: 759px) {
  .s-lphero__sub { font-size: var(--z-fs-base); }
  .s-lpcall .z-btn { width: 100%; }
}

/* ---------- Conversational form card ---------- */
.cf-card { position: relative; color: var(--z-charcoal); }
.s-lphero__form .cf-card {
  padding: clamp(1.4rem, 1rem + 1.5vw, 2.25rem); border-radius: 14px; background: var(--z-white); border: 1.5px solid var(--z-green);
  box-shadow: 12px 12px 0 0 var(--z-amber), 0 40px 80px -36px rgba(4,48,31,.45);
}
@media (max-width: 759px) { .s-lphero__form .cf-card { box-shadow: 7px 7px 0 0 var(--z-amber), 0 30px 60px -30px rgba(4,48,31,.45); } }
.cf-card__title { margin-bottom: 1rem; font-family: var(--z-font-display); font-size: var(--z-fs-lg); font-weight: 500; color: var(--z-green); }
.cf-prog { height: 6px; overflow: hidden; border-radius: 99px; background: var(--z-parchment); margin-bottom: .6rem; }
.cf-prog i { display: block; width: 33%; height: 100%; background: var(--z-amber); transition: width .35s var(--z-ease-out); }
.cf-steplabel { margin-bottom: 1.1rem; font-size: var(--z-fs-2xs); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--z-ink-muted); }
.cf-screen { display: block; }
.cf-screen + .cf-screen { margin-top: 1.5rem; }
body.cf-js .cf-screen { display: none; margin-top: 0; }
body.cf-js .cf-screen.on { display: block; animation: cf-in .32s var(--z-ease-out); }
@keyframes cf-in { from { opacity: 0; transform: translateX(14px); } to { opacity: 1; transform: none; } }
.cf-q { display: block; margin-bottom: .35rem; font-family: var(--z-font-display); font-size: clamp(1.2rem, 1rem + .9vw, 1.55rem); font-weight: 500; line-height: 1.25; color: var(--z-green); }
.cf-opt { font-family: var(--z-font-body); font-size: var(--z-fs-sm); font-weight: 400; color: var(--z-ink-muted); }
.cf-help { margin-bottom: 1rem; font-size: var(--z-fs-sm); color: var(--z-ink-muted); }
.cf-card .z-input { --field: var(--z-white); --field-bd: rgba(40,40,40,.26); }
.phone-row { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: .5rem; }
.phone-row select.z-input { padding-left: .7rem; padding-right: 2rem; }
.cf-actions { display: flex; align-items: center; gap: .6rem; margin-top: 1rem; }
.cf-next { flex: 1; }
.cf-back { flex: none; min-height: 44px; padding: .5rem .6rem; font-size: var(--z-fs-sm); font-weight: 600; color: var(--z-ink-muted); }
.cf-back:hover { color: var(--z-green); }
.cf-err { min-height: 1.1em; margin-top: .5rem; font-size: var(--z-fs-xs); font-weight: 600; color: var(--z-red-ink); }
.cf-fine { display: flex; gap: .45rem; align-items: flex-start; margin-top: .9rem; font-size: var(--z-fs-xs); line-height: 1.45; color: var(--z-ink-muted); }
.cf-fine svg { width: 14px; height: 14px; flex: none; margin-top: .15em; }
.cf-done { display: none; padding: .5rem 0; text-align: center; }
.cf-done__tick { display: grid; place-items: center; width: 56px; height: 56px; margin: 0 auto 1rem; border-radius: 50%; background: var(--z-green-50); color: var(--z-green); }
.cf-done__tick svg { width: 28px; height: 28px; }
.cf-done h2 { margin-bottom: .5rem; font-size: var(--z-fs-xl); font-weight: 500; }
.cf-done p { color: var(--z-ink-muted); }

/* ---------- Reach cards (book / email / we call you) ---------- */
.s-lpreach { padding-block: 0 clamp(2rem, 1.5rem + 2vw, 3rem); }
.reach-h { margin-bottom: .75rem; font-size: var(--z-fs-2xs); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-muted); }
.reach-grid { display: grid; gap: .75rem; }
@media (min-width: 760px) { .reach-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.reach-card {
  display: grid; grid-template-columns: 2.25rem 1fr; gap: .15rem .75rem; align-items: start; padding: 1rem 1.1rem;
  border: 1px solid var(--line); border-radius: 8px; background: var(--card); color: var(--fg); text-decoration: none;
  transition: border-color var(--z-dur-2), transform var(--z-dur-3) var(--z-ease-out);
}
a.reach-card:hover { color: var(--fg); border-color: var(--accent); transform: translateY(-2px); }
.reach-card .ri { grid-row: 1 / span 2; display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: var(--badge-bg); color: var(--accent-ink); }
.reach-card .ri svg { width: 1.1rem; height: 1.1rem; }
.reach-card b { font-weight: 600; color: var(--fg-strong); }
.reach-card > span:last-child { font-size: var(--z-fs-sm); line-height: 1.45; color: var(--fg-muted); overflow-wrap: anywhere; }
.reach--dark { margin-top: 2rem; }
.reach--dark .reach-grid { grid-template-columns: 1fr; }
.reach--dark .reach-h { color: var(--z-green-200); }

/* ---------- The call block on service pages ---------- */
.s-lpform .cv-final__copy .cv-final__phone { margin-top: 1.5rem; }
.s-lpform .cv-final__form { padding: clamp(1.25rem, 1rem + 1.5vw, 2.25rem); }

/* ---------- How it works: four steps as a printed contents row ---------- */
.s-steps4 { display: grid; gap: 0; list-style: none; padding: 0; border-top: 1.5px solid var(--z-green); }
.s-steps4__item { display: grid; grid-template-columns: 3rem 1fr; gap: .2rem 1rem; padding: 1.25rem 0; border-bottom: 1px solid var(--line-strong); }
.s-steps4__n { grid-row: 1 / span 2; font-family: var(--z-font-display); font-style: italic; font-size: var(--z-fs-xl); line-height: 1; color: var(--accent-ink); }
.s-steps4__t { font-size: var(--z-fs-lg); font-weight: 500; }
.s-steps4__p { color: var(--fg-muted); }
@media (min-width: 900px) {
  .s-steps4 { grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--line-strong); }
  .s-steps4__item { grid-template-columns: 1fr; align-content: start; padding: 1.75rem 1.5rem 1.75rem 0; border-bottom: 0; }
  .s-steps4__item + .s-steps4__item { padding-left: 1.5rem; border-left: 1px solid var(--line); }
  .s-steps4__n { grid-row: auto; margin-bottom: .75rem; }
}

/* ---------- Benefits ---------- */
.s-lpben__title { max-width: 22ch; margin-bottom: clamp(1.75rem, 1.2rem + 2vw, 3rem); }
.s-lpben__grid { display: grid; gap: 1.25rem 2rem; list-style: none; padding: 0; }
@media (min-width: 700px) { .s-lpben__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1060px) { .s-lpben__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.s-lpben__item { display: flex; gap: .85rem; align-items: flex-start; }
.s-lpben__item svg { flex: none; width: 1.5rem; height: 1.5rem; padding: 4px; margin-top: .1rem; border-radius: 50%; background: var(--z-green); color: var(--z-amber); }
.s-lpben__item b { display: block; font-family: var(--z-font-display); font-size: var(--z-fs-md); font-weight: 600; color: var(--fg-strong); line-height: 1.3; }
.s-lpben__item b + span { display: block; margin-top: .25rem; color: var(--fg-muted); }

/* ---------- Local intro, tool card ---------- */
.s-lpintro__text { font-family: var(--z-font-display); font-size: var(--z-fs-md); line-height: 1.65; color: var(--fg-strong); }
.s-lpintro__text::first-letter { float: left; margin: .08em .12em 0 0; font-size: 3.4em; line-height: .8; color: var(--accent-ink); }
.s-lptool__card { padding: clamp(1.5rem, 1.1rem + 1.5vw, 2.5rem); border: 1.5px solid var(--z-amber); border-radius: 6px; background: var(--z-white); text-align: center; box-shadow: var(--z-shadow-1); }
.s-lptool__k { font-size: var(--z-fs-2xs); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--accent-ink); }
.s-lptool__title { margin-top: .6rem; font-size: var(--z-fs-xl); }
.s-lptool__text { max-width: 38rem; margin: .75rem auto 1.4rem; color: var(--fg-muted); }

/* ---------- Article body (answer pages, genre pages) ---------- */
.s-prose { font-size: var(--z-fs-base); line-height: 1.75; }
.s-prose > * + * { margin-top: 1rem; }
.s-prose h2 { margin-top: 2.5rem; font-size: var(--z-fs-xl); line-height: 1.2; }
.s-prose h3 { margin-top: 1.75rem; font-size: var(--z-fs-lg); }
.s-prose > h2:first-child { margin-top: 0; }
.s-prose ul, .s-prose ol { padding-left: 1.25rem; }
.s-prose li + li { margin-top: .5rem; }
.s-prose li::marker { color: var(--accent-ink); }
.s-prose strong { color: var(--fg-strong); }
.s-prose .callout { margin-block: 1.75rem; padding: 1.1rem 1.35rem; border-left: 3px solid var(--z-amber); border-radius: 0 6px 6px 0; background: var(--z-parchment-50); }
.s-prose table { display: block; width: 100%; overflow-x: auto; margin-block: 1.25rem 1.75rem; font-size: var(--z-fs-sm); border-collapse: collapse; }
.s-prose th, .s-prose td { padding: .6rem .8rem; border: 1px solid var(--line-strong); text-align: left; vertical-align: top; }
.s-prose th { background: var(--z-parchment-50); font-weight: 600; color: var(--fg-strong); }

/* ---------- Cost & timeline ---------- */
.s-lpprice__grid { display: grid; gap: 2rem; align-items: start; }
@media (min-width: 900px) { .s-lpprice__grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 4rem; } }
.s-lpprice h2 { font-size: var(--z-fs-2xl); }
.s-lpprice__band { margin-top: 1.25rem; font-family: var(--z-font-display); font-size: var(--z-fs-md); line-height: 1.5; color: var(--fg-strong); }
.s-lpprice__time { display: flex; gap: .55rem; align-items: flex-start; margin-top: 1rem; color: var(--fg-muted); }
.s-lpprice__time svg { width: 1.15rem; height: 1.15rem; flex: none; margin-top: .2rem; color: var(--accent-ink); }
.s-lpprice__inc { display: grid; gap: .75rem; list-style: none; padding: 1.5rem; border-radius: 6px; background: var(--z-cream); border: 1px solid var(--line); }
.s-lpprice__inc li { display: flex; gap: .7rem; align-items: flex-start; }
.s-lpprice__inc svg { flex: none; width: 1.3rem; height: 1.3rem; padding: 3px; border-radius: 50%; background: var(--z-green-50); color: var(--z-green); margin-top: .1rem; }
.s-lpprice__inc b { font-weight: 500; }

/* ---------- Why choose Zeal ---------- */
.s-lpwhy__title { max-width: 22ch; margin-bottom: clamp(1.75rem, 1.2rem + 2vw, 3rem); }
.s-lpwhy__grid { display: grid; gap: 1rem; }
@media (min-width: 860px) { .s-lpwhy__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; } }
.s-lpwhy__card { padding: 1.5rem 1.6rem; border-top: 2px solid var(--z-green); background: var(--card); box-shadow: var(--z-shadow-1); border-radius: 0 0 6px 6px; color: var(--fg-muted); }
.s-lpwhy__card b { display: block; margin-bottom: .35rem; font-family: var(--z-font-display); font-size: var(--z-fs-md); font-weight: 600; color: var(--fg-strong); }

/* ---------- Letters, one row of three ---------- */
@media (min-width: 760px) { .s-letters__grid.s-letters__grid--row { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.s-letters--lp .s-letter__text { font-size: var(--z-fs-base); }

/* ---------- Related links + the "What we do" hub ---------- */
.s-lplinks__h { margin: 2.25rem 0 1rem; font-size: var(--z-fs-lg); font-weight: 500; }
.s-lplinks__h:first-child { margin-top: 0; }
.ilinks { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; }
.ilinks a {
  display: inline-flex; align-items: center; min-height: 40px; padding: .45rem .9rem .35rem; border: 1px solid var(--line-strong); border-radius: 4px;
  background: var(--z-cream); font-size: var(--z-fs-sm); color: var(--z-green); text-decoration: none; transition: border-color var(--z-dur-2), transform var(--z-dur-2);
}
.ilinks a:hover { border-color: var(--z-amber); color: var(--z-green); transform: translateY(-1px); }
.s-lplinks__state { margin-top: 1.75rem; }
.fhub { padding-block: 2.25rem; background: var(--z-green-800); color: var(--z-cream); }
.fhub__h { margin-bottom: .9rem; font-size: var(--z-fs-2xs); font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--z-amber); }
.fhub__list { display: flex; flex-wrap: wrap; gap: .35rem 1.4rem; list-style: none; padding: 0; }
.fhub__list a { display: inline-block; padding: .25rem 0; font-size: var(--z-fs-sm); color: var(--z-green-200); text-decoration: none; }
.fhub__list a:hover { color: var(--z-cream); text-decoration: underline; text-decoration-color: var(--z-amber); }

/* ---------- Phones ---------- */
@media (max-width: 759px) {
  .s-steps4__item { padding-block: 1rem; }
  .s-steps4__t { font-size: var(--z-fs-md); }
  .s-steps4__p, .s-lpben__item b + span { font-size: var(--z-fs-sm); }
  .s-lpben__grid { gap: 1rem; }
  .s-lpwhy__card { padding: 1.2rem 1.25rem; font-size: var(--z-fs-sm); }
  .s-lpprice__inc { padding: 1.1rem; }
  .fhub__list { gap: .1rem 1rem; }
}

/* ---------- Tuning ---------- */
.s-lpreach { padding-top: 1.75rem; }
.s-lpform .cv-final__panel { align-items: start; }
.s-lpform .cv-final__title { font-size: var(--z-fs-2xl); }
@media (min-width: 1000px) { .s-lpform .cv-final__form { margin-top: 1rem; } }
@media (min-width: 760px) and (max-width: 999px) { .reach--dark .reach-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* =====================================================================================
   BOOKING (/contact) + THANK YOU — C, no distractions
   ===================================================================================== */
.z-header__phone--min { margin-left: auto; font-size: 1rem; padding-inline: .9rem; }
.z-header__phone--min span { display: inline !important; }

.bk { position: relative; overflow: hidden; padding-block: clamp(1.75rem, 1rem + 3vw, 4.5rem) clamp(3rem, 2rem + 3vw, 5rem); background: var(--z-white); }
.bk__grid { position: relative; display: grid; gap: 2rem; align-items: start; }
@media (min-width: 1000px) { .bk__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(3rem, 5vw, 5rem); } }
.bk__title { margin-top: 1.1rem; font-size: clamp(2.1rem, 1.2rem + 3vw, 3.75rem); font-weight: 500; line-height: 1.04; }
.bk__lede { margin-top: 1.1rem; max-width: 34rem; font-size: var(--z-fs-md); line-height: 1.55; color: var(--fg-muted); }
.bk__promise { margin-top: 1.25rem; }
.bk__now { margin-top: 1.75rem; font-size: var(--z-fs-sm); color: var(--fg-muted); }
.bk__phone { display: inline-flex; align-items: center; gap: .7rem; margin-top: .35rem; font-family: var(--z-font-display); font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.1rem); color: var(--z-green); text-decoration: none; letter-spacing: -.02em; }
.bk__phone svg { width: 2.4rem; height: 2.4rem; padding: .55rem; border-radius: 50%; background: var(--z-amber); color: var(--z-green-950); flex: none; }
.bk__phone:hover { color: var(--z-amber-ink); }
.bk__letter { margin-top: 2.25rem; max-width: 34rem; --rot: -.6deg; padding: 2.2rem 1.5rem 1.4rem 2.9rem; }
.bk__letter .s-letter__text { font-size: var(--z-fs-base); }
@media (max-width: 999px) { .bk__letter { display: none; } }

.bk__card {
  padding: clamp(1.25rem, 1rem + 1.5vw, 2.25rem); border-radius: 14px; background: var(--z-white); border: 1.5px solid var(--z-green);
  box-shadow: 12px 12px 0 0 var(--z-amber), 0 40px 80px -36px rgba(4,48,31,.45); scroll-margin-top: calc(var(--z-header-h) + 12px);
}
@media (max-width: 759px) { .bk__card { box-shadow: 7px 7px 0 0 var(--z-amber), 0 30px 60px -30px rgba(4,48,31,.45); } }
.tzline { margin-bottom: 1.1rem; padding: .7rem .9rem .6rem; border-radius: 8px; background: var(--z-cream); font-size: var(--z-fs-sm); color: var(--fg-muted); }
.tzline b { color: var(--fg-strong); }
.bk-label { display: block; margin: 1rem 0 .45rem; font-size: var(--z-fs-sm); font-weight: 600; color: var(--fg-strong); }
.bk-label .hint { font-weight: 400; color: var(--fg-muted); }
#step1 > .bk-label:first-of-type { margin-top: 0; }
.days { display: flex; gap: .5rem; overflow-x: auto; padding: .15rem .15rem .6rem; scrollbar-width: thin; }
.day {
  flex: 0 0 auto; min-width: 78px; padding: .6rem .8rem .5rem; border: 1.5px solid var(--line-strong); border-radius: 10px; text-align: center;
  cursor: pointer; user-select: none; transition: border-color var(--z-dur-2), background-color var(--z-dur-2);
}
.day:hover { border-color: var(--z-sage); }
.day.on { border-color: var(--z-green); background: var(--z-green); color: var(--z-cream); }
.dw { font-size: var(--z-fs-2xs); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; opacity: .8; }
.dd { font-family: var(--z-font-display); font-size: 1.35rem; font-weight: 600; line-height: 1.2; }
.dm { font-size: var(--z-fs-2xs); opacity: .8; }
.times { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: .5rem; margin-bottom: 1.25rem; }
.t { padding: .7rem .4rem .6rem; border: 1.5px solid var(--line-strong); border-radius: 8px; text-align: center; font-weight: 600; cursor: pointer; user-select: none; transition: border-color var(--z-dur-2), background-color var(--z-dur-2); }
.t:hover { border-color: var(--z-sage); }
.t.on { border-color: var(--z-amber); background: var(--z-amber); color: var(--z-green-950); }
.bk .err { margin-top: .6rem; text-align: center; font-size: var(--z-fs-sm); font-weight: 600; color: var(--z-red-ink); }
.bk .empty { padding: 1.5rem .5rem; text-align: center; color: var(--fg-muted); }
.step2, .done { display: none; }
.picked { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .75rem; margin-bottom: .5rem; padding: .9rem 1.1rem; border-radius: 10px; background: var(--z-green); color: var(--z-cream); }
.picked .w { font-family: var(--z-font-display); font-size: var(--z-fs-md); }
.picked button { min-height: 40px; padding: .4rem .9rem; border: 1px solid rgba(250,249,245,.45); border-radius: 6px; color: var(--z-cream); font-size: var(--z-fs-sm); }
.picked button:hover { border-color: var(--z-amber); color: var(--z-amber); }
.row2 { display: grid; gap: 0 .75rem; }
@media (min-width: 560px) { .row2 { grid-template-columns: 1fr 1fr; } }
.bk textarea.z-input { min-height: 96px; }
.bk #go2 { margin-top: 1.25rem; }
.bk .fine { margin-top: .75rem; text-align: center; font-size: var(--z-fs-xs); color: var(--fg-muted); }
.done { text-align: center; padding: .5rem 0; }
.done .tick { display: grid; place-items: center; width: 60px; height: 60px; margin: 0 auto 1rem; border-radius: 50%; background: var(--z-green-50); color: var(--z-green); }
.done .tick svg { width: 30px; height: 30px; }
.done h2 { font-size: var(--z-fs-xl); }
.when { margin: 1rem 0; padding: 1rem; border-radius: 10px; background: var(--z-cream); font-family: var(--z-font-display); font-size: var(--z-fs-md); color: var(--z-green); }
.done p { color: var(--fg-muted); }
.join { display: inline-flex; align-items: center; min-height: 52px; margin-top: 1rem; padding: 0 1.4rem; border-radius: 4px; background: var(--z-amber); color: var(--z-green-950); font-weight: 600; text-decoration: none; }

/* /contact — the booking page's layout with a form in place of the calendar (2026-11-05). */
.ct-steps { display: grid; gap: .85rem; margin-top: 1.75rem; max-width: 34rem; list-style: none; padding: 0; }
.ct-steps li { display: grid; grid-template-columns: 2rem 1fr; gap: .85rem; align-items: start; color: var(--fg-muted); line-height: 1.5; }
.ct-steps b { color: var(--fg-strong); font-weight: 600; }
.ct-steps__n { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--z-green); color: var(--z-cream); font-family: var(--z-font-display); font-size: var(--z-fs-sm); }
.ct-direct { margin-top: .5rem; }
.ct-direct__mail { display: flex; align-items: center; gap: .55rem; margin-top: .85rem; font-weight: 600; }
.ct-direct__mail svg { width: 1.15rem; height: 1.15rem; color: var(--z-amber-ink); flex: none; }
.ct-direct__mail a { color: var(--z-green); overflow-wrap: anywhere; }
.ct-form__title { font-size: var(--z-fs-xl); font-weight: 500; letter-spacing: -.01em; margin-bottom: 1.25rem; }
.ct-pkg { display: flex; align-items: center; gap: .6rem; margin: -.25rem 0 1.25rem; padding: .75rem 1rem; border-radius: 10px; background: var(--z-green-50); color: var(--z-green); font-size: var(--z-fs-sm); }
.ct-pkg svg { width: 1.1rem; height: 1.1rem; flex: none; }
.ct-form textarea.z-input { min-height: 110px; }
.ct .bk__grid { grid-template-areas: "head" "card" "more"; }
.ct-head { grid-area: head; } .ct .bk__card { grid-area: card; } .ct-more { grid-area: more; }
@media (min-width: 1000px) {
  .ct .bk__grid { grid-template-areas: "head card" "more card"; grid-template-rows: auto 1fr; row-gap: 0; }
}
@media (max-width: 999px) { .ct-steps { margin-top: 0; } }

.ty { position: relative; overflow: hidden; display: grid; align-items: center; min-height: calc(100svh - var(--z-header-h) - 7rem); padding-block: clamp(3rem, 2rem + 4vw, 6rem); background: var(--z-white); text-align: center; }
.ty__inner { position: relative; display: grid; justify-items: center; }
.ty__tick { display: grid; place-items: center; width: 72px; height: 72px; border-radius: 50%; background: var(--z-amber); color: var(--z-green-950); box-shadow: 0 0 0 10px var(--z-amber-tint); }
.ty__tick svg { width: 34px; height: 34px; }
.ty__title { margin-top: 1.75rem; font-size: var(--z-fs-3xl); font-weight: 500; }
.ty__text { margin-top: 1rem; max-width: 34rem; font-size: var(--z-fs-md); color: var(--fg-muted); }
.ty__aside { margin-top: .75rem; font-family: var(--z-font-display); font-style: italic; color: var(--fg-strong); }
.ty__actions { display: grid; justify-items: center; gap: 1rem; margin-top: 2rem; }
.ty__phone { display: inline-flex; align-items: center; gap: .5rem; font-weight: 600; color: var(--z-green); text-decoration: none; }
.ty__phone svg { width: 1.1rem; height: 1.1rem; color: var(--z-amber-ink); }
.ty__phone:hover { text-decoration: underline; }

/* Adjacent sections on the same ground: no double gap */
.s-lpintro + .s-lptool, .s-lptool + .s-lpbody, .s-lpintro + .s-lpbody,
.s-lpben.z-on-cream + .s-lpintro, .s-lpben.z-on-cream + .s-lptool, .s-lpben.z-on-cream + .s-lpbody { padding-top: 0; }

/* ---------- Phones: long city lists collapse; reach cards drop their blurbs ---------- */
.ilinks__more { margin-top: .5rem; }
@media (max-width: 759px) {
  .js .ilinks[data-collapse-list]:not(.is-open) > li:nth-child(n+9) { display: none; }
  .ilinks a { min-height: 36px; font-size: var(--z-fs-xs); }
  .reach-card { grid-template-columns: 2rem 1fr; align-items: center; padding: .7rem .9rem; }
  .reach-card .ri { grid-row: auto; width: 2rem; height: 2rem; }
  .reach-card > span:last-child { display: none; }
  .reach-grid { gap: .5rem; }
}
