:root{--paper:#f3e9dc;--ink:#3f3530;--taupe:#69594e;--muted:#756c65;--line:#d9d1c9;--wash:#e9ddce}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:5px}a:focus-visible,summary:focus-visible{outline:2px solid var(--taupe);outline-offset:6px}.skip{position:absolute;left:20px;top:-100px;background:white;padding:10px;z-index:5}.skip:focus{top:10px}.announcement{background:var(--taupe);color:white;text-align:center;padding:9px 20px;font-size:13px;letter-spacing:.06em}header{display:flex;align-items:center;justify-content:space-between;padding:28px 6%;gap:20px;border-bottom:1px solid var(--line)}.wordmark{font-size:30px;font-weight:300;letter-spacing:-1.5px;line-height:1}.wordmark span{display:block;font-size:10px;letter-spacing:2px;margin-top:10px}nav{display:flex;gap:35px;font-size:14px}.button{display:inline-flex;align-items:center;gap:30px;background:var(--taupe);color:white;padding:17px 24px;font-size:14px;transition:background .2s}.button:hover{background:var(--ink);text-decoration:none}.small{padding:12px 20px}.hero{display:grid;grid-template-columns:1.04fr 1fr;padding:60px 6% 65px;gap:4vw;align-items:center}.eyebrow{font-size:11px;letter-spacing:.17em;font-weight:600;margin:0 0 27px}.eyebrow span{padding:0 12px;color:var(--muted)}h1,h2{font-weight:300;line-height:1.07;letter-spacing:-.065em;margin:0 0 28px}h1{font-size:clamp(48px,5.8vw,88px)}h2{font-size:clamp(38px,4.3vw,64px)}em{font-family:Georgia,serif;font-weight:400;letter-spacing:-.065em}.intro{max-width:430px;color:var(--muted);font-size:16px;line-height:1.85;margin-bottom:30px}.subnote{font-size:12px;color:var(--muted);margin-top:28px;letter-spacing:.09em}.brand-visual{background:#fff;padding:20px 25px 0;border-radius:240px 240px 0 0;overflow:hidden}.brand-visual img{width:100%;height:auto;display:block}.visual-caption{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:22px 0;font-size:10px;letter-spacing:.1em}.address-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:21px 6%;display:flex;justify-content:space-between;font-size:12px;letter-spacing:.04em}.section{padding:95px 8%}.salon{display:grid;grid-template-columns:1fr 1fr;gap:10%}.salon-text p{color:var(--muted);max-width:470px}.salon-text .large{font-size:25px;font-weight:300;color:var(--ink);line-height:1.45;margin-top:0}.signature{font-family:Georgia,serif;font-style:italic;font-size:25px;margin-top:32px}.signature span{font-family:Arial,sans-serif;font-style:normal;display:block;font-size:11px;letter-spacing:.1em;margin-top:5px}.offering{background:var(--wash)}.section-top{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:40px}.section-top>p{max-width:300px;color:var(--muted);font-size:14px;padding-bottom:20px}.offer-row{display:grid;grid-template-columns:60px 1fr 1fr;align-items:center;padding:25px 0;border-top:1px solid #c8beb4}.offer-row h3{font-size:28px;font-weight:400;margin:0;letter-spacing:-.035em}.offer-row p{text-align:right;font-size:14px;color:var(--muted)}.number{font-size:12px}.note{border-top:1px solid #c8beb4;padding-top:25px;font-size:12px;color:var(--muted)}.booking{text-align:center;background:var(--taupe);color:var(--paper)}.booking h2{font-size:clamp(55px,7vw,90px)}.booking>p:not(.eyebrow){color:#ede6df}.booking-status{display:inline-block;border:1px solid #b8aaa0;padding:15px 30px;margin:15px 0;font-size:14px}.booking-contact{font-size:13px}.booking-contact a{text-decoration:underline;margin-left:10px}.contact{display:grid;grid-template-columns:1.2fr 1fr;gap:60px}.text-link{display:inline-block;margin-top:15px;border-bottom:1px solid var(--ink);font-size:14px}.contact-info{display:grid;gap:22px}.contact-info h3{font-size:11px;text-transform:uppercase;letter-spacing:.15em;margin:0 0 8px}.contact-info p{margin:0;color:var(--muted);max-width:330px}.phone{font-size:24px;letter-spacing:-.04em}footer{padding:40px 6% 20px;background:var(--wash)}.footer-top,.footer-bottom{display:flex;justify-content:space-between;gap:20px}.footer-top{align-items:center;padding:15px 0 45px}.footer-top>span{font-family:Georgia,serif;font-style:italic;font-size:23px}.footer-bottom{border-top:1px solid var(--line);padding-top:20px;font-size:11px;color:var(--muted)}details{font-size:12px;color:var(--muted);margin-top:20px;max-width:750px}summary{cursor:pointer}details p{font-size:14px}@media(max-width:800px){header{padding:24px 5%;flex-wrap:wrap}nav{order:3;width:100%;justify-content:center;padding-top:12px;gap:30px}.hero{grid-template-columns:1fr;padding:45px 6%;gap:45px}.hero-copy{max-width:550px}.brand-visual{max-width:470px;margin:auto}.hero h1{font-size:64px}.address-strip{gap:15px;flex-wrap:wrap}.address-strip>span:nth-child(2){display:none}.section{padding:65px 6%}.salon,.contact{grid-template-columns:1fr;gap:25px}.section-top{display:block}.section-top>p{padding:0}.offer-row{grid-template-columns:35px 1fr}.offer-row p{grid-column:2;text-align:left;margin:5px 0}.footer-bottom{flex-wrap:wrap}.footer-top{align-items:start;flex-direction:column}.eyebrow{font-size:10px}.small{font-size:12px;padding:10px 13px}.wordmark{font-size:26px}.wordmark span{font-size:9px}.visual-caption{font-size:9px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}} 
/* Price list */
.length-guide{background:var(--paper);border:1px solid var(--line);padding:28px;margin:0 0 32px}
.length-intro h3{font-size:22px;font-weight:400;line-height:1.3;margin:0}
.length-intro>p{font-size:13px;color:var(--muted);margin:6px 0 24px}
.lengths{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.lengths>div{position:relative;border-top:1px solid var(--line);padding-top:16px}
.length-code{position:absolute;right:0;top:15px;font-family:Georgia,serif;font-style:italic;font-size:34px;color:#b7a69b}
.lengths h4{font-weight:400;font-size:20px;margin:0}.lengths p{font-size:13px;margin:4px 30px 0 0;color:var(--muted)}
.length-help{font-size:12px;color:var(--muted);margin:22px 0 0}
.length-portrait{margin:0 0 18px;overflow:hidden}
.length-portrait img{display:block;width:400%;max-width:none;height:auto}
.lengths>div:nth-child(2) .length-portrait img{transform:translateX(-25%)}
.lengths>div:nth-child(3) .length-portrait img{transform:translateX(-50%)}
.lengths>div:nth-child(4) .length-portrait img{transform:translateX(-75%)}
.lengths-four .length-code{position:static;display:block;font-size:1.75rem;line-height:1.2;margin-bottom:6px}
.lengths-four h4{font-size:1.125rem}
.lengths-four p{margin-right:0}
@media(max-width:600px){.lengths-four{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px}}
.lengths h4{font-size:1.25rem}.lengths p{font-size:.875rem}
@media(max-width:480px){.length-guide .lengths p{font-size:.875rem}.length-guide .lengths h4{font-size:1.0625rem}}
.price-navigation{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.price-navigation a{padding:7px 13px;border:1px solid #c8beb4;font-size:12px;background:transparent}
.price-navigation a:hover{background:var(--paper);text-decoration:none}
.price-group{max-width:none;color:var(--ink);margin:0;border-top:1px solid #c8beb4;scroll-margin-top:24px}
.price-group summary{display:flex;align-items:center;gap:20px;padding:24px 0;font-size:clamp(20px,2.5vw,28px);letter-spacing:-.025em;list-style:none}
.price-group summary::-webkit-details-marker{display:none}
.price-number{font-size:11px;letter-spacing:0;color:var(--muted);min-width:26px}
.expand{margin-left:auto;font-size:27px;font-weight:300}.price-group[open] .expand{transform:rotate(45deg)}
.table-wrap{width:100%;overflow-x:auto}
.price-table{border-collapse:collapse;width:100%;font-size:14px;line-height:1.5}
.price-table thead{background:#e4ddd5}.price-table th,.price-table td{padding:15px 14px;text-align:right;border-bottom:1px solid #d6cec5}
.price-table thead th{font-weight:600;font-size:12px;letter-spacing:.04em}
.price-table tbody th{font-weight:400;width:61%;text-align:left}
.price-table thead th:first-child{text-align:left}.price-table td{white-space:nowrap;font-variant-numeric:tabular-nums;width:13%}
.single-price tbody th{width:80%}.single-price td{width:20%}
.price-note{font-size:12px!important;margin:18px 14px 26px;color:var(--muted);max-width:760px}
.unavailable{color:#978b81}.first-visit{margin-top:48px;border-top:1px solid #c8beb4;padding:38px 0 0;display:flex;justify-content:space-between;align-items:center;gap:30px}
.service-duration{display:block;font-size:.75rem;font-weight:400;line-height:1.5;color:var(--muted);margin-top:4px;letter-spacing:0}
.coloration-heading{font-size:1rem;font-weight:400;margin:0 14px 16px;color:var(--muted)}
.coloration-subgroups{margin:16px 0 26px 35px;border-bottom:1px solid #c8beb4}
.price-subgroup summary{font-size:1.25rem;padding:20px 0}
@media(max-width:480px){.coloration-subgroups{margin-left:12px}.price-subgroup summary{font-size:1.125rem}}
.first-visit .eyebrow{margin-bottom:12px}.first-visit h3{font-size:clamp(34px,4vw,52px);font-weight:300;letter-spacing:-.05em;line-height:1.1;margin:0 0 18px}
.first-visit p:not(.eyebrow){font-size:13px;color:var(--muted);max-width:460px}
@media(max-width:800px){.first-visit{align-items:start;flex-direction:column}.price-group summary{gap:12px}.length-guide{padding:22px 18px}}
@media(max-width:480px){.price-table th,.price-table td{padding:13px 6px;font-size:12px}.price-table thead th{font-size:11px}.price-table tbody th{width:55%}.price-table td{width:15%}.single-price td{width:25%}.lengths{gap:12px}.length-code{position:static;display:block;font-size:25px;line-height:1.1}.lengths h4{font-size:17px;margin-top:8px}.lengths p{font-size:11px;margin-right:0}.price-note{margin-left:6px}.length-intro h3{font-size:20px}.price-group summary{font-size:20px}.price-navigation{gap:6px}.price-navigation a{padding:7px 9px}.single-price tbody th{width:75%}}
.products{margin:30px 14px;color:var(--ink)}.products h4{font-size:1.5rem;font-weight:400;line-height:1.3;margin:0 0 20px}
.product-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:22px 32px}.product-grid>div{border-top:1px solid var(--line);padding-top:14px}
.product-grid h5{font-size:.875rem;letter-spacing:.04em;font-weight:400;color:var(--muted);margin:0 0 14px}
.product-grid ul{list-style:none;padding:0;margin:0}.product-grid li{margin:0 0 14px}.product-grid strong{display:block;font-size:1rem;font-weight:500;letter-spacing:.025em}.product-grid li span{display:block;font-size:.875rem;color:var(--muted);margin-top:3px}
.product-grid .product-brand{font-size:1.25rem;margin:0;letter-spacing:.015em}
.visit{background:var(--paper)}.visit .section-top{margin-bottom:32px}.visit-rules{border-bottom:1px solid var(--line)}
.visit-rules details{max-width:none;margin:0;border-top:1px solid var(--line);color:var(--ink);font-size:1rem}
.visit-rules summary{padding:22px 0;font-size:1.125rem;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px}
.visit-rules summary::-webkit-details-marker{display:none}.visit-rules summary::after{content:"+";font-size:1.5rem;font-weight:300}
.visit-rules details[open] summary::after{content:"−"}.visit-rules details>div{padding:0 0 20px;max-width:780px}
.visit-rules p{font-size:1rem;color:var(--muted);margin:0 0 14px}
@media(max-width:600px){.product-grid{grid-template-columns:1fr;gap:22px}.products{margin-inline:6px}.visit-rules summary{font-size:1rem}.footer-bottom{flex-wrap:wrap}}
.hours{margin:0;max-width:360px;font-size:.875rem}
.hours>div{display:flex;justify-content:space-between;gap:18px;padding:8px 0;border-bottom:1px solid var(--line)}
.hours dt{color:var(--muted)}.hours dd{margin:0;white-space:nowrap;font-variant-numeric:tabular-nums}
.contact-info .opening-note{font-size:.875rem;margin-top:14px}
.hero-copy{min-width:0}

/* Salon introduction */
.salon{grid-template-columns:1.15fr 1fr;column-gap:6%;row-gap:38px;align-items:start}
.salon-text .eyebrow{color:var(--ink)}
.salon-text p{max-width:none}
.salon-text strong{font-weight:700}
.salon-signoff{grid-column:1 / -1;text-align:center;min-width:0}
.salon-signoff .salon-closing{color:var(--ink);margin:0;text-wrap:balance;line-height:1.6}
.salon-signoff strong{font-weight:700}
.salon-closing em{font-weight:700;font-size:1.125rem;letter-spacing:-.025em}
.salon-portrait{margin:0;min-width:0}
.salon-portrait img{display:block;width:100%;height:auto;border:1px solid var(--line);padding:8px;background:var(--paper)}
@media(max-width:800px){.salon{grid-template-columns:1fr;gap:36px}.salon-portrait{width:100%;max-width:470px;margin-inline:auto}}

.salon-signoff .signature{text-align:center;max-width:100%;margin-inline:auto}
.salon-signoff .signature span{line-height:1.6;text-wrap:balance}
@media(max-width:480px){.salon-closing em{font-size:1.0625rem}.salon-signoff .signature{margin-top:26px}}

.salon-text{min-width:0;container-type:inline-size}
.salon-text>p:not(.eyebrow):not(.large){text-align:justify;hyphens:auto;overflow-wrap:break-word}
.salon-text .large{font-size:clamp(9px,3cqi,18px);line-height:1.5;white-space:nowrap}
.salon-text .large em{font-weight:400;font-style:italic;letter-spacing:-.025em}

/* All four examples use the same image dimensions and scale. */
.hair-example{margin:0 0 18px;width:100%;aspect-ratio:444 / 887;overflow:hidden}
.hair-example img{display:block;width:100%;height:auto;max-width:100%;transform:none}

.hero-welcome{margin:0 0 30px}
.hero-welcome .eyebrow{display:block;margin:0 0 9px}
.hero-welcome strong{display:block;font-family:Arial,Helvetica,sans-serif;font-size:clamp(34px,4vw,56px);font-weight:300;letter-spacing:-.065em;line-height:1.1;color:var(--taupe)}
@media(max-width:480px){.hero-welcome{margin-bottom:26px}.hero-welcome strong{font-size:38px}}

.visit-rules .allergy-notice summary{font-weight:700;color:var(--ink)}
.visit-rules .allergy-notice p{color:#3f3530;font-weight:500;line-height:1.75}

.hero .brand-visual{background:transparent;border-radius:0}
.hero .brand-visual img{clip-path:circle(44.5% at 50% 50%)}

.gallery{background:var(--paper)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.gallery-item{min-width:0;display:block}
.gallery-item:hover{text-decoration:none}
.gallery-item figure{margin:0;padding:10px;background:var(--wash);border:1px solid var(--line);aspect-ratio:4 / 5;display:flex;align-items:center;justify-content:center}
.gallery-item img{display:block;width:100%;height:100%;object-fit:contain}
.gallery-index{display:flex;justify-content:space-between;align-items:center;padding:12px 2px;font-size:12px;letter-spacing:.08em;color:var(--muted)}
.gallery-index>span{font-size:18px;color:var(--ink)}
.gallery-item:hover figure{border-color:var(--taupe)}
.gallery-viewer{width:min(94vw,1080px);max-width:1080px;max-height:94dvh;padding:16px 22px;background:var(--paper);color:var(--ink);border:1px solid var(--line)}
.gallery-viewer::backdrop{background:rgba(40,32,27,.85)}
.gallery-viewer-top,.gallery-controls{display:flex;align-items:center;justify-content:space-between;gap:16px}
.gallery-counter{font-size:13px;font-variant-numeric:tabular-nums}
.gallery-viewer button{width:44px;height:44px;border:1px solid var(--line);background:var(--wash);color:var(--ink);font-size:24px;cursor:pointer}
.gallery-viewer button:hover{background:var(--line)}
.gallery-viewer button:focus-visible{outline:2px solid var(--taupe);outline-offset:3px}
.gallery-full{display:block;width:100%;height:calc(94dvh - 158px);object-fit:contain;margin:10px 0}
.gallery-controls>span{font-size:17px;letter-spacing:-.04em}
body.gallery-open{overflow:hidden}
@media(max-width:800px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}header nav{gap:22px}}
@media(max-width:480px){.gallery-grid{gap:14px}.gallery-item figure{padding:5px}.gallery-viewer{padding:12px;width:96vw}.gallery-full{height:calc(94dvh - 150px)}}

.gallery-grid{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none}
.gallery-grid::-webkit-scrollbar{display:none}
.gallery-grid .gallery-item{flex:0 0 calc((100% - 48px) / 3);scroll-snap-align:start}
.gallery-grid:focus-visible{outline:2px solid var(--taupe);outline-offset:6px}
.carousel-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:16px;padding-top:18px;border-top:1px solid var(--line)}
.carousel-count{font-size:12px;letter-spacing:.1em;font-variant-numeric:tabular-nums;color:var(--muted)}
.carousel-controls>div{display:flex;gap:10px}
.carousel-controls button{width:48px;height:44px;border:1px solid var(--taupe);background:transparent;color:var(--ink);font-size:24px;cursor:pointer}
.carousel-controls button:hover:not(:disabled){background:var(--wash)}
.carousel-controls button:disabled{opacity:.3;cursor:default}
.carousel-controls button:focus-visible{outline:2px solid var(--taupe);outline-offset:3px}
@media(max-width:800px){.gallery-grid{gap:20px}.gallery-grid .gallery-item{flex-basis:calc((100% - 20px) / 2)}}
@media(max-width:480px){.gallery-grid{gap:16px}.gallery-grid .gallery-item{flex-basis:100%}}

header nav{gap:clamp(16px,2vw,28px)}
header nav a{white-space:nowrap}
@media(max-width:1100px){header{flex-wrap:wrap}header nav{order:3;width:100%;justify-content:center;padding-top:12px;flex-wrap:wrap;row-gap:12px}}
@media(max-width:480px){header nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px;text-align:center;font-size:13px}header nav a{padding:5px 0}}

/* Online booking */
.booking .booking-online{margin:15px 0;border:1px solid var(--paper);color:#fff}
.booking .booking-online:focus-visible{outline-color:var(--paper)}

/* Legal information: the same warm paper and clear typography as the salon. */
.footer-bottom{flex-wrap:wrap;gap:18px}
.footer-bottom nav{display:flex;flex-wrap:wrap;gap:12px 24px;font-size:12px}
.legal-page{padding:70px 8% 90px;max-width:1180px;margin:auto}
.legal-heading{max-width:830px}
.legal-heading h1{font-size:clamp(36px,6vw,72px);overflow-wrap:anywhere}
.legal-intro{font-size:18px;max-width:650px;line-height:1.75}
.legal-date{font-size:12px;color:var(--muted);margin:24px 0 35px}
.legal-navigation{display:flex;flex-wrap:wrap;gap:14px 28px;border-block:1px solid var(--line);padding:20px 0;margin:0 0 48px;font-size:14px}
.legal-navigation [aria-current=page]{font-weight:700;text-decoration:underline;text-underline-offset:6px}
.legal-copy{max-width:760px}
.legal-copy section{margin:0 0 38px;scroll-margin-top:24px}
.legal-copy h2{font-size:clamp(22px,3vw,29px);font-weight:500;letter-spacing:-.025em;line-height:1.3;margin:0 0 14px}
.legal-copy p{line-height:1.85;margin:0 0 16px;overflow-wrap:anywhere}
.legal-copy a,.booking-dialog p a,.booking-check a,.booking-legal a{ text-decoration:underline;text-underline-offset:3px}
.booking .booking-legal{font-size:13px;line-height:1.8;max-width:580px;margin:18px auto;color:var(--paper)}
.booking-dialog{border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:28px;width:min(94vw,690px);max-height:90dvh;overflow:auto}
.booking-dialog::backdrop{background:rgba(40,32,27,.8)}
.booking-dialog-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}
.booking-dialog-top .eyebrow{margin:0}
.dialog-close{width:44px;height:44px;flex-shrink:0;border:1px solid var(--taupe);background:transparent;color:var(--ink);font-size:27px;cursor:pointer}
.booking-dialog h2{font-size:clamp(34px,5vw,48px)}
.booking-dialog p{font-size:14px;line-height:1.75}
.booking-check{display:flex;align-items:flex-start;gap:12px;padding:18px;background:var(--wash);font-size:14px;line-height:1.7}
.booking-check input{width:20px;height:20px;flex:0 0 20px;margin-top:3px;accent-color:var(--taupe)}
.booking-dialog .booking-small{font-size:12px}
.booking-dialog .button{border:0;cursor:pointer;font:inherit;font-size:14px}
.booking-dialog-loaded{width:min(96vw,1000px);height:94dvh;max-height:94dvh;padding:16px}
.booking-dialog-loaded .booking-dialog-top{margin-bottom:8px}
.booking-fallback{margin:6px 0 12px}
#booking-frame-slot iframe{display:block;width:100%;height:calc(94dvh - 135px);border:1px solid var(--line);background:white}
body.booking-open{overflow:hidden}
[hidden]{display:none!important}
@media(max-width:600px){.legal-page{padding:42px 6% 60px}.legal-navigation{gap:14px 20px;margin-bottom:34px}.legal-copy p{font-size:15px}.booking-dialog{padding:20px}.booking-dialog-loaded{padding:10px}.footer-bottom nav{font-size:12px;gap:12px 18px}#booking-frame-slot iframe{height:calc(94dvh - 155px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Clear booking information and a personal contact window. */
.booking-guide-dialog{width:min(94vw,940px);max-height:92dvh;padding:28px 32px;scrollbar-gutter:stable}
.booking-top-actions{display:flex;align-items:center;gap:22px}
.help-link{border:0;background:transparent;padding:8px 0;font:inherit;font-size:13px;color:var(--ink);text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.help-link:hover{text-decoration-thickness:2px}
.help-link:focus-visible,.dialog-close:focus-visible,.contact-dialog button:focus-visible{outline:2px solid var(--taupe);outline-offset:4px}
.booking-guide-heading h2{margin:12px 0 18px;font-size:clamp(38px,5vw,58px)}
.booking-guide-heading>p{max-width:560px;font-size:15px;margin:0 0 30px}
.booking-subheading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px}
.booking-dialog h3{font-size:19px;font-weight:500;line-height:1.3;letter-spacing:-.03em;margin:0 0 12px}
.booking-subheading h3{margin:0}
.booking-subheading>a{font-size:12px;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.booking-length-section{padding:23px;background:var(--wash);margin-bottom:30px}
.booking-lengths{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.booking-lengths>div{display:flex;align-items:center;gap:12px;min-width:0}
.booking-lengths strong{font-size:30px;letter-spacing:-.06em;font-weight:400;min-width:25px}
.booking-lengths span{font-size:13px;line-height:1.5}
.booking-lengths small{display:block;font-size:11px;color:var(--muted)}
.booking-dialog .booking-guide-note{font-size:12px;line-height:1.6;margin:16px 0 0}
.booking-information-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px 32px;margin:26px 0}
.booking-information-grid section{border-top:1px solid var(--line);padding-top:18px;min-width:0}
.booking-dialog .booking-info-number{font-size:10px;letter-spacing:.1em;font-weight:600;margin:0 0 13px;color:var(--muted)}
.booking-information-grid section>p:last-child{margin-bottom:0}
.booking-contact-callout{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center;background:var(--wash);padding:22px;margin-top:28px}
.booking-contact-callout h3{margin-bottom:7px}
.booking-contact-callout p{margin:0;max-width:480px}
.booking-help-actions{display:flex;flex-direction:column;gap:10px;align-items:center;white-space:nowrap}
.booking-dialog .secondary{background:transparent;color:var(--ink);border:1px solid var(--taupe)}
.booking-help-actions>a{font-size:13px;text-decoration:underline;text-underline-offset:4px}
.booking-dialog .booking-minute-note{font-size:12px;line-height:1.75;margin:20px 0 28px}
.booking-continue{padding-top:24px;border-top:1px solid var(--line)}
.booking-continue-row{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;margin-top:14px}
.booking-continue-row .booking-small{margin:0;font-size:11px}
.booking-continue-row .button{font-size:13px;white-space:nowrap;padding:16px 20px;gap:18px}
.booking-frame-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px}
.booking-frame-toolbar p{margin:0;font-size:14px}
.booking-guide-dialog.booking-dialog-loaded{width:min(96vw,1000px);padding:16px;height:94dvh;max-height:94dvh}
.booking-guide-dialog.booking-dialog-loaded #booking-frame-slot iframe{height:calc(94dvh - 180px)}
.contact-open-link{padding:0;background:transparent;color:var(--ink);font:inherit;font-size:14px;cursor:pointer}
.contact-dialog{width:min(94vw,720px);max-height:92dvh;padding:26px 30px 30px;background:var(--paper);color:var(--ink);border:1px solid var(--line);overflow:auto;scrollbar-gutter:stable}
.contact-dialog::backdrop{background:rgba(40,32,27,.8)}
.contact-dialog-top{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px}
.contact-dialog-top .eyebrow{margin:0;font-size:10px}
.contact-dialog h2{font-size:clamp(36px,5vw,48px);margin-bottom:22px}
.contact-dialog-content>p{font-size:14px;line-height:1.8}
.contact-dialog a{text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.contact-dialog a[href^="tel:"]{white-space:nowrap}
.contact-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:26px}
.contact-field{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:600;min-width:0}
.contact-field>span{display:inline}
.contact-field small{font-weight:400}
.contact-full{grid-column:1 / -1}
.contact-field input,.contact-field select,.contact-field textarea,.contact-draft textarea{width:100%;min-width:0;border:1px solid #b9aa9b;border-radius:0;padding:12px;background:#faf5ee;color:var(--ink);font:inherit;font-size:16px;font-weight:400;line-height:1.5}
.contact-field textarea{resize:vertical;min-height:135px}
.contact-field input:focus,.contact-field textarea:focus,.contact-field select:focus,.contact-draft textarea:focus{outline:2px solid var(--taupe);outline-offset:2px;border-color:var(--taupe)}
.contact-privacy{font-size:11px;line-height:1.75;margin:18px 0 22px}
.contact-submit-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.contact-submit-row .button{border:0;font:inherit;font-size:14px;cursor:pointer}
.contact-submit-row p{font-size:11px;line-height:1.65;max-width:350px;margin:10px 0 0}
.contact-dialog .contact-urgent{font-size:12px;line-height:1.7;margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}
.contact-draft{padding:18px;background:var(--wash);margin-top:24px}
.contact-draft p{font-size:12px;line-height:1.7;margin:0 0 12px}
.contact-draft p[role=status]{font-weight:600}
.contact-draft textarea{font-size:13px;resize:vertical}
.contact-draft-actions{display:flex;gap:14px;justify-content:space-between;align-items:center;margin-top:12px;flex-wrap:wrap;font-size:12px}
@media(max-width:650px){.booking-guide-dialog{padding:20px;width:96vw}.booking-dialog-top{align-items:flex-start}.booking-top-actions{gap:12px}.booking-top-actions .help-link{font-size:11px;max-width:95px;line-height:1.5;text-align:right}.booking-dialog-top .eyebrow{font-size:9px;max-width:125px;line-height:1.7}.booking-length-section{padding:18px}.booking-lengths{grid-template-columns:1fr 1fr;gap:18px}.booking-information-grid{grid-template-columns:1fr;gap:22px}.booking-contact-callout{grid-template-columns:1fr;gap:18px;padding:18px}.booking-help-actions{flex-direction:row;justify-content:space-between}.booking-continue-row{grid-template-columns:1fr;gap:16px}.booking-continue-row .button{justify-content:space-between;white-space:normal}.booking-check{padding:14px;font-size:12px}.contact-dialog{width:96vw;padding:20px}.contact-form-grid{grid-template-columns:1fr;gap:18px}.contact-full{grid-column:auto}.contact-dialog-top .eyebrow{max-width:180px;line-height:1.7}.contact-submit-row{gap:12px}.booking-frame-toolbar{align-items:flex-start}.booking-frame-toolbar .help-link{font-size:12px}.booking-guide-dialog.booking-dialog-loaded{padding:10px}.booking-guide-dialog.booking-dialog-loaded #booking-frame-slot iframe{height:calc(94dvh - 185px)}}
