/* TinyLand: calendarul de disponibilitate, în stilul variantei 1a „Foto”
   (design/design_handoff_homepage_foto/README.md, „Componenta Calendar”; culorile vin din tokens.css).
   Culorile, colțurile și umbrele stau doar în blocul de variabile de mai jos.
   O lună pe ecran (data-months="1") = varianta de mobil; două (data-months="2", puse de script de la 768 px) = cea de
   desktop. Dimensiunile se leagă de numărul de luni, nu direct de ecran, ca să se potrivească mereu cu el.
   Toate regulile încep cu `.tl-cal ` (specificitate cel puțin 0,2,0), iar butoanele, linkurile și lista de persoane își
   declară și stările :hover / :focus: regulile Astra 4.14 (`button:hover`, `a:focus`, `select:focus`, 0,1,1) și ale
   kitului Elementor 4.3.4 (`.elementor-kit-N button:hover`, `.elementor-kit-N a:hover`, 0,2,1) nu le pot suprascrie.
   Contrastul e verificat pentru WCAG AA; rapoartele stau lângă culori. Zilele trecute și cele ocupate sunt butoane
   dezactivate, scutite de cerința de contrast. Fără animații, ca în design. */
.tl-cal {
  --tl-cal-ink: #2F3542;            /* bleumarin: 12,3:1 pe alb, 9,8:1 pe interval, 9,6:1 pe ocupat, 10,3:1 pe piatră */
  --tl-cal-ink-hover: #252A35;      /* butonul de telefon la hover: alb pe el 14,4:1 */
  --tl-cal-muted: #5E6470;          /* text secundar: 5,9:1 pe alb, 5,0:1 pe piatră, 4,8:1 pe interval */
  --tl-cal-gold-ink: #7E5F27;       /* auriul pentru text pe alb (V, S, prețul de weekend, ★): 5,9:1 */
  --tl-cal-bg: #FFFFFF;
  --tl-cal-paper: #F7F5F1;          /* locul lunilor cât se încarcă datele */
  --tl-cal-stone: #EEEBE5;          /* fundalul comutatorului */
  --tl-cal-line: #DCD7CE;           /* bordura cardului și a săgeților, linia de deasupra rezumatului */
  --tl-cal-free-border: #E2DED6;
  --tl-cal-booked: #E6E3DE;
  --tl-cal-booked-ink: #8A867E;     /* text doar pe zile dezactivate (2,8:1); ca bordură pe alb 3,6:1 */
  --tl-cal-range: #E4E6EA;
  --tl-cal-past-ink: #BDB9B2;       /* doar pe zile dezactivate */
  --tl-cal-sel: #2F3542;
  --tl-cal-sel-ink: #FFFFFF;        /* 12,3:1 */
  --tl-cal-sel-price: #D5D8DE;      /* prețul de pe ziua de sosire: 8,6:1 */
  --tl-cal-legend-border: #CFCAC1;
  --tl-cal-wa: #2A8069;             /* alb pe el: 4,8:1 */
  --tl-cal-wa-hover: #22695A;       /* alb pe el: 6,5:1 */
  --tl-cal-wa-ink: #FFFFFF;
  --tl-cal-shadow-toggle: 0 1px 2px rgba(31, 36, 44, 0.16);
  --tl-cal-focus: 0 0 0 2px #FFFFFF, 0 0 0 4px #2F3542;
  --tl-cal-r-sm: 4px;               /* butoane, zile */
  --tl-cal-r-toggle: 6px;           /* comutatorul */
  --tl-cal-r-md: 8px;               /* cardul */
  --tl-cal-font: inherit;           /* Montserrat vine din temă */
  /* Iconițele: Font Awesome Free 5.15.3 (CC BY 4.0, https://fontawesome.com/license/free), din Elementor 4.3.4. */
  --tl-cal-icon-wa: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z'/%3E%3C/svg%3E");
  --tl-cal-icon-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='%232F3542' d='M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z'/%3E%3C/svg%3E");

  font-family: var(--tl-cal-font);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
  color: var(--tl-cal-ink);
  background: var(--tl-cal-bg);
  border: 1px solid var(--tl-cal-line);
  border-radius: var(--tl-cal-r-md);
  padding: 12px;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
  text-align: left;
}
.tl-cal *, .tl-cal *::before, .tl-cal *::after { box-sizing: border-box; }
.tl-cal p { margin: 0; }

