/* ==========================================================================
   MyCabin — Functional Zoning: Jūrmala — Page Pack CSS
   Scoped entirely under .pp-functional-zoning-jurmala (Page Pack Spec .pp-functional-zoning-jurmala5).
   Every selector in this file is nested under that root class — no bare
   element or utility selectors. Trimmed from the Claude Design export's
   shared styles.css: only the rules this one page actually uses (hero,
   quick answer, primer cards, TOC + stats, decision tree, zone cards, map,
   permit matrix, process steps, district/cost/model/advantage/comparison
   cards, prose, FAQ, related + sources, closing CTA). No header, mobile-nav,
   footer, rail, marquee, hub (.zn-*) or other-page CSS carried over.

   01  Tokens (scoped custom properties, not :root)
   02  Base resets (scoped)
   03  WordPress Flow-layout / gap neutralization (see note)
   04  Buttons and tab pills
   05  Typography helpers + section scaffolding
   06  Hero + trust strip
   07  Quick answer
   08  Cards, concepts, grids
   09  TOC + stats
   10  Decision tree
   11  Zones + zoning check
   12  Map
   13  Permit matrix
   14  Process + soft CTA band
   15  District / comparison rows
   16  Costs
   17  Models
   18  Why MyCabin (bars + energy)
   19  Prose, FAQ, related, sources
   20  Closing dark CTA
   21  Scroll reveal (io-fade)
   22  Responsive layers (640 / 900 / 1100)
   23  Reduced motion
   ========================================================================== */


/* ==========================================================================
   01  TOKENS — scoped to .pp-functional-zoning-jurmala, never :root, so
   nothing leaks to the rest of the WordPress site (Page Pack Spec .pp-functional-zoning-jurmala5).
   ========================================================================== */

.pp-functional-zoning-jurmala {
  --pp-ink:          #27272C;
  --pp-bone:         #FFFFFF;
  --pp-surface:      #FBF6F3;
  --pp-wood:         #EDCFB7;
  --pp-sun:          #FFD797;
  --pp-olive:        #6E5C3C;
  --pp-accent:       #917EBC;
  --pp-accent-soft:  #CDCBFF;
  --pp-tint:         #E6E6FF;
  --pp-scrim:        var(--pp-ink);

  --pp-stone:          color-mix(in oklab, var(--pp-ink) 11%, var(--pp-bone));
  --pp-ink-hair:       color-mix(in oklab, var(--pp-ink) 7%,  var(--pp-bone));
  --pp-ink-line:       color-mix(in oklab, var(--pp-ink) 13%, var(--pp-bone));
  --pp-tint-line:        color-mix(in oklab, var(--pp-accent) 18%, var(--pp-tint));
  --pp-tint-line-strong: color-mix(in oklab, var(--pp-accent) 34%, var(--pp-tint));

  --pp-good:      #4F7A44;
  --pp-good-soft: #E3ECD9;
  --pp-bad:       #B0463F;
  --pp-bad-soft:  #F6DEDE;

  --pp-ink-72:    color-mix(in oklab, var(--pp-ink) 72%, transparent);
  --pp-ink-56:    color-mix(in oklab, var(--pp-ink) 65%, transparent);
  --pp-ink-28:    color-mix(in oklab, var(--pp-ink) 28%, transparent);
  --pp-bone-80:   color-mix(in oklab, var(--pp-bone) 80%, transparent);
  --pp-bone-60:   color-mix(in oklab, var(--pp-bone) 60%, transparent);
  --pp-bone-line: color-mix(in oklab, var(--pp-bone) 22%, transparent);

  --pp-maxw:   1280px;
  --pp-gutter: clamp(18px, 4vw, 40px);

  /* Header clearance. The site's global header is supplied by the WordPress
     theme, not this Page Pack, so its real height can't be read here — this
     reproduces the source design's own --hdr-h token (clamp(58px, 7vw, 74px))
     as a best-effort estimate for the hero's top padding and for in-page
     anchor offsets. FLAGGED for staging verification (see handoff). */
  --pp-hdr-h: clamp(58px, 7vw, 74px);

  --pp-r-pill: 999px;
  --pp-r-card: 11px;
  --pp-r-md:   9px;

  --pp-ease:  cubic-bezier(.22, 1, .36, 1);
  --pp-t-med: .25s;

  position: relative;
  background: var(--pp-bone);
  color: var(--pp-ink);
  font-family: "Poppins", "Helvetica Neue", Helvetica, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: normal;
  letter-spacing: normal;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  text-wrap: pretty;
  overflow-x: clip;
}


/* ==========================================================================
   02  BASE RESETS (scoped)
   ========================================================================== */

.pp-functional-zoning-jurmala, .pp-functional-zoning-jurmala *, .pp-functional-zoning-jurmala *::before, .pp-functional-zoning-jurmala *::after { box-sizing: border-box; }
/* Text elements start from the source page's own baseline (Poppins, normal leading) regardless of
   what the active theme sets on bare h1–h4 / p — every class below then sets what the source sets. */
.pp-functional-zoning-jurmala :is(h1, h2, h3, h4, p) {
  margin: 0;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  font-style: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
}
.pp-functional-zoning-jurmala :is(figure, dl, dd, ul, ol) { margin: 0; }
.pp-functional-zoning-jurmala a { color: var(--pp-ink); text-decoration: none; }
.pp-functional-zoning-jurmala a:hover { color: var(--pp-accent); }
.pp-functional-zoning-jurmala img { max-width: 100%; }
.pp-functional-zoning-jurmala button { font: inherit; color: inherit; }
.pp-functional-zoning-jurmala :focus-visible { outline: 2px solid var(--pp-accent); outline-offset: 3px; border-radius: 4px; }

/* WordPress gives every Group/Buttons/Image/Table block its own default
   vertical margin (and groups with a background their own default padding).
   Every block this page uses owns its own spacing explicitly below, so the
   defaults are zeroed here (specificity (0,2,0) beats the Flow rule). */
.pp-functional-zoning-jurmala .wp-block-group, .pp-functional-zoning-jurmala .wp-block-buttons, .pp-functional-zoning-jurmala .wp-block-image, .pp-functional-zoning-jurmala .wp-block-table, .pp-functional-zoning-jurmala .wp-block-button { margin-block: 0; }

.pp-functional-zoning-jurmala .pp-em { color: var(--pp-accent); }
.pp-functional-zoning-jurmala .pp-zc-wrap { max-width: var(--pp-maxw); margin-inline: auto; padding-inline: var(--pp-gutter); }


/* ==========================================================================
   03  WORDPRESS FLOW-LAYOUT / GAP NEUTRALIZATION
   --------------------------------------------------------------------------
   Every custom row / grid / repeated-item component below is a plain
   core/group (or core/buttons) with no explicit `layout` attribute. A Group
   with no layout renders with WordPress's default "Flow" layout, which
   generates `<selector> > * + * { margin-block-start: <blockGap> }` from the
   ACTIVE THEME's spacing.blockGap — applying vertical margin to every direct
   child except the first, regardless of whether this Page Pack asked for it.
   For a component that already owns its own child positioning (grid / flex
   rows, side-by-side halves, repeated cards, step rows) that margin
   silently shifts and shrinks every item but the first. It can't be seen in
   a local, non-WordPress preview — the margin is generated by WordPress core
   plus the theme. Each component below neutralizes it on exactly its own
   direct children (never globally, never touching spacing inside a card's
   own content). `!important` matches WordPress's own rule, which carries
   normal specificity with no :where(). Reference: homepage v1.1.2 fix,
   docs/HOMEPAGE-WORDPRESS-FLOW-MARGIN-FIX-HANDOFF.md.

   core/buttons rows additionally get a literal `gap` from WordPress's flex
   layout (a DIFFERENT mechanism — see the master workflow .pp-functional-zoning-jurmala7.2): their
   row-gap and column-gap are each set explicitly where they are defined.
   ========================================================================== */

