@font-face {
    font-family: "Reddit Sans";
    font-style: normal;
    font-weight: 200 900;
    font-display: swap;
    src: url("fonts/reddit-sans/RedditSans-wght.woff2") format("woff2-variations");
}
:root {
    color-scheme: light;
    --ink: #1c2733;
    --muted: #657281;
    --line: #dfe4e8;
    --surface: #ffffff;
    --soft: #f4f7f8;
    --accent: #1f6673;
    --available: #226b45;
    font-family: "Reddit Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
html { background: var(--soft); color: var(--ink); container-type: inline-size; }
body { font-weight: 400; margin: 0; min-width: 0; overflow-x: clip; }
img { display: block; max-width: 100%; }
a { color: inherit; }
.site-shell { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.site-header { background: var(--surface); border-bottom: 1px solid var(--line); }
.site-header .site-shell { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.site-brand { color: var(--ink); display: grid; line-height: 1; text-decoration: none; }
.site-wordmark { font-size: 1.75rem; letter-spacing: -.04em; }
.site-wordmark strong { font-weight: 800; }
.site-wordmark em { color: #2f8061; font-style: normal; font-weight: 700; }
.site-tagline { color: #34795f; font-size: .68rem; font-weight: 800; letter-spacing: .15em; margin-top: 7px; text-transform: uppercase; }
.site-nav { align-items: center; display: flex; gap: clamp(16px, 2.2vw, 30px); }
.site-nav a { color: #40505d; font-size: .9rem; font-weight: 600; text-decoration: none; }
.site-nav a:hover, .site-nav a:focus-visible { color: #237153; text-decoration: underline; text-underline-offset: 4px; }
.site-nav-whatsapp { align-items: center; border-radius: 9px; display: flex; height: 44px; justify-content: center; width: 44px; }
.site-nav-whatsapp img { display: none; }
.site-nav-whatsapp::before { background: #21a867; content: ""; display: block; height: 31px; mask: url("icons/whatsapp.svg") center / contain no-repeat; width: 31px; }
.site-nav-whatsapp:hover::before, .site-nav-whatsapp:focus-visible::before { background: #167d4d; }
.site-main { padding-block: 36px 72px; }
.site-footer { background: #edf2f0; border-top: 1px solid var(--line); }
.site-footer-inner { align-items: center; display: grid; gap: 16px 28px; grid-template-columns: auto minmax(0, 1fr) auto; min-height: 112px; padding-block: 22px; }
.site-footer-brand { display: grid; gap: 3px; }
.site-footer-brand strong { color: var(--ink); font-size: 1rem; font-weight: 800; }
.site-footer-brand span { color: #34795f; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.site-footer-nav { display: flex; flex-wrap: wrap; gap: 9px 22px; justify-content: center; }
.site-footer-nav a { color: #40505d; font-size: .82rem; font-weight: 600; text-decoration: none; }
.site-footer-nav a:hover, .site-footer-nav a:focus-visible { color: #237153; outline: 2px solid rgba(47,128,97,.2); outline-offset: 3px; text-decoration: underline; text-underline-offset: 3px; }
.site-footer-copyright { color: var(--muted); font-size: .78rem; margin: 0; white-space: nowrap; }
.eyebrow, .room-location { color: var(--muted); font-size: .86rem; font-weight: 500; letter-spacing: .025em; margin: 0 0 8px; }
h1, h2, p { overflow-wrap: anywhere; }
h1 { font-size: clamp(2rem, 5vw, 3.6rem); letter-spacing: -.04em; margin: 0 0 12px; line-height: 1.04; }
.catalog-hero { background: #f2eee5; isolation: isolate; margin-bottom: 70px; margin-left: calc(50% - 50cqw); margin-top: -36px; min-height: 330px; position: relative; width: 100cqw; z-index: 10; }
.catalog-hero-inner { align-items: center; display: flex; margin-inline: auto; min-height: 330px; position: relative; width: min(1180px, calc(100% - 40px)); z-index: 1; }
.catalog-hero-copy { max-width: 650px; padding: 0 30px 10px 0; position: relative; z-index: 1; }
.catalog-hero-copy .eyebrow { color: #34795f; letter-spacing: .09em; margin-bottom: 5px; text-transform: uppercase; }
.catalog-hero-copy > p:last-child { color: #52616b; font-size: 1.1rem; line-height: 1.6; margin: 0; max-width: 470px; }
.catalog-hero-copy h1 { font-weight: 800; margin-bottom: 8px; }
.catalog-hero-image { inset: 0 0 0 50%; overflow: hidden; position: absolute; }
.catalog-hero-image::after { background: linear-gradient(90deg, #f2eee5 0%, rgba(242,238,229,.48) 19%, transparent 46%); content: ""; inset: 0; position: absolute; }
.catalog-hero-image img { height: 100%; object-fit: cover; width: 100%; }
.catalog-filters { align-items: end; background: rgba(255,255,255,.99); border: 1px solid rgba(28,39,51,.1); border-radius: 15px; bottom: 0; box-shadow: 0 14px 34px rgba(33,45,53,.14); display: grid; gap: 18px; grid-template-columns: auto minmax(255px, 1fr) auto; left: 0; padding: 15px 20px; position: absolute; right: 0; transform: translateY(50%); z-index: 10; }
.catalog-filter-dates { display: flex; gap: 10px; }
.catalog-filters label, .catalog-filter-label { color: var(--muted); font-size: .78rem; font-weight: 600; }
.catalog-date-field { min-width: 0; position: relative; width: 142px; }
.date-input-shell { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 8px; display: grid; grid-template-columns: minmax(0, 1fr) 36px; min-height: 41px; }
.date-input-shell:focus-within { border-color: #43866d; outline: 3px solid rgba(47,128,97,.13); }
.date-input-shell.has-error { border-color: #a64b4b; }
.date-text-input { background: transparent; border: 0; color: var(--ink); font: inherit; min-width: 0; outline: 0; padding: 9px 0 9px 12px; width: 100%; }
.date-text-input::placeholder { color: #56616c; opacity: 1; }
.date-picker-toggle { align-items: center; align-self: stretch; background: transparent; border: 0; border-radius: 0 8px 8px 0; color: var(--ink); cursor: pointer; display: flex; justify-content: center; padding: 0; position: relative; width: 36px; }
.date-picker-toggle::after { background: currentColor; content: ""; height: 18px; mask: url("icons/calendar.svg") center / contain no-repeat; position: absolute; right: 11px; width: 18px; }
.date-picker-toggle:hover, .date-picker-toggle:focus-visible { background: var(--soft); outline: 0; }
.date-picker-error { background: #fff; border: 1px solid #e0baba; border-radius: 6px; color: #8b2d2d; font-size: .7rem; left: 0; line-height: 1.25; max-width: 220px; padding: 4px 6px; position: absolute; top: calc(100% + 5px); width: max-content; z-index: 25; }
.date-picker-panel { background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 14px 34px rgba(25,37,43,.18); left: 0; padding: 12px; position: absolute; top: calc(100% + 7px); width: 296px; z-index: 20; }
.date-picker-panel[hidden] { display: none; }
.date-picker-panel.opens-upward, .feature-picker-panel.opens-upward { bottom: calc(100% + 7px); top: auto; }
.date-picker-header { align-items: center; display: grid; grid-template-columns: 34px 1fr 34px; margin-bottom: 8px; text-align: center; }
.date-picker-header strong { font-size: .92rem; font-weight: 700; text-transform: capitalize; }
.date-picker-nav { align-items: center; background: transparent; border: 0; border-radius: 7px; color: var(--ink); cursor: pointer; display: flex; font: inherit; font-size: 1.35rem; height: 32px; justify-content: center; padding: 0; }
.date-picker-nav:hover, .date-picker-nav:focus-visible { background: var(--soft); outline: 2px solid rgba(47,128,97,.18); }
.date-picker-nav:disabled { cursor: default; opacity: .25; }
.date-picker-weekdays, .date-picker-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.date-picker-weekdays { color: var(--muted); font-size: .7rem; font-weight: 600; margin-bottom: 3px; text-align: center; }
.date-picker-weekdays span { padding: 4px 0; }
.date-picker-day, .date-picker-blank { aspect-ratio: 1; }
.date-picker-day { background: transparent; border: 0; border-radius: 50%; color: var(--ink); cursor: pointer; font: inherit; font-size: .8rem; padding: 0; }
.date-picker-day:hover:not(:disabled), .date-picker-day:focus-visible { background: #edf5f0; outline: 2px solid rgba(47,128,97,.24); }
.date-picker-day.is-today { box-shadow: inset 0 0 0 1px #4a8a70; font-weight: 700; }
.date-picker-day.is-selected { background: #2f8061; box-shadow: none; color: #fff; font-weight: 700; }
.date-picker-day:disabled { color: #b7bec4; cursor: default; text-decoration: line-through; }
.catalog-filter-features { min-width: 0; position: relative; }
.catalog-filter-label { display: block; margin-bottom: 6px; }
.feature-picker-toggle { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); cursor: pointer; display: flex; font: inherit; justify-content: space-between; min-height: 41px; padding: 9px 12px; text-align: left; width: 100%; }
.feature-picker-toggle:hover, .feature-picker-toggle:focus-visible, .feature-picker-toggle[aria-expanded="true"] { border-color: #43866d; outline: 3px solid rgba(47,128,97,.13); }
.feature-picker-panel { background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 14px 34px rgba(25,37,43,.16); left: 0; max-height: 232px; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; padding: 11px 13px; position: absolute; scrollbar-width: thin; top: calc(100% + 7px); width: 100%; z-index: 20; }
.feature-picker-panel[hidden] { display: none; }
.feature-picker-group { border: 0; margin: 0; padding: 0; }
.feature-picker-group + .feature-picker-group { border-top: 1px solid var(--line); margin-top: 8px; padding-top: 8px; }
.feature-picker-group legend { color: #34795f; font-size: .7rem; font-weight: 800; letter-spacing: .06em; margin-bottom: 4px; padding: 0; text-transform: uppercase; }
.feature-picker-group label { align-items: center; color: var(--ink); display: flex; font-size: .83rem; font-weight: 500; gap: 7px; padding: 3px 0; }
.feature-picker-group input { accent-color: #2f8061; height: 16px; width: 16px; }
.catalog-filter-actions { align-items: center; display: flex; gap: 12px; }
.catalog-filter-actions button { background: #2f8061; border: 0; border-radius: 9px; color: #fff; cursor: pointer; font: inherit; font-weight: 700; min-height: 41px; padding: 10px 16px; white-space: nowrap; }
.catalog-filter-actions button:hover, .catalog-filter-actions button:focus-visible { background: #24694e; outline: 3px solid rgba(47,128,97,.2); }
.catalog-filter-actions a, .empty-state a { color: var(--accent); font-weight: 700; }
.catalog-filter-errors { color: #8b2d2d; margin-bottom: 10px; }
.catalog-filter-errors p { margin: 0; }
.catalog-benefits { border-bottom: 1px solid var(--line); display: grid; gap: 20px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0 0 20px; padding: 5px 8px 20px; position: relative; z-index: 0; }
.catalog-benefits > div { align-items: center; display: flex; gap: 12px; min-width: 0; }
.catalog-benefits img { display: none; }
.catalog-benefits > div::before { background: #2f8061; content: ""; flex: 0 0 31px; height: 31px; mask-position: center; mask-repeat: no-repeat; mask-size: contain; width: 31px; }
.catalog-benefits > div:nth-child(1)::before { mask-image: url("icons/feature-categories/bed.svg"); }
.catalog-benefits > div:nth-child(2)::before { mask-image: url("icons/map-pin.svg"); }
.catalog-benefits > div:nth-child(3)::before { mask-image: url("icons/users.svg"); }
.catalog-benefits > div:nth-child(4)::before { mask-image: url("icons/feature-categories/conditions.svg"); }
.catalog-benefits p { display: grid; gap: 3px; margin: 0; }
.catalog-benefits strong { font-size: .88rem; }
.catalog-benefits span { color: var(--muted); font-size: .78rem; }
.catalog-results-toolbar { align-items: center; display: flex; justify-content: space-between; gap: 18px; margin: 0 0 12px; min-width: 0; scroll-margin-top: 20px; width: 100%; }
.catalog-result-count { color: var(--ink); font-size: 1.1rem; font-weight: 700; margin: 0; }
.catalog-sort { align-items: center; display: flex; gap: 9px; }
.catalog-sort label { color: var(--muted); font-size: .82rem; font-weight: 600; white-space: nowrap; }
.catalog-sort select { background: #fff; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); font: inherit; font-size: .84rem; font-weight: 600; min-height: 36px; padding: 6px 32px 6px 10px; }
.catalog-sort select:focus-visible { outline: 3px solid rgba(47,128,97,.2); outline-offset: 1px; }
.room-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; position: relative; z-index: 0; }
.room-card { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; isolation: isolate; overflow: hidden; min-width: 0; position: relative; }
.room-card-image { aspect-ratio: 4 / 3; display: block; overflow: hidden; background: #e8ecee; position: relative; }
.room-card-image img, .hero-image img, .gallery-grid img { width: 100%; height: 100%; object-fit: cover; }
.room-card-availability { background: rgba(54, 104, 73, .82); border-radius: 6px; color: #fff; font-size: .73rem; font-weight: 700; left: 12px; line-height: 1.25; max-width: calc(100% - 24px); padding: 5px 8px; position: absolute; top: 12px; z-index: 1; }
.room-card-body { padding: 18px; }
.room-card h2 { font-size: 1.25rem; font-weight: 700; margin: 0 0 14px; }
.room-card h2 a { text-decoration: none; }
.room-card h2 a:hover, .room-card h2 a:focus-visible { text-decoration: underline; }
.room-facts { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.room-facts strong, .detail-commercial strong { font-size: 1.2rem; }
.room-facts strong span, .detail-commercial strong span { color: var(--muted); font-size: .8em; font-weight: 500; }
.room-card-feature-space { min-height: 58px; }
.feature-chips { display: flex; flex-wrap: wrap; gap: 6px; padding: 0; margin: 16px 0 0; list-style: none; }
.feature-chips li { background: var(--soft); border-radius: 999px; color: var(--muted); font-size: .78rem; padding: 5px 9px; }
.availability { color: var(--available); font-weight: 700; margin: 16px 0 0; }
.empty-state { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 40px; text-align: center; }
.contact-page { align-items: center; display: flex; min-height: min(560px, calc(100vh - 186px)); padding-block: 34px 58px; }
.contact-copy { max-width: 650px; }
.contact-copy .eyebrow { color: #34795f; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.contact-copy h1 { font-weight: 800; }
.contact-intro { color: #52616b; font-size: 1.08rem; line-height: 1.7; margin: 0; max-width: 610px; }
.contact-identity { display: grid; gap: 3px; margin-top: 28px; }
.contact-identity strong { font-size: 1.12rem; font-weight: 700; }
.contact-identity span { color: var(--muted); font-weight: 500; }
.contact-actions { display: flex; gap: 12px; margin-top: 24px; }
.contact-action { align-items: center; border-radius: 9px; display: inline-flex; font-weight: 700; gap: 9px; justify-content: center; min-height: 44px; padding: 11px 19px; text-decoration: none; }
.contact-action-primary { background: #2f8061; color: #fff; }
.contact-action-primary:hover, .contact-action-primary:focus-visible { background: #24694e; outline: 3px solid rgba(47,128,97,.2); }
.contact-action-secondary { border: 1px solid #43866d; color: #24694e; }
.contact-action-secondary:hover, .contact-action-secondary:focus-visible { background: #edf5f0; outline: 3px solid rgba(47,128,97,.16); }
.contact-details { display: grid; font-style: normal; gap: 8px; margin-top: 26px; }
.contact-details a { color: #40505d; font-weight: 600; text-decoration-thickness: 1px; text-underline-offset: 4px; width: fit-content; }
.contact-details a:hover, .contact-details a:focus-visible { color: #237153; outline: 2px solid rgba(47,128,97,.22); outline-offset: 3px; }
.legal-page { max-width: 820px; min-height: min(440px, calc(100vh - 300px)); padding-block: 24px 48px; }
.legal-page .eyebrow { color: #34795f; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.legal-page h1 { font-size: clamp(2rem, 4vw, 3rem); font-weight: 800; }
.legal-updated { color: var(--muted); font-size: .86rem; margin: -4px 0 30px; }
.legal-section + .legal-section { border-top: 1px solid var(--line); margin-top: 28px; padding-top: 28px; }
.legal-section h2 { font-size: 1.16rem; margin: 0 0 12px; }
.legal-section p, .legal-section li { color: #52616b; line-height: 1.7; }
.legal-section p { margin: 10px 0; }
.legal-section ul { display: grid; gap: 9px; margin: 10px 0; padding-left: 22px; }
.legal-section a { color: #237153; font-weight: 650; text-underline-offset: 3px; }
.legal-section a:focus-visible { outline: 2px solid rgba(47,128,97,.22); outline-offset: 3px; }
.legal-identity { display: grid; gap: 9px; margin: 0 0 18px; }
.legal-identity div { display: grid; gap: 2px; grid-template-columns: 150px minmax(0, 1fr); }
.legal-identity dt { color: var(--muted); font-size: .82rem; font-weight: 600; }
.legal-identity dd { color: #40505d; margin: 0; overflow-wrap: anywhere; }
.back-link { color: var(--muted); display: inline-block; margin-bottom: 24px; text-decoration: none; }
.back-link:hover, .back-link:focus-visible { color: var(--ink); text-decoration: underline; }
.detail-layout { display: grid; grid-template-columns: minmax(0, 3fr) minmax(250px, 1fr); grid-template-areas: "gallery sidebar" "summary sidebar" "content sidebar"; gap: 0 32px; align-items: start; }
.detail-gallery { grid-area: gallery; min-width: 0; outline-offset: 5px; }
.gallery-stage { aspect-ratio: 16 / 10; background: #e8ecee; border-radius: 16px; overflow: hidden; position: relative; }
.gallery-main-image { --gallery-slide-distance: 100%; --gallery-slide-duration: 470ms; height: 100%; inset: 0; object-fit: cover; opacity: 0; position: absolute; transform: translateX(0); transition: transform var(--gallery-slide-duration) cubic-bezier(.16, 1, .3, 1); visibility: hidden; width: 100%; }
.gallery-main-image.is-positioning { transition: none; }
.gallery-main-image.is-animating { will-change: transform; }
.gallery-main-image.is-current { opacity: 1; transform: translateX(0); visibility: visible; z-index: 2; }
.gallery-main-image.is-enter-from-right { opacity: 1; transform: translateX(var(--gallery-slide-distance)); visibility: visible; z-index: 3; }
.gallery-main-image.is-enter-from-left { opacity: 1; transform: translateX(calc(-1 * var(--gallery-slide-distance))); visibility: visible; z-index: 3; }
.gallery-main-image.is-exit-to-left { opacity: 1; transform: translateX(calc(-1 * var(--gallery-slide-distance))); visibility: visible; z-index: 2; }
.gallery-main-image.is-exit-to-right { opacity: 1; transform: translateX(var(--gallery-slide-distance)); visibility: visible; z-index: 2; }
.gallery-open { background: transparent; border: 0; cursor: zoom-in; inset: 0; padding: 0; position: absolute; z-index: 4; }
.gallery-open:focus-visible { outline: 4px solid rgba(255, 255, 255, .9); outline-offset: -7px; }
.gallery-map-link { align-items: center; background: rgba(255, 255, 255, .94); border: 1px solid rgba(28, 39, 51, .16); border-radius: 999px; bottom: 14px; color: var(--ink); display: inline-flex; font-size: .86rem; font-weight: 700; gap: 7px; left: 14px; padding: 9px 13px; position: absolute; text-decoration: none; z-index: 6; }
.gallery-map-link:hover, .gallery-map-link:focus-visible { background: #fff; outline: 3px solid rgba(31, 102, 115, .25); }
.gallery-map-link img { height: 18px; width: 18px; }
.gallery-arrow { align-items: center; background: rgba(255, 255, 255, .92); border: 1px solid rgba(28, 39, 51, .15); border-radius: 50%; color: var(--ink); cursor: pointer; display: flex; font-size: 2rem; height: 44px; justify-content: center; line-height: 1; padding: 0 0 4px; position: absolute; top: 50%; transform: translateY(-50%); width: 44px; z-index: 5; }
.gallery-arrow:hover, .gallery-arrow:focus-visible { background: #fff; outline: 3px solid rgba(31, 102, 115, .25); }
.gallery-arrow-previous { left: 14px; }
.gallery-arrow-next { right: 14px; }
.detail-gallery[data-count="1"] .gallery-arrow { display: none; }
.gallery-thumbnails { display: flex; gap: 10px; margin-top: 12px; overflow-x: auto; padding: 3px 2px 8px; scrollbar-width: thin; }
.gallery-thumbnail { background: #e8ecee; border: 2px solid transparent; border-radius: 9px; cursor: pointer; flex: 0 0 92px; height: 68px; overflow: hidden; padding: 0; }
.gallery-thumbnail img { height: 100%; object-fit: cover; width: 100%; }
.gallery-thumbnail.is-active { border-color: var(--accent); box-shadow: 0 0 0 1px var(--surface), 0 0 0 3px var(--accent); }
.gallery-thumbnail:focus-visible { outline: 3px solid rgba(31, 102, 115, .35); outline-offset: 2px; }
.lightbox-open { overflow: hidden; }
.gallery-lightbox[hidden] { display: none; }
.gallery-lightbox { align-items: center; background: rgba(5, 8, 10, .97); display: flex; flex-direction: column; inset: 0; justify-content: center; padding: 54px 24px 20px; position: fixed; z-index: 1000; }
.lightbox-close { align-items: center; background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .35); border-radius: 50%; color: #fff; cursor: pointer; display: flex; font-size: 2rem; height: 42px; justify-content: center; line-height: 1; padding: 0 0 4px; position: absolute; right: 22px; top: 16px; width: 42px; }
.lightbox-stage { align-items: center; display: flex; flex: 1 1 auto; justify-content: center; min-height: 0; position: relative; width: min(1180px, 100%); }
.lightbox-image { height: 100%; max-height: calc(100vh - 190px); object-fit: contain; width: 100%; }
.lightbox-arrow { align-items: center; background: rgba(20, 24, 27, .7); border: 1px solid rgba(255, 255, 255, .35); border-radius: 50%; color: #fff; cursor: pointer; display: flex; font-size: 2.3rem; height: 48px; justify-content: center; line-height: 1; padding: 0 0 5px; position: absolute; top: 50%; transform: translateY(-50%); width: 48px; z-index: 2; }
.lightbox-arrow-previous { left: 12px; }
.lightbox-arrow-next { right: 12px; }
.lightbox-close:hover, .lightbox-close:focus-visible, .lightbox-arrow:hover, .lightbox-arrow:focus-visible { background: rgba(255, 255, 255, .22); outline: 3px solid rgba(255, 255, 255, .65); }
.lightbox-counter { color: #fff; font-variant-numeric: tabular-nums; margin: 8px 0; }
.lightbox-thumbnails { display: flex; flex: 0 0 auto; gap: 8px; max-width: min(1050px, 100%); overflow-x: auto; padding: 4px; }
.lightbox-thumbnail { background: #20262a; border: 2px solid transparent; border-radius: 7px; cursor: pointer; flex: 0 0 76px; height: 54px; overflow: hidden; padding: 0; }
.lightbox-thumbnail img { height: 100%; object-fit: cover; width: 100%; }
.lightbox-thumbnail.is-active { border-color: #fff; outline: 1px solid #fff; }
.detail-summary { grid-area: summary; padding: 24px 2px 0; }
.detail-summary h1 { font-size: clamp(1.8rem, 4vw, 2.65rem); font-weight: 800; margin: 0; }
.primary-room-facts { align-items: center; display: flex; flex-wrap: wrap; gap: 10px 0; list-style: none; margin: 18px 0 0; padding: 0; }
.primary-room-facts li { align-items: center; display: inline-flex; font-size: .92rem; font-weight: 650; gap: 7px; min-width: 0; }
.primary-room-facts li:not(:last-child)::after { color: var(--line); content: "·"; font-size: 1.2rem; margin: 0 13px; }
.primary-room-facts img { flex: 0 0 20px; height: 20px; width: 20px; }
.summary-price { margin: 14px 0 0; }
.summary-price strong { font-size: 1.65rem; }
.summary-price span, .sidebar-price span { color: var(--muted); }
.detail-sidebar { grid-area: sidebar; min-width: 0; position: sticky; top: 24px; }
.detail-sidebar-card { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 24px; }
.detail-sidebar-card .availability { margin: 0 0 18px; }
.manager-summary { align-items: center; border-bottom: 1px solid var(--line); display: flex; gap: 12px; margin-bottom: 20px; padding-bottom: 18px; }
.manager-summary img, .manager-avatar { border-radius: 50%; flex: 0 0 58px; height: 58px; object-fit: cover; width: 58px; }
.manager-avatar { align-items: center; background: var(--soft); display: flex; font-weight: 750; justify-content: center; }
.manager-summary small { color: var(--muted); display: block; margin-bottom: 3px; }
.manager-summary strong { display: block; }
.sidebar-price { border-bottom: 1px solid var(--line); margin: 0; padding-bottom: 18px; }
.sidebar-price strong { font-size: 1.55rem; }
.sidebar-location { color: var(--muted); line-height: 1.5; margin: 18px 0; }
.stay-conditions { border-top: 1px solid var(--line); display: grid; gap: 10px; margin: 16px 0 0; padding-top: 16px; }
.stay-conditions div { display: flex; justify-content: space-between; gap: 16px; }
.stay-conditions dt { color: var(--muted); font-size: .85rem; }
.stay-conditions dd { font-size: .85rem; font-weight: 650; margin: 0; text-align: right; }
.whatsapp-contact { align-items: center; background: #176b4d; border-radius: 10px; color: #fff; display: flex; font-weight: 700; gap: 9px; justify-content: center; margin-top: 20px; padding: 12px 15px; text-decoration: none; }
.whatsapp-contact:hover, .whatsapp-contact:focus-visible { background: #12563e; outline: 3px solid rgba(23, 107, 77, .25); }
.contact-placeholder { background: var(--soft); border-radius: 9px; color: var(--muted); font-size: .9rem; padding: 12px; text-align: center; }
.highlight-summary { border-top: 1px solid var(--line); margin-top: 18px; padding-top: 18px; }
.highlight-summary h2 { font-size: .9rem; margin: 0 0 10px; }
.highlight-summary ul { display: grid; gap: 7px; list-style: none; margin: 0 0 18px; padding: 0; }
.highlight-summary li::before { color: var(--accent); content: "✓"; margin-right: 8px; }
.room-household-facts { display: flex; flex-direction: column; gap: 9px; margin: 18px 0 0; width: 100%; }
.living-info-row { align-items: center; background: #f7f9fb; border: 1px solid var(--line); border-radius: 10px; display: grid; gap: 12px; grid-template-columns: 30px minmax(0, 1fr); min-height: 56px; min-width: 0; padding: 12px 14px; width: 100%; }
.living-info-icon { background-color: currentColor; display: block; height: 30px; mask-position: center; mask-repeat: no-repeat; mask-size: contain; width: 30px; }
.living-info-icon-gender { color: #7661b7; }
.living-info-icon-gender-any { mask-image: url("icons/gender-any.svg"); }
.living-info-icon-gender-male { mask-image: url("icons/gender-male.svg"); }
.living-info-icon-gender-female { mask-image: url("icons/gender-female.svg"); }
.living-info-icon-people { color: #258f8b; mask-image: url("icons/users.svg"); }
.living-info-value { font-weight: 650; line-height: 1.35; min-width: 0; overflow-wrap: anywhere; }
.detail-content { grid-area: content; display: grid; gap: 42px; margin-top: 42px; }
.detail-copy h2, .features-section > h2 { font-size: 1.2rem; font-weight: 700; margin: 0 0 14px; }
.detail-copy > p { color: #394653; font-size: 1.04rem; line-height: 1.75; white-space: pre-line; }
.commercial-data { display: flex; gap: 32px; margin-top: 28px; }
.commercial-data div { border-top: 1px solid var(--line); min-width: 140px; padding-top: 12px; }
.commercial-data dt { color: var(--muted); font-size: .82rem; }
.commercial-data dd { font-weight: 700; margin: 5px 0 0; }
.features-section { margin-top: 32px; }
.feature-groups { display: grid; gap: 28px 40px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.feature-category h3 { align-items: center; display: flex; font-size: 1rem; gap: 10px; margin: 0 0 12px; }
.feature-category h3 img { flex: 0 0 24px; }
.feature-groups ul { display: grid; gap: 10px; list-style: none; margin: 0; padding: 0; }
.feature-groups li { border-bottom: 1px solid var(--line); padding-bottom: 9px; }
.public-conditions { display: grid; gap: 40px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 42px; }
.public-conditions-single { grid-template-columns: minmax(0, 1fr); }
.public-condition-section h2 { font-size: 1.2rem; font-weight: 700; margin: 0 0 16px; }
.housing-rules, .public-requirements { display: grid; gap: 12px; list-style: none; margin: 0; padding: 0; }
.housing-rules li { align-items: center; display: flex; gap: 10px; }
.housing-rules img { flex: 0 0 20px; }
.public-requirements li { border-bottom: 1px solid var(--line); padding-bottom: 10px; }
.public-requirements span { color: var(--muted); display: block; font-size: .9rem; margin-top: 4px; }
@media (min-width: 1101px) {
    .catalog-hero-copy h1 { white-space: nowrap; }
}
@media (max-width: 1100px) {
    .catalog-hero { margin-bottom: 105px; }
    .catalog-filters { grid-template-columns: auto minmax(220px, 1fr) auto; }
    .catalog-filter-features { grid-column: auto; }
    .catalog-filter-actions { justify-content: flex-end; }
    .catalog-benefits { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .room-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .catalog-hero { margin-bottom: 140px; }
    .catalog-hero-copy { padding-right: 20px; }
    .catalog-filters { grid-template-columns: minmax(0, 1fr) auto; }
    .catalog-filter-dates { grid-column: 1 / -1; }
    .site-nav { gap: 14px; }
    .site-nav a { font-size: .82rem; }
    .room-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .detail-layout { grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr); gap: 0 22px; }
    .detail-sidebar-card { padding: 18px; }
    .site-footer-inner { grid-template-columns: 1fr auto; }
    .site-footer-nav { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; }
}
@media (max-width: 700px) {
    .site-header .site-shell { align-items: flex-start; flex-direction: column; gap: 15px; padding-block: 16px; }
    .site-nav { flex-wrap: wrap; gap: 11px 17px; width: 100%; }
    .site-nav-whatsapp { margin-left: auto; }
    .catalog-hero { display: flex; flex-direction: column; margin-bottom: 32px; min-height: 0; }
    .catalog-hero-inner { display: contents; }
    .catalog-hero-copy { order: 1; padding: 34px max(24px, calc((100vw - 100% + 24px) / 2)) 24px; }
    .catalog-hero-image { aspect-ratio: 16 / 10; inset: auto; order: 2; position: relative; }
    .catalog-hero-image::after { background: linear-gradient(180deg, #f2eee5 0%, transparent 25%); }
    .catalog-filters { align-items: stretch; border-radius: 0; box-shadow: 0 10px 24px rgba(33,45,53,.1); grid-template-columns: 1fr; left: auto; margin: 0; order: 3; padding: 18px max(12px, calc((100vw - 100% + 24px) / 2)); position: relative; right: auto; transform: none; width: 100%; }
    .catalog-filter-dates { display: grid; grid-template-columns: 1fr 1fr; }
    .catalog-date-field { width: 100%; }
    .date-picker-panel { max-width: calc(100vw - 24px); width: 296px; }
    .catalog-filter-features { grid-column: auto; }
    .catalog-filter-actions { justify-content: space-between; }
    .feature-picker-panel { position: absolute; width: 100%; }
    .catalog-benefits { gap: 18px 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); padding-inline: 0; }
    .site-shell { width: min(100% - 24px, 1180px); }
    .site-main { padding-block: 32px 52px; }
    .catalog-hero { margin-top: -32px; }
    .room-grid { grid-template-columns: 1fr; }
    .detail-layout { grid-template-columns: minmax(0, 1fr); grid-template-areas: "gallery" "summary" "sidebar" "content"; gap: 0; }
    .gallery-stage { aspect-ratio: 4 / 3; border-radius: 12px; }
    .gallery-arrow { height: 40px; width: 40px; }
    .gallery-map-link { bottom: 10px; left: 10px; min-height: 42px; }
    .gallery-thumbnail { flex-basis: 78px; height: 58px; }
    .gallery-lightbox { padding: 52px 8px 14px; }
    .lightbox-image { max-height: calc(100vh - 175px); }
    .lightbox-arrow { height: 42px; width: 42px; }
    .lightbox-arrow-previous { left: 5px; }
    .lightbox-arrow-next { right: 5px; }
    .lightbox-close { right: 10px; top: 10px; }
    .detail-sidebar { margin-top: 24px; position: static; }
    .detail-content { margin-top: 36px; }
    .feature-groups { grid-template-columns: 1fr; }
    .public-conditions { grid-template-columns: 1fr; }
    .commercial-data { flex-wrap: wrap; }
    .contact-page { min-height: 0; padding-block: 22px 40px; }
    .site-footer-inner { align-items: start; grid-template-columns: 1fr; padding-block: 24px; }
    .site-footer-nav { display: grid; gap: 11px; grid-column: auto; grid-row: auto; }
    .site-footer-copyright { white-space: normal; }
    .legal-identity div { grid-template-columns: 1fr; }
}
@media (max-width: 440px) {
    .catalog-results-toolbar { align-items: flex-start; flex-direction: column; gap: 8px; }
    .catalog-sort { justify-content: space-between; width: 100%; }
    .catalog-sort select { max-width: 100%; }
    .catalog-filter-dates { grid-template-columns: 1fr; }
    .catalog-filter-actions { align-items: stretch; flex-direction: column; }
    .catalog-filter-actions button { width: 100%; }
    .catalog-benefits { grid-template-columns: 1fr; }
    .contact-actions { align-items: stretch; flex-direction: column; }
    .contact-action { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .gallery-main-image { --gallery-slide-duration: 300ms; }
}
