@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/cormorant-500.woff2) format("woff2")}
@font-face{font-family:Manrope;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/manrope.woff2) format("woff2")}

:root{
 --ink:#161513;--bone:#f6f3ee;--bronze:#7d5f3e;
 --muted:rgba(22,21,19,.72);--line:rgba(22,21,19,.14);
 --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
 --sans:Manrope,system-ui,-apple-system,"Segoe UI",sans-serif;
 --gut:16px;--max:1240px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{margin:0;background:var(--bone);color:var(--ink);font:400 1.0625rem/1.7 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video{display:block;max-width:100%;height:auto}
a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}
a:hover{color:var(--bronze)}
:focus-visible{outline:2px solid var(--bronze);outline-offset:3px}
.on-ink :focus-visible,.hero :focus-visible,.band :focus-visible{outline-color:var(--bone)}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.06;letter-spacing:-.01em;margin:0 0 .5em}
h1{font-size:clamp(2.7rem,7.4vw,5.6rem)}
h2{font-size:clamp(2.1rem,4.4vw,3.5rem)}
h3{font-size:clamp(1.7rem,2.6vw,2.2rem)}
p{margin:0 0 1em}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
@media (min-width:760px){:root{--gut:40px}}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--bone);padding:12px 16px;z-index:50}
.skip:focus{left:8px}
.eyebrow{display:block;font:600 .74rem/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--bronze);margin:0 0 20px}
.on-ink .eyebrow{color:rgba(246,243,238,.75)}
.lead{font-size:clamp(1.12rem,1.6vw,1.3rem);line-height:1.6;max-width:36em}
.quiet{font-size:.9rem;color:var(--muted);letter-spacing:.01em}

/* header */
.site-head{position:sticky;top:0;z-index:20;background:rgba(246,243,238,.97);border-bottom:1px solid var(--line)}
.head-row{display:flex;align-items:center;gap:12px;min-height:72px}
.brand{display:block;flex:none;padding:6px 0}
.brand img{height:48px;width:auto}
.nav{margin-left:auto}
.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:28px}
.nav a{font-size:.88rem;font-weight:500;text-decoration:none;display:inline-block;padding:12px 0;border-bottom:1px solid transparent}
.nav a:hover,.nav a[aria-current=page]{border-color:currentColor;color:var(--ink)}
.call{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;margin-left:16px;background:var(--ink);color:var(--bone);text-decoration:none;font-size:.86rem;font-weight:600;white-space:nowrap;letter-spacing:.02em}
.call:hover{color:var(--bone);background:#000}
.call svg{width:14px;height:14px}
.menu-btn{display:none}
@media (max-width:1079px){
 .head-row{min-height:62px}
 .brand img{height:38px}
 .call{margin-left:auto;padding:0 14px}
 .menu-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--line);background:none;color:var(--ink);cursor:pointer;padding:0}
 .menu-btn span,.menu-btn span::before,.menu-btn span::after{display:block;width:18px;height:1.5px;background:currentColor;content:""}
 .menu-btn span{position:relative}
 .menu-btn span::before{position:absolute;top:-6px}.menu-btn span::after{position:absolute;top:6px}
 .nav{position:absolute;left:0;right:0;top:100%;background:var(--bone);border-bottom:1px solid var(--line);display:none}
 .site-head.open .nav{display:block}
 .nav ul{flex-direction:column;gap:0;padding:4px var(--gut) 20px}
 .nav li+li{border-top:1px solid var(--line)}
 .nav a{display:block;padding:14px 0;font-size:1.05rem;border:0}
}
@media (max-width:359px){.call .num{display:none}}

