:root{
  --paper:#F8F3EA;
  --ink:#1A1612;
  --link:#3D4F66;
  --rule:rgba(26,22,18,0.16);
  --soft:rgba(26,22,18,0.62);
  --measure:34rem;
}

*{box-sizing:border-box;}

html{-webkit-text-size-adjust:100%;}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Literata",Georgia,serif;
  font-size:1.0625rem;
  line-height:1.78;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
}

.wrap{
  width:100%;
  max-width:var(--measure);
  margin:0 auto;
  padding:0 1.35rem;
}

a{color:var(--link);text-decoration:underline;text-underline-offset:0.18em;text-decoration-thickness:1px;}
a:hover{text-decoration-thickness:2px;}

.skip{
  position:absolute;left:-9999px;top:0;
  background:var(--ink);color:var(--paper);
  padding:.6rem 1rem;font-family:"Inter",sans-serif;font-size:.85rem;
  text-decoration:none;z-index:20;
}
.skip:focus{left:0;}

/* ---------- header ---------- */
.site-head{
  border-bottom:1px solid var(--rule);
  padding:1.15rem 0;
}
.head-inner{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem 1.2rem;
  align-items:baseline;
  justify-content:space-between;
}
.wordmark{
  font-family:"Inter",sans-serif;
  font-weight:600;
  font-size:.95rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink);
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:.5rem;
}
.wordmark-mark{display:inline-flex;color:var(--ink);transform:translateY(2px);}
.wordmark:hover{color:var(--link);}

.site-nav{
  display:flex;
  gap:1.1rem;
  font-family:"Inter",sans-serif;
  font-size:.8rem;
  letter-spacing:.06em;
}
.site-nav a{color:var(--ink);text-decoration:none;padding-bottom:2px;border-bottom:1px solid transparent;}
.site-nav a:hover{color:var(--link);border-bottom-color:var(--link);}
.site-nav a.is-current{border-bottom-color:var(--ink);}

/* ---------- essay ---------- */
.essay{padding:3.2rem 1.35rem 1rem;}

.kicker{
  font-family:"Inter",sans-serif;
  font-size:.72rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--soft);
  margin:0 0 1.1rem;
}

h1{
  font-family:"Literata",Georgia,serif;
  font-weight:600;
  font-size:clamp(1.75rem,5.6vw,2.6rem);
  line-height:1.18;
  letter-spacing:-0.012em;
  margin:0 0 1rem;
  text-wrap:balance;
}

.byline{
  font-family:"Inter",sans-serif;
  font-size:.8rem;
  color:var(--soft);
  letter-spacing:.02em;
  margin:0 0 2.1rem;
  padding-bottom:1.5rem;
  border-bottom:1px solid var(--rule);
}
.byline .sep{opacity:.5;padding:0 .18rem;}

.lede{
  font-size:1.18rem;
  line-height:1.7;
  margin:0 0 2.6rem;
}
.lede::after{content:"";display:block;clear:both;}

.dropcap{
  float:left;
  font-family:"Literata",Georgia,serif;
  font-weight:600;
  font-size:4.1em;
  line-height:.76;
  margin:0.07em 0.09em 0 0;
  color:var(--ink);
}

.chapter{margin:0 0 2.8rem;}

.chapter-label{
  font-family:"Inter",sans-serif;
  font-size:.68rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--soft);
  margin:0 0 .45rem;
}

h2{
  font-family:"Literata",Georgia,serif;
  font-weight:600;
  font-size:clamp(1.22rem,3.4vw,1.5rem);
  line-height:1.3;
  margin:0 0 .85rem;
  letter-spacing:-0.006em;
}

p{margin:0 0 1.15rem;}

/* ---------- pull quote / stat ---------- */
.pull{
  margin:2.9rem 0 3rem;
  padding:1.4rem 0 1.4rem 1.3rem;
  border-top:1px solid var(--ink);
  border-bottom:1px solid var(--ink);
  border-left:3px solid var(--ink);
}
.pull-stat{
  font-size:1.22rem;
  line-height:1.48;
  font-weight:600;
  margin:0 0 .6rem;
}
.pull-note{
  font-family:"Inter",sans-serif;
  font-size:.8rem;
  line-height:1.6;
  color:var(--soft);
  margin:0;
}