/* Butoanele pornesc de la zero, orice ar seta tema sau kitul Elementor pentru <button> (tipografie, umbre). */
.tl-cal .tl-cal__switch-btn, .tl-cal .tl-cal__arrow, .tl-cal .tl-cal__day, .tl-cal .tl-cal__reset {
  font-family: inherit; font-style: normal; letter-spacing: normal; word-spacing: normal; text-transform: none;
  text-decoration: none; text-shadow: none; margin: 0; min-width: 0; -webkit-appearance: none; appearance: none; transition: none;
}

/* ── Sus: comutatorul și săgețile ── */
.tl-cal .tl-cal__top { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }

.tl-cal .tl-cal__switch {
  display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 4px; padding: 4px;
  background: var(--tl-cal-stone); border-radius: var(--tl-cal-r-toggle);
}
.tl-cal .tl-cal__switch-btn,
.tl-cal .tl-cal__switch-btn:hover,
.tl-cal .tl-cal__switch-btn:focus {
  height: 44px; padding: 0 4px; border: 0; border-radius: var(--tl-cal-r-sm); background: transparent; box-shadow: none; outline: none;
  color: var(--tl-cal-muted); font-size: 15px; font-weight: 600; line-height: 1; white-space: nowrap; cursor: pointer;
}
.tl-cal .tl-cal__switch-btn[aria-pressed="true"] { background: var(--tl-cal-bg); color: var(--tl-cal-ink); box-shadow: var(--tl-cal-shadow-toggle); }

.tl-cal .tl-cal__nav { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; align-items: center; gap: 8px; }
.tl-cal .tl-cal__nav-label { font-size: 17px; font-weight: 600; line-height: 1.2; text-align: center; text-transform: capitalize; }
.tl-cal .tl-cal__arrow,
.tl-cal .tl-cal__arrow:hover,
.tl-cal .tl-cal__arrow:focus {
  width: 44px; height: 44px; padding: 0; border: 1px solid var(--tl-cal-line); border-radius: var(--tl-cal-r-sm);
  background: var(--tl-cal-bg); box-shadow: none; outline: none; color: var(--tl-cal-ink); line-height: 1; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.tl-cal .tl-cal__arrow svg { display: block; width: 9px; height: 14px; fill: currentColor; }
.tl-cal .tl-cal__arrow:disabled { opacity: 0.35; cursor: default; }

/* ── Lunile ── */
.tl-cal .tl-cal__months { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; touch-action: pan-y pinch-zoom; }
.tl-cal .tl-cal__month { min-width: 0; }
.tl-cal .tl-cal__month-title { margin: 0 0 12px; padding: 4px 0; font-size: 18px; font-weight: 600; line-height: 1; text-align: center; text-transform: capitalize; }
.tl-cal .tl-cal__dow, .tl-cal .tl-cal__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 2px; }
.tl-cal .tl-cal__dow { margin-bottom: 2px; }
.tl-cal .tl-cal__dow span { display: block; padding: 2px 0 8px; font-size: 11px; font-weight: 600; line-height: 1; text-align: center; color: var(--tl-cal-muted); }
.tl-cal .tl-cal__dow .tl-cal__dow-we { color: var(--tl-cal-gold-ink); }