/* buttons */
.btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;border:1px solid var(--ink);background:transparent;color:var(--ink);font:600 .78rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background .2s,color .2s;text-align:center}
.btn:hover{background:var(--ink);color:var(--bone)}
.btn.solid{background:var(--ink);color:var(--bone)}
.btn.solid:hover{background:#000;color:var(--bone)}
.on-ink .btn,.hero .btn{border-color:rgba(246,243,238,.75);color:var(--bone)}
.on-ink .btn:hover,.hero .btn:hover{background:var(--bone);color:var(--ink);opacity:1}
.on-ink .btn.solid,.hero .btn.solid{background:var(--bone);color:var(--ink);border-color:var(--bone)}
.on-ink .btn.solid:hover,.hero .btn.solid:hover{background:#fff}
.link-arrow{font:600 .78rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;display:inline-flex;align-items:center;gap:12px;min-height:44px}
.link-arrow::after{content:"";width:28px;height:1px;background:currentColor;transition:width .2s}
.link-arrow:hover::after{width:44px}

/* sections */
.sec{padding:clamp(80px,11vw,150px) 0}
.on-ink{background:var(--ink);color:var(--bone)}
.on-ink a:hover{color:var(--bone)}

/* media */
.media{margin:0}
.frame{position:relative;overflow:hidden;background:#dcd6cc}
.frame img,.frame video{width:100%;height:100%;object-fit:cover}
.tag{position:absolute;left:12px;top:12px;font:600 .64rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#fff;background:rgba(16,15,14,.72);padding:7px 9px;pointer-events:none}
.media figcaption{font-size:.74rem;line-height:1.5;color:var(--muted);margin-top:10px}
.on-ink .media figcaption{color:rgba(246,243,238,.75)}
.media figcaption a{color:inherit}
.vbtn{position:absolute;right:10px;bottom:10px;width:44px;height:44px;border:0;border-radius:50%;background:rgba(16,15,14,.55);color:#fff;cursor:pointer;place-items:center;padding:0;display:none}
.vbtn.show{display:grid}
.vbtn svg{width:14px;height:14px}
.vbtn .i-play{display:none}.vbtn.paused .i-play{display:block}.vbtn.paused .i-pause{display:none}

/* hero */
.hero{position:relative;color:#fff;background:#2b2433;min-height:calc(100svh - 62px);max-height:820px;display:flex;align-items:flex-end;overflow:hidden}
@media (min-width:760px){.hero{min-height:min(calc(100svh - 72px),880px);max-height:none}}
.hero-media{position:absolute;inset:0}
.hero-media img,.hero-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 72%}
.hero-media video{opacity:0;transition:opacity 1.2s}
.hero-media video.on{opacity:1}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,12,.05) 10%,rgba(10,10,12,.45) 45%,rgba(10,10,12,.82) 100%)}
@media (min-width:760px){.hero::after{background:linear-gradient(90deg,rgba(10,10,12,.55),rgba(10,10,12,0) 65%),linear-gradient(180deg,rgba(10,10,12,0) 30%,rgba(10,10,12,.7) 100%)}}
.hero .wrap{position:relative;z-index:2;width:100%;padding-top:96px;padding-bottom:clamp(96px,9vw,120px)}
.hero h1{max-width:12em;text-wrap:balance;margin-bottom:.35em;text-shadow:0 1px 30px rgba(0,0,0,.25)}
.hero .lead{color:rgba(255,255,255,.94);max-width:30em;margin-bottom:0}
.hero-foot{position:absolute;z-index:3;left:0;right:0;bottom:0}
.hero-foot .wrap{display:flex;align-items:center;gap:14px;justify-content:space-between;padding-top:0;padding-bottom:14px}
.hero-foot .vbtn{position:static}
.hero-credit{font-size:.7rem;line-height:1.4;color:rgba(255,255,255,.85);text-align:right;margin:0 0 0 auto}
.hero-credit a{color:inherit}
.hero-credit b{font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:.62rem;background:rgba(16,15,14,.6);padding:5px 7px;margin-right:6px}
@media (max-width:759px){.hero .btns{margin-top:24px}.hero .btns .btn{flex:1 1 100%}}

/* page header */
.page-head{padding:clamp(56px,9vw,120px) 0 clamp(40px,6vw,72px)}
.page-head h1{max-width:14em;text-wrap:balance}
.page-head .lead{color:var(--muted)}
.callrow{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:28px}

/* doors */
.doors{display:grid;gap:72px}
@media (min-width:860px){.doors{grid-template-columns:1fr 1fr;gap:clamp(40px,5vw,80px)}}
.door .frame{aspect-ratio:4/3}
.door-body{padding-top:30px}
.door-body p{color:var(--muted);max-width:28em}
.door .btns{margin-top:24px}

/* split */
.split{display:grid;gap:48px;align-items:center}
@media (min-width:900px){.split{grid-template-columns:1.1fr 1fr;gap:clamp(48px,7vw,110px)}.split.rev>:first-child{order:2}}
.split .frame{aspect-ratio:4/5}
@media (max-width:899px){.split .frame{aspect-ratio:4/3}}
.svc-list{list-style:none;margin:8px 0 36px;padding:0;border-top:1px solid var(--line)}
.svc-list a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;border-bottom:1px solid var(--line);text-decoration:none;font:500 clamp(1.5rem,2.4vw,1.9rem)/1.2 var(--serif)}
.svc-list a::after{content:"";width:18px;height:1px;background:currentColor;flex:none;transition:width .2s}
.svc-list a:hover::after{width:36px}

/* band */
.band{position:relative;color:#fff;background:#2a2622}
.band .frame{aspect-ratio:16/9;max-height:86svh;width:100%;background:#2a2622}
@media (max-width:759px){.band .frame{aspect-ratio:3/4}}
.band .frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,12,.05) 35%,rgba(10,10,12,.75));pointer-events:none}
.band-text{position:absolute;left:0;right:0;bottom:0;z-index:2;padding-bottom:clamp(72px,7vw,100px)}
.band-text p{font:500 clamp(1.9rem,3.8vw,3.2rem)/1.12 var(--serif);max-width:16em;margin:0}
.band-text p span{display:block;font:400 clamp(1rem,1.3vw,1.15rem)/1.6 var(--sans);margin-top:16px;max-width:32em;color:rgba(255,255,255,.94)}
.band figcaption{position:absolute;z-index:3;right:var(--gut);bottom:14px;margin:0;color:rgba(255,255,255,.85)!important;text-align:right;max-width:70%}
.band .vbtn{z-index:3;left:var(--gut);right:auto;bottom:6px}
.band .tag{z-index:3}

