/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-site-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.relative{position:relative}.start{inset-inline-start:var(--spacing)}.table{display:table}}:root{--background:#f7f7f4;--foreground:#171614;--ink:#171614;--charcoal:#0f0f0d;--charcoal-soft:#1d1c19;--gold:#c58c2d;--gold-light:#f0c978;--olive:#51624d;--stone:#ece8df;--line:#d8d2c5;--white:#fff}*{box-sizing:border-box;letter-spacing:0}html{scroll-behavior:smooth;scroll-padding-top:92px}body{background:var(--background);color:var(--foreground);margin:0;font-family:Helvetica Neue,Arial,Hiragino Sans,Yu Gothic,Meiryo,sans-serif}body::selection{background:var(--gold);color:var(--charcoal)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.site-header{z-index:20;color:var(--white);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0f0f0deb;border-bottom:1px solid #ffffff1a;position:fixed;top:0;left:0;right:0}.nav-wrap,.section-inner,.site-footer{width:min(1120px,100% - 40px);margin:0 auto}.nav-wrap{justify-content:space-between;align-items:center;gap:24px;min-height:76px;display:flex}.brand{align-items:center;gap:12px;min-width:210px;display:inline-flex}.brand-mark{width:38px;height:38px;color:var(--gold-light);border:1px solid #f0c978a6;border-radius:50%;place-items:center;font-family:Georgia,serif;font-size:24px;display:grid}.brand strong{font-size:16px;line-height:1.1;display:block}.brand small{color:#ffffff9e;margin-top:4px;font-size:10px;display:block}.nav-links{color:#ffffffc7;align-items:center;gap:26px;font-size:14px;display:flex}.nav-links a:hover{color:var(--gold-light)}.nav-cta,.button{border-radius:4px;justify-content:center;align-items:center;gap:10px;min-height:48px;font-weight:700;transition:transform .18s,background .18s,border-color .18s;display:inline-flex}.nav-cta{background:var(--gold);color:var(--charcoal);padding:0 20px}.button{padding:0 24px}.button:hover,.nav-cta:hover{transform:translateY(-1px)}.button-primary{background:var(--gold);color:var(--charcoal)}.button-primary:hover{background:var(--gold-light)}.button-secondary{color:var(--white);border:1px solid #ffffff61}.button-secondary:hover{border-color:var(--gold-light);color:var(--gold-light)}.hero{min-height:760px;color:var(--white);background:linear-gradient(90deg,#0f0f0dfa 0%,#0f0f0dd4 41%,#0f0f0d33 76%),linear-gradient(#0f0f0d14,#0f0f0dd1),url(/images/salon-room.jpg) 100%/cover no-repeat;padding:164px 0 86px;position:relative;overflow:hidden}.hero-inner{width:min(1120px,100% - 40px);margin:0 auto;position:relative}.eyebrow,.section-label{color:var(--gold-light);margin:0 0 16px;font-size:13px;font-weight:800}.hero h1{max-width:720px;margin:0;font-size:64px;font-weight:900;line-height:1.08}.hero-lead{color:#ffffffdb;max-width:650px;margin:24px 0 0;font-size:20px;line-height:1.9}.cta-row{flex-wrap:wrap;gap:12px;margin-top:34px;display:flex}.hero-stats{background:#ffffff24;border:1px solid #ffffff24;border-radius:8px;grid-template-columns:repeat(4,1fr);gap:1px;max-width:780px;margin-top:52px;display:grid;overflow:hidden}.stat{background:#0f0f0db8;min-height:96px;padding:20px}.stat span{color:#ffffff9e;font-size:13px;display:block}.stat strong{color:var(--gold-light);margin-top:8px;font-size:24px;display:block}.section{padding:96px 0}.intro-band{background:var(--charcoal);color:var(--white)}.two-column,.access-layout,.proof-layout{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:center;gap:56px;display:grid}h2,h3,p{overflow-wrap:anywhere}h2{margin:0;font-size:42px;line-height:1.24}.section-heading{max-width:720px;margin-bottom:42px}.section-heading.compact{max-width:650px}.section-heading p:not(.section-label),.access-layout>div>p,.proof-copy>p{color:#5d5a52;font-size:16px;line-height:1.9}.intro-band h2,.dark-section h2,.dark-section h3,.intro-band .section-label{color:var(--white)}.problem-list{gap:12px;display:grid}.problem-item{background:#ffffff0f;border:1px solid #ffffff1f;border-radius:8px;grid-template-columns:34px 1fr;align-items:center;min-height:58px;padding:14px 18px;display:grid}.problem-item span{color:var(--gold-light);font-weight:900}.problem-item p,.strength-card p,.menu-card p,.flow-item p,.faq-item p,.site-footer p{margin:0;line-height:1.75}.strength-grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.strength-card,.menu-card,.faq-item,.access-card{border:1px solid var(--line);background:var(--white);border-radius:8px}.strength-card{padding:28px}.strength-card span{color:var(--gold);margin-bottom:18px;font-size:13px;font-weight:800;display:inline-block}.strength-card h3{margin:0 0 14px;font-size:22px;line-height:1.4}.strength-card p,.menu-card p,.faq-item p{color:#5d5a52}.photo-band{background:var(--charcoal);grid-template-columns:1.08fr .96fr .96fr;gap:0;display:grid}.photo-band figure{min-height:360px;margin:0;position:relative;overflow:hidden}.photo-band img{object-fit:cover;width:100%;height:100%}.photo-band figcaption{border-left:4px solid var(--gold);color:var(--white);background:#0f0f0dc7;padding:14px 16px;font-weight:800;position:absolute;bottom:18px;left:18px;right:18px}.menu-section{background:var(--stone)}.menu-grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.menu-card{padding:28px}.menu-name{color:var(--gold);font-weight:900}.menu-card strong{color:var(--charcoal);margin-top:12px;font-size:32px;line-height:1.2;display:block}.menu-card span{color:var(--olive);margin:6px 0 18px;font-weight:800;display:block}.note{color:#67645c;margin:22px 0 0;font-size:13px}.dark-section{background:radial-gradient(circle at 12% 10%, #c58c2d33, transparent 26%), var(--charcoal);color:var(--white)}.flow-list{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.flow-item{background:#ffffff0f;border:1px solid #ffffff24;border-radius:8px;min-height:230px;padding:24px}.flow-item span{color:var(--gold-light);font-size:13px;font-weight:900}.flow-item h3{margin:18px 0 12px;font-size:24px}.flow-item p{color:#ffffffbd}.proof-section{background:var(--white)}.proof-layout img{object-fit:cover;object-position:center;border-radius:8px;width:100%;max-height:600px}.proof-copy h2{max-width:620px}.proof-copy .button-secondary,.access-section .button-secondary{border-color:var(--line);color:var(--charcoal)}.proof-copy .button-secondary:hover,.access-section .button-secondary:hover{border-color:var(--gold);color:var(--gold)}.faq-section{background:#fdfcf9}.faq-list{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.faq-item{padding:24px}.faq-item h3{margin:0 0 12px;font-size:20px}.access-section{background:var(--stone)}.access-card{margin:0;padding:28px}.access-card div{border-bottom:1px solid var(--line);grid-template-columns:112px 1fr;gap:18px;padding:18px 0;display:grid}.access-card div:first-child{padding-top:0}.access-card div:last-child{border-bottom:0;padding-bottom:0}.access-card dt{color:var(--gold);font-weight:900}.access-card dd{color:#3b3933;margin:0;line-height:1.7}.site-footer{color:#d8d2c5;justify-content:space-between;align-items:center;gap:24px;padding:34px 0 46px;display:flex}footer{background:var(--charcoal)}.footer-links{color:var(--gold-light);flex-wrap:wrap;gap:18px;font-weight:800;display:flex}.mobile-sticky{display:none}@media (max-width:980px){.nav-links{display:none}.hero{background:linear-gradient(90deg,#0f0f0dfa 0%,#0f0f0dd1 58%,#0f0f0d6b 100%),url(/images/salon-room.jpg) 100%/cover no-repeat;min-height:720px}.hero h1{font-size:52px}.two-column,.access-layout,.proof-layout,.strength-grid,.menu-grid,.flow-list,.faq-list{grid-template-columns:1fr}.flow-item{min-height:auto}.photo-band{grid-template-columns:1fr}.photo-band figure{min-height:300px}}@media (max-width:680px){body{padding-bottom:72px}.nav-wrap,.section-inner,.site-footer,.hero-inner{width:min(100% - 28px,1120px)}.nav-wrap{min-height:68px}.brand{min-width:0}.brand small,.nav-cta{display:none}.hero{min-height:690px;padding:124px 0 58px}.hero h1{font-size:40px}.hero-lead{font-size:17px;line-height:1.75}.button{width:100%}.hero-stats{grid-template-columns:repeat(2,1fr);margin-top:36px}.stat{min-height:88px;padding:16px}.stat strong{font-size:21px}.section{padding:68px 0}h2{font-size:31px}.strength-card,.menu-card,.faq-item,.access-card{padding:22px}.menu-card strong{font-size:28px}.access-card div{grid-template-columns:1fr;gap:6px}.site-footer{padding-bottom:30px;display:block}.footer-links{margin-top:20px}.mobile-sticky{z-index:30;background:var(--gold);min-height:54px;color:var(--charcoal);border-radius:4px;justify-content:center;align-items:center;font-weight:900;display:flex;position:fixed;bottom:12px;left:12px;right:12px;box-shadow:0 12px 30px #0f0f0d3d}}
.results-section{background:var(--white)}.result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.result-card{overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fbfaf7}.result-card img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center}.result-copy{padding:22px}.result-copy span{display:inline-block;margin-bottom:10px;color:var(--gold);font-size:13px;font-weight:900}.result-copy h3{margin:0 0 10px;color:var(--charcoal);font-size:22px}.result-copy p{margin:0;color:#5d5a52;line-height:1.75}.parking-gallery{display:grid;grid-template-columns:.92fr 1.08fr;gap:18px;margin-top:34px}.parking-gallery figure{overflow:hidden;margin:0;border:1px solid var(--line);border-radius:8px;background:var(--white)}.parking-gallery img{width:100%;height:520px;object-fit:cover;object-position:center}.parking-gallery figcaption{border-top:1px solid var(--line);padding:16px 18px;color:#3b3933;font-weight:800;line-height:1.65}@media (max-width:980px){.result-grid,.parking-gallery{grid-template-columns:1fr}}@media (max-width:680px){.result-card img{aspect-ratio:1/1.18}.parking-gallery img{height:auto}}/* japanese-brand-hero-update */.brand{min-width:250px}.brand-mark{font-size:19px;font-weight:900}.brand small{font-size:11px;font-weight:700}.hero h1{color:var(--white);font-size:66px;line-height:1.1}.hero-copy{text-shadow:0 8px 28px rgba(0,0,0,.46)}.hero-copy-line{display:block}.gold-word{color:var(--gold-light);text-shadow:0 0 18px rgba(240,201,120,.28),0 5px 18px rgba(0,0,0,.36)}@media (max-width:980px){.hero h1{font-size:54px}}@media (max-width:680px){.brand-mark{width:34px;height:34px;font-size:17px}.brand strong{font-size:14px}.brand small{display:block;margin-top:3px;font-size:10px}.hero h1{font-size:40px}}/* gold-metal-max-copy-update */.gold-word{background:linear-gradient(180deg,#fff3bf 0%,#d7a943 26%,#9a681d 58%,#f4cf72 78%,#795016 100%);background-clip:text;color:#d7a943;-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 1px 0 rgba(255,245,190,.42),0 0 22px rgba(197,140,45,.42),0 6px 20px rgba(0,0,0,.48)}/* hero-logo-layout-update */.brand{min-width:190px}.brand strong{font-size:18px}.brand small{display:none!important}.hero h1{max-width:650px;font-size:72px;line-height:1.02}@media (max-width:980px){.hero h1{font-size:58px}}@media (max-width:680px){.brand strong{font-size:14px}.hero h1{font-size:42px}}/* hero-short-five-layout */.brand{min-width:160px}.brand-mark{display:none!important}.brand strong{font-size:18px}.hero{min-height:760px;padding:142px 0 78px;color:var(--charcoal);background:linear-gradient(90deg,rgba(247,244,237,.99) 0%,rgba(247,244,237,.99) 36%,rgba(247,244,237,.78) 52%,rgba(247,244,237,.08) 74%),url(/images/salon-room.jpg) center right/cover no-repeat}.eyebrow{display:inline-flex;min-width:250px;margin:0 0 24px;padding:9px 48px 9px 18px;clip-path:polygon(0 0,100% 0,calc(100% - 24px) 100%,0 100%);background:var(--charcoal);color:var(--white);font-size:13px;font-weight:800}.hero h1{max-width:520px;color:var(--charcoal);font-family:Hiragino Mincho ProN,Yu Mincho,YuMincho,serif;font-size:54px;font-weight:900;line-height:1.05;text-shadow:none}.hero-copy{text-shadow:none}.hero-copy-line{display:block}.hero-copy-line.first-line{display:flex;align-items:baseline;gap:10px}.hero-five{display:inline-block;background:linear-gradient(180deg,#e8b149 0%,#b97f10 48%,#8d5d0a 100%);background-clip:text;color:var(--gold);font-family:Georgia,Times New Roman,serif;font-size:152px;font-weight:700;line-height:.78;-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 8px 18px rgba(102,62,4,.18)}.hero-unit{font-size:42px}.hero-pay{display:block;max-width:440px;margin-top:14px;padding-top:14px;border-top:1px solid rgba(197,140,45,.34);font-size:38px;font-weight:900;line-height:1.15}.hero-lead{max-width:560px;color:#35332d;font-size:17px;line-height:1.9}.hero .button-secondary{border-color:rgba(15,15,13,.32);color:var(--charcoal);background:rgba(255,255,255,.62)}.hero-stats{display:flex;flex-wrap:wrap;max-width:560px;gap:12px;margin-top:34px;border:0;background:transparent;overflow:visible}.stat{display:grid;width:108px;min-height:108px;place-items:center;border:1px solid rgba(197,140,45,.38);border-radius:999px;padding:16px 12px;background:rgba(255,255,255,.78);text-align:center}.stat span{color:#8a621b;font-size:11px;font-weight:800}.stat strong{margin-top:5px;color:var(--charcoal);font-size:19px}@media (max-width:980px){.hero{min-height:720px;background:linear-gradient(90deg,rgba(247,244,237,.99) 0%,rgba(247,244,237,.94) 58%,rgba(247,244,237,.62) 100%),url(/images/salon-room.jpg) center right/cover no-repeat}.hero h1{font-size:48px}.hero-five{font-size:132px}.hero-pay{font-size:34px}}@media (max-width:680px){.brand strong{font-size:15px}.hero{min-height:720px;padding:114px 0 58px;background:linear-gradient(180deg,rgba(247,244,237,.97) 0%,rgba(247,244,237,.94) 58%,rgba(247,244,237,.78) 100%),url(/images/salon-room.jpg) center top/cover no-repeat}.hero h1{font-size:37px}.eyebrow{min-width:210px;margin-bottom:20px;padding:8px 38px 8px 14px;font-size:12px}.hero-copy-line.first-line{gap:7px}.hero-five{font-size:104px}.hero-unit{font-size:30px}.hero-pay{max-width:100%;font-size:29px}.hero-stats{gap:8px;margin-top:28px}.stat{width:calc(50% - 4px);min-height:86px;border-radius:8px;padding:14px}.stat strong{font-size:20px}}/* brand-five-safe-update */.brand{min-width:310px}.brand strong{display:inline-flex;min-height:38px;align-items:center;flex-wrap:wrap;gap:8px;row-gap:2px;border-bottom:1px solid rgba(240,201,120,.34);color:rgba(255,255,255,.94);font-size:15px;font-weight:900;line-height:1.2}.brand-kakko{color:var(--gold-light);font-size:13px;font-weight:900}.brand strong span{overflow-wrap:anywhere}.hero h1{overflow:visible}.hero-copy{padding-top:8px}.hero-copy-line.first-line{overflow:visible}.hero-five{padding:10px 2px 12px;line-height:.95}@media (max-width:680px){.brand{min-width:0}.brand strong{gap:6px;font-size:13px}.brand-kakko{font-size:12px}}
/* voice-section-update */.voice-section{background:#f7f4ed}.voice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.voice-card{overflow:hidden;margin:0;border:1px solid var(--line);border-radius:8px;background:var(--white)}.voice-card img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center;background:#eee8dc}.voice-card figcaption{border-top:1px solid var(--line);padding:20px}.voice-card span{display:inline-block;margin-bottom:10px;color:var(--gold);font-size:13px;font-weight:900}.voice-card p{margin:0;color:#4a463e;font-weight:800;line-height:1.7}@media (max-width:980px){.voice-grid{grid-template-columns:1fr}}
/* intro-gold-copy-update */.intro-gold-copy{display:grid;gap:10px;max-width:640px;color:transparent;background:linear-gradient(135deg,#9b6b1f 0%,#f7df91 24%,#c98b2a 48%,#fff0b0 66%,#a87421 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-size:48px;font-weight:900;letter-spacing:0;line-height:1.18;text-shadow:0 16px 34px rgba(0,0,0,.2)}.intro-band .intro-gold-copy{color:transparent}.intro-gold-copy span{display:block}@media (max-width:980px){.intro-gold-copy{font-size:40px}}@media (max-width:680px){.intro-gold-copy{gap:8px;font-size:31px}}

/* cta-shake-update */.button-primary{animation:cta-soft-shake 3.8s ease-in-out infinite}.button-primary:hover{animation-play-state:paused}.mobile-sticky{animation:cta-soft-shake 4.2s ease-in-out infinite}@keyframes cta-soft-shake{0%,82%,100%{transform:translate3d(0,0,0)}86%{transform:translate3d(-3px,0,0) rotate(-.8deg)}90%{transform:translate3d(3px,0,0) rotate(.8deg)}94%{transform:translate3d(-2px,0,0) rotate(-.5deg)}98%{transform:translate3d(2px,0,0) rotate(.5deg)}}@media (prefers-reduced-motion:reduce){.button-primary,.mobile-sticky{animation:none}}

/* menu-payment-copy-update */.menu-payment-copy{margin:14px 0 0;color:var(--gold);font-size:18px;font-weight:900}

/* flow-title-update */.flow-section-title{color:var(--white);font-size:52px;font-weight:900}@media (max-width:680px){.flow-section-title{font-size:40px}}

/* mobile-hero-background-update */@media (max-width:980px){.hero{background:linear-gradient(90deg,rgba(247,244,237,.99) 0%,rgba(247,244,237,.94) 58%,rgba(247,244,237,.62) 100%),url(/images/treatment.jpg) center right/cover no-repeat}}@media (max-width:680px){.hero{background:linear-gradient(180deg,rgba(247,244,237,.97) 0%,rgba(247,244,237,.94) 58%,rgba(247,244,237,.78) 100%),url(/images/treatment.jpg) center top/cover no-repeat}}
/* flow-creative-update */
:root {
  --background: #f7f7f4;
  --foreground: #171614;
  --ink: #171614;
  --charcoal: #0f0f0d;
  --charcoal-soft: #1d1c19;
  --gold: #c58c2d;
  --gold-light: #f0c978;
  --olive: #51624d;
  --stone: #ece8df;
  --line: #d8d2c5;
  --white: #ffffff;
}
* {
  box-sizing: border-box;
  letter-spacing: 0;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 92px;
}

body {
  margin: 0;
  background: var(--background);
  color: var(--foreground);
  font-family:
    "Helvetica Neue",
    Arial,
    "Hiragino Sans",
    "Yu Gothic",
    "Meiryo",
    sans-serif;
}

body::selection {
  background: var(--gold);
  color: var(--charcoal);
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  display: block;
  max-width: 100%;
}

.site-header {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 20;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(15, 15, 13, 0.92);
  color: var(--white);
  backdrop-filter: blur(14px);
}

.nav-wrap,
.section-inner,
.site-footer {
  width: min(1120px, calc(100% - 40px));
  margin: 0 auto;
}

.nav-wrap {
  display: flex;
  min-height: 76px;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.brand {
  display: inline-flex;
  align-items: center;
  min-width: 310px;
}

.brand strong {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  row-gap: 2px;
  border-bottom: 1px solid rgba(240, 201, 120, 0.34);
  color: rgba(255, 255, 255, 0.94);
  font-size: 15px;
  font-weight: 900;
  line-height: 1.2;
}

.brand-kakko {
  color: var(--gold-light);
  font-size: 13px;
  font-weight: 900;
}

.brand strong span {
  overflow-wrap: anywhere;
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 26px;
  color: rgba(255, 255, 255, 0.78);
  font-size: 14px;
}

.nav-links a:hover {
  color: var(--gold-light);
}

.nav-cta,
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  border-radius: 4px;
  font-weight: 700;
  transition:
    transform 180ms ease,
    background 180ms ease,
    border-color 180ms ease;
}

.nav-cta {
  padding: 0 20px;
  background: var(--gold);
  color: var(--charcoal);
}

.button {
  padding: 0 24px;
}

.button:hover,
.nav-cta:hover {
  transform: translateY(-1px);
}

.button-primary {
  animation: cta-soft-shake 3.8s ease-in-out infinite;
  background: var(--gold);
  color: var(--charcoal);
}

.button-primary:hover {
  animation-play-state: paused;
  background: var(--gold-light);
}

.button-secondary {
  border: 1px solid rgba(255, 255, 255, 0.38);
  color: var(--white);
}

.button-secondary:hover {
  border-color: var(--gold-light);
  color: var(--gold-light);
}

.hero {
  position: relative;
  min-height: 760px;
  padding: 142px 0 78px;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(247, 244, 237, 0.99) 0%, rgba(247, 244, 237, 0.99) 36%, rgba(247, 244, 237, 0.78) 52%, rgba(247, 244, 237, 0.08) 74%),
    url("/images/salon-room.jpg") center right / cover no-repeat;
  color: var(--charcoal);
}

.hero-inner {
  position: relative;
  width: min(1120px, calc(100% - 40px));
  margin: 0 auto;
}

.section-label {
  margin: 0 0 16px;
  color: var(--gold-light);
  font-size: 13px;
  font-weight: 800;
}

.eyebrow {
  display: inline-flex;
  min-width: 250px;
  margin: 0 0 24px;
  padding: 9px 48px 9px 18px;
  clip-path: polygon(0 0, 100% 0, calc(100% - 24px) 100%, 0 100%);
  background: var(--charcoal);
  color: var(--white);
  font-size: 13px;
  font-weight: 800;
}

.hero h1 {
  max-width: 520px;
  margin: 0;
  color: var(--charcoal);
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  font-size: 54px;
  font-weight: 900;
  line-height: 1.05;
  overflow: visible;
}

.hero-copy {
  padding-top: 8px;
  text-shadow: none;
}

.hero-copy-line {
  display: block;
}

.hero-copy-line.first-line {
  display: flex;
  align-items: baseline;
  gap: 10px;
  overflow: visible;
}

.hero-five {
  display: inline-block;
  padding: 10px 2px 12px;
  background: linear-gradient(180deg, #e8b149 0%, #b97f10 48%, #8d5d0a 100%);
  background-clip: text;
  color: var(--gold);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 152px;
  font-weight: 700;
  line-height: 0.95;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: 0 8px 18px rgba(102, 62, 4, 0.18);
}

.hero-unit {
  font-size: 42px;
}

.hero-pay {
  display: block;
  max-width: 440px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(197, 140, 45, 0.34);
  font-size: 38px;
  font-weight: 900;
  line-height: 1.15;
}

.hero-lead {
  max-width: 560px;
  margin: 24px 0 0;
  color: #35332d;
  font-size: 17px;
  line-height: 1.9;
}

.hero .button-secondary {
  border-color: rgba(15, 15, 13, 0.32);
  color: var(--charcoal);
  background: rgba(255, 255, 255, 0.62);
}

.cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 34px;
}

@keyframes cta-soft-shake {
  0%,
  82%,
  100% {
    transform: translate3d(0, 0, 0);
  }

  86% {
    transform: translate3d(-3px, 0, 0) rotate(-0.8deg);
  }

  90% {
    transform: translate3d(3px, 0, 0) rotate(0.8deg);
  }

  94% {
    transform: translate3d(-2px, 0, 0) rotate(-0.5deg);
  }

  98% {
    transform: translate3d(2px, 0, 0) rotate(0.5deg);
  }
}

.hero-stats {
  display: flex;
  flex-wrap: wrap;
  max-width: 560px;
  gap: 12px;
  margin-top: 34px;
}

.stat {
  display: grid;
  width: 108px;
  min-height: 108px;
  place-items: center;
  border: 1px solid rgba(197, 140, 45, 0.38);
  border-radius: 999px;
  padding: 16px 12px;
  background: rgba(255, 255, 255, 0.78);
  text-align: center;
}

.stat span {
  display: block;
  color: #8a621b;
  font-size: 11px;
  font-weight: 800;
}

.stat strong {
  display: block;
  margin-top: 5px;
  color: var(--charcoal);
  font-size: 19px;
}

.section {
  padding: 96px 0;
}

.intro-band {
  background: var(--charcoal);
  color: var(--white);
}

.two-column,
.access-layout,
.proof-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  gap: 56px;
  align-items: center;
}

h2,
h3,
p {
  overflow-wrap: anywhere;
}

h2 {
  margin: 0;
  font-size: 42px;
  line-height: 1.24;
}

.section-heading {
  max-width: 720px;
  margin-bottom: 42px;
}

.section-heading.compact {
  max-width: 650px;
}

.section-heading p:not(.section-label),
.access-layout > div > p,
.proof-copy > p {
  color: #5d5a52;
  font-size: 16px;
  line-height: 1.9;
}

.intro-band h2,
.dark-section h2,
.dark-section h3,
.intro-band .section-label {
  color: var(--white);
}

.intro-gold-copy {
  display: grid;
  gap: 10px;
  max-width: 640px;
  color: transparent;
  background: linear-gradient(135deg, #9b6b1f 0%, #f7df91 24%, #c98b2a 48%, #fff0b0 66%, #a87421 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 48px;
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1.18;
  text-shadow: 0 16px 34px rgba(0, 0, 0, 0.2);
}

.intro-band .intro-gold-copy {
  color: transparent;
}

.intro-gold-copy span {
  display: block;
}

.problem-list {
  display: grid;
  gap: 12px;
}

.problem-item {
  display: grid;
  grid-template-columns: 34px 1fr;
  align-items: center;
  min-height: 58px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.06);
  padding: 14px 18px;
}

.problem-item span {
  color: var(--gold-light);
  font-weight: 900;
}

.problem-item p,
.strength-card p,
.menu-card p,
.flow-item p,
.faq-item p,
.site-footer p {
  margin: 0;
  line-height: 1.75;
}

.strength-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.strength-card,
.menu-card,
.faq-item,
.access-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--white);
}

