/* About, FAQ, Blog page and Blog article: the option round 1 picks (Tallo, 2026-10-27), rendered by
 * includes/zde-pages.php. Loaded after custom.css on these views only. Everything not here is custom.css.
 * Fold into custom.css once the town-pages work there is committed (PF-101). */

/* Section heads inside a box (About · What we do) */
.zde-pg-sechead { padding-top: 84px; }
.zde-pg-sechead h2 { margin: 0; }
.zde-pg-gap { height: 76px; }

/* FAQ opening: copy left, photo right */
.zde-pg-head { grid-template-columns: 3fr 2fr; }
.zde-pg-head__copy { display: flex; flex-direction: column; gap: 32px; padding-top: 84px; padding-bottom: 40px; }
.zde-pg-head__copy .zde-lead { margin: 0; }
.zde-pg-head .zde-fill { min-height: 360px; }

/* FAQ: topics pinned left, all groups right */
.zde-fq-side { grid-template-columns: 1fr 3fr; }
.zde-fq-side__nav { padding-top: 84px; }
.zde-fq-side__nav > div { position: sticky; top: calc(var(--zde-header-h) + 24px); }
.zde-fq-side__nav .zde-faqnav { flex-direction: column; gap: 0; margin: 12px 0 0; border-top: 1px solid var(--zde-line); }
.zde-fq-side__nav .zde-faqnav li { border-bottom: 1px solid var(--zde-line); }
.zde-fq-side__nav .zde-faqnav a { color: var(--zde-muted); text-decoration: none; }
.zde-fq-side__nav .zde-faqnav a:hover { color: var(--zde-text); }
.zde-fq-side__call { margin-top: 24px; }
.zde-fq-side__main { padding: 84px var(--zde-cx) 40px; }
.zde-fq-side__main h2 { margin: 0 0 16px; font-size: var(--zde-fs-h3); }
.zde-fq-side__main section { scroll-margin-top: calc(var(--zde-header-h) + 16px); }
.zde-fq-side__main section + section { margin-top: 48px; }
.zde-fq-side__main .zde-fqx__list { padding: 0; }

/* Blog page: title, latest post feature */
.zde-pg-bltitle { padding-top: 84px; padding-bottom: 32px; }
.zde-pg-bltitle h1 { margin: 0; }
.zde-bl-feat { grid-template-columns: 3fr 2fr; border-top: 1px solid var(--zde-line-strong); }
.zde-bl-feat .zde-fill { min-height: 440px; }
.zde-bl-feat__copy { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; padding-top: 84px; }
.zde-bl-feat__copy h2 { margin: 0; font: 500 clamp(32px, 3vw, 52px)/1 var(--zde-head); letter-spacing: -.02em; }
.zde-bl-feat__copy h2 a { color: inherit; text-decoration: none; }
.zde-bl-feat__copy h2 a:hover { color: var(--zde-red-signal); }
.zde-bl-feat__copy .zde-tag { color: var(--zde-red-signal); }
.zde-bl-feat__copy p { margin: 0; }

/* Post cards (Blog page, Keep reading) */
.zde-bl-cards { border-top: 1px solid var(--zde-line-strong); }
.zde-bl-cards > li > a { height: 100%; }
.zde-bl-cards .zde-post .zde-media { margin: calc(-1 * var(--zde-cell)) calc(-1 * var(--zde-cell)) 10px; }
.zde-bl-cards .zde-post h3 { font-size: var(--zde-fs-h3); }
.zde-bl-cards .zde-post .zde-tag { color: var(--zde-red-signal); }
.zde-bl-pager { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px var(--zde-cx); border-top: 1px solid var(--zde-line-strong); }
.zde-bl-pager > span:first-child { font: 500 var(--zde-fs-label)/1 var(--zde-mono); color: var(--zde-muted); letter-spacing: .03em; text-transform: uppercase; }
.zde-bl-pager__links { display: flex; gap: 24px; }

