:root{
  --paper:#F6F8F8;
  --mist:#E5EDED;
  --ink:#152423;
  --teal:#127C74;
  --slate:#79908E;
  --teal-deep:#0E635D;
  --line:rgba(21,36,35,.14);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Libre Franklin',sans-serif;
  font-weight:400;
  font-size:16px;
  line-height:1.7;
}
@media (min-width:760px){
  body{font-size:17px; line-height:1.72;}
}
img{max-width:100%; height:auto; display:block;}
a{color:var(--teal);}
a:hover,a:focus{color:var(--teal-deep);}

h1,h2,h3,h4{
  font-family:'Libre Baskerville',serif;
  font-weight:400;
  margin:0 0 18px;
  color:var(--ink);
}
h1{
  font-size:clamp(2.3rem,5vw,3.5rem);
  line-height:1.14;
  letter-spacing:-.01em;
}
h2{
  font-size:clamp(1.7rem,3vw,2.3rem);
  line-height:1.2;
}
h3{
  font-family:'Libre Baskerville',serif;
  font-weight:700;
  font-size:1.12rem;
  line-height:1.35;
}
h4{
  font-size:1.05rem;
  line-height:1.4;
}
p{margin:0 0 1.05em;}
p:last-child{margin-bottom:0;}

.centre-column{
  max-width:1080px;
  margin:0 auto;
  padding:0 24px;
}
.centre-column--tight{
  max-width:660px;
  text-align:left;
}
.sheet{
  padding:clamp(72px,9vw,132px) 0;
}
.sheet--tinted{background:var(--mist);}
.sheet h1,
.sheet h2,
.sheet .lead,
.sheet .label-small,
.sheet .fine,
.opening h1,
.opening .lead,
.opening .label-small{text-align:center;}

.label-small{
  display:block;
  font-family:'Libre Franklin',sans-serif;
  font-weight:600;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.16em;
  color:var(--slate);
  margin:0 0 14px;
}
.lead{
  font-family:'Libre Franklin',sans-serif;
  font-weight:300;
  font-size:clamp(1.08rem,1.6vw,1.26rem);
  line-height:1.6;
  color:var(--ink);
  margin:0 auto 28px;
  max-width:660px;
}
.fine{
  font-family:'Libre Franklin',sans-serif;
  font-weight:400;
  font-size:.82rem;
  line-height:1.6;
  color:var(--slate);
}

/* Header */
.masthead{
  padding:28px 0 0;
  border-bottom:1px solid var(--line);
}
.masthead__brand{
  display:block;
  text-align:center;
  font-family:'Libre Baskerville',serif;
  font-size:1.18rem;
  color:var(--ink);
  text-decoration:none;
  letter-spacing:-.01em;
  margin-bottom:14px;
}
.masthead__brand:hover,.masthead__brand:focus{color:var(--teal);}
.masthead__nav{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px 22px;
  padding-bottom:18px;
}
.masthead__nav a{
  font-family:'Libre Franklin',sans-serif;
  font-size:.88rem;
  font-weight:500;
  color:var(--ink);
  text-decoration:none;
  letter-spacing:.02em;
  padding-bottom:3px;
  border-bottom:1px solid transparent;
}
.masthead__nav a:hover,
.masthead__nav a:focus{color:var(--teal);}
.masthead__nav a.is-current{
  color:var(--teal);
  border-bottom-color:var(--teal);
}

/* Opening */
.opening{
  text-align:center;
  padding:clamp(72px,9vw,132px) 0;
}
.opening__meta{
  margin-top:28px;
}

/* Pairing */
.pairing{
  display:grid;
  grid-template-columns:0.85fr 1.15fr;
  gap:28px 44px;
  max-width:900px;
  margin:0 auto;
  text-align:left;
}
.pairing__term{
  font-family:'Libre Baskerville',serif;
  font-size:1.02rem;
}
.pairing__detail{color:var(--ink);}
.pairing + .pairing{
  margin-top:26px;
  padding-top:26px;
  border-top:1px solid var(--line);
}
@media (max-width:760px){
  .pairing{grid-template-columns:1fr; gap:8px;}
}

