.places-control{display:block;position:relative;min-width:0}.places-popup{position:absolute;inset-inline:0;top:calc(100% + 12px);z-index:45;min-width:min(310px,75vw);background:#fff;border:1px solid #dfe4e8;border-radius:12px;box-shadow:0 12px 32px #18243826;overflow:hidden}.places-popup[hidden]{display:none}.places-popup button{display:flex;align-items:center;gap:12px;text-align:start;width:100%;padding:13px 15px;border:0;background:white;color:#182233;font:inherit;font-size:14px;line-height:1.5;cursor:pointer}.places-popup button:hover,.places-popup button[aria-selected=true]{background:#eaf8f7}.places-popup button span:first-child{color:#00858e;font-size:23px}.places-attribution{display:block;text-align:end;padding:10px 14px;border-top:1px solid #edf0f2;color:#5e5e5e;font:400 12px Arial,sans-serif;white-space:nowrap;letter-spacing:normal}.places-status{display:block;font-size:12px;line-height:1.5;font-weight:400;color:#536273;white-space:normal}.places-status:empty{display:none}.area-map{margin:16px 0 24px;border:1px solid #dfe4e8;border-radius:12px;overflow:hidden;background:#fff;max-width:100%}.area-map.container{margin-inline:auto}.area-map-heading,.area-map-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 18px}.area-map-heading figcaption{display:flex;flex-wrap:wrap;gap:9px}.area-map-heading button{background:none;border:0;color:#007e86;font:inherit;cursor:pointer;padding:8px}.area-map img{display:block;width:100%;height:auto;aspect-ratio:640/300;object-fit:contain}.area-map-foot{font-size:13px;color:#526072}.area-map a{color:#007e86}.hospitality-section{margin-top:24px}.hospitality-section h2{margin:0 0 12px}.hospitality-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0}.hospitality-toolbar h3{margin:0;font-size:18px}.hospitality-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;max-width:620px}.hospitality-day,.hospitality-weekday{text-align:center;min-width:0}.hospitality-weekday{font-size:12px;color:#647184;padding:7px 0}.hospitality-day{min-height:55px;border-radius:8px;border:1px solid #e4e8eb;padding:7px 2px;background:#f6f7f8;color:#647184;font-size:14px}.hospitality-day.available{background:#e7f6f3;border-color:#a9d6d0;color:#006b72}.hospitality-day small{display:block;font-size:10px;margin-top:3px}.hospitality-day.blank{visibility:hidden}.hospitality-legend{font-size:13px;color:#526072;line-height:1.6}.hospitality-form{margin-top:20px;padding-top:18px;border-top:1px solid #e7eaed}.hospitality-form .form-grid{margin-bottom:16px}.hospitality-review{padding:17px 0;border-bottom:1px solid #e6e9ec}.hospitality-review p{white-space:pre-wrap;overflow-wrap:anywhere}.hospitality-review header{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.hospitality-stars{color:#007e86;letter-spacing:2px}.stay-followup{margin-top:16px;padding-top:16px;border-top:1px solid #e5e8eb}.stay-followup textarea{width:100%;min-height:90px}.stay-followup label{display:grid;gap:6px;margin:12px 0}.hospitality-error{color:#aa3429;line-height:1.5}.hospitality-notice{color:#49606a;font-size:14px}.hospitality-prefs label{display:flex;align-items:center;gap:10px;margin:15px 0}.hospitality-prefs input{width:18px;height:18px}.hospitality-prefs button{margin-top:8px}.hospitality-admin-list{display:grid;gap:16px}.hospitality-admin-list article{background:#fff;border:1px solid #e1e6ec;border-radius:12px;padding:18px;overflow-wrap:anywhere}.hospitality-admin-list article p{white-space:pre-wrap}.hospitality-admin-list form{display:flex;gap:8px;flex-wrap:wrap}.hospitality-admin-list input{flex:1;min-width:180px;padding:10px;border:1px solid #ccd5dd;border-radius:7px}@media(max-width:600px){.area-map-heading,.area-map-foot{padding:12px;gap:8px}.area-map-foot{align-items:start;flex-direction:column}.hospitality-grid{gap:3px}.hospitality-day{min-height:50px;font-size:13px}.hospitality-toolbar{gap:6px}.hospitality-toolbar button{padding:9px}.places-popup{min-width:0;width:max(100%,240px);max-width:calc(100vw - 48px)}.hospitality-toolbar h3{font-size:15px}.area-map-heading{font-size:14px}}

@media(max-width:600px){.area-map img{aspect-ratio:3/2}}

/* Keep the calendar, month controls and editor on the same content edges. */
.hospitality-grid { max-width: none; width: 100%; gap: 4px; }
.hospitality-toolbar { display: grid; grid-template-columns: 1fr auto 1fr; gap: 16px; }
.hospitality-toolbar > button { min-height: 48px; }
.hospitality-toolbar > button:first-child { justify-self: start; }
.hospitality-toolbar > button:last-child { justify-self: end; }
.hospitality-toolbar h3 { text-align: center; }
.hospitality-day { min-height: 56px; padding-block: 8px; }
.hospitality-day small { line-height: 1.4; overflow-wrap: anywhere; }
.hospitality-form { margin-top: 24px; padding-top: 16px; }
.hospitality-form .check-line { min-height: 44px; align-items: center; padding-block: 8px; }
.hospitality-form .check-line input { flex: 0 0 20px; width: 20px; height: 20px; margin: 0; accent-color: #007e86; }
.hospitality-form > .help-text { margin: 8px 0 24px; font-size: 14px; line-height: 1.6; }
.hospitality-form .form-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; margin-bottom: 20px; }
.hospitality-form .form-grid > label { min-width: 0; }
body:not(.admin-page) .hospitality-form .form-grid :is(input, select) { height: 48px; padding-block: 10px; }
.hospitality-form .hospitality-error:empty { display: none; }
.hospitality-form .hospitality-error:not(:empty) { margin: 0 0 16px; }
.hospitality-actions { display: flex; flex-wrap: wrap; align-items: stretch; gap: 12px; }
.hospitality-actions > button { display: inline-flex; align-items: center; justify-content: center; min-width: 160px; min-height: 48px; margin: 0; padding: 12px 16px; font: 600 16px/1.4 "DM Sans", Arial, sans-serif; text-align: center; white-space: normal; overflow-wrap: anywhere; }
.hospitality-actions > .primary-button::before { width: 20px; height: 20px; }
.hospitality-section .help-text + p { margin: 12px 0 0; }
.hospitality-section > .card-actions:empty { display: none; }
@media (max-width: 760px) {
  .hospitality-form .form-grid { grid-template-columns: 1fr; }
  .hospitality-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hospitality-actions > button { min-width: 0; width: 100%; }
}
@media (max-width: 420px) {
  .hospitality-actions { grid-template-columns: 1fr; }
}