/* Article masthead: photo with a card; text-only when there is no featured image */
.zde-ar-title { margin: 0; max-width: 22ch; font: 500 clamp(32px, 3vw, 52px)/1 var(--zde-head); letter-spacing: -.025em; text-transform: uppercase; color: var(--zde-text); text-wrap: balance; }
.zde-ar-hc .zde-sv-rc__card { gap: 18px; }
.zde-ar-hc .zde-tag, .zde-ar-hb .zde-tag { color: var(--zde-red-signal); }
/* Article breadcrumb inside the masthead card: the bracket chip hugs the trail (no stretching across the card) and
 * keeps the chip's own padding so the corner brackets clear the words. */
.zde-ar-crumbs { position: static; align-self: flex-start; max-width: 100%; }
.zde-ar-crumbs .zde-chip { display: inline-flex; flex-wrap: wrap; width: auto; }
.zde-ar-crumbs [aria-current] { color: var(--zde-text); }
.zde-ar-hb { padding: 40px var(--zde-cx) 32px; display: flex; flex-direction: column; gap: 24px; }
.zde-ar-hb .zde-ar-title { font-size: clamp(36px, 3.6vw, 64px); max-width: 26ch; }

/* Article body: contents pinned left; one column without enough headings */
.zde-ar-ba { grid-template-columns: 1fr 3fr; }
.zde-ar-ba__toc { padding-top: 40px; }
.zde-ar-ba__body { padding: 40px var(--zde-cx) 64px; }
.zde-ar-ba__body > .zde-toc--inline { display: none; }
.zde-ar-bb { padding: 56px var(--zde-cx) 64px; display: flex; justify-content: center; }
.zde-ar-bb > * { width: 100%; max-width: var(--zde-measure); }
.zde-box .zde-prose p, .zde-box .zde-prose li { max-width: none; color: var(--zde-lead); }
.zde-box .zde-prose h2 { font-size: var(--zde-fs-h3); color: var(--zde-text); scroll-margin-top: calc(var(--zde-header-h) + 16px); }

@media (max-width: 1100px) {
  .zde-pg-head, .zde-bl-feat, .zde-ar-ba, .zde-fq-side { grid-template-columns: 1fr; }
  .zde-pg-head > * + *, .zde-bl-feat > * + *, .zde-ar-ba > * + *, .zde-fq-side > * + * { border-left: 0 !important; }
  .zde-fq-side__nav > div { position: static; }
  .zde-ar-ba__toc { display: none; }
  .zde-ar-ba__body > .zde-toc--inline { display: block; }
}
@media (max-width: 700px) {
  .zde-pg-sechead, .zde-pg-head__copy, .zde-pg-bltitle, .zde-bl-feat__copy, .zde-fq-side__main, .zde-fq-side__nav { padding-top: 64px; }
  .zde-fq-side__main { padding-top: 32px; }
  .zde-pg-gap { height: 64px; }
  .zde-bl-feat .zde-fill { min-height: 260px; }
  .zde-ar-hb { padding-top: 24px; }
}

