/* Manage My Guests – shared styles for public booking pages and the wp-admin back office. All rules are scoped. */
.mmg-page,.mmg-admin,.mmg-embed{--mmg-brand:#0f6b5c;--mmg-ink:#16202a;--mmg-muted:#5d6b7a;--mmg-line:#e3e7ec;--mmg-card:#fff;--mmg-bad:#b91c1c;--mmg-warn:#b45309;--mmg-good:#15803d;--mmg-input-bg:#fff;--mmg-input-text:inherit;--mmg-input-border:#c9d1da;--mmg-input-radius:8px;--mmg-gap:16px}
.mmg-page{color:var(--mmg-ink)}
.mmg-page .mmg-wrap,.mmg-main .mmg-wrap{max-width:1100px;margin:0 auto}
.mmg-main .mmg-wrap{padding:24px 16px}
.mmg-embed{margin:0;padding:12px;font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--mmg-ink);background:#f6f7f9}
.mmg-wrap{max-width:1100px;margin:0 auto;padding:24px 16px}
.mmg-page *,.mmg-embed *{box-sizing:border-box}
.mmg-card{background:var(--mmg-card);border:1px solid var(--mmg-line);border-radius:10px;padding:18px 20px;margin:0 0 var(--mmg-gap)}
.mmg-admin .mmg-card{max-width:none}
.mmg-narrow{max-width:640px;margin-left:auto;margin-right:auto}
.mmg-muted{color:var(--mmg-muted)}.mmg-small{font-size:.86em}.mmg-pre{white-space:pre-line}.mmg-nowrap{white-space:nowrap}.mmg-mt{margin-top:12px}
.mmg-warn{color:var(--mmg-warn)}
.mmg-page label,.mmg-embed label{display:block;font-weight:600;font-size:.9em;margin:10px 0 4px}
.mmg-page label.mmg-check,.mmg-embed label.mmg-check{font-weight:400}
.mmg-page input:not([type=checkbox]):not([type=radio]),.mmg-page select,.mmg-page textarea,
.mmg-embed input:not([type=checkbox]):not([type=radio]),.mmg-embed select,.mmg-embed textarea{width:100%;padding:9px 10px;border:var(--mmg-input-border-width,1px) solid var(--mmg-input-border);border-radius:var(--mmg-input-radius);font:inherit;background:var(--mmg-input-bg);color:var(--mmg-input-text)}
.mmg-page textarea,.mmg-embed textarea{min-height:80px}
.mmg-btn{display:inline-block;background:var(--mmg-brand);color:#fff;border:0 solid transparent;border-radius:8px;padding:10px 18px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none!important;line-height:1.3}
.mmg-btn:hover{filter:brightness(1.1)}
.mmg-row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
.mmg-row>*{flex:1 1 150px;min-width:0}
.mmg-row>.mmg-shrink{flex:0 0 auto}.mmg-row>.mmg-grow{flex:3 1 260px}
.mmg-grid{display:grid;gap:var(--mmg-gap);grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.mmg-grid>.mmg-card{margin:0}
.mmg-stats{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));margin:12px 0 16px}
.mmg-stats>.mmg-card{margin:0;padding:14px 16px}
.mmg-stat{font-size:1.6em;font-weight:700;line-height:1.2}.mmg-stat-sm{font-size:1.15em}
.mmg-link-card{display:block;text-decoration:none;color:inherit}
.mmg-table{width:100%;border-collapse:collapse}
.mmg-table th,.mmg-table td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--mmg-line);vertical-align:top}
.mmg-num{text-align:right!important}
.mmg-result{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;border-top:1px solid var(--mmg-line);padding:14px 0}
.mmg-result h3{margin:0 0 2px}.mmg-right{text-align:right;min-width:140px}.mmg-grow{flex:2 1 220px}
.mmg-price{font-size:1.3em;font-weight:700}
.mmg-flash{padding:10px 14px;border-radius:8px;margin:0 0 14px}.mmg-flash-error{background:#fdecec;color:#7f1d1d}
.mmg-pill{display:inline-block;padding:1px 9px;border-radius:99px;font-size:12px;font-weight:600;vertical-align:middle}
.mmg-pill-ok{background:#e7f6ec;color:var(--mmg-good)}.mmg-pill-warn{background:#fff4e0;color:var(--mmg-warn)}.mmg-pill-bad{background:#fdecec;color:var(--mmg-bad)}
.mmg-code{background:#f0f2f4;padding:10px;border-radius:6px;white-space:pre-wrap}
/* admin */
.mmg-admin .mmg-switch{display:inline-block;margin:0 8px;vertical-align:middle}
.mmg-admin .mmg-filter{margin:10px 0}
.mmg-admin .mmg-form{max-width:900px}
.mmg-admin .mmg-row>p{margin:6px 0}
.mmg-admin .mmg-row input:not([type=checkbox]),.mmg-admin .mmg-row select{width:100%}
.mmg-admin .mmg-inline form,.mmg-admin td form{display:inline}
.mmg-admin .mmg-actions form{display:inline-block;margin-right:6px}
.mmg-admin td form{margin:0}
.mmg-scroll{overflow-x:auto}
.mmg-cal{border-collapse:separate;border-spacing:2px;font-size:12px}
.mmg-cal th,.mmg-cal td{text-align:center;padding:3px;min-width:44px;font-weight:600}
.mmg-cal th.mmg-cal-room{text-align:left;min-width:150px;position:sticky;left:0;background:#fff;z-index:1}
.mmg-cal td a{display:block;border-radius:6px;padding:6px 2px;text-decoration:none;color:#16202a}
.mmg-cal td span{font-weight:400}
.mmg-free a{background:#e7f6ec}.mmg-low a{background:#fff4e0}.mmg-full a{background:#f3d4d4}.mmg-over a{background:#b91c1c;color:#fff}
.mmg-cal .mmg-we{color:#0f6b5c}.mmg-cal .mmg-today{outline:2px solid #0f6b5c;border-radius:6px}
@media (max-width:600px){.mmg-stat{font-size:1.25em}.mmg-right{text-align:left}.mmg-card{padding:14px}}
/* layout options & preview */
.mmg-layout-stacked .mmg-row{flex-direction:column;align-items:stretch}
.mmg-layout-stacked .mmg-row>.mmg-shrink{flex:1 1 auto}.mmg-layout-stacked .mmg-btn{width:100%}
.mmg-preview-note{background:#eef6ff;color:#1e3a5f;font-size:13px}
.mmg-btn[disabled]{opacity:.7;cursor:not-allowed}
.mmg-page h1,.mmg-page h2,.mmg-page h3{color:inherit}
/* beat theme/Elementor-kit link colours without !important */
.mmg-page a.mmg-btn,.mmg-page a.mmg-btn:visited,.mmg-page a.mmg-btn:hover,.mmg-embed a.mmg-btn{color:#fff;text-decoration:none}
/* room photos, gallery & amenities */
.mmg-result{align-items:flex-start}
.mmg-room-photo{flex:0 0 var(--mmg-photo-w,240px);max-width:100%}
.mmg-room-photo-img{display:block;width:100%;height:var(--mmg-photo-h,170px);object-fit:cover;border-radius:var(--mmg-photo-radius,8px)}
.mmg-gallery-open{position:relative;display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}
.mmg-photo-count{position:absolute;left:8px;bottom:8px;background:rgba(0,0,0,.65);color:#fff;font-size:12px;padding:3px 8px;border-radius:99px}
.mmg-amenities{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.mmg-amenity{background:var(--mmg-chip-bg,#eef4f2);color:var(--mmg-chip-text,#1f4d44);border-radius:99px;padding:2px 10px;font-size:12px;line-height:1.6}
.mmg-amenity-more{display:none}.mmg-amenities-open .mmg-amenity-more{display:inline-block}
.mmg-amenity-toggle{background:none;padding:0}.mmg-amenity-toggle button{background:none;border:0;color:var(--mmg-brand);cursor:pointer;font-size:12px;padding:2px 4px}
.mmg-summary .mmg-room-photo{margin:0 0 12px}.mmg-summary .mmg-room-photo-img{height:var(--mmg-photo-h,200px)}
.mmg-lb{position:fixed;inset:0;z-index:999999;background:var(--mmg-lb-bg,rgba(10,14,18,.92));display:none;align-items:center;justify-content:center}
.mmg-lb.mmg-lb-on{display:flex}
.mmg-lb img{max-width:92vw;max-height:84vh;object-fit:contain;border-radius:6px}
.mmg-lb button,.mmg-lb button:hover,.mmg-lb button:focus{position:absolute;background:var(--mmg-lb-btn-bg,rgba(255,255,255,.12));color:var(--mmg-lb-btn-color,#fff);border:0;font-size:34px;line-height:1;width:48px;height:48px;border-radius:50%;cursor:pointer}
.mmg-lb .mmg-lb-close{top:16px;right:16px}.mmg-lb .mmg-lb-prev{left:16px}.mmg-lb .mmg-lb-next{right:16px}
.mmg-lb-count{position:absolute;bottom:16px;left:0;right:0;text-align:center;color:var(--mmg-lb-count,#ddd);font-size:14px}
@media (max-width:600px){.mmg-room-photo{flex-basis:100%}.mmg-lb .mmg-lb-prev,.mmg-lb .mmg-lb-next{bottom:20px;top:auto}}
/* admin photo picker */
.mmg-admin .mmg-photos{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:12px}
.mmg-admin .mmg-thumbs{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0;min-height:10px}
.mmg-admin .mmg-thumb{position:relative;width:84px;height:84px;cursor:move}
.mmg-admin .mmg-thumb img{width:84px;height:84px;object-fit:cover;border-radius:6px;display:block}
.mmg-admin .mmg-thumb-remove{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;border:0;background:#b91c1c;color:#fff;cursor:pointer;line-height:20px;padding:0}
.mmg-admin .mmg-amenity-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:4px 16px;margin:8px 0}
.mmg-admin .mmg-danger{border-left:4px solid var(--mmg-bad)}.mmg-admin .mmg-button-danger{color:var(--mmg-bad);border-color:var(--mmg-bad)}.mmg-admin .mmg-button-danger:hover,.mmg-admin .mmg-button-danger:focus{color:#fff;background:var(--mmg-bad);border-color:var(--mmg-bad)}
/* 1.5: property post details */
.mmg-prop-photo img{display:block;max-width:100%;height:auto}.mmg-prop-description>:first-child{margin-top:0}.mmg-prop-description>:last-child{margin-bottom:0}.mmg-prop-description p{margin:0 0 .7em}.mmg-prop-tagline{font-size:1.1em}.mmg-prop-area{color:var(--mmg-muted)}
.mmg-admin .mmg-acf .acf-fields{border:0}.mmg-admin .mmg-acf .acf-field{padding-left:0;padding-right:0}
/* 1.5.3: keep theme / Elementor-kit button styles (e.g. a pink hover) off our buttons; Elementor Style-tab settings still win */
.mmg-page .mmg-btn{background-color:var(--mmg-brand);color:#fff;border:0 solid transparent;border-radius:8px;padding:10px 18px;font:inherit;font-weight:600;line-height:1.3;text-transform:none}
.mmg-page .mmg-btn:hover,.mmg-page .mmg-btn:focus{background-color:var(--mmg-brand);color:#fff;text-decoration:none}
.mmg-page .mmg-gallery-open:hover,.mmg-page .mmg-gallery-open:focus{background:none;border:0}
.mmg-page .mmg-amenity-toggle button:hover,.mmg-page .mmg-amenity-toggle button:focus{background:none;color:var(--mmg-brand)}
/* 1.7: availability calendar (one row per room type, one column per night). Table rules use .mmg-avail-grid td.x so
   theme table stripes don't win; Elementor's Style tab uses {{WRAPPER}} .mmg-avail-grid .x, which wins over these. */
.mmg-avail-form{margin:0 0 14px}
.mmg-avail-range{margin:0 0 8px}
.mmg-avail-nav{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 12px}
.mmg-avail-nav .mmg-avail-next{margin-left:auto}
.mmg-avail-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.mmg-avail-grid{width:100%;border-collapse:separate;border-spacing:3px;font-size:.9em;margin:0;line-height:1.25}
.mmg-avail-grid th,.mmg-avail-grid td{padding:0;border:0;background:none;text-align:center;vertical-align:middle;font-weight:400}
.mmg-avail-grid th.mmg-avail-day{min-width:64px;padding:4px 2px 6px;font-weight:600}
.mmg-avail-dow,.mmg-avail-date{display:block}
.mmg-avail-grid .mmg-avail-dow{font-size:.78em;text-transform:uppercase;letter-spacing:.04em;color:var(--mmg-muted);font-weight:600}
.mmg-avail-grid th.mmg-avail-weekend .mmg-avail-dow{color:var(--mmg-brand)}
.mmg-avail-grid th.mmg-avail-today{box-shadow:inset 0 -3px 0 var(--mmg-brand)}
.mmg-avail-grid th.mmg-avail-room,.mmg-avail-grid th.mmg-avail-corner{text-align:left;position:sticky;left:0;z-index:1;background:var(--mmg-card);min-width:150px;padding:6px 10px 6px 2px}
.mmg-avail-grid th.mmg-avail-corner{color:var(--mmg-muted);font-weight:600;vertical-align:bottom}
.mmg-avail-room .mmg-room-name{display:block;font-weight:600}
.mmg-avail-sleeps{display:block}
.mmg-avail-grid td.mmg-avail-cell{border-radius:6px}
.mmg-avail-grid .mmg-avail-in{display:block;padding:8px 4px;border-radius:inherit;color:inherit;text-decoration:none}
.mmg-page a.mmg-avail-in,.mmg-page a.mmg-avail-in:visited,.mmg-page a.mmg-avail-in:hover{color:inherit;text-decoration:none}
.mmg-avail-grid .mmg-avail-free a.mmg-avail-in:hover,.mmg-avail-grid .mmg-avail-free a.mmg-avail-in:focus{background-color:rgba(0,0,0,.07)}
.mmg-avail-status{display:block;font-weight:600;white-space:nowrap}
.mmg-avail-rate{display:block;font-size:.85em;opacity:.85;white-space:nowrap}
.mmg-avail-grid td.mmg-avail-free,.mmg-avail-legend .mmg-avail-free{background-color:#e7f6ec;color:#14532d}
.mmg-avail-grid td.mmg-avail-full,.mmg-avail-legend .mmg-avail-full{background-color:#f3d4d4;color:#7f1d1d}
.mmg-avail-grid td.mmg-avail-past,.mmg-avail-legend .mmg-avail-past{background-color:#f1f3f5;color:#9aa5b1}
.mmg-avail-legend{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.86em;color:var(--mmg-muted)}
.mmg-avail-legend li{display:flex;align-items:center;gap:6px;margin:0}
.mmg-avail-legend .mmg-avail-swatch{display:inline-block;width:14px;height:14px;border-radius:4px}
.mmg-admin .mmg-avail-grid th.mmg-avail-room,.mmg-admin .mmg-avail-grid th.mmg-avail-corner{background:#fff}
/* 1.8: room type pages (Theme Builder single template, Loop Items): details, photos and the booking box */
.mmg-room-title{margin:0 0 .3em}
.mmg-room-about>:first-child{margin-top:0}.mmg-room-about>:last-child{margin-bottom:0}.mmg-room-about p{margin:0 0 .7em}
.mmg-room-rate .mmg-price{font-size:1.3em}
.mmg-room-location,.mmg-room-summary{color:var(--mmg-muted)}
.mmg-page>.mmg-amenities{margin-top:0}
.mmg-room-photos .mmg-room-photo{width:100%;max-width:100%}
.mmg-room-photos-main .mmg-room-photo-img{height:auto}
.mmg-room-gallery{display:grid;grid-template-columns:repeat(var(--mmg-gallery-cols,3),minmax(0,1fr));gap:8px}
.mmg-page .mmg-room-gallery-item{position:relative;display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}
.mmg-room-gallery-img{display:block;width:100%;aspect-ratio:4/3;height:auto;object-fit:cover;border-radius:var(--mmg-photo-radius,8px);transition:opacity .15s}
.mmg-room-booking .mmg-room-rate{margin:0 0 12px}
.mmg-room-booking-form{margin:0 0 14px}
.mmg-room-quote{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;border-top:1px solid var(--mmg-line);padding:14px 0 0}
.mmg-room-quote .mmg-grow{flex:2 1 200px}.mmg-room-quote p{margin:0}
.mmg-room-available{font-weight:600}
@media (max-width:600px){.mmg-room-gallery{grid-template-columns:repeat(var(--mmg-gallery-cols,2),minmax(0,1fr))}}
