/* ========== FORM PAGES ========== */
.page{padding:clamp(44px,6vw,84px) 0 clamp(60px,8vw,110px);}
.page__head{text-align:center;max-width:640px;margin:0 auto clamp(38px,5vw,58px);}
.page__head .eyebrow{justify-content:center;}
.page__head .eyebrow::after{display:none;}
.page__head .script{margin-bottom:18px;}
.page__head h1{font-size:clamp(1.9rem,4vw,2.9rem);}
.page__head p{color:var(--ink-2);margin-top:18px;font-size:16px;}
.page__back{
  display:inline-flex;align-items:center;gap:9px;font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ink-3);text-decoration:none;margin-bottom:26px;transition:color .25s;
}
.page__back:hover{color:var(--brass);}

.fset{border:0;margin:0 0 clamp(30px,4vw,44px);padding:0;}
.fset > legend{
  padding:0;margin-bottom:22px;width:100%;
  font-family:var(--serif);font-size:clamp(1.08rem,1.7vw,1.3rem);color:var(--brass);
  border-bottom:1px solid var(--rule);padding-bottom:14px;
}
.fset__hint{color:var(--ink-3);font-size:13.5px;margin:-12px 0 20px;}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px 26px;}
.field{display:flex;flex-direction:column;gap:8px;}
.field--full{grid-column:1/-1;}
.field label{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3);}
.field label .req{color:var(--brass);}
.field input[type=text],.field input[type=tel],.field input[type=email],
.field input[type=number],.field input[type=date],.field input[type=time],
.field select,.field textarea{
  font-family:var(--sans);font-size:15.5px;font-weight:400;color:var(--ink);
  background:transparent;border:0;border-bottom:1px solid var(--rule);
  padding:11px 2px;transition:border-color .3s ease;width:100%;border-radius:0;
}
.field textarea{resize:vertical;min-height:96px;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-bottom-color:var(--brass);}
/* Native pickers follow the page's colour-scheme token, so they invert with the theme. */
.field input[type=date],.field input[type=time]{min-height:44px;}
.field select{appearance:none;-webkit-appearance:none;cursor:pointer;}
.field select option{background:var(--ground-2);color:var(--ink);}
.field.is-bad input,.field.is-bad select,.field.is-bad textarea{border-bottom-color:var(--lining-text);}

.radios{display:flex;flex-wrap:wrap;gap:10px;}
.radios label{
  display:flex;align-items:center;gap:9px;cursor:pointer;
  border:1px solid var(--rule);padding:11px 16px;
  font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-2);
  transition:border-color .25s,color .25s;
}
.radios input{accent-color:var(--brass);margin:0;}
.radios label:hover{border-color:var(--brass-dim);color:var(--ink);}
.radios input:checked + span{color:var(--brass);}

.checklist{list-style:none;margin:0;padding:0;display:grid;gap:0;}
.checklist li{
  display:flex;gap:14px;align-items:flex-start;padding:13px 0;
  border-bottom:1px solid var(--rule-soft);color:var(--ink-2);font-size:15.5px;line-height:1.5;
}
.checklist svg{width:18px;height:18px;flex:none;margin-top:3px;color:var(--brass);}

.terms{display:grid;gap:16px;}
.terms p{color:var(--ink-2);font-size:15px;line-height:1.62;}
.agree{
  display:flex;gap:14px;align-items:flex-start;padding:20px;border:1px solid var(--rule);
  cursor:pointer;transition:border-color .25s;
}
.agree:hover{border-color:var(--brass-dim);}
.agree input{margin-top:3px;width:18px;height:18px;accent-color:var(--brass);flex:none;}
.agree span{font-size:15px;color:var(--ink);line-height:1.55;}
.agree.is-bad{border-color:var(--lining-text);}

.duties{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:6px;}
.duty{border:1px solid var(--rule-soft);padding:22px 20px;}
.duty svg{width:22px;height:22px;color:var(--brass);margin-bottom:14px;}
.duty p{font-size:14.5px;color:var(--ink-2);line-height:1.55;}
@media (max-width:760px){.duties{grid-template-columns:1fr;}}

.alt-route{
  margin-top:clamp(28px,4vw,40px);padding-top:22px;border-top:1px solid var(--rule-soft);
  text-align:center;font-size:14.5px;color:var(--ink-3);
}
.alt-route a{color:var(--brass);text-decoration:none;border-bottom:1px solid var(--rule);}
.alt-route a:hover{border-bottom-color:var(--brass);}
.assure{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--rule);margin-top:clamp(32px,4vw,46px);}
.assure div{padding:26px 22px;border-right:1px solid var(--rule-soft);text-align:center;}
.assure div:last-child{border-right:0;}
.assure b{display:block;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--brass);margin-bottom:10px;font-weight:500;}
.assure p{font-size:14.5px;color:var(--ink-2);line-height:1.55;}
@media (max-width:700px){
  .alt-route{
  margin-top:clamp(28px,4vw,40px);padding-top:22px;border-top:1px solid var(--rule-soft);
  text-align:center;font-size:14.5px;color:var(--ink-3);
}
.alt-route a{color:var(--brass);text-decoration:none;border-bottom:1px solid var(--rule);}
.alt-route a:hover{border-bottom-color:var(--brass);}
.assure{grid-template-columns:1fr;}
  .assure div{border-right:0;border-bottom:1px solid var(--rule-soft);}
  .assure div:last-child{border-bottom:0;}
}

