:root{color:#302a25;font-synthesis:none;--ink:#302a25;--brown:#674d3e;--sand:#e9dfd2;--cream:#f6f0e8;--accent:#92664e;--green:#4f7861;--red:#a04f49;background:#faf8f4;font-family:Hiragino Kaku Gothic ProN,Yu Gothic,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}a{color:inherit}header{z-index:20;min-height:72px;padding:12px max(20px,50vw - 540px);padding-top:max(12px,env(safe-area-inset-top));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#faf8f4f0;border-bottom:1px solid #ded5ca;justify-content:space-between;align-items:center;gap:20px;display:flex;position:sticky;top:0}.brand{line-height:.95;text-decoration:none}.brand span{letter-spacing:.3em;font-family:serif;font-size:12px;display:block}.brand strong{letter-spacing:.08em;font-family:serif;font-size:23px}header nav{gap:20px;display:flex}header nav a{font-size:14px;font-weight:700;text-decoration:none}main{width:min(1080px,100%);min-height:70vh;margin:auto;padding:48px 24px 90px}footer{padding:28px max(24px,50vw - 540px);padding-bottom:max(28px,env(safe-area-inset-bottom));background:var(--ink);color:#fff;justify-content:space-between;font-size:13px;display:flex}.hero{grid-template-columns:1fr 1.1fr;align-items:center;gap:50px;min-height:55vh;display:grid}.hero h1{margin:12px 0;font-family:serif;font-size:clamp(36px,5vw,64px);font-weight:500;line-height:1.45}.eyebrow,.section-title span{color:var(--accent);letter-spacing:.18em;font-size:12px;font-weight:800}.section-title{text-align:center;margin:70px 0 26px}.section-title h1,.section-title h2{margin:8px;font-family:serif;font-size:34px;font-weight:500}.gallery{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.hero .gallery{grid-template-columns:1fr}.gallery figure{background:var(--sand);border-radius:4px;min-height:190px;margin:0;position:relative;overflow:hidden}.gallery img{object-fit:cover;width:100%;height:100%;min-height:190px;display:block}.gallery figcaption{color:#fff;background:linear-gradient(#0000,#0009);padding:24px 12px 10px;font-size:13px;position:absolute;bottom:0;left:0;right:0}.photo-empty{background:var(--cream);color:#756b63;text-align:center;border:1px dashed #b9ab9d;place-items:center;min-height:280px;padding:30px;display:grid}.plans{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.plans article{background:#fff;border:1px solid #d9cfc4;flex-direction:column;min-height:210px;padding:22px;display:flex}.plans h3{min-height:48px;margin:0;font-family:serif;font-size:20px}.plans p{flex-wrap:wrap;align-items:baseline;gap:12px;margin:15px 0;display:flex}.plans p strong{font-size:16px}.plans p b{font-family:serif;font-size:25px}.plans small{color:#71675f;line-height:1.6}.plans button{background:var(--cream);color:var(--brown);border:0;margin-top:auto;padding:11px;font-weight:700}.actions{justify-content:center;gap:14px;margin:42px 0;display:flex}.button,.inline-form button,.admin-card button,.detail-actions button{border:1px solid var(--brown);background:var(--brown);color:#fff;border-radius:2px;justify-content:center;align-items:center;min-height:48px;padding:12px 20px;font-weight:700;text-decoration:none;display:inline-flex}.button.secondary{color:var(--brown);background:0 0}.button:disabled,button:disabled{opacity:.45}.reservation-head{text-align:center}.reservation-head>.gallery{margin:-20px 0 40px}.reservation-head>.section-title{margin-top:30px}.calendar-wrap{background:#fff;border:1px solid #ded5ca;margin:36px 0;padding:24px}.calendar-nav{text-align:center;grid-template-columns:48px 1fr 48px;align-items:center;display:grid}.calendar-nav h2{font-family:serif;font-weight:500}.calendar-nav button{background:var(--cream);border:0;height:44px;font-size:28px}.legend{flex-wrap:wrap;justify-content:center;align-items:center;gap:7px;margin:12px 0 20px;font-size:12px;display:flex}.legend i{border-radius:50%;width:11px;height:11px;margin-left:8px}.legend .available,.calendar-grid .available{background:#e1efe5}.legend .partial,.calendar-grid .partial{background:#fff0cb}.legend .full,.calendar-grid .full{background:#f2dddd}.legend .unset,.calendar-grid .unset{background:#eeece9}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:5px;display:grid}.calendar-grid>div{text-align:center;padding:6px;font-size:12px}.calendar-grid>button,.calendar-grid>span{text-align:left;background:#f6f4f1;border:1px solid #0000;min-height:84px;padding:7px}.calendar-grid button b{font-size:16px;display:block}.calendar-grid button small{margin-top:8px;font-size:10px;line-height:1.25;display:block}.calendar-grid button.selected{outline:3px solid var(--accent)}.calendar-grid button.past{color:#aaa;background:#fafafa}.form-card,.admin-card{background:#fff;border:1px solid #d9cfc4;width:min(680px,100%);margin:30px auto;padding:28px;box-shadow:0 12px 32px #48352912}.form-card h2,.admin-card h2{font-family:serif;font-weight:500}.form-card label,.admin-card label,.inline-form label,.month-input label,.filter{gap:7px;margin:16px 0;font-size:14px;font-weight:700;display:grid}.form-card input,.form-card select,.form-card textarea,.admin-card input,.admin-card select,.inline-form input,.month-input input,.filter select,.photo-admin-list input,.photo-admin-list select{background:#fff;border:1px solid #b9afa6;border-radius:2px;width:100%;min-height:48px;padding:10px 12px}.form-card textarea{resize:vertical;min-height:100px}.summary{background:var(--cream);gap:6px;padding:15px;display:grid}.success,.alert{border-left:4px solid var(--green);background:#edf5ef;padding:15px 18px}.alert{border-color:var(--red);color:#6f2925;background:#faeae8}.login{margin-top:70px}.admin-tabs{z-index:10;background:#eee7df;grid-template-columns:repeat(3,1fr);margin:20px 0;display:grid;position:sticky;top:72px}.admin-tabs button{background:0 0;border:0;min-height:52px;font-weight:700}.admin-tabs button.active{background:var(--brown);color:#fff}.month-input{max-width:240px}.admin-days{background:#fff;grid-template-columns:repeat(7,1fr);gap:5px;padding:12px;display:grid}.admin-days button{background:#f5f2ef;border:1px solid #ddd3c8;min-height:68px}.admin-days button.candidate{background:#f5eadb}.admin-days button.selected{outline:3px solid var(--accent)}.admin-days b,.admin-days small{display:block}.admin-days small{font-size:9px}.slot-row{border-bottom:1px solid #eee;grid-template-columns:1.2fr 1fr auto auto auto;align-items:center;gap:7px;padding:10px 0;display:grid}.slot-row button,.photo-admin-list button{background:#fff;border:1px solid #b8a99d;min-height:40px}.danger{color:#8b2b28!important;border-color:#cfaaa7!important}.inline-form{grid-template-columns:1fr 1fr auto;align-items:end;gap:12px;margin-top:20px;display:grid}.reservation-list{gap:9px;display:grid}.reservation-list>button{text-align:left;background:#fff;border:1px solid #d9cfc4;gap:4px;padding:16px;display:grid}.reservation-list>button span{color:#725e50}.reservation-list>button small{color:#776c64}.modal{z-index:50;background:#201915b3;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-card{background:#fff;width:min(620px,100%);max-height:90vh;padding:28px;position:relative;overflow:auto}.modal-close{background:0 0;border:0;width:44px;height:44px;font-size:30px;position:absolute;top:10px;right:10px}.modal dl{grid-template-columns:120px 1fr;gap:8px 14px;display:grid}.modal dt{color:#766a62}.modal dd{overflow-wrap:anywhere;margin:0}.detail-actions{flex-wrap:wrap;gap:8px;margin-top:24px;display:flex}.detail-actions a{padding:13px}.photo-admin-list{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.photo-admin-list article{background:#fff;border:1px solid #ddd3c8;gap:8px;padding:10px;display:grid}.photo-admin-list img{aspect-ratio:4/3;object-fit:cover;width:100%}.photo-admin-list article>div{gap:5px;display:flex}.integration{background:var(--cream);flex-wrap:wrap;gap:14px;margin:30px 0;padding:15px;display:flex}.text-button{background:0 0;border:0;min-height:44px;text-decoration:underline}@media (width<=760px){header{min-height:64px}header nav a:first-child{display:none}header nav{gap:10px}main{padding:28px 14px 70px}.hero{grid-template-columns:1fr;gap:25px;min-height:auto}.hero h1{font-size:40px}.hero .photo-empty{min-height:220px}.gallery{grid-template-columns:1fr;grid-auto-columns:82%;grid-auto-flow:column;overflow:auto}.gallery figure{min-height:220px}.plans{scroll-snap-type:x mandatory;padding-bottom:10px;display:flex;overflow-x:auto}.plans article{scroll-snap-align:start;min-width:78vw}.actions{flex-direction:column}.calendar-wrap{border-left:0;border-right:0;margin-inline:-14px;padding:12px 6px}.calendar-grid{gap:2px}.calendar-grid>button,.calendar-grid>span{min-height:66px;padding:4px}.calendar-grid button small{margin-top:4px;font-size:8px}.form-card,.admin-card{padding:20px}.admin-tabs{top:64px}.admin-days{gap:2px;padding:4px}.admin-days button{min-height:58px;padding:2px}.slot-row{grid-template-columns:1fr 1fr}.slot-row button{min-height:44px}.inline-form{grid-template-columns:1fr 1fr}.inline-form button{grid-column:1/-1}.photo-admin-list{grid-template-columns:1fr}.modal{padding:0}.modal-card{width:100%;height:100%;max-height:none;padding:25px 18px}.modal dl{grid-template-columns:1fr}.modal dt{margin-top:8px}.detail-actions>*{flex:45%}footer{padding-bottom:max(28px,env(safe-area-inset-bottom))}}.detail-edit{grid-template-columns:1fr 1fr;gap:12px;display:grid}.detail-edit label{gap:5px;font-size:13px;font-weight:700;display:grid}.detail-edit input,.detail-edit select,.detail-edit textarea{border:1px solid #b9afa6;min-height:45px;padding:9px}.detail-edit textarea{min-height:80px}.detail-edit .detail-actions{grid-column:1/-1}@media (width<=760px){.detail-edit{grid-template-columns:1fr}}.admin-notifications{background:#fff9fb;border:1px solid #d7b5c1;border-radius:14px;margin:0 0 18px;padding:12px}.admin-notifications>summary{cursor:pointer;align-items:center;gap:8px;min-height:44px;list-style:none;display:flex}.admin-notifications>summary::-webkit-details-marker{display:none}.admin-notifications>summary>b{color:#fff;background:#b5144c;border-radius:999px;place-items:center;min-width:24px;height:24px;padding:0 5px;font-size:12px;display:grid}.admin-notifications article{border-top:1px solid #ead8de}.admin-notifications article.read{opacity:.65}.admin-notifications article a{color:inherit;gap:4px;padding:12px 2px;text-decoration:none;display:grid}.admin-notifications article small,.admin-notifications article span{font-size:12px;line-height:1.5;display:block}.admin-notifications .text-button{margin:4px 0 8px}.studio-main-banner{background:#2b0f1f;border-radius:14px;margin:-24px 0 44px;line-height:0;overflow:hidden;box-shadow:0 16px 36px #36152533}.studio-main-banner img{aspect-ratio:3;object-fit:contain;width:100%;height:auto;display:block}.main-visual{background:#20151d;border-radius:8px;margin:0;position:relative;overflow:hidden;box-shadow:0 16px 36px #36152533}.main-visual img{aspect-ratio:4/3;object-fit:contain;width:100%;height:auto;display:block}.main-visual figcaption{color:#fff;background:linear-gradient(#0000,#000000ad);padding:34px 14px 12px;font-size:13px;position:absolute;bottom:0;left:0;right:0}.reservation-photo-gallery{align-items:start;margin:0 auto 40px}.reservation-photo-gallery figure{aspect-ratio:3/4;background:#20151d;min-height:0}.reservation-photo-gallery img{object-fit:contain;object-position:center;min-height:0}.current-hero img{border-radius:6px;width:min(100%,560px);height:auto;margin-top:12px;display:block}.photo-help{color:var(--muted);font-size:13px}.photo-upload-status{min-height:48px;color:var(--ink);background:#fff7fa;border:1px solid #e4c2cf;border-radius:8px;margin:4px 0;padding:13px 14px 13px 44px;font-size:14px;font-weight:700;position:relative}.photo-upload-status:before{border:3px solid #ead2dc;border-top-color:var(--accent);content:"";border-radius:50%;width:16px;height:16px;animation:.8s linear infinite photo-upload-spin;position:absolute;top:14px;left:15px}.photo-upload-status.done{background:#edf8ef;border-color:#83b28b}.photo-upload-status.done:before{color:#31723d;content:"✓";border:0;width:auto;height:auto;font-size:20px;line-height:16px;animation:none}@keyframes photo-upload-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.photo-upload-status:before{animation-duration:1.8s}}.photo-admin-list article.is-hero{border:2px solid var(--accent)}.photo-admin-list article>b{font-size:13px}.soranimitsu-footer-link{border-radius:10px;align-items:center;min-width:48px;min-height:48px;padding:4px;display:inline-flex}.soranimitsu-footer-link:focus-visible{outline-offset:3px;outline:3px solid #fff}.soranimitsu-footer-link img{object-fit:contain;width:min(160px,44vw);height:auto;max-height:64px;display:block}.admin-calendar-heading{gap:10px;margin-top:14px;display:grid}.admin-calendar-heading .calendar-nav{margin:0}.admin-calendar-heading .month-input{gap:6px;max-width:240px;font-size:13px;font-weight:700;display:grid}.availability-policy{border-left:4px solid var(--accent);background:#fff8f2;margin:12px 0;padding:10px 12px;font-size:13px}.admin-days,.admin-days>*{min-width:0}.admin-days .weekday{color:var(--muted);text-align:center;padding:7px 0;font-size:12px;font-weight:800}.admin-days .empty-day{min-height:68px}.admin-days button.published{background:#e5f3e9;border-color:#70a57a}.admin-days button.configured{background:#fff4de}.admin-days button:disabled{opacity:.42}.empty-slots{color:var(--muted);font-size:13px}.availability-form select{min-height:48px;font-size:16px}.reservation-tools{grid-template-columns:minmax(160px,.6fr) minmax(240px,1fr);align-items:end;gap:12px;margin:16px 0;display:grid}.reservation-tools label{gap:7px;margin:0;font-size:14px;font-weight:700;display:grid}.reservation-tools input,.reservation-tools select{min-height:48px}.reservation-list small{overflow-wrap:anywhere}.reservation-list em.status{color:var(--ink);background:#f2e8dc;border-radius:999px;padding:2px 7px;font-style:normal;font-weight:800;display:inline-block}.reservation-list em.status.confirmed{background:#dcefe2}.reservation-list em.status.cancelled,.reservation-list em.status.rejected{background:#eee}#reservation-form{scroll-margin-top:16px}@media (width<=760px){.studio-main-banner{border-radius:0 0 12px 12px;margin:-28px -14px 30px}.main-visual{border-radius:0;margin-left:-14px;margin-right:-14px}.reservation-photo-gallery{grid-auto-columns:84%;margin-left:-14px;margin-right:-14px;padding:0 14px 8px}.reservation-photo-gallery figure{min-height:0}footer{align-items:center;gap:16px}.admin-days .empty-day{min-height:58px}.admin-days button small{font-size:8px;line-height:1.15}.availability-form{grid-template-columns:1fr 1fr}.availability-form button{grid-column:1/-1;min-height:50px}.reservation-tools{grid-template-columns:1fr}}