.strength-card {
  padding: 28px;
}

.strength-card span {
  display: inline-block;
  margin-bottom: 18px;
  color: var(--gold);
  font-size: 13px;
  font-weight: 800;
}

.strength-card h3 {
  margin: 0 0 14px;
  font-size: 22px;
  line-height: 1.4;
}

.strength-card p,
.menu-card p,
.faq-item p {
  color: #5d5a52;
}

.photo-band {
  display: grid;
  grid-template-columns: 1.08fr 0.96fr 0.96fr;
  gap: 0;
  background: var(--charcoal);
}

.photo-band figure {
  position: relative;
  min-height: 360px;
  margin: 0;
  overflow: hidden;
}

.photo-band img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.photo-band figcaption {
  position: absolute;
  right: 18px;
  bottom: 18px;
  left: 18px;
  border-left: 4px solid var(--gold);
  background: rgba(15, 15, 13, 0.78);
  color: var(--white);
  padding: 14px 16px;
  font-weight: 800;
}

.menu-section {
  background: var(--stone);
}

.menu-payment-copy {
  margin: 14px 0 0;
  color: var(--gold);
  font-size: 18px;
  font-weight: 900;
}

.menu-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.menu-card {
  padding: 28px;
}

.menu-name {
  color: var(--gold);
  font-weight: 900;
}

