:root{--ink:#2d1b2a;--ink-soft:#4f3a4b;--muted:#71616e;--blush:#e9bad6;--blush-soft:#f5e8f0;--rose:#a66b8c;--white:#fff;--mist:#f8f6f8;--line:#e7e0e7;--serif:'Playfair Display','Iowan Old Style',Didot,Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);background:#fff;font:400 16px/1.65 var(--sans);-webkit-font-smoothing:antialiased}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}h1,h2,h3,h4,p,figure{margin:0}h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.056em}h1 em,h2 em{font-weight:400;color:var(--rose)}::selection{background:var(--blush);color:var(--ink)}:focus-visible{outline:3px solid #ad4788;outline-offset:4px}.shell{width:min(100% - 108px,1380px);margin-inline:auto}.section-space{padding:132px 0}.skip-link{position:absolute;z-index:999;top:-200px;left:18px;background:var(--ink);color:white;padding:12px 20px}.skip-link:focus{top:15px}[hidden]{display:none!important}.button{display:inline-flex;align-items:center;justify-content:center;min-height:53px;padding:13px 26px;border:1px solid transparent;font-weight:700;font-size:13px;line-height:1.4;letter-spacing:.015em;white-space:nowrap;transition:transform .3s cubic-bezier(.2,.8,.2,1),background .28s,color .28s,border-color .28s}.button:hover{transform:translateY(-3px)}.button-ink{background:var(--ink);color:white}.button-ink:hover{background:#62405a}.button-pink{background:var(--blush);color:var(--ink)}.button-pink:hover{background:#fff}.button-outline{border-color:var(--ink);background:transparent;color:var(--ink)}.button-outline:hover{background:var(--ink);color:white}.text-underline{display:inline-block;font-size:14px;font-weight:700;border-bottom:1px solid currentColor;padding-bottom:5px;transition:color .25s,opacity .25s}.text-underline:hover{color:var(--rose)}
/* Header: calm, deliberate, and a little more compact after scrolling */
.site-header{position:sticky;top:0;z-index:90;border-bottom:1px solid rgba(45,27,42,.095);background:rgba(255,255,255,.95);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);transition:box-shadow .35s}.site-header.is-scrolled{box-shadow:0 9px 32px rgba(38,18,33,.045)}.header-inner{height:90px;display:flex;gap:30px;align-items:center;transition:height .35s}.is-scrolled .header-inner{height:76px}.brand{display:inline-flex;gap:8px;align-items:center;flex-shrink:0}.brand>img{width:57px;height:61px;object-fit:contain}.brand-lettering{display:flex;flex-direction:column;line-height:1;gap:4px}.brand-lettering strong{font:500 28px/1 var(--serif);letter-spacing:-.07em}.brand-lettering small{font-size:9px;letter-spacing:.27em;font-weight:700;white-space:nowrap}.desktop-nav{display:flex;align-items:center;gap:clamp(22px,2.5vw,42px);margin-left:auto}.desktop-nav a{font-size:14px;font-weight:600;position:relative;padding:10px 0;transition:color .25s}.desktop-nav a:hover,.desktop-nav a[aria-current]{color:#995979}.desktop-nav a:after{content:'';position:absolute;bottom:6px;left:0;width:0;height:1px;background:#995979;transition:width .3s}.desktop-nav a:hover:after,.desktop-nav a[aria-current]:after{width:100%}.nav-book{min-height:45px;margin-left:5px}.menu-toggle{display:none;background:transparent;border:0;padding:14px;margin-left:auto}.menu-toggle span{display:block;width:25px;height:2px;margin:6px 0;background:var(--ink);transition:transform .25s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}.mobile-menu{display:none}
/* Home hero: generous editorial proportion, quiet motion */
.hero{background:var(--mist);overflow:hidden}.hero-layout{min-height:735px;display:grid;grid-template-columns:53% 47%;align-items:center}.hero-copy{padding:85px 0 84px;position:relative;z-index:3}.hero h1{font-size:clamp(73px,6.5vw,108px);line-height:1.09;letter-spacing:-.067em;max-width:830px;white-space:normal}.hero h1 em{color:#a87093}.hero-subtitle{max-width:455px;margin-top:30px;font-size:18px;line-height:1.78;color:var(--ink-soft)}.hero-actions{display:flex;align-items:center;gap:32px;flex-wrap:wrap;margin-top:33px}.hero-address{margin-top:81px;font-size:12px;letter-spacing:.015em;color:var(--muted)}.hero-art{align-self:stretch;min-height:735px;position:relative;isolation:isolate}.hero-color-plane{position:absolute;z-index:-1;background:var(--blush);inset:60px -110px 55px 20%;animation:plane-appear 1.4s cubic-bezier(.2,.9,.25,1) both}.hero-art figure{position:absolute;overflow:hidden;margin:0;box-shadow:0 18px 70px rgba(47,23,44,.13)}.hero-art figure img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.15,.8,.2,1)}.hero-art figure:hover img{transform:scale(1.035)}.hero-main-image{top:39px;right:2%;height:600px;width:69%;animation:hero-image-in 1.2s .18s both cubic-bezier(.2,.8,.2,1)}.hero-main-image img{object-position:50% 44%}.hero-secondary-image{bottom:61px;left:0;width:45%;height:280px;border:12px solid var(--mist);animation:hero-image-in 1.1s .45s both cubic-bezier(.2,.8,.2,1)}.hero-stamp{position:absolute;right:-39px;bottom:40px;width:150px;height:150px;border-radius:100%;display:grid;place-items:center;background:var(--ink);box-shadow:0 15px 40px rgba(43,24,40,.19);animation:stamp-in 1.2s .7s both}.hero-stamp img{width:115px;object-fit:contain}.studio-ribbon{background:var(--ink);color:#fff}.studio-ribbon .shell{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:30px}.studio-ribbon p{font:400 25px/1.3 var(--serif);letter-spacing:-.03em}.studio-ribbon em{color:var(--blush)}.studio-ribbon span{font-size:12px;letter-spacing:.055em;color:#e9c3da;white-space:nowrap}
/* Sections & collections */
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:45px;margin-bottom:52px}.section-heading h2{font-size:clamp(55px,5.25vw,80px);line-height:1.13}.section-heading>p,.section-heading>div>p{font-size:17px;color:var(--muted);line-height:1.8;max-width:375px;margin-bottom:7px}.section-heading>div .text-underline{margin-top:21px}.category-card-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:21px}.category-card{height:500px;position:relative;display:block;overflow:hidden;background:#e9d0de}.category-card-center{margin-top:50px}.category-card img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.15,.8,.2,1)}.category-card:hover img{transform:scale(1.06)}.category-card:after{content:'';position:absolute;inset:35% 0 0;background:linear-gradient(transparent,rgba(32,13,29,.73))}.category-card span{position:absolute;bottom:33px;left:34px;right:23px;z-index:2;display:flex;flex-direction:column;gap:7px;color:white}.category-card strong{font:400 clamp(29px,3vw,42px)/1.15 var(--serif);letter-spacing:-.04em}.category-card small{font-size:13px;font-weight:700;letter-spacing:.02em}.section-bottom-link{border-top:1px solid var(--line);padding-top:30px;margin-top:39px;display:flex;justify-content:space-between;gap:35px;align-items:center}.section-bottom-link p{color:var(--muted);max-width:480px;font-size:15px}.statement-section{background:#f2e0eb;padding:128px 0}.statement-grid{display:grid;grid-template-columns:1fr 2.3fr;align-items:start;column-gap:45px;row-gap:28px}.statement-grid>p{font-size:16px;font-weight:600;color:#75526a;margin-top:10px}.statement-grid h2{font-size:clamp(67px,7vw,112px);line-height:1.09;max-width:960px}.statement-grid>div{grid-column:2;display:flex;gap:40px;align-items:end;justify-content:space-between}.statement-grid>div p{max-width:540px;font-size:18px;line-height:1.8}.statement-grid .text-underline{white-space:nowrap}.home-gallery{background:#fff}.photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.photo-tile{height:330px;min-width:0;padding:0;border:0;background:#e4c3d4;overflow:hidden;position:relative;display:block;isolation:isolate}.photo-tile img{height:100%;width:100%;object-fit:cover;transition:transform .85s cubic-bezier(.2,.8,.2,1)}.photo-tile:hover img{transform:scale(1.06)}.photo-tile:after{content:'View photo';position:absolute;bottom:14px;left:14px;background:rgba(255,255,255,.93);padding:8px 12px;opacity:0;transform:translateY(7px);transition:opacity .2s,transform .2s;font-size:12px;font-weight:700}.photo-tile:hover:after,.photo-tile:focus-visible:after{opacity:1;transform:none}.photo-grid-featured{grid-template-columns:1.06fr .9fr 1.06fr;grid-template-rows:250px 270px}.photo-grid-featured .photo-tile{height:100%}.photo-grid-featured .photo-tile:first-child{grid-row:1/3}.photo-grid-featured .photo-tile:nth-child(4){grid-row:1/3;grid-column:3}.visit-banner{background:var(--ink);color:#fff;overflow:hidden}.visit-banner-grid{display:grid;grid-template-columns:45% 55%;align-items:center;min-height:575px;gap:7%}.visit-banner-image{height:575px;overflow:hidden;align-self:stretch}.visit-banner-image img{height:100%;width:100%;object-fit:cover}.visit-banner-content{padding:70px 8% 80px 0}.visit-banner h2{font-size:clamp(56px,5.2vw,82px);line-height:1.13}.visit-banner h2 em{color:var(--blush)}.visit-banner-content>p{font-size:17px;color:#e7d8e3;line-height:1.8;margin-top:28px;max-width:490px}.visit-banner-content>div{display:flex;align-items:center;flex-wrap:wrap;gap:25px;margin-top:32px}.light-link:hover{color:var(--blush)}
/* Other page heroes: same design language, different compositions */
.page-intro{background:var(--mist);overflow:hidden}.page-intro h1{font-size:clamp(68px,6.4vw,108px);line-height:1.12}.page-intro p{font-size:19px;color:var(--ink-soft);line-height:1.75;max-width:545px;margin-top:27px}.page-intro-grid{display:grid;grid-template-columns:60% 40%;align-items:center;min-height:550px}.page-intro-visual{height:550px;overflow:hidden;position:relative}.page-intro-visual img{height:100%;width:100%;object-fit:cover}.page-intro-services .page-intro-grid>div:first-child{padding-right:40px}.gallery-intro{background:#e7bad3}.gallery-intro-inner{padding-block:130px 120px;display:grid;grid-template-columns:1.3fr .7fr;gap:60px;align-items:end}.gallery-intro h1 em{color:#76516b}.gallery-intro p{max-width:390px;margin:0 0 14px}.about-intro-grid,.visit-intro-grid{min-height:640px;display:grid;grid-template-columns:55% 45%;align-items:center}.about-intro-copy,.visit-intro-grid>div:first-child{padding:80px 45px 90px 0}.about-hero-photo,.visit-intro-image{height:640px;position:relative;overflow:hidden;background:var(--blush)}.about-hero-photo img,.visit-intro-image img{width:100%;height:100%;object-fit:cover}.visit-intro{background:#f1e4ec}.visit-intro-grid>div:first-child>div{margin-top:34px;display:flex;align-items:center;gap:25px;flex-wrap:wrap}.detail-intro{background:var(--mist)}.detail-intro-grid{min-height:565px;display:grid;grid-template-columns:59% 41%;align-items:center}.detail-intro-grid>div:first-child{padding:70px 48px 80px 0}.detail-intro h1{font-size:clamp(60px,5.4vw,93px)}.detail-intro p{font-size:18px}.detail-intro-grid>div:first-child>div{margin-top:27px}.detail-intro-image{height:565px;overflow:hidden;background:var(--blush)}.detail-intro-image img{height:100%;width:100%;object-fit:cover}.back-link{display:inline-block;border-bottom:1px solid var(--ink);padding-bottom:3px;margin-bottom:28px;font-size:13px;font-weight:700}
/* Services directory & inner pages */
.directory-intro{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:52px}.directory-intro h2{font-size:clamp(50px,4.9vw,72px);line-height:1.1}.directory-intro>p{max-width:340px;color:var(--muted);font-size:16px}.service-explorer{display:grid;grid-template-columns:284px minmax(0,1fr);gap:65px;align-items:start}.service-side{position:sticky;top:110px;padding:29px 22px;background:#f7f4f7}.service-side h2{font:700 16px/1.4 var(--sans);letter-spacing:-.015em;margin-bottom:17px}.category-nav{display:flex;flex-direction:column}.category-nav button{background:transparent;border:0;border-top:1px solid #e5dfe5;padding:14px 13px;text-align:left;color:var(--ink-soft);font-weight:600;font-size:14px;transition:background .2s,color .2s}.category-nav button:last-child{border-bottom:1px solid #e5dfe5}.category-nav button:hover{background:#eee4ec}.category-nav button[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}.service-side>p{font-size:13px;color:var(--muted);margin-top:29px}.service-side>p a{color:var(--ink);font-weight:700;text-decoration:underline;text-underline-offset:3px}.service-main{min-width:0}.search-box{padding-bottom:28px;border-bottom:1px solid var(--line)}.search-box label{display:block;font-weight:700;font-size:14px;margin-bottom:11px}.search-field{position:relative}.search-field svg{position:absolute;top:50%;transform:translateY(-50%);left:16px;width:19px;height:19px;fill:none;stroke:#8c7386;stroke-width:1.7}.search-field input{border:1px solid #dcd1db;border-radius:0;min-height:54px;width:100%;padding:12px 18px 12px 50px;color:var(--ink);background:white}.search-field input:focus{outline:2px solid var(--rose);outline-offset:1px}.search-field input::placeholder{color:#9e919c}.search-status{font-size:12px;color:var(--muted);margin-top:7px}.search-status:empty{display:none}.service-group{padding-top:30px}.group-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.group-heading h2{font-size:40px;line-height:1.2}.group-heading a{font-weight:700;font-size:13px;border-bottom:1px solid currentColor;white-space:nowrap}.group-caption{margin:9px 0 20px;color:var(--muted);font-size:14px}.service-list{border-top:1px solid var(--line)}.service-row{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;padding:20px 0;border-bottom:1px solid var(--line)}.row-description{min-width:0;flex:1}.row-description h3{font:700 16px/1.4 var(--sans);letter-spacing:-.015em;margin-bottom:5px}.row-description span{font-size:13px;color:var(--muted)}.row-description p{max-width:550px;margin:8px 0 0;color:var(--muted);font-size:13px;line-height:1.6}.row-price{display:flex;align-items:center;gap:20px;flex-shrink:0}.row-price strong{font-size:17px}.row-price a{border:1px solid #b7a7b4;font-size:12px;font-weight:700;min-width:70px;text-align:center;padding:8px 15px;transition:background .2s,color .2s}.row-price a:hover{color:white;background:var(--ink)}.no-results{padding:38px 0}.no-results h3{font:400 30px/1.2 var(--serif);margin-bottom:10px}.menu-disclaimer{margin-top:27px;font-size:12px;line-height:1.8;color:var(--muted)}.detail-price-grid{display:grid;grid-template-columns:39% 61%;gap:35px}.detail-price-grid h2{font-size:clamp(50px,4.7vw,76px);line-height:1.14}.detail-price-grid>div:first-child>p{margin-top:25px;max-width:360px;font-size:16px;color:var(--muted);line-height:1.85}.related-section{padding:65px 0 85px;background:#f8f5f8}.related-section h2{font-size:37px;margin-bottom:27px}.related-links{display:flex;flex-wrap:wrap;gap:12px}.related-links a{border:1px solid #cfc3cd;padding:12px 20px;font-size:13px;font-weight:700;transition:background .2s,color .2s}.related-links a:hover{background:var(--ink);color:white}.simple-cta{background:var(--ink);color:#fff;padding:94px 0;text-align:center}.simple-cta h2{font-size:clamp(48px,4.6vw,72px);line-height:1.15}.simple-cta h2 em{color:var(--blush)}.simple-cta p{margin:16px auto 29px;max-width:560px;font-size:16px;color:#e2d3df}
/* Gallery */
.gallery-page{background:#fff}.gallery-filters{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:30px}.gallery-filters button{border:1px solid #d0c5ce;background:white;color:var(--ink);font-size:13px;font-weight:700;padding:11px 19px;transition:background .2s,color .2s}.gallery-filters button:hover{background:var(--blush-soft)}.gallery-filters button[aria-pressed=true]{color:white;background:var(--ink);border-color:var(--ink)}.gallery-page .photo-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:280px}.gallery-page .photo-tile{height:100%}.gallery-page .photo-tile:nth-child(1),.gallery-page .photo-tile:nth-child(7){grid-row:span 2}.gallery-page .photo-tile:nth-child(5),.gallery-page .photo-tile:nth-child(11){grid-column:span 2}.gallery-page .photo-grid.is-filtered{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:320px}.gallery-page .photo-grid.is-filtered .photo-tile{grid-row:auto;grid-column:auto}.gallery-page-note{color:var(--muted);font-size:14px;text-align:right;margin-top:25px}.lightbox{padding:20px;border:0;background:#fff;max-width:calc(100vw - 28px);max-height:96vh;box-shadow:0 20px 100px rgba(0,0,0,.25)}.lightbox::backdrop{background:rgba(25,12,25,.88);backdrop-filter:blur(8px)}.lightbox figure{display:flex;flex-direction:column;align-items:center}.lightbox figure img{display:block;max-height:min(73vh,850px);max-width:min(86vw,900px);object-fit:contain;width:auto;height:auto}.lightbox figcaption{color:var(--muted);font-size:12px;margin-top:12px;text-align:center}.lightbox-close{margin:0 0 12px auto;display:block;border:0;background:var(--ink);color:#fff;font-size:12px;font-weight:700;padding:8px 17px}.lightbox-controls{display:flex;justify-content:space-between;gap:20px;margin-top:18px}.lightbox-controls button{font-size:13px;font-weight:700;background:transparent;border:1px solid #cabeca;padding:9px 18px;min-width:96px}
/* About */
.about-story-grid{display:grid;grid-template-columns:43% 57%;gap:10%;align-items:center}.story-aside{position:relative}.story-aside img{width:83%;height:650px;object-fit:cover}.story-aside span{display:block;font-size:12px;margin-top:19px;color:var(--muted)}.story-content{padding-right:13%}.story-content h2,.about-bottom h2{font-size:clamp(55px,5.3vw,83px);line-height:1.14;margin-bottom:28px}.story-content p,.about-bottom p{font-size:17px;color:var(--muted);line-height:1.85;margin-bottom:19px}.story-content .button{margin-top:14px}.about-statement{padding:120px 0;background:var(--blush)}.about-statement h2{font-size:clamp(67px,7.8vw,125px);line-height:1.1;max-width:1200px}.about-statement h2 em{color:#76506b}.about-bottom-grid{display:grid;grid-template-columns:46% 54%;gap:7%;align-items:center}.about-bottom-grid>div:first-child{height:570px;overflow:hidden}.about-bottom-grid img{height:100%;width:100%;object-fit:cover}.about-bottom-grid>div:last-child{padding-right:15%}.about-bottom-grid .button{margin-top:15px}
/* Visit and FAQ */
.visit-info-section{background:#fff}.visit-info-grid{display:grid;grid-template-columns:45% 55%;gap:35px}.visit-info-grid>div:first-child h2{font-size:clamp(56px,5vw,77px);margin-bottom:19px}.visit-info-grid>div:first-child>p{font-size:17px;color:var(--muted);max-width:330px;margin-bottom:30px}.visit-detail-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px}.visit-card{background:#f8f5f8;padding:30px 29px;min-height:200px}.visit-card h3{font:700 15px/1.3 var(--sans);margin-bottom:18px}.visit-card address{font-style:normal;font-size:14px;line-height:1.9;color:var(--muted)}.visit-card dl{font-size:13px}.visit-card dl div{display:flex;gap:20px;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}.visit-card dt{font-weight:700}.visit-card dd{margin:0;color:var(--muted)}.visit-card>a{display:block;font-size:15px;font-weight:700;text-decoration:underline;text-underline-offset:4px;margin-bottom:13px}.visit-card:last-child{grid-column:1/3;min-height:auto}.faq-section{background:#f3e9f0;padding:117px 0}.faq-grid{display:grid;grid-template-columns:43% 57%;gap:30px}.faq-grid h2{font-size:clamp(53px,5vw,77px);line-height:1.16}.faq-list{padding-right:8%}.faq-list details{border-top:1px solid #d4c5d0;padding:18px 0}.faq-list details:last-child{border-bottom:1px solid #d4c5d0}.faq-list summary{list-style:none;position:relative;cursor:pointer;font-weight:700;font-size:16px;padding:0 35px 0 0}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:'+';position:absolute;right:0;top:-5px;font-size:26px;font-weight:400}.faq-list details[open] summary:after{content:'−'}.faq-list details p{font-size:14px;color:var(--muted);line-height:1.8;max-width:550px;margin-top:14px}.faq-list a{text-decoration:underline;text-underline-offset:3px;color:var(--ink)}.not-found{padding:120px 0 180px;background:var(--mist)}.not-found h1{font-size:clamp(55px,7vw,100px);line-height:1.12}.not-found p{margin:25px 0}
/* Footer: local SEO without keyword spam */
.site-footer{padding:88px 0 22px;color:#fff;background:var(--ink)}.footer-grid{display:grid;grid-template-columns:1.5fr .8fr 1fr;gap:clamp(35px,6vw,95px);padding-bottom:74px}.footer-logo{width:136px;height:132px;object-fit:contain;object-position:left center;margin-bottom:15px}.footer-lead h2{font-size:clamp(45px,4.8vw,69px);line-height:1.1;margin-bottom:15px}.footer-lead h2 em{color:var(--blush)}.footer-lead p{font-size:15px;color:#d9c7d3;margin-bottom:24px}.footer-column{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding-top:14px}.footer-column h3{font:700 15px/1.4 var(--sans);color:var(--blush);margin-bottom:14px}.footer-column a,.footer-column address,.footer-column p{font-size:13px;color:#e5d9e2;line-height:1.85}.footer-column address{font-style:normal}.footer-column a:hover{text-decoration:underline;color:#fff}.footer-find p{margin-top:9px}.footer-seo{font-size:12px;line-height:1.8;color:#cbb8c8;max-width:1180px;padding:19px 0 28px;border-top:1px solid rgba(255,255,255,.15)}.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:22px;border-top:1px solid rgba(255,255,255,.14);font-size:11px;color:#cbb8c8}.footer-bottom a{text-decoration:underline;text-underline-offset:3px}
/* Motion, inspired by restrained split-text and scroll reveal treatments. All content visible if JS unavailable. */
.word-shell{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.09em;margin-bottom:-.09em}.word-unit{display:inline-block;transform:translate3d(0,0,0);will-change:transform,opacity}.motion-ready [data-split] .word-unit{transform:translate3d(0,108%,0);opacity:0;filter:blur(3px);transition:transform .88s cubic-bezier(.16,1,.3,1),opacity .75s ease,filter 1s ease;transition-delay:calc(var(--word-index,0)*54ms)}.motion-ready [data-split].is-inview .word-unit{transform:translate3d(0,0,0);opacity:1;filter:blur(0)}.motion-ready [data-reveal]:not([data-split]):not([data-reveal=image]){opacity:0;transform:translateY(26px);transition:opacity .85s ease,transform .95s cubic-bezier(.18,.9,.25,1),filter .95s ease}.motion-ready [data-reveal=blur]:not([data-split]){filter:blur(9px)}.motion-ready [data-reveal]:not([data-split]).is-inview{opacity:1;transform:none;filter:blur(0)}.motion-ready [data-reveal=image]{clip-path:inset(8% 0 8% 0);opacity:.5;transition:clip-path 1.15s cubic-bezier(.2,.8,.2,1),opacity 1.15s ease}.motion-ready [data-reveal=image].is-inview{clip-path:inset(0);opacity:1}.motion-ready .photo-tile[data-reveal=image]{transition-delay:calc(var(--tile-order,0)*60ms)}@keyframes hero-image-in{from{opacity:0;transform:translateY(50px) scale(1.025)}to{opacity:1;transform:none}}@keyframes plane-appear{from{opacity:0;transform:translateX(35px)}to{opacity:1;transform:none}}@keyframes stamp-in{from{opacity:0;transform:scale(.7) rotate(-14deg)}to{opacity:1;transform:scale(1) rotate(0deg)}}
@media(max-width:1180px){.shell{width:min(100% - 72px,1380px)}.hero-layout{grid-template-columns:52% 48%;min-height:685px}.hero h1{font-size:clamp(66px,6.3vw,91px)}.hero-art{min-height:685px}.hero-main-image{height:545px}.hero-secondary-image{height:248px}.hero-stamp{width:127px;height:127px;right:-20px}.hero-stamp img{width:105px}.category-card{height:450px}.service-explorer{grid-template-columns:250px minmax(0,1fr);gap:42px}.about-story-grid{gap:5%}}
@media(max-width:900px){.shell{width:min(100% - 44px,1380px)}.header-inner{height:78px;gap:14px}.is-scrolled .header-inner{height:72px}.brand>img{width:47px;height:51px}.brand-lettering strong{font-size:25px}.desktop-nav{gap:18px}.desktop-nav a{font-size:12px}.nav-book{font-size:12px;padding:11px 14px;min-height:42px}.hero-layout{grid-template-columns:54% 46%;min-height:590px}.hero-copy{padding-block:58px}.hero h1{font-size:clamp(54px,6.2vw,73px)}.hero-subtitle{font-size:16px}.hero-address{margin-top:53px}.hero-art{min-height:590px}.hero-main-image{top:32px;height:460px;width:76%;right:0}.hero-secondary-image{height:210px;width:55%;bottom:45px;border-width:8px}.hero-color-plane{inset:55px -35px 48px 19%}.hero-stamp{width:105px;height:105px;right:-12px;bottom:28px}.hero-stamp img{width:87px}.studio-ribbon span{display:none}.section-space{padding:93px 0}.section-heading h2{font-size:clamp(48px,6vw,64px)}.section-heading>p,.section-heading>div>p{font-size:15px}.category-card-grid{gap:11px}.category-card{height:360px}.category-card span{bottom:23px;left:21px}.category-card strong{font-size:30px}.statement-section{padding:91px 0}.statement-grid h2{font-size:clamp(56px,7vw,77px)}.statement-grid>div{display:block}.statement-grid .text-underline{margin-top:20px}.photo-grid{gap:10px}.photo-grid-featured{grid-template-rows:185px 220px}.visit-banner-grid{gap:5%;min-height:490px}.visit-banner-image{height:490px}.visit-banner h2{font-size:clamp(47px,5.5vw,66px)}.page-intro h1{font-size:clamp(54px,6.5vw,85px)}.page-intro-grid{min-height:480px}.page-intro-visual{height:480px}.page-intro p{font-size:16px}.about-intro-grid,.visit-intro-grid{min-height:520px}.about-hero-photo,.visit-intro-image{height:520px}.detail-intro-grid{min-height:495px}.detail-intro-image{height:495px}.service-explorer{grid-template-columns:210px minmax(0,1fr);gap:25px}.service-side{padding:20px 12px}.category-nav button{font-size:13px}.directory-intro{margin-bottom:33px}.gallery-page .photo-grid{grid-auto-rows:220px;gap:10px}.about-story-grid{grid-template-columns:42% 58%;gap:4%}.story-aside img{height:520px;width:100%}.story-content{padding-right:6%}.story-content h2,.about-bottom h2{font-size:55px}.story-content p,.about-bottom p{font-size:15px}.about-bottom-grid>div:first-child{height:450px}.visit-info-grid{grid-template-columns:35% 65%;gap:20px}.visit-card{padding:20px}.footer-grid{grid-template-columns:1.1fr .8fr 1fr;gap:30px}.footer-lead h2{font-size:46px}}
@media(max-width:680px){html{scroll-padding-top:76px}.shell{width:min(100% - 36px,1380px)}.header-inner,.is-scrolled .header-inner{height:75px}.desktop-nav,.nav-book{display:none}.brand>img{width:48px;height:53px}.menu-toggle{display:block}.mobile-menu{display:flex;flex-direction:column;gap:0;position:absolute;top:100%;left:0;right:0;background:#fff;padding:8px 18px 25px;box-shadow:0 18px 25px rgba(28,10,20,.08);border-top:1px solid var(--line)}.mobile-menu a{padding:12px 10px;border-bottom:1px solid var(--line);font-size:18px;font-weight:600}.mobile-menu a[aria-current]{color:#a5698b}.mobile-menu .mobile-appointment{text-align:center;margin-top:17px;background:var(--ink);color:white;border-bottom:0;font-size:14px;padding:15px 12px}.hero-layout{display:flex;flex-direction:column;min-height:0}.hero-copy{width:100%;padding:76px 0 24px}.hero h1{font-size:clamp(55px,13.6vw,80px);line-height:1.09}.hero-subtitle{font-size:16px;margin-top:22px;line-height:1.7}.hero-actions{margin-top:25px;gap:19px}.hero-actions .text-underline{font-size:13px}.hero-address{margin-top:38px;margin-bottom:0;font-size:11px}.hero-art{width:100%;height:470px;min-height:470px}.hero-color-plane{inset:32px -40px 35px 22%}.hero-main-image{top:14px;height:400px;width:68%;right:7%}.hero-secondary-image{left:-2%;bottom:26px;width:49%;height:205px;border-width:7px}.hero-stamp{width:90px;height:90px;right:0;bottom:12px}.hero-stamp img{width:72px}.studio-ribbon .shell{min-height:73px}.studio-ribbon p{font-size:19px}.section-space{padding:76px 0}.section-heading{display:block;margin-bottom:31px}.section-heading h2{font-size:clamp(44px,11vw,65px)}.section-heading>p,.section-heading>div>p{font-size:16px;max-width:100%;margin-top:18px}.category-card-grid{grid-template-columns:1fr 1fr;gap:11px}.category-card{height:320px}.category-card-center{margin-top:0}.category-card:last-child{grid-column:1/3;height:240px}.category-card strong{font-size:28px}.category-card span{bottom:19px;left:18px}.section-bottom-link{display:block;margin-top:26px}.section-bottom-link p{margin-bottom:19px;font-size:14px}.statement-section{padding:76px 0}.statement-grid{grid-template-columns:1fr;gap:18px}.statement-grid h2{font-size:clamp(52px,12vw,79px)}.statement-grid>div{grid-column:1}.statement-grid>div p{font-size:16px}.photo-grid,.gallery-page .photo-grid,.gallery-page .photo-grid.is-filtered{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:210px;gap:9px}.photo-grid-featured{grid-template-columns:1fr 1fr;grid-template-rows:240px 190px 190px}.photo-grid-featured .photo-tile:first-child{grid-column:1;grid-row:1/3}.photo-grid-featured .photo-tile:nth-child(4){grid-column:2;grid-row:2}.photo-grid-featured .photo-tile:nth-child(5){grid-column:1;grid-row:3}.photo-grid-featured .photo-tile:nth-child(6){grid-column:2;grid-row:3}.visit-banner-grid{display:flex;flex-direction:column;gap:0}.visit-banner-image{order:2;width:100%;height:365px;align-self:auto}.visit-banner-content{width:100%;padding:76px 0 65px;order:1}.visit-banner h2{font-size:clamp(50px,11vw,74px)}.visit-banner-content>p{font-size:16px}.page-intro h1{font-size:clamp(53px,12vw,76px)}.page-intro-grid,.about-intro-grid,.visit-intro-grid,.detail-intro-grid{display:flex;flex-direction:column;min-height:0;align-items:stretch}.page-intro-grid>div:first-child,.about-intro-copy,.visit-intro-grid>div:first-child,.detail-intro-grid>div:first-child{padding:72px 0 54px}.page-intro p{font-size:16px;margin-top:20px}.page-intro-visual,.about-hero-photo,.visit-intro-image,.detail-intro-image{height:390px;width:100%;align-self:auto}.gallery-intro-inner{display:block;padding-block:78px 84px}.gallery-intro h1{font-size:clamp(58px,12vw,80px)}.gallery-intro p{margin-top:24px;max-width:100%}.directory-intro{display:block}.directory-intro h2{font-size:52px}.directory-intro>p{margin-top:16px;font-size:15px}.service-explorer{display:flex;flex-direction:column;gap:26px}.service-side{position:static;width:100%;padding:20px 15px 14px}.service-side h2{margin-bottom:12px}.category-nav{flex-direction:row;flex-wrap:wrap;gap:7px}.category-nav button{font-size:12px;padding:9px 11px;border:1px solid #d8cbd6}.category-nav button:last-child{border:1px solid #d8cbd6}.service-side>p{margin-top:13px}.service-main{width:100%}.group-heading h2{font-size:35px}.group-heading a{font-size:11px}.service-row{gap:10px;padding:18px 0}.row-description h3{font-size:14px}.row-description span,.row-description p{font-size:12px}.row-price{gap:9px}.row-price strong{font-size:15px}.row-price a{min-width:52px;padding:7px 10px;font-size:11px}.detail-price-grid{display:block}.detail-price-grid h2{font-size:54px}.detail-price-grid>div:first-child>p{margin:19px 0 29px}.gallery-filters{gap:7px;margin-bottom:22px}.gallery-filters button{padding:10px 12px;font-size:12px}.gallery-page .photo-tile:nth-child(1),.gallery-page .photo-tile:nth-child(7),.gallery-page .photo-tile:nth-child(5),.gallery-page .photo-tile:nth-child(11){grid-row:auto;grid-column:auto}.gallery-page .photo-tile:nth-child(1),.gallery-page .photo-tile:nth-child(7){grid-row:span 2}.gallery-page-note{text-align:left;font-size:12px}.about-story-grid,.about-bottom-grid{display:flex;flex-direction:column;gap:38px}.story-aside{width:100%}.story-aside img{height:390px;width:76%}.story-content{padding-right:0;width:100%}.story-content h2,.about-bottom h2{font-size:clamp(49px,11vw,69px)}.about-statement{padding:80px 0}.about-statement h2{font-size:clamp(55px,12vw,78px)}.about-bottom-grid>div:first-child{height:340px;width:100%}.about-bottom-grid>div:last-child{padding:0}.visit-info-grid{display:block}.visit-info-grid>div:first-child{margin-bottom:40px}.visit-detail-cards{grid-template-columns:1fr;gap:12px}.visit-card:last-child{grid-column:auto}.faq-section{padding:83px 0}.faq-grid{display:block}.faq-grid h2{margin-bottom:29px;font-size:60px}.faq-list{padding-right:0}.simple-cta{padding:78px 0}.simple-cta h2{font-size:50px}.footer-grid{grid-template-columns:1fr 1fr;gap:45px 20px;padding-bottom:45px}.footer-lead{grid-column:1/3}.footer-lead h2{font-size:55px}.footer-logo{width:115px;height:110px}.footer-column{padding-top:0}.footer-seo{font-size:11px}.footer-bottom{flex-wrap:wrap}.not-found{padding:80px 0 120px}.not-found h1{font-size:56px}}
@media(max-width:380px){.hero h1{font-size:51px}.hero-actions{align-items:flex-start;flex-direction:column}.hero-art{height:420px;min-height:420px}.hero-main-image{height:357px}.hero-secondary-image{height:175px}.gallery-filters button{padding-inline:10px;font-size:11px}.category-card{height:270px}.category-card:last-child{height:195px}.category-card strong{font-size:24px}.photo-grid,.gallery-page .photo-grid,.gallery-page .photo-grid.is-filtered{grid-auto-rows:170px}.footer-grid{grid-template-columns:1fr}.footer-lead{grid-column:auto}.footer-column{gap:8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important;transition-delay:0ms!important}.motion-ready [data-reveal],.motion-ready [data-split] .word-unit{opacity:1!important;transform:none!important;clip-path:none!important;filter:none!important}}

/* A mobile booking shortcut stays one tap away without hiding the menu. */
.mobile-book-link{display:none}
@media(max-width:680px){.mobile-book-link{display:inline-flex;align-items:center;justify-content:center;min-height:37px;padding:8px 17px;background:#f0d4e5;font-size:12px;font-weight:700;line-height:1;margin-left:auto}.menu-toggle{margin-left:0}}
/* Gentle depth shift in the hero, disabled automatically for reduced-motion visitors. */
@media(prefers-reduced-motion:no-preference){.hero-main-image img{transform:translate3d(0,var(--hero-parallax,0px),0) scale(1.04)}.hero-main-image:hover img{transform:translate3d(0,var(--hero-parallax,0px),0) scale(1.075)}}
/* Intentionally resolve the featured gallery's six-photo mosaic on narrow screens. */
@media(max-width:680px){
 .photo-grid-featured{grid-template-rows:240px 190px 190px 230px}
 .photo-grid-featured .photo-tile:nth-child(1){grid-column:1;grid-row:1/3}
 .photo-grid-featured .photo-tile:nth-child(2){grid-column:2;grid-row:1}
 .photo-grid-featured .photo-tile:nth-child(3){grid-column:2;grid-row:2}
 .photo-grid-featured .photo-tile:nth-child(4){grid-column:1;grid-row:3}
 .photo-grid-featured .photo-tile:nth-child(5){grid-column:2;grid-row:3}
 .photo-grid-featured .photo-tile:nth-child(6){grid-column:1/3;grid-row:4}
}

/* Designer credit, intentionally restrained and consistent across all pages. */
.footer-bottom-links{display:flex;align-items:center;justify-content:flex-end;gap:clamp(22px,3vw,44px);flex-wrap:wrap}
.footer-credit{white-space:nowrap;text-decoration:none!important;transition:color .25s ease}
.footer-credit strong{font-weight:700;color:#fff;text-decoration:underline;text-decoration-color:rgba(255,255,255,.25);text-underline-offset:4px;transition:color .25s ease,text-decoration-color .25s ease}
.footer-credit:hover,.footer-credit:focus-visible{color:#fff}
.footer-credit:hover strong,.footer-credit:focus-visible strong{color:var(--blush);text-decoration-color:var(--blush)}
@media(max-width:680px){.footer-bottom-links{width:100%;justify-content:space-between;gap:14px}.footer-credit{font-size:11px}}
@media(max-width:380px){.footer-bottom-links{gap:10px}.footer-credit{font-size:10px}}

/* V3: Heading clipping audit. Playfair's ascenders/descenders must never be sliced
   by a per-word animation mask; transition the glyphs instead of cropping them. */
.word-shell{overflow:visible!important;display:inline-block;vertical-align:baseline;padding:0!important;margin:0!important;clip-path:none!important}
.word-unit{overflow:visible!important;vertical-align:baseline;backface-visibility:visible}
h1,h2,h3,.category-card strong{overflow:visible;overflow-wrap:normal}
h1,h2{line-height:1.19; text-wrap:pretty}
.hero h1,.statement-grid h2,.about-statement h2{line-height:1.2}
/* Extra room for italic serif overhangs at the edge of grid tracks. */
.hero-copy,.page-intro-grid>div:first-child,.story-content,.statement-grid,.footer-lead{min-width:0}
/* The supplied mark already contains its own J&R name: don't repeat it alongside. */
.brand>img{width:112px;height:75px;object-fit:contain}
.brand{gap:0}
@media(max-width:680px){.brand>img{width:95px;height:65px}}
/* Multiple booking calendars, clearly differentiated. */
.location-notice{background:#f1dfeb;color:var(--ink);padding:15px 0;font-size:14px;line-height:1.55}
.location-notice a{text-decoration:underline;text-underline-offset:3px;font-weight:700}
.location-switch{background:#f2e0eb}
.location-switch-inner{display:grid;grid-template-columns:1.1fr 1fr;gap:7%;align-items:center}
.location-switch h2{font-size:clamp(43px,4.7vw,75px);line-height:1.22;margin-bottom:24px}
.location-switch p{font-size:17px;color:var(--ink-soft);max-width:490px}
.location-options{display:grid;gap:13px}
.location-option{display:flex;flex-direction:column;gap:6px;background:#fff;padding:27px 29px;border:1px solid #e2cddd;transition:border-color .25s,transform .3s}
.location-option:hover{transform:translateY(-3px);border-color:#9c6686}
.location-option strong{font-size:19px;font-weight:600}
.location-option span{font-size:14px;color:#77516a}
.location-option.is-primary{border-left:5px solid #935a7b}
.service-note{margin-top:36px;padding:26px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:25px;align-items:center}
.service-note p{max-width:570px;color:var(--muted)}
@media(max-width:780px){.location-switch-inner{display:block}.location-options{margin-top:26px}.location-switch h2{font-size:clamp(43px,10vw,67px)}.service-note{display:block}.service-note .button{margin-top:23px}}

/* Layout audit: percentages plus gaps previously exceeded the viewport on tablet. */
.about-story-grid{grid-template-columns:minmax(0,43fr) minmax(0,57fr);gap:clamp(24px,4vw,60px)}
.detail-price-grid{grid-template-columns:minmax(0,39fr) minmax(0,61fr);gap:clamp(20px,3vw,35px)}
.faq-grid{grid-template-columns:minmax(0,43fr) minmax(0,57fr)}
@media(max-width:680px){.about-story-grid{display:flex;flex-direction:column;gap:38px}.detail-price-grid,.faq-grid{display:block}}

/* Last tablet overflow fix in About photo-and-copy composition. */
.about-bottom-grid{grid-template-columns:minmax(0,46fr) minmax(0,54fr);gap:clamp(24px,4vw,65px)}
@media(max-width:680px){.about-bottom-grid{display:flex;flex-direction:column;gap:38px}}

/* V4 motion fix: hide unsplit copy *before* first paint, never reset a visible heading.
   The JS marks each heading as split once before its one-shot reveal begins. */
.motion-ready [data-split]:not(.is-split){visibility:hidden}
.motion-ready [data-split].is-split{visibility:visible}
/* Remove the navigation fade; it duplicated the entrance of the destination hero. */

/* V4: The supporting hero image now softly fades in instead of repeating
   the main image's upward travel. This creates one deliberate entrance. */
.hero-secondary-image{animation:hero-secondary-fade .9s .36s both ease-out}
@keyframes hero-secondary-fade{from{opacity:0}to{opacity:1}}
