:root{--black:#090909;--ink:#151515;--paper:#f4f2ee;--white:#fff;--silver:#c5c5c8;--line:rgba(255,255,255,.18);--accent:#ded1bd;--pad:clamp(20px,5vw,78px)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Segoe UI",Arial,sans-serif;font-size:16px;line-height:1.5;overflow-x:hidden}body.modal-open{overflow:hidden}button,a,input{font:inherit}button{color:inherit}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.site-header{position:fixed;z-index:50;inset:0 0 auto;min-height:82px;padding:12px var(--pad);display:flex;align-items:center;gap:34px;color:white;background:linear-gradient(180deg,rgba(0,0,0,.74),transparent);transition:.3s}.site-header.scrolled{background:rgba(9,9,9,.94);backdrop-filter:blur(16px);box-shadow:0 1px rgba(255,255,255,.08)}.brand{width:150px}.brand img{width:100%;max-height:57px;object-fit:contain}.nav{margin-left:auto;display:flex;gap:28px}.nav a{font-size:.88rem;letter-spacing:.04em;position:relative}.nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:1px;background:white;transition:.25s}.nav a:hover:after{right:0}.button{display:inline-flex;min-height:52px;padding:0 26px;align-items:center;justify-content:center;border:1px solid var(--black);border-radius:999px;background:var(--black);color:white;font-weight:600;letter-spacing:.02em;transition:.25s;cursor:pointer}.button:hover{transform:translateY(-2px);background:#242424}.button-small{min-height:44px;padding:0 22px;background:white;color:var(--black);border-color:white}.button-ghost{background:rgba(0,0,0,.22);border-color:rgba(255,255,255,.52);backdrop-filter:blur(8px)}.button-ghost:hover{background:white;color:var(--black)}.menu-toggle{display:none;border:0;background:none;width:42px;height:42px;padding:10px;cursor:pointer}.menu-toggle span{display:block;height:1px;background:white;margin:7px 0}.hero{height:min(900px,100svh);min-height:720px;position:relative;background:#0b0b0b;color:white;overflow:hidden}.hero-media{position:absolute;inset:0}.hero-media img{width:100%;height:100%;object-fit:cover;object-position:62% 33%;filter:grayscale(18%) contrast(1.08)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.9) 0%,rgba(0,0,0,.62) 43%,rgba(0,0,0,.12) 75%),linear-gradient(0deg,rgba(0,0,0,.5),transparent 45%)}.hero-content{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:130px var(--pad) 80px;max-width:900px}.hero-logo{width:min(360px,65vw);height:150px;object-fit:contain;object-position:left center;margin-bottom:14px}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:.72rem;font-weight:700;margin:0 0 18px}.hero h1,.section h2,.contacts h2,.modal h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.035em;line-height:1.02}.hero h1{font-size:clamp(3rem,6.2vw,6.6rem);margin:0 0 22px}.hero-address{font-size:1.08rem;margin:0 0 34px;color:rgba(255,255,255,.8)}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.hero-meta{display:flex;gap:30px;margin-top:32px;color:rgba(255,255,255,.76);font-size:.86rem}.hero-meta b{font-size:1.05rem;color:white}.hero-scroll{position:absolute;z-index:3;right:var(--pad);bottom:32px;text-transform:uppercase;letter-spacing:.16em;font-size:.66rem}.hero-scroll span{font-size:1.2rem;margin-left:8px}.section{padding:clamp(80px,10vw,150px) var(--pad)}.section-heading{display:flex;justify-content:space-between;gap:36px;align-items:flex-end;margin-bottom:52px}.section h2,.contacts h2{font-size:clamp(2.5rem,5vw,5.2rem);margin:0}.text-button{border:0;border-bottom:1px solid currentColor;padding:10px 0;background:none;cursor:pointer;font-weight:600;white-space:nowrap}.text-button span{margin-left:16px}.services{background:var(--paper)}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:390px;gap:12px}.service-card{position:relative;border:0;padding:0;overflow:hidden;background:#101010;color:white;text-align:left;cursor:pointer}.service-card.service-wide{grid-column:span 2}.service-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.service-card:hover img{transform:scale(1.04)}.service-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.82),rgba(0,0,0,.04) 70%)}.service-copy{position:absolute;z-index:2;left:24px;right:24px;bottom:24px;display:grid;gap:4px}.service-copy b{font-family:Georgia,serif;font-size:1.55rem;font-weight:400}.service-copy small{color:rgba(255,255,255,.72)}.service-copy i{font-style:normal;font-size:.8rem;margin-top:8px}.brand-placeholder{background:radial-gradient(circle at 50% 30%,#333,#080808 72%)}.brand-placeholder>img,.master-photo.brand-placeholder img{object-fit:contain!important;padding:16%!important;opacity:.8}.masters{background:var(--black);color:white;display:grid;grid-template-columns:minmax(280px,.75fr) minmax(0,1.4fr);gap:8vw;align-items:center}.masters-intro{max-width:560px}.masters-intro p:last-child{color:rgba(255,255,255,.65);font-size:1.05rem;max-width:500px}.master-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.master-card{border:1px solid var(--line);background:#111;color:white;padding:0;text-align:left;cursor:pointer;transition:.25s}.master-card:hover{transform:translateY(-5px);border-color:rgba(255,255,255,.45)}.master-photo{height:370px;display:block}.master-photo img{width:100%;height:100%}.master-copy{display:grid;padding:24px;gap:6px}.master-copy small{color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.15em}.master-copy b{font-family:Georgia,serif;font-size:1.7rem;font-weight:400}.master-copy span{color:rgba(255,255,255,.64)}.master-copy i{font-style:normal;font-size:.78rem;margin-top:12px}.gallery{background:#dedbd5}.filters,.category-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}.filters button,.category-tabs button{border:1px solid rgba(0,0,0,.2);background:transparent;border-radius:99px;padding:10px 18px;cursor:pointer}.filters button.active,.category-tabs button.active{background:var(--black);color:white;border-color:var(--black)}.gallery-grid,.full-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.gallery-item{border:0;padding:0;background:#bbb;cursor:zoom-in;overflow:hidden;aspect-ratio:4/5}.gallery-item:nth-child(3n+1){aspect-ratio:4/3}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.gallery-item:hover img{transform:scale(1.035)}.reviews{background:white}.reviews-heading{align-items:center}.rating-mark{display:flex;gap:16px;align-items:center}.rating-mark>b{font-family:Georgia,serif;font-size:4rem;font-weight:400}.rating-mark>span{color:#111;letter-spacing:.08em}.rating-mark small{display:block;color:#777;letter-spacing:0;font-size:.72rem}.reviews-viewport{overflow:hidden}.reviews-track{display:flex;gap:14px;transition:transform .55s cubic-bezier(.2,.75,.25,1)}.review-card{flex:0 0 calc((100% - 28px)/3);min-height:340px;border:1px solid #d8d8d8;padding:30px;display:flex;flex-direction:column}.review-stars{letter-spacing:.08em;margin-bottom:20px}.review-card blockquote{margin:0;font-family:Georgia,serif;font-size:1.25rem;line-height:1.48}.review-card footer{margin-top:auto;padding-top:24px;border:0;background:none;display:block}.review-card footer b,.review-card footer span{display:block}.review-card footer span{font-size:.8rem;color:#777}.carousel-controls{display:flex;align-items:center;gap:18px;margin-top:28px}.carousel-controls button{width:48px;height:48px;border:1px solid #ccc;border-radius:50%;background:white;cursor:pointer}.carousel-progress{height:1px;background:#ddd;flex:1;overflow:hidden}.carousel-progress span{display:block;width:25%;height:100%;background:#111;transition:.45s}.journal{background:var(--paper)}.post-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.post-card{border:0;background:white;padding:0;text-align:left;cursor:pointer;transition:.25s}.post-card:hover{transform:translateY(-4px)}.post-image{aspect-ratio:9/12;background:#111;overflow:hidden;position:relative}.post-image img{width:100%;height:100%;object-fit:cover}.post-image:after{content:"▶";position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.9);display:grid;place-items:center;padding-left:3px}.post-copy{display:grid;gap:5px;padding:20px}.post-copy small{color:#777}.post-copy b{font-family:Georgia,serif;font-size:1.35rem;font-weight:400}.contacts{min-height:700px;background:var(--black);color:white;display:grid;grid-template-columns:1fr 1.15fr}.contact-panel{padding:clamp(70px,8vw,130px) var(--pad)}.contact-list{display:grid;grid-template-columns:1fr 1fr;gap:28px 50px;margin:50px 0}.contact-list small{display:block;color:rgba(255,255,255,.48);text-transform:uppercase;letter-spacing:.13em;font-size:.7rem}.contact-list p{margin:8px 0 0}.contact-actions{display:flex;gap:12px}.contact-actions .button{background:white;color:#111;border-color:white}.social-button{width:52px;height:52px;border:1px solid rgba(255,255,255,.45);border-radius:50%;display:grid;place-items:center;font-weight:700}.map-wrap{min-height:620px;filter:grayscale(1) contrast(.94)}.map-wrap iframe{width:100%;height:100%;border:0}footer{background:#050505;color:white;display:flex;align-items:center;gap:30px;padding:34px var(--pad);border-top:1px solid var(--line)}footer img{width:150px;height:60px;object-fit:contain}footer p{color:#888}footer>a{margin-left:auto}.mobile-booking{display:none}.modal,.lightbox{border:0;padding:0;background:transparent;width:100%;height:100%;max-width:none;max-height:none}.modal::backdrop,.lightbox::backdrop{background:rgba(0,0,0,.82);backdrop-filter:blur(5px)}.modal-shell{position:relative;width:min(1120px,calc(100% - 32px));height:min(820px,calc(100% - 32px));margin:16px auto;background:var(--paper);overflow:auto}.modal-close{position:sticky;z-index:9;top:18px;float:right;margin:18px 18px -64px 0;width:48px;height:48px;border:0;border-radius:50%;background:#111;color:white;font-size:1.8rem;cursor:pointer}.modal-header{padding:55px 55px 10px}.modal-header h2{font-size:clamp(2.6rem,6vw,5rem);margin:0 0 30px}.search{height:54px;border-bottom:1px solid #aaa;display:flex;align-items:center;gap:12px;max-width:540px;margin-bottom:26px}.search input{border:0;background:none;outline:0;width:100%;font-size:1.1rem}.category-mobile{display:none}.service-list{padding:10px 55px 70px}.service-group{margin-top:40px}.service-group h3{font-family:Georgia,serif;font-size:2rem;font-weight:400;margin:0 0 12px}.service-row{display:grid;grid-template-columns:1fr auto;gap:20px;padding:17px 0;border-bottom:1px solid #ccc}.service-row b{font-weight:500}.service-row span{font-weight:600}.master-modal-shell{width:min(900px,calc(100% - 32px));height:auto;max-height:calc(100% - 32px);margin-top:8vh}.master-modal-content{display:grid;grid-template-columns:.9fr 1.1fr}.master-modal-photo{min-height:530px;background:#111}.master-modal-photo img{width:100%;height:100%;object-fit:contain;padding:18%}.master-modal-copy{padding:70px 60px}.master-modal-copy h2{font-size:3.5rem;margin:0 0 10px}.master-modal-copy ul{padding-left:18px;margin:28px 0 36px}.gallery-modal-shell{background:#151515;color:white}.gallery-modal-shell .modal-header{position:sticky;top:0;z-index:4;background:#151515}.gallery-modal-shell .category-tabs button{border-color:#555}.gallery-modal-shell .category-tabs button.active{background:white;color:#111}.full-gallery{padding:10px 55px 60px;grid-template-columns:repeat(4,1fr)}.post-modal-shell{width:min(900px,calc(100% - 32px));height:auto;max-height:calc(100% - 32px);margin-top:5vh}.post-modal-content{display:grid;grid-template-columns:.85fr 1.15fr}.post-modal-content img{width:100%;height:620px;object-fit:cover;background:#111}.post-modal-copy{padding:70px 55px}.post-modal-copy h2{font-size:3.6rem;margin:0 0 14px}.post-modal-copy p{color:#555}.lightbox{background:rgba(0,0,0,.94);color:white}.lightbox[open]{display:flex;align-items:center;justify-content:center}.lightbox figure{margin:0;width:calc(100% - 180px);height:calc(100% - 50px);display:grid;place-items:center}.lightbox img{width:100%;height:100%;max-width:100%;max-height:calc(100vh - 90px);object-fit:contain}.lightbox figcaption{position:fixed;bottom:20px}.lightbox-close{position:fixed;z-index:3;right:24px;top:20px;border:0;background:none;color:white;font-size:2.6rem;cursor:pointer}.lightbox-arrow{position:fixed;z-index:3;top:50%;width:56px;height:56px;border:1px solid #666;border-radius:50%;background:rgba(0,0,0,.25);color:white;cursor:pointer}.lightbox-arrow.prev{left:24px}.lightbox-arrow.next{right:24px}
@media(max-width:980px){.nav{position:fixed;inset:0;background:#090909;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:26px;transform:translateY(-102%);transition:.35s}.nav.open{transform:none}.nav a{font-family:Georgia,serif;font-size:2rem}.menu-toggle{display:block;margin-left:auto;z-index:2}.header-booking{display:none}.service-grid{grid-template-columns:repeat(2,1fr)}.master-grid{grid-template-columns:1fr}.review-card{flex-basis:calc((100% - 14px)/2)}.post-grid{grid-template-columns:repeat(2,1fr)}.contacts{grid-template-columns:1fr}.map-wrap{min-height:520px}.gallery-grid{grid-template-columns:repeat(3,1fr)}.full-gallery{grid-template-columns:repeat(3,1fr)}}
@media(max-width:680px){.site-header{min-height:68px;padding:8px 18px}.brand{width:118px}.hero{min-height:720px;height:100svh}.hero-media img{object-position:62% center}.hero-shade{background:linear-gradient(0deg,rgba(0,0,0,.92),rgba(0,0,0,.25) 75%)}.hero-content{justify-content:flex-end;padding:100px 20px 92px}.hero-logo{height:100px;margin:0 0 4px}.hero h1{font-size:2.75rem}.hero-address{margin-bottom:20px}.hero-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.hero-actions .button{padding:0 12px}.hero-meta{margin-top:20px;gap:18px}.hero-scroll{display:none}.section{padding:76px 20px}.section-heading{align-items:flex-start;display:block;margin-bottom:32px}.section-heading .text-button{margin-top:24px}.service-grid{grid-template-columns:1fr;grid-auto-rows:310px}.service-card.service-wide{grid-column:auto}.masters{display:block}.masters-intro{margin-bottom:38px}.master-photo{height:280px}.gallery-grid{grid-template-columns:1fr 1fr;gap:6px}.gallery-item,.gallery-item:nth-child(3n+1){aspect-ratio:4/5}.filters{overflow-x:auto;flex-wrap:nowrap;margin-right:-20px;padding-right:20px}.filters button{white-space:nowrap}.reviews-heading{display:block}.rating-mark{margin-top:22px}.review-card{flex-basis:100%;padding:24px;min-height:360px}.review-card blockquote{font-size:1.15rem}.post-grid{grid-template-columns:1fr 1fr;gap:8px}.post-copy{padding:14px}.post-copy b{font-size:1.05rem}.contacts{display:block}.contact-panel{padding:76px 20px}.contact-list{grid-template-columns:1fr;margin:38px 0}.contact-actions{align-items:center}.contact-actions .button{flex:1;padding:0 14px}.map-wrap{min-height:420px}footer{padding:28px 20px 92px;flex-wrap:wrap}footer p{width:100%;margin:0}footer>a{margin-left:0}.mobile-booking{display:flex;position:fixed;z-index:45;left:14px;right:14px;bottom:max(12px,env(safe-area-inset-bottom));height:54px;border-radius:99px;align-items:center;justify-content:center;background:white;color:#111;box-shadow:0 8px 30px rgba(0,0,0,.35);font-weight:700}.modal-shell{width:100%;height:100%;margin:0}.modal-header{padding:64px 20px 6px}.modal-header h2{margin-bottom:20px}.service-list{padding:6px 20px 60px}.category-mobile{display:flex;justify-content:space-between;align-items:center;width:100%;padding:14px 0;border:0;border-bottom:1px solid #aaa;background:none}.category-tabs{display:none;padding-top:12px}.category-tabs.open{display:flex}.gallery-modal-shell .category-tabs{padding-bottom:8px}.full-gallery{padding:6px 12px 60px;grid-template-columns:1fr 1fr;gap:6px}.master-modal-shell,.post-modal-shell{max-height:none;margin:0;width:100%;height:100%}.master-modal-content,.post-modal-content{display:block}.master-modal-photo{min-height:42vh}.master-modal-copy,.post-modal-copy{padding:36px 24px 70px}.master-modal-copy h2,.post-modal-copy h2{font-size:2.6rem}.post-modal-content img{height:48vh}.lightbox figure{width:100%;height:100%;padding:60px 10px}.lightbox-arrow{top:auto;bottom:18px}.lightbox-arrow.prev{left:18px}.lightbox-arrow.next{right:18px}.lightbox figcaption{bottom:34px}.lightbox-close{right:16px;top:10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
