/* Lodging UI/UX — compact tourism information surfaces. */
.main-navigation a.is-active { color: var(--color-accent, #a92f2c); }
.main-navigation a.is-active::after { content: ''; position: absolute; right: 10px; bottom: -4px; left: 10px; height: 3px; border-radius: 3px; background: var(--color-accent, #a92f2c); }
.menu-toggle { display: none; }

.lodging-hero { padding: clamp(38px, 4.6vw, 58px) 0 28px; background: linear-gradient(125deg, #17342f, #24584e); color: #fff; }
.lodging-hero .eyebrow { color: #f8cf8d; }
.lodging-hero h1 { max-width: 760px; margin: 0 0 12px; font-size: clamp(2.25rem, 4.3vw, 3.5rem); line-height: 1.05; letter-spacing: -.04em; }
.lodging-hero p { max-width: 720px; margin: 0; color: #edf5f1; font-size: clamp(1rem, 1.45vw, 1.12rem); line-height: 1.6; }
.lodging-hero .lodging-disclaimer { max-width: 800px; margin-top: 12px; color: #dcebe5; font-size: .88rem; }

.lodging-stats { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.lodging-stat { display: inline-flex; align-items: baseline; gap: 8px; min-height: 0; padding: 10px 14px; border: 1px solid rgba(255,255,255,.22); border-radius: 12px; background: rgba(255,255,255,.1); }
.lodging-stat strong { font-size: 1.35rem; line-height: 1; }
.lodging-stat span { color: #edf5f1; font-size: .82rem; font-weight: 700; }

.lodging-page-section { padding-top: 42px; }
.lodging-toolbar { display: grid; grid-template-columns: minmax(300px, 1.2fr) minmax(360px, .8fr); gap: 14px; align-items: center; margin: 0 0 28px; padding: 14px; border: 1px solid #dce5df; border-radius: 16px; background: #fff; box-shadow: 0 8px 24px rgba(23,52,47,.06); }
.lodging-search { min-height: 46px; border: 1px solid #b8c9c0; border-radius: 10px; padding: 0 14px 0 42px; color: #17342f; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2317342f' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") 14px center/18px no-repeat; font: inherit; }
.lodging-search:focus { border-color: #17342f; outline: 3px solid rgba(244,182,62,.45); outline-offset: 2px; }
.lodging-tabs { display: flex; gap: 7px; justify-content: flex-end; flex-wrap: wrap; }
.lodging-tab { min-height: 40px; padding: 8px 12px; border: 1px solid #c7d5ce; border-radius: 999px; color: #17342f; background: #fff; font: 800 .84rem/1 inherit; cursor: pointer; }
.lodging-tab:hover, .lodging-tab:focus-visible { border-color: #17342f; background: #f4f8f5; outline: 3px solid rgba(244,182,62,.45); outline-offset: 2px; }
.lodging-tab[aria-selected=true] { border-color: #17342f; background: #17342f; color: #fff; }

.lodging-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.lodging-card { display: flex; min-height: 0; padding: 19px; border: 1px solid #d9e3dd; border-radius: 16px; background: #fff; box-shadow: 0 7px 18px rgba(23,52,47,.055); }
.lodging-card-visual { display: grid; flex: 0 0 42px; place-items: center; width: 42px; height: 42px; min-height: 42px; margin: 0 13px 0 0; border-radius: 12px; background: #edf4f0; color: #17342f; font-size: 1.22rem; }
.lodging-card-visual img { width: 42px; height: 42px; border-radius: 12px; object-fit: cover; }
.lodging-card-body { display: flex; flex: 1; flex-direction: column; min-width: 0; padding: 0; }
.lodging-badge { align-self: flex-start; padding: 4px 8px; border-radius: 999px; background: #f5ead2; color: #704b12; font-size: .7rem; font-weight: 900; letter-spacing: .04em; }
.lodging-card h2 { margin: 9px 0 7px; color: #17342f; font-size: clamp(1.16rem, 1.65vw, 1.35rem); line-height: 1.25; }
.lodging-card p { display: -webkit-box; margin: 0; overflow: hidden; color: #40504b; font-size: .91rem; line-height: 1.52; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.lodging-meta { display: flex; flex-wrap: wrap; gap: 7px; margin: 13px 0 14px; }
.lodging-meta span { padding: 5px 7px; border-radius: 8px; background: #f2f5f3; color: #40504b; font-size: .8rem; font-weight: 700; }
.lodging-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; }
.lodging-actions a, .lodging-actions button { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 9px 11px; border: 1px solid #8e2d20; border-radius: 10px; background: #8e2d20; color: #fff; font: 800 .82rem/1 inherit; text-decoration: none; cursor: pointer; }
.lodging-actions .secondary { border-color: #c9d7d0; background: #f4f7f5; color: #17342f; }
.lodging-actions a:hover, .lodging-actions button:hover { filter: brightness(.95); }
.lodging-actions a:focus-visible, .lodging-actions button:focus-visible { outline: 3px solid #f4b63e; outline-offset: 2px; }

.lodging-empty { display: grid; place-items: center; min-height: 180px; padding: 28px; border: 1px dashed #b8c9c0; border-radius: 16px; color: #40504b; text-align: center; }
.lodging-household-empty { border-style: solid; border-color: #e6d2a8; background: #fffaf0; }
.lodging-household-empty::before { content: '⌂'; display: grid; place-items: center; width: 42px; height: 42px; margin-bottom: 10px; border-radius: 50%; background: #f4e3bd; color: #7a4b12; font-size: 1.25rem; }
.lodging-household-empty h2 { margin: 0 0 7px; color: #17342f; font-size: 1.2rem; }
.lodging-household-empty p { max-width: 620px; margin: 0; line-height: 1.55; }
.lodging-household-empty .small { margin-top: 8px; color: #5f6a67; font-size: .84rem; }
.lodging-info-banner { margin-top: 26px; padding: 16px 18px; border: 1px solid #e8d7b7; border-radius: 14px; background: #fff8e9; color: #40504b; font-size: .93rem; line-height: 1.55; }
.lodging-info-banner strong { color: #17342f; }
.lodging-household-intro { margin: 0 0 18px; padding: 20px; border: 1px solid #d7e3dc; border-radius: 16px; background: #f7fbf8; color: #40504b; }
.lodging-household-intro[hidden] { display: none; }
.lodging-household-intro .eyebrow { margin: 0 0 7px; color: #8e2d20; font-size: .76rem; font-weight: 900; letter-spacing: .08em; }
.lodging-household-intro h2 { margin: 0 0 8px; color: #17342f; font-size: clamp(1.35rem, 2vw, 1.65rem); }
.lodging-household-intro p { display: block; margin: 0; overflow: visible; color: #40504b; line-height: 1.55; -webkit-line-clamp: unset; }
.lodging-household-intro .lodging-household-updated { margin-top: 9px; color: #6a5341; font-size: .88rem; font-weight: 800; }
.lodging-household-intro .lodging-household-note { margin-top: 9px; padding-top: 10px; border-top: 1px solid #dce7e0; font-size: .9rem; }
.lodging-card-household .lodging-badge { background: #e4f1e8; color: #286143; }

.homepage-lodging { background: #f4f8f5; }
.homepage-lodging .section-heading { max-width: 760px; }
.homepage-lodging .section-heading h2 { text-transform: none; }
.homepage-lodging .lodging-grid { margin-top: 22px; }
.homepage-lodging .lodging-card { padding: 16px; box-shadow: none; }
.homepage-lodging .lodging-card-visual { width: 38px; height: 38px; min-height: 38px; flex-basis: 38px; margin-right: 11px; font-size: 1rem; }
.homepage-lodging .lodging-card h2 { margin-top: 7px; font-size: 1.08rem; }
.homepage-lodging .lodging-card p { font-size: .85rem; }
.homepage-lodging .lodging-actions { display: none; }
.lodging-home-footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 22px; }
.lodging-home-footer p { margin: 0; color: #5f6a67; font-size: .9rem; }
.homepage-lodging .lodging-home-empty { display: flex; min-height: 0; align-items: center; justify-content: space-between; gap: 16px; padding: 18px; text-align: left; }
.homepage-lodging .lodging-home-empty p { margin: 0; }
.homepage-lodging.is-empty .lodging-grid { margin-bottom: 0; }

@media (max-width: 1024px) { .lodging-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .lodging-toolbar { grid-template-columns: 1fr; } .lodging-tabs { justify-content: flex-start; } }
@media (max-width: 840px) { .header-inner { position: relative; min-height: 72px; height: 72px; } .menu-toggle { display: inline-flex; flex-direction: column; justify-content: center; gap: 4px; width: 42px; height: 42px; padding: 9px; border: 1px solid var(--line); border-radius: 10px; background: #fff; cursor: pointer; } .menu-toggle span { display: block; width: 100%; height: 2px; border-radius: 2px; background: #17342f; } .main-navigation { position: absolute; top: 72px; right: 0; left: 0; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 8px 20px 16px; background: #fffaf0; border-bottom: 1px solid var(--line); } .main-navigation.is-open { display: flex; } .main-navigation a { padding: 11px 0; } .main-navigation a.is-active::after { display: none; } }
@media (max-width: 680px) { .lodging-hero { padding: 34px 0 24px; } .lodging-hero h1 { font-size: clamp(1.9rem, 9vw, 2.2rem); } .lodging-hero .lodging-disclaimer { font-size: .84rem; } .lodging-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); } .lodging-stat { align-items: center; min-height: 58px; padding: 10px; } .lodging-toolbar { gap: 11px; padding: 11px; margin-bottom: 20px; } .lodging-tabs { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 3px; } .lodging-tab { flex: 0 0 auto; white-space: nowrap; } .lodging-grid { grid-template-columns: 1fr; gap: 12px; } .lodging-card { padding: 16px; } .lodging-actions a, .lodging-actions button { flex: 1; } .lodging-home-footer { align-items: flex-start; flex-direction: column; } .homepage-lodging .lodging-grid { grid-template-columns: 1fr; } .homepage-lodging .lodging-home-empty { align-items: flex-start; flex-direction: column; } }