/* Cards */
.card-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:22px;
  max-width:1080px;
  margin:36px auto 0;
}
.card{
  background:var(--mist);
  padding:28px 24px;
  border:1px solid var(--line);
}
.sheet--tinted .card{background:var(--paper);}
.card__name{
  font-family:'Libre Baskerville',serif;
  font-size:1.2rem;
  margin:0 0 8px;
}
.card__span{
  display:block;
  font-size:.82rem;
  color:var(--slate);
  letter-spacing:.04em;
  margin-bottom:14px;
}
.card__text{font-size:.98rem;}
@media (min-width:640px){
  .card-grid{grid-template-columns:1fr 1fr;}
}
@media (min-width:980px){
  .card-grid{grid-template-columns:1fr 1fr 1fr;}
}

/* Steps */
.step-list{
  list-style:none;
  margin:36px auto 0;
  padding:0;
  max-width:660px;
  text-align:left;
}
.step-list li{
  padding:22px 0;
  border-top:1px solid var(--line);
}
.step-list li:last-child{border-bottom:1px solid var(--line);}
.step-list__head{
  font-family:'Libre Baskerville',serif;
  font-weight:700;
  font-size:1.12rem;
  display:block;
  margin-bottom:8px;
}

/* Metrics */
.metric-list{
  display:grid;
  grid-template-columns:1fr;
  gap:28px 32px;
  max-width:900px;
  margin:40px auto 0;
  text-align:center;
}
.metric__value{
  font-family:'Libre Baskerville',serif;
  font-size:clamp(1.8rem,3vw,2.4rem);
  line-height:1.1;
  display:block;
  margin-bottom:8px;
}
.metric__name{
  font-weight:600;
  font-size:.92rem;
  display:block;
  margin-bottom:6px;
}
.metric__note{
  font-size:.82rem;
  color:var(--slate);
  line-height:1.55;
}
@media (min-width:640px){
  .metric-list{grid-template-columns:1fr 1fr;}
}
@media (min-width:980px){
  .metric-list{grid-template-columns:1fr 1fr 1fr;}
}

/* Stages */
.stage-run{
  max-width:660px;
  margin:36px auto 0;
  text-align:left;
}
.stage{
  padding:24px 0;
  border-top:1px solid var(--line);
}
.stage:last-child{border-bottom:1px solid var(--line);}
.stage__title{
  font-family:'Libre Baskerville',serif;
  font-weight:700;
  font-size:1.12rem;
  margin:0 0 10px;
}

/* FAQ */
.ask-list{
  max-width:660px;
  margin:36px auto 0;
  text-align:left;
}
.ask{
  padding:26px 0;
  border-top:1px solid var(--line);
}
.ask:last-child{border-bottom:1px solid var(--line);}
.ask__q{
  font-family:'Libre Baskerville',serif;
  font-weight:700;
  font-size:1.12rem;
  margin:0 0 12px;
}
.ask__a{color:var(--ink);}

/* Journal */
.note-list{
  max-width:660px;
  margin:0 auto;
  text-align:left;
}
.note{
  padding:clamp(48px,6vw,80px) 0;
  border-top:1px solid var(--line);
}
.note:first-child{border-top:0; padding-top:0;}
.note__date{
  display:block;
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--slate);
  margin-bottom:10px;
}
.note__title{
  font-family:'Libre Baskerville',serif;
  font-weight:400;
  font-size:clamp(1.4rem,2.4vw,1.85rem);
  line-height:1.25;
  margin:0 0 12px;
}
.note__dek{
  font-weight:300;
  font-size:1.08rem;
  line-height:1.6;
  margin-bottom:22px;
}
.note__body p{margin-bottom:1.05em;}

/* Figures */
.figure{
  margin:36px auto 0;
  max-width:900px;
}
.figure img{
  width:100%;
  object-fit:cover;
  max-height:520px;
}
.figure figcaption{
  font-size:.82rem;
  color:var(--slate);
  line-height:1.55;
  text-align:center;
  margin-top:12px;
}

/* Prices */
.price-table{
  max-width:660px;
  margin:36px auto 0;
  border-top:1px solid var(--line);
}
.price-row{
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:baseline;
  padding:18px 0;
  border-bottom:1px solid var(--line);
  text-align:left;
}
.price-row__item{flex:1;}
.price-row__fee{
  font-family:'Libre Baskerville',serif;
  white-space:nowrap;
}

