/* V33 candidate: calculator-only calendar and compact comparison rows. */
.savings-calculator {
  --sd-ink:#082f3a; --sd-ink-soft:#49666d; --sd-sea:#0c7778;
  --sd-aqua:#8fd8ce; --sd-line:rgba(8,47,58,.15);
  box-sizing:border-box; width:min(100%,70rem); margin:0 auto 1.25rem;
  display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.5fr);
  border:1px solid var(--sd-line); border-radius:1rem; overflow:hidden;
  background:#fff; color:var(--sd-ink);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  box-shadow:0 12px 32px rgba(8,47,58,.1);
}
.savings-calculator * {box-sizing:border-box; min-width:0;}
.savings-top {padding:1.1rem; background:linear-gradient(rgba(244,250,250,.96),rgba(244,250,250,.94)),url("sunshine-daydream-sunset-hero.jpg") center / cover;}
.savings-eyebrow,.savings-mini-label {margin:0; font-size:.75rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase;}
.savings-eyebrow {color:var(--sd-sea);}
.savings-copy h2 {margin:.35rem 0 .8rem; font:500 clamp(1.45rem,2.2vw,1.8rem)/1.2 Georgia,"Times New Roman",serif;}
.savings-form {display:grid; grid-template-columns:1fr 1fr; gap:.6rem;}
.savings-fields {display:contents;}
.savings-date-control {grid-column:1/-1; display:grid; gap:.25rem;}
.savings-fields label {display:grid; gap:.25rem;}
.savings-field-label,.savings-fields label {font-size:.875rem; font-weight:750;}
.savings-fields input,.savings-fields select,#savings-dates {width:100%; min-height:3rem; padding:.6rem .65rem; border:1px solid #a4b9bd; border-radius:.5rem; background:#fff; color:var(--sd-ink); font:inherit; font-size:1rem;}
#savings-dates {text-align:left; cursor:pointer; font-weight:700;}
.savings-submit,.savings-book-link,.savings-market-link {display:inline-flex; align-items:center; justify-content:center; min-height:2.8rem; padding:.5rem .75rem; border-radius:.55rem; text-decoration:none; font:inherit; font-size:.875rem; font-weight:800; cursor:pointer; white-space:nowrap;}
.savings-submit {align-self:end; min-height:3rem; border:1px solid var(--sd-ink); background:var(--sd-ink); color:#fff;}
.savings-book-link {color:white; background:var(--sd-sea); border:1px solid var(--sd-sea);}
.savings-market-link {color:var(--sd-ink); background:transparent; border:1px solid #a4b9bd;}
.savings-submit:hover,.savings-book-link:hover {background:#064e59;}
.savings-market-link:hover {background:#eaf5f4;}
.savings-calculator :is(input,select,button,a):focus-visible {outline:3px solid #087c91; outline-offset:2px;}
.savings-error,.savings-handoff {grid-column:1/-1; margin:0; font-size:.875rem; line-height:1.4;}
.savings-error {color:#9b231e;}
.savings-window {grid-column:1/-1; margin:0; font-size:.8rem; line-height:1.4; color:var(--sd-ink-soft);}
.savings-result {display:flex; flex-direction:column; padding:.65rem 1rem; background:#fff;}
.savings-result:focus {outline:none;}
.savings-comparison-card {display:grid; grid-template-columns:4.1rem minmax(0,1fr) auto; column-gap:.55rem; padding:.55rem 0; align-items:center;}
.savings-comparison-card + .savings-comparison-card {border-top:1px solid var(--sd-line);}
.savings-price-label {grid-column:1; grid-row:1; margin:0; font-size:.875rem; font-weight:800;}
.savings-before-calculation,.savings-price-value,.savings-price-note {grid-column:2; grid-row:1; margin:0;}
.savings-unavailable-only {grid-column:2; grid-row:1; margin:0; color:#7c3b12; font-size:.875rem; font-weight:750; line-height:1.3; overflow-wrap:anywhere;}
.savings-before-calculation,.savings-price-note {font-size:.875rem; color:var(--sd-ink-soft); line-height:1.25;}
.savings-price-value {font-size:1.2rem; font-weight:750; line-height:1.2; font-variant-numeric:tabular-nums;}
.savings-price-value::before {content:'~'; font-size:.9em; font-weight:500;}
.savings-vrbo-value {font-size:1.1rem; overflow-wrap:anywhere;}
.savings-vrbo-value[data-unavailable="true"] {font-size:.875rem; font-weight:500; color:var(--sd-ink-soft);}
.savings-vrbo-value::before {content:none;}
.savings-comparison-card > a {grid-column:3; grid-row:1; min-width:7.6rem;}
.savings-save {margin:0 0 .3rem; padding:.65rem .8rem; border-radius:.65rem; color:white; background:var(--sd-ink);}
.savings-save .savings-mini-label {color:#b4eee5;}
.savings-vs {text-transform:none; letter-spacing:0;}
.savings-save-main {display:flex; align-items:baseline; flex-wrap:wrap; gap:.6rem; margin-top:.2rem;}
.savings-save-main strong {font:500 clamp(1.8rem,3.7vw,2.3rem)/1.1 Georgia,"Times New Roman",serif;}
.savings-save-main span {color:#b4eee5; font-size:1rem; font-weight:850;}
.savings-stay-summary {margin:.2rem 0 0; font-size:.8rem; color:#d4e4e5;}
.savings-actions {padding:.35rem 0 .15rem; border-top:1px solid var(--sd-line);}
.savings-disclosure {margin:0; font-size:.8rem; line-height:1.4; color:var(--sd-ink-soft);}
.savings-fallback {grid-column:1/-1; padding:.7rem 1rem; border-top:1px solid var(--sd-line);}
.savings-fallback strong {font-size:.9rem;}
.savings-fallback p {margin:.2rem 0 0; font-size:.875rem; line-height:1.4;}
.savings-result .savings-fallback {margin:0 0 .35rem; padding:.65rem .75rem; border:1px solid #d3b38b; border-radius:.55rem; background:#fff6e8; color:#603510;}
.savings-sr-only {position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip-path:inset(50%)!important; white-space:nowrap!important; border:0!important;}
.savings-calculator [hidden] {display:none;}
.savings-calendar {width:min(25rem,calc(100vw - 1rem)); max-height:calc(100dvh - 1rem); overflow:auto; margin:auto; padding:1rem; border:1px solid #a4b9bd; border-radius:.9rem; color:var(--sd-ink); background:#fff; box-shadow:0 12px 60px #082f3a40;}
.savings-calendar::backdrop {background:rgba(3,25,31,.6);}
.savings-calendar-heading,.savings-calendar-navigation,.savings-calendar-actions {display:flex; align-items:center; justify-content:space-between; gap:.5rem;}
.savings-calendar h3 {margin:0; font-size:1.05rem;}
.savings-calendar h4 {margin:0; font-size:1rem;}
.savings-calendar button {font:inherit; color:var(--sd-ink); background:#fff; border:1px solid #a4b9bd; border-radius:.45rem; min-height:2.75rem; padding:.4rem .6rem; cursor:pointer; touch-action:manipulation;}
.savings-calendar [data-calendar-prompt] {font-size:1rem; font-weight:750; margin:.8rem 0 .25rem;}
.savings-calendar-selection {margin:0 0 .65rem; font-size:.875rem; min-height:1.3rem;}
.savings-calendar-navigation button {min-width:2.75rem; font-size:1.5rem;}
.savings-calendar table {width:100%; table-layout:fixed; border-spacing:0; margin:.4rem 0;}
.savings-calendar th {padding:.4rem 0; font-size:.8rem;}
.savings-calendar td {padding:.1rem; text-align:center;}
.savings-calendar td button {display:block; width:100%; padding:0; min-height:2.75rem; border-color:transparent; font-size:.95rem;}
.savings-calendar td button:hover:not(:disabled),.savings-calendar .is-in-range {background:#e3f4f1;}
.savings-calendar .is-endpoint {background:var(--sd-sea); color:white; font-weight:800;}
.savings-calendar button:disabled {opacity:.35; cursor:default;}
.savings-calendar [data-calendar-done] {background:var(--sd-sea); color:white; border-color:var(--sd-sea); font-weight:800;}
#savings-calendar-help {font-size:.8rem; line-height:1.4; margin:.4rem 0 .8rem;}
@media(max-width:800px) {
  .savings-calculator {grid-template-columns:1fr; border-radius:.85rem;}
  .savings-top {padding:.85rem 1rem;}
  .savings-copy h2 {font-size:1.5rem; margin-bottom:.6rem;}
  .savings-result {padding:.65rem 1rem;}
}
@media(max-width:380px) {
  .savings-top,.savings-result {padding-left:.75rem; padding-right:.75rem;}
  .savings-comparison-card {grid-template-columns:3.5rem minmax(0,1fr) auto; column-gap:.3rem;}
  .savings-comparison-card > a {min-width:6.7rem; padding:.5rem .45rem; font-size:.8rem;}
  .savings-price-value {font-size:1.08rem;}
  .savings-calendar {padding:.6rem;}
}
@media (forced-colors:active) {
  .savings-calendar .is-endpoint {border:2px solid Highlight;}
  .savings-calendar .is-in-range {border:1px solid Highlight;}
}
/* Keep prices and touch targets readable when narrow space or enlarged text needs wrapping. */
.savings-result {container-type:inline-size;}
@container (max-width:21rem) {
  .savings-comparison-card {grid-template-columns:minmax(0,1fr) auto;}
  .savings-price-value,.savings-before-calculation,.savings-unavailable-only {grid-column:2; text-align:right;}
  .savings-comparison-card > a {grid-column:1/-1; grid-row:2; justify-self:end; margin-top:.3rem; min-width:0; max-width:100%; white-space:normal; text-align:center;}
}

/* Calculator-only current inventory state. Protected widget CSS unchanged. */
.savings-calendar button.is-unavailable:disabled {color:#697477;background:#edf0ed;text-decoration:line-through;opacity:.65;}
 .savings-result[data-state="loading"] .savings-comparison-card:not(.savings-direct-card),
.savings-result[data-state="unavailable"] .savings-comparison-card:not(.savings-direct-card),
.savings-result[data-state="unverified"] .savings-comparison-card:not(.savings-direct-card),
.savings-result[data-comparisons="false"] .savings-comparison-card:not(.savings-direct-card) {display:none;}

/* Calculator dialog only: inventory state stays separate from endpoint selection. */
#savings-calendar .savings-availability-legend {display:flex; flex-wrap:wrap; align-items:center; gap:.35rem .65rem; margin:.45rem 0;}
#savings-calendar .savings-availability-legend > span {display:inline-flex; align-items:center; gap:.25rem; font-size:.75rem; line-height:1.4;}
#savings-calendar .savings-availability-swatch {display:inline-grid; place-items:center; width:1.1rem; height:1.1rem; border:1px solid currentColor; border-radius:.2rem; font-weight:800;}
#savings-calendar [data-calendar-refresh] {margin-left:auto; font-size:.8rem; padding:.3rem .5rem;}
#savings-calendar button[data-night-state] {position:relative; opacity:1;}
#savings-calendar [data-night-state="available"] {background:#e4f5ef; color:#075148;}
#savings-calendar [data-night-state="unavailable"] {background:#fff0ed; color:#922820; text-decoration:line-through;}
#savings-calendar [data-night-state="unknown"] {background:#f4f2ed; color:#655d50; border:1px dashed #a39a89;}
#savings-calendar button[data-night-state]::after {position:absolute; right:.15rem; top:.05rem; font-size:.65rem; line-height:1; font-weight:800; text-decoration:none;}
#savings-calendar button[data-night-state="available"]::after {content:'•';}
#savings-calendar button[data-night-state="unavailable"]::after {content:'×';}
#savings-calendar button[data-night-state="unknown"]::after {content:'?';}
#savings-calendar button[data-checkout-only="true"] {border:1px dashed #0c7778;}
#savings-calendar button[data-checkout-only="true"]::after {content:'OUT'; font-size:.55rem;}
#savings-calendar button[data-night-state="available"]:disabled {border:1px dashed #7b9791;}
#savings-calendar button[data-night-state="available"]:hover:not(:disabled) {background:#c8eade;}
#savings-calendar button.is-endpoint[data-night-state="available"] {background:var(--sd-sea); color:#fff;}
#savings-calendar button.is-endpoint[data-night-state] {outline:2px solid var(--sd-sea); outline-offset:-2px; font-weight:800;}
@media (forced-colors:active) {
  #savings-calendar button[data-night-state] {border:1px solid CanvasText;}
  #savings-calendar button[data-night-state="unknown"] {border-style:dashed;}
  #savings-calendar button.is-endpoint[data-night-state] {outline-color:Highlight;}
}
