/* nene / editorial redesign. Source: Hello Beauty & Mag. design principles.
   Values below belong to nene; no third-party visual assets or paths are reused. */
@font-face { font-family:'Shippori Mincho'; src:url('assets/fonts/shippori-mincho-headline.ttf') format('truetype'); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:'Allura'; src:url('assets/fonts/allura-regular.ttf') format('truetype'); font-style:normal; font-weight:400; font-display:swap; }
:root {
  color-scheme:light;
  --paper:#f8f6f2; --surface:#fffefa; --ink:#39323c; --muted:#6b5c6b;
  --action:#75536f; --action-hover:#5f425c; --tint:#eee6ef; --line:#d4cbd2;
  --control-line:#8b7587; --focus:#654669;
  --serif:'Yu Mincho',YuMincho,'Hiragino Mincho ProN',serif;
  --sans:-apple-system,BlinkMacSystemFont,'Hiragino Sans','Yu Gothic',sans-serif;
  --english:'Allura',cursive;
  --gutter:clamp(1.25rem,5vw,5rem); --content:80rem;
  --space-xs:.5rem; --space-s:1rem; --space-m:1.5rem; --space-l:2rem; --space-xl:3rem;
  --section:clamp(4rem,8vw,8rem);
  --section-fade:clamp(3rem,7vw,7rem); --shadow-window:.065;
  --light-bokeh:url('assets/images/nene-light-bokeh-adobestock-483250954.jpeg'); --haze-opacity:.13;
  --h1:clamp(2.5rem,5.2vw,5.25rem); --h2:clamp(1.875rem,3.3vw,3rem);
  --caption:.875rem; --radius:.375rem; --duration:160ms; --scene:480ms;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-block:2rem; font-size:100%; }
