:root{--bg:#10100f;--black:#090a09;--surface:#181816;--surface2:#22211d;--cream:#f3eee4;--soft:#c8c0b3;--muted:#9e9a90;--gold:#c8a56a;--gold-pale:#e1c68f;--line:rgba(218,196,152,.19);--sans:'DM Sans',Arial,sans-serif;--serif:'Playfair Display',Georgia,serif;--max:1270px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:94px}body{margin:0;background:var(--bg);color:var(--cream);font:400 15px/1.7 var(--sans);-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}img{max-width:100%;display:block}::selection{background:var(--gold);color:var(--black)}:focus-visible{outline:2px solid var(--gold-pale);outline-offset:4px}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--serif);font-weight:500;letter-spacing:-.045em;line-height:1.11}h2{font-size:clamp(38px,5vw,68px)}h2 em,h1 em{font-weight:500;color:var(--gold);font-style:italic}p{color:var(--soft)}.container{width:min(calc(100% - 72px),var(--max));margin-inline:auto}.section{padding:118px 0}.eyebrow{font-size:10px;letter-spacing:.28em;color:var(--gold-pale);font-weight:700;display:flex;align-items:center;gap:18px;text-transform:uppercase;margin-bottom:26px}.eyebrow-line{display:inline-block;width:29px;height:1px;background:var(--gold)}.gold-text{color:var(--gold-pale)}.btn{border:1px solid transparent;min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:27px;padding:0 23px;font-size:10px;letter-spacing:.17em;font-weight:700;line-height:1.2;transition:background .2s,transform .2s,border .2s;color:var(--black)}.btn:hover{transform:translateY(-2px)}.btn-gold{background:var(--gold);border-color:var(--gold)}.btn-gold:hover{background:var(--gold-pale);border-color:var(--gold-pale)}.btn-lg{min-height:57px;padding:0 28px}.btn span{font-size:18px;font-weight:400}.text-link,.inline-arrow{font-size:10px;letter-spacing:.15em;font-weight:700;color:var(--cream);display:inline-flex;align-items:center;gap:18px}.text-link span,.inline-arrow span{font-size:17px;color:var(--gold)}.text-link:hover,.inline-arrow:hover{color:var(--gold-pale)}.skip-link{position:absolute;top:-100px;left:20px;padding:12px 18px;background:#fff;color:#111;z-index:1000}.skip-link:focus{top:12px}.announcement{height:31px;display:flex;align-items:center;justify-content:center;background:#090908;color:#bdab86;font-size:9px;letter-spacing:.26em;font-weight:600;gap:18px}.announcement-line{width:30px;height:1px;background:#6e5e41}.diamond{font-size:7px;color:var(--gold)}.site-header{height:82px;position:absolute;top:31px;left:0;right:0;z-index:50;border-bottom:1px solid rgba(255,255,255,.13);transition:background .3s}.site-header.scrolled{background:rgba(13,13,12,.96);position:fixed;top:0;backdrop-filter:blur(12px);box-shadow:0 4px 30px rgba(0,0,0,.2)}.nav-layout{height:100%;display:flex;align-items:center;justify-content:space-between;gap:35px}.brand{display:flex;align-items:center;gap:13px;min-width:220px}.brand-emblem{color:var(--gold-pale);border:1px solid var(--gold);width:38px;height:38px;display:flex;justify-content:center;align-items:center;font-family:var(--serif);font-size:19px;line-height:1}.brand-emblem i{height:17px;width:1px;margin:0 2px;background:var(--gold);transform:rotate(24deg)}.brand-wordmark{display:flex;flex-direction:column;line-height:1;gap:5px}.brand-wordmark strong{font:600 23px/.9 var(--serif);letter-spacing:.10em}.brand-wordmark small{font:600 8px/1 var(--sans);letter-spacing:.36em;color:var(--gold-pale)}.desktop-nav{display:flex;gap:32px;align-items:center}.desktop-nav a{font-size:11px;color:#e9e3d8;transition:color .2s}.desktop-nav a:hover,.desktop-nav a.is-active{color:var(--gold-pale)}.nav-book{white-space:nowrap}.menu-button{display:none;background:none;border:0;width:42px;height:40px;padding:9px}.menu-button span{height:1px;background:var(--cream);display:block;margin:6px 0;transition:transform .2s}.mobile-nav{display:none}.hero{height:min(850px,calc(100vh - 31px));min-height:680px;position:relative;background:#100f0c;overflow:hidden}.hero-image{position:absolute;inset:0 0 0 35%;background-image:linear-gradient(90deg,rgba(11,12,11,0) 50%,rgba(0,0,0,.20)),url('https://images.unsplash.com/photo-1702865272115-5afdbae975af?fm=jpg&ixid=M3wxMjA3fDB8MHxwaG90by1yZWxhdGVkfDM0fHx8ZW58MHx8fHx8&ixlib=rb-4.1.0&q=60&w=3000');background-size:cover;background-position:50% 49%;filter:saturate(.64) brightness(.71)}.hero-shadow{pointer-events:none;position:absolute;inset:0;background:linear-gradient(90deg,#0c0c0b 0%,rgba(12,12,11,.96) 28%,rgba(12,12,11,.68) 49%,rgba(12,12,11,.08) 80%),linear-gradient(0deg,#0b0b0a 0%,transparent 24%)}.hero-ornament{pointer-events:none;position:absolute;font-family:var(--serif);font-size:230px;line-height:1;color:rgba(220,185,127,.05);right:8%;top:37%;transform:rotate(-5deg)}.hero-ornament span{font-size:30px}.hero-inner{height:100%;position:relative;display:flex;align-items:center;padding-top:80px}.hero-content{max-width:730px;position:relative;z-index:2;margin-top:-3px}.hero h1{font-size:clamp(68px,7.7vw,116px);white-space:nowrap;margin:0 0 27px;line-height:1.07;letter-spacing:-.062em}.hero h1 em{color:var(--cream)}.hero-description{font-size:16px;max-width:395px;line-height:1.95;color:#d2cabe;margin-bottom:34px}.hero-buttons{display:flex;align-items:center;gap:32px;flex-wrap:wrap}.hero-side-mark{position:absolute;right:0;top:48%;writing-mode:vertical-rl;display:flex;gap:22px;font-size:9px;font-weight:700;letter-spacing:.22em;color:rgba(255,255,255,.68)}.hero-side-mark span+span{color:var(--gold)}.hero-bottom{position:absolute;bottom:0;left:0;right:0;z-index:3;border-top:1px solid rgba(235,222,196,.18);height:62px}.hero-bottom-inner{display:flex;height:100%;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:.20em;color:#b5ab98}.scroll-cue{display:flex;align-items:center;gap:15px}.scroll-cue span{color:var(--gold);font-size:16px}.intro-strip{background:#171715;border-bottom:1px solid var(--line)}.intro-grid{display:grid;grid-template-columns:repeat(3,1fr)}.intro-grid>div{height:97px;border-right:1px solid var(--line);display:flex;align-items:center;justify-content:center;gap:15px;font-size:10px;letter-spacing:.2em;font-weight:600}.intro-grid>div:first-child{border-left:1px solid var(--line)}.intro-icon{font-size:22px;color:var(--gold);font-weight:400}.services-section{background:#f0ede7;color:#171612}.services-section p{color:#6c675f}.services-section .eyebrow,.team-section .eyebrow{color:#997648}.services-section .eyebrow-line,.team-section .eyebrow-line{background:#997648}.services-section h2 em{color:#a47c41}.section-header{display:flex;align-items:end;justify-content:space-between;gap:80px;margin-bottom:53px}.section-header h2{margin-bottom:0;max-width:720px}.section-header>p{max-width:320px;line-height:1.9;margin:0 0 5px;font-size:14px}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);border-left:1px solid rgba(38,32,22,.16);border-top:1px solid rgba(38,32,22,.16)}.service-card{min-height:258px;padding:38px 33px;display:flex;flex-direction:column;gap:20px;border-bottom:1px solid rgba(38,32,22,.16);border-right:1px solid rgba(38,32,22,.16);transition:background .2s,transform .2s}.service-card:hover{background:#e6dfd3}.service-top{display:flex;justify-content:space-between;align-items:start;gap:20px}.service-no{color:#b49360;font-size:11px;letter-spacing:.14em}.service-symbol{font:500 33px/1 var(--serif);color:#b49360}.service-category{font-size:9px;letter-spacing:.18em;color:#9d7846;font-weight:700}.service-card h3{font:500 27px/1.18 var(--serif);letter-spacing:-.03em;margin:4px 0 8px}.service-card p{font-size:12px;line-height:1.85;color:#6b675e;flex:1;margin:0}.service-card-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:5px;gap:10px}.service-price{font:600 12px var(--sans);color:#7f5f32}.service-book{background:none;border:0;color:#171612;font-size:10px;letter-spacing:.12em;font-weight:700;padding:5px 0}.service-book span{font-size:17px;color:#a77b3a;margin-left:6px}.services-footnote{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:25px}.services-footnote>span{color:#8e877d;font-size:11px}.inline-arrow{border:0;background:none;color:#41372b}.about-section{min-height:680px;background:#151412;display:grid;grid-template-columns:1fr 1fr}.about-visual{position:relative;min-height:650px;overflow:hidden;background:radial-gradient(circle at 52% 45%,#685038,#28231c 45%,#0e0e0d 85%)}.about-image{position:absolute;inset:0;background-image:linear-gradient(180deg,transparent,rgba(12,12,11,.28)),url('https://images.unsplash.com/photo-1599351431202-1e0f0137899a?auto=format&fit=crop&w=1400&q=85');background-size:cover;background-position:center;filter:grayscale(.7) sepia(.2) brightness(.69)}.about-frame{pointer-events:none;position:absolute;inset:30px;border:1px solid rgba(217,183,127,.25)}.about-stamp{position:absolute;bottom:68px;right:-1px;width:125px;height:127px;background:var(--gold);display:flex;align-items:center;justify-content:center;flex-direction:column;color:#151412;transform:translateX(-22px);border:7px solid #131311;box-shadow:0 0 0 1px var(--gold)}.about-stamp span{font-size:10px;letter-spacing:.3em;font-weight:700}.about-stamp strong{font:500 48px/1 var(--serif)}.about-copy{display:flex;align-items:center;background:radial-gradient(circle at 80% 30%,rgba(126,93,52,.13),transparent 48%),#151412}.about-copy-inner{max-width:570px;padding:85px 64px 85px clamp(55px,6.5vw,125px)}.about-copy h2{font-size:clamp(47px,5.1vw,77px);margin:0 0 25px}.about-copy p:not(.eyebrow){font-size:14px;line-height:2;color:#b6b0a5;margin-bottom:15px}.small-divider{width:48px;height:1px;background:var(--gold);margin:30px 0}.about-link{margin-top:16px}.gallery-section{background:#141310}.gallery-heading{align-items:end}.gallery-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:16px}.gallery-tile{height:440px;position:relative;padding:0;border:0;overflow:hidden;background:radial-gradient(ellipse at 50% 50%,#4a3829,#181714 65%,#111);text-align:left}.gallery-photo{display:block;position:absolute;inset:0;background-position:center;background-size:cover;filter:grayscale(.56) brightness(.7) sepia(.12);transition:transform .5s,filter .4s}.gallery-tile:hover .gallery-photo{transform:scale(1.06);filter:grayscale(.2) brightness(.8)}.photo-1{background-image:url('https://images.unsplash.com/photo-1702865272115-5afdbae975af?fm=jpg&ixid=M3wxMjA3fDB8MHxwaG90by1yZWxhdGVkfDM0fHx8ZW58MHx8fHx8&ixlib=rb-4.1.0&q=60&w=3000')}.photo-2{background-image:url('https://images.unsplash.com/photo-1621605815971-fbc98d665033?auto=format&fit=crop&w=1100&q=85')}.photo-3{background-image:url('https://images.unsplash.com/photo-1503951914875-452162b0f3f1?auto=format&fit=crop&w=1100&q=85')}.gallery-tile::after{position:absolute;content:'';inset:30% 0 0;background:linear-gradient(0deg,rgba(0,0,0,.86),transparent);pointer-events:none}.gallery-label{position:absolute;bottom:27px;left:24px;right:24px;z-index:2;display:flex;align-items:center;gap:14px;color:var(--gold-pale);font-size:11px;font-weight:600;letter-spacing:.13em}.gallery-label span{color:#fff;font-size:10px}.gallery-label b{margin-left:auto;font-size:20px;font-weight:400}.sample-pill{position:absolute;top:19px;left:20px;z-index:2;background:#0d0d0cc9;color:#e4c893;font-size:8px;letter-spacing:.16em;font-weight:700;padding:8px 10px;border:1px solid #b3935f66}.quote-band{background:var(--gold);padding:75px 0}.quote-band .container{display:flex;align-items:center;justify-content:space-between;gap:30px}.quote-band p{font:500 clamp(31px,4.5vw,63px)/1.23 var(--serif);letter-spacing:-.04em;color:#171411;text-align:center;margin:0}.quote-band em{font-weight:500}.quote-star{color:#322617;font-size:22px}.team-section{background:#efece5;color:#191713}.team-section h2 em{color:#a47c41}.team-section .section-header>p{color:#696358}.team-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.team-placeholder{height:260px;border:1px solid #c9bdaa;display:flex;align-items:center;justify-content:center;flex-direction:column;background:linear-gradient(135deg,rgba(222,204,172,.22),transparent),#e8e2d8;padding:35px;text-align:center}.team-placeholder .team-monogram{width:65px;height:65px;display:grid;place-items:center;border:1px solid #b29b76;border-radius:100%;font:500 36px var(--serif);color:#9b7b4d;margin-bottom:19px}.team-placeholder h3{font:500 26px var(--serif);margin:0 0 9px}.team-placeholder p{font-size:12px;color:#726b61;max-width:310px}.team-person{min-height:250px;border:1px solid #c9bdaa;padding:26px;display:flex;align-items:end;background:linear-gradient(0deg,#251d15c9,transparent),#62564a;background-position:center;background-size:cover}.team-person h3{font:500 29px var(--serif);margin:0;color:#fff}.team-person p{color:var(--gold-pale);font-size:11px;letter-spacing:.12em;margin:5px 0 0}.location-section{background:#121210}.location-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px;align-items:center}.location-info h2{margin-bottom:26px}.location-lede{max-width:370px;font-size:14px;line-height:1.95;margin-bottom:36px}.info-block{border-top:1px solid var(--line);display:flex;gap:22px;padding:24px 0}.info-symbol{color:var(--gold);font-size:24px;line-height:1}.info-block h3{font-size:10px;letter-spacing:.18em;color:var(--gold-pale);font-weight:700;margin:0 0 11px}.info-block p{font-size:13px;line-height:1.8;margin:0}.muted{color:#8f8c84}.detail-link{display:inline-block;margin-top:9px;font-size:10px;letter-spacing:.11em;color:var(--gold-pale);font-weight:700}.detail-link:hover{text-decoration:underline}.hours-grid{display:grid;grid-template-columns:1fr auto;gap:5px 24px;font-size:12px;color:var(--soft);max-width:380px}.hours-grid span:nth-child(2n){color:var(--cream);text-align:right}.location-cta{margin-top:17px}.location-map{height:620px;position:relative;overflow:hidden;border:1px solid rgba(211,175,109,.25);background:linear-gradient(35deg,rgba(17,17,16,.9),rgba(46,41,29,.88)),repeating-linear-gradient(0deg,#222 0 1px,transparent 1px 36px),repeating-linear-gradient(90deg,#222 0 1px,transparent 1px 36px)}.map-lines{position:absolute;inset:0;background-image:repeating-linear-gradient(0deg,rgba(177,148,96,.09) 0px,rgba(177,148,96,.09) 1px,transparent 1px,transparent 65px),repeating-linear-gradient(90deg,rgba(177,148,96,.09) 0px,rgba(177,148,96,.09) 1px,transparent 1px,transparent 72px);transform:rotate(-10deg) scale(1.4)}.map-street{position:absolute;height:15px;background:#7e735a48;left:-20%;right:-20%;border-block:1px solid #a38a5b66;transform-origin:center}.map-street.a{top:29%;transform:rotate(25deg)}.map-street.b{top:72%;transform:rotate(-25deg)}.map-street.c{top:55%;transform:rotate(75deg)}.map-circle{position:absolute;border:1px solid rgba(201,161,91,.15);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}.circle-one{height:280px;width:280px}.circle-two{height:520px;width:520px}.map-crosshair{position:absolute;top:44%;left:50%;transform:translate(-50%,-50%);text-align:center}.map-pin{margin:0 auto 18px;border:2px solid var(--gold);height:72px;width:72px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:flex;align-items:center;justify-content:center;color:var(--gold-pale);background:#181714;box-shadow:0 0 0 12px #c8a56a1a;font:500 32px var(--serif)}.map-pin::first-letter{transform:rotate(45deg)}.map-location-title{white-space:nowrap;font:500 36px/1 var(--serif);letter-spacing:.08em;color:#f5e6ca}.map-location-title small{font:600 10px var(--sans);letter-spacing:.35em;color:var(--gold-pale)}.map-disclaimer{position:absolute;bottom:20px;left:20px;right:20px;border:1px solid #b99c6b55;background:rgba(15,15,14,.87);padding:13px;color:#d7c39f;text-align:center;font-size:9px;letter-spacing:.17em}.bottom-cta{background:linear-gradient(135deg,rgba(11,11,10,.9),rgba(29,24,18,.75)),radial-gradient(ellipse at 40% 0,#785734,#131310 70%);padding:102px 0;text-align:center;border-top:1px solid var(--line)}.bottom-cta .eyebrow{justify-content:center}.bottom-cta h2{margin-bottom:33px}.footer{background:#0a0a09;border-top:1px solid var(--line)}.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr;gap:45px;padding:67px 0 78px}.footer-logo{display:flex;flex-direction:column;font:500 34px/.96 var(--serif);letter-spacing:.07em}.footer-logo span{font:700 10px/1.4 var(--sans);letter-spacing:.28em;color:var(--gold-pale);margin-top:8px}.footer-top p{font-size:12px;line-height:1.9;margin-top:25px}.footer-links{display:flex;align-items:flex-start;flex-direction:column;gap:14px}.footer-links h3{font-size:11px;letter-spacing:.18em;color:var(--gold-pale);margin:0 0 9px}.footer-links a,.footer-links button{font-size:12px;color:var(--soft);background:none;border:0;padding:0;text-align:left}.footer-links a:hover,.footer-links button:hover{color:var(--gold-pale)}#social-links{display:flex;gap:15px;flex-wrap:wrap}.footer-bottom{border-top:1px solid var(--line);padding:23px 0;display:flex;justify-content:space-between;gap:15px;color:#8f887c;font-size:10px;letter-spacing:.08em}.footer-diamond{color:var(--gold);padding:0 8px}.booking-dialog,.photo-dialog{max-height:calc(100dvh - 25px);overflow:auto;position:fixed;border:1px solid rgba(218,176,105,.53);box-shadow:0 35px 130px #000b;color:var(--cream);background:#161613;padding:0}.booking-dialog{width:min(510px,calc(100% - 28px));max-width:none}.booking-dialog::backdrop,.photo-dialog::backdrop{background:rgba(0,0,0,.78);backdrop-filter:blur(7px)}.modal-top{height:65px;padding:0 27px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);color:var(--gold-pale);font-size:10px;letter-spacing:.23em}.icon-button{border:0;background:none;color:var(--cream);font:400 32px/1 var(--sans);padding:5px 10px}.icon-button:hover{color:var(--gold-pale)}.modal-body{padding:42px}.modal-body h2{font-size:43px;margin-bottom:20px}.modal-intro{font-size:13px;line-height:1.9}.booking-setup{border:1px solid var(--line);padding:25px;text-align:center;margin-top:27px}.setup-symbol{display:block;color:var(--gold);font-size:36px;margin-bottom:10px}.booking-setup strong{font-size:11px;letter-spacing:.13em;color:var(--gold-pale)}.booking-setup p{font-size:12px;margin:12px 0 0}.booking-setup code{font-size:11px;color:var(--cream)}#booking-form{display:flex;flex-direction:column;gap:9px}#booking-form[hidden]{display:none}#booking-form label{font-size:10px;letter-spacing:.1em;color:var(--gold-pale);font-weight:700;margin-top:9px}#booking-form input,#booking-form select,#booking-form textarea{background:#24231f;border:1px solid #5b5243;color:var(--cream);padding:12px 14px;width:100%;border-radius:0}#booking-form input::placeholder,#booking-form textarea::placeholder{color:#9b9488}#booking-form .btn{margin-top:15px}.form-note{font-size:11px;line-height:1.6}.photo-dialog{width:min(850px,calc(100% - 25px));max-width:none;padding:22px}.photo-close{position:absolute;right:25px;top:25px;z-index:1;background:#111b}.lightbox-image{height:min(70vh,650px);width:100%;background-size:contain;background-repeat:no-repeat;background-position:center;background-color:#201e1b}.photo-dialog p{color:var(--gold-pale);text-align:center;font-size:11px;letter-spacing:.14em;margin:17px 0 3px}@media (max-width:1160px){.desktop-nav{gap:18px}.nav-book{padding-inline:14px}.brand{min-width:auto}.hero h1{font-size:clamp(64px,7.5vw,100px)}.section-header{gap:40px}.location-layout{gap:45px}.about-copy-inner{padding-left:60px}}@media (max-width:950px){.container{width:min(calc(100% - 48px),var(--max))}.desktop-nav,.nav-book{display:none}.menu-button{display:block;margin-left:auto}.mobile-nav{position:absolute;top:100%;left:0;right:0;background:#12120f;border-bottom:1px solid var(--gold);padding:17px 24px 27px;flex-direction:column;gap:0;box-shadow:0 25px 45px #0008}.mobile-nav:not([hidden]){display:flex}.mobile-nav a{padding:11px 4px;border-bottom:1px solid var(--line);font-size:13px}.mobile-nav .btn{margin-top:22px}.hero{min-height:660px}.hero-image{inset:0 0 0 22%}.hero-shadow{background:linear-gradient(90deg,#0c0c0b 0%,rgba(12,12,11,.86) 35%,rgba(12,12,11,.34) 85%),linear-gradient(0deg,#0b0b0a 0%,transparent 26%)}.hero-side-mark{display:none}.services-grid{grid-template-columns:repeat(2,1fr)}.gallery-grid{grid-template-columns:1fr 1fr}.gallery-tile.tile-1{grid-row:span 2;height:auto}.gallery-tile{height:270px}.about-copy-inner{padding:70px 44px}.about-copy h2{font-size:48px}.location-layout{grid-template-columns:1fr;gap:55px}.location-map{height:440px}.location-info{max-width:670px}.team-grid{grid-template-columns:1fr 1fr}}@media (max-width:670px){html{scroll-padding-top:80px}.container{width:calc(100% - 38px)}.section{padding:76px 0}.announcement{font-size:7px;gap:8px;letter-spacing:.12em}.announcement-line{width:12px}.site-header{height:74px}.brand-emblem{width:34px;height:34px;font-size:16px}.brand-wordmark strong{font-size:22px}.brand-wordmark small{font-size:7px}.hero{min-height:690px;height:calc(100svh - 31px);max-height:840px}.hero-image{inset:0;background-position:61% 50%;filter:saturate(.5) brightness(.5)}.hero-shadow{background:linear-gradient(90deg,rgba(9,9,8,.86),rgba(9,9,8,.43)),linear-gradient(0deg,#0b0b0a 0%,transparent 40%)}.hero-ornament{font-size:115px;top:27%}.hero-inner{padding-top:100px;align-items:center}.hero-content{margin-top:10px}.hero h1{white-space:normal;font-size:clamp(51px,11vw,73px);line-height:1.13;margin-bottom:27px}.hero-description{font-size:14px;max-width:340px}.hero-buttons{gap:21px;align-items:flex-start;flex-direction:column}.hero-bottom{height:54px}.hero-bottom-inner{font-size:7px}.hero-bottom-inner span:last-child{display:none}.intro-grid{grid-template-columns:1fr}.intro-grid>div{height:65px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:9px}.section-header{display:block;margin-bottom:34px}.section-header h2{font-size:clamp(38px,9vw,53px);margin-bottom:24px}.section-header>p{max-width:430px;font-size:13px}.services-grid{grid-template-columns:1fr}.service-card{min-height:215px;padding:26px}.service-card h3{font-size:26px}.services-footnote{flex-direction:column;align-items:flex-start}.about-section{grid-template-columns:1fr}.about-visual{min-height:450px}.about-copy-inner{padding:76px 24px 80px}.about-copy h2{font-size:clamp(45px,10vw,68px)}.gallery-grid{grid-template-columns:1fr;gap:12px}.gallery-tile,.gallery-tile.tile-1{grid-row:auto;height:350px}.gallery-tile.tile-2,.gallery-tile.tile-3{height:275px}.quote-band{padding:55px 0}.quote-band p{font-size:clamp(30px,8vw,48px)}.quote-star{font-size:12px}.team-grid{grid-template-columns:1fr}.team-placeholder{height:200px}.location-layout{gap:42px}.location-map{height:390px}.location-info h2{font-size:58px}.bottom-cta{padding:78px 0}.bottom-cta h2{font-size:clamp(42px,9vw,65px)}.footer-top{grid-template-columns:1fr 1fr;gap:33px;padding:55px 0}.footer-top>div:first-child{grid-column:span 2}.footer-bottom{flex-direction:column;font-size:9px}.modal-body{padding:28px}.modal-body h2{font-size:37px}}@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* ----- Fabio's approved hero image, introduced October 2026 ----- */
.hero-image{inset:0 0 0 40%;background-image:url('fabio-portrait.webp');background-position:52% 33%;filter:saturate(.91) brightness(.88)}
.hero-shadow{background:linear-gradient(90deg,#0c0c0b 0%,rgba(12,12,11,.98) 26%,rgba(12,12,11,.80) 44%,rgba(12,12,11,.16) 72%,rgba(12,12,11,.05) 100%),linear-gradient(0deg,#0b0b0a 0%,transparent 21%)}
.hero-content{max-width:675px}.hero h1{font-size:clamp(66px,7.2vw,109px)}
.hero-photo-caption{position:absolute;right:42px;bottom:116px;z-index:2;display:flex;align-items:center;gap:12px;padding:12px 16px;background:rgba(10,10,10,.66);border-left:2px solid var(--gold);backdrop-filter:blur(7px)}
.hero-photo-caption strong{font-family:var(--serif);font-size:20px;line-height:1.1;display:block;letter-spacing:.06em}
.hero-photo-caption small{display:block;font-size:9px;color:var(--gold-pale);letter-spacing:.17em;margin-top:7px;font-weight:700}.caption-star{color:var(--gold);font-size:20px}
.about-image{background-image:linear-gradient(180deg,transparent,rgba(12,12,11,.35)),url('fabio-portrait.webp');background-position:55% 20%;filter:brightness(.82)}
.photo-1{background-image:url('fabio-portrait.webp');background-position:center 25%;filter:brightness(.82)}
.team-grid:has(.team-person:only-child){grid-template-columns:minmax(270px,550px);justify-content:center}
.team-person{min-height:430px;background-position:center 27%}
/* Booking request UI with custom pop-up calendar */
.booking-dialog{width:min(640px,calc(100% - 24px))}.booking-dialog .modal-body{padding:31px 42px 40px}.booking-dialog .modal-body h2{font-size:clamp(29px,4.2vw,44px);margin-bottom:12px}.booking-dialog .modal-intro{margin-bottom:20px}
#booking-form{gap:12px}.booking-field{position:relative;display:flex;flex-direction:column;gap:7px}
#booking-form label{margin-top:0}.required-mark{color:var(--gold)}.optional-label{color:#a9a192}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
#booking-form input,#booking-form select,#booking-form textarea,.calendar-trigger{min-height:44px;font-size:14px;line-height:1.3;padding:10px 13px}
#booking-form input:focus,#booking-form select:focus,#booking-form textarea:focus,.calendar-trigger:focus-visible{border-color:var(--gold)}
.calendar-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;background:#24231f;color:#bbb2a3;border:1px solid #5b5243}
.calendar-trigger span:last-child{font-size:25px;line-height:1;color:var(--gold)}.calendar-trigger .has-selection{color:#f3eee4}
.calendar-popover{position:absolute;left:0;top:calc(100% + 4px);z-index:60;background:#1c1b18;border:1px solid #8b724d;width:min(342px,100%);box-shadow:0 18px 40px #000b;padding:14px}
.calendar-popover[hidden]{display:none}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.calendar-header strong{font-size:14px;font-weight:600;color:var(--cream)}
.calendar-header button{border:1px solid #5b5243;background:#26241e;color:var(--gold-pale);width:36px;height:36px;font-size:25px;line-height:1}.calendar-header button:disabled{opacity:.24}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}.calendar-weekdays span{color:var(--gold-pale);font-size:10px;padding:7px 0}
.calendar-day{background:#28261f;border:1px solid transparent;color:#f2ede4;min-height:38px;min-width:0;font-size:12px}.calendar-day:hover:not(:disabled){border-color:var(--gold)}
.calendar-day.is-today{border-color:#877451}.calendar-day.is-selected{background:var(--gold);color:#17130d;font-weight:700}.calendar-day:disabled{opacity:.2;cursor:not-allowed}
.field-helper{display:block;color:#aaa194;font-size:11px;line-height:1.55;margin-top:2px}
.privacy-consent{display:flex;align-items:start;gap:11px;letter-spacing:0!important;font-size:11px!important;font-weight:400!important;line-height:1.6;color:#ddd3c2!important;cursor:pointer}
#booking-form .privacy-consent input{width:18px;height:18px;min-height:18px;flex:0 0 auto;accent-color:var(--gold);margin:2px 0 0;padding:0}
.privacy-consent a{color:var(--gold-pale);text-decoration:underline}
#booking-form .booking-submit{margin-top:3px;min-height:49px;letter-spacing:.11em}.booking-submit:disabled{opacity:.55}
.booking-status{font-size:12px;line-height:1.6;margin:0;min-height:0}.booking-status:empty{display:none}
.booking-status.is-setup{padding:10px 12px;background:rgba(199,160,87,.09);border-left:2px solid var(--gold);color:#e6cf9f}
.booking-status.is-error{padding:10px 12px;background:#602a2a60;border-left:2px solid #e89e87;color:#ffe5d8}
.booking-status.is-success{padding:10px 12px;background:#23543e77;border-left:2px solid #88d0a1;color:#e4f1e5}
#booking-form .form-note{margin:0;color:#aca49a}
@media(max-width:1100px){.hero-image{inset:0 0 0 40%;background-position:53% 32%}.hero h1{font-size:clamp(58px,7vw,83px)}.hero-photo-caption{right:16px}}
@media(max-width:950px){.hero-image{inset:0 0 0 27%;background-position:53% 28%}.hero-shadow{background:linear-gradient(90deg,#0c0c0b,rgba(12,12,11,.89) 31%,rgba(12,12,11,.28) 83%),linear-gradient(0deg,#0b0b0a,transparent 22%)}}
@media(max-width:670px){
.hero{min-height:720px;height:calc(100svh - 31px);max-height:860px}
.hero-image{inset:30px 0 26% 0;background-position:50% 23%;filter:saturate(.9) brightness(.86)}
.hero-shadow{background:linear-gradient(180deg,rgba(10,10,9,.40) 0%,rgba(10,10,9,.07) 33%,rgba(10,10,9,.25) 46%,#0b0b0a 78%,#0b0b0a 100%)}
.hero-inner{align-items:flex-end;padding-top:75px;padding-bottom:105px}
.hero-content{margin-top:0}
.hero h1{font-size:clamp(43px,9.4vw,62px);margin-bottom:17px;line-height:1.05}
.hero-description{font-size:13px;line-height:1.65;max-width:360px;margin-bottom:20px}
.hero-buttons{gap:15px}.hero-buttons .btn-lg{min-height:48px}
.hero-photo-caption{right:16px;top:180px;bottom:auto;padding:8px 10px}.hero-photo-caption strong{font-size:13px}.hero-photo-caption small{font-size:7px;letter-spacing:.10em;margin-top:3px}.caption-star{font-size:14px}
.team-person{min-height:400px}
.form-grid{grid-template-columns:1fr;gap:12px}
.booking-dialog .modal-body{padding:26px 20px 30px}
.booking-dialog .modal-top{height:52px;padding:0 19px}
.calendar-popover{width:min(340px,100%)}
}

/* Updated homepage preview: keep Fabio's approved crop clearly visible. */
@media (min-width:671px){
  .hero-image{inset:0 0 0 40%;background-position:53% 30%;filter:saturate(1.02) brightness(1.04)}
  .hero-shadow{background:linear-gradient(90deg,#0c0c0b 0%,rgba(12,12,11,.98) 25%,rgba(12,12,11,.84) 40%,rgba(12,12,11,.16) 61%,rgba(12,12,11,0) 88%),linear-gradient(0deg,rgba(10,10,9,.48) 0%,transparent 18%)}
}
@media (max-width:670px){
  .hero-image{inset:80px 0 26% 0;background-position:50% 23%;filter:saturate(1) brightness(1.05)}
  .hero-shadow{background:linear-gradient(180deg,rgba(10,10,9,.03) 0%,rgba(10,10,9,.02) 34%,rgba(10,10,9,.30) 48%,#0b0b0a 77%,#0b0b0a 100%)}
  .hero-photo-caption{display:none}
}

/* Expanded sections recovered from the approved project history. */
.expanded-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:48px 0}.expanded-grid>article,.expanded-grid>a{padding:38px;border:1px solid var(--line);background:var(--surface);min-height:245px}.expanded-grid h3{font:500 30px/1.2 var(--serif);margin:24px 0 16px}.expanded-grid span{color:var(--gold);font-size:14px}.booking-guide{background:#151410}.faq-list{max-width:920px;margin-top:48px}.faq-list details{border-bottom:1px solid var(--line);padding:24px 0}.faq-list summary{cursor:pointer;font:500 24px/1.4 var(--serif)}.faq-list p{padding-top:20px;max-width:700px}.floating-contact{position:fixed;bottom:22px;right:22px;z-index:60;display:grid;gap:8px}.floating-contact a{padding:12px 20px;font-size:12px;font-weight:700;letter-spacing:.07em;text-align:center;border:1px solid var(--gold)}.call-fabio{background:#13130f;color:var(--cream)}.whatsapp-fabio{background:#25d366;color:#071b0d;border-color:#25d366!important}.social-cards>a:hover{border-color:var(--gold)}.social-cards span{font-size:40px}.hero{min-height:800px}.service-card{min-height:285px}.gallery-tile{min-height:340px}@media(max-width:760px){.expanded-grid{grid-template-columns:1fr}.expanded-grid>article,.expanded-grid>a{min-height:200px;padding:28px}.floating-contact{bottom:12px;right:12px;gap:5px}.floating-contact a{padding:10px 15px;font-size:11px}.hero{min-height:780px}.faq-list summary{font-size:21px}}

/* Persistent, recognisable contact actions on every screen size. */
.floating-contact{position:fixed;right:22px;bottom:max(22px,env(safe-area-inset-bottom));z-index:60;display:flex;flex-direction:column;gap:10px}.floating-contact a{display:flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:12px 20px;border-radius:999px;font-size:13px;letter-spacing:.02em;box-shadow:0 5px 22px #0005;transition:transform .2s,background .2s}.floating-contact svg{width:26px;height:26px;flex:none}.floating-contact .whatsapp-fabio{background:#25d366;color:#fff;border:1px solid #25d366!important}.floating-contact .whatsapp-fabio:hover{background:#128c7e;border-color:#128c7e!important}.floating-contact .call-fabio{background:#151510;color:#f3eee4;border:1px solid #c8a56a}.floating-contact a:hover{transform:translateY(-2px)}body.modal-open .floating-contact{visibility:hidden}@media(max-width:760px){.floating-contact{right:14px;bottom:max(14px,env(safe-area-inset-bottom));gap:8px}.floating-contact a{min-height:50px;padding:11px 16px;font-size:12px}.floating-contact svg{width:25px;height:25px}}
