/* ==========================================================================
   Lucano Buys Houses: design system (2026-10 redesign)
   --------------------------------------------------------------------------
   The same system as Kevin Lucano Real Estate, in this site's own colours:
   emerald on warm white, with dark slate-green for the bands. One file for the
   system and the shared pieces: tokens, type, spacing, the components every
   page uses, the header, the footer and the homepage. Page-type components
   (guides, blog, areas, situations) live in pages.css and are written against
   these tokens.

   Rules for anyone editing this file:
     1. No literal colours outside the token blocks. Every colour is a token,
        so dark mode reaches it.
     2. Spacing comes from the --lbh-s-* scale and the section rhythm
        (--lbh-section-y). Type sizes come from the --lbh-fs-* scale.
     3. Light is the default. Dark applies only when <html data-theme="dark">,
        which the header switch sets and remembers per visitor.
   ========================================================================== */

/* ------------------------------------------------------------------ tokens */
:root{
  /* Brand, from the original palette: emerald, dark slate, warm white, sage */
  --lbh-emerald:#136b52;
  --lbh-slate:#172c2a;

  /* Surfaces and text (light, the default) */
  --lbh-bg:#fafaf8;
  --lbh-surface:#f1f4ee;
  --lbh-surface-2:#e5ece4;
  --lbh-raised:#ffffff;
  --lbh-ink:#172c2a;
  --lbh-ink-2:#33463f;
  --lbh-muted:#50615a;
  --lbh-line:#e0e6dd;
  --lbh-line-2:#ced8d0;
  --lbh-tint:#e5ece4;
  --lbh-accent:#136b52;           /* labels, numbers, rules */
  --lbh-link:#0f5c46;
  --lbh-btn:#136b52;
  --lbh-btn-hover:#0c513e;
  --lbh-on-btn:#ffffff;
  --lbh-field:#ffffff;
  --lbh-focus:#136b52;
  --lbh-ok:#1f7a4d;
  --lbh-danger:#b42318;
  --lbh-danger-bg:#fdf1f0;

  /* Glass: only the header, the hero request card and the mobile bar */
  --lbh-glass:rgba(255,255,255,.84);
  --lbh-glass-rim:rgba(255,255,255,.92);
  --lbh-glass-hi:rgba(255,255,255,.9);
  --lbh-nav-bg:rgba(250,250,248,.84);

  /* Fixed colours for the photograph and the dark band, the same in both modes */
  --lbh-on-photo:#ffffff;
  --lbh-on-photo-2:#dce8e1;
  --lbh-scrim:6,20,16;
  --lbh-band:#172c2a;
  --lbh-on-band-2:#c5d4cc;
  --lbh-band-glow:19,107,82;
  --lbh-check:#8fe0bd;
  --lbh-white:#ffffff;
  --lbh-white-hover:#e5ece4;

  --lbh-shadow-1:0 1px 2px rgba(23,44,42,.05),0 2px 8px -2px rgba(23,44,42,.06);
  --lbh-shadow-2:0 1px 2px rgba(23,44,42,.05),0 24px 48px -24px rgba(23,44,42,.28);
  --lbh-shadow-3:0 1px 2px rgba(0,0,0,.08),0 28px 64px -24px rgba(0,0,0,.5);

  /* Type */
  --lbh-font-display:Montserrat,"Helvetica Neue",Arial,sans-serif;
  --lbh-font-text:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --lbh-fs-xs:.8125rem;      /* 13 */
  --lbh-fs-sm:.9375rem;      /* 15 */
  --lbh-fs-base:1.0625rem;   /* 17 */
  --lbh-fs-lg:clamp(1.0625rem,1rem + .35vw,1.1875rem);
  --lbh-fs-h4:1.0625rem;
  --lbh-fs-h3:1.25rem;
  --lbh-fs-h2:clamp(1.875rem,1.35rem + 2.1vw,2.875rem);
  --lbh-fs-h1:clamp(2.125rem,1.45rem + 2.9vw,3.5rem);
  --lbh-fs-display:clamp(2.125rem,1.4rem + 3vw,3.375rem);

  /* Space: one 4px-based scale for everything */
  --lbh-s-1:.25rem;
  --lbh-s-2:.5rem;
  --lbh-s-3:.75rem;
  --lbh-s-4:1rem;
  --lbh-s-5:1.5rem;
  --lbh-s-6:2rem;
  --lbh-s-7:3rem;
  --lbh-s-8:4rem;
  --lbh-section-y:clamp(4rem,2.75rem + 5vw,7rem);
  --lbh-gutter:clamp(1.25rem,4vw,2rem);
  --lbh-container:1200px;
  --lbh-measure:44rem;
  --lbh-header-h:72px;

  /* Shape */
  --lbh-r-sm:8px;
  --lbh-r:12px;
  --lbh-r-lg:20px;
  --lbh-pill:999px;

  color-scheme:light;
}

:root[data-theme="dark"]{
  --lbh-bg:#0b140f;
  --lbh-surface:#111c16;
  --lbh-surface-2:#182a20;
  --lbh-raised:#13201a;
  --lbh-ink:#edf3ef;
  --lbh-ink-2:#c6d2cb;
  --lbh-muted:#9aaba2;
  --lbh-line:#1f3027;
  --lbh-line-2:#2e4439;
  --lbh-tint:#142a20;
  --lbh-accent:#6fd3a8;
  --lbh-link:#7fd9b2;
  --lbh-btn:#1a8566;
  --lbh-btn-hover:#229b78;
  --lbh-on-btn:#ffffff;
  --lbh-field:#0e1913;
  --lbh-focus:#7fd9b2;
  --lbh-ok:#4cc08a;
  --lbh-danger:#ff8a80;
  --lbh-danger-bg:#2a1414;
  --lbh-glass:rgba(17,28,22,.8);
  --lbh-glass-rim:rgba(255,255,255,.12);
  --lbh-glass-hi:rgba(255,255,255,.08);
  --lbh-nav-bg:rgba(11,20,15,.82);
  --lbh-band:#0f2a22;
  --lbh-shadow-1:0 1px 2px rgba(0,0,0,.4);
  --lbh-shadow-2:0 1px 2px rgba(0,0,0,.4),0 24px 48px -24px rgba(0,0,0,.7);
  color-scheme:dark;
}

/* -------------------------------------------------------------------- base */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--lbh-header-h) + var(--lbh-s-4));-webkit-text-size-adjust:100%}
body{margin:0;background:var(--lbh-bg);color:var(--lbh-ink);font-family:var(--lbh-font-text);font-size:var(--lbh-fs-base);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
h1,h2,h3,h4{font-family:var(--lbh-font-display);font-weight:600;color:var(--lbh-ink);text-wrap:balance;overflow-wrap:break-word;margin:0}
h1{font-size:var(--lbh-fs-h1);line-height:1.08;letter-spacing:-.028em}
h2{font-size:var(--lbh-fs-h2);line-height:1.1;letter-spacing:-.024em}
h3{font-size:var(--lbh-fs-h3);line-height:1.3;letter-spacing:-.015em}
h4{font-size:var(--lbh-fs-h4);line-height:1.35;letter-spacing:-.01em}
p,li{text-wrap:pretty;overflow-wrap:break-word}
a{color:var(--lbh-link);text-underline-offset:.2em;text-decoration-thickness:1px}
a:hover{color:var(--lbh-ink);text-decoration-thickness:2px}
strong,b{font-weight:600}
img,picture,svg,video{max-width:100%;height:auto}
picture{display:block}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--lbh-focus);outline-offset:3px;border-radius:4px}
::selection{background:var(--lbh-tint);color:var(--lbh-ink)}
hr{border:0;border-top:1px solid var(--lbh-line);margin:var(--lbh-s-7) 0}
table{border-collapse:collapse;width:100%}

.lbh-visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.lbh-skip-link{position:fixed;top:var(--lbh-s-2);left:var(--lbh-s-2);z-index:1000;background:var(--lbh-raised);color:var(--lbh-ink);padding:var(--lbh-s-3) var(--lbh-s-4);border-radius:var(--lbh-r-sm);box-shadow:var(--lbh-shadow-2);transform:translateY(-200%)}
.lbh-skip-link:focus{transform:none}

/* WordPress wrappers: no stray gaps between header, main and footer */
.wp-site-blocks{padding:0}
.wp-site-blocks>*{margin-block:0!important}
.lbh-main{margin-block:0!important}

/* ------------------------------------------------------------------ layout */
.lbh-wrap{width:100%;max-width:calc(var(--lbh-container) + 2 * var(--lbh-gutter));margin-inline:auto;padding-inline:var(--lbh-gutter)}