/* towns */
.towns{margin:56px 0 44px}
.towns svg{width:100%;height:auto;display:block;color:rgba(246,243,238,.5)}
.towns svg circle{fill:var(--bone)}
.towns ol{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);text-align:center}
.towns li{font:500 clamp(1.05rem,2.6vw,2rem)/1.2 var(--serif)}
.towns.light svg{color:rgba(22,21,19,.4)}
.towns.light svg circle{fill:var(--ink)}

/* faq */
.faq-grid{display:grid;gap:32px}
@media (min-width:900px){.faq-grid{grid-template-columns:1fr 1.6fr;gap:80px}}
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:22px 44px 22px 0;position:relative;font:500 clamp(1.35rem,2vw,1.65rem)/1.25 var(--serif)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:20px;font:300 1.6rem/1 var(--sans)}
.faq details[open] summary::after{content:"\2013"}
.faq details p{color:var(--muted);max-width:34em;padding-bottom:12px}

/* cta */
.cta{text-align:center}
.cta h2{font-size:clamp(2.5rem,6vw,4.8rem)}
.cta p{color:rgba(246,243,238,.85);max-width:30em;margin:0 auto}
.cta .btns{justify-content:center;margin-top:40px}

/* services page */
.svc-row{padding:clamp(72px,10vw,150px) 0;border-top:1px solid var(--line)}
.svc-row .split .frame{aspect-ratio:4/3}
.svc-row .wrap{max-width:1400px}
@media (min-width:900px){.svc-row .split{grid-template-columns:1.9fr 1fr;gap:clamp(48px,5vw,84px)}.svc-row .split.rev{grid-template-columns:1fr 1.9fr}}
.svc-row h2,.svc-row .pair h2{font-size:clamp(1.5rem,2.1vw,1.95rem);letter-spacing:.005em}
.svc-row p{color:var(--muted);max-width:26em;font-size:.95rem;line-height:1.75}
.svc-row .pair{gap:40px}
.pair{display:grid;gap:48px}
@media (min-width:700px){.pair{grid-template-columns:1fr 1fr}}
.pair h2{font-size:clamp(1.9rem,3vw,2.6rem)}
.one-call{font:500 clamp(1.7rem,3.2vw,2.6rem)/1.25 var(--serif);max-width:22em;margin:0 auto;text-align:center}

