/* Availability is isolated from the existing form and site components. */
.availability-section{padding-block:64px;background:#fff;border-top:1px solid var(--line)}
.availability-intro{margin-bottom:28px}.availability-intro h2{margin-bottom:14px}.availability-intro p{color:var(--muted);margin-bottom:0}
.availability-calendar{max-width:740px;border:1px solid var(--line);border-radius:8px;padding:24px;background:#fff}
.availability-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}
.availability-month{font-family:Georgia,serif;font-size:26px;font-weight:400;margin:0;text-transform:capitalize;text-align:center}
.availability-nav{width:44px;height:44px;flex-shrink:0;border:1px solid var(--line);border-radius:4px;background:white;color:var(--green);font-size:24px;line-height:1}
.availability-nav:disabled{opacity:.35;cursor:default}
.availability-table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:5px}
.availability-table th{font-size:12px;font-weight:600;padding-bottom:8px;color:var(--muted)}
.availability-day{height:62px;text-align:center;vertical-align:middle;border-radius:4px;font-size:16px;background:#f0f1ee;color:#677068;position:relative}
.availability-day.is-free{background:#e9f5ef;color:#24483c}
.availability-day.is-busy{background:repeating-linear-gradient(135deg,#ede6df,#ede6df 5px,#e4d9ce 5px,#e4d9ce 6px);color:#70452a}
.availability-day.is-busy::after{content:'';display:block;width:13px;height:2px;background:currentColor;margin:2px auto -4px}
.availability-day.is-past{opacity:.5}
.availability-day.is-today{outline:2px solid #147960;outline-offset:-2px;font-weight:700}
.availability-legend{display:flex;flex-wrap:wrap;gap:12px 20px;font-size:12px;margin:20px 0 12px;padding:0;list-style:none}
.availability-legend li{display:flex;align-items:center;gap:7px}.availability-swatch{width:15px;height:15px;display:inline-block;border-radius:2px;background:#e9f5ef}
.availability-swatch.busy{background:repeating-linear-gradient(135deg,#ede6df,#ede6df 3px,#c1a98e 3px,#c1a98e 4px)}
.availability-swatch.today{background:white;border:2px solid #147960}.availability-swatch.unknown{background:#f0f1ee;border:1px solid #d1d5d0}
.availability-status,.availability-note{font-size:12px;line-height:1.6;margin:12px 0 0;color:var(--muted)}
.availability-status.is-warning{color:#775323}.availability-retry{margin-top:12px;padding:7px 12px;min-height:44px;border:1px solid var(--line);background:#fff;color:var(--green)}
@media(max-width:600px){.availability-section{padding-block:42px}.availability-calendar{padding:14px 8px}.availability-month{font-size:22px}.availability-toolbar{gap:8px;padding-inline:4px}.availability-table{border-spacing:3px}.availability-day{height:44px;font-size:14px}.availability-legend{gap:10px 14px;padding-inline:4px}.availability-status,.availability-note{padding-inline:4px}.availability-intro h2{font-size:32px}}
/* Shared price and availability layout: desktop only. */
@media(min-width:1001px){
  .price-availability-grid{display:grid;grid-template-columns:minmax(0,57fr) minmax(0,43fr);gap:32px;align-items:start}
  .price-availability-grid .availability-calendar{max-width:none;min-width:0}
  .price-availability-grid .combined-prices{min-width:0}
  .price-availability-grid .season-prices{max-width:none;margin:0}
  .price-availability-grid .season-price{padding:16px 20px;gap:16px}
  .price-availability-grid #cennik .price-introduction{margin-bottom:20px}
}
/* Shared reservation actions below both columns. */
.combined-reservation-actions{justify-content:center;margin-top:32px}
.combined-reservation-actions .combined-booking{background:transparent;color:var(--green)}
.combined-reservation-actions .combined-booking:hover{background:#e7eee6}
@media(max-width:600px){.combined-reservation-actions{flex-direction:column}.combined-reservation-actions .button{width:100%}}
/* Desktop CTA shares the calendar row without resizing either column. */
@media(min-width:1001px){
  .price-availability-section > .wrap{display:grid;grid-template-columns:minmax(0,57fr) minmax(0,43fr);column-gap:32px}
  .price-availability-section .availability-intro{grid-column:1 / -1}
  .price-availability-grid{display:contents}
  .price-availability-grid .availability-calendar{grid-column:1;grid-row:2;align-self:start}
  .price-availability-grid .combined-prices{grid-column:2;grid-row:2;align-self:start}
  .price-availability-section .combined-reservation-actions{grid-column:2;grid-row:2;align-self:end;justify-self:center;flex-wrap:nowrap;width:max-content;margin-top:0}
  .combined-reservation-actions .button{flex-shrink:0;white-space:nowrap}
}
/* Compact desktop spacing; component dimensions remain unchanged. */
@media(min-width:1001px){
  #dostupnost.price-availability-section{padding-block:16px;scroll-margin-top:-12px}
  .price-availability-section .availability-intro{margin-bottom:12px}
  .price-availability-section .availability-intro h2{margin-bottom:8px}
}
/* One indicative price, with its existing reservation links. */
.indicative-price-card{padding:32px;background:var(--white);border:1px solid var(--line);box-shadow:0 4px 18px rgba(23,55,45,.045)}
.indicative-price-card h3{font-family:inherit;font-size:16px;font-weight:400;margin:0 0 18px}
.indicative-price-card p{font-size:15px;color:var(--muted);margin:0 0 20px;line-height:1.7}
.indicative-price-card .indicative-price-amount{font-family:Georgia,'Times New Roman',serif;font-size:48px;line-height:1.15;color:var(--green);margin-bottom:8px}
.indicative-price-card .indicative-price-child{margin-bottom:28px}
.indicative-price-card p:last-child{margin-bottom:0}
.price-availability-section .combined-prices .combined-reservation-actions{width:100%;margin-top:24px;gap:14px}
@media(min-width:1001px){
  .price-availability-grid .combined-prices{align-self:end}
  .combined-prices .combined-reservation-actions .button{flex:1 1 0;min-width:0;padding-inline:12px;white-space:normal;text-align:center}
}
@media(max-width:1000px){
  .price-availability-section .combined-prices{margin-top:24px}
  .price-availability-section .combined-prices .combined-reservation-actions{flex-direction:column}
  .combined-prices .combined-reservation-actions .button{width:100%;text-align:center}
}
@media(max-width:600px){
  .indicative-price-card{padding:24px}
  .indicative-price-card .indicative-price-amount{font-size:42px}
}