@import "tailwindcss";

:root { --ink:#251b1e; --espresso:#24191d; --paper:#f9f5ed; --cream:#fffdf8; --champagne:#c9a752; --gold:#aa822b; --soft-gold:#efe3c6; --plum:#5f3348; --muted:#7f7568; --line:rgba(78,58,30,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:#fbfaf7; color:var(--ink); font-family:"Noto Sans JP","Yu Gothic","Hiragino Kaku Gothic ProN",system-ui,sans-serif; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; display:block; }
button, summary { font:inherit; }
.site-shell { min-height:100vh; overflow:hidden; }
.utility { min-height:31px; padding:0 clamp(18px,4vw,64px); display:flex; align-items:center; justify-content:flex-end; gap:30px; background:var(--espresso); color:#e8ddcb; font:10px/1.4 Georgia,serif; letter-spacing:.14em; }
.utility span:first-child { margin-right:auto; }
.header { min-height:94px; display:grid; grid-template-columns:225px 1fr auto; align-items:center; gap:28px; padding:9px clamp(18px,4vw,64px); background:rgba(255,254,251,.98); border-bottom:1px solid rgba(170,130,43,.18); position:relative; z-index:20; }
.brand-lockup { width:max-content; display:flex; align-items:center; gap:12px; color:#3d2b1e; }
.brand-emblem { width:68px; height:68px; flex:0 0 auto; object-fit:contain; filter:drop-shadow(0 6px 12px rgba(114,77,18,.12)); }
.brand-copy { display:grid; gap:5px; }
.brand-copy strong { font:500 17px/1 Georgia,"Times New Roman",serif; letter-spacing:.13em; white-space:nowrap; }
.brand-copy small { color:#9a7739; font:600 7px/1.2 Georgia,"Times New Roman",serif; letter-spacing:.28em; }
.desktop-nav { display:flex; justify-content:flex-end; gap:clamp(10px,1.45vw,25px); }
.desktop-nav a { padding:34px 0 31px; border-bottom:1px solid transparent; color:#675d50; font-size:10px; font-weight:700; letter-spacing:.06em; white-space:nowrap; }
.desktop-nav a.active,.desktop-nav a:hover { color:var(--gold); border-color:var(--champagne); }
.header-actions { display:flex; align-items:center; gap:10px; }
.language { position:relative; }
.language summary { list-style:none; min-width:92px; padding:11px 13px; border:1px solid var(--line); cursor:pointer; color:#5a4b39; font-size:11px; }
.language-icon { display:none; width:18px; height:18px; }
.language summary::-webkit-details-marker { display:none; }
.language[open] div { position:absolute; right:0; top:45px; width:146px; padding:8px; display:grid; gap:2px; background:#fff; box-shadow:0 18px 45px rgba(35,28,22,.17); }
.language div a { padding:9px 10px; font-size:12px; }
.language div a:hover { background:var(--paper); }
.mobile-menu { display:none; }
.hero { position:relative; overflow:hidden; background:#fffdf8; }
.hero-art { position:relative; overflow:hidden; }
.hero-picture { display:block; width:100%; aspect-ratio:12/5; overflow:hidden; background:#f4ead5; }
.hero-picture img { width:100%; height:100%; object-fit:cover; }
.hero-branch-label { width:25%; min-height:7%; padding:9px 8px; display:flex; align-items:center; justify-content:center; position:absolute; left:54.5%; top:73.8%; background:#fffaf0; color:#402918; text-align:center; font:600 clamp(10px,1vw,15px)/1.35 "Yu Mincho","Hiragino Mincho ProN",serif; letter-spacing:.12em; }
.hero-carousel { aspect-ratio:12/5; position:relative; overflow:hidden; background:#f4ead5; }
.hero-slides { position:absolute; inset:0; }
.hero-slide { position:absolute; inset:0; opacity:0; transform:scale(1.018); transition:opacity .8s ease,transform 1.35s ease; pointer-events:none; }
.hero-slide.is-active { opacity:1; transform:scale(1); pointer-events:auto; }
.hero-slide img,.hero-slide a { width:100%; height:100%; display:block; }
.hero-slide img { object-fit:cover; object-position:center; }
.hero-carousel-controls { min-width:170px; height:42px; padding:0 8px; display:flex; align-items:center; justify-content:space-between; gap:12px; position:absolute; left:50%; bottom:18px; z-index:3; transform:translateX(-50%); background:rgba(32,21,25,.72); border:1px solid rgba(231,205,144,.45); backdrop-filter:blur(8px); }
.hero-arrow { width:30px; height:30px; padding:0; border:0; background:transparent; color:#f4e4bd; font:300 25px/1 Georgia,serif; cursor:pointer; }
.hero-dots { display:flex; align-items:center; gap:8px; }
.hero-dots button { width:22px; height:2px; padding:0; border:0; background:rgba(255,255,255,.42); cursor:pointer; }
.hero-dots button.is-active { background:#e0bd69; }
.hero-copy { width:min(100%,1040px); margin:auto; padding:clamp(54px,6vw,88px) clamp(24px,6vw,70px); color:var(--ink); text-align:center; }
.kicker { margin:0 0 18px; color:var(--champagne); font:700 11px/1.5 Georgia,serif; letter-spacing:.3em; }
.hero h1 { margin:0; font:400 clamp(38px,4.6vw,66px)/1.42 "Yu Mincho","Hiragino Mincho ProN",serif; letter-spacing:.08em; }
.hero h1 span { display:block; }
.hero-copy>p:not(.kicker) { max-width:680px; margin:30px auto 38px; color:var(--muted); font-size:14px; line-height:2.25; }
.hero-copy .contact-buttons { justify-content:center; }
.mobile-recruit-dock { display:none; }
.promo-carousel { width:min(1180px,calc(100% - 40px)); margin:54px auto 0; position:relative; }
.promo-slides { aspect-ratio:3/1; position:relative; overflow:hidden; background:#f5ecda; box-shadow:0 22px 60px rgba(71,49,27,.1); }
.promo-slide { position:absolute; inset:0; opacity:0; transform:scale(1.015); transition:opacity .7s ease,transform 1.1s ease; pointer-events:none; }
.promo-slide.is-active { opacity:1; transform:scale(1); pointer-events:auto; }
.promo-slide img { width:100%; height:100%; object-fit:cover; }
.promo-slide a { display:block; height:100%; }
.promo-dots { height:36px; display:flex; align-items:center; justify-content:center; gap:9px; }
.promo-dots button { width:28px; height:3px; padding:0; border:0; background:#d8c9ab; cursor:pointer; }
.promo-dots button.is-active { background:var(--gold); }
.home-heading { width:100%; text-align:center; }
.home-heading h2 { margin:0; color:var(--gold); font:400 clamp(44px,6vw,76px)/1.15 Georgia,"Times New Roman",serif; letter-spacing:.075em; text-transform:uppercase; }
.home-heading p { margin:9px 0 0; color:var(--ink); font:600 14px/1.6 "Yu Mincho","Hiragino Mincho ProN",serif; letter-spacing:.12em; }
.home-heading.inverse h2 { color:var(--champagne); }
.home-heading.inverse p { color:#fff; }
.button { min-height:49px; padding:0 25px; display:inline-flex; align-items:center; justify-content:center; border:1px solid; font-size:12px; font-weight:700; letter-spacing:.09em; transition:.2s ease; }
.button:hover { transform:translateY(-2px); }
.button.gold { background:linear-gradient(100deg,#b78d36,#e6cf8f); border-color:#caa956; color:#2f2518; }
.button.outline { border-color:rgba(229,207,150,.72); color:inherit; }
.button.line { background:#4a9368; border-color:#4a9368; color:#fff; }
.button.mail { background:#fff; border-color:#fff; color:#342a21; }
.contact-buttons { display:flex; flex-wrap:wrap; gap:12px; }
.concept { min-height:590px; display:grid; grid-template-columns:minmax(180px,24%) 1fr; align-items:center; gap:clamp(38px,7vw,110px); position:relative; overflow:hidden; padding:clamp(78px,9vw,130px) clamp(28px,7vw,110px); background:linear-gradient(120deg,#f8f2e5 0%,#fffdf8 58%,#f6eedf 100%); }
.concept:after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(105deg,rgba(255,255,255,.2),transparent 42%,rgba(201,167,82,.035)); }
.concept-title { height:390px; position:relative; z-index:1; border-right:1px solid rgba(39,32,23,.7); font-family:Georgia,"Times New Roman",serif; }
.concept-title span,.concept-title b { position:absolute; left:50%; writing-mode:vertical-rl; transform:translateX(-50%) rotate(180deg); white-space:nowrap; }
.concept-title span { bottom:0; color:rgba(170,130,43,.14); font-size:clamp(56px,6vw,92px); font-weight:400; letter-spacing:.03em; }
.concept-title b { top:50%; color:#17120d; font-size:clamp(35px,3.8vw,54px); font-weight:400; letter-spacing:.02em; transform:translate(-2%,-50%) rotate(180deg); }
.concept-title small { position:absolute; right:-18px; bottom:-4px; color:#2f281f; font:500 10px/1.5 "Yu Mincho","Hiragino Mincho ProN",serif; letter-spacing:.2em; writing-mode:vertical-rl; }
.concept-copy { max-width:900px; position:relative; z-index:1; text-align:center; }
.concept-copy h2 { margin:0 0 clamp(42px,5vw,68px); font:600 clamp(20px,2vw,28px)/1.9 "Yu Mincho","Hiragino Mincho ProN",serif; letter-spacing:.06em; }
.concept-copy p { max-width:850px; margin:0 auto 28px; color:#625b51; font:400 clamp(13px,1.08vw,16px)/2.2 "Yu Mincho","Hiragino Mincho ProN",serif; letter-spacing:.04em; }
.concept-copy p:last-child { margin-bottom:0; }
.content-section,.page-body { max-width:1300px; margin:auto; padding:clamp(72px,9vw,130px) clamp(20px,4vw,52px); }
.page-body.narrow { max-width:1040px; }
.section-title { display:flex; align-items:end; justify-content:space-between; gap:20px; position:relative; }
.section-title .home-heading { flex:1; }
.section-title>.text-link { position:absolute; right:0; bottom:5px; }
.section-note { margin:16px 0 42px; color:var(--muted); font-size:13px; line-height:1.9; }
.text-link { font-size:11px; font-weight:700; letter-spacing:.1em; color:var(--gold); }
.therapist-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:30px 18px; }
.therapist-card { min-width:0; }
.managed-schedule-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:34px; }
.managed-schedule-list article { min-height:92px; padding:20px 24px; display:flex; align-items:center; justify-content:space-between; gap:20px; background:#fffdf8; border:1px solid rgba(170,130,43,.24); box-shadow:0 12px 34px rgba(70,48,24,.05); }
.managed-schedule-list article div,.managed-schedule-list article p { margin:0; display:grid; gap:6px; }
.managed-schedule-list span { color:var(--gold); font:700 9px Georgia,serif; letter-spacing:.18em; }
.managed-schedule-list strong { font:500 21px "Yu Mincho","Hiragino Mincho ProN",serif; }
.managed-schedule-list b { font:600 16px Georgia,serif; }
.new-face-home { max-width:none; background-color:#f7f1e4; background-image:linear-gradient(145deg,rgba(247,241,228,.86),rgba(255,253,248,.9)),url("/backgrounds/soft-satin.jpg"); background-position:center; background-size:cover; }
.new-face-home .therapist-grid { max-width:820px; margin:45px auto 0; grid-template-columns:repeat(auto-fit,minmax(270px,360px)); justify-content:center; }
.new-face-home .therapist-card { padding:12px; background:#fffaf0; border:1px solid rgba(170,130,43,.25); box-shadow:0 20px 55px rgba(78,55,21,.08); }
.portrait { aspect-ratio:3/4; display:block; position:relative; overflow:hidden; background:#eee4d3; }
.portrait img { width:100%; height:100%; object-fit:cover; transition:.5s ease; }
.portrait:hover img { transform:scale(1.035); }
.portrait:after { content:""; position:absolute; inset:10px; border:1px solid rgba(255,255,255,.54); pointer-events:none; }
.portrait-overlay { position:absolute; inset:auto 0 0; padding:22px 12px; background:linear-gradient(transparent,rgba(31,23,16,.75)); color:#fff; font:9px Georgia,serif; letter-spacing:.2em; text-align:center; opacity:0; transition:.25s ease; }
.portrait:hover .portrait-overlay { opacity:1; }
.therapist-info { padding:17px 3px 0; }
.therapist-info .shift { margin:0 0 7px; color:var(--gold); font:12px Georgia,serif; }
.therapist-info .roman { margin:0 0 5px; color:var(--gold); font:9px Georgia,serif; letter-spacing:.18em; text-transform:uppercase; }
.therapist-info h3 { margin:0; font:500 20px/1.5 "Yu Mincho",serif; }
.therapist-info h3 small { color:var(--muted); font-size:11px; }
.therapist-info .stats { margin:5px 0; color:var(--muted); font:10px Georgia,serif; }
.catchphrase { margin:8px 0 0; color:#675f55; font-size:11px; line-height:1.7; }
.schedule-date-picker { margin:38px 0 0; text-align:center; }
.schedule-date-picker nav { display:flex; justify-content:center; gap:10px; }
.schedule-date-picker a { width:78px; min-height:78px; display:flex; flex-direction:column; align-items:center; justify-content:center; border:1px solid rgba(170,130,43,.34); border-radius:50%; background:#fff; color:#3f372d; transition:.2s ease; }
.schedule-date-picker a:hover { border-color:var(--gold); transform:translateY(-2px); }
.schedule-date-picker a.active { background:linear-gradient(145deg,#b78d36,#d8b95f); border-color:#b38a33; color:#fff; box-shadow:0 10px 25px rgba(145,103,31,.2); }
.schedule-date-picker a small { margin-bottom:2px; font-size:9px; font-weight:700; letter-spacing:.06em; }
.schedule-date-picker a strong { font:500 17px/1.15 Georgia,"Times New Roman",serif; }
.schedule-date-picker a span { margin-top:3px; font-size:10px; }
.schedule-date-picker a.sun:not(.active) span { color:#b7584b; }
.schedule-date-picker a.sat:not(.active) span { color:#416b9e; }
.schedule-page-body { max-width:1380px; padding-top:55px; background-image:linear-gradient(145deg,rgba(255,253,248,.9),rgba(248,241,227,.76)),url("/backgrounds/soft-satin.jpg"); background-position:center; background-size:cover; }
.schedule-date-picker-full { margin-top:0; }
.schedule-date-picker-full nav { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px; }
.schedule-date-picker-full a { width:auto; min-height:58px; padding:10px 8px; flex-direction:row; gap:5px; border-radius:0; border-color:rgba(170,130,43,.55); background:rgba(255,255,255,.83); box-shadow:inset 0 0 0 3px rgba(255,255,255,.76); }
.schedule-date-picker-full a.active { background:linear-gradient(110deg,#b3862c,#d1ad51); border-color:#a77d29; box-shadow:inset 0 0 0 3px rgba(255,255,255,.18),0 8px 22px rgba(97,66,20,.16); }
.schedule-date-picker-full a small { margin:0 3px 0 0; }
.schedule-date-picker-full a strong { font-size:18px; }
.schedule-date-picker-full a span { margin:0; font:10px Georgia,"Times New Roman",serif; letter-spacing:.06em; }
.schedule-card-grid { margin-top:34px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:30px 10px; }
.schedule-person-card { min-width:0; padding:6px; background:rgba(255,253,248,.96); border:1px solid rgba(170,130,43,.5); box-shadow:0 17px 45px rgba(77,53,20,.08); }
.schedule-person-photo { aspect-ratio:3/4; display:grid; place-items:center; position:relative; overflow:hidden; background:linear-gradient(145deg,#efe3cc,#fffaf1); color:#9f854c; text-align:center; font:700 11px/1.8 Georgia,serif; letter-spacing:.16em; }
.schedule-person-photo img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.schedule-person-photo:hover img { transform:scale(1.025); }
.schedule-time { min-width:54%; min-height:36px; padding:8px 13px; display:flex; align-items:center; gap:7px; position:absolute; left:0; bottom:0; background:linear-gradient(90deg,#a9781d,#cfa948); color:#fff; font:600 13px/1 Georgia,"Times New Roman",serif; letter-spacing:.035em; box-shadow:5px -5px 18px rgba(54,37,10,.14); }
.schedule-time i { font-size:15px; font-style:normal; }
.schedule-person-info { min-height:210px; margin:6px 0 0; padding:17px 15px 15px; border:1px solid rgba(170,130,43,.56); box-shadow:inset 0 0 0 5px rgba(255,255,255,.78); text-align:center; }
.schedule-person-roman { margin:0 0 3px; color:#6c5b49; font:italic 17px/1.4 Georgia,"Times New Roman",serif; }
.schedule-person-info h2 { margin:0; font:500 18px/1.55 "Yu Mincho","Hiragino Mincho ProN",serif; }
.schedule-person-info h2 small { color:var(--muted); font-size:12px; }
.schedule-person-stats { margin:4px 0 0; color:#7d7468; font:10px/1.55 Georgia,"Times New Roman",serif; }
.schedule-person-catch { margin:12px 0 0; padding-top:11px; overflow:hidden; border-top:1px solid rgba(170,130,43,.2); color:#5d544b; text-overflow:ellipsis; white-space:nowrap; font-size:11px; }
.schedule-person-tags { margin-top:11px; display:grid; grid-template-columns:1fr 1fr; gap:5px; }
.schedule-person-tags span { min-height:27px; padding:5px 4px; display:grid; place-items:center; background:#f8f3e9; color:#5d554b; font-size:10px; }
.schedule-person-card.is-unmatched .schedule-person-info { min-height:116px; display:grid; place-content:center; }
.schedule-unavailable { margin-top:35px; padding:38px; display:flex; align-items:center; justify-content:space-between; gap:24px; background:var(--paper); border:1px solid var(--line); }
.schedule-unavailable p { margin:0; color:var(--muted); line-height:1.9; }
.schedule-unavailable.large { min-height:340px; flex-direction:column; justify-content:center; text-align:center; }
.coming-soon-panel { min-height:260px; padding:45px 24px; display:grid; place-content:center; gap:14px; border:1px solid rgba(170,130,43,.28); background:linear-gradient(140deg,#fffdf8,#f7efdf); text-align:center; }
.coming-soon-panel span { color:var(--gold); font:400 clamp(26px,4vw,46px)/1 Georgia,"Times New Roman",serif; letter-spacing:.12em; }
.coming-soon-panel p { margin:0; color:var(--muted); line-height:1.9; }
.system-preview { padding:clamp(78px,9vw,135px) max(clamp(22px,7vw,110px),calc((100vw - 1300px)/2)); padding-bottom:clamp(35px,4vw,52px); display:grid; gap:45px; background-color:#faf6ee; background-image:linear-gradient(180deg,rgba(255,255,255,.86),rgba(250,246,238,.8)),url("/backgrounds/soft-satin.jpg"); background-position:center; background-size:100% 100%; }
.system-preview>div:first-child { max-width:760px; margin:auto; text-align:center; }
.system-preview>div:first-child>p:last-child { margin:22px auto 0; color:var(--muted); line-height:2; }
.price-preview { width:min(100%,860px); margin:auto; padding:clamp(44px,7vw,78px) clamp(30px,8vw,105px); border:1px solid var(--champagne); box-shadow:inset 0 0 0 10px #fff,inset 0 0 0 14px rgba(170,130,43,.82),0 24px 70px rgba(86,61,24,.08); background:#fff; text-align:center; }
.course-name { margin:0 0 30px; font:400 clamp(18px,2.5vw,25px)/1.6 "Yu Mincho",serif; letter-spacing:.08em; }
.price-list { width:min(100%,460px); margin:auto; }
.price-list>div { padding:13px 4px; display:flex; justify-content:space-between; align-items:baseline; border-bottom:1px solid rgba(170,130,43,.17); }
.price-list span { font:24px Georgia,serif; }
.price-list small { font-size:11px; letter-spacing:.08em; }
.price-list strong { font:28px Georgia,serif; }
.price-fees { margin:42px 0 32px; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(170,130,43,.3); border-bottom:1px solid rgba(170,130,43,.3); }
.price-fees p { margin:0; padding:22px 14px; display:grid; gap:9px; border-right:1px solid rgba(170,130,43,.2); }
.price-fees p:last-child { border-right:0; }
.price-fees span { color:var(--muted); font:9px Georgia,serif; letter-spacing:.09em; }
.price-fees strong { font:21px Georgia,serif; }
.price-preview>.text-link { display:inline-block; margin-top:4px; }
.options-home { padding:0 clamp(18px,7vw,110px); background-color:#f8f2e6; background-image:linear-gradient(145deg,rgba(247,241,228,.79),rgba(255,253,248,.82)),url("/backgrounds/soft-satin.jpg"); background-position:center; background-size:100% 100%; }
.options-frame { width:min(100%,860px); margin:auto; padding:clamp(46px,6vw,72px) clamp(28px,8vw,100px); border:1px solid var(--champagne); box-shadow:inset 0 0 0 10px #fff,inset 0 0 0 14px rgba(170,130,43,.82); background:#fff; }
.options-list { width:min(100%,560px); margin:38px auto 0; display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid rgba(170,130,43,.25); border-bottom:1px solid rgba(170,130,43,.25); text-align:center; }
.options-list article { min-height:145px; padding:30px 20px; border-right:1px solid rgba(170,130,43,.22); }
.options-list article:last-child { border-right:0; }
.options-list strong { display:block; margin-bottom:13px; color:var(--ink); font:500 25px/1.2 Georgia,"Times New Roman",serif; }
.options-list p { margin:5px 0 0; color:var(--muted); font:400 14px/1.7 "Yu Mincho","Hiragino Mincho ProN",serif; letter-spacing:.06em; }
.service-style-home { padding:clamp(35px,4vw,52px) clamp(18px,7vw,110px) clamp(75px,9vw,130px); background-color:#f7f1e4; background-image:linear-gradient(145deg,rgba(247,241,228,.79),rgba(255,253,248,.82)),url("/backgrounds/soft-satin.jpg"); background-position:center; background-size:100% 100%; }
.service-style-frame { width:min(100%,860px); margin:auto; padding:clamp(48px,7vw,86px) clamp(28px,8vw,100px); border:1px solid var(--champagne); box-shadow:inset 0 0 0 10px #fff,inset 0 0 0 14px rgba(170,130,43,.82); background:#fff; }
.service-style-lead { text-align:center; }
.service-style-lead { margin:18px 0 44px; color:var(--muted); font:17px Georgia,serif; }
.service-style-list { display:grid; gap:38px; }
.service-style-list article { display:grid; grid-template-columns:54px 1fr; gap:24px; padding-top:35px; border-top:1px solid rgba(170,130,43,.25); }
.service-style-list article>span { color:var(--gold); font:24px Georgia,serif; }
.service-style-list h3 { margin:0 0 10px; font:500 18px/1.75 "Yu Mincho",serif; }
.service-style-list h3:not(:first-child) { margin-top:26px; color:#5f5141; font-family:Georgia,serif; }
.service-style-list p { margin:0; color:var(--muted); font-size:13px; line-height:2; }
.access-preview { display:grid; grid-template-columns:1fr 1fr; background:linear-gradient(135deg,#20161a,#2c2021); color:#fff; border-top:1px solid rgba(218,185,108,.18); border-bottom:1px solid rgba(218,185,108,.18); }
.access-preview>div:first-child { padding:clamp(70px,8vw,125px); position:relative; }
.access-preview>div:first-child:before { content:""; width:54px; height:1px; position:absolute; left:clamp(70px,8vw,125px); top:48px; background:linear-gradient(90deg,var(--champagne),transparent); }
.access-preview p:not(.kicker) { max-width:540px; color:#cfc5b8; line-height:2.1; }
.access-preview .button { margin-top:18px; }
.map-mark,.map-panel { min-height:400px; display:flex; align-items:center; justify-content:center; gap:28px; color:var(--ink); }
.map-mark { min-height:480px; flex-direction:column; gap:14px; position:relative; overflow:hidden; isolation:isolate; background:radial-gradient(circle at 50% 42%,rgba(226,197,126,.33),transparent 31%),linear-gradient(135deg,#faf7f0,#ede2cf); }
.map-mark:before { content:""; width:min(60%,360px); aspect-ratio:1; position:absolute; left:50%; top:47%; z-index:-1; border:1px solid rgba(170,130,43,.24); border-radius:50%; box-shadow:0 0 0 18px rgba(255,255,255,.24),0 0 0 19px rgba(170,130,43,.08); transform:translate(-50%,-50%); }
.map-mark:after { content:""; width:1px; height:70%; position:absolute; left:50%; top:15%; z-index:-2; background:linear-gradient(transparent,rgba(170,130,43,.16),transparent); transform:rotate(34deg); }
.map-mark img { width:min(46%,255px); height:auto; border:0; filter:drop-shadow(0 14px 20px rgba(107,74,21,.16)); }
.map-signature { display:grid; gap:7px; text-align:center; }
.map-signature strong { color:#3e2c20; font:500 21px/1 Georgia,"Times New Roman",serif; letter-spacing:.18em; }
.map-signature span { color:#9b7638; font:600 8px/1.2 Georgia,"Times New Roman",serif; letter-spacing:.36em; }
.map-panel { background:repeating-linear-gradient(30deg,#eee5d5 0 2px,#f8f3e9 2px 36px); }
.map-panel b { width:105px; height:105px; display:grid; place-items:center; border-radius:50%; background:linear-gradient(145deg,#e9d59b,#ae8430); color:#fff; font:42px Georgia,serif; box-shadow:0 18px 44px rgba(61,43,20,.23); }
.section-hero { padding:clamp(75px,8vw,125px) clamp(22px,9vw,145px); background:linear-gradient(125deg,#2d241b,#4e3d2b); color:#fff; position:relative; overflow:hidden; }
.section-hero:after { content:"V"; position:absolute; right:6vw; top:-52px; color:rgba(255,255,255,.05); font:220px Georgia,serif; }
.section-hero h1 { margin:0; font:400 clamp(43px,5.5vw,76px)/1.3 "Yu Mincho",serif; }
.section-hero>p:last-child:not(.kicker) { max-width:720px; margin:22px 0 0; color:#d6cfc5; line-height:1.9; }
.subheading { margin:0 0 28px; font:400 26px Georgia,serif; letter-spacing:.08em; }
.price-table { border-top:1px solid var(--ink); }
.price-table>div { padding:25px 10px; display:grid; grid-template-columns:1fr 1fr 1fr; align-items:baseline; border-bottom:1px solid var(--line); }
.price-table strong { font:36px Georgia,serif; text-align:center; }
.price-table strong small { font-size:10px; }
.price-table b { font:20px Georgia,serif; text-align:right; }
.price-table span { color:var(--muted); font:10px Georgia,serif; letter-spacing:.12em; }
.fee-grid { margin:42px 0 70px; display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); }
.fee-grid article { padding:28px; display:grid; gap:12px; background:var(--paper); }
.fee-grid span { color:var(--muted); font:9px Georgia,serif; letter-spacing:.15em; }
.fee-grid strong { font:26px Georgia,serif; }
.service-notes { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.service-notes article { padding:35px; border:1px solid var(--line); }
.service-notes article>span,.recruit-grid article>span { color:var(--champagne); font:28px Georgia,serif; }
.service-notes h3 { font:400 20px "Yu Mincho",serif; }
.service-notes p,.translation-note { color:var(--muted); font-size:13px; line-height:2; }
.translation-note { margin-top:30px; }
.news-list article { padding:30px 2px; display:grid; grid-template-columns:130px 1fr auto; gap:25px; border-bottom:1px solid var(--line); }
.news-list time { color:var(--gold); font:12px Georgia,serif; }
.news-list h2 { margin:0 0 10px; font:400 21px "Yu Mincho",serif; }
.news-list p { margin:0; color:var(--muted); font-size:12px; }
.coupon { padding:clamp(40px,7vw,85px); border:1px solid var(--champagne); background:linear-gradient(145deg,#fff,#f7edd8); text-align:center; }
.coupon>span { color:var(--gold); font:10px Georgia,serif; letter-spacing:.25em; }
.coupon h2 { margin:20px 0; font:400 clamp(28px,4vw,45px) "Yu Mincho",serif; }
.coupon>p { max-width:650px; margin:0 auto 30px; color:var(--muted); line-height:2; }
.coupon .contact-buttons { justify-content:center; }
.recruit-grid { display:grid; grid-template-columns:1fr 1fr; gap:1px; margin-bottom:35px; background:var(--line); }
.recruit-grid article { padding:38px; background:var(--cream); }
.recruit-grid h2 { font:400 24px "Yu Mincho",serif; }
.recruit-grid p,.staff-callout { color:var(--muted); line-height:1.9; }
.staff-callout { margin-bottom:35px; padding:40px; background:var(--paper); }
.therapist-recruit-page { overflow:hidden; background:#fbf8f1; }
.recruit-hero-pro { min-height:670px; padding:clamp(80px,9vw,140px) clamp(30px,8vw,125px); display:grid; grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr); align-items:center; gap:clamp(60px,9vw,145px); position:relative; isolation:isolate; overflow:hidden; background:radial-gradient(circle at 13% 18%,rgba(193,151,66,.18),transparent 29%),linear-gradient(125deg,#1f1519 0%,#3c2630 52%,#21161a 100%); color:#fffaf0; }
.recruit-hero-pro:before { content:"RECRUIT"; position:absolute; left:-18px; bottom:-48px; z-index:-1; color:rgba(230,200,127,.045); font:700 clamp(110px,18vw,260px)/.8 Georgia,serif; letter-spacing:-.03em; }
.recruit-hero-pro:after { content:""; width:50vw; height:1px; position:absolute; right:-8vw; top:24%; z-index:-1; background:linear-gradient(90deg,transparent,rgba(225,193,114,.4),transparent); transform:rotate(-24deg); }
.recruit-hero-copy-pro { max-width:760px; }
.recruit-kicker,.recruit-section-kicker { margin:0; color:#d9ba70; font:700 11px/1.4 Georgia,serif; letter-spacing:.32em; }
.recruit-hero-copy-pro h1 { margin:26px 0 32px; font:500 clamp(43px,5.4vw,78px)/1.42 "Yu Mincho","Hiragino Mincho ProN",serif; letter-spacing:.07em; }
.recruit-hero-copy-pro h1 span { display:block; white-space:nowrap; }
.recruit-hero-copy-pro>p:last-of-type { max-width:670px; margin:0; color:#d8cfc5; font-size:15px; line-height:2.15; }
.recruit-hero-actions { margin-top:42px; display:flex; flex-wrap:wrap; gap:13px; }
.recruit-hero-actions .button { min-width:195px; }
.recruit-ghost-button { border-color:rgba(225,193,114,.58); color:#f8eed9; }
.recruit-hero-card { min-height:370px; padding:48px 35px; display:flex; flex-direction:column; justify-content:center; position:relative; border:1px solid rgba(225,193,114,.42); box-shadow:inset 0 0 0 8px rgba(255,255,255,.025),0 28px 70px rgba(0,0,0,.2); }
.recruit-hero-card:before,.recruit-hero-card:after { content:""; width:52px; height:52px; position:absolute; border-color:#d3b46b; border-style:solid; }
.recruit-hero-card:before { left:-1px; top:-1px; border-width:2px 0 0 2px; }
.recruit-hero-card:after { right:-1px; bottom:-1px; border-width:0 2px 2px 0; }
.recruit-hero-card>span { color:#d9ba70; font:700 10px Georgia,serif; letter-spacing:.3em; }
.recruit-hero-card>strong { margin:22px 0 28px; color:#fff9ec; font:500 clamp(45px,5vw,70px)/.94 Georgia,serif; letter-spacing:.03em; }
.recruit-hero-card>small { color:#c7bbac; font:10px/1.9 Georgia,serif; letter-spacing:.22em; }
.recruit-highlights { width:min(1120px,calc(100% - 40px)); margin:-42px auto 0; display:grid; grid-template-columns:repeat(4,1fr); position:relative; z-index:2; background:#fffdf8; border:1px solid rgba(170,130,43,.25); box-shadow:0 22px 65px rgba(65,43,22,.11); }
.recruit-highlights div { min-height:132px; padding:25px 18px; display:grid; place-items:center; align-content:center; gap:7px; border-right:1px solid rgba(170,130,43,.2); text-align:center; }
.recruit-highlights div:last-child { border-right:0; }
.recruit-highlights strong { font:600 22px/1.3 "Yu Mincho","Hiragino Mincho ProN",serif; letter-spacing:.06em; }
.recruit-highlights span { color:var(--gold); font-size:11px; font-weight:700; letter-spacing:.16em; }
.recruit-content { max-width:1120px; margin:auto; padding:105px 30px; }
.recruit-message { max-width:900px; text-align:center; }
.recruit-message h2,.recruit-section-heading h2,.recruit-entry h2 { margin:20px 0 30px; font:500 clamp(30px,4vw,49px)/1.7 "Yu Mincho","Hiragino Mincho ProN",serif; letter-spacing:.06em; }
.recruit-message>p:last-child { margin:0; color:#665c50; font-size:16px; line-height:2.3; }
.recruit-section-heading { margin-bottom:46px; text-align:center; }
.recruit-section-heading h2 { margin-bottom:0; }
.recruit-benefits { max-width:none; padding-left:max(30px,calc((100vw - 1120px)/2)); padding-right:max(30px,calc((100vw - 1120px)/2)); background:linear-gradient(145deg,#f0e6d3,#faf7f0); }
.recruit-benefit-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:rgba(170,130,43,.25); border:1px solid rgba(170,130,43,.25); }
.recruit-benefit-grid article { min-height:270px; padding:42px; position:relative; background:#fffdf8; }
.recruit-benefit-grid article>span { color:rgba(170,130,43,.38); font:30px Georgia,serif; }
.recruit-benefit-grid h3 { margin:27px 0 15px; font:600 22px "Yu Mincho","Hiragino Mincho ProN",serif; }
.recruit-benefit-grid p { margin:0; color:#72675a; font-size:14px; line-height:2; }
.recruit-conditions { max-width:980px; }
.recruit-condition-list { border-top:1px solid #43352b; }
.recruit-condition-list p { margin:0; padding:24px 12px; display:grid; grid-template-columns:210px 1fr; gap:28px; border-bottom:1px solid rgba(84,62,35,.17); }
.recruit-condition-list span { color:var(--gold); font-size:12px; font-weight:700; letter-spacing:.1em; }
.recruit-condition-list strong { font-size:15px; font-weight:500; }
.recruit-condition-note { margin:25px 0 0; color:#776c5e; font-size:13px; line-height:1.9; }
.recruit-flow { max-width:none; padding-left:max(30px,calc((100vw - 1220px)/2)); padding-right:max(30px,calc((100vw - 1220px)/2)); background:#281b20; color:#fff8eb; }
.recruit-flow-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.recruit-flow-grid article { min-height:255px; padding:34px 28px; border:1px solid rgba(225,193,114,.28); background:rgba(255,255,255,.025); }
.recruit-flow-grid article>span { color:#d9ba70; font:25px Georgia,serif; }
.recruit-flow-grid h3 { margin:32px 0 17px; font:500 19px "Yu Mincho","Hiragino Mincho ProN",serif; }
.recruit-flow-grid p { margin:0; color:#cfc4b7; font-size:13px; line-height:2; }
.recruit-faq { max-width:940px; }
.recruit-faq-list { border-top:1px solid #3b3028; }
.recruit-faq-list details { border-bottom:1px solid rgba(84,62,35,.18); }
.recruit-faq-list summary { min-height:78px; padding:22px 54px 22px 10px; display:flex; align-items:center; position:relative; list-style:none; cursor:pointer; font:600 16px/1.7 "Yu Mincho","Hiragino Mincho ProN",serif; }
.recruit-faq-list summary::-webkit-details-marker { display:none; }
.recruit-faq-list summary:before { content:"Q"; margin-right:22px; color:var(--gold); font:22px Georgia,serif; }
.recruit-faq-list summary:after { content:"＋"; position:absolute; right:12px; color:var(--gold); font-size:21px; font-weight:300; }
.recruit-faq-list details[open] summary:after { content:"−"; }
.recruit-faq-list details p { margin:0; padding:0 55px 26px; color:#6d6357; font-size:14px; line-height:2; }
.recruit-entry { padding:100px 28px; background:radial-gradient(circle at 50% 0,rgba(204,165,77,.17),transparent 38%),linear-gradient(135deg,#201519,#332129); color:#fff8eb; text-align:center; }
.recruit-entry>p:not(.recruit-section-kicker) { color:#cec2b3; line-height:2; }
.recruit-entry-actions { margin-top:36px; display:flex; flex-wrap:wrap; justify-content:center; gap:13px; }
.recruit-entry-actions .button { min-width:195px; }
.contact-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:60px; }
.info-table { border-top:1px solid var(--ink); }
.info-table p { margin:0; padding:22px 5px; display:grid; grid-template-columns:160px 1fr; border-bottom:1px solid var(--line); line-height:1.7; }
.info-table span { color:var(--muted); font-size:11px; }
.map-panel { min-height:420px; flex-direction:column; }
.map-panel p { margin:0; font:11px Georgia,serif; letter-spacing:.2em; }
.map-panel small { color:var(--muted); }
.google-map-panel { min-height:420px; display:block; position:relative; overflow:hidden; background:#e8e3da; }
.google-map-panel iframe { width:100%; height:100%; min-height:420px; display:block; border:0; }
.map-open-link { min-height:48px; padding:0 20px; display:flex; align-items:center; position:absolute; right:18px; bottom:18px; background:rgba(35,27,20,.92); border:1px solid rgba(218,185,108,.6); color:#fff; font-size:13px; letter-spacing:.05em; box-shadow:0 10px 30px rgba(27,20,14,.22); backdrop-filter:blur(8px); transition:background .2s ease,transform .2s ease; }
.map-open-link:hover { background:#9b7638; transform:translateY(-2px); }
.ranking-list { display:grid; gap:22px; }
.ranking-list article { min-height:190px; display:grid; grid-template-columns:90px 150px 1fr; align-items:center; gap:30px; border-bottom:1px solid var(--line); }
.ranking-list article>span { color:var(--gold); font:24px Georgia,serif; }
.ranking-list img { width:150px; height:180px; object-fit:cover; }
.ranking-list h2 { margin:5px 0; font:400 27px "Yu Mincho",serif; }
.ranking-list p,.ranking-list small { color:var(--muted); font:10px Georgia,serif; letter-spacing:.1em; }
.contact-card { display:grid; gap:35px; }
.contact-card .button { min-width:190px; }
.mail-link { color:var(--gold); font:18px Georgia,serif; }
.profile-layout { display:grid; grid-template-columns:minmax(320px,.95fr) minmax(360px,1.05fr); gap:75px; align-items:center; }
.profile-media { display:grid; gap:12px; }
.therapist-gallery { min-width:0; display:grid; gap:14px; }
.therapist-gallery__frame { position:relative; overflow:hidden; background:#ede5d6; box-shadow:0 28px 70px rgba(47,31,26,.14); }
.therapist-gallery__viewport { width:100%; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; scrollbar-width:none; }
.therapist-gallery__viewport::-webkit-scrollbar { display:none; }
.therapist-gallery__track { display:flex; }
.therapist-gallery__slide { min-width:100%; aspect-ratio:3/4; padding:0; border:0; position:relative; overflow:hidden; scroll-snap-align:start; scroll-snap-stop:always; background:#ede5d6; cursor:zoom-in; }
.therapist-gallery__slide img { width:100%; height:100%; object-fit:cover; transition:transform .65s ease; }
.therapist-gallery__slide:hover img { transform:scale(1.018); }
.therapist-gallery__hint,.therapist-gallery__count { height:30px; padding:0 11px; display:flex; align-items:center; position:absolute; bottom:12px; z-index:2; background:rgba(29,19,22,.74); border:1px solid rgba(225,193,116,.34); color:#f4e7c7; font:10px/1 Georgia,serif; letter-spacing:.16em; backdrop-filter:blur(7px); pointer-events:none; }
.therapist-gallery__hint { left:12px; }
.therapist-gallery__count { right:12px; }
.therapist-gallery__arrow,.therapist-lightbox__arrow { width:46px; height:46px; padding:0; display:grid; place-items:center; position:absolute; top:50%; z-index:3; transform:translateY(-50%); border:1px solid rgba(241,219,167,.42); border-radius:50%; background:rgba(31,21,24,.58); color:#f6e7c4; font:300 31px/1 Georgia,serif; cursor:pointer; backdrop-filter:blur(7px); }
.therapist-gallery__arrow.is-prev { left:13px; }
.therapist-gallery__arrow.is-next { right:13px; }
.therapist-gallery__thumbnails { max-width:100%; padding:3px 1px 8px; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:thin; scrollbar-color:rgba(176,139,54,.42) transparent; }
.therapist-gallery__thumbnail-track { width:max-content; min-width:100%; display:flex; justify-content:center; gap:8px; }
.therapist-gallery__thumbnails button { width:clamp(56px,14vw,72px); aspect-ratio:3/4; flex:0 0 auto; padding:0; overflow:hidden; border:1px solid rgba(176,139,54,.22); background:#ede5d6; box-shadow:0 7px 18px rgba(47,31,26,.08); cursor:pointer; opacity:.66; transition:opacity .22s ease,border-color .22s ease,box-shadow .22s ease,transform .22s ease; }
.therapist-gallery__thumbnails button:hover { opacity:.88; transform:translateY(-1px); }
.therapist-gallery__thumbnails button.is-active { border-color:var(--gold); box-shadow:0 0 0 2px #fff,0 0 0 3px var(--gold),0 9px 22px rgba(47,31,26,.14); opacity:1; }
.therapist-gallery__thumbnails img { width:100%; height:100%; display:block; object-fit:cover; object-position:center top; }
.therapist-lightbox { width:100vw; height:100dvh; max-width:none; max-height:none; margin:0; padding:0; border:0; background:rgba(15,11,13,.97); color:#fff; }
.therapist-lightbox[open] { display:block; }
.therapist-lightbox::backdrop { background:rgba(12,8,10,.86); backdrop-filter:blur(8px); }
.therapist-lightbox__stage { width:100%; height:100%; position:relative; display:grid; place-items:center; overflow:hidden; touch-action:pan-y; }
.therapist-lightbox figure { width:100%; height:100%; margin:0; padding:clamp(54px,7vw,82px) clamp(18px,8vw,100px); display:grid; place-items:center; }
.therapist-lightbox figure img { width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; user-select:none; -webkit-user-drag:none; }
.therapist-lightbox__close { width:48px; height:48px; padding:0; display:grid; place-items:center; position:absolute; top:max(14px,env(safe-area-inset-top)); right:18px; z-index:4; border:1px solid rgba(255,255,255,.32); border-radius:50%; background:rgba(255,255,255,.08); color:#fff; font:300 30px/1 Arial,sans-serif; cursor:pointer; }
.therapist-lightbox__arrow.is-prev { left:clamp(12px,3vw,34px); }
.therapist-lightbox__arrow.is-next { right:clamp(12px,3vw,34px); }
.therapist-lightbox__count { min-width:72px; padding:9px 13px; position:absolute; left:50%; bottom:max(18px,env(safe-area-inset-bottom)); z-index:4; transform:translateX(-50%); border:1px solid rgba(225,193,116,.32); background:rgba(0,0,0,.42); color:#f4e7c7; text-align:center; font:11px/1 Georgia,serif; letter-spacing:.15em; }
.profile-data h2 { margin:0 0 28px; font:400 42px "Yu Mincho",serif; }
.profile-data h2 small { color:var(--muted); font-size:15px; }
.profile-data dl { border-top:1px solid var(--ink); }
.profile-data dl div { padding:17px 0; display:grid; grid-template-columns:125px 1fr; border-bottom:1px solid var(--line); }
.profile-data dt { color:var(--muted); font:10px Georgia,serif; letter-spacing:.12em; }
.profile-data dd { margin:0; }
.profile-data>p:not(.kicker) { color:var(--muted); line-height:2; }
.profile-messages { width:min(960px,calc(100% - 44px)); margin:0 auto 96px; padding:48px clamp(24px,5vw,66px); display:grid; gap:54px; position:relative; background:linear-gradient(145deg,#fff 0%,#fffcf6 100%); border:1px solid #c8a95f; box-shadow:inset 0 0 0 7px #fff,inset 0 0 0 8px rgba(183,145,60,.45),0 24px 70px rgba(49,36,23,.08); }
.profile-messages::before { content:"“"; position:absolute; right:34px; top:8px; color:rgba(183,145,60,.13); font:110px/1 Georgia,serif; }
.profile-messages article { position:relative; }
.profile-messages article+article { padding-top:50px; border-top:1px solid rgba(183,145,60,.45); }
.profile-messages header { margin-bottom:22px; }
.profile-messages header span { display:block; margin-bottom:7px; color:var(--gold); font:10px Georgia,serif; letter-spacing:.24em; }
.profile-messages h2 { margin:0; padding-bottom:12px; position:relative; font:400 clamp(22px,3vw,30px) "Yu Mincho",serif; letter-spacing:.05em; }
.profile-messages h2::after { content:""; position:absolute; left:0; bottom:0; width:74px; height:1px; background:var(--gold); }
.profile-messages article>p { margin:0; color:#514940; font-size:15px; line-height:2.25; white-space:pre-wrap; }
.profile-messages .manager-message { background:linear-gradient(90deg,rgba(183,145,60,.055),transparent 72%); }
.tags { display:flex; flex-wrap:wrap; gap:8px; margin:25px 0; }
.tags span { padding:8px 12px; border:1px solid var(--line); color:var(--gold); font-size:10px; }
.booking-bar { padding:42px clamp(22px,6vw,90px); display:flex; align-items:center; justify-content:space-between; gap:24px; background:linear-gradient(110deg,#3a2d24,#433629); color:#fff; border-top:1px solid rgba(229,207,150,.2); border-bottom:1px solid rgba(229,207,150,.12); }
.booking-bar>div:first-child { display:grid; gap:8px; }
.booking-bar span { color:var(--champagne); font:10px Georgia,serif; letter-spacing:.28em; }
.booking-bar strong { font:400 14px "Yu Mincho",serif; }
.booking-actions { display:flex; gap:10px; }
.booking-actions .button { min-width:132px; border-color:rgba(229,207,150,.52); color:#f4ead5; }
.booking-actions .button.line { background:#355d4a; border-color:#557765; }
.booking-actions .button.mail { background:rgba(255,255,255,.055); border-color:rgba(229,207,150,.52); color:#f4ead5; }
footer { padding:58px clamp(22px,6vw,90px) 34px; display:grid; grid-template-columns:.8fr 1fr 1.2fr; gap:50px; align-items:center; background:linear-gradient(135deg,#201519,#291d20); border-top:1px solid rgba(218,185,108,.2); color:#b9aea0; font-size:11px; line-height:1.9; }
.footer-brand .brand-lockup { color:#f0e6d3; }
.footer-brand .brand-emblem { width:78px; height:78px; filter:drop-shadow(0 8px 16px rgba(0,0,0,.24)); }
.footer-brand .brand-copy strong { font-size:18px; }
.footer-brand .brand-copy small { color:#c9a752; }
.legal { text-align:right; }
.mobile-contact-dock { display:none; }

@media (max-width:1150px) {
  .desktop-nav { display:none; }
  .header { grid-template-columns:1fr auto; }
  .mobile-menu { display:block; position:relative; }
  .mobile-menu summary { width:44px; height:44px; display:grid; place-content:center; gap:5px; list-style:none; cursor:pointer; }
  .mobile-menu summary::-webkit-details-marker { display:none; }
  .mobile-menu summary span { width:22px; height:1px; background:var(--ink); }
  .mobile-menu[open] nav { position:absolute; right:0; top:50px; width:min(330px,84vw); max-height:70vh; overflow:auto; padding:15px; display:grid; background:#fff; box-shadow:0 18px 45px rgba(35,28,22,.2); }
  .mobile-menu nav a { padding:12px; border-bottom:1px solid var(--line); font-size:12px; }
  .therapist-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .schedule-card-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width:760px) {
  body { background:#fbf8f2; }
  .site-shell { padding-bottom:70px; overflow:clip; }
  .site-shell.has-mobile-recruit-dock { padding-bottom:126px; }
  .utility { min-height:28px; padding:0 16px; justify-content:space-between; gap:10px; color:#e2d5be; font-size:9px; letter-spacing:.18em; }
  .utility span:first-child { display:none; }
  .header { min-height:78px; padding:5px 16px; position:sticky; top:0; background:rgba(255,253,248,.92); border-bottom-color:rgba(170,130,43,.28); box-shadow:0 8px 28px rgba(55,39,19,.055); backdrop-filter:blur(18px) saturate(1.08); }
  .brand-lockup { gap:8px; }
  .brand-emblem { width:50px; height:50px; }
  .brand-copy { gap:4px; }
  .brand-copy strong { font-size:13px; letter-spacing:.1em; }
  .brand-copy small { font-size:6px; letter-spacing:.22em; }
  .header-actions { gap:8px; }
  .language summary { min-width:0; width:42px; height:42px; padding:0; border:1px solid rgba(170,130,43,.42); border-radius:50%; overflow:hidden; white-space:nowrap; color:var(--gold); position:relative; display:grid; place-items:center; }
  .language-label { display:none; }
  .language-icon { display:block; }
  .mobile-menu summary { width:42px; height:42px; border:1px solid rgba(170,130,43,.42); border-radius:50%; gap:4px; }
  .mobile-menu summary span { width:19px; }
  .mobile-menu summary span { background:var(--gold); }
  .hero-picture { aspect-ratio:750/550; }
  .hero-carousel { aspect-ratio:4/3; }
  .hero-carousel-controls { bottom:12px; height:38px; }
  .hero-branch-label { width:44%; min-height:8%; left:49%; top:72.8%; padding:7px 4px; font-size:9px; letter-spacing:.08em; }
  .hero-copy { padding:44px 24px 56px; border-bottom:1px solid rgba(170,130,43,.12); }
  .hero-copy .kicker { margin-bottom:15px; font-size:9px; letter-spacing:.34em; }
  .hero h1 { font-size:clamp(27px,7.5vw,31px); line-height:1.62; letter-spacing:.055em; }
  .hero-copy>p:not(.kicker) { margin:23px auto 30px; color:#746a5c; font-size:12px; line-height:2.15; }
  .hero-copy .contact-buttons { flex-direction:row; }
  .hero-copy .button { min-height:47px; flex:1; padding:0 10px; font-size:10px; letter-spacing:.12em; }
  .hero-copy .button.gold { background:#f6efdf; border-color:#b79242; color:#4e3b1d; }
  .hero-copy .button.line { background:#506f5d; border-color:#506f5d; }
  .promo-carousel { width:calc(100% - 24px); margin-top:28px; }
  .promo-slides { aspect-ratio:2.2/1; }
  .managed-schedule-list { grid-template-columns:1fr; }
  .managed-schedule-list article { padding:18px; }
  .concept,.system-preview,.access-preview,.contact-layout { grid-template-columns:1fr; }
  .system-preview,.access-preview>div:first-child { padding:68px 22px; }
  .access-preview>div:first-child:before { left:22px; top:35px; }
  .map-mark { min-height:360px; gap:10px; }
  .map-mark:before { width:245px; }
  .map-mark img { width:190px; }
  .map-signature strong { font-size:17px; }
  .concept { min-height:0; gap:40px; padding:66px 22px 72px; }
  .concept-title { width:min(100%,310px); height:auto; margin:auto; padding:0 0 22px; border-right:0; border-bottom:1px solid rgba(39,32,23,.55); text-align:center; }
  .concept-title span { left:50%; top:-15px; bottom:auto; color:rgba(170,130,43,.09); font-size:46px; writing-mode:horizontal-tb; transform:translateX(-50%); }
  .concept-title b { position:relative; left:auto; top:auto; display:block; font-size:37px; letter-spacing:.11em; writing-mode:horizontal-tb; transform:none; }
  .concept-title small { right:auto; bottom:-29px; left:50%; writing-mode:horizontal-tb; transform:translateX(-50%); }
  .concept-copy h2 { margin-bottom:34px; font-size:18px; line-height:1.95; }
  .concept-copy p { margin-bottom:23px; font-size:12px; line-height:2.2; }
  .content-section,.page-body { padding:62px 18px; }
  .section-title { align-items:flex-start; }
  .home-heading h2 { font-size:clamp(34px,9.5vw,42px); line-height:1.15; letter-spacing:.09em; }
  .home-heading p { margin-top:9px; font-size:12px; letter-spacing:.15em; }
  .section-title>.text-link { position:static; margin-top:20px; white-space:nowrap; }
  .therapist-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px 10px; }
  .schedule-home .therapist-grid,.new-face-home .therapist-grid { margin:35px -18px 0; padding:0 24px 15px; display:flex; justify-content:flex-start; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
  .schedule-home .therapist-grid::-webkit-scrollbar,.new-face-home .therapist-grid::-webkit-scrollbar { display:none; }
  .schedule-home .therapist-card,.new-face-home .therapist-card { flex:0 0 78%; padding:10px; scroll-snap-align:center; background:rgba(255,252,245,.96); border:1px solid rgba(170,130,43,.24); box-shadow:0 18px 45px rgba(66,47,21,.08); }
  .therapist-card { transition:transform .25s ease,box-shadow .25s ease; }
  .therapist-card:active { transform:scale(.992); }
  .therapist-info h3 { font-size:16px; }
  .therapist-info .stats { font-size:8px; }
  .catchphrase { font-size:10px; }
  .portrait-overlay { display:none; }
  .schedule-date-picker { margin-top:30px; }
  .schedule-date-picker nav { margin:0 -18px; padding:0 18px 8px; justify-content:flex-start; gap:8px; overflow-x:auto; scrollbar-width:none; }
  .schedule-date-picker nav::-webkit-scrollbar { display:none; }
  .schedule-date-picker a { width:62px; min-width:62px; min-height:62px; background:rgba(255,253,248,.82); border-color:rgba(170,130,43,.42); box-shadow:inset 0 0 0 3px rgba(255,255,255,.7); }
  .schedule-date-picker a.active { background:#b5934b; border-color:#9f7b31; box-shadow:inset 0 0 0 3px rgba(255,255,255,.18),0 8px 20px rgba(97,66,20,.14); }
  .schedule-date-picker a strong { font-size:15px; }
  .schedule-date-picker a span { font-size:9px; }
  .schedule-page-body { padding:36px 12px 75px; }
  .schedule-date-picker-full { margin-top:0; }
  .schedule-date-picker-full nav { display:flex; margin:0 -12px; padding:0 12px 8px; }
  .schedule-date-picker-full a { width:112px; min-width:112px; min-height:54px; padding:9px 7px; flex-direction:row; border-radius:0; }
  .schedule-date-picker-full a strong { font-size:16px; }
  .schedule-card-grid { margin-top:22px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 7px; }
  .schedule-person-card { padding:4px; }
  .schedule-time { min-width:76%; min-height:31px; padding:7px 8px; font-size:11px; }
  .schedule-person-info { min-height:188px; padding:13px 8px 10px; }
  .schedule-person-roman { font-size:13px; }
  .schedule-person-info h2 { font-size:15px; }
  .schedule-person-stats { font-size:8px; }
  .schedule-person-catch { margin-top:8px; padding-top:8px; font-size:9px; }
  .schedule-person-tags { margin-top:8px; gap:4px; }
  .schedule-person-tags span { min-height:23px; padding:4px 2px; font-size:8px; }
  .schedule-unavailable { padding:28px 20px; align-items:stretch; flex-direction:column; }
  .system-preview { gap:38px; padding-bottom:32px; }
  .system-preview,.options-home,.service-style-home { background-size:auto 100%; }
  .price-preview { padding:40px 26px; box-shadow:inset 0 0 0 7px #fff,inset 0 0 0 10px rgba(170,130,43,.82),0 18px 50px rgba(86,61,24,.08); }
  .course-name { margin-bottom:24px; font-size:15px; letter-spacing:.06em; }
  .price-list { width:min(100%,230px); }
  .price-list>div { padding:9px 4px; display:grid; grid-template-columns:76px 90px; justify-content:center; gap:12px; }
  .price-list span { font-size:17px; text-align:right; }
  .price-list span::after { content:" :"; }
  .price-list small { font-size:9px; }
  .price-list strong { font-size:19px; text-align:left; }
  .price-fees { grid-template-columns:1fr; }
  .price-fees p { padding:14px 8px; grid-template-columns:1fr auto; align-items:center; border-right:0; border-bottom:1px solid rgba(170,130,43,.17); }
  .price-fees p:last-child { border-bottom:0; }
  .price-fees span { font-size:8px; }
  .price-fees strong { font-size:17px; }
  .options-home { padding:0 22px; }
  .options-frame { padding:42px 26px; box-shadow:inset 0 0 0 7px #fff,inset 0 0 0 10px rgba(170,130,43,.82); }
  .options-list { margin-top:30px; grid-template-columns:1fr; }
  .options-list article { min-height:0; padding:20px 16px; border-right:0; border-bottom:1px solid rgba(170,130,43,.22); }
  .options-list article:last-child { border-bottom:0; }
  .options-list strong { margin-bottom:9px; font-size:18px; }
  .options-list p { font-size:12px; }
  .service-style-home { padding:32px 22px 55px; }
  .service-style-frame { padding:45px 27px; box-shadow:inset 0 0 0 7px #fff,inset 0 0 0 10px rgba(170,130,43,.82); }
  .service-style-lead { margin:15px 0 35px; font-size:15px; line-height:1.7; }
  .service-style-list article { grid-template-columns:1fr; gap:13px; }
  .service-style-list h3 { font-size:16px; }
  .service-style-list p { font-size:12px; line-height:1.9; }
  .section-hero { padding:70px 20px; }
  .section-hero h1 { font-size:41px; }
  .price-table>div { grid-template-columns:1fr 1fr; gap:8px; }
  .price-table span { grid-column:1/-1; }
  .price-table strong { text-align:left; }
  .fee-grid,.service-notes,.recruit-grid,.profile-layout { grid-template-columns:1fr; }
  .recruit-hero-pro { min-height:0; padding:66px 22px 88px; grid-template-columns:1fr; gap:46px; }
  .recruit-hero-pro:before { left:-5px; bottom:-14px; font-size:84px; }
  .recruit-kicker,.recruit-section-kicker { font-size:9px; letter-spacing:.28em; }
  .recruit-hero-copy-pro h1 { margin:21px 0 25px; font-size:clamp(24px,7.7vw,36px); line-height:1.62; letter-spacing:.01em; }
  .recruit-hero-copy-pro>p:last-of-type { font-size:13px; line-height:2.05; }
  .recruit-hero-actions { margin-top:32px; display:grid; grid-template-columns:1fr; }
  .recruit-hero-actions .button { width:100%; min-width:0; }
  .recruit-hero-card { min-height:230px; padding:34px 29px; }
  .recruit-hero-card>strong { margin:16px 0 20px; font-size:45px; }
  .recruit-highlights { width:calc(100% - 28px); margin-top:-34px; grid-template-columns:repeat(2,1fr); }
  .recruit-highlights div { min-height:105px; padding:18px 10px; }
  .recruit-highlights div:nth-child(2) { border-right:0; }
  .recruit-highlights div:nth-child(-n+2) { border-bottom:1px solid rgba(170,130,43,.2); }
  .recruit-highlights strong { font-size:17px; }
  .recruit-highlights span { font-size:9px; }
  .recruit-content { padding:72px 20px; }
  .recruit-message h2,.recruit-section-heading h2,.recruit-entry h2 { margin:17px 0 24px; font-size:28px; line-height:1.75; }
  .recruit-message>p:last-child { font-size:14px; line-height:2.15; text-align:left; }
  .recruit-section-heading { margin-bottom:34px; }
  .recruit-benefits,.recruit-flow { padding-left:14px; padding-right:14px; }
  .recruit-benefit-grid,.recruit-flow-grid { grid-template-columns:1fr; }
  .recruit-benefit-grid article { min-height:0; padding:32px 27px; }
  .recruit-benefit-grid h3 { margin:20px 0 12px; font-size:19px; }
  .recruit-condition-list p { padding:20px 4px; grid-template-columns:92px 1fr; gap:16px; }
  .recruit-condition-list span { font-size:11px; }
  .recruit-condition-list strong { font-size:14px; line-height:1.7; }
  .recruit-flow-grid article { min-height:0; padding:30px 25px; }
  .recruit-flow-grid h3 { margin:19px 0 12px; }
  .recruit-faq-list summary { min-height:72px; padding:19px 38px 19px 4px; font-size:14px; }
  .recruit-faq-list summary:before { margin-right:13px; font-size:19px; }
  .recruit-faq-list summary:after { right:5px; }
  .recruit-faq-list details p { padding:0 7px 24px 35px; font-size:13px; }
  .recruit-entry { padding:74px 20px; }
  .recruit-entry-actions { display:grid; grid-template-columns:1fr; }
  .recruit-entry-actions .button { width:100%; min-width:0; }
  .news-list article { grid-template-columns:1fr auto; gap:10px; }
  .news-list article div { grid-column:1/-1; grid-row:2; }
  .ranking-list article { min-height:145px; grid-template-columns:55px 95px 1fr; gap:14px; }
  .ranking-list img { width:95px; height:130px; }
  .ranking-list h2 { font-size:20px; }
  .ranking-list article>span { font-size:16px; }
  .profile-layout { gap:38px; }
  .profile-data h2 { font-size:34px; }
  .profile-messages { width:calc(100% - 30px); margin-bottom:64px; padding:38px 25px; gap:42px; box-shadow:inset 0 0 0 5px #fff,inset 0 0 0 6px rgba(183,145,60,.45),0 18px 46px rgba(49,36,23,.07); }
  .profile-messages article+article { padding-top:40px; }
  .profile-messages article>p { font-size:14px; line-height:2.1; }
  .info-table p { grid-template-columns:1fr; gap:6px; }
  .google-map-panel,.google-map-panel iframe { min-height:360px; }
  .map-open-link { right:12px; bottom:12px; min-height:44px; padding:0 15px; font-size:12px; }
  .booking-bar { display:none; }
  footer { grid-template-columns:1fr; gap:20px; padding:46px 22px 28px; text-align:center; }
  .footer-brand { margin:auto; }
  .footer-brand .brand-emblem { width:70px; height:70px; }
  .footer-brand .brand-copy strong { font-size:17px; }
  .legal { text-align:center; }
  .mobile-contact-dock { min-height:70px; padding-bottom:env(safe-area-inset-bottom); display:grid; grid-template-columns:repeat(3,1fr); position:fixed; left:0; right:0; bottom:0; z-index:80; background:rgba(250,247,240,.93); border-top:1px solid rgba(170,130,43,.4); box-shadow:0 -10px 34px rgba(49,36,20,.09); backdrop-filter:blur(18px) saturate(1.08); }
  .mobile-recruit-dock { min-height:56px; padding:7px 12px 7px 18px; display:grid; grid-template-columns:1fr auto; align-items:center; gap:12px; position:fixed; left:0; right:0; bottom:calc(70px + env(safe-area-inset-bottom)); z-index:81; overflow:hidden; background:linear-gradient(110deg,#24171d 0%,#4b2b3a 58%,#28191f 100%); border-top:1px solid rgba(225,193,114,.65); color:#fffaf0; box-shadow:0 -8px 28px rgba(38,21,28,.18); }
  .mobile-recruit-dock:before { content:"RECRUIT"; position:absolute; right:96px; top:-12px; color:rgba(232,203,133,.085); font:700 51px/1 Georgia,serif; pointer-events:none; }
  .mobile-recruit-dock>span:first-child { min-width:0; display:grid; gap:2px; position:relative; }
  .mobile-recruit-dock small { color:#d9ba70; font:700 8px/1 Georgia,serif; letter-spacing:.24em; }
  .mobile-recruit-dock strong { overflow:hidden; font:600 16px/1.35 "Yu Mincho","Hiragino Mincho ProN",serif; letter-spacing:.09em; white-space:nowrap; text-overflow:ellipsis; }
  .mobile-recruit-dock-action { min-width:103px; min-height:40px; padding:0 10px; display:flex; align-items:center; justify-content:center; gap:7px; position:relative; background:linear-gradient(105deg,#b68b35,#dfc77f); color:#24181d; font-size:11px; font-weight:700; white-space:nowrap; }
  .mobile-recruit-dock-action b { font:18px/1 Georgia,serif; }
  .mobile-contact-dock a { min-height:70px; display:grid; place-items:center; align-content:center; gap:3px; border-right:1px solid rgba(170,130,43,.34); transition:background .2s ease; }
  .mobile-contact-dock a:active { background:rgba(201,167,82,.12); }
  .mobile-contact-dock a:last-child { border-right:0; }
  .mobile-contact-dock small { color:#5f503c; font:9px Georgia,serif; letter-spacing:.16em; }
  .dock-phone,.dock-mail { height:26px; display:grid; place-items:center; color:#241c14; font-size:24px; line-height:1; }
  .dock-line { min-width:38px; height:23px; padding:0 6px; display:grid; place-items:center; position:relative; border-radius:50%; background:#241c14; color:#fff; font:700 8px Arial,sans-serif; }
  .dock-line:after { content:""; position:absolute; left:7px; bottom:-4px; border-width:5px 5px 0 0; border-style:solid; border-color:#241c14 transparent transparent transparent; transform:rotate(10deg); }
}

@media (prefers-reduced-motion:no-preference) {
  .hero-picture img { animation:hero-settle 1.25s cubic-bezier(.2,.65,.25,1) both; }
  .hero-copy { animation:soft-rise .85s .08s ease-out both; }
  .mobile-contact-dock { animation:dock-rise .55s ease-out both; }
}

@keyframes hero-settle { from { opacity:.45; transform:scale(1.025); } to { opacity:1; transform:scale(1); } }
@keyframes soft-rise { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
@keyframes dock-rise { from { transform:translateY(100%); } to { transform:translateY(0); } }

@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }
