:root{--ivory:#f8f6f0;--paper:#fffefa;--sand:#eeebe2;--ink:#443f36;--muted:#756d62;--gold:#9b8053;--line:#dcd5c9;--rose:#8e6460;--rose-dark:#77504d;--sage:#667267;--serif:"Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP",serif;--sans:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:110px}body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.95;letter-spacing:.045em;-webkit-font-smoothing:antialiased}body.dialog-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}img{max-width:100%;display:block;object-fit:cover}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:500}h2{font-size:clamp(1.75rem,2.75vw,2.5rem);line-height:1.7;letter-spacing:.1em}h3{font-size:1.35rem;line-height:1.8}ul,ol{padding:0;margin:0;list-style:none}button,a,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--rose);outline-offset:6px}a,button{touch-action:manipulation}[hidden]{display:none!important}::selection{background:#e6d4ca}.skip-link{position:fixed;left:16px;top:-80px;z-index:100;background:var(--ink);color:#fff;padding:12px 20px}.skip-link:focus{top:10px}.container{width:min(1120px,calc(100% - 112px));margin-inline:auto}.narrow-container{width:min(800px,calc(100% - 112px));margin-inline:auto}.section{padding:100px 0}.eyebrow{font-family:Georgia,"Times New Roman",serif;font-size:.75rem;letter-spacing:.2em;line-height:1.6;color:var(--gold);margin-bottom:20px}.section-intro{margin-top:20px;color:var(--muted)}.centered{text-align:center}.section-heading{margin-bottom:48px}.button{display:flex;align-items:center;justify-content:center;gap:24px;min-height:58px;padding:14px 26px;font-size:.9375rem;letter-spacing:.045em;border:1px solid transparent;transition:background .2s,transform .2s}.button span{margin-left:auto;font-size:1.3rem;font-family:var(--sans)}.button-primary{background:var(--rose);color:#fff}.button-primary:hover{background:var(--rose-dark)}.button-line{background:var(--sage);color:#fff}.button-line:hover{background:#505f53}.text-link{display:inline-flex;gap:44px;align-items:center;padding:10px 0;border-bottom:1px solid var(--gold);font-size:.875rem}.text-link span{color:var(--gold);font-size:1.3rem}.text-link:hover{color:var(--rose)}.mobile-only{display:none}
/* Header and the opening view */
.site-header{height:100px;display:flex;align-items:center;justify-content:space-between;padding:0 5.2%;background:rgba(248,246,240,.96);position:sticky;top:0;z-index:30;border-bottom:1px solid rgba(220,213,201,.55);backdrop-filter:blur(12px)}.brand{display:inline-flex;flex-direction:column;line-height:1.2;min-width:108px}.brand-caption{font-size:.625rem;letter-spacing:.18em}.brand-name{font-family:var(--serif);font-size:2.15rem;letter-spacing:.16em;margin-top:7px;position:relative}.brand-dot{font-size:2.1rem;color:var(--gold);position:absolute;top:-13px;right:0}.desktop-nav{display:flex;align-items:center;gap:34px;font-size:.875rem}.desktop-nav>a:not(.header-booking){padding:12px 0}.desktop-nav>a:hover{color:var(--rose)}.desktop-nav .header-booking{display:flex;gap:36px;align-items:center;padding:10px 28px;border:1px solid var(--gold)}.menu-toggle{display:none}.hero{min-height:650px;max-width:1600px;margin:0 auto;display:grid;grid-template-columns:46% 54%;position:relative}.hero-copy{padding:76px 32px 82px max(40px,calc((100vw - 1120px)/2));align-self:center;z-index:2}.hero-eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:32px}.eyebrow-rule{display:inline-block;width:32px;height:1px;background:var(--gold)}.hero-kicker{font-size:.8125rem;letter-spacing:.12em;margin-bottom:20px}.hero h1{font-size:clamp(2rem,3.35vw,3.3rem);line-height:1.7;letter-spacing:.06em;white-space:nowrap}.hero-description{font-size:.9375rem;line-height:2.2;margin-top:23px;color:var(--muted)}.hero-button{max-width:340px;margin-top:30px}.hero-location{font-size:.75rem;color:var(--muted);margin-top:20px;letter-spacing:.035em}.hero-location span{padding:0 8px;color:var(--gold)}.hero-visual{min-width:0;position:relative;overflow:hidden;border-top-left-radius:180px;height:100%}.hero-visual>img{width:100%;height:100%;position:absolute;object-position:58% center;background:var(--sand)}.hero-visual::after{content:"";position:absolute;inset:60% 0 0;background:linear-gradient(transparent,rgba(51,42,30,.25));pointer-events:none}.hero-image-label{position:absolute;bottom:48px;right:40px;color:#fff;font-family:Georgia,serif;font-style:italic;font-size:1.45rem;letter-spacing:.035em;z-index:1}.image-caption{position:absolute;bottom:12px;right:16px;font-size:.75rem;color:#fff;background:rgba(49,42,34,.52);padding:1px 7px;letter-spacing:.06em;z-index:1}.scroll-note{position:absolute;bottom:16px;left:5.2%;display:flex;align-items:center;gap:14px;font-family:Georgia,serif;font-size:.625rem;letter-spacing:.2em;color:var(--gold)}.scroll-note>span{font-family:var(--sans);font-size:1.3rem}.intro-strip{padding:28px 24px;background:var(--sand);text-align:center;display:flex;align-items:center;justify-content:center;gap:44px}.intro-strip p{font-family:var(--serif);font-size:1rem;letter-spacing:.12em}.intro-strip>span{font-family:Georgia,serif;font-size:.625rem;color:var(--muted);letter-spacing:.17em}
/* Worries, the salon philosophy, and treatments */
.concerns-layout{display:grid;grid-template-columns:.95fr 1.05fr;gap:72px;align-items:center}.concerns .section-heading{margin-bottom:0}.concerns h2{font-size:2rem}.concern-list>li{display:flex;gap:17px;padding:19px 0;border-bottom:1px solid var(--line);font-size:.9375rem;align-items:baseline}.concern-list>li:first-child{padding-top:0}.check{color:var(--gold);font-size:1.1rem;flex-shrink:0}.story{background:#efe8e1;text-align:center;overflow:hidden}.story-inner{position:relative}.story h2{font-size:2rem}.story-line{height:42px;width:1px;background:var(--gold);margin:25px auto}.story p:not(.eyebrow){font-size:1rem;line-height:2.4;position:relative;z-index:1}.story p+p{margin-top:22px}.story p.story-emphasis{font-family:var(--serif);font-size:1.375rem;line-height:2.1;margin-top:28px}.story-watermark{position:absolute;bottom:-68px;right:0;font-family:Georgia,serif;font-style:italic;font-size:9rem;line-height:1;color:rgba(155,128,83,.08);pointer-events:none}.reason-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0}.reason{padding:0 36px;border-right:1px solid var(--line)}.reason:first-child{padding-left:0}.reason:last-child{border:0;padding-right:0}.reason-number{font-family:Georgia,serif;font-style:italic;font-size:2rem;color:var(--gold)}.reason h3{margin:13px 0 20px;font-size:1.375rem}.reason>p{color:var(--muted);font-size:.9375rem;line-height:2}.treatments{padding-top:14px}.treatment{display:grid;grid-template-columns:1.08fr 1fr;gap:72px;align-items:center;margin-bottom:85px}.treatment:last-of-type{margin-bottom:35px}.treatment-photo{position:relative;aspect-ratio:1.13;overflow:hidden}.treatment-photo img{width:100%;height:100%;object-position:58% center}.treatment:first-child .treatment-photo{border-top-right-radius:130px}.treatment-reverse .treatment-photo{order:2;border-top-left-radius:130px}.treatment-copy h2{font-size:2rem}.treatment-copy h3{font-family:var(--sans);font-size:1rem;margin:26px 0 16px;letter-spacing:.08em}.treatment-copy>p:not(.eyebrow){font-size:.9375rem;line-height:2.15;color:var(--muted);margin-bottom:16px}.treatment-copy .text-link{margin-top:8px}.care-note{font-size:.75rem;color:var(--muted);line-height:1.9}
/* Prices and visit */
.menu-section{background:var(--sand)}.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.menu-card{background:var(--paper);padding:30px 28px 0;border:1px solid var(--line)}.menu-card-featured{background:#f5eae5;border-color:#c2a295}.menu-index{font-family:Georgia,serif;font-size:1.5rem;color:var(--gold);display:flex;align-items:center;gap:14px;line-height:1}.menu-index span{font-size:.625rem;letter-spacing:.16em}.menu-card h3{font-size:1.375rem;margin:23px 0 20px;letter-spacing:.03em}.menu-card h3>span{display:block;font-family:var(--sans);font-size:.8125rem;color:var(--muted);margin-bottom:6px}.menu-description{font-size:.875rem;color:var(--muted);line-height:1.95}.menu-price{display:flex;align-items:flex-end;justify-content:space-between;margin:30px 0 25px;gap:10px}.duration{font-family:Georgia,serif;font-size:1.625rem;line-height:1.5}.duration>span{font-family:var(--sans);font-size:.875rem;margin-left:5px}.price-label{font-size:.75rem;display:block;text-align:right;color:var(--muted)}.menu-price p{font-family:Georgia,serif;font-size:2.25rem;line-height:1.25;letter-spacing:.015em}.yen{font-size:1.25rem;margin-right:5px}.menu-link{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding:19px 0;font-size:.8125rem;letter-spacing:.01em}.menu-link>span{color:var(--gold);font-size:1.2rem}.menu-link:hover{color:var(--rose)}.menu-note{font-size:.8125rem;color:var(--muted);text-align:center;margin-top:24px}.flow-list{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;counter-reset:step}.flow-list li{position:relative}.step-number{position:relative;display:flex;align-items:center;justify-content:center;width:50px;height:50px;border:1px solid #b5a17c;border-radius:50%;font-family:Georgia,serif;color:var(--gold);font-size:1.125rem;margin-bottom:23px;background:var(--ivory);z-index:1}.flow-list li:not(:last-child)::after{content:"";position:absolute;top:25px;left:50px;width:calc(100% - 20px);height:1px;background:var(--line)}.flow-list h3{font-family:var(--sans);font-size:.9375rem;font-weight:500;margin-bottom:13px;letter-spacing:.015em}.flow-list p{font-size:.875rem;color:var(--muted);line-height:2}
/* FAQ and practical information */
.faq-section{padding-top:40px}.faq-list{border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line)}.faq-list summary{display:flex;align-items:baseline;gap:20px;padding:26px 0;cursor:pointer;list-style:none;font-size:1rem}.faq-list summary::-webkit-details-marker{display:none}.question-mark{font-family:Georgia,serif;font-size:1.4rem;color:var(--gold);line-height:1}.faq-plus{width:14px;height:14px;position:relative;align-self:center;flex:0 0 14px;margin-left:auto}.faq-plus::before,.faq-plus::after{content:"";position:absolute;background:var(--gold);left:0;top:6px;width:14px;height:1px}.faq-plus::after{transform:rotate(90deg);transition:transform .2s}.faq-list details[open] .faq-plus::after{transform:rotate(0)}.faq-answer{padding:0 32px 26px 43px;font-size:.9375rem;color:var(--muted);line-height:2}.faq-answer a{text-decoration:underline;text-underline-offset:4px}.access-section{background:var(--sand)}.access-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:90px}.access-layout .section-heading{margin:0}.access-salon{font-size:.8125rem;margin-top:30px;color:var(--muted)}.access-salon>span{display:inline-block;font-family:var(--serif);font-size:1.375rem;color:var(--ink);margin-top:5px}.access-area{font-family:Georgia,serif;font-size:.6875rem;letter-spacing:.18em;color:var(--gold);margin-top:20px}.salon-details dl{margin:0}.salon-details dl>div{display:grid;grid-template-columns:96px 1fr;gap:20px;padding:17px 0;border-bottom:1px solid #d5cdbf}.salon-details dl>div:first-child{padding-top:0}.salon-details dt{font-size:.875rem}.salon-details dd{margin:0;font-size:.9375rem}.detail-note{font-size:.8125rem;color:var(--muted)}.hours-row{display:flex;gap:26px}.hours-row>span:first-child{min-width:53px}.salon-details .text-link{margin-top:22px}
/* Reservation and footer */
.reservation-section{background:#f1e7e1;text-align:center}.reservation-section h2{font-size:2.5rem}.reservation-section .section-heading{margin-bottom:40px}.reservation-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;max-width:900px;margin:0 auto}.reservation-card{background:rgba(255,254,250,.7);padding:32px;border:1px solid #dfd1c6;scroll-margin-top:120px}.booking-label{font-family:Georgia,serif;font-size:.6875rem;letter-spacing:.15em;color:var(--gold);margin-bottom:11px}.reservation-card h3{font-size:1.375rem}.reservation-card>p:not(.booking-label):not(.booking-status){font-size:.9375rem;margin:15px 0 24px;color:var(--muted)}.reservation-card .button{font-size:.875rem;padding-inline:20px;gap:12px}.booking-status{margin-top:12px;font-size:.75rem;color:var(--muted)}.reservation-note{font-size:.8125rem;margin-top:26px;color:var(--muted)}.selected-menu{font-size:.875rem;max-width:900px;margin:0 auto 24px;padding:15px;border:1px solid #c2a295;background:#fff9f3}.site-footer{text-align:center;padding:54px 24px 32px}.footer-brand{text-align:left}.site-footer>p{font-family:var(--serif);font-size:.875rem;margin-top:20px}.site-footer nav{display:flex;justify-content:center;gap:30px;margin-top:30px;font-size:.75rem}.site-footer small{display:block;font-family:Georgia,var(--sans);font-size:.6875rem;color:var(--muted);margin-top:28px}.mobile-booking{display:none}
/* Native modal dialogs keep keyboard focus in the active surface. */
dialog{border:1px solid var(--line);background:var(--ivory);color:var(--ink);padding:0;max-height:calc(100dvh - 40px)}dialog::backdrop{background:rgba(52,45,36,.4);backdrop-filter:blur(4px)}.navigation-dialog{width:min(440px,calc(100% - 32px));padding:24px 28px}.dialog-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.dialog-header p{font-family:var(--serif);font-size:1.8rem}.dialog-header p>span{font-family:Georgia,serif;font-size:.625rem;letter-spacing:.16em;margin-left:15px;color:var(--gold)}.icon-close{display:flex;align-items:center;justify-content:center;width:44px;height:44px;font-family:var(--sans);font-weight:300;font-size:1.9rem;line-height:1;border:0;background:transparent}.navigation-dialog nav{display:flex;flex-direction:column}.navigation-dialog nav a{display:flex;align-items:center;justify-content:space-between;font-size:.9375rem;padding:17px 0;border-bottom:1px solid var(--line)}.navigation-dialog nav a span{color:var(--gold)}.navigation-dialog nav .nav-reserve{background:var(--rose);color:#fff;margin-top:24px;padding:15px}.navigation-dialog nav .nav-reserve span{color:#fff}.booking-dialog{width:min(460px,calc(100% - 40px));padding:46px 30px 30px;text-align:center}.booking-dialog>.icon-close{position:absolute;right:6px;top:6px}.booking-dialog h2{font-size:1.5rem}.booking-dialog>p:not(.eyebrow){font-size:1rem;margin:22px 0}.booking-dialog>.button{width:100%;margin-top:24px}
@media(min-width:1600px){.hero-copy{padding-left:120px}}
@media(max-width:1100px){.container,.narrow-container{width:calc(100% - 72px)}.hero{min-height:610px;grid-template-columns:48% 52%}.hero-copy{padding-left:36px;padding-right:20px}.hero-visual{border-top-left-radius:130px}.hero h1{font-size:2.5rem}.concerns-layout{gap:40px}.concerns h2{font-size:1.8rem}.treatment{gap:40px}.treatment-copy h2{font-size:1.8rem}.menu-grid{gap:14px}.menu-card{padding:26px 20px 0}.menu-card h3{font-size:1.15rem}.reason{padding-inline:26px}.reason h3{font-size:1.25rem}.access-layout{gap:45px}.flow-list{gap:20px}.desktop-nav{gap:22px}}
@media(min-width:768px) and (max-width:900px){.hero h1{font-size:2rem}.hero-button{padding-inline:18px;font-size:.8125rem;gap:14px}.hero-location{font-size:.6875rem}.hero-visual{border-top-left-radius:100px}}
@media(max-width:767px){html{scroll-padding-top:88px}body{font-size:16px;padding-bottom:calc(74px + env(safe-area-inset-bottom))}.container,.narrow-container{width:calc(100% - 48px)}.section{padding:68px 0}.section-heading{margin-bottom:32px}h2{font-size:1.75rem;letter-spacing:.075em;line-height:1.75}.section-intro{font-size:1rem;line-height:2;margin-top:18px}.eyebrow{font-size:.6875rem;letter-spacing:.15em;margin-bottom:16px}.mobile-only{display:initial}.desktop-only{display:none}.site-header{height:78px;padding-inline:24px}.brand{min-width:93px}.brand-caption{font-size:.625rem}.brand-name{font-size:1.8rem;margin-top:5px}.brand-dot{font-size:1.7rem;top:-10px;right:2px}.desktop-nav{display:none}.menu-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;background:none;border:0;padding:10px 0 8px;width:48px;min-height:48px}.menu-toggle>span:last-child{font-family:Georgia,serif;font-size:.625rem;letter-spacing:.08em;line-height:1}.menu-lines{width:25px;height:10px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.hero{display:flex;flex-direction:column;min-height:0}.hero-copy{padding:36px 24px 30px;align-self:stretch}.hero-eyebrow{margin-bottom:20px;font-size:.625rem}.hero-kicker{font-size:.75rem;margin-bottom:13px;letter-spacing:.06em}.hero h1{font-size:clamp(1.8rem,7.75vw,2.55rem);line-height:1.7;letter-spacing:.055em;white-space:normal}.hero-description{font-size:1rem;line-height:2.05;margin-top:18px;letter-spacing:.025em}.hero-button{display:none}.hero-location{display:none}.hero-visual{height:auto;aspect-ratio:1.46;border-top-left-radius:88px;width:calc(100% - 24px);align-self:flex-end}.hero-visual>img{object-position:center 43%}.hero-image-label{bottom:36px;right:24px;font-size:1.125rem}.image-caption{font-size:.625rem;bottom:9px;right:12px}.scroll-note{position:static;align-self:flex-start;margin:14px 24px 15px;font-size:.5625rem;gap:10px}.scroll-note>span{font-size:1rem}.intro-strip{display:block;padding:24px}.intro-strip p{font-size:1rem;letter-spacing:.07em}.intro-strip>span{display:block;margin-top:6px;font-size:.5625rem;letter-spacing:.1em}.concerns-layout{display:block}.concerns h2{font-size:1.75rem}.concerns .section-heading{margin-bottom:26px}.concern-list>li{font-size:1rem;padding:18px 0;gap:13px;line-height:1.9}.concern-list>li:first-child{padding-top:0}.check{font-size:1rem}.story h2{font-size:1.625rem}.story p:not(.eyebrow){font-size:1rem;line-height:2.25;letter-spacing:.025em}.story p.story-emphasis{font-size:1.2rem;line-height:2.1;letter-spacing:.055em}.story-line{height:33px;margin:23px auto}.story-watermark{font-size:6rem;right:-10px;bottom:-45px}.reason-grid{display:block}.reason,.reason:first-child,.reason:last-child{border:0;border-bottom:1px solid var(--line);padding:24px 0 28px;display:grid;grid-template-columns:44px 1fr;column-gap:16px}.reason:first-child{padding-top:0}.reason:last-child{border-bottom:0;padding-bottom:0}.reason-number{font-size:1.625rem;grid-row:1/3}.reason h3{margin:2px 0 14px;font-size:1.25rem}.reason>p{grid-column:2;font-size:1rem;line-height:2;letter-spacing:.025em}.treatments{padding-top:0}.treatment{display:flex;flex-direction:column;gap:28px;align-items:stretch;margin-bottom:60px}.treatment-photo{aspect-ratio:1.2}.treatment:first-child .treatment-photo{border-top-right-radius:92px}.treatment-reverse .treatment-photo{order:0;border-top-left-radius:92px}.treatment-copy h2{font-size:1.75rem}.treatment-copy h3{font-size:1rem;margin-top:20px}.treatment-copy>p:not(.eyebrow){font-size:1rem;line-height:2.1;letter-spacing:.025em}.treatment-copy .text-link{font-size:.875rem}.care-note{font-size:.75rem}.menu-grid{display:flex;flex-direction:column;gap:20px}.menu-card{padding:27px 26px 0}.menu-card h3{font-size:1.5rem;margin:20px 0 15px}.menu-card h3>span{font-size:.875rem}.menu-index{font-size:1.5rem}.menu-index span{font-size:.6875rem}.menu-description{font-size:1rem}.menu-price{margin:22px 0}.duration{font-size:1.75rem}.menu-price p{font-size:2.625rem}.price-label{font-size:.8125rem}.menu-link{font-size:.875rem;padding:18px 0}.menu-note{text-align:left;font-size:.875rem;line-height:1.9}.flow-list{display:block}.flow-list li{display:flex;gap:20px;padding-bottom:30px}.flow-list li:last-child{padding-bottom:0}.step-number{flex:0 0 43px;width:43px;height:43px;margin:0;font-size:1rem}.flow-list li:not(:last-child)::after{left:21px;top:43px;width:1px;height:calc(100% - 43px)}.flow-list h3{font-size:1rem;margin-top:6px;margin-bottom:10px}.flow-list p{font-size:1rem;line-height:1.95;letter-spacing:.025em}.faq-section{padding-top:14px}.faq-list summary{font-size:1rem;gap:13px;padding:24px 0;line-height:1.8}.question-mark{font-size:1.25rem}.faq-answer{padding:0 0 23px 34px;font-size:1rem;letter-spacing:.025em}.access-layout{display:block}.access-salon{margin-top:22px;font-size:.8125rem}.access-salon>span{font-size:1.4rem}.access-area{margin-top:15px}.salon-details{margin-top:30px}.salon-details dl>div{grid-template-columns:78px 1fr;gap:12px;padding:19px 0}.salon-details dt{font-size:.875rem}.salon-details dd{font-size:1rem;letter-spacing:.02em}.detail-note{font-size:.875rem}.hours-row{gap:14px;flex-wrap:wrap}.reservation-section h2{font-size:2rem}.reservation-section .section-intro{font-size:1rem;letter-spacing:.02em}.reservation-grid{grid-template-columns:1fr;gap:20px}.reservation-card{padding:27px 22px;scroll-margin-top:95px}.reservation-card h3{font-size:1.25rem}.reservation-card>p:not(.booking-label):not(.booking-status){font-size:1rem}.reservation-card .button{min-height:60px;font-size:.875rem;padding:13px 18px;gap:8px}.reservation-card .button span{font-size:1.15rem}.booking-status{font-size:.8125rem}.reservation-note{font-size:.8125rem;text-align:left}.selected-menu{font-size:.875rem;text-align:left}.site-footer{padding:44px 24px 28px}.site-footer nav{gap:22px;font-size:.75rem}.mobile-booking{display:grid;grid-template-columns:1.12fr 1fr;position:fixed;bottom:0;left:0;width:100%;z-index:35;background:var(--ivory);padding:8px 10px calc(8px + env(safe-area-inset-bottom));gap:8px;box-shadow:0 -2px 16px rgba(65,52,42,.08);border-top:1px solid var(--line)}.mobile-booking>a{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:58px;padding:6px 20px 6px 8px;background:var(--rose);color:#fff;font-size:.875rem;line-height:1.55;letter-spacing:.015em}.mobile-booking>a:nth-child(2){background:var(--sage)}.mobile-booking>a>span:first-child{font-size:.625rem;letter-spacing:.06em;margin-bottom:2px}.mobile-arrow{position:absolute;right:9px;top:22px;font-size:1rem}.navigation-dialog{padding:18px 24px}.navigation-dialog nav a{padding:15px 0}.navigation-dialog nav .nav-reserve{padding:15px}.booking-dialog{padding-inline:25px}}
@media(max-width:359px){.container,.narrow-container{width:calc(100% - 40px)}.hero-copy{padding-inline:20px}.hero h1{font-size:1.8rem}.hero-description{font-size:.9375rem}.menu-card{padding-inline:22px}.menu-card h3{font-size:1.3rem}.reservation-card{padding-inline:17px}.reservation-card .button{padding-inline:12px;font-size:.8125rem}.mobile-booking>a{font-size:.75rem}.site-footer nav{gap:16px}.salon-details dl>div{grid-template-columns:68px 1fr;gap:9px}.hours-row{gap:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
@media print{.site-header,.mobile-booking,.scroll-note,dialog,.menu-toggle{display:none!important}body{padding:0;background:#fff;font-size:12pt}.section{padding:32px 0}.container,.narrow-container{width:100%}.hero{min-height:400px}.hero-copy{padding:30px}.hero h1{font-size:28pt}.menu-card,.reason,.treatment,details{break-inside:avoid}.reservation-section,.story,.menu-section,.access-section{background:#fff}.site-footer{padding:24px}}

/* 実店舗の写真。人物と手元が切れないよう、本文の写真は元の比率を保つ。 */
.hero-visual > img {
  object-position: 56% center;
}
.hero-visual::after {
  display: none;
}
.treatment-photo {
  aspect-ratio: auto;
}
.treatment-photo img {
  width: 100%;
  height: auto;
  object-fit: contain;
}
.treatment:first-child .treatment-photo,
.treatment-reverse .treatment-photo {
  border-radius: 12px;
}
.flow-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px;
}
.flow-content {
  min-width: 0;
}
.flow-photo {
  width: 100%;
  height: auto;
  margin-bottom: 20px;
  border-radius: 6px;
}
.flow-aftercare {
  margin-top: 36px;
  padding: 22px 26px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: .9375rem;
}
.flow-aftercare > span {
  display: inline-block;
  color: var(--ink);
  margin-right: 20px;
}
.access-interior {
  margin-top: 28px;
}
.access-interior img,
.access-photo-grid img {
  width: 100%;
  height: auto;
  border-radius: 6px;
}
.access-interior figcaption,
.access-photo-grid figcaption,
.reservation-team figcaption {
  font-size: .875rem;
  color: var(--muted);
  margin-top: 10px;
  text-align: center;
}
.access-arrival {
  margin-top: 52px;
  padding-top: 36px;
  border-top: 1px solid var(--line);
}
.arrival-note {
  text-align: center;
  margin-bottom: 24px;
  font-size: 1rem;
}
.access-photo-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
}
.reservation-team {
  margin: -8px auto 36px;
}
.staff-photos {
  display: flex;
  justify-content: center;
  gap: 16px;
}
.staff-photos img {
  width: 120px;
  height: auto;
  border-radius: 8px;
}
@media (max-width: 767px) {
  .hero-visual {
    /* 写真を縦横に切り取らず、最大330pxの高さに収める。 */
    width: min(calc(100% - 24px), 440px);
    aspect-ratio: 4 / 3;
    height: auto;
    border-top-left-radius: 48px;
  }
  .hero-visual > img {
    position: static;
    width: 100%;
    height: auto;
    object-fit: contain;
  }
  .treatment-photo {
    width: 100%;
    max-width: 440px;
    margin-inline: auto;
    aspect-ratio: auto;
  }
  .flow-list li {
    gap: 16px;
    padding-bottom: 36px;
  }
  .flow-content {
    flex: 1;
    max-width: 360px;
  }
  .flow-photo {
    margin-bottom: 16px;
  }
  .flow-aftercare {
    padding: 20px 0 0;
    margin-top: 28px;
    font-size: 1rem;
  }
  .flow-aftercare > span {
    display: block;
    margin: 0 0 8px;
  }
  .access-interior {
    max-width: 440px;
    margin-inline: auto;
  }
  .access-arrival {
    margin-top: 36px;
    padding-top: 28px;
  }
  .access-photo-grid {
    grid-template-columns: 1fr;
    gap: 26px;
    max-width: 360px;
    margin-inline: auto;
  }
  .staff-photos img {
    width: 104px;
  }
  .reservation-section h2 {
    font-size: clamp(1.625rem, 7.3vw, 2rem);
  }
}
@media (min-width: 481px) and (max-width: 767px) {
  .hero-visual {
    align-self: center;
  }
}
