.lsl-site-header,
.lsl-site-header * { box-sizing: border-box; }
.preview-nav { display: none !important; }
html.lsl-embedded .lsl-site-header { display: none !important; }
.lsl-site-header {
  position: relative;
  z-index: 1000;
  display: grid;
  grid-template-columns: minmax(170px, .38fr) minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(14px, 2vw, 28px);
  width: 100%;
  max-width: 100vw;
  min-height: 76px;
  padding: 10px clamp(16px, 4vw, 48px);
  background: #F8F5FF;
  border-bottom: 1px solid #D8CBE8;
  color: #3a1e2b;
  font-family: Aptos, "Segoe UI", Arial, sans-serif;
}
.lsl-site-brand,
.lsl-site-brand:hover {
  display: inline-flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  color: #3a1e2b;
  text-decoration: none;
}
.lsl-site-brand-name { font: 700 clamp(19px, 2vw, 26px)/1 'Playfair Display', Georgia, serif; letter-spacing: -.03em; }
.lsl-site-brand-tagline { color: #b23a5b; font-size: 9px; font-weight: 600; letter-spacing: 1.3px; text-transform: uppercase; white-space: nowrap; }
.lsl-menu-toggle { min-width: 0; }
.lsl-menu-toggle > summary { display: none; }
.lsl-site-nav { display: flex; align-items: center; justify-content: center; gap: clamp(8px, 1.25vw, 20px); min-width: 0; }
.lsl-site-nav > a,
.lsl-site-nav > details > summary,
.lsl-nav-panel summary { color: #3a1e2b; font-size: 13px; font-weight: 600; line-height: 1.3; text-decoration: none; cursor: pointer; }
.lsl-site-nav > a,
.lsl-site-nav > details > summary { padding: 10px 4px; white-space: nowrap; }
.lsl-site-nav > a:hover,
.lsl-site-nav > details > summary:hover,
.lsl-nav-panel summary:hover,
.lsl-nav-panel a:hover { color: #b23a5b; }
.lsl-site-nav details { position: relative; }
.lsl-site-nav summary { list-style: none; }
.lsl-site-nav summary::marker,
.lsl-site-nav summary::-webkit-details-marker { display: none; content: ''; }
.lsl-nav-panel { position: absolute; top: calc(100% + 8px); left: 0; display: none; grid-template-columns: minmax(230px, 1fr); gap: 2px; min-width: 280px; max-width: min(420px, 82vw); max-height: min(72vh, 620px); overflow: auto; padding: 10px; background: #F8F5FF; border: 1px solid #D8CBE8; border-radius: 12px; box-shadow: 0 14px 30px rgba(58, 30, 43, .1); }
.lsl-site-nav details[open] > .lsl-nav-panel { display: grid; }
.lsl-nav-panel a,
.lsl-nav-panel details > summary { display: block; min-width: 0; padding: 9px 10px; color: #3a1e2b; font-size: 13px; line-height: 1.35; text-decoration: none; border-radius: 8px; overflow-wrap: anywhere; }
.lsl-nav-panel details { min-width: 0; }
.lsl-nav-panel details > .lsl-nav-panel { position: static; top: auto; left: auto; width: 100%; min-width: 0; max-width: none; max-height: none; margin-top: 5px; overflow: visible; box-shadow: none; }
.lsl-site-actions { display: flex; align-items: center; gap: 12px; white-space: nowrap; }
.lsl-site-actions a { color: #3a1e2b; font-size: 13px; font-weight: 600; text-decoration: none; }
.lsl-site-actions a:hover { color: #b23a5b; }

@media (max-width: 1280px) {
  .lsl-site-header { grid-template-columns: minmax(155px, .32fr) minmax(0, 1fr) auto; gap: 12px; padding-inline: 20px; }
  .lsl-site-nav { gap: 6px; }
  .lsl-site-nav > a, .lsl-site-nav > details > summary { font-size: 12px; }
}
@media (max-width: 1280px) {
  .lsl-site-header { grid-template-columns: 1fr auto; align-items: start; gap: 10px 14px; padding: 12px 16px; }
  .lsl-menu-toggle { grid-column: 1 / -1; }
  .lsl-menu-toggle > summary { display: block; width: fit-content; padding: 8px 12px; color: #3a1e2b; font-size: 13px; font-weight: 600; border: 1px solid #D8CBE8; border-radius: 8px; cursor: pointer; }
  .lsl-site-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; justify-content: stretch; gap: 6px; padding-top: 8px; }
  .lsl-site-nav > a, .lsl-site-nav > details > summary { display: block; padding: 10px; white-space: normal; border: 1px solid #D8CBE8; border-radius: 8px; background: #F8F5FF; }
  .lsl-nav-panel, .lsl-nav-panel details > .lsl-nav-panel { position: static; display: none; grid-template-columns: 1fr; width: 100%; min-width: 0; max-width: none; max-height: none; margin-top: 5px; padding: 5px; overflow: visible; border-radius: 8px; box-shadow: none; background: #E9E2F3; }
  .lsl-site-nav details[open] > .lsl-nav-panel { display: grid; }
  .lsl-nav-panel a, .lsl-nav-panel details > summary { font-size: 12px; }
  .lsl-site-actions { justify-self: end; }
}
@media (max-width: 420px) {
  .lsl-site-header { padding-inline: 12px; }
  .lsl-site-nav { grid-template-columns: 1fr; }
  .lsl-site-brand-tagline { white-space: normal; }
  .lsl-site-actions a { font-size: 12px; }
}

/* Service menu: expandable hubs open their links below, never as side flyouts. */
.lsl-site-nav > details > summary,
.lsl-nav-panel details > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.lsl-site-nav > details > summary::after,
.lsl-nav-panel details > summary::after {
  flex: 0 0 auto;
  color: #3A1E2B;
  content: '＋';
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
}

.lsl-site-nav > details[open] > summary::after,
.lsl-nav-panel details[open] > summary::after {
  content: '−';
}

.lsl-site-nav > a,
.lsl-nav-panel a,
.lsl-nav-panel details > summary,
.lsl-site-actions a {
  color: #3a1e2b;
}

.lsl-site-nav > a:hover,
.lsl-site-nav > details > summary:hover,
.lsl-nav-panel a:hover,
.lsl-nav-panel details > summary:hover,
.lsl-site-actions a:hover {
  color: #3A1E2B;
}

@media (min-width: 821px) {
  .lsl-site-nav > details > .lsl-nav-panel,
  .lsl-nav-panel details > .lsl-nav-panel {
    grid-template-columns: minmax(230px, 1fr);
  }
}

/* Shared LowStyleLife type scale for pages that render the static service menu. */
.lsl-site-nav > a,
.lsl-site-nav > details > summary,
.lsl-nav-panel a,
.lsl-nav-panel details > summary,
.lsl-menu-toggle > summary,
.lsl-site-actions a {
  font-size: 15px;
  line-height: 1.4;
}

@media (max-width: 820px) {
  .lsl-site-nav > a,
  .lsl-site-nav > details > summary,
  .lsl-nav-panel a,
  .lsl-nav-panel details > summary,
  .lsl-menu-toggle > summary,
  .lsl-site-actions a {
    font-size: 16px;
  }
}

@media (max-width: 820px) {
  .lsl-site-nav {
    grid-template-columns: 1fr;
  }

  .lsl-site-nav > details,
  .lsl-site-nav > a {
    width: 100%;
  }

  .lsl-site-nav > details > .lsl-nav-panel,
  .lsl-nav-panel details > .lsl-nav-panel {
    position: static;
    display: none;
    grid-template-columns: 1fr;
    width: 100%;
    min-width: 0;
    max-width: none;
    max-height: none;
    margin-top: 5px;
    overflow: visible;
    box-shadow: none;
  }

  .lsl-site-nav details[open] > .lsl-nav-panel {
    display: grid;
  }
}