/* Inner pages: one left edge, the same one as the header logo and the footer,
   so the page title, the text and every component line up with the chrome.
   Text keeps a reading measure; sections may use the full container width for
   their grids. WordPress's constrained layout centres a 720px column with
   !important margins, which is why these overrides need !important too.
   Blog articles (.lbh-article) keep the centred reading column. */
.lbh-page{padding-top:clamp(2.5rem,1.75rem + 3vw,4.5rem);padding-bottom:var(--lbh-section-y)}
.lbh-page.is-layout-constrained>*{max-width:var(--lbh-container)}
.lbh-page:not(.lbh-article) .wp-block-post-content.is-layout-constrained>:not(.alignfull){margin-left:0!important;margin-right:auto!important}
.lbh-page:not(.lbh-article) .wp-block-post-content>.lbh-section,
.lbh-page:not(.lbh-article) .wp-block-post-content>.alignwide{max-width:none}
.lbh-page>.wp-block-post-title{font-size:var(--lbh-fs-h1);line-height:1.08;letter-spacing:-.028em;text-wrap:balance;margin-bottom:var(--lbh-s-6)!important}
.lbh-article.is-layout-constrained>*{max-width:var(--lbh-measure)}
.lbh-page .wp-block-post-content>*+*{margin-block-start:var(--lbh-s-5)}
.lbh-page .wp-block-post-content>p,
.lbh-page .wp-block-post-content>ul,
.lbh-page .wp-block-post-content>ol{color:var(--lbh-ink-2)}
.lbh-page .wp-block-post-content>h2{font-size:clamp(1.5rem,1.2rem + 1.2vw,2rem);margin-block-start:var(--lbh-s-7)}
.lbh-page .wp-block-post-content>h3{margin-block-start:var(--lbh-s-6)}
.lbh-lead,.lbh-lede{font-size:var(--lbh-fs-lg);line-height:1.55;color:var(--lbh-ink-2)}

/* Sections inside generated pages */
.lbh-section{padding-block:clamp(3rem,2rem + 3.5vw,5rem);margin:0!important}
.lbh-section+.lbh-section{border-top:1px solid var(--lbh-line)}
.lbh-section>*+*{margin-block-start:var(--lbh-s-4)}
.lbh-section>.lbh-eyebrow+h2{margin-block-start:var(--lbh-s-3)}
.lbh-section>h2{max-width:24em}
/* The CTA band is excluded here. It carries lbh-section for its spacing and
   padding, but it paints its own dark background, and .lbh-section>p:not(...)
   is more specific (0,2,1) than the band's own .lbh-final-cta p (0,1,1). The
   generic rule was winning and painting --lbh-ink-2 (#34404b) on
   --lbh-band: close to 1:1, which reads as invisible text. A section
   that sets its own colour has to keep it. */
.lbh-section:not(.lbh-final-cta)>p:not(.lbh-eyebrow),
.lbh-section:not(.lbh-final-cta)>.wp-block-list:not([class*="lbh-"]),
.lbh-section:not(.lbh-final-cta)>.lbh-faq-list{max-width:var(--lbh-measure);color:var(--lbh-ink-2)}
.lbh-section>h2+*{margin-block-start:var(--lbh-s-5)}

/* ----------------------------------------------------------- type helpers */
.lbh-kicker,.lbh-eyebrow{font-family:var(--lbh-font-display);font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--lbh-accent);margin:0}
.lbh-fineprint,.lbh-aside-note,.lbh-licence-line{font-size:var(--lbh-fs-xs);line-height:1.55;color:var(--lbh-muted);max-width:var(--lbh-measure)}
.lbh-num{text-align:right;font-variant-numeric:tabular-nums}

/* ------------------------------------------------------------- actions */
.lbh-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lbh-s-3) var(--lbh-s-5);margin-top:var(--lbh-s-6)}
/* The -primary and -secondary classes sit on the WordPress button wrapper, not on
   the link, so they are deliberately absent from these lists: styling the wrapper
   as well drew a second pill around the button (23px of dead padding each side).
   The variant rules further down target the link inside the wrapper instead. */
.lbh-button,.wp-block-button__link,
.lbh-lead-form .lbh-next,.lbh-lead-form .lbh-submit{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--lbh-s-2);
  min-height:48px;padding:0 1.375rem;border-radius:10px;border:1px solid transparent;
  background:var(--lbh-btn);color:var(--lbh-on-btn)!important;
  font-family:var(--lbh-font-display);font-size:var(--lbh-fs-sm);font-weight:600;letter-spacing:.005em;line-height:1.2;
  text-decoration:none;cursor:pointer;white-space:nowrap;
  transition:background-color .15s ease,box-shadow .15s ease,transform .15s ease}
.lbh-button:hover,.wp-block-button__link:hover,
.lbh-lead-form .lbh-next:hover,.lbh-lead-form .lbh-submit:hover{background:var(--lbh-btn-hover);box-shadow:0 8px 20px -10px rgba(var(--lbh-band-glow),.6);text-decoration:none}
.lbh-button:active,.wp-block-button__link:active{transform:translateY(1px)}
/* Ghost variant. The class can land on a plain element or on the WordPress button
   wrapper, so it is matched on the link inside the wrapper as well. */
.lbh-button--ghost,.lbh-lead-form .lbh-back,
.wp-block-button.lbh-cta-secondary>.wp-block-button__link{
  display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 1.375rem;border-radius:10px;
  background:transparent;color:var(--lbh-ink)!important;border:1px solid var(--lbh-line-2);
  font-family:var(--lbh-font-display);font-size:var(--lbh-fs-sm);font-weight:600;text-decoration:none;cursor:pointer;white-space:nowrap}
.lbh-button--ghost:hover,.lbh-lead-form .lbh-back:hover,
.wp-block-button.lbh-cta-secondary>.wp-block-button__link:hover{background:var(--lbh-surface);box-shadow:none}
.lbh-cta-primary,.lbh-cta-secondary{display:block;min-height:0;padding:0;border:0;background:none;border-radius:0}
.wp-block-buttons{display:flex;flex-wrap:wrap;gap:var(--lbh-s-3)}
.wp-block-buttons>.wp-block-button{margin:0}
.lbh-arrow,.lbh-option-more,.lbh-door-go a,.lbh-back-link a{font-weight:600;text-decoration:none;color:var(--lbh-link)}
.lbh-arrow::after{content:"\2192";display:inline-block;margin-left:.4em;transition:transform .15s ease}
.lbh-arrow:hover{color:var(--lbh-link)}
.lbh-arrow:hover::after{transform:translateX(3px)}

/* --------------------------------------------------------- shared pieces */
/* Segmented control (hero tabs, process tabs) */
.lbh-seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:4px;border-radius:var(--lbh-r);background:var(--lbh-surface-2)}
.lbh-seg-btn{display:flex;align-items:center;justify-content:center;min-height:40px;padding:0 var(--lbh-s-4);border:0;border-radius:9px;background:transparent;
  font-family:var(--lbh-font-display);font-size:.875rem;font-weight:600;color:var(--lbh-ink-2);text-decoration:none;cursor:pointer;transition:background-color .15s,color .15s}
.lbh-seg-btn:hover{color:var(--lbh-ink);text-decoration:none}
.lbh-seg-btn[aria-selected="true"]{background:var(--lbh-raised);color:var(--lbh-ink);box-shadow:var(--lbh-shadow-1)}
.lbh-seg--compact{width:min(100%,16rem)}

/* Tables */
.lbh-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
/* A table wider than the phone is scrolled, and a scroll container has to be
   reachable from the keyboard, so these carry tabindex="0". The ring tells a
   keyboard user they have landed on something that scrolls. */
.lbh-table-scroll:focus-visible{outline:2px solid var(--lbh-focus);outline-offset:-2px;border-radius:var(--lbh-r-sm)}
.lbh-table-card{border:1px solid var(--lbh-line);border-radius:var(--lbh-r-lg);background:var(--lbh-raised);overflow:hidden}

/* FAQ: native details, read by the FAQ structured data */
.lbh-faq-list{max-width:var(--lbh-measure)}
.wp-block-details{border-bottom:1px solid var(--lbh-line);margin:0!important;padding:0}
.wp-block-details:first-child{border-top:1px solid var(--lbh-line)}
.wp-block-details summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:flex-start;gap:var(--lbh-s-5);
  padding:var(--lbh-s-5) 0;font-family:var(--lbh-font-display);font-weight:600;font-size:var(--lbh-fs-base);line-height:1.4;letter-spacing:-.01em;color:var(--lbh-ink)}
.wp-block-details summary::-webkit-details-marker{display:none}
.wp-block-details summary::after{content:"+";flex:0 0 auto;font-family:var(--lbh-font-text);font-weight:300;font-size:1.5rem;line-height:1;color:var(--lbh-accent);transition:transform .2s ease}
.wp-block-details[open] summary::after{transform:rotate(45deg)}
.wp-block-details>:not(summary){margin:0 0 var(--lbh-s-5);color:var(--lbh-ink-2);max-width:var(--lbh-measure)}