.pp-functional-zoning-jurmala .pp-zc-tags > *,
.pp-functional-zoning-jurmala .pp-zc-trust > *,
.pp-functional-zoning-jurmala .pp-zc-trust__item > *,
.pp-functional-zoning-jurmala .pp-zc-answer > *,
.pp-functional-zoning-jurmala .pp-zc-grid > *,
.pp-functional-zoning-jurmala .pp-zc-stats > *,
.pp-functional-zoning-jurmala .pp-zc-tree__opts > *,
.pp-functional-zoning-jurmala .pp-zc-result__meta > *,
.pp-functional-zoning-jurmala .pp-zc-result__meta-item > *,
.pp-functional-zoning-jurmala .pp-zc-zone__head > *,
.pp-functional-zoning-jurmala .pp-zc-check > *,
.pp-functional-zoning-jurmala .pp-zc-soft > *,
.pp-functional-zoning-jurmala .pp-zc-total > *,
.pp-functional-zoning-jurmala .pp-zc-map__frame > *,
.pp-functional-zoning-jurmala .pp-zc-map__legend > *,
.pp-functional-zoning-jurmala .pp-zc-steps > *,
.pp-functional-zoning-jurmala .pp-zc-step > *,
.pp-functional-zoning-jurmala .pp-zc-dist__head > *,
.pp-functional-zoning-jurmala .pp-zc-cmp__head > *,
.pp-functional-zoning-jurmala .pp-zc-rows > *,
.pp-functional-zoning-jurmala .pp-zc-row > *,
.pp-functional-zoning-jurmala .pp-zc-model__media > *,
.pp-functional-zoning-jurmala .pp-zc-model__foot > *,
.pp-functional-zoning-jurmala .pp-zc-bar > *,
.pp-functional-zoning-jurmala .pp-zc-energy__bars > *,
.pp-functional-zoning-jurmala .pp-zc-related > *,
.pp-functional-zoning-jurmala .pp-zc-dark-cta > *,
.pp-functional-zoning-jurmala .pp-zc-dark-cta__btns > *,
.pp-functional-zoning-jurmala .pp-zc-faq > *,
.pp-functional-zoning-jurmala .pp-zc-toc > *,
.pp-functional-zoning-jurmala .pp-zc-concept > * {
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
}
/* the area list keeps its authored 2px rhythm between items */
.pp-functional-zoning-jurmala .pp-zc-map__list > * { margin-block-start: 0 !important; margin-block-end: 2px !important; }


/* ==========================================================================
   04  BUTTONS AND TAB PILLS
   Native Button blocks. Shape / size / hover live here; the ink and light
   variants' fill and text colours are native block colours (editable in
   the sidebar) — hover states need !important to out-rank their inline
   style, same approach as the About Page Pack.
   ========================================================================== */

.pp-functional-zoning-jurmala .wp-block-button .wp-block-button__link.wp-element-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 38px;
  padding: 0 19px;
  border: 0;
  border-radius: var(--pp-r-pill);
  font-size: 15px;
  font-weight: 500;
  line-height: normal;
  letter-spacing: normal;
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
  transform: scale(1);
  transition: background var(--pp-t-med), color var(--pp-t-med), border-color var(--pp-t-med), transform .15s var(--pp-ease);
}
.pp-functional-zoning-jurmala .wp-block-button .wp-block-button__link.wp-element-button:active { transform: scale(.96); }

.pp-functional-zoning-jurmala .pp-btn-ink .wp-block-button__link.wp-element-button:hover { background: var(--pp-accent) !important; color: var(--pp-bone) !important; }
.pp-functional-zoning-jurmala .pp-btn-light .wp-block-button__link.wp-element-button:hover { background: var(--pp-accent-soft) !important; color: var(--pp-ink) !important; }
.pp-functional-zoning-jurmala .pp-btn-outline .wp-block-button__link.wp-element-button { background: transparent; color: var(--pp-ink); border: 1px solid var(--pp-ink); }
.pp-functional-zoning-jurmala .pp-btn-outline .wp-block-button__link.wp-element-button:hover { background: var(--pp-surface); color: var(--pp-ink); }
.pp-functional-zoning-jurmala .pp-btn-ghost .wp-block-button__link.wp-element-button {
  background: color-mix(in oklab, var(--pp-scrim) 30%, transparent);
  color: var(--pp-bone);
  border: 1px solid var(--pp-bone-60);
}
.pp-functional-zoning-jurmala .pp-btn-ghost .wp-block-button__link.wp-element-button:hover {
  background: color-mix(in oklab, var(--pp-bone) 14%, transparent);
  border-color: var(--pp-bone);
  color: var(--pp-bone);
}

/* buttons whose label may need to wrap on narrow screens (source: .zc-check/.zc-soft/.zc-map__cta .btn) */
.pp-functional-zoning-jurmala .pp-zc-check__btn .wp-block-button__link.wp-element-button,
.pp-functional-zoning-jurmala .pp-zc-soft__btn .wp-block-button__link.wp-element-button,
.pp-functional-zoning-jurmala .pp-zc-map__cta .wp-block-button__link.wp-element-button {
  white-space: normal;
  height: auto;
  min-height: 38px;
  padding-block: 10px;
  text-align: center;
  line-height: 1.3;
}
.pp-functional-zoning-jurmala .pp-zc-map__cta .wp-block-button__link.wp-element-button { max-width: 100%; }

/* TOC tab pills + decision-tree option pills */
.pp-functional-zoning-jurmala .pp-zc-tab .wp-block-button__link.wp-element-button {
  height: 30px;
  padding: 0 14px;
  border: 1px solid var(--pp-ink-line);
  background: var(--pp-bone);
  color: var(--pp-ink);
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
}
.pp-functional-zoning-jurmala .pp-zc-tab .wp-block-button__link.wp-element-button:hover { background: var(--pp-tint); border-color: var(--pp-accent-soft); color: var(--pp-accent); }

.pp-functional-zoning-jurmala .pp-zc-opt .wp-block-button__link.wp-element-button {
  display: inline-block;
  height: auto;
  padding: 11px 18px;
  border: 1px solid var(--pp-ink-line);
  background: var(--pp-bone);
  color: var(--pp-ink);
  font-size: 14.5px;
  font-weight: 400;
  line-height: 1.3;
  text-align: left;
  white-space: normal;
}
.pp-functional-zoning-jurmala .pp-zc-opt .wp-block-button__link.wp-element-button:hover { background: var(--pp-tint); border-color: var(--pp-accent-soft); color: var(--pp-ink); }
.pp-functional-zoning-jurmala .pp-zc-opt.pp-is-selected .wp-block-button__link.wp-element-button { background: var(--pp-ink); border-color: var(--pp-ink); color: var(--pp-bone); }


/* ==========================================================================
   05  TYPOGRAPHY HELPERS + SECTION SCAFFOLDING
   ========================================================================== */

.pp-functional-zoning-jurmala .pp-zc-eyebrow { font-size: 11px; font-weight: 400; letter-spacing: .18em; text-transform: uppercase; color: var(--pp-ink-56); }
.pp-functional-zoning-jurmala .pp-zc-eyebrow--soft { color: var(--pp-accent-soft); }

.pp-functional-zoning-jurmala .pp-zc-h1 { font-size: clamp(34px, 8.6vw, 46px); line-height: 1.06; letter-spacing: -.026em; font-weight: 500; }
.pp-functional-zoning-jurmala .pp-zc-h2 { font-size: clamp(26px, 4.6vw, 40px); line-height: 1.08; letter-spacing: -.022em; font-weight: 500; }
.pp-functional-zoning-jurmala .pp-zc-h2--p { font-size: clamp(28px, 4.4vw, 46px); line-height: 1.06; }
.pp-functional-zoning-jurmala .pp-zc-title { margin-top: 10px; max-width: 26ch; }
.pp-functional-zoning-jurmala .pp-zc-faq-sec .pp-zc-title { max-width: 28ch; }
.pp-functional-zoning-jurmala .pp-zc-sub { margin-top: 14px; font-size: 15.5px; line-height: 1.65; font-weight: 300; color: var(--pp-ink-72); max-width: 64ch; }
.pp-functional-zoning-jurmala .pp-zc-sub strong { font-weight: 500; color: var(--pp-ink); }
.pp-functional-zoning-jurmala .pp-zc-h3 { margin-top: 8px; font-size: clamp(20px, 2.6vw, 26px); font-weight: 500; letter-spacing: -.02em; line-height: 1.2; }
.pp-functional-zoning-jurmala .pp-zc-mt { margin-top: clamp(32px, 5vw, 52px); }
.pp-functional-zoning-jurmala .pp-zc-mt-s { margin-top: clamp(20px, 3vw, 28px); }

/* inline text links inside body copy (source: .zc-a) */
.pp-functional-zoning-jurmala .pp-zc-lead a, .pp-functional-zoning-jurmala .pp-zc-sub a, .pp-functional-zoning-jurmala .pp-zc-card__p a, .pp-functional-zoning-jurmala .pp-zc-prose__p a, .pp-functional-zoning-jurmala .pp-zc-check__p a,
.pp-functional-zoning-jurmala .pp-zc-note a, .pp-functional-zoning-jurmala .pp-zc-step__p a, .pp-functional-zoning-jurmala .pp-zc-sources__p a, .pp-functional-zoning-jurmala .pp-zc-result__desc a, .pp-functional-zoning-jurmala .pp-faq__a a {
  color: var(--pp-ink);
  font-weight: 500;
  text-decoration: underline;
  text-decoration-color: var(--pp-ink-28);
  text-underline-offset: 3px;
  transition: color var(--pp-t-med), text-decoration-color var(--pp-t-med);
}
.pp-functional-zoning-jurmala .pp-zc-lead a:hover, .pp-functional-zoning-jurmala .pp-zc-sub a:hover, .pp-functional-zoning-jurmala .pp-zc-card__p a:hover, .pp-functional-zoning-jurmala .pp-zc-prose__p a:hover, .pp-functional-zoning-jurmala .pp-zc-check__p a:hover,
.pp-functional-zoning-jurmala .pp-zc-note a:hover, .pp-functional-zoning-jurmala .pp-zc-step__p a:hover, .pp-functional-zoning-jurmala .pp-zc-sources__p a:hover, .pp-functional-zoning-jurmala .pp-zc-result__desc a:hover, .pp-functional-zoning-jurmala .pp-faq__a a:hover {
  color: var(--pp-accent);
  text-decoration-color: currentColor;
}

