:root{--background:#fffdfb;--surface:#fff;--surface-muted:#f9f6f0;--text:#282323;--text-muted:#6e6767;--primary:#c0002b;--primary-hover:#a00024;--accent:#f64f5e;--border:#e8e2d9;--success:#166534;--warning:#854d0e;--danger:#b91c1c;--font-serif:Georgia,Cambria,"Times New Roman",serif;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;--content-max-width:1240px}*{box-sizing:border-box}body{margin:0;background:var(--background);color:var(--text);font-family:var(--font-sans);line-height:1.65}html{scroll-behavior:smooth;scroll-padding-top:110px}h1,h2,h3,p{margin-top:0}.font-serif,h1,h2,h3{font-family:var(--font-serif);font-weight:400;line-height:1.14;letter-spacing:-.035em}h1{font-size:clamp(2.7rem,5vw,4.8rem);margin-bottom:1.5rem}h2{font-size:clamp(2rem,3.6vw,3.4rem);margin-bottom:1.4rem}h3{font-size:1.65rem}em{color:var(--primary);font-weight:400}p{color:var(--text-muted);max-width:68ch}a{color:inherit;text-decoration:none}button{font:inherit}a,button{touch-action:manipulation}a:hover{color:var(--primary)}:focus-visible{outline:3px solid var(--primary);outline-offset:5px}img{display:block;max-width:100%;height:auto}hr{border:0;border-top:1px solid var(--border);margin:1.5rem 0}.container{width:min(100% - 64px,var(--content-max-width));margin-inline:auto}.section{padding-block:88px}.split{display:grid;grid-template-columns:1fr 1fr;grid-gap:80px;gap:80px;align-items:center}.split>*{min-width:0}.eyebrow{font-family:var(--font-sans);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;font-weight:650;color:var(--primary);margin-bottom:22px}.small{font-size:.85rem}.readable{max-width:620px}.actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:28px}.actions,.button{align-items:center}.button{display:inline-flex;justify-content:center;gap:18px;min-height:48px;padding:13px 24px;border:1px solid transparent;border-radius:2px;font-size:.85rem;font-weight:600;text-align:center;cursor:pointer;transition:background .18s,color .18s}.button-primary{background:var(--primary);color:var(--background)}.button-primary:hover{background:var(--primary-hover);color:var(--background)}.button-secondary{background:var(--background);color:var(--primary)}.button-outline{background:transparent;border-color:var(--text-muted);color:var(--text)}.button-outline:hover{border-color:var(--primary);color:var(--primary)}.button-text{padding-inline:4px;border-bottom-color:var(--primary);color:var(--primary)}.button-sm{padding:10px 18px;min-height:44px}.button:disabled{opacity:.6;cursor:not-allowed}.text-link{display:inline-block;font-size:.85rem;color:var(--primary);border-bottom:1px solid var(--primary);padding-bottom:5px}.site-header{position:-webkit-sticky;position:sticky;top:0;background:var(--background);z-index:20;border-bottom:1px solid var(--border)}.header-inner{height:96px;justify-content:space-between;gap:24px}.brand,.header-inner{display:flex;align-items:center}.brand{gap:12px;font-family:var(--font-serif);font-size:1.2rem;line-height:1.2}.brand small{display:block;font:.6rem var(--font-sans);letter-spacing:.22em;margin-top:7px}.desktop-nav{display:flex;gap:28px;font-size:.8rem}.mobile-navigation{display:none}.menu-toggle{min-width:44px;min-height:44px;background:transparent;border:1px solid var(--border);padding:8px 12px;color:var(--text)}.mobile-dialog{border:0;padding:28px;background:var(--background);color:var(--text);width:min(90vw,420px);height:100dvh;max-height:100dvh;margin:0 0 0 auto}.mobile-dialog::-webkit-backdrop{background:rgb(40 35 35/.5)}.mobile-dialog::backdrop{background:rgb(40 35 35/.5)}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.dialog-top .eyebrow{margin:0}.mobile-dialog nav{display:flex;flex-direction:column;gap:12px;margin-top:40px}.mobile-dialog nav>a{padding:12px 6px;font-size:1.2rem}.mobile-dialog nav>.button{padding:16px;margin-top:24px}.hero{display:grid;grid-template-columns:1.12fr 1fr;grid-gap:60px;gap:60px;align-items:center;padding-block:64px 72px}.hero h1{font-size:clamp(3rem,5vw,4.5rem)}.hero-tagline{font-family:var(--font-serif);font-size:1.32rem;color:var(--text)}.hero-description{max-width:450px;font-size:.95rem}.hero-note{display:flex;align-items:center;gap:14px;margin-top:40px;font-size:.7rem;color:var(--text-muted);letter-spacing:.04em}.rule{height:1px;width:42px;background:var(--primary)}.brand-panel{min-height:490px;background:var(--surface-muted);border:1px solid var(--border);border-radius:220px 220px 0 0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:42px 26px 26px}.brand-panel img{width:80%;margin-block:22px}.panel-caption,.panel-foot{font-size:.6rem;letter-spacing:.2em;color:var(--text-muted);text-align:center}.specialty-strip{border-block:1px solid var(--border);padding:22px 0}.specialty-strip .container{display:flex;justify-content:space-between;gap:22px;font-size:.73rem;letter-spacing:.09em;text-transform:uppercase}.specialty-strip span{color:var(--primary)}.section-top{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:38px}.section-top h2{margin:0}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:24px;gap:24px;margin-top:32px}.service-card{padding:32px 28px;border:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;min-width:0}.service-card .eyebrow{font-size:.62rem;margin-bottom:20px}.service-card h3{overflow-wrap:anywhere}.service-card p{font-size:.9rem}.service-meta{font-size:.82rem;border-top:1px solid var(--border);padding-top:20px;margin-top:auto}.card-links,.service-meta{display:flex;justify-content:space-between;gap:12px}.card-links{flex-wrap:wrap;font-size:.72rem;color:var(--primary);margin-top:20px}.card-links a{text-decoration:underline;text-underline-offset:4px}.editorial-band{padding-block:88px}.artist-panel,.editorial-band{background:var(--surface-muted)}.artist-panel{padding:70px 36px;text-align:center;border:1px solid var(--border)}.artist-panel p{margin-inline:auto}.artist-name{font-family:var(--font-serif);font-style:italic;font-size:clamp(3rem,7vw,5.5rem);color:var(--primary);display:block;margin-bottom:18px}.fine-rule{width:48px;height:1px;display:block;margin:32px auto}.cta-section,.fine-rule{background:var(--primary)}.cta-section{padding-block:80px}.cta-section,.cta-section .eyebrow,.cta-section em,.cta-section p{color:var(--background)}.cta-section .button-outline{color:var(--background);border-color:var(--background)}.cta-section :focus-visible,.site-footer :focus-visible{outline-color:var(--background)}.page-intro{max-width:800px;padding-bottom:44px}.page-intro h1{max-width:760px}.intro-copy{max-width:560px}.filters{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 40px}.filters a{border:1px solid var(--border);padding:10px 18px;font-size:.8rem}.filters a[aria-current]{background:var(--primary);color:var(--background);border-color:var(--primary)}.pagination{display:flex;gap:24px;justify-content:center;flex-wrap:wrap;margin-top:36px;font-size:.85rem}.pagination a{text-decoration:underline}.empty-state{background:var(--surface-muted);border:1px solid var(--border);padding:48px;max-width:100%}.empty-state h2,.empty-state h3{font-size:1.8rem}.breadcrumbs{display:flex;flex-wrap:wrap;gap:12px;font-size:.8rem;margin-bottom:48px;color:var(--text-muted)}.detail-grid{display:grid;grid-template-columns:1.5fr 1fr;grid-gap:80px;gap:80px}.detail-grid>*{min-width:0}.description{white-space:pre-line}.service-summary{padding:36px;background:var(--surface-muted);border:1px solid var(--border)}.service-summary .price{font-family:var(--font-serif);font-size:2.4rem;color:var(--text)}.service-summary .small{margin-top:18px}.values-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:40px;gap:40px;margin-top:80px;border-top:1px solid var(--border);padding-top:48px}.values-grid h2{font-size:1.8rem}.gallery-empty{border-block:1px solid var(--border);padding-block:48px}.gallery-brand{background:var(--surface-muted);padding:48px;display:flex;justify-content:center}.contact-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:64px;gap:64px}.contact-panel{background:var(--surface-muted);padding:40px;align-self:start}.contact-phone{display:block;font-family:var(--font-serif);font-size:1.65rem;margin-bottom:24px}.contact-card{border:1px solid var(--border);padding:28px;margin-bottom:20px}.contact-card address{font-style:normal;color:var(--text-muted);margin-bottom:16px}.contact-card .eyebrow{margin-top:28px}.hours{font-size:.83rem;margin:0}.hours>div{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--border)}.hours dd{margin:0;text-align:right}.visit-heading{font-size:1.8rem}.site-footer{background:var(--text);color:var(--background);padding-top:64px}.site-footer p{color:#d6d3d1}.site-footer .eyebrow{color:#ffadb5}.footer-grid{display:grid;grid-template-columns:1.5fr .7fr 1fr;grid-gap:64px;gap:64px;padding-bottom:48px}.footer-grid nav,.footer-grid>div:last-child{display:flex;flex-direction:column;align-items:flex-start;gap:12px;font-size:.85rem}.footer-grid img{margin-bottom:20px}.footer-brand{font-family:var(--font-serif);font-size:1.35rem}.site-footer a:hover{color:#ffadb5}.footer-bottom{border-top:1px solid #625858;padding-block:24px;display:flex;justify-content:space-between;gap:24px;font-size:.7rem;color:#d6d3d1}.skip-link{position:fixed;top:8px;left:8px;transform:translateY(-200%);background:var(--background);padding:12px;z-index:100}.skip-link:focus{transform:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.booking-shell{max-width:900px}.booking-progress{display:grid;grid-template-columns:repeat(5,1fr);list-style:none;padding:0;margin:0 0 48px;border-bottom:1px solid var(--border)}.booking-progress li{padding:12px 8px;color:var(--text-muted);font-size:.75rem;text-align:center}.booking-progress li span{display:block;font-family:var(--font-serif);font-size:1.25rem}.booking-progress li[aria-current=step]{color:var(--primary);border-bottom:3px solid var(--primary)}.booking-step h1{font-size:clamp(2.3rem,5vw,3.8rem)}.booking-options{display:grid;grid-gap:14px;gap:14px}.booking-option{display:flex;align-items:center;gap:16px;border:1px solid var(--border);padding:20px;cursor:pointer;background:var(--surface)}.booking-option:has(input:checked){border:2px solid var(--primary);padding:19px}.booking-option input{width:20px;height:20px;accent-color:var(--primary)}.booking-option small,.booking-option strong{display:block}.booking-option small{color:var(--text-muted);margin-top:4px}.booking-nav{display:flex;justify-content:space-between;gap:16px;margin-top:36px}.booking-nav .button:last-child{margin-left:auto}.booking-field{display:grid;grid-gap:7px;gap:7px;font-size:.84rem;font-weight:600}.booking-field input,.booking-field textarea{min-height:50px;width:100%;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:11px 13px;font:inherit;border-radius:0}.booking-field textarea{min-height:120px;resize:vertical}.booking-field-helper{display:block;font-size:.78rem;font-weight:400;color:var(--text-muted);line-height:1.4;margin-top:-2px;margin-bottom:4px}.booking-checkbox-field{display:flex;align-items:flex-start;gap:12px;font-size:.85rem;font-weight:400;color:var(--text);cursor:pointer;min-height:44px;padding:6px 0}.booking-checkbox-field input[type=checkbox]{width:20px;height:20px;min-width:20px;min-height:20px;accent-color:var(--primary);margin-top:2px;cursor:pointer}.booking-checkbox-field span{line-height:1.45}.booking-privacy-notice{padding:14px 16px;margin-bottom:24px;background:var(--surface-muted);border-left:3px solid var(--primary);font-size:.84rem;line-height:1.45;color:var(--text-muted)}.booking-privacy-notice p{margin:0}.booking-fields{display:grid;grid-template-columns:1fr 1fr;grid-gap:22px;gap:22px}.booking-fields .full{grid-column:1/-1}.slot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;margin-top:24px}.slot-grid button{min-height:58px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}.slot-grid button.selected{border:2px solid var(--primary);color:var(--primary)}.slot-grid small{display:block;color:var(--text-muted);font-size:.65rem}.booking-notice{padding:16px 18px;margin-bottom:24px;border-left:4px solid var(--primary);background:var(--surface-muted)}.booking-notice.error{border-color:var(--danger)}.booking-notice small{display:block;margin-top:5px}.booking-review{display:grid;grid-template-columns:minmax(130px,.6fr) 1.4fr;border-block:1px solid var(--border)}.booking-review dd,.booking-review dt{padding:14px 4px;margin:0;border-bottom:1px solid var(--border)}.booking-review dt{color:var(--text-muted)}.confirmation-lead{color:var(--success);font-weight:650}.booking-retry{border:0;background:transparent;margin:18px 18px 0 0}.booking-empty{padding:24px;background:var(--surface-muted)}@media (max-width:1050px){.desktop-cta,.desktop-nav{display:none}.mobile-navigation{display:block}.detail-grid,.split{gap:40px}.hero{gap:32px}.brand-panel{min-height:400px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-grid{gap:32px}.contact-grid{gap:28px}.specialty-strip .container{flex-wrap:wrap;justify-content:center}}@media (max-width:767px){.container{width:calc(100% - 40px)}.section{padding-block:56px}.header-inner{height:80px}.brand{font-size:1rem;gap:8px}.brand img{width:42px}.hero{grid-template-columns:1fr;padding-block:44px;gap:40px}.hero h1{font-size:2.9rem}.brand-panel{min-height:360px;max-width:440px;width:100%;margin-inline:auto;padding:30px}.brand-panel img{max-width:260px}.hero-note{margin-top:30px}.contact-grid,.detail-grid,.service-grid,.split,.values-grid{grid-template-columns:1fr;gap:28px}.section-top{align-items:flex-start;flex-direction:column}.cta-section,.editorial-band{padding-block:56px}.artist-panel{padding:44px 24px}.footer-grid{grid-template-columns:1fr 1fr;gap:32px}.footer-grid>div:first-child{grid-column:1/-1}.footer-bottom{flex-direction:column;gap:8px}.contact-panel,.empty-state{padding:28px 22px}.service-summary{padding:28px}.page-intro{padding-bottom:28px}.values-grid{margin-top:48px}.gallery-brand{padding:32px}.contact-phone{font-size:1.5rem}.service-card{padding:28px}.hours{font-size:.76rem}.specialty-strip .container{font-size:.6rem;gap:12px}.specialty-strip span{display:none}.booking-progress li{font-size:0}.booking-progress li span{font-size:1rem}.booking-fields{grid-template-columns:1fr}.booking-fields .full{grid-column:auto}.slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-review{grid-template-columns:1fr}.booking-review dt{padding-bottom:0;border-bottom:0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{transition:none!important;animation:none!important}}.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:28px;gap:28px}.portfolio-item{margin:0;min-width:0;background:var(--surface);border:1px solid var(--border)}.portfolio-item img{width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--surface-muted)}.portfolio-item figcaption{display:grid;grid-gap:7px;gap:7px;padding:20px}.portfolio-item figcaption span{color:var(--primary);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}.portfolio-item figcaption strong{font-family:var(--font-serif);font-size:1.25rem;font-weight:400}.portfolio-item figcaption p{margin:0;font-size:.85rem}@media (max-width:1050px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:767px){.portfolio-grid{grid-template-columns:1fr}}.promotion-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:1.5rem;gap:1.5rem}.promotion-card{border:1px solid #e8e2d9;padding:1.5rem;border-radius:8px;overflow-wrap:anywhere}.promotion-price{font-size:1.5rem;font-weight:600;color:#a00025}@media(max-width:1000px){.promotion-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.promotion-grid{grid-template-columns:1fr}}