:root { --site-serif:"Merriweather",Georgia,serif; --site-sans:"Open Sans",Arial,sans-serif; }
body,body.u-body { font-family:var(--site-sans); }
body h1,body h2,body h3,body h4,body h5,body h6 { font-family:var(--site-serif); }
body button,body input,body select,body textarea { font-family:var(--site-sans); }
.u-font-merriweather.u-custom-font,.u-heading-font.u-custom-font { font-family:var(--site-serif)!important; }
.u-font-montserrat.u-custom-font { font-family:"Montserrat",Arial,sans-serif!important; }
.u-font-open-sans.u-custom-font,.u-text-font.u-custom-font { font-family:var(--site-sans)!important; }
body.u-body { min-height:100vh; }
body.u-body > main,body.u-body > main.reviews-page { flex:1 0 auto; }
.site-skip-link { background:#253024; color:#fff; font:600 12px var(--site-sans); left:14px; padding:10px 14px; position:fixed; top:-60px; transition:top .18s; z-index:9999; }
.site-skip-link:focus { top:14px; }

#header.site-header { background:#fff; min-height:150px; position:sticky; top:0; transition:background-color .25s ease,box-shadow .25s ease; width:100%; z-index:1200; }
.site-header-inner { align-items:center; display:flex; flex-direction:column; justify-content:flex-start; margin:0 auto; min-height:150px; padding:15px 28px 10px; position:relative; width:min(1240px,100%); }
.site-logo { display:block; height:84px; width:224px; }
.site-logo img { height:100%; object-fit:contain; width:100%; }
.site-desktop-nav { margin-top:5px; }
.site-desktop-nav ul,.site-mobile-menu ul { list-style:none; margin:0; padding:0; }
.site-desktop-nav ul { align-items:center; display:flex; gap:30px; }
.site-nav-link { color:#222722; font-family:var(--site-serif); font-size:.78rem; font-weight:500; letter-spacing:.025em; padding:8px 0; position:relative; text-decoration:none; text-transform:uppercase; }
.site-nav-link::after { background:#4f5b43; bottom:2px; content:""; height:1px; left:0; position:absolute; transform:scaleX(0); transform-origin:right; transition:transform .25s ease; width:100%; }
.site-nav-link:hover::after,.site-nav-link:focus-visible::after,.site-nav-link.is-current::after { transform:scaleX(1); transform-origin:left; }
.site-menu-toggle,.site-menu-close,.site-menu-overlay { appearance:none; background:none; border:0; padding:0; }
.site-menu-toggle { align-items:center; cursor:pointer; display:none; height:44px; justify-content:center; position:absolute; right:18px; top:50%; transform:translateY(-50%); width:44px; }
.site-menu-toggle span { background:#252a25; display:block; height:1px; position:absolute; transition:transform .25s ease,opacity .2s ease; width:24px; }
.site-menu-toggle span:nth-child(1) { transform:translateY(-7px); }
.site-menu-toggle span:nth-child(3) { transform:translateY(7px); }
.site-menu-overlay { background:rgba(20,24,20,.48); cursor:pointer; inset:0; opacity:0; pointer-events:none; position:fixed; transition:opacity .32s ease; visibility:hidden; z-index:1201; }
.site-mobile-menu { background:#f5f3ed; bottom:0; box-shadow:-18px 0 60px rgba(18,23,18,.2); display:flex; flex-direction:column; max-width:360px; padding:24px 28px 28px; position:fixed; right:0; top:0; transform:translateX(105%); transition:transform .36s cubic-bezier(.22,.72,.23,1); width:min(88vw,360px); z-index:1202; }
.site-mobile-menu-head { align-items:center; border-bottom:1px solid rgba(37,42,37,.16); color:#6e756c; display:flex; font-size:.66rem; font-weight:700; justify-content:space-between; letter-spacing:.17em; padding-bottom:20px; }
.site-menu-close { cursor:pointer; height:44px; margin:-10px -10px -10px 0; position:relative; width:44px; }
.site-menu-close span { background:#252a25; height:1px; left:10px; position:absolute; top:21px; width:24px; }
.site-menu-close span:first-child { transform:rotate(45deg); }
.site-menu-close span:last-child { transform:rotate(-45deg); }
.site-mobile-menu nav { display:flex; flex:1; align-items:center; }
.site-mobile-menu nav ul { width:100%; }
.site-mobile-menu nav li { border-bottom:1px solid rgba(37,42,37,.11); }
.site-mobile-menu .site-nav-link { display:flex; font-family:var(--site-serif); font-size:clamp(1.25rem,5.3vw,1.55rem); font-weight:400; justify-content:space-between; letter-spacing:0; padding:14px 0; text-transform:none; }
.site-mobile-menu .site-nav-link::after { content:"→"; background:none; bottom:auto; height:auto; left:auto; opacity:.5; position:static; transform:none; width:auto; }
.site-mobile-menu .site-nav-link.is-current { color:#5d6954; }
.site-mobile-menu-foot { align-items:center; border-top:1px solid rgba(37,42,37,.16); color:#6e756c; display:flex; font-size:.64rem; justify-content:space-between; letter-spacing:.1em; padding-top:20px; text-transform:uppercase; }
.site-mobile-menu-foot a { color:inherit; text-decoration:none; }
.has-open-menu .site-menu-overlay { opacity:1; pointer-events:auto; visibility:visible; }
.has-open-menu .site-mobile-menu { transform:translateX(0); }
body.site-menu-open { overflow:hidden!important; touch-action:none; }
#header.site-header.u-sticky-fixed,.u-body.u-sticky-fixed #header.site-header,#header.site-header.is-scrolled { -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); background:rgba(255,255,255,.9)!important; box-shadow:0 8px 28px rgba(21,25,19,.12)!important; }

.site-footer { background:#404440; color:#f4f4f1; flex-shrink:0; margin-top:auto; min-height:54px; width:100%; }
.site-footer-inner { align-items:center; display:grid; font-family:var(--site-sans); font-size:.72rem; gap:20px; grid-template-columns:1fr 1fr 1fr; letter-spacing:.025em; margin:0 auto; min-height:54px; padding:8px 30px; width:min(1200px,100%); }
.site-footer-inner span:nth-child(2) { text-align:center; }
.site-footer-inner>div { display:flex; gap:16px; justify-self:end; }
.site-footer-inner a { color:#fff; font-size:.68rem; font-weight:600; letter-spacing:.08em; text-decoration:none; text-transform:uppercase; }
.site-footer-inner a:hover,.site-footer-inner a:focus-visible { color:#d9dfd3; text-decoration:underline; text-underline-offset:4px; }

@media(max-width:767px) {
  #header.site-header,.site-header-inner { min-height:88px; }
  .site-header-inner { flex-direction:row; justify-content:center; padding:7px 64px 7px 18px; }
  .site-logo { height:70px; width:150px; }
  .site-desktop-nav { display:none; }
  .site-menu-toggle { display:flex; }
  .site-footer-inner { font-size:.68rem; gap:10px; min-height:62px; padding:10px 18px; }
  .site-footer-inner a { font-size:.62rem; }
  .site-footer-inner>div { gap:12px; }
}

@media(max-width:480px) {
  .site-footer-inner { grid-template-columns:1fr auto; }
  .site-footer-inner span:nth-child(2) { display:none; }
  .site-footer-inner>div { align-items:flex-end; flex-direction:column; gap:3px; }
}

@media(prefers-reduced-motion:reduce) {
  .site-mobile-menu,.site-menu-overlay,.site-nav-link::after { transition:none!important; }
}