/* photos */
.gallery{display:grid;gap:24px;grid-template-columns:1fr}
@media (min-width:700px){.gallery{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1050px){.gallery{grid-template-columns:repeat(3,1fr)}}
.gallery .frame{aspect-ratio:4/3}
.gallery .tall .frame{aspect-ratio:3/4}
@media (min-width:700px){.gallery .wide{grid-column:1/-1}.gallery .wide .frame{aspect-ratio:21/9}}
.slot{aspect-ratio:4/3;background:#ebe6de;display:flex;align-items:flex-end;padding:18px;position:relative}
.slot::before{content:"";position:absolute;inset:18px 18px 52px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 60'%3E%3Cpath d='M0 58 30 52 58 30 72 38 92 14 120 44 140 34 168 50 200 58' fill='none' stroke='%23161513' stroke-opacity='.2' stroke-width='1'/%3E%3C/svg%3E") center/64% no-repeat}
.slot span{font:600 .7rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}

/* about */
.about-text{font:500 clamp(1.35rem,2.2vw,1.85rem)/1.45 var(--serif);max-width:26em;margin:0}
.wide-media{max-width:1400px}
.wide-media .frame{aspect-ratio:16/9}
@media (max-width:759px){.wide-media .frame{aspect-ratio:4/3}}

/* forms */
.form-grid{display:grid;gap:56px;align-items:start}
@media (min-width:980px){.form-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:96px}.form-grid aside{position:sticky;top:104px}}
@media (max-width:979px){.form-grid aside{display:none}}
.form-grid aside .frame{aspect-ratio:4/5}
.fld{margin-bottom:24px}
.two{display:grid;gap:0 24px}
@media (min-width:640px){.two{grid-template-columns:1fr 1fr}}
label,legend{display:block;font-size:.85rem;font-weight:600;margin-bottom:8px;letter-spacing:.01em;padding:0}
input[type=text],input[type=tel],input[type=email],input[type=date],textarea{width:100%;min-height:52px;padding:12px 14px;font:inherit;font-size:1rem;color:var(--ink);background:#fff;border:1px solid rgba(22,21,19,.35);border-radius:0;-webkit-appearance:none;appearance:none}
input:focus,textarea:focus{border-color:var(--ink);outline:2px solid var(--bronze);outline-offset:1px}
textarea{min-height:150px;resize:vertical}
fieldset{border:0;padding:0;margin:0 0 24px;min-width:0}
.checks{display:grid;gap:10px}
@media (min-width:640px){.checks{grid-template-columns:1fr 1fr}}
.check{display:flex;align-items:center;gap:12px;min-height:52px;padding:0 14px;border:1px solid rgba(22,21,19,.35);background:#fff;font-weight:500;font-size:.98rem;cursor:pointer;margin:0}
.check input{width:20px;height:20px;accent-color:var(--ink);margin:0;flex:none}
.check:has(input:checked){border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.help{font-size:.85rem;color:var(--muted);margin:8px 0 0}
.req{color:var(--bronze)}
.notice{font-size:.88rem;color:var(--muted);margin:8px 0 18px;max-width:40em}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-msg{padding:22px 24px;border-left:2px solid var(--ink);background:#fff;font-size:1.05rem}
.form-msg.err{border-color:#8a2b1d}
button:disabled{opacity:.6;cursor:wait}

/* legal */
.legal{max-width:44em;padding-bottom:clamp(64px,8vw,120px)}
.legal h2{font-size:clamp(1.8rem,3vw,2.4rem);margin-top:2em}
.legal ul{padding-left:1.1em}
.legal li{margin-bottom:.6em}

/* footer */
.site-foot{padding:80px 0 32px;border-top:1px solid var(--line)}
.foot-grid{display:grid;gap:40px}
@media (min-width:860px){.foot-grid{grid-template-columns:1.3fr 1fr 1fr}}
.foot-logo{height:60px;width:auto;margin-bottom:20px}
.site-foot p{font-size:.92rem;margin:0 0 .4em}
.foot-h{font:600 .72rem/1.4 var(--sans)!important;letter-spacing:.2em;text-transform:uppercase;color:var(--bronze);margin-bottom:12px!important}
.site-foot ul{list-style:none;margin:0;padding:0}
.site-foot li a{display:inline-block;padding:7px 0;font-size:.92rem;text-decoration:none}
.site-foot li a:hover{text-decoration:underline}
.foot-legal{margin-top:64px;padding-top:16px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:4px 28px;justify-content:space-between;align-items:center;font-size:.8rem;color:var(--muted)}
.foot-legal ul{display:flex;flex-wrap:wrap;gap:0 22px}
.foot-legal li a{font-size:.8rem;min-height:44px;display:inline-flex;align-items:center;padding:0}
.foot-legal p{font-size:.8rem;margin:0}
@media (min-width:1080px){.brand img{height:58px}}
@media (max-width:599px){.cta .btns .btn{flex:1 1 100%}}

/* photo groups */
.gal-h{font-size:clamp(2.3rem,4vw,3.4rem);margin:clamp(56px,7vw,96px) 0 32px;padding-top:28px;border-top:1px solid var(--line)}
.gal-h:first-child{margin-top:0;border-top:0;padding-top:0}
.gallery{grid-auto-flow:dense}
@media (min-width:700px){.gallery .tall{grid-row:span 2;display:flex;flex-direction:column}.gallery .tall .frame{aspect-ratio:auto;flex:1;min-height:0}}