/* Lists inside content */
.wp-block-list{padding-left:1.25em}
.wp-block-list li+li{margin-top:var(--lbh-s-2)}

/* Post cards: the blog index, archives, related reads and homepage updates.
   The title link is stretched over the card, so the whole card is one target
   with one meaningful link; the topic chip sits above it. */
.lbh-cards{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--lbh-s-4)}
.lbh-cards--wide,.lbh-blog-curated .lbh-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
.lbh-card{position:relative;display:flex;flex-direction:column;gap:var(--lbh-s-3);margin:0;padding:var(--lbh-s-5);
  background:var(--lbh-raised);border:1px solid var(--lbh-line);border-radius:var(--lbh-r-lg);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.lbh-card:hover{border-color:var(--lbh-line-2);box-shadow:var(--lbh-shadow-2);transform:translateY(-2px)}
.lbh-card-title{font-size:1.1875rem;line-height:1.3;margin:0}
.lbh-card-title a{color:var(--lbh-ink);text-decoration:none}
.lbh-card-title a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.lbh-card-title a:focus-visible{outline:none}
.lbh-card:focus-within{outline:2px solid var(--lbh-focus);outline-offset:3px}
.lbh-card-sum{font-size:var(--lbh-fs-sm);color:var(--lbh-muted);margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.lbh-card-meta{display:flex;align-items:center;gap:var(--lbh-s-2);margin:auto 0 0;padding-top:var(--lbh-s-2);font-size:var(--lbh-fs-xs);color:var(--lbh-muted)}
.lbh-card-dot{width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.6}
.lbh-card-topic,.lbh-topic{position:relative;z-index:1;align-self:flex-start;display:inline-flex;align-items:center;gap:var(--lbh-s-2);
  min-height:26px;padding:0 var(--lbh-s-3);border-radius:var(--lbh-pill);font-size:.75rem;font-weight:600;text-decoration:none;
  background:color-mix(in srgb,var(--lbh-hue,var(--lbh-muted)) 13%,var(--lbh-raised));color:color-mix(in srgb,var(--lbh-hue,var(--lbh-muted)) 65%,var(--lbh-ink))}
.lbh-card-topic:hover,.lbh-topic:hover{color:var(--lbh-ink);text-decoration:none}
.lbh-tint-1{--lbh-hue:#136b52}.lbh-tint-2{--lbh-hue:#1f7a75}.lbh-tint-3{--lbh-hue:#50615a}
.lbh-tint-4{--lbh-hue:#a8641a}.lbh-tint-5{--lbh-hue:#7a4b8c}.lbh-tint-6{--lbh-hue:#3f7a3a}

/* Images */
.wp-block-image img{border-radius:var(--lbh-r-lg)}
.lbh-portrait img{border-radius:var(--lbh-r-lg);aspect-ratio:4/5;object-fit:cover;object-position:50% 18%}

/* Closing call to action used at the end of inner pages and posts */
.lbh-final-cta{position:relative;isolation:isolate;overflow:hidden;text-align:center;
  padding:clamp(3rem,2rem + 4vw,5rem) var(--lbh-gutter)!important;margin-block:var(--lbh-s-7) 0!important;
  border-radius:var(--lbh-r-lg);background:var(--lbh-band);color:var(--lbh-on-photo);border:0!important;max-width:var(--lbh-container)!important}
.lbh-final-cta::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(80% 120% at 100% 0%,rgba(var(--lbh-band-glow),.38),transparent 60%)}
.lbh-final-cta>*{margin-inline:auto!important;max-width:38rem}
.lbh-final-cta .lbh-eyebrow{color:var(--lbh-on-band-2)}
.lbh-final-cta h2{color:var(--lbh-on-photo);margin-block:var(--lbh-s-3) var(--lbh-s-4)}
.lbh-final-cta p{color:var(--lbh-on-band-2)}
.lbh-final-cta .wp-block-buttons{justify-content:center;margin-top:var(--lbh-s-6)}
.lbh-final-cta .lbh-button,.lbh-final-cta .wp-block-button__link{background:var(--lbh-white);color:var(--lbh-slate)!important}
.lbh-final-cta .lbh-button:hover,.lbh-final-cta .wp-block-button__link:hover{background:var(--lbh-white-hover)}
.lbh-final-cta .wp-block-button.lbh-cta-secondary>.wp-block-button__link{color:var(--lbh-white)!important;border-color:rgba(255,255,255,.4)}
.lbh-final-cta .wp-block-button.lbh-cta-secondary>.wp-block-button__link:hover{background:rgba(255,255,255,.08)}
.lbh-final-cta a:not([class]){color:var(--lbh-white)}

/* ------------------------------------------------------------- the form */
/* The plugin's form.css handles mechanics (the spam trap, hidden steps). This
   gives it the system's look everywhere it appears. */
.lbh-lead-form{max-width:none;margin:0}
.lbh-lead-form>p:first-child{font-size:var(--lbh-fs-sm);color:var(--lbh-muted);margin:0 0 var(--lbh-s-4)}
.lbh-lead-form fieldset{border:0;padding:0;margin:0;min-width:0;display:grid;gap:var(--lbh-s-4)}
.lbh-lead-form legend{font-family:var(--lbh-font-display);font-size:.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--lbh-muted);padding:0;margin-bottom:var(--lbh-s-4)}
.lbh-lead-form legend:focus{outline:none}
.lbh-progress{display:block;font-size:var(--lbh-fs-xs);font-weight:600;color:var(--lbh-muted);margin:0 0 var(--lbh-s-2)}
.lbh-field{margin:0}
.lbh-field>label{display:block;font-size:.875rem;font-weight:600;color:var(--lbh-ink-2);margin-bottom:var(--lbh-s-2)}
.lbh-field input:not([type=checkbox]),.lbh-field select,.lbh-field textarea,
.wp-block-search__input,.lbh-search-input{
  width:100%;min-height:50px;padding:0 var(--lbh-s-4);border:1px solid var(--lbh-line-2);border-radius:10px;
  background:var(--lbh-field);color:var(--lbh-ink);font-size:1rem;line-height:1.4;transition:border-color .15s,box-shadow .15s}
.lbh-field textarea{min-height:96px;padding:var(--lbh-s-3) var(--lbh-s-4);resize:vertical}
.lbh-field select{appearance:none;-webkit-appearance:none;padding-right:2.5rem;
  background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);
  background-position:calc(100% - 20px) 52%,calc(100% - 15px) 52%;background-size:5px 5px;background-repeat:no-repeat}
.lbh-field input::placeholder,.lbh-field textarea::placeholder{color:var(--lbh-muted);opacity:1}
.lbh-field input:focus,.lbh-field select:focus,.lbh-field textarea:focus,.wp-block-search__input:focus,.lbh-search-input:focus{
  outline:none;border-color:var(--lbh-focus);box-shadow:0 0 0 4px color-mix(in srgb,var(--lbh-focus) 22%,transparent)}
.lbh-lead-form [aria-invalid=true]{border-color:var(--lbh-danger)!important}
.lbh-field-error{display:block;color:var(--lbh-danger);font-size:var(--lbh-fs-xs);margin-top:var(--lbh-s-1)}
.lbh-field-error:empty{display:none}
.lbh-errors{border:1px solid var(--lbh-danger);background:var(--lbh-danger-bg);color:var(--lbh-ink);border-radius:var(--lbh-r);padding:var(--lbh-s-4);margin-bottom:var(--lbh-s-4);font-size:var(--lbh-fs-sm)}
.lbh-errors h3{font-size:var(--lbh-fs-sm);margin:0 0 var(--lbh-s-2);color:var(--lbh-danger)}
.lbh-errors ul{margin:0;padding-left:1.1em}
.lbh-errors a{color:var(--lbh-ink)}
.lbh-consent label{display:flex;gap:var(--lbh-s-3);align-items:flex-start;font-size:var(--lbh-fs-xs);font-weight:400;line-height:1.5;color:var(--lbh-muted)}
.lbh-consent input{width:18px;height:18px;margin:2px 0 0;flex:0 0 auto;accent-color:var(--lbh-btn)}
.lbh-lead-form fieldset>p{margin:0;font-size:var(--lbh-fs-xs)}
.lbh-lead-form .lbh-next,.lbh-lead-form .lbh-submit{width:100%;font-size:1rem}
.lbh-lead-form .lbh-back{width:100%}
.lbh-lead-form fieldset[data-step="2"]{grid-template-columns:1fr 1fr}
.lbh-lead-form fieldset[data-step="2"]>*{grid-column:1/-1}
.lbh-lead-form fieldset[data-step="2"]>.lbh-back{grid-column:1/2;grid-row:auto}
.lbh-lead-form fieldset[data-step="2"]>.lbh-submit{grid-column:2/3}
.lbh-submit-status{font-size:var(--lbh-fs-xs);color:var(--lbh-muted);margin:0}
.lbh-submit-status:empty{display:none}
.lbh-form-unavailable{padding:var(--lbh-s-4);border:1px solid var(--lbh-line);border-radius:var(--lbh-r);background:var(--lbh-surface);color:var(--lbh-ink-2);font-size:var(--lbh-fs-sm)}

/* Form panel used on /home-value/ and /contact/ */
.lbh-form-panel{background:var(--lbh-raised);border:1px solid var(--lbh-line);border-radius:var(--lbh-r-lg);box-shadow:var(--lbh-shadow-2);
  padding:clamp(1.25rem,1rem + 1.5vw,2.25rem)!important;margin-block:var(--lbh-s-6)!important;max-width:40rem!important}
.lbh-form-panel>h2{font-size:clamp(1.5rem,1.2rem + 1.2vw,2rem);margin-block:var(--lbh-s-2) var(--lbh-s-3)}
.lbh-form-panel>p:not(.lbh-eyebrow){color:var(--lbh-muted);font-size:var(--lbh-fs-sm)}
/* The panel already says what the form is and how required fields are marked;
   the form's own intro sentence would say it a second time. */
.lbh-form-panel .lbh-lead-form>p:first-child{display:none}

/* Dialogs: the request form on pages without one */
.lbh-dialog{border:0;padding:0;background:transparent;max-width:min(36rem,calc(100vw - 2rem));width:100%;max-height:calc(100dvh - 2rem);color:var(--lbh-ink)}
.lbh-dialog::backdrop{background:rgba(var(--lbh-scrim),.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.lbh-dialog-inner{position:relative;background:var(--lbh-raised);border:1px solid var(--lbh-line);border-radius:var(--lbh-r-lg);box-shadow:var(--lbh-shadow-3);
  padding:clamp(1.25rem,1rem + 1.5vw,2rem);overflow:auto;max-height:calc(100dvh - 2rem)}
.lbh-dialog-inner>h2{font-size:clamp(1.5rem,1.2rem + 1.2vw,2rem);margin-block:var(--lbh-s-2) var(--lbh-s-3);padding-right:var(--lbh-s-7)}
.lbh-dialog-lead{color:var(--lbh-muted);font-size:var(--lbh-fs-sm);margin:0 0 var(--lbh-s-5)}
.lbh-dialog-note{font-size:var(--lbh-fs-xs);color:var(--lbh-muted);margin:var(--lbh-s-5) 0 0}
.lbh-dialog-close{position:absolute;top:var(--lbh-s-3);right:var(--lbh-s-3);width:40px;height:40px;border-radius:50%;border:1px solid var(--lbh-line);background:var(--lbh-raised);
  color:var(--lbh-ink);font-size:1.4rem;line-height:1;cursor:pointer;display:grid;place-items:center}
.lbh-dialog-close:hover{background:var(--lbh-surface)}
.lbh-dialog[open]{animation:lbh-rise .22s cubic-bezier(.2,.7,.3,1)}
@keyframes lbh-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* Reveal on scroll (site.js only ever adds this below the fold) */
.lbh-reveal{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease}
.lbh-reveal-in{opacity:1;transform:none}

/* ================================================================= HEADER */
.wp-site-blocks>header.wp-block-template-part{position:sticky;top:0;z-index:100}
.lbh-header-bar{background:var(--lbh-nav-bg);border-bottom:1px solid var(--lbh-line);transition:background-color .2s ease,border-color .2s ease,color .2s ease}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .lbh-header-bar{-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%)}
}
.lbh-header{display:flex;align-items:center;gap:var(--lbh-s-6);height:var(--lbh-header-h);width:100%;max-width:calc(var(--lbh-container) + 2 * var(--lbh-gutter));margin-inline:auto;padding-inline:var(--lbh-gutter);color:var(--lbh-ink)}
.lbh-brand{display:flex;align-items:center;gap:var(--lbh-s-4);color:inherit;text-decoration:none;flex-shrink:0;margin-right:auto}
.lbh-brand:hover{color:inherit;text-decoration:none}
/* The mark in the bar: the L that is also a house. Two files, one per colour
   scheme, because the inside of an <img> cannot be recoloured by CSS. Height
   only: the width follows the artwork's own ratio, so it can never squash. */
.lbh-brand-mark{display:block;width:auto;height:44px;flex:0 0 auto}
.lbh-brand-mark--dark{display:none}
:root[data-theme="dark"] .lbh-brand-mark--light{display:none}
:root[data-theme="dark"] .lbh-brand-mark--dark{display:block}
/* Over the hero photograph the bar goes transparent and the type turns white,
   so the mark has to lighten with it or it reads as a dark smudge on a dark
   picture. The mint file is the same artwork, not a second drawing. */
:root:not(.lbh-es-on) .home .lbh-header-bar:not(.is-scrolled):not(.is-open) .lbh-brand-mark--light{display:none}
:root:not(.lbh-es-on) .home .lbh-header-bar:not(.is-scrolled):not(.is-open) .lbh-brand-mark--dark{display:block}
.lbh-brand-name{display:block;font-family:var(--lbh-font-display);font-weight:600;font-size:1.0625rem;letter-spacing:-.01em;line-height:1.1;white-space:nowrap}
.lbh-brand-sub{display:block;font-family:var(--lbh-font-text);font-weight:400;font-size:.75rem;letter-spacing:0;opacity:.72;margin-top:3px}

.lbh-desktop-nav{display:flex;align-items:stretch;align-self:stretch;gap:var(--lbh-s-5)}
.lbh-nav-item{position:relative;display:flex;align-items:center}
.lbh-nav-item>a,.lbh-nav-trigger{display:inline-flex;align-items:center;color:inherit;text-decoration:none;font-size:.9375rem;font-weight:500;opacity:.88;white-space:nowrap;padding-block:var(--lbh-s-3)}
.lbh-nav-item>a:hover,.lbh-nav-trigger:hover{opacity:1;color:inherit;text-decoration:none}
.lbh-caret{width:.42em;height:.42em;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-.15em);opacity:.7;transition:transform .16s ease}
.lbh-nav-item:hover .lbh-caret,.lbh-nav-item:focus-within .lbh-caret,.lbh-nav-item[data-lbh-open] .lbh-caret,.lbh-drawer-group[data-lbh-open] .lbh-caret{transform:rotate(225deg) translateY(-.05em)}
.lbh-nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:26px;height:32px;padding:0;margin-left:2px;border:0;background:none;color:inherit;cursor:pointer;border-radius:6px}
.lbh-nav-toggle:hover{background:color-mix(in srgb,currentColor 10%,transparent)}
.lbh-nav-panel{position:absolute;top:calc(100% - 6px);left:-12px;z-index:110;min-width:15rem;padding:var(--lbh-s-2);display:grid;gap:2px;
  background:var(--lbh-raised);border:1px solid var(--lbh-line);border-radius:var(--lbh-r);box-shadow:var(--lbh-shadow-2);
  opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-4px);transition:opacity .14s ease,transform .14s ease,visibility .14s}