/* Contact (picks 2026-10-28: opening C, form A, town ticker B) — includes/zde-contact.php */
.zde-ct-ways { margin-top: 40px; }
.zde-ct-ways { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--zde-line-strong); }
.zde-ct-way { position: relative; display: flex; flex-direction: column; gap: 10px; min-height: 260px; padding: 28px var(--zde-cx) 32px; color: var(--zde-muted); text-decoration: none; }
.zde-ct-way + .zde-ct-way { border-left: 1px solid var(--zde-line-strong); }
.zde-ct-way b { margin-top: auto; font: 500 clamp(30px, calc(2.6vw + 10px), 50px)/1 var(--zde-head); white-space: nowrap; letter-spacing: -.03em; color: var(--zde-text); }
.zde-ct-way__go { font: 500 var(--zde-fs-label)/1.4 var(--zde-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--zde-red-signal); }
a.zde-ct-way::before { content: ""; position: absolute; left: -1px; top: -1px; height: 2px; width: 0; background: var(--zde-red-signal); transition: width var(--zde-dur) var(--zde-ease); }
a.zde-ct-way:is(:hover, :focus-visible)::before { width: calc(100% + 1px); }
a.zde-ct-way:is(:hover, :focus-visible) b { color: var(--zde-red-signal); }
.zde-ct-tick { margin: 0 calc(-1 * max(var(--zde-gut), env(safe-area-inset-left, 0px))) var(--zde-gap); padding-block: 40px 0; background: var(--zde-raised); border-block: 1px solid var(--zde-line-strong); overflow: hidden; }
.zde-ct-tick__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px 24px; padding: 0 max(var(--zde-gut), env(safe-area-inset-left, 0px)) 28px; }
.zde-ct-tick__head h2 { margin: 0; }
.zde-ct-tick__track { display: flex; width: max-content; border-top: 1px solid var(--zde-line-strong); animation: zde-ct-tick 120s linear infinite; }
.zde-ct-tick:is(:hover, :focus-within) .zde-ct-tick__track { animation-play-state: paused; }
.zde-ct-tick__row { display: flex; flex: none; list-style: none; margin: 0; padding: 0; }
.zde-ct-tick__row a { display: flex; align-items: center; min-height: 92px; padding: 0 36px; border-right: 1px solid var(--zde-line-strong); font: 500 var(--zde-fs-title)/1 var(--zde-head); letter-spacing: -.02em; color: var(--zde-text); text-decoration: none; white-space: nowrap; }
.zde-ct-tick__row a:is(:hover, :focus-visible) { color: var(--zde-red-signal); }
@keyframes zde-ct-tick { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .zde-ct-tick__track { animation: none; width: auto; }
  .zde-ct-tick__row { flex: 1; flex-wrap: wrap; }
  .zde-ct-tick__row[aria-hidden="true"] { display: none; }
  .zde-ct-tick__row a { min-height: 56px; border-bottom: 1px solid var(--zde-line); font-size: var(--zde-fs-h4); padding: 0 20px; }
}
@media (max-width: 1100px) {
  .zde-ct-ways { grid-template-columns: 1fr; }
  .zde-ct-way { min-height: 0; }
  .zde-ct-way + .zde-ct-way { border-left: 0; border-top: 1px solid var(--zde-line-strong); }
}
@media (max-width: 700px) {
  .zde-ct-tick__row a { min-height: 72px; padding: 0 24px; }
}

/* HTML sitemap (picks: opening B, list B) */
.zde-sm-head { display: flex; flex-direction: column; gap: 14px; padding-top: 84px; padding-bottom: 40px; }
.zde-sm-head h1 { margin: 0; }
.zde-box .zde-sm-head p { margin: 0; color: var(--zde-muted); }
.zde-sm-hb { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.zde-sm-facts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; }
.zde-sm-facts li { display: flex; flex-direction: column; justify-content: flex-end; gap: 8px; padding: 24px var(--zde-cx); border-bottom: 1px solid var(--zde-line); }
.zde-sm-facts li:nth-child(even) { border-left: 1px solid var(--zde-line); }
.zde-sm-facts li:nth-last-child(-n+2) { border-bottom: 0; }
.zde-sm-facts b { font: 500 var(--zde-fs-headline)/1 var(--zde-head); letter-spacing: -.03em; color: var(--zde-text); }
.zde-sm-facts .zde-tag { color: var(--zde-red-signal); }
.zde-sm__n { font: 500 var(--zde-fs-label)/1 var(--zde-mono); color: var(--zde-red-signal); }
.zde-sm-b ul { list-style: none; margin: 0; padding: 0; columns: 3 12em; column-gap: 28px; }
.zde-sm-b ul a { display: block; padding: 5px 0; break-inside: avoid; color: var(--zde-text); text-decoration: none; font-size: .9375rem; line-height: 1.35; }
.zde-sm-b ul a:hover { color: var(--zde-red-signal); text-decoration: underline 1px; text-underline-offset: .2em; }
.zde-sm-b__g { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 2fr); }
.zde-sm-b__g > .zde-c { padding-top: 84px; padding-bottom: 40px; }
.zde-box.zde-sm-b h2 { margin: 0 0 14px; padding-bottom: 10px; border-bottom: 1px solid var(--zde-line-strong); font-size: var(--zde-fs-title); }
.zde-box.zde-sm-b h2.zde-sm-b__h2 { margin-top: 36px; }
.zde-sm-b ul { columns: 1; }
.zde-sm-b__cols { columns: 2 13em; column-gap: 28px; }
.zde-sm-b__cols ul { break-inside: auto; }
.zde-sm-b__cols h3 { display: flex; justify-content: space-between; gap: 8px; margin: 0 0 6px; padding-bottom: 6px; border-bottom: 1px solid var(--zde-line); font: 500 var(--zde-fs-label)/1.4 var(--zde-mono); letter-spacing: .03em; text-transform: uppercase; color: var(--zde-lead); break-after: avoid; }
.zde-sm-b__cols ul + h3 { margin-top: 22px; }
@media (max-width: 1100px) {
  .zde-sm-hb, .zde-sm-b__g { grid-template-columns: 1fr; }
  .zde-sm-hb > * + *, .zde-sm-b__g > * + * { border-left: 0 !important; }
  .zde-sm-b__g > .zde-c + .zde-c { padding-top: 32px; }
}
@media (max-width: 700px) {
  .zde-sm-head { padding-top: 64px; }
  .zde-sm-b__g > .zde-c:first-child { padding-top: 64px; }
  .zde-sm-b__cols { columns: 2; column-gap: 20px; }
}