.policy{margin-top:clamp(34px,4vw,48px);padding-top:26px;border-top:1px solid var(--rule);}
.policy h3{font-family:var(--sans);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3);margin-bottom:14px;font-weight:500;}
.policy p{font-size:14px;color:var(--ink-3);line-height:1.62;max-width:78ch;}
.policy p + p{margin-top:9px;}
.policy a{color:var(--brass);text-decoration:none;border-bottom:1px solid var(--rule);}
.policy a:hover{border-bottom-color:var(--brass);}

.submitrow{display:flex;flex-wrap:wrap;gap:18px;align-items:center;margin-top:clamp(30px,4vw,42px);}
.formnote{font-size:13px;color:var(--ink-3);}
.formerr{
  border-left:2px solid var(--lining-text);padding:13px 0 13px 16px;
  color:var(--ink-2);font-size:14.5px;margin-top:22px;
}
.formerr[hidden]{display:none;}
.formdone{border:1px solid var(--brass);padding:clamp(28px,4vw,40px);text-align:center;}
.formdone h2{font-size:clamp(1.4rem,2.4vw,1.9rem);color:var(--brass);margin-bottom:14px;}
.formdone p{color:var(--ink-2);font-size:15.5px;max-width:48ch;margin:0 auto;}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
@media (max-width:600px){.grid2{grid-template-columns:1fr;}}

/* ========== PROSE (privacy, and any future text page) ========== */
.prose{max-width:68ch;}
.prose__date{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);
  padding-bottom:22px;border-bottom:1px solid var(--rule);margin-bottom:8px;}
.prose h2{
  font-family:var(--serif);font-size:clamp(1.15rem,1.9vw,1.45rem);color:var(--brass);
  margin:clamp(34px,4vw,46px) 0 16px;
}
.prose h3{
  font-family:var(--sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ink-3);font-weight:500;margin:26px 0 10px;
}
.prose p{font-size:15.5px;line-height:1.7;color:var(--ink-2);margin-bottom:14px;}
.prose ul{list-style:none;padding:0;margin:0 0 14px;}
.prose li{
  font-size:15.5px;line-height:1.7;color:var(--ink-2);
  padding:11px 0 11px 22px;border-bottom:1px solid var(--rule-soft);position:relative;
}
.prose li::before{content:"";position:absolute;left:2px;top:21px;width:6px;height:1px;background:var(--brass);}
.prose li:last-child{border-bottom:0;}
.prose b{color:var(--ink);font-weight:500;}
.prose a{color:var(--brass);text-decoration:none;border-bottom:1px solid var(--rule);}
.prose a:hover{border-bottom-color:var(--brass);}

/* ========== PAYMENT (booking form) ========== */
.pay{border:1px solid var(--rule);}
.pay [hidden],.pay__due[hidden],.pay__warn[hidden]{display:none!important;}
.pay__row{
  display:flex;align-items:flex-start;justify-content:space-between;gap:24px;
  padding:16px 20px;border-bottom:1px solid var(--rule-soft);
}
.pay__row:last-child{border-bottom:0;}
.pay__label{font-size:15.5px;color:var(--ink);line-height:1.45;}
.pay__label em{font-style:normal;color:var(--ink-3);}
.pay__fig{
  font-family:var(--serif);font-size:clamp(1.3rem,2.6vw,1.7rem);line-height:1;
  color:var(--brass);white-space:nowrap;
}
.pay__note{font-size:13.5px;line-height:1.55;margin-top:9px;max-width:48ch;color:var(--ink-2);}

/* The deposit is the number that matters on the day the link is sent, so it
   gets the one filled block on the page. */
/* Grid rather than flex, so the note always drops onto its own line under
   the label and figure — at every width, with no max-width surprises. */
.pay__row--dep{
  display:grid;grid-template-columns:1fr auto;align-items:start;
  column-gap:24px;row-gap:0;background:var(--brass);border-bottom-color:rgba(0,0,0,.22);
}
.pay__row--dep .pay__note{grid-column:1/-1;max-width:58ch;}
.pay__row--dep .pay__label,.pay__row--dep .pay__fig{color:var(--ground);}
.pay__row--dep .pay__label em,.pay__row--dep .pay__note{color:var(--ground);opacity:.84;}

.pay__due,.pay__warn{display:flex;gap:15px;align-items:flex-start;margin-top:18px;}
.pay__due{padding:0 2px;}
.pay__warn{border:1px solid var(--rule-soft);padding:18px 20px;}
.pay__due svg,.pay__warn svg{width:21px;height:21px;flex:none;margin-top:1px;color:var(--brass);}
.pay__warn svg{color:var(--lining-text);}
.pay__due p,.pay__warn p{font-size:14.5px;color:var(--ink-2);line-height:1.62;}
.pay__due b,.pay__warn b{color:var(--ink);font-weight:500;}
.pay__warn p + p{margin-top:8px;}

