/* Sterling Gate-inspired kinetic navigation, adapted to Northshore Gen. */
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }

#site-header { z-index:10020; }
#site-header .header-inner { display:grid; grid-template-columns:1fr auto 1fr; }
.kg-social-header-actions { justify-self:start; }
.kg-header-actions { gap:.8rem; }
.kg-header-actions { justify-self:end; }
.site-header__brand {
  justify-self:center;
  font-family:'Playfair Display',Georgia,serif !important;
  font-weight:600;
  letter-spacing:-.025em;
}
.kg-toggle-label { appearance:none; margin-right:.45rem; padding:.4rem 0; border:0; background:transparent; color:#a89f91; cursor:pointer; font-family:'Playfair Display',serif; font-size:1rem; font-style:italic; text-decoration:none; transition:color .25s ease; }
.kg-toggle-label:hover,.kg-toggle-label:focus-visible { color:#f2eee6; }
.kg-menu-toggle { appearance:none; border:0; margin:-.8rem; padding:.8rem; color:#f2eee6; background:transparent; display:flex; align-items:center; gap:.8rem; cursor:pointer; font:600 1.05rem/1 'Manrope',sans-serif; }
.kg-toggle-copy { height:1.15em; display:flex; flex-direction:column; align-items:flex-end; overflow:hidden; line-height:1.15; }
.kg-toggle-copy > span { flex:0 0 100%; min-height:1.15em; will-change:transform; }
.kg-toggle-icon { position:relative; width:1.45rem; height:1.45rem; display:block; transition:transform .5s cubic-bezier(.65,.05,0,1); }
.kg-toggle-icon::before,.kg-toggle-icon::after { content:''; position:absolute; left:50%; top:50%; width:100%; height:1px; background:currentColor; transform:translate(-50%,-50%); }
.kg-toggle-icon::after { transform:translate(-50%,-50%) rotate(90deg); }
.kg-menu-toggle:hover .kg-toggle-icon { transform:rotate(90deg); }

.kg-menu { display:none; position:fixed; inset:0; z-index:10000; height:100dvh; contain:layout paint; }
.kg-menu__overlay { position:absolute; inset:0; width:100%; height:100%; padding:0; border:0; background:rgba(0,0,0,.62); backdrop-filter:blur(2px); cursor:pointer; }
.kg-menu__panel { position:relative; margin-left:auto; width:min(35rem,100%); height:100%; padding:calc(var(--header-height,72px) + 3.2rem) 0 2rem; overflow:hidden auto; isolation:isolate; }
.kg-menu__layers,.kg-menu__layer { position:absolute; inset:0; pointer-events:none; }
.kg-menu__layer { border-radius:1.4rem 0 0 1.4rem; }
.kg-menu__layer--gold { background:#b98a43; transform:translateX(-2.1rem); }
.kg-menu__layer--ivory { background:#e7dfd1; transform:translateX(-1rem); }
.kg-menu__layer--obsidian { background:#0c0c0b; box-shadow:-2rem 0 5rem rgba(0,0,0,.36); }
.kg-menu__ambient { position:absolute; inset:0; z-index:0; overflow:hidden; border-radius:1.4rem 0 0 1.4rem; pointer-events:none; }
.kg-menu--left .kg-menu__panel { position:absolute; left:0; right:auto; margin:0; }
.kg-menu:not(.kg-menu--left) .kg-menu__panel { position:absolute; left:auto; right:0; margin:0; }
.kg-menu--left .kg-menu__layer { border-radius:0 1.4rem 1.4rem 0; }
.kg-menu--left .kg-menu__layer--gold { transform:translateX(2.1rem); }
.kg-menu--left .kg-menu__layer--ivory { transform:translateX(1rem); }
.kg-menu--left .kg-menu__layer--obsidian { box-shadow:2rem 0 5rem rgba(0,0,0,.36); }
.kg-menu--left .kg-menu__ambient { border-radius:0 1.4rem 1.4rem 0; }
.kg-shape { position:absolute; inset:0; width:100%; height:100%; opacity:0; transition:opacity .5s ease; fill:none; stroke:rgba(189,142,73,.28); stroke-width:1.2; vector-effect:non-scaling-stroke; transform:scale(1.32) rotate(-7deg); }
.kg-shape circle { fill:rgba(189,142,73,.08); stroke:rgba(223,183,112,.28); }
.kg-shape.is-active { opacity:1; }

.kg-menu__list { position:relative; z-index:1; display:flex; flex-direction:column; justify-content:center; min-height:100%; margin:0; padding:0; list-style:none; }
.kg-menu__list > li { position:relative; overflow:hidden; }
.kg-menu__link { appearance:none; position:relative; width:100%; display:flex; padding:.78rem 2rem .92rem; border:0; background:transparent; color:#f2eee6; text-align:left; text-decoration:none; cursor:pointer; overflow:hidden; }
.kg-menu__link::before { content:''; position:absolute; inset:0; z-index:0; background:#b98a43; transform:scaleY(0); transform-origin:50% 100%; transition:transform .55s cubic-bezier(.65,.05,0,1); }
.kg-menu__link span { position:relative; z-index:1; display:block; white-space:nowrap; text-transform:none; font-family:'Playfair Display',serif; font-size:clamp(2.85rem,4.65vw,4.7rem); font-weight:600; letter-spacing:-.045em; line-height:.94; text-shadow:0 1.08em 0 #0c0c0b; transition:transform .55s cubic-bezier(.65,.05,0,1),color .2s ease; }
.kg-menu__link:hover,.kg-menu__link:focus-visible { color:#0c0c0b; outline:none; }
.kg-menu__link:hover::before,.kg-menu__link:focus-visible::before { transform:scaleY(1); }
.kg-menu__link:hover span,.kg-menu__link:focus-visible span { transform:translateY(-1.08em); transition-delay:.08s; }
.kg-menu__link:focus-visible::after { content:''; position:absolute; inset:.35rem; z-index:2; border:1px solid #f2eee6; pointer-events:none; }
.kg-menu__link--button { font:inherit; }
.kg-menu-open { overflow:hidden; }
.kg-menu-open .rivet-fab { opacity:0!important; pointer-events:none!important; }

@media (max-width:767px) {
  #site-header .header-inner { grid-template-columns:auto 1fr auto; gap:.65rem; padding-inline:1rem; }
  .site-header__brand { min-height:44px; justify-content:center; font-size:clamp(.82rem,3.6vw,1rem); letter-spacing:-.015em; }
  .kg-toggle-label { display:none; }
  .kg-menu-toggle { min-height:44px; margin:-.35rem; padding:.5rem .35rem; gap:.45rem; font-size:.88rem; }
  .kg-toggle-icon { width:1.05rem; height:1.05rem; }
  .kg-menu__panel { width:100%; padding-top:calc(64px + env(safe-area-inset-top) + 2.75rem); }
  .kg-menu__layer { border-radius:0; }
  .kg-menu__ambient { border-radius:0; }
  .kg-menu__list { justify-content:center; gap:.18rem; }
  .kg-menu__link { padding:.74rem 1.35rem .9rem; }
  .kg-menu__link span { font-size:clamp(2.75rem,12vw,4.25rem); line-height:.98; }
}

@media (max-width:359px) {
  #site-header .header-inner { gap:.35rem; padding-inline:.75rem; }
  .site-header__brand { font-size:.68rem; }
  .kg-menu-toggle { font-size:.78rem; gap:.32rem; }
  .kg-toggle-icon { width:.9rem; height:.9rem; }
  .kg-menu__link { padding-inline:1rem; }
}

@media (prefers-reduced-motion:reduce) {
  .kg-menu * { transition-duration:.01ms!important; animation-duration:.01ms!important; }
}
