.pmb-booking-wrap{max-width:1180px;margin:20px auto;font-family:inherit}.pmb-search-form{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px;align-items:end;background:#f4f4f4;padding:18px;margin-bottom:20px}.pmb-search-form label{display:block;font-weight:700;margin-bottom:5px}.pmb-search-form small{display:block;color:#555;font-size:12px;margin-top:4px}.pmb-search-form input,.pmb-search-form select,.pmb-book-form input,.pmb-book-form textarea{width:100%;box-sizing:border-box;padding:10px;border:1px solid #cfcfcf;border-radius:0}.pmb-search-addons{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:14px;grid-column:1 / span 3;align-items:end}.pmb-checkline{background:#fff;border:1px solid #ddd;padding:10px;margin:0}.pmb-checkline input{width:auto;margin-right:7px}.pmb-vehicle-note{font-size:13px;font-weight:700;margin:0;line-height:1.35}.pmb-search-form button,.pmb-book-form button{background:#1f2c75;color:#fff;border:0;border-radius:0;padding:14px 18px;font-weight:700;cursor:pointer;height:auto;min-height:48px}.pmb-results,.pmb-sites-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:18px}.pmb-site-card{border:1px solid #ddd;background:#fff;border-radius:0;overflow:hidden;display:flex;flex-direction:column}.pmb-site-body{padding:18px}.pmb-site-card h3{margin-top:0;margin-bottom:8px}.pmb-site-photo{height:245px;background:#efefef;display:flex;align-items:center;justify-content:center;overflow:hidden}.pmb-site-photo img{width:100%;height:100%;object-fit:cover;display:block}.pmb-no-photo span{color:#666;font-size:14px}.pmb-site-description{max-height:135px;overflow-y:auto;border:1px solid #eee;background:#fafafa;padding:10px;font-size:14px;line-height:1.45;margin:10px 0}.pmb-site-description p{margin:0 0 8px}.pmb-site-meta{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.pmb-site-meta span,.pmb-amenities span{background:#eee;padding:6px 9px;font-size:13px}.pmb-site-meta .pmb-price{background:#1f2c75;color:#fff}.pmb-amenities{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 14px}.pmb-book-form{display:grid;gap:10px;margin-top:12px}.pmb-book-form textarea{min-height:70px}.pmb-alert{padding:12px 14px;background:#f2f2f2;border-left:4px solid #1f2c75;margin:15px 0}.pmb-success{background:#edf8ed;border-left-color:#2f845a}.pmb-error{background:#fff0f0;border-left-color:#b00020}.pmb-help{padding:12px;background:#fafafa}.pmb-addon-summary{display:grid;gap:7px;margin:10px 0}.pmb-addon-line{background:#f2f2f2;padding:8px 10px;font-size:13px}.pmb-addon-warning,.pmb-tent-unavailable{background:#fff4bd;border:1px solid #ead46b;color:#4b3b00}.pmb-vehicle-warning,.pmb-warning-text{background:#fff4bd;border:1px solid #ead46b;padding:10px;margin:10px 0;font-weight:700}.pmb-vehicle-warning-card{border-color:#e0bc36}@media(max-width:900px){.pmb-search-form{grid-template-columns:1fr 1fr}.pmb-search-addons{grid-column:1 / span 2;grid-template-columns:1fr}.pmb-search-form button{grid-column:1 / span 2;width:100%}}@media(max-width:700px){.pmb-booking-wrap{margin:10px auto}.pmb-search-form{display:block;padding:14px}.pmb-search-form>div,.pmb-search-addons>*{margin-bottom:12px}.pmb-search-addons{display:block}.pmb-search-form button{width:100%}.pmb-site-photo{height:190px}.pmb-site-description{max-height:120px;font-size:13px}.pmb-results,.pmb-sites-list{display:block}.pmb-site-card{margin-bottom:18px}}
.pmb-payment-page h2{margin-top:0}.pmb-payment-grid{display:grid;grid-template-columns:1.4fr .9fr;gap:20px;align-items:start}.pmb-payment-summary,.pmb-payment-box{border:1px solid #ddd;background:#fff;padding:18px}.pmb-payment-summary .pmb-site-photo{height:260px;margin:-18px -18px 16px}.pmb-payment-box{position:sticky;top:20px}.pmb-payment-total{font-size:22px;background:#f4f4f4;padding:12px}.pmb-stripe-placeholder{border:2px dashed #cfcfcf;background:#fafafa;padding:16px;margin:16px 0;line-height:1.45}.pmb-disabled-pay{width:100%;background:#1f2c75;color:#fff;border:0;border-radius:0;padding:14px 18px;font-weight:700;opacity:.65}.pmb-payment-link{font-weight:700}.pmb-payment-note{font-size:13px;color:#555}@media(max-width:800px){.pmb-payment-grid{display:block}.pmb-payment-box{position:static;margin-top:16px}.pmb-payment-summary .pmb-site-photo{height:200px}}

/* Version 1.0.21 category selector */
.pmb-category-select,
.pmb-category-info {
  grid-column: 1 / -1;
}
.pmb-category-info {
  background: #fff;
  border: 1px solid #ddd;
  padding: 14px 16px;
  margin: 4px 0 10px;
}
.pmb-category-info h3 {
  margin: 0 0 8px;
  font-size: 1.1rem;
}
.pmb-category-desc {
  font-size: 0.95rem;
  line-height: 1.45;
}
.pmb-category-desc p {
  margin: 0 0 8px;
}
.pmb-category-times {
  margin: 8px 0 0;
  font-size: 0.95rem;
  background: #f5f5f5;
  padding: 8px 10px;
}
@media (max-width: 700px) {
  .pmb-category-info {
    padding: 12px;
  }
  .pmb-category-times {
    display: block;
    line-height: 1.5;
  }
}

/* 1.4.0 Monthly Stay Application */
.pmb-monthly-form{display:grid;gap:18px}.pmb-monthly-section{border:1px solid #dfe4ea;border-radius:10px;padding:18px;background:#fff}.pmb-monthly-section h3{margin:0 0 14px;color:#1f2c75}.pmb-monthly-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.pmb-monthly-form p{margin:0}.pmb-monthly-form label{display:block;font-weight:700;margin-bottom:6px}.pmb-monthly-form input,.pmb-monthly-form select,.pmb-monthly-form textarea{width:100%;box-sizing:border-box}.pmb-monthly-form small{display:block;margin-top:5px;color:#616b75}@media(max-width:700px){.pmb-monthly-grid{grid-template-columns:1fr}.pmb-monthly-section{padding:14px}}

/* Park Manager Pro 1.5.1 Camper Portal */
.pmb-guest-portal{max-width:1100px;margin:24px auto;font-family:Arial,sans-serif;color:#1f2937}.pmb-guest-brand,.pmb-guest-dashboard-head{background:#1f2c75;color:#fff;padding:24px;border-radius:12px 12px 0 0}.pmb-guest-brand h2,.pmb-guest-dashboard-head h2{margin:0;color:#fff}.pmb-guest-brand p,.pmb-guest-dashboard-head p{margin:5px 0 0;color:#fff}.pmb-guest-dashboard-head{display:flex;justify-content:space-between;align-items:center}.pmb-guest-dashboard-head a{color:#fff}.pmb-guest-auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:24px;background:#f4f6fb}.pmb-guest-card,.pmb-guest-section{background:#fff;border:1px solid #d8deeb;border-radius:10px;padding:22px;box-shadow:0 2px 8px rgba(31,44,117,.08)}.pmb-guest-card label,.pmb-guest-message label{display:block;font-weight:700;margin:12px 0}.pmb-guest-card input,.pmb-guest-message input,.pmb-guest-message select,.pmb-guest-message textarea{width:100%;box-sizing:border-box;margin-top:6px;padding:11px;border:1px solid #b9c2d4;border-radius:6px}.pmb-guest-card .pmb-remember{display:flex;align-items:center;gap:8px;font-weight:400}.pmb-guest-card .pmb-remember input{width:auto;margin:0}.pmb-guest-btn{display:inline-block;background:#1f2c75;color:#fff!important;border:0;border-radius:6px;padding:11px 18px;text-decoration:none;cursor:pointer;font-weight:700}.pmb-guest-btn.pmb-secondary{background:#475569}.pmb-guest-tabs{display:flex;gap:8px;flex-wrap:wrap;background:#eef1f8;padding:12px}.pmb-guest-tabs a{background:#fff;color:#1f2c75;border:1px solid #cbd3e3;border-radius:18px;padding:8px 13px;text-decoration:none;font-weight:700}.pmb-guest-section{margin:18px 0}.pmb-guest-booking{display:grid;grid-template-columns:1.3fr 1.3fr 1fr 1fr;gap:14px;padding:15px;border-bottom:1px solid #e5e7eb;align-items:center}.pmb-guest-booking div{display:flex;flex-direction:column;gap:4px}.pmb-guest-booking small{color:#64748b}.pmb-guest-table-wrap{overflow:auto}.pmb-guest-table-wrap table{width:100%;border-collapse:collapse}.pmb-guest-table-wrap th{background:#1f2c75;color:#fff;padding:10px;text-align:left}.pmb-guest-table-wrap td{padding:10px;border-bottom:1px solid #e5e7eb}.pmb-guest-note{margin-top:16px;background:#eef4ff;border-left:4px solid #1f2c75;padding:13px}.pmb-guest-sent{border:1px solid #dbe1ec;border-radius:8px;padding:13px;margin:10px 0}.pmb-guest-sent small{display:block;color:#64748b}.pmb-guest-auth{max-width:620px;margin:30px auto;padding:25px;border:1px solid #d8deeb;border-radius:10px;text-align:center}.pmb-alert{margin:15px 0;padding:12px;border-radius:6px}.pmb-success{background:#e8f7ed;color:#155d2f}.pmb-error{background:#fdeaea;color:#8b1d1d}@media(max-width:760px){.pmb-guest-auth-grid{grid-template-columns:1fr}.pmb-guest-booking{grid-template-columns:1fr 1fr}.pmb-guest-dashboard-head{align-items:flex-start;gap:12px}.pmb-guest-tabs{overflow-x:auto;flex-wrap:nowrap}.pmb-guest-tabs a{white-space:nowrap}}

/* Park Manager Pro 1.5.2.1 Camper Password */
.pmb-guest-reset-logo{display:block;max-width:220px;height:auto;margin:0 auto 14px}.pmb-guest-card .description{color:#64748b;font-size:.92rem;margin:8px 0 16px}

/* Park Manager Pro 1.5.3 compact, theme-friendly Camper Dashboard */
.pmb-guest-portal{max-width:920px;margin:18px auto;font-family:inherit;color:inherit}
.pmb-guest-auth-page{max-width:760px}
.pmb-guest-brand{display:none!important}
.pmb-guest-page-title{margin:0 0 14px;padding:0;background:transparent;color:inherit}
.pmb-guest-page-title h2{margin:0 0 4px;font-size:1.5rem;line-height:1.25;color:inherit}
.pmb-guest-page-title p{margin:0;color:#64748b;font-size:.92rem}
.pmb-guest-dashboard-head{background:transparent;color:inherit;padding:0 0 12px;border-radius:0;border-bottom:1px solid #e5e7eb}
.pmb-guest-dashboard-head h2{color:inherit;font-size:1.45rem;line-height:1.2}
.pmb-guest-dashboard-head p{color:#64748b;font-size:.9rem}
.pmb-guest-dashboard-head a{color:inherit;font-size:.88rem}
.pmb-guest-auth-grid{padding:0;background:transparent;gap:14px}
.pmb-guest-card,.pmb-guest-section{border:1px solid #e1e5ea;border-radius:8px;padding:16px;box-shadow:0 1px 3px rgba(15,23,42,.05)}
.pmb-guest-card h3,.pmb-guest-section h2,.pmb-guest-section h3{margin-top:0;font-size:1.08rem}
.pmb-guest-card label,.pmb-guest-message label{font-size:.88rem;margin:10px 0}
.pmb-guest-card input,.pmb-guest-message input,.pmb-guest-message select,.pmb-guest-message textarea{margin-top:5px;padding:9px 10px;font-size:16px;border-radius:5px}
.pmb-guest-btn{padding:10px 14px;border-radius:5px;font-size:.9rem;min-height:42px}
.pmb-guest-tabs{background:transparent;padding:10px 0;gap:6px;border-bottom:1px solid #e5e7eb}
.pmb-guest-tabs a{border-radius:6px;padding:7px 10px;font-size:.82rem}
.pmb-guest-section{margin:12px 0}
.pmb-guest-booking{gap:10px;padding:11px 4px;font-size:.88rem}
.pmb-guest-booking small{font-size:.75rem}
.pmb-guest-table-wrap th,.pmb-guest-table-wrap td{padding:8px;font-size:.82rem}
.pmb-guest-table-wrap th{background:#f3f4f6;color:#111827}
.pmb-guest-note,.pmb-guest-sent{font-size:.84rem;padding:10px}
@media(max-width:760px){
 .pmb-guest-portal{margin:10px auto;padding:0 8px;font-size:14px}
 .pmb-guest-page-title h2,.pmb-guest-dashboard-head h2{font-size:1.2rem}
 .pmb-guest-auth-grid{display:block}
 .pmb-guest-auth-grid .pmb-guest-card{margin-bottom:10px}
 .pmb-guest-card,.pmb-guest-section{padding:12px;border-radius:6px}
 .pmb-guest-dashboard-head{display:flex;align-items:center;gap:8px}
 .pmb-guest-tabs{margin:0 -2px;padding:8px 0}
 .pmb-guest-tabs a{font-size:.76rem;padding:6px 8px}
 .pmb-guest-booking{grid-template-columns:1fr 1fr;padding:9px 2px}
 .pmb-guest-table-wrap{margin:0 -4px}
}


/* Monthly first-reservation payment choices */
.pmb-monthly-payment-options{margin:8px 0 12px 20px;padding:0}.pmb-monthly-payment-options li{margin:5px 0}.pmb-monthly-pay-choice{display:block;margin:10px 0;padding:12px;border:1px solid #d7dce2;border-radius:6px;background:#fff;font-weight:600}.pmb-monthly-pay-choice input{margin-right:8px}.pmb-alert.pmb-info{background:#eef6fb;border-left:4px solid #2271b1;color:#183b56}

/* v1.6.5 camper payment action */
.pmb-guest-btn.pmb-small{display:inline-block;padding:8px 11px;font-size:13px;line-height:1.2;white-space:nowrap}


/* v1.6.14 deposit payment UX */
.pmb-deposit-received{margin:16px 0;padding:16px;border:1px solid #b8dfc4;border-left:4px solid #2f855a;border-radius:8px;background:#eef9f1;color:#184d2f}
.pmb-deposit-received p{margin:7px 0}
.pmb-balance-card{display:flex;align-items:center;justify-content:space-between;gap:20px;border-left:5px solid #1f2c75;background:#f7f9ff}
.pmb-balance-card h3{font-size:1.7rem;margin:5px 0 8px;color:#1f2c75}
.pmb-balance-card p{margin:3px 0}
.pmb-balance-eyebrow{display:block;font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#64748b}
.pmb-balance-action{flex:0 0 auto;text-align:center;min-width:190px}
@media(max-width:760px){.pmb-balance-card{display:block;text-align:left}.pmb-balance-action{display:block;width:100%;box-sizing:border-box;margin-top:15px;min-width:0;text-align:center}}

/* Camper stay information */
.pmb-stay-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.pmb-stay-item{background:#f8fafc;border:1px solid #e1e5ea;border-radius:8px;padding:14px;min-width:0}
.pmb-stay-item>span{display:block;color:#64748b;font-size:.82rem;margin-bottom:5px}
.pmb-stay-item strong{display:block;overflow-wrap:anywhere}
.pmb-stay-item a{color:#1f2c75}
.pmb-stay-wifi details{margin-top:9px}
.pmb-stay-wifi summary{color:#1f2c75;font-weight:700;cursor:pointer;touch-action:manipulation}
.pmb-stay-wifi code{display:block;margin-top:8px;padding:10px;background:#fff;border:1px dashed #aeb8cc;border-radius:6px;font-size:1rem;overflow-wrap:anywhere;white-space:normal}
.pmb-stay-wide{margin-top:14px;padding:15px;background:#f8fafc;border-left:4px solid #1f2c75;border-radius:6px}
.pmb-stay-wide h4{margin:0 0 7px;color:#1f2c75}
.pmb-stay-wide p{margin:0;line-height:1.55}
@media(max-width:760px){.pmb-stay-grid{grid-template-columns:1fr}.pmb-stay-item,.pmb-stay-wide{padding:12px}}
/* v1.6.16 camper message thread styling */
.pmb-message-staff{background:#eef4ff;border-left:4px solid #1f2c75}
.pmb-message-camper{background:#f7f7f7;border-left:4px solid #999}

/* v1.6.17 password visibility control */
.pmb-password-field{position:relative;display:block;width:100%}
.pmb-password-field>input{padding-right:46px!important;width:100%}
.pmb-password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:0;background:transparent;padding:7px;cursor:pointer;color:#334155;display:flex;align-items:center;justify-content:center}
.pmb-password-toggle svg{width:21px;height:21px;fill:currentColor}
.pmb-password-toggle:hover,.pmb-password-toggle:focus{background:#eef2f6;border-radius:6px;outline:2px solid transparent}


/* v1.6.35 post-payment camper account next step */
.pmb-payment-account-card{margin:18px 0;padding:18px;border:1px solid #d9e1e8;border-left:5px solid #1f2c75;border-radius:8px;background:#f7f9ff}
.pmb-payment-account-card h3{margin:0 0 8px;color:#1f2c75;font-size:1.15rem}
.pmb-payment-account-card p{margin:8px 0;line-height:1.5}
.pmb-payment-account-card .pmb-guest-btn{display:inline-block;margin-top:5px;text-decoration:none;text-align:center}
@media(max-width:760px){.pmb-payment-account-card{padding:15px}.pmb-payment-account-card .pmb-guest-btn{display:block;width:100%;box-sizing:border-box}}

/* v1.6.44 campsite photo lightbox */
.pmb-site-photo-wrap{position:relative}
.pmb-view-photos{position:absolute;left:12px;bottom:12px;z-index:2;border:0;border-radius:6px;background:rgba(15,23,42,.92);color:#fff;padding:9px 13px;font-weight:700;line-height:1.2;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.pmb-view-photos:hover,.pmb-view-photos:focus{background:#1f2c75;color:#fff;outline:2px solid #fff;outline-offset:2px}
.pmb-photo-modal[hidden]{display:none!important}
.pmb-photo-modal{position:fixed;inset:0;z-index:999999;background:rgba(0,0,0,.88);display:flex;align-items:center;justify-content:center;padding:18px}
.pmb-photo-modal-dialog{position:relative;width:min(1040px,100%);max-height:94vh;background:#111827;color:#fff;border-radius:10px;padding:18px;box-shadow:0 24px 70px rgba(0,0,0,.5)}
.pmb-photo-modal-title{margin:0 50px 12px 0;color:#fff;font-size:1.15rem}
.pmb-photo-modal-close{position:absolute;top:8px;right:10px;width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:30px;line-height:1;cursor:pointer}
.pmb-photo-stage{position:relative;display:flex;align-items:center;justify-content:center;min-height:280px;max-height:76vh;overflow:hidden;background:#020617;border-radius:7px}
.pmb-photo-modal-image{display:block;max-width:100%;max-height:76vh;width:auto;height:auto;object-fit:contain}
.pmb-photo-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:46px;height:56px;border:0;border-radius:6px;background:rgba(15,23,42,.68);color:#fff;font-size:30px;cursor:pointer}
.pmb-photo-prev{left:10px}.pmb-photo-next{right:10px}
.pmb-photo-counter{text-align:center;margin-top:10px;font-weight:700;color:#e5e7eb}
body.pmb-photo-modal-open{overflow:hidden}
@media(max-width:700px){.pmb-view-photos{left:9px;bottom:9px;padding:8px 11px;font-size:13px}.pmb-photo-modal{padding:0}.pmb-photo-modal-dialog{width:100%;height:100%;max-height:none;border-radius:0;padding:14px;box-sizing:border-box;display:flex;flex-direction:column}.pmb-photo-stage{flex:1;max-height:none;min-height:0}.pmb-photo-modal-image{max-height:calc(100vh - 110px)}.pmb-photo-nav{width:40px;height:50px;font-size:26px}.pmb-photo-prev{left:5px}.pmb-photo-next{right:5px}}


/* v1.7.6 polished booking start and secondary map choice */
.pmb-booking-start-card {
    margin: 0 0 20px;
    padding: 22px;
    border: 1px solid rgba(31, 44, 117, .14);
    border-radius: 16px;
    background: linear-gradient(180deg, #ffffff 0%, #f8faff 100%);
    box-shadow: 0 10px 28px rgba(20, 31, 64, .08);
}
.pmb-booking-start-heading { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 18px; }
.pmb-booking-start-icon { font-size: 1.7rem; line-height: 1; }
.pmb-booking-start-heading h2 { margin: 0 0 5px; font-size: 1.35rem; line-height: 1.2; color: #17213f; }
.pmb-booking-start-heading p { margin: 0; color: #5b6476; line-height: 1.45; }
.pmb-booking-start-card .pmb-search-form { margin: 0; }
.pmb-category-select label { display: block; margin-bottom: 8px; font-weight: 700; color: #20283b; }
.pmb-category-select select {
    width: 100%;
    min-height: 56px;
    box-sizing: border-box;
    padding: 0 46px 0 16px;
    border: 1px solid #cbd3e1;
    border-radius: 11px;
    background-color: #fff;
    box-shadow: 0 4px 12px rgba(31, 44, 117, .06);
    font-size: 1rem;
    font-weight: 600;
    color: #263047;
}
.pmb-category-select select:focus { border-color: var(--pmb-primary, #1f2c75); box-shadow: 0 0 0 3px rgba(31, 44, 117, .12); outline: none; }
.pmb-start-help { margin: 12px 0 0 !important; color: #687082 !important; font-size: .9rem; line-height: 1.5; }
.pmb-map-booking-card {
    margin: 16px 0 20px;
    padding: 16px;
    border: 1px solid #dce2ec;
    border-radius: 12px;
    background: #f8fafc;
}
.pmb-map-booking-copy { display: block; margin-bottom: 12px; }
.pmb-map-booking-copy strong { display: block; margin-bottom: 4px; font-size: 1rem; line-height: 1.3; color: #20283b; }
.pmb-map-booking-copy span { display: block; line-height: 1.45; color: #5d6678; font-size: .94rem; }
.pmb-map-booking-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    box-sizing: border-box;
    padding: 10px 15px;
    border: 1px solid var(--pmb-primary, #1f2c75);
    border-radius: 8px;
    background: #fff;
    color: var(--pmb-primary, #1f2c75) !important;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    text-decoration: none !important;
}
.pmb-map-booking-button:hover,
.pmb-map-booking-button:focus { background: var(--pmb-primary, #1f2c75); color: #fff !important; }
.pmb-site-choice-actions { display: flex; flex-direction: column; align-items: stretch; }
.pmb-site-choice-actions .pmb-map-booking-button { width: 100%; }
.pmb-site-choice-or {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 16px 0;
    color: #9aa2af;
    font-size: 1.08rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-align: center;
}
.pmb-site-choice-or::before,
.pmb-site-choice-or::after { content: ""; flex: 1; height: 1px; background: #d8dde6; }
.pmb-availability-calendar-anchor { scroll-margin-top: 24px; }
@media (max-width: 600px) {
    .pmb-booking-start-card { padding: 18px; border-radius: 13px; }
    .pmb-booking-start-heading h2 { font-size: 1.22rem; }
    .pmb-category-select select { min-height: 58px; font-size: 1rem; }
    .pmb-map-booking-card { padding: 15px; }
    .pmb-map-booking-button { display: flex; width: 100%; min-height: 50px; }
}

/* v1.8.8 payment and tax breakdown */
.pmb-payment-breakdown{margin:14px 0;padding:14px 16px;border:1px solid #d9dee7;border-radius:10px;background:#fff;max-width:620px}.pmb-payment-breakdown h4{margin:0 0 10px;font-size:18px}.pmb-payment-breakdown-row{display:flex;justify-content:space-between;gap:18px;padding:7px 0;border-bottom:1px solid #edf0f4}.pmb-payment-breakdown-row:last-child{border-bottom:0}.pmb-payment-breakdown-total{margin-top:4px;padding-top:11px;font-size:1.05em}.pmb-payment-breakdown-table-row td{background:#fafbfc!important;padding:8px 12px!important}.pmb-payment-breakdown-table-row summary{cursor:pointer;font-weight:700;color:#223a80}.pmb-payment-breakdown-table-row .pmb-payment-breakdown{margin:10px 0 4px}@media(max-width:600px){.pmb-payment-breakdown{padding:12px}.pmb-payment-breakdown-row{font-size:15px}}

/* v1.8.9 compact camper payment receipt */
.pmb-payment-breakdown-guest{margin:10px 0 4px;padding:12px 16px;border:1px solid #d9dee7;border-radius:10px;background:#fff;max-width:none}
.pmb-payment-breakdown-guest h4{margin:0 0 6px;font-size:18px}
.pmb-payment-breakdown-guest .pmb-payment-breakdown-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:8px 0}
.pmb-payment-breakdown-guest .pmb-payment-breakdown-row span{min-width:0}
.pmb-payment-breakdown-guest .pmb-payment-breakdown-row strong{text-align:right;white-space:nowrap}
.pmb-payment-breakdown-guest .pmb-payment-breakdown-total{margin-top:4px;padding:11px 10px;background:#f3f5f8;border-radius:7px;border-bottom:0;font-weight:700}
.pmb-payment-breakdown-table-row td{padding:8px!important;background:#fafbfc!important}
@media(max-width:600px){.pmb-payment-breakdown-guest{padding:10px 12px}.pmb-payment-breakdown-guest h4{font-size:17px}.pmb-payment-breakdown-guest .pmb-payment-breakdown-row{font-size:15px;gap:10px}}

/* v1.9.0: mobile payment history cards (no horizontal scrolling) */
.pmb-payment-mobile-view{display:none}
.pmb-payment-mobile-card{border:1px solid #d9dee7;border-radius:10px;background:#fff;padding:14px;margin:12px 0;box-shadow:0 1px 3px rgba(15,23,42,.05)}
.pmb-payment-mobile-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:11px;border-bottom:1px solid #e7eaf0}
.pmb-payment-mobile-status{font-weight:700;font-size:.88rem;padding:5px 9px;border-radius:999px;background:#eef2f7;color:#334155;white-space:nowrap}
.pmb-payment-mobile-status.pmb-status-paid{background:#e8f7ed;color:#155d2f}
.pmb-payment-mobile-status.pmb-status-partial{background:#e7f7f7;color:#0f5f63}
.pmb-payment-mobile-status.pmb-status-unpaid,.pmb-payment-mobile-status.pmb-status-pending{background:#fff4d8;color:#7a4d00}
.pmb-payment-mobile-summary{margin:8px 0 0}
.pmb-payment-mobile-summary>div{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid #edf0f4}
.pmb-payment-mobile-summary>div:last-child{border-bottom:0}
.pmb-payment-mobile-summary dt{color:#64748b}
.pmb-payment-mobile-summary dd{margin:0;font-weight:700;text-align:right;white-space:nowrap}
.pmb-payment-mobile-card .pmb-payment-breakdown-guest{margin:12px 0 0;padding:12px;border-radius:8px;background:#fafbfc}
@media(max-width:760px){
 .pmb-payment-desktop-view{display:none!important}
 .pmb-payment-mobile-view{display:block}
 #payments .pmb-guest-table-wrap{overflow:visible;margin:0}
}

/* v2.2.0 discounts */
.pmb-daily-discount-box{margin:12px 0;padding:14px;border:1px solid #d7dce2;border-radius:8px;background:#f8fafc}.pmb-daily-discount-box>strong{display:block;margin-bottom:8px}.pmb-daily-discount-box label{display:block;margin:8px 0}.pmb-daily-discount-box select,.pmb-daily-discount-box input{display:block;width:100%;max-width:360px;margin-top:5px;box-sizing:border-box}.pmb-daily-discount-box small{display:block;margin-top:8px;color:#5f6368}.pmb-discount-line strong{color:#16733b}




/* v2.2.9: Driver's license upload layout */
.pmb-driver-license-upload {
    display: block;
    width: 100%;
    box-sizing: border-box;
}

.pmb-driver-license-upload > label:not(.pmb-checkline) {
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin: 0 0 16px;
}

.pmb-driver-license-upload > label:not(.pmb-checkline) > strong {
    display: block;
    margin-bottom: 6px;
}

.pmb-driver-license-upload input[type="file"] {
    display: block;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.pmb-driver-license-upload .pmb-help {
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin: 14px 0 16px;
}

.pmb-driver-license-upload .pmb-checkline {
    display: flex !important;
    align-items: flex-start;
    gap: 10px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin: 16px 0 18px;
    line-height: 1.45;
    white-space: normal;
    float: none;
    clear: both;
}

.pmb-driver-license-upload .pmb-checkline input[type="checkbox"] {
    flex: 0 0 auto;
    width: auto;
    margin: 4px 0 0;
}

.pmb-driver-license-upload .pmb-guest-btn {
    display: block !important;
    position: static !important;
    float: none !important;
    clear: both !important;
    width: auto;
    max-width: 100%;
    margin: 0;
}

@media (max-width: 767px) {
    .pmb-driver-license-upload .pmb-guest-btn {
        width: 100%;
        text-align: center;
    }
}

/* v2.3.2 */
.pmb-monthly-pay-choice{box-sizing:border-box;}

/* v2.3.10 live stay length */
.pmb-stay-length{
    margin-top:-4px;
    padding:10px 12px;
    border:1px solid #dcdcde;
    border-radius:6px;
    background:#f7f8fa;
    line-height:1.35;
}
.pmb-stay-length span{font-weight:600;}


/* v2.3.11 reservation period choice cards */
.pmb-reservation-period{margin:20px 0 18px}
.pmb-reservation-period-heading{margin-bottom:12px}
.pmb-reservation-period-heading>strong{display:block;margin-bottom:4px;font-size:1.05rem;color:#20283b}
.pmb-reservation-period-heading>span{display:block;color:#5d6678;font-size:.94rem;line-height:1.4}
.pmb-reservation-period-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pmb-search-form .pmb-reservation-period-card{position:relative;display:flex;align-items:center;gap:12px;width:100%;min-height:82px;padding:14px 42px 14px 15px;border:1px solid var(--pmb-primary,#1f2c75);border-radius:10px;background:#fff;color:var(--pmb-primary,#1f2c75);text-align:left;cursor:pointer;box-sizing:border-box}
.pmb-search-form .pmb-reservation-period-card:hover,.pmb-search-form .pmb-reservation-period-card:focus{background:#f5f7ff;box-shadow:0 0 0 3px rgba(31,44,117,.10);outline:none}
.pmb-search-form .pmb-reservation-period-card.is-selected{border-width:2px;background:#f3f5ff;box-shadow:0 0 0 2px rgba(31,44,117,.08)}
.pmb-reservation-period-icon{flex:0 0 auto;font-size:1.35rem}
.pmb-reservation-period-copy{display:block;min-width:0}
.pmb-reservation-period-copy strong{display:block;margin-bottom:3px;font-size:1rem;line-height:1.25;color:var(--pmb-primary,#1f2c75)}
.pmb-reservation-period-copy small{display:block;color:#5d6678;font-size:.86rem;line-height:1.35;font-weight:500}
.pmb-reservation-period-check{position:absolute;right:14px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:23px;height:23px;border-radius:50%;background:var(--pmb-primary,#1f2c75);color:#fff;font-weight:800}
.pmb-reservation-period-prompt{margin-top:4px!important}
@media(max-width:600px){.pmb-reservation-period-options{grid-template-columns:1fr}.pmb-search-form .pmb-reservation-period-card{min-height:76px}}

/* v2.3.55 camper cancellation request */
.pmb-cancel-request{grid-column:1/-1;margin-top:8px;padding-top:8px;border-top:1px solid rgba(0,0,0,.08)}
.pmb-cancel-request summary{cursor:pointer;font-weight:700}
.pmb-cancel-request form{display:grid;gap:10px;margin-top:12px}
.pmb-cancel-request textarea{width:100%;font-size:16px}
.pmb-cancel-request-status{grid-column:1/-1;padding:10px 12px;border-radius:6px;background:#fff4d6;display:grid;gap:3px}
.pmb-cancel-request-status span{font-size:13px}


/* v2.3.56 cancellation request button */
.pmb-cancel-request{border-top:0;margin-top:10px;padding-top:0}
.pmb-cancel-request > summary.pmb-cancel-request-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    min-height:46px;
    padding:10px 18px;
    border:0;
    border-radius:6px;
    background:#28388f;
    color:#fff;
    font-weight:700;
    line-height:1.25;
    cursor:pointer;
    list-style:none;
    text-align:center;
}
.pmb-cancel-request > summary.pmb-cancel-request-button::-webkit-details-marker{display:none}
.pmb-cancel-request[open] > summary.pmb-cancel-request-button{margin-bottom:12px}
@media(max-width:600px){
    .pmb-cancel-request > summary.pmb-cancel-request-button{width:100%;font-size:16px}
}


/* v2.3.57 dashboard secondary actions and navigation */
.pmb-cancel-request > summary.pmb-cancel-request-button,
.pmb-secondary-action{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    min-height:42px;
    padding:9px 15px;
    border:1px solid #cfd5df !important;
    border-radius:7px;
    background:#fff !important;
    color:#28388f !important;
    font-weight:700;
    line-height:1.2;
    text-decoration:none;
    cursor:pointer;
}
.pmb-cancel-request > summary.pmb-cancel-request-button:hover,
.pmb-secondary-action:hover{background:#f6f8fc !important;color:#1f2c75 !important}
.pmb-cancel-request > summary.pmb-cancel-request-button{width:auto}
.pmb-reservation-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:9px;margin-top:10px}
.pmb-payment-navigation-cta{margin:18px 0;padding:18px;border:1px solid #d9dee8;border-left:4px solid #28388f;border-radius:8px;background:#f8f9fc}
.pmb-payment-navigation-cta h3{margin:0 0 6px}.pmb-payment-navigation-cta p{margin:0 0 14px}
@media(max-width:600px){
 .pmb-cancel-request > summary.pmb-cancel-request-button,.pmb-secondary-action{width:auto;font-size:15px}
 .pmb-reservation-actions{gap:8px}
}


/* v2.3.58 Camper Dashboard mobile polish */
.pmb-guest-dashboard-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
}
.pmb-guest-dashboard-head h2{
    margin:0;
    font-size:32px;
    line-height:1.12;
}
.pmb-dashboard-logout{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    min-height:34px;
    padding:6px 11px;
    border:1px solid #cfd5df;
    border-radius:6px;
    background:#fff;
    color:#28388f;
    font-size:13px;
    font-weight:700;
    line-height:1;
    text-decoration:none;
    white-space:nowrap;
}
.pmb-dashboard-logout:hover{
    background:#f6f8fc;
    color:#1f2c75;
}
.pmb-reservation-actions{
    justify-content:center;
}
.pmb-reservation-actions .pmb-navigation-button{
    min-width:220px;
    max-width:100%;
}
.pmb-cancel-request{
    text-align:center;
}
.pmb-cancel-request > summary.pmb-cancel-request-button{
    margin-left:auto;
    margin-right:auto;
    min-width:220px;
    max-width:100%;
}
.pmb-cancel-request[open]{
    text-align:left;
}
.pmb-cancel-request[open] > summary.pmb-cancel-request-button{
    margin-left:auto;
    margin-right:auto;
}

@media(max-width:600px){
    .pmb-guest-dashboard-head{
        align-items:flex-start;
        gap:12px;
    }
    .pmb-guest-dashboard-head h2{
        font-size:27px;
        line-height:1.1;
    }
    .pmb-dashboard-logout{
        min-height:32px;
        padding:6px 10px;
        font-size:12px;
    }
    .pmb-reservation-actions{
        justify-content:center;
        width:100%;
    }
    .pmb-reservation-actions .pmb-navigation-button,
    .pmb-cancel-request > summary.pmb-cancel-request-button{
        width:auto;
        min-width:220px;
        max-width:100%;
    }
}


/* v2.3.59 Camper Dashboard greeting alignment */
.pmb-guest-dashboard-head{
    align-items:flex-start !important;
}
.pmb-guest-dashboard-head > div{
    min-width:0;
    flex:1 1 auto;
}
.pmb-guest-dashboard-head h2{
    margin:0 !important;
    font-size:26px !important;
    line-height:1.12 !important;
    font-weight:600;
}
.pmb-guest-dashboard-head > div > p{
    margin-top:10px !important;
    margin-bottom:0 !important;
}
.pmb-dashboard-logout{
    margin-top:0 !important;
    align-self:flex-start !important;
}

@media(max-width:600px){
    .pmb-guest-dashboard-head{
        display:grid !important;
        grid-template-columns:minmax(0,1fr) auto !important;
        align-items:start !important;
        column-gap:12px !important;
        row-gap:6px !important;
    }
    .pmb-guest-dashboard-head > div{
        min-width:0 !important;
    }
    .pmb-guest-dashboard-head h2{
        font-size:22px !important;
        line-height:1.1 !important;
        margin:0 !important;
    }
    .pmb-guest-dashboard-head > div > p{
        margin:8px 0 0 !important;
        font-size:16px !important;
        line-height:1.35 !important;
    }
    .pmb-dashboard-logout{
        margin:0 !important;
        min-height:32px !important;
        padding:6px 10px !important;
        font-size:12px !important;
        line-height:1 !important;
        align-self:start !important;
        justify-self:end !important;
    }
}


/* v2.3.60 clean Camper Dashboard greeting layout */
.pmb-guest-portal .pmb-guest-dashboard-head{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    align-items:start !important;
    column-gap:14px !important;
    row-gap:0 !important;
}
.pmb-guest-portal .pmb-dashboard-greeting-wrap{
    min-width:0 !important;
}
.pmb-guest-portal .pmb-dashboard-greeting{
    margin:0 !important;
    padding:0 !important;
    font-size:24px !important;
    line-height:1.15 !important;
    font-weight:600 !important;
    letter-spacing:0 !important;
    color:inherit !important;
    max-width:100% !important;
}
.pmb-guest-portal .pmb-dashboard-welcome-text{
    margin:7px 0 0 !important;
    padding:0 !important;
    font-size:17px !important;
    line-height:1.35 !important;
}
.pmb-guest-portal .pmb-dashboard-logout{
    align-self:start !important;
    justify-self:end !important;
    margin:0 !important;
    white-space:nowrap !important;
}

@media(max-width:600px){
    .pmb-guest-portal .pmb-guest-dashboard-head{
        grid-template-columns:minmax(0,1fr) auto !important;
        column-gap:12px !important;
    }
    .pmb-guest-portal .pmb-dashboard-greeting{
        font-size:20px !important;
        line-height:1.15 !important;
        font-weight:600 !important;
    }
    .pmb-guest-portal .pmb-dashboard-welcome-text{
        margin-top:6px !important;
        font-size:15px !important;
        line-height:1.3 !important;
    }
    .pmb-guest-portal .pmb-dashboard-logout{
        min-height:31px !important;
        padding:6px 10px !important;
        font-size:12px !important;
        line-height:1 !important;
    }
}


/* v2.3.61 Camper Dashboard account deactivation */
.pmb-account-deactivation{
    margin-top:24px;
    padding:18px;
    border:1px solid #d9dee8;
    border-radius:8px;
    background:#fafbfc;
}
.pmb-account-deactivation h3{margin:0 0 8px}
.pmb-account-deactivation p{margin:8px 0}
.pmb-deactivate-details{margin-top:14px}
.pmb-deactivate-details > summary{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:40px;
    padding:8px 14px;
    border:1px solid #cfd5df;
    border-radius:7px;
    background:#fff;
    color:#4b5563;
    font-weight:700;
    cursor:pointer;
    list-style:none;
}
.pmb-deactivate-details > summary::-webkit-details-marker{display:none}
.pmb-deactivate-form{
    display:grid;
    gap:12px;
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid #e5e7eb;
}
.pmb-deactivate-confirm{
    display:flex;
    align-items:flex-start;
    gap:9px;
    line-height:1.4;
}
.pmb-deactivate-confirm input{margin-top:3px}
.pmb-deactivate-button{
    justify-self:start;
    min-height:40px;
    padding:8px 14px;
    border:1px solid #b91c1c;
    border-radius:7px;
    background:#fff;
    color:#b91c1c;
    font-weight:700;
    cursor:pointer;
}
@media(max-width:600px){
    .pmb-deactivate-details > summary,
    .pmb-deactivate-button{width:100%}
}


/* v2.3.62 dashboard Profile deactivation control */
.pmb-dashboard-deactivate{
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid #e5e7eb;
}
.pmb-dashboard-deactivate > summary{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:40px;
    padding:8px 14px;
    border:1px solid #cfd5df;
    border-radius:7px;
    background:#fff;
    color:#4b5563;
    font-weight:700;
    cursor:pointer;
    list-style:none;
}
.pmb-dashboard-deactivate > summary::-webkit-details-marker{display:none}
.pmb-dashboard-deactivate-body{
    margin-top:12px;
    padding:14px;
    border:1px solid #e5e7eb;
    border-radius:7px;
    background:#fafbfc;
}
.pmb-dashboard-deactivate-body form{
    display:grid;
    gap:12px;
    margin-top:12px;
}
@media(max-width:600px){
    .pmb-dashboard-deactivate > summary,
    .pmb-dashboard-deactivate .pmb-deactivate-button{
        width:100%;
    }
}

/* v2.3.65 - central camper SMS consent */
.pmb-sms-consent{display:flex!important;align-items:flex-start;gap:10px;margin:12px 0;padding:12px 14px;border:1px solid #d9dee5;border-radius:8px;background:#f8fafc;line-height:1.35}
.pmb-sms-consent input[type="checkbox"]{width:18px;height:18px;min-width:18px;margin:2px 0 0}
.pmb-sms-consent span{display:block;flex:1}
.pmb-sms-consent small{display:block;margin-top:4px;color:#65717d;font-size:13px}
.pmb-profile-sms-preference{margin:18px 0;padding-top:4px;border-top:1px solid #e1e5ea}
.pmb-profile-sms-preference h3{margin:14px 0 8px}


/* v2.3.76 camper-to-park messaging */
.pmb-guest-message .pmb-message-context{
    padding:11px 13px;
    border:1px solid #d9dee8;
    border-radius:7px;
    background:#f8fafc;
    line-height:1.4;
}
.pmb-guest-message .pmb-message-context strong{color:#1f2c75}
.pmb-guest-message .pmb-message-context span{color:#5f6b76;font-size:13px}


/* v2.3.80 Camper Dashboard accordion layout */
.pmb-guest-portal .pmb-dashboard-accordion{overflow:hidden}
.pmb-guest-portal .pmb-dashboard-accordion > h3{margin:-18px -18px 16px}
.pmb-guest-portal .pmb-dashboard-accordion:not(.is-open) > h3{margin-bottom:-18px}
.pmb-guest-portal .pmb-dashboard-accordion-toggle{
    width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;
    padding:17px 18px;border:0;border-bottom:1px solid #e6e8ec;background:#fff;
    color:#1f2c75;text-align:left;font:inherit;font-size:1.08em;font-weight:700;cursor:pointer
}
.pmb-guest-portal .pmb-dashboard-accordion-toggle::after{
    content:"+";flex:0 0 auto;font-size:24px;line-height:1;color:#667085;font-weight:400
}
.pmb-guest-portal .pmb-dashboard-accordion.is-open .pmb-dashboard-accordion-toggle::after{content:"−"}
.pmb-guest-portal .pmb-dashboard-accordion:not(.is-open) > :not(h3){display:none!important}
.pmb-guest-portal .pmb-history-extra{display:none!important}
.pmb-guest-portal .pmb-dashboard-show-more{
    display:block;margin:16px auto 2px;padding:9px 15px;border:1px solid #cfd5df;
    border-radius:7px;background:#fff;color:#1f2c75;font-weight:700;cursor:pointer
}
.pmb-guest-portal .pmb-dashboard-show-more:hover,
.pmb-guest-portal .pmb-dashboard-show-more:focus{background:#f5f7fb}
@media(max-width:600px){
 .pmb-guest-portal .pmb-dashboard-accordion > h3{margin:-14px -14px 14px}
 .pmb-guest-portal .pmb-dashboard-accordion:not(.is-open) > h3{margin-bottom:-14px}
 .pmb-guest-portal .pmb-dashboard-accordion-toggle{padding:15px 14px}
}


/* v2.3.81 Camper Quick PIN */
.pmb-quick-pin-settings{
    margin:20px 0;
    padding:16px;
    border:1px solid #d9dee8;
    border-radius:9px;
    background:#f8fafc;
}
.pmb-quick-pin-settings h3{margin-top:0}
.pmb-pin-fields{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin-bottom:12px;
}
.pmb-pin-fields label,
.pmb-quick-pin-login label{
    display:block;
}
.pmb-pin-fields input,
.pmb-quick-pin-login .pmb-pin-input{
    width:100%;
    max-width:220px;
    text-align:center;
    letter-spacing:.35em;
    font-size:1.45rem;
    font-weight:700;
}
.pmb-quick-pin-login{
    text-align:center;
    margin-bottom:18px;
}
.pmb-quick-pin-login .pmb-pin-welcome{
    margin-bottom:14px;
}
.pmb-quick-pin-login .pmb-pin-input{
    margin-left:auto;
    margin-right:auto;
}
.pmb-standard-login-link{
    margin:12px 0 0;
}
@media(max-width:600px){
    .pmb-pin-fields{grid-template-columns:1fr}
    .pmb-pin-fields input{max-width:none}
}


/* v2.3.82 - clean map-selected reservation summary */
.pmb-map-direct-wrap .pmb-map-direct-summary{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin:14px 0 18px;
}
.pmb-map-direct-wrap .pmb-map-summary-item{
    min-width:0;
    padding:12px 14px;
    border:1px solid #dfe4ea;
    border-radius:9px;
    background:#fff;
    box-shadow:0 1px 2px rgba(16,24,40,.04);
}
.pmb-map-direct-wrap .pmb-map-summary-label{
    display:block;
    margin:0 0 4px;
    color:#667085;
    font-size:12px;
    line-height:1.25;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.03em;
}
.pmb-map-direct-wrap .pmb-map-summary-value{
    display:block;
    margin:0;
    color:#1f2937;
    font-size:17px;
    line-height:1.3;
    font-weight:700;
    overflow-wrap:anywhere;
}
@media(max-width:760px){
    .pmb-map-direct-wrap .pmb-map-direct-summary{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:9px;
        margin-top:12px;
    }
    .pmb-map-direct-wrap .pmb-map-summary-item{
        padding:11px 12px;
    }
    .pmb-map-direct-wrap .pmb-map-summary-value{
        font-size:16px;
    }
}
@media(max-width:360px){
    .pmb-map-direct-wrap .pmb-map-direct-summary{
        grid-template-columns:1fr;
    }
}


/* v2.3.83 - desktop-only reservation form cleanup */
@media (min-width: 901px) {
    .pmb-booking-wrap .pmb-search-form {
        display: grid;
        grid-template-columns: repeat(12, minmax(0, 1fr));
        gap: 18px 20px;
        align-items: start;
        padding: 24px;
        background: #fff;
        border: 1px solid #e1e5eb;
        border-radius: 12px;
        box-sizing: border-box;
    }

    .pmb-booking-wrap .pmb-search-form > .pmb-category-select,
    .pmb-booking-wrap .pmb-search-form > .pmb-category-info,
    .pmb-booking-wrap .pmb-search-form > .pmb-reservation-period {
        grid-column: 1 / -1;
    }

    .pmb-booking-wrap .pmb-category-info {
        margin: 0;
        padding: 18px 20px;
        border-radius: 10px;
        background: #fafbfc;
    }

    .pmb-booking-wrap .pmb-category-times {
        display: inline-flex;
        gap: 22px;
        align-items: center;
        margin-top: 12px;
        padding: 9px 12px;
        border-radius: 7px;
        background: #f1f4f8;
    }

    .pmb-booking-wrap .pmb-reservation-period {
        display: grid;
        grid-template-columns: minmax(210px, .75fr) minmax(430px, 1.6fr);
        gap: 26px;
        align-items: center;
        padding: 20px;
        border: 1px solid #e1e5eb;
        border-radius: 10px;
        background: #fafbfc;
    }

    .pmb-booking-wrap .pmb-reservation-period-heading {
        margin: 0;
        padding: 0;
    }

    .pmb-booking-wrap .pmb-reservation-period-heading strong {
        display: block;
        margin-bottom: 5px;
        font-size: 16px;
        color: #1f2937;
    }

    .pmb-booking-wrap .pmb-reservation-period-heading span {
        display: block;
        max-width: 240px;
        color: #667085;
        line-height: 1.45;
    }

    .pmb-booking-wrap .pmb-reservation-period-options {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
    }

    .pmb-booking-wrap .pmb-reservation-period-card {
        width: 100%;
        min-height: 118px;
        padding: 17px 18px;
        border-radius: 9px;
        text-align: left;
        box-sizing: border-box;
    }

    .pmb-booking-wrap .pmb-reservation-period-copy {
        display: block;
    }

    .pmb-booking-wrap .pmb-reservation-period-copy strong {
        display: block;
        margin-bottom: 6px;
        font-size: 16px;
    }

    .pmb-booking-wrap .pmb-reservation-period-copy small {
        display: block;
        line-height: 1.4;
    }

    /* Standard date / rig / guest-count fields line up in clean desktop columns. */
    .pmb-booking-wrap .pmb-search-form > div:not([class]) {
        grid-column: span 3;
        min-width: 0;
    }

    .pmb-booking-wrap .pmb-search-form > div:not([class]) label {
        display: block;
        margin-bottom: 6px;
        min-height: 22px;
        font-weight: 700;
    }

    .pmb-booking-wrap .pmb-search-form > div:not([class]) small {
        display: block;
        margin-top: 5px;
        color: #667085;
        line-height: 1.35;
    }

    .pmb-booking-wrap .pmb-search-form > .pmb-form-note {
        grid-column: span 6;
        align-self: stretch;
        margin: 0;
        padding: 14px 16px;
        border-radius: 8px;
        background: #f7f8fa;
        border: 1px solid #e5e7eb;
        line-height: 1.45;
        box-sizing: border-box;
    }

    .pmb-booking-wrap .pmb-search-form > .pmb-stay-length {
        grid-column: span 3;
        align-self: stretch;
        display: flex;
        flex-direction: column;
        justify-content: center;
        min-height: 72px;
        padding: 12px 14px;
        border: 1px solid #e1e5eb;
        border-radius: 8px;
        background: #fafbfc;
        box-sizing: border-box;
    }

    .pmb-booking-wrap .pmb-search-form > .pmb-search-addons {
        grid-column: 1 / -1;
        margin: 0;
    }

    .pmb-booking-wrap .pmb-search-form > button[type="submit"] {
        grid-column: span 3;
        align-self: end;
        width: 100%;
        min-height: 48px;
        border-radius: 7px;
    }
}


/* v2.3.84 - corrected desktop reservation layout */
@media (min-width: 901px) {
    .pmb-booking-wrap .pmb-search-form > .pmb-reservation-period {
        grid-template-columns: 220px minmax(0, 1fr);
        width: 100%;
        min-width: 0;
    }

    .pmb-booking-wrap .pmb-reservation-period-options {
        width: 100%;
        min-width: 0;
        max-width: none;
    }

    .pmb-booking-wrap .pmb-reservation-period-card {
        min-width: 0;
        min-height: 112px;
    }

    .pmb-booking-wrap .pmb-search-form > .pmb-reservation-period-prompt {
        grid-column: 1 / -1;
        width: 100%;
        margin: 0 !important;
        padding: 12px 14px;
        border: 1px solid #e1e5eb;
        border-radius: 8px;
        background: #f7f8fa;
        text-align: center;
        box-sizing: border-box;
    }

    .pmb-booking-wrap .pmb-search-form > .pmb-res-field {
        grid-column: span 3;
        min-width: 0;
    }

    .pmb-booking-wrap .pmb-search-form > .pmb-res-field label {
        display: block;
        min-height: 22px;
        margin-bottom: 6px;
        font-weight: 700;
    }

    .pmb-booking-wrap .pmb-search-form > .pmb-res-field small {
        display: block;
        min-height: 32px;
        margin-top: 5px;
        color: #667085;
        line-height: 1.35;
    }

    /* Monthly: date + explanation are one clean row. */
    .pmb-booking-wrap .pmb-search-form.pmb-stay-monthly > .pmb-res-field-checkin {
        grid-column: span 4;
    }

    .pmb-booking-wrap .pmb-search-form.pmb-stay-monthly > .pmb-form-note {
        grid-column: span 8;
        min-width: 0;
        overflow-wrap: anywhere;
    }

    /* Monthly detail row: rig, vehicles, adults, children. */
    .pmb-booking-wrap .pmb-search-form.pmb-stay-monthly > .pmb-res-field-rig,
    .pmb-booking-wrap .pmb-search-form.pmb-stay-monthly > .pmb-res-field-vehicles,
    .pmb-booking-wrap .pmb-search-form.pmb-stay-monthly > .pmb-res-field-adults,
    .pmb-booking-wrap .pmb-search-form.pmb-stay-monthly > .pmb-res-field-children {
        grid-column: span 3;
    }

    .pmb-booking-wrap .pmb-search-form.pmb-stay-monthly > button[type="submit"] {
        grid-column: 10 / 13;
    }

    /* Daily/overnight: four clean equal columns. */
    .pmb-booking-wrap .pmb-search-form.pmb-stay-overnight > .pmb-res-field,
    .pmb-booking-wrap .pmb-search-form.pmb-stay-overnight > .pmb-stay-length {
        grid-column: span 3;
    }
}


/* v2.3.85 - desktop map/calendar chooser grid fix */
@media (min-width: 901px) {
    .pmb-booking-wrap .pmb-search-form > .pmb-map-booking-card {
        grid-column: 1 / -1 !important;
        width: 100%;
        min-width: 0;
        box-sizing: border-box;
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(360px, .95fr);
        gap: 24px;
        align-items: center;
        padding: 20px 22px;
    }

    .pmb-booking-wrap .pmb-map-booking-copy {
        margin: 0;
        min-width: 0;
    }

    .pmb-booking-wrap .pmb-map-booking-copy strong {
        font-size: 1.05rem;
    }

    .pmb-booking-wrap .pmb-site-choice-actions {
        min-width: 0;
        width: 100%;
    }

    .pmb-booking-wrap .pmb-site-choice-actions .pmb-map-booking-button {
        width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    .pmb-booking-wrap .pmb-site-choice-or {
        margin: 10px 0;
    }
}


/* v2.3.88 - authoritative desktop reservation layout.
   Structural row wrappers prevent the parent 12-column grid from compressing individual fields. */
@media (min-width: 901px) {
    .pmb-booking-wrap .pmb-search-form > .pmb-date-row,
    .pmb-booking-wrap .pmb-search-form > .pmb-details-row,
    .pmb-booking-wrap .pmb-search-form > .pmb-form-bottom-row {
        grid-column: 1 / -1 !important;
        width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    .pmb-booking-wrap .pmb-date-row {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 20px;
        align-items: stretch;
    }

    .pmb-booking-wrap .pmb-search-form.pmb-stay-monthly .pmb-date-row {
        grid-template-columns: minmax(260px, .8fr) minmax(0, 2.2fr);
    }

    .pmb-booking-wrap .pmb-date-row > .pmb-res-field,
    .pmb-booking-wrap .pmb-date-row > .pmb-form-note,
    .pmb-booking-wrap .pmb-date-row > .pmb-stay-length {
        grid-column: auto !important;
        width: 100%;
        min-width: 0;
        margin: 0;
        box-sizing: border-box;
    }

    .pmb-booking-wrap .pmb-date-row .pmb-form-note {
        padding: 14px 16px;
        border: 1px solid #e1e5eb;
        border-radius: 8px;
        background: #f7f8fa;
        line-height: 1.45;
    }

    .pmb-booking-wrap .pmb-details-row {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 20px;
        align-items: start;
    }

    .pmb-booking-wrap .pmb-details-row > .pmb-res-field {
        grid-column: auto !important;
        width: 100%;
        min-width: 0;
    }

    .pmb-booking-wrap .pmb-details-row input,
    .pmb-booking-wrap .pmb-date-row input {
        width: 100%;
        max-width: none;
        box-sizing: border-box;
    }

    .pmb-booking-wrap .pmb-form-bottom-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
        gap: 24px;
        align-items: end;
    }

    .pmb-booking-wrap .pmb-form-bottom-row > .pmb-search-addons {
        grid-column: auto !important;
        min-width: 0;
        margin: 0;
    }

    .pmb-booking-wrap .pmb-form-bottom-row > button[type="submit"] {
        grid-column: auto !important;
        width: 100%;
        min-height: 48px;
        align-self: end;
    }

    .pmb-booking-wrap .pmb-search-form.pmb-stay-monthly .pmb-form-bottom-row {
        grid-template-columns: 1fr minmax(220px, 280px);
    }

    .pmb-booking-wrap .pmb-search-form.pmb-stay-monthly .pmb-form-bottom-row > button[type="submit"] {
        grid-column: 2 !important;
    }
}

/* v2.4.1 RESTORED tablet/iPad + desktop reservation layout.
   Restored from the previously approved responsive CSS.
   CSS only: phone layout at 700px and below is untouched.

   Desktop reservation search layout cleanup.
   Tablet/iPad widths through 1024px are handled by the CSS-only tablet rules below. */
@media (min-width: 1025px) {
    .pmb-search-form {
        display: flex;
        flex-wrap: wrap;
        align-items: flex-end;
        gap: 16px;
    }

    /* Full-width introductory / choice sections. */
    .pmb-search-form > .pmb-category-select,
    .pmb-search-form > .pmb-category-info,
    .pmb-search-form > .pmb-map-booking-card,
    .pmb-search-form > .pmb-site-choice-actions,
    .pmb-search-form > .pmb-map-selected-site,
    .pmb-search-form > .pmb-reservation-period,
    .pmb-search-form > .pmb-reservation-period-prompt {
        flex: 0 0 100%;
        width: 100%;
        box-sizing: border-box;
    }

    .pmb-search-form > .pmb-reservation-period {
        margin: 4px 0 2px;
    }

    .pmb-reservation-period-options {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
        max-width: none;
    }

    .pmb-search-form .pmb-reservation-period-card {
        min-height: 88px;
        padding: 16px 20px;
    }

    /* Standard search fields form a clean four-column desktop row. */
    .pmb-search-form > div:not(.pmb-category-select):not(.pmb-category-info):not(.pmb-map-booking-card):not(.pmb-site-choice-actions):not(.pmb-map-selected-site):not(.pmb-reservation-period):not(.pmb-search-addons):not(.pmb-form-note):not(.pmb-stay-length) {
        flex: 1 1 calc(25% - 12px);
        min-width: 180px;
        box-sizing: border-box;
    }

    .pmb-search-form > .pmb-stay-length {
        flex: 1 1 calc(25% - 12px);
        min-width: 180px;
        margin: 0;
        box-sizing: border-box;
        min-height: 43px;
        display: flex;
        align-items: center;
    }

    /* Monthly explanation gets enough room to read naturally. */
    .pmb-search-form > .pmb-form-note:not(.pmb-reservation-period-prompt) {
        flex: 2 1 calc(50% - 8px);
        min-width: 360px;
        margin: 0;
        padding: 12px 14px;
        box-sizing: border-box;
        line-height: 1.45;
    }

    /* Daily add-ons and vehicle note stay together instead of becoming tall narrow columns. */
    .pmb-search-form > .pmb-search-addons {
        flex: 1 1 70%;
        min-width: 0;
        display: grid;
        grid-template-columns: minmax(250px, .9fr) minmax(360px, 1.6fr);
        gap: 16px;
        align-items: stretch;
        box-sizing: border-box;
    }

    .pmb-search-addons .pmb-checkline,
    .pmb-search-addons .pmb-vehicle-note {
        min-height: 58px;
        box-sizing: border-box;
        display: flex;
        align-items: center;
    }

    .pmb-search-addons .pmb-checkline {
        flex-wrap: wrap;
    }

    .pmb-search-addons .pmb-checkline small {
        flex-basis: 100%;
        margin-left: 24px;
    }

    .pmb-search-addons .pmb-vehicle-note {
        padding: 10px 14px;
        border: 1px solid #ddd;
        background: #fff;
        font-weight: 600;
    }

    .pmb-search-form > button[type="submit"] {
        flex: 0 0 auto;
        min-width: 205px;
        margin-left: auto;
        align-self: flex-end;
    }
}

/* Tablet / iPad reservation search layout cleanup.
   CSS-only enhancement: phones remain on the existing mobile layout and
   desktop keeps the v2.3.82 desktop layout above 1024px. */
@media (min-width: 701px) and (max-width: 1024px) {
    .pmb-booking-wrap{
        max-width:900px;
        margin:18px auto;
        padding:0 18px;
        box-sizing:border-box;
    }

    .pmb-search-form{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:16px;
        align-items:start;
        padding:20px;
        box-sizing:border-box;
    }

    /* Introductory sections always use the full tablet width. */
    .pmb-search-form > .pmb-category-select,
    .pmb-search-form > .pmb-category-info,
    .pmb-search-form > .pmb-map-booking-card,
    .pmb-search-form > .pmb-site-choice-actions,
    .pmb-search-form > .pmb-map-selected-site,
    .pmb-search-form > .pmb-reservation-period,
    .pmb-search-form > .pmb-reservation-period-prompt{
        grid-column:1 / -1;
        width:100%;
        min-width:0;
        box-sizing:border-box;
    }

    .pmb-search-form > .pmb-reservation-period{
        margin:8px 0 2px;
    }

    .pmb-reservation-period-heading{
        margin-bottom:12px;
    }

    /* Two wide, professional choice cards instead of narrow/tall cards. */
    .pmb-reservation-period-options{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:14px;
        width:100%;
    }

    .pmb-search-form .pmb-reservation-period-card{
        width:100%;
        min-width:0;
        min-height:86px;
        padding:15px 42px 15px 16px;
        align-items:center;
        box-sizing:border-box;
    }

    .pmb-reservation-period-copy strong{font-size:1rem}
    .pmb-reservation-period-copy small{font-size:.88rem;line-height:1.4}

    /* All normal reservation fields form a balanced two-column tablet grid. */
    .pmb-search-form > div:not(.pmb-category-select):not(.pmb-category-info):not(.pmb-map-booking-card):not(.pmb-site-choice-actions):not(.pmb-map-selected-site):not(.pmb-reservation-period):not(.pmb-reservation-period-prompt):not(.pmb-search-addons):not(.pmb-form-note):not(.pmb-stay-length){
        grid-column:auto;
        width:100%;
        min-width:0;
        margin:0;
        box-sizing:border-box;
    }

    .pmb-search-form input,
    .pmb-search-form select{
        width:100%;
        min-width:0;
        box-sizing:border-box;
    }

    .pmb-search-form > .pmb-stay-length{
        grid-column:auto;
        width:100%;
        min-width:0;
        min-height:45px;
        margin:0;
        display:flex;
        align-items:center;
        box-sizing:border-box;
    }

    /* Monthly 30-day explanation gets a readable full row. */
    .pmb-search-form > .pmb-form-note:not(.pmb-reservation-period-prompt){
        grid-column:1 / -1;
        width:100%;
        min-width:0;
        margin:0;
        padding:13px 15px;
        box-sizing:border-box;
        line-height:1.5;
    }

    /* Daily extras stay together and no longer create a skinny text column. */
    .pmb-search-form > .pmb-search-addons{
        grid-column:1 / -1;
        display:grid;
        grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
        gap:14px;
        width:100%;
        min-width:0;
        margin:0;
        box-sizing:border-box;
    }

    .pmb-search-addons .pmb-checkline,
    .pmb-search-addons .pmb-vehicle-note{
        width:100%;
        min-width:0;
        min-height:64px;
        margin:0;
        padding:11px 13px;
        box-sizing:border-box;
    }

    .pmb-search-addons .pmb-vehicle-note{
        display:flex;
        align-items:center;
        border:1px solid #ddd;
        background:#fff;
        line-height:1.45;
    }

    /* Strong full-width call to action at the end of the tablet form. */
    .pmb-search-form > button[type="submit"]{
        grid-column:1 / -1;
        width:100%;
        min-height:52px;
        margin:2px 0 0;
        box-sizing:border-box;
    }
}


/* v2.4.2 - desktop-only first reservation page cleanup.
   Scope is intentionally limited to the initial Start Your Reservation card.
   Tablet/iPad and all other booking pages are unchanged. */
@media (min-width: 1025px) {
    .pmb-booking-start-card .pmb-search-form.pmb-stay-choose {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }

    .pmb-booking-start-card .pmb-search-form.pmb-stay-choose > .pmb-category-select {
        display: block;
        width: 100%;
        max-width: none;
        box-sizing: border-box;
    }

    .pmb-booking-start-card .pmb-search-form.pmb-stay-choose > .pmb-start-help {
        display: block;
        width: 100%;
        max-width: none;
        box-sizing: border-box;
        white-space: normal;
        overflow-wrap: normal;
        word-break: normal;
    }
}
