/* ============================================================
   HIB.CO.IL — Design System
   Platform: Professional Service Directory
   Direction: RTL Hebrew
   Aesthetic: Simple Authority — clean, trustworthy, conversion-focused
   ============================================================ */

/* ============================================================
   FONT LOADING — Local fonts: Ploni (body/UI), BarLev (headings), Shabtai (design premium)
   ============================================================ */

/* — Ploni: operational system font — body, UI, forms, nav — */
@font-face {
  font-family: "Ploni";
  src: url("fonts/Ploni/Ploni-Regular.woff2") format("woff2"),
       url("fonts/Ploni/Ploni-Regular.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Ploni";
  src: url("fonts/Ploni/Ploni-Medium.woff2") format("woff2"),
       url("fonts/Ploni/Ploni-Medium.woff") format("woff");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Ploni";
  src: url("fonts/Ploni/Ploni-DemiBold.woff2") format("woff2"),
       url("fonts/Ploni/Ploni-DemiBold.woff") format("woff");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Ploni";
  src: url("fonts/Ploni/Ploni-Bold.woff2") format("woff2"),
       url("fonts/Ploni/Ploni-Bold.woff") format("woff");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Ploni";
  src: url("fonts/Ploni/Ploni-Light.woff2") format("woff2"),
       url("fonts/Ploni/Ploni-Light.woff") format("woff");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

/* — BarLev: authority + hierarchy font — headings, Plumbing & Renovation heroes — */
@font-face {
  font-family: "BarLev";
  src: url("fonts/BarLev/BarLev-Regular.woff2") format("woff2"),
       url("fonts/BarLev/BarLev-Regular.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "BarLev";
  src: url("fonts/BarLev/BarLev-Medium.woff2") format("woff2"),
       url("fonts/BarLev/BarLev-Medium.woff") format("woff");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "BarLev";
  src: url("fonts/BarLev/BarLev-Bold.woff2") format("woff2"),
       url("fonts/BarLev/BarLev-Bold.woff") format("woff");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "BarLev";
  src: url("fonts/BarLev/BarLev-UltraBold.woff2") format("woff2"),
       url("fonts/BarLev/BarLev-UltraBold.woff") format("woff");
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

/* — Shabtai: premium accent font — Architecture & Interior Design domain only — */
@font-face {
  font-family: "Shabtai";
  src: url("fonts/Shabtai/Shabtai-Regular.woff2") format("woff2"),
       url("fonts/Shabtai/Shabtai-Regular.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Shabtai";
  src: url("fonts/Shabtai/Shabtai-Bold.woff2") format("woff2"),
       url("fonts/Shabtai/Shabtai-Bold.woff") format("woff");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* — Danidin: signature display face (shared with amirsaban.co.il brand) —
   Single black master; used for hero / display headlines only. — */
@font-face {
  font-family: "Danidin";
  src: url("fonts/Danidin/danidin-black.woff2") format("woff2");
  font-weight: 400 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Danidin Stencil";
  src: url("fonts/Danidin/danidin-stencil.woff2") format("woff2");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

/* — Almoni: amirsaban brand body alternate (available; body stays Ploni) — */
@font-face {
  font-family: "Almoni";
  src: url("fonts/Almoni/almoni-regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Almoni";
  src: url("fonts/Almoni/almoni-bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Almoni";
  src: url("fonts/Almoni/almoni-black.woff2") format("woff2");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}
/* IBM Plex Mono — self-hosted editorial NUMERALS only (Latin/digits; contains no
   Hebrew glyphs by design, so any Hebrew in a mono-scoped element degrades through
   the --hib-font-mono stack to Ploni rather than a spaced system fallback). The
   single Regular face covers the 400–500 range the numerals use; this replaces the
   former Google-Fonts CDN link (R1 — zero third-party font requests). */
@font-face {
  font-family: "IBM Plex Mono";
  src: url("fonts/PlexMono/IBMPlexMono-Regular.woff2") format("woff2");
  font-weight: 400 500;
  font-style: normal;
  font-display: swap;
}

/* ============================================================
TOKEN RULES
1. Repeated standalone values become tokens.
2. Intentional dependent values derive from existing tokens.
3. Local or one-off variations do not justify new tokens.
4. Use semantic tokens for reusable roles and keep the system minimal.
   ============================================================ */

/* ============================================================
   1. CSS CUSTOM PROPERTIES (TOKENS)
   ============================================================ */
:root {
  /* — Neutral Palette — */
  --hib-neutral-0: #FFFFFF;
  --hib-neutral-25: #FCFCFA;
  --hib-neutral-50: #F6F7F4;
  --hib-neutral-100: #EEF1ED;
  --hib-neutral-200: #E1E5E0;
  --hib-neutral-300: #CED4CE;
  --hib-neutral-400: #A1AAA3;
  --hib-neutral-500: #6D7570;
  --hib-neutral-600: #58605B;
  --hib-neutral-700: #414741;
  --hib-neutral-800: #2A2E2B;
  --hib-neutral-900: #171A18;

  /* — Semantic Colors — (amirsaban brand: cool deep-blue ink + azure-gray surfaces) */
  --hib-bg: #F4F7FB;
  --hib-surface: #FFFFFF;
  --hib-surface-soft: #ECF2F9;
  --hib-text: #0E2C54;
  --hib-text-strong: #0B2546;
  --hib-text-secondary: #3A4D6B;
  --hib-text-muted: #51617A;
  --hib-border: #CFD8E6;
  --hib-rule-soft: #E1E8F2;
  --hib-divider: #D8E0EC;
  --hib-overlay: rgba(11, 37, 70, 0.55);

  /* —for real UI boundaries / states — */
  --hib-border-strong: #8294AE;

  /* — Feedback — */
  --hib-success: #2E7D5A;
  --hib-success-soft: #EAF6F0;
  --hib-warning: #B8852F;
  --hib-warning-soft: #FBF2E2;
  --hib-error: #B94B48;
  --hib-error-soft: #F9ECEB;
  /* Error TEXT reads in a deeper red than the signal colour. `--hib-error`
     stays the committed border/tint/icon identity, but at small type it left
     almost no contrast margin — 5.04:1 on white and 4.38:1 on its own tint,
     the second of which is below AA. Splitting the ink off keeps the error
     looking the same while the sentence about it stays legible (P3d2). */
  --hib-error-ink: #A33A37;
  --hib-info: #2E67C7;
  --hib-info-soft: #EAF1FD;
  --hib-rating-star: var(--hib-signature);   /* review stars are the amber signature accent (R2 §C) */
  

  /* — Brand: deep premium royal + indigo (deepened from amir azure for premium) — */
  --hib-primary: #1B4AB3;
  --hib-primary-hover: #15398C;
  --hib-accent: #16357F;
  --hib-accent-hover: #0F2A66;
  --hib-domain-soft: #EAF0FA;
  --hib-domain-soft-hover: #DDE7F6;

  --hib-domain-panel-soft: #EEF3FB;
  --hib-domain-surface-soft: #EDF2FA;

  --hib-domain-hero-glow: rgba(27,74,179,.07);
  --hib-domain-line: #D2DEF0;
  --hib-domain-tag-soft: #E4ECF8;

  /* — Dark-theme tokens (hero-dark, cta-noir, amir-section, domain-hero-v2) — navy block — */
  --hib-gold:      #1B4AB3;   /* legacy "gold" role → royal; light/dark spots overridden in hib-extra */
  --hib-dark-bg:   #081E3A;
  --hib-dark-text: #EAF1FB;

  /* — Semantic dark/on-dark roles (Packages 1A + 1B) —
     1A introduced these as byte-identical stand-ins for live literals; 1B is
     the approved consolidation pass: editorial hero shells joined the brand
     navy (dark-shell now derives from dark-bg), and the on-dark text family
     reads through a four-step ladder (default / soft / muted / faint) plus the
     translated primary accent. Exactly three dark surfaces remain — dark-bg,
     dark-raised, dark-deep — and any new dark value must justify a fourth. */
  --hib-dark-shell:  var(--hib-dark-bg);           /* hero/section shells — folded into brand navy (1B)  */
  --hib-dark-raised: #0B2546;                      /* raised dark media/panel tone + gradient stop       */
  --hib-dark-deep:   #071A28;                      /* footer shell — the deepest surface on the site     */
  --hib-dark-overlay: rgba(17, 24, 39, .5);        /* scrim behind the mobile menu drawer                */
  --hib-on-dark:       #F4F8FF;                    /* on-dark/default — titles on dark shells            */
  --hib-on-dark-soft:  rgba(225, 234, 250, .82);   /* on-dark/soft — ledes, descriptions                 */
  --hib-on-dark-muted: rgba(225, 234, 250, .74);   /* on-dark/muted — metadata, secondary lines          */
  --hib-on-dark-faint: rgba(225, 234, 250, .55);   /* on-dark/faint — placeholders, separators           */
  --hib-primary-on-dark: #A9C6FF;                  /* the primary accent translated for dark surfaces    */
  --hib-border-on-dark: rgba(255, 255, 255, .12);  /* hairline on dark surfaces                          */
  --hib-border-accent:  rgba(29, 84, 196, .12);    /* royal-tinted hairline on light surfaces            */

  /* — Domain shorthand (default = plumbing) — navy hero, royal accents — */
  --hib-domain-hero:   #081E3A;
  --hib-domain-btn:    #15398C;
  --hib-domain-accent: #1B4AB3;

  /* — Signature material & accent (redesign programme Revised 3 · §C/§D1) —
     The "חותם אישי" direction adds two things to the committed navy+azure system,
     both deliberately restrained: a warm PAPER material for human evidence
     (testimony / the founder's word carried on paper; ≤15%, never body/UI cards)
     and a single AMBER signature accent (≤5%) reserved for the marks that read as
     Amir's own hand — the seal's core, review stars, a quote apostrophe, a
     signature line. Azure stays the primary UI accent; amber never competes with
     it. The graphic tone is `--hib-signature`; text sits in `--hib-signature-ink`
     so a word set in the accent still clears AA (8A5410 ≈ 6.3:1 on white / paper). */
  --hib-signature:      #B8741A;   /* graphic amber — glyphs, stars, rules   */
  --hib-signature-ink:  #8A5410;   /* text amber — clears AA on white/paper   */
  --hib-signature-soft: #F6ECDC;   /* faint amber wash for a signature chip   */
  --hib-paper:          #FAF7F0;   /* testimony/evidence paper surface        */
  --hib-paper-line:     #E9E2D4;   /* the paper's ruled hairline              */
  --hib-paper-ink:      #33302A;   /* body ink that reads warm on paper       */

  /* — Spacing (4px base) — */
	--hib-space-1: 4px;
	--hib-space-2: 8px;
	--hib-space-3: 12px;
	--hib-space-4: 16px;
	--hib-space-5: 20px;
	--hib-space-6: 24px;
	--hib-space-7: 32px;
	--hib-space-8: 40px;
	--hib-space-9: 48px;
	--hib-space-10: 56px;
	--hib-space-11: 64px;
	--hib-space-12: 80px;
	--hib-space-13: 96px;
	--hib-space-14: 120px;

  /* — Radius —
     Seven semantic steps, one meaning each. Each step is at least a quarter
     larger than the one below it, so every step is legible as a distinct shape.
     Nesting rule: an inner element's radius = outer radius − outer padding,
     floored at the next token down (hero search shell 12px with 8px padding →
     inner submit 5px). `pill` is reserved for genuine badges, status markers,
     toggleable/dismissible filter tokens and square-to-circle controls — never
     for an ordinary action or a wide static strip. */
	--hib-radius-tiny: 3px;                     /* hairline details: rules, progress bars, indicators */
	--hib-radius-xs: 5px;                       /* controls: every button, nav/menu link, pagination  */
	--hib-radius-icon: 8px;                     /* icon tiles and square micro-media, 32–72px         */
	--hib-radius-s: 8px;                        /* fields and small panels: inputs, selects, alerts   */
	--hib-radius-card: var(--hib-radius-m);     /* DEPRECATED alias → -m; kept so consumers still resolve */
	--hib-radius-m: 10px;                       /* cards and panels — the one card radius             */
	--hib-radius-section: var(--hib-radius-xl); /* DEPRECATED alias → -xl                             */
	--hib-radius-l: 12px;                       /* large surfaces: search shells, media frames, panels */
	--hib-radius-xl: 14px;                      /* section shells: full-bleed CTA bands, hero media   */
	--hib-radius-pill: 999px;                   /* genuine pills only — see the note above            */

  /* — Elevation —
     Five resting levels, two tints, and that is the whole system:
       e0  border only — a bounded surface with no lift (cat cards, dividers)
       e1  --hib-shadow-card  resting cards and panels
       e2  --hib-shadow-m     raised panels: sidebar cards, feature panels, steppers
       e3  --hib-shadow-l     floating layers: dropdowns, the directory search shell
       e4  --hib-shadow-band  hero/CTA bands, hero portraits, lightbox — the ceiling
     Hover lift is --hib-shadow-card-hover, shared by every card that lifts.
     Tints: neutral ink rgba(16,24,40,·) on light surfaces; navy rgba(11,37,70,·)
     for dark-context bands (e4). Royal rgba(27,74,179,·) is reserved for the
     primary button and the focus ring; pure black only inside the button-invert
     recipe on dark bands. A new shadow must join a level, not invent a sixth. */
	--hib-shadow-s: 0 4px 12px rgba(16,24,40,.06);       /* subtle hover lift for micro-surfaces */
	--hib-shadow-m: 0 8px 24px rgba(16,24,40,.08);
	--hib-shadow-l: 0 16px 40px rgba(16,24,40,.10);
	--hib-shadow-focus: 0 0 0 3px rgba(29,84,196,.22);
	--hib-shadow-btn: 0 10px 24px -10px rgba(27, 74, 179, .7), inset 0 1px 0 rgba(255, 255, 255, .18);
	--hib-shadow-btn-hover: 0 16px 32px -12px rgba(27, 74, 179, .85), inset 0 1px 0 rgba(255, 255, 255, .2);
	--hib-shadow-card:             0 1px 2px rgba(16,24,40,0.04);
	--hib-shadow-card-hover:       0 20px 44px -20px rgba(16,24,40,0.22), 0 4px 12px -4px rgba(16,24,40,0.10);
	--hib-shadow-band:             0 24px 56px -24px rgba(11, 37, 70, .35);
	--hib-shadow-btn-invert:       0 4px 16px rgba(0,0,0,.18), 0 1px 4px rgba(0,0,0,.10);
	--hib-shadow-btn-invert-hover: 0 8px 28px rgba(0,0,0,.22), 0 2px 6px rgba(0,0,0,.10);

  /* — Typography — */
	--hib-font-body:           "Ploni", "Almoni", "Arial Hebrew", Arial, sans-serif;
	--hib-font-ui:             var(--hib-font-body);     /* alias — same Ploni stack */
	--hib-font-display:        "Danidin", "BarLev", "Arial Hebrew Bold", Arial, sans-serif; /* signature display (amirsaban) — now governs all headings */
	--hib-font-heading:        var(--hib-font-display);  /* alias — same Danidin stack */
	--hib-font-hero:           "Danidin", "BarLev", "Arial Hebrew Bold", Arial, sans-serif; /* signature display (amirsaban) */
	--hib-font-mono:           "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, "Ploni", "Almoni", "Arial Hebrew", monospace; /* editorial NUMERALS only; Hebrew fallback so a stray Hebrew char degrades to Ploni, never spaced system-mono */
	--hib-font-display-design: "Shabtai", "Times New Roman", Georgia, serif;
	--hib-font:                var(--hib-font-body);

	/* Latin tracking — the ONLY negative letter-spacing on the site. The document is
	   lang="he-IL", so this token is reached EXCLUSIVELY through an explicit .hib-latin
	   class on Latin runs (lockup / watermark); no shared selector applies it, so Hebrew
	   always renders with letter-spacing: normal (R1 · plan C / D1). */
	--hib-ls-latin:            -0.02em;

  /* — Scale — */
	--hib-display-xl-size:     clamp(3.25rem, 8.4vw, 6.5rem);
	--hib-display-xl-lh:       0.9;
	--hib-display-xl-tracking: normal;

	--hib-display-l-size:      clamp(2.75rem, 6.6vw, 4.85rem);
	--hib-display-l-lh:        0.94;
	--hib-display-l-tracking:  normal;

	--hib-h1-size:             clamp(2.6rem, 5.5vw, 4.5rem);  /* D2 responsive scale */
	--hib-h1-lh:               1.05;                          /* D2 */
	--hib-h1-tracking:        normal;                        /* D2 · Hebrew ⇒ ls normal */

	--hib-h2-size:             clamp(1.9rem, 3vw, 2.6rem);    /* D2 responsive scale */
	--hib-h2-lh:               1.08;
	--hib-h2-tracking:        normal;                        /* D2 · Hebrew ⇒ ls normal */

	/* BAND TITLE rung — 22.4 → 32.8px. The title of a band or a panel: the CTA
	   and closer bands, the contact form column, the profile's specialty and
	   area panels, the stepper and related-topic titles, plus three derived
	   variants (×0.9, ×0.68, ×1.18). It carries a SIZE, not a voice — the
	   Danidin members and the Ploni members both sit on this rung and state
	   their own family. It was `--hib-h3-size`, which named an HTML level the
	   token had stopped describing the moment the h3 role moved to the block
	   title; a name that points at a tag invites the next author to bind a tag
	   to it. */
	--hib-band-title-size:     clamp(1.38rem, 2.4vw, 2.05rem);
	--hib-band-title-lh:       1.14;
	--hib-band-title-tracking: normal;

	--hib-policy-hero-title-max: min(680px, 92vw);

  /* Shabtai reduced scale */
	--hib-design-display-xl-size: clamp(2.55rem, 5.35vw, 3.65rem);
	--hib-design-display-xl-lh: 1.16;
	--hib-design-display-xl-tracking: normal;

	--hib-design-display-l-size: clamp(2.12rem, 4.3vw, 2.95rem);
	--hib-design-display-l-lh: 1.18;
	--hib-design-display-l-tracking: normal;

	--hib-design-h2-size: clamp(1.64rem, 2.95vw, 2.25rem);
	--hib-design-h2-lh: 1.20;
	--hib-design-h2-tracking: normal;

  /* Domain hero title — canonical source of truth for all domain hero pages */
  --hib-domain-hero-title-size:     var(--hib-display-l-size);
  --hib-domain-hero-title-lh:       1.12;
  --hib-domain-hero-title-tracking: normal;

  /* — BarLev heading weights — */
	--hib-heading-weight-display:  700;		/* display: hero-level, maximum authority (700) */
	--hib-heading-weight-section:  700;		/* section: structural page-section openers (700) */
	--hib-heading-weight-document: 500; 	/* document: within-content dividers, profile sections (500) */

	--hib-h4-size:				1.1875rem;

	/* — 3A heading roles — every interior editorial page opens at one title
	   scale, and every card in the live family titles at one size/leading.
	   The home hero (mhero) and the directory finder hero keep their own
	   scales on purpose: one is the brand statement, the other a dense
	   utility surface — neither is an "interior editorial page". */
	--hib-page-title-size: clamp(1.9rem, 3.2vw, 2.9rem);
	--hib-page-title-lh:   1.08;
	--hib-card-title-size: var(--hib-h4-size);   /* 19px — the one card-title size */
	--hib-card-title-lh:   1.2;

	/* Block title (H3 role) — the one signature for a heading that opens a block
	   INSIDE a section: the junction paths, the how-it-works steps, the guides
	   body headings, the category collection and siblings headings. Before this
	   token those five rendered at 26/22.4/21.6/20.8px across three different
	   leadings (1.10/1.15/1.20/1.30) because each component authored its own —
	   the display face's declared weight range is inert (see the Danidin
	   @font-face note), so every new level of emphasis had arrived as a new size.
	   One rung between the band title and the card title, and nothing between. */
	--hib-block-title-size: clamp(1.3125rem, 1.05rem + 0.9vw, 1.625rem); /* 21 → 26px */
	--hib-block-title-lh:   1.2;

	/* Feature/editorial section title (Variant B): the loud voice for a few
	   genuinely dominant editorial headings — ~20% above the standard section
	   role at desktop, 52px ceiling on wide screens, near-solid leading.
	   Subordinate to page/hero titles; never for ordinary sections, legal,
	   cards, FAQ, forms or archives. Applied by the refinement layer in
	   hib-extra — a new consumer must justify "dominant editorial" first. */
	--hib-title-feature-size: clamp(2.1rem, 3.5vw, 3.25rem);
	--hib-title-feature-lh:   .96;
	--hib-h4-lh:				1.34;

	--hib-body-l-size:			1.25rem;
	--hib-body-l-lh:			1.62;

	--hib-body-m-size:			1rem;
	--hib-body-m-lh:			1.65;

	--hib-body-s-size:			0.9375rem;  /* 15px — small reading text (3B: was 14, the .95/.93/.92rem band folds here) */
	--hib-body-lede-size:		1.0625rem;  /* 17px — section/interior ledes and reading prose (3B) */
	--hib-title-compact-size:	1.0625rem;  /* 17px — compact rail/list component titles (dbox, topic index,
	                                           methodology steps): same px as the lede, deliberately its own
	                                           role token so titles never depend on a body token (audit C1/D6) */
	--hib-body-s-lh:			1.62;

  /* Extended body tiers — each formalizes an existing hardcoded value */
  --hib-body-reading-size: 1rem;        /* 16px — SEO/editorial long-form; same px as body-m, dedicated lh */
  --hib-body-reading-lh:   1.75;        /* more open lh for reading comfort in long-form text */

  /* LONG-FORM leading — the one open cadence for text a reader settles into:
     profile bios, guide articles, legal documents. It is deliberately looser
     than interface body (1.65) and that gap is what makes a legal page feel
     calm next to a card grid. Named for the role rather than for the first
     component that needed it; --hib-body-profile-lh chains here so the two can
     never drift apart. */
  --hib-lh-longform:       1.85;

  --hib-body-profile-size: 1.0625rem;   /* 17px — profile bios, rich editorial descriptions, video guides */
  --hib-body-profile-lh:   var(--hib-lh-longform);

  --hib-body-policy-size:  0.9375rem;   /* 15px — dense legal/policy content */
  --hib-body-policy-lh:    1.80;        /* generous lh compensates for smaller size in dense legal content */

	--hib-label-m-size:			0.875rem;   /* 14px — D2 UI label (medium weight) */
	--hib-label-lh:				1.4;
	--hib-label-s-size:			0.8125rem;  /* 13px — small UI badges, chips, micro-tags */

	--hib-caption-size:			var(--hib-label-s-size);  /* 13px — caption chains to the one 13px carrier; distinction is weight 400 + muted color */
	--hib-caption-lh:			1.6;        /* more open than label-s (1.5) for supporting/descriptive text */
	
	--hib-h5-size:				1.0625rem;
	--hib-h5-lh:				1.47;
	
	--hib-h6-size:				0.9375rem;
	--hib-h6-lh:				1.5;
	
	--hib-micro-label-size:		0.75rem;    /* 12px — was 11px; raised to the label floor (QA-24) */
	--hib-micro-label-lh:		1;

	/* — Accessibility floors (P3b1 foundation) —
	   --hib-label-min: smallest permitted rendered label/micro-text size (12px at
	   the default root size, and it scales with the user's browser text size
	   because it is expressed in rem). No label may render below this.
	   --hib-tap-min: minimum touch-target extent for standalone controls. */
	--hib-label-min:			0.75rem;    /* 12px */
	--hib-tap-min:				44px;
	/* --hib-input-size: the floor for anything a reader types into. 16px is not
	   an aesthetic choice: mobile WebKit zooms the viewport on focus for any
	   form control under 16px, which throws the page sideways mid-entry and
	   leaves it there. The contact inputs measured 15px beside a 16px textarea,
	   so one form zoomed on some fields and not others. Every control uses this;
	   a control that wants to look smaller changes its padding, not its type. */
	--hib-input-size:			1rem;       /* 16px — iOS focus-zoom floor */
	
	
	
	
  /* — Rhythm — */
	--hib-hero-home-pt:        clamp(64px, 10vw, 120px);
	--hib-hero-home-pb:        clamp(48px, 7vw, 96px);
	--hib-hero-domain-pt:      clamp(48px, 7vw, 96px);
	--hib-hero-domain-pb:      clamp(40px, 5.5vw, 72px);
	--hib-section-py:          clamp(56px, 7vw, 96px);
	--hib-section-compact-py:  clamp(40px, 5vw, 64px);
	--hib-heading-mb-l:        clamp(20px, 2.9vw, 36px);
	--hib-heading-mb-m:        clamp(14px, 1.95vw, 24px);
	--hib-section-header-mb:   clamp(44px, 5.8vw, 68px);
	--hib-card-body-p:         clamp(16px, 2.5vw, 24px);

  /* — Motion — */
	--hib-ease: cubic-bezier(0.2, 0, 0, 1);
	--hib-duration-fast: 120ms;
	--hib-duration-base: 180ms;
	--hib-duration-slow: 240ms;

  /* — Component: pro card — */
  --hib-pro-card-media-h: 160px;

  /* — Layout — */
	--hib-container-narrow: 720px;
	--hib-container-default: 1200px;
	--hib-container-wide: 1280px;
	--hib-page-padding: 24px;
	/* Header-only inner width: the shell reads 20px wider per side than the 1200px
	   content container — a deliberate optical frame for the brand group + CTA
	   (approved header composition). No other surface may read this token. */
	--hib-header-container-max: 1240px;
	--hib-header-h: 72px;

  /* — Editorial ink palette — */
  /* ink / ink-muted: deprecated aliases → resolve to canonical semantic tokens */
  --hib-ink:               var(--hib-text);
  --hib-ink-soft:          var(--hib-text-strong); /* deprecated alias */
  --hib-ink-muted:         var(--hib-text-muted);

  /* — Editorial surfaces — */
  --hib-surface-editorial:   #FAFAF7;
  --hib-surface-editorial-2: #F2F3EE;
  --hib-surface-cream:       #FAFAF5;
  --hib-surface-cream-2:     #F5F3EC;
  --hib-hairline:            rgba(29, 84, 196, 0.12);

  /* — Premium easing — */
  --hib-ease-out-soft: cubic-bezier(0.16, 1, 0.3, 1);
}

/* — Domain Theme + Rhythm Overrides — */
[data-domain="plumbing"] {
  /* color tokens omitted — :root defaults ARE the plumbing values */
  /* Tracking removed for Hebrew (R1): every *-tracking is normal; the hero
     display line-heights are preserved to keep the Amir hero composition intact. */
  --hib-display-xl-tracking:normal;
  --hib-display-xl-lh:       1.06;
  --hib-h1-tracking:        normal;
  --hib-h1-lh:               1.05;
  --hib-domain-hero-title-lh:       1.10;
  --hib-domain-hero-title-tracking:normal;
}

[data-domain="renovation"] {
  --hib-primary: #245E66;
  --hib-primary-hover: #1D4F56;
  --hib-accent: #5A97A0;
  --hib-accent-hover: #4A7F87;
  --hib-domain-soft: #EAF5F6;
  --hib-domain-soft-hover: #DDECEE;
  --hib-domain-panel-soft: #EEF8F9;
  --hib-domain-surface-soft: #ECF7F8;
  --hib-domain-hero-glow: rgba(90,151,160,.07);
  --hib-domain-line: #D5E5E7;
  --hib-domain-tag-soft: #E3EFF1;
  --hib-domain-hero:   #071412;
  --hib-domain-btn:    #0B5C52;
  --hib-domain-accent: #F07A28;

  --hib-display-xl-tracking: normal;
  --hib-h1-tracking:         normal;
  --hib-h1-lh:               1.18;
  --hib-domain-hero-title-lh:       1.14;
  --hib-domain-hero-title-tracking: normal;
}

[data-domain="design"] {
  --hib-primary: #292826;
  --hib-primary-hover: #1F1E1C;
  --hib-accent: #7A746E;
  --hib-accent-hover: #66615B;
  --hib-domain-soft: #F2F1EF;
  --hib-domain-soft-hover: #E8E5E1;
  --hib-domain-panel-soft: #F4F2F0;
  --hib-domain-surface-soft: #F3F1EE;
  --hib-domain-hero-glow: rgba(122,116,110,.04);
  --hib-domain-line: #E0DDD8;
  --hib-domain-tag-soft: #ECE9E5;
  --hib-domain-hero:   #1A1916;
  --hib-domain-btn:    #EDE8E0;
  --hib-domain-accent: #9B8B78;

  --hib-display-xl-tracking:       normal;
  --hib-display-xl-lh:             1.18;
  --hib-display-l-tracking:        normal;
  --hib-display-l-lh:              1.22;
  --hib-h1-lh:                     1.26;
  --hib-heading-mb-l:              clamp(20px, 3vw, 32px);
  --hib-heading-mb-m:              clamp(14px, 2vw, 24px);
  --hib-section-header-mb:         clamp(44px, 6vw, 72px);
  --hib-display-heading-max-width: 540px;
  --hib-domain-hero-title-size:     var(--hib-design-display-xl-size);
  --hib-domain-hero-title-lh:       var(--hib-design-display-xl-lh);
  --hib-domain-hero-title-tracking: normal;
}

/* ============================================================
   2. RESET & BASE
   ============================================================ */
*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  /* 100%, not a fixed 16px: an absolute root size silently discards the reader's
     browser text-size preference, and every rem token below is derived from it.
     Identical rendering at the default setting; scales when the reader asks. */
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  font-family: var(--hib-font);
  color: var(--hib-text);
  background: var(--hib-bg);
  direction: rtl;
  text-align: right;
  font-size: 1.0625rem;   /* D2 body — 17px reading size (component tokens set their own) */
  line-height: 1.65;      /* D2 */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  /* Contain decorative full-bleed layers without turning the document into a
     scroll container. `overflow-x: hidden` forces the other axis to `auto`, so the
     element can become a scroller and clip/detach `position: sticky` descendants;
     `clip` suppresses the same horizontal overflow while leaving overflow-y
     `visible`, so sticky regions (results filters, profile aside, guide panel)
     stay anchored to the viewport. `hidden` stays first as the legacy fallback. */
  overflow-x: hidden;
  overflow-x: clip;
}

img, svg {
  max-width: 100%;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

button, input, select, textarea {
  font-family: inherit;
  font-size: inherit;
  border: none;
  outline: none;
  background: none;
}

button {
  cursor: pointer;
}

ul, ol {
  list-style: none;
}

::selection {
  background: var(--hib-accent);
  color: white;
}

/* Focus visible */
:focus-visible {
  outline: 2px solid var(--hib-accent);
  outline-offset: 2px;
}

/* Skip-to-content link */
.hib-skip-link {
  position: absolute;
  top: -100%;
  inset-inline-start: 0;
  padding: 0.5rem 1.25rem;
  background: var(--hib-primary);
  color: #fff;
  font-family: var(--hib-font-body);
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  border-radius: 0 0 var(--hib-radius-s) var(--hib-radius-s);
  z-index: 10000;
  transition: top 0.15s;
}
.hib-skip-link:focus {
  top: 0;
}

/* ============================================================
   3. TYPOGRAPHY
   ============================================================ */
.hib-display-xl {
  font-family: var(--hib-font-display);
  font-size: var(--hib-display-xl-size);
  line-height: var(--hib-display-xl-lh);
  font-weight: var(--hib-heading-weight-section);
  letter-spacing: normal;
}

.hib-display-l {
  font-family: var(--hib-font-display);
  font-size: var(--hib-display-l-size);
  line-height: var(--hib-display-l-lh);
  font-weight: var(--hib-heading-weight-section);
  letter-spacing: normal;
}

h1, .hib-h1 {
  font-family: var(--hib-font-display);
  font-size: var(--hib-h1-size);
  line-height: var(--hib-h1-lh);
  font-weight: var(--hib-heading-weight-section);
  letter-spacing: normal;
}

/* `.page-title` is the parent theme's archive/page heading. Every HIB surface
   names its own H1 (`__title`, `__name`), so this class only ever appears where
   a route falls through to the GeneratePress fallback — today the `areas`
   specialty archive. Left bare it inherited `--hib-h1-size` and opened at 72px,
   the loudest H1 on the site, on the one page nobody designed. It joins the
   interior page-title role instead. (The fallback itself — an untranslated
   "areas:" prefix over raw archive markup — is a missing template, not a
   typography defect; it is reported, not patched here.) */
h1.page-title {
  font-size: var(--hib-page-title-size);
  line-height: var(--hib-page-title-lh);
  font-weight: 900;
}

h2, .hib-h2 {
  font-family: var(--hib-font-display);
  font-size: var(--hib-h2-size);
  line-height: var(--hib-h2-lh);
  font-weight: var(--hib-heading-weight-section);
  letter-spacing: normal;
}

/* The default H3 is the BLOCK-TITLE role. It used to be Ploni at
   clamp(1.38rem, 2.4vw, 2.05rem)/600 — a signature no live H3 on the site
   actually used, because every one of them overrode it. That made the default a
   trap: an H3 added without a component class rendered in the body face at a
   size the system had abandoned. It now lands where an unclassified block
   heading belongs, and the surfaces that genuinely want the reading voice
   (legal clauses, guide prose) say so themselves. */
h3, .hib-h3 {
  font-family: var(--hib-font-display);
  font-size: var(--hib-block-title-size);
  line-height: var(--hib-block-title-lh);
  font-weight: 900;
  letter-spacing: normal;
}

h4, .hib-h4 {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-h4-size);
  line-height: var(--hib-h4-lh);
  font-weight: 600;
}

h5, .hib-h5 {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-h5-size);
  line-height: var(--hib-h5-lh);
  font-weight: 600;
}

h6, .hib-h6 {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-h6-size);
  line-height: var(--hib-h6-lh);
  font-weight: 600;
}

.hib-card-title {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-body-m-size);
  line-height: 1.45;
  font-weight: 600;
}

.hib-body-l {
  font-family: var(--hib-font-body);
  font-size: var(--hib-body-l-size);
  line-height: var(--hib-body-l-lh);
  font-weight: 400;
}

.hib-body-m {
  font-family: var(--hib-font-body);
  font-size: var(--hib-body-m-size);
  line-height: var(--hib-body-m-lh);
  font-weight: 400;
}

.hib-body-s {
  font-family: var(--hib-font-body);
  font-size: var(--hib-body-s-size);
  line-height: var(--hib-body-s-lh);
  font-weight: 400;
}

.hib-label-l {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-label-m-size);
  line-height: var(--hib-label-lh);
  font-weight: 600;
}

.hib-label-m {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-label-m-size);
  line-height: var(--hib-label-lh);
  font-weight: 500;
}

.hib-label-s {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-label-s-size);
  line-height: 1.5;
  font-weight: 500;
}

.hib-caption {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-caption-size);
  line-height: var(--hib-caption-lh);
  font-weight: 400;
  color: var(--hib-text-muted);
}

.hib-text-secondary { color: var(--hib-text-secondary); }
.hib-text-muted { color: var(--hib-text-muted); }

/* ============================================================
   4. LAYOUT
   ============================================================ */
.hib-container {
  width: 100%;
  max-width: var(--hib-container-default);
  margin: 0 auto;
  padding: 0 var(--hib-page-padding);
}

.hib-container--narrow {
  max-width: var(--hib-container-narrow);
}

.hib-container--wide {
  max-width: var(--hib-container-wide);
}

.hib-section {
  padding: var(--hib-section-py) 0;
}

.hib-section--compact {
  padding: var(--hib-section-compact-py) 0;
}

@media (max-width: 767px) {
  :root {
    --hib-page-padding: 20px;
  }
  /* Fluid tokens already handle mobile reduction — no hard overrides needed */
}

/* ============================================================
   5. BUTTONS
   ============================================================ */
.hib-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--hib-space-2);
  font-family: var(--hib-font-ui);
  font-weight: 500;
  border-radius: var(--hib-radius-xs);
  transition:
    transform var(--hib-duration-base) var(--hib-ease),
    background var(--hib-duration-base) var(--hib-ease),
    box-shadow var(--hib-duration-base) var(--hib-ease),
    border-color var(--hib-duration-base) var(--hib-ease),
    color var(--hib-duration-base) var(--hib-ease);
  /* A button is a box around a sentence. `white-space: nowrap` made that
     sentence set the box's *minimum* width, so at 200% text zoom a long Hebrew
     label pushed the button — and the page with it — wider than the screen:
     the review form's submit measured 339.6px inside a 236px column and was
     the proven source of the profile's 27px horizontal overflow (P3d3, §12).

     `normal` does not force wrapping. An inline-flex button is still sized by
     its max-content, so every label that fits stays on exactly one line and
     nothing moves at normal text size; it only permits the wrap that `nowrap`
     used to resolve as page overflow. Paired with `max-width: 100%`, so a
     button can never be wider than the thing that contains it.

     The other half of the fix is in `hib-extra.css` (`Button system`), which
     releases the fixed `height` below into a floor of the same value — a
     wrapped label grows the box instead of being clipped by it. It has to live
     there, not here: `min-block-size` and `min-height` are one property, that
     stylesheet loads second, and a floor stated here loses the tie. */
  white-space: normal;
  max-width: 100%;
  text-align: center;
  cursor: pointer;
  position: relative;
}

.hib-btn--s {
  height: 44px;
  padding: 0 var(--hib-space-4);
  font-size: var(--hib-label-m-size);    /* D2 button — 14px (min tap height preserved) */
  letter-spacing: normal;
}

.hib-btn--m {
  height: 44px;
  padding: 0 var(--hib-space-5);
  font-size: var(--hib-body-s-size);
  letter-spacing: normal;
}

.hib-btn--l {
  height: 56px;
  padding: 0 var(--hib-space-8);
  font-size: 1rem;    /* D2 button — 16px cap (min tap height preserved) */
  font-weight: 600;
  letter-spacing: normal;
}

/* Primary */
.hib-btn--primary {
  background: var(--hib-primary);
  color: white;
  box-shadow: var(--hib-shadow-btn);
}
.hib-btn--primary:hover {
  background: var(--hib-primary-hover);
  box-shadow: var(--hib-shadow-btn-hover);
  transform: translateY(-1px);
}
.hib-btn--primary:active {
  transform: scale(0.97);
  box-shadow: 0 2px 6px rgba(0,0,0,.12);
}

/* Secondary */
.hib-btn--secondary {
  background: var(--hib-surface);
  color: var(--hib-primary);
  border: 1px solid var(--hib-border);
}
.hib-btn--secondary:hover {
  border-color: var(--hib-primary);
  background: var(--hib-domain-soft);
}
.hib-btn--secondary:active { transform: scale(0.97); }

/* Ghost */
.hib-btn--ghost {
  background: transparent;
  color: var(--hib-primary);
}
.hib-btn--ghost:hover {
  background: var(--hib-domain-soft);
}
.hib-btn--ghost:active { transform: scale(0.97); }

/* Accent */
.hib-btn--accent {
  background: var(--hib-accent);
  color: white;
}
.hib-btn--accent:hover {
  background: var(--hib-accent-hover);
  transform: translateY(-1px);
}
.hib-btn--accent:active { transform: scale(0.97); }

/* Full width mobile */
@media (max-width: 767px) {
  .hib-btn--mobile-full {
    width: 100%;
  }
}

/* ============================================================
   6. FORM FIELDS
   ============================================================ */
.hib-field {
  display: flex;
  flex-direction: column;
  gap: var(--hib-space-2);
}

/* FORM ROLES — one set across the hero search, the directory filters, the
   contact form, the add-professional flow and the review form. The five were
   built at five times and each authored its own label: 12/700, 13/500, 14/700
   and a bare 17/400 all named the same kind of thing. Label is the one rung. */
.hib-field__label {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-label-m-size);
  line-height: var(--hib-label-lh);
  font-weight: 500;
  color: var(--hib-text);
  letter-spacing: normal;
  margin-bottom: 2px;
}

.hib-field__input {
  height: 50px;
  padding: 0 var(--hib-space-4);
  border: 1px solid var(--hib-border);
  border-radius: var(--hib-radius-s);
  background: var(--hib-surface);
  color: var(--hib-text);
  font-family: var(--hib-font-ui);
  /* Typed text sits at the input floor. At 15px mobile WebKit zoomed the
     viewport the moment the field took focus — and this form's own textarea was
     already 16px, so a person filling it in got thrown sideways on some fields
     and not others. */
  font-size: var(--hib-input-size);
  /* An <input> carries an intrinsic width from its default `size` attribute, so
     it refuses to shrink below roughly 20 characters of its OWN font size. Once
     the type moved to the 16px floor, that intrinsic minimum outgrew the contact
     form's column at 200% text zoom and pushed the page 10px sideways — the one
     responsive floor this project treats as non-negotiable. Letting the box be
     sized by its column instead of by its content is the fix, and it is the same
     move the buttons needed when `white-space: nowrap` did this to them. */
  inline-size: 100%;
  min-inline-size: 0;
  box-sizing: border-box;
  transition: border-color var(--hib-duration-base) var(--hib-ease),
              box-shadow var(--hib-duration-base) var(--hib-ease);
}

.hib-field__input::placeholder {
  color: var(--hib-text-muted);
}

.hib-field__input:hover {
  border-color: var(--hib-border-strong);
}

.hib-field__input:focus {
  border-color: var(--hib-primary);
  box-shadow: var(--hib-shadow-focus);
}

.hib-field__input--select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235F6368' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: 16px center;
  padding-left: 40px;
}

/* ============================================================
   7. CARDS
   ============================================================ */
.hib-card {
  background: var(--hib-surface);
  border-radius: var(--hib-radius-m);
  border: 1px solid var(--hib-rule-soft);
  overflow: hidden;
  transition: box-shadow var(--hib-duration-base) var(--hib-ease),
              transform var(--hib-duration-base) var(--hib-ease);
}

.hib-card:hover {
  box-shadow: var(--hib-shadow-m);
  transform: translateY(-2px);
}

.hib-card__body {
  padding: var(--hib-card-body-p);
}

/* Category Card */
.hib-category-card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  background: linear-gradient(180deg, #FFFFFF 0%, #FDFDFB 100%);
  border-radius: var(--hib-radius-m);
  border: 1px solid var(--hib-hairline, var(--hib-border-accent));
  overflow: hidden;
  transition:
    transform 360ms var(--hib-ease-out-soft, var(--hib-ease)),
    box-shadow 360ms var(--hib-ease-out-soft, var(--hib-ease)),
    border-color 360ms var(--hib-ease);
}
.hib-category-card:hover {
  transform: translateY(-3px);
  border-color: rgba(29, 84, 196,0.22);
  box-shadow: var(--hib-shadow-card-hover);
}

.hib-category-card__accent {
  height: 2px;
  background: linear-gradient(90deg, var(--hib-primary) 0%, var(--hib-domain-accent, var(--hib-primary)) 100%);
  opacity: 0.55;
  transform-origin: right;
  transition: opacity 320ms var(--hib-ease), transform 420ms var(--hib-ease-out-soft, var(--hib-ease));
}
.hib-category-card:hover .hib-category-card__accent {
  opacity: 1;
  transform: scaleX(1);
}

.hib-category-card__icon {
  width: 48px;
  height: 48px;
  border-radius: var(--hib-radius-s);
  background:
    linear-gradient(135deg, rgba(29, 84, 196,0.08) 0%, rgba(46,134,193,0.06) 100%);
  color: var(--hib-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--hib-space-4);
  border: 1px solid var(--hib-border-accent);
  transition: background 300ms var(--hib-ease);
}
.hib-category-card:hover .hib-category-card__icon {
  background:
    linear-gradient(135deg, rgba(29, 84, 196,0.14) 0%, rgba(46,134,193,0.10) 100%);
}

.hib-category-card__icon svg {
  width: 24px;
  height: 24px;
}

.hib-category-card__title {
  font-family: var(--hib-font-ui);
  font-size: 1.125rem;
  font-weight: 600;
  letter-spacing: normal;
  line-height: 1.30;
  color: var(--hib-ink, #14171A);
  margin-bottom: var(--hib-space-2);
}

.hib-category-card__desc {
  font-size: var(--hib-body-s-size);
  line-height: 1.55;
  color: var(--hib-text-strong);
  margin-bottom: var(--hib-space-3);
}

.hib-category-card__specs {
  display: flex;
  flex-direction: column;
  gap: var(--hib-space-2);
  margin-top: auto;
  margin-bottom: var(--hib-space-6);
  padding-bottom: var(--hib-space-3);
}

.hib-category-card__spec {
  display: flex;
  align-items: center;
  gap: var(--hib-space-2);
  font-size: var(--hib-micro-label-size);
  letter-spacing: normal;
  text-transform: uppercase;
  color: var(--hib-text-muted);
  font-weight: 600;
}

.hib-category-card__spec::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--hib-accent);
  flex-shrink: 0;
}

.hib-category-card .hib-btn {
  margin-top: auto;
}

/* ============================================================
   8. BADGES & CHIPS
   ============================================================ */
.hib-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: var(--hib-radius-pill);
  font-size: var(--hib-label-s-size);
  font-weight: 500;
  line-height: 1;
}

.hib-badge--domain {
  background: var(--hib-domain-soft);
  color: var(--hib-primary);
}

.hib-badge--doc {
  background: var(--hib-domain-soft);
  color: var(--hib-primary);
}

.hib-badge--distance {
  background: var(--hib-neutral-100);
  color: var(--hib-text-secondary);
}

.hib-badge--new {
  background: var(--hib-info-soft);
  color: var(--hib-info);
}

.hib-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--hib-space-2);
  padding: var(--hib-space-2) var(--hib-space-3);
  border-radius: var(--hib-radius-pill);
  border: 1px solid var(--hib-border);
  font-size: var(--hib-label-m-size);
  font-weight: 500;
  color: var(--hib-text-secondary);
  background: var(--hib-surface);
  cursor: pointer;
  transition:
    background var(--hib-duration-base) var(--hib-ease),
    border-color var(--hib-duration-base) var(--hib-ease),
    color var(--hib-duration-base) var(--hib-ease);
}

.hib-chip:hover,
.hib-chip--active {
  background: var(--hib-domain-soft);
  border-color: var(--hib-primary);
  color: var(--hib-primary);
}

/* ============================================================
   9. SEARCH HERO
   ============================================================ */
.hib-hero {
  position: relative;
  overflow: hidden;
}

.hib-hero--domain {
  padding: var(--hib-hero-domain-pt) 0 var(--hib-hero-domain-pb);
  background: linear-gradient(175deg, var(--hib-domain-soft) 0%, var(--hib-bg) 70%);
}

.hib-hero__pattern {
  position: absolute;
  inset: 0;
  opacity: 0.035;
  background-image:
    radial-gradient(circle at 20% 50%, var(--hib-primary) 1px, transparent 1px),
    radial-gradient(circle at 80% 20%, var(--hib-primary) 1px, transparent 1px);
  background-size: 40px 40px;
  pointer-events: none;
}

.hib-hero__content {
  position: relative;
  z-index: 1;
}

.hib-hero__title {
  font-family: var(--hib-font-display);
  font-size: var(--hib-display-xl-size);
  font-weight: var(--hib-heading-weight-section);
  line-height: var(--hib-display-xl-lh);
  letter-spacing: normal;
  max-width: 640px;
  margin-bottom: var(--hib-heading-mb-l);
}

.hib-hero__subtitle {
  max-width: 540px;
  color: var(--hib-text-secondary);
  font-size: var(--hib-body-l-size);
  line-height: var(--hib-body-l-lh);
  margin-bottom: clamp(var(--hib-space-6), 4.5vw, var(--hib-space-11));
}

/* Search Module */
.hib-search-module {
  background: var(--hib-surface);
  border-radius: var(--hib-radius-l);
  padding: var(--hib-space-6);
  box-shadow: var(--hib-shadow-m);
  border: 1px solid var(--hib-border);
}

.hib-search-module__fields {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr auto;
  gap: var(--hib-space-3);
  align-items: end;
}

.hib-search-module__btn {
  height: 52px;
  min-width: 160px;
}

@media (max-width: 1023px) {
  .hib-search-module__fields {
    grid-template-columns: 1fr 1fr;
  }
  .hib-search-module__btn {
    grid-column: 1 / -1;
  }
}

@media (max-width: 767px) {
  .hib-hero--home {
    padding: var(--hib-space-12) 0 var(--hib-space-9);
  }
  .hib-hero--domain {
    padding: var(--hib-space-9) 0 var(--hib-space-8);
  }
  .hib-search-module__fields {
    grid-template-columns: 1fr;
  }
  .hib-search-module {
    padding: var(--hib-space-5);
  }
}

/* ============================================================
   10. TRUST STRIP
   ============================================================ */
.hib-trust-strip {
  display: flex;
  flex-wrap: wrap;
  gap: var(--hib-space-5) var(--hib-space-7);
  justify-content: center;
  padding: var(--hib-space-5) 0;
  margin-top: var(--hib-space-7);
}

.hib-trust-strip__item {
  display: flex;
  align-items: center;
  gap: var(--hib-space-2);
  font-size: var(--hib-label-m-size);
  color: var(--hib-text-secondary);
  font-weight: 500;
}

.hib-trust-strip__icon {
  width: 20px;
  height: 20px;
  color: var(--hib-accent);
  flex-shrink: 0;
}

/* ============================================================
   11. HOW IT WORKS (STEPS)
   ============================================================ */
.hib-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--hib-space-7);
  counter-reset: step;
}

.hib-step {
  text-align: center;
  counter-increment: step;
  position: relative;
}

.hib-step__number {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--hib-domain-soft);
  color: var(--hib-primary);
  font-family: var(--hib-font-display);
  font-size: 1.25rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto var(--hib-space-5);
  position: relative;
}

.hib-step__title {
  font-family: var(--hib-font-ui);
  font-size: calc(var(--hib-band-title-size) * 0.9);
  font-weight: 600;
  line-height: 1.30;
  letter-spacing: normal;
  margin-bottom: var(--hib-space-2);
}

.hib-step__desc {
  font-size: var(--hib-body-s-size);
  color: var(--hib-text-secondary);
  line-height: 1.6;
  max-width: 280px;
  margin: 0 auto;
}

/* Connector line between steps */
.hib-step:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 28px;
  left: -14%;
  width: 28%;
  height: 2px;
  background: var(--hib-border);
}

@media (max-width: 767px) {
  .hib-steps {
    grid-template-columns: 1fr;
    gap: var(--hib-space-8);
  }
  .hib-step:not(:last-child)::after {
    display: none;
  }
}

/* ============================================================
   12. BENEFITS GRID
   ============================================================ */
.hib-benefits {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--hib-space-6);
}

.hib-benefit {
  padding: var(--hib-space-6);
  border-radius: var(--hib-radius-m);
  background: var(--hib-surface);
  border: 1px solid var(--hib-border);
  transition: box-shadow var(--hib-duration-base) var(--hib-ease);
}

.hib-benefit:hover {
  box-shadow: var(--hib-shadow-s);
}

.hib-benefit__icon {
  width: 44px;
  height: 44px;
  border-radius: var(--hib-radius-s);
  background: var(--hib-domain-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--hib-space-4);
  color: var(--hib-primary);
}

.hib-benefit__title {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-body-s-size);
  font-weight: 600;
  margin-bottom: var(--hib-space-2);
}

.hib-benefit__desc {
  font-size: var(--hib-label-m-size);
  color: var(--hib-text-secondary);
  line-height: 1.6;
}

@media (max-width: 1023px) {
  .hib-benefits {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 767px) {
  .hib-benefits {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   13. PRO CARDS GRID
   ============================================================ */
.hib-pros-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--hib-space-5); /* the one card-grid gap (20) */
}

@media (max-width: 1023px) {
  .hib-pros-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 767px) {
  .hib-pros-grid {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   14. DOMAIN CATEGORIES GRID
   ============================================================ */
.hib-domains-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--hib-space-6);
}

@media (max-width: 767px) {
  .hib-domains-grid {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   15. SECTION HEADERS
   ============================================================ */
.hib-section-header {
  text-align: center;
  margin-bottom: clamp(var(--hib-space-8), 5vw, var(--hib-space-11));
}

.hib-section-header__title {
  font-family: var(--hib-font-display);
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  font-weight: var(--hib-heading-weight-section);
  line-height: 1.12;
  letter-spacing: normal;
  color: var(--hib-text);
  margin-bottom: var(--hib-heading-mb-m);
}

.hib-section-header__desc {
  color: var(--hib-text-strong);
  font-size: 1rem;
  line-height: 1.55;
  max-width: 52ch;
  margin: var(--hib-space-3) auto 0;
}

.hib-section-header--start { text-align: start; }
.hib-section-header--start .hib-section-header__desc { margin-inline: 0; }

/* ============================================================
   16. CTA SECTION
   Surface material (gradient, border, radius, shadow, vignette,
   texture, button) lives on the shared .hib-cta-surface class in
   hib-extra.css; this block owns the guides CTA's composition.
   ============================================================ */
.hib-cta-section {
  text-align: center;
}

.hib-cta-section__title {
  font-family: var(--hib-font-display);
  font-size: var(--hib-display-l-size);
  font-weight: var(--hib-heading-weight-section);
  line-height: var(--hib-display-l-lh);
  letter-spacing: normal;
  margin-bottom: var(--hib-space-4);
}

.hib-cta-section__desc {
  font-family: var(--hib-font-body);
  opacity: 0.88;
  font-size: clamp(1rem, 1.4vw, 1.125rem);
  line-height: 1.6;
  margin-bottom: var(--hib-space-7);
  max-width: 460px;
  margin-left: auto;
  margin-right: auto;
}

/* Actions wrapper: button + optional trust line */
.hib-cta-section__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--hib-space-4);
}

.hib-cta-section__trust {
  font-size: var(--hib-label-s-size);
  color: var(--hib-on-dark-muted);
  letter-spacing: normal;
}
@media (max-width: 767px) {
  .hib-cta-section__title {
    font-size: var(--hib-h2-size);
  }
  .hib-cta-section .hib-btn {
    width: 100%;
  }
}

/* ============================================================
   17. VIDEO CARDS
   ============================================================ */
.hib-video-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--hib-space-6);
}

@media (max-width: 1023px) {
  .hib-video-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 767px) {
  .hib-video-grid {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   18. HEADER (NAV)
   ============================================================ */
.hib-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255,255,255,.82);
  backdrop-filter: saturate(1.4) blur(14px);
  -webkit-backdrop-filter: saturate(1.4) blur(14px);
  /* mockup --hair: navy-tint hairline, softer than the solid blue-gray --hib-border */
  border-bottom: 1px solid rgba(14,44,84,.10);
}

/* Header-only container: 1240px vs the page's 1200px — inherits the base
   .hib-container centring and gutters; only the cap differs. */
.hib-header__container {
  max-width: var(--hib-header-container-max);
}

.hib-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--hib-header-h);
}

/* One brand group: the logo anchors the RTL reading edge and the navigation
   reads as its extension — not as an object floating at the viewport centre.
   The 42px logo↔nav gap must stay visibly larger than the nav's item rhythm. */
.hib-header__brandnav {
  display: flex;
  align-items: center;
  gap: 42px;
  min-width: 0;
}

.hib-header__logo {
  font-family: var(--hib-font-display);
  font-size: 2.8rem;
  font-weight: 700;
  color: var(--hib-primary);
  letter-spacing: normal;
}

.hib-header__logo span {
  color: var(--hib-accent);
}

.hib-header__nav {
  display: flex;
  align-items: center;
  gap: var(--hib-space-1);
}

.hib-header__link {
  padding: var(--hib-space-2) var(--hib-space-3); /* 12px inline → 28px visible item gap, < the 42px brand gap */
  font-size: var(--hib-body-s-size);
  font-weight: 700; /* mockup .nav-links a weight 700 */
  color: var(--hib-text-secondary); /* = mockup --ink-soft #3A4D6B */
  border-radius: var(--hib-radius-xs);
  transition:
    background var(--hib-duration-base) var(--hib-ease),
    color var(--hib-duration-base) var(--hib-ease);
}

/* mockup hover: soft wash + ink (no colour jump); active: azure, no fill */
.hib-header__link:hover {
  color: var(--hib-text);
  background: var(--hib-surface-soft); /* = mockup --bg-2 #ECF2F9 */
}

.hib-header__link--active {
  color: var(--hib-primary);
}

.hib-header__actions {
  display: flex;
  align-items: center;
  gap: var(--hib-space-3);
}

.hib-header__mobile-toggle {
  display: none;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  color: var(--hib-text);
}

@media (max-width: 1023px) {
  .hib-header__nav {
    display: none;
  }
  .hib-header__mobile-toggle {
    display: flex;
  }
  .hib-header__actions .hib-btn {
    display: none;
  }
  /* RTL: hamburger belongs on the right (inline-start).
     Move actions before logo so toggle sits at the natural tap position. */
  .hib-header__actions {
    order: -1;
  }
  .hib-header__brandnav {
    flex: 1;
    justify-content: center; /* the group centres; the logo is its only visible child */
  }
}

/* ============================================================
   19. FOOTER
   ============================================================ */
/* Subtle brand watermark — opt-in via .hib-footer--watermarked */
.hib-footer--watermarked {
  position: relative;
  overflow: hidden;
}
.hib-footer__watermark {
  position: absolute;
  inset-inline-end: clamp(-18px, -1vw, -8px);
  inset-block-end: -0.24em;
  font-family: "BarLev", Arial, sans-serif;
  font-size: clamp(160px, 22vw, 340px);
  font-weight: 800;
  line-height: 1;
  letter-spacing: normal;
  color: transparent;
  -webkit-text-stroke: 1px rgba(210, 115, 79, 0.22);
  pointer-events: none;
  user-select: none;
  z-index: 0;
}
.hib-footer--watermarked .hib-container { position: relative; z-index: 1; }
@media (max-width: 767px) {
  .hib-footer__watermark {
    font-size: clamp(140px, 46vw, 200px);
    -webkit-text-stroke-color: rgba(210, 115, 79, 0.26);
  }
}

.hib-footer__grid {
  display: grid;
  grid-template-columns: 1.5fr repeat(3, 1fr);
  gap: var(--hib-space-8);
  margin-bottom: var(--hib-space-11);
}

.hib-footer__brand {
  font-size: 1.5rem;
  font-weight: 700;
  color: white;
  margin-bottom: var(--hib-space-4);
}

.hib-footer__brand span {
  color: var(--hib-accent);
}

/* This paragraph ended on a one-word line on every route at every viewport —
   the same orphan 54 times over, because its measure and its copy happened to
   land that way and nothing was asking the browser to even the lines out. */
.hib-footer__about {
  font-size: var(--hib-label-m-size);
  line-height: 1.7;
  text-wrap: pretty;
  color: var(--hib-neutral-400);
  max-width: 320px;
}

/* A footer column heading is a label, not a block title — it states its own
   leading so it does not follow the base `h3` rule to the display role. */
.hib-footer__heading {
  font-size: var(--hib-body-s-size);
  font-weight: 600;
  line-height: 1.3;
  color: white;
  margin-bottom: var(--hib-space-5);
}

.hib-footer__links {
  display: flex;
  flex-direction: column;
  gap: var(--hib-space-3);
}

.hib-footer__link {
  font-size: var(--hib-label-m-size);
  color: var(--hib-neutral-400);
  transition: color var(--hib-duration-base) var(--hib-ease);
}

.hib-footer__link:hover {
  color: white;
}

.hib-footer__bottom {
  border-top: 1px solid var(--hib-neutral-700);
  padding-top: var(--hib-space-6);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: var(--hib-label-s-size);
  color: var(--hib-neutral-500);
}

@media (max-width: 1023px) {
  .hib-footer__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 767px) {
  .hib-footer__grid {
    grid-template-columns: 1fr;
    gap: var(--hib-space-8);
  }
  .hib-footer__bottom {
    flex-direction: column;
    gap: var(--hib-space-3);
    text-align: center;
  }
}

/* ============================================================
   20. SPECIALTIES GRID (Domain page)
   ============================================================ */
.hib-specialties-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: var(--hib-space-4);
}

.hib-specialty-chip {
  display: flex;
  align-items: center;
  gap: var(--hib-space-3);
  padding: var(--hib-space-3) var(--hib-space-5);
  background: var(--hib-surface);
  border: 1px solid var(--hib-border);
  border-radius: var(--hib-radius-s);
  font-family: var(--hib-font-ui);
  font-size: var(--hib-body-s-size);
  font-weight: 500;
  color: var(--hib-text);
  cursor: pointer;
  transition:
    background var(--hib-duration-base) var(--hib-ease),
    border-color var(--hib-duration-base) var(--hib-ease),
    color var(--hib-duration-base) var(--hib-ease);
}

.hib-specialty-chip:hover {
  border-color: var(--hib-primary);
  background: var(--hib-domain-soft);
  color: var(--hib-primary);
}

.hib-specialty-chip__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--hib-accent);
  flex-shrink: 0;
}

/* ============================================================
   21. FAQ ACCORDION
   ============================================================ */
.hib-faq-list {
  display: flex;
  flex-direction: column;
  gap: var(--hib-space-3);
  max-width: 800px;
  margin: 0 auto;
}

.hib-faq {
  display: grid;
  grid-template-rows: auto 0fr;
  border: 1px solid var(--hib-border);
  border-radius: var(--hib-radius-s);
  overflow: hidden;
  background: var(--hib-surface);
  transition: border-color 280ms var(--hib-ease),
              box-shadow 280ms var(--hib-ease),
              grid-template-rows 280ms cubic-bezier(0.32, 0.72, 0, 1);
}

.hib-faq:hover {
  border-color: rgba(29, 84, 196,0.22);
  box-shadow: 0 8px 22px -12px rgba(16,24,40,0.14);
}

.hib-faq.is-open {
  grid-template-rows: auto 1fr;
  border-color: rgba(29, 84, 196,0.24);
  box-shadow: 0 10px 28px -14px rgba(16,24,40,0.16);
}

.hib-faq__trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--hib-space-5) var(--hib-space-6);
  font-family: var(--hib-font-ui);
  font-size: var(--hib-body-s-size);
  font-weight: 600;
  line-height: 1.5;
  color: var(--hib-text);
  text-align: right;
  cursor: pointer;
  transition: background var(--hib-duration-base) var(--hib-ease), color 200ms var(--hib-ease);
}

.hib-faq__trigger:hover {
  background: var(--hib-neutral-50);
}

.hib-faq.is-open .hib-faq__trigger { color: var(--hib-primary); }

.hib-faq__icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  transition: transform var(--hib-duration-slow) var(--hib-ease);
  color: var(--hib-text-muted);
}

.hib-faq.is-open .hib-faq__icon {
  transform: rotate(180deg);
}

.hib-faq__body {
  min-height: 0;
  overflow: hidden;
  opacity: 0;
  padding: 0 var(--hib-space-6) var(--hib-space-5);
  font-family: var(--hib-font-body);
  font-size: var(--hib-body-s-size);
  color: var(--hib-text-secondary);
  line-height: 1.72;
  transition: opacity 200ms ease;
}

.hib-faq.is-open .hib-faq__body {
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .hib-faq { transition: border-color 280ms var(--hib-ease), box-shadow 280ms var(--hib-ease); }
  .hib-faq__body { transition: none; }
}

/* ============================================================
   22. RATING STARS
   ============================================================ */
.hib-rating {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}

.hib-rating__star {
  width: 16px;
  height: 16px;
  color: var(--hib-rating-star);
}

.hib-rating__star--empty {
  color: var(--hib-neutral-200);
}

.hib-rating__count {
  margin-right: var(--hib-space-2);
  font-size: var(--hib-label-s-size);
  color: var(--hib-text-muted);
}

/* ============================================================
   23. DOMAIN HERO SPECIFICS
   ============================================================ */
.hib-domain-hero__breadcrumb {
  display: flex;
  align-items: center;
  gap: var(--hib-space-2);
  font-size: var(--hib-label-s-size);
  color: var(--hib-text-muted);
  margin-bottom: var(--hib-space-5);
}

.hib-domain-hero__breadcrumb a {
  color: var(--hib-text-secondary);
  transition: color var(--hib-duration-base) var(--hib-ease);
}

.hib-domain-hero__breadcrumb a:hover {
  color: var(--hib-primary);
}

.hib-domain-hero__stats {
  display: flex;
  gap: var(--hib-space-7);
  margin-top: var(--hib-space-6);
}

.hib-domain-hero__stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.hib-domain-hero__stat-value {
  font-family: var(--hib-font-display);
  font-size: calc(var(--hib-band-title-size) * 1.18);
  font-weight: var(--hib-heading-weight-section);
  line-height: calc(var(--hib-band-title-lh) * 0.9);
  letter-spacing: normal;
  color: var(--hib-primary);
}

.hib-domain-hero__stat-label {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-label-s-size);
  color: var(--hib-text-muted);
}

/* ============================================================
   24. SEO CONTENT
   ============================================================ */
.hib-seo-content {
  max-width: 68ch;
  margin: 0 auto;
  padding: clamp(var(--hib-space-5), 3vw, var(--hib-space-7));
  background: linear-gradient(180deg, #FFFFFF 0%, var(--hib-surface-cream-2, #F5F3EC) 120%);
  border: 1px solid var(--hib-hairline, var(--hib-border-accent));
  border-radius: var(--hib-radius-section);
  position: relative;
}

.hib-seo-content h3 {
  font-family: var(--hib-font-heading);
  font-size: clamp(1.125rem, 1.8vw, 1.375rem);
  letter-spacing: normal;
  line-height: 1.25;
  color: var(--hib-ink, #14171A);
  margin-bottom: var(--hib-space-3);
  margin-top: var(--hib-space-2);
}

.hib-seo-content p {
  font-size: var(--hib-body-reading-size);
  line-height: var(--hib-body-reading-lh);
  color: var(--hib-text-strong);
  margin-bottom: var(--hib-space-3);
}

.hib-seo-content p:last-child { margin-bottom: 0; }

/* ============================================================
   25. ANIMATIONS
   ============================================================ */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.hib-animate {
  opacity: 0;
  animation: fadeInUp 0.55s var(--hib-ease) forwards;
}

.hib-animate--delay-1 { animation-delay: 0.08s; }
.hib-animate--delay-2 { animation-delay: 0.16s; }
.hib-animate--delay-3 { animation-delay: 0.24s; }
.hib-animate--delay-4 { animation-delay: 0.32s; }
.hib-animate--delay-5 { animation-delay: 0.40s; }

/* Scroll-triggered animation */
.hib-reveal {
  opacity: 0;
  transform: translateY(12px) scale(0.995);
  transition: opacity 0.5s cubic-bezier(0.23, 1, 0.32, 1), transform 0.5s cubic-bezier(0.23, 1, 0.32, 1);
}

.hib-reveal.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* ============================================================
   26. UTILITY CLASSES
   ============================================================ */
.hib-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

.hib-text-center { text-align: center; }
.hib-text-start { text-align: right; }
.hib-mt-auto { margin-top: auto; }
.hib-flex { display: flex; }
.hib-gap-3 { gap: var(--hib-space-3); }
.hib-gap-6 { gap: var(--hib-space-6); }

/* ============================================================
   27. PRO CARD V2 — Distance-first, proof-driven (polished)
   ============================================================ */
.hib-pro-card-v2 {
  display: flex;
  flex-direction: column;
  position: relative;
}

/* ── Distance bar ─────────────────────────────────────────────
   Sits above the media region. Primary proximity + status signal. */
.hib-pro-card-v2__distance-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px var(--hib-space-5);
  background: var(--hib-domain-soft);
  border-bottom: 1px solid var(--hib-border);
  font-size: var(--hib-label-s-size);
  font-weight: 600;
  line-height: 1;
  min-height: 36px;
}

.hib-pro-card-v2__distance {
  display: flex;
  align-items: center;
  gap: 5px;
  color: var(--hib-primary);
}

.hib-pro-card-v2__distance svg {
  width: 15px;
  height: 15px;
  flex-shrink: 0;
}

/* ── Media region ─────────────────────────────────────────────
   Full-bleed image block. The primary trust signal.
   Sits between distance-bar and identity header.
   Clipped cleanly by .hib-card's overflow:hidden + border-radius. */
.hib-pro-card-v2__media {
  position: relative;
  width: 100%;
  height: var(--hib-pro-card-media-h);
  overflow: hidden;
  background: var(--hib-neutral-100);
  flex-shrink: 0;
}

.hib-pro-card-v2__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 15%;
  display: block;
  transition: transform var(--hib-duration-slow) var(--hib-ease);
}

.hib-pro-card-v2:hover .hib-pro-card-v2__media img {
  transform: scale(1.03);
}

/* Fallback: no photo — domain-tinted placeholder centered */
.hib-pro-card-v2__media--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--hib-domain-soft);
}

.hib-pro-card-v2__media--empty svg.hib-media-placeholder {
  width: 44px;
  height: 44px;
  color: var(--hib-primary);
  opacity: 0.2;
}

/* ── Identity header ──────────────────────────────────────────
   Name + proof directly below the image.
   Face → name proximity is the trust mechanism. */
.hib-pro-card-v2__header {
  display: flex;
  flex-direction: column;
  gap: var(--hib-space-1);
  padding: var(--hib-space-4) var(--hib-space-5) 0;
}

.hib-pro-card-v2__name {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-h5-size);
  font-weight: 700;
  line-height: 1.26;
  letter-spacing: normal;
  color: var(--hib-text);
}

/* Proof line — ★ 4.8 · 23 חוות דעת · מאושר */
.hib-pro-card-v2__proof {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: var(--hib-label-s-size);
  color: var(--hib-text-muted);
  line-height: 1;
}

.hib-pro-card-v2__rating {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-weight: 600;
  color: var(--hib-text);
  font-size: var(--hib-label-s-size);
}

.hib-pro-card-v2__rating svg {
  width: 12px;
  height: 12px;
  color: var(--hib-rating-star);
}

.hib-pro-card-v2__dot {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--hib-neutral-300);
  flex-shrink: 0;
}

.hib-pro-card-v2__verified {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: var(--hib-label-s-size);
  font-weight: 600;
  color: var(--hib-success);
}

.hib-pro-card-v2__verified svg {
  width: 11px;
  height: 11px;
}

/* ── Body: specialties ────────────────────────────────────────*/
.hib-pro-card-v2__body {
  padding: var(--hib-space-3) var(--hib-space-5) var(--hib-space-4);
}

.hib-pro-card-v2__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.hib-pro-card-v2__tag {
  padding: 4px 10px;
  border-radius: var(--hib-radius-pill);
  border: 1px solid var(--hib-border);
  font-size: var(--hib-label-s-size);
  font-weight: 500;
  color: var(--hib-text-secondary);
  background: var(--hib-surface);
  line-height: 1;
}

/* ── Footer: CTA ──────────────────────────────────────────────
   Primary CTA dominates. Secondary is supportive. */
.hib-pro-card-v2__footer {
  display: flex;
  gap: var(--hib-space-2);
  padding: var(--hib-space-4) var(--hib-space-5) var(--hib-space-5);
  margin-top: auto;
  border-top: 1px solid var(--hib-divider);
}

.hib-pro-card-v2__footer .hib-btn:first-child {
  flex: 1.5;
}

.hib-pro-card-v2__footer .hib-btn:last-child {
  flex: 0.6;
  font-size: var(--hib-label-s-size);
}

.hib-pro-card-v2__footer .hib-btn {
  font-size: var(--hib-label-m-size);
}

/* ── Domain: media fallback colors ───────────────────────────*/
[data-domain="plumbing"] .hib-pro-card-v2__media--empty {
  background: var(--hib-domain-soft);
}

[data-domain="renovation"] .hib-pro-card-v2__media--empty {
  background: var(--hib-domain-surface-soft);
}

[data-domain="design"] .hib-pro-card-v2__media--empty {
  background: var(--hib-domain-line);
}

/* ── Mobile ───────────────────────────────────────────────────*/
@media (max-width: 767px) {
  :root {
    --hib-pro-card-media-h: 144px;
  }
  .hib-pro-card-v2__header {
    padding: var(--hib-space-3) var(--hib-space-4) 0;
  }
  .hib-pro-card-v2__body {
    padding: var(--hib-space-3) var(--hib-space-4) var(--hib-space-3);
  }
  .hib-pro-card-v2__footer {
    padding: var(--hib-space-3) var(--hib-space-4) var(--hib-space-4);
  }
  .hib-pro-card-v2__distance-bar {
    padding: 8px var(--hib-space-4);
  }
  .hib-pro-card-v2__proof {
    flex-wrap: wrap;
  }
}

/* ============================================================
   28. HERO V2 — Stronger, iconic presence
   ============================================================ */

/* Value proposition callout */
.hib-hero__value-prop {
  display: inline-flex;
  align-items: center;
  gap: var(--hib-space-2);
  padding: 6px 14px;
  background: var(--hib-surface);
  border: 1px solid var(--hib-border);
  border-radius: var(--hib-radius-pill);
  font-size: var(--hib-label-s-size);
  font-weight: 500;
  color: var(--hib-text-secondary);
  margin-bottom: var(--hib-space-5);
  box-shadow: var(--hib-shadow-card);
}

.hib-hero__value-prop svg {
  width: 16px;
  height: 16px;
  color: var(--hib-accent);
}

/* Stronger search module */

.hib-search-module__header {
  display: flex;
  align-items: center;
  gap: var(--hib-space-2);
  margin-bottom: var(--hib-space-5);
  font-family: var(--hib-font-ui);
  font-size: var(--hib-label-m-size);
  font-weight: 600;
  color: var(--hib-primary);
}

.hib-search-module__header svg {
  width: 18px;
  height: 18px;
}

/* ============================================================
   29. DOMAIN PERSONALITY LAYERS
   ============================================================ */

/* --- Plumbing: service-oriented, functional, urgent-capable --- */
[data-domain="plumbing"] .hib-hero--domain {
  background-image:
    radial-gradient(
      ellipse 70% 50% at 75% 35%,
      var(--hib-domain-hero-glow) 0%,
      transparent 70%
    ),
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.28) 0%,
      rgba(249, 249, 247, 0.42) 100%
    ),
    url("plumbing-hero.png");
  background-position:
    center,
    center,
    center;
  background-size:
    auto,
    auto,
    cover;
  background-repeat:
    no-repeat;
}

[data-domain="plumbing"] .hib-pro-card-v2__distance-bar {
  background: var(--hib-domain-panel-soft);
}

/* Plumbing-specific availability signal */
.hib-signal--available {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: var(--hib-label-s-size);
  font-weight: 600;
  color: var(--hib-success);
}

.hib-signal--available::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--hib-success);
  animation: pulse-dot 2s ease-in-out infinite;
}

@keyframes pulse-dot {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.4; }
}

/* --- Renovation: clean, project-oriented, transformative --- */
[data-domain="renovation"] .hib-hero--domain {
  background:
    radial-gradient(ellipse 80% 50% at 30% 50%, var(--hib-domain-hero-glow) 0%, transparent 70%),
    linear-gradient(175deg, var(--hib-domain-panel-soft) 0%, var(--hib-bg) 65%);
}

[data-domain="renovation"] .hib-pro-card-v2__distance-bar {
  background: var(--hib-domain-panel-soft);
}

/* Project type badge for renovation cards */
.hib-project-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: var(--hib-radius-pill);
  font-size: var(--hib-micro-label-size);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: normal;
}

.hib-project-badge--apartment {
  background: var(--hib-domain-panel-soft);
  color: var(--hib-primary);
}

.hib-project-badge--bathroom {
  background: var(--hib-domain-tag-soft);
  color: var(--hib-primary-hover);
}

/* --- Design: minimal, refined, editorial, premium --- */
[data-domain="design"] .hib-hero--domain {
  background:
    radial-gradient(ellipse 60% 40% at 80% 30%, var(--hib-domain-hero-glow) 0%, transparent 70%),
    linear-gradient(175deg, var(--hib-domain-panel-soft) 0%, var(--hib-bg) 60%);
}

[data-domain="design"] .hib-hero__pattern {
  opacity: 0.012;
  background-image:
    linear-gradient(90deg, var(--hib-primary) 1px, transparent 1px),
    linear-gradient(0deg, var(--hib-primary) 1px, transparent 1px);
  background-size: 80px 80px;
}

[data-domain="design"] .hib-pro-card-v2__distance-bar {
  background: var(--hib-domain-panel-soft);
  border-bottom-color: var(--hib-domain-line);
  font-weight: 500;
}

[data-domain="design"] .hib-card {
  border-color: var(--hib-domain-line);
}

[data-domain="design"] .hib-card:hover {
  box-shadow: 0 10px 28px rgba(41,40,38,.06);
  transform: translateY(-1px);
}

[data-domain="design"] .hib-pro-card-v2__name {
  font-weight: 600;
  letter-spacing: normal;
}

[data-domain="design"] .hib-specialty-chip {
  border-radius: var(--hib-radius-xs);
  letter-spacing: normal;
  font-size: var(--hib-label-m-size);
  font-weight: 400;
  border-color: var(--hib-domain-line);
}

[data-domain="design"] .hib-specialty-chip:hover {
  border-color: var(--hib-primary);
  background: var(--hib-domain-panel-soft);
}

[data-domain="design"] .hib-pro-card-v2__tag {
  border-color: transparent;
  background: var(--hib-domain-tag-soft);
  font-weight: 400;
  letter-spacing: normal;
}

[data-domain="design"] .hib-chip {
  border-radius: var(--hib-radius-xs);
  font-weight: 400;
}

/* Design: generous spacing */
[data-domain="design"] .hib-section {
  padding: clamp(72px, 9vw, 128px) 0;
}

[data-domain="design"] .hib-section--compact {
  padding: clamp(52px, 6.5vw, 96px) 0;
}

[data-domain="design"] .hib-section-header {
  margin-bottom: var(--hib-section-header-mb);
}

[data-domain="design"] .hib-cta-section {
  background: var(--hib-primary);
  border-radius: var(--hib-radius-xl);
}

[data-domain="design"] .hib-cta-section__title {
  font-family: var(--hib-font-display-design);
  font-weight: 400;
  font-size: var(--hib-design-display-l-size);
  line-height: var(--hib-design-display-l-lh);
  letter-spacing: normal;
}

[data-domain="design"] .hib-results-summary {
  border-color: var(--hib-domain-line);
  box-shadow: none;
}

@media (max-width: 767px) {
  [data-domain="design"] .hib-section {
    padding: clamp(48px, 7vw, 72px) 0;
  }
  [data-domain="design"] .hib-section--compact {
    padding: clamp(36px, 5vw, 56px) 0;
  }
}

/* --- Domain section accent bars --- */
.hib-section--domain-accent {
  border-top: 3px solid var(--hib-primary);
}

/* ============================================================
   30. RESULTS BAR V2
   ============================================================ */
.hib-results-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--hib-space-4);
  padding: var(--hib-space-5) var(--hib-space-6);
  background: var(--hib-surface);
  border-radius: var(--hib-radius-m);
  border: 1px solid var(--hib-border);
  box-shadow: var(--hib-shadow-card);
}

.hib-results-summary__text {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-body-s-size);
  color: var(--hib-text);
}

.hib-results-summary__text strong {
  color: var(--hib-primary);
}

.hib-results-summary__address {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: var(--hib-label-s-size);
  color: var(--hib-text-muted);
}

.hib-results-summary__address svg {
  width: 14px;
  height: 14px;
  color: var(--hib-accent);
}

.hib-results-summary__sort {
  display: flex;
  gap: var(--hib-space-2);
}

/* ============================================================
   31. MOBILE MENU (was inline, now systemic)
   ============================================================ */
.hib-mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 200;
  background: var(--hib-dark-overlay);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--hib-duration-slow) var(--hib-ease);
}

.hib-mobile-menu.is-open {
  opacity: 1;
  pointer-events: auto;
}

.hib-mobile-menu__inner {
  position: absolute;
  top: 0;
  right: 0;
  width: min(320px, 85vw);
  height: 100%;
  background: var(--hib-surface);
  padding: var(--hib-space-8) var(--hib-space-6);
  display: flex;
  flex-direction: column;
  gap: var(--hib-space-1);
  transform: translateX(100%);
  transition: transform 280ms cubic-bezier(0.32, 0.72, 0, 1);
  overflow-y: auto;
}

.hib-mobile-menu.is-open .hib-mobile-menu__inner {
  transform: translateX(0);
}

.hib-mobile-menu__link {
  display: block;
  padding: var(--hib-space-4) var(--hib-space-3);
  font-size: var(--hib-h5-size);
  font-weight: 500;
  color: var(--hib-text);
  border-radius: var(--hib-radius-xs);
  transition: background var(--hib-duration-base) var(--hib-ease);
}

.hib-mobile-menu__link:hover {
  background: var(--hib-neutral-50);
}

.hib-mobile-menu__link--active {
  color: var(--hib-primary);
  font-weight: 600;
}

.hib-mobile-menu__close {
  align-self: flex-start; /* RTL: anchors to inline-start (right edge of panel) */
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--hib-radius-xs);
  background: transparent;
  color: var(--hib-text-muted);
  cursor: pointer;
  flex-shrink: 0;
  margin-bottom: var(--hib-space-2);
  transition: background var(--hib-duration-base) var(--hib-ease),
              color var(--hib-duration-base) var(--hib-ease);
}

.hib-mobile-menu__close:hover {
  background: var(--hib-neutral-50);
  color: var(--hib-text);
}

/* ============================================================
   32. PAGINATION (was inline, now systemic)
   ============================================================ */
.hib-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--hib-space-2);
  margin-top: var(--hib-space-9);
}

.hib-pagination__btn {
  display: flex;
  align-items: center;
  gap: var(--hib-space-1);
  padding: var(--hib-space-2) var(--hib-space-4);
  font-size: var(--hib-label-m-size);
  font-weight: 500;
  color: var(--hib-text-secondary);
  border-radius: var(--hib-radius-xs);
  cursor: pointer;
  transition: background var(--hib-duration-base) var(--hib-ease), color var(--hib-duration-base) var(--hib-ease);
}

.hib-pagination__btn:hover:not(:disabled) {
  background: var(--hib-neutral-100);
  color: var(--hib-text);
}

.hib-pagination__btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.hib-pagination__pages {
  display: flex;
  align-items: center;
  gap: var(--hib-space-1);
}

.hib-pagination__page {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--hib-radius-xs);
  font-size: var(--hib-label-m-size);
  font-weight: 500;
  color: var(--hib-text-secondary);
  cursor: pointer;
  transition: background var(--hib-duration-base) var(--hib-ease), color var(--hib-duration-base) var(--hib-ease);
}

.hib-pagination__page:hover {
  background: var(--hib-neutral-100);
}

.hib-pagination__page--active {
  background: var(--hib-primary);
  color: white;
}

.hib-pagination__dots {
  color: var(--hib-text-muted);
  font-size: var(--hib-label-m-size);
  padding: 0 var(--hib-space-1);
}

/* ============================================================
   33. UTILITY CLASSES — kill inline styles
   ============================================================ */
.hib-card-flex-body {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.hib-w-full { width: 100%; }
.hib-mt-4 { margin-top: var(--hib-space-4); }
.hib-mt-6 { margin-top: var(--hib-space-6); }
.hib-mt-8 { margin-top: var(--hib-space-8); }
.hib-mb-4 { margin-bottom: var(--hib-space-4); }
.hib-bg-soft { background: var(--hib-surface-soft); }

/* Hero centered layout */
.hib-hero--centered .hib-hero__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.hib-hero--centered .hib-hero__title {
  max-width: var(--hib-container-narrow);
  text-align: center;
}

.hib-hero--centered .hib-hero__subtitle {
  max-width: 540px;
  text-align: center;
}

/* Section rhythm enhancers */
.hib-section--elevated {
  position: relative;
  z-index: 1;
}

/* Results summary address line */
.hib-results-summary__info {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

/* Trust language micro-badge */
.hib-trust-micro {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: var(--hib-micro-label-size);
  font-weight: 500;
  color: var(--hib-text-muted);
  letter-spacing: normal;
}

.hib-trust-micro svg {
  width: 12px;
  height: 12px;
  color: var(--hib-success);
}

/* ============================================================
   34. PROFESSIONAL PROFILE PAGE
   ============================================================ */

/* --- Profile Hero --- */
.hib-profile-hero {
  padding: clamp(64px, 7vw, 104px) 0 clamp(56px, 6vw, 88px);
  background:
    radial-gradient(ellipse 70% 90% at 92% 0%, rgba(29, 84, 196,0.09) 0%, transparent 60%),
    linear-gradient(180deg, var(--hib-domain-soft) 0%, var(--hib-bg) 70%);
  position: relative;
}

.hib-profile-hero__grid {
  display: grid;
  grid-template-columns: 400px 1fr;
  gap: var(--hib-space-8);
  align-items: start;
}

.hib-profile-hero__media {
  border-radius: var(--hib-radius-l);
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: var(--hib-neutral-200);
  position: relative;
}

.hib-profile-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Placeholder when no image */
.hib-profile-hero__media--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--hib-text-muted);
  font-size: 3rem;
  font-weight: 700;
  background: var(--hib-domain-soft);
}

.hib-profile-hero__summary {
  display: flex;
  flex-direction: column;
  gap: var(--hib-space-5);
}

.hib-profile-hero__name {
  font-family: var(--hib-font-display);
  font-size: var(--hib-h1-size);
  font-weight: var(--hib-heading-weight-section);
  line-height: var(--hib-h1-lh);
  letter-spacing: normal;
}

.hib-profile-hero__badges {
  display: flex;
  flex-wrap: wrap;
  gap: var(--hib-space-2);
  align-items: center;
}

.hib-profile-hero__specs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.hib-profile-hero__areas-preview {
  display: flex;
  align-items: center;
  gap: var(--hib-space-2);
  font-size: var(--hib-label-m-size);
  color: var(--hib-text-secondary);
  line-height: 1.5;
}

.hib-profile-hero__areas-preview svg {
  width: 16px;
  height: 16px;
  color: var(--hib-accent);
  flex-shrink: 0;
}

.hib-profile-hero__cta {
  display: flex;
  gap: var(--hib-space-3);
  padding-top: var(--hib-space-5);
  border-top: 1px solid var(--hib-divider);
  margin-top: var(--hib-space-1);
  flex-wrap: wrap;
  align-items: center;
}

.hib-profile-hero__cta .hib-btn--primary {
  min-width: 220px;
  font-weight: 700;
  box-shadow: 0 3px 12px rgba(0,0,0,.16), 0 1px 3px rgba(0,0,0,.08);
}

.hib-profile-hero__cta .hib-btn--primary:hover {
  box-shadow: 0 6px 20px rgba(0,0,0,.20), 0 2px 6px rgba(0,0,0,.08);
}

@media (max-width: 1023px) {
  .hib-profile-hero__grid {
    grid-template-columns: 1fr;
    gap: var(--hib-space-6);
  }
  .hib-profile-hero__media {
    max-height: 320px;
  }
}

@media (max-width: 767px) {
  .hib-profile-hero {
    padding: var(--hib-space-6) 0 var(--hib-space-8);
  }
  .hib-profile-hero__media {
    max-height: 260px;
  }
  .hib-profile-hero__name {
    font-size: clamp(1.5rem, 5vw, var(--hib-h1-size));
  }
  .hib-profile-hero__cta {
    flex-direction: column;
    padding-top: var(--hib-space-5);
  }
  .hib-profile-hero__cta .hib-btn {
    width: 100%;
  }
}

/* --- Profile About --- */
.hib-profile-about {
  max-width: 68ch;
}

.hib-profile-about__text {
  font-size: var(--hib-body-profile-size);
  line-height: var(--hib-body-profile-lh);
  color: var(--hib-text-strong);
}

/* --- Profile Specialties --- */
.hib-profile-specialties__title {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-band-title-size);
  font-weight: 600;
  line-height: 1.30;
  letter-spacing: normal;
  margin-bottom: var(--hib-space-5);
}

.hib-profile-specialties__grid {
  display: flex;
  flex-wrap: wrap;
  gap: var(--hib-space-3);
}

.hib-profile-specialties__item {
  display: flex;
  align-items: center;
  gap: var(--hib-space-3);
  padding: var(--hib-space-3) var(--hib-space-5);
  background: var(--hib-surface);
  border: 1px solid var(--hib-border);
  border-radius: var(--hib-radius-s);
  font-size: var(--hib-body-s-size);
  font-weight: 500;
  color: var(--hib-text);
}

.hib-profile-specialties__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--hib-accent);
  flex-shrink: 0;
}

/* --- Profile Service Areas --- */
.hib-profile-areas__title {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-band-title-size);
  font-weight: 600;
  line-height: 1.30;
  letter-spacing: normal;
  margin-bottom: var(--hib-space-5);
}

.hib-profile-areas__grid {
  display: flex;
  flex-wrap: wrap;
  gap: var(--hib-space-2);
}

.hib-profile-areas__chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: var(--hib-space-2) var(--hib-space-4);
  background: var(--hib-domain-soft);
  border-radius: var(--hib-radius-s);
  font-size: var(--hib-label-m-size);
  font-weight: 500;
  color: var(--hib-primary);
}

.hib-profile-areas__chip svg {
  width: 14px;
  height: 14px;
}

.hib-profile-areas__toggle {
  margin-top: var(--hib-space-3);
  font-size: var(--hib-label-m-size);
  font-weight: 500;
  color: var(--hib-accent);
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
  transition: color var(--hib-duration-base) var(--hib-ease);
}

.hib-profile-areas__toggle:hover {
  color: var(--hib-primary);
}

/* --- Profile Gallery --- */
.hib-profile-gallery__item {
  border-radius: var(--hib-radius-m);
  overflow: hidden;
  background: var(--hib-neutral-200);
  aspect-ratio: 4 / 3;
  cursor: pointer;
  transition: opacity var(--hib-duration-base) var(--hib-ease);
}

.hib-profile-gallery__item--main {
  grid-row: 1 / 3;
  aspect-ratio: 3 / 4;
}

/* Review card */
.hib-review-card {
  padding: clamp(var(--hib-space-5), 2.4vw, var(--hib-space-6));
  background: #FFFFFF;
  border: 1px solid var(--hib-hairline, var(--hib-border-accent));
  border-radius: var(--hib-radius-card);
  box-shadow: var(--hib-shadow-card);
  transition:
    transform 320ms var(--hib-ease-out-soft, var(--hib-ease)),
    border-color 320ms var(--hib-ease),
    box-shadow 320ms var(--hib-ease);
  position: relative;
}
.hib-review-card:hover {
  transform: translateY(-2px);
  border-color: rgba(29, 84, 196,0.22);
  box-shadow: var(--hib-shadow-card-hover);
}
.hib-review-card::before {
  content: "\201C";
  position: absolute;
  top: 8px;
  inset-inline-end: 18px;
  font-family: var(--hib-font-display);
  font-size: 4rem;
  line-height: 1;
  color: var(--hib-primary);
  opacity: 0.10;
  pointer-events: none;
}

.hib-review-card__header {
  display: flex;
  align-items: center;
  gap: var(--hib-space-3);
  margin-bottom: var(--hib-space-3);
}

.hib-review-card__avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(29, 84, 196,0.12) 0%, rgba(46,134,193,0.08) 100%);
  color: var(--hib-primary);
  border: 1px solid var(--hib-border-accent);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--hib-font-display);
  font-size: var(--hib-label-m-size);
  font-weight: 800;
  letter-spacing: normal;
  flex-shrink: 0;
}

.hib-review-card__info {
  flex: 1;
}

.hib-review-card__name {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-body-s-size);
  font-weight: 600;
  letter-spacing: normal;
  color: var(--hib-ink, #14171A);
}

.hib-review-card__date {
  font-family: var(--hib-font-body);
  font-size: var(--hib-micro-label-size);
  letter-spacing: normal;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--hib-text-muted);
}

.hib-review-card__stars {
  display: inline-flex;
  gap: 1px;
  color: #E4B23C;
  margin-bottom: var(--hib-space-3);
}

.hib-review-card__stars svg {
  width: 14px;
  height: 14px;
  color: var(--hib-rating-star);
}

.hib-review-card__text {
  font-size: var(--hib-body-s-size);
  line-height: 1.75;
  color: var(--hib-text-strong);
}

.hib-profile-reviews__more {
  margin-top: var(--hib-space-7);
  text-align: center;
}

/* --- Bottom CTA ---
   Surface material lives on the shared .hib-cta-surface class in
   hib-extra.css; the texture is a real .hib-cta-surface__texture element
   in the markup now, not a ::before, so this block matches the family's
   anatomy and owns only its centred composition. */
.hib-profile-bottom-cta {
  text-align: center;
}

.hib-profile-bottom-cta__title {
  font-family: var(--hib-font-display);
  font-size: var(--hib-display-l-size);
  font-weight: var(--hib-heading-weight-section);
  line-height: var(--hib-display-l-lh);
  letter-spacing: normal;
  margin-bottom: var(--hib-space-3);
}

.hib-profile-bottom-cta__desc {
  font-size: clamp(1rem, 1.4vw, 1.125rem);
  line-height: 1.6;
  opacity: 0.88;
  margin-bottom: var(--hib-space-7);
}

.hib-profile-bottom-cta__secondary {
  margin-top: var(--hib-space-5);
  font-size: var(--hib-label-m-size);
  color: var(--hib-on-dark-muted);
}

@media (max-width: 767px) {
  .hib-profile-bottom-cta__title {
    font-size: var(--hib-h2-size);
  }
  .hib-profile-bottom-cta .hib-btn {
    width: 100%;
  }
}
/* --- Design domain overrides for profile --- */
[data-domain="design"] .hib-profile-hero {
  background: linear-gradient(175deg, var(--hib-domain-panel-soft) 0%, var(--hib-bg) 55%);
}

[data-domain="design"] .hib-profile-gallery__item {
  border-radius: var(--hib-radius-s);
}

[data-domain="design"] .hib-review-card {
  border-color: var(--hib-domain-line);
}

[data-domain="design"] .hib-profile-specialties__item {
  border-color: var(--hib-domain-line);
  font-weight: 400;
}

/* --- Renovation domain overrides for profile --- */
[data-domain="renovation"] .hib-profile-hero {
  background: linear-gradient(175deg, var(--hib-domain-panel-soft) 0%, var(--hib-bg) 60%);
}

.hib-star--empty {
  opacity: 0.25;
}

/* ============================================================
   35. PROFILE REFINEMENTS — Trust notes, compact previews,
       gallery placeholders, reviews upgrade, domain variants
   ============================================================ */

/* --- Hero Summary: grouped blocks with visual separation --- */
.hib-profile-hero__block {
  display: flex;
  flex-direction: column;
  gap: var(--hib-space-2);
}

/* Trust note — under rating */
.hib-profile-hero__trust-note svg {
  width: 14px;
  height: 14px;
  color: var(--hib-success);
  flex-shrink: 0;
}

/* Compact specialties in hero — max 4 */
.hib-profile-hero__specs--compact .hib-pro-card-v2__tag:nth-child(n+5) {
  display: none;
}

/* Short areas preview */
.hib-profile-hero__areas-preview--short {
  font-size: var(--hib-label-s-size);
}

/* --- Gallery Placeholder Variants --- */
.hib-profile-gallery__placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--hib-space-2);
  color: var(--hib-text-muted);
  font-size: var(--hib-label-s-size);
  font-weight: 500;
  background: var(--hib-domain-soft);
}

.hib-profile-gallery__placeholder svg {
  width: 28px;
  height: 28px;
  color: var(--hib-primary);
  opacity: 0.4;
}

.hib-profile-gallery__placeholder-label {
  opacity: 0.7;
}

/* Plumbing gallery */
[data-domain="plumbing"] .hib-profile-gallery__placeholder {
  background: var(--hib-domain-panel-soft);
}

/* Renovation gallery */
[data-domain="renovation"] .hib-profile-gallery__placeholder {
  background: var(--hib-domain-panel-soft);
}

/* Design gallery */
[data-domain="design"] .hib-profile-gallery__placeholder {
  background: var(--hib-domain-surface-soft);
  border: 1px solid var(--hib-domain-line);
}

/* --- Reviews Header Upgrade --- */
.hib-profile-reviews__header-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.hib-profile-reviews__subtext {
  font-size: var(--hib-label-s-size);
  color: var(--hib-text-muted);
  font-weight: 400;
}

.hib-badge--approved-reviews {
  background: var(--hib-success-soft);
  color: var(--hib-success);
  font-size: var(--hib-micro-label-size);
  font-weight: 600;
  padding: 3px 8px;
  border-radius: var(--hib-radius-pill);
  display: inline-flex;
  align-items: center;
  gap: 3px;
}

.hib-badge--approved-reviews svg {
  width: 10px;
  height: 10px;
}

/* --- Design domain profile overrides (deeper) --- */
[data-domain="design"] .hib-profile-hero__summary--grouped {
  gap: var(--hib-space-7);
}

[data-domain="design"] .hib-profile-hero__block + .hib-profile-hero__block {
  border-top-color: var(--hib-domain-line);
}


[data-domain="design"] .hib-profile-about__text {
  font-size: var(--hib-body-profile-size);
  line-height: 1.82; /* intentional: design domain slightly tighter than base 1.85 */
}

[data-domain="design"] .hib-profile-areas__chip {
  background: var(--hib-domain-tag-soft);
  color: var(--hib-text-secondary);
  font-weight: 400;
  font-size: var(--hib-label-s-size);
}

[data-domain="design"] .hib-profile-bottom-cta {
  border-radius: var(--hib-radius-xl);
}

/* Design profile: more breathing room */
[data-domain="design"] .hib-profile-hero {
  padding: var(--hib-space-11) 0 var(--hib-space-12);
}

/* --- Renovation profile --- */
[data-domain="renovation"] .hib-profile-specialties__item {
  border-color: var(--hib-domain-tag-soft);
}

[data-domain="renovation"] .hib-profile-areas__chip {
  background: var(--hib-domain-panel-soft);
}

/* ============================================================
   36. VIDEO SINGLE PAGE
   ============================================================ */

/* --- Video Hero / Content Header --- */
.hib-video-hero {
  padding: var(--hib-space-8) 0 var(--hib-space-6);
  background: linear-gradient(175deg, var(--hib-domain-soft) 0%, var(--hib-bg) 50%);
}

.hib-video-hero__meta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--hib-space-2) var(--hib-space-3);
  margin-bottom: var(--hib-space-4);
}

.hib-video-hero__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: var(--hib-label-s-size);
  color: var(--hib-text-muted);
}

.hib-video-hero__meta-item svg {
  width: 14px;
  height: 14px;
}

.hib-video-hero__title {
  font-family: var(--hib-font-display);
  font-size: var(--hib-h1-size);
  font-weight: var(--hib-heading-weight-section);
  line-height: var(--hib-h1-lh);
  letter-spacing: normal;
  margin-bottom: var(--hib-space-4);
  max-width: 780px;
}

.hib-video-hero__lead {
  font-size: var(--hib-h5-size);
  line-height: 1.65;
  color: var(--hib-text-secondary);
  max-width: 680px;
  margin-bottom: var(--hib-space-4);
}

.hib-video-hero__source {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--hib-space-2);
  margin-top: var(--hib-space-5);
  padding-top: var(--hib-space-4);
  border-top: 1px dashed var(--hib-border-accent);
  font-size: var(--hib-label-s-size);
  color: var(--hib-text-muted);
}

.hib-video-hero__source svg {
  width: 14px;
  height: 14px;
  color: var(--hib-accent);
}

/* --- Video Player --- */
.hib-video-player {
  max-width: 880px;
  margin: 0 auto;
}

.hib-video-player__frame {
  aspect-ratio: 16 / 9;
  border-radius: var(--hib-radius-l);
  overflow: hidden;
  background: var(--hib-neutral-900);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--hib-shadow-l);
}

.hib-video-player__frame iframe,
.hib-video-player__frame video {
  width: 100%;
  height: 100%;
  border: 0;
}

/* Placeholder */
.hib-video-player__placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--hib-space-3);
  color: var(--hib-neutral-400);
  width: 100%;
  height: 100%;
  cursor: pointer;
  transition: opacity var(--hib-duration-base) var(--hib-ease);
}

.hib-video-player__placeholder:hover {
  opacity: 0.85;
}

.hib-video-player__play-btn {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: rgba(255,255,255,.15);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  transition: background var(--hib-duration-base) var(--hib-ease),
              transform var(--hib-duration-base) var(--hib-ease);
}

.hib-video-player__placeholder:hover .hib-video-player__play-btn {
  background: rgba(255,255,255,.25);
  transform: scale(1.06);
}

.hib-video-player__placeholder-label {
  font-size: var(--hib-label-m-size);
  font-weight: 500;
  color: var(--hib-neutral-400);
}

@media (max-width: 767px) {
  .hib-video-player__frame {
    border-radius: var(--hib-radius-m);
  }
  .hib-video-player__play-btn {
    width: 56px;
    height: 56px;
  }
}

/* --- Video Summary Strip --- */
.hib-video-summary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--hib-space-4);
}

.hib-video-summary__card {
  padding: clamp(var(--hib-space-5), 2.4vw, var(--hib-space-6));
  background: linear-gradient(180deg, #FFFFFF 0%, var(--hib-surface-cream-2, #F5F3EC) 120%);
  border: 1px solid var(--hib-hairline, var(--hib-border-accent));
  border-radius: var(--hib-radius-card);
  text-align: start;
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition:
    transform 360ms var(--hib-ease-out-soft, var(--hib-ease)),
    border-color 360ms var(--hib-ease);
}

.hib-video-summary__card:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 32px -16px rgba(16,24,40,0.14);
  border-color: rgba(29, 84, 196,0.20);
}

.hib-video-summary__card-icon {
  width: 40px;
  height: 40px;
  background: linear-gradient(135deg, rgba(29, 84, 196,0.10) 0%, rgba(46,134,193,0.08) 100%);
  border: 1px solid var(--hib-border-accent);
  border-radius: var(--hib-radius-icon);
  color: var(--hib-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 0 var(--hib-space-3);
}

.hib-video-summary__card-icon svg { width: 20px; height: 20px; }

.hib-video-summary__card-label {
  font-size: var(--hib-micro-label-size);
  letter-spacing: normal;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--hib-text-muted);
  margin-bottom: 0;
}

.hib-video-summary__card-value {
  font-family: var(--hib-font-display);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--hib-ink, #14171A);
}

/* --- Video Content / Description --- */
.hib-video-content {
  max-width: 68ch;
  margin: 0 auto;
}

.hib-video-content__title {
  font-family: var(--hib-font-heading);
  font-size: clamp(1.5rem, 2.6vw, 2rem);
  font-weight: var(--hib-heading-weight-document);
  line-height: 1.2;
  letter-spacing: normal;
  color: var(--hib-ink, #14171A);
  margin-bottom: var(--hib-space-5);
  padding-bottom: var(--hib-space-3);
  border-bottom: 1px solid var(--hib-hairline, var(--hib-border-accent));
}

.hib-video-content__body {
  font-size: var(--hib-body-profile-size);
  line-height: var(--hib-body-profile-lh);
  color: var(--hib-text-strong);
}

.hib-video-content__body p {
  margin-bottom: var(--hib-space-5);
}

.hib-video-content__body p:last-child {
  margin-bottom: 0;
}

/* --- Takeaways / Checklist --- */
.hib-video-takeaways {
  max-width: 68ch;
  margin: 0 auto;
  padding: clamp(var(--hib-space-6), 3vw, var(--hib-space-8));
  background:
    radial-gradient(ellipse 120% 90% at 0% 0%, rgba(29, 84, 196,0.06) 0%, transparent 55%),
    linear-gradient(180deg, #FFFFFF 0%, var(--hib-surface-cream, #FAFAF5) 100%);
  border: 1px solid var(--hib-hairline, var(--hib-border-accent));
  border-radius: var(--hib-radius-section);
  box-shadow: var(--hib-shadow-m);
  position: relative;
}

.hib-video-takeaways__item {
  display: flex;
  gap: var(--hib-space-3);
  font-size: var(--hib-body-s-size);
  line-height: 1.6;
  color: var(--hib-text);
}

/* --- Related Videos --- */
.hib-video-related__title {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-band-title-size);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: normal;
  margin-bottom: var(--hib-space-6);
}

/* --- Domain overrides for video page --- */
[data-domain="design"] .hib-video-hero {
  background: linear-gradient(175deg, var(--hib-domain-panel-soft) 0%, var(--hib-bg) 50%);
}

[data-domain="design"] .hib-video-takeaways {
  background: var(--hib-domain-surface-soft);
  border: 1px solid var(--hib-domain-line);
}

[data-domain="renovation"] .hib-video-hero {
  background: linear-gradient(175deg, var(--hib-domain-panel-soft) 0%, var(--hib-bg) 50%);
}

/* --- Featured Video --- */
.hib-featured-video {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: clamp(var(--hib-space-5), 3vw, var(--hib-space-8));
  align-items: center;
  padding: clamp(var(--hib-space-5), 3vw, var(--hib-space-7));
  background: linear-gradient(180deg, #FFFFFF 0%, var(--hib-surface-cream, #FAFAF5) 100%);
  border: 1px solid var(--hib-hairline, var(--hib-border-accent));
  border-radius: clamp(16px, 1.6vw, 22px);
  overflow: hidden;
  box-shadow:
    0 1px 2px rgba(16,24,40,0.04),
    0 12px 32px -20px rgba(29, 84, 196,0.22);
  transition:
    transform 380ms var(--hib-ease-out-soft, var(--hib-ease)),
    box-shadow 380ms var(--hib-ease-out-soft, var(--hib-ease)),
    border-color 380ms var(--hib-ease);
}
.hib-featured-video:hover {
  transform: translateY(-2px);
  box-shadow:
    0 2px 4px rgba(16,24,40,0.06),
    0 24px 48px -22px rgba(29, 84, 196,0.30);
  border-color: rgba(29, 84, 196,0.20);
}

.hib-featured-video__thumb {
  aspect-ratio: 16 / 10;
  border-radius: clamp(10px, 1.2vw, 16px);
  box-shadow: 0 12px 28px -14px rgba(16,24,40,0.28);
  overflow: hidden;
  position: relative;
  isolation: isolate;
  background-color: var(--hib-neutral-900);
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hib-featured-video__thumb::before {
  content: "";
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,0.25) 100%),
    linear-gradient(135deg, rgba(29, 84, 196,0.18) 0%, transparent 55%);
  z-index: 1;
  pointer-events: none;
}
.hib-featured-video__thumb:not(.hib-featured-video__thumb--embed):hover {
  cursor: pointer;
}

.hib-featured-video__play {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: rgba(255,255,255,0.94);
  color: var(--hib-primary);
  box-shadow:
    0 0 0 8px rgba(255,255,255,0.14),
    0 12px 24px rgba(0,0,0,0.25);
  backdrop-filter: none;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 2;
}
.hib-featured-video__play svg { transform: translateX(-2px); }

.hib-featured-video__thumb--embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.hib-featured-video__thumb:hover .hib-featured-video__play {
  background: #FFFFFF;
  transform: scale(1.08);
  box-shadow:
    0 0 0 12px rgba(255,255,255,0.18),
    0 16px 32px rgba(0,0,0,0.32);
}

.hib-featured-video__content {
  display: flex;
  flex-direction: column;
  gap: var(--hib-space-3);
  padding: clamp(var(--hib-space-6), 3vw, var(--hib-space-8));
}

.hib-featured-video__badge-row {
  display: flex;
  gap: var(--hib-space-2);
  align-items: center;
}

.hib-featured-video__title {
  font-family: var(--hib-font-display);
  font-size: clamp(1.4rem, 2.2vw, 1.75rem);
  font-weight: var(--hib-heading-weight-section);
  line-height: 1.18;
  letter-spacing: normal;
  color: var(--hib-ink, #14171A);
}

.hib-featured-video__lead {
  font-size: 1rem;
  line-height: 1.6;
  color: var(--hib-text-strong);
}

.hib-featured-video__meta {
  font-size: var(--hib-label-s-size);
  color: var(--hib-text-strong);
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border: 1px solid var(--hib-hairline, var(--hib-border-accent));
  background: rgba(255,255,255,0.7);
  border-radius: var(--hib-radius-pill);
  align-self: flex-start;
}
.hib-featured-video__meta svg {
  width: 14px;
  height: 14px;
  color: var(--hib-primary);
  opacity: 0.85;
}
.hib-featured-video .hib-btn { align-self: flex-start; }

@media (max-width: 767px) {
  .hib-featured-video {
    grid-template-columns: 1fr;
    gap: var(--hib-space-4);
    padding: var(--hib-space-5);
    border-radius: var(--hib-radius-m);
  }
  .hib-featured-video__play {
    width: 56px;
    height: 56px;
  }
}

/* --- Related Topics --- */
.hib-related-topics__title {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-band-title-size);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: normal;
  margin-bottom: var(--hib-space-5);
}

.hib-related-topic-card {
  display: flex;
  align-items: center;
  gap: var(--hib-space-3);
  padding: var(--hib-space-4) var(--hib-space-5);
  background: #FFFFFF;
  border: 1px solid var(--hib-hairline, var(--hib-border-accent));
  border-radius: var(--hib-radius-card);
  font-size: var(--hib-body-s-size);
  font-weight: 600;
  color: var(--hib-ink, #14171A);
  transition:
    transform 320ms var(--hib-ease-out-soft, var(--hib-ease)),
    border-color 320ms var(--hib-ease),
    box-shadow 320ms var(--hib-ease);
  cursor: pointer;
  text-decoration: none;
}

.hib-related-topic-card:hover {
  transform: translateY(-2px);
  border-color: rgba(29, 84, 196,0.22);
  box-shadow: 0 14px 28px -18px rgba(29, 84, 196,0.26);
}

.hib-related-topic-card svg {
  width: 22px;
  height: 22px;
  padding: 4px;
  background: linear-gradient(135deg, rgba(29, 84, 196,0.10) 0%, rgba(46,134,193,0.08) 100%);
  border: 1px solid var(--hib-border-accent);
  border-radius: var(--hib-radius-xs);
  color: var(--hib-primary);
  flex-shrink: 0;
}
[data-domain="design"] .hib-featured-video {
  border-color: var(--hib-domain-line);
}
[data-domain="design"] .hib-related-topic-card {
  border-color: var(--hib-domain-line);
}

/* ============================================================
   37b. GUIDE LIST — Vertical index-style guide entries
   ============================================================ */
.hib-guide-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  overflow: hidden;
  background: #FFFFFF;
  border: 1px solid var(--hib-hairline);
  border-radius: var(--hib-radius-m);
  box-shadow: 0 1px 2px rgba(16,24,40,0.04), 0 12px 28px -22px rgba(29, 84, 196,0.18);
}

.hib-guide-entry {
  display: grid;
  grid-template-columns: 152px 1fr auto;
  gap: clamp(var(--hib-space-4), 2.4vw, var(--hib-space-6));
  align-items: center;
  padding: clamp(var(--hib-space-4), 2.2vw, var(--hib-space-5)) clamp(var(--hib-space-5), 3vw, var(--hib-space-7));
  border-bottom: 1px solid var(--hib-hairline, var(--hib-border-accent));
  text-decoration: none;
  color: inherit;
  transition: background 260ms var(--hib-ease), padding-inline 320ms var(--hib-ease);
}

.hib-guide-entry:last-child {
  border-bottom: none;
}

.hib-guide-entry:hover {
  background: linear-gradient(180deg, rgba(29, 84, 196,0.03) 0%, rgba(29, 84, 196,0.01) 100%);
}

.hib-guide-entry__thumb {
  aspect-ratio: 16 / 10;
  border-radius: var(--hib-radius-icon);
  background-color: var(--hib-surface-cream);
  background-size: cover;
  background-position: center;
  box-shadow: 0 6px 16px -10px rgba(16,24,40,0.32);
  overflow: hidden;
  position: relative;
  flex-shrink: 0;
}

.hib-guide-entry__thumb::before {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(0,0,0,0.35) 100%);
}

.hib-guide-entry__thumb-play {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(255,255,255,0.96);
  color: var(--hib-primary);
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 1;
  transition: background 280ms var(--hib-ease-out-soft, var(--hib-ease)), transform var(--hib-duration-base) var(--hib-ease);
}

.hib-guide-entry:hover .hib-guide-entry__thumb-play {
  transform: scale(1.08);
  background: rgba(29, 84, 196,0.55);
}

.hib-guide-entry__content {
  display: flex;
  flex-direction: column;
  gap: var(--hib-space-1);
  min-width: 0;
}

.hib-guide-entry__title {
  font-family: var(--hib-font-ui);
  font-size: 1.0625rem;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: normal;
  color: var(--hib-ink, #14171A);
  margin-top: 6px;
}

.hib-guide-entry__summary {
  font-size: var(--hib-body-s-size);
  line-height: 1.55;
  color: var(--hib-text-strong);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-top: 4px;
}

.hib-guide-entry__meta {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: var(--hib-micro-label-size);
  letter-spacing: normal;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--hib-text-muted);
  margin-top: var(--hib-space-2);
}

.hib-guide-entry__meta svg {
  width: 13px;
  height: 13px;
  color: var(--hib-primary);
  opacity: 0.8;
}

.hib-guide-entry__cta {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: var(--hib-label-s-size);
  font-weight: 700;
  color: var(--hib-primary);
  white-space: nowrap;
  padding: 8px 10px;
  border-radius: var(--hib-radius-icon);
  border: 1px solid transparent;
  transition: background 240ms var(--hib-ease), border-color 240ms var(--hib-ease);
}

.hib-guide-entry__cta svg {
  width: 14px;
  height: 14px;
  transition: transform var(--hib-duration-base) var(--hib-ease);
}

.hib-guide-entry:hover .hib-guide-entry__cta {
  background: rgba(29, 84, 196,0.06);
  border-color: var(--hib-border-accent);
}

.hib-guide-entry:hover .hib-guide-entry__cta svg {
  transform: translateX(-3px);
}

@media (max-width: 767px) {
  .hib-guide-entry {
    grid-template-columns: 96px 1fr;
    gap: var(--hib-space-4);
    padding: var(--hib-space-4) var(--hib-space-4);
  }
  .hib-guide-entry__cta {
    display: none;
  }
  .hib-guide-entry__content {
    gap: 2px;
  }
  .hib-guide-entry__summary {
    -webkit-line-clamp: 1;
    line-clamp: 1;
  }
}

@media (max-width: 479px) {
  .hib-guide-entry__thumb {
    display: none;
  }
  .hib-guide-entry {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   38. POLICY / REGULATION PAGE
   ============================================================ */

/* --- Policy Hero --- */
.hib-policy-hero {
  padding: clamp(64px, 8vw, 104px) 0 clamp(44px, 5.5vw, 68px);
  background:
    radial-gradient(ellipse 85% 90% at 50% -5%, rgba(29, 84, 196,0.08) 0%, transparent 60%),
    linear-gradient(180deg, var(--hib-domain-soft) 0%, var(--hib-bg) 68%);
  position: relative;
}

.hib-policy-hero__meta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--hib-space-2);
  margin-bottom: var(--hib-space-4);
}

/* A legal document opens an interior page, so its title takes the interior
   PAGE-TITLE role — the same one the directory hero, the guides hero, the
   category hero, the contact panel, the add-professional gate and the
   professional's own name already carry. It was bound to the raw `--hib-h1-size`
   instead, which rendered 72px against that family's 46.08px: the four legal
   documents opened 1.56× louder than the profile of a vetted professional, and
   in a different weight class. Authority on this page is the navy band, the
   badge row and the measure — not a larger number than every other H1. */
.hib-policy-hero__title {
  font-family: var(--hib-font-display);
  font-size: var(--hib-page-title-size);
  font-weight: 900;   /* the authored weight the rest of the page-title family uses */
  line-height: var(--hib-page-title-lh);
  letter-spacing: normal;
  margin-bottom: var(--hib-space-3);
  max-width: var(--hib-policy-hero-title-max);
}

.hib-policy-hero__desc {
  font-size: var(--hib-body-profile-size);
  line-height: 1.65;
  color: var(--hib-text-secondary);
  max-width: 640px;
  margin-bottom: var(--hib-space-5);
}

.hib-policy-hero__stats {
  display: flex;
  gap: var(--hib-space-6);
  font-size: var(--hib-label-s-size);
  color: var(--hib-text-muted);
}

.hib-policy-hero__stat {
  display: flex;
  align-items: center;
  gap: 4px;
}

.hib-policy-hero__stat svg {
  width: 14px;
  height: 14px;
  color: var(--hib-accent);
}

/* --- Principles Grid --- */
.hib-policy-principles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--hib-space-4);
}

.hib-policy-principle {
  display: flex;
  gap: var(--hib-space-4);
  padding: var(--hib-space-5);
  background: var(--hib-surface);
  border: 1px solid var(--hib-border);
  border-radius: var(--hib-radius-s);
}

.hib-policy-principle__icon {
  width: 40px;
  height: 40px;
  border-radius: var(--hib-radius-icon);
  background: var(--hib-domain-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--hib-primary);
}

.hib-policy-principle__icon svg {
  width: 20px;
  height: 20px;
}

.hib-policy-principle__title {
  font-size: var(--hib-body-s-size);
  font-weight: 600;
  margin-bottom: 2px;
}

.hib-policy-principle__desc {
  font-size: var(--hib-label-s-size);
  color: var(--hib-text-secondary);
  line-height: 1.45;   /* meta rung leading */
}

/* --- Standards Sections --- */
.hib-policy-standards {
  max-width: 800px;
}

.hib-policy-standards__section {
  margin-bottom: clamp(var(--hib-space-8), 6vw, var(--hib-space-11));
  padding-bottom: clamp(var(--hib-space-8), 6vw, var(--hib-space-11));
  border-bottom: 1px solid rgba(29, 84, 196,0.09);
}

.hib-policy-standards__section:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}

.hib-policy-standards__heading {
  font-family: var(--hib-font-heading);
  font-size: clamp(1.125rem, 2vw, 1.375rem);
  font-weight: var(--hib-heading-weight-section);
  line-height: var(--hib-band-title-lh);
  letter-spacing: normal;
  color: var(--hib-ink, #14171A);
  margin-bottom: var(--hib-space-4);
  display: flex;
  align-items: center;
  gap: var(--hib-space-3);
}

.hib-policy-standards__heading-number {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--hib-primary) 0%, #4C7CE0 100%);
  box-shadow: 0 4px 10px -4px rgba(29, 84, 196,0.50);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--hib-label-m-size);
  font-weight: 700;
  flex-shrink: 0;
}

.hib-policy-standards__body {
  font-size: var(--hib-body-policy-size);
  line-height: var(--hib-body-policy-lh);
  color: var(--hib-text-strong);
  padding-inline-end: 50px;
}

.hib-policy-standards__body p {
  margin-bottom: var(--hib-space-3);
}

.hib-policy-standards__body p:last-child {
  margin-bottom: 0;
}

@media (max-width: 767px) {
  .hib-policy-standards__body {
    padding-inline-end: 0;
  }
}

/* --- Process Steps --- */
.hib-policy-process__title {
  font-family: var(--hib-font-heading);
  font-size: var(--hib-band-title-size);
  font-weight: var(--hib-heading-weight-section);
  line-height: var(--hib-band-title-lh);
  letter-spacing: normal;
  margin-bottom: var(--hib-space-6);
}

.hib-policy-process__steps {
  display: flex;
  flex-direction: column;
  gap: var(--hib-space-5);
  max-width: 640px;
}

.hib-policy-process__step {
  display: flex;
  gap: var(--hib-space-4);
  align-items: flex-start;
}

.hib-policy-process__step-number {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--hib-primary);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--hib-label-m-size);
  font-weight: 700;
  flex-shrink: 0;
}

.hib-policy-process__step-content {
  padding-top: 6px;
}

.hib-policy-process__step-title {
  font-size: var(--hib-body-s-size);
  font-weight: 600;
  margin-bottom: 2px;
}

.hib-policy-process__step-desc {
  font-size: var(--hib-label-s-size);
  color: var(--hib-text-secondary);
  line-height: 1.55;
}

/* --- Enforcement Callout --- */
.hib-policy-enforcement {
  max-width: 800px;
  padding: clamp(var(--hib-space-5), 3vw, var(--hib-space-7));
  background:
    radial-gradient(ellipse 120% 90% at 100% 0%, rgba(29, 84, 196,0.06) 0%, transparent 55%),
    linear-gradient(180deg, #FFFFFF 0%, var(--hib-surface-cream, #FAFAF5) 100%);
  border: 1px solid var(--hib-border-accent);
  border-inline-start: 3px solid var(--hib-primary);
  border-radius: var(--hib-radius-m);
  box-shadow: 0 6px 20px -14px rgba(29, 84, 196,0.20);
}

.hib-policy-enforcement__title {
  font-family: var(--hib-font-heading);
  font-size: clamp(1.125rem, 1.8vw, 1.375rem);
  font-weight: var(--hib-heading-weight-section);
  line-height: var(--hib-band-title-lh);
  letter-spacing: normal;
  color: var(--hib-ink, #14171A);
  margin-bottom: var(--hib-space-4);
  display: flex;
  align-items: center;
  gap: var(--hib-space-2);
}

.hib-policy-enforcement__title svg {
  width: 20px;
  height: 20px;
  color: var(--hib-primary);
  background: rgba(29, 84, 196,0.10);
  border-radius: 50%;
  padding: 3px;
  box-sizing: content-box;
}

.hib-policy-enforcement__body {
  font-size: var(--hib-body-s-size);
  line-height: 1.78;
  color: var(--hib-text-strong);
}

.hib-policy-enforcement__body p {
  margin-bottom: var(--hib-space-3);
}

.hib-policy-enforcement__body p:last-child {
  margin-bottom: 0;
}

/* Domain overrides */
[data-domain="design"] .hib-policy-hero {
  background: linear-gradient(175deg, var(--hib-domain-panel-soft) 0%, var(--hib-bg) 50%);
}
[data-domain="renovation"] .hib-policy-hero {
  background: linear-gradient(175deg, var(--hib-domain-panel-soft) 0%, var(--hib-bg) 50%);
}
[data-domain="design"] .hib-policy-principle {
  border-color: var(--hib-domain-line);
}

/* ============================================================
   39. CONTACT PAGE
   ============================================================ */

/* --- Contact Hero --- */
.hib-contact-hero {
  padding: clamp(72px, 9vw, 112px) 0 clamp(40px, 5vw, 60px);
  background:
    radial-gradient(ellipse 80% 90% at 50% -10%, rgba(29, 84, 196,0.09) 0%, transparent 65%),
    linear-gradient(180deg, var(--hib-domain-soft) 0%, var(--hib-bg) 72%);
  text-align: center;
  position: relative;
}

.hib-contact-hero__badge {
  display: inline-flex;
  align-items: center;
  gap: var(--hib-space-2);
  padding: 5px 12px;
  background: var(--hib-surface);
  border: 1px solid var(--hib-border);
  border-radius: var(--hib-radius-pill);
  font-size: var(--hib-label-s-size);
  font-weight: 500;
  color: var(--hib-text-secondary);
  margin-bottom: var(--hib-space-5);
  box-shadow: var(--hib-shadow-card);
}

.hib-contact-hero__badge svg {
  width: 14px;
  height: 14px;
  color: var(--hib-accent);
}

.hib-contact-hero__title {
  font-family: var(--hib-font-display);
  font-size: var(--hib-h1-size);
  font-weight: var(--hib-heading-weight-section);
  line-height: var(--hib-h1-lh);
  letter-spacing: normal;
  margin-bottom: var(--hib-space-3);
}

.hib-contact-hero__desc {
  font-size: var(--hib-h5-size);
  line-height: 1.65;
  color: var(--hib-text-secondary);
  max-width: 560px;
  margin: 0 auto var(--hib-space-4);
}

.hib-contact-hero__meta {
  font-size: var(--hib-label-s-size);
  color: var(--hib-text-muted);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
}

.hib-contact-hero__meta svg {
  width: 14px;
  height: 14px;
  color: var(--hib-success);
}

/* --- Contact Options Grid --- */
.hib-contact-options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: var(--hib-space-5);
}

.hib-contact-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: clamp(var(--hib-space-5), 2.5vw, var(--hib-space-7));
  background: #FFFFFF;
  border: 1px solid var(--hib-border-accent);
  border-radius: var(--hib-radius-m);
  cursor: pointer;
  text-decoration: none;
  transition:
    transform 260ms var(--hib-ease),
    border-color 260ms var(--hib-ease),
    box-shadow 260ms var(--hib-ease);
}

.hib-contact-card:hover {
  transform: translateY(-3px);
  border-color: rgba(29, 84, 196,0.36);
  box-shadow:
    0 2px 4px rgba(16,24,40,0.04),
    0 14px 32px -14px rgba(29, 84, 196,0.28);
}

.hib-contact-card__icon {
  width: 48px;
  height: 48px;
  border-radius: var(--hib-radius-s);
  background: radial-gradient(ellipse at 50% 10%, rgba(29, 84, 196,0.16) 0%, rgba(29, 84, 196,0.07) 100%);
  box-shadow: var(--hib-shadow-card);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--hib-space-4);
  color: var(--hib-primary);
  transition: background 360ms var(--hib-ease), color 360ms var(--hib-ease), transform 360ms var(--hib-ease);
}

.hib-contact-card:hover .hib-contact-card__icon {
  background: var(--hib-primary);
  color: #FFFFFF;
  transform: scale(1.06);
}

.hib-contact-card__icon svg {
  width: 22px;
  height: 22px;
}

.hib-contact-card__title {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-body-l-size);
  font-weight: 600;
  margin-bottom: var(--hib-space-1);
}

.hib-contact-card__desc {
  font-size: var(--hib-label-s-size);
  color: var(--hib-text-secondary);
  line-height: 1.5;
}

/* --- Contact Form --- */
.hib-contact-form-section {
  max-width: 640px;
  margin: 0 auto;
}

.hib-contact-form-section__title {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-band-title-size);
  font-weight: 600;
  line-height: 1.30;
  letter-spacing: normal;
  text-align: center;
  margin-bottom: var(--hib-space-7);
}

.hib-contact-form {
  display: flex;
  flex-direction: column;
  gap: var(--hib-space-5);
}

.hib-contact-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--hib-space-4);
}

@media (max-width: 767px) {
  .hib-contact-form__row {
    grid-template-columns: 1fr;
  }
}

/* ── Multi-line control minimum ──────────────────────────────────────────────
   One resting height for every textarea on the site. The contact form
   established 140px privately; the review form had no multi-line control at all
   and fell through to `.hib-field__input`, which is a 50px SINGLE-LINE control
   with `padding: 0 …` — so a `rows="4"` review box rendered 50px tall with zero
   vertical padding. The role, not the value, was what was missing. */
:root { --hib-control-textarea-min: 140px; }

/* The shared field system's multi-line variant. Any form using `.hib-field__input`
   on a <textarea> now gets a real control: the single-line height released, the
   horizontal padding matched vertically, a reading line-height, and vertical-only
   resize so a drag can lengthen the field but never break the form's column. */
textarea.hib-field__input {
  height: auto;
  min-block-size: var(--hib-control-textarea-min);
  padding: var(--hib-space-3) var(--hib-space-4);
  line-height: 1.6;
  /* Vertical only. Free resize let a drag widen the field out of the form's
     column, so the control could be pulled into a shape the composition never
     allowed for; lengthening it is harmless and occasionally wanted. */
  resize: vertical;
  /* Grows with what is being written, then stops and scrolls. A long review no
     longer types into a fixed 140px slot, and the field still cannot run away
     with the page. `field-sizing` is progressive — where it is unsupported the
     min-height above is exactly the previous behaviour. */
  field-sizing: content;
  max-block-size: calc(var(--hib-control-textarea-min) * 2.4);
}

.hib-contact-form__textarea {
  min-height: var(--hib-control-textarea-min);
  padding: var(--hib-space-4);
  border: 1px solid var(--hib-border);
  border-radius: var(--hib-radius-s);
  background: var(--hib-surface);
  color: var(--hib-text);
  font-size: var(--hib-body-m-size);
  line-height: 1.6;
  resize: vertical;
  transition: border-color var(--hib-duration-base) var(--hib-ease),
              box-shadow var(--hib-duration-base) var(--hib-ease);
}

.hib-contact-form__textarea::placeholder {
  color: var(--hib-text-muted);
}

.hib-contact-form__textarea:hover {
  border-color: var(--hib-border-strong);
}

.hib-contact-form__textarea:focus {
  border-color: var(--hib-primary);
  box-shadow: var(--hib-shadow-focus);
  outline: none;
}

.hib-contact-form__submit {
  align-self: center;
  min-width: 200px;
}

/* --- Contact Bottom Trust --- */
.hib-contact-trust {
  text-align: center;
  max-width: 480px;
  margin: 0 auto;
}

.hib-contact-trust__text {
  font-size: var(--hib-body-m-size);
  color: var(--hib-text-secondary);
  line-height: 1.65;
  margin-bottom: var(--hib-space-5);
}

.hib-contact-trust__link {
  color: var(--hib-primary);
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.hib-contact-trust__link:hover {
  color: var(--hib-primary-hover);
}

/* ============================================================
   40. ADD PROFESSIONAL PAGE
   ============================================================ */

/* --- Add Pro Hero --- */
.hib-addpro-hero {
  padding: clamp(72px, 8vw, 120px) 0 clamp(48px, 5vw, 72px);
  background:
    radial-gradient(ellipse 60% 80% at 50% 0%, rgba(29, 84, 196,0.10) 0%, transparent 65%),
    linear-gradient(180deg, var(--hib-domain-soft) 0%, var(--hib-bg) 70%);
  text-align: center;
  position: relative;
}

.hib-addpro-hero__badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  background: rgba(255,255,255,0.9);
  border: 1px solid rgba(29, 84, 196,0.16);
  border-radius: var(--hib-radius-pill);
  font-family: var(--hib-font-ui);
  font-size: var(--hib-micro-label-size);
  font-weight: 700;
  letter-spacing: normal;
  text-transform: uppercase;
  color: var(--hib-primary);
  margin-bottom: var(--hib-space-4);
  box-shadow: 0 8px 22px -14px rgba(29, 84, 196,0.32);
}

.hib-addpro-hero__badge svg {
  width: 16px;
  height: 16px;
  color: var(--hib-primary);
}

.hib-addpro-hero__title {
  font-family: var(--hib-font-display);
  font-size: clamp(2rem, 4.4vw, 3.25rem);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: normal;
  color: var(--hib-ink, #14171A);
  max-width: 22ch;
  margin-inline: auto;
  margin-bottom: var(--hib-space-4);
}

.hib-addpro-hero__desc {
  font-size: clamp(1.0625rem, 1.4vw, 1.1875rem);
  line-height: 1.7;
  color: var(--hib-text-strong);
  max-width: 60ch;
  margin: 0 auto var(--hib-space-7);
}

.hib-addpro-hero__trust {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--hib-space-3);
  padding: 10px 16px;
  background: rgba(255,255,255,0.72);
  border: 1px solid var(--hib-border-accent);
  border-radius: var(--hib-radius-pill);
  width: fit-content;
  margin-inline: auto;
  max-width: 100%;
}

.hib-addpro-hero__trust-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: var(--hib-label-s-size);
  font-weight: 600;
  color: var(--hib-text-strong);
  white-space: nowrap;
}

.hib-addpro-hero__trust-item svg {
  width: 16px;
  height: 16px;
  padding: 2px;
  background: rgba(29, 84, 196,0.10);
  border-radius: 50%;
  color: var(--hib-primary);
  box-sizing: content-box;
}

/* --- Process Steps (reuse style, horizontal) --- */
.hib-addpro-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(var(--hib-space-4), 2.4vw, var(--hib-space-6));
  counter-reset: addstep;
  position: relative;
}

/* --- Stepper --- */
.hib-stepper {
  max-width: 760px;
  margin: 0 auto;
  padding: clamp(var(--hib-space-6), 3vw, var(--hib-space-8));
  background: linear-gradient(180deg, #FFFFFF 0%, var(--hib-surface-cream, #FAFAF5) 100%);
  border: 1px solid var(--hib-hairline, var(--hib-border-accent));
  border-radius: var(--hib-radius-l);
  box-shadow: var(--hib-shadow-m);
}

/* Progress bar */
.hib-stepper__progress {
  display: flex;
  align-items: center;
  gap: var(--hib-space-2);
  margin-bottom: var(--hib-space-8);
}

.hib-stepper__progress-step {
  flex: 1;
  height: 4px;
  border-radius: 2px;
  background: var(--hib-neutral-200);
  transition: background var(--hib-duration-base) var(--hib-ease);
}

.hib-stepper__progress-step--active,
.hib-stepper__progress-step--completed {
  background: var(--hib-primary);
}

.hib-stepper__progress-step--active {
  background: var(--hib-accent);
}

/* Step header */
.hib-stepper__header {
  display: flex;
  align-items: center;
  gap: var(--hib-space-3);
  margin-bottom: var(--hib-space-6);
}

.hib-stepper__step-badge {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--hib-primary);
  color: white;
  font-size: var(--hib-label-m-size);
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.hib-stepper__step-title {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-band-title-size);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: normal;
}

.hib-stepper__step-desc {
  font-size: var(--hib-label-s-size);
  color: var(--hib-text-muted);
  margin-top: 2px;
}

/* Step content */
.hib-stepper__content {
  display: flex;
  flex-direction: column;
  gap: var(--hib-space-5);
}

/* Step nav */
.hib-stepper__nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: var(--hib-space-8);
  padding-top: var(--hib-space-6);
  border-top: 1px solid var(--hib-divider);
}

.hib-stepper__nav-info {
  font-size: var(--hib-label-s-size);
  color: var(--hib-text-muted);
}

.hib-stepper__nav-buttons {
  display: flex;
  gap: var(--hib-space-3);
}

/* Hidden steps */
.hib-stepper__step {
  display: none;
}

.hib-stepper__step--active {
  display: block;
}

/* --- Specialties selector --- */
.hib-specialties-select {
  display: flex;
  flex-wrap: wrap;
  gap: var(--hib-space-2);
}

.hib-specialties-select__option {
  display: inline-flex;
  align-items: center;
  gap: var(--hib-space-2);
  padding: var(--hib-space-2) var(--hib-space-4);
  border-radius: var(--hib-radius-pill);
  border: 1px solid var(--hib-border);
  font-size: var(--hib-label-m-size);
  font-weight: 500;
  color: var(--hib-text-secondary);
  background: var(--hib-surface);
  cursor: pointer;
  transition: border-color var(--hib-duration-base) var(--hib-ease), background var(--hib-duration-base) var(--hib-ease), color var(--hib-duration-base) var(--hib-ease);
  user-select: none;
}

.hib-specialties-select__option:hover {
  border-color: var(--hib-neutral-400);
}

.hib-specialties-select__option.is-selected {
  background: var(--hib-domain-panel-soft);
  border-color: var(--hib-primary);
  color: var(--hib-primary);
}

.hib-specialties-select__option.is-selected::before {
  content: "✓";
  font-size: var(--hib-label-s-size);
  font-weight: 700;
}

/* --- Upload cards --- */
.hib-upload-zone {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--hib-space-3);
  padding: var(--hib-space-8) var(--hib-space-6);
  border: 2px dashed var(--hib-border);
  border-radius: var(--hib-radius-m);
  background: var(--hib-neutral-50);
  cursor: pointer;
  transition: border-color var(--hib-duration-base) var(--hib-ease),
              background var(--hib-duration-base) var(--hib-ease);
  text-align: center;
}

.hib-upload-zone:hover {
  border-color: var(--hib-accent);
  background: var(--hib-domain-soft);
}

.hib-upload-zone__icon {
  width: 40px;
  height: 40px;
  color: var(--hib-text-muted);
}

.hib-upload-zone__label {
  font-size: var(--hib-body-s-size);
  font-weight: 500;
  color: var(--hib-text);
}

.hib-upload-zone__hint {
  font-size: var(--hib-label-s-size);
  color: var(--hib-text-muted);
}

.hib-upload-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: var(--hib-space-3);
}

.hib-upload-gallery__slot {
  aspect-ratio: 1;
  border-radius: var(--hib-radius-s);
  border: 2px dashed var(--hib-border);
  background: var(--hib-neutral-50);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 1.5rem;
  color: var(--hib-text-muted);
  transition: border-color var(--hib-duration-base) var(--hib-ease);
}

.hib-upload-gallery__slot:hover {
  border-color: var(--hib-accent);
}

/* --- Summary review --- */
.hib-addpro-summary {
  display: flex;
  flex-direction: column;
  gap: var(--hib-space-5);
}

.hib-addpro-summary__group {
  padding: var(--hib-space-5);
  background: var(--hib-surface);
  border: 1px solid var(--hib-border);
  border-radius: var(--hib-radius-s);
}

.hib-addpro-summary__group-title {
  font-size: var(--hib-label-s-size);
  font-weight: 600;
  color: var(--hib-text-muted);
  text-transform: uppercase;
  letter-spacing: normal;
  margin-bottom: var(--hib-space-3);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.hib-addpro-summary__group-edit {
  font-size: var(--hib-label-s-size);
  font-weight: 500;
  color: var(--hib-accent);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.hib-addpro-summary__row {
  display: flex;
  justify-content: space-between;
  padding: var(--hib-space-2) 0;
  font-size: var(--hib-body-s-size);
  border-bottom: 1px solid var(--hib-divider);
}

.hib-addpro-summary__row:last-child {
  border-bottom: none;
}

.hib-addpro-summary__label {
  color: var(--hib-text-muted);
  font-size: var(--hib-label-s-size);
}

.hib-addpro-summary__value {
  font-weight: 500;
  color: var(--hib-text);
  text-align: start;
}

/* Checkboxes */
.hib-checkbox {
  display: flex;
  align-items: flex-start;
  gap: var(--hib-space-3);
  cursor: pointer;
}

.hib-checkbox__input {
  width: 20px;
  height: 20px;
  border-radius: var(--hib-radius-tiny);
  border: 2px solid var(--hib-border);
  flex-shrink: 0;
  margin-top: 2px;
  appearance: none;
  background: var(--hib-surface);
  cursor: pointer;
  transition: background var(--hib-duration-base) var(--hib-ease), border-color var(--hib-duration-base) var(--hib-ease);
}

.hib-checkbox__input:checked {
  background: var(--hib-primary);
  border-color: var(--hib-primary);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='4' stroke-linecap='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
}

.hib-checkbox__label {
  font-size: var(--hib-body-s-size);
  line-height: 1.5;
  color: var(--hib-text-secondary);
}

/* --- Info notes block --- */
.hib-addpro-info {
  max-width: 760px;
  margin: 0 auto;
  padding: clamp(var(--hib-space-5), 3vw, var(--hib-space-7));
  background:
    radial-gradient(ellipse 120% 90% at 0% 0%, rgba(29, 84, 196,0.06) 0%, transparent 55%),
    linear-gradient(180deg, #FFFFFF 0%, var(--hib-surface-cream, #FAFAF5) 100%);
  border: 1px solid var(--hib-hairline, var(--hib-border-accent));
  border-radius: var(--hib-radius-section);
  box-shadow: var(--hib-shadow-m);
}

.hib-addpro-info__title {
  font-family: var(--hib-font-ui);
  font-size: calc(var(--hib-band-title-size) * 0.68);
  font-weight: 700;
  line-height: calc(var(--hib-band-title-lh) * 0.96);
  letter-spacing: normal;
  margin-bottom: var(--hib-space-4);
  display: flex;
  align-items: center;
  gap: var(--hib-space-2);
}

.hib-addpro-info__title svg {
  width: 18px;
  height: 18px;
  color: var(--hib-info);
}

.hib-addpro-info__list {
  display: flex;
  flex-direction: column;
  gap: var(--hib-space-3);
}

.hib-addpro-info__item {
  display: flex;
  align-items: flex-start;
  gap: var(--hib-space-2);
  font-size: var(--hib-label-m-size);
  line-height: 1.5;
  color: var(--hib-text-secondary);
}

.hib-addpro-info__item svg {
  width: 16px;
  height: 16px;
  color: var(--hib-info);
  flex-shrink: 0;
  margin-top: 2px;
}

/* --- Support CTA --- */
.hib-addpro-support {
  max-width: 760px;
  margin: 0 auto;
  padding: clamp(var(--hib-space-6), 3vw, var(--hib-space-8));
  background:
    linear-gradient(135deg, rgba(29, 84, 196,0.04) 0%, transparent 60%),
    #FFFFFF;
  border: 1px solid var(--hib-hairline, var(--hib-border-accent));
  border-radius: var(--hib-radius-section);
  text-align: center;
  box-shadow: var(--hib-shadow-card);
  position: relative;
}

/* Intentional exception (typography audit D4): the support box keeps its soft
   Ploni voice — a quiet helper, deliberately not a Danidin heading. */
.hib-addpro-support__title {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-band-title-size);
  font-weight: 600;
  line-height: 1.30;
  letter-spacing: normal;
  margin-bottom: var(--hib-space-3);
}

.hib-addpro-support__text {
  font-size: var(--hib-body-s-size);
  color: var(--hib-text-secondary);
  line-height: 1.6;
  margin-bottom: var(--hib-space-5);
}

/* --- Success state --- */
.hib-addpro-success {
  text-align: center;
  padding: var(--hib-space-12) var(--hib-space-6);
  max-width: 520px;
  margin: 0 auto;
  display: none;
}

.hib-addpro-success.is-visible {
  display: block;
}

.hib-addpro-success__icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--hib-success-soft);
  color: var(--hib-success);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto var(--hib-space-6);
}

.hib-addpro-success__icon svg {
  width: 32px;
  height: 32px;
}

.hib-addpro-success__title {
  font-family: var(--hib-font-display);
  font-size: var(--hib-h2-size);
  font-weight: var(--hib-heading-weight-section);
  line-height: var(--hib-h2-lh);
  letter-spacing: normal;
  margin-bottom: var(--hib-space-3);
}

.hib-addpro-success__text {
  font-size: var(--hib-body-m-size);
  color: var(--hib-text-secondary);
  line-height: 1.6;
  margin-bottom: var(--hib-space-7);
}

/* ============================================================
   41. ADD PRO — DOMAIN-AWARE SPECIALTIES
   ============================================================ */

/* Empty / waiting state for specialties */
.hib-specialties-select__empty {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--hib-space-2);
  padding: var(--hib-space-7) var(--hib-space-5);
  background: var(--hib-neutral-50);
  border: 1px dashed var(--hib-border);
  border-radius: var(--hib-radius-s);
  font-size: var(--hib-label-m-size);
  color: var(--hib-text-muted);
  text-align: center;
}

.hib-specialties-select__empty svg {
  width: 18px;
  height: 18px;
  color: var(--hib-neutral-400);
}

/* Domain hint text under specialties */
.hib-specialties-select__hint {
  font-size: var(--hib-label-s-size);
  color: var(--hib-text-muted);
  margin-top: var(--hib-space-3);
  line-height: 1.5;
}

.hib-stepper__step[data-active-domain] .hib-specialties-select__option.is-selected {
  background: var(--hib-domain-panel-soft);
  border-color: var(--hib-primary);
  color: var(--hib-primary);
}

/* ============================================================
   42. HIERARCHICAL SERVICE AREAS SELECTOR
   ============================================================ */

/* --- Section header with clear action --- */
.hib-areas-selector__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--hib-space-2);
}

/* A destructive control labelled in words at 13px — text, so it reads in the
   error ink; its glyph keeps the signal colour (P3d3, F17). */
.hib-areas-selector__clear {
  font-size: var(--hib-label-s-size);
  font-weight: 500;
  color: var(--hib-error-ink);
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 4px;
  transition: opacity var(--hib-duration-base) var(--hib-ease);
}

.hib-areas-selector__clear:hover {
  opacity: 0.7;
}

.hib-areas-selector__clear svg {
  width: 14px;
  height: 14px;
  color: var(--hib-error);
}

.hib-areas-selector__help {
  font-size: var(--hib-label-s-size);
  color: var(--hib-text-muted);
  line-height: 1.5;
  margin-bottom: var(--hib-space-5);
}

/* --- Regions as accordion sections --- */
.hib-areas-accordion {
  display: flex;
  flex-direction: column;
  gap: var(--hib-space-2);
  margin-bottom: var(--hib-space-4);
}

.hib-area-section {
  border: 1px solid var(--hib-border);
  border-radius: var(--hib-radius-s);
  overflow: hidden;
  background: var(--hib-surface);
  transition: border-color var(--hib-duration-base) var(--hib-ease);
}

.hib-area-section:hover {
  border-color: var(--hib-neutral-400);
}

.hib-area-section.is-full {
  border-color: var(--hib-primary);
}

.hib-area-section.is-partial {
  border-color: var(--hib-accent);
  border-style: solid;
}

.hib-area-section__header {
  display: flex;
  align-items: center;
  gap: 0;
}

/* Checkbox/select button */
.hib-area-section__select {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  flex-shrink: 0;
  border: none;
  background: none;
  cursor: pointer;
  padding: 0;
}

.hib-area-section__indicator {
  width: 20px;
  height: 20px;
  border-radius: var(--hib-radius-tiny);
  border: 2px solid var(--hib-border);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background var(--hib-duration-base) var(--hib-ease), border-color var(--hib-duration-base) var(--hib-ease);
}

.hib-area-section__indicator svg {
  width: 12px;
  height: 12px;
  color: transparent;
}

.hib-area-section.is-full .hib-area-section__indicator {
  background: var(--hib-primary);
  border-color: var(--hib-primary);
}

.hib-area-section.is-full .hib-area-section__indicator svg {
  color: white;
}

.hib-area-section.is-partial .hib-area-section__indicator {
  background: var(--hib-accent);
  border-color: var(--hib-accent);
}

.hib-area-section.is-partial .hib-area-section__indicator svg {
  color: white;
}

/* Toggle / expand button */
.hib-area-section__toggle {
  flex: 1;
  display: flex;
  align-items: center;
  gap: var(--hib-space-3);
  padding: var(--hib-space-4) 0 var(--hib-space-4) var(--hib-space-4);
  border: none;
  background: none;
  cursor: pointer;
  text-align: right;
}

.hib-area-section__name {
  font-size: var(--hib-body-s-size);
  font-weight: 600;
  color: var(--hib-text);
  flex: 1;
}

.hib-area-section__count {
  font-size: var(--hib-label-s-size);
  color: var(--hib-text-muted);
  white-space: nowrap;
}

.hib-area-section__chevron {
  width: 18px;
  height: 18px;
  color: var(--hib-text-muted);
  transition: transform var(--hib-duration-base) var(--hib-ease);
  display: flex;
  align-items: center;
}

.hib-area-section__chevron svg {
  width: 18px;
  height: 18px;
}

.hib-area-section.is-open .hib-area-section__chevron {
  transform: rotate(180deg);
}

/* Cities panel — hidden by default */
.hib-area-section__cities {
  display: none;
  padding: 0 var(--hib-space-5) var(--hib-space-4) 52px;
  flex-wrap: wrap;
  gap: 6px;
}

.hib-area-section.is-open .hib-area-section__cities {
  display: flex;
}

@media (max-width: 767px) {
  .hib-area-section__cities {
    padding-right: var(--hib-space-4);
    padding-left: var(--hib-space-4);
  }
  .hib-area-section__select {
    width: 44px;
    height: 44px;
  }
}

.hib-area-city {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 12px;
  border-radius: var(--hib-radius-pill);
  border: 1px solid var(--hib-border);
  font-size: var(--hib-label-s-size);
  font-weight: 500;
  color: var(--hib-text-secondary);
  background: var(--hib-surface);
  cursor: pointer;
  transition: border-color var(--hib-duration-base) var(--hib-ease), background var(--hib-duration-base) var(--hib-ease), color var(--hib-duration-base) var(--hib-ease);
  user-select: none;
}

.hib-area-city:hover {
  border-color: var(--hib-neutral-400);
}

.hib-area-city.is-selected {
  background: var(--hib-domain-soft);
  border-color: var(--hib-primary);
  color: var(--hib-primary);
}

.hib-area-city.is-selected::before {
  content: "✓";
  font-size: 0.625rem;
  font-weight: 700;
}

/* (toggle is now per-section via accordion chevron) */

/* --- Selection summary --- */
.hib-areas-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--hib-space-3);
  padding: var(--hib-space-4) var(--hib-space-5);
  background: var(--hib-domain-soft);
  border-radius: var(--hib-radius-s);
  font-size: var(--hib-label-s-size);
  margin-top: var(--hib-space-4);
}

.hib-areas-summary__text {
  color: var(--hib-text);
  font-weight: 500;
}

.hib-areas-summary__text strong {
  color: var(--hib-primary);
}

.hib-areas-summary__count {
  color: var(--hib-text-muted);
  font-size: var(--hib-label-s-size);
}

/* Empty summary */
.hib-areas-summary--empty {
  background: var(--hib-neutral-50);
  color: var(--hib-text-muted);
  font-style: italic;
}

/* ============================================================
   44. TYPOGRAPHY ROLE ASSIGNMENTS
   Font-family dispatch for components whose definition lives
   in their own section. Self-contained components (those that
   already declare font-family in their component block) are
   not repeated here.
   ============================================================ */

/* hib-pro-card-v2__name typography is owned by the card component block */
.hib-pro-card__name {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-body-m-size);
  font-weight: 700;
}

/* — Navigation & chrome — */
.hib-header__link,
.hib-mobile-menu__link { font-family: var(--hib-font-ui); }

.hib-footer__brand {
  font-family: var(--hib-font-display);
  font-weight: var(--hib-heading-weight-section);
  letter-spacing: normal;
}

.hib-footer__heading { font-family: var(--hib-font-ui); }

/* — Labels, chips, badges, micro-text — */
.hib-badge,
.hib-specialty-chip,
.hib-pro-card-v2__tag,
.hib-profile-areas__chip,
.hib-profile-specialties__item,
.hib-area-city,
.hib-project-badge,
.hib-trust-micro,
.hib-signal--available { font-family: var(--hib-font-ui); }

/* — Review card text — */
.hib-review-card__text { font-family: var(--hib-font-body); }

/* — Design domain: Shabtai premium moments — */

[data-domain="design"] .hib-hero__title {
  font-family: var(--hib-font-display-design);
  font-weight: 400;
  font-size: var(--hib-design-display-xl-size);
  line-height: var(--hib-design-display-xl-lh);
  letter-spacing: normal;
  max-width: var(--hib-display-heading-max-width);
}

[data-domain="design"] .hib-profile-hero__name {
  font-family: var(--hib-font-display-design);
  font-weight: 400;
  font-size: var(--hib-design-display-l-size);
  line-height: var(--hib-design-display-l-lh);
  letter-spacing: normal;
  max-width: var(--hib-display-heading-max-width);
}

[data-domain="design"] .hib-profile-bottom-cta__title {
  font-family: var(--hib-font-display-design);
  font-weight: 400;
  font-size: var(--hib-design-h2-size);
  line-height: var(--hib-design-h2-lh);
  letter-spacing: normal;
}

/* — Domain heading character — */

[data-domain="plumbing"] .hib-hero__title   { max-width: 600px; }
[data-domain="plumbing"] .hib-hero__subtitle { max-width: 520px; line-height: 1.65; }

[data-domain="renovation"] .hib-hero__title   { max-width: 660px; }
[data-domain="renovation"] .hib-hero__subtitle { max-width: 540px; line-height: 1.72; }

[data-domain="design"] .hib-hero__subtitle {
  font-size: var(--hib-body-m-size);
  font-weight: 300;
  line-height: 1.8;
  max-width: 460px;
}
[data-domain="design"] .hib-section-header {
  margin-bottom: var(--hib-section-header-mb);
}
[data-domain="design"] .hib-section-header__title {
  font-family: var(--hib-font-display-design);
  font-weight: 400;
  font-size: var(--hib-design-h2-size);
  line-height: var(--hib-design-h2-lh);
  letter-spacing: normal;
}

/* --- Section rhythm: first section after hero tighter --- */
.hib-hero + .hib-section,
.hib-hero + .hib-section--compact,
.hib-profile-hero + .hib-section,
.hib-profile-hero + .hib-section--compact {
  padding-top: var(--hib-space-9);
}

@media (max-width: 767px) {
  .hib-hero + .hib-section,
  .hib-hero + .hib-section--compact,
  .hib-profile-hero + .hib-section,
  .hib-profile-hero + .hib-section--compact {
    padding-top: var(--hib-space-7);
  }
}

/* --- Trust strip: clean spacing on mobile --- */
@media (max-width: 767px) {
  .hib-trust-strip {
    gap: var(--hib-space-4) var(--hib-space-6);
  }
}

/* --- Mobile: search module field density --- */
@media (max-width: 767px) {
  .hib-search-module .hib-field__input,
  .hib-search-module .hib-field__input--select {
    height: 46px;
    font-size: var(--hib-body-s-size);
  }
  .hib-search-module__fields {
    gap: var(--hib-space-2);
  }
  .hib-search-module__btn {
    height: 48px;
    margin-top: var(--hib-space-1);
  }
  .hib-search-module__header {
    margin-bottom: var(--hib-space-3);
  }
}

/* --- Mobile: pro cards denser grid --- */
@media (max-width: 767px) {
  .hib-pros-grid {
    gap: var(--hib-space-4);
  }
  .hib-pro-card-v2__tags {
    gap: 4px;
  }
  .hib-pro-card-v2__tag {
    padding: 3px 8px;
    font-size: var(--hib-micro-label-size);
  }
}

/* --- Mobile: specialties horizontal scroll --- */
@media (max-width: 767px) {
  .hib-specialties-grid {
    display: flex;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: var(--hib-space-2);
    padding-bottom: var(--hib-space-2);
    margin-inline: calc(-1 * var(--hib-page-padding));
    padding-inline: var(--hib-page-padding);
  }
  .hib-specialties-grid::-webkit-scrollbar {
    display: none;
  }
  .hib-specialty-chip {
    flex-shrink: 0;
    padding: var(--hib-space-3) var(--hib-space-4);
    font-size: var(--hib-label-m-size);
    white-space: nowrap;
  }
}

/* --- Mobile: benefits row layout --- */
@media (max-width: 767px) {
  .hib-benefits {
    grid-template-columns: 1fr;
    gap: var(--hib-space-3);
  }
  .hib-benefit {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: var(--hib-space-4);
    padding: var(--hib-space-4) var(--hib-space-5);
  }
  .hib-benefit__icon {
    margin-bottom: 0;
    width: 40px;
    height: 40px;
    flex-shrink: 0;
  }
  .hib-benefit__title {
    margin-bottom: var(--hib-space-1);
  }
  .hib-benefit__desc {
    font-size: var(--hib-label-s-size);
  }
}

/* --- Mobile: steps row layout --- */
@media (max-width: 767px) {
  .hib-steps {
    gap: var(--hib-space-5);
  }
  .hib-step {
    display: flex;
    align-items: flex-start;
    gap: var(--hib-space-4);
    text-align: right;
  }
  .hib-step__number {
    margin: 0;
    width: 44px;
    height: 44px;
    font-size: var(--hib-h5-size);
    flex-shrink: 0;
  }
  .hib-step__desc {
    margin: 0;
    max-width: none;
  }
}

/* --- Mobile: FAQ tighter padding --- */
@media (max-width: 767px) {
  .hib-faq__trigger {
    padding: var(--hib-space-4) var(--hib-space-4);
    font-size: var(--hib-body-s-size);
  }
  .hib-faq__body {
    padding: 0 var(--hib-space-4) var(--hib-space-4);
    font-size: var(--hib-label-m-size);
  }
}

/* --- Mobile: results sort horizontal scroll --- */
@media (max-width: 767px) {
  .hib-results-summary {
    flex-direction: column;
    align-items: stretch;
    gap: var(--hib-space-3);
  }
  .hib-results-summary__sort {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    flex-wrap: nowrap;
    padding-bottom: var(--hib-space-1);
  }
  .hib-results-summary__sort::-webkit-scrollbar {
    display: none;
  }
}

/* --- Mobile: video card thumbs shorter --- */
@media (max-width: 767px) {
  .hib-video-grid {
    gap: var(--hib-space-4);
  }
  .hib-video-card__thumb {
    aspect-ratio: 2 / 1;
  }
  .hib-video-card__play {
    width: 44px;
    height: 44px;
  }
  .hib-video-card__play svg {
    width: 18px;
    height: 18px;
  }
}

/* --- Mobile: contact cards 2-col --- */
@media (max-width: 767px) {
  .hib-contact-options {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--hib-space-3);
  }
  .hib-contact-card {
    padding: var(--hib-space-4);
  }
  .hib-contact-card__icon {
    width: 36px;
    height: 36px;
    margin-bottom: var(--hib-space-3);
  }
  .hib-contact-card__icon svg {
    width: 18px;
    height: 18px;
  }
  .hib-contact-card__title {
    font-size: var(--hib-body-s-size);
  }
  .hib-contact-card__desc {
    font-size: var(--hib-label-m-size);
  }
}

/* --- Mobile: stepper nav full-width buttons --- */
@media (max-width: 767px) {
  .hib-stepper__nav {
    flex-direction: column-reverse;
    gap: var(--hib-space-3);
  }
  .hib-stepper__nav-buttons {
    display: flex;
    flex-direction: column;
    gap: var(--hib-space-2);
    width: 100%;
  }
  .hib-stepper__nav-buttons .hib-btn {
    width: 100%;
  }
  .hib-stepper__nav-info {
    text-align: center;
    padding-top: var(--hib-space-2);
  }
}

/* --- Mobile: area city tap targets --- */
@media (max-width: 767px) {
  .hib-area-city {
    padding: 7px 12px;
    min-height: 36px;
  }
  .hib-area-section__cities {
    gap: 8px;
  }
}

/* --- Mobile: profile hero — summary before media --- */
@media (max-width: 767px) {
  .hib-profile-hero__grid {
    display: flex;
    flex-direction: column;
  }
  .hib-profile-hero__summary {
    order: -1;
  }
  .hib-profile-hero__media {
    max-height: 200px;
    border-radius: var(--hib-radius-m);
  }
}

/* --- Policy process — contained card wrapper --- */
.hib-policy-process {
  padding: var(--hib-space-8);
  background: var(--hib-surface);
  border: 1px solid var(--hib-border);
  border-radius: var(--hib-radius-l);
}

@media (max-width: 767px) {
  .hib-policy-process {
    padding: var(--hib-space-5);
  }
}

/* ============================================================
   HOMEPAGE REDESIGN — Editorial gateway
   Domain-selection hero, trust strip, streamlined narrative
   ============================================================ */

/* --- Home Hero: full-presence editorial block --- */
.hib-home-hero {
  position: relative;
  overflow: hidden;
  padding: var(--hib-hero-home-pt) 0 var(--hib-hero-home-pb);
}

.hib-home-hero__bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: url("../images/hero-home.png");
  background-size: cover;
  background-position: center 50%;
  background-repeat: no-repeat;
}

.hib-home-hero__gradient {
  position: absolute;
  inset: 0;
  background:
    /* horizontal: transparent left (image) → opaque right (text) */
    linear-gradient(
      90deg,
      rgba(249,249,247,0.00)  0%,
      rgba(249,249,247,0.06) 22%,
      rgba(249,249,247,0.32) 44%,
      rgba(249,249,247,0.74) 62%,
      rgba(249,249,247,0.94) 78%,
      rgba(249,249,247,0.99) 100%
    ),
    /* vertical: fade bottom into page background */
    linear-gradient(
      180deg,
      rgba(249,249,247,0.00)  0%,
      rgba(249,249,247,0.00) 46%,
      rgba(249,249,247,0.55) 74%,
      rgba(249,249,247,0.97) 100%
    );
}

.hib-home-hero__grid-pattern {
  position: absolute;
  inset: 0;
  opacity: 0.022;
  background-image:
    radial-gradient(circle at 30% 40%, var(--hib-primary) 1.2px, transparent 1.2px),
    radial-gradient(circle at 70% 20%, var(--hib-primary) 0.8px, transparent 0.8px);
  background-size: 52px 52px;
}

/* --- Hero content: RTL-start aligned headline block --- */
.hib-home-hero__content {
  position: relative;
  z-index: 1;
  text-align: right;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  max-width: 560px;
  margin-bottom: clamp(40px, 6vw, 72px);
}

.hib-home-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--hib-space-2);
  padding: 7px 16px;
  background: var(--hib-surface);
  border: 1px solid var(--hib-border);
  border-radius: var(--hib-radius-pill);
  font-size: var(--hib-label-s-size);
  font-weight: 500;
  color: var(--hib-text-secondary);
  margin-bottom: var(--hib-space-6);
  box-shadow: var(--hib-shadow-card);
  width: max-content;
}

.hib-home-hero__eyebrow svg {
  width: 16px;
  height: 16px;
  color: var(--hib-accent);
  flex-shrink: 0;
}

.hib-home-hero__title {
  font-family: var(--hib-font-display);
  font-size: var(--hib-display-xl-size);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: normal;
  color: var(--hib-text);
  max-width: 680px;
  margin-bottom: var(--hib-space-6);
  text-shadow: 0 0 36px rgba(249,249,247,0.98);
}

.hib-home-hero__subtitle {
  max-width: 520px;
  color: var(--hib-text-secondary);
  font-size: clamp(1rem, 1.5vw, 1.1875rem);
  line-height: 1.72;
  text-shadow: 0 0 28px rgba(249,249,247,0.96);
}

/* --- Domain gateway cards --- */
.hib-home-domains {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--hib-space-5);
}

.hib-home-domain {
  display: flex;
  flex-direction: column;
  background: var(--hib-surface);
  border-radius: var(--hib-radius-l);
  border: 1px solid var(--hib-border);
  overflow: hidden;
  text-decoration: none;
  transition:
    box-shadow var(--hib-duration-slow) var(--hib-ease),
    transform var(--hib-duration-slow) var(--hib-ease),
    border-color var(--hib-duration-slow) var(--hib-ease);
  cursor: pointer;
}

.hib-home-domain:hover {
  transform: translateY(-4px);
  box-shadow:
    0 20px 48px rgba(16,24,40,.10),
    0 6px 16px rgba(16,24,40,.06);
  border-color: var(--hib-primary);
}

.hib-home-domain:focus-visible {
  outline: 2px solid var(--hib-accent);
  outline-offset: 2px;
}

/* Visual zone: domain-colored top with icon */
.hib-home-domain__visual {
  position: relative;
  height: clamp(120px, 14vw, 168px);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

/* Domain-specific visual backgrounds */
[data-domain="plumbing"] .hib-home-domain__visual {
  background:
    radial-gradient(ellipse 80% 70% at 50% 60%, rgba(29, 84, 196,.12) 0%, transparent 70%),
    linear-gradient(170deg, #E2F1F7 0%, #EFF8FB 100%);
}

[data-domain="renovation"] .hib-home-domain__visual {
  background:
    radial-gradient(ellipse 80% 70% at 50% 60%, rgba(90,151,160,.10) 0%, transparent 70%),
    linear-gradient(170deg, #DFF0F1 0%, #EEF8F9 100%);
}

[data-domain="design"] .hib-home-domain__visual {
  background:
    radial-gradient(ellipse 80% 70% at 50% 60%, rgba(122,116,110,.06) 0%, transparent 70%),
    linear-gradient(170deg, #ECEAE6 0%, #F4F2F0 100%);
}

.hib-home-domain__icon-wrap {
  width: 72px;
  height: 72px;
  border-radius: var(--hib-radius-m);
  background: var(--hib-surface);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--hib-primary);
  box-shadow:
    0 4px 16px rgba(16,24,40,.08),
    0 1px 4px rgba(16,24,40,.04);
  transition: transform var(--hib-duration-slow) var(--hib-ease);
}

.hib-home-domain:hover .hib-home-domain__icon-wrap {
  transform: scale(1.06);
}

/* Body zone */
.hib-home-domain__body {
  padding: var(--hib-space-6) var(--hib-space-6) var(--hib-space-7);
  display: flex;
  flex-direction: column;
  flex: 1;
}

.hib-home-domain__title {
  font-family: var(--hib-font-display);
  font-size: clamp(1.25rem, 2vw, 1.5rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: normal;
  color: var(--hib-text);
  margin-bottom: var(--hib-space-2);
}

.hib-home-domain__desc {
  font-size: var(--hib-label-m-size);
  line-height: 1.6;
  color: var(--hib-text-secondary);
  margin-bottom: var(--hib-space-5);
  flex: 1;
}

.hib-home-domain__cta {
  display: inline-flex;
  align-items: center;
  gap: var(--hib-space-2);
  font-family: var(--hib-font-ui);
  font-size: var(--hib-label-m-size);
  font-weight: 600;
  color: var(--hib-primary);
  transition: gap var(--hib-duration-base) var(--hib-ease);
  margin-top: auto;
}

.hib-home-domain__cta svg {
  transition: transform var(--hib-duration-base) var(--hib-ease);
}

.hib-home-domain:hover .hib-home-domain__cta {
  gap: var(--hib-space-3);
}

.hib-home-domain:hover .hib-home-domain__cta svg {
  transform: translateX(-3px);
}

/* --- Domain card tablet / mobile --- */
@media (max-width: 1023px) {
  .hib-home-domains {
    grid-template-columns: 1fr;
    max-width: 520px;
    margin: 0 auto;
    gap: var(--hib-space-4);
  }

  .hib-home-domain {
    flex-direction: row;
    align-items: stretch;
  }

  .hib-home-domain__visual {
    width: 140px;
    height: auto;
    flex-shrink: 0;
    border-radius: 0;
  }

  .hib-home-domain__body {
    padding: var(--hib-space-5);
  }

  .hib-home-domain__icon-wrap {
    width: 56px;
    height: 56px;
    border-radius: var(--hib-radius-s);
  }

  .hib-home-domain__icon-wrap svg {
    width: 26px;
    height: 26px;
  }
}

@media (max-width: 767px) {
  .hib-home-hero {
    padding: clamp(48px, 8vw, 72px) 0 clamp(36px, 6vw, 56px);
  }

  .hib-home-hero__content {
    margin-bottom: clamp(28px, 5vw, 44px);
  }

  .hib-home-hero__bg {
    background-position: 62% 36%;
  }

  .hib-home-hero__gradient {
    background:
      linear-gradient(
        180deg,
        rgba(249,249,247,0.48)  0%,
        rgba(249,249,247,0.12) 22%,
        rgba(249,249,247,0.06) 50%,
        rgba(249,249,247,0.62) 80%,
        rgba(249,249,247,0.98) 100%
      );
  }

  .hib-home-hero .hib-hero-dark__watermark {
    display: none;
  }

  .hib-home-hero__title {
    font-size: clamp(2rem, 7.5vw, 3rem);
    line-height: 1.1;
    letter-spacing: normal;
    text-shadow: 0 0 24px rgba(249,249,247,0.96);
  }

  .hib-home-hero__subtitle {
    font-size: var(--hib-body-s-size);
  }

  .hib-home-hero__subtitle br {
    display: none;
  }

  .hib-home-domains {
    max-width: none;
  }

  .hib-home-domain__visual {
    width: 100px;
  }

  .hib-home-domain__body {
    padding: var(--hib-space-4);
  }

  .hib-home-domain__title {
    font-size: 1.125rem;
  }

  .hib-home-domain__desc {
    font-size: var(--hib-label-m-size);
    margin-bottom: var(--hib-space-3);
  }

  .hib-home-domain__cta {
    font-size: var(--hib-label-m-size);
  }
}

/* --- Home Trust Strip: horizontal confidence bar --- */
.hib-home-trust {
  padding: var(--hib-space-8) 0;
  border-top: 1px solid var(--hib-divider);
  border-bottom: 1px solid var(--hib-divider);
}

.hib-home-trust__inner {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--hib-space-7);
}

.hib-home-trust__item {
  display: flex;
  align-items: flex-start;
  gap: var(--hib-space-4);
}

.hib-home-trust__icon {
  width: 44px;
  height: 44px;
  border-radius: var(--hib-radius-s);
  background: var(--hib-domain-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--hib-primary);
}

.hib-home-trust__icon svg {
  width: 22px;
  height: 22px;
}

.hib-home-trust__text {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.hib-home-trust__text strong {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-body-s-size);
  font-weight: 600;
  color: var(--hib-text);
  line-height: 1.4;
}

.hib-home-trust__text span {
  font-size: var(--hib-label-m-size);
  color: var(--hib-text-muted);
  line-height: 1.55;
}

@media (max-width: 1023px) {
  .hib-home-trust__inner {
    grid-template-columns: 1fr;
    gap: var(--hib-space-5);
  }
}

@media (max-width: 767px) {
  .hib-home-trust {
    padding: var(--hib-space-7) 0;
  }

  .hib-home-trust__icon {
    width: 40px;
    height: 40px;
  }

  .hib-home-trust__icon svg {
    width: 20px;
    height: 20px;
  }
}

/* --- Override: first section after home hero tighter rhythm --- */
.hib-home-trust + .hib-section,
.hib-home-trust + .hib-section--compact {
  padding-top: var(--hib-space-9);
}

@media (max-width: 767px) {
  .hib-home-trust + .hib-section,
  .hib-home-trust + .hib-section--compact {
    padding-top: var(--hib-space-7);
  }
}
.hib-home-hero__title-accent {
  color: var(--hib-primary);
  font-size: 0.82em;
  letter-spacing: normal;
}

/* ============================================================
   V2 REDESIGN — Editorial Dark Direction
   Homepage components: dark hero, gate panels, editorial
   steps, noir CTA, refined guide cards.
   ============================================================ */

/* ── Hero Dark ─────────────────────────────────────────────── */
.hib-hero-dark {
  position: relative;
  overflow: hidden;
  background: #0D0D0B;
  padding: clamp(80px, 11vw, 148px) 0 0;
  isolation: isolate;
    background-size: cover;
    background-position: bottom;
}

.hib-hero-dark__deco {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}

.hib-hero-dark__line {
  position: absolute;
  left: 0;
  right: 0;
  height: 1px;
  background: rgba(210, 115, 79, 0.18);
  transform-origin: right;
  transform: scaleX(0);
  animation: hib-line-draw 1.6s var(--hib-ease) forwards;
}
.hib-hero-dark__line--1 { top: 30%; animation-delay: 0.15s; }
.hib-hero-dark__line--2 { top: 68%; animation-delay: 0.45s; opacity: 0.7; }

@keyframes hib-line-draw {
  to { transform: scaleX(1); }
}

.hib-hero-dark__vline {
  position: absolute;
  top: 0;
  bottom: 0;
  inset-inline-end: clamp(52px, 7vw, 108px);
  width: 1px;
  background: linear-gradient(
    180deg,
    transparent 0%,
    rgba(210, 115, 79, 0.22) 25%,
    rgba(210, 115, 79, 0.14) 75%,
    transparent 100%
  );
}

.hib-hero-dark__watermark {
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: clamp(52px, 7vw, 108px);
  bottom: -0.16em;
  font-family: "BarLev", Arial, sans-serif;
  font-size: clamp(180px, 32vw, 380px);
  font-weight: 800;
  color: transparent;
  -webkit-text-stroke: 1px rgba(210, 115, 79, 0.085);
  line-height: 1;
  letter-spacing: normal;
  pointer-events: none;
  user-select: none;
  z-index: 0;
}

/* --- Home hero: adapt dark-theme deco for light image background --- */
.hib-home-hero .hib-hero-dark__line--2 {
  opacity: 0.7;
}
.hib-home-hero .hib-hero-dark__line--1 { top: 14%; }
.hib-home-hero .hib-hero-dark__line--2 { top: 62%; }

/* Vertical line anchors the headline column (RTL start = visual right) */
.hib-home-hero .hib-hero-dark__vline {
  inset-inline-end: auto;
  inset-inline-start: clamp(52px, 7vw, 108px);
  background: linear-gradient(
    180deg,
    transparent 0%,
    rgba(29, 84, 196, 0.28) 22%,
    rgba(29, 84, 196, 0.18) 78%,
    transparent 100%
  );
}

.hib-hero-dark__content {
  position: relative;
  z-index: 1;
  max-width: 700px;
  padding-bottom: clamp(52px, 7vw, 96px);
}

.hib-hero-dark__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: "Ploni", Arial, sans-serif;
  font-size: var(--hib-micro-label-size);
  font-weight: 500;
  color: rgba(240, 237, 229, 0.65);
  letter-spacing: normal;
  text-transform: uppercase;
  margin-bottom: var(--hib-space-7);
}

.hib-hero-dark__eyebrow-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #D2734F;
  flex-shrink: 0;
  animation: pulse-dot 2.5s ease-in-out infinite;
}

.hib-hero-dark__title {
  font-family: var(--hib-font-display);
  font-size: clamp(3.4rem, 7.2vw, 6.8rem);
  font-weight: 800;
  line-height: 0.98;
  letter-spacing: normal;
  color: #F0EDE5;
  margin-bottom: var(--hib-space-7);
}

.hib-hero-dark__title em {
  color: #D2734F;
  font-style: normal;
}

.hib-hero-dark__sub {
  font-size: clamp(0.9375rem, 1.4vw, 1.125rem);
  line-height: 1.75;
  color: rgba(240, 237, 229, 0.55);
  max-width: 460px;
  margin-bottom: clamp(36px, 5vw, 52px);
}

.hib-hero-dark__domains {
  display: flex;
  flex-wrap: wrap;
  gap: var(--hib-space-3);
}

.hib-hero-dark__domain-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  border-radius: var(--hib-radius-s);
  font-family: "Ploni", Arial, sans-serif;
  font-size: var(--hib-body-s-size);
  font-weight: 600;
  text-decoration: none;
  transition: transform 0.22s var(--hib-ease), background 0.22s var(--hib-ease), border-color 0.22s var(--hib-ease);
  letter-spacing: normal;
}

.hib-hero-dark__domain-btn--plumbing {
  background: rgba(29, 84, 196, 0.13);
  color: rgba(185, 224, 238, 0.9);
  border: 1px solid rgba(29, 84, 196, 0.28);
}
.hib-hero-dark__domain-btn:hover { transform: translateY(-2px); }

.hib-hero-dark__domain-btn--plumbing:hover {
  background: rgba(29, 84, 196, 0.26);
  border-color: rgba(29, 84, 196, 0.55);
}

.hib-hero-dark__domain-btn--renovation {
  background: rgba(90, 151, 160, 0.13);
  color: rgba(185, 224, 228, 0.9);
  border: 1px solid rgba(90, 151, 160, 0.28);
}
.hib-hero-dark__domain-btn--renovation:hover {
  background: rgba(90, 151, 160, 0.26);
  border-color: rgba(90, 151, 160, 0.55);
}

.hib-hero-dark__domain-btn--design {
  background: rgba(210, 115, 79, 0.10);
  color: rgba(238, 215, 165, 0.9);
  border: 1px solid rgba(210, 115, 79, 0.22);
}
.hib-hero-dark__domain-btn--design:hover {
  background: rgba(210, 115, 79, 0.20);
  border-color: rgba(210, 115, 79, 0.48);
}

.hib-hero-dark__domain-btn svg {
  width: 14px;
  height: 14px;
  opacity: 0.7;
  flex-shrink: 0;
  transition: transform 0.18s;
}
.hib-hero-dark__domain-btn:hover svg { transform: translateX(-3px); }

/* Stats strip at bottom of hero */
.hib-hero-dark__statsbar {
  position: relative;
  z-index: 1;
  border-top: 1px solid rgba(210, 115, 79, 0.10);
  margin-top: clamp(52px, 7vw, 88px);
}

.hib-hero-dark__statsbar-inner {
  display: flex;
  align-items: stretch;
}

.hib-hero-dark__stat {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  padding: var(--hib-space-7) var(--hib-space-8);
  border-left: 1px solid rgba(240, 237, 229, 0.07);
}
.hib-hero-dark__stat:first-child { padding-right: 0; border-left: none; }
.hib-hero-dark__stat:last-child  { padding-left: 0; }

.hib-hero-dark__stat-num {
  font-family: "BarLev", Arial, sans-serif;
  font-size: clamp(1.4rem, 2.2vw, 1.875rem);
  font-weight: 700;
  color: #F0EDE5;
  line-height: 1.05;
  letter-spacing: normal;
}

.hib-hero-dark__stat-label {
  font-size: var(--hib-micro-label-size);
  letter-spacing: normal;
  color: rgba(240, 237, 229, 0.65);
}

@media (max-width: 767px) {
  .hib-hero-dark { padding-top: clamp(52px, 10vw, 80px); }
  .hib-hero-dark__title { font-size: clamp(2.6rem, 10vw, 3.6rem); letter-spacing: normal; }
  .hib-hero-dark__domains { gap: var(--hib-space-2); }
  .hib-hero-dark__statsbar-inner { flex-direction: column; }
  .hib-hero-dark__stat {
    border-left: none;
    border-top: 1px solid rgba(240, 237, 229, 0.07);
    padding: var(--hib-space-5) 0;
  }
  .hib-hero-dark__stat:first-child { border-top: none; padding-top: var(--hib-space-6); }
}

/* ── Gate Grid: architectural domain panels ─────────────────── */
.hib-gate-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid var(--hib-border);
  border-radius: var(--hib-radius-l);
  overflow: hidden;
}

.hib-gate {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: clamp(32px, 4.5vw, 52px) clamp(20px, 3vw, 36px);
  background: var(--hib-surface);
  text-decoration: none;
  border-left: 1px solid var(--hib-border);
  overflow: hidden;
  transition: border-color 0.28s var(--hib-ease);
}
.hib-gate:first-child { border-left: none; }

.hib-gate::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--hib-gate-bg, #0D0D0B);
  opacity: 0;
  transition: opacity 0.32s var(--hib-ease);
  z-index: 0;
}
.hib-gate:hover::before { opacity: 1; }
.hib-gate:hover { border-color: transparent; }

.hib-gate[data-domain="plumbing"]  { --hib-gate-bg: #071824; }
.hib-gate[data-domain="renovation"] { --hib-gate-bg: #061719; }
.hib-gate[data-domain="design"]    { --hib-gate-bg: #100F0D; }

.hib-gate__num,
.hib-gate__title,
.hib-gate__desc,
.hib-gate__count { transition: color 0.28s; }

.hib-gate__num {
  position: absolute;
  top: clamp(14px, 2vw, 20px);
  left: clamp(14px, 2vw, 20px);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: normal;
  color: var(--hib-text-muted);
  z-index: 1;
}
.hib-gate:hover .hib-gate__num { color: rgba(210, 115, 79, 0.55); }

.hib-gate__icon-wrap {
  position: relative;
  z-index: 1;
  width: 52px;
  height: 52px;
  border-radius: var(--hib-radius-s);
  border: 1px solid var(--hib-border);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--hib-space-6);
  transition: border-color 0.28s, color 0.28s, background 0.28s;
}
.hib-gate[data-domain="plumbing"]  .hib-gate__icon-wrap { color: #197FA3; }
.hib-gate[data-domain="renovation"] .hib-gate__icon-wrap { color: #5A97A0; }
.hib-gate[data-domain="design"]    .hib-gate__icon-wrap { color: #7A746E; }
.hib-gate:hover .hib-gate__icon-wrap {
  border-color: rgba(210, 115, 79, 0.3);
  color: #D2734F;
  background: rgba(210, 115, 79, 0.07);
}

.hib-gate__title {
  position: relative;
  z-index: 1;
  font-family: "BarLev", Arial, sans-serif;
  font-size: clamp(1.25rem, 1.9vw, 1.625rem);
  font-weight: 700;
  line-height: 1.18;
  letter-spacing: normal;
  color: var(--hib-text);
  margin-bottom: var(--hib-space-3);
}
.hib-gate:hover .hib-gate__title { color: #F0EDE5; }

.hib-gate__desc {
  position: relative;
  z-index: 1;
  font-size: var(--hib-body-s-size);
  line-height: 1.65;
  color: var(--hib-text-secondary);
  margin-bottom: var(--hib-space-7);
  flex: 1;
}
.hib-gate:hover .hib-gate__desc { color: rgba(240, 237, 229, 0.5); }

.hib-gate__cta {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: var(--hib-space-5);
  border-top: 1px solid var(--hib-border);
  transition: border-color 0.28s;
}
.hib-gate:hover .hib-gate__cta { border-color: rgba(240, 237, 229, 0.09); }

.hib-gate__count {
  font-size: var(--hib-label-s-size);
  font-weight: 600;
}
.hib-gate[data-domain="plumbing"]  .hib-gate__count { color: var(--hib-primary); }
.hib-gate[data-domain="renovation"] .hib-gate__count { color: #245E66; }
.hib-gate[data-domain="design"]    .hib-gate__count { color: #4A4846; }
.hib-gate:hover .hib-gate__count { color: #D2734F; }

.hib-gate__arrow {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid var(--hib-border);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--hib-text-secondary);
  transition: border-color 0.22s, color 0.22s, transform 0.22s;
  flex-shrink: 0;
}
.hib-gate:hover .hib-gate__arrow {
  border-color: rgba(210, 115, 79, 0.38);
  color: #D2734F;
  transform: translateX(-4px);
}

@media (max-width: 1023px) {
  .hib-gate-grid { grid-template-columns: 1fr; border-radius: var(--hib-radius-m); }
  .hib-gate { border-left: none; border-top: 1px solid var(--hib-border); }
  .hib-gate:first-child { border-top: none; }
  .hib-gate__num { left: auto; right: clamp(14px, 2vw, 20px); }
}

/* ── Editorial Section Header ───────────────────────────────── */
.hib-editorial-head {
  margin-bottom: var(--hib-section-header-mb);
}

.hib-editorial-head__meta {
  display: flex;
  align-items: center;
  gap: var(--hib-space-4);
  margin-bottom: var(--hib-space-4);
}

.hib-editorial-head__rule {
  width: 32px;
  height: 2px;
  background: var(--hib-primary);
  flex-shrink: 0;
}

.hib-editorial-head__label {
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: normal;
  text-transform: uppercase;
  color: var(--hib-text-muted);
}

.hib-editorial-head__title {
  font-family: "BarLev", Arial, sans-serif;
  font-size: var(--hib-h2-size);
  font-weight: 700;
  line-height: var(--hib-h2-lh);
  letter-spacing: normal;
  color: var(--hib-text);
  text-align: start;
}

.hib-editorial-head__sub {
  margin-top: var(--hib-space-3);
  font-size: var(--hib-body-m-size);
  color: var(--hib-text-secondary);
  max-width: 500px;
  line-height: 1.68;
}

/* ── Editorial Steps ─────────────────────────────────────────── */
.hib-editorial-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid var(--hib-border);
  border-radius: var(--hib-radius-m);
  overflow: hidden;
}

.hib-editorial-step {
  position: relative;
  padding: clamp(28px, 4vw, 48px) clamp(20px, 3vw, 36px);
  border-left: 1px solid var(--hib-border);
  background: var(--hib-surface);
  overflow: hidden;
  transition: background 0.22s;
}
.hib-editorial-step:first-child { border-left: none; }
.hib-editorial-step:hover { background: var(--hib-surface-soft); }

.hib-editorial-step__bg-num {
  position: absolute;
  bottom: -0.12em;
  left: -0.06em;
  font-family: "BarLev", Arial, sans-serif;
  font-size: clamp(90px, 14vw, 148px);
  font-weight: 800;
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(0, 0, 0, 0.038);
  line-height: 1;
  pointer-events: none;
  user-select: none;
  z-index: 0;
}

.hib-editorial-step__num {
  position: relative;
  z-index: 1;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: normal;
  color: var(--hib-primary);
  margin-bottom: var(--hib-space-5);
  text-transform: uppercase;
}

.hib-editorial-step__title {
  position: relative;
  z-index: 1;
  font-family: "BarLev", Arial, sans-serif;
  font-size: clamp(1.125rem, 1.6vw, 1.4375rem);
  font-weight: 700;
  line-height: 1.22;
  letter-spacing: normal;
  margin-bottom: var(--hib-space-3);
  color: var(--hib-text);
}

.hib-editorial-step__desc {
  position: relative;
  z-index: 1;
  font-size: var(--hib-body-s-size);
  color: var(--hib-text-secondary);
  line-height: 1.65;
}

@media (max-width: 767px) {
  .hib-editorial-steps { grid-template-columns: 1fr; }
  .hib-editorial-step { border-left: none; border-top: 1px solid var(--hib-border); }
  .hib-editorial-step:first-child { border-top: none; }
}

/* ── Pro card avatar initials ────────────────────────────────── */
.hib-pro-initials {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "BarLev", Arial, sans-serif;
  font-size: 2rem;
  font-weight: 700;
  color: #D2734F;
  background: rgba(210, 115, 79, 0.07);
  letter-spacing: normal;
}

/* ── Guide cards V2 ─────────────────────────────────────────── */
.hib-guide-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--hib-space-5);
}

.hib-guide-card {
  display: flex;
  flex-direction: column;
  background: var(--hib-surface);
  border: 1px solid var(--hib-border);
  border-radius: var(--hib-radius-m);
  overflow: hidden;
  text-decoration: none;
  transition: box-shadow 0.22s var(--hib-ease),
              transform 0.22s var(--hib-ease);
}
.hib-guide-card:hover { box-shadow: var(--hib-shadow-l); transform: translateY(-3px); }

.hib-guide-card__thumb {
  aspect-ratio: 16/9;
  background: var(--hib-neutral-100);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.hib-guide-card__thumb-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(145deg, var(--hib-neutral-200) 0%, var(--hib-neutral-100) 100%);
  transition: filter 0.22s;
}
.hib-guide-card:hover .hib-guide-card__thumb-bg { filter: brightness(0.93); }

.hib-guide-card__play {
  position: relative;
  z-index: 1;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: white;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 20px rgba(0,0,0,0.14);
  color: var(--hib-primary);
  transition: transform 0.22s var(--hib-ease), box-shadow 0.22s var(--hib-ease);
}
.hib-guide-card:hover .hib-guide-card__play { transform: scale(1.10); box-shadow: 0 8px 28px rgba(0,0,0,0.18); }

.hib-guide-card__body { padding: var(--hib-space-5); }

.hib-guide-card__domain {
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: normal;
  text-transform: uppercase;
  color: var(--hib-primary);
  margin-bottom: var(--hib-space-2);
}

.hib-guide-card__title {
  font-family: "BarLev", Arial, sans-serif;
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.35;
  color: var(--hib-text);
  margin-bottom: var(--hib-space-2);
}

.hib-guide-card__meta { font-size: var(--hib-label-s-size); color: var(--hib-text-muted); }

@media (max-width: 1023px) { .hib-guide-row { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px)  { .hib-guide-row { grid-template-columns: 1fr; } }

/* ── Noir CTA ───────────────────────────────────────────────── */
.hib-cta-noir {
  background: #0D0D0B;
  border-radius: var(--hib-radius-l);
  padding: clamp(52px, 7.5vw, 88px) clamp(28px, 5vw, 64px);
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: clamp(var(--hib-space-8), 6vw, var(--hib-space-13));
  align-items: center;
}

.hib-cta-noir::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(210, 115, 79, 0.032) 1px, transparent 1px),
    linear-gradient(90deg, rgba(210, 115, 79, 0.032) 1px, transparent 1px);
  background-size: 56px 56px;
  pointer-events: none;
}

.hib-cta-noir::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 80% 80% at 30% 50%, transparent 40%, rgba(0,0,0,0.32) 100%);
  pointer-events: none;
}

.hib-cta-noir__body { position: relative; z-index: 1; }

.hib-cta-noir__kicker {
  display: flex;
  align-items: center;
  gap: var(--hib-space-3);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: normal;
  text-transform: uppercase;
  color: rgba(210, 115, 79, 0.75);
  margin-bottom: var(--hib-space-5);
}
.hib-cta-noir__kicker::before {
  content: "";
  width: 24px;
  height: 1px;
  background: rgba(210, 115, 79, 0.55);
  flex-shrink: 0;
}

.hib-cta-noir__title {
  font-family: "BarLev", Arial, sans-serif;
  font-size: clamp(1.875rem, 3.2vw, 3rem);
  font-weight: 700;
  line-height: 0.95;
  letter-spacing: normal;
  color: #F0EDE5;
  margin-bottom: var(--hib-space-4);
}

.hib-cta-noir__desc {
  font-size: clamp(0.9375rem, 1.2vw, 1.0625rem);
  color: rgba(240, 237, 229, 0.52);
  line-height: 1.7;
  max-width: 420px;
}

.hib-cta-noir__action {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--hib-space-4);
  flex-shrink: 0;
  min-width: 200px;
  text-align: end;
}

.hib-btn--gold {
  background: #D2734F;
  color: #0D0D0B;
  font-weight: 700;
  box-shadow: 0 4px 20px rgba(210, 115, 79, 0.28), 0 1px 4px rgba(210, 115, 79, 0.18);
  letter-spacing: normal;
}
.hib-btn--gold:hover {
  background: #E08A66;
  transform: translateY(-2px);
  box-shadow: 0 8px 32px rgba(210, 115, 79, 0.38), 0 2px 8px rgba(210, 115, 79, 0.18);
}
.hib-btn--gold:active { transform: scale(0.97); }

.hib-cta-noir__trust {
  font-size: var(--hib-micro-label-size);
  color: rgba(240, 237, 229, 0.70);
  text-align: start;
  letter-spacing: normal;
}

@media (max-width: 767px) {
  .hib-cta-noir {
    grid-template-columns: 1fr;
    padding: clamp(36px, 7vw, 52px) clamp(20px, 5vw, 32px);
    border-radius: var(--hib-radius-m);
    gap: var(--hib-space-7);
  }
  .hib-cta-noir__action { align-items: stretch; min-width: unset; }
  .hib-cta-noir__trust { text-align: center; }
  .hib-btn--gold { width: 100%; }
}


/* ============================================================
   V2 MIGRATION — Domain Hero (full-bleed dark hero with image)
   Used on domain listing pages. Resolves domain colors via the
   body[data-domain] attribute (see --hib-domain-* tokens).
   ============================================================ */

.hib-domain-hero-v2 {
  position: relative;
  min-height: clamp(580px, 74vh, 760px);
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background-color: var(--hib-domain-hero, var(--hib-dark-bg));
  padding-block-start: calc(var(--hib-space-12) + var(--hib-header-h));
  padding-block-end: clamp(var(--hib-space-10), 6vw, var(--hib-space-14));
}

.hib-domain-hero-v2__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0.22;
  transition: opacity 6s ease;
}

.hib-domain-hero-v2__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    var(--hib-domain-hero, var(--hib-dark-bg)) 35%,
    rgba(0, 0, 0, 0.55) 70%,
    rgba(0, 0, 0, 0.2) 100%
  );
}

.hib-domain-hero-v2__accent-line {
  position: absolute;
  inset-block-end: 0;
  inset-inline: 0;
  height: 2px;
  background: linear-gradient(
    to right,
    transparent 0%,
    var(--hib-domain-accent, var(--hib-gold)) 30%,
    var(--hib-domain-accent, var(--hib-gold)) 70%,
    transparent 100%
  );
  opacity: 0.5;
}

.hib-domain-hero-v2__content {
  position: relative;
  z-index: 1;
  width: 100%;
  color: var(--hib-dark-text);
}

.hib-domain-hero-v2__breadcrumb {
  display: flex;
  align-items: center;
  gap: var(--hib-space-2);
  font-family: var(--hib-font-body);
  font-size: var(--hib-label-s-size);
  color: rgba(240, 237, 229, 0.55);
  margin-block-end: var(--hib-space-5);
  flex-wrap: wrap;
}
.hib-domain-hero-v2__breadcrumb a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s;
}
.hib-domain-hero-v2__breadcrumb a:hover {
  color: var(--hib-dark-text);
}
.hib-domain-hero-v2__breadcrumb svg {
  opacity: 0.4;
  transform: scaleX(-1); /* flip chevron for RTL */
}

.hib-domain-hero-v2__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--hib-space-3);
  font-family: var(--hib-font-body);
  font-size: var(--hib-label-m-size);
  color: var(--hib-domain-accent, var(--hib-gold));
  letter-spacing: normal;
  text-transform: uppercase;
  margin-block-end: var(--hib-space-4);
}
.hib-domain-hero-v2__eyebrow::before {
  content: '';
  display: block;
  width: 28px;
  height: 1px;
  background: currentColor;
  flex-shrink: 0;
}

.hib-domain-hero-v2__title {
  font-family: var(--hib-font-display);
  font-size: var(--hib-domain-hero-title-size);
  line-height: var(--hib-domain-hero-title-lh);
  letter-spacing: normal;
  color: var(--hib-dark-text);
  margin-block-end: var(--hib-space-4);
}

.hib-domain-hero-v2__sub {
  font-family: var(--hib-font-body);
  font-size: var(--hib-body-l-size);
  line-height: 1.6;
  color: rgba(240, 237, 229, 0.7);
  max-width: 540px;
  margin-block-end: var(--hib-space-8);
}

.hib-domain-hero-v2__stats {
  display: flex;
  gap: clamp(var(--hib-space-8), 6vw, var(--hib-space-12));
  padding-block-start: var(--hib-space-8);
  border-block-start: 1px solid rgba(240, 237, 229, 0.14);
  margin-block-start: var(--hib-space-8);
  flex-wrap: wrap;
}

.hib-domain-hero-v2__stat-value {
  display: block;
  font-family: var(--hib-font-display);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  line-height: 1;
  color: var(--hib-dark-text);
  letter-spacing: normal;
}

.hib-domain-hero-v2__stat-label {
  display: block;
  font-family: var(--hib-font-body);
  font-size: var(--hib-label-s-size);
  color: rgba(240, 237, 229, 0.5);
  margin-block-start: var(--hib-space-1);
}

/* Design domain — Shabtai serif for hero title */
body[data-domain="design"] .hib-domain-hero-v2__title {
  font-family: var(--hib-font-display-design);
  font-weight: 400;
}
body[data-domain="design"] .hib-domain-hero-v2__eyebrow {
  font-family: var(--hib-font-display-design);
  letter-spacing: normal;
  font-style: italic;
}


/* ============================================================
   V2 MIGRATION — Filter Bar (sticky specialty chips)
   Sits below the domain hero. Uses --hib-header-h for offset.
   ============================================================ */

.hib-filter-bar {
  position: sticky;
  top: var(--hib-header-h);
  z-index: 20;
  background: #fff;
  border-block-end: 1px solid var(--hib-border);
  padding-block: var(--hib-space-3);
}

.hib-filter-bar__inner {
  display: flex;
  align-items: center;
  gap: var(--hib-space-2);
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.hib-filter-bar__inner::-webkit-scrollbar { display: none; }

.hib-filter-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--hib-space-1);
  padding: var(--hib-space-1) var(--hib-space-3);
  border-radius: var(--hib-radius-pill);
  border: 1.5px solid var(--hib-border);
  background: transparent;
  font-family: var(--hib-font-body);
  font-size: var(--hib-label-m-size);
  color: var(--hib-text-secondary);
  white-space: nowrap;
  cursor: pointer;
  flex-shrink: 0;
  transition: border-color 0.15s var(--hib-ease),
              color 0.15s var(--hib-ease),
              background 0.15s var(--hib-ease);
}
.hib-filter-chip::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--hib-domain-accent, var(--hib-gold));
  flex-shrink: 0;
  opacity: 0;
  transition: opacity 0.15s;
}
.hib-filter-chip:hover {
  border-color: var(--hib-domain-btn, var(--hib-primary));
  color: var(--hib-text);
}
.hib-filter-chip.is-active {
  background: var(--hib-domain-btn, var(--hib-primary));
  border-color: var(--hib-domain-btn, var(--hib-primary));
  color: #fff;
}
.hib-filter-chip.is-active::before { opacity: 1; background: rgba(255,255,255,0.6); }

/* Design domain: dark text on parchment chip */
body[data-domain="design"] .hib-filter-chip.is-active {
  color: #1A1916;
}


/* ============================================================
   V2 MIGRATION — Amir Section (founder endorsement)
   Dark editorial section used on domain listing pages.
   ============================================================ */

.hib-amir-section {
  background: #111110;
  padding-block: clamp(var(--hib-space-12), 10vw, 140px);
  position: relative;
  overflow: hidden;
}
.hib-amir-section::before {
  content: '';
  position: absolute;
  inset-block-start: 0;
  inset-inline: 0;
  height: 1px;
  background: linear-gradient(to right, transparent, var(--hib-gold) 40%, var(--hib-gold) 60%, transparent);
  opacity: 0.35;
}
.hib-amir-section::after {
  content: 'HIB';
  position: absolute;
  inset-block-end: -0.15em;
  inset-inline-end: -0.05em;
  font-family: var(--hib-font-display);
  font-size: clamp(8rem, 20vw, 18rem);
  line-height: 1;
  color: rgba(240, 237, 229, 0.055);
  pointer-events: none;
  user-select: none;
}

.hib-amir-section__inner {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: clamp(var(--hib-space-6), 6vw, var(--hib-space-12));
  align-items: center;
  position: relative;
  z-index: 1;
}

.hib-amir-section__photo-wrap {
  flex-shrink: 0;
}
.hib-amir-section__photo {
  width: clamp(100px, 14vw, 168px);
  aspect-ratio: 1;
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid rgba(210, 115, 79, 0.35);
  display: block;
}
.hib-amir-section__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hib-amir-section__kicker {
  display: flex;
  align-items: center;
  gap: var(--hib-space-3);
  font-family: var(--hib-font-body);
  font-size: var(--hib-label-m-size);
  color: var(--hib-gold);
  text-transform: uppercase;
  letter-spacing: normal;
  margin-block-end: var(--hib-space-4);
}
.hib-amir-section__kicker::before {
  content: '';
  width: 28px;
  height: 1px;
  background: var(--hib-gold);
  flex-shrink: 0;
}

.hib-amir-section__quote {
  font-family: var(--hib-font-display);
  font-size: clamp(1.25rem, 2.5vw, 1.85rem);
  line-height: 1.3;
  letter-spacing: normal;
  margin-block-end: var(--hib-space-5);
}

.hib-amir-section__sig {
  display: flex;
  align-items: center;
  gap: var(--hib-space-4);
}
.hib-amir-section__sig-name {
  font-family: var(--hib-font-display);
  font-size: var(--hib-h4-size);
  color: var(--hib-dark-text);
}
.hib-amir-section__sig-role {
  font-family: var(--hib-font-body);
  font-size: var(--hib-label-m-size);
  color: rgba(240, 237, 229, 0.5);
}

@media (max-width: 768px) {
  .hib-amir-section__inner {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .hib-amir-section__photo { margin-inline: auto; }
  .hib-amir-section__kicker { justify-content: center; }
  .hib-amir-section__sig { justify-content: center; flex-direction: column; gap: var(--hib-space-1); }
}

/* Design domain — Shabtai serif italic kicker */
body[data-domain="design"] .hib-amir-section__kicker {
  font-family: var(--hib-font-display-design);
  letter-spacing: normal;
  font-style: italic;
}


/* ============================================================
   V2 MIGRATION — Domain CTA (bottom join-as-pro banner)
   Solid domain-colored band, white copy. Design domain uses
   dark-bg instead to match its architectural tone.
   ============================================================ */

.hib-domain-cta {
  background: var(--hib-domain-btn, var(--hib-primary));
  padding-block: clamp(var(--hib-space-8), 6vw, var(--hib-space-12));
  text-align: center;
}

body[data-domain="design"] .hib-domain-cta {
  background: var(--hib-dark-bg);
}

.hib-domain-cta__eyebrow {
  font-family: var(--hib-font-body);
  font-size: var(--hib-label-m-size);
  color: var(--hib-on-dark-muted);
  letter-spacing: normal;
  text-transform: uppercase;
  margin-block-end: var(--hib-space-3);
}

.hib-domain-cta__title {
  font-family: var(--hib-font-display);
  font-size: clamp(1.6rem, 3.5vw, 2.8rem);
  line-height: 1.1;
  letter-spacing: normal;
  color: #fff;
  margin-block-end: var(--hib-space-3);
}

body[data-domain="design"] .hib-domain-cta__title {
  font-family: var(--hib-font-display-design);
  font-weight: 400;
  font-size: var(--hib-design-display-l-size);
  line-height: var(--hib-design-display-l-lh);
  letter-spacing: normal;
}

.hib-domain-cta__desc {
  font-family: var(--hib-font-body);
  font-size: var(--hib-body-m-size);
  color: var(--hib-on-dark-muted);
  max-width: 500px;
  margin-inline: auto;
  margin-block-end: var(--hib-space-7);
  line-height: 1.6;
}


/* ============================================================
   V2 MIGRATION — Search V2 (glassmorphic dark-hero search)
   Used inside hib-domain-hero-v2. Resolves button color via
   --hib-domain-btn (per data-domain). Design domain inverts
   button text to --hib-dark-bg for parchment contrast.
   ============================================================ */

.hib-search-v2 {
  display: flex;
  gap: var(--hib-space-2);
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(240, 237, 229, 0.15);
  border-radius: var(--hib-radius-m);
  padding: var(--hib-space-2);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  max-width: 700px;
}

.hib-search-v2__field {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  padding: var(--hib-space-2) var(--hib-space-4);
}

/* The hero search names the one thing the whole page asks for; its labels join
   the form label role rather than sitting at the micro floor. `uppercase` also
   goes: Hebrew has no case, so it did nothing here except wait to shout at the
   first Latin word that ever lands in a field name. */
.hib-search-v2__label {
  font-family: var(--hib-font-body);
  font-size: var(--hib-label-m-size);
  line-height: var(--hib-label-lh);
  color: rgba(240, 237, 229, 0.65);
  letter-spacing: normal;
  margin-block-end: var(--hib-space-1);
}

.hib-search-v2__input,
.hib-search-v2__select {
  background: none;
  border: none;
  outline: none;
  font-family: var(--hib-font-body);
  font-size: var(--hib-body-m-size);
  color: var(--hib-dark-text);
  padding: 0;
  width: 100%;
  direction: rtl;
}
.hib-search-v2__input:focus-visible,
.hib-search-v2__select:focus-visible {
  /* No border-radius: focus must never re-shape a control. */
  outline: 2px solid rgba(240, 237, 229, 0.5);
  outline-offset: 3px;
}
.hib-search-v2__input::placeholder {
  color: rgba(240, 237, 229, 0.55);
}
.hib-search-v2__select option {
  background: #1a1a18;
  color: var(--hib-dark-text);
}

.hib-search-v2__divider {
  width: 1px;
  background: rgba(240, 237, 229, 0.12);
  align-self: stretch;
  margin-block: var(--hib-space-2);
  flex-shrink: 0;
}

.hib-search-v2__btn {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: var(--hib-space-2);
  padding: var(--hib-space-3) var(--hib-space-6);
  background: var(--hib-domain-btn, var(--hib-gold));
  color: #fff;
  border: none;
  border-radius: var(--hib-radius-xs);
  font-family: var(--hib-font-body);
  font-size: var(--hib-body-m-size);
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity 0.2s var(--hib-ease), transform 0.15s var(--hib-ease);
}
.hib-search-v2__btn:hover  { opacity: 0.88; }
.hib-search-v2__btn:active { transform: scale(0.98); }

body[data-domain="design"] .hib-search-v2__btn {
  color: var(--hib-dark-bg);
}

@media (max-width: 768px) {
  .hib-search-v2 {
    flex-direction: column;
    gap: 0;
    max-width: 100%;
  }
  .hib-search-v2__divider { display: none; }
  .hib-search-v2__field:not(:last-of-type) {
    border-block-end: 1px solid rgba(240, 237, 229, 0.1);
  }
  .hib-search-v2__btn {
    width: 100%;
    justify-content: center;
    margin-block-start: var(--hib-space-2);
    border-radius: var(--hib-radius-xs);
  }
}


/* --- Hero: second, inner column-break vline (editorial rhythm) --- */
.hib-home-hero .hib-hero-dark__vline--inner {
  inset-inline-end: auto;
  inset-inline-start: auto;
  left: 50%;
  background: linear-gradient(
    180deg,
    transparent 0%,
    rgba(29, 84, 196, 0.10) 28%,
    rgba(29, 84, 196, 0.06) 72%,
    transparent 100%
  );
  opacity: 0;
  animation: hib-vline-fade 1.4s var(--hib-ease) 0.6s forwards;
}

/* Primary right-rail vline: soften + introduce draw-in */
.hib-home-hero .hib-hero-dark__vline {
  opacity: 0;
  transform-origin: top;
  animation: hib-vline-draw 1.2s var(--hib-ease) 0.3s forwards;
}

@keyframes hib-vline-draw {
  from { opacity: 0; transform: scaleY(0); }
  to   { opacity: 1; transform: scaleY(1); }
}
@keyframes hib-vline-fade {
  to { opacity: 1; }
}

/* Tighten the two horizontal hero lines to a faster, lighter feel */
.hib-home-hero .hib-hero-dark__line {
  animation-duration: 1.1s;
}
.hib-home-hero .hib-hero-dark__line--1 { animation-delay: 0.2s; }
.hib-home-hero .hib-hero-dark__line--2 { animation-delay: 0.55s; }

/* --- Hero domain cards: real imagery treatment --- */
.hib-home-domain:hover {
  will-change: transform;
}

.hib-home-domain__visual {
  position: relative;
  isolation: isolate;
}

.hib-home-domain__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.02);
  transition: transform 1.2s var(--hib-ease),
              filter 0.6s var(--hib-ease);
  z-index: 0;
}

/* Dark domain-tinted veil + vignette: ensures icon badge reads cleanly */
.hib-home-domain__visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 55% at 50% 55%, rgba(0,0,0,0.00) 0%, rgba(0,0,0,0.28) 100%),
    linear-gradient(180deg, rgba(10,14,20,0.18) 0%, rgba(10,14,20,0.42) 100%);
  z-index: 1;
  transition: opacity 0.5s var(--hib-ease);
}

.hib-home-domain__icon-wrap {
  position: relative;
  z-index: 2;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  box-shadow:
    0 8px 28px rgba(0, 0, 0, 0.28),
    0 2px 8px rgba(0, 0, 0, 0.18),
    inset 0 0 0 1px rgba(255, 255, 255, 0.4);
}

/* Hover: subtle photo breathe + gold inner hairline */
.hib-home-domain:hover .hib-home-domain__img {
  transform: scale(1.06);
  filter: saturate(1.05);
}
.hib-home-domain:hover .hib-home-domain__visual::after {
  opacity: 0.85;
}

.hib-home-domain {
  position: relative;
}
.hib-home-domain::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: 1px solid transparent;
  pointer-events: none;
  transition: border-color 0.4s var(--hib-ease);
}
.hib-home-domain:hover::after {
  border-color: rgba(210, 115, 79, 0.45);
}

/* --- Line motif as site-wide section rule --- */
.hib-section--ruled {
  position: relative;
}
.hib-section--ruled::before {
  content: "";
  position: absolute;
  inset-inline-end: 0;
  inset-inline-start: 0;
  top: 0;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(210, 115, 79, 0.18) 18%,
    rgba(210, 115, 79, 0.32) 50%,
    rgba(210, 115, 79, 0.18) 82%,
    transparent 100%
  );
  pointer-events: none;
}

.hib-section-header--ruled {
  position: relative;
  padding-block-start: clamp(18px, 2vw, 26px);
}
.hib-section-header--ruled::before {
  content: "";
  display: block;
  width: 56px;
  height: 1px;
  background: rgba(210, 115, 79, 0.55);
  margin: 0 auto var(--hib-space-5);
  transform-origin: center;
  transform: scaleX(0);
  transition: transform 0.9s var(--hib-ease) 0.15s;
}
.hib-section-header--ruled.is-visible::before,
.hib-reveal.is-visible.hib-section-header--ruled::before {
  transform: scaleX(1);
}

/* --- CTA refinement: minimal V2 typography subset + integrated watermark --- */


.hib-cta-noir__title {
  line-height: 0.93;
  letter-spacing: normal;
}


.hib-cta-noir__action { text-align: end; }
.hib-cta-noir__trust  { text-align: start; }

/* Top gold hairline — matches site-wide line motif */
.hib-cta-noir__rule {
  position: absolute;
  top: 0;
  inset-inline-start: clamp(28px, 5vw, 64px);
  inset-inline-end: clamp(28px, 5vw, 64px);
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(210, 115, 79, 0.40) 30%,
    rgba(210, 115, 79, 0.55) 50%,
    rgba(210, 115, 79, 0.40) 70%,
    transparent 100%
  );
  z-index: 2;
  pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
  .hib-reveal,
  .hib-animate {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
  }
  .hib-home-hero .hib-hero-dark__line,
  .hib-home-hero .hib-hero-dark__vline,
  .hib-home-hero .hib-hero-dark__vline--inner {
    animation: none !important;
    transform: none !important;
  }
  .hib-hero-dark__line { transform: scaleX(1) !important; animation: none !important; }
  .hib-section-header--ruled::before {
    transition: none !important;
    transform: scaleX(1) !important;
  }
}

/* --- Mobile overrides --- */
@media (max-width: 767px) {
  /* Inner column vline is a desktop-only editorial detail */
  .hib-home-hero .hib-hero-dark__vline--inner { display: none; }

  .hib-cta-noir__rule {
    inset-inline-start: clamp(20px, 5vw, 32px);
    inset-inline-end: clamp(20px, 5vw, 32px);
  }

  /* Section rule: trim to inside container so it feels deliberate */
  .hib-section--ruled::before {
    inset-inline-start: var(--hib-space-4);
    inset-inline-end: var(--hib-space-4);
  }

  /* Domain card imagery: at the mobile horizontal layout, darken less */
  .hib-home-domain__visual::after {
    background:
      linear-gradient(180deg, rgba(10,14,20,0.12) 0%, rgba(10,14,20,0.32) 100%);
  }
}


/* --- CTA: soften vignette and lift text readability (V1 bg untouched) --- */
.hib-cta-noir::after {
  background: radial-gradient(ellipse 75% 80% at 30% 55%, transparent 45%, rgba(0,0,0,0.24) 100%);
}

/* --- Amir section: home-context only (scoped so domain pages are untouched) --- */
body:not([data-domain]) .hib-amir-section {
  padding-block: clamp(72px, 8vw, 112px);
}
body:not([data-domain]) .hib-amir-section::after {
  font-size: clamp(7rem, 16vw, 14rem);
}
body:not([data-domain]) .hib-amir-section .hib-amir-section__photo {
  width: clamp(96px, 12vw, 148px);
  box-shadow:
    0 10px 32px rgba(0, 0, 0, 0.42),
    0 0 0 6px rgba(210, 115, 79, 0.05);
  transform: scale(0.96);
  opacity: 0;
  transition: transform 0.8s var(--hib-ease),
              opacity 0.6s var(--hib-ease);
}
body:not([data-domain]) .hib-amir-section .hib-reveal.is-visible .hib-amir-section__photo {
  transform: scale(1);
  opacity: 1;
}

/* Mobile: tighter vertical rhythm (home only) */
@media (max-width: 767px) {
  body:not([data-domain]) .hib-amir-section {
    padding-block: clamp(56px, 9vw, 80px);
  }
  body:not([data-domain]) .hib-amir-section::after {
    font-size: clamp(6rem, 28vw, 10rem);
  }
}


/* — Amir / founder-trust: from noir black to warm editorial light — */
.hib-amir-section {
  background:
    radial-gradient(1200px 520px at 18% 0%, rgba(29, 84, 196,0.05), transparent 60%),
    linear-gradient(180deg, var(--hib-surface-editorial) 0%, var(--hib-surface-editorial-2) 100%);
  padding-block: clamp(var(--hib-space-12), 10vw, 132px);
  border-block: 1px solid var(--hib-rule-soft);
}
.hib-amir-section::before {
  /* Hairline at top — switch from gold to primary-blue, subordinate */
  background: linear-gradient(
    to right,
    transparent,
    rgba(29, 84, 196, 0.30) 40%,
    rgba(29, 84, 196, 0.30) 60%,
    transparent
  );
  opacity: 0.7;
}
.hib-amir-section::after {
  /* Ghost watermark: near-white-on-cream, very subtle */
  color: rgba(29, 84, 196, 0.045);
}

.hib-amir-section__photo {
  border: 2px solid var(--hib-border-accent);
  box-shadow:
    0 14px 36px rgba(16, 24, 40, 0.10),
    0 2px 6px rgba(16, 24, 40, 0.06);
}

.hib-amir-section__content { color: var(--hib-text); }

.hib-amir-section__kicker {
  color: var(--hib-primary);
  font-weight: 600;
  letter-spacing: normal;
}
.hib-amir-section__kicker::before {
  background: var(--hib-primary);
  opacity: 0.55;
}

.hib-amir-section__quote {
  color: var(--hib-text);
  /* slightly larger + calmer line-height for editorial feel */
  font-size: clamp(1.3rem, 2.55vw, 1.95rem);
  line-height: 1.32;
  letter-spacing: normal;
}

.hib-amir-section__sig-name { color: var(--hib-text); }
.hib-amir-section__sig-role { color: var(--hib-text-strong); opacity: 0.75; }

/* Home-only photo reveal shadow: retune for light bg */
body:not([data-domain]) .hib-amir-section .hib-amir-section__photo {
  box-shadow:
    0 16px 40px rgba(16, 24, 40, 0.12),
    0 2px 8px rgba(16, 24, 40, 0.08),
    0 0 0 6px rgba(29, 84, 196, 0.04);
}

/* Design domain: keep Shabtai italic kicker but recolor to domain primary */
body[data-domain="design"] .hib-amir-section__kicker {
  /* inherit font-family from earlier rule; color to domain primary */
  color: var(--hib-primary);
}

/* — CTA noir → bright editorial CTA card — */
.hib-cta-noir {
  background:
    radial-gradient(800px 320px at 80% 0%, rgba(29, 84, 196,0.07), transparent 60%),
    linear-gradient(180deg, var(--hib-surface-editorial) 0%, #FFFFFF 100%);
  border: 1px solid var(--hib-rule-soft);
  box-shadow:
    0 1px 0 rgba(29, 84, 196, 0.04) inset,
    0 24px 48px -18px rgba(16, 24, 40, 0.12),
    0 4px 14px -6px rgba(16, 24, 40, 0.08);
}

.hib-cta-noir::before {
  /* faint primary-blue grid instead of gold */
  background-image:
    linear-gradient(rgba(29, 84, 196, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(29, 84, 196, 0.035) 1px, transparent 1px);
}

.hib-cta-noir::after {
  /* very soft inner vignette toward cream corners */
  background: radial-gradient(ellipse 85% 90% at 30% 55%, transparent 55%, rgba(16, 24, 40, 0.05) 100%);
}

.hib-cta-noir__kicker {
  color: var(--hib-primary);
  opacity: 0.85;
  letter-spacing: normal;
}
.hib-cta-noir__kicker::before {
  background: var(--hib-primary);
  opacity: 0.55;
}

.hib-cta-noir__title { color: var(--hib-text); }
.hib-cta-noir__desc  { color: var(--hib-text-strong); opacity: 0.9; }
.hib-cta-noir__trust { color: var(--hib-text-strong); }

/* — The gold button on V1 pages: re-skin to V1 primary-blue solid — */
.hib-btn--gold {
  background: var(--hib-primary);
  color: #FFFFFF;
  font-weight: 700;
  box-shadow:
    0 8px 24px -6px rgba(29, 84, 196, 0.30),
    0 2px 6px -2px rgba(16, 24, 40, 0.14);
  letter-spacing: normal;
}
.hib-btn--gold:hover {
  background: var(--hib-primary-hover);
  transform: translateY(-2px);
  box-shadow:
    0 14px 32px -8px rgba(29, 84, 196, 0.38),
    0 4px 10px -2px rgba(16, 24, 40, 0.16);
}
.hib-btn--gold:active { transform: scale(0.97); }

/* Domain CTA band (.hib-cta-section on domain pages): the gold button
   sits ON a blue primary band. Invert it to white for V1-canonical
   white-on-blue treatment, matching .hib-cta-section .hib-btn. */
.hib-cta-section .hib-btn--gold,
.hib-cta-noir  + * .hib-btn--gold /* defensive: not currently used */ {
  background: #FFFFFF;
  color: var(--hib-primary);
  box-shadow: var(--hib-shadow-btn-invert);
}
.hib-cta-section .hib-btn--gold:hover {
  background: rgba(255,255,255,.96);
  color: var(--hib-primary-hover);
  transform: translateY(-2px);
  box-shadow: var(--hib-shadow-btn-invert-hover);
}

/* — Section header rhythm: unify title→desc→content spacing across V1 — */
.hib-section-header .hib-section-title + .hib-section-subtitle,
.hib-section-header .hib-section-title + .hib-section-desc {
  margin-top: var(--hib-space-3);
}

/* — Amir/CTA mobile refinement on bright surface — */
@media (max-width: 767px) {
  .hib-amir-section {
    padding-block: clamp(64px, 11vw, 96px);
  }
  .hib-cta-noir {
    grid-template-columns: 1fr;
    text-align: start;
    padding: clamp(36px, 7vw, 56px) clamp(22px, 5vw, 32px);
  }
  .hib-cta-noir__title  { letter-spacing: normal; }
  .hib-cta-noir__action { align-items: stretch; }
}

/* — Domain CTA band: keep plumbing/renovation on domain-btn (saturated
   V1-canonical blue/teal). Override design domain back to bright ivory
   so no V1 page ends on a heavy black slab.  — */
body[data-domain="design"] .hib-domain-cta {
  background:
    radial-gradient(800px 320px at 80% 0%, rgba(41,40,38,0.06), transparent 60%),
    linear-gradient(180deg, var(--hib-surface-editorial) 0%, #FFFFFF 100%);
  border-block: 1px solid var(--hib-rule-soft);
}
body[data-domain="design"] .hib-domain-cta__eyebrow { color: var(--hib-primary); opacity: 0.75; }
body[data-domain="design"] .hib-domain-cta__title   { color: var(--hib-text); }
body[data-domain="design"] .hib-domain-cta__desc    { color: var(--hib-text-strong); opacity: 0.8; }
body[data-domain="design"] .hib-domain-cta .hib-btn--gold {
  background: var(--hib-primary);
  color: #FFFFFF;
  box-shadow:
    0 8px 24px -6px rgba(41, 40, 38, 0.30),
    0 2px 6px -2px rgba(16, 24, 40, 0.14);
}
body[data-domain="design"] .hib-domain-cta .hib-btn--gold:hover {
  background: var(--hib-primary-hover);
  transform: translateY(-2px);
}

/* Plumbing & renovation: domain-cta already solid colored — keep,
   but ensure the button-on-colored-band reads as canonical white. */
body[data-domain="plumbing"]   .hib-domain-cta .hib-btn--gold,
body[data-domain="renovation"] .hib-domain-cta .hib-btn--gold {
  background: #FFFFFF;
  color: var(--hib-primary);
  box-shadow: var(--hib-shadow-btn-invert);
}
body[data-domain="plumbing"]   .hib-domain-cta .hib-btn--gold:hover,
body[data-domain="renovation"] .hib-domain-cta .hib-btn--gold:hover {
  background: rgba(255,255,255,.96);
  color: var(--hib-primary-hover);
  transform: translateY(-2px);
}


/* --- Brand-navy footer — cohesive with bright system --- */
.hib-footer {
  background: var(--hib-dark-deep);
  background-image:
    radial-gradient(1200px 420px at 88% -5%, rgba(29, 84, 196,0.14), transparent 60%),
    linear-gradient(180deg, #0A2232 0%, #05131D 100%);
  color: var(--hib-on-dark-muted);
  padding: var(--hib-space-12) 0 var(--hib-space-8);
}
.hib-footer__brand            { color: #FFFFFF; }
.hib-footer__brand span       { color: var(--hib-accent); }
.hib-footer__heading          { color: #FFFFFF; letter-spacing: normal; }
.hib-footer__about            { color: var(--hib-on-dark-muted); }
.hib-footer__link             { color: var(--hib-on-dark-muted); }
.hib-footer__link:hover       { color: #FFFFFF; }
.hib-footer__bottom           {
  border-top-color: var(--hib-border-on-dark);
  color: var(--hib-on-dark-muted);
}
.hib-footer__watermark {
  -webkit-text-stroke-color: rgba(29, 84, 196,0.20);
}
@media (max-width: 767px) {
  .hib-footer__watermark {
    -webkit-text-stroke-color: rgba(29, 84, 196,0.24);
  }
}

body[data-domain="renovation"] .hib-footer {
  background: #051614;
  background-image:
    radial-gradient(1200px 420px at 88% -5%, rgba(90,151,160,0.16), transparent 60%),
    linear-gradient(180deg, #0A2522 0%, #041210 100%);
}
body[data-domain="renovation"] .hib-footer__watermark {
  -webkit-text-stroke-color: rgba(90,151,160,0.16);
}
body[data-domain="design"] .hib-footer {
  background: #16140F;
  background-image:
    radial-gradient(1200px 420px at 88% -5%, rgba(155,139,120,0.14), transparent 60%),
    linear-gradient(180deg, #1E1B15 0%, #0F0E0A 100%);
}
body[data-domain="design"] .hib-footer__watermark {
  -webkit-text-stroke-color: rgba(200,183,160,0.14);
}
body[data-domain="design"] .hib-footer__brand span { color: #D7C9B3; }
body[data-domain="design"] .hib-footer__link:hover { color: #E8DDC8; }

/* --- Home hero (V1 light photo treatment) — retune dark overlays --- */
.hib-home-hero .hib-hero-dark__line {
  background: linear-gradient(90deg, transparent, rgba(29, 84, 196,0.26), transparent);
}
.hib-home-hero .hib-hero-dark__vline {
  background: linear-gradient(180deg, transparent, rgba(29, 84, 196,0.18), transparent);
}
.hib-home-hero .hib-hero-dark__watermark {
  color: rgba(29, 84, 196,0.065);
  font-weight: 700;
}
.hib-home-hero .hib-hero-dark__eyebrow {
  color: var(--hib-primary);
  background: rgba(255,255,255,0.78);
  border: 1px solid var(--hib-border-accent);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.hib-home-hero .hib-hero-dark__eyebrow-dot { background: var(--hib-accent); }
.hib-home-hero .hib-hero-dark__title    { color: #0C1B28; }
.hib-home-hero .hib-hero-dark__title em { color: var(--hib-primary); font-style: normal; }
.hib-home-hero .hib-hero-dark__sub      { color: rgba(14,26,38,0.72); }
.hib-home-hero .hib-hero-dark__statsbar {
  background: rgba(255,255,255,0.82);
  border: 1px solid var(--hib-border-accent);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.hib-home-hero .hib-hero-dark__stat-num   { color: var(--hib-primary); }
.hib-home-hero .hib-hero-dark__stat-label { color: rgba(14,26,38,0.75); }
.hib-home-hero .hib-hero-dark__stat + .hib-hero-dark__stat { border-inline-start-color: var(--hib-border-accent); }

/* --- Pro cards (V1): unified subtle hover lift --- */
.hib-pro-card-v2,
.hib-card.hib-pro-card-v2 {
  transition: transform 420ms var(--hib-ease), box-shadow 420ms var(--hib-ease), border-color 420ms var(--hib-ease);
}
.hib-pro-card-v2:hover {
  transform: translateY(-3px);
  box-shadow: var(--hib-shadow-card-hover);
}

/* --- Add-professional: connector line opacity --- */
.hib-addpro-step-card:not(:last-child)::after {
  background: linear-gradient(90deg, rgba(29, 84, 196,0.28), rgba(29, 84, 196,0.08));
  opacity: 0.7;
}

/* --- Profile page: rhythm hairlines + quiet kicker --- */
.hib-profile-section + .hib-profile-section,
.hib-profile-block + .hib-profile-block {
  border-top: 1px solid var(--hib-rule-soft);
  margin-top: var(--hib-space-10);
  padding-top: var(--hib-space-10);
}

/* --- Legal / policy: TOC card polish + rule-hover ---
   `.hib-legal-toc` NO LONGER PARTICIPATES. The legal index now composes the shared
   aside-panel primitive (`.hib-panel`, hib-extra.css) — the same border, radius,
   surface, shadow, link rhythm and sticky offset the guide aside uses — so it must
   not also carry this card's divergent gradient and its sliding hover. Overriding it
   from the later file would have left two disagreeing definitions in the codebase;
   dropping the selector leaves one. `.hib-policy-toc` is the older, separate
   component and keeps this treatment unchanged. */
.hib-policy-toc {
  background: linear-gradient(180deg, #FAFAF7 0%, #FFFFFF 100%);
  border: 1px solid var(--hib-rule-soft);
  box-shadow: var(--hib-shadow-card);
}
.hib-policy-toc a {
  transition: color 200ms var(--hib-ease), transform 200ms var(--hib-ease);
}
.hib-policy-toc a:hover {
  color: var(--hib-primary);
  transform: translateX(-4px); /* RTL: slides toward content start */
}

/* --- Section-kicker chip unification (where the eyebrow exists) --- */
.hib-section-eyebrow,
.hib-eyebrow-chip,
.hib-kicker-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--hib-space-2);
  padding: 6px 14px;
  border-radius: var(--hib-radius-pill);
  background: rgba(29, 84, 196,0.06);
  color: var(--hib-primary);
  border: 1px solid var(--hib-border-accent);
  font-family: var(--hib-font-ui);
  font-weight: 600;
  font-size: 0.78rem;
  letter-spacing: normal;
  margin-bottom: var(--hib-space-4);
}
body[data-domain="renovation"] .hib-section-eyebrow,
body[data-domain="renovation"] .hib-eyebrow-chip,
body[data-domain="renovation"] .hib-kicker-chip {
  background: rgba(90,151,160,0.08);
  border-color: rgba(36,94,102,0.16);
  color: var(--hib-primary);
}
body[data-domain="design"] .hib-section-eyebrow,
body[data-domain="design"] .hib-eyebrow-chip,
body[data-domain="design"] .hib-kicker-chip {
  background: rgba(122,116,110,0.08);
  border-color: rgba(41,40,38,0.14);
  color: var(--hib-primary);
}

.hib-animate { animation-fill-mode: both; }

/* --- Softer amir watermark and cta grid scale --- */
.hib-amir-section::after { opacity: 0.82; }

/* --- Domain-hero (V2-style structure on domain pages): keep saturated
   V1 primary blue/teal hero but lift stat-bar contrast and eyebrow crispness --- */
.hib-domain-hero-v2 .hib-hero-dark__statsbar {
  background: rgba(255,255,255,0.08);
  border: 1px solid var(--hib-border-on-dark);
}
.hib-domain-hero-v2 .hib-hero-dark__stat-num { color: #FFFFFF; font-weight: 700; }

/* --- Respect reduced-motion (already handled above; strengthen card hovers) --- */
@media (prefers-reduced-motion: reduce) {
  .hib-category-card:hover,
  .hib-pro-card-v2:hover,
  .hib-addpro-step-card:hover,
  .hib-contact-card:hover,
  .hib-faq:hover { transform: none !important; }
}


/* --- Section edge: a deliberate hairline between sections --- */
.hib-section--edge { position: relative; }
.hib-section--edge::before {
  content: "";
  position: absolute;
  top: 0;
  inset-inline-start: clamp(var(--hib-space-4), 5vw, var(--hib-space-10));
  inset-inline-end: clamp(var(--hib-space-4), 5vw, var(--hib-space-10));
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    var(--hib-hairline) 25%,
    var(--hib-hairline) 75%,
    transparent 100%
  );
  pointer-events: none;
}

/* --- Page epilogue: breath between last CTA and the footer --- */
.hib-cta-noir {
  position: relative;
}
.hib-section:has(> .hib-container > .hib-cta-section),
.hib-section:has(> .hib-container > .hib-cta-noir),
.hib-section:has(> .hib-container > .hib-profile-bottom-cta) {
  padding-bottom: clamp(var(--hib-space-10), 7vw, var(--hib-space-13));
}

/* ============================================================
   1) HERO UPGRADES  (hib-hero--domain / video / category / addpro)
   ============================================================ */

/* Shared: lift heading weight + tighten letter-spacing for titles.
   Subtle top gradient to give hero depth without adding color. */
.hib-hero--domain, .hib-video-hero{
  background:
    radial-gradient(900px 340px at 85% -10%, rgba(29, 84, 196,0.07), transparent 55%),
    linear-gradient(180deg, #FFFFFF 0%, var(--hib-surface-cream) 100%);
  border-bottom: 1px solid var(--hib-rule-soft);
  padding-block: clamp(var(--hib-space-9), 7vw, var(--hib-space-13));
}
body[data-domain="renovation"] .hib-hero--domain, body[data-domain="renovation"] .hib-video-hero{
  background:
    radial-gradient(900px 340px at 85% -10%, rgba(11,92,82,0.08), transparent 55%),
    linear-gradient(180deg, #FFFFFF 0%, #F5F8F6 100%);
}
body[data-domain="design"] .hib-hero--domain, body[data-domain="design"] .hib-video-hero{
  background:
    radial-gradient(900px 340px at 85% -10%, rgba(155,139,120,0.10), transparent 55%),
    linear-gradient(180deg, #FFFFFF 0%, #FAF7F1 100%);
}

/* Guides & category hero title refinement */
.hib-hero__title, .hib-video-hero__title, .hib-addpro-hero__title{
  letter-spacing: normal;
  line-height: 1.06;
}

/* Hero subtitle: calmer line-height, slightly larger on desktop */
.hib-hero__subtitle, .hib-video-hero__lead, .hib-addpro-hero__desc{
  font-size: clamp(1.05rem, 1.6vw, 1.22rem);
  line-height: 1.6;
  max-width: 62ch;
  color: var(--hib-text-strong);
}

/* Domain stats & badge row: crisper chips */
.hib-domain-hero__stats, .hib-video-hero__meta-row{
  gap: clamp(var(--hib-space-3), 1.6vw, var(--hib-space-5));
  margin-top: clamp(var(--hib-space-5), 2.2vw, var(--hib-space-7));
}
.hib-video-hero__meta-item{
  background: rgba(29, 84, 196,0.05);
  border: 1px solid var(--hib-border-accent);
  padding: 6px 12px;
  border-radius: var(--hib-radius-pill);
  font-size: 0.82rem;
  color: var(--hib-primary);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.hib-video-hero__meta-item svg{
  width: 14px; height: 14px;
}

/* ============================================================
   4) GUIDE LIST ENTRIES  (leak-repair list)
   ============================================================ */
.hib-guide-entry__subtopic {
  display: inline-block;
  font-size: var(--hib-label-min); /* was 0.7rem/11.2px — below the label floor (QA-24) */
  letter-spacing: normal;
  /* No `text-transform: uppercase` — this badge carries a Hebrew sub-topic
     name, where casing does nothing, and would only ever fire on a Latin
     product name that happened to land in it. */
  font-weight: 700;
  color: var(--hib-primary);
  background: rgba(29, 84, 196,0.08);
  padding: 3px 8px;
  border-radius: var(--hib-radius-pill);
  align-self: flex-start;
  margin-bottom: 6px;
}
@media (max-width: 768px) {
  .hib-guide-entry {
    grid-template-columns: 100px 1fr;
    gap: var(--hib-space-4);
  }
  .hib-guide-entry__cta { display: none; }
}

@media (max-width: 768px) {
  .hib-video-summary { grid-template-columns: 1fr; }
}

/* ============================================================
   6) TAKEAWAYS CARD  (guide-choosing-plumber)
   ============================================================ */
.hib-video-takeaways::before {
  content: "";
  position: absolute;
  top: 0;
  inset-inline-start: clamp(var(--hib-space-5), 4vw, var(--hib-space-8));
  inset-inline-end: clamp(var(--hib-space-5), 4vw, var(--hib-space-8));
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--hib-primary) 30%, var(--hib-primary) 70%, transparent);
  opacity: 0.6;
  border-radius: 2px;
}
.hib-video-takeaways__title {
  font-family: var(--hib-font-ui);
  font-size: clamp(1.3rem, 2.2vw, 1.65rem);
  font-weight: 600;
  color: var(--hib-text);
  letter-spacing: normal;
  margin-bottom: var(--hib-space-5);
  display: inline-flex;
  align-items: center;
  gap: var(--hib-space-2);
}
.hib-video-takeaways__title svg { width: 22px; height: 22px; color: var(--hib-primary); }
.hib-video-takeaways__list { display: flex; flex-direction: column; gap: var(--hib-space-3); list-style: none; padding: 0; margin: 0; }
.hib-video-takeaways__item {
  display: flex;
  gap: var(--hib-space-3);
  color: var(--hib-text);
  line-height: 1.6;
  align-items: flex-start;
}
/* ============================================================
   7) RELATED TOPIC CARDS
   ============================================================ */
.hib-related-topics__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--hib-space-3);
}

/* ============================================================
   8) ADD-PROFESSIONAL STEPS
   ============================================================ */
@media (max-width: 900px) { .hib-addpro-steps { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .hib-addpro-steps { grid-template-columns: 1fr; } }

.hib-addpro-step-card {
  background: #FFFFFF;
  border: 1px solid var(--hib-rule-soft);
  border-radius: var(--hib-radius-l);
  padding: var(--hib-space-5) var(--hib-space-5) var(--hib-space-6);
  text-align: start;
  position: relative;
  transition: transform 340ms var(--hib-ease-out-soft), box-shadow 340ms var(--hib-ease-out-soft), border-color 340ms var(--hib-ease-out-soft);
}
.hib-addpro-step-card:hover {
  transform: translateY(-3px);
  border-color: rgba(29, 84, 196,0.22);
  box-shadow: 0 20px 40px -20px rgba(16,24,40,0.16);
}
.hib-addpro-step-card__number {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: linear-gradient(145deg, var(--hib-primary) 0%, #4C7CE0 100%);
  color: #FFFFFF;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--hib-font-display);
  font-weight: 700;
  font-size: 1.15rem;
  margin-bottom: var(--hib-space-4);
  box-shadow: 0 10px 22px -8px rgba(29, 84, 196,0.45), 0 2px 6px rgba(16,24,40,0.10);
}
.hib-addpro-step-card__title {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-body-lede-size);
  font-weight: 600;
  color: var(--hib-text);
  letter-spacing: normal;
  margin-bottom: 4px;
}
.hib-addpro-step-card__desc {
  color: var(--hib-text-strong);
  font-size: var(--hib-label-m-size);
  line-height: 1.45;
}

/* Soft connector between steps (desktop only) */
@media (min-width: 900px) {
  .hib-addpro-steps .hib-addpro-step-card:not(:last-child)::after {
    content: "";
    position: absolute;
    top: calc(var(--hib-space-5) + 22px);
    inset-inline-start: -2px;
    width: calc(var(--hib-space-4) + 4px);
    height: 2px;
    background: linear-gradient(90deg, rgba(29, 84, 196,0.28) 0%, rgba(29, 84, 196,0.08) 100%);
    border-radius: 2px;
    z-index: 0;
  }
}

/* ============================================================
   9) ADD-PRO INFO CARD  ("מה חשוב לדעת")
   ============================================================ */
.hib-addpro-info__title {
  display: inline-flex;
  align-items: center;
  gap: var(--hib-space-2);
  font-family: var(--hib-font-ui);
  font-size: clamp(1.2rem, 2vw, 1.5rem);
  font-weight: 600;
  color: var(--hib-text);
  letter-spacing: normal;
  margin-bottom: var(--hib-space-5);
}
.hib-addpro-info__title svg { width: 22px; height: 22px; color: var(--hib-primary); }
.hib-addpro-info__list { display: grid; grid-template-columns: 1fr 1fr; gap: var(--hib-space-3) var(--hib-space-6); }
@media (max-width: 680px) { .hib-addpro-info__list { grid-template-columns: 1fr; } }
.hib-addpro-info__item {
  display: flex;
  gap: var(--hib-space-2);
  align-items: flex-start;
  color: var(--hib-text);
  line-height: 1.55;
  font-size: var(--hib-body-s-size);
}
.hib-addpro-info__item svg {
  width: 18px; height: 18px; flex-shrink: 0;
  padding: 2px;
  background: rgba(29, 84, 196,0.08);
  border-radius: 50%;
  color: var(--hib-primary);
  margin-top: 2px;
}

/* ============================================================
   12) PROFILE HERO UPGRADES  (profile-renovation)
   ============================================================ */
.hib-profile-hero__media {
  position: relative;
  aspect-ratio: 1;
  border-radius: var(--hib-radius-l);
  overflow: hidden;
  box-shadow:
    0 20px 48px -20px rgba(16,24,40,0.22),
    0 4px 12px -4px rgba(29, 84, 196,0.12);
  border: 1px solid var(--hib-rule-soft);
}
body[data-domain="renovation"] .hib-profile-hero__media {
  box-shadow:
    0 20px 48px -20px rgba(11,92,82,0.28),
    0 4px 12px -4px rgba(11,92,82,0.16);
}
.hib-profile-hero__media img {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.hib-profile-hero__summary--grouped .hib-profile-hero__block + .hib-profile-hero__block {
  margin-top: var(--hib-space-4);
  padding-top: var(--hib-space-4);
  border-top: 1px dashed var(--hib-rule-soft);
}
.hib-profile-hero__summary--grouped .hib-profile-hero__block:first-child + .hib-profile-hero__block,
.hib-profile-hero__summary--grouped .hib-profile-hero__block:last-child {
  border-top-style: solid;
  border-top-color: var(--hib-rule-soft);
}

.hib-profile-hero__rating {
  display: inline-flex;
  align-items: center;
  gap: var(--hib-space-2);
  font-size: 1rem;
}
.hib-profile-hero__rating-score {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  background: #FFF8E8;
  color: #9A6F00;
  border-radius: var(--hib-radius-pill);
  font-weight: 700;
  border: 1px solid rgba(154,111,0,0.20);
}
.hib-profile-hero__trust-note {
  margin-top: var(--hib-space-2);
  color: var(--hib-text-strong);
  font-size: 0.9rem;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  line-height: 1.5;
}
.hib-profile-hero__trust-note svg {
  color: var(--hib-primary);
  flex-shrink: 0;
}

@media (max-width: 768px) {
  .hib-profile-hero__grid { grid-template-columns: 1fr; }
  .hib-profile-hero__media {
    aspect-ratio: 4/3;
    max-width: 440px;
  }
}

.hib-profile-about__text p {
  color: var(--hib-text);
  font-size: var(--hib-body-lede-size);
  line-height: 1.75;
  margin-bottom: var(--hib-space-5);
}
.hib-profile-about__text p:last-child { margin-bottom: 0; }

/* ============================================================
   14) PROFILE GALLERY — editorial crop + stagger
   ============================================================ */
.hib-profile-gallery__grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: var(--hib-space-3);
  aspect-ratio: 16 / 10;
}
.hib-profile-gallery__item {
  overflow: hidden;
  border-radius: var(--hib-radius-m);
  position: relative;
  box-shadow: 0 10px 24px -14px rgba(16,24,40,0.20);
  transition: transform 420ms var(--hib-ease-out-soft), box-shadow 420ms var(--hib-ease-out-soft);
}
.hib-profile-gallery__item img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 600ms var(--hib-ease-out-soft);
}
.hib-profile-gallery__item--main {
  grid-row: span 2;
}
@media (max-width: 768px) {
  .hib-profile-gallery__grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
    aspect-ratio: unset;
  }
  .hib-profile-gallery__item--main {
    grid-row: auto;
    grid-column: 1 / -1;
    aspect-ratio: 16 / 10;
  }
  .hib-profile-gallery__item { aspect-ratio: 1; }
}

/* ============================================================
   15) PROFILE REVIEWS  — quiet editorial cards
   ============================================================ */
.hib-profile-reviews__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: var(--hib-space-4);
  margin-bottom: var(--hib-space-6);
  padding-bottom: var(--hib-space-4);
  border-bottom: 1px solid var(--hib-rule-soft);
}
.hib-profile-reviews__subtext {
  color: var(--hib-text-strong);
  font-size: 0.9rem;
  opacity: 0.8;
}
.hib-profile-reviews__aggregate {
  display: inline-flex;
  align-items: center;
  gap: var(--hib-space-2);
  padding: 8px 14px;
  background: #FFFFFF;
  border: 1px solid var(--hib-rule-soft);
  border-radius: var(--hib-radius-pill);
  box-shadow: 0 4px 14px -6px rgba(16,24,40,0.10);
}
.hib-profile-reviews__stars {
  display: inline-flex;
  align-items: center;
  gap: 1px;
  color: #E4B23C;
}
.hib-profile-reviews__stars svg { width: 14px; height: 14px; }
.hib-profile-reviews__count {
  color: var(--hib-text-strong);
  font-size: 0.85rem;
  opacity: 0.8;
}
.hib-profile-reviews__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--hib-space-4);
}
/* ============================================================
   16) PROFILE BOTTOM CTA — warm domain-aware ending
   ============================================================ */
body[data-domain="renovation"] .hib-profile-bottom-cta {
  background: linear-gradient(140deg, var(--hib-domain-btn) 0%, #0A4A42 100%);
  box-shadow: 0 24px 60px -24px rgba(11,92,82,0.40);
}
body[data-domain="design"] .hib-profile-bottom-cta {
  background: linear-gradient(140deg, #1A1916 0%, #2A2623 100%);
  box-shadow: 0 24px 60px -24px rgba(26,25,22,0.5);
}
.hib-profile-bottom-cta__inner {
  position: relative;
  z-index: 1;
  max-width: 600px;
  margin-inline: auto;
}
.hib-profile-bottom-cta__title {
  font-family: var(--hib-font-display);
  font-size: var(--hib-band-title-size);
  font-weight: 900;
  letter-spacing: normal;
  line-height: 1.15;
  margin-bottom: var(--hib-space-3);
  color: #FFFFFF;
}
.hib-profile-bottom-cta__desc {
  color: var(--hib-on-dark-soft);
  font-size: var(--hib-body-lede-size);
  line-height: 1.55;
  margin-bottom: var(--hib-space-6);
  max-width: 48ch;
  margin-inline: auto;
}
.hib-profile-bottom-cta__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--hib-space-3);
  margin-bottom: var(--hib-space-5);
}
body[data-domain="renovation"] .hib-profile-bottom-cta .hib-btn { color: var(--hib-domain-btn); }
body[data-domain="design"] .hib-profile-bottom-cta .hib-btn { color: #1A1916; }
.hib-profile-bottom-cta__trust {
  color: var(--hib-on-dark-muted);
  font-size: var(--hib-caption-size);
  font-weight: 500; /* one trust-line voice across the CTA family */
  letter-spacing: normal;
}
.hib-profile-bottom-cta__secondary {
  margin-top: var(--hib-space-3);
}
.hib-profile-bottom-cta__secondary a {
  color: var(--hib-on-dark-muted);
  text-decoration: underline;
  text-underline-offset: 3px;
  font-size: var(--hib-label-m-size);
  transition: color 200ms var(--hib-ease-out-soft);
}
.hib-profile-bottom-cta__secondary a:hover { color: #FFFFFF; }

/* ============================================================
   17) PROFILE SPECIALTIES & AREAS — denser grid
   ============================================================ */
.hib-profile-specialties__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--hib-space-3) var(--hib-space-5);
}
.hib-profile-specialties__item {
  display: inline-flex;
  align-items: center;
  gap: var(--hib-space-2);
  color: var(--hib-text);
  font-size: 0.98rem;
  padding: 6px 0;
}
.hib-profile-specialties__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--hib-primary);
  flex-shrink: 0;
}
body[data-domain="renovation"] .hib-profile-specialties__dot { background: var(--hib-domain-btn); }

.hib-profile-areas__grid {
  display: flex;
  flex-wrap: wrap;
  gap: var(--hib-space-2);
}
.hib-profile-areas__chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 14px;
  background: #FFFFFF;
  border: 1px solid var(--hib-rule-soft);
  border-radius: var(--hib-radius-s);
  color: var(--hib-text);
  font-size: var(--hib-label-m-size);
  font-weight: 500;
  transition:
    background 240ms var(--hib-ease-out-soft),
    border-color 240ms var(--hib-ease-out-soft),
    color 240ms var(--hib-ease-out-soft);
}
.hib-profile-areas__chip svg {
  width: 13px; height: 13px; color: var(--hib-primary);
}
body[data-domain="renovation"] .hib-profile-areas__chip svg { color: var(--hib-domain-btn); }
.hib-profile-areas__chip:hover {
  border-color: rgba(29, 84, 196,0.22);
  background: rgba(29, 84, 196,0.02);
  transform: translateY(-1px);
}

/* ============================================================
   18) CTA-SECTION page-ending polish (guides + guide pages)
   (The ::before top-highlight and the __content lift moved out with
   the surface consolidation — the shared .hib-cta-surface class owns
   layering, and the highlight was this block's alone, off-family.)
   ============================================================ */
.hib-cta-section__title {
  font-family: var(--hib-font-display);
  font-size: var(--hib-band-title-size);
  letter-spacing: normal;
  line-height: 1.15;
  color: #FFFFFF;
  margin-bottom: var(--hib-space-3);
}
.hib-cta-section__desc {
  color: var(--hib-on-dark-soft);
  font-size: var(--hib-body-lede-size);
  line-height: 1.55;
  margin-bottom: var(--hib-space-5);
}
.hib-cta-section__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--hib-space-3);
}
.hib-cta-section__trust {
  font-size: var(--hib-caption-size);
  font-weight: 500; /* one trust-line voice across the CTA family (home/vision closers match) */
  letter-spacing: normal;
  color: var(--hib-on-dark-muted);
}

/* ============================================================
   20) SECTION EYEBROW CHIP  — unify hierarchy
   ============================================================ */
.hib-section-header__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--hib-space-2);
  padding: 5px 12px;
  background: rgba(29, 84, 196,0.08);
  color: var(--hib-primary);
  border: 1px solid var(--hib-border-accent);
  border-radius: var(--hib-radius-pill);
  font-family: var(--hib-font-ui);
  font-weight: 700;
  font-size: var(--hib-micro-label-size);
  letter-spacing: normal;
  text-transform: uppercase;
  margin-bottom: var(--hib-space-3);
}
.hib-section-header__eyebrow::before {
  content: "";
  width: 14px;
  height: 1px;
  background: currentColor;
  opacity: 0.6;
}
.hib-section-header--start .hib-section-header__eyebrow { margin-inline-start: 0; }
body[data-domain="renovation"] .hib-section-header__eyebrow {
  background: rgba(11,92,82,0.08);
  color: var(--hib-domain-btn);
  border-color: rgba(11,92,82,0.16);
}

/* ============================================================
   21) TOPIC CHIPS  (leak-repair filter bar)
   ============================================================ */
.hib-topic-chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--hib-space-2);
  justify-content: flex-start;
  padding-block: var(--hib-space-2);
}
.hib-chip {
  padding: 7px 16px;
  background: #FFFFFF;
  border: 1px solid var(--hib-rule-soft);
  border-radius: var(--hib-radius-pill);
  color: var(--hib-text);
  font-family: var(--hib-font-ui);
  font-size: var(--hib-label-m-size);
  font-weight: 500;
  cursor: pointer;
  transition:
    background 220ms var(--hib-ease-out-soft),
    border-color 220ms var(--hib-ease-out-soft),
    color 220ms var(--hib-ease-out-soft);
}
.hib-chip:hover {
  border-color: rgba(29, 84, 196,0.3);
  color: var(--hib-primary);
  transform: translateY(-1px);
}
.hib-chip--active {
  background: var(--hib-primary);
  color: #FFFFFF;
  border-color: var(--hib-primary);
  box-shadow: 0 6px 14px -4px rgba(29, 84, 196,0.32);
}

/* ============================================================
   23) HOME HERO EYEBROW — richer (index)
   ============================================================ */
.hib-home-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  background: rgba(29, 84, 196,0.07);
  border: 1px solid rgba(29, 84, 196,0.15);
  color: var(--hib-primary);
  border-radius: var(--hib-radius-pill);
  font-family: var(--hib-font-ui);
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: normal;
  margin-bottom: var(--hib-space-5);
  backdrop-filter: blur(4px);
}
.hib-home-hero__eyebrow svg { width: 14px; height: 14px; }

/* ============================================================
   24) RICHER REVEAL VARIANTS — opt-in per-page
   ============================================================ */
@keyframes hib-rise-in {
  from { opacity: 0; transform: translateY(18px) scale(0.995); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes hib-slide-start {
  from { opacity: 0; transform: translateX(14px); }
  to   { opacity: 1; transform: translateX(0); }
}

.hib-reveal--slide {
  opacity: 0;
  transform: translateX(14px);
  transition: opacity 0.7s var(--hib-ease-out-soft), transform 0.7s var(--hib-ease-out-soft);
}
.hib-reveal--slide.is-visible {
  opacity: 1;
  transform: translateX(0);
}

/* Stagger applied to reveal grids: children pick up --i for delay */
.hib-reveal[data-stagger].is-visible > * {
  animation: hib-rise-in 0.7s var(--hib-ease-out-soft) both;
}
.hib-reveal[data-stagger].is-visible > *:nth-child(1)  { animation-delay: 40ms; }
.hib-reveal[data-stagger].is-visible > *:nth-child(2)  { animation-delay: 110ms; }
.hib-reveal[data-stagger].is-visible > *:nth-child(3)  { animation-delay: 180ms; }
.hib-reveal[data-stagger].is-visible > *:nth-child(4)  { animation-delay: 250ms; }
.hib-reveal[data-stagger].is-visible > *:nth-child(5)  { animation-delay: 320ms; }
.hib-reveal[data-stagger].is-visible > *:nth-child(6)  { animation-delay: 390ms; }
.hib-reveal[data-stagger].is-visible > *:nth-child(7)  { animation-delay: 460ms; }
.hib-reveal[data-stagger].is-visible > *:nth-child(8)  { animation-delay: 530ms; }
.hib-reveal[data-stagger].is-visible > *:nth-child(9)  { animation-delay: 600ms; }
.hib-reveal[data-stagger].is-visible > *:nth-child(10) { animation-delay: 670ms; }
.hib-reveal[data-stagger].is-visible > *:nth-child(11) { animation-delay: 740ms; }
.hib-reveal[data-stagger].is-visible > *:nth-child(12) { animation-delay: 810ms; }

@media (prefers-reduced-motion: reduce) {
  .hib-reveal[data-stagger].is-visible > *,
  .hib-reveal--slide { animation: none !important; transform: none !important; opacity: 1 !important; }
}

/* ============================================================
   25) FOOTER EPILOGUE — deliberate lift above the footer
   ============================================================ */
.hib-footer { position: relative; }
.hib-footer::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: min(var(--hib-container-default), 90%);
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.14) 30%, rgba(255,255,255,0.14) 70%, transparent);
}


/* -- Motion primitives (shared across guide surfaces) -------- */
.hib-reveal--rise { transform: translateY(18px) scale(0.994); }
.hib-reveal--rise.is-visible { transform: translateY(0) scale(1); }

@keyframes hibGuideFadeUp {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}


/* ============================================================
   A. HERO DOMAIN OVERRIDES — fix specificity issue
      Old rules at lines 4239-4244 use [data-domain] scoping which wins
      over the base .hib-policy-hero in cascade order. These later,
      same-specificity rules override them correctly.
   ------------------------------------------------------------ */
[data-domain="renovation"] .hib-policy-hero {
  background:
    radial-gradient(ellipse 85% 80% at 50% -5%, rgba(29, 84, 196,0.05) 0%, transparent 55%),
    linear-gradient(180deg, var(--hib-domain-soft) 0%, var(--hib-bg) 68%);
  position: relative;
}
[data-domain="design"] .hib-policy-hero {
  background:
    radial-gradient(ellipse 85% 80% at 50% -5%, rgba(122,116,110,0.06) 0%, transparent 55%),
    linear-gradient(180deg, var(--hib-domain-soft) 0%, var(--hib-bg) 68%);
  position: relative;
}

/* Design: override the negative hero title tracking from the base rule */
[data-domain="design"] .hib-policy-hero__title {
  font-family: var(--hib-font-display-design);
  letter-spacing: normal;
  line-height: 1.22;
}

/* Domain-aware number badge — renovation teal, design charcoal */
[data-domain="renovation"] .hib-policy-standards__heading-number {
  background: linear-gradient(135deg, var(--hib-primary) 0%, #2E7A85 100%);
  box-shadow: 0 4px 10px -4px rgba(36,94,102,0.40);
}
[data-domain="design"] .hib-policy-standards__heading-number {
  background: linear-gradient(135deg, var(--hib-primary) 0%, rgba(41,40,38,0.82) 100%);
  box-shadow: 0 4px 10px -4px rgba(41,40,38,0.35);
}

/* ============================================================
   B. POLICY CTA — bright, domain-tinted page-ending
      Replaces the dark .hib-cta-section on policy pages.
      HTML: hib-cta-section → hib-policy-cta
   ------------------------------------------------------------ */
.hib-policy-cta {
  max-width: var(--hib-container-narrow);
  margin-inline: auto;
  text-align: center;
  padding: clamp(40px, 5vw, 64px) clamp(24px, 4vw, 56px);
  background:
    radial-gradient(ellipse 80% 70% at 50% 0%, var(--hib-domain-soft) 0%, transparent 70%),
    #FFFFFF;
  border: 1px solid var(--hib-domain-line, var(--hib-border-accent));
  border-radius: var(--hib-radius-l);
  box-shadow:
    0 1px 4px rgba(0,0,0,0.04),
    0 10px 40px -20px rgba(0,0,0,0.10);
  position: relative;
  overflow: hidden;
}
.hib-policy-cta::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 64px;
  height: 3px;
  background: var(--hib-primary);
  border-radius: 0 0 3px 3px;
  opacity: 0.75;
}
.hib-policy-cta__title {
  font-family: var(--hib-font-display);
  font-size: clamp(1.375rem, 2.6vw, 1.875rem);
  letter-spacing: normal;
  color: var(--hib-ink, #14171A);
  margin-top: var(--hib-space-4);
  margin-bottom: var(--hib-space-3);
}
.hib-policy-cta__desc {
  font-size: clamp(0.9375rem, 1.3vw, 1.0625rem);
  color: var(--hib-text-strong);
  line-height: 1.65;
  margin-bottom: var(--hib-space-6);
  max-width: 480px;
  margin-inline: auto;
}
[data-domain="design"] .hib-policy-cta__title {
  font-family: var(--hib-font-display-design);
  letter-spacing: normal;
}
.hib-section:has(> .hib-container > .hib-policy-cta) {
  padding-bottom: clamp(var(--hib-space-10), 7vw, var(--hib-space-13));
}
@media (max-width: 767px) {
  .hib-policy-cta {
    border-radius: var(--hib-radius-m);
    padding: var(--hib-space-8) var(--hib-space-5);
  }
}

/* ============================================================
   C. PROCESS STEPS STAGGER
   ------------------------------------------------------------ */
.hib-policy-process__steps[data-stagger] > *.hib-animate {
  opacity: 0;
  animation: fadeInUp 0.50s var(--hib-ease) forwards;
}
@media (prefers-reduced-motion: reduce) {
  .hib-policy-process__steps[data-stagger] > *.hib-animate {
    animation: none !important;
    opacity: 1 !important;
  }
}

/* ============================================================
   ACCESSIBILITY — button resets + focus states
   ============================================================ */

/* Reset browser default button chrome for custom-styled button elements */
button.hib-specialties-select__option,
button.hib-area-city,
button.hib-upload-zone,
button.hib-upload-gallery__slot,
button.hib-addpro-summary__group-edit {
  font: inherit;
  letter-spacing:normal;
  -webkit-appearance: none;
  appearance: none;
}

/* Contact cards: apply hover lift on keyboard focus */
.hib-contact-card:focus-visible {
  outline: 2px solid var(--hib-primary);
  outline-offset: 2px;
  transform: translateY(-3px);
  border-color: rgba(29, 84, 196,0.36);
  box-shadow:
    0 2px 4px rgba(16,24,40,0.04),
    0 14px 32px -14px rgba(29, 84, 196,0.28);
}

/* Specialty and area chips: clear focus ring */
.hib-specialties-select__option:focus-visible,
.hib-area-city:focus-visible {
  outline: 2px solid var(--hib-primary);
  outline-offset: 2px;
}

/* Upload zones: clear focus ring */
button.hib-upload-zone:focus-visible,
button.hib-upload-gallery__slot:focus-visible {
  outline: 2px solid var(--hib-primary);
  outline-offset: 2px;
  border-color: var(--hib-accent);
}


/* domain-design: pro-card verified badge (#2E7D5A) on warm cream
   (#F4F2F0) gives 4.46:1 — just under the 4.5 threshold.
   Darken minimally to #2A7854 → 4.80:1. */
[data-domain="design"] .hib-pro-card-v2__verified {
  color: #2A7854;
}


/* --- Hero: CTA button row --- */
.hib-home-hero__actions {
  display: flex;
  align-items: center;
  gap: var(--hib-space-3);
  margin-top: var(--hib-space-6);
  margin-bottom: var(--hib-space-5);
  flex-wrap: wrap;
}

/* --- Hero: social proof stats pill bar --- */
.hib-home-hero__hero-stats {
  display: inline-flex;
  align-items: center;
  gap: var(--hib-space-4);
  padding: 9px 18px;
  background: rgba(255, 255, 255, 0.84);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(29, 84, 196, 0.13);
  border-radius: var(--hib-radius-pill);
  box-shadow:
    0 2px 12px rgba(16, 24, 40, 0.06),
    0 0 0 4px rgba(255,255,255,0.52);
}

.hib-home-hero__hero-stat {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-label-s-size);
  color: var(--hib-text-strong);
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.hib-home-hero__stat-num {
  font-family: var(--hib-font-display);
  font-weight: 700;
  color: var(--hib-primary);
  font-size: var(--hib-body-s-size);
}

.hib-home-hero__hero-stat-sep {
  width: 1px;
  height: 16px;
  background: rgba(29, 84, 196, 0.18);
  flex-shrink: 0;
  display: inline-block;
}

/* --- Domain card hover: V2 gold border → V1 primary blue --- */
.hib-home-domain:hover::after {
  border-color: rgba(29, 84, 196, 0.36);
}
.hib-home-domain:hover {
  border-color: rgba(29, 84, 196, 0.28);
  box-shadow:
    0 20px 48px rgba(16, 24, 40, 0.10),
    0 6px 16px rgba(16, 24, 40, 0.06),
    0 0 0 1px rgba(29, 84, 196, 0.10);
}

/* --- Section header ruled line: gold → V1 primary blue --- */
.hib-section-header--ruled::before {
  background: rgba(29, 84, 196, 0.45);
}

/* --- Homepage video card thumbnails: tonal variety per card --- */
body:not([data-domain]) .hib-video-grid > a:nth-child(1) .hib-video-card__thumb {
  background:
    radial-gradient(ellipse 120% 100% at 28% 25%, rgba(29, 84, 196,0.32) 0%, transparent 55%),
    linear-gradient(140deg, #14306E 0%, #1D54C4 55%, #3D74E0 100%);
}
body:not([data-domain]) .hib-video-grid > a:nth-child(2) .hib-video-card__thumb {
  background:
    radial-gradient(ellipse 120% 100% at 68% 28%, rgba(11,92,82,0.35) 0%, transparent 55%),
    linear-gradient(140deg, #073030 0%, #0B5C52 52%, #1A7A6E 100%);
}
body:not([data-domain]) .hib-video-grid > a:nth-child(3) .hib-video-card__thumb {
  background:
    radial-gradient(ellipse 120% 100% at 40% 22%, rgba(122,116,110,0.32) 0%, transparent 55%),
    linear-gradient(140deg, #1A1916 0%, #292826 52%, #3C3935 100%);
}

/* --- Steps: richer, more premium numbered circles --- */
.hib-step__number {
  background:
    radial-gradient(circle at 30% 30%, rgba(255,255,255,0.90) 0%, rgba(29, 84, 196,0.04) 100%),
    linear-gradient(135deg, rgba(29, 84, 196,0.09) 0%, rgba(29, 84, 196,0.04) 100%);
  border: 1.5px solid rgba(29, 84, 196, 0.20);
  font-size: 1.375rem;
  font-weight: 800;
  color: var(--hib-primary);
  box-shadow:
    0 4px 14px rgba(29, 84, 196, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.85);
}

/* --- Steps connector: match V1 blue --- */
.hib-step:not(:last-child)::after {
  background: linear-gradient(90deg, rgba(29, 84, 196,0.16), rgba(29, 84, 196,0.08));
  height: 1px;
}

/* --- Mobile: hero CTA and stats compact layout --- */
@media (max-width: 767px) {
  .hib-home-hero__actions {
    margin-top: var(--hib-space-5);
    margin-bottom: var(--hib-space-4);
    gap: var(--hib-space-2);
  }

  .hib-home-hero__hero-stats {
    padding: 7px 14px;
    gap: var(--hib-space-3);
    flex-wrap: nowrap;
  }

  .hib-home-hero__hero-stat {
    font-size: 0.72rem;
    gap: 4px;
  }

  .hib-home-hero__stat-num {
    font-size: var(--hib-label-s-size);
  }
}

@media (max-width: 380px) {
  .hib-home-hero__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .hib-home-hero__actions .hib-btn {
    text-align: center;
    justify-content: center;
    width: 100%;
  }
}

/* --- Pro card media: domain-colored gradient fallback when image fails/loads --- */
[data-domain="plumbing"] .hib-pro-card-v2__media {
  background:
    radial-gradient(ellipse 100% 80% at 30% 20%, rgba(29, 84, 196,0.20) 0%, transparent 60%),
    linear-gradient(160deg, #E8F4FA 0%, #F2F8FC 100%);
  min-height: 120px;
}
[data-domain="renovation"] .hib-pro-card-v2__media {
  background:
    radial-gradient(ellipse 100% 80% at 70% 20%, rgba(11,92,82,0.18) 0%, transparent 60%),
    linear-gradient(160deg, #E0EEF0 0%, #EEF6F7 100%);
  min-height: 120px;
}
[data-domain="design"] .hib-pro-card-v2__media {
  background:
    radial-gradient(ellipse 100% 80% at 50% 20%, rgba(122,116,110,0.16) 0%, transparent 60%),
    linear-gradient(160deg, #EDEAE6 0%, #F5F3F0 100%);
  min-height: 120px;
}

/* --- CTA top hairline: update gold → V1 primary blue --- */
.hib-cta-noir__rule {
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(29, 84, 196, 0.28) 30%,
    rgba(29, 84, 196, 0.40) 50%,
    rgba(29, 84, 196, 0.28) 70%,
    transparent 100%
  );
}

/* --- Hero: slightly more atmosphere — reduce gradient opacity on desktop --- */
@media (min-width: 768px) {
  .hib-home-hero__gradient {
    background:
      linear-gradient(
        90deg,
        rgba(249,249,247,0.00)  0%,
        rgba(249,249,247,0.04) 20%,
        rgba(249,249,247,0.26) 42%,
        rgba(249,249,247,0.68) 60%,
        rgba(249,249,247,0.92) 78%,
        rgba(249,249,247,0.98) 100%
      ),
      linear-gradient(
        180deg,
        rgba(249,249,247,0.00)  0%,
        rgba(249,249,247,0.00) 46%,
        rgba(249,249,247,0.48) 74%,
        rgba(249,249,247,0.96) 100%
      );
  }
}


/* --- Hero: domain entry chip row (replaces generic CTA buttons) --- */
.hib-home-hero__domain-entry {
  display: flex;
  gap: var(--hib-space-2);
  margin-top: var(--hib-space-6);
  margin-bottom: var(--hib-space-5);
  flex-wrap: nowrap;
}

/* --- Domain entry chip: base --- */
.hib-home-domain-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 10px 15px;
  border-radius: var(--hib-radius-s);
  background: rgba(255, 255, 255, 0.88);
  border: 1.5px solid currentColor;
  opacity: 0.85;
  font-family: var(--hib-font-ui);
  font-size: var(--hib-body-s-size);
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow:
    0 2px 8px rgba(16, 24, 40, 0.07),
    inset 0 1px 0 rgba(255, 255, 255, 0.65);
  transition:
    transform 240ms var(--hib-ease),
    box-shadow 240ms var(--hib-ease),
    opacity 240ms var(--hib-ease),
    background 240ms var(--hib-ease);
}

.hib-home-domain-chip:hover {
  transform: translateY(-2px);
  opacity: 1;
  background: #FFFFFF;
  box-shadow:
    0 10px 28px rgba(16, 24, 40, 0.14),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.hib-home-domain-chip:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}

/* Arrow icon: dims until hover */
.hib-home-domain-chip__arrow {
  opacity: 0.45;
  flex-shrink: 0;
  transition: transform 240ms var(--hib-ease), opacity 240ms var(--hib-ease);
}

.hib-home-domain-chip:hover .hib-home-domain-chip__arrow {
  transform: translateX(-3px);
  opacity: 1;
}

/* Domain-specific colors */
.hib-home-domain-chip--plumbing {
  color: var(--hib-primary);
}
.hib-home-domain-chip--renovation {
  color: #0B5C52;
}
.hib-home-domain-chip--design {
  color: #3A3735;
}

/* --- Domain cards: upgrade CTA from link to action-button style --- */
.hib-home-domain__cta {
  display: inline-flex;
  align-items: center;
  gap: var(--hib-space-2);
  padding: 9px 16px;
  background: rgba(29, 84, 196, 0.06);
  border: 1px solid var(--hib-border-accent);
  border-radius: var(--hib-radius-s);
  font-weight: 700;
  font-size: var(--hib-label-m-size);
  color: var(--hib-primary);
  transition:
    background 240ms var(--hib-ease),
    color 240ms var(--hib-ease),
    border-color 240ms var(--hib-ease),
    gap 240ms var(--hib-ease);
  margin-top: auto;
}

.hib-home-domain:hover .hib-home-domain__cta {
  background: var(--hib-primary);
  border-color: var(--hib-primary);
  color: #FFFFFF;
  gap: var(--hib-space-3);
}

/* Domain-specific card CTA colors */
[data-domain="plumbing"] .hib-home-domain__cta {
  background: rgba(29, 84, 196, 0.06);
  border-color: rgba(29, 84, 196, 0.16);
  color: var(--hib-primary);
}
[data-domain="renovation"] .hib-home-domain__cta {
  background: rgba(11, 92, 82, 0.06);
  border-color: rgba(11, 92, 82, 0.16);
  color: #0B5C52;
}
[data-domain="design"] .hib-home-domain__cta {
  background: rgba(41, 40, 38, 0.05);
  border-color: rgba(41, 40, 38, 0.14);
  color: #3A3735;
}

[data-domain="plumbing"] .hib-home-domain:hover .hib-home-domain__cta {
  background: var(--hib-primary);
  border-color: var(--hib-primary);
  color: #FFFFFF;
}
[data-domain="renovation"] .hib-home-domain:hover .hib-home-domain__cta {
  background: #0B5C52;
  border-color: #0B5C52;
  color: #FFFFFF;
}
[data-domain="design"] .hib-home-domain:hover .hib-home-domain__cta {
  background: #3A3735;
  border-color: #3A3735;
  color: #FFFFFF;
}

/* --- Domain card title: slightly larger for stronger hierarchy --- */
.hib-home-domain__title {
  font-size: clamp(1.3125rem, 2.1vw, 1.5625rem);
  margin-bottom: var(--hib-space-3);
}

/* --- Domain section: slightly tighter gap to feel connected to hero --- */
.hib-home-domains {
  gap: var(--hib-space-4);
}

/* --- Mobile: domain entry chips --- */
@media (max-width: 767px) {
  .hib-home-hero__domain-entry {
    margin-top: var(--hib-space-5);
    margin-bottom: var(--hib-space-4);
    gap: var(--hib-space-2);
    flex-direction: column;
    align-items: flex-end;
  }

  .hib-home-domain-chip {
    padding: 10px 16px;
    font-size: var(--hib-body-s-size);
    width: 100%;
    justify-content: space-between;
  }

  .hib-home-domain-chip__arrow {
    opacity: 0.55;
  }
}

/* --- Tablet: chips on two rows if needed --- */
@media (min-width: 768px) and (max-width: 1100px) {
  .hib-home-hero__domain-entry {
    gap: var(--hib-space-2);
  }
  .hib-home-domain-chip {
    padding: 10px 14px;
    font-size: var(--hib-label-m-size);
  }
}


/* --- Section headers: canonical h2 scale + optically calibrated texture --- */
.hib-section-header__title {
  font-size: var(--hib-h2-size);
  line-height: 1.1;
  letter-spacing: normal;
}
.hib-section-header__desc {
  line-height: 1.65;
}

/* --- Hero subtitle: tighten Ploni LH from 1.72 → 1.62 --- */
.hib-home-hero__subtitle {
  line-height: 1.62;
}

/* --- All buttons: 600 weight for Ploni decisiveness --- */
.hib-btn {
  font-weight: 600;
}

/* --- FAQ body: tighten to match body-m token intent --- */
.hib-faq__body {
  line-height: 1.65;
}

/* --- Section eyebrow: align to bumped label-s token (0.8125rem) --- */
.hib-section-header__eyebrow {
  font-size: var(--hib-label-s-size);
}

/* --- Home hero eyebrow: clean to label-s token --- */
.hib-home-hero__eyebrow {
  font-size: var(--hib-label-s-size);
  letter-spacing: normal;
}

/* --- Amir quote: slightly more breathing room for 2-3 line Hebrew quote --- */
.hib-amir-section__quote {
  line-height: 1.38;
}

/* --- Step desc: tighter LH to match Ploni body-s intent --- */
.hib-step__desc {
  line-height: 1.60;
}

/* --- Domain card desc (mobile): align to bumped label-m → readable --- */
@media (max-width: 767px) {
  .hib-home-domain__title {
    font-size: 1.1875rem;
  }
}

/* ============================================================
   Plumbing hero — dark-controlled refinement
   Keeps the darker direction, but opens it up slightly
   ============================================================ */

body[data-domain="plumbing"] .hib-domain-hero-v2 {
  background-color: #0C2333;
}

body[data-domain="plumbing"] .hib-domain-hero-v2__bg {
  opacity: 0.55;
  background-position: 18% center;
  filter: saturate(0.94) contrast(1.06);
}

body[data-domain="plumbing"] .hib-domain-hero-v2__overlay {
  background:
    linear-gradient(
      to right,
      rgba(10,29,43,0.14) 0%,
      rgba(10,29,43,0.32) 22%,
      rgba(10,29,43,0.58) 44%,
      rgba(10,29,43,0.80) 66%,
      rgba(10,29,43,0.92) 100%
    ),
    linear-gradient(
      to bottom,
      rgba(6,18,28,0.14) 0%,
      rgba(6,18,28,0.04) 18%,
      rgba(6,18,28,0.08) 62%,
      rgba(6,18,28,0.18) 100%
    );
}

body[data-domain="plumbing"] .hib-search-v2 {
  background: rgba(20, 39, 55, 0.86);
  border-color: rgba(46,134,193,0.18);
  border-top-color: rgba(46,134,193,0.34);
  box-shadow:
    0 2px 10px rgba(0,0,0,0.20),
    0 12px 30px rgba(0,0,0,0.18);
}

body[data-domain="plumbing"] .hib-domain-hero-v2__stats {
  border-block-start-color: var(--hib-border-on-dark);
}

body[data-domain="plumbing"] .hib-domain-hero-v2__stat-label {
  color: var(--hib-on-dark-muted);
}

@media (max-width: 767px) {
  body[data-domain="plumbing"] .hib-domain-hero-v2__bg {
    opacity: 0.22;
    background-position: 58% top;
  }

  body[data-domain="plumbing"] .hib-domain-hero-v2__overlay {
    background:
      linear-gradient(
        to bottom,
        rgba(10,29,43,0.76) 0%,
        rgba(10,29,43,0.84) 44%,
        rgba(10,29,43,0.92) 100%
      );
  }

  body[data-domain="plumbing"] .hib-search-v2 {
    background: rgba(16, 32, 45, 0.86);
  }
}

/* ============================================================
   Renovation hero — controlled dark refinement
   Opens the hero slightly while preserving domain authority
   ============================================================ */

body[data-domain="renovation"] .hib-domain-hero-v2 {
  background-color: #0C1D1C;
}

body[data-domain="renovation"] .hib-domain-hero-v2__bg {
  opacity: 0.45;
  background-position: 18% center;
  filter: saturate(0.96) contrast(1.05);
}

body[data-domain="renovation"] .hib-domain-hero-v2__overlay {
  background:
    linear-gradient(
      to right,
      rgba(10,25,24,0.18) 0%,
      rgba(10,25,24,0.36) 22%,
      rgba(10,25,24,0.60) 44%,
      rgba(10,25,24,0.82) 66%,
      rgba(10,25,24,0.93) 100%
    ),
    linear-gradient(
      to bottom,
      rgba(6,18,17,0.16) 0%,
      rgba(6,18,17,0.05) 18%,
      rgba(6,18,17,0.08) 64%,
      rgba(6,18,17,0.20) 100%
    );
}

body[data-domain="renovation"] .hib-domain-hero-v2__content {
  color: #F4F3EE;
}

body[data-domain="renovation"] .hib-domain-hero-v2__breadcrumb {
  color: rgba(244,243,238,0.70);
}

body[data-domain="renovation"] .hib-domain-hero-v2__eyebrow {
  color: #F07A28;
}

body[data-domain="renovation"] .hib-domain-hero-v2__eyebrow::before {
  background: #F07A28;
}

body[data-domain="renovation"] .hib-domain-hero-v2__title {
  color: #F6F4EF;
  text-shadow: 0 1px 0 rgba(0,0,0,0.18);
}

body[data-domain="renovation"] .hib-domain-hero-v2__sub {
  color: rgba(244,243,238,0.80);
  max-width: 34ch;
}

body[data-domain="renovation"] .hib-domain-hero-v2__accent-line {
  background: linear-gradient(
    to right,
    transparent 0%,
    rgba(240,122,40,0.18) 24%,
    rgba(240,122,40,0.36) 50%,
    rgba(240,122,40,0.18) 76%,
    transparent 100%
  );
  opacity: 1;
}

body[data-domain="renovation"] .hib-search-v2 {
  background: rgba(17, 34, 33, 0.84);
  border-color: rgba(90,151,160,0.18);
  border-top-color: rgba(90,151,160,0.32);
  box-shadow:
    0 2px 10px rgba(0,0,0,0.18),
    0 12px 30px rgba(0,0,0,0.16);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

body[data-domain="renovation"] .hib-search-v2__label {
  color: rgba(244,243,238,0.58);
}

body[data-domain="renovation"] .hib-search-v2__input,
body[data-domain="renovation"] .hib-search-v2__select {
  color: #F4F3EE;
}

body[data-domain="renovation"] .hib-search-v2__input::placeholder {
  color: rgba(244,243,238,0.52);
}

body[data-domain="renovation"] .hib-search-v2__divider {
  background: rgba(255,255,255,0.10);
}

body[data-domain="renovation"] .hib-domain-hero-v2__stats {
  border-block-start-color: var(--hib-border-on-dark);
}

body[data-domain="renovation"] .hib-domain-hero-v2__stat-value {
  color: #F6F4EF;
}

body[data-domain="renovation"] .hib-domain-hero-v2__stat-label {
  color: rgba(244,243,238,0.68);
}

@media (max-width: 767px) {
  body[data-domain="renovation"] .hib-domain-hero-v2__bg {
    opacity: 0.20;
    background-position: 58% top;
  }

  body[data-domain="renovation"] .hib-domain-hero-v2__overlay {
    background:
      linear-gradient(
        to bottom,
        rgba(10,25,24,0.76) 0%,
        rgba(10,25,24,0.84) 44%,
        rgba(10,25,24,0.92) 100%
      );
  }

  body[data-domain="renovation"] .hib-search-v2 {
    background: rgba(16, 31, 30, 0.88);
  }

  body[data-domain="renovation"] .hib-domain-hero-v2__sub {
    max-width: 30ch;
  }
}
body[data-domain="renovation"] .hib-search-v2 {
  background: rgba(17, 34, 33, 0.86);
  border-color: rgba(90,151,160,0.20);
  border-top-color: rgba(90,151,160,0.34);
  box-shadow:
    0 2px 10px rgba(0,0,0,0.18),
    0 14px 32px rgba(0,0,0,0.18);
}

body[data-domain="renovation"] .hib-domain-hero-v2__stats {
  border-block-start-color: var(--hib-border-on-dark);
}

body[data-domain="renovation"] .hib-domain-hero-v2__sub {
  color: rgba(244,243,238,0.82);
}


/* contact.html */
.hib-contact-hero {
  background-image:
    radial-gradient(ellipse 80% 90% at 50% -10%, rgba(29, 84, 196,0.09) 0%, transparent 65%),
    linear-gradient(180deg, rgba(236,246,250,0.38) 0%, rgba(255,255,255,0.58) 72%),
    url("../images/contact-hero.png");
  background-position: center, center, center;
  background-size: auto, auto, cover;
  background-repeat: no-repeat;
}

/* guides.html — .hib-hero.hib-hero--guides (0,2,0) beats
   [data-domain="plumbing"] .hib-hero--domain (0,2,0) by cascade order */
.hib-hero.hib-hero--guides {
  background-image:
    radial-gradient(900px 340px at 85% -10%, rgba(29, 84, 196,0.07) 0%, transparent 55%),
    linear-gradient(180deg, rgba(255,255,255,0.60) 0%, rgba(248,248,245,0.48) 100%),
    url("../images/categories-hero.png");
  background-position: center, center, center;
  background-size: auto, auto, cover;
  background-repeat: no-repeat;
}

/* add-professional.html */
.hib-addpro-hero {
  background-image:
    radial-gradient(ellipse 60% 80% at 50% 0%, rgba(29, 84, 196,0.10) 0%, transparent 65%),
    linear-gradient(180deg, rgba(236,246,250,0.38) 0%, rgba(255,255,255,0.58) 70%),
    url("../images/add-new-hero.png");
  background-position: center, center, center;
  background-size: auto, auto, cover;
  background-repeat: no-repeat;
}


[data-domain="design"] {
  --hib-primary: #292826;
  --hib-primary-hover: #1F1E1C;
  --hib-accent: #7A746E;
  --hib-accent-hover: #66615B;

  --hib-domain-soft: #F2F1EF;
  --hib-domain-soft-hover: #E8E5E1;
  --hib-domain-panel-soft: #F4F2F0;
  --hib-domain-surface-soft: #F3F1EE;
  --hib-domain-hero-glow: rgba(122,116,110,.05);
  --hib-domain-line: #DEDAD4;
  --hib-domain-tag-soft: #ECE9E5;

  /* refined hero tokens */
  --hib-domain-hero:   #1F1D1A;
  --hib-domain-btn:    #E9E2D9;
  --hib-domain-accent: #9B8B78;

  --hib-display-xl-tracking: normal;
  --hib-display-xl-lh: 1.18;
  --hib-display-l-tracking: normal;
  --hib-display-l-lh: 1.21;
  --hib-h1-lh: 1.24;
}   
/**/

/* ============================================================
   Design hero — final refinement
   More depth, less milkiness, stronger editorial presence
   ============================================================ */

body[data-domain="design"] .hib-domain-hero-v2 {
  background-color: #EEE8E1;
}

body[data-domain="design"] .hib-domain-hero-v2__bg {
  opacity: 0.34;
  background-position: 18% center;
  filter: saturate(0.94) contrast(1.03);
}

body[data-domain="design"] .hib-domain-hero-v2__overlay {
  background:
    linear-gradient(
      to right,
      rgba(238,232,225,0.02) 0%,
      rgba(238,232,225,0.10) 18%,
      rgba(238,232,225,0.24) 34%,
      rgba(238,232,225,0.46) 50%,
      rgba(238,232,225,0.72) 68%,
      rgba(238,232,225,0.88) 100%
    ),
    linear-gradient(
      to bottom,
      rgba(228,220,210,0.10) 0%,
      rgba(228,220,210,0.03) 20%,
      rgba(228,220,210,0.06) 66%,
      rgba(228,220,210,0.14) 100%
    );
}

body[data-domain="design"] .hib-domain-hero-v2__content {
  color: #23211E;
}

body[data-domain="design"] .hib-domain-hero-v2__breadcrumb {
  color: rgba(35,33,30,0.58);
}

body[data-domain="design"] .hib-domain-hero-v2__eyebrow {
  color: #857767;
}

body[data-domain="design"] .hib-domain-hero-v2__eyebrow::before {
  background: #9B8B78;
}

body[data-domain="design"] .hib-domain-hero-v2__title {
  color: #1F1D1A;
  text-shadow: 0 1px 0 rgba(255,255,255,0.14);
}

body[data-domain="design"] .hib-domain-hero-v2__sub {
  color: #5E5750;
  max-width: 33ch;
}

body[data-domain="design"] .hib-domain-hero-v2__accent-line {
  background: linear-gradient(
    to right,
    transparent 0%,
    rgba(155,139,120,0.16) 24%,
    rgba(155,139,120,0.28) 50%,
    rgba(155,139,120,0.16) 76%,
    transparent 100%
  );
  opacity: 1;
}

body[data-domain="design"] .hib-search-v2 {
  background: rgba(255,250,245,0.84);
  border-color: rgba(122,116,110,0.14);
  border-top-color: rgba(122,116,110,0.24);
  box-shadow:
    0 2px 10px rgba(31,29,26,0.06),
    0 14px 30px rgba(31,29,26,0.08);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

body[data-domain="design"] .hib-search-v2__label {
  color: rgba(94,87,80,0.68);
}

body[data-domain="design"] .hib-search-v2__input,
body[data-domain="design"] .hib-search-v2__select {
  color: #23211E;
}

body[data-domain="design"] .hib-search-v2__input::placeholder {
  color: rgba(94,87,80,0.56);
}

body[data-domain="design"] .hib-search-v2__divider {
  background: rgba(122,116,110,0.10);
}

body[data-domain="design"] .hib-domain-hero-v2__stats {
  border-block-start-color: rgba(122,116,110,0.12);
}

body[data-domain="design"] .hib-domain-hero-v2__stat-value {
  color: #292826;
}

body[data-domain="design"] .hib-domain-hero-v2__stat-label {
  color: rgba(94,87,80,0.74);
}

@media (max-width: 767px) {
  body[data-domain="design"] .hib-domain-hero-v2__bg {
    opacity: 0.20;
    background-position: 60% top;
  }

  body[data-domain="design"] .hib-domain-hero-v2__overlay {
    background:
      linear-gradient(
        to bottom,
        rgba(238,232,225,0.72) 0%,
        rgba(238,232,225,0.82) 44%,
        rgba(238,232,225,0.90) 100%
      );
  }

  body[data-domain="design"] .hib-search-v2 {
    background: rgba(255,250,245,0.88);
  }

  body[data-domain="design"] .hib-domain-hero-v2__sub {
    max-width: 29ch;
  }
}
body[data-domain="design"] .hib-domain-hero-v2 {
  background-color: #ECE5DD;
}

body[data-domain="design"] .hib-domain-hero-v2__bg {
  opacity: 0.38;
  background-position: 18% center;
  filter: saturate(0.95) contrast(1.04);
}

body[data-domain="design"] .hib-domain-hero-v2__overlay {
  background:
    linear-gradient(
      to right,
      rgba(236,229,221,0.02) 0%,
      rgba(236,229,221,0.08) 16%,
      rgba(236,229,221,0.20) 32%,
      rgba(236,229,221,0.40) 48%,
      rgba(236,229,221,0.66) 66%,
      rgba(236,229,221,0.84) 84%,
      rgba(236,229,221,0.92) 100%
    ),
    linear-gradient(
      to bottom,
      rgba(226,216,205,0.08) 0%,
      rgba(226,216,205,0.02) 20%,
      rgba(226,216,205,0.05) 66%,
      rgba(226,216,205,0.12) 100%
    );
}

body[data-domain="design"] .hib-search-v2 {
  background: rgba(255,248,242,0.88);
  border-color: rgba(122,116,110,0.16);
  border-top-color: rgba(122,116,110,0.26);
  box-shadow:
    0 2px 10px rgba(31,29,26,0.06),
    0 14px 28px rgba(31,29,26,0.08);
}

body[data-domain="design"] .hib-domain-hero-v2__sub {
  color: #59524B;
}

body[data-domain="design"] .hib-domain-hero-v2__stats {
  border-block-start-color: rgba(122,116,110,0.14);
}


/* Touch targets — filter chips ≥44px on mobile */
@media (max-width: 768px) {
  .hib-filter-chip {
    min-height: 44px;
  }
  .hib-chip {
    min-height: 44px;
  }
}

/* RTL overflow protection — long Hebrew text in key slots */
.hib-pro-card-v2__name,
.hib-domain-hero-v2__title,
.hib-domain-hero-v2__sub,
.hib-section-header__title,
.hib-section-header__desc,
.hib-category-card__title,
.hib-guide-entry__title {
  overflow-wrap: break-word;
}

/* Form field error state */
.hib-field--error .hib-field__input,
.hib-field__input[aria-invalid="true"] {
  border-color: var(--hib-error);
  background: var(--hib-error-soft);
}

.hib-field--error .hib-field__input:focus,
.hib-field__input[aria-invalid="true"]:focus {
  border-color: var(--hib-error);
  box-shadow: 0 0 0 3px rgba(185, 75, 72, 0.14);
}

/* The one sentence a stuck person has to read. It was set at 13px — below the
   label naming the field and level with decorative metadata — so the smallest
   text on the form was the text that had to be understood first. Small body,
   medium weight, in the error INK (the signal colour is for borders and icons;
   at this size it would drop under AA). */
.hib-field__error {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-body-s-size);
  line-height: 1.55;
  font-weight: 500;
  color: var(--hib-error-ink);
  margin-block-start: calc(0px - var(--hib-space-1));
}

/* Pro-grid empty state */
.hib-pros-grid__empty {
  grid-column: 1 / -1;
  text-align: center;
  padding: var(--hib-space-12) var(--hib-space-6);
}

.hib-pros-grid__empty-title {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-h4-size);
  font-weight: 600;
  color: var(--hib-text);
  margin-block-end: var(--hib-space-3);
}

.hib-pros-grid__empty-desc {
  font-size: var(--hib-body-m-size);
  color: var(--hib-text-muted);
  max-width: 36ch;
  margin-inline: auto;
  line-height: 1.6;
}

/* ============================================================
   V1 DESIGN PROFILE — section title Shabtai alignment
   Profile section h2 titles match domain Shabtai direction.
   Optically calibrated: Shabtai 400 ~27px ≈ Ploni 600 30px.
   ============================================================ */

[data-domain="design"] .hib-profile-about__title,
[data-domain="design"] .hib-profile-specialties__title,
[data-domain="design"] .hib-profile-areas__title,
[data-domain="design"] .hib-profile-gallery__title,
[data-domain="design"] .hib-profile-reviews__title {
  font-family: var(--hib-font-display-design);
  font-weight: 400;
  font-size: clamp(1.42rem, 2.5vw, 1.875rem);
  line-height: 1.22;
  letter-spacing: normal;
}


/* Tighter photo→name bond; more room between name and proof */
.hib-pro-card-v2__header {
  gap: var(--hib-space-2);
  padding-top: var(--hib-space-3);
}

/* Proof line: more horizontal and vertical breathing room */
.hib-pro-card-v2__proof {
  gap: 8px;
  line-height: 1.2;
}

/* Rating star: 12→14px — primary trust icon deserves visibility */
.hib-pro-card-v2__rating svg {
  width: 14px;
  height: 14px;
}

/* Verified badge: pill treatment so it reads as a status badge, not footnote */
.hib-pro-card-v2__verified {
  background: var(--hib-success-soft);
  padding: 2px 7px;
  border-radius: var(--hib-radius-tiny);
}

/* Verified icon: 11→13px to match the bumped star */
.hib-pro-card-v2__verified svg {
  width: 13px;
  height: 13px;
}

/* Design domain: warm green tint on cream surface (--hib-success-soft is too cool) */
[data-domain="design"] .hib-pro-card-v2__verified {
  background: rgba(42, 120, 84, 0.08);
}

/* Star + number must stay together at narrow viewports (prevents wrap splitting "★ 4.8") */
.hib-pro-card-v2__rating {
  white-space: nowrap;
}


/* BarLev document H2: was 32px max = optical tie with Ploni H3 at 32px.
   BarLev 500 at 32px ≈ Ploni 600 at ~26px optical — hierarchy inverted.
   At 36px, BarLev 500 ≈ Ploni 600 at ~29px — clears H3 optical tier. */
.hib-video-content__title {
  font-size: clamp(1.6rem, 2.85vw, 2.25rem);
  letter-spacing: normal;
}


/* 1. Domain-colored breathing zone at the transition from dark hero to
      first content section. For dark domains (plumbing/renovation) this
      creates a visible decompression gradient. For light domains (design)
      the delta is subtle but domain-brand-consistent. */
[data-domain] .hib-hero + .hib-section,
[data-domain] .hib-hero + .hib-section--compact {
  background: linear-gradient(
    to bottom,
    var(--hib-domain-soft) 0%,
    var(--hib-bg) 220px
  );
}

/* 2. The section wrapping any CTA block is tinted so the transition into a
      strong CTA is deliberate rather than accidental.

      P3d3 · F15 — decided from a rendered A/B, not from preference. The tint
      was the warm cream `#F5F3EC`, and a sweep of the real render found it was
      the ONLY warm surface left on the site: one section type, on professional
      profiles alone, out of 18 routes. On the profile it lands directly under
      the guides section, which paints `--hib-surface-soft`, so the two met as
      a visible warm/cool seam — the identity drift the audit named. It now
      takes `--hib-surface-soft`, the surface §D already assigns to exactly
      this job (grouping), so the step before the navy card is tonal rather
      than a change of temperature.

      This is not a global removal of the warm tokens: `--hib-surface-cream*`
      still feed several white→cream gradients elsewhere, none of which paint a
      band, and none of which the A/B covered. Leave them to a rendered A/B of
      their own if they are ever questioned. */
.hib-section:has(> .hib-container > .hib-cta-section),
.hib-section:has(> .hib-container > .hib-cta-noir),
.hib-section:has(> .hib-container > .hib-profile-bottom-cta) {
  background: var(--hib-surface-soft);
}


.hib-section:has(> .hib-container > .hib-cta-section),
.hib-section:has(> .hib-container > .hib-cta-noir),
.hib-section:has(> .hib-container > .hib-profile-bottom-cta) {
  padding-block: clamp(var(--hib-space-7), 3.5vw, var(--hib-space-9));
  border-top: 1px solid var(--hib-hairline);
}

.hib-amir-section {
  border-block-color: var(--hib-hairline);
}

[data-domain="design"] .hib-amir-section {
  border-block-color: rgba(41, 40, 38, 0.14);
}


/* ── A. PAGE OPENER ALIGNMENT ──────────────────────────────── */

.hib-contact-hero,
.hib-addpro-hero {
  text-align: start;
}

/* desc blocks: remove auto-centering so they anchor to start */
.hib-contact-hero__desc {
  margin-inline: 0;
}
.hib-addpro-hero__title,
.hib-addpro-hero__desc {
  margin-inline: 0;
}
.hib-addpro-hero__trust {
  margin-inline-start: 0;
  margin-inline-end: auto;
}

/* meta row: was justify-content:center, now flush start */
.hib-contact-hero__meta {
  justify-content: flex-start;
}

/* ── B. DOMAIN TRANSITION RAMP ──────────────────────────────── */

/* Filter bar on domain pages: domain-soft tint bridges dark hero
   to the white listing section. Also sticks correctly when scrolled. */
[data-domain] .hib-filter-bar {
  background: var(--hib-domain-soft);
  border-block-end-color: var(--hib-hairline);
}

/* First listing section after filter bar: gradient ramp from
   domain-soft into the standard surface-soft so the transition
   from the dark hero landing zone feels graduated, not abrupt. */
[data-domain] .hib-filter-bar + .hib-section {
  background: linear-gradient(
    to bottom,
    var(--hib-domain-soft) 0%,
    var(--hib-surface-soft) 260px
  );
}


/* ── A. DOMAIN HERO STAT NUMERALS ───────────────────────────
   Previous: clamp(1.8rem, 3vw, 2.6rem)
   New: clamp(2.2rem, 3.8vw, 3.2rem) — ~23% larger, more impact */
.hib-domain-hero-v2__stat-value {
  font-size: clamp(2.2rem, 3.8vw, 3.2rem);
}

/* Stat labels: from 50% opacity to 65% — more readable without
   competing with the value */
.hib-domain-hero-v2__stat-label {
  color: rgba(240, 237, 229, 0.65);
}

/* ── B. AMIR SECTION ─────────────────────────────────────────
   Quote: bump from clamp(1.25rem, 2.5vw, 1.85rem)
   to clamp(1.4rem, 2.8vw, 2.1rem) — enough to feel editorial */
.hib-amir-section__quote {
  font-size: clamp(1.4rem, 2.8vw, 2.1rem);
}

/* Gold top hairline: 0.35 → 0.45 — perceptible brand presence,
   restrained enough not to compete with the quote */
.hib-amir-section::before {
  opacity: 0.45;
}

/* HIB watermark: stays at 0.055 — invisible grounding, not a design
   element. Reverted from 0.085 per critique. */
.hib-amir-section::after {
  color: rgba(240, 237, 229, 0.055);
}

/* Photo gold ring: 0.35 → 0.42 — coheres with hairline lift */
.hib-amir-section__photo {
  border-color: rgba(210, 115, 79, 0.42);
}

/* ── C. SECTION HEADER TITLES ────────────────────────────────
   Base: clamp(1.84rem, 3.45vw, 2.875rem) from editorial pass
   New: clamp(1.96rem, 3.7vw, 3.1rem) — 8% larger at max,
   tighter tracking for more authority */
/* ── D. STEP NUMBER CIRCLES ──────────────────────────────────
   56px → 64px; 1.25rem numeral → 1.375rem.
   Size increase alone adds presence — no ring added (ring
   implies interactivity that steps don't have). */
.hib-step__number {
  width: 64px;
  height: 64px;
  font-size: 1.375rem;
  background: var(--hib-domain-soft);
}

/* ── E. HOME TRUST BAND ──────────────────────────────────────
   Strong label: slightly larger for more immediate scan */
.hib-home-trust__text strong {
  font-size: 1rem;
}

/* Icon container: domain-soft tint — no ring (ring was
   an orphaned pattern, removed per critique) */
.hib-home-trust__icon {
  background: var(--hib-domain-soft);
}

/* ── F. SECTION HEADER EYEBROW ───────────────────────────────
   Slightly more opaque pill border for more visual presence */
.hib-section-header__eyebrow {
  border-color: rgba(29, 84, 196, 0.22);
  background: rgba(29, 84, 196, 0.10);
}

/* ── G. HOME DOMAIN CARDS — VISUAL ZONE HEIGHT ───────────────
   clamp(120px, 14vw, 168px) → clamp(136px, 16vw, 188px)
   Gives the domain-colored image zone more presence in the grid */
.hib-home-domain__visual {
  height: clamp(136px, 16vw, 188px);
}


/* ── A. CARD HOVER EASING ─────────────────────────────────────
   All interactive cards: swap var(--hib-ease) for ease-out-soft
   (cubic-bezier spring). The spring deceleration creates a subtle
   "give" on hover — the most perceptible feel upgrade for the
   least visual noise. Duration 280ms for smoothness. */
.hib-card {
  transition:
    box-shadow 280ms var(--hib-ease-out-soft),
    transform  280ms var(--hib-ease-out-soft),
    border-color 200ms var(--hib-ease);
}

/* ── B. PRO CARD PHOTO — GRADIENT SEAM FADE ──────────────────
   Removed per critique: white gradient at bottom of photo creates
   a milky artifact on dark professional photos (workshop/outdoor
   settings common in contractor listings). Risk > benefit. */

/* ── C. PRO CARD HOVER — BRAND SHADOW ────────────────────────
   The default card hover uses a neutral gray shadow.
   Blue-tinted shadow aligns to HIB brand primary. */
.hib-pro-card-v2:hover {
  box-shadow:
    0 16px 40px -16px rgba(29, 84, 196,0.26),
    0 4px 12px rgba(16,24,40,0.06);
}

/* ── D. FORM FIELD FOCUS — ACTIVATED SURFACE ─────────────────
   Visible primary tint at 4.5% — just crosses the perceptible
   threshold so the focused field reads as clearly active. */
.hib-field__input:focus {
  background: rgba(29, 84, 196, 0.045);
}

/* ── E. REVIEW CARD QUOTE MARK — MORE PRESENT ────────────────
   Was: 4rem / opacity 0.10 — too timid for an emotional anchor.
   Now: 5rem / opacity 0.13 — visible as brand character,
   not noise. */
.hib-review-card::before {
  font-size: 5rem;
  opacity: 0.13;
}

/* ── F. CONTACT CARD — RESTING ELEVATION ─────────────────────
   Cards were completely flat at rest. A shallow shadow
   communicates "this is a surface" and makes hover feel like
   an intentional lift rather than a sudden jump. */
.hib-contact-card {
  box-shadow: 0 1px 3px rgba(16,24,40,0.05), 0 1px 2px rgba(0,0,0,0.03);
  transition:
    transform 300ms var(--hib-ease-out-soft),
    border-color 200ms var(--hib-ease),
    box-shadow 300ms var(--hib-ease-out-soft);
}

/* ── G. AMIR KICKER LINE — STRONGER GOLD ─────────────────────
   The horizontal rule in the kicker was at 0.55 opacity.
   0.72 makes it read as an intentional brand mark,
   not an accidental trace. */
.hib-amir-section__kicker::before {
  background: rgba(210, 115, 79, 0.72);
}
.hib-amir-section__kicker {
  color: rgba(210, 115, 79, 0.88);
}

/* ── H. BUTTON PRESS — INSET TACTILITY ───────────────────────
   Primary button active state gains an inset shadow.
   Creates a physical "pressed" sensation — the shadow implies
   depth receding into the surface on click. */
.hib-btn--primary:active {
  box-shadow: inset 0 1px 4px rgba(0,0,0,0.18), 0 1px 3px rgba(0,0,0,0.10);
}
.hib-btn--accent:active {
  box-shadow: inset 0 1px 4px rgba(0,0,0,0.16), 0 1px 2px rgba(0,0,0,0.08);
}

/* ── I. HOME DOMAIN CARD — EASING UPGRADE ────────────────────
   Brings domain card hover in line with the rest of the system.
   The spring easing makes the icon and card lift feel considered. */
.hib-home-domain {
  transition:
    box-shadow 300ms var(--hib-ease-out-soft),
    transform  300ms var(--hib-ease-out-soft),
    border-color 200ms var(--hib-ease);
}

/* ── K. FORM HINTS ───────────────────────────────────────── */
.hib-contact-form__hint {
  margin-top: var(--hib-space-3);
  font-size: var(--hib-label-s-size);
  line-height: var(--hib-label-s-lh);
  color: var(--hib-ink-muted);
  text-align: center;
}
.hib-field__hint {
  display: block;
  margin-top: var(--hib-space-2);
  font-size: var(--hib-label-s-size);
  line-height: var(--hib-label-s-lh);
  color: var(--hib-ink-muted);
}

/* ── J. PRO CARD EASING — CASCADE FIX ───────────────────────
   The earlier .hib-card rule (0,1,0 specificity) is overridden
   by .hib-card.hib-pro-card-v2 at line 7989 (0,2,0).
   This double-class override restores the spring easing for
   pro cards specifically. */
.hib-card.hib-pro-card-v2 {
  transition:
    transform  280ms var(--hib-ease-out-soft),
    box-shadow 280ms var(--hib-ease-out-soft),
    border-color 200ms var(--hib-ease);
}


/* F2: face before CTA on mobile */
@media (max-width: 767px) {
  .hib-profile-hero__summary {
    order: 0;
  }
}

/* F3: close the gap between sticky filter bar and listing results.
   Explicit class on the listing section — DOM-position-independent. */
.hib-section--listing {
  padding-top: var(--hib-space-8); /* 40px — down from ~90px at desktop */
}

/* F5: review count as legible comparison signal.
   :not([class]) precisely targets the anonymous review-count span
   inside the proof row without touching rating or verified badge. */
.hib-pro-card-v2__proof > span:not([class]) {
  font-weight: 500;
  color: var(--hib-ink);
}

/* F6: prevent profile hero box-shadows from bleeding into next section.
   overflow:clip paints within the border box without side effects on
   scroll containers or absolutely-positioned children. */
.hib-profile-hero {
  overflow: clip;
}

/* F6-gallery: Gallery block height containment.
   Root cause: base rules assign aspect-ratio:4/3 on items and aspect-ratio:3/4
   on the main item. These intrinsic ratios participate in CSS Grid track sizing
   and can force the grid container taller than its aspect-ratio:16/10 target —
   severity grows with tall/portrait source images since the 3/4 main item wants
   ~0.89× container-width in height vs the container's 0.625× target.
   Fix: reset item aspect-ratios to auto so the container's 16/10 is authoritative.
   min-height:0 removes the default auto floor on grid items so tracks can't be
   pushed open by intrinsic size contributions.
   Mobile MQ restores per-item ratios (needed because grid-template-rows:auto
   on mobile sizes rows from items, not from a container aspect-ratio). */
.hib-profile-gallery__item,
.hib-profile-gallery__item--main {
  aspect-ratio: auto;
  min-height: 0;
}
@media (max-width: 768px) {
  .hib-profile-gallery__item        { aspect-ratio: 1; }
  .hib-profile-gallery__item--main  { aspect-ratio: 16 / 10; }
}


/* A. Domain card: hide icon-wrap (removed from HTML; safety net for
      any cached or non-updated instances) and lighten overlay.
      The radial gradient was added purely for icon badge contrast —
      without the badge the center darkness is unnecessary.
      New overlay: subtle bottom vignette only, so the photo breathes. */
.hib-home-domain__icon-wrap {
  display: none;
}
.hib-home-domain__visual::after {
  background: linear-gradient(
    180deg,
    rgba(10,14,20,0.06)  0%,
    rgba(10,14,20,0.24) 60%,
    rgba(10,14,20,0.38) 100%
  );
}
.hib-home-domain:hover .hib-home-domain__visual::after {
  opacity: 0.7;
}

/* B. Sticky mobile CTA bar on profile pages.
   Fixed at bottom, slides in via transform after hero exits viewport.
   env(safe-area-inset-bottom) handles iPhone home indicator.
   display:none on desktop keeps it out of the layout entirely. */
.hib-profile-sticky-cta {
  display: none;
}
@media (max-width: 767px) {
  .hib-profile-sticky-cta {
    display: block;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 90;
    padding: 10px 16px;
    padding-bottom: max(10px, env(safe-area-inset-bottom, 0px));
    background: #fff;
    box-shadow:
      0 -1px 0 rgba(16,24,40,0.06),
      0 -4px 20px rgba(16,24,40,0.08);
    transform: translateY(calc(100% + 2px));
    transition: transform 300ms cubic-bezier(0.16, 1, 0.3, 1);
  }
  .hib-profile-sticky-cta.is-visible {
    transform: translateY(0);
  }
  .hib-profile-sticky-cta__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    background: var(--hib-primary);
    color: #fff;
    border-radius: var(--hib-radius-xs);
    padding: 13px 24px;
    font-family: var(--hib-font-ui);
    font-size: 1rem;
    font-weight: 600;
    text-decoration: none;
    transition: opacity 140ms var(--hib-ease), transform 140ms var(--hib-ease);
  }
  .hib-profile-sticky-cta__btn:active {
    opacity: 0.88;
    transform: scale(0.97);
  }
}

/* C. Profile bio alignment.
   max-width cap removed — container already limits line length.
   text-align:start = right in RTL, giving paragraphs a natural
   reading start that matches every other section on the page. */
.hib-profile-about {
  max-width: none;
}
.hib-profile-about__text,
.hib-profile-about__text p {
  text-align: start;
}

/* D. Filter chip overflow affordance on mobile.
   mask-image fades the left edge (RTL overflow side) so users
   immediately perceive scrollable content beyond the visible area.
   Only applied on mobile where chips overflow. */
@media (max-width: 767px) {
  .hib-filter-bar__inner {
    -webkit-mask-image: linear-gradient(to right, transparent 0, black 44px);
    mask-image: linear-gradient(to right, transparent 0, black 44px);
  }
}


/* --- Hero content: wider to accommodate search bar --- */
.hib-home-hero__content {
  max-width: 720px;
}

/* --- Hero search bar --- */
.hib-hero-search {
  width: 100%;
  margin-top: var(--hib-space-7);
  margin-bottom: var(--hib-space-5);
}

.hib-hero-search__bar {
  display: flex;
  align-items: center;
  background: #FFFFFF;
  border-radius: var(--hib-radius-pill);
  box-shadow:
    0 4px 24px rgba(16,24,40,0.13),
    0 1px 6px  rgba(16,24,40,0.06),
    0 0 0 1px  rgba(16,24,40,0.07);
  overflow: hidden;
  height: 58px;
}

.hib-hero-search__filter {
  display: flex;
  align-items: center;
  position: relative;
  padding: 0 var(--hib-space-4);
  flex: 1;
  min-width: 0;
  height: 100%;
}

.hib-hero-search__select {
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  border: none;
  outline: none;
  font-family: var(--hib-font-ui);
  font-size: var(--hib-body-s-size);
  font-weight: 500;
  color: var(--hib-text);
  cursor: pointer;
  width: 100%;
  padding-left: 22px;
  text-align: right;
}

.hib-hero-search__chevron {
  position: absolute;
  left: var(--hib-space-3);
  top: 50%;
  transform: translateY(-50%);
  color: var(--hib-text-muted);
  pointer-events: none;
  flex-shrink: 0;
}

.hib-hero-search__sep {
  width: 1px;
  height: 28px;
  background: rgba(16,24,40,0.10);
  flex-shrink: 0;
}

.hib-hero-search__location {
  display: flex;
  align-items: center;
  gap: var(--hib-space-2);
  padding: 0 var(--hib-space-4);
  flex: 1.5;
  min-width: 0;
  height: 100%;
  color: var(--hib-text-muted);
}

.hib-hero-search__location > svg {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
}

.hib-hero-search__input {
  border: none;
  outline: none;
  background: transparent;
  font-family: var(--hib-font-ui);
  font-size: var(--hib-body-s-size);
  color: var(--hib-text);
  width: 100%;
  text-align: right;
}

.hib-hero-search__input::placeholder {
  color: var(--hib-text-muted);
}

.hib-hero-search__btn {
  display: inline-flex;
  align-items: center;
  gap: var(--hib-space-2);
  padding: 0 var(--hib-space-7);
  height: 100%;
  background: var(--hib-primary);
  color: #FFFFFF;
  font-family: var(--hib-font-ui);
  font-size: var(--hib-body-s-size);
  font-weight: 700;
  border: none;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  transition: background var(--hib-duration-base) var(--hib-ease);
  border-radius: var(--hib-radius-pill) 0 0 var(--hib-radius-pill);
}

.hib-hero-search__btn:hover {
  background: #0A3F63;
}

.hib-hero-search__btn svg {
  width: 17px;
  height: 17px;
}

/* --- Mobile search bar --- */
@media (max-width: 767px) {
  .hib-hero-search {
    margin-top: var(--hib-space-6);
  }

  .hib-hero-search__bar {
    flex-direction: column;
    height: auto;
    border-radius: var(--hib-radius-l);
  }

  .hib-hero-search__filter {
    width: 100%;
    height: 50px;
    padding: 0 var(--hib-space-4);
    border-bottom: 1px solid rgba(16,24,40,0.08);
  }

  .hib-hero-search__location {
    width: 100%;
    height: 50px;
    padding: 0 var(--hib-space-4);
    border-bottom: 1px solid rgba(16,24,40,0.08);
  }

  .hib-hero-search__sep {
    display: none;
  }

  .hib-hero-search__btn {
    width: 100%;
    justify-content: center;
    padding: var(--hib-space-4);
    border-radius: 0 0 var(--hib-radius-l) var(--hib-radius-l);
    height: 52px;
  }
}

/* --- Domain gateway: dedicated section below hero --- */
.hib-home-gateway {
  padding: var(--hib-space-11) 0 var(--hib-space-12);
  background: var(--hib-bg);
  border-top: 1px solid var(--hib-divider);
}

/* --- Domain section label above grid --- */
.hib-home-domains__label {
  font-family: var(--hib-font-display);
  font-size: clamp(1.375rem, 2.5vw, 1.875rem);
  font-weight: 700;
  color: var(--hib-text);
  letter-spacing: normal;
  margin-bottom: var(--hib-space-8);
  display: block;
  position: relative;
}

.hib-home-domains__label::after {
  content: '';
  position: absolute;
  bottom: -8px;
  right: 0;
  width: 44px;
  height: 3px;
  background: var(--hib-primary);
  border-radius: 2px;
}

/* --- Domain card visual: photo-friendly height + cover image --- */
.hib-home-domain__visual {
  height: clamp(190px, 18vw, 240px);
}

[data-domain="plumbing"] .hib-home-domain__visual,
[data-domain="renovation"] .hib-home-domain__visual,
[data-domain="design"] .hib-home-domain__visual {
  background: #ECEAE6;
}

.hib-home-domain__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* --- Domain card icon circle --- */
.hib-home-domain__icon {
  width: 48px;
  height: 48px;
  border-radius: var(--hib-radius-m);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-bottom: var(--hib-space-3);
}

[data-domain="plumbing"] .hib-home-domain__icon {
  background: rgba(29, 84, 196,0.10);
  color: var(--hib-primary);
}

[data-domain="renovation"] .hib-home-domain__icon {
  background: rgba(11,92,82,0.10);
  color: #0B5C52;
}

[data-domain="design"] .hib-home-domain__icon {
  background: rgba(41,40,38,0.08);
  color: #292826;
}

.hib-home-domain__icon svg {
  width: 24px;
  height: 24px;
}

/* --- Trust strip: 4-column grid --- */
.hib-home-trust__inner {
  grid-template-columns: repeat(4, 1fr);
  gap: var(--hib-space-6);
}

@media (max-width: 1023px) {
  .hib-home-trust__inner {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--hib-space-5);
  }
}

@media (max-width: 767px) {
  .hib-home-trust__inner {
    grid-template-columns: 1fr;
  }
}

/* --- Gateway: tablet stacks to single column --- */
@media (max-width: 767px) {
  .hib-home-gateway {
    padding: var(--hib-space-9) 0 var(--hib-space-10);
  }
}


.hib-home-domain__icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
}

[data-domain="plumbing"] .hib-home-domain__icon {
  background: rgba(29, 84, 196,0.13);
}

[data-domain="renovation"] .hib-home-domain__icon {
  background: rgba(11,92,82,0.13);
}

[data-domain="design"] .hib-home-domain__icon {
  background: rgba(41,40,38,0.10);
}

/* Search bar: remove hairline overflow on pill ends */
.hib-hero-search__bar {
  border: none;
  box-shadow:
    0 6px 28px rgba(16,24,40,0.14),
    0 1px 8px  rgba(16,24,40,0.07);
}

/* Domain gateway: subtle cream tint to separate from hero */
.hib-home-gateway {
  background: var(--hib-surface-cream, #F9F8F5);
}

/* Domain cards: slightly more padding in body for breathing room */
.hib-home-domain__body {
  padding: var(--hib-space-5) var(--hib-space-5) var(--hib-space-6);
}

/* Label underline: match primary exact */
.hib-home-domains__label::after {
  background: var(--hib-primary);
}


/* --- Hero: compact padding (was 64–120px top / 48–96px bottom) --- */
.hib-home-hero {
  padding-top:    clamp(28px, 3.2vw, 44px);
  padding-bottom: clamp(14px, 1.8vw, 24px);
}

/* --- Hero content: tighten inter-element gaps --- */
.hib-home-hero__eyebrow {
  margin-bottom: var(--hib-space-4);
}

.hib-home-hero__title {
  margin-bottom: var(--hib-space-4);
}

.hib-home-hero__subtitle {
  font-size: clamp(0.9375rem, 1.25vw, 1.0625rem);
  line-height: 1.6;
}

/* --- Hero search: tighter top margin --- */
.hib-hero-search {
  margin-top: var(--hib-space-5);
  margin-bottom: var(--hib-space-4);
}

/* --- Hero stats: tighter top --- */
.hib-home-hero__hero-stats {
  margin-top: 0;
}

/* --- Domain gateway: less vertical padding, borderless --- */
.hib-home-gateway {
  padding:    var(--hib-space-6) 0 var(--hib-space-7);
  border-top: none;
}

/* --- Domain label: compact --- */
.hib-home-domains__label {
  font-size:     clamp(1.1875rem, 1.9vw, 1.5rem);
  margin-bottom: var(--hib-space-5);
}

.hib-home-domains__label::after {
  bottom: -6px;
}

/* --- Domain card visual: compact photo zone --- */
.hib-home-domain__visual {
  height: clamp(128px, 11.5vw, 148px);
}

/* --- Domain card body: tight padding, no flex gap bloat --- */
.hib-home-domain__body {
  padding: 12px 14px 14px;
}

/* --- Domain card icon: compact circle --- */
.hib-home-domain__icon {
  width:         36px;
  height:        36px;
  border-radius: 50%;
  margin-bottom: 6px;
}

.hib-home-domain__icon svg {
  width:  18px;
  height: 18px;
}

/* --- Domain card title: tighter weight --- */
.hib-home-domain__title {
  font-size:     clamp(1rem, 1.5vw, 1.25rem);
  margin-bottom: 4px;
}

/* --- Domain card description: 1-line clamp, smaller --- */
.hib-home-domain__desc {
  font-size:    var(--hib-label-s-size);
  line-height:  1.5;
  margin-bottom: var(--hib-space-3);
  flex:          0 0 auto;
  display:       -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow:      hidden;
}

/* --- Domain card CTA: compact button --- */
.hib-home-domain__cta {
  padding:   7px 12px;
  font-size: var(--hib-label-s-size);
  margin-top: 0;
}

/* --- Domain card: subtle default shadow --- */
.hib-home-domain {
  box-shadow: 0 2px 8px rgba(16,24,40,0.06), 0 1px 2px rgba(16,24,40,0.04);
}

/* --- Domain cards grid: tighter gap --- */
.hib-home-domains {
  gap: var(--hib-space-4);
}

/* --- Trust strip: tighter, clean icons --- */
.hib-home-trust {
  padding:       var(--hib-space-6) 0;
  border-bottom: none;
}

/* --- Trust icon: circular, no boxy square --- */
.hib-home-trust__icon {
  width:         42px;
  height:        42px;
  border-radius: 50%;
  background:    rgba(29, 84, 196,0.07);
  flex-shrink:   0;
}

/* --- Trust text: slightly tighter --- */
.hib-home-trust__text strong {
  font-size: var(--hib-label-m-size);
}

.hib-home-trust__text span {
  font-size: 0.78125rem;
  line-height: 1.5;
}

/* Mobile: restore reasonable sizes */
@media (max-width: 767px) {
  .hib-home-hero {
    padding-top:    clamp(36px, 6vw, 52px);
    padding-bottom: clamp(24px, 4vw, 36px);
  }

  .hib-home-domain__visual {
    height: 110px;
  }

  .hib-home-domain__desc {
    -webkit-line-clamp: 2;
  }
}


/* --- Hero content: kill bottom margin (was clamp 40–72px, no longer needed) --- */
.hib-home-hero__content {
  margin-bottom: 0;
}

/* --- Hero title: cap at 3.5rem (was 82px = 5.125rem max) --- */
.hib-home-hero__title {
  font-size: clamp(2.25rem, 3.8vw, 3.5rem);
  line-height: 1.1;
  letter-spacing: normal;
  margin-bottom: var(--hib-space-3);
}

/* --- Hero eyebrow: tighter margin --- */
.hib-home-hero__eyebrow {
  margin-bottom: var(--hib-space-3);
}

/* --- Hero subtitle: 1-line at reduced size --- */
.hib-home-hero__subtitle {
  font-size: var(--hib-body-s-size);
  line-height: 1.5;
  margin-bottom: 0;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
  max-width: 520px;
}

/* --- Search: tighter top margin --- */
.hib-hero-search {
  margin-top: var(--hib-space-4);
  margin-bottom: var(--hib-space-3);
}

/* --- Stats: no extra spacing --- */
.hib-home-hero__hero-stats {
  margin-top: 0;
}

/* --- Gateway: tighter vertical padding --- */
.hib-home-gateway {
  padding: var(--hib-space-5) 0 var(--hib-space-6);
}

/* --- Domain label: reduce gap to cards --- */
.hib-home-domains__label {
  margin-bottom: var(--hib-space-4);
}

/* --- Domain card visual: reduce photo zone --- */
.hib-home-domain__visual {
  height: clamp(118px, 10.5vw, 138px);
}

/* --- Domain card body: icon + title on same row via grid --- */
.hib-home-domain__body {
  display: grid;
  grid-template-columns: 1fr 30px;
  grid-template-rows: auto auto;
  column-gap: var(--hib-space-2);
  row-gap: var(--hib-space-2);
  padding: 10px 12px 12px;
  align-items: center;
}

/* --- Icon: compact, right column, same row as title --- */
.hib-home-domain__icon {
  grid-column: 2;
  grid-row: 1;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  margin-bottom: 0;
  flex-shrink: 0;
}

.hib-home-domain__icon svg {
  width: 15px;
  height: 15px;
}

/* --- Title: left column, same row as icon --- */
.hib-home-domain__title {
  grid-column: 1;
  grid-row: 1;
  margin-bottom: 0;
  font-size: clamp(0.9375rem, 1.3vw, 1.125rem);
  align-self: center;
}

/* --- Description: hidden in compact fold layout --- */
.hib-home-domain__desc {
  display: none;
}

/* --- CTA: full width spanning both columns --- */
.hib-home-domain__cta {
  grid-column: 1 / -1;
  grid-row: 2;
  padding: 6px 10px;
  font-size: var(--hib-label-s-size);
  margin-top: 0;
  justify-content: space-between;
}

/* --- Cards gap: tighter --- */
.hib-home-domains {
  gap: var(--hib-space-3);
}

/* --- Trust: compact padding --- */
.hib-home-trust {
  padding: var(--hib-space-5) 0;
  border-top: 1px solid var(--hib-divider);
}

/* --- Mobile: restore descriptions --- */
@media (max-width: 767px) {
  .hib-home-domain__body {
    display: flex;
    flex-direction: column;
    padding: 12px 14px 14px;
    gap: 0;
  }

  .hib-home-domain__icon {
    width: 32px;
    height: 32px;
    margin-bottom: 6px;
  }

  .hib-home-domain__icon svg {
    width: 16px;
    height: 16px;
  }

  .hib-home-domain__title {
    margin-bottom: 4px;
    font-size: 1rem;
  }

  .hib-home-domain__desc {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: var(--hib-label-s-size);
    margin-bottom: var(--hib-space-2);
  }

  .hib-home-hero__subtitle {
    -webkit-line-clamp: 3;
    font-size: var(--hib-body-s-size);
  }

  .hib-home-hero__title {
    font-size: clamp(2rem, 6vw, 2.75rem);
  }
}


/* ============================================================
   HOME FOLD V2 — mockupNew.png fidelity
   Domain cards: horizontal split (image right / content left in RTL).
   Section label: centered above cards. Gateway visually fused with hero.
   ============================================================ */

/* Gateway: transparent surface, near-zero top padding → continuous with hero */
.hib-home-gateway {
  background: transparent;
  padding-top: 0;
  padding-bottom: var(--hib-space-7);
}

/* Section label: centered, balanced underline */
.hib-home-domains__label {
  text-align: center;
  margin-bottom: var(--hib-space-5);
}

.hib-home-domains__label::after {
  right: auto;
  left: 50%;
  transform: translateX(-50%);
}

/* Cards row: equal-height stretch */
.hib-home-domains {
  align-items: stretch;
  gap: var(--hib-space-4);
}

/* Card shell: horizontal split, RTL-natural (visual first → right side) */
.hib-home-domain {
  flex-direction: row;
  align-items: stretch;
  min-height: 172px;
  border-radius: var(--hib-radius-l);
  box-shadow: 0 2px 10px rgba(16,24,40,0.06), 0 1px 3px rgba(16,24,40,0.04);
}

/* Visual side: ~46% width, full card height */
.hib-home-domain__visual {
  position: relative;
  width: 46%;
  height: auto;
  flex-shrink: 0;
  align-self: stretch;
  overflow: hidden;
}

.hib-home-domain__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Body side: revert grid → flex column, align icon/title/desc/cta vertically */
.hib-home-domain__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex: 1;
  padding: 16px 18px 16px;
  gap: 0;
}

.hib-home-domain__icon {
  grid-column: auto;
  grid-row: auto;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  margin-bottom: 10px;
  align-self: flex-start;
  flex-shrink: 0;
}

.hib-home-domain__icon svg {
  width: 18px;
  height: 18px;
}

.hib-home-domain__title {
  grid-column: auto;
  grid-row: auto;
  align-self: flex-start;
  font-size: clamp(1rem, 1.4vw, 1.1875rem);
  margin-bottom: 6px;
}

/* Restore description: 2-line clamp */
.hib-home-domain__desc {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: var(--hib-label-s-size);
  line-height: 1.5;
  color: var(--hib-text-secondary);
  margin-bottom: var(--hib-space-3);
  flex: 0 0 auto;
}

/* CTA: text link with arrow at bottom, no pill background */
.hib-home-domain__cta {
  grid-column: auto;
  grid-row: auto;
  padding: 0;
  background: transparent;
  color: var(--hib-primary);
  font-size: var(--hib-label-s-size);
  font-weight: 600;
  margin-top: auto;
  justify-content: flex-start;
}

/* Mobile: stack image-on-top, restore label right-align */
@media (max-width: 767px) {
  .hib-home-domain {
    flex-direction: column;
    min-height: 0;
  }

  .hib-home-domain__visual {
    width: 100%;
    height: 140px;
  }

  .hib-home-domains__label {
    text-align: right;
  }

  .hib-home-domains__label::after {
    right: 0;
    left: auto;
    transform: none;
  }
}


/* ============================================================
   FOLD V2 — POLISH PASS (mockupNew.png precision)
   Cards: 50/50 split, soft image fade, taller min-height,
          larger icon, per-domain bottom accent (inset shadow).
   Trust: single framed container with vertical dividers.
   ============================================================ */

/* --- Cards: refined geometry + bottom accent via inset shadow --- */
.hib-home-domains {
  gap: var(--hib-space-4);
  align-items: stretch;
}

.hib-home-domain {
  --domain-accent: var(--hib-primary);
  min-height: 192px;
  border-radius: var(--hib-radius-l);
  border: 1px solid var(--hib-border);
  box-shadow:
    inset 0 -3px 0 0 var(--domain-accent),
    0 1px 2px rgba(16,24,40,0.04),
    0 6px 18px rgba(16,24,40,0.06);
  position: relative;
  overflow: hidden;
}

[data-domain="renovation"].hib-home-domain { --domain-accent: #0B5C52; }
[data-domain="design"].hib-home-domain     { --domain-accent: #292826; }

/* --- Visual: 50% width, soft horizontal fade into body --- */
.hib-home-domain__visual {
  width: 50%;
  position: relative;
}

.hib-home-domain__visual::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    to left,
    rgba(255,255,255,0) 55%,
    rgba(255,255,255,0.55) 85%,
    var(--hib-surface) 100%
  );
}

/* --- Body: refined padding + vertical rhythm --- */
.hib-home-domain__body {
  padding: 18px 18px 16px;
  gap: 0;
}

.hib-home-domain__icon {
  width: 40px;
  height: 40px;
  margin-bottom: 10px;
}

.hib-home-domain__icon svg {
  width: 20px;
  height: 20px;
}

.hib-home-domain__title {
  font-size: clamp(1.0625rem, 1.45vw, 1.25rem);
  margin-bottom: 6px;
  line-height: 1.25;
}

.hib-home-domain__desc {
  font-size: var(--hib-label-s-size);
  line-height: 1.55;
  margin-bottom: var(--hib-space-3);
  color: var(--hib-text-secondary);
}

.hib-home-domain__cta {
  font-size: var(--hib-label-s-size);
  padding: 0;
  background: transparent;
  margin-top: auto;
  font-weight: 600;
  color: var(--hib-primary);
}

/* --- Trust: single framed grouped container --- */
.hib-home-trust {
  border-top: none;
  border-bottom: none;
  padding: var(--hib-space-6) 0 var(--hib-space-7);
}

.hib-home-trust.hib-section--ruled::before {
  display: none;
}

.hib-home-trust__inner {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  background: var(--hib-surface);
  border: 1px solid var(--hib-border);
  border-radius: var(--hib-radius-l);
  box-shadow:
    0 1px 2px rgba(16,24,40,0.03),
    0 6px 20px rgba(16,24,40,0.04);
  padding: 14px 6px;
  align-items: center;
}

.hib-home-trust__item {
  display: flex;
  align-items: center;
  gap: var(--hib-space-3);
  padding: 6px 18px;
  position: relative;
  min-height: 56px;
}

.hib-home-trust__item + .hib-home-trust__item::before {
  content: '';
  position: absolute;
  inset-inline-start: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 38px;
  background: var(--hib-divider);
}

.hib-home-trust__icon {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(29, 84, 196,0.08);
  color: var(--hib-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.hib-home-trust__icon svg {
  width: 18px;
  height: 18px;
}

.hib-home-trust__text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.hib-home-trust__text strong {
  font-size: 0.84375rem;
  font-weight: 600;
  color: var(--hib-text);
  line-height: 1.3;
}

.hib-home-trust__text span {
  font-size: var(--hib-micro-label-size);
  color: var(--hib-text-muted);
  line-height: 1.45;
}

/* Tablet: 2-col, swap dividers */
@media (max-width: 1023px) {
  .hib-home-trust__inner {
    grid-template-columns: repeat(2, 1fr);
    padding: 10px 6px;
  }

  .hib-home-trust__item + .hib-home-trust__item::before {
    display: none;
  }

  .hib-home-trust__item:nth-child(2n)::before {
    content: '';
    position: absolute;
    inset-inline-start: 0;
    top: 12%;
    bottom: 12%;
    width: 1px;
    background: var(--hib-divider);
  }

  .hib-home-trust__item:nth-child(n+3)::after {
    content: '';
    position: absolute;
    top: 0;
    left: 8%;
    right: 8%;
    height: 1px;
    background: var(--hib-divider);
  }
}

@media (max-width: 767px) {
  .hib-home-trust__inner {
    grid-template-columns: 1fr;
    padding: 6px;
  }

  .hib-home-trust__item:nth-child(2n)::before {
    display: none;
  }

  .hib-home-trust__item:not(:first-child)::after {
    content: '';
    position: absolute;
    top: 0;
    left: 8%;
    right: 8%;
    height: 1px;
    background: var(--hib-divider);
  }
}

/* --- CTA: flat text-link, no pill/border (specificity bump to beat domain rules) --- */
[data-domain].hib-home-domain .hib-home-domain__cta {
  padding: 0;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 0;
  font-size: var(--hib-label-s-size);
  font-weight: 600;
  margin-top: auto;
  justify-content: flex-start;
}

[data-domain].hib-home-domain:hover .hib-home-domain__cta {
  background: transparent;
  border-color: transparent;
}

[data-domain="renovation"].hib-home-domain .hib-home-domain__cta,
[data-domain="renovation"].hib-home-domain:hover .hib-home-domain__cta { color: #0B5C52; }

[data-domain="design"].hib-home-domain .hib-home-domain__cta,
[data-domain="design"].hib-home-domain:hover .hib-home-domain__cta { color: #292826; }

[data-domain="plumbing"].hib-home-domain .hib-home-domain__cta,
[data-domain="plumbing"].hib-home-domain:hover .hib-home-domain__cta { color: var(--hib-primary); }


/* ============================================================
   HOME UPPER V3 — adapt hib-search-v2 (LIGHT) into homepage hero
   Refined stats pill + softened hero→gateway fade.
   Lower cards section is NOT touched.
   ============================================================ */

/* --- Light variant of hib-search-v2 — homepage hero use --- */
.hib-search-v2--light {
  max-width: 760px;
  width: 100%;
  background: #FFFFFF;
  border: 1px solid var(--hib-border);
  border-radius: var(--hib-radius-l);
  padding: 6px;
  gap: 0;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow:
    0 1px 3px rgba(16,24,40,0.05),
    0 8px 28px rgba(16,24,40,0.10);
  align-items: stretch;
}

.hib-search-v2--light .hib-search-v2__field {
  padding: 8px 16px;
  flex: 1;
  min-width: 0;
}

.hib-search-v2--light .hib-search-v2__label {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-label-min); /* was 11px — below the label floor (QA-24) */
  font-weight: 600;
  color: var(--hib-text-muted);
  text-transform: none;
  letter-spacing: normal;
  margin-block-end: 2px;
}

.hib-search-v2--light .hib-search-v2__input,
.hib-search-v2--light .hib-search-v2__select {
  font-family: var(--hib-font-ui);
  color: var(--hib-text);
  font-size: var(--hib-body-s-size);
  font-weight: 500;
  cursor: pointer;
}

.hib-search-v2--light .hib-search-v2__input::placeholder {
  color: var(--hib-text-muted);
  font-weight: 400;
}

.hib-search-v2--light .hib-search-v2__select option {
  background: #FFFFFF;
  color: var(--hib-text);
}

.hib-search-v2--light .hib-search-v2__divider {
  background: var(--hib-divider);
  margin-block: 10px;
  width: 1px;
}

.hib-search-v2--light .hib-search-v2__btn {
  background: var(--hib-primary);
  color: #FFFFFF;
  border-radius: calc(var(--hib-radius-l) - 6px);
  padding: 0 var(--hib-space-6);
  font-size: var(--hib-body-s-size);
  font-weight: 700;
  align-self: stretch;
  gap: var(--hib-space-2);
  transition: background var(--hib-duration-base) var(--hib-ease);
}

.hib-search-v2--light .hib-search-v2__btn:hover {
  background: #0A3F63;
  opacity: 1;
}

.hib-search-v2--light .hib-search-v2__btn svg {
  width: 17px;
  height: 17px;
  flex-shrink: 0;
}

@media (max-width: 767px) {
  .hib-search-v2--light {
    flex-direction: column;
    max-width: 100%;
    gap: 0;
    padding: 4px;
  }

  .hib-search-v2--light .hib-search-v2__divider {
    display: none;
  }

  .hib-search-v2--light .hib-search-v2__field:not(:last-of-type) {
    border-block-end: 1px solid var(--hib-divider);
  }

  .hib-search-v2--light .hib-search-v2__btn {
    width: 100%;
    justify-content: center;
    padding: 14px;
    margin-block-start: 4px;
    border-radius: calc(var(--hib-radius-l) - 4px);
  }
}

/* --- Hero search wrapper rhythm (replaces .hib-hero-search wrapper) --- */
.hib-home-hero__content > .hib-search-v2 {
  margin-top: var(--hib-space-5);
  margin-bottom: var(--hib-space-4);
}

/* --- Stats pill: tighter, more compact framed strip --- */
.hib-home-hero__hero-stats {
  margin-top: var(--hib-space-3);
  padding: 8px 18px;
  gap: var(--hib-space-3);
  background: rgba(255,255,255,0.94);
  border: 1px solid var(--hib-border);
  border-radius: var(--hib-radius-pill);
  box-shadow:
    0 4px 14px rgba(16,24,40,0.06),
    0 0 0 3px rgba(255,255,255,0.42);
}

.hib-home-hero__hero-stat {
  font-size: 0.78125rem;
  gap: 5px;
}

.hib-home-hero__stat-num {
  font-size: var(--hib-label-m-size);
}

.hib-home-hero__hero-stat-sep {
  height: 14px;
  background: var(--hib-divider);
}

/* --- Hero → gateway fade: extended dissolve into surface --- */
.hib-home-hero__gradient {
  background:
    linear-gradient(
      90deg,
      rgba(249,249,247,0.00)  0%,
      rgba(249,249,247,0.06) 22%,
      rgba(249,249,247,0.32) 44%,
      rgba(249,249,247,0.74) 62%,
      rgba(249,249,247,0.94) 78%,
      rgba(249,249,247,0.99) 100%
    ),
    linear-gradient(
      180deg,
      rgba(249,249,247,0.00)  0%,
      rgba(249,249,247,0.00) 38%,
      rgba(249,249,247,0.50) 68%,
      rgba(249,249,247,0.92) 88%,
      var(--hib-bg) 100%
    );
}

.hib-home-gateway {
  position: relative;
}

.hib-home-gateway::before {
  content: '';
  position: absolute;
  top: -36px;
  left: 0;
  right: 0;
  height: 36px;
  pointer-events: none;
  z-index: 1;
  background: linear-gradient(
    180deg,
    rgba(249,249,247,0) 0%,
    var(--hib-bg) 100%
  );
}

@media (max-width: 767px) {
  .hib-home-hero__hero-stats {
    padding: 6px 12px;
    gap: var(--hib-space-2);
  }

  .hib-home-gateway::before {
    display: none;
  }
}


/* ============================================================
   HOME UPPER V3.1 — Wider search + tighter stats pill
   ============================================================ */

/* --- Hero content: wider footprint to allow search expansion --- */
.hib-home-hero__content {
  max-width: 920px;
}

/* --- Search bar: fill content width, rebalance segments --- */
.hib-search-v2--light {
  max-width: 100%;
  width: 100%;
}

.hib-search-v2--light .hib-search-v2__field {
  flex: 1;
  padding: 8px 18px;
}

/* Address field (last) gets extra weight — it's the freeform input */
.hib-search-v2--light .hib-search-v2__field:last-of-type {
  flex: 1.4;
}

.hib-search-v2--light .hib-search-v2__btn {
  padding: 0 var(--hib-space-7);
}

/* --- Stats pill: tighter, compact framed strip (mockup match) --- */
.hib-home-hero__hero-stats {
  margin-top: var(--hib-space-3);
  padding: 6px 14px;
  gap: 10px;
  background: rgba(255,255,255,0.96);
  border: 1px solid var(--hib-border);
  border-radius: var(--hib-radius-pill);
  box-shadow:
    0 3px 12px rgba(16,24,40,0.05),
    0 0 0 3px rgba(255,255,255,0.40);
}

.hib-home-hero__hero-stat {
  font-size: var(--hib-micro-label-size);
  gap: 4px;
  color: var(--hib-text-secondary);
}

.hib-home-hero__stat-num {
  font-size: 0.84375rem;
  font-weight: 700;
  color: var(--hib-primary);
}

.hib-home-hero__hero-stat-sep {
  width: 1px;
  height: 12px;
  background: var(--hib-divider);
}

@media (max-width: 1023px) {
  .hib-home-hero__content {
    max-width: 100%;
  }
}


/* ============================================================
   STATS STRIP V3.2 — precision pass (mockupNew.png)
   Strip directly under search: tighter frame, prominent numbers,
   secondary labels, refined dividers, exact vertical centering.
   ============================================================ */

.hib-home-hero__hero-stats {
  display: inline-flex;
  align-items: center;
  width: max-content;
  margin-top: var(--hib-space-3);
  padding: 5px 16px;
  gap: 14px;
  background: rgba(255,255,255,0.88);
  border: 1px solid var(--hib-border-accent);
  border-radius: var(--hib-radius-pill);
  box-shadow:
    0 2px 8px rgba(16,24,40,0.04),
    0 0 0 3px rgba(255,255,255,0.34);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.hib-home-hero__hero-stat {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--hib-font-ui);
  font-size: var(--hib-micro-label-size);
  font-weight: 500;
  line-height: 1;
  color: var(--hib-text-secondary);
  white-space: nowrap;
}

.hib-home-hero__stat-num {
  font-family: var(--hib-font-display);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1;
  color: var(--hib-primary);
  letter-spacing: normal;
}

.hib-home-hero__hero-stat-sep {
  width: 1px;
  height: 18px;
  background: rgba(29, 84, 196,0.18);
  flex-shrink: 0;
}

@media (max-width: 767px) {
  .hib-home-hero__hero-stats {
    width: 100%;
    padding: 6px 12px;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: center;
  }

  .hib-home-hero__stat-num {
    font-size: var(--hib-label-m-size);
  }

  .hib-home-hero__hero-stat {
    font-size: 0.6875rem;
  }

  .hib-home-hero__hero-stat-sep {
    height: 14px;
  }
}


/* ============================================================
   HOME POLISH V4 — precision pass
   Studio-grade refinement: tighter typography, calmer motion,
   cleaner surfaces, disciplined hierarchy. Token-only values.
   ============================================================ */

/* --- Motion: lower reveal distance, tighter ease, disciplined timing --- */
.hib-reveal {
  transform: translateY(8px) scale(0.997);
  transition:
    opacity .58s cubic-bezier(.22,.61,.36,1),
    transform .62s cubic-bezier(.22,.61,.36,1);
}
.hib-reveal.is-visible { transform: translateY(0) scale(1); }

.hib-animate { animation-duration: .62s; }
.hib-animate--delay-1 { animation-delay: .06s; }
.hib-animate--delay-2 { animation-delay: .14s; }
.hib-animate--delay-3 { animation-delay: .22s; }
.hib-animate--delay-4 { animation-delay: .30s; }
.hib-animate--delay-5 { animation-delay: .38s; }

@media (prefers-reduced-motion: reduce) {
  .hib-reveal,
  .hib-animate { transform: none !important; animation: none !important; transition: opacity .2s linear !important; }
  .hib-reveal { opacity: 1; }
}

/* --- Hero: editorial typography + surface discipline --- */
.hib-home-hero__title {
  letter-spacing: normal;
  text-shadow: 0 1px 28px rgba(249,249,247,0.9);
}

.hib-home-hero__title-accent {
  font-size: 0.80em;
  letter-spacing: normal;
}

.hib-home-hero__subtitle {
  color: var(--hib-text);
  opacity: 0.72;
  text-shadow: 0 1px 22px rgba(249,249,247,0.92);
  letter-spacing: normal;
}

.hib-home-hero__eyebrow {
  box-shadow: 0 1px 2px rgba(16,24,40,.04);
  background: var(--hib-surface);
  border-color: var(--hib-hairline);
}

/* --- Search bar (light): crisper surface, authoritative CTA --- */
.hib-search-v2--light {
  border-color: var(--hib-hairline);
  box-shadow:
    0 1px 2px rgba(16,24,40,0.04),
    0 10px 32px rgba(16,24,40,0.09),
    0 0 0 1px rgba(255,255,255,0.6) inset;
}

.hib-search-v2--light .hib-search-v2__label {
  color: var(--hib-text-secondary);
  letter-spacing: normal;
}

.hib-search-v2--light .hib-search-v2__divider {
  background: var(--hib-hairline);
  margin-block: 14px;
}

.hib-search-v2--light .hib-search-v2__btn {
  background: var(--hib-primary);
  box-shadow: 0 1px 2px rgba(16,24,40,0.12), 0 4px 14px rgba(29, 84, 196,0.22);
  letter-spacing: normal;
  transition:
    background .22s var(--hib-ease),
    box-shadow .22s var(--hib-ease),
    transform .18s var(--hib-ease);
}
.hib-search-v2--light .hib-search-v2__btn:hover {
  background: #0A3F63;
  box-shadow: 0 2px 4px rgba(16,24,40,0.14), 0 8px 22px rgba(29, 84, 196,0.28);
}
.hib-search-v2--light .hib-search-v2__btn:active { transform: scale(0.985); }

/* --- Stats pill: cleaner ring, quieter ground --- */
.hib-home-hero__hero-stats {
  padding: 6px 14px;
  gap: 12px;
  background: rgba(255,255,255,0.82);
  border: 1px solid var(--hib-hairline);
  box-shadow:
    0 2px 10px rgba(16,24,40,0.04),
    0 0 0 2px rgba(255,255,255,0.28);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.hib-home-hero__hero-stat-sep {
  height: 14px;
  background: var(--hib-hairline);
}

/* --- Gateway label: subtler underline accent --- */
.hib-home-domains__label {
  letter-spacing: normal;
  color: var(--hib-text);
}
.hib-home-domains__label::after {
  width: 36px;
  height: 2px;
  bottom: -7px;
}

/* --- Gateway cards: refined proportions + quieter accent --- */
.hib-home-domains { gap: var(--hib-space-5); }

.hib-home-domain {
  min-height: 176px;
  border-color: var(--hib-hairline);
  box-shadow:
    inset 0 -2px 0 0 var(--domain-accent),
    0 1px 2px rgba(16,24,40,0.03),
    0 8px 22px rgba(16,24,40,0.05);
  transition:
    box-shadow .35s var(--hib-ease),
    transform .35s var(--hib-ease),
    border-color .35s var(--hib-ease);
}
.hib-home-domain:hover {
  transform: translateY(-2px);
  box-shadow:
    inset 0 -2px 0 0 var(--domain-accent),
    0 2px 4px rgba(16,24,40,0.05),
    0 14px 32px rgba(16,24,40,0.08);
  border-color: rgba(29, 84, 196,0.22);
}

.hib-home-domain__visual::before {
  background: linear-gradient(
    to left,
    rgba(255,255,255,0) 58%,
    rgba(255,255,255,0.40) 84%,
    var(--hib-surface) 100%
  );
}

.hib-home-domain__body {
  padding: 18px 20px 18px;
}

.hib-home-domain__title {
  letter-spacing: normal;
  line-height: 1.22;
}

.hib-home-domain__desc {
  color: var(--hib-text-secondary);
  opacity: 0.86;
}

[data-domain].hib-home-domain .hib-home-domain__cta {
  gap: 6px;
  letter-spacing: normal;
  transition: gap .22s var(--hib-ease), color .22s var(--hib-ease);
}
[data-domain].hib-home-domain:hover .hib-home-domain__cta { gap: 10px; }

.hib-home-domain__cta svg { transition: transform .22s var(--hib-ease); }
.hib-home-domain:hover .hib-home-domain__cta svg { transform: translateX(-2px); }

/* --- Trust strip: refined framed component --- */
.hib-home-trust__inner {
  padding: 16px 8px;
  border-color: var(--hib-hairline);
  box-shadow:
    0 1px 2px rgba(16,24,40,0.02),
    0 8px 24px rgba(16,24,40,0.045);
}

.hib-home-trust__item {
  padding: 8px 18px;
  min-height: 58px;
  gap: 12px;
}

.hib-home-trust__item + .hib-home-trust__item::before {
  height: 32px;
  background: var(--hib-hairline);
}

.hib-home-trust__icon {
  width: 36px;
  height: 36px;
  background: var(--hib-domain-soft);
  color: var(--hib-primary);
}
.hib-home-trust__icon svg { width: 17px; height: 17px; stroke-width: 1.75; }

.hib-home-trust__text strong {
  font-size: var(--hib-label-m-size);
  letter-spacing: normal;
  color: var(--hib-text);
}
.hib-home-trust__text span {
  font-size: 0.78125rem;
  color: var(--hib-text-secondary);
  line-height: 1.45;
}

/* --- Founder: quote composure + kicker discipline --- */
.hib-amir-section__kicker {
  letter-spacing: normal;
  font-size: var(--hib-micro-label-size);
}
.hib-amir-section__kicker::before { width: 32px; }

.hib-amir-section__quote {
  line-height: 1.32;
  letter-spacing: normal;
  /* color intentionally inherited from .hib-amir-section__content (light bg) */
}

.hib-amir-section__sig-role {
  letter-spacing: normal;
}

/* --- Section rhythm: tighten gap between trust + founder --- */
.hib-home-trust + .hib-amir-section {
  padding-block-start: clamp(var(--hib-space-10), 8vw, var(--hib-space-12));
}

@media (max-width: 1023px) {
  .hib-home-domains { gap: var(--hib-space-4); }
  .hib-home-trust__item { padding: 8px 14px; min-height: 52px; }
}

/* --- Homepage founder scope: light-bg color safety + contrast --- */
body:not([data-domain]) .hib-amir-section__quote,
body:not([data-domain]) .hib-amir-section__sig-name { color: var(--hib-text); }
body:not([data-domain]) .hib-amir-section__sig-role  { color: var(--hib-text-strong); opacity: 0.88; }
body:not([data-domain]) .hib-amir-section__kicker    { color: var(--hib-primary); opacity: 1; }
body:not([data-domain]) .hib-amir-section__kicker::before { background: var(--hib-primary); opacity: 0.65; }

/* ============================================================
   VIDEO CARD — base desktop rules (restore proportions)
   Card is <a> wrapping thumb (gradient + play button) and body.
   Missing base rules caused thumb to collapse to ~24px.
   ============================================================ */
.hib-video-card {
  display: flex;
  flex-direction: column;
  background: var(--hib-surface);
  border: 1px solid var(--hib-border);
  border-radius: var(--hib-radius-l);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 1px 2px rgba(16,24,40,0.04), 0 6px 18px rgba(16,24,40,0.05);
  transition:
    transform 300ms var(--hib-ease-out-soft, var(--hib-ease)),
    box-shadow 300ms var(--hib-ease-out-soft, var(--hib-ease)),
    border-color 200ms var(--hib-ease);
}

.hib-video-card:hover {
  transform: translateY(-2px);
  border-color: rgba(29, 84, 196,0.18);
  box-shadow: 0 2px 4px rgba(16,24,40,0.05), 0 14px 32px rgba(16,24,40,0.08);
}

.hib-video-card:focus-visible {
  outline: 2px solid var(--hib-accent, var(--hib-primary));
  outline-offset: 2px;
}

.hib-video-card__thumb {
  position: relative;
  aspect-ratio: 16 / 10;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(140deg, #14306E 0%, #1D54C4 55%, #3D74E0 100%);
  overflow: hidden;
}

.hib-video-card__play {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: rgba(255,255,255,0.94);
  color: var(--hib-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 18px rgba(0,0,0,0.22), 0 1px 3px rgba(0,0,0,0.18);
  transition: transform 220ms var(--hib-ease);
  position: relative;
  z-index: 1;
}
.hib-video-card:hover .hib-video-card__play { transform: scale(1.06); }

.hib-video-card__play svg { width: 20px; height: 20px; margin-inline-start: 2px; }

.hib-video-card__body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 16px 18px 18px;
  flex: 1;
}

.hib-video-card__title {
  font-family: var(--hib-font-display);
  font-size: clamp(1rem, 1.35vw, 1.125rem);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: normal;
  color: var(--hib-text);
  margin: 0;
}

.hib-video-card__meta {
  font-family: var(--hib-font-ui);
  font-size: var(--hib-label-s-size);
  color: var(--hib-text-muted);
  letter-spacing: normal;
}

@media (max-width: 767px) {
  .hib-home-hero__title { letter-spacing: normal; }
  .hib-home-domain { min-height: 0; }
  .hib-home-trust__inner { padding: 6px; }
  .hib-home-trust__item { padding: 12px 14px; min-height: 0; }
}


/* ============================================================
   PLUMBING DOMAIN POLISH — atmosphere alignment
   Refine color surfaces and hero mood to match plumbing
   direction (pale blue listing, lighter hero). All changes
   scoped to body[data-domain="plumbing"]. No new palette.
   ============================================================ */

/* --- Hero: lift photo visibility, soften overlay anchor --- */
body[data-domain="plumbing"] .hib-domain-hero-v2__bg {
  opacity: 0.38;
}

body[data-domain="plumbing"] .hib-domain-hero-v2__overlay {
  background: linear-gradient(
    to top,
    var(--hib-domain-hero) 28%,
    rgba(7, 24, 36, 0.62) 62%,
    rgba(7, 24, 36, 0.28) 100%
  );
}

body[data-domain="plumbing"] .hib-domain-hero-v2__accent-line {
  background: linear-gradient(
    to right,
    transparent 0%,
    var(--hib-accent) 28%,
    var(--hib-accent) 72%,
    transparent 100%
  );
  opacity: 0.6;
}

/* --- Listing + FAQ section: pale-blue domain surface --- */
body[data-domain="plumbing"] .hib-section.hib-bg-soft {
  background: var(--hib-domain-surface-soft);
}

/* --- Filter bar: blend with domain tint, remove hard seam --- */
body[data-domain="plumbing"] .hib-filter-bar {
  background: var(--hib-domain-surface-soft);
  border-block-end-color: var(--hib-domain-line);
}

body[data-domain="plumbing"] .hib-filter-chip {
  background: var(--hib-surface);
  border-color: var(--hib-domain-line);
  color: var(--hib-text-secondary);
}

@media (hover: hover) and (pointer: fine) {
  body[data-domain="plumbing"] .hib-filter-chip:hover {
    border-color: var(--hib-primary);
    background: var(--hib-domain-soft);
  }
}

body[data-domain="plumbing"] .hib-filter-chip.is-active {
  background: var(--hib-primary);
  border-color: var(--hib-primary);
  color: #fff;
}

/* --- Results summary: refine frame for pale-blue context --- */
body[data-domain="plumbing"] .hib-results-summary {
  background: var(--hib-surface);
  border-color: var(--hib-domain-line);
  box-shadow: 0 1px 2px rgba(16,24,40,0.03), 0 8px 24px rgba(29, 84, 196,0.05);
}

/* --- Sort chips: plumbing domain-aware --- */
body[data-domain="plumbing"] .hib-chip {
  background: var(--hib-surface);
  border: 1px solid var(--hib-domain-line);
  color: var(--hib-text-secondary);
}
@media (hover: hover) and (pointer: fine) {
  body[data-domain="plumbing"] .hib-chip:hover {
    border-color: var(--hib-primary);
    color: var(--hib-text);
  }
}
body[data-domain="plumbing"] .hib-chip.hib-chip--active {
  background: var(--hib-primary);
  border-color: var(--hib-primary);
  color: #fff;
}

/* --- Pro cards: hairline border + brand-tinted shadow --- */
body[data-domain="plumbing"] .hib-pro-card-v2 {
  border-color: var(--hib-domain-line);
  box-shadow: 0 1px 2px rgba(16,24,40,0.03), 0 6px 20px rgba(29, 84, 196,0.05);
}

@media (hover: hover) and (pointer: fine) {
  body[data-domain="plumbing"] .hib-pro-card-v2:hover {
    border-color: rgba(29, 84, 196,0.28);
  }
}

body[data-domain="plumbing"] .hib-pro-card-v2__distance-bar {
  background: var(--hib-domain-soft);
  border-bottom-color: var(--hib-domain-line);
}

body[data-domain="plumbing"] .hib-pro-card-v2__tag {
  background: var(--hib-domain-tag-soft);
  color: var(--hib-primary);
}

/* --- Pagination: domain-aware neutral → tinted --- */
body[data-domain="plumbing"] .hib-pagination__btn,
body[data-domain="plumbing"] .hib-pagination__page {
  background: var(--hib-surface);
  border-color: var(--hib-domain-line);
  color: var(--hib-text-secondary);
}
body[data-domain="plumbing"] .hib-pagination__page--active {
  background: var(--hib-primary);
  border-color: var(--hib-primary);
  color: #fff;
}
@media (hover: hover) and (pointer: fine) {
  body[data-domain="plumbing"] .hib-pagination__btn:hover:not(:disabled),
  body[data-domain="plumbing"] .hib-pagination__page:hover:not(.hib-pagination__page--active) {
    border-color: var(--hib-primary);
    color: var(--hib-primary);
  }
}

/* --- SEO content box: subtle domain frame instead of generic --- */
body[data-domain="plumbing"] .hib-seo-content {
  border: 1px solid var(--hib-domain-line);
  background: var(--hib-surface);
  border-radius: var(--hib-radius-l);
  padding: var(--hib-space-7);
  box-shadow: 0 1px 2px rgba(16,24,40,0.03);
}
body[data-domain="plumbing"] .hib-seo-content h2 { color: var(--hib-primary); }

/* --- FAQ surface: white card on domain tint bg --- */
body[data-domain="plumbing"] .hib-faq {
  background: var(--hib-surface);
  border: 1px solid var(--hib-domain-line);
}
body[data-domain="plumbing"] .hib-faq.is-open { border-color: var(--hib-primary); }

/* --- CTA: tighten navy with subtle top hairline --- */
body[data-domain="plumbing"] .hib-domain-cta {
  background:
    linear-gradient(180deg, rgba(29, 84, 196,0.08) 0%, transparent 40%),
    var(--hib-domain-btn);
  position: relative;
}
body[data-domain="plumbing"] .hib-domain-cta::before {
  content: '';
  position: absolute;
  inset-inline: 0;
  top: 0;
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(240,237,229,0.22), transparent);
}

/* --- Founder (amir) section: domain hairline top/bottom for continuity --- */
body[data-domain="plumbing"] .hib-amir-section {
  background:
    radial-gradient(1200px 520px at 18% 0%, rgba(29, 84, 196,0.06), transparent 60%),
    linear-gradient(180deg, var(--hib-surface-editorial) 0%, var(--hib-domain-surface-soft) 100%);
}

/* --- Mobile: keep filter bar less heavy on pale bg --- */
@media (max-width: 767px) {
  body[data-domain="plumbing"] .hib-filter-bar {
    padding-block: var(--hib-space-2);
  }
}


/* ============================================================
   FIRST-RUN DELIGHT — subtle sophistication
   Brand rule: trust through restraint. Never hype. Under 1s.
   Reduced-motion safe via prefers-reduced-motion guard.
   ============================================================ */

/* --- 1. Eyebrow shield single-pulse on first mount --- */
@keyframes hib-shield-pulse {
  0%   { transform: scale(1); }
  32%  { transform: scale(1.08); }
  100% { transform: scale(1); }
}
body:not(.is-returning) .hib-home-hero__eyebrow svg {
  animation: hib-shield-pulse 900ms cubic-bezier(.22,.61,.36,1) 1.1s 1 both;
  transform-origin: center;
}

/* --- 2. Address input focus — soft brand ring --- */
.hib-search-v2--light .hib-search-v2__field:focus-within {
  box-shadow:
    inset 0 0 0 1px var(--hib-hairline),
    0 0 0 4px rgba(29, 84, 196,0.08);
  border-radius: calc(var(--hib-radius-l) - 8px);
  transition: box-shadow .28s cubic-bezier(.22,.61,.36,1);
}

.hib-search-v2--light .hib-search-v2__input:focus-visible,
.hib-search-v2--light .hib-search-v2__select:focus-visible {
  outline: none;
}

/* --- 3. Founder kicker gold line — draw-in on reveal --- */
.hib-amir-section__inner .hib-amir-section__kicker::before {
  width: 0;
  transition: width .72s cubic-bezier(.22,.61,.36,1) .18s;
}
.hib-amir-section__inner.is-visible .hib-amir-section__kicker::before {
  width: 32px;
}

/* --- 4. Domain card image ken-burns on hover (restrained) --- */
.hib-home-domain__img {
  transition: transform 1.2s cubic-bezier(.22,.61,.36,1);
}
.hib-home-domain:hover .hib-home-domain__img {
  transform: scale(1.035);
}

/* --- 5. Search submit button — subtle hover lift --- */
.hib-search-v2--light .hib-search-v2__btn {
  transition:
    background .22s var(--hib-ease),
    box-shadow .28s cubic-bezier(.22,.61,.36,1),
    transform  .18s cubic-bezier(.22,.61,.36,1);
}
.hib-search-v2--light .hib-search-v2__btn:hover {
  transform: translateY(-1px);
}
.hib-search-v2--light .hib-search-v2__btn:active {
  transform: translateY(0) scale(0.985);
}

/* --- Reduced motion: kill all delight animations --- */
@media (prefers-reduced-motion: reduce) {
  body:not(.is-returning) .hib-home-hero__eyebrow svg { animation: none; }
  .hib-amir-section__inner .hib-amir-section__kicker::before {
    width: 32px;
    transition: none;
  }
  .hib-home-domain__img,
  .hib-search-v2--light .hib-search-v2__btn {
    transition: none;
  }
  .hib-home-domain:hover .hib-home-domain__img,
  .hib-search-v2--light .hib-search-v2__btn:hover { transform: none; }
}

/* ============================================================
   NO-JS / JS-FAILURE FALLBACK
   Scroll-reveal hides content (opacity:0) until JS adds .is-visible.
   If JS never runs, that content stays invisible forever. The <head>
   sets .hib-js on <html> before paint; here we force reveal targets
   fully visible whenever that marker is absent, so the page degrades
   to plain static content instead of large blank gaps.
   ============================================================ */
html:not(.hib-js) .hib-reveal,
html:not(.hib-js) .hib-animate,
html:not(.hib-js) [data-stagger] > * {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}

/* ============================================================
   STAGE 1 — FOUNDER BRAND ANCHOR (Amir)
   Elevates the founder block from a quiet testimonial into the
   site's trust centerpiece: editorial headline, personal-vetting
   proof points, larger portrait, prominent social proof. Keeps the
   warm-light editorial language already established for the section.
   Scoped to home (body:not([data-domain])) to supersede the earlier
   override layer; appended last so source order wins at equal spec.
   ============================================================ */
body:not([data-domain]) .hib-amir-section__inner {
  grid-template-columns: clamp(220px, 24vw, 300px) 1fr;
  gap: clamp(var(--hib-space-7), 5vw, var(--hib-space-12));
  align-items: center;
}

/* Photo — larger editorial portrait frame (was small circle) */
.hib-amir-section__photo-wrap { position: relative; }
body:not([data-domain]) .hib-amir-section .hib-amir-section__photo {
  width: 100%;
  max-width: 300px;
  aspect-ratio: 4 / 5;
  border-radius: var(--hib-radius-xl);
  border: 1px solid #FFFFFF;
  box-shadow:
    0 0 0 1px rgba(29, 84, 196, 0.22),
    0 26px 60px -26px rgba(11, 37, 70, 0.45),
    0 4px 12px -4px rgba(11, 37, 70, 0.12);
}
body:not([data-domain]) .hib-amir-section__photo img { object-position: center 20%; }

/* Verified ribbon beneath the portrait */
.hib-amir-section__verified {
  display: inline-flex;
  align-items: center;
  gap: var(--hib-space-2);
  margin-block-start: var(--hib-space-4);
  padding: 8px 14px;
  border-radius: var(--hib-radius-pill);
  background: var(--hib-success-soft);
  color: var(--hib-success);
  font-family: var(--hib-font-body);
  font-weight: 600;
  font-size: var(--hib-label-s-size);
  letter-spacing: normal;
}
.hib-amir-section__verified svg { flex-shrink: 0; }

/* Editorial headline — leads the block */
.hib-amir-section__title {
  font-family: var(--hib-font-display);
  font-size: clamp(2rem, 4vw, 3.1rem);
  line-height: 1.1;
  letter-spacing: normal;
  color: var(--hib-text);
  margin-block: 0 var(--hib-space-5);
}

/* Quote — demoted to a supporting voice with a gold accent rule */
body:not([data-domain]) .hib-amir-section__quote {
  font-family: var(--hib-font-body);
  font-weight: 400;
  font-size: clamp(1.0625rem, 1.6vw, 1.25rem);
  line-height: 1.6;
  color: var(--hib-text-secondary);
  border-inline-start: 3px solid var(--hib-gold);
  padding-inline-start: var(--hib-space-5);
  margin-block-end: var(--hib-space-6);
}

/* Personal-vetting proof points */
.hib-amir-section__points {
  list-style: none;
  margin: 0 0 var(--hib-space-7);
  padding: 0;
  display: grid;
  gap: var(--hib-space-3);
}
.hib-amir-section__point {
  display: flex;
  align-items: center;
  gap: var(--hib-space-3);
  font-family: var(--hib-font-body);
  font-weight: 500;
  font-size: 1rem;
  color: var(--hib-text-strong);
}
.hib-amir-section__point svg {
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  padding: 5px;
  border-radius: 50%;
  background: var(--hib-domain-soft);
  color: var(--hib-primary);
}

/* Signature + social proof */
body:not([data-domain]) .hib-amir-section__sig {
  display: flex;
  align-items: center;
  gap: var(--hib-space-5);
  flex-wrap: wrap;
  padding-block-start: var(--hib-space-5);
  border-block-start: 1px solid var(--hib-rule-soft);
}
.hib-amir-section__sig-id { display: grid; gap: 2px; }
.hib-amir-section__followers {
  display: inline-flex;
  align-items: center;
  gap: var(--hib-space-2);
  margin-inline-start: auto;
  padding: 10px 16px;
  border-radius: var(--hib-radius-pill);
  background: var(--hib-surface);
  border: 1px solid var(--hib-border);
  box-shadow: var(--hib-shadow-card);
  font-family: var(--hib-font-body);
  font-size: var(--hib-body-s-size);
  color: var(--hib-text-strong);
}
.hib-amir-section__followers strong {
  font-family: var(--hib-font-display);
  font-size: 1.125rem;
  color: var(--hib-primary);
}
.hib-amir-section__followers svg { color: var(--hib-gold); flex-shrink: 0; }

@media (max-width: 768px) {
  body:not([data-domain]) .hib-amir-section__inner {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .hib-amir-section__photo-wrap { display: flex; flex-direction: column; align-items: center; }
  body:not([data-domain]) .hib-amir-section .hib-amir-section__photo { margin-inline: auto; }
  body:not([data-domain]) .hib-amir-section__quote,
  .hib-amir-section__point { text-align: start; }
  body:not([data-domain]) .hib-amir-section__sig { justify-content: center; }
  .hib-amir-section__followers { margin-inline-start: 0; }
}

/* ============================================================
   STAGE 2 — PRO CARD: photo cohesion, initials fallback, featured tier
   Photos are user-submitted and inconsistent (lighting/crop). A uniform
   bottom scrim + hairline ring makes the grid read as one curated set
   without hiding faces. Missing photos get on-brand initials instead of
   a ghost icon. The top-sorted result on page 1 gets a "מומלץ" tier.
   .hib-pro-card-v2 is already position:relative (see line ~1959), so the
   absolute ribbon below anchors to the card.
   ============================================================ */

/* Uniform photo treatment — cohesion across varied real-world images */
.hib-pro-card-v2__media { box-shadow: inset 0 0 0 1px rgba(16, 24, 40, 0.05); }
.hib-pro-card-v2__media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(7, 24, 36, 0) 56%, rgba(7, 24, 36, 0.26) 100%);
  pointer-events: none;
}

/* Initials fallback — personal and on-brand (replaces the ghost icon) */
.hib-pro-card-v2__media--empty {
  background: radial-gradient(125% 125% at 50% 0%, var(--hib-domain-soft), var(--hib-domain-soft-hover));
}
.hib-pro-card-v2__media--empty::after { content: none; }
.hib-pro-card-v2__initials {
  font-family: var(--hib-font-display);
  font-size: clamp(2.2rem, 6vw, 3rem);
  font-weight: 700;
  line-height: 1;
  color: var(--hib-primary);
  opacity: 0.5;
}

/* Featured tier — the real top-sorted recommendation (page 1) */
.hib-pro-card-v2--featured {
  border-color: rgba(210, 115, 79, 0.55);
  box-shadow: 0 0 0 1px rgba(210, 115, 79, 0.35), var(--hib-shadow-card);
}
.hib-pro-card-v2--featured:hover {
  box-shadow: 0 0 0 1px rgba(210, 115, 79, 0.45), var(--hib-shadow-card-hover);
}
.hib-pro-card-v2__featured-tag {
  position: absolute;
  inset-block-start: var(--hib-space-3);
  inset-inline-start: var(--hib-space-3);
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 12px;
  border-radius: var(--hib-radius-pill);
  background: var(--hib-gold);
  color: #1B1206;
  font-family: var(--hib-font-body);
  font-weight: 700;
  font-size: var(--hib-micro-label-size);
  letter-spacing: normal;
  box-shadow: 0 4px 12px -4px rgba(210, 115, 79, 0.6);
}
.hib-pro-card-v2__featured-tag svg { color: #1B1206; }
/* Reserve room on the featured card's distance bar so the ribbon (anchored
   top-inline-start) never sits on top of the location text. */
.hib-pro-card-v2--featured .hib-pro-card-v2__distance-bar { padding-inline-start: 96px; }

/* ============================================================
   STAGE 3 — SPECIALTY FILTER BAR: functional + clean overflow
   Chips became real <a> filter links (specialty = `areas` term). The
   row scrolls horizontally; previously the overflowing chip was hard-cut
   at the inline-end edge and read as broken. A fade mask + end padding
   make the overflow read as "scroll for more", not a clipped element.
   ============================================================ */
.hib-filter-chip { text-decoration: none; }
.hib-filter-bar__inner {
  padding-inline-end: var(--hib-space-4);
  -webkit-mask-image: linear-gradient(to left, #000 calc(100% - 32px), transparent);
          mask-image: linear-gradient(to left, #000 calc(100% - 32px), transparent);
}
/* Drop the fade while a chip is focused so the keyboard focus ring is never
   clipped at the scroll edge. */
.hib-filter-bar__inner:focus-within {
  -webkit-mask-image: none;
          mask-image: none;
}
.hib-no-results { color: var(--hib-text-secondary); }
.hib-no-results a { color: var(--hib-primary); font-weight: 600; }
