.ema-booking{--ink:#263126;--forest:#263225;--sand:#eee6da;--line:rgba(38,49,38,.2);color:var(--ink)}
.ema-progress{display:flex;justify-content:center;gap:30px;margin-bottom:55px}.ema-progress span{font-size:10px;text-transform:uppercase;letter-spacing:.18em;opacity:.35}.ema-progress span.is-active{opacity:1}
.ema-step{background:#fff;padding:55px;margin-bottom:28px;border:1px solid var(--line)}.ema-step h2{font-family:Italiana,serif;font-size:48px;font-weight:400;margin:0 0 34px}.ema-kicker{text-transform:uppercase;letter-spacing:.2em;font-size:10px;font-weight:500}
.ema-date-grid,.ema-form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:28px}.ema-form-grid{grid-template-columns:1fr 1fr}
.ema-booking label{font-size:11px;text-transform:uppercase;letter-spacing:.12em}.ema-booking input,.ema-booking select,.ema-booking textarea{width:100%;margin-top:9px;padding:15px;border:1px solid var(--line);background:#faf8f3;font:inherit;color:inherit;border-radius:0}
.ema-button{border:1px solid var(--forest);background:var(--forest);color:#fff;padding:17px 28px;text-transform:uppercase;letter-spacing:.16em;font-size:11px;cursor:pointer}.ema-button:disabled{opacity:.35;cursor:not-allowed}
.ema-message{margin-top:18px}.ema-cabin-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:24px}.ema-cabin-card{position:relative;cursor:pointer}.ema-cabin-card input{position:absolute;opacity:0}.ema-cabin-card__body{display:flex;flex-direction:column;min-height:190px;padding:28px;border:1px solid var(--line);background:var(--sand);transition:.2s}.ema-cabin-card input:checked+.ema-cabin-card__body{border:2px solid var(--forest);box-shadow:inset 0 0 0 5px var(--sand)}.ema-cabin-card strong{font-family:Italiana,serif;font-size:32px;font-weight:400;text-transform:none;letter-spacing:0}.ema-cabin-card small{margin-top:8px}.ema-cabin-card em{margin-top:auto;font-style:normal;text-transform:none;letter-spacing:0;font-size:14px}.ema-unavailable{padding:16px 18px;background:#f3eee6;border-left:3px solid #9c704f}.ema-total{font-size:20px;padding:20px 0}.ema-consent{display:flex;align-items:flex-start;gap:10px;margin:20px 0;text-transform:none!important;letter-spacing:0!important}.ema-consent input{width:auto;margin-top:4px}
@media(max-width:800px){.ema-step{padding:28px}.ema-date-grid,.ema-form-grid,.ema-cabin-grid{grid-template-columns:1fr}.ema-progress{gap:12px;flex-wrap:wrap}.ema-step h2{font-size:38px}}

/* 1.2.0 live availability calendar */
.ema-calendar-toolbar{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;gap:14px;margin:20px 0 18px}
.ema-calendar-nav{width:48px;height:48px;border:1px solid var(--line);background:#faf8f3;color:var(--forest);font-size:20px;cursor:pointer}
.ema-calendar-instruction{text-align:center;margin:0;font-family:Italiana,serif;font-size:23px}
.ema-calendar{display:grid;grid-template-columns:1fr 1fr;gap:34px;padding:28px;border:1px solid var(--line);background:#faf8f3}
.ema-calendar-month h3{font-family:Italiana,serif;font-size:26px;font-weight:400;text-align:center;margin:0 0 20px}
.ema-calendar-weekdays,.ema-calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.ema-calendar-weekdays{margin-bottom:7px}.ema-calendar-weekdays span{text-align:center;font-size:10px;letter-spacing:.1em;text-transform:uppercase;opacity:.58}
.ema-calendar-empty{aspect-ratio:1}
.ema-calendar-day{position:relative;aspect-ratio:1;border:0;background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer;font:inherit;border-radius:50%;padding:0}
.ema-calendar-day span{position:relative;z-index:2}
.ema-calendar-day:hover:not(:disabled){outline:1px solid var(--forest)}
.ema-calendar-day.is-past{color:#bbb;cursor:not-allowed;text-decoration:line-through}
.ema-calendar-day.is-closed{background:#ead9d4;color:#9b4f46;cursor:not-allowed;text-decoration:line-through}
.ema-calendar-day.is-partial:after{content:"";position:absolute;bottom:5px;width:5px;height:5px;border-radius:50%;background:#b88a45}
.ema-calendar-day.is-checkin,.ema-calendar-day.is-checkout{background:var(--forest);color:#fff;text-decoration:none}
.ema-calendar-day.is-in-range{background:#dfe3d9;border-radius:0}
.ema-calendar-legend{display:flex;gap:25px;flex-wrap:wrap;margin:16px 0 10px;font-size:11px;letter-spacing:.04em}
.ema-calendar-legend span{display:flex;align-items:center;gap:7px}.ema-calendar-legend i{width:12px;height:12px;display:inline-block;border-radius:50%;border:1px solid var(--line)}
.ema-legend-free{background:#faf8f3}.ema-legend-partial{background:#d8bb84}.ema-legend-closed{background:#ead9d4}
.ema-date-summary{display:flex;gap:1px;margin:24px 0;background:var(--line)}
.ema-date-summary span{flex:1;background:#fff;padding:18px;display:flex;flex-direction:column;gap:6px;font-size:14px}.ema-date-summary strong{text-transform:uppercase;letter-spacing:.12em;font-size:9px}
.ema-guests-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:520px;margin:20px 0}
.ema-minimum-stay{font-size:12px;margin:0 0 22px;color:#766b60}
@media(max-width:800px){.ema-calendar{grid-template-columns:1fr;padding:18px}.ema-calendar-month:nth-child(2){display:none}.ema-calendar-instruction{font-size:19px}.ema-date-summary{flex-direction:column}.ema-guests-grid{grid-template-columns:1fr 1fr}}

.ema-payment-note{margin:18px 0;color:#6f675d;font-size:13px;line-height:1.6}
.ema-stay-saving{display:block;margin-top:10px;color:#50604b;font-size:12px;line-height:1.5;font-weight:500;text-transform:none;letter-spacing:0}

.ema-extras{margin:34px 0 24px;padding-top:28px;border-top:1px solid #ded5c8}
.ema-extras h3{margin:0 0 18px;font-family:serif;font-size:28px;font-weight:400}
.ema-extra-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:17px 0;border-bottom:1px solid #e7dfd4;cursor:pointer}
.ema-extra-card input{width:18px;height:18px}
.ema-extra-card span{display:flex;flex-direction:column;gap:4px}
.ema-extra-card strong{font-size:15px;font-weight:500}
.ema-extra-card small{color:#746b60;line-height:1.45}
.ema-extra-card em{font-style:normal;font-weight:500}
.ema-extra-people{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0 18px 32px;border-bottom:1px solid #e7dfd4}
.ema-extra-people select{min-width:150px}
.ema-total{display:flex;flex-direction:column;gap:5px}
.ema-total small{color:#746b60;font-size:13px}
@media(max-width:640px){
  .ema-extra-card{grid-template-columns:auto 1fr}
  .ema-extra-card em{grid-column:2}
  .ema-extra-people{align-items:flex-start;flex-direction:column;padding-left:0}
}

/* 1.4.1 — use only the live EMA availability calendar */
.ema-legacy-date-field-hidden,
.ema-legacy-date-row-hidden{
  display:none !important;
  visibility:hidden !important;
  height:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
}

.ema-calendar-day.is-closed{
  background:#b9473e !important;
  border-color:#a33b33 !important;
  color:#fff !important;
  cursor:not-allowed !important;
  opacity:1 !important;
  text-decoration:line-through;
}

.ema-calendar-day.is-partial{
  background:#edbc58 !important;
  border-color:#d9a43d !important;
  color:#493316 !important;
}

.ema-calendar-day.is-past{
  background:#eeeae4 !important;
  border-color:#e2ddd5 !important;
  color:#aaa39a !important;
  cursor:not-allowed !important;
}

.ema-calendar-day:disabled{
  pointer-events:none !important;
}

/* 1.4.2 — one simple live calendar only */
.booking-shell input[type="date"],
.booking-shell label:has(input[type="date"]),
.booking-shell .ema-date-grid,
.booking-shell .legacy-date-grid,
.booking-shell .booking-date-fields,
.booking-shell .native-date-fields{
  display:none !important;
}

.ema-calendar{
  display:block !important;
  max-width:720px;
  margin:0 auto;
  padding:28px;
}

.ema-calendar-month{
  width:100%;
  max-width:640px;
  margin:0 auto;
}

.ema-calendar-month:nth-child(n+2){
  display:none !important;
}

.ema-calendar-month h3{
  font-size:34px;
  margin-bottom:24px;
}

.ema-calendar-weekdays,
.ema-calendar-days{
  gap:7px;
}

.ema-calendar-day{
  border-radius:10px;
  border:1px solid rgba(38,49,38,.16);
  background:#f7f4ee;
}

.ema-calendar-day.is-available{
  background:#e5f0e2;
  color:#183c1c;
  border-color:#b8ceb5;
}

.ema-calendar-day.is-partial{
  background:#efbf59 !important;
  color:#493316 !important;
  border-color:#d8a33d !important;
}

.ema-calendar-day.is-closed{
  background:#bd473d !important;
  color:#fff !important;
  border-color:#a53a32 !important;
  text-decoration:line-through;
}

.ema-calendar-day.is-checkin,
.ema-calendar-day.is-checkout{
  background:#263225 !important;
  color:#fff !important;
  border-color:#263225 !important;
  text-decoration:none !important;
}

.ema-calendar-day.is-in-range{
  background:#d7e2d3 !important;
  border-radius:10px;
}

.ema-calendar-toolbar{
  max-width:720px;
  margin-left:auto;
  margin-right:auto;
}

.ema-calendar-legend,
.ema-date-summary,
.ema-guests-grid,
.ema-minimum-stay,
#ema-check-button,
#ema-date-message{
  max-width:720px;
  margin-left:auto;
  margin-right:auto;
}

@media(max-width:800px){
  .ema-calendar{
    max-width:none;
    padding:14px;
  }
  .ema-calendar-month h3{
    font-size:27px;
  }
  .ema-calendar-weekdays,
  .ema-calendar-days{
    gap:4px;
  }
}
