:root{--wine:#6b2335;--ink:#332b29;--muted:#776c67;--cream:#fbf8f2;--line:#ded5ca}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;line-height:1.9}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;width:100%;object-fit:cover}h1,h2,h3,p{margin:0 0 1em}h1,h2{font-family:'Yu Mincho','Hiragino Mincho ProN',serif;font-weight:500;line-height:1.55}h1{font-size:clamp(32px,4.2vw,58px)}h2{font-size:clamp(25px,2.6vw,36px)}h3{font-size:18px}p{color:var(--muted)}.wrap{width:min(1180px,90%);margin-inline:auto}.eyebrow{font-family:Arial,sans-serif;font-size:11px;letter-spacing:.22em;color:var(--wine);font-weight:600;margin-bottom:20px}.header-inner{display:flex;align-items:center;justify-content:space-between;padding:23px 0 18px}.brand{display:flex;align-items:center;gap:12px;color:var(--wine);font-family:Georgia,serif;font-size:35px;letter-spacing:.12em;line-height:1.1}.brand small{display:block;font-family:sans-serif;font-size:10px;letter-spacing:.1em;margin-top:9px}.gem{font-size:48px}.header-book{border-bottom:1px solid var(--wine);padding:5px 0;color:var(--wine);font-size:13px}nav{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:12px 0;font-size:12px}nav a{padding:3px 0}nav a[aria-current],nav a:hover{color:var(--wine);border-bottom:1px solid var(--wine)}header{border-bottom:1px solid var(--line)}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:65px;padding-block:62px 70px;align-items:center}.hero h1{letter-spacing:.04em;margin-bottom:28px}.hero em{font-style:normal;color:var(--wine)}.hero-copy>p:not(.eyebrow){font-size:14px}.location{display:inline-block;border:1px solid var(--line);padding:3px 13px;border-radius:30px}.hero-photo{position:relative;padding-bottom:28px}.hero-photo img{height:545px;border-radius:48% 48% 3px 3px;object-position:52% center;image-rendering:auto}.photo-tag{position:absolute;bottom:0;right:-18px;background:var(--wine);color:#fff;padding:23px 30px;font:28px Georgia;letter-spacing:.13em}.photo-tag small{font-size:11px;letter-spacing:.04em}.actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap;margin-top:25px}.button{background:var(--wine);color:white;display:inline-flex;justify-content:space-between;gap:30px;padding:14px 22px;font-size:13px;border:1px solid var(--wine);transition:.2s}.button:hover{background:#481526}.textlink{border-bottom:1px solid var(--wine);color:var(--wine);padding:8px 0;font-size:13px}.info-strip{border-block:1px solid var(--line)}.info-strip .wrap{display:flex;justify-content:space-between;gap:20px;padding:23px 0;font-size:14px}.info-strip small{font-size:11px;margin-left:12px}.section{padding-block:90px}.compact{padding-top:10px}.intro{display:grid;grid-template-columns:1fr 1.1fr;gap:100px;align-items:center}.intro img{height:440px;max-width:390px;object-position:center 45%}.intro p{font-size:14px}.tinted{background:#f1ece4}.section-title{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:36px}.section-title h2{margin:0}.prices{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);background:var(--cream)}.price{padding:30px}.price+.price{border-left:1px solid var(--line)}.price h2{font-size:23px}.price>p:not(.eyebrow){font-size:12px}.price dl{margin:26px 0 0}.price dl div{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:14px 0}.price dd{margin:0;font-family:Georgia,serif;color:var(--wine);font-size:25px}.price dt{font-size:13px;align-self:center}.note{font-size:12px;margin-top:20px}.team-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.team-preview img{height:340px;object-position:top}.team-preview span{display:block;padding:16px 0;border-bottom:1px solid var(--line);font-size:17px}.offer{background:#ece2dc;padding:45px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:90px}.offer h2{font-size:28px}.offer p:last-child{margin-bottom:0}.booking{background:var(--wine);color:white;padding:65px 0;text-align:center}.booking p{color:#e6cdd2}.booking .actions{justify-content:center}.booking .button{background:var(--cream);color:var(--wine)}.phone{font:28px Georgia,serif;white-space:nowrap}.booking h2{margin-bottom:14px}footer{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding-block:55px 20px}footer p{font-size:12px;margin-top:20px}.footer-nav{display:flex;flex-wrap:wrap;align-content:start;gap:15px 25px;font-size:12px}.copyright{grid-column:1/-1;border-top:1px solid var(--line);padding-top:15px;margin:0;font:11px Arial;letter-spacing:.05em}.mobile-book{display:none}.pagehead{padding-block:65px 45px}.pagehead h1{margin-bottom:20px}.pagehead p:last-child{font-size:14px}.notice{margin-top:45px;padding:35px;border-left:2px solid var(--wine);background:#f0e9e2}.notice h2{font-size:25px}.notice p{font-size:14px}.staff-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:45px 28px}.staff-grid img{height:390px;object-position:top}.staff-grid article>div{padding:23px 0;border-bottom:1px solid var(--line)}.staff-grid h2{margin-bottom:12px}.staff-grid p{font-size:13px;margin-bottom:0}.staff-grid .eyebrow{font-size:10px;margin-bottom:10px}.room-gallery{display:grid;grid-template-columns:1fr 1fr;gap:40px}.room-gallery figure{margin:0}.room-gallery img{height:480px}.room-gallery figcaption{padding:15px 0;font-size:13px}.room-gallery span{color:var(--wine);margin-right:15px}.treatment article{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center;margin-bottom:70px}.treatment img{height:360px}.treatment p{font-size:14px}.reading{max-width:760px}.reading>img{max-height:420px;margin-bottom:40px}.reading h2{font-size:27px;margin-top:35px}.reading p{font-size:15px}.campaign-card{border:1px solid var(--line);background:#f1e7e3;text-align:center;padding:60px;max-width:850px;margin:auto}.discount{font:80px Georgia;color:var(--wine);margin:25px 0}.discount small{display:block;font:14px sans-serif;margin-bottom:10px}.discount span{font-size:26px}.access-box{display:grid;grid-template-columns:1fr 1fr;gap:60px;background:#f0e9e2;padding:40px;margin-bottom:80px}.access-box h2{font-size:25px}.access-box img{height:245px;margin-bottom:20px}.access-box .phone{color:var(--wine)}.route{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.route img{height:240px;margin-bottom:20px}.route h3 span{color:var(--wine);margin-right:8px}.route p{font-size:13px}.link-list>a{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:28px 10px;gap:20px}.link-list>a:last-child{border-bottom:1px solid var(--line)}.link-list h2{font-size:25px;margin:0}.link-list p{font-size:12px;margin-bottom:5px}.link-list>a>span{font-size:30px;color:var(--wine)}.link-list>a:hover{background:#f0e9e2}.skip{position:absolute;left:10px;top:-100px;background:white;padding:10px;z-index:10}.skip:focus{top:10px}:focus-visible{outline:3px solid #bd8544;outline-offset:5px}
@media(max-width:900px){nav{gap:10px;flex-wrap:wrap;justify-content:center}.hero{gap:30px}.hero-photo img{height:470px}.intro{gap:45px}.price{padding:20px}.price h2{font-size:19px}.staff-grid img{height:320px}.offer{padding:30px}.route img{height:190px}}
@media(max-width:650px){body{padding-bottom:62px}.header-inner{padding-block:17px}.brand{font-size:28px}.brand small{font-size:9px}.gem{font-size:36px}.header-book{display:none}.menu-toggle{display:block;background:none;border:1px solid var(--line);font-size:12px;padding:7px 10px;color:var(--wine)}nav{display:none;padding:15px 0 20px}nav.open{display:grid;grid-template-columns:1fr 1fr;gap:12px 25px}.hero{grid-template-columns:1fr;padding-block:36px 35px;gap:30px}.hero h1{font-size:39px;line-height:1.5}.hero-copy>p:not(.eyebrow){font-size:13px}.eyebrow{font-size:10px;margin-bottom:14px}.hero-photo{margin-left:15%;padding-bottom:20px}.hero-photo img{height:320px;border-radius:42% 42% 2px 2px}.photo-tag{font-size:22px;right:-5px;padding:17px 20px}.actions{gap:20px}.info-strip .wrap{flex-wrap:wrap;gap:8px 20px;font-size:12px;padding-block:17px}.section{padding-block:55px}.compact{padding-top:5px}.intro{grid-template-columns:1fr;gap:30px}.intro img{height:320px;max-width:100%}.intro>div:first-child{width:80%}.prices{grid-template-columns:1fr}.price{padding:28px}.price+.price{border-left:0;border-top:1px solid var(--line)}.price h2{font-size:24px}.price dl{margin-top:16px}.price dl div{padding:9px 0}.section-title{display:block;margin-bottom:25px}.section-title .textlink{display:inline-block;margin-top:15px}.team-preview{gap:12px}.team-preview img{height:185px}.team-preview span{font-size:13px}.offer{display:block;margin-bottom:55px;padding:28px}.offer h2{font-size:25px}.offer p{font-size:13px}.offer .button{margin-top:24px}.booking{padding-block:45px}.booking .phone{font-size:25px}.booking .actions{flex-direction:column}.booking h2{font-size:25px}footer{grid-template-columns:1fr;gap:25px;padding-top:35px}.footer-nav{gap:12px 20px}.mobile-book{display:grid;grid-template-columns:1fr 1fr;position:fixed;bottom:0;left:0;right:0;z-index:5;box-shadow:0 -2px 15px #0001;background:var(--cream);padding-bottom:env(safe-area-inset-bottom)}.mobile-book a{padding:16px 4px;text-align:center;font-size:13px;color:var(--wine)}.mobile-book a:last-child{background:var(--wine);color:white}.pagehead{padding-block:40px 30px}.pagehead h1{font-size:32px}.staff-grid{grid-template-columns:1fr 1fr;gap:30px 16px}.staff-grid img{height:230px}.staff-grid h2{font-size:24px}.staff-grid p{font-size:11px}.room-gallery{gap:25px;grid-template-columns:1fr}.room-gallery img{height:390px}.treatment article{grid-template-columns:1fr;gap:25px;margin-bottom:45px}.treatment img{height:285px}.notice{padding:25px;margin-top:30px}.campaign-card{padding:35px 22px}.campaign-card h2{font-size:30px}.campaign-card p{font-size:14px}.campaign-card .discount{font-size:65px}.access-box{grid-template-columns:1fr;gap:30px;padding:25px;margin-bottom:50px}.access-box h2{font-size:23px}.route{grid-template-columns:1fr;gap:25px}.route img{height:260px}.link-list h2{font-size:21px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.staff-grid img,.team-preview img{height:auto;aspect-ratio:2/3;object-fit:cover;object-position:top}

/* Readability refinement — 2026-10-22 */
:root{--ink:#292321;--muted:#514640}
body{font-size:17px;line-height:1.95;font-weight:500}
h1,h2{font-weight:600}
.hero-copy>p:not(.eyebrow),.intro p,.pagehead p:last-child,.notice p,.treatment p,.reading p,.offer p,.campaign-card p:not(.discount),.route p{font-size:17px}
.price>p:not(.eyebrow),.staff-grid p,.link-list p,.room-gallery figcaption{font-size:16px}
.note,.campaign-card p.note,footer p{font-size:14px;line-height:1.9}
.eyebrow,.staff-grid .eyebrow{font-size:12px;letter-spacing:.15em;font-weight:700}
.brand small{font-size:12px}
nav{font-size:15px;flex-wrap:wrap;justify-content:center;gap:6px 24px}
nav a{padding:8px 0;font-weight:600}
.button,.textlink,.header-book,.footer-nav{font-size:16px;font-weight:600}
.button{line-height:1.65;align-items:center;min-height:50px}
.info-strip .wrap{font-size:16px;flex-wrap:wrap}.info-strip small{font-size:14px}
.price dt{font-size:16px}.price dd{font-size:29px;font-weight:600}
.team-preview span{font-size:18px;font-weight:600}
.booking p{color:#fff4f6}.photo-tag small{font-size:13px}
.copyright{font-size:12px}
@media(max-width:650px){
 body{font-size:16px;padding-bottom:calc(80px + env(safe-area-inset-bottom))}
 .hero-copy>p:not(.eyebrow),.intro p,.pagehead p:last-child,.notice p,.treatment p,.reading p,.offer p,.campaign-card p:not(.discount),.route p{font-size:16px}
 .staff-grid p{font-size:15px}.staff-grid .eyebrow{font-size:12px}
 .menu-toggle{font-size:15px;font-weight:600;min-height:44px;padding:8px 12px}
 .brand small{font-size:10px}.header-inner{gap:12px}
 nav.open{gap:6px 14px}nav a{min-height:44px;display:flex;align-items:center}
 .mobile-book a{font-size:15px;font-weight:700;min-height:56px;display:flex;align-items:center;justify-content:center;padding:14px 6px}
 .team-preview span{font-size:16px}.price h2{font-size:25px}
 .hero h1{font-size:clamp(30px,8.8vw,39px)}
 .button{max-width:100%;gap:18px}
}
@media(max-width:380px){.staff-grid{grid-template-columns:1fr}.brand{gap:6px}.gem{font-size:30px}.menu-toggle{font-size:14px}}
