body.public-site-chrome.nav-open { overflow: hidden; }

.public-site-chrome > .skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 10000;
  transform: translateY(calc(-100% - 24px));
  transition: transform 160ms ease;
}

.public-site-chrome > .skip-link:focus {
  top: 12px;
  transform: translateY(0);
}

.public-site-chrome .home-header,
.public-site-chrome .home-header *,
.public-site-chrome .home-footer,
.public-site-chrome .home-footer * {
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.public-site-chrome .home-header {
  --header-foreground: #151c25;
  position: fixed;
  z-index: 1000;
  top: 0;
  left: 0;
  width: 100%;
  border: 0;
  background: #fcfbf8;
  color: var(--header-foreground);
  font: 200 16px/1.5 "Sarabun", sans-serif;
  box-shadow: inset 0 -1px rgba(21, 28, 37, 0.07);
}

.public-site-chrome .home-header.is-scrolled {
  box-shadow: inset 0 -1px rgba(21, 28, 37, 0.16), 0 8px 36px rgba(26, 34, 48, 0.04);
}

.public-site-chrome .home-header.is-open {
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 8px 36px rgba(26, 34, 48, 0.04);
}

.public-site-chrome .home-header__inner {
  display: grid;
  width: min(100%, var(--content-max));
  min-height: var(--header-height);
  margin: 0 auto;
  padding: 0 var(--page-gutter);
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 28px;
}

.public-site-chrome .home-brand {
  justify-self: start;
  color: var(--header-foreground);
  font: 300 clamp(18.88px, 1.65vw, 23.2px)/1.5 "Cormorant Garamond", serif;
  letter-spacing: 0.025em;
  text-decoration: none;
  white-space: nowrap;
}

.public-site-chrome .home-brand__apostrophe { color: var(--lpc-gold); }
.public-site-chrome .home-nav { display: flex; align-items: center; justify-content: center; gap: clamp(22px, 2.8vw, 44px); }

.public-site-chrome .home-nav a,
.public-site-chrome .header-signout {
  border: 0;
  background: transparent;
  color: var(--header-foreground);
  cursor: pointer;
  font: 200 13.44px/1.5 "Sarabun", sans-serif;
  letter-spacing: 0.035em;
  text-decoration: none;
  white-space: nowrap;
}

.public-site-chrome .header-signin {
  border: 0;
  background: transparent;
  color: var(--header-foreground);
  cursor: pointer;
  font: 200 15.04px/1.5 "Sarabun", sans-serif;
  letter-spacing: 0.035em;
  text-decoration: none;
  white-space: nowrap;
}

.public-site-chrome .home-nav a { min-height: 40px; display: inline-flex; position: relative; align-items: center; padding: 8px 0; }
.public-site-chrome .home-nav a::after { position: absolute; right: 0; bottom: 3px; left: 0; height: 1px; background: currentColor; content: ""; transform: scaleX(0); transform-origin: right; transition: transform 200ms var(--ease-out); }
.public-site-chrome .home-nav a:hover::after,
.public-site-chrome .home-nav a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.public-site-chrome .home-header :where(a, button):focus-visible,
.public-site-chrome .home-footer :where(a, button, summary):focus-visible {
  border-radius: 4px;
  outline: 2px solid var(--lpc-focus);
  outline-offset: 3px;
}
.public-site-chrome .home-header__actions { display: flex; align-items: center; justify-content: flex-end; gap: 18px; }
.public-site-chrome .home-header .button {
  min-height: 40px;
  white-space: nowrap;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 9px 18px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: var(--lpc-ink);
  color: #fff;
  font: 200 14.4px/1.5 "Sarabun", sans-serif;
  letter-spacing: 0.04em;
  text-decoration: none;
}

.public-site-chrome .mobile-nav-toggle { width:44px; height:44px; display:none; align-items:center; justify-content:center; flex-direction:column; gap:6px; padding:0; border:0; background:transparent; color:var(--header-foreground); cursor:pointer; }
.public-site-chrome .mobile-nav-toggle span { width:20px; height:1px; display:block; background:currentColor; transform-origin:center; transition:transform 220ms var(--ease-out),width 220ms var(--ease-out); }
.public-site-chrome .mobile-nav-toggle span:last-child { width:14px; margin-left:6px; }
.public-site-chrome .home-header.is-open .mobile-nav-toggle span:first-child { width:20px; transform:translateY(3.5px) rotate(45deg); }
.public-site-chrome .home-header.is-open .mobile-nav-toggle span:last-child { width:20px; margin-left:0; transform:translateY(-3.5px) rotate(-45deg); }
.public-site-chrome .mobile-nav { height: 0; overflow: hidden; visibility: hidden; }

.public-site-chrome > .hero-banner,
.public-site-chrome > .utility-hero,
.public-site-chrome .browse-page-shell > .hero-banner { margin-top: var(--header-height); }

.public-site-chrome .home-footer { display: block; margin: 0 0 -1px; padding: 0 var(--page-gutter); border: 0; border-bottom: 2px solid #07131f; background: #07131f; color: rgba(248, 246, 239, 0.72); box-shadow: 0 -14px 30px -18px rgba(7, 19, 31, 0.32); font: 200 16px/1.5 "Sarabun", sans-serif; text-align: left; }
.public-site-chrome .home-footer__inner { max-width: var(--content-max); display: grid; margin: auto; grid-template-columns: minmax(360px, 1fr) minmax(0, 1.9fr); column-gap: clamp(64px, 7vw, 112px); }
.public-site-chrome .home-footer__statement { align-self: start; margin: 0; padding: 58px 0 70px; color: #fff; font: 200 clamp(2.4rem, 3.5vw, 3.9rem)/0.9 "Sarabun", sans-serif; letter-spacing: -0.05em; text-transform: uppercase; }
.public-site-chrome .home-footer__statement span { display: block; }
.public-site-chrome .home-footer__directory { display: grid; padding: 62px 0 70px; grid-template-columns: repeat(4, 1fr); gap: clamp(24px, 3vw, 52px); }
.public-site-chrome .home-footer details { min-width: 0; }
.public-site-chrome .home-footer summary { color: #a99a77; cursor: default; font: 600 11.2px/1.5 "Sarabun", sans-serif; letter-spacing: 0.09em; list-style: none; text-transform: uppercase; }
.public-site-chrome .home-footer summary::-webkit-details-marker { display: none; }
.public-site-chrome .home-footer__links { display: flex; align-items: flex-start; flex-direction: column; gap: 12px; margin-top: 18px; }
.public-site-chrome .home-footer a { color: rgba(248, 246, 239, 0.84); font: 200 12.16px/1.4 "Sarabun", sans-serif; text-decoration: none; }
.public-site-chrome .home-footer a:hover,
.public-site-chrome .home-footer a:focus-visible { color: #fff; text-decoration: underline; }
.public-site-chrome .home-footer__bottom { display: grid; align-items: center; padding: 22px 0 28px; border-top: 1px solid rgba(248, 246, 239, 0.2); grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr) auto; gap: clamp(18px, 2.5vw, 38px); }
.public-site-chrome .home-footer__identity { min-width: 0; display: grid; gap: 4px; }
.public-site-chrome .home-footer a.home-footer__brand { color: #fff; font: 300 clamp(18.88px, 1.65vw, 23.2px)/1.5 "Cormorant Garamond", serif; letter-spacing: 0.025em; text-decoration: none; white-space: nowrap; }
.public-site-chrome .home-footer a.home-footer__brand .home-brand__apostrophe { color: var(--lpc-gold); }
.public-site-chrome .home-footer__identity > p { margin: 0; color: rgba(248, 246, 239, 0.66); font: 200 9.5px/1.5 "Sarabun", sans-serif; }
.public-site-chrome .home-footer .accessibility-toggle { min-height: 44px; display: inline-flex; align-items: center; gap: 8px; padding: 8px 2px; border: 0; border-radius: 0; background: transparent; color: rgba(248, 246, 239, 0.72); cursor: pointer; font: 200 12px/1.5 "Sarabun", sans-serif; }
.public-site-chrome .home-footer .accessibility-toggle:hover,
.public-site-chrome .home-footer .accessibility-toggle:focus-visible { background: transparent; color: #fff; text-decoration: underline; }
.public-site-chrome .home-footer .accessibility-toggle svg { width: 16px; height: 16px; fill: currentColor; }

@media (max-width: 1100px) {
  .public-site-chrome .home-header__inner { grid-template-columns: 1fr auto; }
  .public-site-chrome .home-nav--desktop,
  .public-site-chrome .home-header__actions > .header-signin,
  .public-site-chrome .home-header__actions > .header-signout,
  .public-site-chrome .home-header__actions > .button { display: none; }
  .public-site-chrome .mobile-nav-toggle { display: flex; }
  .public-site-chrome .mobile-nav { max-height:min(350px,calc(100dvh - var(--header-height))); border-bottom:1px solid rgba(26,34,48,.12); background:#fcfbf8; box-shadow:0 22px 48px rgba(13,23,35,.1); color:var(--lpc-ink); opacity:0; transform:translateY(-12px); transition:height 280ms var(--ease-out),opacity 200ms ease,transform 280ms var(--ease-out),visibility 0s linear 280ms; }
  .public-site-chrome .home-header.is-open .mobile-nav { overflow-y:auto; overscroll-behavior:contain; height:min(350px,calc(100dvh - var(--header-height))); padding:12px var(--page-gutter) 22px; opacity:1; transform:translateY(0); visibility:visible; transition:height 280ms var(--ease-out),opacity 200ms ease,transform 280ms var(--ease-out); }
  .public-site-chrome .mobile-nav nav { display:grid; }
  .public-site-chrome .mobile-nav nav a { min-height:58px; display:flex; align-items:center; padding:13px 0; border-bottom:1px solid var(--lpc-line); color:var(--lpc-ink); font:300 1rem/1.25 "Sarabun",sans-serif; letter-spacing:.01em; text-decoration:none; }
  .public-site-chrome .mobile-nav__actions { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:20px; }
  .public-site-chrome .mobile-nav__actions > a:not(.button),
  .public-site-chrome .mobile-nav__actions > button { min-height:44px; display:inline-flex; align-items:center; border:0; background:transparent; color:var(--lpc-ink); font:300 .84rem/1.2 "Sarabun",sans-serif; text-decoration:none; }

  .public-site-chrome .mobile-nav__actions > .button { min-height:44px; font-size: 0.95rem; }
}

@media (max-width: 900px) {
  .public-site-chrome .home-footer { padding-bottom: 18px; }
  .public-site-chrome .home-footer__inner { display: block; }
  .public-site-chrome .home-footer__statement { padding: 44px 0 30px; font-size: clamp(2.5rem, 12vw, 3.5rem); }
  .public-site-chrome .home-footer__directory { display: block; padding: 0 0 28px; }
  .public-site-chrome .home-footer details { border-bottom: 1px solid rgba(248, 246, 239, 0.18); }
  .public-site-chrome .home-footer summary { min-height: 44px; position: relative; padding: 14px 22px 14px 0; cursor: pointer; }
  .public-site-chrome .home-footer summary::after { position: absolute; top: 50%; right: 2px; content: "+"; font-size: 0.95rem; font-weight: 300; transform: translateY(-50%); }
  .public-site-chrome .home-footer details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
  .public-site-chrome .home-footer__links { display: none; margin: 0; padding: 0 14px 15px; gap: 10px; }
  .public-site-chrome .home-footer details[open] .home-footer__links { display: flex; }
  .public-site-chrome .home-footer__bottom { display:grid; align-items:center; padding:24px 0 0; grid-template-columns:minmax(0,1fr) auto; gap:14px 18px; }
  .public-site-chrome .home-footer__identity { grid-column:1; grid-row:1; }
  .public-site-chrome .home-footer .accessibility-toggle { grid-column:2; grid-row:1; justify-self:end; white-space:nowrap; }
  .public-site-chrome .home-footer__links a { min-height:44px; display:inline-flex; align-items:center; }
}

.public-site-chrome .home-header [hidden] { display: none; }

@media (prefers-reduced-motion: reduce) {
  .public-site-chrome > .skip-link,
  .public-site-chrome .home-nav a::after,
  .public-site-chrome .mobile-nav-toggle span,
  .public-site-chrome .mobile-nav {
    transition: none;
  }
}

@media (max-width: 300px) {
  .public-site-chrome .home-header__inner { padding-inline: 12px; gap: 8px; grid-template-columns: minmax(0, 1fr) auto; }
  .public-site-chrome .home-brand { font-size: 14px; }
  .public-site-chrome .home-header__actions { gap: 0; }
  .public-site-chrome .mobile-nav__actions { flex-direction: column; align-items: stretch; }
  .public-site-chrome .home-footer__bottom { grid-template-columns: minmax(0, 1fr); }
  .public-site-chrome .home-footer .accessibility-toggle { grid-column: 1; grid-row: 3; justify-self: start; }
}
/* Long footer words must fit even in very narrow windows. */
.public-site-chrome .home-footer__statement { overflow-wrap: anywhere; }
.public-site-chrome .home-footer .accessibility-toggle { font-size: calc(12px + 2pt); }
.public-site-chrome .home-header :where(a, button):focus-visible { outline-color: #385f9e; }
.public-site-chrome .home-footer :where(a, button, summary):focus-visible { outline-color: #a8c8ff; }
