@font-face{font-family:"Fraunces";src:url(/fonts/fraunces-latin-300-normal.woff2) format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:"Fraunces";src:url(/fonts/fraunces-latin-400-normal.woff2) format("woff2");font-weight:400 700;font-display:swap}
@font-face{font-family:"Fraunces";src:url(/fonts/fraunces-latin-300-italic.woff2) format("woff2");font-weight:300 400;font-style:italic;font-display:swap}
@font-face{font-family:"Syne";src:url(/fonts/syne-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
:root{
  --slate:#26332f;--slate-2:#1c2522;--moss:#3c4c45;
  --stone:#e2d4bd;--stone-2:#d4c2a4;--paper:#efe5d3;
  --copper:#b8683a;--copper-lt:#d9925f;--verd:#6f9a88;
  --ink:#1f2522;--muted:#5d5a4f;
  --serif:"Fraunces",Georgia,serif;--label:"Syne","Trebuchet MS",sans-serif;
  --col:min(1240px,92vw);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.075rem/1.68 var(--serif);font-variation-settings:"SOFT" 50}
img{max-width:100%;display:block}
a{color:inherit;text-decoration-color:var(--copper);text-underline-offset:.22em}
a:hover{color:var(--copper)}
:focus-visible{outline:3px solid var(--copper);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--copper);color:var(--paper);padding:.6rem 1rem;z-index:99}
.skip:focus{left:1rem}
.lbl{font:700 .72rem/1.3 var(--label);letter-spacing:.22em;text-transform:uppercase}
.wrap{width:var(--col);margin:0 auto}
/* lintel header */
.lintel{background:var(--slate);color:var(--stone);border-bottom:6px double var(--copper)}
.lintel-top{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid #ffffff1a;font:700 .68rem var(--label);letter-spacing:.18em;text-transform:uppercase;color:#cdbfa6}
.lintel-top a{text-decoration:none}
.lintel-main{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1.5rem;padding:1.1rem 0}
.lintel nav ul{list-style:none;margin:0;padding:0;display:flex;gap:1.6rem}
.lintel nav.l ul{justify-content:flex-end}
.lintel nav a{text-decoration:none;font:400 1rem var(--serif);padding:.3rem 0;border-bottom:1px solid transparent}
.lintel nav a[aria-current=page]{border-color:var(--copper-lt);color:var(--copper-lt)}
.plaque{display:flex;flex-direction:column;align-items:center;text-decoration:none;border:1px solid var(--copper);padding:.55rem 1.3rem .5rem;position:relative}
.plaque::before,.plaque::after{content:"";position:absolute;width:7px;height:7px;background:var(--copper);top:-4px}
.plaque::before{left:-4px}.plaque::after{right:-4px}
.plaque b{font:300 2rem/1 var(--serif);letter-spacing:.32em;margin-right:-.32em}
.plaque span{font:700 .56rem var(--label);letter-spacing:.3em;color:var(--copper-lt);margin-top:.3rem}
.rooms-btn{display:none}
.rooms{display:none}
@media (max-width:1020px){
  .lintel nav{display:none}
  .lintel-main{grid-template-columns:auto 1fr auto}
  .plaque{grid-column:1;align-items:flex-start}
  .rooms-btn{display:inline-flex;grid-column:3;background:none;border:1px solid var(--copper);color:var(--stone);font:700 .72rem var(--label);letter-spacing:.2em;text-transform:uppercase;padding:.75rem 1rem;cursor:pointer}
  .rooms{background:var(--slate-2);padding:1.2rem 4vw 2rem}
  .rooms.open{display:block}
  .rooms ul{list-style:none;margin:0;padding:0;columns:2;column-gap:2rem}
  .rooms a{display:block;padding:.65rem 0;border-bottom:1px solid #ffffff1a;text-decoration:none;color:var(--stone);font-size:1.15rem}
  .lintel-top .hide-s{display:none}
}
@media (max-width:520px){.rooms ul{columns:1}}
/* elevation hero */
.elev{background:var(--slate);color:var(--paper);position:relative;overflow:hidden}
.elev::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 calc(100%/12 - 1px),#ffffff10 calc(100%/12 - 1px) calc(100%/12));pointer-events:none}
.elev-in{position:relative;display:grid;grid-template-columns:7fr 4fr;gap:4vw;padding:6rem 0 5rem;align-items:end}
.elev h1{font:300 clamp(2.6rem,6.4vw,5.9rem)/1.02 var(--serif);margin:.8rem 0 1.6rem;letter-spacing:-.02em}
.elev h1 em{color:var(--copper-lt);font-style:italic}
.elev p.lede{font-size:1.25rem;max-width:36rem;color:#e6dcc8}
.elev .lbl{color:var(--copper-lt)}
.elev-side{border-left:1px solid var(--copper);padding-left:1.6rem;font-size:.98rem;color:#d6cab3}
.elev-side dt{font:700 .66rem var(--label);letter-spacing:.2em;text-transform:uppercase;color:var(--copper-lt);margin-top:1.1rem}
.elev-side dd{margin:.2rem 0 0}
.page-head .elev-in{padding:4.4rem 0 3.4rem;grid-template-columns:1fr}
.page-head h1{font-size:clamp(2.3rem,5vw,4.4rem);max-width:18ch}
.rule{height:2px;background:var(--copper);transform-origin:left;animation:draw 1.4s cubic-bezier(.6,0,.2,1) both .2s;width:min(320px,60%)}
@keyframes draw{from{transform:scaleX(0)}}
.rise{animation:rise 1s ease both}
.rise.d2{animation-delay:.18s}.rise.d3{animation-delay:.36s}
@keyframes rise{from{opacity:0;transform:translateY(18px)}}
.btns{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}
.btn{display:inline-flex;align-items:center;gap:.6rem;font:700 .74rem var(--label);letter-spacing:.18em;text-transform:uppercase;text-decoration:none;padding:1rem 1.4rem;border:1px solid var(--copper);background:var(--copper);color:var(--paper);cursor:pointer}
.btn:hover{background:var(--copper-lt);color:var(--slate-2)}
.btn.ghost{background:transparent;color:inherit}
/* bays */
section{padding:5rem 0}
.bay{display:grid;grid-template-columns:3fr 8fr;gap:4vw;border-top:1px solid var(--stone-2);padding-top:2.4rem}
.bay>header .lbl{color:var(--copper)}
.bay>header h2{font:300 clamp(1.8rem,3.2vw,2.7rem)/1.1 var(--serif);margin:.6rem 0 0}
.prose{max-width:44rem}
.prose h3{font:400 1.45rem/1.25 var(--serif);margin:2rem 0 .4rem}
.prose p{margin:0 0 1.1rem}
.prose ul{padding-left:1.1rem}
.prose li{margin:.35rem 0}
.prose li::marker{color:var(--copper)}
.stone{background:var(--stone)}
.dark{background:var(--slate);color:var(--stone)}
.dark .bay{border-color:#ffffff22}
.dark a{color:var(--paper)}
/* arcade of services */
.arcade{display:grid;grid-template-columns:repeat(5,1fr);border-left:1px solid var(--stone-2)}
.arch{border-right:1px solid var(--stone-2);padding:2.4rem 1.3rem 1.6rem;text-decoration:none;position:relative;display:flex;flex-direction:column;gap:.7rem;min-height:330px;transition:background .3s}
.arch::before{content:"";height:70px;border:1px solid var(--copper);border-bottom:0;border-radius:70px 70px 0 0;margin-bottom:.6rem;transition:transform .5s}
.arch:hover{background:var(--paper);color:inherit}
.arch:hover::before{transform:translateY(-6px)}
.arch h3{font:400 1.35rem/1.2 var(--serif);margin:0}
.arch p{font-size:.95rem;color:var(--muted);margin:0}
.arch .lbl{color:var(--copper);margin-top:auto}
@media (max-width:1020px){.arcade{grid-template-columns:repeat(2,1fr)}.arch{border-bottom:1px solid var(--stone-2);min-height:0}}
@media (max-width:600px){.arcade{grid-template-columns:1fr}}
.figure{position:relative;margin:0}
.figure img{width:100%;height:100%;object-fit:cover;filter:sepia(.25) saturate(.8) contrast(1.02)}
.figure figcaption{font:400 italic .85rem/1.4 var(--serif);color:var(--muted);margin-top:.6rem}
.dark .figure figcaption{color:#bfb39b}
.split{display:grid;grid-template-columns:5fr 6fr;gap:5vw;align-items:center}
.split .figure img{aspect-ratio:4/5}
.panorama img{aspect-ratio:16/7}
/* ledger-free step list */
.steps{list-style:none;padding:0;margin:0;counter-reset:s}
.steps li{display:grid;grid-template-columns:4.5rem 1fr;gap:1rem;padding:1.4rem 0;border-bottom:1px solid var(--stone-2)}
.steps li::before{counter-increment:s;content:counter(s,upper-roman);font:300 2rem/1 var(--serif);color:var(--copper)}
.steps h3{margin:0 0 .3rem;font:400 1.25rem var(--serif)}
.steps p{margin:0}
.dark .steps li{border-color:#ffffff22}
/* tools */
.tool{background:var(--paper);border:1px solid var(--copper);padding:2rem;color:var(--ink)}
.tool fieldset{border:0;padding:0;margin:0 0 1.4rem}
.tool legend{font:700 .72rem var(--label);letter-spacing:.2em;text-transform:uppercase;color:var(--copper);margin-bottom:.6rem}
.opt{display:flex;gap:.7rem;align-items:flex-start;padding:.55rem .2rem;border-bottom:1px dotted var(--stone-2);cursor:pointer}
.opt input{accent-color:var(--copper);margin-top:.35rem;width:1.05rem;height:1.05rem}
.out{background:var(--slate);color:var(--stone);padding:1.4rem;margin-top:1rem;white-space:pre-wrap;font-size:.98rem}
.tabs [role=tablist]{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid var(--copper)}
.tabs [role=tab]{background:none;border:0;border-bottom:3px solid transparent;font:700 .72rem var(--label);letter-spacing:.18em;text-transform:uppercase;padding:.9rem 1.1rem;cursor:pointer;color:inherit}
.tabs [role=tab][aria-selected=true]{border-color:var(--copper);color:var(--copper)}
.tabs [role=tabpanel]{padding:1.6rem 0}
.reading{list-style:none;padding:0;margin:0}
.reading li{padding:1.2rem 0;border-bottom:1px solid var(--stone-2)}
.reading h3{margin:0 0 .3rem;font:400 1.2rem var(--serif)}
.reading .lbl{color:var(--copper)}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}
.chips button{font:700 .68rem var(--label);letter-spacing:.16em;text-transform:uppercase;border:1px solid var(--copper);background:transparent;padding:.55rem .9rem;cursor:pointer;color:var(--ink)}
.chips button[aria-pressed=true]{background:var(--copper);color:var(--paper)}
/* forms */
form.enq{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1.4rem}
form.enq .full{grid-column:1/-1}
label.f{display:flex;flex-direction:column;gap:.35rem;font:700 .7rem var(--label);letter-spacing:.16em;text-transform:uppercase;color:var(--moss)}
.dark label.f{color:var(--copper-lt)}
input,select,textarea{font:400 1rem var(--serif);padding:.8rem .9rem;border:1px solid var(--stone-2);background:#f7f0e3;color:var(--ink);border-radius:0;width:100%}
textarea{min-height:9rem;resize:vertical}
.consent{display:flex;gap:.7rem;align-items:flex-start;font-size:.95rem}
.consent input{width:auto;margin-top:.35rem;accent-color:var(--copper)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.status{min-height:1.5rem;font-size:1rem}
.status.err{color:#9a2d16;font-weight:600}
.status.ok{color:var(--moss);border-left:3px solid var(--copper);padding-left:1rem}
.dark .status.ok{color:var(--stone)}
.dark .status.err{color:#f0a184}
@media (max-width:760px){form.enq{grid-template-columns:1fr}}
/* map placeholder */
.mapph{border:1px dashed var(--copper);aspect-ratio:16/9;display:grid;place-items:center;text-align:center;padding:1.5rem;background:repeating-linear-gradient(45deg,var(--stone) 0 12px,var(--paper) 12px 24px)}
.mapph p{background:var(--paper);padding:1rem 1.2rem;max-width:30rem;margin:0}
/* footer */
footer.base{background:var(--slate-2);color:#cfc2aa;padding:4rem 0 2rem;font-size:.95rem}
.base-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:2.5rem}
.base h2{font:700 .7rem var(--label);letter-spacing:.2em;text-transform:uppercase;color:var(--copper-lt);margin:0 0 .9rem}
.base ul{list-style:none;padding:0;margin:0}
.base li{margin:.35rem 0}
.base a{text-decoration:none}
.base .fine{border-top:1px solid #ffffff1a;margin-top:3rem;padding-top:1.4rem;display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between;font-size:.82rem}
.base button.linkish{background:none;border:0;color:inherit;font:inherit;text-decoration:underline;cursor:pointer;padding:0}
@media (max-width:900px){.base-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.base-grid{grid-template-columns:1fr}}
/* cookie */
.cookie{position:fixed;left:50%;bottom:1.2rem;transform:translateX(-50%);width:min(680px,94vw);background:var(--paper);border:1px solid var(--copper);box-shadow:0 18px 40px #1c252240;padding:1.4rem 1.5rem;z-index:80}
.cookie[hidden]{display:none}
.cookie h2{font:400 1.3rem var(--serif);margin:0 0 .4rem}
.cookie p{margin:0 0 1rem;font-size:.95rem}
.cookie .row{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.cookie .btn{justify-content:center}
@media (max-width:900px){.elev-in,.split,.bay{grid-template-columns:1fr}.elev-in{padding:4rem 0 3.4rem}.elev-side{border-left:0;border-top:1px solid var(--copper);padding:1.2rem 0 0}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