.tl-cal .tl-cal__day,
.tl-cal .tl-cal__day:hover,
.tl-cal .tl-cal__day:focus {
  position: relative; width: 100%; height: 52px; padding: 0; border: 1px solid transparent; border-radius: var(--tl-cal-r-sm);
  background: var(--tl-cal-bg); box-shadow: none; outline: none; color: var(--tl-cal-ink); line-height: 1; cursor: pointer;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.tl-cal .tl-cal__num { display: block; font-size: 15px; font-weight: 500; line-height: 1; font-variant-numeric: tabular-nums; }
.tl-cal .tl-cal__price {
  display: block; height: 10px; margin-top: 5px; font-size: 10px; font-weight: 600; line-height: 1;
  color: var(--tl-cal-muted); font-variant-numeric: tabular-nums; white-space: nowrap;
}
.tl-cal .tl-cal__price--we { color: var(--tl-cal-gold-ink); }
.tl-cal .tl-cal__price--special { font-weight: 700; }   /* CONFIG.specialPrices: prețul special e mai gros (2026-10-15) */
.tl-cal .tl-cal__price--ask { font-size: 12px; line-height: 10px; color: var(--tl-cal-gold-ink); }   /* „tarif la cerere” */
.tl-cal .tl-cal__price--pref { font-size: 12px; line-height: 10px; color: var(--tl-cal-gold-ink); }   /* noapte orfană: preț preferențial, tot cu ★ (2026-10-18) */

/* Stările unei zile, după tabelul din design; „o singură noapte” (contur punctat) e a noastră. */
.tl-cal .tl-cal__day.is-free { border-color: var(--tl-cal-free-border); }
.tl-cal .tl-cal__day.is-single { border-style: dashed; border-color: var(--tl-cal-booked-ink); }
.tl-cal .tl-cal__day.is-busy { background: var(--tl-cal-booked); border-color: var(--tl-cal-booked); color: var(--tl-cal-booked-ink); cursor: default; }
.tl-cal .tl-cal__day.is-busy.is-departure-ok { border-color: var(--tl-cal-booked-ink); color: var(--tl-cal-ink); cursor: pointer; }   /* plecarea poate cădea în ziua în care sosește altcineva */
.tl-cal .tl-cal__day.is-past { background: transparent; border-color: transparent; color: var(--tl-cal-past-ink); cursor: default; }
.tl-cal .tl-cal__day.is-inrange { background: var(--tl-cal-range); border-color: var(--tl-cal-range); border-style: solid; }
.tl-cal .tl-cal__day.is-inrange .tl-cal__price { color: var(--tl-cal-muted); }
.tl-cal .tl-cal__day.is-arrival,
.tl-cal .tl-cal__day.is-departure { background: var(--tl-cal-sel); border-color: var(--tl-cal-sel); border-style: solid; color: var(--tl-cal-sel-ink); }
.tl-cal .tl-cal__day.is-arrival .tl-cal__price { color: var(--tl-cal-sel-price); }
.tl-cal .tl-cal__day.is-departure .tl-cal__price { visibility: hidden; }   /* noaptea zilei de plecare nu intră în sejur */
.tl-cal .tl-cal__day.is-today .tl-cal__num { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.tl-cal .tl-cal__day:disabled { cursor: default; }

/* ── Legenda: aceleași semne ca în celule (marginile țin loc de `gap` pe iOS mai vechi; nimic nu iese din card) ── */
.tl-cal .tl-cal__legend {
  display: flex; flex-wrap: wrap; align-items: center; margin: -8px 0 0;
  font-size: 12px; font-weight: 500; line-height: 1.3; color: var(--tl-cal-muted);
}
.tl-cal .tl-cal__key, .tl-cal .tl-cal__rates { display: inline-flex; align-items: center; margin: 8px 14px 0 0; }
.tl-cal .tl-cal__key[hidden] { display: none; }
.tl-cal .tl-cal__key::before {
  content: ""; flex: none; width: 14px; height: 14px; margin-right: 6px; border: 1px solid var(--tl-cal-legend-border);
  border-radius: 3px; background: var(--tl-cal-bg);
}
.tl-cal .tl-cal__key--busy::before { background: var(--tl-cal-booked); border-color: var(--tl-cal-booked); }
.tl-cal .tl-cal__key--chosen::before { background: var(--tl-cal-sel); border-color: var(--tl-cal-sel); }
.tl-cal .tl-cal__key--holiday::before { content: "★"; color: var(--tl-cal-gold-ink); font-size: 10px; line-height: 12px; text-align: center; }
.tl-cal .tl-cal__key--single::before {
  content: "★"; border-style: dashed; border-color: var(--tl-cal-booked-ink); color: var(--tl-cal-gold-ink);
  font-size: 10px; line-height: 12px; text-align: center;
}
.tl-cal .tl-cal__rates { color: var(--tl-cal-gold-ink); }
/* Texte în două variante: scurtă cu o lună pe ecran, lungă cu două. */
.tl-cal[data-months="1"] .tl-cal__long,
.tl-cal[data-months="2"] .tl-cal__short { display: none; }

/* ── Persoanele, apoi jos, sub linie: rezumatul și butoanele de contact ── */
.tl-cal .tl-cal__foot { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; padding-top: 14px; border-top: 1px solid var(--tl-cal-line); }

.tl-cal .tl-cal__guests { display: flex; align-items: center; }
.tl-cal .tl-cal__guests-label {
  margin: 0 12px 0 0; padding: 0; font-size: 11px; font-weight: 600; line-height: 1; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--tl-cal-muted); cursor: pointer;
}
.tl-cal .tl-cal__guests-select,
.tl-cal .tl-cal__guests-select:hover,
.tl-cal .tl-cal__guests-select:focus {
  -webkit-appearance: none; appearance: none; width: auto; height: 44px; min-width: 76px; margin: 0; padding: 0 32px 0 14px;
  border: 1px solid var(--tl-cal-line); border-radius: var(--tl-cal-r-sm); box-shadow: none; outline: none;
  background: var(--tl-cal-bg) var(--tl-cal-icon-down) no-repeat right 12px center / 10px 10px;
  color: var(--tl-cal-ink); font-family: inherit; font-size: 16px; font-weight: 600; line-height: 1; letter-spacing: normal;
  text-transform: none; cursor: pointer; transition: none;
}

.tl-cal .tl-cal__summary { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.tl-cal .tl-cal__lead { font-size: 15px; font-weight: 500; line-height: 1.5; color: var(--tl-cal-muted); text-wrap: pretty; }
.tl-cal .tl-cal__dates { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.tl-cal .tl-cal__fig { display: flex; flex-direction: column; min-width: 0; }
.tl-cal .tl-cal__fig-label {
  display: block; margin-bottom: 5px; font-size: 11px; font-weight: 600; line-height: 1; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--tl-cal-muted);
}
.tl-cal .tl-cal__fig-value { display: block; font-size: 16px; font-weight: 600; line-height: 1.2; }
.tl-cal .tl-cal__bill { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 12px; }
.tl-cal .tl-cal__stay { min-width: 0; }
.tl-cal .tl-cal__stay-title { font-size: 14px; font-weight: 500; line-height: 1.3; }
.tl-cal .tl-cal__breakdown { margin-top: 4px; font-size: 13px; font-weight: 400; line-height: 1.3; color: var(--tl-cal-muted); }
.tl-cal .tl-cal__total { text-align: right; }
.tl-cal .tl-cal__total .tl-cal__fig-label { margin-bottom: 6px; }
.tl-cal .tl-cal__total .tl-cal__fig-value { font-size: 26px; line-height: 1; letter-spacing: -0.01em; white-space: nowrap; font-variant-numeric: tabular-nums; }
.tl-cal .tl-cal__ask { font-size: 14px; font-weight: 500; line-height: 1.5; }
.tl-cal .tl-cal__which { font-size: 14px; line-height: 1.5; color: var(--tl-cal-muted); }
.tl-cal .tl-cal__reset,
.tl-cal .tl-cal__reset:hover,
.tl-cal .tl-cal__reset:focus {
  justify-self: start; min-height: 44px; margin: -10px 0; padding: 0; border: 0; border-radius: 0; background: none;
  box-shadow: none; outline: none; color: var(--tl-cal-muted); font-size: 14px; font-weight: 500; line-height: 1.2;
  text-decoration: underline; text-underline-offset: 3px; cursor: pointer;
}

.tl-cal .tl-cal__cta { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
/* Linkurile își declară toate stările, ca regulile temei și ale kitului pentru <a> să nu le schimbe culoarea. */
.tl-cal a.tl-cal__wa,
.tl-cal a.tl-cal__wa:hover,
.tl-cal a.tl-cal__wa:focus,
.tl-cal a.tl-cal__wa:visited,
.tl-cal a.tl-cal__wa:active {
  display: flex; align-items: center; justify-content: center; width: 100%; min-height: 52px; margin: 0; padding: 8px 12px;
  border: 0; border-radius: var(--tl-cal-r-sm); background: var(--tl-cal-wa); box-shadow: none; outline: none;
  color: var(--tl-cal-wa-ink); font-family: inherit; font-size: 16px; font-weight: 600; line-height: 1.2; letter-spacing: normal;
  text-transform: none; text-align: center; text-decoration: none; transition: none;
}
.tl-cal a.tl-cal__wa:hover,
.tl-cal a.tl-cal__wa:active { background: var(--tl-cal-wa-hover); }
.tl-cal .tl-cal__wa-icon {
  flex: none; width: 21px; height: 21px; margin-right: 10px; background: currentColor;
  -webkit-mask: var(--tl-cal-icon-wa) center / contain no-repeat; mask: var(--tl-cal-icon-wa) center / contain no-repeat;
}
.tl-cal .tl-cal__note { font-size: 13px; font-weight: 400; line-height: 1.45; color: var(--tl-cal-muted); text-align: center; text-wrap: pretty; }
/* Telefonul: link discret sub notă; în starea de eroare devine buton cu contur (mai jos). */
.tl-cal a.tl-cal__tel,
.tl-cal a.tl-cal__tel:hover,
.tl-cal a.tl-cal__tel:focus,
.tl-cal a.tl-cal__tel:visited,
.tl-cal a.tl-cal__tel:active {
  display: flex; align-items: center; justify-content: center; justify-self: center; min-height: 44px; margin: -8px 0 0; padding: 0 4px;
  border: 0; border-radius: var(--tl-cal-r-sm); background: none; box-shadow: none; outline: none; color: var(--tl-cal-ink);
  font-family: inherit; font-size: 14px; font-weight: 500; line-height: 1.2; letter-spacing: normal; text-transform: none;
  text-decoration: underline; text-underline-offset: 3px; transition: none;
}
.tl-cal a.tl-cal__tel:hover { color: var(--tl-cal-gold-ink); }

.tl-cal .tl-cal__status { font-size: 15px; font-weight: 500; line-height: 1.5; color: var(--tl-cal-muted); }
.tl-cal .tl-cal__status:empty { display: none; }

/* ── Desktop: două luni ── */
.tl-cal[data-months="2"] { padding: 28px; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; }
.tl-cal[data-months="2"] > * { grid-column: 1 / -1; }
/* Legenda și persoanele pe același rând. */
.tl-cal[data-months="2"] > .tl-cal__legend { grid-column: 1; align-self: center; }
.tl-cal[data-months="2"] > .tl-cal__guests { grid-column: 2; }
.tl-cal[data-months="2"] .tl-cal__top { display: flex; align-items: center; gap: 16px; }
.tl-cal[data-months="2"] .tl-cal__switch { flex: 0 1 440px; min-width: 0; }
.tl-cal[data-months="2"] .tl-cal__nav { display: flex; gap: 8px; margin-left: auto; }
/* Cu două luni, fiecare își are titlul; eticheta din navigare rămâne doar pentru cititoarele de ecran. */
.tl-cal[data-months="2"] .tl-cal__nav-label {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.tl-cal[data-months="1"] .tl-cal__month-title { display: none; }
.tl-cal[data-months="2"] .tl-cal__months { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tl-cal[data-months="2"] .tl-cal__dow,
.tl-cal[data-months="2"] .tl-cal__grid { gap: 4px; }
.tl-cal[data-months="2"] .tl-cal__dow { margin-bottom: 4px; }
.tl-cal[data-months="2"] .tl-cal__dow span { font-size: 12px; }
.tl-cal[data-months="2"] .tl-cal__day { height: 56px; }
.tl-cal[data-months="2"] .tl-cal__num { font-size: 16px; }
.tl-cal[data-months="2"] .tl-cal__price { height: 11px; margin-top: 6px; font-size: 11px; }
.tl-cal[data-months="2"] .tl-cal__price--ask { font-size: 13px; line-height: 11px; }
.tl-cal[data-months="2"] .tl-cal__price--pref { font-size: 13px; line-height: 11px; }
.tl-cal[data-months="2"] .tl-cal__legend { font-size: 13px; }
.tl-cal[data-months="2"] .tl-cal__key,
.tl-cal[data-months="2"] .tl-cal__rates { margin: 8px 20px 0 0; }
.tl-cal[data-months="2"] .tl-cal__key::before { margin-right: 8px; }

/* Rezumatul ia restul rândului și se rearanjează în el; coloana butonului e cât butonul, iar nota se rupe sub el. */
.tl-cal[data-months="2"] .tl-cal__foot { grid-template-columns: minmax(0, 1fr) min-content; align-items: center; gap: 24px 40px; padding-top: 24px; }
.tl-cal[data-months="2"] .tl-cal__summary { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 16px 40px; min-width: 0; }
.tl-cal[data-months="2"] .tl-cal__dates,
.tl-cal[data-months="2"] .tl-cal__bill { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 16px 40px; }
.tl-cal[data-months="2"] .tl-cal__fig-label { margin-bottom: 6px; }
.tl-cal[data-months="2"] .tl-cal__fig-value { font-size: 17px; }
.tl-cal[data-months="2"] .tl-cal__stay-title {
  margin-bottom: 6px; font-size: 11px; font-weight: 600; line-height: 1; letter-spacing: 0.12em; text-transform: uppercase; color: var(--tl-cal-muted);
}
.tl-cal[data-months="2"] .tl-cal__breakdown { margin-top: 0; font-size: 15px; line-height: 1.2; }
.tl-cal[data-months="2"] .tl-cal__total { text-align: left; }
.tl-cal[data-months="2"] .tl-cal__total .tl-cal__fig-value { font-size: 28px; }
.tl-cal[data-months="2"] .tl-cal__lead { font-size: 16px; }
.tl-cal[data-months="2"] .tl-cal__reset { order: 1; }
.tl-cal[data-months="2"] .tl-cal__ask,
.tl-cal[data-months="2"] .tl-cal__which { order: 2; flex-basis: 100%; }
.tl-cal[data-months="2"] .tl-cal__cta { grid-column: 2; grid-template-columns: auto; justify-items: end; gap: 8px; }   /* `auto`: coloana ia lățimea butonului */
.tl-cal[data-months="2"] a.tl-cal__wa { width: auto; min-height: 56px; padding: 8px 28px; white-space: nowrap; }
.tl-cal[data-months="2"] .tl-cal__note { text-align: right; }
.tl-cal[data-months="2"] a.tl-cal__tel { justify-self: end; margin-top: -6px; }

/* ── Stările întregului calendar ── */
.tl-cal[data-state="loading"] .tl-cal__months { min-height: 352px; border-radius: var(--tl-cal-r-sm); background: var(--tl-cal-paper); }
.tl-cal[data-months="2"][data-state="loading"] .tl-cal__months { min-height: 412px; }
.tl-cal[data-state="loading"] .tl-cal__summary,
.tl-cal[data-state="error"] .tl-cal__top,
.tl-cal[data-state="error"] .tl-cal__months,
.tl-cal[data-state="error"] .tl-cal__legend,
.tl-cal[data-state="error"] .tl-cal__guests,
.tl-cal[data-state="error"] .tl-cal__summary,
.tl-cal[data-state="cabin-error"] .tl-cal__nav,
.tl-cal[data-state="cabin-error"] .tl-cal__months,
.tl-cal[data-state="cabin-error"] .tl-cal__legend,
.tl-cal[data-state="cabin-error"] .tl-cal__guests,
.tl-cal[data-state="cabin-error"] .tl-cal__summary { display: none; }
.tl-cal[data-state="error"] .tl-cal__status,
.tl-cal[data-state="cabin-error"] .tl-cal__status { color: var(--tl-cal-ink); font-size: 16px; }
/* Fără date: WhatsApp și telefonul, amândouă butoane (telefonul cu contur bleumarin), apoi nota. */
.tl-cal[data-state="error"] a.tl-cal__tel,
.tl-cal[data-state="error"] a.tl-cal__tel:hover,
.tl-cal[data-state="error"] a.tl-cal__tel:focus,
.tl-cal[data-state="error"] a.tl-cal__tel:visited,
.tl-cal[data-state="cabin-error"] a.tl-cal__tel,
.tl-cal[data-state="cabin-error"] a.tl-cal__tel:hover,
.tl-cal[data-state="cabin-error"] a.tl-cal__tel:focus,
.tl-cal[data-state="cabin-error"] a.tl-cal__tel:visited {
  order: 1; justify-self: stretch; min-height: 52px; margin: 0; padding: 8px 20px; border: 1.5px solid var(--tl-cal-ink);
  background: none; color: var(--tl-cal-ink); font-size: 15px; font-weight: 600; text-decoration: none;
}
.tl-cal[data-state="error"] a.tl-cal__tel:hover,
.tl-cal[data-state="cabin-error"] a.tl-cal__tel:hover { background: var(--tl-cal-ink-hover); border-color: var(--tl-cal-ink-hover); color: var(--tl-cal-bg); }
.tl-cal[data-state="error"] .tl-cal__note,
.tl-cal[data-state="cabin-error"] .tl-cal__note { order: 2; }
.tl-cal[data-months="2"][data-state="error"] .tl-cal__cta,
.tl-cal[data-months="2"][data-state="cabin-error"] .tl-cal__cta { grid-column: 1 / -1; grid-template-columns: auto auto; justify-content: start; justify-items: stretch; }
.tl-cal[data-months="2"][data-state="error"] a.tl-cal__tel,
.tl-cal[data-months="2"][data-state="cabin-error"] a.tl-cal__tel { min-height: 56px; }
.tl-cal[data-months="2"][data-state="error"] .tl-cal__note,
.tl-cal[data-months="2"][data-state="cabin-error"] .tl-cal__note { grid-column: 1 / -1; text-align: left; }

/* ── Hover doar unde există mouse (pe telefon, :hover rămâne lipit după atingere) ── */
@media (hover: hover) {
  .tl-cal .tl-cal__day:not(:disabled):hover { border-color: var(--tl-cal-ink); }
  .tl-cal .tl-cal__switch-btn[aria-pressed="false"]:hover { color: var(--tl-cal-ink); }
  .tl-cal .tl-cal__arrow:not(:disabled):hover { border-color: var(--tl-cal-ink); }
  .tl-cal .tl-cal__guests-select:hover { border-color: var(--tl-cal-ink); }
  .tl-cal .tl-cal__reset:hover { color: var(--tl-cal-ink); }
}

/* ── Focus de la tastatură: inelul din design, peste celulele vecine ── */
.tl-cal .tl-cal__switch-btn:focus-visible,
.tl-cal .tl-cal__arrow:focus-visible,
.tl-cal .tl-cal__day:focus-visible,
.tl-cal .tl-cal__reset:focus-visible,
.tl-cal .tl-cal__guests-select:focus-visible,
.tl-cal a.tl-cal__wa:focus-visible,
.tl-cal a.tl-cal__tel:focus-visible {
  outline: 2px solid transparent; outline-offset: 2px; box-shadow: var(--tl-cal-focus);   /* conturul transparent se vede în modul de contrast ridicat */
}
.tl-cal .tl-cal__day:focus-visible { z-index: 1; }

/* ── Telefoane mici (320–359 px) ── */
@media (max-width: 359px) {
  .tl-cal[data-months="1"] { padding: 10px; }
  .tl-cal .tl-cal__switch-btn,
  .tl-cal .tl-cal__switch-btn:hover,
  .tl-cal .tl-cal__switch-btn:focus { font-size: 14px; padding: 0 2px; }
  .tl-cal .tl-cal__total .tl-cal__fig-value { font-size: 22px; }
}

/* ── Contrast ridicat (Windows): zilele alese și căsuța aleasă primesc un contur de sistem ── */
@media (forced-colors: active) {
  .tl-cal .tl-cal__day.is-arrival,
  .tl-cal .tl-cal__day.is-departure,
  .tl-cal .tl-cal__switch-btn[aria-pressed="true"] { outline: 2px solid Highlight; outline-offset: -3px; }
  .tl-cal .tl-cal__day.is-inrange { outline: 1px solid Highlight; outline-offset: -3px; }
}
