/* =========================================================
   京町家ステイ「кото」 — 制作サンプル
   型: Airbnb（写真主導・カード・予約サイドバー）
   配色: 白 × 墨 × 朱(vermillion) / 明るく親しみ
   ========================================================= */
:root{
  --ink:#1f1d1b;--sub:#6b6660;--line:#e6e1d8;--bg:#fff;--cream:#faf7f1;
  --shu:#c1473e;--shu-d:#a4392f;--gold:#b8924e;--radius:16px;
  --shadow:0 10px 30px -14px rgba(0,0,0,.18);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN",system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.8;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}a{color:inherit;text-decoration:none}
h1,h2,h3{font-weight:700;line-height:1.4}
.wrap{width:min(1120px,92vw);margin-inline:auto}

.nav{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:66px}
.brand{font-weight:700;font-size:1.25rem;letter-spacing:.04em}
.brand b{color:var(--shu)}
.nav-links{display:flex;gap:1.6em;font-size:.92rem;color:var(--sub)}
.nav-links a:hover{color:var(--ink)}
.nav .resv{background:var(--shu);color:#fff;padding:.55em 1.3em;border-radius:999px;font-weight:700;font-size:.9rem}
.nav .resv:hover{background:var(--shu-d)}
@media(max-width:760px){.nav-links{display:none}}

/* hero head */
.head{padding:34px 0 14px}
.head .ttl{font-size:clamp(1.6rem,3.5vw,2.5rem)}
.head .meta{display:flex;gap:1.2em;flex-wrap:wrap;color:var(--sub);font-size:.95rem;margin-top:.5em}
.head .meta .star{color:var(--shu);font-weight:700}

/* photo gallery */
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:8px;height:62vh;min-height:380px;margin:18px 0 6px;border-radius:var(--radius);overflow:hidden}
.gallery img{width:100%;height:100%;object-fit:cover}
.gallery .big{grid-row:1/3}
@media(max-width:760px){.gallery{grid-template-columns:1fr 1fr;height:auto}.gallery .big{grid-column:1/3;grid-row:auto;aspect-ratio:16/10}.gallery img{aspect-ratio:1/1}}

/* body 2col */
.layout{display:grid;grid-template-columns:1fr 360px;gap:60px;padding:40px 0 90px;align-items:start}
@media(max-width:900px){.layout{grid-template-columns:1fr}}
.sec{padding:30px 0;border-top:1px solid var(--line)}
.sec:first-child{border-top:none}
.sec h2{font-size:1.4rem;margin-bottom:.6em}
.sec p{color:#43403b}
.amen{display:grid;grid-template-columns:1fr 1fr;gap:14px 24px;margin-top:1em}
.amen .a{display:flex;align-items:center;gap:.6em;font-size:.98rem}
.amen .a .i{width:34px;height:34px;border-radius:10px;background:var(--cream);display:grid;place-items:center;font-size:1.1rem;flex:none}
.feat-list{list-style:none;display:flex;flex-direction:column;gap:.7em;margin-top:1em}
.feat-list li{padding-left:1.4em;position:relative;color:#43403b}
.feat-list li::before{content:"●";color:var(--shu);position:absolute;left:0;font-size:.6em;top:.5em}

/* booking card (Airbnb sticky) */
.book{position:sticky;top:90px;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:26px}
.book .price{font-size:1.6rem;font-weight:700}.book .price small{font-size:.95rem;font-weight:400;color:var(--sub)}
.book .row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:.95rem}
.book .row:last-of-type{border-bottom:none}
.book .btn{display:block;text-align:center;background:var(--shu);color:#fff;font-weight:700;padding:.95em;border-radius:12px;margin-top:14px;font-size:1.05rem}
.book .btn:hover{background:var(--shu-d)}
.book .note{text-align:center;color:var(--sub);font-size:.82rem;margin-top:10px}

/* location strip */
.loc{background:var(--cream);padding:70px 0}
.loc h2{font-size:1.4rem;margin-bottom:.6em}
.loc .map{margin-top:18px;border-radius:var(--radius);overflow:hidden;aspect-ratio:21/9;background:#ddd}
.loc .map img{width:100%;height:100%;object-fit:cover}

.foot{background:#1f1d1b;color:#b8b1a6;padding:40px 0 56px;font-size:.82rem;line-height:1.8}
.foot .b{color:#fff;font-weight:700;font-size:1.05rem;margin-bottom:.6em}
.foot a{color:var(--gold)}
.foot .disc{border-top:1px solid #38332c;margin-top:16px;padding-top:16px;color:#8a8275}

.rv{opacity:0;transform:translateY(20px);transition:.7s cubic-bezier(.2,.7,.2,1)}.rv.in{opacity:1;transform:none}