/* ---------- rates list ---------- */
.rates{
  margin:1.4rem 0 1.3rem;
  padding:0;
  border-top:1px solid var(--rule);
}
.rates > div{
  display:flex;
  flex-wrap:wrap;
  gap:.2rem .9rem;
  justify-content:space-between;
  align-items:baseline;
  padding:.55rem 0;
  border-bottom:1px solid var(--rule);
}
.rates dt{
  font-family:"Inter",sans-serif;
  font-size:.86rem;
  letter-spacing:.01em;
  margin:0;
  flex:1 1 60%;
}
.rates dd{
  margin:0;
  font-size:.95rem;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}

.small-note{
  font-family:"Inter",sans-serif;
  font-size:.78rem;
  line-height:1.65;
  color:var(--soft);
}

/* ---------- form ---------- */
.booking{margin:1.6rem 0 0;}
.field{margin:0 0 1.1rem;display:block;}
.field label{
  display:block;
  font-family:"Inter",sans-serif;
  font-size:.76rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--soft);
  margin-bottom:.35rem;
}
.field input[type="text"],
.field input[type="tel"],
.field select,
.field textarea{
  width:100%;
  font-family:"Literata",Georgia,serif;
  font-size:1rem;
  color:var(--ink);
  background:transparent;
  border:1px solid var(--rule);
  border-radius:0;
  padding:.6rem .7rem;
  line-height:1.5;
}
.field textarea{resize:vertical;}
.field input:focus,
.field select:focus,
.field textarea:focus{outline:2px solid var(--link);outline-offset:1px;border-color:var(--link);}
.field-check{display:flex;gap:.6rem;align-items:flex-start;}
.field-check input{margin-top:.45rem;accent-color:var(--link);flex:0 0 auto;}
.field-check label{
  text-transform:none;
  letter-spacing:0;
  font-size:.84rem;
  color:var(--soft);
  margin:0;
  line-height:1.6;
}
.booking button{
  font-family:"Inter",sans-serif;
  font-size:.84rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  background:var(--ink);
  color:var(--paper);
  border:1px solid var(--ink);
  padding:.75rem 1.4rem;
  cursor:pointer;
}
.booking button:hover{background:transparent;color:var(--ink);}
.form-status{
  font-family:"Inter",sans-serif;
  font-size:.82rem;
  margin:0;
  min-height:1.4em;
  color:var(--link);
}
.form-status.is-error{color:var(--ink);}
.field.has-error input,
.field.has-error select{border-color:var(--ink);border-width:2px;}

/* ---------- closing ---------- */
.closing{
  margin:3.2rem 0 1rem;
  padding-top:1.6rem;
  border-top:1px solid var(--rule);
}
.cta-line{margin:1.2rem 0 0;}
.cta-link{
  font-family:"Inter",sans-serif;
  font-size:.9rem;
  letter-spacing:.04em;
}

/* ---------- footer ---------- */
.site-foot{
  border-top:1px solid var(--rule);
  margin-top:3.4rem;
  padding:1.6rem 0 2.6rem;
}
.foot-inner{font-family:"Inter",sans-serif;font-size:.8rem;line-height:1.7;color:var(--soft);}
.foot-brand{margin:0 0 .5rem;color:var(--ink);}
.foot-nav,.foot-social{display:flex;flex-wrap:wrap;gap:.9rem;margin-bottom:.45rem;}
.foot-social a{color:var(--soft);}
.foot-fine{margin:.7rem 0 0;font-size:.74rem;}

@media (min-width:46rem){
  body{font-size:1.09rem;}
  .essay{padding-top:4.2rem;}
  :root{--measure:37rem;}
}

@media (max-width:26rem){
  .site-nav{gap:.85rem;font-size:.74rem;}
  .dropcap{font-size:3.4em;}
}
