.rimadelle-calendar {
  --rim-ink: #243127;
  --rim-muted: #667168;
  --rim-page: #f7f3ea;
  --rim-panel: #fffdf8;
  --rim-line: #ddd7ca;
  --rim-sage: #315c43;
  --rim-available: #83ad82;
  --rim-unavailable: #d7d8d4;
  --rim-unavailable-ink: #686c68;
  --rim-sand: #eee5d2;
  --rim-terracotta: #a54f36;
  --rim-busy: #b85848;
  --rim-busy-deep: #9f4639;
  --rim-busy-ink: #fffdf8;
  --rim-discount: #f6e8a6;
  --rim-discount-ink: #493f16;
  --rim-focus: #1d4d34;
  --rim-shadow: rgba(48, 40, 24, .12);
  position: relative;
  container-type: inline-size;
  color: var(--rim-ink);
  font-family: inherit;
  line-height: 1.45;
}
.rimadelle-calendar * { box-sizing: border-box; }
.rimadelle-calendar .rim-shell {
  overflow: hidden;
  border: 1px solid var(--rim-line);
  border-radius: 22px;
  background: var(--rim-page);
  box-shadow: 0 16px 42px var(--rim-shadow);
}
.rimadelle-calendar .rim-hero { padding: 24px 28px; border-bottom: 1px solid var(--rim-line); background: var(--rim-panel); }
.rimadelle-calendar .rim-kicker { margin: 0 0 4px; color: var(--rim-terracotta); font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.rimadelle-calendar .rim-hero h2 { margin: 0; color: var(--rim-ink); font-size: clamp(25px, 3vw, 36px); line-height: 1.15; }
.rimadelle-calendar .rim-subtitle { margin: 8px 0 0; color: var(--rim-muted); font-size: 14px; }
.rimadelle-calendar .rim-content {
  display: grid !important;
  grid-template-columns: minmax(620px, 2fr) minmax(285px, .85fr) !important;
  align-items: start;
  gap: 18px;
  padding: 18px;
}
.rimadelle-calendar .rim-calendar-panel,
.rimadelle-calendar .rim-price-card { border: 1px solid var(--rim-line); border-radius: 16px; background: var(--rim-panel); }
.rimadelle-calendar .rim-calendar-panel { min-width: 0; padding: 18px; }
.rimadelle-calendar .rim-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 15px; }
.rimadelle-calendar .rim-instruction { margin: 0; color: var(--rim-muted); font-size: 14px; }
.rimadelle-calendar .rim-nav { display: flex; gap: 7px; }
.rimadelle-calendar .rim-nav button { width: 38px; height: 36px; padding: 0; border: 1px solid var(--rim-line); border-radius: 10px; background: var(--rim-panel); color: var(--rim-ink); cursor: pointer; font-size: 18px; }
.rimadelle-calendar .rim-nav button:disabled { opacity: .35; cursor: default; }
.rimadelle-calendar .rim-months { display: grid !important; grid-template-columns: repeat(2, minmax(280px, 1fr)) !important; gap: 20px; }
.rimadelle-calendar .rim-months.rim-single { grid-template-columns: minmax(280px, 1fr) !important; width: calc(50% - 10px); margin-inline: auto; }
.rimadelle-calendar .rim-month { min-width: 0; }
.rimadelle-calendar .rim-month h3 { margin: 0 0 13px; text-align: center; color: var(--rim-ink); font-size: 20px; }
.rimadelle-calendar .rim-weekdays,
.rimadelle-calendar .rim-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.rimadelle-calendar .rim-weekdays { margin-bottom: 4px; }
.rimadelle-calendar .rim-weekdays span { padding: 5px 0; text-align: center; color: var(--rim-muted); font-size: 12px; font-weight: 700; }
.rimadelle-calendar .rim-day,
.rimadelle-calendar .rim-blank { min-width: 0; aspect-ratio: 1 / 1; }
.rimadelle-calendar .rim-day { position: relative; display: grid; place-items: center; width: 100%; min-width: 42px; min-height: 48px; padding: 0; overflow: hidden; border: 0; border-radius: 8px; color: var(--rim-ink); font: inherit; cursor: pointer; isolation: isolate; }
.rimadelle-calendar .rim-day-number { position: relative; z-index: 3; display: grid; place-items: center; width: 100%; height: 100%; font-size: 14px; }
.rimadelle-calendar .rim-day.rim-free { background: var(--rim-available); }
.rimadelle-calendar .rim-day.rim-busy { color: var(--rim-busy-ink); background: repeating-linear-gradient(135deg, var(--rim-busy), var(--rim-busy) 6px, var(--rim-busy-deep) 6px, var(--rim-busy-deep) 9px); }
.rimadelle-calendar .rim-day.rim-unavailable { background: var(--rim-unavailable); color: var(--rim-unavailable-ink); cursor: default; }
.rimadelle-calendar .rim-day.rim-discount { background: var(--rim-discount); color: var(--rim-discount-ink); }
.rimadelle-calendar .rim-day.rim-change-busy-free,
.rimadelle-calendar .rim-day.rim-change-free-busy { color: var(--rim-ink); background: var(--rim-available); }
.rimadelle-calendar .rim-day.rim-change-busy-free.rim-discount,
.rimadelle-calendar .rim-day.rim-change-free-busy.rim-discount { background: var(--rim-discount); }
.rimadelle-calendar .rim-day.rim-change-busy-free::before,
.rimadelle-calendar .rim-day.rim-change-free-busy::before { content: ''; position: absolute; z-index: 1; inset: 0; background: repeating-linear-gradient(135deg, var(--rim-busy), var(--rim-busy) 6px, var(--rim-busy-deep) 6px, var(--rim-busy-deep) 9px); }
.rimadelle-calendar .rim-day.rim-change-busy-free::before { clip-path: polygon(0 0, 30% 0, 0 30%); }
.rimadelle-calendar .rim-day.rim-change-free-busy::before { clip-path: polygon(100% 70%, 100% 100%, 70% 100%); }
.rimadelle-calendar .rim-day.rim-valid-choice .rim-day-number { color: #101612; font-weight: 800; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.rimadelle-calendar .rim-day.rim-selected::after { content: ''; position: absolute; z-index: 4; inset: 1px; border: 3px solid var(--rim-focus); border-radius: 8px; pointer-events: none; }
.rimadelle-calendar .rim-day.rim-in-range { box-shadow: inset 0 0 0 2px rgba(29, 77, 52, .22); }
.rimadelle-calendar .rim-day:focus-visible { outline: 3px solid var(--rim-focus); outline-offset: 2px; }
.rimadelle-calendar .rim-day:disabled { opacity: 1; }
.rimadelle-calendar .rim-legend { display: flex; flex-wrap: wrap; gap: 11px 17px; margin-top: 16px; color: var(--rim-muted); font-size: 12px; }
.rimadelle-calendar .rim-legend span { display: inline-flex; align-items: center; gap: 6px; }
.rimadelle-calendar .rim-legend span[hidden] { display: none; }
.rimadelle-calendar .rim-swatch { width: 14px; height: 14px; border: 1px solid var(--rim-line); border-radius: 4px; }
.rimadelle-calendar .rim-swatch-free { background: var(--rim-available); }
.rimadelle-calendar .rim-swatch-discount { background: var(--rim-discount); }
.rimadelle-calendar .rim-swatch-unavailable { background: var(--rim-unavailable); }
.rimadelle-calendar .rim-swatch-busy { background: repeating-linear-gradient(135deg, var(--rim-busy), var(--rim-busy) 4px, var(--rim-busy-deep) 4px, var(--rim-busy-deep) 6px); }
.rimadelle-calendar .rim-swatch-change { background: linear-gradient(135deg, var(--rim-busy) 0 28%, var(--rim-available) 30% 100%); }
.rimadelle-calendar .rim-price-card { align-self: start; padding: 21px; }
.rimadelle-calendar .rim-price-label { margin: 0 0 4px; font-size: 21px; font-weight: 700; }
.rimadelle-calendar .rim-total { margin: 0; font-family: Georgia, 'Times New Roman', serif; font-size: 38px; line-height: 1.2; }
.rimadelle-calendar .rim-period { margin: 5px 0 17px; color: var(--rim-muted); font-size: 13px; }
.rimadelle-calendar .rim-breakdown { padding: 12px 0; border-top: 1px solid var(--rim-line); border-bottom: 1px solid var(--rim-line); }
.rimadelle-calendar .rim-row { display: flex; justify-content: space-between; gap: 12px; padding: 5px 0; font-size: 13px; }
.rimadelle-calendar .rim-row span:last-child { white-space: nowrap; }
.rimadelle-calendar .rim-row-label small { display: block; margin-top: 2px; color: var(--rim-muted); font-size: 11px; }
.rimadelle-calendar .rim-row-secondary { color: var(--rim-muted); }
.rimadelle-calendar .rim-row-discount { color: #6f5908; font-weight: 700; }
.rimadelle-calendar .rim-deposit { margin: 14px 0 0; padding: 11px 13px; border-radius: 10px; background: var(--rim-sand); font-size: 12px; }
.rimadelle-calendar .rim-interest { display: block; margin-top: 14px; padding: 12px 16px; border-radius: 10px; background: var(--rim-sage); color: #fff !important; text-align: center; text-decoration: none !important; font-weight: 700; }
.rimadelle-calendar .rim-interest[aria-disabled="true"] { opacity: .45; pointer-events: none; }
.rimadelle-calendar .rim-contract { margin: 10px 0 0; color: var(--rim-muted); font-size: 11px; text-align: center; }
.rimadelle-calendar .rim-modal-backdrop { position: fixed; z-index: 100000; inset: 0; display: grid; place-items: center; padding: 20px; background: rgba(21, 28, 23, .55); }
.rimadelle-calendar .rim-modal-backdrop[hidden] { display: none; }
.rimadelle-calendar .rim-modal { position: relative; width: min(560px, 100%); padding: 30px; border: 1px solid var(--rim-line); border-radius: 18px; background: var(--rim-panel); box-shadow: 0 18px 50px var(--rim-shadow); }
.rimadelle-calendar .rim-modal h3 { margin: 0 35px 14px 0; color: var(--rim-terracotta); font-size: 25px; }
.rimadelle-calendar .rim-modal p { margin: 0 0 12px; }
.rimadelle-calendar .rim-modal-reason { font-weight: 700; }
.rimadelle-calendar .rim-modal-positive { color: var(--rim-muted); }
.rimadelle-calendar .rim-modal-close { position: absolute; top: 12px; right: 14px; border: 0; background: transparent; color: var(--rim-muted); cursor: pointer; font-size: 27px; }
.rimadelle-calendar .rim-modal-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 20px; }
.rimadelle-calendar .rim-modal-actions button,
.rimadelle-calendar .rim-modal-actions a { padding: 10px 14px; border: 1px solid var(--rim-sage); border-radius: 9px; background: var(--rim-panel); color: var(--rim-sage); cursor: pointer; text-decoration: none; font-weight: 700; }
.rimadelle-calendar .rim-modal-actions .rim-contact { background: var(--rim-sage); color: #fff; }
.rimadelle-calendar .rim-week-tooltip { position: absolute; z-index: 20; width: 245px; padding: 14px 16px; transform: translate(-50%, -100%); border-radius: 12px; background: var(--rim-ink); color: var(--rim-panel); box-shadow: 0 12px 30px var(--rim-shadow); pointer-events: none; font-size: 12px; }
.rimadelle-calendar .rim-week-tooltip::after { content: ''; position: absolute; left: 50%; bottom: -6px; width: 12px; height: 12px; transform: translateX(-50%) rotate(45deg); background: var(--rim-ink); }
.rimadelle-calendar .rim-week-tooltip strong,
.rimadelle-calendar .rim-week-tooltip span { position: relative; z-index: 1; display: block; }
.rimadelle-calendar .rim-week-tooltip strong { margin-bottom: 7px; font-size: 13px; }
.rimadelle-calendar .rim-tooltip-price { margin-top: 8px; font-weight: 700; }
.rimadelle-calendar .rim-tooltip-note { margin-top: 3px; opacity: .85; }
.rimadelle-calendar-error { padding: 18px; border-left: 4px solid #a54f36; background: #fff4f1; color: #5d2d22; }
@container (max-width: 920px) {
  .rimadelle-calendar .rim-content { grid-template-columns: minmax(0, 1fr) !important; }
  .rimadelle-calendar .rim-price-card { width: 100%; }
}
@container (max-width: 680px) {
  .rimadelle-calendar .rim-hero { padding: 20px; }
  .rimadelle-calendar .rim-content { padding: 12px; }
  .rimadelle-calendar .rim-calendar-panel { padding: 12px; }
  .rimadelle-calendar .rim-months { grid-template-columns: minmax(0, 1fr) !important; }
  .rimadelle-calendar .rim-months.rim-single { width: 100%; }
  .rimadelle-calendar .rim-month:nth-child(2) { display: none; }
  .rimadelle-calendar .rim-day { min-width: 0; min-height: 44px; }
  .rimadelle-calendar .rim-toolbar { align-items: flex-start; }
  .rimadelle-calendar .rim-modal { padding: 24px; }
}
@media (max-width: 920px) {
  .rimadelle-calendar .rim-content { grid-template-columns: minmax(0, 1fr) !important; }
}
@media (max-width: 680px) {
  .rimadelle-calendar .rim-months { grid-template-columns: minmax(0, 1fr) !important; }
  .rimadelle-calendar .rim-months.rim-single { width: 100%; }
  .rimadelle-calendar .rim-month:nth-child(2) { display: none; }
  .rimadelle-calendar .rim-day { min-width: 0; }
}
