:root {
  --ink:#122c41;
  --paper:#f5f5ef;
  --blue:#dae6ee;
  --lime:#e6edbb;
  --line:rgba(18,44,65,.25);
  --space:clamp(24px,5vw,80px);
  --font:Arial,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:100px;
}
body {
  margin:0;
  color:var(--ink);
  background:var(--paper);
  font-family:var(--font);
  font-size:16px;
  line-height:1.9;
  -webkit-font-smoothing:antialiased;
}
a {
  color:inherit;
  text-decoration:none;
}
button,input,select {
  font:inherit;
  color:inherit;
}
button,a,input,summary,select {
  -webkit-tap-highlight-color:transparent;
}
button {
  cursor:pointer;
}
a,button,summary,input,select {
  touch-action:manipulation;
}
button {
  border:0;
}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible {
  outline:3px solid #b87819;
  outline-offset:5px;
}
a:hover .look-image img,.hero-side-image:hover img {
  transform:scale(1.035);
}
a.text-link:hover,a.light-link:hover {
  gap:50px;
}
h1,h2,h3,h4,p,figure {
  margin:0;
}
h1,h2,h3,h4 {
  font-weight:500;
  line-height:1.5;
}
p+p {
  margin-top:24px;
}
img {
  display:block;
  width:100%;
  height:auto;
  object-fit:cover;
}
ul,ol {
  padding:0;
  list-style:none;
}
small,.small-note {
  font-size:14px;
  line-height:1.8;
}
strong {
  font-weight:500;
}
b {
  font-weight:400;
}
fieldset {
  margin:0;
  padding:0;
  border:0;
}
legend {
  font-size:24px;
  margin-bottom:32px;
}
input,select {
  min-height:52px;
  max-width:100%;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:0;
  background:var(--paper);
}
input[type=checkbox] {
  accent-color:var(--ink);
  min-height:22px;
  width:22px;
  height:22px;
  flex-shrink:0;
  margin:4px 0;
}
select {
  width:100%;
}
input[type=date] {
  width:100%;
  min-width:0;
  appearance:none;
}
button {
  background:none;
}
::selection {
  background:var(--lime);
  color:var(--ink);
}
[hidden] {
  display:none!important;
}
.skip-link {
  position:fixed;
  left:16px;
  top:-70px;
  padding:10px 20px;
  z-index:30;
  background:var(--lime);
}
.skip-link:focus {
  top:10px;
}
.skip-link:not(:focus) {
  clip-path:inset(50%);
}
.site-header {
  height:98px;
  padding:0 40px;
  display:flex;
  align-items:center;
  gap:42px;
  justify-content:space-between;
  border-bottom:1px solid var(--line);
  background:var(--paper);
  position:relative;
  z-index:20;
}
.brand {
  font-size:44px;
  font-weight:700;
  letter-spacing:-3px;
  line-height:1;
}
.brand span {
  display:block;
  font-size:14px;
  letter-spacing:1.1px;
  font-weight:400;
  margin-top:9px;
}
.desktop-nav {
  display:flex;
  gap:32px;
  margin-left:auto;
}
.desktop-nav a {
  font-size:14px;
  letter-spacing:.5px;
  position:relative;
}
.desktop-nav a:after {
  content:"";
  position:absolute;
  left:0;
  bottom:-6px;
  width:0;
  height:1px;
  background:currentColor;
  transition:width .25s;
}
.desktop-nav a:hover:after,.desktop-nav a[aria-current=page]:after {
  width:100%;
}
.header-book {
  background:var(--ink);
  color:#fff;
  padding:10px 24px;
  font-size:14px;
  display:flex;
  gap:26px;
  align-items:center;
}
.header-book:hover {
  background:#2f4a5e;
}
.header-book span {
  font-size:24px;
  line-height:1;
}
.mobile-menu {
  display:none;
}
.eyebrow,.section-kicker {
  font-size:14px;
  letter-spacing:1.3px;
  line-height:1.6;
}
.eyebrow {
  display:block;
  margin-bottom:24px;
}
.section {
  padding:100px var(--space);
}
.section-kicker {
  display:flex;
  justify-content:space-between;
  gap:20px;
  border-top:1px solid var(--line);
  padding-top:18px;
  margin-bottom:55px;
}
.section-head {
  display:flex;
  justify-content:space-between;
  gap:40px;
  align-items:flex-end;
  margin-bottom:50px;
}
.section-head h2 {
  font-size:clamp(32px,4.5vw,66px);
  line-height:1.08;
  letter-spacing:-1.5px;
}
.section-head p {
  margin-bottom:24px;
}
.text-link,.light-link {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
  border-bottom:1px solid currentColor;
  padding:14px 0;
  font-size:14px;
  transition:gap .25s;
}
.text-link span,.light-link span {
  font-size:24px;
  line-height:1;
}
.blue {
  background:var(--blue);
}
.navy {
  background:var(--ink);
  color:var(--paper);
  --line:rgba(255,255,255,.3);
}
.button {
  background:var(--ink);
  color:var(--paper);
  padding:17px 25px;
  display:inline-flex;
  gap:35px;
  justify-content:space-between;
  align-items:center;
  min-height:56px;
}
.button:hover {
  background:#2d4a61;
}
.button span {
  font-size:24px;
}
.hero {
  display:grid;
  grid-template-columns:minmax(0,70fr) minmax(0,30fr);
  height:calc(100svh - 98px - 57px);
  min-height:610px;
  max-height:860px;
}
.hero-main {
  min-height:0;
  position:relative;
  overflow:hidden;
  color:white;
}
.hero-main>img {
  height:100%;
  object-position:62% center;
}
.hero-main:after {
  position:absolute;
  content:"";
  inset:0;
  background:linear-gradient(90deg,rgba(8,25,32,.4),transparent 73%),linear-gradient(0deg,rgba(8,25,32,.38),transparent 65%);
  pointer-events:none;
}
.hero-copy {
  position:absolute;
  z-index:1;
  left:5.5%;
  bottom:12%;
  max-width:88%;
}
.hero-copy .eyebrow {
  font-size:14px;
  letter-spacing:1.7px;
  margin-bottom:22px;
}
.hero-copy h1 {
  font-size:clamp(29px,3.35vw,54px);
  letter-spacing:2px;
  line-height:1.65;
  margin-bottom:22px;
}
.hero-copy .light-link {
  min-width:178px;
}
.image-index {
  position:absolute;
  z-index:1;
  right:28px;
  bottom:18px;
  letter-spacing:1px;
  font-size:14px;
}
.hero-side {
  min-height:0;
  display:grid;
  grid-template-rows:44% 56%;
  min-width:0;
}
.hero-note {
  padding:32px 28px;
  background:var(--blue);
  position:relative;
  overflow:hidden;
}
.hero-note .eyebrow {
  font-size:14px;
  letter-spacing:.5px;
  margin-bottom:22px;
}
.hero-note p {
  font-size:clamp(28px,3.4vw,58px);
  line-height:1.05;
  letter-spacing:-2px;
  position:relative;
  z-index:1;
}
.note-line {
  display:block;
  font-size:14px;
  margin-top:22px;
}
.asterisk {
  position:absolute;
  font-size:85px;
  line-height:1;
  right:18px;
  bottom:6px;
  color:#98b6ca;
}
.hero-side-image {
  position:relative;
  overflow:hidden;
  color:#fff;
}
.hero-side-image:after {
  content:"";
  position:absolute;
  inset:60% 0 0;
  background:linear-gradient(transparent,rgba(8,25,32,.5));
}
.hero-side-image img {
  height:100%;
  object-position:center 32%;
  transition:transform .6s;
}
.hero-side-image>span {
  position:absolute;
  z-index:1;
  bottom:20px;
  left:28px;
  right:25px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:14px;
  letter-spacing:1px;
}
.hero-side-image b {
  font-size:28px;
}
.hero-meta {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:17px 40px;
  border-bottom:1px solid var(--line);
  font-size:14px;
  line-height:1.6;
}
.hero-meta a span {
  margin-left:18px;
}
.concept-home {
  padding-bottom:50px;
  overflow:hidden;
}
.concept-layout {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:70px;
  max-width:1280px;
  margin:auto;
}
.concept-layout h2 {
  font-size:clamp(27px,3.3vw,48px);
  letter-spacing:1px;
  line-height:1.8;
}
.serif {
  font-family:"Hiragino Mincho ProN","Yu Mincho",serif;
}
.concept-layout p {
  font-size:16px;
  line-height:2.2;
}
.concept-layout .text-link {
  margin-top:24px;
}
.giant-type {
  font-size:clamp(80px,16.4vw,280px);
  font-weight:500;
  line-height:1;
  letter-spacing:-.065em;
  white-space:nowrap;
  margin:80px -4px 0;
}
.style-section {
  background:#e9eae5;
}
.home-styles {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:26px;
  align-items:start;
}
.home-styles .look:nth-child(2) {
  margin-top:80px;
}
.home-styles .look:nth-child(3) {
  margin-top:30px;
}
.look-image {
  aspect-ratio:3/4;
  overflow:hidden;
  position:relative;
}
.look-image img {
  height:100%;
  transition:transform .6s;
  object-position:65% center;
}
.look-image>span {
  position:absolute;
  top:16px;
  left:20px;
  font-size:14px;
  background:var(--paper);
  width:32px;
  text-align:center;
}
.look-caption {
  border-bottom:1px solid var(--line);
  padding:22px 0;
}
.look-caption h3 {
  font-size:26px;
  letter-spacing:-.6px;
}
.look-caption>span {
  font-size:14px;
}
.style-section>.small-note {
  margin-top:25px;
}
.menu-home {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
}
.menu-home h2 {
  font-size:clamp(36px,4.5vw,68px);
  line-height:1.05;
  letter-spacing:-1.5px;
  margin-bottom:30px;
}
.menu-home .text-link {
  margin-top:20px;
}
.price-list {
  border-top:1px solid var(--line);
}
.price-list>a {
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid var(--line);
  padding:28px 0;
  gap:20px;
}
.price-label {
  font-size:33px;
  line-height:1.2;
  letter-spacing:-1px;
}
.price-label small {
  display:block;
  letter-spacing:0;
  margin-top:8px;
}
.price-list>a>span:last-child {
  font-size:23px;
  white-space:nowrap;
}
.price-list b {
  margin-left:18px;
}
.price-list .small-note {
  margin-top:20px;
}
.salon-photo {
  position:relative;
}
.salon-photo img {
  max-height:650px;
  aspect-ratio:2.1/1;
}
.salon-photo>span {
  position:absolute;
  bottom:25px;
  left:var(--space);
  background:var(--paper);
  padding:5px 15px;
  font-size:14px;
  letter-spacing:1px;
}
.salon-home-copy {
  padding:70px var(--space);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:25px 70px;
}
.salon-home-copy .eyebrow {
  grid-column:1/-1;
  margin-bottom:0;
}
.salon-home-copy h2 {
  font-size:36px;
  grid-row:2/4;
}
.salon-home-copy .text-link {
  justify-self:start;
}
.visit-home {
  border-top:1px solid var(--line);
}
.visit-home h2 {
  font-size:36px;
  margin-bottom:40px;
}
.link-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.link-grid a {
  padding:30px 24px 30px 0;
  display:grid;
  grid-template-columns:1fr auto;
  gap:6px;
  position:relative;
}
.link-grid a+a {
  padding-left:28px;
  border-left:1px solid var(--line);
}
.link-grid a>span:first-child {
  font-size:22px;
  letter-spacing:-.5px;
}
.link-grid a>span:nth-child(2) {
  font-size:14px;
}
.link-grid b {
  grid-column:2;
  grid-row:1/3;
  align-self:center;
  font-size:28px;
}
.link-grid a:hover {
  background:var(--blue);
}
.booking-cta {
  background:var(--lime);
  padding:64px var(--space);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:35px;
}
.booking-cta .eyebrow {
  margin-bottom:15px;
}
.booking-cta h2 {
  font-size:30px;
}
.booking-cta>a {
  font-size:32px;
  line-height:1.3;
  border-bottom:1px solid var(--ink);
  padding:15px 0;
  min-width:310px;
}
.booking-cta>a>span {
  float:right;
  margin-left:30px;
}
.booking-cta small {
  display:block;
  margin-top:12px;
}
.site-footer {
  padding:65px var(--space) 24px;
  background:var(--ink);
  color:var(--paper);
  --line:rgba(255,255,255,.25);
}
.footer-top {
  display:flex;
  align-items:center;
  gap:70px;
  margin-bottom:50px;
}
.footer-brand {
  font-size:66px;
  font-weight:700;
  letter-spacing:-4px;
  line-height:1;
}
.footer-brand span {
  display:block;
  letter-spacing:2px;
  font-size:14px;
  font-weight:400;
  margin-top:12px;
}
.footer-top p {
  font-size:16px;
}
.top-link {
  margin-left:auto;
  width:54px;
  height:54px;
  border:1px solid var(--line);
  border-radius:50%;
  text-align:center;
  font-size:28px;
  line-height:50px;
}
.footer-links {
  display:flex;
  flex-wrap:wrap;
  gap:16px 26px;
  font-size:14px;
  letter-spacing:.5px;
  padding-bottom:35px;
}
.footer-links a:hover {
  text-decoration:underline;
}
.footer-bottom {
  border-top:1px solid var(--line);
  padding-top:22px;
  font-size:14px;
  display:flex;
  justify-content:space-between;
  gap:30px;
}
.footer-bottom p {
  max-width:740px;
  line-height:1.8;
}
.footer-bottom>span {
  white-space:nowrap;
}
.page-intro {
  padding:75px var(--space) 65px;
}
.page-intro h1 {
  font-size:clamp(45px,7.5vw,112px);
  font-weight:500;
  line-height:.97;
  letter-spacing:-.055em;
  margin-bottom:45px;
}
.outline-type {
  -webkit-text-stroke:1px var(--ink);
  color:transparent;
}
.intro-bottom {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:35px;
}
.intro-bottom h2 {
  font-size:28px;
}
.intro-bottom p {
  font-size:16px;
}
.editorial {
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:80px;
}
.editorial h2,.care-banner h2 {
  font-size:36px;
  margin-bottom:30px;
}
.editorial p {
  line-height:2.1;
}
.editorial .text-link {
  margin-top:24px;
}
figure figcaption {
  font-size:14px;
  margin-top:16px;
  letter-spacing:.5px;
}
.editorial figure img {
  aspect-ratio:1/1;
}
.section-title {
  font-size:36px;
  margin-bottom:60px;
}
.principles {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:44px;
}
.principles article {
  border-top:1px solid var(--line);
  padding-top:15px;
}
.principles article>span {
  font-size:14px;
}
.principles h3 {
  font-size:52px;
  margin:22px 0;
}
.principles h4 {
  font-size:20px;
  margin-bottom:20px;
}
.principles p {
  font-size:16px;
}
.conversation {
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:70px;
}
.conversation h2 {
  font-size:36px;
}
.speech {
  font-size:22px;
  background:var(--blue);
  padding:30px;
}
.response {
  border-left:1px solid var(--ink);
  padding:0 25px;
  margin-left:30px;
}
.dialogue .small-note {
  margin-top:20px;
}
.dialogue .text-link {
  margin-top:25px;
}
.care-banner {
  display:grid;
  grid-template-columns:1fr 1fr;
  background:#e9eae5;
}
.care-banner>img {
  height:100%;
  min-height:480px;
}
.care-banner>div {
  padding:70px clamp(25px,5vw,80px);
  align-self:center;
}
.care-banner .text-link {
  margin-top:25px;
}
.compact-section {
  padding-top:70px;
  padding-bottom:70px;
}
.compact-section h2 {
  font-size:30px;
}
.compact-section .section-head {
  margin:0;
}
.notes-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:45px;
  margin-top:40px;
}
.notes-grid h3 {
  font-size:22px;
  margin-bottom:18px;
}
.menu-catalog {
  padding-top:30px;
}
.menu-catalog .section-kicker {
  margin-bottom:15px;
}
.menu-row {
  display:grid;
  grid-template-columns:50px 1fr 1.7fr 1fr;
  align-items:center;
  gap:24px;
  border-bottom:1px solid var(--line);
  padding:35px 0;
  scroll-margin-top:24px;
}
.menu-number {
  font-size:14px;
  align-self:start;
}
.menu-row h2 {
  font-size:40px;
  letter-spacing:-1px;
  line-height:1;
}
.menu-row h2+p {
  font-size:14px;
  margin-top:14px;
}
.menu-row small {
  display:block;
  margin-top:15px;
}
.menu-row>a {
  font-size:26px;
  display:flex;
  justify-content:space-between;
  white-space:nowrap;
}
.package-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:50px;
}
.package-grid>a {
  padding:35px;
  border:1px solid var(--ink);
  transition:background .2s;
}
.package-grid>a:hover {
  background:var(--paper);
}
.package-grid>a>span {
  font-size:14px;
  letter-spacing:1px;
}
.package-grid h3 {
  font-size:36px;
  margin:24px 0;
}
.package-grid strong {
  display:flex;
  font-size:28px;
  justify-content:space-between;
  border-top:1px solid var(--line);
  padding-top:20px;
  margin-top:25px;
}
.filter-bar {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:30px;
  border-block:1px solid var(--line);
  padding:25px 0;
}
.filter-buttons {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.filter-buttons button {
  font-size:14px;
  letter-spacing:1px;
  min-width:80px;
  padding:9px 18px;
  border:1px solid var(--line);
  border-radius:30px;
}
.filter-buttons button[aria-pressed=true] {
  background:var(--ink);
  color:#fff;
}
.search-label {
  display:flex;
  gap:15px;
  align-items:center;
  font-size:14px;
}
.search-label input {
  max-width:250px;
}
.collection {
  padding-top:20px;
}
.collection>#style-count {
  margin:22px 0;
}
.style-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px 45px;
}
.style-image {
  position:relative;
  aspect-ratio:4/5;
  background:var(--blue);
}
.style-image img {
  height:100%;
  object-position:65% center;
}
.style-image>span {
  position:absolute;
  bottom:20px;
  left:20px;
  background:var(--paper);
  padding:4px 12px;
  font-size:14px;
}
.expand-style {
  position:absolute;
  right:20px;
  bottom:20px;
  min-width:48px;
  height:48px;
  background:var(--ink);
  color:#fff;
  border-radius:50%;
  font-size:24px;
}
.style-card h2 {
  font-size:34px;
  margin-top:20px;
  letter-spacing:-.8px;
}
.style-description {
  border-top:1px solid var(--line);
  margin-top:20px;
  padding-top:20px;
}
.style-description dl {
  display:grid;
  grid-template-columns:95px 1fr;
  font-size:14px;
  gap:8px;
}
.style-description dd {
  margin:0;
}
.empty-state {
  padding:70px 15px;
  text-align:center;
}
.empty-state h2 {
  font-size:24px;
}
.empty-state p {
  margin:20px 0;
}
.look-dialog {
  color:var(--ink);
  background:var(--paper);
  border:0;
  width:min(1040px,94vw);
  max-height:90svh;
  padding:60px 30px 30px;
}
.look-dialog::backdrop {
  background:rgba(0,12,22,.75);
}
.dialog-close {
  position:absolute;
  top:12px;
  right:20px;
  min-height:36px;
  font-size:14px;
}
.dialog-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:35px;
  align-items:center;
}
.dialog-layout>img {
  height:540px;
}
.dialog-layout h2 {
  font-size:32px;
  margin-bottom:25px;
}
.dialog-layout .text-link {
  margin-top:25px;
}
.length-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px;
}
.length-grid img {
  aspect-ratio:4/5;
  object-position:65% center;
}
.length-grid h3 {
  font-size:32px;
  margin:20px 0 12px;
}
.texture-compare {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  margin-top:50px;
}
.texture-compare article {
  min-width:0;
  border-top:1px solid var(--line);
  padding-top:30px;
}
.texture-compare h3 {
  font-size:28px;
  margin-bottom:20px;
}
.texture-line {
  display:flex;
  gap:26px;
  height:120px;
  align-items:center;
  overflow:hidden;
  margin-bottom:25px;
}
.texture-line i {
  width:2px;
  height:100px;
  background:var(--blue);
  transform:rotate(20deg);
  margin:0 15px;
}
.texture-line.wavy i {
  width:38px;
  border-right:2px solid var(--blue);
  background:none;
  border-radius:45%;
  transform:rotate(20deg);
}
.table-wrap {
  overflow:auto;
  margin-top:35px;
}
table {
  border-collapse:collapse;
  width:100%;
  min-width:620px;
  text-align:left;
}
caption {
  text-align:left;
  font-size:14px;
  margin-bottom:20px;
}
th,td {
  border-bottom:1px solid var(--line);
  padding:25px 18px;
  font-size:16px;
  font-weight:400;
}
thead {
  background:var(--blue);
}
tbody th {
  font-weight:600;
}
.mood-form {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px;
}
.mood-form label {
  display:grid;
  gap:12px;
}
.mood-form>.button {
  grid-column:1/-1;
  justify-self:start;
  margin-top:12px;
}
.mood-result {
  padding:24px;
  background:var(--paper);
  border-left:3px solid var(--ink);
  margin-top:30px;
  font-size:18px;
}
.wide-photo img {
  max-height:760px;
  aspect-ratio:2.2/1;
}
.wide-photo figcaption {
  padding:0 var(--space);
}
.space-plan {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  align-items:center;
}
.space-plan h2 {
  font-size:36px;
  margin-bottom:28px;
}
.floor-plan {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  border:1px solid var(--ink);
  padding:30px;
  background:var(--blue);
  font-size:14px;
  letter-spacing:1px;
}
.window-line {
  grid-column:1/-1;
  border-top:4px double var(--ink);
  padding-top:10px;
  text-align:center;
}
.plan-styling {
  grid-column:1/-1;
  min-height:155px;
  border:1px solid var(--ink);
  padding:16px;
}
.chairs {
  display:flex;
  justify-content:space-around;
  margin-top:25px;
}
.chairs i {
  border:1px solid var(--ink);
  border-bottom:7px solid var(--ink);
  border-radius:8px;
  width:35px;
  height:40px;
}
.plan-care,.plan-lounge {
  min-height:95px;
  border:1px solid var(--ink);
  padding:20px;
  display:flex;
  align-items:center;
}
.plan-label {
  grid-column:1/-1;
  font-size:14px;
}
.info-section {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
}
.info-section h2 {
  font-size:32px;
  margin-bottom:20px;
}
.info-list {
  margin:0;
}
.info-list>div {
  display:grid;
  grid-template-columns:1fr 1.8fr;
  gap:20px;
  border-top:1px solid var(--line);
  padding:22px 0;
}
.info-list dt {
  font-size:14px;
}
.info-list dd {
  margin:0;
}
.info-list a {
  text-decoration:underline;
}
.location-note h2 {
  font-size:32px;
  margin-bottom:25px;
}
.location-note .text-link {
  margin-top:20px;
}
.visit-flow {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:75px;
  align-items:start;
}
.visit-flow figure {
  position:sticky;
  top:30px;
}
.visit-flow figure img {
  aspect-ratio:4/5;
}
.timeline {
  margin:0;
}
.timeline>li {
  display:grid;
  grid-template-columns:50px 1fr;
  gap:20px;
  border-top:1px solid var(--line);
  padding:25px 0 35px;
}
.timeline>li>span {
  font-size:28px;
  line-height:1.5;
}
.timeline h2 {
  font-size:24px;
  margin-bottom:20px;
}
.visit-checks {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px;
}
.visit-checks>label {
  display:flex;
  align-items:flex-start;
  gap:18px;
  border-top:1px solid var(--line);
  padding:24px 0;
}
.visit-checks strong {
  display:block;
  font-size:20px;
  margin-bottom:15px;
}
.visit-checks input {
  accent-color:var(--lime);
}
.time-bars {
  margin-top:40px;
  max-width:1000px;
}
.time-bars>div {
  display:grid;
  grid-template-columns:170px 1fr 90px;
  align-items:center;
  gap:25px;
  margin-top:25px;
}
.time-bars>div>div {
  width:var(--bar);
  height:35px;
  background:var(--blue);
  border-right:3px solid var(--ink);
}
.time-bars+.small-note {
  margin-top:25px;
}
.faq-layout {
  display:grid;
  grid-template-columns:260px 1fr;
  gap:70px;
  padding-top:25px;
}
.faq-nav {
  display:flex;
  flex-direction:column;
  gap:16px;
  align-self:start;
  position:sticky;
  top:25px;
  font-size:14px;
}
.faq-nav a {
  border-bottom:1px solid var(--line);
  padding:15px 0;
}
.faq-groups>section {
  margin-bottom:70px;
  scroll-margin-top:30px;
}
.faq-groups h2 {
  font-size:28px;
  margin-bottom:30px;
}
.faq-groups details {
  border-top:1px solid var(--line);
}
.faq-groups details:last-child {
  border-bottom:1px solid var(--line);
}
.faq-groups summary {
  cursor:pointer;
  list-style:none;
  padding:25px 35px 25px 0;
  position:relative;
  font-size:18px;
  line-height:1.8;
}
.faq-groups summary::-webkit-details-marker {
  display:none;
}
.faq-groups summary:after {
  content:"+";
  position:absolute;
  right:3px;
  top:24px;
  font-size:24px;
}
.faq-groups details[open] summary:after {
  content:"−";
}
.faq-groups details p {
  padding:0 30px 28px 0;
}
.faq-groups details a {
  text-decoration:underline;
}
.booking-layout {
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(0,.8fr);
  gap:90px;
  align-items:start;
}
.booking-step {
  display:flex;
  gap:25px;
  border-bottom:1px solid var(--line);
  padding-bottom:20px;
  margin-bottom:40px;
  font-size:14px;
}
.booking-step .active {
  border-bottom:2px solid var(--ink);
  font-weight:600;
}
.booking-layout form label:not(.check-line) {
  display:grid;
  gap:10px;
  margin-bottom:28px;
}
.booking-layout .form-row {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:25px;
}
.required {
  font-size:14px;
  display:inline;
  color:#4c6070;
}
.booking-layout label:has(.required) {
  grid-template-columns:1fr auto;
}
.booking-layout label:has(.required)>select,.booking-layout label:has(.required)>input {
  grid-column:1/-1;
}
.booking-layout .small-note {
  margin:0 0 30px;
}
.check-line {
  display:flex;
  align-items:flex-start;
  gap:15px;
  margin:20px 0;
}
.check-line span {
  font-size:14px;
}
.form-error {
  color:#97352b;
  font-size:16px;
  margin-bottom:20px;
}
.booking-aside {
  padding:35px;
  background:var(--blue);
  position:sticky;
  top:25px;
}
.booking-aside h2 {
  font-size:38px;
  letter-spacing:-1px;
  line-height:1.08;
}
.booking-aside>p {
  font-size:14px;
  margin:25px 0;
}
.booking-aside .text-link {
  display:flex;
  font-size:14px;
  margin-top:14px;
}
.booking-estimate {
  display:flex;
  flex-direction:column;
  border-block:1px solid var(--line);
  padding:25px 0;
  margin-top:35px;
  font-size:14px;
}
.booking-estimate strong {
  font-size:36px;
  line-height:1.6;
}
#booking-summary h2 {
  font-size:30px;
  margin-bottom:20px;
}
#booking-summary>p {
  font-size:16px;
}
.summary-list {
  margin:35px 0;
}
.summary-list>div {
  display:grid;
  grid-template-columns:100px 1fr;
  gap:20px;
  border-top:1px solid var(--line);
  padding:18px 0;
}
.summary-list dt {
  font-size:14px;
}
.summary-list dd {
  margin:0;
}
@media(min-width:1600px) {
  .section,.page-intro,.site-footer,.booking-cta {
    padding-left:max(var(--space),calc((100vw - 1400px)/2));
    padding-right:max(var(--space),calc((100vw - 1400px)/2));
  }
}
@media(max-width:1050px) {
  .site-header {
    gap:25px;
    padding-inline:24px;
  }
  .desktop-nav {
    gap:20px;
  }
  .hero {
    grid-template-columns:67fr 33fr;
  }
  .hero-note {
    padding:26px 20px;
  }
  .hero-note .eyebrow {
    letter-spacing:0;
  }
  .hero-note p {
    font-size:36px;
  }
  .hero-copy h1 {
    font-size:34px;
  }
  .note-line {
    position:relative;
    z-index:1;
    font-size:14px;
  }
  .hero-meta {
    padding-inline:24px;
  }
  .hero-meta>span:nth-child(2) {
    display:none;
  }
  .section {
    padding:75px var(--space);
  }
  .concept-layout,.menu-home,.editorial,.space-plan,.info-section,.visit-flow,.booking-layout {
    gap:40px;
  }
  .menu-row {
    grid-template-columns:30px 1fr 1.3fr 1fr;
    gap:15px;
  }
  .menu-row h2 {
    font-size:30px;
  }
  .menu-row>a {
    font-size:22px;
  }
  .menu-row>p {
    font-size:14px;
  }
  .booking-cta h2 {
    font-size:24px;
  }
  .booking-cta>a {
    min-width:280px;
    font-size:28px;
  }
  .footer-bottom {
    flex-direction:column;
    gap:15px;
  }
  .faq-layout {
    grid-template-columns:210px 1fr;
    gap:40px;
  }
  .filter-bar {
    align-items:flex-start;
  }
  .search-label {
    display:grid;
    gap:8px;
  }
  .booking-aside {
    padding:25px;
  }
  .hero-note .asterisk {
    font-size:70px;
    opacity:.6;
  }
}
@media(max-width:767px) {
  html {
    scroll-padding-top:30px;
  }
  .site-header {
    height:83px;
    padding:0 20px;
    gap:20px;
  }
  .brand {
    font-size:35px;
    letter-spacing:-2.5px;
  }
  .brand span {
    font-size:14px;
    letter-spacing:0;
    margin-top:6px;
  }
  .desktop-nav {
    display:none;
  }
  .header-book {
    margin-left:auto;
    padding:8px 14px;
    gap:15px;
    font-size:14px;
  }
  .header-book span {
    font-size:20px;
  }
  .mobile-menu {
    display:block;
  }
  .mobile-menu>summary {
    list-style:none;
    width:30px;
    height:36px;
    display:flex;
    justify-content:center;
    flex-direction:column;
    gap:6px;
    cursor:pointer;
  }
  .mobile-menu>summary::-webkit-details-marker {
    display:none;
  }
  .mobile-menu>summary>span {
    display:block;
    height:1px;
    width:27px;
    background:var(--ink);
  }
  .mobile-menu[open]>summary>span:first-child {
    transform:translateY(3.5px) rotate(45deg);
  }
  .mobile-menu[open]>summary>span:last-child {
    transform:translateY(-3.5px) rotate(-45deg);
  }
  .mobile-menu nav {
    position:absolute;
    top:83px;
    left:0;
    right:0;
    max-height:calc(100svh - 83px);
    overflow:auto;
    background:var(--paper);
    border-block:1px solid var(--ink);
    padding:20px 25px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0 25px;
    box-shadow:0 20px 25px #122c4120;
  }
  .mobile-menu nav a {
    padding:17px 0;
    border-bottom:1px solid var(--line);
    font-size:14px;
  }
  .section {
    padding:64px 24px;
  }
  .eyebrow,.section-kicker {
    font-size:14px;
    letter-spacing:.8px;
  }
  .hero {
    display:block;
    height:auto;
    min-height:0;
    max-height:none;
  }
  .hero-main {
    height:620px;
    max-height:80svh;
    min-height:495px;
  }
  .hero-main>img {
    object-position:67% center;
  }
  .hero-main:after {
    background:linear-gradient(0deg,rgba(8,25,32,.68),transparent 80%);
  }
  .hero-copy {
    left:24px;
    bottom:65px;
  }
  .hero-copy h1 {
    font-size:30px;
    line-height:1.75;
    letter-spacing:1.2px;
    margin-bottom:12px;
  }
  .hero-copy .eyebrow {
    font-size:14px;
    letter-spacing:.5px;
    margin-bottom:18px;
  }
  .image-index {
    font-size:14px;
    left:24px;
    right:auto;
    bottom:18px;
  }
  .hero-side {
    min-height:0;
    display:grid;
    grid-template-columns:56% 44%;
    grid-template-rows:230px;
  }
  .hero-note {
    padding:23px 18px;
  }
  .hero-note .eyebrow {
    font-size:14px;
    line-height:1.4;
    margin-bottom:17px;
    max-width:180px;
  }
  .hero-note p {
    font-size:30px;
    letter-spacing:-1.3px;
  }
  .note-line {
    font-size:14px;
    line-height:1.6;
    margin-top:13px;
    max-width:165px;
  }
  .hero-note .asterisk {
    display:none;
  }
  .hero-side-image>span {
    font-size:14px;
    left:15px;
    bottom:10px;
    right:10px;
    letter-spacing:0;
    line-height:1.5;
  }
  .hero-side-image img {
    object-position:50% 30%;
  }
  .hero-side-image b {
    font-size:24px;
  }
  .hero-meta {
    padding:16px 24px;
    font-size:14px;
  }
  .hero-meta a {
    font-size:14px;
    letter-spacing:-.3px;
  }
  .hero-meta a span {
    margin-left:4px;
  }
  .concept-home {
    padding-bottom:35px;
  }
  .section-kicker {
    margin-bottom:35px;
    gap:15px;
  }
  .section-kicker>span:last-child {
    display:none;
  }
  .concept-layout {
    grid-template-columns:1fr;
    gap:32px;
  }
  .concept-layout h2 {
    font-size:30px;
    line-height:1.8;
  }
  .concept-layout p {
    font-size:16px;
    line-height:2.1;
  }
  .concept-layout p br {
    display:none;
  }
  .giant-type {
    font-size:16vw;
    margin:50px 0 0;
    letter-spacing:-.07em;
  }
  .section-head {
    display:block;
    margin-bottom:35px;
  }
  .section-head h2 {
    font-size:30px;
    line-height:1.5;
    letter-spacing:0;
  }
  .style-section .section-head h2 {
    font-size:40px;
    line-height:1.15;
    letter-spacing:-1px;
  }
  .section-head>div+div,.section-head>p {
    margin-top:25px;
  }
  .section-head p {
    margin-bottom:12px;
  }
  .home-styles {
    grid-template-columns:1fr 1fr;
    gap:24px 16px;
  }
  .home-styles .look:nth-child(2) {
    margin-top:65px;
  }
  .home-styles .look:nth-child(3) {
    grid-column:1/3;
    width:70%;
    margin-top:10px;
  }
  .look-caption {
    padding:15px 0;
  }
  .look-caption h3 {
    font-size:21px;
    line-height:1.1;
    margin-bottom:10px;
    letter-spacing:-.5px;
  }
  .look-caption>span {
    font-size:14px;
    line-height:1.6;
    display:block;
  }
  .look-image>span {
    top:10px;
    left:10px;
  }
  .menu-home {
    grid-template-columns:1fr;
    gap:40px;
  }
  .menu-home h2 {
    font-size:44px;
  }
  .price-list>a {
    padding:23px 0;
  }
  .price-label {
    font-size:30px;
  }
  .price-list>a>span:last-child {
    font-size:22px;
  }
  .salon-photo img {
    aspect-ratio:4/3;
  }
  .salon-photo>span {
    left:24px;
    bottom:18px;
    font-size:14px;
  }
  .salon-home-copy {
    display:block;
    padding:50px 24px;
  }
  .salon-home-copy h2 {
    font-size:29px;
    margin:24px 0;
  }
  .salon-home-copy p br {
    display:none;
  }
  .salon-home-copy .text-link {
    margin-top:20px;
  }
  .visit-home h2 {
    font-size:28px;
  }
  .link-grid {
    grid-template-columns:1fr;
    border-bottom:0;
  }
  .link-grid a,.link-grid a+a {
    padding:24px 10px 24px 0;
    border-left:0;
    border-bottom:1px solid var(--line);
  }
  .link-grid a>span:first-child {
    font-size:24px;
  }
  .booking-cta {
    padding:45px 24px;
    display:block;
  }
  .booking-cta h2 {
    font-size:24px;
  }
  .booking-cta>a {
    display:block;
    font-size:30px;
    min-width:0;
    width:100%;
    margin-top:20px;
  }
  .site-footer {
    padding:45px 24px 25px;
  }
  .footer-top {
    flex-wrap:wrap;
    gap:25px;
    position:relative;
    margin-bottom:35px;
  }
  .footer-brand {
    font-size:58px;
  }
  .footer-top p {
    width:100%;
    font-size:16px;
  }
  .top-link {
    position:absolute;
    right:0;
    top:8px;
  }
  .footer-links {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px 12px;
    font-size:14px;
  }
  .footer-bottom {
    font-size:14px;
  }
  .page-intro {
    padding:50px 24px 45px;
  }
  .page-intro h1 {
    font-size:clamp(40px,9.8vw,74px);
    letter-spacing:-.05em;
    line-height:1.05;
    margin-bottom:35px;
  }
  .intro-bottom {
    display:block;
  }
  .intro-bottom h2 {
    font-size:24px;
    margin-bottom:25px;
  }
  .intro-bottom p {
    font-size:16px;
  }
  .intro-bottom p br {
    display:none;
  }
  .editorial {
    grid-template-columns:1fr;
    gap:35px;
  }
  .editorial h2,.care-banner h2 {
    font-size:30px;
  }
  .editorial p br {
    display:none;
  }
  .editorial figure img {
    aspect-ratio:4/3;
  }
  .section-title {
    font-size:28px;
    margin-bottom:30px;
  }
  .principles {
    grid-template-columns:1fr;
    gap:30px;
  }
  .principles article {
    position:relative;
    padding-top:20px;
  }
  .principles article>span {
    position:absolute;
    right:5px;
    top:35px;
  }
  .principles h3 {
    font-size:45px;
    margin:0 0 15px;
  }
  .principles h4 {
    font-size:20px;
  }
  .conversation {
    grid-template-columns:1fr;
    gap:30px;
  }
  .conversation h2 {
    font-size:30px;
  }
  .speech {
    font-size:20px;
    padding:24px;
  }
  .response {
    margin-left:14px;
    padding-left:20px;
  }
  .response br {
    display:none;
  }
  .care-banner {
    grid-template-columns:1fr;
  }
  .care-banner>img {
    min-height:0;
    aspect-ratio:4/3;
  }
  .care-banner>div {
    padding:45px 24px;
  }
  .care-banner p br {
    display:none;
  }
  .notes-grid {
    grid-template-columns:1fr;
    gap:28px;
    margin-top:30px;
  }
  .notes-grid>p,.notes-grid>div {
    border-top:1px solid var(--line);
    padding-top:22px;
    margin:0;
  }
  .compact-section h2 {
    font-size:26px;
  }
  .menu-catalog {
    padding-top:20px;
  }
  .menu-row {
    grid-template-columns:30px 1fr;
    gap:16px 14px;
    padding:25px 0;
  }
  .menu-row>div {
    display:flex;
    align-items:baseline;
    gap:20px;
  }
  .menu-row h2 {
    font-size:34px;
  }
  .menu-row h2+p {
    margin:0;
  }
  .menu-row>p {
    grid-column:2;
    font-size:16px;
  }
  .menu-row>p br {
    display:none;
  }
  .menu-row>a {
    grid-column:2;
    font-size:24px;
  }
  .menu-row small {
    margin-top:12px;
  }
  .package-grid {
    grid-template-columns:1fr;
    gap:25px;
  }
  .package-grid>a {
    padding:25px;
  }
  .package-grid h3 {
    font-size:30px;
  }
  .package-grid strong {
    font-size:26px;
  }
  .filter-bar {
    display:block;
  }
  .filter-buttons {
    gap:7px;
    justify-content:space-between;
  }
  .filter-buttons button {
    padding:8px 12px;
    min-width:0;
    flex:1;
  }
  .search-label {
    margin-top:22px;
  }
  .search-label input {
    max-width:none;
    width:100%;
  }
  .collection {
    padding-top:10px;
  }
  .style-grid {
    grid-template-columns:1fr;
    gap:50px;
  }
  .style-card h2 {
    font-size:30px;
  }
  .style-image {
    aspect-ratio:4/5;
  }
  .style-description p {
    font-size:16px;
  }
  .look-dialog {
    padding:60px 20px 25px;
  }
  .dialog-layout {
    grid-template-columns:1fr;
    gap:28px;
  }
  .dialog-layout>img {
    height:auto;
    max-height:50svh;
    object-position:65% center;
  }
  .dialog-layout h2 {
    font-size:28px;
  }
  .dialog-layout p {
    font-size:16px;
  }
  .length-grid {
    gap:35px;
    grid-template-columns:1fr;
  }
  .length-grid article {
    display:grid;
    grid-template-columns:.9fr 1fr;
    gap:12px 20px;
    align-items:start;
  }
  .length-grid img {
    grid-row:1/3;
    aspect-ratio:3/4;
  }
  .length-grid h3 {
    margin:0;
    align-self:end;
    font-size:27px;
  }
  .length-grid p {
    font-size:16px;
    line-height:1.8;
  }
  .texture-compare {
    gap:35px;
    grid-template-columns:1fr;
  }
  .texture-compare h3 {
    font-size:26px;
  }
  .texture-line {
    height:90px;
  }
  .texture-line i {
    height:75px;
  }
  .mood-form {
    grid-template-columns:1fr;
    gap:20px;
  }
  .mood-form>.button {
    width:100%;
  }
  .mood-result {
    font-size:16px;
  }
  .wide-photo img {
    aspect-ratio:4/3;
  }
  .wide-photo figcaption {
    padding-inline:24px;
  }
  .space-plan {
    grid-template-columns:1fr;
    gap:35px;
  }
  .space-plan h2 {
    font-size:30px;
  }
  .floor-plan {
    padding:20px;
    gap:14px;
  }
  .plan-care,.plan-lounge {
    padding:15px 10px;
    min-height:80px;
    letter-spacing:0;
  }
  .info-section {
    grid-template-columns:1fr;
    gap:25px;
  }
  .info-section h2 {
    font-size:28px;
  }
  .info-list>div {
    grid-template-columns:1fr 1.5fr;
  }
  .location-note h2 {
    font-size:27px;
  }
  .location-note p br {
    display:none;
  }
  .visit-flow {
    grid-template-columns:1fr;
    gap:40px;
  }
  .visit-flow figure {
    position:static;
  }
  .visit-flow figure img {
    aspect-ratio:4/3;
  }
  .timeline>li {
    grid-template-columns:35px 1fr;
    gap:15px;
  }
  .timeline h2 {
    font-size:21px;
  }
  .timeline>li>span {
    font-size:24px;
  }
  .visit-checks {
    grid-template-columns:1fr;
    gap:5px;
  }
  .visit-checks>label {
    padding:22px 0;
  }
  .time-bars>div {
    grid-template-columns:110px 1fr 68px;
    gap:12px;
    font-size:14px;
  }
  .time-bars>div>div {
    height:25px;
  }
  .faq-layout {
    grid-template-columns:1fr;
    gap:35px;
    padding-top:15px;
  }
  .faq-nav {
    position:static;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0 20px;
  }
  .faq-nav a {
    font-size:14px;
    line-height:1.7;
  }
  .faq-groups h2 {
    font-size:26px;
  }
  .faq-groups summary {
    font-size:17px;
    padding-top:22px;
    padding-bottom:22px;
  }
  .faq-groups details p {
    font-size:16px;
    padding-right:0;
  }
  .booking-layout {
    grid-template-columns:1fr;
    gap:40px;
  }
  .booking-layout .form-row {
    grid-template-columns:1fr;
    gap:0;
  }
  .booking-aside {
    position:static;
  }
  .booking-aside h2 {
    font-size:36px;
  }
  .booking-layout form>.button {
    width:100%;
  }
  .booking-step {
    gap:18px;
  }
  .booking-layout fieldset label {
    min-width:0;
  }
  .summary-list>div {
    grid-template-columns:80px 1fr;
  }
  .summary-list dd {
    overflow-wrap:anywhere;
  }
}
@media(max-width:359px) {
  .hero-side {
    grid-template-rows:260px;
  }
  .site-header {
    padding-inline:15px;
    gap:12px;
  }
  .brand {
    font-size:30px;
  }
  .brand span {
    font-size:14px;
    letter-spacing:-.5px;
  }
  .header-book {
    padding:7px 10px;
    gap:8px;
  }
  .mobile-menu>summary {
    width:24px;
  }
  .mobile-menu>summary>span {
    width:24px;
  }
  .hero-copy h1 {
    font-size:27px;
  }
  .hero-copy .eyebrow {
    max-width:240px;
    font-size:14px;
  }
  .hero-note p {
    font-size:26px;
  }
  .hero-note {
    padding:20px 14px;
  }
  .hero-meta {
    padding-inline:16px;
  }
  .hero-meta>span {
    font-size:14px;
  }
  .hero-meta a {
    font-size:14px;
  }
  .hero-meta a span {
    display:none;
  }
  .home-styles {
    grid-template-columns:1fr;
  }
  .home-styles .look:nth-child(2),.home-styles .look:nth-child(3) {
    grid-column:auto;
    width:100%;
    margin-top:0;
  }
  .page-intro h1 {
    font-size:37px;
  }
  .length-grid article {
    grid-template-columns:1fr;
  }
  .length-grid img {
    grid-row:auto;
    aspect-ratio:1/1;
  }
  .length-grid h3 {
    margin-top:10px;
  }
  .booking-cta h2 {
    font-size:22px;
  }
  .filter-buttons {
    flex-wrap:wrap;
  }
  .filter-buttons button {
    min-width:45%;
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important;
  }
}