.menu-card strong {
  display: block;
  margin-top: 12px;
  color: var(--charcoal);
  font-size: 32px;
  line-height: 1.2;
}

.menu-card span {
  display: block;
  margin: 6px 0 18px;
  color: var(--olive);
  font-weight: 800;
}

.note {
  margin: 22px 0 0;
  color: #67645c;
  font-size: 13px;
}

.results-section {
  background: var(--white);
}

.result-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.result-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfaf7;
}

.result-card img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center;
}

.result-copy {
  padding: 22px;
}

.result-copy span {
  display: inline-block;
  margin-bottom: 10px;
  color: var(--gold);
  font-size: 13px;
  font-weight: 900;
}

.result-copy h3 {
  margin: 0 0 10px;
  color: var(--charcoal);
  font-size: 22px;
}

.result-copy p {
  margin: 0;
  color: #5d5a52;
  line-height: 1.75;
}

.voice-section {
  background: #f7f4ed;
}

.voice-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.voice-card {
  overflow: hidden;
  margin: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--white);
}

.voice-card img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: center;
  background: #eee8dc;
}

.voice-card figcaption {
  border-top: 1px solid var(--line);
  padding: 20px;
}

.voice-card span {
  display: inline-block;
  margin-bottom: 10px;
  color: var(--gold);
  font-size: 13px;
  font-weight: 900;
}

