.lodging-section{padding:42px 0 44px;border-top:1px solid var(--line);scroll-margin-top:95px}
.lodging-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:22px}
.lodging-heading h2{font-size:30px;line-height:1.35;letter-spacing:-1.2px;margin:7px 0 6px}
.lodging-heading p{font-size:13px;color:var(--muted);line-height:1.8}
.lodging-badge{flex:0 0 auto;padding:8px 13px;border-radius:999px;background:#e6eee2;color:#2e654d;font-size:11px;font-weight:800}
.lodging-trip-context{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 17px;margin-bottom:18px;border:1px solid #d7e3d2;border-radius:13px;background:#edf3e9;color:#41634e}
.lodging-trip-context>span{font-size:10px;font-weight:800;color:#d25335;background:#fff0e9;border-radius:999px;padding:5px 9px}
.lodging-trip-context strong{font-size:12px}
.lodging-trip-context a{margin-left:auto;font-size:11px;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.lodging-filter-block{margin-top:14px;padding:15px 16px;border:1px solid #e3e6dd;border-radius:14px;background:#fff}
.lodging-filter-title{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.lodging-filter-title>span{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;background:#244d39;color:#fff;font-size:10px;font-weight:800}
.lodging-filter-title strong{font-size:14px;color:#243c30}
.lodging-filter-title small{font-size:10px;color:#9a806b}
.lodging-area-filters,.lodging-fit-filters{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:1px 1px 3px}
.lodging-area-filters::-webkit-scrollbar,.lodging-fit-filters::-webkit-scrollbar{display:none}
.lodging-area-filters button,.lodging-fit-filters button{flex:0 0 auto;min-height:40px;padding:8px 14px;border:1px solid #dce3d9;border-radius:10px;background:#f6f8f3;color:#43554a;font-size:12px;font-weight:750;white-space:nowrap}
.lodging-area-filters button:hover,.lodging-fit-filters button:hover{border-color:#91ad96;background:#eef4eb}
.lodging-area-filters button.active{border-color:#285b44;background:#285b44;color:#fff;box-shadow:0 4px 10px #285b4424}
.lodging-fit-filters button{border-radius:999px;border-color:#f0ddcf;background:#fff8f3;color:#854a36}
.lodging-fit-filters button.active{border-color:#d84f32;background:#d84f32;color:#fff;box-shadow:0 4px 10px #d84f3224}
.lodging-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:18px 0 13px}
.lodging-search{display:flex;align-items:center;gap:9px;min-height:44px;width:min(100%,430px);padding:7px 13px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#758074;font-size:22px}
.lodging-search:focus-within{outline:2px solid #f8ad96;outline-offset:2px}
.lodging-search input{width:100%;border:0;background:transparent;font-size:12px}
.lodging-search input:focus{outline:none}
.lodging-summary{color:#768277;font-size:10px;text-align:right}
.lodging-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.stay-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid #e0e5dd;border-radius:16px;background:#fff;box-shadow:0 7px 20px #2a46340a}
.stay-photos{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:'exterior room';gap:3px;height:154px;background:#e6e9e2;overflow:hidden;color:inherit;text-decoration:none;cursor:pointer}
 .stay-photos.has-benefit{height:auto;grid-template-areas:'exterior room' 'benefit benefit';grid-template-rows:145px 92px}
 .stay-photos:focus-visible{outline:3px solid #d84b31;outline-offset:-3px}
.stay-photo{position:relative;min-width:0;height:100%;margin:0;overflow:hidden;background:linear-gradient(135deg,#dfe8dc,#f4eee5)}
.stay-photo.exterior{grid-area:exterior}.stay-photo.room{grid-area:room}.stay-photo.benefit{grid-area:benefit}
.stay-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.stay-card:hover .stay-photo img{transform:scale(1.035)}
.stay-photo figcaption{position:absolute;left:9px;bottom:9px;max-width:calc(100% - 18px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid #ffffff66;border-radius:999px;padding:5px 9px;background:#152c22d9;color:#fff;font-size:10px;font-weight:850;backdrop-filter:blur(5px)}
.stay-photo-fallback{position:absolute;inset:0;display:grid;place-items:center;padding:8px;color:#69766b;font-size:10px;text-align:center}
.stay-photo-fallback[hidden]{display:none}
.stay-card-top{display:flex;align-items:center;gap:10px;min-height:79px;padding:13px 16px;background:linear-gradient(120deg,#e7efe3,#f6f6ee)}
.area-namba .stay-card-top{background:linear-gradient(120deg,#dcece2,#f3f3e9)}
.area-umeda .stay-card-top{background:linear-gradient(120deg,#e1e9f2,#f3f3ed)}
.area-shinsaibashi .stay-card-top{background:linear-gradient(120deg,#f4e4d8,#f7f3e9)}
.area-honmachi .stay-card-top{background:linear-gradient(120deg,#eee4f2,#f7f3e9)}
.area-bentencho .stay-card-top{background:linear-gradient(120deg,#dcecf0,#f1f3e9)}
.stay-symbol{display:grid;place-items:center;width:42px;height:42px;flex:0 0 auto;border:1px solid #ffffffa8;border-radius:13px;background:#ffffffa3;color:#275740;font-size:27px;line-height:1}
.stay-area{display:block;color:#52695a;font-size:11px;font-weight:850}
.stay-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.stay-tags span{border:1px solid #ffffffa8;border-radius:999px;background:#ffffffa0;color:#47614f;padding:2px 7px;font-size:9px;font-weight:700}
.stay-index{margin-left:auto;align-self:flex-start;padding-top:3px;color:#8b9588;font:700 8px 'DM Sans',sans-serif;letter-spacing:1.2px;white-space:nowrap}
.stay-card-body{padding:16px 17px 12px;flex:1}
.stay-card-body h3{font-size:17px;line-height:1.45;letter-spacing:-.45px;color:#24392e}
.stay-card-body>p{min-height:58px;margin-top:8px;color:#68766b;font-size:11px;line-height:1.75}
.stay-facts{display:flex;flex-direction:column;gap:6px;margin:13px 0 12px;padding:0;list-style:none}
.stay-facts li{position:relative;padding-left:17px;color:#344b3d;font-size:11px;font-weight:750;line-height:1.5}
.stay-facts li:before{content:'✓';position:absolute;left:0;color:#d75134;font-weight:900}
.stay-official-links{display:flex;gap:7px 12px;flex-wrap:wrap;padding-top:11px;border-top:1px solid #edf0ea}
.stay-official-links a{color:#53745d;font-size:10px;font-weight:700;text-decoration:underline;text-underline-offset:2px}
.stay-compare{margin-top:auto;padding:12px 15px 15px;border-top:1px solid #edf0ea;background:#fbfcf9}
.stay-compare>strong{display:block;margin-bottom:8px;color:#546458;font-size:10px}
.stay-provider-links{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.stay-provider{display:flex;align-items:center;justify-content:center;min-height:40px;padding:7px 8px;border-radius:9px;font-size:10px;font-weight:800;text-align:center}
.stay-provider.trip{background:#255841;color:#fff}
.stay-provider.trip:hover{background:#193e2c;transform:translateY(-1px)}
.stay-provider.agoda{border:1px solid #dbdcd6;background:#fff;color:#6f716c}
.stay-provider.pending{opacity:1;border-style:dashed;color:#777c75;background:#f0f1ed;font-size:9px}
.lodging-note{margin-top:15px;padding:12px 14px;border-radius:10px;background:#f0f1eb;color:#747d72;font-size:10px;line-height:1.75}
.stay-empty{grid-column:1/-1;padding:30px;text-align:center;border:1px dashed #cbd4c7;border-radius:14px;color:#748075;background:#fff}
.stay-empty strong{font-size:14px;color:#304d3d}
.stay-empty p{margin-top:6px;font-size:11px}
@media(max-width:1000px){.lodging-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:780px){.lodging-section{padding:34px 0 38px;scroll-margin-top:80px}.lodging-heading h2{font-size:25px}.lodging-heading p{font-size:12px}.lodging-filter-block{padding:13px}.lodging-grid{grid-template-columns:1fr;gap:11px}.stay-card{border-radius:14px}.stay-photos{height:180px}.stay-photos.has-benefit{grid-template-rows:155px 94px}.stay-photo figcaption{font-size:11px}.stay-card-body{padding:14px 15px 11px}.stay-card-body h3{font-size:16px}.stay-card-body>p{min-height:0}.lodging-trip-context{gap:7px;padding:12px}.lodging-trip-context strong{flex:1 1 calc(100% - 140px);font-size:10px}.lodging-trip-context a{width:100%;margin:0;font-size:10px}.lodging-tools{align-items:flex-start;flex-direction:column}.lodging-search{width:100%}.lodging-summary{text-align:left}.lodging-badge{padding:6px 9px;font-size:9px}}
@media(max-width:380px){.lodging-heading h2{font-size:22px}.lodging-area-filters button,.lodging-fit-filters button{min-height:38px;padding:7px 11px;font-size:11px}.stay-provider{font-size:9px}.stay-provider.pending{font-size:8px}}
