:root{--ink:#17130f;--cream:#f3eee7;--paper:#fbf8f3;--gold:#c6a074;--muted:#7d746b;--line:rgba(23,19,15,.16)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif;font-size:16px;line-height:1.65}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site-header{height:88px;padding:0 4vw;display:flex;align-items:center;gap:38px;position:absolute;top:0;left:0;right:0;z-index:10;color:white;border-bottom:1px solid rgba(255,255,255,.2)}.brand{width:105px;margin-right:auto}.brand img,footer>img{filter:brightness(0) invert(1)}nav{display:flex;gap:34px}nav a{font-size:13px;text-transform:uppercase;letter-spacing:.13em}.header-cta{border:0;border-left:1px solid rgba(255,255,255,.25);padding:5px 0 5px 38px;background:transparent;color:white;cursor:pointer;text-transform:uppercase;font-size:13px;letter-spacing:.14em}.menu-button{display:none;background:0;border:0;color:white;width:40px}.menu-close,.menu-kicker,.menu-book{display:none}
.hero{height:min(920px,100vh);min-height:700px;background:url("assets/hero.jpg") center 26%/cover no-repeat;color:white;position:relative;display:flex;align-items:center;padding:110px 8vw 90px}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,12,10,.84) 0%,rgba(15,12,10,.48) 50%,rgba(15,12,10,.1)),linear-gradient(0deg,rgba(15,12,10,.45),transparent 45%)}.hero-content{position:relative;z-index:1;max-width:840px}.eyebrow{text-transform:uppercase;letter-spacing:.23em;font-size:12px;font-weight:600;color:var(--gold);margin:0 0 20px}.eyebrow.light{color:#e3c29c}h1,h2{font-family:"Playfair Display",serif;font-weight:600;line-height:.98;letter-spacing:-.035em;margin:0}h1{font-size:clamp(60px,8.2vw,126px)}h2{font-size:clamp(48px,6.2vw,92px)}h1 em,h2 em{font-weight:500}.hero-copy{max-width:510px;font-size:18px;color:rgba(255,255,255,.78);margin:30px 0 38px}.hero-actions{display:flex;align-items:center;gap:36px}.button{display:inline-flex;align-items:center;justify-content:center;border:0;cursor:pointer;text-transform:uppercase;letter-spacing:.12em;font-weight:600;font-size:12px;padding:19px 27px}.button-gold{background:var(--gold);color:var(--ink)}.text-link{display:inline-flex;gap:18px;align-items:center;border-bottom:1px solid currentColor;padding-bottom:5px;text-transform:uppercase;letter-spacing:.11em;font-size:12px;font-weight:600}.text-link.light{color:white}.hero-info{position:absolute;right:4vw;bottom:42px;z-index:1;display:flex;gap:56px}.hero-info div{display:flex;flex-direction:column}.hero-info span,.contact-details span,.booking-contact span{font-size:11px;text-transform:uppercase;letter-spacing:.18em;color:rgba(255,255,255,.55);margin-bottom:5px}.hero-info strong{font-size:13px;font-weight:500}.scroll-cue{position:absolute;left:4vw;bottom:42px;z-index:1;text-transform:uppercase;letter-spacing:.16em;font-size:10px;display:flex;gap:12px}
.section{padding:130px 8vw}.section-label{font-size:11px;text-transform:uppercase;letter-spacing:.2em;font-weight:600}.section-label span{color:var(--gold);margin-right:15px}.section-label.light{color:white}.intro{display:grid;grid-template-columns:.55fr 1fr;gap:60px 7vw}.intro-copy{max-width:670px}.intro-copy>p:not(.eyebrow){max-width:590px;color:var(--muted);font-size:17px;margin:30px 0}.intro-images{grid-column:1/-1;display:grid;grid-template-columns:1.15fr .85fr;gap:24px;position:relative;margin-top:45px}.intro-images img{width:100%;height:620px;object-fit:cover}.intro-images img:nth-child(2){height:470px;margin-top:75px}.experience{position:absolute;left:48%;bottom:28px;transform:translateX(-50%);background:var(--gold);width:180px;height:180px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.experience strong{font-family:"Playfair Display",serif;font-size:50px;line-height:1}.experience span{font-size:11px;text-transform:uppercase;letter-spacing:.13em;margin-top:7px}
.services{background:var(--ink);color:white;display:grid;grid-template-columns:.55fr 1fr;gap:55px 7vw}.services-heading{margin-bottom:60px}.service-list{grid-column:1/-1}.service{display:grid;grid-template-columns:70px 1fr 50px;gap:25px;align-items:start;padding:38px 0;border-top:1px solid rgba(255,255,255,.16)}.service:last-child{border-bottom:1px solid rgba(255,255,255,.16)}.service-number{color:var(--gold);font-size:12px}.service h3{font-family:"Playfair Display",serif;font-size:clamp(30px,3vw,48px);margin:0 0 8px}.service p{margin:0;color:rgba(255,255,255,.55);max-width:650px}.service-arrow{font-size:27px;color:var(--gold)}
.gallery{display:grid;grid-template-columns:.55fr 1fr;gap:55px 7vw}.gallery-heading{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end}.gallery-heading .eyebrow{width:100%}.gallery-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:300px;gap:18px;margin-top:45px}.gallery-grid img{width:100%;height:100%;object-fit:cover}.gallery-grid .tall{grid-row:span 2}.gallery-grid .wide{grid-column:span 2}.instagram-card{position:relative;overflow:hidden;background:#ddd}.instagram-card img{transition:transform .6s ease,filter .6s ease}.instagram-card:hover img{transform:scale(1.025);filter:brightness(.72)}.instagram-card-meta{position:absolute;inset:auto 0 0;padding:25px;color:white;display:flex;justify-content:space-between;align-items:end;gap:15px;background:linear-gradient(transparent,rgba(0,0,0,.72));opacity:0;transform:translateY(12px);transition:.35s ease}.instagram-card:hover .instagram-card-meta{opacity:1;transform:none}.instagram-card-meta strong{font-size:12px;letter-spacing:.08em}.instagram-card-meta span{font-size:10px;text-transform:uppercase;letter-spacing:.12em}.instagram-status{grid-column:1/-1;color:var(--muted);font-size:12px;margin-top:25px}.instagram-actions{grid-column:1/-1;text-align:center;margin-top:35px}.instagram-more{background:transparent;border-left:0;border-right:0;border-top:0;cursor:pointer}
.booking{background:#24201c;color:white;display:grid;grid-template-columns:.8fr 1fr;gap:10vw}.booking-copy>p:not(.eyebrow){color:rgba(255,255,255,.58);max-width:440px;margin:30px 0 55px}.booking-contact{display:flex;flex-direction:column}.booking-contact a{font-family:"Playfair Display",serif;font-size:30px}.booking-invite{align-self:center;padding:55px;border:1px solid rgba(255,255,255,.18)}.booking-invite>span{font-size:11px;text-transform:uppercase;letter-spacing:.17em;color:var(--gold)}.booking-invite p{font-family:"Playfair Display",serif;font-size:30px;line-height:1.25;max-width:430px;margin:18px 0 35px}.link-button{background:transparent}.booking-form{display:flex;flex-direction:column;gap:24px}.booking-form label{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.6)}.booking-form input,.booking-form select,.booking-form textarea{width:100%;border:0;border-bottom:1px solid rgba(255,255,255,.3);background:transparent;color:white;padding:10px 0 14px;outline:0;text-transform:none;letter-spacing:normal}.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus{border-color:var(--gold)}.booking-form select option{color:var(--ink)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:25px}.booking-form .button{align-self:start;margin-top:10px}.form-note{font-size:11px;color:rgba(255,255,255,.4);margin:0}.booking-modal[hidden]{display:none}.booking-modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:25px}.booking-modal-backdrop{position:absolute;inset:0;background:rgba(10,8,7,.78);backdrop-filter:blur(9px)}.booking-modal-panel{position:relative;width:min(1100px,100%);max-height:calc(100vh - 50px);overflow:auto;background:#211e1a;color:white;padding:55px;display:grid;grid-template-columns:.7fr 1fr;gap:65px;box-shadow:0 35px 100px rgba(0,0,0,.45)}.booking-modal-heading h2{font-size:clamp(45px,5vw,72px)}.booking-modal-heading>p:last-child{color:rgba(255,255,255,.55);max-width:360px;margin-top:25px}.booking-modal-close{position:absolute;right:22px;top:14px;background:transparent;border:0;color:white;font:300 38px/1 "DM Sans";cursor:pointer;z-index:2}.modal-open{overflow:hidden}
.contact{display:grid;grid-template-columns:.55fr 1fr;gap:55px 7vw}.contact-details{grid-column:2;display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-top:40px;padding-top:38px;border-top:1px solid var(--line)}.contact-details span{color:var(--muted)}.contact-details p{line-height:1.8}.contact-details a{text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:4px}
.gallery-grid img{cursor:zoom-in}.gallery-lightbox[hidden]{display:none}.gallery-lightbox{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:30px}.lightbox-backdrop{position:absolute;inset:0;background:rgba(8,7,6,.94);backdrop-filter:blur(12px)}.lightbox-viewer{position:relative;z-index:1;width:100%;height:100%;display:grid;grid-template-columns:70px 1fr 70px;align-items:center}.lightbox-viewer figure{margin:0;min-width:0;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.lightbox-viewer img{display:block;max-width:100%;max-height:calc(100vh - 110px);width:auto;height:auto;object-fit:contain;box-shadow:0 20px 70px rgba(0,0,0,.45)}.lightbox-viewer figcaption{width:min(100%,1100px);display:flex;justify-content:space-between;color:rgba(255,255,255,.62);font-size:11px;text-transform:uppercase;letter-spacing:.11em;padding-top:14px}.lightbox-close,.lightbox-nav{border:0;background:transparent;color:white;cursor:pointer}.lightbox-close{position:absolute;right:0;top:0;font-size:42px;z-index:2}.lightbox-nav{font-family:"Playfair Display",serif;font-size:65px;color:rgba(255,255,255,.72)}.lightbox-open{overflow:hidden}
footer{background:#0f0d0b;color:white;padding:55px 8vw;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:25px}footer>img{width:110px}.footer-social{display:flex;justify-content:center;gap:25px;font-size:12px;text-transform:uppercase;letter-spacing:.1em}footer p{text-align:right;color:rgba(255,255,255,.45);font-size:11px}.floating-book{display:none}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:900px){.site-header{height:72px}.header-cta,nav{display:none}.menu-button{display:block;cursor:pointer}.menu-button span:not(.sr-only){display:block;height:1px;background:white;margin:7px 0}.site-header.open{z-index:90}.site-header.open nav{display:flex;position:fixed;inset:0;background:rgba(18,15,12,.7);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);padding:105px 8vw 50px;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:7px;animation:menu-in .35s ease}.site-header.open nav a{width:min(430px,100%);font-family:"Playfair Display",serif;font-size:clamp(34px,10vw,54px);line-height:1.12;text-transform:none;letter-spacing:-.025em;border-bottom:1px solid rgba(255,255,255,.18);padding:8px 0}.site-header.open nav a:hover{color:var(--gold)}.menu-close{display:block;position:absolute;right:7vw;top:22px;border:0;background:transparent;color:white;font-size:38px;line-height:1;cursor:pointer}.menu-kicker{display:block;position:absolute;left:50%;top:30px;transform:translateX(-50%);width:80%;text-align:center;color:rgba(255,255,255,.6);font-size:10px;text-transform:uppercase;letter-spacing:.18em}.menu-book{display:flex;align-items:center;justify-content:center;gap:22px;width:min(360px,100%);margin-top:30px;border:0;background:var(--gold);color:var(--ink);padding:18px 22px;text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:600}.menu-open{overflow:hidden}.hero{min-height:720px;padding:110px 6vw 120px}.hero-info{left:6vw;right:6vw;gap:25px;justify-content:space-between}.scroll-cue{display:none}.section{padding:90px 6vw}.intro,.services,.gallery,.booking,.contact{grid-template-columns:1fr}.intro-copy,.services-heading,.gallery-heading,.contact-title{margin-top:20px}.intro-images{grid-template-columns:1fr 1fr}.intro-images img{height:430px}.intro-images img:nth-child(2){height:340px;margin-top:45px}.experience{width:135px;height:135px}.experience strong{font-size:38px}.contact-details{grid-column:auto;grid-template-columns:1fr 1fr}.gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:260px}.gallery-grid .wide{grid-column:span 1}.booking{gap:65px}.booking-invite{padding:35px}.booking-modal{padding:0}.booking-modal-panel{width:100%;height:100%;max-height:100vh;padding:70px 6vw 40px;display:block}.booking-modal-heading{margin-bottom:45px}.booking-modal-heading h2{font-size:48px}footer{grid-template-columns:1fr;text-align:center}footer>img{margin:auto}.footer-social{flex-wrap:wrap}footer p{text-align:center}.floating-book{display:flex;position:fixed;right:18px;bottom:18px;z-index:20;background:var(--gold);border:0;padding:14px 18px;text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:600;gap:12px;box-shadow:0 8px 30px rgba(0,0,0,.2)}}
@keyframes menu-in{from{opacity:0}to{opacity:1}}
@media(max-width:560px){h1{font-size:54px}h2{font-size:45px}.hero-actions{align-items:flex-start;flex-direction:column;gap:25px}.hero-info{flex-direction:column;gap:10px}.intro-images{display:block}.intro-images img{height:390px}.intro-images img:nth-child(2){display:none}.experience{left:auto;right:-10px;transform:none}.service{grid-template-columns:35px 1fr}.service-arrow{display:none}.gallery-grid{display:block}.gallery-grid img{height:370px;margin-bottom:12px}.gallery-grid img:nth-child(n+5){display:none}.form-row,.contact-details{grid-template-columns:1fr}.contact-details{gap:15px}.booking-contact a{font-size:25px}.footer-social{gap:15px}}
@media(max-width:560px){.gallery-lightbox{padding:12px}.lightbox-viewer{grid-template-columns:36px 1fr 36px}.lightbox-nav{font-size:46px}.lightbox-close{right:8px;top:8px}.lightbox-viewer img{max-height:calc(100vh - 100px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}