.voice-card p {
  margin: 0;
  color: #4a463e;
  font-weight: 800;
  line-height: 1.7;
}

.flow-section {
  background: linear-gradient(180deg, #ffffff 0%, #fbfaf7 100%);
  color: var(--charcoal);
}

.flow-heading {
  max-width: 780px;
  margin: 0 auto 42px;
  text-align: center;
}

.flow-kicker {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 28px;
  max-width: 760px;
  margin: 0 auto 18px;
  color: #7c8ba6;
}

.flow-kicker span {
  height: 1px;
  background: #b9c3d4;
}

.flow-kicker em {
  font-family: "Brush Script MT", "Segoe Script", cursive;
  font-size: 32px;
  font-style: italic;
  line-height: 1;
}

.flow-section-title {
  color: #26241f;
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  font-size: 48px;
  font-weight: 900;
  letter-spacing: 0;
}

.flow-heading p {
  margin: 10px 0 0;
  color: #47433b;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.75;
}

.flow-heading p + p {
  margin-top: 0;
}

.flow-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  max-width: 980px;
  margin: 0 auto;
}

.flow-item {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  overflow: hidden;
  border: 1px solid #d8d2c5;
  border-radius: 8px;
  background: var(--white);
  box-shadow: 0 16px 34px rgba(20, 25, 32, 0.08);
}

.flow-item:first-child {
  border-top: 1px solid #d8d2c5;
  padding-top: 0;
}

.flow-item:last-child {
  padding-bottom: 0;
}

.flow-number {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  border: 1px solid rgba(197, 140, 45, 0.42);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  color: var(--gold);
}

.flow-number strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 25px;
  font-weight: 700;
  line-height: 1;
}

.flow-number span {
  display: none;
}

.flow-item img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: center;
}

.flow-copy {
  display: block;
  min-width: 0;
  padding: 22px 24px 26px;
}

.flow-icon {
  display: none;
}

.flow-copy h3 {
  margin: 0;
  color: #171614;
  font-size: 24px;
  font-weight: 900;
  line-height: 1.35;
  writing-mode: horizontal-tb;
}

.flow-copy p {
  margin-top: 12px;
  color: #3f3b34;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.85;
  writing-mode: horizontal-tb;
}

.proof-section {
  background: var(--white);
}

.proof-layout img {
  width: 100%;
  max-height: 600px;
  border-radius: 8px;
  object-fit: cover;
  object-position: center;
}

.proof-copy h2 {
  max-width: 620px;
}

.proof-copy .button-secondary,
.access-section .button-secondary {
  border-color: var(--line);
  color: var(--charcoal);
}

.proof-copy .button-secondary:hover,
.access-section .button-secondary:hover {
  border-color: var(--gold);
  color: var(--gold);
}

.faq-section {
  background: #fdfcf9;
}

.faq-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

.faq-item {
  padding: 24px;
}

.faq-item h3 {
  margin: 0 0 12px;
  font-size: 20px;
}

.access-section {
  background: var(--stone);
}

.access-card {
  margin: 0;
  padding: 28px;
}

.access-card div {
  display: grid;
  grid-template-columns: 112px 1fr;
  gap: 18px;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}

.access-card div:first-child {
  padding-top: 0;
}

.access-card div:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.access-card dt {
  color: var(--gold);
  font-weight: 900;
}

.access-card dd {
  margin: 0;
  color: #3b3933;
  line-height: 1.7;
}

.parking-gallery {
  display: grid;
  grid-template-columns: 0.92fr 1.08fr;
  gap: 18px;
  margin-top: 34px;
}

.parking-gallery figure {
  overflow: hidden;
  margin: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--white);
}

.parking-gallery img {
  width: 100%;
  height: 520px;
  object-fit: cover;
  object-position: center;
}

.parking-gallery figcaption {
  border-top: 1px solid var(--line);
  padding: 16px 18px;
  color: #3b3933;
  font-weight: 800;
  line-height: 1.65;
}

.site-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 34px 0 46px;
  color: #d8d2c5;
}

footer {
  background: var(--charcoal);
}

.footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  color: var(--gold-light);
  font-weight: 800;
}

.mobile-sticky {
  display: none;
}

@media (max-width: 980px) {
  .nav-links {
    display: none;
  }

  .hero {
    min-height: 720px;
    background:
      linear-gradient(90deg, rgba(247, 244, 237, 0.99) 0%, rgba(247, 244, 237, 0.94) 58%, rgba(247, 244, 237, 0.62) 100%),
      url("/images/treatment.jpg") center right / cover no-repeat;
  }

  .hero h1 {
    font-size: 48px;
  }

  .hero-five {
    font-size: 132px;
  }

  .hero-pay {
    font-size: 34px;
  }

  .intro-gold-copy {
    font-size: 40px;
  }

  .two-column,
  .access-layout,
  .proof-layout,
  .strength-grid,
  .menu-grid,
  .result-grid,
  .voice-grid,
  .faq-list,
  .parking-gallery {
    grid-template-columns: 1fr;
  }

  .flow-list {
    grid-template-columns: 1fr;
    max-width: 620px;
  }

  .flow-item {
    min-height: auto;
  }

  .flow-number strong {
    font-size: 24px;
  }

  .flow-copy h3 {
    font-size: 23px;
  }

  .flow-copy p {
    font-size: 15px;
  }

  .photo-band {
    grid-template-columns: 1fr;
  }

  .photo-band figure {
    min-height: 300px;
  }
}

@media (max-width: 680px) {
  body {
    padding-bottom: 72px;
  }

  .nav-wrap,
  .section-inner,
  .site-footer,
  .hero-inner {
    width: min(100% - 28px, 1120px);
  }

  .nav-wrap {
    min-height: 68px;
  }

  .brand {
    min-width: 0;
  }

  .brand strong {
    gap: 6px;
    font-size: 13px;
  }

  .brand-kakko {
    font-size: 12px;
  }

  .nav-cta {
    display: none;
  }

  .hero {
    min-height: 720px;
    padding: 114px 0 58px;
    background:
      linear-gradient(180deg, rgba(247, 244, 237, 0.97) 0%, rgba(247, 244, 237, 0.94) 58%, rgba(247, 244, 237, 0.78) 100%),
      url("/images/treatment.jpg") center top / cover no-repeat;
  }

  .hero h1 {
    font-size: 37px;
  }

  .eyebrow {
    min-width: 210px;
    margin-bottom: 20px;
    padding: 8px 38px 8px 14px;
    font-size: 12px;
  }

  .hero-copy-line.first-line {
    gap: 7px;
  }

  .hero-five {
    font-size: 104px;
  }

  .hero-unit {
    font-size: 30px;
  }

  .hero-pay {
    max-width: 100%;
    font-size: 29px;
  }

  .hero-lead {
    font-size: 17px;
    line-height: 1.75;
  }

  .button {
    width: 100%;
  }

  .hero-stats {
    gap: 8px;
    margin-top: 28px;
  }

  .stat {
    width: calc(50% - 4px);
    min-height: 86px;
    border-radius: 8px;
    padding: 14px;
  }

  .stat strong {
    font-size: 20px;
  }

  .section {
    padding: 68px 0;
  }

  h2 {
    font-size: 31px;
  }

  .flow-section-title {
    font-size: 36px;
  }

  .flow-heading {
    margin-bottom: 28px;
    text-align: center;
  }

  .flow-kicker {
    gap: 16px;
  }

  .flow-kicker em {
    font-size: 32px;
  }

  .flow-heading p {
    font-size: 15px;
  }

  .flow-item {
    display: block;
  }

  .flow-number {
    top: 12px;
    left: 12px;
    width: 52px;
    height: 52px;
  }

  .flow-number strong {
    font-size: 22px;
  }

  .flow-number span {
    display: none;
  }

  .flow-item img {
    aspect-ratio: 16 / 10;
  }

  .flow-copy {
    padding: 20px;
  }

  .flow-icon {
    display: none;
  }

  .flow-copy h3 {
    font-size: 22px;
  }

  .flow-copy p {
    margin-top: 12px;
    font-size: 15px;
  }

  .intro-gold-copy {
    gap: 8px;
    font-size: 31px;
  }

  .strength-card,
  .menu-card,
  .faq-item,
  .access-card {
    padding: 22px;
  }

  .menu-card strong {
    font-size: 28px;
  }

  .result-card img {
    aspect-ratio: 1 / 1.18;
  }

  .access-card div {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .site-footer {
    display: block;
    padding-bottom: 30px;
  }

  .footer-links {
    margin-top: 20px;
  }

  .parking-gallery img {
    height: auto;
  }

  .mobile-sticky {
    position: fixed;
    right: 12px;
    bottom: 12px;
    left: 12px;
    z-index: 30;
    display: flex;
    min-height: 54px;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    animation: cta-soft-shake 4.2s ease-in-out infinite;
    background: var(--gold);
    color: var(--charcoal);
    font-weight: 900;
    box-shadow: 0 12px 30px rgba(15, 15, 13, 0.24);
  }
}

@media (prefers-reduced-motion: reduce) {
  .button-primary,
  .mobile-sticky {
    animation: none;
  }
}
+
.brand {
  min-width: 0;
  gap: 12px;
}

.brand-logo {
  position: relative;
  display: block;
  width: 166px;
  height: 32px;
  flex: 0 0 166px;
  overflow: hidden;
  mix-blend-mode: screen;
}

.brand-logo img {
  position: absolute;
  top: -22px;
  left: -48px;
  width: 214px;
  max-width: none;
  height: auto;
  filter: grayscale(1) invert(1) contrast(1.5);
}

@media (max-width: 680px) {
  .brand { gap: 8px; }
  .brand-logo { width: 138px; height: 27px; flex-basis: 138px; }
  .brand-logo img { top: -18px; left: -40px; width: 178px; }
}


.parking-gallery-main {
  grid-column: 1 / -1;
  width: min(760px, 100%);
  justify-self: center;
}

.parking-gallery-main img {
  height: auto;
  max-height: 900px;
}
/* pricing-table-update */
:root {
  --background: #f7f7f4;
  --foreground: #171614;
  --ink: #171614;
  --charcoal: #0f0f0d;
  --charcoal-soft: #1d1c19;
  --navy: #142e55;
  --navy-soft: #eaf0f8;
  --gold: #c58c2d;
  --gold-light: #f0c978;
  --booking-hotpepper: linear-gradient(120deg, rgba(255, 255, 255, 0.16), transparent 48%), linear-gradient(135deg, #8b2c53 0%, #b94772 54%, #92294f 100%);
  --booking-line: linear-gradient(120deg, rgba(255, 255, 255, 0.15), transparent 52%), linear-gradient(135deg, #087a47, #0b9a58 58%, #07874c);
  --olive: #51624d;
  --stone: #ece8df;
  --line: #d8d2c5;
  --white: #ffffff;
  --font-site-serif: "Hiragino Mincho ProN", "Yu Mincho", YuMincho,
    "Noto Serif JP", "Noto Serif CJK JP", "MS PMincho", serif;
}

* {
  box-sizing: border-box;
  letter-spacing: 0;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 88px;
}

body {
  margin: 0;
  background: var(--background);
  color: var(--foreground);
  font-family: var(--font-site-serif);
}

button,
input,
select,
textarea {
  font-family: inherit;
}

body::selection {
  background: var(--gold);
  color: var(--charcoal);
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  display: block;
  max-width: 100%;
}

.site-header {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 20;
  border-bottom: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.96);
  color: var(--charcoal);
  backdrop-filter: blur(14px);
}

.nav-wrap,
.section-inner,
.site-footer {
  width: min(1120px, calc(100% - 40px));
  margin: 0 auto;
}

.nav-wrap {
  display: flex;
  min-height: 88px;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.brand {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  gap: 14px;
}

.brand-lockup {
  display: grid;
  justify-items: center;
  width: 104px;
  flex: 0 0 104px;
}

.brand-kakko {
  color: #9a681f;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
}

.brand-logo {
  position: relative;
  display: block;
  width: 100px;
  height: 60px;
  flex: 0 0 100px;
  overflow: hidden;
  mix-blend-mode: normal;
}

.brand-logo img {
  position: absolute;
  top: -36px;
  left: -19px;
  width: 138px;
  max-width: none;
  height: auto;
  filter: none;
}

.brand .brand-store {
  display: block;
  min-height: 0;
  border-bottom: 0;
  border-left: 1px solid var(--line);
  padding-left: 14px;
  color: var(--charcoal);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 26px;
  color: var(--charcoal);
  font-size: 14px;
}

.nav-links a:hover {
  color: var(--gold);
}

.mobile-menu {
  display: none;
}

.mobile-menu summary {
  display: flex;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line);
  border-radius: 4px;
  color: var(--charcoal);
  cursor: pointer;
  font-family: Arial, sans-serif;
  font-size: 25px;
  list-style: none;
}

.mobile-menu summary::-webkit-details-marker {
  display: none;
}

.mobile-menu summary:focus-visible,
.mobile-menu-panel a:focus-visible,
.map-link:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}

.mobile-menu-panel {
  position: absolute;
  top: 100%;
  right: 14px;
  z-index: 22;
  display: grid;
  width: min(280px, calc(100vw - 28px));
  border: 1px solid var(--line);
  border-radius: 4px;
  background: var(--white);
  box-shadow: 0 18px 36px rgba(15, 15, 13, 0.16);
}

.mobile-menu:not([open]) .mobile-menu-panel {
  display: none;
}

.mobile-menu-panel a {
  padding: 14px 18px;
  border-bottom: 1px solid var(--line);
  font-size: 15px;
  font-weight: 700;
}

.mobile-menu-panel a:last-child {
  border-bottom: 0;
}

.mobile-menu-panel a:hover {
  background: var(--background);
}

.nav-cta,
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  border-radius: 4px;
  font-weight: 700;
  transition:
    transform 180ms ease,
    background 180ms ease,
    border-color 180ms ease;
}

.nav-cta {
  padding: 0 14px;
  border: 1px solid #842a50;
  background: var(--booking-hotpepper);
  color: var(--white);
  font-size: 13px;
  white-space: nowrap;
}

.nav-booking {
  display: flex;
  align-items: center;
  gap: 8px;
}

.nav-line {
  border-color: #087947;
  background: var(--booking-line);
}

.button {
  padding: 0 24px;
}

.button:hover,
.nav-cta:hover {
  transform: translateY(-1px);
}

.button-primary {
  animation: cta-soft-shake 3.8s ease-in-out infinite;
  border: 1px solid #842a50;
  background: var(--booking-hotpepper);
  color: var(--white);
}

.button-primary:hover {
  animation-play-state: paused;
  filter: brightness(1.08);
}

.button-line {
  border: 1px solid #087947;
  background: var(--booking-line);
  color: var(--white);
}

.button-line:hover,
.nav-cta:hover {
  filter: brightness(1.08);
}