.lbh-nav-panel a{font-size:.875rem;line-height:1.3;color:var(--lbh-ink);text-decoration:none;padding:var(--lbh-s-2) var(--lbh-s-3);border-radius:var(--lbh-r-sm);white-space:nowrap}
.lbh-nav-panel a:hover{background:var(--lbh-surface);color:var(--lbh-ink)}
.lbh-nav-panel--2col{grid-template-columns:repeat(2,minmax(0,1fr));min-width:20rem}
.lbh-nav-panel--2col>a:first-child{grid-column:1/-1}
.lbh-nav-item:hover>.lbh-nav-panel,.lbh-nav-item:focus-within>.lbh-nav-panel,.lbh-nav-item[data-lbh-open]>.lbh-nav-panel{opacity:1;visibility:visible;pointer-events:auto;transform:none}
.lbh-nav-item[data-force-closed]>.lbh-nav-panel{opacity:0;visibility:hidden;pointer-events:none}

.lbh-header-action{display:flex;align-items:center;gap:var(--lbh-s-3)}
.lbh-header-phone{color:inherit;text-decoration:none;font-weight:600;font-size:.9375rem;white-space:nowrap;margin-right:var(--lbh-s-1)}
.lbh-header-phone:hover{color:inherit}
.lbh-header-action .lbh-button{min-height:40px;padding:0 var(--lbh-s-4);font-size:.875rem}