/* section bands — padding top/bottom is a native MyCabin "Section — Compact" preset on the block;
   horizontal padding must be 0 (WordPress adds default side padding to any group with a background) */
/* in-page anchors land where the source lands: its html scroll-padding-top (header+12px) and each section's own scroll-margin-top (header+8px) both apply */
.pp-functional-zoning-jurmala .wp-block-group.pp-zc-sec { padding-inline: 0; scroll-margin-top: calc(var(--pp-hdr-h) * 2 + 20px); }
.pp-functional-zoning-jurmala .wp-block-group.pp-zc-sec--alt { background-color: var(--pp-surface); }
.pp-functional-zoning-jurmala .wp-block-group.pp-zc-sec--tight { padding-block: clamp(32px, 5vw, 56px); }
.pp-functional-zoning-jurmala .pp-zc-check { scroll-margin-top: calc(var(--pp-hdr-h) * 2 + 28px); }
.pp-functional-zoning-jurmala .wp-block-group.pp-zc-faq-sec { scroll-margin-top: calc(var(--pp-hdr-h) * 2 + 20px); }

.pp-functional-zoning-jurmala .pp-zc-grid { margin-top: clamp(24px, 4vw, 40px); display: grid; gap: 14px; grid-template-columns: 1fr; }
.pp-functional-zoning-jurmala .pp-zc-grid > * { min-width: 0; }


/* ==========================================================================
   06  HERO + TRUST STRIP
   ========================================================================== */

.pp-functional-zoning-jurmala .wp-block-group.pp-zc-hero { padding: calc(var(--pp-hdr-h) + clamp(28px, 6vw, 48px)) 0 clamp(28px, 4vw, 44px); background-color: var(--pp-surface); }
.pp-functional-zoning-jurmala .pp-zc-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-size: 13px; color: var(--pp-ink-56); margin-bottom: 18px; }
.pp-functional-zoning-jurmala .pp-zc-crumbs a:hover { color: var(--pp-accent); }
.pp-functional-zoning-jurmala .pp-zc-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; }
.pp-functional-zoning-jurmala .pp-zc-tag { display: inline-flex; align-items: center; height: 26px; padding: 0 12px; border-radius: var(--pp-r-pill); background: var(--pp-ink); color: var(--pp-bone); font-size: 12px; letter-spacing: .02em; }
.pp-functional-zoning-jurmala .pp-zc-tag--soft { background: var(--pp-bone); color: var(--pp-ink-72); border: 1px solid var(--pp-ink-line); }
.pp-functional-zoning-jurmala .pp-zc-tag--accent { background: var(--pp-tint); color: var(--pp-ink); }

.pp-functional-zoning-jurmala .pp-zc-hero__text { max-width: 760px; }
.pp-functional-zoning-jurmala .pp-zc-hero .pp-zc-h1 { margin-top: 10px; max-width: 24ch; }
.pp-functional-zoning-jurmala .pp-zc-lead { margin-top: 16px; line-height: 1.55; color: var(--pp-ink-72); font-weight: 300; }

.pp-functional-zoning-jurmala .pp-zc-trust { margin-top: clamp(24px, 3.5vw, 36px); display: grid; grid-template-columns: 1fr; gap: 16px 24px; padding-top: clamp(20px, 3vw, 28px); border-top: 1px solid var(--pp-ink-line); }
.pp-functional-zoning-jurmala .pp-zc-trust__item { display: flex; align-items: center; gap: 14px; }
.pp-functional-zoning-jurmala .pp-zc-trust__num { font-size: clamp(30px, 4vw, 40px); font-weight: 500; letter-spacing: -.03em; line-height: 1; color: var(--pp-ink); min-width: 2.4ch; }
.pp-functional-zoning-jurmala .pp-zc-trust__lbl { font-size: 13px; line-height: 1.4; color: var(--pp-ink-72); font-weight: 300; }
.pp-functional-zoning-jurmala .pp-zc-trust__lbl strong { display: block; color: var(--pp-ink); font-weight: 500; font-size: 14px; }


/* ==========================================================================
   07  QUICK ANSWER
   ========================================================================== */

.pp-functional-zoning-jurmala .pp-zc-answer-sec { padding: clamp(24px, 4vw, 40px) 0 0; }
.pp-functional-zoning-jurmala .wp-block-group.pp-zc-answer { display: grid; grid-template-columns: 1fr; gap: 18px; align-items: center; padding: clamp(22px, 3vw, 32px); background-color: var(--pp-ink); color: var(--pp-bone); border-radius: var(--pp-r-card); }
.pp-functional-zoning-jurmala .pp-zc-answer__badge { display: inline-flex; flex-direction: column; gap: 2px; justify-self: start; padding: 10px 16px; border: 1px solid var(--pp-bone-line); border-radius: var(--pp-r-md); }
.pp-functional-zoning-jurmala .pp-zc-answer__badge-lbl { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--pp-accent-soft); }
.pp-functional-zoning-jurmala .pp-zc-answer__badge-val { font-size: 18px; letter-spacing: -.01em; font-weight: 500; color: var(--pp-bone); }
.pp-functional-zoning-jurmala .pp-zc-answer__eyebrow { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--pp-bone-60); margin-bottom: 8px; }
.pp-functional-zoning-jurmala .pp-zc-answer__h { font-size: clamp(15.5px, 1.9vw, 18px); line-height: 1.55; font-weight: 300; color: var(--pp-bone-80); }
.pp-functional-zoning-jurmala .pp-zc-answer__h strong { font-weight: 500; color: var(--pp-bone); }
.pp-functional-zoning-jurmala .pp-zc-hl { color: var(--pp-accent-soft); font-weight: 500; }
.pp-functional-zoning-jurmala .pp-zc-answer__btn { justify-self: start; }


/* ==========================================================================
   08  CARDS, CONCEPTS
   ========================================================================== */

.pp-functional-zoning-jurmala .pp-zc-card { background: var(--pp-bone); border: 1px solid var(--pp-stone); border-radius: var(--pp-r-card); padding: 20px; }
.pp-functional-zoning-jurmala .pp-zc-card__h { font-size: clamp(18px, 2vw, 21px); font-weight: 500; letter-spacing: -.015em; line-height: 1.2; }
.pp-functional-zoning-jurmala .pp-zc-card__p { margin-top: 10px; font-size: 14.5px; line-height: 1.6; font-weight: 300; color: var(--pp-ink-72); }
.pp-functional-zoning-jurmala .pp-zc-card__p strong { font-weight: 500; color: var(--pp-ink); }
.pp-functional-zoning-jurmala .pp-zc-card__eyebrow { margin: 14px 0 6px; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--pp-accent); font-weight: 500; line-height: 1.6; }
.pp-functional-zoning-jurmala .pp-zc-num { font-size: 28px; font-weight: 300; letter-spacing: -.03em; color: var(--pp-accent-soft); line-height: 1; padding-bottom: 2px; }

.pp-functional-zoning-jurmala .pp-zc-concept { display: flex; gap: 14px; align-items: flex-start; padding: 18px; background: var(--pp-surface); border-radius: var(--pp-r-card); }
.pp-functional-zoning-jurmala .pp-zc-sec--alt .pp-zc-concept { background: var(--pp-bone); }
.pp-functional-zoning-jurmala .pp-zc-concept__icon { flex: 0 0 36px; width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; background: var(--pp-tint); border-radius: var(--pp-r-md); color: var(--pp-ink); }
.pp-functional-zoning-jurmala .pp-zc-concept__h { font-size: 16px; font-weight: 500; letter-spacing: -.01em; line-height: normal; }
.pp-functional-zoning-jurmala .pp-zc-concept__p { margin-top: 6px; font-size: 14px; line-height: 1.55; font-weight: 300; color: var(--pp-ink-72); }
.pp-functional-zoning-jurmala .pp-zc-concept__p strong { font-weight: 500; color: var(--pp-ink); }


/* ==========================================================================
   09  TOC + STATS
   ========================================================================== */

.pp-functional-zoning-jurmala .pp-zc-toc { margin-top: 14px; display: flex; flex-wrap: nowrap; gap: 8px; overflow-x: auto; padding-bottom: 6px; scrollbar-width: none; margin-inline: calc(var(--pp-gutter) * -1); padding-inline: var(--pp-gutter); }
.pp-functional-zoning-jurmala .pp-zc-toc::-webkit-scrollbar { display: none; }
.pp-functional-zoning-jurmala .pp-zc-toc > .wp-block-button { flex: 0 0 auto; }