.hero {
  position: relative;
  min-height: 760px;
  padding: 142px 0 78px;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(247, 244, 237, 0.99) 0%, rgba(247, 244, 237, 0.99) 36%, rgba(247, 244, 237, 0.78) 52%, rgba(247, 244, 237, 0.08) 74%),
    url("/images/salon-room.jpg") center right / cover no-repeat;
  color: var(--charcoal);
}

.hero-inner {
  position: relative;
  width: min(1120px, calc(100% - 40px));
  margin: 0 auto;
}

.section-label {
  margin: 0 0 16px;
  color: var(--gold-light);
  font-size: 13px;
  font-weight: 800;
}

.eyebrow {
  display: inline-flex;
  min-width: 250px;
  margin: 0 0 24px;
  padding: 9px 48px 9px 18px;
  clip-path: polygon(0 0, 100% 0, calc(100% - 24px) 100%, 0 100%);
  background: var(--charcoal);
  color: var(--white);
  font-size: 13px;
  font-weight: 800;
}

.hero h1 {
  max-width: 520px;
  margin: 0;
  color: var(--charcoal);
  font-family: var(--font-site-serif);
  font-size: 54px;
  font-weight: 900;
  line-height: 1.05;
  overflow: visible;
}

.hero-copy {
  padding-top: 8px;
  text-shadow: none;
}

.hero-copy-line {
  display: block;
}

.hero-copy-line.first-line {
  display: flex;
  align-items: baseline;
  gap: 10px;
  overflow: visible;
}

.hero-five {
  display: inline-block;
  padding: 10px 2px 12px;
  background: linear-gradient(180deg, #e8b149 0%, #b97f10 48%, #8d5d0a 100%);
  background-clip: text;
  color: var(--gold);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 152px;
  font-weight: 700;
  line-height: 0.95;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: 0 8px 18px rgba(102, 62, 4, 0.18);
}

.hero-unit {
  font-size: 42px;
}

.hero-pay {
  display: block;
  max-width: 440px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(197, 140, 45, 0.34);
  font-size: 38px;
  font-weight: 900;
  line-height: 1.15;
}

.hero-lead {
  max-width: 560px;
  margin: 24px 0 0;
  color: #35332d;
  font-size: 17px;
  line-height: 1.9;
}

.hero-disclaimer {
  max-width: 560px;
  margin: 10px 0 0;
  color: #5d5a52;
  font-size: 13px;
  line-height: 1.6;
}

.hero .cta-row {
  margin-top: 24px;
}

.cta-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 34px;
}

.cta-more {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 6px;
  color: var(--charcoal);
  font-size: 14px;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.cta-more:hover {
  color: #94631e;
}

@keyframes cta-soft-shake {
  0%,
  82%,
  100% {
    transform: translate3d(0, 0, 0);
  }

  86% {
    transform: translate3d(-3px, 0, 0) rotate(-0.8deg);
  }

  90% {
    transform: translate3d(3px, 0, 0) rotate(0.8deg);
  }

  94% {
    transform: translate3d(-2px, 0, 0) rotate(-0.5deg);
  }

  98% {
    transform: translate3d(2px, 0, 0) rotate(0.5deg);
  }
}

.hero-stats {
  display: flex;
  flex-wrap: wrap;
  max-width: 560px;
  gap: 12px;
  margin-top: 34px;
}

.stat {
  display: grid;
  width: 108px;
  min-height: 108px;
  place-items: center;
  border: 1px solid rgba(197, 140, 45, 0.38);
  border-radius: 999px;
  padding: 16px 12px;
  background: rgba(255, 255, 255, 0.78);
  text-align: center;
}

.stat span {
  display: block;
  color: #8a621b;
  font-size: 11px;
  font-weight: 800;
}

.stat strong {
  display: block;
  margin-top: 5px;
  color: var(--charcoal);
  font-size: 19px;
}

.section {
  padding: 96px 0;
}

.intro-band {
  background: var(--charcoal);
  color: var(--white);
}

.two-column,
.access-layout,
.proof-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  gap: 56px;
  align-items: center;
}

h2,
h3,
p {
  overflow-wrap: anywhere;
}

h2 {
  margin: 0;
  font-size: 42px;
  line-height: 1.24;
}

.section-heading {
  max-width: 720px;
  margin-bottom: 42px;
}

.section-heading.compact {
  max-width: 650px;
}

.reason-heading {
  max-width: 980px;
}

.reason-heading h2 span {
  display: block;
}

.reason-heading h2 span:first-child {
  margin-bottom: 8px;
  color: #96691f;
  font-size: 22px;
}

.reason-heading h2 span:last-child {
  font-size: clamp(29px, 3vw, 42px);
  text-wrap: balance;
}

.section-heading p:not(.section-label),
.access-layout > div > p,
.proof-copy > p {
  color: #5d5a52;
  font-size: 16px;
  line-height: 1.9;
}

.intro-band h2,
.dark-section h2,
.dark-section h3,
.intro-band .section-label {
  color: var(--white);
}

.intro-gold-copy {
  display: grid;
  gap: 10px;
  max-width: 640px;
  color: transparent;
  background: linear-gradient(135deg, #9b6b1f 0%, #f7df91 24%, #c98b2a 48%, #fff0b0 66%, #a87421 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 48px;
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1.18;
  text-shadow: 0 16px 34px rgba(0, 0, 0, 0.2);
}

.intro-band .intro-gold-copy {
  color: transparent;
}

.intro-gold-copy span {
  display: block;
}

.problem-list {
  display: grid;
  gap: 12px;
}

.problem-item {
  display: grid;
  grid-template-columns: 34px 1fr;
  align-items: center;
  min-height: 58px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.06);
  padding: 14px 18px;
}

.problem-item span {
  color: var(--gold-light);
  font-weight: 900;
}

.problem-item p,
.strength-card p,
.menu-card p,
.flow-item p,
.faq-item p,
.site-footer p {
  margin: 0;
  line-height: 1.75;
}

.strength-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  border-top: 1px solid var(--line);
}

.menu-card,
.access-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--white);
}

.strength-card {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 32px;
  align-items: start;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  padding: 32px 0;
}

.strength-card .strength-number {
  margin: 0;
  color: #a97829;
  font-family: Georgia, serif;
  font-size: 42px;
  line-height: 1;
}

.strength-copy {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 40px;
}

.strength-card .strength-label {
  display: block;
  margin-bottom: 10px;
  color: #96691f;
  font-size: 13px;
  font-weight: 800;
}

.strength-card h3 {
  margin: 0;
  font-size: 24px;
  line-height: 1.45;
}

.strength-card p,
.menu-card p,
.faq-item p {
  color: #5d5a52;
}

.strength-card p {
  font-size: 16px;
}

.assurance-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 36px;
}

.assurance-item {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--white);
  padding: 24px;
}

.assurance-symbol {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border: 1px solid #d8bd89;
  border-radius: 50%;
  color: #96691f;
  font-family: Georgia, serif;
  font-size: 26px;
  line-height: 1;
}

.assurance-item h3 {
  margin: 20px 0 8px;
  font-size: 22px;
}

.assurance-item p {
  margin: 0;
  color: #5d5a52;
  font-size: 15px;
  line-height: 1.75;
}

.photo-band {
  display: grid;
  grid-template-columns: 1.08fr 0.96fr 0.96fr;
  gap: 0;
  background: var(--charcoal);
}

.photo-band figure {
  position: relative;
  min-height: 360px;
  margin: 0;
  overflow: hidden;
}

.photo-band img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.photo-band figcaption {
  position: absolute;
  right: 18px;
  bottom: 18px;
  left: 18px;
  border-left: 4px solid var(--gold);
  background: rgba(15, 15, 13, 0.78);
  color: var(--white);
  padding: 14px 16px;
  font-weight: 800;
}

.menu-section {
  background: var(--stone);
}

.menu-section .section-label {
  color: #94631e;
}

.pricing-offers {
  display: grid;
  gap: 22px;
}

.pricing-feature {
  position: relative;
  min-height: 450px;
  overflow: hidden;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #f5f4f1;
}

.pricing-feature-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.pricing-feature::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(250, 249, 246, 0.94), rgba(250, 249, 246, 0.8) 40%, transparent 72%);
  content: "";
  pointer-events: none;
}

.pricing-feature-copy {
  position: relative;
  z-index: 1;
  max-width: 540px;
  padding: 38px 44px 30px;
}

.pricing-feature-kicker {
  margin: 0 0 10px;
  color: #94631e;
  font-size: 14px;
  font-weight: 800;
}

.pricing-feature h2 {
  font-size: 38px;
  line-height: 1.28;
}

.pricing-feature-lead {
  margin: 12px 0 0;
  color: #48453f;
  font-size: 16px;
}

.pricing-feature-offer {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid rgba(15, 15, 13, 0.2);
}

.pricing-feature-offer > span {
  flex-basis: 100%;
  font-size: 15px;
  font-weight: 800;
}

