.site-header{
  background:rgba(250,246,238,.97);
  border-bottom:1px solid #e0d7c2;
  box-shadow:0 10px 28px -28px rgba(23,53,42,.8);
  position:sticky;
  top:0;
  z-index:80;
  backdrop-filter:blur(12px);
}
.site-nav{
  align-items:center;
  display:flex;
  gap:16px;
  justify-content:space-between;
  min-height:72px;
}
.site-logo{
  align-self:center;
  display:block;
  flex:0 0 auto;
  font-size:0;
  height:62px;
  line-height:0;
  position:relative;
  text-decoration:none;
  width:72px;
  z-index:2;
}
.site-logo::before{
  background:url('piknik-logo-white.png') center/contain no-repeat;
  content:"";
  inset:3px;
  pointer-events:none;
  position:absolute;
  transition:transform .2s ease;
  z-index:2;
}
.site-logo:hover::before{transform:scale(1.035)}
.site-logo:focus-visible{border-radius:6px;outline:3px solid #c9862c;outline-offset:3px}
.site-menu{
  align-items:center;
  display:flex;
  gap:clamp(3px,.55vw,9px);
  justify-content:flex-end;
  margin-left:auto;
  min-width:0;
}
.site-menu-link{
  border-radius:999px;
  color:#22271f;
  font:700 clamp(.67rem,.75vw,.76rem)/1 'Karla',sans-serif;
  letter-spacing:.045em;
  padding:11px 6px;
  text-decoration:none;
  text-transform:uppercase;
  white-space:nowrap;
}
.site-menu-link:hover,
.site-menu-link:focus-visible,
.site-menu-link[aria-current="page"]{
  background:#f3ecdd;
  color:#a86c1d;
  outline:0;
}
.site-book-cta{
  align-items:center;
  background:#17352a;
  border:1px solid #17352a;
  border-radius:999px;
  color:#fff;
  display:inline-flex;
  flex:0 0 auto;
  font:700 .78rem/1 'Karla',sans-serif;
  justify-content:center;
  letter-spacing:.03em;
  margin-left:4px;
  min-height:42px;
  padding:0 17px;
  position:relative;
  text-decoration:none;
  white-space:nowrap;
}
.booking-pulse{
  animation:booking-sheen 4.2s ease-in-out infinite;
  background-image:linear-gradient(110deg,#17352a 0%,#17352a 35%,#c9862c 49%,#214a3a 63%,#17352a 100%);
  background-position:130% 50%;
  background-size:280% 100%;
  isolation:isolate;
  overflow:visible;
  position:relative;
}
.booking-pulse::before{
  background:linear-gradient(110deg,transparent 26%,rgba(255,240,205,.5) 48%,transparent 70%);
  border-radius:inherit;
  content:"";
  inset:0;
  opacity:0;
  pointer-events:none;
  position:absolute;
  z-index:-1;
}
.booking-pulse::after{
  animation:booking-ring 2.8s ease-out infinite;
  border:1px solid rgba(244,217,168,.72);
  border-radius:inherit;
  content:"";
  inset:-3px;
  pointer-events:none;
  position:absolute;
}
.site-book-cta:hover{background:#214a3a;color:#fff;transform:translateY(-1px)}
.site-menu-toggle{
  align-items:center;
  appearance:none;
  background:#fff;
  border:1px solid #d9cfba;
  border-radius:999px;
  color:#17352a;
  cursor:pointer;
  display:none;
  font:700 .74rem 'Karla',sans-serif;
  gap:9px;
  min-height:42px;
  padding:9px 14px;
  text-transform:uppercase;
}
.site-menu-toggle i,
.site-menu-toggle i::before,
.site-menu-toggle i::after{
  background:#17352a;
  border-radius:2px;
  content:"";
  display:block;
  height:2px;
  transition:transform .2s,top .2s,opacity .2s;
  width:18px;
}
.site-menu-toggle i{position:relative}
.site-menu-toggle i::before{left:0;position:absolute;top:-6px}
.site-menu-toggle i::after{left:0;position:absolute;top:6px}
.site-header.menu-open .site-menu-toggle i{background:transparent}
.site-header.menu-open .site-menu-toggle i::before{top:0;transform:rotate(45deg)}
.site-header.menu-open .site-menu-toggle i::after{top:0;transform:rotate(-45deg)}
.site-header.menu-open .site-logo{z-index:2}
@keyframes booking-sheen{
  0%,48%{background-position:130% 50%}
  78%,100%{background-position:-35% 50%}
}
@keyframes booking-ring{
  0%,20%{box-shadow:0 0 0 0 rgba(244,217,168,.4);opacity:.9}
  72%,100%{box-shadow:0 0 0 9px rgba(201,134,44,0);opacity:0}
}
@media(min-width:521px){
  .site-header + main > .breadcrumb:first-child{padding-top:44px}
}
@media(max-width:1080px){
  body.menu-locked{overflow:hidden}
  .site-nav{min-height:66px}
  .site-logo{height:58px;width:67px}
  .site-logo::before{inset:3px}
  .site-menu-toggle{display:flex;margin-left:auto}
  .site-menu{
    align-items:stretch;
    background:#faf6ee;
    border-bottom:1px solid #e0d7c2;
    box-shadow:0 24px 40px -26px rgba(23,53,42,.78);
    display:none;
    gap:9px;
    grid-template-columns:repeat(2,minmax(0,1fr));
    left:0;
    margin:0;
    max-height:calc(100vh - 66px);
    overflow-y:auto;
    padding:16px max(20px,calc((100vw - 1180px)/2 + 24px)) 20px;
    position:absolute;
    right:0;
    top:100%;
    z-index:3;
  }
  .site-header.menu-open .site-menu{display:grid}
  .site-menu-link{
    align-items:center;
    background:#fff;
    border:1px solid #e5dccb;
    border-radius:12px;
    display:flex;
    font-size:.82rem;
    justify-content:space-between;
    min-height:48px;
    padding:12px 15px;
  }
  .site-menu-link::after{color:#c9862c;content:"→";font-size:1rem}
  .site-book-cta{grid-column:1/-1;margin:5px 0 0;min-height:50px}
}
@media(max-width:520px){
  .site-logo{height:54px;width:62px}
  .site-logo::before{inset:2px}
  .site-menu-toggle{font-size:.69rem;padding:8px 11px}
  .site-menu{grid-template-columns:1fr;padding:13px 15px 18px}
  .site-book-cta{grid-column:auto}
}
@media(prefers-reduced-motion:reduce){
  .booking-pulse,.booking-pulse::before,.booking-pulse::after{animation:none}
}