.lbh-theme-toggle{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid color-mix(in srgb,currentColor 22%,transparent);background:transparent;color:inherit;cursor:pointer;transition:background-color .15s}
.lbh-theme-toggle:hover{background:color-mix(in srgb,currentColor 10%,transparent)}
/* Language switch: ES while the page is English, EN while it is Spanish */
.lbh-lang-toggle{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;min-width:40px;padding:0 var(--lbh-s-3);border-radius:var(--lbh-pill);
  border:1px solid color-mix(in srgb,currentColor 22%,transparent);background:transparent;color:inherit;cursor:pointer;
  font-family:var(--lbh-font-display);font-size:.8125rem;font-weight:600;letter-spacing:.02em;transition:background-color .15s}
.lbh-lang-toggle:hover{background:color-mix(in srgb,currentColor 10%,transparent)}
.lbh-lang-toggle--row{height:44px;padding:0 var(--lbh-s-4);font-size:var(--lbh-fs-sm)}
/* In the bar the switch is a 40px circle reading ES or EN; the globe and the
   longer label are for the menu, where there is room. */
.lbh-header-action>.lbh-lang-toggle{width:40px;padding:0}
.lbh-header-action>.lbh-lang-toggle svg{display:none}
.lbh-lang-es-only{display:none}
.lbh-es-on .lbh-lang-es-only{display:inline}
.lbh-es-on .lbh-lang-en-only{display:none}
/* Spanish runs about a third longer than English, so the bar sheds the phone
   number (it is in the Spanish notice) and tightens its spacing. */
.lbh-es-on .lbh-header-phone:not(.lbh-drawer-phone){display:none}
.lbh-es-on .lbh-desktop-nav{gap:var(--lbh-s-3)}
.lbh-lang-to-en{display:none}
.lbh-es-on .lbh-lang-to-en{display:inline}
.lbh-es-on .lbh-lang-to-es{display:none}
.lbh-visually-hidden .lbh-lang-to-es{display:inline}
.lbh-es-on .lbh-visually-hidden .lbh-lang-to-es{display:none}
/* While Spanish is on: a short notice, and Google's own toolbar kept out of sight */
.lbh-lang-note{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--lbh-s-2) var(--lbh-s-4);
  max-width:var(--lbh-container);margin:0 auto var(--lbh-s-5)!important;padding:var(--lbh-s-3) var(--lbh-s-4);border-radius:var(--lbh-r);
  background:var(--lbh-tint);color:var(--lbh-ink);font-size:var(--lbh-fs-sm)}
.lbh-home .lbh-lang-note{position:relative;z-index:2;margin:calc(var(--lbh-header-h) + var(--lbh-s-3)) var(--lbh-gutter) calc(-1 * var(--lbh-header-h))!important;max-width:none}
.lbh-lang-note p{margin:0}
.lbh-lang-note button{border:1px solid var(--lbh-line-2);background:var(--lbh-raised);color:var(--lbh-ink);border-radius:var(--lbh-pill);min-height:36px;padding:0 var(--lbh-s-4);font-weight:600;cursor:pointer}
#lbh-gt,.skiptranslate>iframe,.goog-te-banner-frame,#goog-gt-tt,.goog-te-balloon-frame,.VIpgJd-ZVi9od-ORHb-OEVmcd{display:none!important}
body{top:0!important}
.goog-text-highlight{background:none!important;box-shadow:none!important}

.lbh-theme-toggle .lbh-icon-sun{display:none}
:root[data-theme="dark"] .lbh-theme-toggle .lbh-icon-sun{display:block}
:root[data-theme="dark"] .lbh-theme-toggle .lbh-icon-moon{display:none}

/* Mobile menu */
.lbh-menu{display:none;position:static}
.lbh-menu>summary{list-style:none;display:grid;place-items:center;width:44px;height:44px;margin-right:-10px;cursor:pointer;border-radius:var(--lbh-r-sm)}
.lbh-menu>summary::-webkit-details-marker{display:none}
.lbh-menu-icon{display:block;width:20px}
.lbh-menu-icon i{display:block;height:2px;border-radius:2px;background:currentColor;transition:transform .2s ease}
.lbh-menu-icon i+i{margin-top:6px}
.lbh-menu[open] .lbh-menu-icon i:first-child{transform:translateY(4px) rotate(45deg)}
.lbh-menu[open] .lbh-menu-icon i:last-child{transform:translateY(-4px) rotate(-45deg)}
.lbh-menu>nav{position:absolute;left:0;right:0;top:100%;z-index:100;background:var(--lbh-bg);color:var(--lbh-ink);border-bottom:1px solid var(--lbh-line);
  box-shadow:var(--lbh-shadow-2);padding:var(--lbh-s-2) var(--lbh-gutter) var(--lbh-s-5);max-height:calc(100dvh - var(--lbh-header-h));overflow-y:auto;display:grid}
.lbh-drawer-group{border-bottom:1px solid var(--lbh-line)}
.lbh-drawer-group>a,.lbh-drawer-row>a{display:flex;align-items:center;min-height:52px;flex:1;font-family:var(--lbh-font-display);font-weight:600;font-size:1.0625rem;color:var(--lbh-ink);text-decoration:none}
.lbh-drawer-row{display:flex;align-items:center}
.lbh-drawer-toggle{width:44px;height:44px;border:0;background:none;color:var(--lbh-ink);cursor:pointer;display:grid;place-items:center}
.lbh-drawer-sub{display:none;padding:0 0 var(--lbh-s-3) var(--lbh-s-3)}
.lbh-drawer-group[data-lbh-open] .lbh-drawer-sub{display:grid}
.lbh-drawer-sub a{display:flex;align-items:center;min-height:44px;color:var(--lbh-ink-2);text-decoration:none;font-size:.9375rem}
.lbh-drawer-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--lbh-s-4);padding:var(--lbh-s-4) 0}
.lbh-header-phone.lbh-drawer-phone{display:inline-flex;color:var(--lbh-ink);margin:0}
.lbh-theme-toggle--row{width:auto;height:44px;padding:0 var(--lbh-s-4);border-radius:var(--lbh-pill);gap:var(--lbh-s-2);display:inline-flex;align-items:center;font-size:var(--lbh-fs-sm);font-weight:600}
.lbh-when-dark{display:none}
:root[data-theme="dark"] .lbh-when-dark{display:inline}
:root[data-theme="dark"] .lbh-when-light{display:none}
.lbh-menu>nav>.lbh-button{width:100%;min-height:50px}

/* Homepage: the bar floats over the photograph until the visitor scrolls */
.home .wp-site-blocks>header.wp-block-template-part{position:fixed;top:0;left:0;right:0}
:root:not(.lbh-es-on) .home .lbh-header-bar:not(.is-scrolled):not(.is-open){background:transparent;border-bottom-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}
:root:not(.lbh-es-on) .home .lbh-header-bar:not(.is-scrolled):not(.is-open) .lbh-header{color:var(--lbh-on-photo)}
:root:not(.lbh-es-on) .home .lbh-header-bar:not(.is-scrolled):not(.is-open) .lbh-header-action .lbh-button{background:var(--lbh-white);color:var(--lbh-slate)!important}
:root:not(.lbh-es-on) .home .lbh-header-bar:not(.is-scrolled):not(.is-open) .lbh-header-action .lbh-button:hover{background:var(--lbh-white-hover)}

