
:root{--bg:#222324;--panel:#2c2d2f;--text:#f5f0ed;--muted:#c2babc;--pink:#ed669a;--magenta:#b91c59;--line:#4b4146}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--pink);outline-offset:5px}button{cursor:pointer}header{border-bottom:1px solid var(--line);padding:22px 5%;display:flex;align-items:center;justify-content:space-between;gap:30px;background:var(--bg)}.brand{display:flex;align-items:center;gap:13px;flex-shrink:0}.brand img{width:62px;height:62px}.brand-name{font-family:Georgia,serif;font-size:24px;letter-spacing:2px;line-height:1.2}.brand small{display:block;font:9px Arial,sans-serif;letter-spacing:4px;margin-top:8px}nav{display:flex;align-items:center;gap:25px}nav a{font-size:13px;color:var(--muted);padding:9px 0;border-bottom:1px solid transparent}nav a:hover,nav a[aria-current=page]{color:var(--text);border-color:var(--pink)}.menu{display:none;border:1px solid var(--line);background:transparent;padding:8px 14px}.wrap{max-width:1240px;margin:auto;padding:0 5%}.page{padding:68px 0 80px;min-height:70vh}.page[hidden]{display:none}.eyebrow{text-transform:uppercase;letter-spacing:3px;font-size:10px;font-weight:700;color:var(--pink);margin:0 0 26px;display:flex;align-items:center;gap:13px}.eyebrow:before{content:'';width:28px;height:1px;background:var(--pink)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400}h1{font-size:clamp(45px,6.2vw,84px);line-height:1.05;letter-spacing:-3px;margin-bottom:26px}h1 em,h2 em{font-weight:400;color:var(--pink)}h2{font-size:clamp(32px,4vw,48px);line-height:1.15;letter-spacing:-1.2px}h3{font-size:27px;line-height:1.3;margin-bottom:14px}.intro{max-width:580px;color:var(--muted);font-size:17px}.hero{display:grid;grid-template-columns:1.12fr 1fr;align-items:center;gap:7%;padding:6px 0 52px}.hero .intro{max-width:440px}.actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:30px}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:14px 22px;background:var(--magenta);color:white;font-size:13px;font-weight:700;border:1px solid var(--magenta);border-radius:2px;transition:background .2s}.button:hover{background:#d02769}.button.secondary{background:transparent;border-color:#75656e}.text-link{font-size:13px;border-bottom:1px solid #b48c9c;padding-bottom:5px}.arrow{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.4}.emblem{position:relative;background:#2c2d2f;aspect-ratio:1/1.06;border:1px solid #5b3b49;border-radius:48% 48% 2px 2px;display:flex;align-items:center;justify-content:center;flex-direction:column;overflow:hidden}.emblem:after{content:'';position:absolute;inset:16px;border:1px solid #55404a;border-radius:48% 48% 0 0;pointer-events:none}.emblem img{width:76%;max-width:360px;display:block}.emblem .signature{font:12px Georgia,serif;letter-spacing:5px;text-align:center;margin-top:8px}.emblem .under{font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-top:8px}.hero-note{font-size:11px;letter-spacing:1px;margin-top:24px;color:#aca1a7}.intro-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0;display:grid;grid-template-columns:1fr 1fr 1fr;gap:30px}.intro-strip strong{display:block;font-family:Georgia,serif;font-weight:400;font-size:22px;margin-bottom:4px}.intro-strip span{font-size:12px;color:var(--muted)}.home-bottom{display:flex;align-items:center;justify-content:space-between;gap:40px;padding-top:37px}.home-bottom p{max-width:610px;color:var(--muted);font-size:14px;margin:0}.home-bottom a{white-space:nowrap}.page-top{margin-bottom:44px}.page-top h1{font-size:clamp(44px,6vw,68px)}.split{display:grid;grid-template-columns:1.2fr 1fr;gap:8%;align-items:start}.note{border-left:2px solid var(--pink);padding:14px 20px;background:#30282c;font-size:13px;color:#d6c5cd;margin:28px 0}.service-group{margin-bottom:30px}.service-group h2{font-size:29px;margin-bottom:12px}.price-row{display:flex;justify-content:space-between;gap:25px;padding:17px 0;border-bottom:1px solid var(--line);align-items:center}.price-row p{margin:3px 0 0;color:var(--muted);font-size:12px}.price{font-size:11px;white-space:nowrap;color:var(--pink)}.aside{padding:30px;background:var(--panel);border-top:2px solid var(--magenta)}.aside p{color:var(--muted);font-size:14px}.aside h3{font-size:29px}.small{font-size:12px;color:var(--muted)}.filters{display:flex;gap:12px;margin-bottom:28px;flex-wrap:wrap}.filters button{border:1px solid var(--line);background:none;padding:8px 17px;font-size:12px}.filters button[aria-pressed=true]{background:var(--text);color:var(--bg);border-color:var(--text)}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.gallery article[hidden]{display:none}.placeholder{min-height:245px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;border:1px solid var(--line);background:#2a272a;padding:25px;position:relative}.placeholder:before,.placeholder:after{content:'';position:absolute;width:24px;height:24px;border:1px solid #8c5168}.placeholder:before{top:13px;left:13px;border-right:0;border-bottom:0}.placeholder:after{bottom:13px;right:13px;border-top:0;border-left:0}.placeholder b{font:40px Georgia,serif;color:#b98197;font-weight:400}.placeholder span{font-size:10px;text-transform:uppercase;letter-spacing:2px;color:var(--muted);margin-top:12px}.gallery h3{font-size:21px;margin:15px 0 3px}.gallery p{font-size:12px;color:var(--muted)}.portrait{min-height:400px}.prose p{color:var(--muted);max-width:600px}.prose .sign{font:italic 36px Georgia,serif;color:var(--pink);margin-top:25px}.review-layout{display:grid;grid-template-columns:1fr 1fr;gap:32px}.review-card{border:1px solid var(--line);padding:36px}.review-card .quote{font:70px Georgia,serif;color:var(--pink);height:60px;line-height:1}.review-card p{color:var(--muted);font-size:15px}.contact-list{margin-top:25px}.contact-list>div{padding:18px 0;border-bottom:1px solid var(--line)}.contact-list dt{color:var(--pink);font-size:10px;text-transform:uppercase;letter-spacing:2px}.contact-list dd{margin:6px 0 0;font-size:19px}details{padding:18px 0;border-bottom:1px solid var(--line);font-size:14px}summary{cursor:pointer}details p{margin:15px 0 0;color:var(--muted)}footer{padding:25px 5% 110px;border-top:1px solid var(--line);font-size:11px;color:#b6acb1;display:flex;align-items:center;justify-content:space-between;gap:25px}footer a{margin-left:20px}.booking{position:fixed;bottom:23px;right:28px;z-index:20;box-shadow:0 5px 28px #0006;padding:17px 23px;border:1px solid #f079a5}.booking svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.6}.skip{position:absolute;top:-100px;left:15px;background:white;color:black;padding:10px;z-index:99}.skip:focus{top:10px}.draft{font-size:10px;letter-spacing:1px;color:#b6acb1}.review-note{margin-top:30px}.no-js{background:#6c2040;padding:15px}
@media(min-width:1500px){header{padding-left:calc((100vw - 1240px)/2 + 62px);padding-right:calc((100vw - 1240px)/2 + 62px)}}
@media(max-width:1000px){header{gap:15px}.brand-name{font-size:19px}nav{gap:14px}nav a{font-size:11px}.brand img{width:48px;height:48px}.hero{gap:4%}h1{letter-spacing:-2px}}
@media(max-width:760px){header{padding:15px 6%;flex-wrap:wrap}.menu{display:block}nav{display:none;width:100%;flex-direction:column;align-items:stretch;gap:0}nav.open{display:flex}nav a{padding:12px 0;font-size:14px}.wrap{padding:0 7%}.page{padding:40px 0 48px}.hero{grid-template-columns:1fr;gap:32px;padding-bottom:32px}h1{font-size:55px}.hero .intro{font-size:16px}.emblem{width:min(100%,370px);margin:auto;aspect-ratio:1.2}.emblem img{width:60%;max-width:240px}.emblem .signature{font-size:10px}.emblem .under{font-size:8px}.hero-note{margin-top:18px}.intro-strip{grid-template-columns:1fr;gap:18px;padding:24px 0}.intro-strip strong{font-size:21px}.home-bottom{align-items:start;flex-direction:column;gap:20px;padding-top:26px}.split{grid-template-columns:1fr;gap:30px}.gallery{grid-template-columns:1fr 1fr;gap:18px}.placeholder{min-height:190px;padding:15px}.placeholder span{font-size:8px}.placeholder b{font-size:32px}.gallery h3{font-size:18px}.portrait{min-height:290px}.review-layout{grid-template-columns:1fr;gap:22px}.review-card{padding:27px}.booking{bottom:14px;left:6%;right:6%;padding:16px}.booking svg{width:20px}footer{display:block;padding:23px 7% 105px}footer div+div{margin-top:13px}footer a{margin:0 20px 0 0}.actions{gap:20px}.page-top{margin-bottom:30px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Production refinements to the approved Phoenix 47 design. */
:root{--header-height:107px;--header:#2c2d2f}html{scroll-padding-top:calc(var(--header-height) + 20px)}body{overflow-wrap:break-word}header{position:sticky;top:0;z-index:30;background:var(--header)}.brand img{mix-blend-mode:normal}main:focus{outline:none}.menu{min-height:44px}nav a{min-height:44px;display:flex;align-items:center}main .page{min-width:0}.hero-photo{width:100%;height:100%;object-fit:cover;object-position:50% 48%}.emblem{isolation:isolate;min-width:0}.emblem img.hero-photo{width:100%;max-width:none;position:absolute;inset:0}.emblem:after{border-color:#ffffff70;z-index:2}.emblem .photo-caption{position:absolute;bottom:0;left:0;right:0;padding:60px 25px 29px;text-align:center;background:linear-gradient(transparent,#181517ed);z-index:1}.photo-caption .signature{color:#fff}.photo-caption .under{color:#eee}.portrait-real{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 40%;border-radius:48% 48% 2px 2px;border:1px solid var(--line);display:block}.gift-note{font-size:13px;color:var(--muted);margin-top:18px}.price-table{width:100%;border-collapse:collapse;margin-bottom:30px}.price-table caption{text-align:left;font:29px Georgia,serif;color:var(--text);margin-bottom:12px}.price-table th,.price-table td{padding:15px 0;border-bottom:1px solid var(--line);vertical-align:top}.price-table th{text-align:left;font-weight:400;padding-right:20px}.price-table td{text-align:right;color:var(--pink);white-space:nowrap;font-size:14px}.colour-notes{font-size:14px;color:var(--muted)}.colour-notes p{margin-bottom:15px}.colour-notes h2{font-size:29px}.socials{display:flex;gap:10px}.social-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;margin:0}.social-icon:hover{color:var(--pink);border-color:var(--pink)}.social-icon svg{width:19px;height:19px;fill:currentColor}.footer-links{display:flex;align-items:center;flex-wrap:wrap;gap:18px}footer a{margin:0}footer .credit{font-size:10px;color:var(--muted);margin-top:10px;display:block}footer .credit a{text-decoration:underline;text-underline-offset:3px}.booking{bottom:max(16px,env(safe-area-inset-bottom));min-height:52px}.tabs{display:flex;gap:12px;margin-bottom:28px}.tabs a{border:1px solid var(--line);padding:10px 22px;font-size:13px;min-height:44px}.tabs [aria-selected=true]{background:var(--text);color:var(--bg);border-color:var(--text)}.gallery-panel{min-width:0;margin-bottom:35px}.gallery-panel h2{font-size:26px}.js .gallery-panel>h2{display:none}.carousel{min-width:0}.track{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-color:#ac5376 var(--panel);scrollbar-width:thin;padding-bottom:15px;overscroll-behavior-x:contain;touch-action:pan-x pan-y pinch-zoom}.track:focus-visible{outline:2px solid var(--pink);outline-offset:5px}.slide{flex:0 0 calc((100% - 44px)/3);min-width:0;scroll-snap-align:start;margin:0}.photo-link{display:block;position:relative;background:var(--panel);border:1px solid var(--line)}.photo-link img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;object-position:50% 38%}.photo-link .view-label{position:absolute;bottom:10px;right:10px;background:#222324e6;color:white;padding:5px 10px;font-size:10px;letter-spacing:1px}.slide figcaption{font-size:12px;color:var(--muted);padding:12px 0 3px}.carousel-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px}.carousel-tools[hidden]{display:none}.carousel-tools button{background:transparent;border:1px solid #79616b;padding:8px 17px;min-height:44px;font-size:12px;border-radius:2px}.carousel-tools button:hover{border-color:var(--pink)}.carousel-tools button:disabled{opacity:.4;cursor:default}.carousel-count{font-size:11px;color:var(--muted)}.control-group{display:flex;gap:10px}.gallery-hint{font-size:12px;color:var(--muted);margin:18px 0 0}.reviews-track{align-items:stretch}.review-slide{padding:27px 25px;border:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column;min-height:330px}.review-slide blockquote{font-family:Georgia,serif;font-size:21px;line-height:1.5;margin:18px 0 25px;flex:1}.review-source{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--pink)}.review-name{font-size:13px;display:block}.review-excerpt{font-size:11px;color:var(--muted)}.review-more{display:flex;gap:25px;flex-wrap:wrap;margin-top:30px}.privacy-copy{max-width:780px}.privacy-copy h2{font-size:27px;margin:32px 0 14px}.privacy-copy p,.privacy-copy li{font-size:15px;color:var(--muted)}.privacy-copy a{text-decoration:underline;text-underline-offset:3px}.lightbox{border:1px solid var(--line);padding:20px;background:var(--bg);color:var(--text);max-width:min(94vw,1050px);max-height:92dvh}.lightbox::backdrop{background:#000d}.lightbox img{display:block;max-width:100%;max-height:72dvh;object-fit:contain;margin:auto}.lightbox button{background:var(--panel);border:1px solid var(--line);padding:8px 18px;min-height:44px}.lightbox-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:15px}.lightbox-top p{margin:0;font-size:13px}.lightbox-footer{font-size:11px;color:var(--muted);margin:12px 0 0}.no-js-hint{font-size:12px;color:var(--muted)}.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}button:focus-visible,.tabs a:focus-visible{outline:3px solid var(--pink);outline-offset:4px}.page :target{scroll-margin-top:calc(var(--header-height) + 20px)}.brand-name{white-space:nowrap}.visit-line{font-size:14px;color:var(--muted)}[hidden]{display:none!important}
@media(min-width:761px){.track{cursor:grab}.track.dragging{cursor:grabbing;user-select:none;scroll-snap-type:none}.track.dragging a{pointer-events:none}}
@media(max-width:1000px){.slide{flex-basis:calc((100% - 22px)/2)}.reviews-track .slide{flex-basis:calc((100% - 22px)/2)}}
@media(max-width:760px){:root{--header-height:79px}header{padding:13px 6%}.js nav{display:none}.js nav.open{display:flex;max-height:calc(100dvh - 160px);overflow-y:auto}html:not(.js) nav{display:flex}.emblem{aspect-ratio:1.05;width:min(100%,420px)}.hero-photo{object-position:50% 48%}.emblem .photo-caption{padding:65px 20px 26px}.photo-caption .signature{font-size:12px}.photo-caption .under{font-size:9px}.portrait-real{max-height:570px;object-position:50% 42%}.slide{flex-basis:85%}.reviews-track .slide{flex-basis:92%}.track{gap:16px}.review-slide{min-height:340px}.price-table td{font-size:13px}.price-table th{font-size:14px}.price-table th,.price-table td{padding:14px 0}.price-table th{padding-right:12px}.footer-links{margin-top:20px;gap:16px}footer{padding-bottom:110px}.booking{left:6%;right:6%}.carousel-tools{flex-wrap:wrap}.review-more{gap:18px}.page-top h1{letter-spacing:-2px}.tabs{gap:10px}.tabs a{padding:10px 20px}.lightbox{padding:14px}.lightbox-top{align-items:start}.lightbox img{max-height:68dvh}.home-bottom{gap:20px}.home-bottom a{white-space:normal}}
@media(max-width:360px){.brand-name{font-size:17px;letter-spacing:1px}.brand small{font-size:8px;letter-spacing:3px}.brand{gap:8px}.brand img{width:42px;height:42px}.menu{padding:7px 10px}.hero h1{font-size:46px;letter-spacing:-2px}.price-table td{white-space:normal;min-width:85px}.control-group{gap:6px}.carousel-tools button{padding:8px 13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.track{scroll-behavior:auto!important}}
@media(min-width:761px) and (max-width:900px){header{padding:15px 6%;flex-wrap:wrap}.menu{display:block}nav{width:100%;flex-direction:column;align-items:stretch;gap:0}.js nav{display:none}.js nav.open{display:flex;max-height:calc(100dvh - 180px);overflow-y:auto}html:not(.js) nav{display:flex}nav a{padding:12px 0;font-size:14px}}
html:not(.js) .gallery-hint{display:none}