/* Buttons */
.cta-pair{
  display:flex;
  gap:14px;
  justify-content:center;
  flex-wrap:wrap;
}
.btn-solid{
  background:var(--teal);
  color:#FFFFFF;
  border:1px solid var(--teal);
  padding:13px 26px;
  border-radius:2px;
  font:500 .92rem/1 'Libre Franklin',sans-serif;
  letter-spacing:.04em;
  text-decoration:none;
  display:inline-block;
  cursor:pointer;
}
.btn-solid:hover,.btn-solid:focus{
  background:var(--teal-deep);
  border-color:var(--teal-deep);
  color:#FFFFFF;
}
.btn-outline{
  background:transparent;
  color:var(--ink);
  border:1px solid var(--ink);
  padding:13px 26px;
  border-radius:2px;
  font:500 .92rem/1 'Libre Franklin',sans-serif;
  letter-spacing:.04em;
  text-decoration:none;
  display:inline-block;
  cursor:pointer;
}
.btn-outline:hover,.btn-outline:focus{
  background:var(--mist);
  color:var(--ink);
}

/* Contact form */
.enquiry-form{
  max-width:660px;
  margin:36px auto 0;
  text-align:left;
}
.field{margin-bottom:20px;}
.field label{
  display:block;
  font-size:.82rem;
  font-weight:600;
  letter-spacing:.04em;
  margin-bottom:8px;
}
.field input,
.field select,
.field textarea{
  width:100%;
  font:400 1rem/1.5 'Libre Franklin',sans-serif;
  color:var(--ink);
  background:#fff;
  border:1px solid var(--line);
  border-radius:2px;
  padding:12px 14px;
}
.field input[type="checkbox"]{
  width:auto;
  margin-right:8px;
  padding:0;
}
.field--check label{
  font-weight:400;
  font-size:.92rem;
  letter-spacing:0;
  line-height:1.55;
}
.field textarea{min-height:160px; resize:vertical;}
.field input:focus,
.field select:focus,
.field textarea:focus{
  outline:2px solid var(--teal);
  outline-offset:1px;
}
.form-note{
  font-size:.82rem;
  color:var(--slate);
  margin:8px 0 0;
}
.alert-ok,
.alert-bad{
  max-width:660px;
  margin:0 auto 22px;
  padding:16px 18px;
  text-align:left;
  border:1px solid var(--line);
}
.alert-ok{background:#fff; color:var(--ink);}
.alert-bad{background:var(--mist); color:var(--ink);}
.hp-field{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  overflow:hidden;
}
.map-frame{
  max-width:900px;
  margin:36px auto 0;
  border:1px solid var(--line);
}
.map-frame iframe{
  display:block;
  width:100%;
  height:380px;
  border:0;
}

/* Footer */
.foot-line{
  border-top:1px solid var(--line);
  padding:28px 0 40px;
}
.foot-line p{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:6px 8px;
  text-align:center;
  font-size:.82rem;
  color:var(--slate);
  line-height:1.7;
}
.foot-line a{
  color:var(--ink);
  text-decoration:underline;
}
.foot-line a:hover,.foot-line a:focus{color:var(--teal);}
.foot-sep{color:var(--slate);}

/* Cookie bar */
.cookie-bar{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:40;
  background:var(--mist);
  border-top:1px solid var(--line);
  padding:16px 24px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:14px 22px;
}
.cookie-bar__text{
  flex:1 1 280px;
  margin:0;
  font-size:.84rem;
  line-height:1.55;
  color:var(--ink);
}
.cookie-bar__buttons{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
@media (max-width:640px){
  .cookie-bar{justify-content:center; text-align:center;}
  .cookie-bar__buttons{justify-content:center; width:100%;}
}

/* Motion */
.lift-in{
  opacity:1;
  transform:none;
  transition:opacity .5s ease, transform .5s ease;
}
html.js .lift-in:not(.lift-in--shown){
  opacity:0;
  transform:translateY(14px);
}
.lift-in--shown{
  opacity:1;
  transform:none;
}
.no-js .lift-in{
  opacity:1 !important;
  transform:none !important;
}
@media (prefers-reduced-motion: reduce){
  .lift-in{
    opacity:1 !important;
    transform:none !important;
    transition:none;
  }
}

blockquote{
  margin:28px auto;
  max-width:660px;
  font-family:'Libre Baskerville',serif;
  font-style:italic;
  font-size:1.12rem;
  line-height:1.55;
  text-align:center;
  color:var(--ink);
}
.disclaimer{
  max-width:660px;
  margin:0 auto;
  text-align:left;
}
.centre-column .centre-column--tight{
  padding-left:0;
  padding-right:0;
  margin-left:auto;
  margin-right:auto;
}
.fine--after{
  margin-top:28px;
  text-align:center;
}
.cta-pair--after{margin-top:36px;}
.follow-figure{margin-top:40px;}
body{padding-bottom:88px;}