/* ================================================================= FOOTER */
.lbh-footer{width:100%;max-width:calc(var(--lbh-container) + 2 * var(--lbh-gutter));margin-inline:auto;padding:var(--lbh-s-8) var(--lbh-gutter) var(--lbh-s-6);font-size:var(--lbh-fs-sm);color:var(--lbh-muted)}
.wp-site-blocks>footer.wp-block-template-part{border-top:1px solid var(--lbh-line);background:var(--lbh-bg)}
.lbh-footer-top{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:var(--lbh-s-7) var(--lbh-s-6)}
.lbh-footer nav a.lbh-footer-post{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:0;padding-block:var(--lbh-s-1);margin-bottom:var(--lbh-s-2);line-height:1.4;color:var(--lbh-ink-2)}
.lbh-footer nav a.lbh-footer-all{color:var(--lbh-link);font-weight:600}
.lbh-footer-top>*{margin:0!important}
.lbh-footer-wordmark{font-family:var(--lbh-font-display);font-weight:600;font-size:1.0625rem;color:var(--lbh-ink);margin:var(--lbh-s-5) 0 var(--lbh-s-2)}
.lbh-footer-brand>p{margin:0;max-width:26em}
.lbh-footer-contact{display:grid;gap:var(--lbh-s-1);margin-top:var(--lbh-s-4)}
.lbh-footer-contact a{color:var(--lbh-ink);font-weight:600;text-decoration:none;width:fit-content}
.lbh-footer-contact a:hover{color:var(--lbh-link)}
.lbh-footer h2{font-family:var(--lbh-font-display);font-size:.8125rem;font-weight:600;letter-spacing:0;text-transform:none;color:var(--lbh-ink);margin:0 0 var(--lbh-s-3)}
.lbh-footer-links{display:grid;gap:0}
.lbh-footer nav a{display:flex;align-items:center;min-height:36px;width:fit-content;color:var(--lbh-muted);text-decoration:none}
.lbh-footer nav a:hover{color:var(--lbh-ink)}
.lbh-footer-bottom{margin-top:var(--lbh-s-7);padding-top:var(--lbh-s-5);border-top:1px solid var(--lbh-line);font-size:var(--lbh-fs-xs);line-height:1.6;display:grid;gap:var(--lbh-s-2)}
.lbh-footer-bottom>p{margin:0;max-width:64rem}
.lbh-licensee{color:var(--lbh-ink-2)}
.lbh-licensee a{color:inherit}
.lbh-footer-bottom a{color:var(--lbh-ink-2)}
.lbh-footer-legal{display:flex;flex-wrap:wrap;gap:var(--lbh-s-2) var(--lbh-s-5);margin-top:var(--lbh-s-3)}
.lbh-footer-legal span{margin-right:auto}
.lbh-footer-legal a{color:var(--lbh-muted);display:inline-flex;align-items:center;min-height:24px}

/* Mobile action bar */
.lbh-mobile-cta{display:none}

/* =============================================================== HOMEPAGE */
.lbh-home .wp-block-post-content>*{margin-block:0!important}
.lbh-h-band{padding-block:var(--lbh-section-y)}
.lbh-h-band--alt{background:var(--lbh-surface)}
.lbh-h-band--tight{padding-block:clamp(3rem,2rem + 3.5vw,5rem)}
.lbh-h-head{max-width:40rem}
.lbh-h-head>*+*{margin-top:var(--lbh-s-4)}
.lbh-h-head .lbh-kicker+h2{margin-top:var(--lbh-s-3)}
.lbh-h-head--row{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--lbh-s-5) var(--lbh-s-7);max-width:none;flex-wrap:wrap}
.lbh-h-head--row>div:first-child{max-width:40rem}
.lbh-h-head--row>*{margin-top:0}
.lbh-h-head--row .lbh-actions{margin-top:0}
.lbh-h-split{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2.5rem,1rem + 5vw,5.5rem);align-items:center}
.lbh-h-split--top{align-items:start;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
.lbh-h-split>div>h2{margin-top:var(--lbh-s-3)}
.lbh-h-split>div>.lbh-lede{margin-top:var(--lbh-s-4)}
.lbh-h-split .lbh-fineprint{margin-top:var(--lbh-s-5)}

/* Hero */
.lbh-h-hero{position:relative;isolation:isolate;overflow:hidden;background:var(--lbh-band);color:var(--lbh-on-photo)}
.lbh-h-hero-photo,.lbh-h-hero-photo img{position:absolute;inset:0;width:100%;height:100%;z-index:-2}
.lbh-h-hero-photo img{object-fit:cover;object-position:60% 70%}
.lbh-h-hero::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(var(--lbh-scrim),.78) 0%,rgba(var(--lbh-scrim),.6) 36%,rgba(var(--lbh-scrim),.18) 66%,rgba(var(--lbh-scrim),0) 100%),
             linear-gradient(0deg,rgba(var(--lbh-scrim),.4) 0%,rgba(var(--lbh-scrim),0) 34%),
             linear-gradient(180deg,rgba(var(--lbh-scrim),.55) 0%,rgba(var(--lbh-scrim),0) 22%)}
.lbh-h-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(2rem,1rem + 4vw,4.5rem);align-items:center;
  padding-top:calc(var(--lbh-header-h) + clamp(2.5rem,1rem + 5vw,6rem));padding-bottom:clamp(3rem,1.5rem + 5vw,6rem)}
.lbh-h-hero .lbh-kicker{color:var(--lbh-on-photo-2)}
.lbh-h-hero h1{font-size:var(--lbh-fs-display);line-height:1.08;color:var(--lbh-on-photo);margin-top:var(--lbh-s-4);max-width:12.5em}
.lbh-h-hero-lead{font-size:var(--lbh-fs-lg);line-height:1.55;color:var(--lbh-on-photo-2);margin-top:var(--lbh-s-5);max-width:31em}
.lbh-h-hero-lead strong{color:var(--lbh-on-photo)}
.lbh-h-claim{font-size:var(--lbh-fs-xs);line-height:1.5;color:var(--lbh-on-photo-2);margin:var(--lbh-s-2) 0 0;max-width:31em}
.lbh-h-points{list-style:none;padding:0;margin:var(--lbh-s-6) 0 0;display:flex;flex-wrap:wrap;gap:var(--lbh-s-2) var(--lbh-s-5);font-size:var(--lbh-fs-sm);color:var(--lbh-on-photo)}
.lbh-h-points li{display:flex;align-items:center;gap:var(--lbh-s-2);margin:0}
.lbh-h-points svg{flex:0 0 auto;color:var(--lbh-check)}

/* The request card: the one glass surface on the photograph */
.lbh-h-tool{color:var(--lbh-ink);background:var(--lbh-glass);border:1px solid var(--lbh-glass-rim);border-radius:var(--lbh-r-lg);padding:var(--lbh-s-5);
  box-shadow:var(--lbh-shadow-3),inset 0 1px 0 var(--lbh-glass-hi);max-width:34rem;width:100%;justify-self:end}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .lbh-h-tool{-webkit-backdrop-filter:blur(28px) saturate(180%);backdrop-filter:blur(28px) saturate(180%)}
}
.lbh-h-tool-title{font-size:1.375rem;letter-spacing:-.02em}
.lbh-h-tool-hint{font-size:var(--lbh-fs-sm);color:var(--lbh-muted);margin:var(--lbh-s-1) 0 var(--lbh-s-4)}
.lbh-h-tool .lbh-lead-form legend{display:none}
.lbh-h-agent{display:flex;align-items:center;gap:var(--lbh-s-3);margin-top:var(--lbh-s-5);padding-top:var(--lbh-s-4);border-top:1px solid var(--lbh-line)}
.lbh-h-agent picture{flex:0 0 auto}
.lbh-h-agent img{width:40px;height:40px;border-radius:50%;object-fit:cover;object-position:50% 15%}
.lbh-h-agent p{margin:0;font-size:var(--lbh-fs-xs);line-height:1.4;color:var(--lbh-muted)}
.lbh-h-agent strong{display:block;color:var(--lbh-ink);font-size:.875rem}
.lbh-h-agent a{color:inherit;font-weight:600;display:inline-block;padding-block:.2rem}

/* Credentials strip */
.lbh-h-trust{border-bottom:1px solid var(--lbh-line);background:var(--lbh-bg)}
.lbh-h-trust dl{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--lbh-s-4) var(--lbh-s-7);margin:0;padding-block:var(--lbh-s-5)}
.lbh-h-trust dt{font-size:var(--lbh-fs-xs);color:var(--lbh-muted)}
.lbh-h-trust dd{margin:2px 0 0;font-family:var(--lbh-font-display);font-weight:600;font-size:var(--lbh-fs-sm);color:var(--lbh-ink)}

/* Numbered points (what you are not signing up for) */
.lbh-h-feats{list-style:none;padding:0;margin:var(--lbh-s-6) 0 0;display:grid;gap:var(--lbh-s-5)}
.lbh-h-feats li{display:grid;grid-template-columns:36px minmax(0,1fr);gap:var(--lbh-s-4);margin:0}
.lbh-h-num{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--lbh-tint);color:var(--lbh-accent);font-family:var(--lbh-font-display);font-weight:700;font-size:var(--lbh-fs-sm)}
.lbh-h-feats h3{font-size:var(--lbh-fs-base)}
.lbh-h-feats p{font-size:var(--lbh-fs-sm);color:var(--lbh-muted);margin-top:2px}

/* A raised panel: the closing-date promise and the fit question */
.lbh-h-panel{background:var(--lbh-raised);border:1px solid var(--lbh-line);border-radius:var(--lbh-r-lg);box-shadow:var(--lbh-shadow-2);padding:clamp(1.5rem,1rem + 2vw,2.5rem)}
.lbh-h-panel>*+*{margin-top:var(--lbh-s-4)}
.lbh-h-panel h3{font-size:clamp(1.375rem,1.1rem + 1vw,1.75rem);letter-spacing:-.02em;margin-top:var(--lbh-s-2)}
.lbh-h-panel p{color:var(--lbh-ink-2)}
.lbh-h-panel ul{list-style:none;padding:0;margin:var(--lbh-s-5) 0 0;display:grid;gap:0}
.lbh-h-panel li{margin:0;padding-block:var(--lbh-s-4);border-top:1px solid var(--lbh-line);font-size:var(--lbh-fs-sm);color:var(--lbh-muted)}
.lbh-h-panel li strong{display:block;color:var(--lbh-ink);font-size:var(--lbh-fs-base);margin-bottom:2px}
.lbh-h-panel .lbh-actions{margin-top:var(--lbh-s-5)}