body { margin:0; color:var(--ink); background:var(--paper); font:400 1rem/1.85 var(--sans); -webkit-font-smoothing:antialiased; line-break:strict; word-break:normal; }
h1,h2,h3,p,figure,dl,dd { margin:0; }
h1,h2,h3 { font-family:var(--serif); font-weight:400; }
h2 { font-size:var(--h2); line-height:1.65; letter-spacing:.035em; }
a { color:inherit; text-decoration:none; text-underline-offset:.25em; }
button,select { font:inherit; }
button { cursor:pointer; }
img { display:block; max-inline-size:100%; block-size:auto; }
[hidden] { display:none!important; }
a:focus-visible,button:focus-visible,select:focus-visible,summary:focus-visible,
.demo:focus-visible,#demo-result:focus-visible,.carousel-track:focus-visible { outline:3px solid var(--focus); outline-offset:5px; }
.sr-only { position:absolute; inline-size:1px; block-size:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.wrap { inline-size:min(calc(100% - 2 * var(--gutter)),var(--content)); margin-inline:auto; }
.skip { position:absolute; z-index:99; top:-8rem; left:1rem; padding:.75rem 1.5rem; background:var(--surface); }
.skip:focus { top:1rem; }
.header { min-block-size:112px; display:flex; align-items:center; justify-content:space-between; gap:2rem; border-block-end:1px solid var(--line); }
.logo { display:inline-flex; align-items:center; min-block-size:44px; flex-shrink:0; }
.logo-image { inline-size:190px; block-size:auto; }
.header nav { display:flex; align-items:center; gap:2.5rem; font-size:.875rem; }
.header nav a { display:inline-flex; min-block-size:48px; align-items:center; }
.header nav>a:first-child { border-block-end:1px solid var(--ink); }
.booking { color:var(--action); gap:1rem; }
.booking::after { content:'↗'; font-size:1.25rem; font-weight:300; }
.eyebrow { font:400 clamp(2.75rem,5vw,5rem)/1.1 var(--english); color:var(--action); }
.hero { position:relative; display:block; padding-block:44px 88px; isolation:isolate; }
.hero-copy { display:contents; }
.hero-title { position:relative; z-index:2; }
.hero .eyebrow { font-size:clamp(1.5rem,2.25vw,2rem); margin-block-end:24px; }
.hero h1 { display:flex; align-items:baseline; gap:.45em; font-family:'Shippori Mincho',var(--serif); font-size:var(--h1); line-height:1.45; letter-spacing:.04em; }
.headline-line { display:block; }
.headline-line:last-child { margin-inline-start:0; }
.hero-subcopy { font:400 clamp(1.0625rem,1.5vw,1.25rem)/1.9 var(--serif); margin-block-start:16px; text-align:end; }
.hero-visual { --signature-width:clamp(340px,46vw,640px); position:relative; display:grid; grid-template-columns:minmax(0,1fr); margin-block-start:28px; padding-block-end:32px; min-inline-size:0; }
.hero-photo { position:relative; isolation:isolate; grid-column:1; grid-row:1; overflow:hidden; border-radius:140px 6px 6px 6px; background:#ece6e4; }
.hero-photo::after { content:''; position:absolute; inset:0; pointer-events:none; background:var(--light-bokeh) center 70% / cover no-repeat; opacity:.18; filter:saturate(.5); mix-blend-mode:screen; mask-image:linear-gradient(110deg,#000,transparent 34%,transparent 70%,#000); }
.hero-photo img { inline-size:100%; block-size:460px; object-fit:cover; object-position:51% 52%; }
.hero-actions { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:0 3rem; align-items:start; position:relative; z-index:2; }
.hero-actions .lead { grid-column:1; grid-row:1 / 3; margin:0; }
.hero-actions .button { grid-column:2; grid-row:1; }
.hero-actions .quiet { grid-column:2; grid-row:2; }
.lead { max-inline-size:27em; line-height:1.95; margin-block-end:24px; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:1.5rem; min-block-size:56px; padding:16px 24px; border:1px solid var(--action); border-radius:var(--radius); background:var(--action); color:white; font-size:1rem; line-height:1.5; transition:background var(--duration),color var(--duration); }
.button::after { content:'↗'; font-size:1.1rem; line-height:1; }
.quiet { font-size:var(--caption); line-height:1.7; color:var(--muted); margin-block-start:12px; }
.hero-hand { position:relative; grid-column:1; grid-row:1; align-self:end; justify-self:end; z-index:3; inline-size:var(--signature-width); aspect-ratio:2015 / 393; overflow:hidden; margin-inline-end:2px; transform:translateY(40%) rotate(-8deg); opacity:.85; mix-blend-mode:multiply; pointer-events:none; }
.hero-hand img { position:absolute; left:-2.134%; top:-44.78372%; inline-size:104.36725%; block-size:190.33079%; max-inline-size:none; }
.hero-caption { grid-column:1; grid-row:2; margin-block-start:calc(var(--signature-width) * .18); font-size:.75rem; letter-spacing:.06em; color:var(--muted); text-align:end; }
.botanical { position:absolute; pointer-events:none; user-select:none; block-size:auto; }
.botanical--flowers { inline-size:36px; inset-inline-start:-44px; inset-block-end:28px; opacity:.45; transform:rotate(-12deg); }
.botanical--leaf { inline-size:42px; inset-inline-end:-16px; inset-block-start:-20px; opacity:.65; transform:rotate(12deg); z-index:2; }
.intro { position:relative; isolation:isolate; padding-block:var(--section); background:linear-gradient(to bottom,var(--paper),var(--surface) var(--section-fade)); }
/* Ambient daylight: geometric window frames. */
.section-atmosphere { position:absolute; inset:0; z-index:-1; overflow:hidden; mask-image:linear-gradient(to bottom,transparent,#000 var(--section-fade),#000 calc(100% - var(--section-fade)),transparent); pointer-events:none; user-select:none; }
.section-atmosphere::before { content:''; position:absolute; pointer-events:none; }
/* User-supplied photographic flare, kept separate from readable content. */
.light-haze { position:absolute; inset:0; z-index:-1; pointer-events:none; user-select:none; background:var(--light-bokeh) 82% 50% / cover no-repeat; opacity:var(--haze-opacity); filter:hue-rotate(16deg) saturate(.45); mask-image:linear-gradient(to bottom,transparent,#000 var(--section-fade),#000 calc(100% - var(--section-fade)),transparent); }
.reservation .light-haze { --haze-opacity:.20; background-position:15% 50%; }
.section-atmosphere--window::before { inline-size:clamp(320px,48vw,740px); block-size:clamp(360px,44vw,650px); inset-inline-end:-8%; inset-block-start:-20%; opacity:var(--shadow-window); filter:blur(7px); transform:rotate(-24deg) skewY(8deg); background:linear-gradient(90deg,transparent 0 17%,var(--ink) 17% 20%,transparent 20% 59%,var(--ink) 59% 62%,transparent 62%),linear-gradient(0deg,transparent 0 31%,var(--ink) 31% 34%,transparent 34% 77%,var(--ink) 77% 80%,transparent 80%); mask-image:linear-gradient(135deg,#000 12%,transparent 86%); }
.salon-information .section-atmosphere--window::before { inset-inline-start:-9%; inset-inline-end:auto; inset-block-start:-15%; transform:rotate(21deg) skewY(-6deg); mask-image:linear-gradient(225deg,#000 0,transparent 90%); }
@media (max-width:600px) {
  .section-atmosphere--window::before { inline-size:360px; block-size:440px; inset-inline-end:-180px; inset-block-start:0; opacity:.055; filter:blur(5px); }
  .salon-information .section-atmosphere--window::before { inset-inline-start:-160px; }
}
.intro-layout { display:grid; grid-template-columns:5fr 6fr; gap:clamp(3rem,8vw,8rem); align-items:center; }
.intro-photo { overflow:hidden; border-radius:4px 4px 110px 4px; }
.intro-photo img { inline-size:100%; aspect-ratio:16/9; object-fit:cover; object-position:48% 50%; }
.intro-content .eyebrow { margin-inline-start:-.5rem; margin-block-end:32px; }
.intro h2 { margin-block-end:32px; }
.intro-content>p:last-child { max-inline-size:34em; color:var(--muted); line-height:2; }
.botanical--branch { inline-size:92px; right:4vw; bottom:30px; opacity:.45; }
.gallery { --gallery-tint:#f0e7e3; position:relative; isolation:isolate; padding-block:var(--section); background-color:var(--gallery-tint); background-image:linear-gradient(to bottom,var(--surface),transparent var(--section-fade),transparent calc(100% - var(--section-fade)),var(--paper)); transition:background-color var(--scene) var(--ease); }
.gallery-heading { display:flex; align-items:end; justify-content:space-between; gap:2rem; margin-block-end:56px; }
.gallery-heading h2 { margin-block-start:12px; font-size:clamp(1.75rem,2.7vw,2.5rem); }
.gallery-heading>p { color:var(--muted); font-size:1rem; padding-block-end:6px; }
.carousel { inline-size:100%; }
.carousel-track { display:flex; inline-size:100%; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
.carousel-track::-webkit-scrollbar { display:none; }
.gallery-slide { flex:0 0 100%; min-inline-size:0; display:grid; grid-template-columns:minmax(0,7fr) minmax(0,4fr); align-items:center; gap:clamp(2rem,6vw,6rem); scroll-snap-align:start; scroll-snap-stop:always; }
.slide-image { background:var(--paper); border-radius:6px; overflow:hidden; }
.slide-image img { inline-size:100%; aspect-ratio:4/3; object-fit:contain; user-select:none; }
.carousel.is-enhanced .carousel-track { touch-action:pan-y; cursor:grab; }
.carousel.is-dragging .carousel-track { cursor:grabbing; }
.gallery-slide h3 { font-size:clamp(1.625rem,2.6vw,2.5rem); line-height:1.7; letter-spacing:.025em; margin-block:0 24px; }
.slide-description { color:var(--muted); line-height:1.9; }
.slide-meta { border-block-start:1px solid var(--control-line); margin-block-start:32px; padding-block-start:20px; font-size:.875rem; }
.slide-meta>div { display:flex; justify-content:space-between; gap:.5rem 1rem; flex-wrap:wrap; }
.slide-meta>div+div { margin-block-start:12px; }
.slide-meta dt { color:var(--muted); }
.slide-meta dd { white-space:nowrap; }
.carousel-controls { display:grid; grid-template-columns:44px minmax(0,1fr) 44px; gap:16px; align-items:center; margin-block-start:32px; border-block-start:1px solid var(--control-line); padding-block-start:24px; }
.carousel-dots { display:flex; grid-column:2; grid-row:1; justify-self:center; gap:10px; }
.carousel-dot { inline-size:48px; block-size:48px; padding:4px; border:1px solid transparent; border-radius:50%; background:transparent; color:var(--ink); }
.carousel-dot>span { display:grid; place-items:center; inline-size:100%; block-size:100%; border-radius:50%; background:#e2c8c5; }
.carousel-dot[data-gallery-index="1"]>span { background:#c8d2bd; }
.carousel-dot[data-gallery-index="2"]>span { background:#d5c5e4; }
.carousel-dot[data-gallery-index="3"]>span { background:#edc8ad; }
.carousel-dot[data-gallery-index="4"]>span { background:#e3decd; }
.carousel-dot[aria-current="true"] { border-color:var(--action); }
.carousel-step-buttons { display:contents; }
.carousel-step { display:grid; place-items:center; grid-row:1; inline-size:44px; min-block-size:48px; border:0; border-block-end:1px solid var(--action); background:transparent; color:var(--action); padding:8px; font-size:1.375rem; line-height:1; }
[data-gallery-prev] { grid-column:1; }
[data-gallery-next] { grid-column:3; }
.carousel-step:disabled { opacity:.45; cursor:default; }
.image-note { font-size:var(--caption); color:var(--muted); line-height:1.8; margin-block-start:24px; }
.first { display:grid; grid-template-columns:5fr 7fr; gap:5rem; padding-block:var(--section); }
.first-heading h2 { font-size:clamp(1.5rem,2.2vw,2rem); margin-block-start:24px; }
.first-rows { min-inline-size:0; }
details { border-block-start:1px solid var(--line); }
details:last-child { border-block-end:1px solid var(--line); }
summary { position:relative; list-style:none; cursor:pointer; padding:28px 36px 28px 0; line-height:1.8; }
summary::-webkit-details-marker { display:none; }
summary::after { content:'＋'; position:absolute; right:0; top:28px; color:var(--action); }
details[open] summary::after { content:'−'; }
details p { padding:0 1.5rem 28px 0; color:var(--muted); line-height:1.95; }
.salon-information { position:relative; isolation:isolate; padding-block:var(--section); background:linear-gradient(to bottom,var(--paper),var(--surface) var(--section-fade)); }
.salon-grid { display:grid; gap:48px; }
.salon-heading { display:flex; align-items:baseline; gap:3rem; flex-wrap:wrap; }
.salon-heading .eyebrow { font-size:clamp(3rem,4.5vw,4.5rem); }
.salon-heading h2 { font-size:clamp(1.5rem,2.2vw,2rem); }
.salon-details { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); column-gap:48px; }
.salon-details>div { min-inline-size:0; border-block-start:1px solid var(--line); padding-block:24px; }
.salon-details dt { font-size:.875rem; color:var(--muted); margin-block-end:10px; }
.salon-details dd { line-height:1.9; }
.salon-information .image-note { margin-block-start:8px; }
.reservation { position:relative; isolation:isolate; overflow:hidden; padding-block:var(--section); background:#eee8f0; }
.reservation::before { content:''; position:absolute; inset:-5%; z-index:-1; pointer-events:none; background:linear-gradient(110deg,#fae9e3,transparent 55%,#dddff0); animation:light-breathe 20s ease-in-out infinite alternate; animation-play-state:paused; }
.reservation::after { content:''; position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(to bottom,var(--surface),transparent var(--section-fade),transparent calc(100% - var(--section-fade)),var(--paper)); }
.reservation.color-visible::before { animation-play-state:running; }
.reservation-grid>div:first-child { max-inline-size:52rem; text-align:center; margin-inline:auto; }
.reservation .eyebrow { font-size:clamp(3.5rem,6vw,6rem); }
.reservation h2 { font-size:clamp(2.5rem,4.5vw,4.5rem); line-height:1.55; letter-spacing:.04em; margin-block:24px; }
.reservation-lead { margin-block-end:28px; line-height:1.95; }
.demo { display:grid; grid-template-columns:5fr 6fr; gap:0 3rem; align-content:start; background:var(--surface); padding:48px; border:1px solid var(--control-line); border-radius:6px; max-inline-size:64rem; margin:56px auto 0; }
.demo-label { grid-column:1; grid-row:1; color:var(--action); font-size:.875rem; letter-spacing:.08em; margin-block-end:16px; }
.demo>p:nth-child(2) { grid-column:1; grid-row:2; font-size:1rem; }
.demo form,.demo #demo-result { grid-column:2; grid-row:1 / 4; min-inline-size:0; }
.demo label { display:block; font-size:.875rem; margin-block-end:12px; }
.select-field { position:relative; }
select { appearance:none; -webkit-appearance:none; inline-size:100%; min-block-size:56px; border:1px solid var(--control-line); border-radius:var(--radius); background:white; padding:14px 40px 14px 16px; color:var(--ink); font-size:1rem; }
.select-field::after { content:''; position:absolute; right:18px; top:50%; inline-size:8px; block-size:8px; border-inline-end:1px solid var(--action); border-block-end:1px solid var(--action); transform:translateY(-70%) rotate(45deg); pointer-events:none; }
.demo .button { inline-size:100%; margin-block-start:20px; }
.outline { background:transparent; color:var(--action); }
.outline::after { content:'→'; }
.demo :disabled { opacity:.65; cursor:default; }
#demo-result { line-height:1.9; }
#demo-selection { font-family:var(--serif); font-size:1.375rem; margin-block-end:16px; }
#demo-result>p:nth-child(2) { font-size:.875rem; color:var(--muted); }
.text-button { display:inline-flex; align-items:center; min-block-size:44px; padding:8px 0; border:0; border-block-end:1px solid var(--action); color:var(--action); background:transparent; margin-block-start:20px; }
.botanical--sprig { inline-size:110px; left:4vw; bottom:35px; opacity:.55; }
.footer { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:3rem; padding-block:48px; }
.footer .logo-image { inline-size:170px; }
.footer p { max-inline-size:42em; color:var(--muted); font-size:.875rem; line-height:1.8; }
.motion-control { min-block-size:44px; padding:8px 0; border:0; border-block-end:1px solid var(--control-line); background:transparent; color:var(--muted); font-size:.875rem; }
.mobile-action { display:none; }
.demo,section[id] { scroll-margin-block-start:32px; }
@keyframes light-breathe { from { opacity:.35; transform:translateX(-3%); } to { opacity:.65; transform:translateX(3%); } }
html.motion-paused { scroll-behavior:auto; }
html.motion-paused .reservation::before { animation-play-state:paused; }
html.motion-paused .gallery,html.motion-paused .button { transition:none; }
@media (hover:hover) and (pointer:fine) {
  .button:hover { background:var(--action-hover); }
  .outline:hover { color:white; }
  .header nav>a:hover,.carousel-step:hover:not(:disabled),.text-button:hover { text-decoration:underline; }
  .carousel-dot:hover { border-color:var(--action); }
}
@media (max-width:1100px) and (min-width:769px) {
  .hero h1 { font-size:clamp(3rem,5.2vw,3.75rem); }
  .hero-photo img { block-size:420px; object-position:52% 50%; }
  .hero-photo { border-start-start-radius:90px; }
  .hero-actions .button { font-size:.875rem; padding-inline:16px; }
  .first { gap:3rem; }
  .carousel-dots { gap:4px; }
  .carousel-dot { inline-size:44px; block-size:44px; }
}
@media (max-width:768px) {
  .header { min-block-size:92px; gap:1.5rem; }
  .logo-image { inline-size:160px; }
  .header nav { gap:1.5rem; }
  .header nav>a:first-child { display:none; }
  .header .booking { font-size:.8125rem; gap:.5rem; }
  .hero { display:flex; flex-direction:column; gap:0; padding-block:36px 64px; }
  .hero-title { order:1; max-inline-size:36rem; }
  .hero h1 { display:block; font-size:clamp(2.5rem,7.5vw,3.75rem); }
  .headline-line:last-child { margin-inline-start:.65em; }
  .hero-subcopy { text-align:start; }
  .hero-visual { order:2; inline-size:100%; margin-block-start:32px; padding-block-end:32px; }
  .hero-photo { border-radius:110px 4px 4px 4px; }
  .hero-photo img { block-size:auto; aspect-ratio:16 / 11; object-fit:cover; }
  .hero-actions { order:3; align-self:stretch; display:grid; grid-template-columns:1fr 1fr; column-gap:2rem; align-items:start; padding:4px 0 0; }
  .hero-actions .lead { grid-column:1; grid-row:1 / 3; margin:0; }
  .hero-actions .button { grid-column:2; grid-row:1; }
  .hero-actions .quiet { grid-column:2; grid-row:2; }
  .hero-visual { --signature-width:min(80%,480px); }
  .intro-layout { grid-template-columns:5fr 6fr; gap:2rem; }
  .intro-photo { border-end-end-radius:70px; }
  .intro h2 { font-size:clamp(1.5rem,3.4vw,1.875rem); }
  .intro-content .eyebrow { font-size:3.25rem; margin-block-end:24px; }
  .intro-content>p:last-child br { display:none; }
  .gallery-heading { display:block; margin-block-end:36px; }
  .gallery-heading>p { margin-block-start:20px; }
  .gallery-slide { grid-template-columns:1fr; gap:28px; }
  .gallery-slide figcaption { display:grid; grid-template-columns:1fr 1fr; gap:0 2rem; }
  .gallery-slide h3 { grid-column:1; grid-row:1; font-size:1.875rem; margin-block:0 16px; }
  .slide-description { grid-column:1; }
  .slide-meta { grid-column:2; grid-row:1 / 3; margin:0; align-self:center; }
  .carousel-dots { gap:8px; }
  .first { grid-template-columns:1fr; gap:32px; }
  .salon-heading { display:block; }
  .salon-heading h2 { margin-block-start:20px; }
  .salon-details { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 32px; }
  .demo { padding:32px; gap:0 32px; }
  .footer { grid-template-columns:1fr auto; gap:24px; }
  .footer p { grid-column:1 / -1; grid-row:2; }
}
@media (max-width:600px) {
  html { scroll-padding-block-end:100px; }
  body { padding-block-end:calc(86px + env(safe-area-inset-bottom,0px)); }
  .header { min-block-size:84px; gap:14px; }
  .logo-image { inline-size:126px; }
  .header .booking { font-size:.75rem; gap:8px; max-inline-size:12em; line-height:1.65; }
  .booking::after { font-size:1rem; }
  .hero { padding-block:28px 64px; }
  .hero .eyebrow { font-size:1.5rem; margin-block-end:20px; }
  .hero h1 { font-size:clamp(2.125rem,10.15vw,3.125rem); line-height:1.65; letter-spacing:.035em; }
  .headline-line:last-child { margin-inline-start:.6em; }
  .hero-subcopy { font-size:1.0625rem; margin-block-start:20px; max-inline-size:20em; }
  .hero-visual { margin-block-start:28px; padding-block-end:36px; }
  .hero-photo { border-start-start-radius:84px; }
  .hero-photo img { aspect-ratio:4/5; object-position:50% 50%; }
  .hero-visual { --signature-width:95%; }
  .hero-hand { margin-inline-end:-2px; }
  .hero-caption { font-size:.75rem; letter-spacing:.02em; }
  .hero-actions { display:block; padding:0; }
  .hero-actions .lead { margin-block-end:24px; }
  .hero-actions .button { inline-size:100%; }
  .quiet { font-size:.875rem; }
  .botanical--flowers { inline-size:30px; left:-13px; bottom:100px; }
  .botanical--leaf { inline-size:30px; right:-10px; top:-12px; }
  .intro { padding-block:72px 76px; }
  .intro-layout { grid-template-columns:1fr; gap:36px; }
  .intro-photo { inline-size:82%; margin-inline-start:auto; border-radius:4px 4px 70px 4px; }
  .intro-photo img { aspect-ratio:4/3; object-position:48% 50%; }
  .intro-content .eyebrow { font-size:3.5rem; margin:0 0 24px; }
  .intro h2 { font-size:1.75rem; margin-block-end:24px; }
  .intro-content>p:last-child { font-size:1rem; }
  .botanical--branch { inline-size:65px; bottom:16px; opacity:.35; }
  .gallery { padding-block:88px 84px; }
  .eyebrow { font-size:clamp(3rem,13vw,4.5rem); }
  .gallery-heading h2 { font-size:1.75rem; }
  .gallery-heading>p { font-size:.875rem; }
  .gallery-slide { gap:24px; }
  .gallery-slide figcaption { display:block; }
  .gallery-slide h3 { font-size:1.625rem; line-height:1.7; margin-block:0 16px; }
  .slide-description { font-size:1rem; }
  .slide-meta { margin-block-start:24px; padding-block-start:16px; }
  .slide-meta>div { justify-content:flex-start; }
  .slide-meta dt { flex:0 0 8em; }
  .carousel-controls { gap:8px; }
  .carousel-dots { gap:0; }
  .carousel-dot { inline-size:44px; block-size:44px; }
  .image-note { font-size:.875rem; }
  .first { padding-block:64px; }
  .first-heading h2 { font-size:1.625rem; margin-block-start:20px; }
  summary { font-size:1rem; padding-block:24px; padding-inline-end:32px; }
  summary::after { top:24px; }
  .salon-information { padding-block:80px 64px; }
  .salon-grid { gap:32px; }
  .salon-heading .eyebrow { font-size:3.25rem; }
  .salon-heading h2 { font-size:1.75rem; }
  .salon-details { grid-template-columns:1fr; }
  .salon-details>div { display:grid; grid-template-columns:5em minmax(0,1fr); gap:20px; padding-block:20px; }
  .salon-details dt { margin:0; padding-block-start:2px; }
  .salon-details dd { font-size:1rem; }
  .reservation { padding-block:88px 64px; }
  .reservation .eyebrow { font-size:3.75rem; }
  .reservation h2 { font-size:2.25rem; margin-block:24px; }
  .reservation-lead { font-size:1rem; }
  .reservation-grid>div:first-child>.button { inline-size:100%; }
  .demo { display:block; padding:28px 22px; margin-block-start:36px; }
  .demo>p:nth-child(2) { font-size:.875rem; }
  .demo form { margin-block-start:28px; }
  .demo #demo-result { margin-block-start:28px; }
  #demo-selection { font-size:1.25rem; }
  .botanical--sprig { inline-size:60px; left:20px; bottom:16px; }
  .footer { padding-block:32px; gap:24px 16px; }
  .footer .logo-image { inline-size:140px; }
  .footer p { font-size:.875rem; }
  .motion-control { font-size:.8125rem; }
  .mobile-action { display:block; position:fixed; inset:auto 0 0; z-index:30; padding:10px 20px max(10px,env(safe-area-inset-bottom,0px)); background:#f8f6f2f5; border-block-start:1px solid var(--line); }
  .mobile-action a { display:flex; align-items:center; justify-content:space-between; min-block-size:54px; padding:14px 22px; background:var(--action); color:white; font-size:1rem; border-radius:var(--radius); }
  .mobile-action a::after { content:'↗'; font-size:1.25rem; }
}
@media (max-width:360px) {
  .logo-image { inline-size:112px; }
  .header .booking { max-inline-size:none; white-space:nowrap; gap:6px; }
  .hero h1 { font-size:2.125rem; letter-spacing:.015em; }
  .headline-line:last-child { margin-inline-start:.3em; }
  .hero-subcopy .copy-phrase { display:block; }
  .carousel-controls { grid-template-columns:44px minmax(0,1fr) 44px; gap:8px 0; }
  .carousel-dots { grid-column:1 / -1; grid-row:1; gap:8px; }
  .carousel-step { grid-row:2; }
  .carousel-dot { inline-size:44px; block-size:44px; }
  .salon-heading .eyebrow { font-size:2.75rem; }
  .salon-details>div { grid-template-columns:1fr; gap:6px; }
  .demo { padding-inline:18px; }
  .demo .button { font-size:.9375rem; padding-inline:16px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .reservation::before { animation:none; transform:none; }
  .gallery,.button { transition:none; }
}
@media (forced-colors:active) {
  select { appearance:auto; -webkit-appearance:auto; }
  .select-field::after { display:none; }
  .carousel-dot[aria-current="true"] { outline:2px solid Highlight; }
}