.pricing-feature-offer strong {
  color: #8f611b;
  font-family: Georgia, serif;
  font-size: 60px;
  font-weight: 700;
  line-height: 1;
}

.pricing-feature-offer strong small {
  margin-left: 5px;
  font-family: var(--font-site-serif);
  font-size: 28px;
}

.pricing-feature-offer > small {
  color: #48453f;
  font-size: 13px;
}

.pricing-feature-points {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}

.pricing-feature-points li {
  font-size: 13px;
  font-weight: 700;
}

.pricing-feature-points li::before {
  margin-right: 5px;
  color: #94631e;
  content: "✓";
}

.menu-payment-copy {
  margin: 14px 0 0;
  color: var(--gold);
  font-size: 18px;
  font-weight: 900;
}

.pricing-panel {
  margin-top: 38px;
}

.pricing-heading {
  display: grid;
  justify-items: center;
  gap: 12px;
  margin-bottom: 22px;
  text-align: center;
}

.pricing-heading span {
  color: #8fa4c0;
  font-size: 26px;
}

.pricing-heading h3 {
  margin: 0;
  color: var(--navy);
  font-family: var(--font-site-serif);
  font-size: 42px;
  font-weight: 900;
}

.pricing-heading p {
  margin: 0;
  color: #4f5a69;
  font-size: 16px;
  font-weight: 700;
}

.price-list {
  display: grid;
  gap: 16px;
  max-width: 920px;
  margin: 0 auto;
}

.price-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 24px;
  overflow: hidden;
  border: 1px solid rgba(197, 140, 45, 0.24);
  border-radius: 8px;
  background:
    linear-gradient(90deg, rgba(15, 15, 13, 0.03), rgba(255, 255, 255, 0) 34%),
    var(--white);
  padding: 24px 28px;
  box-shadow: 0 14px 32px rgba(15, 15, 13, 0.06);
}

.price-card::before {
  content: "";
  position: absolute;
  top: 18px;
  bottom: 18px;
  left: 0;
  width: 4px;
  background: linear-gradient(180deg, var(--gold-light), var(--gold));
}

.price-card-main {
  min-width: 0;
}

.price-card-main small {
  display: inline-flex;
  align-items: center;
  margin-bottom: 10px;
  color: #8a621b;
  font-size: 12px;
  font-weight: 900;
}

.price-card-main h4 {
  margin: 0;
  color: var(--charcoal);
  font-size: 21px;
  font-weight: 900;
  line-height: 1.45;
}

.price-card-main p {
  margin: 12px 0 0;
  color: #5d5a52;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.75;
}

.price-value {
  display: grid;
  justify-items: end;
  gap: 6px;
  min-width: 154px;
}

.price-value span {
  color: #716b5e;
  font-size: 12px;
  font-weight: 900;
}

.price-value strong {
  color: var(--charcoal);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 36px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

.payment-note {
  max-width: 820px;
  margin: 22px auto 0;
  border-radius: 8px;
  background: linear-gradient(90deg, #f3f6fb 0%, #ffffff 100%);
  color: var(--navy);
  padding: 20px 24px;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.7;
  text-align: center;
}

.note {
  margin: 22px 0 0;
  color: #67645c;
  font-size: 13px;
}

.results-section {
  background: var(--white);
}

.result-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.result-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfaf7;
}

.result-card img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center;
}

.result-copy {
  padding: 22px;
}

.result-copy span {
  display: inline-block;
  margin-bottom: 10px;
  color: var(--gold);
  font-size: 13px;
  font-weight: 900;
}

.result-copy h3 {
  margin: 0 0 10px;
  color: var(--charcoal);
  font-size: 22px;
}

.result-copy p {
  margin: 0;
  color: #5d5a52;
  line-height: 1.75;
}

.voice-section {
  background: #f7f4ed;
}

.voice-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.voice-card {
  overflow: hidden;
  margin: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--white);
}

.voice-card img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: center;
  background: #eee8dc;
}

.voice-card figcaption {
  border-top: 1px solid var(--line);
  padding: 20px;
}

.voice-card span {
  display: inline-block;
  margin-bottom: 10px;
  color: var(--gold);
  font-size: 13px;
  font-weight: 900;
}

.voice-card p {
  margin: 0;
  color: #4a463e;
  font-weight: 800;
  line-height: 1.7;
}

.flow-section {
  background: linear-gradient(180deg, #ffffff 0%, #fbfaf7 100%);
  color: var(--charcoal);
}

.flow-heading {
  max-width: 780px;
  margin: 0 auto 42px;
  text-align: center;
}

.flow-kicker {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 28px;
  max-width: 760px;
  margin: 0 auto 18px;
  color: #7c8ba6;
}

.flow-kicker span {
  height: 1px;
  background: #b9c3d4;
}

.flow-kicker em {
  font-family: "Brush Script MT", "Segoe Script", cursive;
  font-size: 32px;
  font-style: italic;
  line-height: 1;
}

.flow-section-title {
  color: #26241f;
  font-family: var(--font-site-serif);
  font-size: 48px;
  font-weight: 900;
  letter-spacing: 0;
}

.flow-heading p {
  margin: 10px 0 0;
  color: #47433b;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.75;
}

.flow-heading p + p {
  margin-top: 0;
}

.flow-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  max-width: 980px;
  margin: 0 auto;
}

.flow-item {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  overflow: hidden;
  border: 1px solid #d8d2c5;
  border-radius: 8px;
  background: var(--white);
  box-shadow: 0 16px 34px rgba(20, 25, 32, 0.08);
}

.flow-item:first-child {
  border-top: 1px solid #d8d2c5;
  padding-top: 0;
}

.flow-item:last-child {
  padding-bottom: 0;
}

.flow-number {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  border: 1px solid rgba(197, 140, 45, 0.42);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  color: var(--gold);
}

.flow-number strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 25px;
  font-weight: 700;
  line-height: 1;
}

.flow-number span {
  display: none;
}

.flow-item img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: center;
}

.flow-copy {
  display: block;
  min-width: 0;
  padding: 22px 24px 26px;
}

.flow-icon {
  display: none;
}

.flow-copy h3 {
  margin: 0;
  color: #171614;
  font-size: 24px;
  font-weight: 900;
  line-height: 1.35;
  writing-mode: horizontal-tb;
}

.flow-copy p {
  margin-top: 12px;
  color: #3f3b34;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.85;
  writing-mode: horizontal-tb;
}

.proof-section {
  background: var(--white);
}

.proof-layout img {
  width: 100%;
  max-height: 600px;
  border-radius: 8px;
  object-fit: cover;
  object-position: center;
}

.proof-copy h2 {
  max-width: 620px;
}

.proof-heading {
  display: grid;
  gap: 6px;
}

.proof-heading span {
  display: block;
  overflow-wrap: normal;
  white-space: nowrap;
  word-break: keep-all;
}

.proof-heading span:first-child {
  font-size: clamp(26px, 2.45vw, 34px);
  line-height: 1.24;
}

.proof-heading span:last-child {
  font-size: clamp(32px, 3vw, 42px);
  line-height: 1.2;
}

.faq-section {
  background: #fdfcf9;
}

.faq-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.65fr) minmax(0, 1fr);
  gap: 64px;
  align-items: start;
}

.faq-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  border-top: 1px solid var(--line);
}

.faq-item {
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  padding: 0;
}

.faq-item summary {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) 24px;
  gap: 14px;
  align-items: center;
  padding: 22px 0;
  cursor: pointer;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
  list-style: none;
}

.faq-item summary::-webkit-details-marker {
  display: none;
}

.faq-item summary::after {
  content: "+";
  color: var(--charcoal);
  font-size: 24px;
  font-weight: 400;
  line-height: 1;
  text-align: right;
}

.faq-item[open] summary::after {
  content: "−";
}

.faq-item summary:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 4px;
}

.faq-q {
  color: #a97829;
  font-weight: 900;
}

.faq-item p {
  padding: 0 38px 24px 36px;
  font-size: 15px;
}

.access-section {
  background: var(--stone);
}

.access-card {
  margin: 0;
  padding: 28px;
}

.access-card div {
  display: grid;
  grid-template-columns: 112px 1fr;
  gap: 18px;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}

.access-card div:first-child {
  padding-top: 0;
}

.access-card div:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.access-card dt {
  color: var(--gold);
  font-weight: 900;
}

.access-card dd {
  margin: 0;
  color: #3b3933;
  line-height: 1.7;
}

.map-link {
  display: table;
  margin-top: 12px;
  border-bottom: 1px solid currentColor;
  color: #8f611b;
  font-weight: 800;
}

.contact-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 52px;
  border-top: 1px solid var(--line);
  padding-top: 30px;
}

.contact-row h3 {
  margin: 0 0 8px;
  font-size: 24px;
}

.contact-row p {
  margin: 0;
  color: #5d5a52;
  line-height: 1.7;
}

.contact-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.contact-links a {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--charcoal);
  border-radius: 4px;
  padding: 10px 18px;
  color: var(--charcoal);
  font-weight: 800;
  white-space: nowrap;
}

