
:root{--ink:#354237;--accent:#357c65;--paper:#fafbf7;--soft:#edf3eb;--line:#d5dfd5;--serif:"Yu Mincho","Hiragino Mincho ProN",serif;--sans:"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:var(--paper);color:var(--ink);font:14px/2 var(--sans);-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}h1,h2,h3{font:400 30px/1.65 var(--serif);letter-spacing:.08em}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}[hidden]{display:none!important}.skip{position:fixed;top:-80px;left:15px;padding:10px;background:white;z-index:100}.skip:focus{top:10px}.header{height:80px;position:relative;display:flex;align-items:center;justify-content:center;padding:0 24px;background:white;z-index:20}.brand{display:flex;align-items:center;gap:14px;font:26px/1.5 var(--serif);letter-spacing:.2em}.sun{font:36px/1 Georgia;color:#ac8243}.header nav{position:absolute;right:4%;display:flex;gap:26px;font-size:11px}.header nav a:hover{color:var(--accent)}.toggle{display:none}.photo-block{position:relative;isolation:isolate;overflow:hidden;min-height:540px}.photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.2s ease}.overlay{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#fff9,transparent 75%)}.hero{height:calc(100svh - 80px);min-height:580px;max-height:1150px}.hero .photo{object-position:center;animation:arrive 1.5s ease-out both}.hero-content{position:absolute;left:8%;bottom:22%}.hero h1{font-size:clamp(35px,4vw,58px);line-height:1.5;margin-bottom:28px;letter-spacing:.1em}.button{display:inline-flex;align-items:center;justify-content:center;gap:35px;padding:11px 28px;min-width:235px;border:1px solid var(--accent);border-radius:40px;color:var(--accent);background:#ffffffed;font-size:12px;letter-spacing:.08em;transition:background .3s,color .3s}.button:hover{color:white;background:var(--accent)}.button span{transition:transform .3s}.button:hover span{transform:translateX(5px)}.scroll{position:absolute;bottom:0;left:8%;display:flex;gap:14px;align-items:center;font-size:8px;letter-spacing:.2em}.scroll i{width:1px;height:45px;background:var(--accent);animation:cue 3s infinite}.photo-copy{position:relative;padding:135px 8%;max-width:750px}.eyebrow{font-size:9px;letter-spacing:.25em;margin-bottom:20px;color:var(--accent)}h2{font-size:clamp(28px,3vw,42px)}.photo-copy>p:not(.eyebrow){font-size:13px;margin-top:22px;line-height:2.3}.consultation,.room{height:72svh;min-height:560px;max-height:900px}.consultation .photo{object-position:65% center}.room .photo{object-position:center}.text-link{display:inline-flex;gap:35px;font-size:11px;border-bottom:1px solid var(--accent);padding-bottom:6px;margin-top:28px}.section{padding:110px 8%}.intro{position:relative;text-align:center;overflow:hidden;background:var(--soft)}.intro:before{content:"";position:absolute;width:450px;height:450px;right:-230px;top:-240px;border:1px solid var(--line);border-radius:50%;animation:drift 12s ease-in-out infinite}.intro>div{position:relative}.intro>div>p:not(.eyebrow){margin-top:25px;font-size:13px;line-height:2.6}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:35px;margin-bottom:50px}.section-head>p{font-size:12px;color:#75796f}.service-list{border-top:1px solid var(--line)}.service{display:grid;grid-template-columns:1fr 1.8fr 30px;gap:35px;align-items:center;padding:32px 0;border-bottom:1px solid var(--line);transition:transform .3s,background .3s}.service:hover{transform:translateX(5px)}.service h3{font-size:23px}.service p{font-size:12px;color:#6a7066}.service a{font-size:24px}.flow{background:var(--soft)}.steps{display:grid;grid-template-columns:repeat(3,1fr);list-style:none;margin:0;padding:0;gap:35px}.steps li{border-top:1px solid var(--line);padding-top:25px}.steps span{font:32px Georgia;color:var(--accent)}.steps h3{font-size:21px;margin:18px 0 12px}.steps p{font-size:12px;color:#6a7066}.faq{display:grid;grid-template-columns:1fr 1.5fr;gap:55px}.faq-list{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 0;font-size:12px}summary::-webkit-details-marker{display:none}summary span{width:12px;height:12px;position:relative;flex-shrink:0}summary span:before,summary span:after{content:"";position:absolute;top:5px;left:0;width:12px;height:1px;background:var(--accent)}summary span:after{transform:rotate(90deg);transition:transform .3s}details[open] summary span:after{transform:none}details p{padding:0 20px 24px 0;font-size:12px;color:#6a7066}.reservation{min-height:610px;text-align:center;display:flex;align-items:center;justify-content:center;padding:90px 25px}.reservation .overlay{background:#ffffffe0}.reservation-copy>p:not(.eyebrow){margin:22px 0}.reservation .button{margin-top:10px}.reservation .demo-note{font-size:9px;color:#73776d;max-width:380px;margin:23px auto 0}.feedback{font-size:12px}footer{text-align:center;padding:60px 25px 40px;background:#fff}footer .brand{justify-content:center}.footer-links{display:flex;gap:30px;justify-content:center;font-size:11px;margin:25px 0}footer>p,small{font-size:9px;color:#90938b}small{letter-spacing:.1em}.floating{position:fixed;z-index:25;right:22px;bottom:22px;border-radius:40px;background:var(--accent);color:white;padding:13px 25px;font-size:11px;box-shadow:0 5px 20px #0002}.floating span{margin-left:25px}.js .reveal.pending{opacity:0;transform:translateY(25px)}.js .reveal{transition:opacity .8s,transform .8s}@keyframes arrive{from{transform:scale(1.035)}to{transform:scale(1)}}@keyframes drift{50%{transform:translate(-20px,20px)}}@keyframes cue{50%{opacity:.35}}
body.shiraniwa{--ink:#514b40;--accent:#7b6850;--paper:#faf8f3;--soft:#eeebe4;--line:#dad4c8}.shiraniwa .brand{font-size:23px;letter-spacing:.2em}.shiraniwa .hero,.shiraniwa .consultation,.shiraniwa .room{color:#fff}.shiraniwa .hero .overlay,.shiraniwa .consultation .overlay,.shiraniwa .room .overlay{background:linear-gradient(90deg,#211a1285,transparent 85%)}.shiraniwa .photo-copy .eyebrow{color:#e4d9c5}.shiraniwa .hero .button{border-color:#fff;background:transparent;color:#fff}.shiraniwa .hero .button:hover{background:white;color:var(--ink)}.shiraniwa .scroll{color:white}.shiraniwa .scroll i{background:white}.shiraniwa .text-link{border-color:#fff}.shiraniwa .hero-content{bottom:20%}.shiraniwa .reservation .overlay{background:#f3efe8ed}
@media(max-width:1100px){.header nav{gap:18px;font-size:10px;right:24px}.brand{font-size:23px}.shiraniwa .brand{font-size:20px}.section{padding:90px 6%}.photo-copy{padding:125px 6%}.section-head{display:block}.section-head>p{margin-top:20px}}
@media(max-width:900px){.header{height:75px}.header nav{display:none;position:absolute;top:75px;left:0;right:0;background:#fff;padding:20px 25px;flex-direction:column;gap:0;box-shadow:0 15px 20px #0001}.header nav.open{display:flex}.header nav a{padding:13px 0;border-bottom:1px solid var(--line);font-size:12px}.toggle{display:flex;position:absolute;right:14px;top:17px;width:40px;height:40px;flex-direction:column;justify-content:center;gap:6px;border:0;background:none;padding:8px}.toggle span{height:1px;width:24px;background:var(--ink);transition:transform .3s}.toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.hero{height:calc(100svh - 75px)}}
@media(max-width:760px){html{scroll-padding-top:75px}.header{padding:0 55px 0 15px}.brand{font-size:22px;gap:10px;letter-spacing:.12em}.sun{font-size:28px}.shiraniwa .brand{font-size:18px;letter-spacing:.12em}.hero{min-height:550px;max-height:1000px}.hero .photo{object-position:62% center}.hero .overlay{background:linear-gradient(0deg,#fffffff2,transparent 80%)}.hero-content{left:26px;right:20px;bottom:15%}.hero h1{font-size:36px;letter-spacing:.08em}.button{font-size:11px;min-width:220px;padding:12px 23px}.scroll{left:26px}.consultation,.room{height:80svh;min-height:580px;max-height:850px}.consultation .photo{object-position:68% center}.room .photo{object-position:67% center}.photo-copy{position:absolute;bottom:65px;padding:0 26px;left:0;right:0}.photo-copy h2{font-size:31px}.photo-copy>p:not(.eyebrow){font-size:12px;margin-top:20px}.overlay{background:linear-gradient(0deg,#fffffff2,transparent 90%)}.eyebrow{font-size:8px;margin-bottom:17px}.section{padding:75px 26px}h2{font-size:30px}.intro>div>p:not(.eyebrow){font-size:12px;line-height:2.6}.section-head{margin-bottom:35px}.section-head>p{font-size:11px}.service{grid-template-columns:1fr 30px;gap:12px;padding:26px 0}.service h3{font-size:23px;grid-column:1}.service p{grid-column:1;grid-row:2;font-size:12px}.service a{grid-column:2;grid-row:1/3}.steps{grid-template-columns:1fr;gap:26px}.steps li{position:relative;padding-left:45px}.steps span{position:absolute;top:25px;left:0;font-size:26px}.steps h3{margin:0 0 12px}.faq{grid-template-columns:1fr;gap:30px}summary{font-size:11px}.reservation{min-height:540px;padding:80px 26px}.reservation h2{font-size:31px}.reservation-copy>p:not(.eyebrow){font-size:12px}.reservation .demo-note{max-width:270px;font-size:9px}footer{padding-bottom:95px}.floating{right:16px;bottom:max(16px,env(safe-area-inset-bottom));font-size:11px}.shiraniwa .hero-content{bottom:15%}.shiraniwa .hero .overlay,.shiraniwa .consultation .overlay,.shiraniwa .room .overlay{background:linear-gradient(0deg,#211a12cc,transparent 90%)}.shiraniwa .hero .photo{object-position:57% center}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.photo-block:not(.hero):hover .photo{transform:scale(1.025)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js .reveal.pending{opacity:1;transform:none}}