/* Article written in the Blog Post Fields: Summary opens the body as "In short" */
.zde-prose .zde-ar-sum { margin: 0 0 32px; padding: 20px 24px; border: 1px solid var(--zde-line-strong); border-left: 3px solid var(--zde-red-mark); background: var(--zde-raised); }
.zde-prose .zde-ar-sum .zde-tag { display: block; margin-bottom: 8px; color: var(--zde-red-signal); }
.zde-prose .zde-ar-sum p:last-child { margin-bottom: 0; }
/* Blog Image 1/2 from the fields: core's image-block CSS only loads for real blocks, so size them here */
.zde-prose figure.wp-block-image { margin: 32px 0; }
.zde-prose figure.wp-block-image img { display: block; width: 100%; height: auto; }
.zde-prose figure.wp-block-image figcaption { margin-top: 10px; font-size: var(--zde-fs-small); color: var(--zde-muted); }
/* Option round 2 picks (2026-10-28): Free Estimate, Thank You, Search, Category, Privacy — includes/zde-utility.php, pages/privacy.html */
.zde-vh { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* Free Estimate */
.zde-fe-l { display: flex; flex-direction: column; gap: 28px; padding-bottom: 40px; }
.zde-box .zde-fe-l .zde-lead { margin: 0; }
.zde-fe-facts { list-style: none; margin: auto 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--zde-line-strong); }
.zde-fe-facts li { display: flex; flex-direction: column; gap: 6px; padding: 16px 16px 0 0; }
.zde-fe-facts li + li { padding-left: 16px; border-left: 1px solid var(--zde-line); }
.zde-fe-facts b { font: 500 var(--zde-fs-h4)/1.3 var(--zde-head); color: var(--zde-text); }
.zde-fe-steps, .zde-ty-links { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--zde-line-strong); }
.zde-fe-steps li { display: flex; flex-direction: column; gap: 10px; min-height: 220px; padding: 24px var(--zde-cx) 32px; }
.zde-fe-steps li + li, .zde-ty-links li + li { border-left: 1px solid var(--zde-line-strong); }
.zde-fe-steps b { margin-top: auto; font: 500 var(--zde-fs-title)/1.15 var(--zde-head); color: var(--zde-text); }
.zde-box .zde-fe-steps p { margin: 0; }
.zde-fe-steps li.is-key .zde-tag, .zde-fe-steps li.is-key b { color: var(--zde-red-signal); }

/* Thank You */
.zde-ty-ways { margin-top: 40px; }
.zde-ty-links a { display: flex; flex-direction: column; gap: 8px; min-height: 200px; height: 100%; padding: 24px var(--zde-cx) 28px; color: var(--zde-muted); text-decoration: none; }
.zde-ty-links b { margin-top: auto; font: 500 var(--zde-fs-title)/1.15 var(--zde-head); color: var(--zde-text); }
.zde-ty-links a:is(:hover, :focus-visible) b { color: var(--zde-red-signal); }