.pp-functional-zoning-jurmala .pp-zc-stats { margin-top: clamp(24px, 4vw, 40px); display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--pp-ink-line); border-bottom: 1px solid var(--pp-ink-line); }
.pp-functional-zoning-jurmala .pp-zc-stat { padding: 20px 16px 20px 0; border-bottom: 1px solid var(--pp-ink-line); }
.pp-functional-zoning-jurmala .pp-zc-stat:nth-last-child(-n+2) { border-bottom: 0; }
.pp-functional-zoning-jurmala .pp-zc-stat:nth-child(even) { padding-left: 16px; border-left: 1px solid var(--pp-ink-line); }
.pp-functional-zoning-jurmala .pp-zc-stat__lbl { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--pp-ink-56); }
.pp-functional-zoning-jurmala .pp-zc-stat__val { margin-top: 8px; font-size: clamp(26px, 3.6vw, 38px); font-weight: 500; letter-spacing: -.03em; line-height: 1.05; }
.pp-functional-zoning-jurmala .pp-zc-stat__delta { margin-top: 6px; font-size: 13px; font-weight: 500; color: var(--pp-good); }
.pp-functional-zoning-jurmala .pp-zc-stat__note { margin-top: 8px; font-size: 13px; line-height: 1.55; font-weight: 300; color: var(--pp-ink-72); }


/* ==========================================================================
   10  DECISION TREE
   Answer panels are real, editable blocks in content.html (one per
   outcome); frontend.js only shows/hides them. Without JS (and in the
   editor) every step and every outcome is simply visible.
   ========================================================================== */

.pp-functional-zoning-jurmala .wp-block-group.pp-zc-tree { margin-top: clamp(24px, 4vw, 40px); max-width: 860px; padding: clamp(20px, 3vw, 32px); background-color: var(--pp-surface); border: 1px solid var(--pp-stone); border-radius: var(--pp-r-card); }
.pp-functional-zoning-jurmala .pp-zc-tree__step { margin-bottom: 26px; }
.pp-functional-zoning-jurmala .pp-zc-tree__num { font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--pp-accent); font-weight: 500; }
.pp-functional-zoning-jurmala .pp-zc-tree__q { margin-top: 8px; font-size: clamp(18px, 2.2vw, 22px); font-weight: 500; letter-spacing: -.015em; line-height: 1.25; }
.pp-functional-zoning-jurmala .pp-zc-tree__opts { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 8px; }

.pp-functional-zoning-jurmala .pp-zc-result { padding: clamp(18px, 3vw, 26px); background: var(--pp-tint); border: 1px solid var(--pp-tint-line-strong); border-radius: var(--pp-r-card); margin-bottom: 18px; }
.pp-functional-zoning-jurmala .pp-zc-result__label { font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--pp-ink-72); font-weight: 500; }
.pp-functional-zoning-jurmala .pp-zc-pill-inline { display: flex; width: fit-content; align-items: center; height: 26px; padding: 0 13px; margin-top: 8px; margin-bottom: 12px; border-radius: var(--pp-r-pill); font-size: 11.5px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }
.pp-functional-zoning-jurmala .pp-zc-pill-inline--p { background: var(--pp-good-soft); color: var(--pp-good); }
.pp-functional-zoning-jurmala .pp-zc-pill-inline--b { background: var(--pp-ink); color: var(--pp-bone); }
.pp-functional-zoning-jurmala .pp-zc-pill-inline--c { background: var(--pp-bone); color: var(--pp-ink); border: 1px solid var(--pp-tint-line-strong); }
.pp-functional-zoning-jurmala .pp-zc-result__h { font-size: clamp(22px, 3vw, 30px); font-weight: 500; letter-spacing: -.02em; line-height: 1.2; }
.pp-functional-zoning-jurmala .pp-zc-result__desc { margin-top: 12px; font-size: 15px; line-height: 1.65; font-weight: 300; color: var(--pp-ink-72); max-width: 62ch; }
.pp-functional-zoning-jurmala .pp-zc-result__desc strong { font-weight: 500; color: var(--pp-ink); }
.pp-functional-zoning-jurmala .pp-zc-result__meta { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--pp-tint-line-strong); display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.pp-functional-zoning-jurmala .pp-zc-result__meta-item { display: flex; flex-direction: column; gap: 3px; }
.pp-functional-zoning-jurmala .pp-zc-result__meta-lbl { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--pp-ink-56); }
.pp-functional-zoning-jurmala .pp-zc-result__meta-val { font-size: 17px; font-weight: 500; letter-spacing: -.01em; }
.pp-functional-zoning-jurmala .pp-zc-result__cta { margin-top: 18px; }

/* JS state — only applied once frontend.js has added .pp-js to the root */
.pp-functional-zoning-jurmala.pp-js .pp-zc-tree__step--q2,
.pp-functional-zoning-jurmala.pp-js .pp-zc-tree__step--q3,
.pp-functional-zoning-jurmala.pp-js .pp-zc-result,
.pp-functional-zoning-jurmala.pp-js .pp-zc-tree__reset { display: none; }
.pp-functional-zoning-jurmala.pp-js .pp-zc-tree__step.pp-is-shown { display: block; }
.pp-functional-zoning-jurmala.pp-js .pp-zc-result.pp-is-shown { display: block; }
.pp-functional-zoning-jurmala.pp-js .pp-zc-tree__reset.pp-is-shown { display: flex; }


/* ==========================================================================
   11  ZONES + ZONING CHECK
   ========================================================================== */

