:root { --navy:#123f78; --ink:#172235; --paper:#fff; --mist:#f4f7fb; --line:#dce4ef; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--mist); font-family:Arial,"Noto Sans KR","Noto Sans JP","Microsoft YaHei",sans-serif; }
.shell { max-width:760px; margin:0 auto; min-height:100vh; background:var(--paper); }
.hero { height:220px; background:#123f78 url('kimi-ryokan-header.png') center/cover no-repeat; }
.content { padding:28px 22px 42px; }
.home-title { font-size:clamp(1.6rem,7vw,2.2rem); text-align:center; margin:0 0 10px; letter-spacing:.02em; }
.home-copy { color:#5b6677; text-align:center; margin:0 0 28px; }
.languages { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.language { border:0; background:var(--navy); color:white; border-radius:10px; min-height:56px; font-size:1rem; font-weight:700; cursor:pointer; }
.back { appearance:none; border:1px solid var(--line); background:white; color:var(--navy); padding:10px 14px; border-radius:8px; font-weight:700; cursor:pointer; margin-bottom:22px; }
.page-title { font-size:clamp(1.7rem,7vw,2.35rem); margin:0 0 20px; color:var(--navy); }
.section { padding:18px 0; border-bottom:1px solid var(--line); }
.section h2 { margin:0 0 9px; font-size:1.25rem; color:var(--navy); }
.section.notice { margin:18px 0; padding:18px; border:2px solid #c9363f; border-radius:10px; background:#fff4f4; }
.section.notice h2 { color:#a61f2a; }
.section.notice p { color:#571c21; font-weight:600; }
.icon { display:inline-block; width:1.05em; height:1.05em; margin-right:.28em; vertical-align:-.12em; position:relative; color:var(--navy); }
.icon-laundry { border:2px solid currentColor; border-radius:2px; }
.icon-laundry::before { content:'●'; position:absolute; font-size:.18em; top:1px; left:2px; }
.icon-laundry::after { content:''; position:absolute; width:.52em; height:.52em; left:50%; top:55%; transform:translate(-50%,-50%); border:2px solid currentColor; border-radius:50%; }
.icon-fridge { border:2px solid currentColor; border-radius:2px; }
.icon-fridge::before { content:''; position:absolute; left:1px; right:1px; top:47%; border-top:2px solid currentColor; }
.icon-fridge::after { content:''; position:absolute; width:2px; height:.3em; right:2px; top:12%; background:currentColor; box-shadow:0 .48em 0 currentColor; }
.section p { margin:0; line-height:1.7; white-space:pre-line; }
.menu-link { display:inline-flex; align-items:center; gap:.45em; margin-top:13px; padding:9px 13px; border:1px solid var(--navy); border-radius:8px; color:var(--navy); font-weight:700; line-height:1; text-decoration:none; }
.menu-link:hover, .menu-link:focus-visible { color:white; background:var(--navy); }
.menu-link-icon { display:inline-grid; place-items:center; width:1.25em; height:1.25em; border:1px solid currentColor; border-radius:50%; font-size:.9em; }
.floor-grid { display:grid; gap:10px; margin-top:12px; }
.floor-card { display:grid; grid-template-columns:58px 1fr; gap:13px; align-items:center; padding:14px; border-radius:10px; background:var(--mist); border:1px solid var(--line); }
.floor-no { color:var(--navy); font-size:1.15rem; font-weight:800; text-align:center; }
.floor-items { line-height:1.55; font-size:.96rem; font-weight:700; }
.footer { padding:22px; color:#6d7786; text-align:center; font-size:.82rem; }
@media (min-width:700px) { .hero { height:260px; } .content { padding:34px 42px 50px; } }