/* Process */
.lbh-h-steps{list-style:none;padding:0;margin:var(--lbh-s-7) 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--lbh-s-7) var(--lbh-s-6);counter-reset:lbh-step}
.lbh-h-steps li{counter-increment:lbh-step;position:relative;padding-top:var(--lbh-s-5);border-top:2px solid var(--lbh-line);margin:0}
.lbh-h-steps li::before{content:counter(lbh-step,decimal-leading-zero);position:absolute;top:-2px;left:0;width:44px;padding-top:var(--lbh-s-4);border-top:2px solid var(--lbh-btn);
  font-family:var(--lbh-font-display);font-weight:600;font-size:var(--lbh-fs-xs);letter-spacing:.04em;color:var(--lbh-accent)}
.lbh-h-steps h3{margin-top:var(--lbh-s-5)}
.lbh-h-steps p{font-size:var(--lbh-fs-sm);color:var(--lbh-muted);margin-top:var(--lbh-s-2)}
.lbh-h-steps-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--lbh-s-3) var(--lbh-s-6);margin-top:var(--lbh-s-7)}
.lbh-h-steps-foot .lbh-fineprint{margin:0}
.lbh-h-steps-foot .lbh-actions{margin:0}

/* Situations: each is a link to the page that answers it */
.lbh-h-sits{list-style:none;padding:0;margin:var(--lbh-s-7) 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--lbh-s-4)}
.lbh-h-sits li{margin:0}
.lbh-h-sit{position:relative;display:flex;flex-direction:column;gap:var(--lbh-s-3);height:100%;padding:var(--lbh-s-5);background:var(--lbh-raised);border:1px solid var(--lbh-line);border-radius:var(--lbh-r-lg);
  color:var(--lbh-ink);text-decoration:none;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.lbh-h-sit:hover{border-color:var(--lbh-line-2);box-shadow:var(--lbh-shadow-2);transform:translateY(-2px);color:var(--lbh-ink);text-decoration:none}
.lbh-h-sit-tag{align-self:flex-start;display:inline-flex;align-items:center;min-height:24px;padding:0 var(--lbh-s-3);border-radius:var(--lbh-pill);background:var(--lbh-tint);color:var(--lbh-accent);
  font-family:var(--lbh-font-display);font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.lbh-h-sit-text{font-family:var(--lbh-font-display);font-weight:600;font-size:var(--lbh-fs-base);line-height:1.35;letter-spacing:-.01em}
.lbh-h-sit-go{margin-top:auto;font-size:var(--lbh-fs-sm);font-weight:600;color:var(--lbh-link)}
.lbh-h-sit-go::after{content:"\2192";display:inline-block;margin-left:.4em;transition:transform .15s ease}
.lbh-h-sit:hover .lbh-h-sit-go::after{transform:translateX(3px)}
.lbh-h-note{max-width:var(--lbh-measure);margin-top:var(--lbh-s-5);font-size:var(--lbh-fs-sm);color:var(--lbh-muted)}

/* Comparison table */
.lbh-h-band .lbh-table-card{margin-top:var(--lbh-s-7)}
.lbh-compare{min-width:640px}
.lbh-compare th,.lbh-compare td{padding:var(--lbh-s-5);text-align:left;vertical-align:top;border-bottom:1px solid var(--lbh-line)}
.lbh-compare tr:last-child>*{border-bottom:0}
.lbh-compare thead th{font-family:var(--lbh-font-display);font-weight:600;font-size:1.1875rem;letter-spacing:-.015em;color:var(--lbh-ink)}
.lbh-compare thead th span{display:block;font-family:var(--lbh-font-text);font-weight:400;font-size:var(--lbh-fs-xs);letter-spacing:0;color:var(--lbh-muted);margin-top:var(--lbh-s-1)}
.lbh-compare tbody th{width:22%;font-size:var(--lbh-fs-sm);font-weight:600;color:var(--lbh-muted)}
.lbh-compare td{width:39%;font-size:var(--lbh-fs-sm);color:var(--lbh-ink-2)}
.lbh-compare td strong{display:block;font-size:var(--lbh-fs-base);color:var(--lbh-ink);margin-bottom:2px}
.lbh-compare tbody td:nth-child(2){background:color-mix(in srgb,var(--lbh-tint) 55%,transparent)}
.lbh-h-compare-foot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--lbh-s-4) var(--lbh-s-6);margin-top:var(--lbh-s-5);font-size:var(--lbh-fs-sm);color:var(--lbh-muted)}
.lbh-h-compare-foot p{margin:0;max-width:38rem}
.lbh-h-compare-foot .lbh-actions{margin-top:0}

/* Three and four-up statements */
.lbh-h-trio,.lbh-h-quad{list-style:none;padding:0;margin:var(--lbh-s-7) 0 0;display:grid;gap:var(--lbh-s-6)}
.lbh-h-trio{grid-template-columns:repeat(3,minmax(0,1fr))}
.lbh-h-quad{grid-template-columns:repeat(4,minmax(0,1fr))}
.lbh-h-trio li,.lbh-h-quad li{margin:0;padding-top:var(--lbh-s-5);border-top:2px solid var(--lbh-line)}
.lbh-h-trio h3,.lbh-h-quad h3{font-size:var(--lbh-fs-base)}
.lbh-h-trio p,.lbh-h-quad p{font-size:var(--lbh-fs-sm);color:var(--lbh-muted);margin-top:var(--lbh-s-2)}

/* Kevin */
.lbh-h-kevin{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2.5rem,1rem + 5vw,5.5rem);align-items:center}
.lbh-h-portrait{border-radius:var(--lbh-r-lg);overflow:hidden;background:var(--lbh-surface-2);max-width:28rem}
.lbh-h-portrait img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 12%}
.lbh-h-kevin h2{margin-top:var(--lbh-s-3)}
.lbh-h-role{font-size:var(--lbh-fs-base);color:var(--lbh-muted);margin:var(--lbh-s-2) 0 0}
.lbh-h-bio{display:grid;gap:var(--lbh-s-4);margin-top:var(--lbh-s-5);max-width:var(--lbh-measure);color:var(--lbh-ink-2)}
.lbh-h-bio p{margin:0}
.lbh-h-creds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--lbh-s-6);margin:var(--lbh-s-6) 0 0;max-width:var(--lbh-measure)}
.lbh-h-creds div{padding-block:var(--lbh-s-3);border-top:1px solid var(--lbh-line)}
.lbh-h-creds dt{font-size:var(--lbh-fs-xs);color:var(--lbh-muted)}
.lbh-h-creds dd{margin:2px 0 0;font-weight:600;font-size:var(--lbh-fs-sm)}

/* Areas */
.lbh-h-areas{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 var(--lbh-s-6)}
.lbh-h-areas li{margin:0}
.lbh-h-areas a{display:flex;justify-content:space-between;align-items:center;min-height:52px;border-bottom:1px solid var(--lbh-line);color:var(--lbh-ink);font-weight:500;text-decoration:none}
.lbh-h-areas a::after{content:"\2192";color:var(--lbh-muted);transition:transform .15s ease}
.lbh-h-areas a:hover{color:var(--lbh-link)}
.lbh-h-areas a:hover::after{transform:translateX(3px);color:var(--lbh-link)}

/* FAQ on the homepage */
.lbh-h-faq .lbh-faq-list{max-width:none}
.lbh-h-faq .wp-block-group.lbh-wrap{max-width:calc(var(--lbh-container) + 2 * var(--lbh-gutter))}

