:root{--ink:#173b34;--ink-deep:#102a25;--cream:#f5f0e6;--paper:#fffdf9;--gold:#c39a63;--line:rgba(23,59,52,.18);--sans:"DM Sans",Arial,sans-serif;--serif:"Playfair Display",Georgia,serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink-deep);font-family:var(--sans);font-size:16px;line-height:1.65}body.menu-open{overflow:hidden}img{display:block;width:100%}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.site-header{height:86px;padding:0 clamp(24px,5vw,78px);display:flex;align-items:center;justify-content:space-between;background:var(--paper);position:relative;z-index:20}.brand{display:flex;align-items:center;gap:13px;font-family:var(--serif);font-size:19px;line-height:1.1}.brand small{display:block;margin-top:5px;font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#63756f}.brand-mark{width:39px;height:39px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--cream);font-size:23px;font-style:italic}.site-header nav{display:flex;align-items:center;gap:32px;font-size:14px;font-weight:600}.site-header nav a{position:relative}.site-header nav a:not(.nav-contact):after{content:"";height:1px;position:absolute;left:0;right:100%;bottom:-5px;background:var(--ink);transition:right .25s}.site-header nav a:hover:after{right:0}.nav-contact{border:1px solid var(--ink);padding:10px 18px}.nav-contact:hover{background:var(--ink);color:white}.menu-button{display:none;background:none;border:0;width:44px;height:44px;padding:11px}.menu-button span{display:block;height:1px;background:var(--ink);margin:7px 0}.hero{min-height:calc(100svh - 86px);max-height:920px;position:relative;display:flex;align-items:flex-end;overflow:hidden}.hero>img{position:absolute;inset:0;height:100%;object-fit:cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,29,24,.82) 0%,rgba(9,29,24,.38) 55%,rgba(9,29,24,.08) 100%)}.hero-content{position:relative;z-index:2;width:min(780px,83%);padding:0 0 clamp(76px,11vh,128px) clamp(24px,8vw,126px);color:white}.eyebrow{margin:0 0 18px;font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase}.eyebrow.dark{color:#59736b}.hero h1{margin:0;max-width:740px;font-family:var(--serif);font-size:clamp(48px,7.8vw,108px);font-weight:600;line-height:.94;letter-spacing:0}.hero-content>p:not(.eyebrow){max-width:580px;margin:28px 0 34px;font-size:clamp(17px,1.5vw,21px)}.hero-actions{display:flex;align-items:center;gap:28px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 24px;border:1px solid transparent;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s,color .2s,border .2s}.button-light{background:var(--cream);color:var(--ink-deep)}.button-light:hover{background:white}.text-link{font-size:14px;font-weight:600;border-bottom:1px solid rgba(255,255,255,.65);padding:9px 0}.scroll-cue{position:absolute;z-index:2;right:clamp(24px,5vw,74px);bottom:40px;color:white;font-size:11px;letter-spacing:.15em;text-transform:uppercase;display:flex;align-items:center;gap:12px;writing-mode:vertical-rl}.scroll-cue span{display:block;width:1px;height:55px;background:rgba(255,255,255,.6)}.section-pad{padding:clamp(80px,11vw,150px) clamp(24px,8vw,126px)}.welcome{display:grid;grid-template-columns:minmax(120px,.5fr) minmax(0,1.5fr);gap:50px;max-width:1500px;margin:auto}.section-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.17em;font-weight:600;padding-top:15px;color:#6d807a}.welcome h2,.section-heading h2,.gallery-heading h2,.reviews h2,.about h2,.contact h2{font-family:var(--serif);font-size:clamp(37px,5vw,70px);font-weight:600;line-height:1.08;margin:0 0 30px;letter-spacing:0}.welcome p,.about-copy p,.contact-info>p{max-width:760px}.lead{font-size:clamp(19px,2vw,25px);line-height:1.55;color:var(--ink)}.services{background:var(--cream)}.section-heading{text-align:center;margin-bottom:68px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(22px,3vw,46px);max-width:1500px;margin:auto}.service-card img{aspect-ratio:4/5;object-fit:cover}.service-card.offset{padding-top:68px}.service-card div{padding:28px 4px 0}.service-card span{font-size:12px;color:#7c8e88}.service-card h3{font-family:var(--serif);font-size:clamp(23px,2.2vw,33px);line-height:1.18;margin:10px 0 14px}.service-card p{margin:0;color:#52645f}.gallery{background:var(--paper)}.gallery-heading{display:flex;text-align:left;align-items:end;justify-content:space-between;gap:40px}.gallery-heading h2{margin-bottom:0}.gallery-heading>p{max-width:420px;color:#566862}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:230px;gap:12px}.gallery-item{border:0;padding:0;overflow:hidden;background:#ddd;cursor:zoom-in}.gallery-item img{height:100%;object-fit:cover;transition:transform .5s}.gallery-item:hover img{transform:scale(1.035)}.gallery-item.wide{grid-column:span 2}.gallery-item.tall{grid-row:span 2}.stay-callout{background:var(--ink);color:white;padding:clamp(70px,9vw,120px) clamp(24px,8vw,126px);display:flex;align-items:end;justify-content:space-between;gap:45px}.stay-callout h2{margin:0;font-family:var(--serif);font-weight:600;font-size:clamp(40px,6vw,84px);line-height:1.08}.stay-callout em{color:#d9c09e;font-weight:500}.reviews{text-align:center;overflow:hidden}.reviews h2{max-width:800px;margin:0 auto}.review-stage{max-width:950px;min-height:310px;margin:55px auto 0;position:relative}.review{display:none;margin:0}.review.active{display:block;animation:fade .4s ease}.review p{font-family:var(--serif);font-size:clamp(25px,3.4vw,45px);line-height:1.45;margin:0}.review footer{margin-top:28px;font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#6b7b76}.review-controls{display:flex;justify-content:center;align-items:center;gap:24px;margin-top:25px}.review-controls button{border:1px solid var(--line);background:transparent;width:44px;height:44px;border-radius:50%;cursor:pointer;color:var(--ink)}.review-controls button:hover{background:var(--ink);color:white}.review-controls span{font-size:12px;color:#73817d}.about{background:var(--ink-deep);color:#f7f3ea;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(50px,8vw,120px);align-items:center}.about-photo{position:relative}.about-photo img{aspect-ratio:4/5;object-fit:cover}.about-photo span{position:absolute;left:22px;bottom:22px;background:var(--cream);color:var(--ink);padding:10px 16px;font-size:11px;font-weight:600;letter-spacing:.13em;text-transform:uppercase}.about-copy h2{font-size:clamp(37px,4.5vw,65px)}.about-copy p{color:#cdd7d3}.about-copy .lead{color:#fff}.signature{font-family:var(--serif);font-size:34px!important;font-style:italic;color:#d7bd98!important;margin-bottom:0}.contact{background:var(--cream);display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(55px,10vw,150px)}address{font-style:normal;margin-top:42px;display:grid;gap:0}address a{padding:17px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:74px 1fr;font-weight:600}address a:last-child{border-bottom:1px solid var(--line)}address span{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#74837e;padding-top:3px}.contact-form{display:grid;gap:22px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:22px}.contact-form label{font-size:13px;font-weight:600}.contact-form label small{font-weight:400;color:#75847f}.contact-form input,.contact-form textarea{display:block;width:100%;margin-top:8px;border:0;border-bottom:1px solid #95a09c;background:transparent;border-radius:0;padding:12px 2px;outline:none;color:var(--ink);resize:vertical}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--ink);box-shadow:0 1px var(--ink)}.button-dark{width:max-content;background:var(--ink);color:white}.button-dark:hover{background:#27594f}.form-note{font-size:12px;color:#687873;margin:0}.footer{background:#0b211d;color:white;padding:60px clamp(24px,8vw,126px) 34px;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:45px;align-items:start}.footer-brand{color:white}.footer .brand-mark{background:var(--cream);color:var(--ink)}.footer p{margin:8px 0;color:#b7c5c0}.footer>div{display:grid;gap:5px}.footer>div a:hover{text-decoration:underline}.footer>small{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.15);padding-top:25px;color:#8fa39d}.lightbox{border:0;padding:0;background:transparent;max-width:min(92vw,1200px);max-height:92vh}.lightbox::backdrop{background:rgba(6,20,17,.92)}.lightbox img{max-height:88vh;object-fit:contain}.lightbox button{position:fixed;top:24px;right:25px;width:48px;height:48px;border:1px solid rgba(255,255,255,.45);border-radius:50%;background:rgba(0,0,0,.2);color:white;cursor:pointer}@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media(max-width:900px){.site-header{height:74px}.menu-button{display:block}.site-header nav{display:none;position:fixed;inset:74px 0 0;background:var(--paper);padding:50px 28px;flex-direction:column;align-items:flex-start;font-family:var(--serif);font-size:31px}.site-header nav.open{display:flex}.nav-contact{font-family:var(--sans);font-size:15px}.hero{min-height:calc(100svh - 74px)}.hero-content{width:92%;padding-left:28px}.service-grid{grid-template-columns:1fr}.service-card,.service-card.offset{padding:0}.service-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}.service-card:nth-child(even) img{order:2}.service-card div{padding:28px}.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:210px}.stay-callout{align-items:flex-start;flex-direction:column}.about,.contact{grid-template-columns:1fr}.about-photo{max-width:620px}.footer{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}@media(max-width:620px){.hero-shade{background:linear-gradient(0deg,rgba(9,29,24,.8),rgba(9,29,24,.14))}.hero-content{padding-bottom:66px}.hero-actions{align-items:flex-start;flex-direction:column;gap:14px}.scroll-cue{display:none}.welcome{grid-template-columns:1fr;gap:16px}.section-kicker{padding:0}.service-card{display:block}.service-card div{padding:24px 0 38px}.service-card:nth-child(even) img{order:initial}.gallery-heading{display:block}.gallery-heading>p{margin-top:22px}.gallery-grid{grid-auto-rows:145px}.gallery-item.wide{grid-column:span 2}.gallery-item.tall{grid-row:span 2}.review-stage{min-height:390px}.field-row{grid-template-columns:1fr}.footer{grid-template-columns:1fr}.footer-brand{grid-column:auto}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
