/* A quiet, photo-led interface inspired by the supplied listing reference. */
:root {
  --ink: #172320;
  --green: #214b3e;
  --muted: #747b7a;
  --line: #e8eae8;
  --soft: #f4f5f3;
}
body { background: #fff; color: var(--ink); font-family: LocalSans, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 14px; }
/* One grid for every page: 1280px of content between 40px gutters. */
.wrap { max-width: 1360px; padding-left: 40px; padding-right: 40px; }
@media(max-width:900px) { .wrap { padding-left: 24px; padding-right: 24px; } }
/* Forms and single-column pages keep a readable measure inside the wider grid. */
.wrap.narrow { max-width: 840px; }
.icon { flex-shrink: 0; vertical-align: middle; }
.header { height: 76px; display: grid; grid-template-columns: 1fr auto; gap: 20px; border-color: var(--line); position: relative; z-index: 30; }
.brand { font-size: 21px; gap: 10px; font-weight: 650; letter-spacing: -1px; }
.brand-light { font-weight: 450; margin-left: 0; }
.brand-mark { width: 34px; height: 36px; border-radius: 9px; font-family: Georgia, serif; font-size: 31px; font-style: italic; background: var(--green); }
.brand-mark span { font-family: sans-serif; font-style: normal; font-size: 15px; top: -2px; right: 2px; }
.header-tools { justify-self: end; display: flex; align-items: center; gap: 26px; }
.language-indicator .icon { width: 19px; height: 19px; color: var(--green); }
.account-avatar { width: 33px; height: 33px; background: #eef2ee; color: var(--green); display: grid; place-items: center; border-radius: 50%; font-size: 12px; font-weight: 650; }
.account-avatar .icon { width: 19px; height: 19px; }
.button { background: var(--green); border-radius: 7px; font-weight: 600; font-size: 13px; padding: 14px 22px; }
.button:hover { background: #163d30; }
.button.secondary { background: var(--soft); color: var(--ink); }
h1, h2, h3 { color: var(--ink); }
h2 { font-size: 25px; font-weight: 550; letter-spacing: -.7px; }
.prose { color: #515957; font-size: 14px; line-height: 1.75; }
.muted { color: var(--muted); }
.soft-button { background: #f0f1ef; padding: 10px 18px; display: inline-flex; align-items: center; border-radius: 6px; font-size: 12px; font-weight: 550; }
.soft-button:hover { background: #e6e9e5; text-decoration: none; }
/* The title and facts span both the photo and the inquiry columns. */
.listing-page { padding-top: 30px; padding-bottom: 26px; }
.listing-heading { display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.listing-heading h1 { font-size: 34px; line-height: 1.3; font-weight: 550; letter-spacing: -1.2px; margin: 0 0 12px; }
.quiet-action { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; white-space: nowrap; }
.quiet-action .icon { width: 18px; height: 18px; }
.listing-facts { display: flex; align-items: center; flex-wrap: wrap; gap: 0; margin: 3px 0 28px; font-size: 12px; }
.listing-facts > * { display: inline-flex; gap: 9px; align-items: center; padding-right: 24px; margin-right: 24px; border-right: 1px solid #cdd2ce; line-height: 1; }
.listing-facts > :last-child { padding-right: 0; margin-right: 0; border: 0; }
.listing-facts .icon { width: 20px; height: 20px; }
.stay-layout { display: grid; grid-template-columns: minmax(0, 1fr) 338px; align-items: start; gap: 36px; }
.stay-main { min-width: 0; }
.photo-mosaic { display: grid; grid-template-columns: 2.12fr 1fr; grid-template-rows: 1fr 1fr; gap: 7px; height: 378px; position: relative; border-radius: 13px; overflow: hidden; background: #ede9e0; }
.mosaic-photo { overflow: hidden; display: block; min-width: 0; min-height: 0; }
.mosaic-photo:first-child { grid-row: 1 / 3; }
.mosaic-photo img { width: 100%; height: 100%; object-fit: cover; transition: filter .2s; }
.mosaic-photo:hover img { filter: brightness(.95); }
.crop-sofa img { object-position: 88% 68%; transform: scale(1.8); transform-origin: 80% 70%; }
.crop-window img { object-position: 33% 35%; transform: scale(1.5); transform-origin: 30% 25%; }
.single-photo .mosaic-photo, .mosaic-placeholder { grid-column: 1 / -1; grid-row: 1 / -1; }
.mosaic-photo:nth-child(2):last-of-type { grid-row: 1 / 3; }
.mosaic-placeholder { position: relative; }
.mosaic-placeholder img { height: 100%; width: 100%; object-fit: cover; }
.mosaic-placeholder span { position: absolute; left: 20px; bottom: 20px; background: #fff; padding: 8px 14px; border-radius: 5px; font-size: 12px; }
.all-photos-button { position: absolute; right: 18px; bottom: 18px; display: flex; align-items: center; gap: 8px; padding: 10px 14px; background: white; border-radius: 7px; font-size: 11px; box-shadow: 0 2px 8px #0001; }
.all-photos-button .icon { width: 16px; height: 16px; }
/* The native disclosure keeps the initial card compact, with no JS dependency. */
.reservation-card { position: sticky; top: 24px; padding: 26px; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 5px 24px #273d2612; background: #fff; scroll-margin-top: 24px; }
.stay-price { display: flex; gap: 7px; align-items: baseline; margin-bottom: 20px; color: #515957; font-size: 13px; }
.stay-price strong { color: var(--green); font-size: 34px; font-weight: 600; letter-spacing: -1px; }
.reservation-form label { display: block; margin: 0; font-weight: 600; font-size: 9px; letter-spacing: .1px; }
.date-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.date-fields > div, .guest-field { border: 1px solid var(--line); padding: 13px 12px 9px; border-radius: 7px; min-width: 0; }
.reservation-form input { width: 100%; min-width: 0; padding: 4px 0; border: none; background: transparent; font-size: 12px; color: #515957; }
.reservation-form input[type=date] { font-size: 11px; min-height: 23px; }
.guest-field { margin-top: 7px; margin-bottom: 18px; }
.contact-details summary { width: 100%; text-align: center; display: block; list-style: none; cursor: pointer; }
.contact-details summary::-webkit-details-marker { display: none; }
.contact-details[open] summary { background: #eff3ef; color: var(--green); }
.contact-fields { margin-top: 20px; }
.contact-fields > p { color: var(--muted); font-size: 12px; }
.contact-fields > div { margin: 15px 0; }
.contact-fields label { font-size: 11px; margin-bottom: 6px; }
.contact-fields input, .contact-fields textarea { padding: 10px; border: 1px solid #d9dfd9; border-radius: 6px; }
.contact-fields .button { width: 100%; }
.consent-field { display: flex; flex-wrap: wrap; align-items: start; gap: 8px; }
.consent-field input { margin-top: 3px; }
.consent-field label { flex: 1; font-size: 10px; font-weight: 400; color: #66716b; line-height: 1.6; }
.no-charge { text-align: center; color: var(--muted); font-size: 11px; margin: 16px 0 0; }
.inquiry-disclaimer { text-align: center; color: #90958f; font-size: 10px; line-height: 1.6; margin: 11px 0 0; }
.reservation-form .errorlist { padding-left: 15px; font-size: 11px; }
.host-intro { display: flex; gap: 16px; align-items: center; padding: 27px 0 25px; border-bottom: 1px solid var(--line); }
.host-avatar { height: 55px; width: 55px; flex-shrink: 0; border-radius: 50%; background: #e9eeea; color: var(--green); display: grid; place-items: center; font-size: 23px; }
.host-intro h2 { font-size: 17px; margin: 0 0 5px; letter-spacing: -.3px; }
.host-intro p { font-size: 12px; color: var(--muted); margin: 0; line-height: 1.6; }
.stay-highlights { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 17px; padding: 28px 0 25px; }
.stay-highlights > div { display: flex; gap: 11px; align-items: start; }
.stay-highlights .icon { width: 25px; height: 25px; }
.stay-highlights h3 { font-size: 12px; line-height: 1.5; margin: 0 0 5px; }
.stay-highlights p { color: var(--muted); font-size: 11px; line-height: 1.6; margin: 0; }
.stay-section { padding: 26px 0; border-bottom: 1px solid var(--line); }
.stay-section h2, .stay-bottom h2 { font-size: 23px; margin: 0 0 17px; letter-spacing: -.6px; }
.about-stay { padding-top: 16px; }
.about-stay .prose p:last-child { margin-bottom: 0; }
.offering-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 25px 20px; padding: 10px 0 4px; }
.offering-grid > div { display: flex; gap: 17px; align-items: center; font-size: 12px; }
.offering-grid .icon { width: 25px; height: 25px; }
.sleeping-spaces { display: grid; gap: 18px; }
.sleeping-card { display: flex; align-items: center; gap: 21px; }
.sleeping-card img { width: 190px; height: 120px; object-fit: cover; border-radius: 9px; }
.sleeping-card h3 { font-size: 14px; margin: 0 0 5px; }
.sleeping-card p { color: var(--muted); font-size: 12px; margin: 0; }
.room-symbol { width: 80px; height: 80px; border: 1px solid var(--line); display: grid; place-items: center; border-radius: 8px; }
.travel-dates { display: flex; justify-content: space-between; gap: 25px; padding: 30px 0 34px; border: 0; }
.travel-dates h2 { margin-bottom: 7px; }
.travel-dates p { color: var(--muted); font-size: 12px; margin-bottom: 6px; }
.subtle-note { font-size: 10px; color: #939a95; }
.date-callout { display: flex; gap: 13px; align-items: center; padding: 16px 18px; border: 1px solid var(--line); border-radius: 8px; align-self: center; }
.date-callout span { display: grid; gap: 5px; }
.date-callout strong { font-size: 12px; font-weight: 550; }
.date-callout small { color: var(--muted); font-size: 10px; }
.date-callout > .icon:last-child { width: 17px; margin-left: 10px; }
.stay-bottom { display: grid; grid-template-columns: 1.3fr 1fr; border-top: 1px solid var(--line); padding: 30px 0 10px; gap: 36px; }
.good-to-know { padding-right: 28px; border-right: 1px solid var(--line); }
.know-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 25px 30px; }
.know-grid > div { display: flex; align-items: start; gap: 16px; color: #616c65; font-size: 11px; line-height: 1.7; }
.house-rules { margin-top: 22px; color: #68746c; font-size: 12px; }
.house-rules summary { cursor: pointer; color: var(--ink); }
.neighborhood-content { display: flex; gap: 17px; margin-bottom: 16px; }
.neighborhood-content h3 { font-size: 13px; margin: 0 0 13px; }
.neighborhood-content p { font-size: 11px; line-height: 1.8; color: #6d7770; margin: 0; }
.map-illustration { flex: 0 0 115px; min-height: 145px; overflow: hidden; border-radius: 8px; position: relative; background-color: #eaf0e5; background-image: linear-gradient(37deg,transparent 47%,white 48%,white 51%,transparent 52%),linear-gradient(114deg,transparent 44%,#fff 45%,#fff 48%,transparent 49%),linear-gradient(6deg,transparent 45%,#d2dccb 46%,#d2dccb 48%,transparent 49%); background-size: 70px 90px,100px 95px,60px 75px; }
.map-illustration span { position: absolute; left: 43%; top: 38%; color: var(--green); }
.map-illustration .icon { width: 32px; height: 32px; fill: var(--green); stroke: white; }
/* Native :target gallery, also usable without JavaScript. */
.photo-lightbox { display: none; }
.photo-lightbox:target { display: block; position: fixed; inset: 0; z-index: 20; background: #fff; overflow-y: auto; padding: 32px; overscroll-behavior: contain; }
.lightbox-close { position: sticky; top: 0; z-index: 1; border: 1px solid #ddd; }
.lightbox-content { max-width: 1100px; margin: 25px auto; }
.lightbox-content img { width: 100%; height: auto; border-radius: 10px; margin-bottom: 20px; }
.lightbox-content p { font-size: 12px; color: var(--muted); }
/* Shared surfaces keep the same whitespace, typography, and forest green. */
.area-card { background: #f8f9f6; border-color: var(--line); }
/* Listing cards: photo on top, white body, one clear action. */
.cards { gap: 22px; }
.card { display: flex; flex-direction: column; background: #fff; border: 1px solid #29382d14; border-radius: 17px; overflow: hidden; box-shadow: 0 3px 10px #21291c09; transition: transform .18s, box-shadow .18s; }
.card:hover { transform: translateY(-3px); box-shadow: 0 12px 30px #21291c1a; }
.card .card-image { border-radius: 0; }
.card .card-image img { aspect-ratio: 16 / 10; filter: none !important; }
.card .pill { left: 14px; top: 14px; padding: 7px 10px; border-radius: 50px; background: #fffefa; color: #52635a; font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.card-body { display: flex; flex-direction: column; flex: 1; padding: 15px 17px 18px; }
.card .card-meta { display: flex; align-items: center; gap: 5px; margin: 0 0 5px; color: #617269; font-size: 12px; font-weight: 650; letter-spacing: 0; text-transform: none; }
.card-meta .icon { width: 16px; height: 16px; }
.card h3 { margin: 0 0 8px; font-size: 18px; font-weight: 650; letter-spacing: -.4px; }
.card h3 a:hover { text-decoration: none; color: #b45f3e; }
.card .card-detail { margin-bottom: 16px; color: #707b73; font-size: 13px; }
.card .card-price { margin-top: auto; padding-top: 0; border: 0; justify-content: space-between; align-items: center; gap: 12px; font-size: 12px; }
.card-price strong { color: var(--green); }
.card-action { padding: 9px 13px; border-radius: 9px; background: #f1f6f0; color: #243f34; font-size: 13px; font-weight: 650; white-space: nowrap; }
.card-action:hover { background: #e7eee6; text-decoration: none; }
/* Footer links only lead to implemented pages. */
.site-footer { background: #1e4438; padding: 42px 0 19px; margin-top: 0; }
.footer-main { display: grid; grid-template-columns: 1.4fr .8fr .8fr .8fr 1.4fr; gap: 27px; align-items: start; }
.footer-main .brand { color: white; font-size: 21px; }
.footer-main .brand-mark { background: #f8faf6; color: var(--green); }
.footer-brand p { color: #eff4ee; font-size: 12px; margin: 15px 0 11px; }
.footer-brand > span { font-size: 10px; color: #b1c5b6; }
.footer-column { display: flex; flex-direction: column; gap: 7px; font-size: 11px; color: #d4e0d6; }
.footer-column h2 { font-size: 12px; font-weight: 600; color: white; letter-spacing: 0; margin: 0 0 8px; }
.footer-skyline { width: 100%; height: 130px; object-fit: contain; align-self: end; }
.footer-bottom { border-top: 1px solid #ffffff25; margin-top: 23px; padding-top: 15px; display: flex; justify-content: space-between; font-size: 10px; color: #d0ddd1; }
@media(min-width:1400px) { .photo-mosaic { height: 400px; } }
@media(max-width:1050px) {
  .stay-layout { grid-template-columns: minmax(0,1fr) 300px; gap: 27px; }
  .photo-mosaic { height: 340px; }
  .reservation-card { padding: 22px; }
  .stay-highlights { grid-template-columns: 1fr 1fr; gap: 20px; }
  .offering-grid { grid-template-columns: 1fr 1fr; }
  .footer-main { grid-template-columns: 1.5fr 1fr 1fr 1fr; }
  .footer-skyline { display: none; }
  .travel-dates { flex-direction: column; }
  .date-callout { align-self: stretch; }
}
@media(max-width:780px) {
  .header { grid-template-columns: 1fr auto; height: 72px; }
  .header-tools { gap: 14px; }
  .stay-layout { grid-template-columns: 1fr; gap: 22px; }
  .reservation-card { position: static; max-width: none; }
  .listing-heading h1 { font-size: 29px; }
  .listing-facts { gap: 13px 0; margin-bottom: 22px; }
  .listing-facts > * { margin-right: 16px; padding-right: 16px; font-size: 11px; }
  .photo-mosaic { height: 360px; }
  .stay-highlights { grid-template-columns: repeat(4,1fr); gap: 16px; }
  .stay-highlights > div { flex-direction: column; }
  .stay-bottom { grid-template-columns: 1fr; padding-top: 25px; gap: 25px; }
  .good-to-know { border-right: 0; padding-right: 0; padding-bottom: 25px; border-bottom: 1px solid var(--line); }
  .neighborhood-summary { padding-bottom: 20px; }
  .travel-dates { flex-direction: row; }
  .date-callout { align-self: center; }
  .date-fields { gap: 10px; }
  .reservation-form input[type=date] { font-size: 13px; }
}
@media(max-width:520px) {
  .wrap { padding-left: 22px; padding-right: 22px; }
  .header { height: 68px; }
  .header .brand { font-size: 19px; }
  .header .brand-mark { height: 31px; width: 29px; font-size: 27px; }
  .header-tools { gap: 8px; }
  .listing-page { padding-top: 22px; }
  .listing-heading { align-items: start; gap: 16px; }
  .listing-heading h1 { font-size: 27px; letter-spacing: -.8px; }
  .quiet-action { font-size: 0; padding-top: 8px; }
  .quiet-action .icon { width: 20px; height: 20px; }
  .listing-facts > * { margin-right: 11px; padding-right: 11px; gap: 6px; }
  .listing-facts > :last-child { flex-basis: 100%; }
  .listing-facts > :nth-child(3) { border: 0; }
  .listing-facts .icon { width: 17px; height: 17px; }
  .photo-mosaic { height: 275px; grid-template-columns: 1.8fr 1fr; border-radius: 10px; gap: 5px; }
  .all-photos-button { padding: 8px 10px; right: 10px; bottom: 10px; }
  .host-intro { gap: 13px; padding: 23px 0; }
  .host-avatar { width: 44px; height: 44px; font-size: 19px; }
  .host-intro h2 { font-size: 15px; }
  .host-intro p { font-size: 11px; }
  .stay-highlights { grid-template-columns: 1fr 1fr; gap: 23px 18px; padding-bottom: 20px; }
  .stay-highlights > div { flex-direction: row; gap: 11px; }
  .stay-section h2, .stay-bottom h2 { font-size: 21px; }
  .offering-grid { gap: 22px 14px; }
  .offering-grid > div { gap: 12px; font-size: 11px; }
  .sleeping-card img { width: 120px; height: 92px; }
  .sleeping-card { gap: 16px; }
  .travel-dates { flex-direction: column; gap: 18px; }
  .date-callout { align-self: stretch; }
  .reservation-card { padding: 23px; border-radius: 12px; }
  .know-grid { gap: 20px; }
  .know-grid > div { gap: 12px; }
  .map-illustration { flex-basis: 100px; min-height: 130px; }
  .footer-main { grid-template-columns: 1fr 1fr; gap: 30px 24px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-main .brand { font-size: 22px; }
  .footer-bottom { gap: 9px; flex-direction: column; font-size: 9px; }
  .hero h1 { font-size: 39px; }
  .photo-lightbox:target { padding: 20px; }
}
@media(prefers-reduced-motion:reduce) { .mosaic-photo img, .card { transition: none; } .card:hover { transform: none; } }
/* Calendar selection mirrors the real inquiry date fields. */
[hidden] { display: none !important; }
.travel-dates > div:first-child { flex: 1; }
.stay-calendar { flex: 0 0 325px; max-width: 100%; }
.calendar-heading { display: flex; justify-content: space-between; align-items: center; gap: 15px; margin-bottom: 17px; }
.calendar-heading h3 { margin: 0; font-size: 12px; font-weight: 550; text-transform: capitalize; }
.calendar-heading button { border: 0; background: transparent; font-size: 23px; width: 30px; height: 30px; border-radius: 50%; line-height: 1; }
.calendar-heading button:hover { background: #f0f2ef; }
.calendar-heading button:disabled { opacity: .2; cursor: default; }
.calendar-weekdays, .calendar-days { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; gap: 3px; }
.calendar-weekdays { font-size: 9px; color: #8c9390; margin-bottom: 8px; }
.calendar-days button { display: grid; place-items: center; width: 100%; aspect-ratio: 1; border: 0; background: transparent; color: #69746e; border-radius: 50%; font-size: 11px; }
.calendar-days button:hover { background: #edf2ed; }
.calendar-days button:disabled { opacity: .3; cursor: default; }
.calendar-days button[aria-current=date] { box-shadow: inset 0 0 0 1px #c9d6cd; }
.calendar-days button.selected-day { background: var(--green); color: white; }
.calendar-days button.in-range { background: #edf2ed; border-radius: 4px; }
.calendar-footer { display: flex; justify-content: space-between; align-items: center; margin-top: 10px; gap: 8px; }
.calendar-footer .calendar-status { font-size: 9px; margin: 0; color: #6f7b73; }
.calendar-clear { border: 0; background: transparent; padding: 0; color: #54635a; font-size: 9px; text-decoration: underline; }
@media(max-width:1050px) and (min-width:781px) { .stay-calendar { flex-basis: auto; width: 325px; align-self: center; } }
@media(max-width:600px) { .travel-dates { flex-direction: column; } .stay-calendar { flex-basis: auto; width: 100%; max-width: 360px; align-self: center; } }
.two-photos .mosaic-photo:nth-child(2) { grid-row: 1 / 3; }
.reservation-card:has(.contact-details[open]) { max-height: calc(100dvh - 48px); overflow-y: auto; scrollbar-width: thin; }
@media(max-width:780px) { .reservation-card:has(.contact-details[open]) { max-height: none; overflow: visible; } }
/* Owner-only controls for the shared map catalog. */
.map-preferences h1 { max-width:850px; }
.preferences-grid { display:grid; grid-template-columns:1fr 1fr; gap:25px; margin:35px 0; }
.preference-panel { padding:27px; border:1px solid var(--line); border-radius:12px; background:#fafbf8; }
.preference-panel > p { font-size:13px; color:#788571; line-height:1.8; }
.preference-panel h2 { font-size:23px; margin-bottom:18px; }
.map-preview-list { padding:0; list-style:none; margin:20px 0; }
.map-preview-list li { display:flex; justify-content:space-between; gap:15px; border-bottom:1px solid #e3e9dd; padding:11px 0; font-size:12px; }
.map-preview-list small { color:#8b9a81; font-size:10px; white-space:nowrap; }
.preferences-section { border-top:1px solid var(--line); padding:28px 0; }
.map-rule { display:flex; align-items:center; justify-content:space-between; gap:22px; padding:20px 0; border-bottom:1px solid var(--line); }
.map-rule h3,.catalog-places h3 { font-size:15px; margin:0 0 7px; }
.map-rule p,.catalog-places p { font-size:11px; color:#8c9982; margin:0 0 4px; }
.rule-actions { display:flex; flex-direction:column; gap:10px; align-items:end; }
.rule-actions form { display:flex; align-items:end; gap:10px; }
.rule-actions label,.catalog-places label { display:grid; gap:5px; font-size:10px; color:#829075; }
.rule-actions input[type=number] { width:80px; }
.rule-actions .button,.catalog-places .button { font-size:11px; padding:12px 17px; }
.catalog-search { margin:20px 0; max-width:650px; }
.catalog-search label { display:block; font-size:12px; margin-bottom:8px; }
.catalog-search > div { display:flex; gap:10px; }
.catalog-search input { flex:1; min-width:0; }
.catalog-places { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.catalog-places article { border:1px solid var(--line); border-radius:9px; padding:22px; display:flex; flex-direction:column; gap:20px; justify-content:space-between; }
.catalog-places form { display:flex; align-items:end; gap:12px; }
@media(max-width:780px) { .preferences-grid,.catalog-places { grid-template-columns:1fr; } .map-rule { flex-direction:column; align-items:start; } .rule-actions { align-items:start; } }
@media(max-width:480px) { .preference-panel { padding:20px; } .rule-actions form { flex-wrap:wrap; } .catalog-places form { align-items:stretch; flex-direction:column; } .map-preview-list li { flex-direction:column; gap:4px; } }

/* Central local directory */
.catalog-admin{padding-top:38px;padding-bottom:80px}.catalog-heading{display:flex;align-items:center;justify-content:space-between;gap:24px}.catalog-admin h1{font-size:clamp(30px,4vw,46px);letter-spacing:-1.5px;margin:15px 0}.catalog-tabs{display:flex;gap:28px;border-bottom:1px solid #dfe5de;margin:30px 0}.catalog-tabs a{padding:14px 0;color:#737b71;text-decoration:none}.catalog-tabs .active{color:#21483d;border-bottom:2px solid #21483d}.catalog-stats{display:grid;grid-template-columns:repeat(3,1fr) 2fr;gap:24px;padding:28px;background:#f1f4ed;border-radius:16px;margin:24px 0 32px}.catalog-stats strong{display:block;font-size:32px;font-weight:500;color:#21483d}.catalog-stats span,.catalog-stats p{font-size:13px;color:#657265}.catalog-stats p{line-height:1.7;margin:auto}.catalog-filters{display:flex;align-items:end;gap:16px;flex-wrap:wrap}.catalog-filters label{display:grid;gap:8px;font-size:12px;flex:1;min-width:150px}.catalog-filters input,.catalog-filters select{padding:13px;border:1px solid #dce2db;border-radius:9px;background:white;width:100%;font:inherit}.catalog-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.catalog-card{border:1px solid #e1e6df;border-radius:14px;padding:24px;display:flex;flex-direction:column;background:white;transition:box-shadow .2s}.catalog-card:hover{box-shadow:0 8px 25px #21483d0d}.catalog-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.catalog-logo{width:72px;height:64px;display:grid;place-items:center}.catalog-logo img{max-width:100%;max-height:60px;object-fit:contain}.catalog-logo span{font-size:32px;color:#21483d}.catalog-status{font-size:10px;border-radius:20px;padding:7px 10px;background:#f4f0e8;color:#786540}.catalog-status.published{background:#edf3e9;color:#315340}.catalog-card h2{font-size:18px;margin:22px 0 8px}.catalog-card h2 a{text-decoration:none;color:inherit}.catalog-card p{font-size:13px;color:#7a8178;line-height:1.6;min-height:40px}.catalog-tags{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0 24px}.catalog-tags span{font-size:11px;background:#f4f5f1;padding:6px 10px;border-radius:6px}.catalog-card-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid #edf0ea;padding-top:18px;margin-top:auto}.catalog-card-bottom small{font-size:11px;color:#7a8178}.catalog-card-bottom a{font-size:12px;white-space:nowrap}.catalog-pagination{display:flex;gap:20px;align-items:center;justify-content:center;margin-top:32px}.catalog-editor{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:32px;align-items:start}.catalog-field{margin-bottom:22px}.catalog-field>label{display:block;font-size:13px;font-weight:600;margin-bottom:8px}.catalog-field small{display:block;color:#758072;font-size:12px;line-height:1.6;margin-top:7px}.catalog-field input:not([type=checkbox]),.catalog-field select,.catalog-field textarea{width:100%;max-width:100%;box-sizing:border-box;border:1px solid #dce2db;border-radius:8px;padding:12px;background:#fff;font:inherit}.catalog-field .errorlist{color:#a13b31;font-size:13px}.catalog-category-options>div{display:grid;grid-template-columns:1fr 1fr;gap:10px}.catalog-category-options label{display:flex;align-items:center;gap:8px;font-size:13px}.catalog-save{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid #e3e8df;padding-top:24px}.catalog-guidance{padding:30px;background:#eef3e9;border-radius:14px;line-height:1.8;color:#4f624e}.catalog-guidance h2{font-size:23px;color:#21483d}.catalog-guidance p,.catalog-guidance a{font-size:14px}.catalog-directory{margin-top:24px}.catalog-directory>a{display:flex;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid #e3e8df;text-decoration:none;font-size:14px}.catalog-directory>a span{font-size:12px;color:#788173}.catalog-brand-preview{max-width:180px;max-height:110px;object-fit:contain;background:white;padding:15px;border-radius:10px}@media(max-width:900px){.catalog-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-stats{grid-template-columns:repeat(3,1fr)}.catalog-stats p{grid-column:1/-1}.catalog-editor{grid-template-columns:1fr}}@media(max-width:580px){.catalog-heading{align-items:start;flex-direction:column}.catalog-card-grid{grid-template-columns:1fr}.catalog-stats{gap:12px;padding:20px}.catalog-stats strong{font-size:27px}.catalog-tabs{gap:20px;font-size:13px}.catalog-editor .preference-panel{padding:20px}.catalog-category-options>div{grid-template-columns:1fr}}

/* Full-width listing gallery with the inquiry card below on the right. */
.listing-gallery { margin-bottom: 54px; }
.listing-gallery .photo-mosaic { height: clamp(360px, 42vw, 540px); }
@media (min-width: 781px) { .stay-layout > .stay-main > .host-intro { padding-top: 0; } }
@media (max-width: 780px) {
  .listing-gallery { margin-bottom: 36px; }
  .listing-gallery .photo-mosaic { height: 360px; }
  .stay-layout > .reservation-card { grid-row: 1; }
}
@media (max-width: 520px) { .listing-gallery .photo-mosaic { height: 280px; } }

.language-switcher{display:flex;gap:8px;font-size:12px;font-weight:600;letter-spacing:.08em}.language-switcher a{padding:6px 3px;text-decoration:none;color:#7c847b}.language-switcher a[aria-current=page]{color:var(--green);border-bottom:1px solid currentColor}.header .header-tools nav.language-switcher{display:flex}.translation-fields{border-top:1px solid var(--line);margin-top:20px}

/* One member account and the supplied wordmark. */
.brand,.brand:hover,.brand:focus,.brand:active,.brand:visited{text-decoration:none!important;border-bottom:0!important}.brand{gap:9px}.brand-symbol{display:block;width:30px;height:30px}.brand-name{color:#2f4a37;font-size:23px;font-weight:600;letter-spacing:-.045em;line-height:1}.site-footer .brand-symbol{filter:brightness(0) invert(1)}.site-footer .brand-name{color:#fff}.account-avatar img,.host-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}.profile-overview{display:flex;gap:20px;align-items:center;margin:28px 0}.profile-photo{width:88px;height:88px;object-fit:cover;border-radius:50%}.avatar-placeholder{display:grid;place-items:center;background:#e9eee6;color:#244638;font-size:30px}.account-settings .standard-form{padding-bottom:24px}.sent-inquiries{margin:40px 0;border-bottom:1px solid var(--line);padding-bottom:30px}.stay-reviews{padding:36px 0;border-top:1px solid var(--line);margin-top:36px}.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.review-card{padding:22px;background:#f6f7f2;border-radius:12px}.review-card small{display:block;color:var(--muted);font-size:12px;margin-top:8px}.review-card p{font-size:14px;line-height:1.7}.review-rating{float:right;color:var(--green)}.review-editor{max-width:600px;margin-top:24px}.review-editor summary{cursor:pointer}.review-editor .standard-form{margin-top:20px}.inquiry-toggle.button{width:100%;text-align:center}.brand:focus-visible{outline:2px solid #6c8c72;outline-offset:5px}@media(max-width:520px){.header .brand-symbol{width:26px;height:26px}.header .brand-name{font-size:20px}.review-grid{grid-template-columns:1fr}}

.wrap.account-auth,.wrap.account-settings{max-width:560px;margin:52px auto 80px;padding:32px;border:1px solid var(--line);border-radius:18px;background:#fff}.account-auth h1,.account-settings h1{font-size:34px;line-height:1.15;letter-spacing:-1px}.account-auth .eyebrow,.account-settings .eyebrow{font-size:10px;line-height:1.6}.account-auth .standard-form{margin:28px 0 24px}.account-auth .standard-form .button{width:100%;margin-top:12px}.account-auth>p,.account-settings>p{font-size:13px;line-height:1.7}.account-auth input{min-height:46px}@media(max-width:600px){.wrap.account-auth,.wrap.account-settings{width:calc(100% - 32px);margin:24px auto 40px;padding:24px}}

/* Property form: the map location is a two-way switch; the explainer follows the checked option without JavaScript. */
.property-form .detected-area { display: inline-block; margin-top: 8px; padding: 5px 11px; border-radius: 99px; background: #edf3e9; color: #315340; font-size: 12px; font-weight: 600; }
.location-choice { margin: 26px 0 24px; padding: 0; border: 0; }
.location-choice legend { margin-bottom: 10px; padding: 0; font-size: 12px; font-weight: 600; }
.location-switch { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border: 1px solid #dfe3dc; border-radius: 14px; background: #f3f1ec; }
.standard-form .location-option { position: relative; display: flex; align-items: center; justify-content: center; min-height: 46px; margin: 0; padding: 8px 12px; border-radius: 10px; color: #5d685f; font-size: 14px; font-weight: 600; text-align: center; cursor: pointer; transition: background .18s, color .18s, box-shadow .18s; }
.standard-form .location-option input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.location-option small { margin-left: 6px; padding: 2px 7px; border-radius: 99px; background: #e2ebdd; color: #315340; font-size: 10px; font-weight: 650; letter-spacing: .02em; }
.location-option:has(input:checked) { background: #fff; color: #172b23; box-shadow: 0 2px 8px #1b352a1a; }
.location-option:has(input:focus-visible) { outline: 2px solid #d19a71; outline-offset: 2px; }
.location-explainer { display: none; margin: 10px 2px 0; color: #66716a; font-size: 13px; line-height: 1.55; }
.location-choice:has(input[value=approximate]:checked) .location-explainer[data-for=approximate],
.location-choice:has(input[value=exact]:checked) .location-explainer[data-for=exact] { display: block; }
@media (prefers-reduced-motion: reduce) { .standard-form .location-option { transition: none; } }

/* Address finder: OpenStreetMap results the host picks from, then a local-vector preview of the point. */
.address-finder { margin-bottom: 16px; }
.address-search-row { display: flex; gap: 8px; }
.address-search-row input { flex: 1; min-width: 0; }
.standard-form .address-search-row .button { flex: none; margin: 0; padding-inline: 20px; }
.address-results:empty { display: none; }
.address-results { margin-top: 14px; }
.address-results-title { margin: 0 0 8px; font-size: 12px; font-weight: 600; }
.address-message { margin: 0; padding: 12px 14px; border-radius: 10px; background: #f6f1e9; color: #5d5446; font-size: 13px; }
.address-options { display: grid; gap: 6px; }
.standard-form .address-option { display: flex; align-items: flex-start; gap: 12px; margin: 0; padding: 12px 14px; border: 1px solid #e1e4dd; border-radius: 12px; background: #fff; font-weight: 400; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.standard-form .address-option input { width: auto; margin: 3px 0 0; accent-color: #c66540; }
.address-option span { display: grid; gap: 2px; }
.address-option strong { font-size: 14px; font-weight: 650; color: #172b23; }
.address-option small { font-size: 12px; color: #6a756d; }
.address-option em { font-size: 11px; font-style: normal; color: #8a6b45; }
.address-option:hover { border-color: #b9c7b6; }
.address-option:has(input:checked) { border-color: #c66540; box-shadow: 0 0 0 3px #c665401f; }
.address-preview { height: 220px; margin-top: 12px; border: 1px solid #e1e4dd; border-radius: 12px; overflow: hidden; background: #e8ece4; }
@media (max-width: 520px) { .address-preview { height: 180px; } }

/* Room form: fixed room types as tiles, the chosen type's questions, bed counts with − / + steppers. */
.room-kind, .room-details { margin: 0 0 26px; padding: 0; border: 0; }
.room-kind legend, .room-details legend { margin-bottom: 10px; padding: 0; font-size: 12px; font-weight: 600; }
.room-kinds { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.standard-form .room-kind-option { position: relative; display: flex; align-items: center; min-height: 52px; margin: 0; padding: 10px 14px; border: 1px solid #e1e4dd; border-radius: 12px; background: #fff; color: #33463c; font-size: 14px; font-weight: 600; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.standard-form .room-kind-option input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.room-kind-option:hover { border-color: #b9c7b6; }
.room-kind-option:has(input:checked) { border-color: #c66540; background: #fffaf6; color: #172b23; box-shadow: 0 0 0 3px #c665401f; }
.room-kind-option:has(input:focus-visible) { outline: 2px solid #d19a71; outline-offset: 2px; }
.room-details { padding: 18px; border: 1px solid #e1e4dd; border-radius: 16px; background: #fbfaf7; }
.room-details legend { float: left; width: 100%; margin-bottom: 14px; font-size: 15px; font-weight: 650; color: #172b23; }
.room-details legend + * { clear: both; }
.bed-picker { display: grid; gap: 6px; margin-bottom: 14px; }
.bed-picker-title { margin: 0 0 4px; font-size: 12px; font-weight: 600; }
.bed-row { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 6px 14px; padding: 10px 12px; border: 1px solid #e6e8e2; border-radius: 12px; background: #fff; transition: border-color .15s; }
.bed-row.has-beds { border-color: #c6a58a; }
.standard-form .bed-row > label { display: grid; gap: 2px; margin: 0; font-weight: 400; }
.bed-row strong { color: #172b23; font-size: 14px; font-weight: 650; }
.bed-row small { color: #6a756d; font-size: 12px; }
.count-input { display: inline-flex; align-items: center; gap: 8px; }
.standard-form .count-input input { width: 56px; height: 34px; padding: 0 6px; text-align: center; }
.room-form.counts-ready .count-input input { width: 26px; padding: 0; border: 0; background: none; font-size: 15px; font-weight: 650; -moz-appearance: textfield; }
.room-form.counts-ready .count-input input::-webkit-inner-spin-button, .room-form.counts-ready .count-input input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.count-step { display: grid; place-items: center; width: 32px; height: 32px; padding: 0; border: 1px solid #cdd3cb; border-radius: 50%; background: #fff; color: #243f34; font: inherit; font-size: 18px; line-height: 1; cursor: pointer; transition: border-color .15s, background .15s; }
.count-step:hover:not(:disabled) { border-color: #243f34; background: #f4f6f2; }
.count-step:disabled { opacity: .35; cursor: default; }
.bed-size { grid-column: 1 / -1; display: flex; align-items: flex-end; gap: 10px; }
.bed-size > span { padding-bottom: 10px; color: #6a756d; }
.standard-form .bed-size label { flex: 1; margin: 0; font-weight: 500; }
.room-form.counts-ready .bed-custom:not(.has-beds) .bed-size { display: none; }
.room-detail-field { margin: 0 0 14px; }
.room-detail-field:last-child { margin-bottom: 0; }
.standard-form .check-row { display: flex; align-items: center; gap: 10px; margin: 0; padding: 12px 14px; border: 1px solid #e6e8e2; border-radius: 12px; background: #fff; font-size: 14px; font-weight: 500; cursor: pointer; }
.standard-form .check-row input, .room-detail-field input[type=checkbox], .room-detail-field input[type=radio], .room-listings input[type=checkbox] { width: 18px; height: 18px; margin: 0; flex: none; accent-color: #c66540; }
.room-detail-field > div, .room-listings > div { display: flex; flex-wrap: wrap; gap: 6px; }
.room-detail-field > div > div, .room-listings > div > div { display: contents; }
.standard-form .room-detail-field > div label, .standard-form .room-listings > div label { display: flex; align-items: center; gap: 8px; margin: 0; padding: 9px 13px; border: 1px solid #e1e4dd; border-radius: 99px; background: #fff; font-size: 13px; font-weight: 500; cursor: pointer; }
.room-detail-field > div label:has(input:checked), .room-listings > div label:has(input:checked) { border-color: #c66540; background: #fffaf6; }
.room-listings { margin: 6px 0 18px; }
.room-list { margin: -4px 0 16px; padding-left: 18px; font-size: 14px; }
.room-list li { margin: 3px 0; }
@media (max-width: 600px) { .room-kinds { grid-template-columns: 1fr 1fr; } .room-details { padding: 14px; } }
.room-tag { display: inline-block; margin-left: 6px; padding: 2px 8px; border-radius: 99px; background: #f6e9df; color: #8a4a2d; font-size: 10px; font-weight: 650; letter-spacing: .02em; vertical-align: 2px; }
.room-tag.is-private { background: #e7efe3; color: #315340; }
.room-spaces { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.room-spaces li { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 0; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; }
.room-spaces strong { font-size: 14px; }
.room-spaces small { flex-basis: 100%; color: var(--muted); font-size: 12px; }
@media (min-width: 700px) { .bed-picker { grid-template-columns: 1fr 1fr; } .bed-picker-title, .bed-custom { grid-column: 1 / -1; } }
.preview-banner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin: 0 0 20px; padding: 12px 16px; border: 1px solid #efc9b5; border-radius: 12px; background: #fdf3ec; color: #6d3a22; font-size: 14px; }
.preview-banner a { color: inherit; font-weight: 650; text-decoration: underline; text-underline-offset: 3px; }
.calendar-days button.blocked-day { text-decoration: line-through; }

/* Header menu: three lines and the avatar; the panel opens on hover, focus or click. */
.account-menu { position: relative; }
.account-trigger { display: flex; align-items: center; gap: 10px; padding: 4px 4px 4px 12px; border: 1px solid #dfe3dc; border-radius: 99px; background: #fff; color: var(--green); cursor: pointer; transition: box-shadow .18s, border-color .18s; }
.account-trigger, .account-trigger:hover, .account-dropdown a, .account-dropdown a:hover, .account-dropdown a:focus { text-decoration: none; }
.account-trigger:hover, .account-menu.is-open .account-trigger, .account-menu:focus-within .account-trigger { border-color: #c9d1c6; box-shadow: 0 4px 14px #1b352a1f; }
.account-trigger:focus-visible { outline: 2px solid #d19a71; outline-offset: 2px; }
.menu-lines { display: grid; gap: 3.5px; width: 16px; }
.menu-lines span { display: block; height: 2px; border-radius: 2px; background: currentColor; }
.account-avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
/* The padding bridges the gap so the pointer can travel from the button into the panel. */
.account-dropdown { position: absolute; top: 100%; right: 0; z-index: 50; display: none; min-width: 250px; padding-top: 10px; }
.account-dropdown::before { content: ""; position: absolute; inset: 10px 0 0; z-index: -1; border: 1px solid #e3e6e0; border-radius: 16px; background: #fff; box-shadow: 0 18px 40px #1b352a24; }
.account-menu.is-open .account-dropdown { display: grid; padding: 18px 8px 8px; }
@media (hover: hover) { .account-menu:hover .account-dropdown { display: grid; padding: 18px 8px 8px; } }
.account-menu:not(.js-menu):focus-within .account-dropdown { display: grid; padding: 18px 8px 8px; }
.account-dropdown a, .account-dropdown form button { display: flex; align-items: center; gap: 11px; width: 100%; padding: 10px 12px; border: 0; border-radius: 10px; background: none; color: #22352c; font: inherit; font-size: 14px; font-weight: 500; text-align: left; white-space: nowrap; cursor: pointer; }
.account-dropdown a:hover, .account-dropdown a:focus-visible, .account-dropdown form button:hover { background: #f3f4f0; outline: none; }
.account-dropdown .icon, .account-dropdown svg { width: 17px; height: 17px; color: #5d6b62; }
.account-dropdown hr { margin: 6px 4px; border: 0; border-top: 1px solid #ebede8; }
.account-dropdown form { margin: 0; }
.account-dropdown form button { color: #6a4636; }
.menu-who { display: grid; gap: 2px; margin: 0; padding: 4px 12px 10px; border-bottom: 1px solid #ebede8; margin-bottom: 6px; }
.menu-who strong { color: #172b23; font-size: 14px; }
.menu-who small { color: #6b766f; font-size: 12px; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 600px) { .account-dropdown { position: fixed; top: 64px; right: 12px; left: 12px; min-width: 0; } .account-trigger { gap: 8px; padding-left: 10px; } }
@media (prefers-reduced-motion: reduce) { .account-trigger { transition: none; } }
.header .account-dropdown { gap: 2px; font-size: 14px; letter-spacing: 0; }
