:root{--ink:#17201d;--green:#112c27;--green2:#1e463d;--mint:#dce9e3;--cream:#f7f3eb;--paper:#fffdfa;--gold:#bf9560;--gold2:#e3c79f;--line:#ded8ce;--red:#a54e45;--shadow:0 18px 50px rgba(25,37,32,.12);--radius:22px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:"Noto Sans JP",sans-serif;line-height:1.75}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.proposal-bar{background:#091f1b;color:#d9e9e2;text-align:center;font-size:12px;letter-spacing:.08em;padding:6px 16px}.proposal-bar span{color:#e3c79f;font-weight:700;margin-right:10px}.site-header{height:82px;display:flex;align-items:center;padding:0 4vw;gap:32px;background:rgba(255,253,250,.94);backdrop-filter:blur(16px);position:sticky;top:0;z-index:30;border-bottom:1px solid rgba(17,44,39,.08)}.brand{display:flex;align-items:center;gap:10px;margin-right:auto}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:50% 50% 50% 8px;background:var(--green);color:var(--gold2);font:600 27px "Cormorant Garamond"}.brand b{display:block;font:600 29px/1 "Cormorant Garamond";letter-spacing:.04em}.brand small{display:block;font-size:8px;letter-spacing:.2em;margin-top:5px}.main-nav{display:flex;gap:24px;font-size:13px;font-weight:600}.main-nav a:hover{color:#8a6840}.header-actions{display:flex;align-items:center;gap:16px;font-size:13px}.link-login{font-weight:600}.button{border:0;cursor:pointer;display:inline-flex;justify-content:center;align-items:center;gap:8px;padding:14px 24px;background:var(--green);color:white;border-radius:999px;font-weight:700;box-shadow:0 8px 22px rgba(17,44,39,.18);transition:.2s}.button:hover{transform:translateY(-2px);background:var(--green2)}.button.small{padding:10px 18px}.button.gold{background:var(--gold);color:#13231f}.button.outline{background:transparent;color:var(--green);border:1px solid var(--green);box-shadow:none}.button.light{background:white;color:var(--green)}.button.danger{background:#fff0ed;color:#993d33;box-shadow:none}.button:disabled{opacity:.5;cursor:not-allowed;transform:none}.menu-toggle{display:none;border:0;background:none;font-size:24px}.hero{min-height:680px;display:flex;align-items:center;position:relative;background:linear-gradient(90deg,rgba(7,25,21,.91) 0%,rgba(7,25,21,.73) 42%,rgba(7,25,21,.08) 76%),url('assets/hero-spa.webp') center/cover;color:white;padding:80px 8vw}.hero-content{max-width:660px}.eyebrow{font-size:11px;letter-spacing:.25em;font-weight:700;color:var(--gold);text-transform:uppercase}.hero h1,.page-hero h1{font-family:"Cormorant Garamond","Noto Sans JP";font-weight:500;font-size:clamp(48px,6.2vw,86px);line-height:1.05;letter-spacing:.02em;margin:18px 0}.hero h1 span{display:block;font-family:"Noto Sans JP";font-size:.38em;line-height:1.5;margin-top:14px;letter-spacing:.08em}.hero p{max-width:570px;color:#e1e6e2}.hero-actions{display:flex;gap:12px;margin-top:34px;flex-wrap:wrap}.hero-points{position:absolute;bottom:26px;right:5vw;display:flex;background:rgba(255,255,255,.92);color:var(--ink);border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}.hero-point{padding:16px 22px;border-right:1px solid var(--line);font-size:12px}.hero-point:last-child{border:0}.hero-point b{display:block;color:var(--green);font-size:15px}.section{padding:90px max(5vw,24px)}.section.alt{background:var(--cream)}.section.dark{background:var(--green);color:white}.section-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:38px}.section-title{margin:6px 0 0;font:600 clamp(34px,4vw,54px)/1.1 "Cormorant Garamond","Noto Sans JP"}.section-title small{font:500 13px "Noto Sans JP";display:block;letter-spacing:.12em;margin-top:10px}.section-note{max-width:450px;color:#66706b;font-size:14px}.dark .section-note{color:#c7d4cf}.therapist-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.therapist-card{background:white;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);position:relative}.therapist-card .photo{aspect-ratio:4/5;overflow:hidden;background:#ddd}.therapist-card img{width:100%;height:100%;object-fit:cover;transition:.5s}.therapist-card:hover img{transform:scale(1.025)}.card-badges{position:absolute;top:16px;left:16px;display:flex;gap:8px}.badge{background:white;border-radius:99px;padding:5px 10px;font-size:11px;font-weight:700;box-shadow:0 5px 20px rgba(0,0,0,.12)}.badge.available{background:#dff1e8;color:#17694d}.favorite{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:50%;border:0;background:rgba(255,255,255,.92);font-size:19px;cursor:pointer}.favorite.active{color:#b24e54}.card-body{padding:19px 20px 22px}.card-name{display:flex;align-items:end;justify-content:space-between}.card-name h3{font-size:24px;margin:0}.card-name span{font:500 12px "Noto Sans JP";color:#8b7d6b}.tags{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 17px}.tag{font-size:11px;background:var(--cream);padding:4px 8px;border-radius:5px;color:#5c655f}.card-actions{display:flex;gap:8px}.card-actions .button{flex:1;padding:10px 12px;font-size:12px}.schedule-strip{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--line);border-radius:18px;overflow:hidden;background:white}.day{padding:16px 8px;text-align:center;border-right:1px solid var(--line);cursor:pointer}.day:last-child{border:0}.day.active{background:var(--green);color:white}.day small{display:block;font-size:10px}.day b{font-size:18px}.schedule-list{margin-top:24px;display:grid;gap:12px}.schedule-row{display:grid;grid-template-columns:70px 70px 1fr auto;align-items:center;gap:18px;padding:12px 18px;background:white;border-radius:16px;border:1px solid #ebe6de}.avatar{width:58px;height:58px;border-radius:50%;object-fit:cover}.status{font-size:12px;color:#287057}.status.full{color:#9b4a43}.service-grid,.flow-grid,.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.service-card{padding:28px;border:1px solid var(--line);border-radius:18px;background:var(--paper)}.service-card.featured{background:var(--green);color:white;border-color:var(--green);transform:translateY(-8px)}.service-card h3{font-size:21px;margin:6px 0}.price{font:600 36px "Cormorant Garamond"}.price small{font:500 12px "Noto Sans JP"}.service-card ul{padding-left:18px;font-size:13px;color:#5c655f}.featured ul{color:#d7e0dd}.flow-step{position:relative;padding:28px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);border-radius:18px}.step-num{font:600 46px "Cormorant Garamond";color:var(--gold2)}.feature-card{padding:22px;border-radius:16px;background:white;border:1px solid var(--line)}.feature-icon{font-size:26px}.page-hero{padding:65px 6vw 55px;background:var(--green);color:white}.page-hero h1{font-size:54px;margin:8px 0}.page-hero p{max-width:650px;color:#cdd8d4}.page-wrap{padding:55px max(5vw,22px);min-height:500px}.filter-bar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:26px}.filter-chip{border:1px solid var(--line);background:white;padding:8px 15px;border-radius:99px;cursor:pointer}.filter-chip.active{background:var(--green);color:white;border-color:var(--green)}.detail-layout{display:grid;grid-template-columns:minmax(280px,42%) 1fr;gap:45px;max-width:1100px;margin:auto}.detail-photo{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:24px}.detail-info h1{font-size:48px;margin:0}.meta-table{display:grid;grid-template-columns:120px 1fr;border-top:1px solid var(--line);margin:24px 0}.meta-table dt,.meta-table dd{padding:10px 0;border-bottom:1px solid var(--line);margin:0;font-size:13px}.meta-table dt{color:#7a817d}.slot-list{display:flex;gap:8px;flex-wrap:wrap}.slot{border:1px solid #b8c9c2;background:#eff7f3;padding:8px 12px;border-radius:8px;cursor:pointer}.slot:hover{background:var(--green);color:white}.booking-shell{max-width:1050px;margin:auto;display:grid;grid-template-columns:1fr 290px;gap:32px}.booking-main{background:white;border:1px solid var(--line);border-radius:24px;padding:32px}.steps{display:flex;justify-content:space-between;margin-bottom:35px;position:relative}.steps:before{content:"";height:1px;background:var(--line);position:absolute;left:9%;right:9%;top:15px}.step{position:relative;text-align:center;font-size:11px;color:#8b918e}.step i{display:grid;place-items:center;width:30px;height:30px;background:#e9e7e1;border-radius:50%;margin:auto auto 5px;font-style:normal;font-weight:700}.step.active i,.step.done i{background:var(--green);color:white}.form-section{display:none}.form-section.active{display:block}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:12px;font-weight:700}.field input,.field select,.field textarea{width:100%;border:1px solid #d4d2cb;border-radius:10px;padding:12px;background:white}.option-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.option-card{border:2px solid transparent;background:var(--cream);border-radius:14px;padding:12px;cursor:pointer;text-align:center}.option-card.selected{border-color:var(--green);background:#edf5f1}.option-card img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:9px}.option-card b{display:block}.form-nav{display:flex;justify-content:space-between;margin-top:28px}.summary-box{background:var(--cream);border-radius:20px;padding:22px;height:max-content;position:sticky;top:118px}.summary-box h3{margin-top:0}.summary-line{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #ddd5c9;font-size:13px}.summary-line strong{text-align:right}.complete{text-align:center;padding:30px}.complete-icon{width:72px;height:72px;display:grid;place-items:center;border-radius:50%;background:#dff1e8;color:#17694d;font-size:36px;margin:auto}.login-wrap{max-width:950px;margin:auto;display:grid;grid-template-columns:1fr 1fr;background:white;border-radius:24px;box-shadow:var(--shadow);overflow:hidden}.login-side{background:linear-gradient(rgba(17,44,39,.72),rgba(17,44,39,.91)),url('assets/hero-spa.webp') center/cover;color:white;padding:55px 40px}.login-form{padding:50px 42px}.demo-roles{display:grid;gap:10px;margin-top:25px}.demo-role{border:1px solid rgba(255,255,255,.28);border-radius:12px;padding:10px 12px;cursor:pointer}.demo-role:hover{background:rgba(255,255,255,.1)}.dashboard{display:grid;grid-template-columns:230px 1fr;min-height:700px;background:#f3f5f2}.dash-side{background:#102923;color:white;padding:26px 18px}.dash-brand{font:600 30px "Cormorant Garamond";margin-bottom:30px}.dash-user{padding:14px;background:rgba(255,255,255,.08);border-radius:12px;margin-bottom:24px;font-size:12px}.dash-nav{display:grid;gap:5px}.dash-nav button{border:0;background:transparent;color:#d4ded9;text-align:left;padding:11px;border-radius:8px;cursor:pointer}.dash-nav button.active,.dash-nav button:hover{background:rgba(255,255,255,.1);color:white}.dash-main{padding:34px}.dash-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.dash-top h1{margin:0;font-size:26px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat-card{background:white;padding:18px;border-radius:14px;border:1px solid #e4e7e3}.stat-card span{font-size:11px;color:#738078}.stat-card b{display:block;font-size:25px;margin-top:5px}.panel{background:white;border:1px solid #e2e5e1;border-radius:16px;padding:20px;margin-top:18px;overflow:auto}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.panel h2{font-size:17px;margin:0}.data-table{width:100%;border-collapse:collapse;min-width:680px;font-size:12px}.data-table th,.data-table td{padding:12px 10px;border-bottom:1px solid #edf0ec;text-align:left}.state-pill{padding:4px 8px;border-radius:20px;background:#fff3d8;color:#8a641a;font-size:10px;font-weight:700}.state-pill.confirmed{background:#dff1e8;color:#17694d}.state-pill.waiting{background:#e9edf8;color:#3d5796}.mini-button{border:0;border-radius:7px;padding:7px 10px;background:var(--green);color:white;cursor:pointer;font-size:11px}.timeline{border-left:2px solid #cad8d2;margin:12px 0 12px 9px;padding-left:22px}.timeline-item{position:relative;margin:0 0 18px}.timeline-item:before{content:"";width:10px;height:10px;border-radius:50%;background:var(--green);position:absolute;left:-28px;top:7px}.message-box{background:#eff5f2;border-radius:10px;padding:12px;font-size:13px}.notice{background:#fff8e9;border:1px solid #f0dfb9;padding:12px 15px;border-radius:10px;font-size:12px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px}.map-placeholder{min-height:360px;border-radius:22px;background:linear-gradient(135deg,#dbe6e0,#f0e8dc);position:relative;overflow:hidden}.map-placeholder:before,.map-placeholder:after{content:"";position:absolute;background:rgba(255,255,255,.65);transform:rotate(-18deg)}.map-placeholder:before{width:120%;height:40px;left:-10%;top:42%}.map-placeholder:after{width:40px;height:120%;left:56%;top:-10%}.map-pin{position:absolute;left:54%;top:43%;width:48px;height:48px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--green);z-index:2}.map-pin:after{content:"B";color:white;position:absolute;transform:rotate(45deg);left:15px;top:9px;font:600 20px "Cormorant Garamond"}.contact-card{max-width:800px;margin:auto;background:white;border:1px solid var(--line);border-radius:22px;padding:34px}.toast{position:fixed;right:24px;bottom:24px;background:#102923;color:white;padding:12px 18px;border-radius:10px;box-shadow:var(--shadow);z-index:80;transform:translateY(100px);opacity:0;transition:.25s}.toast.show{transform:none;opacity:1}.floating-book{display:none}.site-footer{background:#0b211c;color:#d8e2de;padding:65px 6vw 22px;display:grid;grid-template-columns:2fr 1fr 1fr 1.3fr;gap:40px;font-size:13px}.footer-brand{font:600 42px "Cormorant Garamond";color:white}.site-footer h3{font-size:12px;color:var(--gold2);letter-spacing:.1em}.site-footer a{display:block;margin:7px 0}.site-footer .muted{color:#8da098}.footer-bottom{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:18px;display:flex;justify-content:space-between;font-size:10px;color:#8da098}
@media(max-width:1000px){.main-nav{display:none}.menu-toggle{display:block;order:3}.main-nav.open{display:grid;position:absolute;left:0;right:0;top:82px;background:white;padding:22px 5vw;box-shadow:var(--shadow)}.header-actions{margin-left:auto}.therapist-grid,.service-grid,.flow-grid,.feature-grid{grid-template-columns:repeat(2,1fr)}.hero-points{display:none}.dashboard{grid-template-columns:80px 1fr}.dash-side{padding:20px 10px}.dash-brand{font-size:22px}.dash-user{display:none}.dash-nav button{font-size:0;text-align:center}.dash-nav button:before{content:attr(data-icon);font-size:20px}.stats{grid-template-columns:repeat(2,1fr)}.site-footer{grid-template-columns:2fr 1fr 1fr}.site-footer>div:nth-child(4){grid-column:1/-1}}
@media(max-width:700px){html,body{overflow-x:hidden}body{padding-bottom:72px}.proposal-bar{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.site-header{height:66px;padding:0 16px}.brand small{display:none}.brand b{font-size:25px}.brand-mark{width:34px;height:34px}.header-actions{display:none}.menu-toggle{display:block!important;position:absolute;right:16px;top:16px;margin:0}.main-nav.open{top:66px}.hero{min-height:670px;padding:68px 22px;background-position:62% center}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,21,17,.88),transparent 58%)}.hero-content{position:relative;align-self:end;min-width:0}.hero h1{font-size:47px;white-space:normal}.hero h1 span{font-size:.43em;letter-spacing:.04em}.hero p{font-size:13px}.section{padding:65px 20px}.section-head{display:block}.section-note{margin-top:14px}.therapist-grid,.service-grid,.flow-grid,.feature-grid{grid-template-columns:1fr}.therapist-grid{grid-template-columns:repeat(2,1fr);gap:10px}.therapist-card{border-radius:14px}.card-body{padding:12px}.card-name h3{font-size:18px}.card-name span,.tags{display:none}.card-actions{display:grid}.schedule-strip{overflow-x:auto;grid-template-columns:repeat(7,70px)}.schedule-row{grid-template-columns:52px 1fr auto;gap:10px;padding:10px}.schedule-row .avatar{width:48px;height:48px}.schedule-row>div:first-child{display:none}.schedule-row .button{grid-column:2/-1}.option-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.option-card{min-width:0;padding:6px;font-size:11px}.form-grid{grid-template-columns:1fr}.booking-shell{grid-template-columns:minmax(0,1fr);width:100%}.booking-main{min-width:0;padding:20px;border-radius:16px}.summary-box{position:static}.steps{overflow:hidden}.step{min-width:0;font-size:9px}.login-wrap{grid-template-columns:1fr}.login-side{padding:35px 25px}.login-form{padding:35px 25px}.detail-layout,.about-grid{grid-template-columns:1fr}.page-hero{padding:45px 20px}.page-hero h1{font-size:39px;overflow-wrap:anywhere}.page-hero p{font-size:13px}.dashboard{grid-template-columns:1fr}.dash-side{padding:14px;position:sticky;top:66px;z-index:5}.dash-brand,.dash-user{display:none}.dash-nav{display:flex;overflow-x:auto}.dash-nav button{font-size:11px;white-space:nowrap}.dash-nav button:before{display:none}.dash-main{padding:18px}.stats{grid-template-columns:1fr 1fr;gap:8px}.stat-card{padding:12px}.site-footer{grid-template-columns:1fr 1fr;padding:48px 22px}.site-footer>div:first-child,.site-footer>div:nth-child(4){grid-column:1/-1}.footer-bottom{display:grid;gap:5px}.floating-book{display:flex;position:fixed;left:14px;right:14px;bottom:12px;height:52px;border-radius:14px;background:var(--gold);color:#13231f;align-items:center;justify-content:center;gap:10px;font-weight:700;z-index:50;box-shadow:0 10px 35px rgba(0,0,0,.23)}.floating-book span{font-size:10px}.site-footer{padding-bottom:90px}}