.pp-functional-zoning-jurmala .pp-zc-zone { display: flex; flex-direction: column; }
.pp-functional-zoning-jurmala .pp-zc-sec--alt .pp-zc-card { background: var(--pp-bone); }
.pp-functional-zoning-jurmala .pp-zc-zone__head { display: flex; align-items: center; gap: 12px; }
.pp-functional-zoning-jurmala .pp-zc-zone__head .pp-zc-card__h { font-size: 16px; }
.pp-functional-zoning-jurmala .pp-zc-zbadge { flex: 0 0 auto; min-width: 46px; height: 40px; padding: 0 10px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--pp-r-md); background: var(--pp-tint); font-size: 15px; font-weight: 500; letter-spacing: .01em; line-height: normal; }
.pp-functional-zoning-jurmala .pp-zc-zone > .pp-zc-card__p { flex: 1; }
.pp-functional-zoning-jurmala .pp-zc-status { margin-top: 16px; align-self: flex-start; display: inline-flex; align-items: center; gap: 7px; height: auto; min-height: 27px; padding: 3px 12px; border-radius: var(--pp-r-pill); font-size: 12.5px; font-weight: 500; max-width: 100%; }
.pp-functional-zoning-jurmala .pp-zc-status::before { content: ''; flex: 0 0 7px; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.pp-functional-zoning-jurmala .pp-zc-status--good { background: var(--pp-good-soft); color: var(--pp-good); }
.pp-functional-zoning-jurmala .pp-zc-status--warn { background: color-mix(in oklab, var(--pp-sun) 40%, var(--pp-bone)); color: var(--pp-olive); }
.pp-functional-zoning-jurmala .pp-zc-status--bad { background: var(--pp-bad-soft); color: var(--pp-bad); }

.pp-functional-zoning-jurmala .pp-zc-check { margin-top: clamp(20px, 3vw, 32px); display: flex; flex-direction: column; align-items: flex-start; gap: 18px; padding: clamp(20px, 3vw, 28px); background: var(--pp-bone); border: 1px solid var(--pp-stone); border-radius: var(--pp-r-card); }
.pp-functional-zoning-jurmala .pp-zc-check__h { font-size: clamp(18px, 2vw, 21px); font-weight: 500; letter-spacing: -.015em; line-height: normal; }
.pp-functional-zoning-jurmala .pp-zc-check__p { margin-top: 8px; font-size: 14.5px; line-height: 1.6; font-weight: 300; color: var(--pp-ink-72); max-width: 64ch; }


/* ==========================================================================
   12  MAP
   Leaflet is loaded lazily by frontend.js (same as the source). The 19
   areas are real, editable blocks; each area's pin position travels with
   the block as a `pp-zc-geo-<lat>_<lng>` class (Advanced → Additional CSS
   class). An area without that class is listed but not pinned.
   ========================================================================== */

.pp-functional-zoning-jurmala .pp-zc-map { margin-top: clamp(24px, 4vw, 40px); }
.pp-functional-zoning-jurmala .pp-zc-map__frame { position: relative; z-index: 0; isolation: isolate; display: flex; flex-direction: column; border: 1px solid var(--pp-stone); border-radius: var(--pp-r-card); overflow: hidden; background: var(--pp-bone); }
.pp-functional-zoning-jurmala .pp-zc-map__canvas { min-height: 340px; }
.pp-functional-zoning-jurmala .pp-zc-map__canvas:not(.leaflet-container) { background: var(--pp-surface); }
.pp-functional-zoning-jurmala .pp-zc-map__side { display: flex; flex-direction: column; max-height: 320px; border-top: 1px solid var(--pp-stone); min-height: 0; }
.pp-functional-zoning-jurmala .pp-zc-map__head { padding: 16px 16px 10px; }
.pp-functional-zoning-jurmala .pp-zc-map__h { font-size: 17px; font-weight: 500; letter-spacing: -.01em; line-height: normal; }
.pp-functional-zoning-jurmala .pp-zc-map__p { margin-top: 6px; font-size: 13px; line-height: 1.5; font-weight: 300; color: var(--pp-ink-72); }
.pp-functional-zoning-jurmala .pp-zc-map__legend { display: flex; flex-wrap: wrap; gap: 6px 14px; padding: 10px 16px; border-block: 1px solid var(--pp-stone); font-size: 12px; color: var(--pp-ink-72); }
.pp-functional-zoning-jurmala .pp-zc-legend { display: inline-flex; align-items: center; gap: 6px; }
.pp-functional-zoning-jurmala .pp-zc-legend::before { content: ''; width: 10px; height: 10px; border-radius: 50%; flex: 0 0 10px; background: var(--pp-ink); }
.pp-functional-zoning-jurmala .pp-zc-legend--good::before, .pp-functional-zoning-jurmala .pp-zc-area--good::before { background: var(--pp-good); }
.pp-functional-zoning-jurmala .pp-zc-legend--warn::before, .pp-functional-zoning-jurmala .pp-zc-area--warn::before { background: var(--pp-olive); }
.pp-functional-zoning-jurmala .pp-zc-legend--bad::before,  .pp-functional-zoning-jurmala .pp-zc-area--bad::before  { background: var(--pp-bad); }

.pp-functional-zoning-jurmala .pp-zc-map__list { padding: 6px; overflow-y: auto; flex: 1; min-height: 0; counter-reset: pp-zc-area; }
.pp-functional-zoning-jurmala .pp-zc-area { counter-increment: pp-zc-area; display: grid; grid-template-columns: 22px 1fr; column-gap: 10px; row-gap: 2px; align-items: start; padding: 8px 10px; border-radius: var(--pp-r-md); cursor: pointer; }
.pp-functional-zoning-jurmala .pp-zc-area::before { content: counter(pp-zc-area); grid-row: 1 / span 2; width: 22px; height: 22px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; color: #fff; font-size: 11px; font-weight: 500; margin-top: 1px; }
.pp-functional-zoning-jurmala .pp-zc-area > * { grid-column: 2; }
.pp-functional-zoning-jurmala .pp-zc-area:hover { background: var(--pp-surface); }
.pp-functional-zoning-jurmala .pp-zc-area.pp-is-on { background: var(--pp-tint); }
.pp-functional-zoning-jurmala .pp-zc-area:focus-visible { outline: 2px solid var(--pp-accent); outline-offset: -2px; }
.pp-functional-zoning-jurmala .pp-zc-area__nm { font-size: 14px; font-weight: 500; line-height: 1.3; }
.pp-functional-zoning-jurmala .pp-zc-area__dsc { font-size: 12.5px; line-height: 1.45; font-weight: 300; color: var(--pp-ink-72); }
.pp-functional-zoning-jurmala .pp-zc-map__note { margin-top: 12px; font-size: 12.5px; line-height: 1.55; color: var(--pp-ink-56); font-weight: 300; }
.pp-functional-zoning-jurmala .pp-zc-map__cta { margin-top: 16px; }

/* Leaflet pieces (the library's own CSS is injected by frontend.js) */
.pp-functional-zoning-jurmala .pp-zc-pin { width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; border-radius: 50%; color: #fff; font: 500 11px/1 'Poppins', sans-serif; border: 2px solid #fff; box-shadow: 0 1px 4px rgb(0 0 0 / .3); }
.pp-functional-zoning-jurmala .pp-zc-pin.pp-is-on { transform: scale(1.25); }
.pp-functional-zoning-jurmala .pp-zc-pinwrap { background: none; border: 0; }
.pp-functional-zoning-jurmala .pp-zc-map .leaflet-container { font-family: 'Poppins', sans-serif; font-size: 13px; }
.pp-functional-zoning-jurmala .pp-zc-map .leaflet-popup-content { margin: 12px 14px; line-height: 1.5; }
.pp-functional-zoning-jurmala .pp-zc-pop-n { display: block; margin-bottom: 4px; font-weight: 500; font-size: 14px; color: var(--pp-ink); }
.pp-functional-zoning-jurmala .pp-zc-pop-s { display: inline-block; margin-top: 8px; padding: 2px 10px; border-radius: var(--pp-r-pill); font-size: 12px; font-weight: 500; }


/* ==========================================================================
   13  PERMIT MATRIX — a native Table block. Table on desktop, stacked cards
   on phones. The phone labels come from frontend.js copying each header cell's
   text onto the matching body cell (data-label), so editing a header
   in Gutenberg updates its label too.
   ========================================================================== */

.pp-functional-zoning-jurmala .pp-zc-matrix-wrap { margin-top: clamp(24px, 4vw, 40px); }
/* the figure keeps WordPress's own overflow-x:auto — between 900 and ~1010px the table is wider than its column (the source clips it there; here it scrolls) */
.pp-functional-zoning-jurmala .pp-zc-matrix table { width: 100%; border: 0; border-collapse: collapse; display: block; table-layout: auto; }
.pp-functional-zoning-jurmala .pp-zc-matrix thead { display: none; border: 0; }
.pp-functional-zoning-jurmala .pp-zc-matrix tbody { display: grid; gap: 12px; }
.pp-functional-zoning-jurmala .pp-zc-matrix tr { display: block; padding: 16px; background: var(--pp-bone); border: 1px solid var(--pp-stone); border-radius: var(--pp-r-card); }
.pp-functional-zoning-jurmala .pp-zc-matrix td { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-width: 0; padding: 8px 0; border: 0; border-bottom: 1px solid var(--pp-ink-hair); font-size: 14px; line-height: normal; text-align: right; word-break: normal; }
.pp-functional-zoning-jurmala .pp-zc-matrix td:last-child { border-bottom: 0; }
.pp-functional-zoning-jurmala .pp-zc-matrix td::before { content: attr(data-label); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--pp-ink-56); text-align: left; flex: 0 0 auto; }
.pp-functional-zoning-jurmala .pp-zc-matrix td:first-child { display: block; padding-top: 0; text-align: left; font-size: 16px; font-weight: 500; }
.pp-functional-zoning-jurmala .pp-zc-matrix td:first-child::before { display: none; }
.pp-functional-zoning-jurmala .pp-zc-matrix td:nth-child(6) { font-weight: 500; }
.pp-functional-zoning-jurmala .pp-zc-size { display: block; margin-top: 2px; font-size: 12.5px; font-weight: 300; color: var(--pp-ink-56); }
.pp-functional-zoning-jurmala .pp-zc-pill { display: inline-flex; align-items: center; justify-content: center; max-width: 100%; min-height: 26px; padding: 3px 11px; border-radius: var(--pp-r-pill); font-size: 12px; font-weight: 500; line-height: normal; text-align: center; white-space: normal; }
.pp-functional-zoning-jurmala .pp-zc-pill--p { background: var(--pp-good-soft); color: var(--pp-good); }
.pp-functional-zoning-jurmala .pp-zc-pill--b { background: var(--pp-tint); color: var(--pp-ink); }
.pp-functional-zoning-jurmala .pp-zc-pill--x { background: var(--pp-bad-soft); color: var(--pp-bad); }
.pp-functional-zoning-jurmala .pp-zc-note { margin-top: 18px; padding: 16px 18px; background: color-mix(in oklab, var(--pp-sun) 28%, var(--pp-bone)); border-radius: var(--pp-r-card); font-size: 13.5px; line-height: 1.65; font-weight: 300; color: var(--pp-ink-72); }
.pp-functional-zoning-jurmala .pp-zc-note strong { font-weight: 500; color: var(--pp-ink); }


/* ==========================================================================
   14  PROCESS + SOFT CTA BAND
   ========================================================================== */

.pp-functional-zoning-jurmala .pp-zc-steps { margin: clamp(24px, 4vw, 40px) 0 0; max-width: 860px; }
.pp-functional-zoning-jurmala .pp-zc-step { position: relative; display: flex; gap: 16px; padding-bottom: 26px; }
.pp-functional-zoning-jurmala .pp-zc-step:not(:last-child)::before { content: ''; position: absolute; left: 17px; top: 38px; bottom: 4px; width: 1px; background: var(--pp-ink-line); }
.pp-functional-zoning-jurmala .pp-zc-step__num { flex: 0 0 36px; width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--pp-ink); color: var(--pp-bone); font-size: 14px; font-weight: 500; line-height: normal; }
.pp-functional-zoning-jurmala .pp-zc-step__body { min-width: 0; }
.pp-functional-zoning-jurmala .pp-zc-step__h { font-size: clamp(17px, 2vw, 20px); font-weight: 500; letter-spacing: -.015em; line-height: 1.3; padding-top: 5px; }
.pp-functional-zoning-jurmala .pp-zc-step__time { display: inline-flex; align-items: center; height: auto; min-height: 24px; padding: 3px 10px; margin-left: 4px; border-radius: var(--pp-r-pill); background: var(--pp-tint); font-size: 12px; font-weight: 400; letter-spacing: 0; vertical-align: middle; white-space: normal; }
.pp-functional-zoning-jurmala .pp-zc-step__p { margin-top: 8px; font-size: 14.5px; line-height: 1.65; font-weight: 300; color: var(--pp-ink-72); max-width: 62ch; }

.pp-functional-zoning-jurmala .wp-block-group.pp-zc-soft { margin-top: clamp(16px, 3vw, 28px); display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding: clamp(18px, 3vw, 26px); background-color: var(--pp-tint); border: 1px solid var(--pp-tint-line-strong); border-radius: var(--pp-r-card); }
.pp-functional-zoning-jurmala .pp-zc-soft__h { display: block; font-size: 17px; font-weight: 500; letter-spacing: -.01em; line-height: normal; }
.pp-functional-zoning-jurmala .pp-zc-soft__p { display: block; margin-top: 6px; font-size: 14px; line-height: 1.6; font-weight: 300; color: var(--pp-ink-72); max-width: 64ch; }


/* ==========================================================================
   15  DISTRICT / COMPARISON ROWS
   ========================================================================== */

.pp-functional-zoning-jurmala .pp-zc-dist__head, .pp-functional-zoning-jurmala .pp-zc-cmp__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid var(--pp-ink-line); min-width: 0; }
.pp-functional-zoning-jurmala .pp-zc-dist__meta { font-size: 12px; line-height: 1.4; text-align: right; color: var(--pp-ink-56); }
.pp-functional-zoning-jurmala .pp-zc-row { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 9px 0; border-bottom: 1px solid var(--pp-ink-hair); font-size: 13.5px; }
.pp-functional-zoning-jurmala .pp-zc-row:last-child { border-bottom: 0; padding-bottom: 0; }
.pp-functional-zoning-jurmala .pp-zc-row__dt { min-width: 0; overflow-wrap: anywhere; color: var(--pp-ink-72); font-weight: 300; }
.pp-functional-zoning-jurmala .pp-zc-row__dd { min-width: 0; overflow-wrap: anywhere; max-width: 60%; font-weight: 500; text-align: right; }
.pp-functional-zoning-jurmala .pp-zc-cmp__verdict { display: inline-flex; align-items: center; justify-content: center; max-width: 100%; min-height: 26px; padding: 3px 12px; border-radius: var(--pp-r-pill); background: var(--pp-surface); border: 1px solid var(--pp-ink-line); font-size: 12px; line-height: normal; text-align: center; white-space: normal; }
.pp-functional-zoning-jurmala .pp-zc-cmp__verdict--good { background: var(--pp-good-soft); border-color: transparent; color: var(--pp-good); }
.pp-functional-zoning-jurmala .pp-zc-cmp--hl { border-color: var(--pp-accent-soft); }


/* ==========================================================================
   16  COSTS (total band + notes). The export's three cost cards are empty
   for this city — only the total and the notes below render.
   ========================================================================== */

/* the source's (empty) cost-card grid above the total still contributed its own top margin (a grid box does not collapse through): clamp(24px,4vw,40px) + the total's 16px */
.pp-functional-zoning-jurmala .wp-block-group.pp-zc-total { margin-top: calc(clamp(24px, 4vw, 40px) + 16px); display: flex; flex-direction: column; gap: 10px; padding: clamp(20px, 3vw, 28px); background-color: var(--pp-ink); color: var(--pp-bone); border-radius: var(--pp-r-card); }
.pp-functional-zoning-jurmala .pp-zc-total__h { display: block; font-size: 17px; font-weight: 500; line-height: normal; color: var(--pp-bone); }
.pp-functional-zoning-jurmala .pp-zc-total__p { display: block; margin-top: 4px; font-size: 13.5px; font-weight: 300; line-height: normal; color: var(--pp-bone-60); }
.pp-functional-zoning-jurmala .pp-zc-total__val { font-size: clamp(32px, 5vw, 46px); font-weight: 500; letter-spacing: -.03em; line-height: 1; color: var(--pp-accent-soft); }
.pp-functional-zoning-jurmala .pp-zc-after { margin: 16px 0 20px; max-width: 72ch; font-size: 14.5px; line-height: 1.7; font-weight: 300; color: var(--pp-ink-72); }
.pp-functional-zoning-jurmala .pp-zc-after strong { font-weight: 500; color: var(--pp-ink); }


/* ==========================================================================
   17  MODELS — whole card is clickable: the "Detaļas" link is stretched
   over the card (::after), so the card stays a normal editable block group.
   ========================================================================== */

.pp-functional-zoning-jurmala .pp-zc-grid--models { grid-template-columns: 1fr; }
.pp-functional-zoning-jurmala .pp-zc-model { position: relative; display: flex; flex-direction: column; background: var(--pp-bone); border: 1px solid var(--pp-stone); border-radius: var(--pp-r-card); overflow: hidden; transition: border-color var(--pp-t-med), box-shadow var(--pp-t-med); }
.pp-functional-zoning-jurmala .pp-zc-model__media { position: relative; aspect-ratio: 3 / 2; background: var(--pp-surface); overflow: hidden; }
.pp-functional-zoning-jurmala .pp-zc-model__media .wp-block-image { height: 100%; margin: 0; }
.pp-functional-zoning-jurmala .pp-zc-model__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pp-functional-zoning-jurmala .pp-zc-model__tag { position: absolute; top: 12px; left: 12px; z-index: 1; display: inline-flex; align-items: center; height: 26px; padding: 0 12px; border-radius: var(--pp-r-pill); background: var(--pp-bone); font-size: 12px; line-height: normal; }
.pp-functional-zoning-jurmala .pp-zc-model__body { display: flex; flex-direction: column; flex: 1; padding: 18px; }
.pp-functional-zoning-jurmala .pp-zc-model__h { font-size: 20px; font-weight: 500; letter-spacing: -.015em; line-height: normal; }
.pp-functional-zoning-jurmala .pp-zc-model__meta { margin-top: 4px; font-size: 13px; color: var(--pp-ink-56); }
.pp-functional-zoning-jurmala .pp-zc-model__fit { margin-top: 10px; font-size: 14px; line-height: 1.55; font-weight: 300; color: var(--pp-ink-72); }
.pp-functional-zoning-jurmala .pp-zc-model__foot { margin-top: auto; padding-top: 16px; display: flex; justify-content: space-between; align-items: center; gap: 10px; font-size: 14px; }
.pp-functional-zoning-jurmala .pp-zc-model__price { font-weight: 500; }
.pp-functional-zoning-jurmala .pp-zc-model__link a { display: inline-flex; align-items: center; gap: 10px; font-size: 16px; font-weight: 500; white-space: nowrap; }
.pp-functional-zoning-jurmala .pp-zc-model__link a::after { content: ''; width: 15px; height: 15px; flex: 0 0 15px; background: currentColor; -webkit-mask: var(--pp-arrow) center / contain no-repeat; mask: var(--pp-arrow) center / contain no-repeat; }
.pp-functional-zoning-jurmala .pp-zc-model__link a::before { content: ''; position: absolute; inset: 0; z-index: 2; }

.pp-functional-zoning-jurmala {
  --pp-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 8h11M9 4l4 4-4 4'/%3E%3C/svg%3E");
}
@media (hover: hover) {
  .pp-functional-zoning-jurmala .pp-zc-model:hover { border-color: var(--pp-accent-soft); box-shadow: 0 14px 34px -18px color-mix(in oklab, var(--pp-ink) 30%, transparent); color: var(--pp-accent); }
  .pp-functional-zoning-jurmala .pp-zc-model:hover .pp-zc-model__link a { color: var(--pp-accent); }
}


/* ==========================================================================
   18  WHY MYCABIN — advantage cards, production bars, energy scale
   ========================================================================== */

.pp-functional-zoning-jurmala .pp-zc-adv__head { margin-top: 6px; font-size: clamp(30px, 4vw, 42px); font-weight: 500; letter-spacing: -.03em; line-height: 1.6; color: var(--pp-ink); }
.pp-functional-zoning-jurmala .pp-zc-adv__head span { font-size: 16px; font-weight: 300; letter-spacing: 0; color: var(--pp-ink-56); }
.pp-functional-zoning-jurmala .pp-zc-adv__sub { margin-top: 6px; font-size: 14px; line-height: 1.6; font-weight: 300; color: var(--pp-ink-56); }