.contact-links a:first-child {
  background: var(--charcoal);
  color: var(--white);
}

.contact-links a:hover {
  border-color: var(--gold);
  color: #8f611b;
}

.contact-links a:first-child:hover {
  color: var(--gold-light);
}

.contact-links a:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}

.parking-gallery {
  display: grid;
  grid-template-columns: 0.92fr 1.08fr;
  gap: 18px;
  margin-top: 34px;
}

.parking-gallery-main {
  grid-column: 1 / -1;
  width: min(760px, 100%);
  justify-self: center;
}

.parking-gallery figure {
  overflow: hidden;
  margin: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--white);
}

.parking-gallery img {
  width: 100%;
  height: 520px;
  object-fit: cover;
  object-position: center;
}

.parking-gallery-main img {
  height: auto;
  max-height: 900px;
}

.parking-gallery figcaption {
  border-top: 1px solid var(--line);
  padding: 16px 18px;
  color: #3b3933;
  font-weight: 800;
  line-height: 1.65;
}

.site-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 34px 0 46px;
  color: #d8d2c5;
}

footer {
  background: var(--charcoal);
}

.footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  color: var(--gold-light);
  font-weight: 800;
}

.closing-booking {
  padding: 64px 0;
  background: var(--charcoal);
  color: var(--white);
}

.closing-booking p {
  margin: 0 0 12px;
  color: var(--gold-light);
  font-weight: 800;
}

.closing-booking h2 {
  max-width: 740px;
  margin: 0;
  font-family: var(--font-site-serif);
  font-size: clamp(28px, 3.6vw, 42px);
  line-height: 1.3;
}

.closing-booking .cta-row {
  margin-top: 24px;
}

.closing-booking .cta-more {
  color: var(--white);
}

.mobile-sticky {
  display: none;
}

@media (max-width: 980px) {
  .nav-links {
    display: none;
  }

  .mobile-menu {
    display: block;
  }

  .hero {
    min-height: 720px;
    background:
      linear-gradient(90deg, rgba(247, 244, 237, 0.99) 0%, rgba(247, 244, 237, 0.94) 58%, rgba(247, 244, 237, 0.62) 100%),
      url("/images/treatment.jpg") center right / cover no-repeat;
  }

  .hero h1 {
    font-size: 48px;
  }

  .hero-five {
    font-size: 132px;
  }

  .hero-pay {
    font-size: 34px;
  }

  .intro-gold-copy {
    font-size: 40px;
  }

  .two-column,
  .access-layout,
  .proof-layout,
  .strength-grid,
  .menu-grid,
  .result-grid,
  .voice-grid,
  .faq-list,
  .parking-gallery {
    grid-template-columns: 1fr;
  }

  .faq-layout {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .strength-copy {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .flow-list {
    grid-template-columns: 1fr;
    max-width: 620px;
  }

  .flow-item {
    min-height: auto;
  }

  .flow-number strong {
    font-size: 24px;
  }

  .flow-copy h3 {
    font-size: 23px;
  }

  .flow-copy p {
    font-size: 15px;
  }

  .price-list {
    max-width: 720px;
    margin: 0 auto;
  }

  .payment-note {
    max-width: 720px;
  }

  .photo-band {
    grid-template-columns: 1fr;
  }

  .photo-band figure {
    min-height: 300px;
  }

  .contact-row {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 680px) {
  html {
    scroll-padding-top: 85px;
  }

  body {
    padding-bottom: 82px;
  }

  .nav-wrap,
  .section-inner,
  .site-footer,
  .hero-inner {
    width: min(100% - 28px, 1120px);
  }

  .nav-wrap {
    min-height: 84px;
    gap: 8px;
  }

  .brand {
    min-width: 0;
    gap: 10px;
  }

  .brand .brand-store {
    font-size: 12px;
  }

  .nav-booking {
    display: none;
  }

  .hero {
    min-height: 720px;
    padding: 114px 0 58px;
    background:
      linear-gradient(180deg, rgba(247, 244, 237, 0.97) 0%, rgba(247, 244, 237, 0.94) 58%, rgba(247, 244, 237, 0.78) 100%),
      url("/images/treatment.jpg") center top / cover no-repeat;
  }

  .hero h1 {
    font-size: 37px;
  }

  .eyebrow {
    min-width: 210px;
    margin-bottom: 20px;
    padding: 8px 38px 8px 14px;
    font-size: 12px;
  }

  .hero-copy-line.first-line {
    gap: 7px;
  }

  .hero-five {
    font-size: 104px;
  }

  .hero-unit {
    font-size: 30px;
  }

  .hero-pay {
    max-width: 100%;
    font-size: 29px;
  }

  .hero-lead {
    font-size: 17px;
    line-height: 1.75;
  }

  .button {
    width: 100%;
  }

  .hero-stats {
    gap: 8px;
    margin-top: 28px;
  }

  .stat {
    width: calc(50% - 4px);
    min-height: 86px;
    border-radius: 8px;
    padding: 14px;
  }

  .stat strong {
    font-size: 20px;
  }

  .section {
    padding: 68px 0;
  }

  h2 {
    font-size: 31px;
  }

  .proof-heading span:first-child {
    font-size: clamp(20px, 6.2vw, 30px);
  }

  .proof-heading span:last-child {
    font-size: clamp(27px, 8vw, 34px);
  }

  .pricing-panel {
    margin-top: 30px;
  }

  .pricing-feature {
    display: flex;
    min-height: 0;
    flex-direction: column;
  }

  .pricing-feature-photo {
    position: relative;
    aspect-ratio: 16 / 9;
    height: auto;
    object-position: right center;
  }

  .pricing-feature::after {
    display: none;
  }

  .pricing-feature-copy {
    max-width: none;
    padding: 26px 22px 30px;
  }

  .pricing-feature h2 {
    font-size: 31px;
  }

  .pricing-feature-offer strong {
    font-size: 52px;
  }

  .pricing-heading h3 {
    font-size: 34px;
  }

  .price-card {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 22px;
  }

  .price-card-main h4 {
    font-size: 18px;
  }

  .price-value {
    justify-items: start;
    min-width: 0;
  }

  .price-value strong {
    font-size: 34px;
  }

  .payment-note {
    padding: 18px;
    font-size: 15px;
    text-align: left;
  }

  .flow-section-title {
    font-size: 36px;
  }

  .flow-heading {
    margin-bottom: 28px;
    text-align: center;
  }

  .flow-kicker {
    gap: 16px;
  }

  .flow-kicker em {
    font-size: 32px;
  }

  .flow-heading p {
    font-size: 15px;
  }

  .flow-item {
    display: block;
  }

  .flow-number {
    top: 12px;
    left: 12px;
    width: 52px;
    height: 52px;
  }

  .flow-number strong {
    font-size: 22px;
  }

  .flow-number span {
    display: none;
  }

  .flow-item img {
    aspect-ratio: 16 / 10;
  }

  .flow-copy {
    padding: 20px;
  }

  .flow-icon {
    display: none;
  }

  .flow-copy h3 {
    font-size: 22px;
  }

  .flow-copy p {
    margin-top: 12px;
    font-size: 15px;
  }

  .intro-gold-copy {
    gap: 8px;
    font-size: 31px;
  }

  .menu-card,
  .access-card {
    padding: 22px;
  }

  .strength-card {
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 14px;
    padding: 24px 0;
  }

  .strength-card .strength-number {
    font-size: 30px;
  }

  .strength-card h3 {
    font-size: 20px;
  }

  .reason-heading h2 span:first-child {
    font-size: 17px;
  }

  .reason-heading h2 span:last-child {
    font-size: 26px;
  }

  .assurance-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .assurance-item {
    padding: 20px;
  }

  .contact-links,
  .contact-links a {
    width: 100%;
  }

  .menu-card strong {
    font-size: 28px;
  }

  .result-card img {
    aspect-ratio: 1 / 1.18;
  }

  .access-card div {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .site-footer {
    display: block;
    padding-bottom: 30px;
  }

  .footer-links {
    margin-top: 20px;
  }

  .parking-gallery img {
    height: auto;
  }

  .mobile-sticky {
    position: fixed;
    right: 12px;
    bottom: 12px;
    left: 12px;
    z-index: 30;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .mobile-sticky a {
    display: flex;
    min-width: 0;
    min-height: 54px;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 900;
    text-align: center;
    box-shadow: 0 12px 30px rgba(15, 15, 13, 0.24);
  }

  .sticky-hotpepper {
    animation: cta-soft-shake 4.2s ease-in-out infinite;
    border: 1px solid #842a50;
    background: var(--booking-hotpepper);
    color: var(--white);
  }

  .sticky-line {
    border: 1px solid #087947;
    background: var(--booking-line);
    color: var(--white);
  }

  .mobile-sticky.is-hidden {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .button-primary,
  .sticky-hotpepper {
    animation: none;
  }
}

@media (max-width: 360px) {
  .cta-row .button-primary {
    padding: 0 10px;
    font-size: 14px;
  }
}