/* Bank details for the deposit. Brass-bordered rather than hairline, because this
   is the one block on the page that asks the customer to go and do something. */
.paybank{
  border:1px solid var(--brass-dim);
  padding:20px 22px;margin-top:18px;
}
.paybank__h{
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--brass);margin:0 0 10px;
}
.paybank__lead{font-size:14.5px;line-height:1.6;color:var(--ink-2);margin:0 0 16px;}
.paybank__rows{
  display:grid;gap:1px;margin:0 0 16px;
  background:var(--rule-soft);border:1px solid var(--rule-soft);
}
.paybank__rows > div{
  display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 18px;
  padding:11px 14px;background:var(--ground);
}
.paybank__rows dt{
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);
}
.paybank__rows dd{margin:0;font-size:16px;color:var(--ink);}
/* one tap selects the whole number, so it can be pasted straight into a banking app */
.paybank__num{
  font-variant-numeric:tabular-nums;letter-spacing:.06em;
  font-size:17px;color:var(--brass);user-select:all;-webkit-user-select:all;
}
.paybank__ref{font-size:14px;line-height:1.6;color:var(--ink-2);margin:0 0 10px;}
.paybank__ref b{color:var(--ink);font-weight:500;}
.paybank__note{font-size:13.5px;line-height:1.55;color:var(--ink-3);margin:0;}

@media (max-width:420px){
  .paybank{padding:17px 16px;}
  .paybank__rows > div{flex-direction:column;align-items:flex-start;gap:3px;}
}
@media (max-width:540px){
  .pay__row{flex-direction:column;gap:6px;}
  .pay__row--dep{column-gap:16px;}
}

/* ========== BOOKING LINK BUILDER (/booking/link/) — note: .linkb is the lightbox, keep this prefix distinct ========== */
.linkb{display:grid;gap:clamp(30px,4vw,44px);}
.linkb__price{display:flex;flex-wrap:wrap;align-items:flex-end;gap:22px;}
.linkb__price .field{flex:1 1 210px;}
.linkb__input{display:flex;align-items:baseline;gap:8px;border-bottom:1px solid var(--rule);}
.linkb__input span{font-family:var(--serif);font-size:1.5rem;color:var(--brass);line-height:1;}
.linkb__input input{
  font-family:var(--serif);font-size:1.5rem;color:var(--ink);width:100%;
  background:transparent;border:0;padding:9px 0;
}
.linkb__input:focus-within{border-bottom-color:var(--brass);}
.linkb__input input:focus{outline:none;}
.linkb__link{
  font-family:var(--sans);font-size:14.5px;color:var(--ink);background:var(--ground-2);
  border:1px solid var(--rule);padding:14px 16px;width:100%;border-radius:0;
  overflow-x:auto;white-space:nowrap;
}
.linkb__link:focus{outline:none;border-color:var(--brass);}
.linkb__acts{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:16px;}
.linkb__said{font-size:13px;color:var(--brass);}
.linkb__said[hidden]{display:none;}
.linkb__legend{
  font-family:var(--serif);font-size:clamp(1.08rem,1.7vw,1.3rem);color:var(--brass);
  border-bottom:1px solid var(--rule);padding-bottom:14px;margin-bottom:22px;
}

/* ========== PRINT ========== */
@media print{
  :root{
    --ground:#fff;--ground-2:#fff;--ground-3:#fff;
    --ink:#000;--ink-2:#222;--ink-3:#444;
    --rule:#bbb;--rule-soft:#ddd;--brass:#6A5120;--brass-dim:#999;
  }
  .nav,.themebtn,.page__back,.submitrow,.formerr,.hp,.dm,.assure,.alt-route,.foot,.script{display:none!important;}
  body{background:#fff;color:#000;font-size:11pt;}
  .page{padding:0;}
  .page__head{text-align:left;margin-bottom:18pt;}
  .page__head h1{font-size:20pt;}
  .fset{break-inside:avoid;margin-bottom:14pt;}
  .fset > legend{font-size:12pt;padding-bottom:5pt;}
  .field input,.field select,.field textarea{
    border-bottom:1px solid #666;min-height:22pt;background:#fff;
  }
  .field textarea{min-height:44pt;}
  .duties,.grid2{break-inside:avoid;}
  .agree{border:1px solid #666;}
  .pay,.pay__warn{border-color:#666;break-inside:avoid;}
  .pay__row{border-bottom-color:#bbb;}
  .pay__row--dep{background:#fff;border:1px solid #666;}
  .pay__row--dep .pay__label,.pay__row--dep .pay__fig,
  .pay__row--dep .pay__note,.pay__row--dep .pay__label em{color:#000;opacity:1;}
  .pay__fig{color:#000;}
  .policy{break-inside:avoid;}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:8pt;color:#555;}
}
