:root{
  --ui-radius-sm:10px;
  --ui-radius-md:14px;
  --ui-shadow-sm:0 1px 2px rgba(0,0,0,.04), 0 6px 18px rgba(0,0,0,.04);
  --ui-shadow-md:0 2px 6px rgba(0,0,0,.05), 0 12px 28px rgba(0,0,0,.06);
}

body{
  font-family:"Montserrat","Segoe UI",Roboto,Arial,sans-serif;
  letter-spacing:.01em;
}
.content-narrow{
  max-width:1180px;
  margin:0 auto;
  padding:0 20px;
}

.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(247,244,239,.96);
  border-bottom:1px solid rgba(34,34,34,.08);
  backdrop-filter:saturate(140%) blur(7px);
}

.site-header .container.nav{
  padding-top:14px;
  padding-bottom:14px;
}

.site-header nav a{
  color:#2b5144;
  font-weight:500;
}

.site-header .brand{
  display:flex;
  align-items:center;
}
.site-header .brand-link{
  display:flex;
  align-items:center;
  gap:8px;
}
.site-header .brand-mark{
  display:block;
}
.site-header .brand-wordmark{
  font-family:"Superclarendon","Iowan Old Style","Palatino Linotype",serif;
  font-size:1.95rem;
  font-weight:600;
  line-height:1;
  color:#133f62;
  margin-left:2px;
}
.site-header .site-nav{
  align-items:center;
}
.site-header nav a.cta{
  border-radius:12px;
  padding:12px 18px;
  box-shadow:var(--ui-shadow-sm);
  color:#fff !important;
  background:#2E5E4E;
  border:1px solid #2E5E4E;
  text-decoration:none;
}
.site-header nav a.cta:hover{
  color:#fff !important;
  background:#274e40;
  border-color:#274e40;
  text-decoration:none;
}

.container{
  max-width:1180px;
}

h1,h2,h3{
  letter-spacing:.01em;
  line-height:1.18;
}

h1{font-size:clamp(2rem,2.4vw,2.8rem)}
h2{font-size:clamp(1.45rem,1.9vw,2rem)}

.card,.booking-panel,.tile{
  border-radius:var(--ui-radius-md);
  box-shadow:var(--ui-shadow-sm);
}

input[type="text"],input[type="email"],input[type="date"],input[type="number"],select,textarea{
  border-radius:var(--ui-radius-sm);
  border-color:#ddd6cd;
}

input[type="text"]:focus,input[type="email"]:focus,input[type="date"]:focus,input[type="number"]:focus,select:focus,textarea:focus{
  border-color:#2E5E4E;
  box-shadow:0 0 0 3px rgba(46,94,78,.12);
  outline:none;
}

.cta,button.cta,.btn,.btn-primary{
  border-radius:12px;
}

.booking-steps{
  row-gap:10px;
}

.booking-step{
  padding:8px 14px;
  font-weight:500;
}

.booking-step.is-current{
  box-shadow:var(--ui-shadow-sm);
}

@media (max-width:980px){
  .site-header .container.nav{
    gap:12px;
    align-items:flex-start !important;
  }
  .site-header nav{
    width:100%;
    display:flex !important;
    flex-wrap:wrap !important;
    row-gap:10px;
    column-gap:14px !important;
    padding-bottom:2px;
  }
}

@media (min-width:700px) and (max-width:1100px){
  .site-header .container.nav{
    padding-top:12px;
    padding-bottom:10px;
  }
  .site-header .site-nav a{
    font-size:.95rem;
    line-height:1.2;
  }
  .site-header .site-nav a.cta{
    margin-left:auto;
  }
}

@media (max-width:640px){
  .container{
    padding-left:14px;
    padding-right:14px;
  }
  .site-header .brand-wordmark{
    font-size:1.45rem !important;
  }
  .booking-steps{
    overflow-x:auto;
    white-space:nowrap;
    flex-wrap:nowrap;
    padding-bottom:6px;
  }
  .booking-step{
    flex:0 0 auto;
  }
}
