/* DARK is an image-led, editorial presentation; all selectors stay inside this template. */
#public-booking.public-template-dark {
  --dark-bg: #090a0a;
  --dark-surface: #111212;
  --dark-elevated: #171818;
  --dark-text: #f5f3ee;
  --dark-muted: #c2c0ba;
  --dark-border: rgba(255,255,255,.12);
  --dark-accent: #3478f6;
  --dark-accent-foreground: var(--dark-accent-contrast, #090a0a);
  --dark-ease: cubic-bezier(.22,1,.36,1);
  width: 100%; max-width: none; margin: 0; padding: 0; overflow: clip;
  color: var(--dark-text); background: var(--dark-bg);
  font-family: "Roboto",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size: 16px; line-height: 1.55;
  color-scheme: dark;
}
html:has(#public-booking.public-template-dark),body:has(#public-booking.public-template-dark) { background: var(--dark-bg); }
#public-booking.public-template-dark *,#public-booking.public-template-dark *::before,#public-booking.public-template-dark *::after { box-sizing: border-box; }
#public-booking.public-template-dark :is(h1,h2,h3,p,blockquote,strong) { overflow-wrap: anywhere; }
#public-booking.public-template-dark :is(a,button,select):focus-visible { outline: 3px solid var(--dark-accent); outline-offset: 4px; }
#public-booking.public-template-dark [hidden] { display: none !important; }
#public-booking.public-template-dark section[id] { scroll-margin-top: 92px; }
.dark-skip { position: fixed; z-index: 1000; top: 8px; left: 8px; transform: translateY(-150%); padding: 12px 16px; background: var(--dark-text); color: var(--dark-bg); }
.dark-skip:focus { transform: none; }
.dark-header { position: fixed; z-index: 40; inset: 0 0 auto; display: flex; align-items: center; gap: 22px; min-height: 76px; padding: 12px max(24px,calc((100vw - 1360px)/2)); color: var(--dark-text); border-bottom: 1px solid transparent; transition: background .3s,border-color .3s,backdrop-filter .3s; }
.dark-header.is-scrolled,.dark-header.menu-open { background: rgba(9,10,10,.84); border-color: var(--dark-border); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.dark-brand { display: flex; align-items: center; gap: 11px; min-width: 0; margin-right: auto; color: var(--dark-text); font-size: .95rem; font-weight: 700; letter-spacing: .02em; text-decoration: none; }
.dark-logo { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; }
.dark-brand span { max-width: 240px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dark-menu { display: flex; align-items: center; gap: clamp(14px,2.4vw,34px); }
.dark-menu a,.dark-footer nav a { position: relative; color: var(--dark-muted); font-size: .84rem; font-weight: 500; text-decoration: none; transition: color .2s; }
.dark-menu a:hover,.dark-footer nav a:hover { color: var(--dark-text); }
.dark-menu a::after { position: absolute; right: 0; bottom: -7px; left: 0; height: 1px; content: ""; background: var(--dark-accent); transform: scaleX(0); transform-origin: left; transition: transform .24s var(--dark-ease); }
.dark-menu a:hover::after,.dark-menu a:focus-visible::after { transform: scaleX(1); }
.dark-menu-toggle { display: none; }
.dark-button,.dark-header-cta,.dark-quick-continue,.dark-mobile-cta { display: inline-flex; align-items: center; justify-content: space-between; gap: 20px; min-width: 178px; min-height: 52px; padding: 0 21px; border: 1px solid var(--dark-accent); border-radius: 3px; background: var(--dark-accent); color: var(--dark-accent-foreground); font: 700 .9rem "Roboto",sans-serif; text-decoration: none; cursor: pointer; transition: transform .2s var(--dark-ease),filter .2s; }
.dark-button:hover,.dark-header-cta:hover,.dark-quick-continue:hover:not(:disabled) { transform: translateY(-1px); filter: brightness(1.08); }
.dark-button:active,.dark-header-cta:active,.dark-quick-continue:active:not(:disabled),.dark-mobile-cta:active { transform: translateY(1px); filter: brightness(.94); }
.dark-button:focus-visible,.dark-header-cta:focus-visible,.dark-quick-continue:focus-visible,.dark-mobile-cta:focus-visible { outline: 3px solid var(--dark-text); outline-offset: 3px; }
.dark-header-cta { min-width: 142px; min-height: 46px; }
.dark-hero { position: relative; isolation: isolate; display: flex; align-items: end; min-height: min(790px,92svh); overflow: hidden; padding: 132px max(24px,calc((100vw - 1360px)/2)) 72px; background: #101111; }
.dark-hero-photo,.dark-hero-shade { position: absolute; inset: 0; z-index: -2; }
.dark-hero-photo { left: auto; width: min(57%,820px); overflow: hidden; clip-path: polygon(8% 0,100% 0,100% 100%,0 100%); }
.dark-hero-photo::after { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg,#090a0a 0%,rgba(9,10,10,.12) 42%,rgba(9,10,10,.1) 100%),linear-gradient(0deg,rgba(9,10,10,.52),transparent 60%); }
.dark-hero-photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 42%; animation: dark-hero-arrive 1.1s var(--dark-ease) both; }
.dark-hero-photo-empty { width: 100%; background: radial-gradient(ellipse at 75% 35%,#272724 0,#151616 38%,#090a0a 78%); }
.dark-hero-shade { z-index: -1; background: linear-gradient(90deg,#090a0a 0%,rgba(9,10,10,.82) 31%,transparent 75%); pointer-events: none; }
.dark-hero-copy { position: relative; z-index: 1; width: min(620px,56%); padding-bottom: 12px; animation: dark-copy-arrive .7s var(--dark-ease) both; }
.dark-kicker { margin: 0 0 16px; color: var(--dark-accent); font-size: .75rem; font-weight: 700; letter-spacing: .16em; line-height: 1.4; text-transform: uppercase; }
.dark-hero h1,.dark-section-heading h2,.dark-manifesto h2,.dark-review-copy h2,.dark-location h2,.dark-cta h2 { margin: 0; font-family: "DM Serif Display",Georgia,serif; font-weight: 400; letter-spacing: -.035em; }
.dark-hero h1 { max-width: 9ch; font-size: clamp(4rem,7.6vw,7.5rem); line-height: .91; }
.dark-hero-line { margin: 22px 0 0; color: var(--dark-text); font-size: clamp(1.05rem,1.8vw,1.45rem); font-weight: 700; letter-spacing: .015em; text-transform: uppercase; }
.dark-hero-description { max-width: 44ch; margin: 13px 0 0; color: var(--dark-muted); font-size: 1rem; }
.dark-proof { display: inline-flex; align-items: baseline; gap: 10px; min-height: 44px; margin-top: 16px; color: var(--dark-muted); text-decoration: none; }
.dark-proof>span { color: var(--dark-accent); letter-spacing: .12em; }
.dark-proof strong { color: var(--dark-text); font-size: 1.05rem; }
.dark-proof small { font-size: .84rem; }
.dark-proof-appointment { align-items: center; margin: 12px 0 0; font-size: .85rem; }
.dark-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 26px; margin-top: 25px; }
.dark-text-link,.dark-more-slots,.dark-gallery-more,.dark-reviews-more { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; border: 0; background: transparent; color: var(--dark-text); font: 600 .9rem "Roboto",sans-serif; text-decoration: none; cursor: pointer; }
.dark-text-link span,.dark-footer a span { transition: transform .2s var(--dark-ease); }
.dark-text-link:hover span { transform: translateX(4px); }
.dark-hero-index { position: absolute; right: max(24px,calc((100vw - 1360px)/2)); bottom: 32px; color: rgba(245,243,238,.6); font-size: .7rem; letter-spacing: .14em; }
.dark-quick { display: grid; grid-template-columns: minmax(220px,.72fr) minmax(0,1.6fr); align-items: center; gap: clamp(30px,6vw,88px); padding: 66px max(24px,calc((100vw - 1280px)/2)); background: #101111; }
.dark-quick { padding-block: clamp(48px,6vw,76px); }
.dark-quick-heading h2 { margin: 0; max-width: 11ch; font: 400 clamp(2.7rem,4.3vw,4.2rem)/.98 "DM Serif Display",Georgia,serif; letter-spacing: -.035em; }
.dark-quick-heading>p:last-child { max-width: 34ch; margin: 16px 0 0; color: var(--dark-muted); }
.dark-quick-panel { display: grid; gap: 18px; min-width: 0; padding: clamp(20px,3vw,34px); background: var(--dark-surface); border: 1px solid rgba(255,255,255,.055); }
.dark-quick-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.dark-quick-fields label { display: grid; gap: 8px; min-width: 0; }
.dark-quick-fields label>span,.dark-quick-step { color: var(--dark-muted); font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.dark-quick-fields select { width: 100%; min-height: 50px; padding: 0 13px; border: 0; border-bottom: 1px solid rgba(255,255,255,.22); border-radius: 0; background: #171818; color: var(--dark-text); font: 500 .98rem "Roboto",sans-serif; transition: border-color .2s,background .2s; }
.dark-quick-fields select:focus-visible { outline: 2px solid var(--dark-accent); outline-offset: 2px; border-color: var(--dark-accent); }
.dark-quick-fields select:disabled { color: #92918c; opacity: .8; }
.dark-quick-feedback { min-height: 22px; margin: 0; color: var(--dark-muted); font-size: .88rem; }
.dark-quick-step { display: flex; justify-content: space-between; gap: 12px; }
.dark-quick-step small { font-size: .76rem; font-weight: 400; letter-spacing: 0; text-transform: none; }
.dark-quick-date-row { display: grid; grid-template-columns: 44px minmax(0,1fr) 44px; align-items: center; }
.dark-quick-date-row>button { width: 44px; min-height: 48px; border: 0; background: transparent; color: var(--dark-muted); font-size: 1.2rem; cursor: pointer; }
.dark-quick-date-strip { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(60px,1fr); gap: 7px; overflow-x: auto; padding: 4px; scroll-snap-type: x mandatory; }
.dark-quick-date { display: grid; place-items: center; gap: 2px; min-width: 0; min-height: 66px; border: 1px solid var(--dark-border); background: #171818; color: var(--dark-text); scroll-snap-align: start; cursor: pointer; }
.dark-quick-date[aria-pressed="true"] { border-color: var(--dark-accent); outline: 2px solid var(--dark-accent); outline-offset: -3px; }
.dark-quick-date[aria-pressed="true"]::after { content: "✓"; color: var(--dark-accent); font-size: .72rem; }
.dark-quick-date small { color: var(--dark-text); font-size: .72rem; text-transform: uppercase; }
.dark-quick-date strong { font-variant-numeric: tabular-nums; }
.dark-quick-slots,.dark-quick-all-slots { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.dark-quick-slots [data-quick-slot],.dark-quick-all-slots [data-quick-slot] { min-width: 0; min-height: 46px; padding: 6px; border: 1px solid var(--dark-border); background: #171818; color: var(--dark-text); font: 500 .9rem "Roboto",sans-serif; font-variant-numeric: tabular-nums; cursor: pointer; }
.dark-quick-slots [data-quick-slot]:hover,.dark-quick-all-slots [data-quick-slot]:hover { border-color: var(--dark-accent); }
.dark-quick-slots [data-quick-slot].selected,.dark-quick-all-slots [data-quick-slot].selected { background: var(--dark-accent); border-color: var(--dark-accent); color: var(--dark-accent-foreground); font-weight: 700; }
.dark-quick-slots [data-quick-slot]:disabled,.dark-quick-all-slots [data-quick-slot]:disabled { color: #a09e98; text-decoration: line-through; opacity: .6; cursor: not-allowed; }
.dark-more-slots { color: var(--dark-accent); }
.dark-quick-continue { justify-self: end; min-width: 190px; }
.dark-quick-continue:disabled { border-color: rgba(255,255,255,.16); background: #252626; color: #aaa9a4; cursor: not-allowed; }
.dark-quick-dialog,.dark-review-dialog { width: min(620px,calc(100% - 28px)); max-height: 82dvh; padding: 24px; border: 1px solid var(--dark-border); background: var(--dark-elevated); color: var(--dark-text); }
.dark-quick-dialog::backdrop,.dark-review-dialog::backdrop { background: rgba(0,0,0,.78); backdrop-filter: blur(3px); }
.dark-quick-dialog>header,.dark-review-dialog>header { display: flex; align-items: start; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.dark-quick-dialog h2,.dark-review-dialog h2 { margin: 0; font: 400 2rem/1.1 "DM Serif Display",Georgia,serif; }
.dark-quick-dialog>header button,.dark-review-dialog>header button { width: 44px; height: 44px; flex: 0 0 44px; border: 1px solid var(--dark-border); background: transparent; color: var(--dark-text); font-size: 1.5rem; cursor: pointer; }
.dark-main { display: block; }
.dark-section { width: min(calc(100% - 64px),1240px); margin: 0 auto; padding: clamp(80px,10vw,144px) 0; }
.dark-section-heading { max-width: 700px; margin-bottom: 42px; }
.dark-section-heading h2,.dark-location h2,.dark-review-copy h2 { font-size: clamp(3.5rem,7vw,7rem); line-height: .92; }
.dark-section-heading h2 em,.dark-location h2 em,.dark-review-copy h2 em { color: #aaa69e; font-weight: 400; }
.dark-section-heading>p:last-child { max-width: 42ch; margin: 20px 0 0; color: var(--dark-muted); font-size: 1rem; }
.dark-service-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: stretch; gap: clamp(14px,2vw,22px); }
.dark-service-grid[data-count="1"] { grid-template-columns: minmax(0,760px); justify-content: center; }
.dark-service-grid[data-count="2"] { grid-template-columns: repeat(2,minmax(0,1fr)); }
.dark-service-grid[data-count]:not([data-count="1"]):not([data-count="2"]) .dark-service:last-child:nth-child(3n + 1) { grid-column: 2; }
.dark-service { display: grid; min-width: 0; padding: 0; border: 1px solid rgba(255,255,255,.08); background: var(--dark-surface); color: var(--dark-text); text-align: left; cursor: pointer; transition: border-color .25s,transform .25s var(--dark-ease); }
.dark-service:hover { transform: translateY(-2px); border-color: rgba(255,255,255,.2); }
.dark-service-photo { position: relative; display: block; aspect-ratio: 1.55; overflow: hidden; background: #1a1b1b; }
.dark-service-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--dark-ease),opacity .3s; }
.dark-service:hover .dark-service-photo img { transform: scale(1.03); }
.dark-service-photo.is-empty { background: radial-gradient(ellipse at 70% 30%,#30302b,#171818 70%); }
.dark-service-number { position: absolute; top: 17px; left: 18px; color: rgba(255,255,255,.8); font-size: .72rem; letter-spacing: .12em; }
.dark-service-fade { position: absolute; inset: 40% 0 0; background: linear-gradient(transparent,rgba(0,0,0,.55)); pointer-events: none; }
.dark-service-copy { display: grid; gap: 8px; padding: 20px 22px 22px; }
.dark-service-copy>strong { font: 400 clamp(1.7rem,3.1vw,2.7rem)/1.06 "DM Serif Display",Georgia,serif; }
.dark-service-copy>small { color: var(--dark-muted); font-size: .92rem; }
.dark-service-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin-top: 8px; color: var(--dark-muted); font-size: .86rem; }
.dark-service-meta>b { display: inline-flex; align-items: center; gap: 12px; margin-left: auto; color: var(--dark-accent); font-size: .88rem; }
.dark-service-meta i { font-size: 1.1rem; font-style: normal; transition: transform .2s; }
.dark-service:hover .dark-service-meta i { transform: translateX(3px); }
.dark-team { width: 100%; padding: clamp(80px,10vw,144px) max(32px,calc((100vw - 1240px)/2)); background: #101111; }
.dark-team .dark-section-heading { width: min(100%,1240px); margin-inline: auto; }
.dark-team-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,280px),1fr)); gap: clamp(16px,2vw,24px); width: min(100%,1240px); margin: auto; }
.dark-team-grid[data-count="1"] { grid-template-columns: minmax(0,390px); justify-content: center; }
.dark-team-grid[data-count="2"] { grid-template-columns: repeat(2,minmax(0,390px)); justify-content: center; }
.dark-person { display: grid; gap: 15px; min-width: 0; padding: 0; border: 0; background: transparent; color: var(--dark-text); text-align: left; cursor: pointer; }
.dark-person-photo { position: relative; display: grid; place-items: center; overflow: hidden; aspect-ratio: .9; background: #212222; color: var(--dark-muted); font: 400 4rem "DM Serif Display",Georgia,serif; }
.dark-person-photo-image { position: absolute; inset: 0; display: grid; place-items: center; overflow: hidden; }
.dark-person-photo-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .65s var(--dark-ease),filter .4s; }
.dark-person:hover .dark-person-photo-image img { transform: scale(1.02); filter: brightness(.72); }
.dark-person-overlay { position: absolute; inset: auto 0 0; display: flex; align-items: center; justify-content: space-between; min-height: 68px; padding: 15px 18px; background: linear-gradient(transparent,rgba(0,0,0,.76)); color: #fff; font: 500 .9rem "Roboto",sans-serif; opacity: 0; transition: opacity .25s; }
.dark-person:hover .dark-person-overlay,.dark-person:focus-visible .dark-person-overlay { opacity: 1; }
.dark-person-no { position: absolute; top: 14px; left: 15px; color: rgba(255,255,255,.8); font: 500 .72rem "Roboto",sans-serif; letter-spacing: .1em; }
.dark-person-copy { display: grid; gap: 5px; }
.dark-person-copy strong { font: 400 1.45rem "DM Serif Display",Georgia,serif; }
.dark-person-copy small { color: var(--dark-text); font-size: .82rem; }
.dark-person-copy .dark-person-rating { color: var(--dark-accent); }
.dark-person-booking { display: inline-flex; align-items: center; gap: 9px; margin-top: 6px; color: var(--dark-accent); font-size: .84rem; font-weight: 700; }
.dark-person-booking b { transition: transform .2s var(--dark-ease); }
.dark-person:hover .dark-person-booking b { transform: translateX(3px); }
.dark-manifesto { position: relative; display: grid; align-content: center; min-height: min(590px,68svh); padding: 72px max(28px,calc((100vw - 1240px)/2)); overflow: hidden; background: radial-gradient(ellipse at 78% 42%,#202225 0,#111212 38%,#0b0c0c 76%); }
.dark-manifesto::after { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg,#090a0a 0%,rgba(9,10,10,.25) 75%); pointer-events: none; }
.dark-manifesto>* { position: relative; z-index: 1; }
.dark-manifesto h2 { max-width: 12ch; font: 400 clamp(4.2rem,9vw,9.3rem)/.91 "DM Serif Display",Georgia,serif; letter-spacing: -.045em; }
.dark-manifesto h2 em { color: var(--dark-accent); font-style: normal; }
.dark-manifesto-copy { max-width: 38ch; margin: 22px 0 0; color: var(--dark-muted); font-size: clamp(.95rem,1.2vw,1.08rem); }
.dark-manifesto>span { position: absolute; right: max(28px,calc((100vw - 1240px)/2)); bottom: 32px; color: rgba(245,243,238,.35); font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; }
.dark-gallery { width: min(calc(100% - 48px),1400px); }
.dark-gallery-grid { display: grid; grid-template-columns: 1.25fr .75fr .9fr; grid-auto-rows: clamp(200px,25vw,350px); gap: 12px; }
.dark-gallery-tile { position: relative; min-width: 0; padding: 0; overflow: hidden; border: 0; background: #171818; cursor: zoom-in; }
.dark-gallery-tile-1 { grid-row: span 2; }
.dark-gallery-tile-4 { grid-column: span 2; }
.dark-gallery-tile img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--dark-ease),opacity .4s; }
.dark-gallery-tile:hover img { transform: scale(1.02); }
.dark-gallery-tile>span { position: absolute; right: 14px; bottom: 12px; color: white; font-size: .68rem; letter-spacing: .12em; text-shadow: 0 1px 8px #000; }
.dark-gallery-grid[data-count="1"] { display: block; }
.dark-gallery-grid[data-count="1"] .dark-gallery-tile { width: 100%; height: min(65vw,700px); }
.dark-gallery-grid[data-count="2"] { grid-template-columns: 1fr 1fr; grid-auto-rows: clamp(220px,36vw,460px); }
.dark-gallery-grid[data-count="2"] .dark-gallery-tile-1 { grid-row: auto; }
.dark-gallery-grid[data-count="2"] .dark-gallery-tile-4 { grid-column: auto; }
.dark-reviews { display: grid; grid-template-columns: minmax(220px,.7fr) minmax(0,1.4fr); gap: clamp(36px,8vw,120px); align-items: start; }
.dark-review-score { position: sticky; top: 120px; display: grid; gap: 10px; }
.dark-review-score strong { font: 400 clamp(6rem,12vw,11rem)/.85 "DM Serif Display",Georgia,serif; letter-spacing: -.05em; }
.dark-review-score>span { color: var(--dark-accent); font-size: 1rem; letter-spacing: .16em; }
.dark-review-score small { color: var(--dark-text); font-size: .86rem; }
.dark-review-copy h2 { margin-bottom: 42px; font-size: clamp(3rem,5.8vw,6rem); }
.dark-review-list { display: grid; }
.dark-review { padding: 23px 0; border-top: 1px solid var(--dark-border); }
.dark-review>p { margin: 0 0 12px; color: var(--dark-accent); letter-spacing: .13em; }
.dark-review blockquote { margin: 0; max-width: 55ch; font: 400 clamp(1.25rem,2vw,1.7rem)/1.45 "DM Serif Display",Georgia,serif; }
.dark-review footer { margin-top: 14px; color: var(--dark-muted); font-size: .82rem; }
.dark-reviews-more { margin-top: 14px; color: var(--dark-accent); }
.dark-cta { position: relative; isolation: isolate; display: grid; align-content: center; justify-items: center; min-height: clamp(420px,48vw,610px); padding: 76px 24px; overflow: hidden; background: #171818; text-align: center; }
.dark-cta-photo { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.dark-cta::before { position: absolute; inset: 0; z-index: -1; content: ""; background: linear-gradient(0deg,rgba(8,9,9,.82),rgba(8,9,9,.58)); }
.dark-cta h2 { max-width: 13ch; font-size: clamp(3.8rem,7.2vw,7rem); line-height: .94; }
.dark-cta>p:not(.dark-kicker) { max-width: 44ch; margin: 20px 0 0; color: var(--dark-text); }
.dark-button-light { margin-top: 28px; }
.dark-location { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); align-items: center; gap: clamp(32px,7vw,96px); }
.dark-location-address { max-width: 38ch; margin: 22px 0 0; color: var(--dark-muted); font-size: 1rem; }
.dark-location-hours { margin: 18px 0 0; color: var(--dark-muted); font-size: .9rem; }
.dark-location-hours strong { color: var(--dark-text); }
.dark-location-links { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 22px; }
.dark-location-links a { display: inline-flex; align-items: center; gap: 7px; min-height: 44px; color: var(--dark-accent); font-size: .9rem; font-weight: 700; text-decoration: none; }
.dark-location-links a:hover { text-decoration: underline; text-underline-offset: 4px; }
.dark-map { display: block; width: 100%; min-height: 360px; border: 1px solid var(--dark-border); filter: grayscale(1) invert(.9) contrast(.85); }
.dark-footer { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 22px 40px; padding: 34px max(24px,calc((100vw - 1240px)/2)) calc(32px + env(safe-area-inset-bottom)); border-top: 1px solid var(--dark-border); background: #080909; }
.dark-footer-brand { display: grid; gap: 4px; color: var(--dark-text); font: 400 1.8rem "DM Serif Display",Georgia,serif; text-decoration: none; }
.dark-footer-brand span { color: var(--dark-muted); font: 400 .8rem "Roboto",sans-serif; }
.dark-footer-address { margin: 0; color: var(--dark-muted); font-size: .82rem; }
.dark-footer nav,.dark-socials { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; }
.dark-footer nav button { min-height: 44px; border: 0; background: transparent; color: var(--dark-accent); font: 700 .85rem "Roboto",sans-serif; cursor: pointer; }
.dark-socials a { min-height: 44px; color: var(--dark-muted); font-size: .83rem; text-decoration: none; }
.dark-footer>small { grid-column: 1/-1; color: #aaa9a4; font-size: .76rem; }
.dark-mobile-cta { display: none; }
.dark-main #public-products { width: min(calc(100% - 64px),1240px); margin: auto; padding: 74px 0; border: 0; background: transparent; color: var(--dark-text); }
.dark-main #public-products>header { display: grid; gap: 10px; margin-bottom: 28px; }
.dark-main #public-products>header .eyebrow { margin: 0; color: var(--dark-accent); font-size: .75rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.dark-main #public-products h2 { margin: 0; color: var(--dark-text); font: 400 clamp(3rem,6vw,5.7rem)/.95 "DM Serif Display",Georgia,serif; }
.dark-main #public-products>header>p:last-child { margin: 0; color: var(--dark-muted); }
.dark-main #public-products .product-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,240px),1fr)); gap: 16px; }
.dark-main #public-products .public-product-card { display: grid; min-width: 0; padding: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.08); border-radius: 0; background: var(--dark-surface); color: var(--dark-text); text-align: left; }
.dark-main #public-products .product-card-image { display: block; width: 100%; height: auto; aspect-ratio: 1; background: #171818; }
.dark-main #public-products .product-card-image img { display: block; width: 100%; height: 100%; padding: 12px; object-fit: contain; }
.dark-main #public-products .product-card-copy { display: grid; align-content: start; justify-items: start; gap: 9px; padding: 17px; }
.dark-main #public-products .product-card-copy strong { color: var(--dark-text); font: 500 1.05rem "Roboto",sans-serif; }
.dark-main #public-products .product-card-description { color: var(--dark-muted); font-size: .84rem; line-height: 1.45; }
.dark-main #public-products .product-card-price { color: var(--dark-text); font-weight: 700; }
.dark-main #public-products .product-card-details { margin-top: 4px; color: var(--dark-accent); font-size: .86rem; font-weight: 700; }
body:has(.public-template-dark) .public-product-dialog { border-color: rgba(255,255,255,.12); background: #111212; color: #f5f3ee; }
body:has(.public-template-dark) .public-product-dialog :is(.product-dialog-heading,.product-purchase-bar) { border-color: rgba(255,255,255,.12); background: #171818; color: #f5f3ee; }
body:has(.public-template-dark) .public-product-dialog :is(.product-close-button,.product-gallery-controls button,.product-gallery-thumbnails button) { border-color: rgba(255,255,255,.2); background: #111212; color: #f5f3ee; }
body:has(.public-template-dark) .public-product-dialog .product-buy-button { background: var(--dark-accent,#c8a66a); color: var(--dark-accent-foreground,#090a0a); }
.dark-quick-feedback.is-loading { display: flex; align-items: center; gap: 9px; }
.dark-quick-feedback .premium-quick-spinner { width: 16px; height: 16px; flex: 0 0 16px; border: 2px solid var(--dark-border); border-top-color: var(--dark-accent); border-radius: 50%; animation: dark-spinner .8s linear infinite; }
.dark-quick-feedback .dark-quick-next { min-height: 44px; border: 0; background: transparent; color: var(--dark-accent); text-decoration: underline; cursor: pointer; }
@keyframes dark-spinner { to { transform: rotate(360deg); } }
.dark-review-dialog { overflow-y: auto; }
.dark-review-dialog .dark-review { border-color: var(--dark-border); }
.public-template-dark ~ .public-chat { right: 18px; bottom: calc(18px + env(safe-area-inset-bottom)); color-scheme: dark; }
body:has(.public-template-dark) .public-chat-launcher { width: 56px; height: 56px; min-height: 56px; border: 1px solid var(--dark-accent,#c8a66a); background: var(--dark-surface,#111212); color: var(--dark-accent,#c8a66a); box-shadow: 0 8px 25px #0009; }
body:has(.public-template-dark) .public-chat-invitation { border: 1px solid rgba(255,255,255,.14); background: #171818; color: #f5f3ee; }
body:has(.public-template-dark) .public-chat-invitation::after { background: #171818; border-color: rgba(255,255,255,.14); }
body:has(.public-template-dark) .public-chat-panel { border-color: rgba(255,255,255,.12); background: #111212; color: #f5f3ee; }
body:has(.public-template-dark) .public-chat-header { border-color: rgba(255,255,255,.1); background: #171818; color: #f5f3ee; }
body:has(.public-template-dark) .public-chat-composer { border-color: rgba(255,255,255,.1); background: #171818; }
body:has(.public-template-dark) .public-chat-composer textarea { color: #f5f3ee; }
body:has(.public-template-dark) .public-chat-composer button { background: var(--dark-accent,#c8a66a); color: var(--dark-accent-foreground,#090a0a); }
.dark-motion-ready [data-dark-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .7s var(--dark-ease),transform .75s var(--dark-ease); transition-delay: var(--dark-stagger,0ms); }
.dark-motion-ready [data-dark-reveal].is-visible { opacity: 1; transform: none; }
@keyframes dark-hero-arrive { from { opacity: 0; transform: scale(1.04); } to { opacity: 1; transform: scale(1); } }
@keyframes dark-copy-arrive { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@media (min-width: 981px) {
  .dark-header:not(.is-scrolled) { background: linear-gradient(180deg,rgba(9,10,10,.48),transparent); }
}
@media (max-width: 980px) {
  .dark-header { gap: 12px; padding-inline: 22px; }
  .dark-menu { gap: 14px; }
  .dark-menu a { font-size: .78rem; }
  .dark-hero { min-height: min(760px,94svh); }
  .dark-hero-photo { width: 72%; }
  .dark-quick { grid-template-columns: 1fr; gap: 24px; }
  .dark-quick-heading h2 { max-width: none; }
  .dark-team-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dark-service-grid,.dark-service-grid[data-count="1"] { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dark-service-grid[data-count="1"] { grid-template-columns: minmax(0,760px); }
  .dark-service-grid[data-count]:not([data-count="1"]) .dark-service:last-child:nth-child(2n + 1) { grid-column: 1 / -1; width: min(100%,calc((100% - 18px) / 2)); justify-self: center; }
}
@media (max-width: 700px) {
  .dark-header { min-height: 66px; padding: 10px 16px; }
  .dark-header.is-scrolled,.dark-header.menu-open { position: fixed; }
  .dark-brand { order: 0; flex: 0 1 auto; gap: 8px; min-width: 0; margin-right: 0; }
  .dark-brand span { max-width: min(38vw,180px); font-size: .82rem; }
  .dark-logo { flex: 0 0 32px; width: 32px; height: 32px; object-fit: contain; }
  .dark-menu-toggle { order: 2; display: inline-flex; flex: 0 0 44px; align-items: center; justify-content: center; width: 44px; min-height: 44px; margin-left: auto; padding: 0; border: 1px solid rgba(255,255,255,.2); background: rgba(9,10,10,.45); color: var(--dark-text); font-size: 1.1rem; }
  .dark-menu { display: none; }
  .dark-header.menu-open .dark-menu { position: absolute; inset: calc(100% + 1px) 0 auto; display: grid; gap: 0; padding: 8px 18px 16px; background: rgba(9,10,10,.96); border-bottom: 1px solid var(--dark-border); }
  .dark-header.menu-open .dark-menu a { display: flex; align-items: center; min-height: 48px; border-bottom: 1px solid rgba(255,255,255,.08); font-size: .92rem; }
  .dark-header-cta { order: 1; flex: 0 0 auto; min-width: 0; min-height: 40px; gap: 6px; margin: 0 0 0 8px; padding-inline: 9px; font-size: .7rem; }
  .dark-hero { min-height: min(760px,94svh); align-items: end; padding: 100px 22px 64px; }
  .dark-hero-photo { inset: 0; width: 100%; clip-path: none; }
  .dark-hero-photo::after { background: linear-gradient(0deg,#090a0a 0%,rgba(9,10,10,.82) 27%,rgba(9,10,10,.1) 82%),linear-gradient(90deg,rgba(9,10,10,.3),transparent); }
  .dark-hero-shade { background: transparent; }
  .dark-hero-copy { width: 100%; padding: 0; }
  .dark-kicker { margin-bottom: 12px; font-size: .7rem; }
  .dark-hero h1 { max-width: 10ch; font-size: clamp(3.6rem,15vw,6rem); }
  .dark-hero-line { margin-top: 14px; font-size: .95rem; }
  .dark-hero-description { font-size: .94rem; }
  .dark-hero-actions { display: grid; gap: 5px; margin-top: 18px; }
  .dark-hero-actions .dark-button { width: 100%; }
  .dark-hero-actions .dark-text-link { justify-self: center; }
  .dark-hero-index { right: 18px; bottom: 17px; font-size: .62rem; }
  .dark-quick { gap: 20px; padding: 52px 18px; }
  .dark-quick-heading h2 { font-size: 2.8rem; }
  .dark-quick-panel { gap: 15px; padding: 16px; }
  .dark-quick-fields { grid-template-columns: 1fr; gap: 12px; }
  .dark-quick-slots,.dark-quick-all-slots { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .dark-quick-continue { width: 100%; }
  .dark-section { width: min(calc(100% - 36px),560px); padding-block: 76px; }
  .dark-main #public-products { width: min(calc(100% - 36px),560px); padding-block: 70px; }
  .dark-section-heading { margin-bottom: 28px; }
  .dark-section-heading h2,.dark-location h2 { font-size: clamp(3.3rem,14vw,5.4rem); }
  .dark-service-grid,.dark-service-grid[data-count="1"] { grid-template-columns: minmax(0,1fr); grid-auto-flow: row; grid-auto-columns: auto; gap: 12px; overflow: visible; padding: 0; scroll-snap-type: none; }
  .dark-service-grid[data-count]:not([data-count="1"]) .dark-service:last-child:nth-child(2n + 1) { grid-column: auto; width: auto; justify-self: stretch; }
  .dark-service-grid[data-count]:not([data-count="1"]):not([data-count="2"]) .dark-service:last-child:nth-child(3n + 1) { grid-column: auto; }
  .dark-service { grid-template-columns: minmax(110px,.72fr) minmax(0,1fr); align-items: stretch; min-height: 150px; scroll-snap-align: none; }
  .dark-service-photo { height: 100%; min-height: 150px; aspect-ratio: auto; }
  .dark-service-copy { align-content: center; gap: 7px; padding: 14px; }
  .dark-service-copy>strong { font-size: clamp(1.25rem,6vw,1.65rem); line-height: 1.08; }
  .dark-service-copy>small { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: .82rem; }
  .dark-service-meta { gap: 6px 12px; margin-top: 3px; font-size: .8rem; }
  .dark-service-meta>b { gap: 5px; margin-left: 0; font-size: .8rem; }
  .dark-team { width: 100%; padding: 72px 18px; }
  .dark-team .dark-section-heading,.dark-team-grid { width: min(100%,560px); }
  .dark-team-grid,.dark-team-grid[data-count="1"],.dark-team-grid[data-count="2"] { display: grid; grid-template-columns: minmax(0,1fr); grid-auto-flow: row; grid-auto-columns: auto; justify-content: stretch; gap: 0; overflow: visible; padding: 0; }
  .dark-person { grid-template-columns: 104px minmax(0,1fr); align-items: center; gap: 16px; min-height: 128px; padding: 12px 0; border-bottom: 1px solid var(--dark-border); }
  .dark-person-photo { width: 104px; height: 104px; aspect-ratio: 1; border-radius: 50%; }
  .dark-person-photo-image,.dark-person-photo-image img { border-radius: 50%; }
  .dark-person-overlay { display: none; }
  .dark-person-no { display: none; }
  .dark-person-copy { gap: 6px; }
  .dark-person-copy>strong { display: block; color: var(--dark-text); font: 400 1.15rem/1.15 "DM Serif Display",Georgia,serif; }
  .dark-person-copy small { font-size: .82rem; }
  .dark-person-booking { min-height: 40px; margin-top: 2px; color: #fff; font-size: .8rem; }
  .dark-manifesto { min-height: 620px; min-height: 76svh; padding: 70px 24px; }
  .dark-manifesto h2 { font-size: clamp(4rem,16vw,6.6rem); }
  .dark-gallery { width: calc(100% - 28px); }
  .dark-gallery-grid { grid-template-columns: 1.1fr .9fr; grid-auto-rows: 155px; gap: 8px; }
  .dark-gallery-tile-1 { grid-row: span 2; }
  .dark-gallery-tile-4 { grid-column: span 2; }
  .dark-gallery-tile:nth-child(n+5) { display: none; }
  .dark-gallery-grid[data-count="1"] .dark-gallery-tile { height: 72vw; }
  .dark-gallery-grid[data-count="2"] { grid-auto-rows: 220px; }
  .dark-reviews { grid-template-columns: 1fr; gap: 34px; }
  .dark-review-score { position: static; grid-template-columns: auto auto; align-items: end; gap: 6px 16px; }
  .dark-review-score strong { grid-row: span 2; font-size: 6.8rem; }
  .dark-review-score>span { align-self: end; }
  .dark-review-copy h2 { margin-bottom: 28px; font-size: clamp(3rem,12vw,4.6rem); }
  .dark-cta { min-height: 510px; padding: 74px 20px; }
  .dark-cta h2 { font-size: clamp(4rem,16vw,6rem); }
  .dark-location { grid-template-columns: 1fr; gap: 24px; }
  .dark-map { min-height: 300px; }
  .dark-footer { grid-template-columns: 1fr; gap: 16px; padding: 26px 18px calc(104px + env(safe-area-inset-bottom)); }
  .dark-footer>small { grid-column: 1; }
  .dark-mobile-cta { position: fixed; z-index: 65; left: 16px; right: 84px; bottom: calc(15px + env(safe-area-inset-bottom)); display: flex; min-width: 0; width: auto; min-height: 54px; background: var(--dark-surface); color: var(--dark-accent); box-shadow: 0 8px 24px #0009; opacity: 0; transform: translateY(14px); visibility: hidden; pointer-events: none; transition: opacity .25s,transform .25s,visibility .25s; }
  .dark-mobile-cta { right: 16px; width: calc(100% - 32px); justify-content: center; background: var(--dark-accent); color: var(--dark-accent-foreground); }
  .dark-mobile-cta.is-visible { opacity: 1; transform: none; visibility: visible; pointer-events: auto; }
  body:is(.public-chat-open,.public-booking-open,.public-gallery-open,.public-review-modal-open) .dark-mobile-cta { opacity: 0; visibility: hidden; pointer-events: none; }
  body:has(.public-template-dark) .public-chat { right: 16px; bottom: calc(15px + env(safe-area-inset-bottom)); }
  .dark-quick-dialog,.dark-review-dialog { max-height: 84dvh; padding: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  #public-booking.public-template-dark *,#public-booking.public-template-dark *::before,#public-booking.public-template-dark *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  #public-booking.public-template-dark .dark-hero-photo img { animation: none; }
  .dark-motion-ready [data-dark-reveal] { opacity: 1; transform: none; }
  .dark-mobile-cta { transition: none; }
}
@media (prefers-reduced-transparency: reduce) { .dark-header.is-scrolled,.dark-header.menu-open { background: #090a0a; backdrop-filter: none; -webkit-backdrop-filter: none; } }
@media (prefers-contrast: more) {
  #public-booking.public-template-dark :is(.dark-menu a,.dark-text-link,.dark-section-heading>p:last-child,.dark-hero-description,.dark-quick-feedback,.dark-service-copy>small,.dark-person-copy small,.dark-location-address,.dark-location-hours,.dark-socials a) { color: var(--dark-text); }
  #public-booking.public-template-dark :is(.dark-quick-date,.dark-quick-slots [data-quick-slot]) { border-color: rgba(255,255,255,.5); }
}
