.villa-heading{ min-width:0; }
.villa-heading p{ margin:0 0 2px; color:var(--text-faint); font:10px/1.2 var(--font-en),var(--font-cn); letter-spacing:.14em; }
.villa-heading h2{ margin:0; color:var(--text); font:500 17px/1.2 var(--font-en),var(--font-cn); }
.villa-scroll,.villa-room-scroll{ width:100%; max-width:800px; margin:0 auto; gap:16px; padding-bottom:calc(96px + env(safe-area-inset-bottom)); }
.villa-intro,.villa-room-intro{ padding:4px 4px 10px; }
.villa-intro p,.villa-room-intro p{ margin:0; color:var(--text-faint); font:9.5px/1.2 var(--font-en),var(--font-cn); letter-spacing:.15em; }
.villa-intro h1,.villa-room-intro h1{ max-width:19em; margin:8px 0 9px; color:var(--text); font:500 clamp(27px,5vw,38px)/1.18 var(--font-en),var(--font-cn); }
.villa-intro span,.villa-room-intro span{ display:block; max-width:48em; color:var(--text-soft); font-size:12.5px; line-height:1.7; }
.villa-map{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.villa-room-card{ display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:13px; min-height:126px; padding:18px; border:1px solid var(--card-line); border-radius:20px; background:var(--card-bg); color:var(--text); box-shadow:var(--soft-shadow); text-align:left; cursor:pointer; transition:transform .18s ease,background .2s ease; }
.villa-room-card:active{ transform:scale(.985); background:var(--row-press); }
.villa-room-mark{ display:grid; place-items:center; width:46px; height:46px; border-radius:50%; background:var(--seg-track); color:var(--accent); font-size:20px; }
.villa-room-card small,.villa-room-card b,.villa-room-card i{ display:block; }
.villa-room-card small{ color:var(--text-faint); font:9px/1.2 var(--font-en),var(--font-cn); letter-spacing:.12em; }
.villa-room-card b{ margin:5px 0; font-size:17px; font-weight:500; }
.villa-room-card i{ color:var(--text-soft); font-size:11px; line-height:1.5; font-style:normal; }
.villa-room-arrow{ color:var(--text-faint); font-size:20px; }
.villa-note{ display:block; }
.villa-note p{ margin:0 0 5px; color:var(--text-faint); font:9px/1.2 var(--font-en); letter-spacing:.14em; }
.villa-note h3{ margin:0 0 7px; color:var(--text); font-size:15px; font-weight:500; }
.villa-note span{ color:var(--text-soft); font-size:11px; line-height:1.65; }
.villa-room-panel{ position:absolute; inset:0; z-index:3; display:flex; flex-direction:column; pointer-events:none; transform:translateX(100%); opacity:0; background-color:var(--bg); background-image:var(--profile-wall-default); background-size:cover; background-position:center; transition:transform .34s var(--ease-soft),opacity .26s ease; }
.villa-room-panel.open{ pointer-events:auto; transform:none; opacity:1; }
.villa-room-topbar{ border-bottom:1px solid var(--card-line); }
.villa-room-details{ display:grid; gap:10px; }
.villa-detail-heading{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.villa-detail-heading p{ margin:0; color:var(--text-faint); font:9px/1.2 var(--font-en); letter-spacing:.14em; }
.villa-detail-heading span{ padding:4px 8px; border-radius:999px; background:var(--seg-track); color:var(--text-faint); font-size:10px; }
#villaRoomFeatures{ display:grid; gap:8px; }
#villaRoomFeatures>div{ display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:48px; padding:11px 13px; border-radius:14px; background:var(--seg-track); color:var(--text); font-size:13px; }
#villaRoomFeatures small{ color:var(--text-faint); font-size:10px; }
.villa-room-footnote{ margin:2px 6px 0; color:var(--text-faint); font-size:10.5px; line-height:1.65; text-align:center; }
@media (min-width:1000px){ .villa-scroll,.villa-room-scroll{ padding-top:18px; padding-bottom:36px; } }
@media (max-width:700px){ .villa-map{ grid-template-columns:1fr; } .villa-room-card{ min-height:96px; } }
@media (prefers-reduced-motion:reduce){ .villa-room-panel{ transition:none; } }