.pp-functional-zoning-jurmala .pp-zc-bars { margin-top: 18px; }
.pp-functional-zoning-jurmala .pp-zc-bar { display: grid; grid-template-columns: 1fr auto; gap: 6px 12px; align-items: center; padding: 10px 0; border-top: 1px solid var(--pp-ink-hair); font-size: 13.5px; }
.pp-functional-zoning-jurmala .pp-zc-bar__lbl { grid-column: 1 / -1; color: var(--pp-ink-72); font-weight: 300; }
.pp-functional-zoning-jurmala .pp-zc-bar__lbl strong { font-weight: 500; color: var(--pp-ink); }
.pp-functional-zoning-jurmala .pp-zc-bar__track { display: block; height: 6px; border-radius: var(--pp-r-pill); background: var(--pp-stone); overflow: hidden; }
.pp-functional-zoning-jurmala .pp-zc-bar__track i { display: block; height: 100%; border-radius: var(--pp-r-pill); background: var(--pp-accent); }
.pp-functional-zoning-jurmala .pp-zc-bar__val { font-weight: 500; min-width: 7ch; text-align: right; }
.pp-functional-zoning-jurmala .pp-zc-bar__val--accent { color: var(--pp-accent); }

.pp-functional-zoning-jurmala .pp-zc-energy { margin-top: 18px; padding: 18px; background: var(--pp-surface); border-radius: var(--pp-r-md); }
.pp-functional-zoning-jurmala .pp-zc-energy__lbl { margin: 0; font-size: 11px; line-height: 1.6; font-weight: 300; letter-spacing: .1em; text-transform: uppercase; color: var(--pp-ink-56); }
.pp-functional-zoning-jurmala .pp-zc-energy__bars { margin-top: 34px; height: 64px; display: flex; gap: 3px; align-items: flex-end; }
.pp-functional-zoning-jurmala .pp-zc-energy__bar { flex: 1; position: relative; display: flex; align-items: flex-end; justify-content: center; padding: 4px 2px; border-radius: 4px 4px 0 0; background: var(--pp-stone); font-size: 12px; font-weight: 500; line-height: 1; color: var(--pp-ink); }
.pp-functional-zoning-jurmala .pp-zc-energy__bar--a-plus { height: 100%; background: var(--pp-good); color: #fff; }
.pp-functional-zoning-jurmala .pp-zc-energy__bar--a { height: 90%; background: var(--pp-good); color: #fff; opacity: .85; }
.pp-functional-zoning-jurmala .pp-zc-energy__bar--a::after { content: 'MyCabin'; position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); margin-bottom: 6px; padding: 3px 10px; border-radius: var(--pp-r-pill); background: var(--pp-ink); color: var(--pp-bone); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.pp-functional-zoning-jurmala .pp-zc-energy__bar--b { height: 76%; background: var(--pp-accent-soft); }
.pp-functional-zoning-jurmala .pp-zc-energy__bar--c { height: 62%; background: var(--pp-tint); }
.pp-functional-zoning-jurmala .pp-zc-energy__bar--d { height: 48%; background: var(--pp-wood); }
.pp-functional-zoning-jurmala .pp-zc-energy__bar--e { height: 36%; background: color-mix(in oklab, var(--pp-wood) 70%, var(--pp-bad)); }
.pp-functional-zoning-jurmala .pp-zc-energy__bar--f { height: 26%; background: var(--pp-bad-soft); }
.pp-functional-zoning-jurmala .pp-zc-energy__note { margin-top: 12px; font-size: 12.5px; line-height: 1.6; font-weight: 300; color: var(--pp-ink-72); }


/* ==========================================================================
   19  PROSE, FAQ, RELATED, SOURCES
   ========================================================================== */

.pp-functional-zoning-jurmala .pp-zc-prose { max-width: 760px; }
.pp-functional-zoning-jurmala .pp-zc-prose__h { margin: clamp(26px, 4vw, 36px) 0 10px; font-size: clamp(19px, 2.4vw, 24px); font-weight: 500; letter-spacing: -.02em; line-height: 1.25; }
.pp-functional-zoning-jurmala .pp-zc-prose > .pp-zc-prose__h:first-child { margin-top: clamp(26px, 4vw, 36px); }
.pp-functional-zoning-jurmala .pp-zc-prose__p { margin-top: 14px; font-size: 15.5px; line-height: 1.75; font-weight: 300; color: var(--pp-ink-72); }
.pp-functional-zoning-jurmala .pp-zc-prose__p strong { font-weight: 500; color: var(--pp-ink); }

.pp-functional-zoning-jurmala .wp-block-group.pp-zc-faq-sec { padding: clamp(56px, 8vw, 100px) 0; padding-inline: 0; background-color: var(--pp-tint); border-block: 1px solid var(--pp-tint-line); }
.pp-functional-zoning-jurmala .pp-zc-faq { margin-top: clamp(24px, 3.5vw, 36px); max-width: 860px; border-bottom: 1px solid var(--pp-tint-line-strong); }
.pp-functional-zoning-jurmala .pp-faq { border-top: 1px solid var(--pp-tint-line-strong); }
.pp-functional-zoning-jurmala .pp-faq__q { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 20px 0; font-size: 16px; font-weight: 500; letter-spacing: normal; line-height: normal; cursor: pointer; transition: color .2s; }
.pp-functional-zoning-jurmala .pp-faq__q:hover { color: var(--pp-accent); }
.pp-functional-zoning-jurmala .pp-faq__q::after { content: '+'; flex: 0 0 22px; font-size: 20px; line-height: 1; font-weight: 300; text-align: right; color: var(--pp-ink-56); }
.pp-functional-zoning-jurmala .pp-faq.pp-is-open > .pp-faq__q::after { content: '\2212'; }
.pp-functional-zoning-jurmala .pp-faq__a { margin: 0 0 12px; font-size: 15.5px; line-height: 1.6; color: var(--pp-ink-72); font-weight: 300; }
.pp-functional-zoning-jurmala .pp-faq__a:last-child { margin-bottom: 0; padding-bottom: 22px; }
.pp-functional-zoning-jurmala .pp-faq__a strong { font-weight: 500; color: var(--pp-ink); }
/* closed state exists only once frontend.js has taken over (answers stay visible without JS and in the editor) */
.pp-functional-zoning-jurmala.pp-js .pp-faq:not(.pp-is-open) > .pp-faq__a { display: none; }

.pp-functional-zoning-jurmala .pp-zc-related { position: relative; display: flex; gap: 14px; align-items: center; padding: 16px 18px; background: var(--pp-bone); border: 1px solid var(--pp-stone); border-radius: var(--pp-r-card); transition: border-color var(--pp-t-med); }
.pp-functional-zoning-jurmala .pp-zc-related__t { font-size: 15.5px; font-weight: 500; line-height: normal; }
.pp-functional-zoning-jurmala .pp-zc-related__t a::after { content: ''; position: absolute; inset: 0; }
.pp-functional-zoning-jurmala .pp-zc-related__s { margin-top: 2px; font-size: 13.5px; font-weight: 300; line-height: normal; color: var(--pp-ink-72); }
@media (hover: hover) {
  .pp-functional-zoning-jurmala .pp-zc-related:hover { border-color: var(--pp-accent-soft); }
  .pp-functional-zoning-jurmala .pp-zc-related:hover .pp-zc-related__t a { color: var(--pp-accent); }
}

.pp-functional-zoning-jurmala .wp-block-group.pp-zc-sources { margin-top: clamp(24px, 4vw, 40px); padding: 18px 20px; background-color: var(--pp-surface); border-radius: var(--pp-r-card); font-size: 12.5px; line-height: 1.75; font-weight: 300; color: var(--pp-ink-56); }
.pp-functional-zoning-jurmala .pp-zc-sources__t { display: block; margin-bottom: 6px; font-size: 13px; line-height: 1.75; font-weight: 500; color: var(--pp-ink-72); }
.pp-functional-zoning-jurmala .pp-zc-sources__p { font-size: 12.5px; line-height: 1.75; font-weight: 300; color: var(--pp-ink-56); }


/* ==========================================================================
   20  CLOSING DARK CTA
   ========================================================================== */

.pp-functional-zoning-jurmala .wp-block-group.pp-zc-dark-cta-section { padding-inline: 0; background-color: var(--pp-ink); }
.pp-functional-zoning-jurmala .pp-zc-dark-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px; }
.pp-functional-zoning-jurmala .pp-zc-dark-cta__copy { display: flex; flex-direction: column; gap: 12px; flex: 1 1 300px; min-width: 0; }
.pp-functional-zoning-jurmala .pp-zc-dark-cta__copy > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }
.pp-functional-zoning-jurmala .pp-zc-dark-cta__h { font-size: clamp(25px, 7vw, 42px); line-height: 1.16; letter-spacing: -.03em; font-weight: 500; color: var(--pp-bone); }
.pp-functional-zoning-jurmala .pp-zc-dark-cta__p { font-size: clamp(13px, 2.8vw, 15px); line-height: 1.65; font-weight: 300; color: var(--pp-bone-60); }
/* source quirk kept: `.dark-cta p` also restyles the eyebrow paragraph inside the CTA */
.pp-functional-zoning-jurmala .pp-zc-dark-cta__copy .pp-zc-eyebrow { font-size: clamp(13px, 2.8vw, 15px); line-height: 1.65; font-weight: 300; color: var(--pp-bone-60); }
.pp-functional-zoning-jurmala .pp-zc-dark-cta__btns { display: flex; flex-direction: column; flex-wrap: nowrap; gap: 10px; width: 100%; }
.pp-functional-zoning-jurmala .pp-zc-dark-cta__btns .wp-block-button, .pp-functional-zoning-jurmala .pp-zc-dark-cta__btns .wp-block-button__link.wp-element-button { width: 100%; }
.pp-functional-zoning-jurmala .pp-zc-dark-cta__btns .wp-block-button__link.wp-element-button { display: flex; }