/* Final ask */
.lbh-h-final{position:relative;isolation:isolate;overflow:hidden;background:var(--lbh-band);color:var(--lbh-on-photo)}
.lbh-h-final::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(80% 120% at 100% 0%,rgba(var(--lbh-band-glow),.38),transparent 60%)}
.lbh-h-final-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--lbh-s-6) var(--lbh-s-8);align-items:center;padding-block:clamp(4rem,2.5rem + 5vw,6.5rem)}
.lbh-h-final h2{color:var(--lbh-on-photo);font-size:clamp(2rem,1.4rem + 2.6vw,3.25rem)}
.lbh-h-final-grid>div>p{color:var(--lbh-on-band-2);font-size:var(--lbh-fs-lg);margin-top:var(--lbh-s-4);max-width:30em}
.lbh-h-final-form{display:flex;gap:var(--lbh-s-2);padding:var(--lbh-s-2);border-radius:14px;background:var(--lbh-white)}
.lbh-h-final-form:focus-within{box-shadow:0 0 0 4px rgba(143,224,189,.45)}
.lbh-h-final-form input{flex:1;min-width:0;min-height:52px;border:0;background:transparent;padding:0 var(--lbh-s-4);font-size:1rem;color:var(--lbh-slate)}
.lbh-h-final-form input::placeholder{color:var(--lbh-muted)}
.lbh-h-final-form input:focus{outline:none}
.lbh-h-final-form .lbh-button{background:var(--lbh-emerald);color:var(--lbh-white)!important;flex:0 0 auto;min-height:52px}
.lbh-h-final-form .lbh-button:hover{background:var(--lbh-btn-hover)}
.lbh-h-final-talk{display:flex;align-items:center;gap:var(--lbh-s-3);margin:var(--lbh-s-4) 0 0;font-size:var(--lbh-fs-sm);color:var(--lbh-on-band-2)}
.lbh-h-final-talk picture{flex:0 0 auto}
.lbh-h-final-talk img{width:36px;height:36px;border-radius:50%;object-fit:cover;object-position:50% 15%;border:2px solid rgba(255,255,255,.4)}
.lbh-h-final-talk a{color:var(--lbh-white);font-weight:600;text-decoration:none;display:inline-block;padding-block:.3rem}
.lbh-h-final-note{margin:var(--lbh-s-3) 0 0;font-size:var(--lbh-fs-xs);color:var(--lbh-on-band-2)}

/* The pointer to the other site: one question, one button */
.lbh-h-path{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--lbh-s-5) var(--lbh-s-7)}
.lbh-h-path>div:first-child{max-width:40rem}
.lbh-h-path h2{margin-top:var(--lbh-s-3);font-size:clamp(1.5rem,1.2rem + 1.2vw,2rem)}
.lbh-h-path .lbh-lede{margin-top:var(--lbh-s-3)}
.lbh-h-path .lbh-actions{margin-top:0}
.lbh-kicker--band{color:var(--lbh-on-photo-2)}
.lbh-h-final h2{margin-top:var(--lbh-s-3)}

/* ============================================================ breakpoints */
/* The full bar (face and name, six items, language switch, theme switch and the
   button) needs about 1200px. Below that the drawer takes over. The phone
   number lives in the drawer, the hero card, the Kevin section, the footer and
   the mobile bar: the desktop bar cannot hold it beside six items. */
.lbh-header-action>.lbh-header-phone{display:none}
.lbh-desktop-nav{gap:var(--lbh-s-3)}
.lbh-header{gap:var(--lbh-s-4)}
.lbh-header-action{gap:var(--lbh-s-2)}
@media (max-width:1199px){
  .lbh-desktop-nav,.lbh-header-action>.lbh-theme-toggle,.lbh-header-action>.lbh-button{display:none}
  .lbh-menu{display:block}
  .lbh-header{gap:var(--lbh-s-3)}
  /* The language switch stays in the bar on phones and tablets: a Spanish
     speaker should not have to find it inside a menu written in English. */
  .lbh-header-action>.lbh-lang-toggle{display:inline-flex}
}
.lbh-drawer-foot--call{padding-top:0}
@media (max-width:1023px){
  .lbh-h-hero-grid,.lbh-h-split,.lbh-h-split--top,.lbh-h-kevin,.lbh-h-final-grid{grid-template-columns:minmax(0,1fr)}
  .lbh-h-tool{justify-self:start}
  .lbh-h-steps,.lbh-h-trio{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lbh-h-sits,.lbh-h-quad{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lbh-cards--wide,.lbh-blog-curated .lbh-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lbh-h-portrait{max-width:24rem}
  .lbh-footer-top{grid-template-columns:repeat(3,minmax(0,1fr))}
  .lbh-footer-brand{grid-column:1/-1}
}
@media (max-width:720px){
  :root{--lbh-header-h:64px}
  .lbh-h-hero::before{background:linear-gradient(180deg,rgba(var(--lbh-scrim),.8) 0%,rgba(var(--lbh-scrim),.58) 45%,rgba(var(--lbh-scrim),.8) 100%)}
  .lbh-h-hero-grid{padding-top:calc(var(--lbh-header-h) + var(--lbh-s-5));padding-bottom:var(--lbh-s-6);gap:var(--lbh-s-5)}
  .lbh-h-hero .lbh-kicker{display:none}
  .lbh-h-hero h1{margin-top:0;font-size:2rem}
  .lbh-h-hero-lead{margin-top:var(--lbh-s-3);font-size:1rem}
  .lbh-h-points{margin-top:var(--lbh-s-4);font-size:.875rem;gap:var(--lbh-s-2) var(--lbh-s-4)}
  .lbh-h-tool{padding:var(--lbh-s-4)}
  .lbh-lead-form fieldset[data-step="2"]{grid-template-columns:minmax(0,1fr)}
  .lbh-lead-form fieldset[data-step="2"]>.lbh-back,.lbh-lead-form fieldset[data-step="2"]>.lbh-submit{grid-column:1/-1}
  .lbh-h-trust dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--lbh-s-4) var(--lbh-s-5)}
  .lbh-h-steps,.lbh-h-trio,.lbh-h-quad,.lbh-h-sits{grid-template-columns:minmax(0,1fr);gap:var(--lbh-s-6)}
  .lbh-h-sits{gap:var(--lbh-s-3)}
  .lbh-cards--wide,.lbh-blog-curated .lbh-cards{grid-template-columns:minmax(0,1fr)}
  .lbh-h-areas{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lbh-h-creds{grid-template-columns:minmax(0,1fr)}
  .lbh-h-final-form{flex-direction:column}
  .lbh-h-final-form .lbh-button{width:100%}
  .lbh-footer-top{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* The copyright line pushed the legal links to the right edge with an auto
     margin, which on a 375px screen left "Disclosures" alone on its own line.
     Giving the copyright its own full-width line lets the three links share the
     next one instead of splitting 2 + 1. */
  .lbh-footer-legal span{flex:0 0 100%;margin-right:0}
  .lbh-mobile-cta{position:fixed;left:0;right:0;bottom:0;z-index:90;display:flex;gap:var(--lbh-s-2);
    padding:var(--lbh-s-3) max(var(--lbh-s-4),env(safe-area-inset-right,0px)) calc(var(--lbh-s-3) + env(safe-area-inset-bottom,0px)) max(var(--lbh-s-4),env(safe-area-inset-left,0px));
    background:var(--lbh-nav-bg);border-top:1px solid var(--lbh-line)}
  .lbh-mobile-call{display:inline-flex;align-items:center;justify-content:center;gap:var(--lbh-s-2);flex:0 0 32%;min-height:48px;border-radius:10px;border:1px solid var(--lbh-line-2);
    color:var(--lbh-ink);font-family:var(--lbh-font-display);font-weight:600;font-size:var(--lbh-fs-sm);text-decoration:none}
  .lbh-mobile-cta .lbh-mobile-offer{flex:1;min-height:48px}
  .lbh-footer{padding-bottom:calc(var(--lbh-s-6) + 76px + env(safe-area-inset-bottom,0px))}
  .lbh-has-inline-form .lbh-mobile-cta .lbh-mobile-offer{display:inline-flex}
}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .lbh-mobile-cta{-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%)}
}
@media (max-width:420px){
  .lbh-h-areas{grid-template-columns:minmax(0,1fr)}
  .lbh-footer-top{grid-template-columns:minmax(0,1fr)}
}
/* Under 360px the bar is brand + mark + language switch + menu and nothing else
   fits. The licence line moves to the drawer and the footer, both of which
   carry it, so the mark and the name are what the bar holds. */
@media (max-width:360px){
  .lbh-brand-sub{display:none}
  .lbh-brand-mark{height:36px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .lbh-reveal{opacity:1;transform:none}
}
@media (forced-colors:active){
  .lbh-h-tool,.lbh-button,.lbh-header-bar,.lbh-dialog-inner,.lbh-mobile-cta{border:1px solid CanvasText}
  .lbh-h-hero::before,.lbh-h-final::before{display:none}
}
@media print{
  .lbh-header-bar,.lbh-mobile-cta,.lbh-menu,.lbh-h-tool,.lbh-theme-toggle,.lbh-dialog{display:none!important}
  .lbh-h-hero{background:none;color:#000}
  .lbh-h-hero h1,.lbh-h-hero-lead{color:#000}
  .lbh-h-hero-photo,.lbh-h-hero::before{display:none}
}