/* Search */
.zde-se-ha { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.zde-se-form { display: flex; flex-direction: column; justify-content: flex-end; gap: 12px; padding-bottom: 40px; }
.zde-se-field { display: flex; align-items: stretch; border-bottom: 1px solid var(--zde-line-strong); }
.zde-se-field input { flex: 1; min-width: 0; min-height: 56px; padding: 0; background: none; border: 0; color: var(--zde-text); font: 500 var(--zde-fs-title)/1.2 var(--zde-head); }
.zde-se-field input:focus-visible { outline: 2px solid var(--zde-focus); outline-offset: 2px; }
.zde-se-field .zde-btn { align-self: center; }
.zde-se-empty { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.zde-se-empty .zde-sm-head { align-items: flex-start; }
.zde-se-empty nav { padding-top: 84px; padding-bottom: 40px; }
.zde-se-svc { list-style: none; margin: 14px 0 0; padding: 0; columns: 2 12em; column-gap: 28px; }
.zde-se-svc a { display: block; padding: 7px 0; color: var(--zde-text); text-decoration: none; break-inside: avoid; }
.zde-se-svc a:hover { color: var(--zde-red-signal); }

/* Category */
.zde-ca-cats { display: flex; flex-direction: column; justify-content: flex-end; gap: 12px; padding-bottom: 40px; }
.zde-ca-cats ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.zde-ca-cats a { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 16px; border: 1px solid var(--zde-line-strong); color: var(--zde-text); text-decoration: none; font: 500 var(--zde-fs-label)/1 var(--zde-mono); letter-spacing: .06em; text-transform: uppercase; }
.zde-ca-cats a span { color: var(--zde-muted); }
.zde-ca-cats a[aria-current] { border-color: var(--zde-red-signal); }
.zde-ca-cats a[aria-current] span { color: var(--zde-red-signal); }

/* Privacy */
.zde-pv-sum { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; }
.zde-pv-sum li { display: flex; flex-direction: column; gap: 8px; padding: 22px var(--zde-cx); border-bottom: 1px solid var(--zde-line); }
.zde-pv-sum li:nth-child(even) { border-left: 1px solid var(--zde-line); }
.zde-pv-sum li:nth-last-child(-n+2) { border-bottom: 0; }
.zde-pv-sum .zde-tag { color: var(--zde-red-signal); }
.zde-box .zde-pv-sum p { margin: 0; color: var(--zde-text); }
.zde-pv-sum a { color: var(--zde-text); }
.zde-prose p.zde-pv-lead { font: 500 var(--zde-fs-h4)/1.4 var(--zde-head); color: var(--zde-text); }


@media (max-width: 1100px) {
  .zde-fe-facts, .zde-fe-steps, .zde-ty-links { grid-template-columns: 1fr 1fr; }
  .zde-fe-steps li:nth-child(3), .zde-ty-links li:nth-child(3) { border-left: 0; }
  .zde-fe-steps li:nth-child(n+3), .zde-ty-links li:nth-child(n+3) { border-top: 1px solid var(--zde-line-strong); }
  .zde-se-ha, .zde-se-empty { grid-template-columns: 1fr; }
  .zde-se-ha > * + *, .zde-se-empty > * + * { border-left: 0 !important; }
  .zde-se-empty nav { padding-top: 24px; }
}
@media (max-width: 700px) {
  .zde-fe-facts { grid-template-columns: 1fr; }
  .zde-fe-facts li + li { padding-left: 0; border-left: 0; border-top: 1px solid var(--zde-line); }
  .zde-fe-facts li { padding-bottom: 14px; }
  .zde-fe-steps, .zde-ty-links { grid-template-columns: 1fr; }
  .zde-fe-steps li, .zde-ty-links a { min-height: 0; }
  .zde-fe-steps li + li, .zde-ty-links li + li { border-left: 0; border-top: 1px solid var(--zde-line-strong); }
  .zde-se-field .zde-btn { padding-inline: 14px; }
  .zde-pv-sum { grid-template-columns: 1fr; }
  .zde-pv-sum li:nth-child(even) { border-left: 0; }
  .zde-pv-sum li:nth-last-child(2) { border-bottom: 1px solid var(--zde-line); }
}

/* About opening: Jason's portrait (2026-10-30). Cropped at 42% from the top; taller cell once the split stacks. */
.zde-fill--owner > img { object-position: 50% 42%; }
@media (max-width: 1100px) { .zde-fill.zde-fill--owner { min-height: 520px; } }
@media (max-width: 700px) { .zde-fill.zde-fill--owner { min-height: 440px; } }