/* ==========================================================================
   21  SCROLL REVEAL (io-fade)
   Fade up once, the first time a block is scrolled into view; toggled by an
   IntersectionObserver in frontend.js (.pp-in-view is only ever added).
   The failsafe animation reveals the block after 3s even if the script
   never runs, so content can't be left invisible.
   ========================================================================== */

.pp-functional-zoning-jurmala .pp-io-fade { opacity: 0; transform: translateY(24px) scale(.97); transition: opacity .8s var(--pp-ease), transform .8s var(--pp-ease); animation: pp-zc-failsafe .01s 3s forwards; }
.pp-functional-zoning-jurmala .pp-io-fade.pp-in-view { opacity: 1; transform: none; animation: none; }
@keyframes pp-zc-failsafe { to { opacity: 1; transform: none; } }


/* ==========================================================================
   22  RESPONSIVE LAYERS — the source's own cuts: 640px, 900px, 1100px
   ========================================================================== */

@media (min-width: 640px) {
  .pp-functional-zoning-jurmala .pp-zc-trust { grid-template-columns: repeat(3, 1fr); }
  .pp-functional-zoning-jurmala .pp-zc-grid--zones, .pp-functional-zoning-jurmala .pp-zc-grid--models, .pp-functional-zoning-jurmala .pp-zc-grid--2 { grid-template-columns: repeat(2, 1fr); }
  .pp-functional-zoning-jurmala .pp-zc-result__meta { grid-template-columns: repeat(4, 1fr); }
  .pp-functional-zoning-jurmala .pp-zc-card { padding: 24px; }
  .pp-functional-zoning-jurmala .pp-zc-toc { flex-wrap: wrap; overflow: visible; margin-inline: 0; padding-inline: 0; }
  .pp-functional-zoning-jurmala .pp-zc-bar { grid-template-columns: 220px 1fr auto; }
  .pp-functional-zoning-jurmala .pp-zc-bar__lbl { grid-column: auto; }
}

@media (min-width: 900px) {
  .pp-functional-zoning-jurmala .wp-block-group.pp-zc-answer { grid-template-columns: auto 1fr auto; gap: 28px; }
  .pp-functional-zoning-jurmala .pp-zc-answer__btn { justify-self: end; }
  .pp-functional-zoning-jurmala .pp-zc-grid--3 { grid-template-columns: repeat(3, 1fr); gap: 20px; }
  .pp-functional-zoning-jurmala .pp-zc-grid--zones { grid-template-columns: repeat(4, 1fr); gap: 16px; }
  .pp-functional-zoning-jurmala .pp-zc-grid--models { grid-template-columns: repeat(4, 1fr); gap: 16px; }
  .pp-functional-zoning-jurmala .pp-zc-grid--2 { gap: 20px; }
  .pp-functional-zoning-jurmala .pp-zc-stats { grid-template-columns: repeat(4, 1fr); }
  .pp-functional-zoning-jurmala .pp-zc-stat, .pp-functional-zoning-jurmala .pp-zc-stat:nth-child(even) { padding: 24px 24px; border-left: 0; border-bottom: 0; border-right: 1px solid var(--pp-ink-line); }
  .pp-functional-zoning-jurmala .pp-zc-stat:first-child { padding-left: 0; }
  .pp-functional-zoning-jurmala .pp-zc-stat:last-child { border-right: 0; }
  .pp-functional-zoning-jurmala .pp-zc-check, .pp-functional-zoning-jurmala .wp-block-group.pp-zc-soft, .pp-functional-zoning-jurmala .wp-block-group.pp-zc-total { flex-direction: row; align-items: center; justify-content: space-between; gap: 32px; }
  .pp-functional-zoning-jurmala .pp-zc-soft__btn, .pp-functional-zoning-jurmala .pp-zc-check__btn { flex: 0 0 auto; }
  .pp-functional-zoning-jurmala .pp-zc-map__frame { flex-direction: row; }
  .pp-functional-zoning-jurmala .pp-zc-map__canvas { flex: 2 1 0; min-height: 460px; }
  .pp-functional-zoning-jurmala .pp-zc-map__side { flex: 1 1 0; max-height: 460px; border-top: 0; border-left: 1px solid var(--pp-stone); min-width: 300px; }
  .pp-functional-zoning-jurmala .pp-zc-matrix table { display: table; background: var(--pp-bone); border: 1px solid var(--pp-stone); border-radius: var(--pp-r-card); border-collapse: separate; border-spacing: 0; overflow: hidden; }
  .pp-functional-zoning-jurmala .pp-zc-matrix thead { display: table-header-group; background: var(--pp-surface); }
  .pp-functional-zoning-jurmala .pp-zc-matrix tbody { display: table-row-group; }
  .pp-functional-zoning-jurmala .pp-zc-matrix tr { display: table-row; padding: 0; background: transparent; border: 0; border-radius: 0; }
  .pp-functional-zoning-jurmala .pp-zc-matrix th { padding: 14px; border: 0; border-bottom: 1px solid var(--pp-stone); text-align: center; font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; line-height: normal; color: var(--pp-ink-56); }
  .pp-functional-zoning-jurmala .pp-zc-matrix th:first-child { text-align: left; }
  .pp-functional-zoning-jurmala .pp-zc-matrix td { display: table-cell; padding: 16px 14px; text-align: center; border: 0; border-bottom: 1px solid var(--pp-ink-hair); vertical-align: middle; }
  .pp-functional-zoning-jurmala .pp-zc-matrix td::before { display: none; }
  .pp-functional-zoning-jurmala .pp-zc-matrix td:first-child { display: table-cell; text-align: left; font-size: 14.5px; min-width: 220px; }
  .pp-functional-zoning-jurmala .pp-zc-matrix tr:last-child td { border-bottom: 0; }
  .pp-functional-zoning-jurmala .pp-zc-matrix tbody tr:hover td { background: var(--pp-surface); }
  .pp-functional-zoning-jurmala .pp-zc-matrix td:nth-child(7) { color: var(--pp-ink-72); white-space: nowrap; }
  .pp-functional-zoning-jurmala .pp-zc-pill { white-space: nowrap; }
  .pp-functional-zoning-jurmala .pp-zc-dark-cta__btns { display: grid; grid-template-columns: 1fr 1fr; width: auto; }
  .pp-functional-zoning-jurmala .pp-zc-dark-cta__btns .wp-block-button { width: auto; }
}

@media (min-width: 1100px) {
  .pp-functional-zoning-jurmala .pp-zc-grid--2 .pp-zc-adv { padding: 32px; }
}


/* ==========================================================================
   23  REDUCED MOTION
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
  .pp-functional-zoning-jurmala *, .pp-functional-zoning-jurmala *::before, .pp-functional-zoning-jurmala *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
  .pp-functional-zoning-jurmala .pp-zc-model, .pp-functional-zoning-jurmala .pp-zc-related, .pp-functional-zoning-jurmala .pp-zc-opt .wp-block-button__link.wp-element-button { transition: none; }
}


/* ===== v1.0.1 fixes (family F2) ===== */
/* The site theme balances headings (text-wrap: balance), lets text break anywhere (overflow-wrap: break-word) and disables hyphens; the design inherits
   `text-wrap: pretty` from the page. */
.pp-functional-zoning-jurmala :where(h1, h2, h3, h4, p, li, .wp-block-heading, .wp-block-button__link) { text-wrap-style: pretty; overflow-wrap: normal; hyphens: manual; }
/* source: <a> buttons align start, <button>s centre; FAQ questions are left-aligned buttons */
.pp-functional-zoning-jurmala .wp-block-button__link.wp-element-button { text-align: start; }
.pp-functional-zoning-jurmala :is(.pp-zc-check__btn, .pp-zc-soft__btn, .pp-zc-map__cta) .wp-block-button__link.wp-element-button { text-align: center; }
.pp-functional-zoning-jurmala .pp-zc-tree__reset-wrap .wp-block-button__link.wp-element-button { text-align: center; }
.pp-functional-zoning-jurmala .pp-faq__q { text-align: left; }


/* ===== v1.0.1 fixes (family F3) ===== */
/* source: map rows are left-aligned <button>s; the reset <button> is centred */
.pp-functional-zoning-jurmala .pp-zc-area { text-align: left; }
.pp-functional-zoning-jurmala .pp-zc-tree__reset .wp-block-button__link.wp-element-button { text-align: center; }
