/* Mobile-first. The original project is deliberately independent of this folder. */
:root{--red:#bd3039;--red-hover:#a3252e;--ink:#252929;--muted:#4b514c;--pale:#d5d1c9;--line:#b5b6ae;--radius:6px;--header-height:76px;--content:1200px;--font:"Barlow","Segoe UI",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:155px}body{margin:0;color:var(--ink);background:#fff;font-family:var(--font);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.7}img{display:block;width:100%;height:auto}h1,h2,h3,p,figure{margin:0}h1,h2,h3{line-height:1.13;letter-spacing:-.025em}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icon-library{position:absolute;width:0;height:0;overflow:hidden}[hidden]{display:none!important}.container{width:calc(100% - 40px);max-width:var(--content);margin-inline:auto}.section{padding:72px 0}h2{font-size:clamp(32px,3.4vw,46px);font-weight:700}p{color:var(--muted)}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.15em;color:var(--red);margin-bottom:16px}.button{display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:50px;padding:13px 22px;background:var(--red);border:1px solid var(--red);border-radius:var(--radius);color:#fff;font-size:13px;font-weight:650;line-height:1.4;transition:background .18s,transform .18s}.button:hover{background:var(--red-hover);border-color:var(--red-hover);transform:translateY(-1px)}.button svg{width:18px;height:18px}.text-link{display:inline-flex;align-items:center;gap:10px;background:none;border:0;padding:0;font-size:14px;font-weight:650;min-height:44px}.text-link:hover,a:hover .contact-link{color:var(--red)}.text-link svg{width:17px}.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}.skip-link{position:fixed;top:0;left:20px;z-index:200;background:var(--ink);color:#fff;padding:12px 20px;transform:translateY(-120%)}.skip-link:focus{transform:translateY(0)}:focus-visible{outline:3px solid #397991;outline-offset:4px}
/* Two header appearances: navigation, then callback form beyond the hero. */
.header{position:sticky;top:0;z-index:40;background:#fff;border-bottom:1px solid var(--line)}.header-inner{min-height:var(--header-height);display:flex;align-items:center;gap:20px}.brand{width:112px;flex:0 0 112px;background:#050505;display:block}.brand img{height:62px;object-fit:contain}.header-normal{margin-left:auto}.header-book{min-height:42px;padding:10px 14px;font-size:12px}.header-book svg{display:none}.header nav{display:none}.menu-button{display:flex;width:32px;min-height:44px;padding:8px 3px;border:0;background:none;flex-direction:column;justify-content:center;gap:6px;flex-shrink:0}.menu-button span{display:block;width:24px;height:2px;background:var(--ink);transition:transform .2s}.menu-button[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-button[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}.header nav.is-open{display:flex;position:absolute;top:100%;left:0;right:0;background:#fff;padding:20px;flex-direction:column;gap:0;border-bottom:1px solid var(--line);box-shadow:0 12px 16px #2226260a}.header nav a{font-weight:600;font-size:14px;padding:12px}.header nav a:hover{color:var(--red)}.header.is-compact{box-shadow:0 4px 20px #2226260c}.header.is-compact .header-inner{flex-wrap:wrap;padding-block:8px;gap:8px 14px}.header.is-compact .brand{flex-basis:78px;width:78px}.header.is-compact .brand img{height:44px}.header.is-compact .header-normal{display:contents}.header.is-compact .header-book{display:none}.header.is-compact .menu-button{margin-left:auto;order:1}.compact-form{order:2;display:grid;grid-template-columns:1fr 1.2fr auto;gap:8px;width:100%}.compact-title{display:none}.compact-form input{min-height:42px;padding:8px;font-size:13px}.compact-form .button{min-height:42px;padding:8px 10px;font-size:11px;gap:0}.compact-form .button svg{display:none}
/* Hero and callback strip. */
.hero{position:relative;display:flex;flex-direction:column;background:#fff}.hero-content{padding-block:42px 30px;order:0}h1{font-size:clamp(40px,7.2vw,72px);letter-spacing:-.025em;font-weight:750;line-height:1.075}h1 span{color:var(--red)}.hero-content>p{font-size:16px;max-width:400px;line-height:1.75;margin-top:24px}.hero-call{display:flex;align-items:center;gap:10px;margin-top:24px;font-size:16px;font-weight:650;width:fit-content;min-height:44px}.hero-call svg{color:var(--red);width:19px}.hero-call span{font-size:11px;font-weight:400;color:var(--muted);margin-left:3px}.hero-picture{position:relative;order:1;height:300px}.hero-picture>img{height:100%;object-fit:cover;object-position:60% center}.location-tab{position:absolute;bottom:0;right:20px;background:var(--red);color:#fff;display:flex;gap:8px;align-items:center;padding:12px 16px;font-size:11px;font-weight:600;border-radius:var(--radius) var(--radius) 0 0}.location-tab svg{width:16px;height:18px}.callback-wrap{position:relative;z-index:2;margin-top:20px}.callback-form{display:grid;grid-template-columns:1fr;gap:12px;background:#fff;border:1px solid var(--line);box-shadow:0 8px 30px #22262608;border-radius:var(--radius);padding:24px}.callback-title{display:flex;gap:15px;align-items:center;margin-bottom:8px}.callback-title h2{font-size:19px;letter-spacing:-.02em}.callback-title p{font-size:12px;margin-top:5px}.circle-icon{width:44px;height:44px;border:1px solid #c9cecc;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.circle-icon svg{width:21px}input,select{display:block;width:100%;min-width:0;min-height:50px;padding:12px 14px;border:1px solid #d5dad8;border-radius:4px;background:#fff;color:var(--ink);font-size:14px;line-height:1.5}input::placeholder{color:#777f7e;opacity:1}input:focus,select:focus{border-color:var(--red)}input:user-invalid{border-color:var(--red)}
.why{display:grid;padding-block:32px 52px;gap:0}.why article{display:flex;gap:18px;padding:25px 0;border-bottom:1px solid var(--line)}.why article:last-child{border:0}.why article>svg{color:var(--red);width:33px;height:36px;stroke-width:1.25}.why h2{font-size:18px;letter-spacing:-.025em;margin:0 0 10px}.why p{font-size:14px;line-height:1.7;max-width:285px}
.services{background:var(--pale)}.section-heading{display:flex;flex-direction:column;align-items:flex-start;gap:24px;margin-bottom:36px}.section-heading>p{font-size:14px;max-width:375px;line-height:1.8}.service-grid{display:grid;grid-template-columns:1fr 1fr;background:#fff;border-top:1px solid var(--line);border-left:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.service{position:relative;display:flex;flex-direction:column;align-items:flex-start;padding:25px 17px 20px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);transition:background .2s}.service:hover{background:#fdf7f7}.service-number{color:var(--red);font-size:12px;font-weight:650;position:absolute;top:24px;left:18px}.service>svg{width:37px;height:37px;stroke-width:1.3;margin:9px 0 25px 27px}.service h3{font-size:17px;letter-spacing:-.03em;margin-bottom:12px}.service p{font-size:13px;line-height:1.7;flex:1}.service-link{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:600;margin-top:20px}.service-link svg{width:14px;height:14px;color:var(--red)}.section-note{font-size:12px;margin-top:25px}
.about-grid{display:grid;gap:40px}.about-images{display:grid;grid-template-columns:1.15fr 1fr;gap:12px;align-items:center}.workshop-photo{height:330px;object-fit:cover;object-position:40%;border-radius:var(--radius)}.about-images figure{margin:0}.about-images figure img{height:250px;object-fit:cover;object-position:40%;border-radius:var(--radius)}.about-images figcaption{font-size:8px;font-weight:650;letter-spacing:.08em;margin-top:12px;color:var(--muted)}.about-copy>p:not(.eyebrow){font-size:14px;line-height:1.8;margin-top:20px}.check-list{list-style:none;margin:25px 0 18px;padding:0;display:grid;gap:12px}.check-list li{display:flex;align-items:center;gap:10px;font-size:13px}.check-list svg{width:19px;height:19px;color:var(--red);stroke-width:1.4}
.contact-band{background:var(--ink);color:#fff;padding:25px 0}.contact-grid{display:grid}.contact-grid>div,.contact-grid>a{display:flex;gap:20px;padding:26px 0;border-bottom:1px solid #ffffff24}.contact-grid>:last-child{border:0}.contact-grid>*>svg{width:29px;height:32px;stroke-width:1.2}.contact-label{font-size:10px;letter-spacing:.14em;color:#b8c0bd}.contact-grid h3{font-size:16px;letter-spacing:-.015em;margin:8px 0 5px}.contact-grid p{font-size:13px;color:#b8c0bd}.contact-link{display:flex;align-items:center;gap:8px;margin-top:15px;font-size:12px}.contact-link svg{width:15px;height:15px}
.rating{display:flex;align-items:center;gap:16px}.rating>strong{font-size:48px;letter-spacing:-.04em;line-height:1}.rating>span{display:flex;flex-direction:column;gap:2px}.stars{color:var(--red);font-size:16px;letter-spacing:3px}.rating small{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px}.rating svg{width:13px;height:13px}.review-grid{display:grid;grid-template-columns:1fr;gap:16px}.review-card{border:1px solid var(--line);border-radius:var(--radius);padding:26px;display:flex;flex-direction:column;min-height:230px}.review-card:nth-child(n+4){display:none}.review-grid.show-all .review-card{display:flex}.review-card blockquote{font-size:14px;line-height:1.85;margin:16px 0 24px;flex:1}.review-card footer{display:flex;align-items:center;gap:12px}.review-avatar{display:grid;place-items:center;background:#eef0ef;color:#54615b;border-radius:50%;width:34px;height:34px;font-size:11px;font-weight:700}.review-card footer strong{font-size:12px;font-weight:650}.review-card footer small{display:block;font-size:10px;color:var(--muted);margin-top:1px}.reviews-bottom{display:flex;flex-wrap:wrap;align-items:center;gap:16px;justify-content:space-between;margin-top:22px}.reviews-bottom>p{font-size:11px;max-width:460px}.reviews-bottom .text-link{font-size:12px}.reviews-empty{border:1px solid var(--line);padding:28px;border-radius:var(--radius);font-size:14px}
.appointment{background:var(--pale)}.appointment-grid{display:grid;gap:36px}.appointment-grid>div>p:not(.eyebrow){font-size:15px;line-height:1.8;max-width:380px;margin-top:22px}.appointment-call{display:flex;gap:14px;align-items:center;margin-top:30px}.appointment-call small{display:block;color:var(--muted);font-size:12px;margin-bottom:3px}.appointment-call strong{font-size:19px;letter-spacing:-.02em}.appointment-form{background:#fff;border:1px solid var(--line);padding:25px;border-radius:var(--radius);display:grid;gap:20px;box-shadow:0 8px 30px #22262604}.appointment-form label{font-size:12px;font-weight:600;display:block}.appointment-form label input,.appointment-form label select{margin-top:8px}.appointment-form label>span:not(.optional){color:var(--red)}.optional{color:var(--muted);font-size:10px;font-weight:400;float:right}.appointment-form .button{margin-top:3px}.form-note,.delivery-note{font-size:10px;line-height:1.65}.form-note{margin-top:-8px}.delivery-note{margin-top:-12px}
.faq-grid{display:grid;gap:35px}.faq-grid>div>p:not(.eyebrow){font-size:14px;margin-top:24px}.faq-grid p a{text-decoration:underline;text-underline-offset:4px}.faq-list{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none;font-size:14px;font-weight:600;padding:22px 0;cursor:pointer;line-height:1.5}summary::-webkit-details-marker{display:none}summary svg{width:17px;height:17px;color:var(--muted);transition:transform .2s}details[open] summary svg{transform:rotate(45deg);color:var(--red)}details p{font-size:14px;line-height:1.8;padding:0 25px 23px 0}
.footer{background:#1d2121;color:#fff;padding:50px 0 20px}.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:38px 20px}.footer-grid>div{display:flex;align-items:flex-start;flex-direction:column;gap:10px}.footer-grid>div:first-child,.footer-grid>div:last-child{grid-column:1/-1}.footer .brand{width:130px;flex-basis:auto}.footer .brand img{height:76px}.footer-grid p,.footer-grid a:not(.button),.footer-grid span{font-size:12px;color:#b8c0bd}.footer-grid h2{font-size:10px;letter-spacing:.1em;color:#fff;margin:8px 0 8px}.footer-grid p{line-height:1.8}.footer-grid a:hover{color:#fff}.footer-grid .button{margin-top:5px}.footer-bottom{display:flex;align-items:center;flex-wrap:wrap;gap:15px 25px;border-top:1px solid #ffffff20;margin-top:42px;padding-top:22px;font-size:10px;color:#a8b1ad}.footer-bottom>span{width:100%}.footer-bottom button{border:0;padding:0;color:inherit;background:none;min-height:40px;font-size:10px}.footer-bottom>a{display:flex;align-items:center;gap:7px;margin-left:auto;min-height:40px}.footer-bottom svg{transform:rotate(-90deg);width:13px;height:13px}
dialog{width:calc(100% - 32px);max-width:500px;border:1px solid var(--line);padding:36px;border-radius:10px;color:var(--ink);box-shadow:0 24px 100px #0002;max-height:85dvh;overflow:auto}dialog::backdrop{background:#172021a3;backdrop-filter:blur(3px)}dialog h2{font-size:28px;margin:22px 0 16px}dialog p{font-size:14px;margin-bottom:15px}dialog .button{width:100%}.dialog-close{position:absolute;right:12px;top:10px;border:0;background:none;font-size:30px;line-height:1;width:40px;height:40px;color:var(--muted)}#request-summary{background:var(--pale);border-radius:4px;padding:16px;font-size:13px;display:grid;grid-template-columns:85px 1fr;gap:7px;margin:24px 0}#request-summary dt{color:var(--muted)}#request-summary dd{margin:0;overflow-wrap:anywhere}#copy-request{display:flex;margin:14px auto 0}#copy-status{font-size:12px;text-align:center;margin:0}.no-js-note{padding:20px;background:#fff5e5;text-align:center;font-size:14px}
@media(min-width:600px){.container{width:calc(100% - 64px)}.hero-content{padding-block:60px 35px}.hero-picture{height:400px}.callback-form{grid-template-columns:1fr 1fr}.callback-title{grid-column:1/-1}.callback-form .button{grid-column:1/-1}.appointment-form{grid-template-columns:1fr 1fr;padding:32px}.full{grid-column:1/-1}.review-grid{grid-template-columns:1fr 1fr}.review-card:nth-child(3){grid-column:1/-1}.why{gap:0}.service{padding:32px}.service-number{left:28px;top:25px}.service>svg{margin-left:28px}.service h3{font-size:19px}.service p{font-size:14px}.about-images{gap:18px}.workshop-photo{height:450px}.about-images figure img{height:340px}.compact-form .button{font-size:13px;padding-inline:18px}.footer-grid{grid-template-columns:1fr 1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}.footer-grid>div:last-child{grid-column:auto}.section{padding-block:85px}}
@media(min-width:1000px){:root{--header-height:88px}html{scroll-padding-top:112px}.header-inner{gap:40px}.brand{width:126px;flex-basis:126px}.brand img{height:75px}.header-normal{display:flex;flex:1;justify-content:flex-end;align-items:center;gap:70px}.header nav{display:flex;gap:23px}.header nav a{padding:10px 0;font-size:13px}.header-book{min-height:46px;padding-inline:24px;font-size:13px}.header-book svg{display:block}.menu-button{display:none}.header.is-compact .header-inner{flex-wrap:nowrap;padding-block:0;gap:35px;min-height:78px}.header.is-compact .brand{width:112px;flex-basis:112px}.header.is-compact .brand img{height:64px}.header.is-compact .header-normal{display:none}.compact-form{display:flex;align-items:center;gap:14px;order:0;margin-left:auto;max-width:900px}.compact-title{display:block;font-size:15px;line-height:1.4;font-weight:650;flex-shrink:0;margin-right:20px}.compact-title small{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:3px}.compact-form input{flex:1;max-width:210px;min-height:44px;padding:12px;font-size:13px}.compact-form .button{white-space:nowrap;min-height:44px}.hero{height:560px;display:block}.hero-picture{position:absolute;inset:0 0 0 42%;height:auto;order:0}.hero-picture:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#fff 0%,#ffffffed 6%,#ffffff80 18%,transparent 38%)}.hero-picture>img{object-position:59% center}.location-tab{right:max(32px,calc((100vw - var(--content))/2));bottom:0;z-index:1;padding:16px 24px;font-size:12px}.hero-content{position:relative;z-index:1;padding-top:76px;pointer-events:none}.hero-content a{pointer-events:auto}.hero-content>p{font-size:16px;max-width:360px;margin-top:26px}.hero-call{margin-top:26px}.callback-wrap{margin-top:-1px}.callback-form{grid-template-columns:minmax(290px,1.4fr) 1fr 1fr auto;gap:16px;padding:28px 30px;align-items:center}.callback-title{grid-column:auto;margin:0}.callback-form .button{grid-column:auto}.callback-title h2{font-size:18px}.why{grid-template-columns:1fr 1fr 1fr;padding-block:56px 65px;gap:34px}.why article{border-bottom:0;border-right:1px solid var(--line);padding:0 30px 0 0;gap:20px}.why article:last-child{padding-right:0}.why h2{font-size:17px}.why p{font-size:13px;max-width:260px}.section{padding-block:100px}.section-heading{flex-direction:row;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:43px}.section-heading>p{padding-bottom:5px}.service-grid{grid-template-columns:repeat(4,1fr)}.service{padding:30px 28px 26px}.service>svg{margin:8px 0 30px 30px}.service h3{font-size:18px}.service p{font-size:13px}.service-link{font-size:11px;margin-top:22px}.about-grid{grid-template-columns:1.1fr 1fr;gap:72px;align-items:center}.workshop-photo{height:425px}.about-images figure img{height:325px}.about-images figcaption{font-size:8px}.about-copy h2{font-size:40px}.contact-band{padding:48px 0}.contact-grid{grid-template-columns:1.2fr 1fr 1fr;gap:35px}.contact-grid>div,.contact-grid>a{border-bottom:0;border-right:1px solid #ffffff24;padding:0 30px 0 0;gap:20px}.contact-grid h3{font-size:16px}.review-grid{grid-template-columns:repeat(3,1fr);gap:20px}.review-card:nth-child(n+4){display:flex}.review-card:nth-child(3){grid-column:auto}.review-card{padding:28px;min-height:255px}.review-card blockquote{font-size:14px}.rating{margin-bottom:6px}.reviews-bottom>p{max-width:580px}#more-reviews{display:none}.appointment-grid{grid-template-columns:1fr 1.25fr;gap:100px;align-items:center}.appointment-form{padding:35px;gap:20px}.appointment-grid h2{font-size:46px}.faq-grid{grid-template-columns:1fr 1.3fr;gap:80px}.faq-grid h2{font-size:38px}.footer{padding-top:60px}.footer-grid{grid-template-columns:1.3fr .9fr 1.2fr 1.1fr;gap:50px}.footer-grid>div:first-child{grid-column:auto}.footer-bottom{gap:30px}.footer-bottom>span{width:auto;flex:1}.footer-bottom>a{margin-left:0}}
@media(min-width:1400px){.hero{height:590px}.hero-content{padding-top:85px}.hero-content>p{max-width:380px}.hero-picture{left:41%}}
@media(max-width:359px){.container{width:calc(100% - 28px)}.header-inner{gap:10px}.brand{width:96px;flex-basis:96px}h1{font-size:36px}.header-book{padding-inline:10px}.compact-form{gap:5px}.compact-form .button{font-size:10px;padding-inline:6px}.service{padding-inline:12px}.service h3{font-size:15px}.service-link{font-size:10px}.appointment-form{padding:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Brand refinement: a charcoal opening, warm stone surfaces and decisive red actions.
   Layout and form behavior remain shared with the existing mobile-first rules. */
:root {
  --charcoal: #191c1d;
  --graphite: #292e2f;
  --stone: #dad6ce;
  --stone-raised: #e0dcd4;
  --chalk: #f0ece4;
  --on-dark-muted: #bcc0b9;
  --accent-text: #e07075;
  --shadow-raised: 0 4px 8px #00000012, 0 16px 32px #00000012;
  color-scheme: light;
  scrollbar-color: #73756e #252929;
}
body { background: var(--stone); }
h1,h2 { font-family: "Barlow Condensed", "Barlow", sans-serif; font-weight: 600; text-wrap: balance; }
h3 { letter-spacing: -.015em; }
p { text-wrap: pretty; }
::selection { background: #a32831; color: #fff2e9; }
input,select { caret-color: var(--red); }
:focus-visible { outline-color: var(--red); outline-offset: 5px; }
.header :focus-visible,.hero :focus-visible,.services :focus-visible,.footer :focus-visible,.contact-band :focus-visible {
  outline-color: #f1b1a9;
}
.button {
  min-height: 52px;
  font-size: 15px;
  font-weight: 600;
  padding: 14px 23px;
  box-shadow: 0 2px 3px #00000012, 0 6px 12px #0000000a;
  transition: background-color 150ms ease-out, border-color 150ms ease-out, transform 150ms ease-out;
}
.button:hover { transform: none; }
.button:active { transform: scale(.96); }
.button svg,.text-link svg { stroke-width: 2; }
.button-outline { background: transparent; box-shadow: none; border-color: #8c928e; }
.button-outline:hover { background: #ffffff0d; border-color: var(--chalk); }
.text-link { text-decoration: underline; text-underline-offset: 5px; text-decoration-color: #9c605e; }
.button:disabled { cursor: wait; }

/* The rebuilt white/red mark shares the dark surface instead of sitting on a tile. */
.header { background: var(--charcoal); color: var(--chalk); border-bottom-color: #ffffff18; }
.brand,.footer .brand { background: transparent; width: 144px; flex-basis: 144px; }
.brand img,.footer .brand img { height: 76px; object-fit: contain; mix-blend-mode: screen; }
.header-inner { min-height: 86px; gap: 14px; }
.header-book { font-size: 13px; min-height: 44px; padding: 11px 14px; }
.header nav a { color: #d6d8d0; font-size: 15px; }
.header nav a:hover { color: #fff2ea; text-decoration: underline; text-decoration-color: #d85761; text-underline-offset: 9px; }
.menu-button { width: 40px; min-height: 44px; padding: 8px; }
.menu-button span { background: var(--chalk); }
.header nav.is-open { background: var(--charcoal); border-color: #ffffff24; }
.header.is-compact { box-shadow: 0 6px 24px #00000024; }
.header.is-compact .brand { flex-basis: 96px; width: 96px; }
.header.is-compact .brand img { height: 50px; }
.compact-title small { color: var(--on-dark-muted); }
.compact-form input,.callback-form input {
  background: #1e2324; border-color: #666d68; color: var(--chalk); color-scheme: dark;
}
.compact-form input::placeholder,.callback-form input::placeholder { color: #c0c4bb; }
.compact-form input:focus,.callback-form input:focus { border-color: #ed9a97; }
.compact-form .button { min-height: 44px; }

.hero { background: var(--charcoal); color: var(--chalk); }
.hero h1 { font-size: clamp(50px,8vw,92px); line-height: .99; letter-spacing: -.025em; }
.hero h1 span { color: var(--accent-text); }
.hero-content { padding-top: 38px; padding-bottom: 34px; }
.hero-content>p { color: #c6c8c0; font-size: 17px; line-height: 1.65; max-width: 390px; }
.hero-actions { display: flex; flex-direction: column; gap: 12px; margin-top: 28px; pointer-events: auto; }
.hero-actions .button { width: 100%; min-height: 54px; }
.hero-call { margin: 0; font-size: 15px; color: var(--chalk); font-weight: 500; }
.hero-call svg { color: #ecc1b9; width: 18px; }
.hero-picture { height: 270px; }
.hero-picture>img { filter: brightness(.8) saturate(.75); }
.hero-picture:after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg,var(--charcoal),transparent 25%); pointer-events: none; }
.location-tab { background: #8f2730; z-index: 1; border-radius: 0; font-size: 12px; }
.callback-wrap { margin-top: 0; }
.callback-form { background: var(--graphite); color: var(--chalk); border: 0; border-top: 1px solid #ad454b; border-radius: 0 0 12px 12px; box-shadow: var(--shadow-raised); }
.callback-title h2 { font-family: "Barlow",sans-serif; font-size: 19px; font-weight: 600; }
.callback-title p { color: var(--on-dark-muted); font-size: 13px; }
.callback-title .circle-icon { border-color: #666c66; color: #df8d88; }
.why { padding-block: 30px 42px; }
.why h2 { font-family: "Barlow",sans-serif; font-size: 19px; font-weight: 600; }
.why p { font-size: 15px; }
.why article { border-color: #aaa9a0; }
.why article>svg { color: #9f2b34; stroke-width: 1.6; }

/* Contrast shifts give the service offer and appointment request their own weight. */
.services { background: #282d2e; color: var(--chalk); }
.section-heading h2 { font-size: clamp(40px,4.2vw,58px); }
.services .section-heading>p { color: var(--on-dark-muted); font-size: 16px; }
.service-grid { background: transparent; border-color: #545b57; border-radius: 0; }
.service { border-color: #545b57; }
.service:hover { background: #353b3b; }
.service>svg { color: #e0928f; margin-left: 0; stroke-width: 1.6; }
.service h3 { font-size: 20px; color: var(--chalk); font-weight: 600; }
.service p { color: #c2c5bd; font-size: 15px; }
.service-link { color: #e5aca6; font-size: 12px; }
.service-link svg { color: currentColor; stroke-width: 2; }
.services-action { display: flex; flex-direction: column; align-items: flex-start; gap: 22px; margin-top: 32px; }
.services-action p { color: #c2c5bd; font-size: 15px; line-height: 1.7; }
.services-action strong { color: var(--chalk); font-weight: 500; }
.services-action .button { width: 100%; }
.about { background: var(--stone); }
.about-copy h2 { font-size: clamp(42px,4vw,56px); }
.about-copy>p:not(.eyebrow) { font-size: 16px; }
.about-images img { outline: 1px solid oklch(0 0 0 / .1); outline-offset: -1px; border-radius: 3px; filter: saturate(.8) brightness(.9); }
.about-images figcaption { font-size: 12px; letter-spacing: 0; }
.check-list li { font-size: 15px; }
.about-actions { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; margin-top: 28px; }
.contact-band { background: #812a31; }
.contact-grid h3 { color: #f6ede4; font-size: 19px; }
.contact-label { color: #e8c8c3; font-size: 11px; }
.contact-grid p { color: #e8c8c3; font-size: 15px; }
.contact-grid>*>svg { color: #f6d7ce; }
.contact-link { font-size: 14px; font-weight: 600; color: #fff0e8; }
a:hover .contact-link,.contact-link:hover { color: #fff; text-decoration: underline; text-underline-offset: 5px; }
.reviews { background: #c9c7bf; }
.review-card { background: #dcd8d0; border-color: #b0b1a8; border-radius: 12px; box-shadow: none; }
.review-card blockquote { font-size: 16px; line-height: 1.7; }
.review-avatar { background: #c0c5ba; color: #333c34; }
.review-card footer strong { font-size: 14px; }
.review-card footer small { font-size: 12px; }
.stars { color: #a32530; }
.rating>strong { font-family: "Barlow Condensed",sans-serif; font-size: 64px; font-weight: 600; font-variant-numeric: tabular-nums; }
.rating small { font-size: 14px; }
.reviews-bottom>p { font-size: 12px; }
.reviews-bottom .text-link { font-size: 14px; }
.appointment { background: #222728; color: var(--chalk); border-top: 1px solid #94323a; }
.appointment-grid h2 { font-size: clamp(46px,4.8vw,66px); }
.appointment-grid>div>p:not(.eyebrow) { color: var(--on-dark-muted); font-size: 17px; }
.appointment-call small { color: var(--on-dark-muted); font-size: 14px; }
.appointment-call strong { color: var(--chalk); font-size: 23px; font-weight: 600; font-variant-numeric: tabular-nums; }
.appointment-call .circle-icon { border-color: #777e76; color: #e4a39b; }
.appointment-form { background: var(--stone); color: var(--ink); border: 0; border-radius: 12px; box-shadow: 0 10px 26px #00000018; }
.appointment-form label { font-size: 14px; }
.appointment-form input,.appointment-form select { background: #ebe6de; border-color: #a5aaa0; font-size: 16px; }
.appointment-form input::placeholder { color: #62695f; }
.optional { font-size: 12px; }
.form-note,.delivery-note { color: #4c534a; font-size: 12px; }
.appointment-form .button { min-height: 56px; font-size: 16px; }
.faq { background: #d6d2ca; }
.faq-grid h2 { font-size: clamp(40px,4vw,54px); }
.faq-grid>div>p:not(.eyebrow),details p { font-size: 16px; }
summary { font-size: 16px; min-height: 66px; }
summary:hover { color: #992731; }
details { border-color: #aaa99f; }
.footer { background: #151819; border-top: 1px solid #555d56; }
.footer-grid p,.footer-grid a:not(.button),.footer-grid span { font-size: 14px; }
.footer-grid h2 { font-family: "Barlow",sans-serif; font-size: 12px; letter-spacing: .08em; }
.footer-bottom { font-size: 12px; color: #bec4ba; }
.footer-bottom button { font-size: 12px; }
.footer-bottom button,.footer-bottom a { min-height: 44px; }
dialog { background: var(--stone-raised); border: 0; border-radius: 14px; }
dialog h2 { font-size: 36px; }
dialog p { font-size: 16px; }
#request-summary { background: #cfcec5; }
.dialog-close { min-height: 44px; width: 44px; }

@media(min-width:600px) {
  .hero-actions { flex-direction: row; flex-wrap: wrap; }
  .hero-actions .button { width: auto; }
  .services-action { flex-direction: row; align-items: center; justify-content: space-between; }
  .services-action .button { width: auto; }
  .hero-picture { height: 360px; }
}
@media(min-width:1000px) {
  .header-inner { min-height: 94px; gap: 35px; }
  .brand { width: 158px; flex-basis: 158px; }
  .brand img { height: 86px; }
  .header-normal { gap: 60px; }
  .header-book { min-height: 48px; font-size: 15px; padding-inline: 24px; }
  .header.is-compact .brand { width: 132px; flex-basis: 132px; }
  .header.is-compact .brand img { height: 70px; }
  .compact-form .button { font-size: 14px; }
  .hero { height: 580px; }
  .hero-content { padding-top: 65px; padding-bottom: 0; }
  .hero h1 { font-size: 84px; }
  .hero-content>p { margin-top: 25px; max-width: 370px; font-size: 18px; }
  .hero-actions { max-width: 540px; gap: 12px; margin-top: 30px; }
  .hero-actions .button { padding-inline: 18px; font-size: 15px; }
  .hero-picture { inset: 0 0 0 42%; height: auto; }
  .hero-picture:after { background: linear-gradient(90deg,var(--charcoal) 0%,#191c1ded 5%,#191c1d8c 22%,transparent 55%); }
  .hero-picture>img { object-position: 58% center; }
  .callback-form { padding: 28px 32px; grid-template-columns: minmax(275px,1.3fr) 1fr 1fr auto; }
  .callback-form .button { font-size: 15px; padding-inline: 22px; }
  .why { padding-block: 52px 55px; }
  .why h2 { font-size: 19px; }
  .why p { font-size: 15px; }
  .section { padding-block: 88px; }
  .service { padding-block: 28px; }
  .service>svg { margin-left: 0; margin-bottom: 24px; }
  .service h3 { font-size: 20px; }
  .service p { font-size: 15px; }
  .service-link { font-size: 13px; }
  .about-grid { gap: 65px; }
  .contact-band { padding-block: 40px; }
  .contact-grid h3 { font-size: 20px; }
  .review-card { min-height: 260px; }
  .review-card blockquote { font-size: 16px; }
  .appointment-grid { gap: 80px; }
}
@media(min-width:1400px) {
  .hero { height: 610px; }
  .hero-content { padding-top: 65px; }
  .hero h1 { font-size: 92px; }
  .hero-actions { margin-top: 30px; }
}
@media(max-width:599px) {
  .header .brand { width: 126px; flex-basis: 126px; }
  .header .brand img { height: 72px; }
  .header.is-compact .brand { width: 96px; flex-basis: 96px; }
  .header.is-compact .brand img { height: 50px; }
  .compact-form { grid-template-columns: 1fr 1.2fr auto; }
  .compact-form .button { font-size: 12px; }
  .compact-form input { font-size: 16px; }
  .callback-form input { font-size: 16px; }
  .service { padding-inline: 18px; }
  .service>svg { margin-top: 0; margin-bottom: 20px; }
  .service h3 { font-size: 18px; }
  .service p { font-size: 14px; }
  .service-link { font-size: 12px; line-height: 1.45; }
  .service-link svg { display: none; }
}
@media(max-width:359px) {
  .header-inner { gap: 7px; }
  .header .brand { width: 108px; flex-basis: 108px; }
  .header-book { padding-inline: 12px; font-size: 12px; }
  .hero h1 { font-size: 46px; }
  .compact-form .button { padding-inline: 6px; font-size: 11px; }
  .compact-form input { font-size: 16px; }
}
