/* Leiser & Co. | Shared design system
   Applies the same modern header and footer to every PHP page without
   replacing or restructuring the legacy pages' individual content. */
:root {
  --leiser-utility: #031A27;
  --leiser-nav: #092C3E;
  --leiser-photo: #163C4B;
  --leiser-footer: #082838;
  --leiser-ivory: #FAF9F7;
  --leiser-text: #142B3A;
  --leiser-gold: #BF8D44;
  --leiser-sans: 'DM Sans', Arial, Helvetica, sans-serif;
  --leiser-serif: 'Libre Baskerville', Georgia, 'Times New Roman', serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; }
body .all { min-height: 100vh; }
.lh-header, .lf-footer, .lf-photo-strip { font-family: var(--leiser-sans); }
.lh-header *, .lf-footer *, .lf-photo-strip * { box-sizing: border-box; }
.lh-header a, .lf-footer a { color: #fff !important; }
.lh-header a:focus-visible, .lf-footer a:focus-visible, .lf-photo-strip a:focus-visible {
  outline: 3px solid #84cade; outline-offset: 3px;
}
/* The small strip is deliberately darker than the navigation. */
.lh-header {
  position: sticky; top: -31px; z-index: 80; width: 100%;
  background: var(--leiser-nav); color: #fff;
}
.lh-shell { max-width: 1320px; width: calc(100% - 88px); margin: 0 auto; }
.lh-utility-bar { background: var(--leiser-utility); height: 31px; }
.lh-utility-inner { display: flex; gap: 15px; height: 100%; align-items: center; justify-content: flex-end; }
.lh-utility-inner a {
  display: inline-flex; gap: 6px; align-items: center;
  font: 400 11px/1.2 var(--leiser-sans); letter-spacing: 0;
  text-decoration: none; white-space: nowrap;
}
.lh-utility-inner a:hover { text-decoration: underline; }
.lh-utility-inner img { width: 16px; height: 16px; object-fit: contain; flex: none; }
.lh-utility-separator { width: 1px; height: 12px; background: rgba(255,255,255,.26); flex: none; }
.lh-navigation-bar { display: flex; align-items: center; gap: 30px; min-height: 83px; }
.lh-brand { flex: 0 0 auto; display: block; width: clamp(198px, 22vw, 280px); text-decoration: none; }
.lh-brand img { display: block; width: 100%; height: auto; max-height: 75px; object-fit: contain; object-position: left center; }
.lh-desktop-nav { display: flex; align-items: center; gap: clamp(13px, 2.1vw, 33px); margin-left: auto; }
.lh-desktop-nav a {
  display: inline-block; text-decoration: none; white-space: nowrap;
  font: 400 13px/1.3 var(--leiser-sans); transition: color .2s ease;
}
.lh-desktop-nav a:hover, .lh-desktop-nav a[aria-current="page"]:hover { color: #eacfa6 !important; }
.lh-desktop-nav a[aria-current="page"] { text-decoration: underline; text-decoration-color: rgba(225,190,139,.66); text-underline-offset: 7px; }
.lh-quote-link {
  display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
  min-height: 43px; padding: 11px 18px; border: 1px solid #1677a9;
  border-radius: 5px; background: #075d8d; text-decoration: none; white-space: nowrap;
  font: 600 13px/1.25 var(--leiser-sans);
  transition: background .2s ease;
}
.lh-quote-link:hover { background: #1473a4; }
.lh-mobile-nav { display: none; }
/* Footer starts with a distinct, lighter photo band. */
.lf-photo-strip {
  background: var(--leiser-photo); border-bottom: 1px solid rgba(255,255,255,.32);
  min-height: 145px; overflow: hidden; width: 100%;
}
.lf-photo-inner { max-width: 840px; display: flex; height: 145px; gap: 7px; margin: 0 auto; }
.lf-photo-inner a { display: block; flex: 1 1 0; min-width: 0; overflow: hidden; }
.lf-photo-inner img {
  display: block; width: 100%; height: 100%; object-fit: cover;
  transition: transform .3s ease;
}
.lf-photo-inner a:hover img { transform: scale(1.04); }
.lf-footer { width: 100%; background: var(--leiser-footer); color: #fff; padding: 30px 0 33px; }
.lf-shell { max-width: 1320px; width: calc(100% - 88px); margin: 0 auto; }
.lf-grid {
  display: grid; grid-template-columns: 1.12fr 1.38fr 1.25fr 1.57fr 1fr;
  align-items: start; gap: 24px; font: 400 12px/1.65 var(--leiser-sans);
}
.lf-grid > * + * { padding-left: 20px; border-left: 1px solid rgba(255,255,255,.22); min-height: 76px; }
.lf-brand a, .lf-brand img { display: block; }
.lf-brand img { width: 100%; height: auto; max-width: 210px; }
.lf-links { display: flex; flex-wrap: wrap; column-gap: 13px; row-gap: 8px; }
.lf-links a, .lf-contact a, .lf-address a, .lf-legal a { text-decoration: none; font: inherit; }
.lf-links a:hover, .lf-contact a:hover, .lf-address a:hover, .lf-legal a:hover { text-decoration: underline; }
.lf-contact, .lf-legal { display: flex; flex-direction: column; gap: 7px; }
.lf-contact a { display: flex; gap: 8px; align-items: center; white-space: nowrap; }
.lf-contact img { object-fit: contain; width: 17px; height: 17px; flex: none; }
.lf-legal a[href$=".pdf"] { text-decoration: underline; }
/* Gentle shared skin on legacy inner pages, scoped to prevent cross-page layout regressions. */
body.leiser-innerpage {
  margin: 0; color: var(--leiser-text); background: var(--leiser-ivory);
  font-family: var(--leiser-sans); font-size: 16px; line-height: 1.62;
  -webkit-font-smoothing: antialiased;
}
.leiser-innerpage #content {
  max-width: 1120px !important; width: calc(100% - 48px);
  margin-left: auto; margin-right: auto; padding-top: 20px; padding-bottom: 65px;
}
.leiser-innerpage #content h1, .leiser-innerpage #content h2, .leiser-innerpage #content h3,
.leiser-innerpage #content .up {
  font-family: var(--leiser-serif); font-weight: 400; letter-spacing: -.035em;
  line-height: 1.22; color: var(--leiser-text);
}
.leiser-innerpage #content h1, .leiser-innerpage #content h2 { max-width: 100%; }
.leiser-innerpage #content img { max-width: 100%; height: auto; }
.leiser-innerpage #content a:not(.telephone) { text-underline-offset: 3px; }
.leiser-innerpage #content table { max-width: 100%; }
.leiser-innerpage #content input, .leiser-innerpage #content textarea, .leiser-innerpage #content select {
  max-width: 100%; font-family: var(--leiser-sans);
}
.leiser-innerpage #content input[type="submit"], .leiser-innerpage #content button[type="submit"] {
  background: #075d8d; color: #fff; border-radius: 4px; cursor: pointer;
}
.leiser-innerpage #content input[type="submit"]:hover { background: #1473a4; }
@media (max-width: 1120px) {
  .lh-shell, .lf-shell { width: calc(100% - 52px); }
  .lh-navigation-bar { gap: 17px; }
  .lh-desktop-nav { gap: 15px; }
  .lh-desktop-nav a { font-size: 12px; }
  .lh-quote-link { font-size: 12px; padding: 10px 14px; }
  .lh-brand { width: 205px; }
  .lf-grid { grid-template-columns: 1fr 1.3fr 1.2fr; gap: 24px; }
  .lf-grid > :nth-child(4) { padding-left: 0; border-left: 0; }
}
@media (max-width: 800px) {
  .lh-header { top: 0; }
  .lh-utility-bar { display: none; }
  .lh-navigation-bar { min-height: 75px; gap: 12px; }
  .lh-desktop-nav { display: none; }
  .lh-brand { width: 215px; margin-right: auto; }
  .lh-mobile-nav { display: block; order: 3; position: relative; }
  .lh-mobile-nav summary {
    list-style: none; display: flex; flex-direction: column; justify-content: center;
    align-items: center; width: 45px; height: 45px; gap: 3px; color: white; cursor: pointer;
  }
  .lh-mobile-nav summary::-webkit-details-marker { display:none; }
  .lh-menu-lines { display: flex; flex-direction: column; gap: 4px; }
  .lh-menu-lines i { width: 24px; height: 2px; background: white; display: block; }
  .lh-menu-text { font: 600 9px/1.3 var(--leiser-sans); }
  .lh-mobile-nav nav {
    position: absolute; top: calc(100% + 15px); right: -26px;
    width: min(350px, 100vw); max-height: calc(100dvh - 80px);
    overflow-y: auto; display: flex; flex-direction: column;
    padding: 13px 24px 23px; background: var(--leiser-nav);
    box-shadow: 0 12px 25px rgba(0,0,0,.25); border: 1px solid rgba(255,255,255,.12);
  }
  .lh-mobile-nav nav a {
    padding: 13px 0; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.13);
    font: 500 14px/1.4 var(--leiser-sans); display: flex; align-items: center; gap: 9px;
  }
  .lh-mobile-nav nav a img { width: 17px; height: 17px; object-fit: contain; }
  .lf-grid { grid-template-columns: 1fr 1fr; gap: 25px; }
  .lf-grid > * { border: 0 !important; padding: 0 !important; min-height: auto !important; }
  .lf-brand { grid-column: 1/-1; }
  .lf-address, .lf-legal { grid-column: 1/-1; }
  .lf-legal { flex-direction: row; flex-wrap: wrap; gap: 10px 20px; }
}
@media (max-width: 650px) {
  .lh-shell, .lf-shell { width: calc(100% - 34px); }
  .lh-navigation-bar { min-height: 67px; gap: 8px; }
  .lh-brand { width: 174px; }
  .lh-quote-link { font-size: 11px; min-height: 38px; padding: 10px 10px; }
  .lh-mobile-nav nav { right: -17px; }
  .lf-photo-strip { min-height: 105px; }
  .lf-photo-inner { height: 105px; gap: 4px; }
  .lf-footer { padding: 31px 0 35px; }
  .lf-contact { font-size: 12px; }
  .leiser-innerpage #content { width: calc(100% - 34px); padding-top: 18px; padding-bottom: 45px; }
  .leiser-innerpage #content h1, .leiser-innerpage #content .up { font-size: clamp(26px, 7vw, 34px) !important; }
}
@media (max-width: 375px) {
  .lh-brand { width: 151px; }
  .lh-quote-link { font-size: 10px; padding: 8px 8px; }
  .lf-grid { column-gap: 13px; }
  .lf-contact a { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .lf-photo-inner img, .lh-quote-link { transition: none; }
}
@media (max-width: 360px) {
  .lh-navigation-bar { gap: 5px; }
  .lh-brand { width: 130px; }
  .lh-quote-link { font-size: 9px; padding: 8px 5px; min-height: 35px; }
  .lh-mobile-nav summary { width: 38px; }
  .lh-mobile-nav nav { right: -17px; }
}

/* v3: footer strip restored to compact, source-friendly image dimensions.
   The old site presented these images at 140px. Their display size is
   capped at that value rather than enlarging them across an 840px band. */
.lf-photo-strip { min-height: 0; }
.lf-photo-inner {
  width: min(calc(100% - 28px), 452px);
  max-width: 452px;
  height: auto;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 140px));
  justify-content: center;
  gap: 10px;
  padding: 0;
}
.lf-photo-inner a { min-width: 0; width: 100%; aspect-ratio: 7/8; display: block; }
.lf-photo-inner img { width: 100%; height: 100%; object-fit: cover; transition: none; }
.lf-photo-inner a:hover img { transform: none; }
@media(max-width:650px) {
  .lf-photo-inner { height: auto; gap: 5px; width: min(calc(100% - 16px), 452px); }
  .lf-photo-inner a { aspect-ratio: 7/8; }
}
