/* Calendario de disponibilidad y precios de la ficha (diseño «Calendario Precios» / «Selector Fechas», Claude Design 9-oct-2026).
   Medidas del diseño: celdas 44x50 (móvil 48x52), meses de 308 px, separación 32 px, precio 10 px en #6E8A12. Tipografía Raleway. */
.prc {
  --prc-verde: #a2bf2c; --prc-verde-claro: #eef2dc; --prc-verde-precio: #6E8A12; --prc-texto: #1A1A1A;
  --prc-gris: #6e6e6e; --prc-gris-no: #C4C4C4; --prc-linea: #e3e5dc; --prc-suave: #f6f7f1;
  position: absolute; z-index: 10000; font-family: Raleway, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color: var(--prc-texto);
}
.prc[hidden] { display: none; }
.prc *, .prc *::before, .prc *::after { box-sizing: border-box; }
.prc-panel {
  display: grid; gap: 16px; width: max-content; max-width: calc(100vw - 24px); padding: 20px;
  background: #fff; border: 1px solid var(--prc-linea); border-radius: 12px;
  box-shadow: 0 2px 6px rgba(28, 31, 23, .08), 0 12px 32px rgba(28, 31, 23, .14);
  animation: prcPop .18s ease-out;
}
@keyframes prcPop { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@keyframes prcHoja { from { opacity: 0; transform: translateY(32px); } to { opacity: 1; transform: none; } }

.prc-cab { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.prc-titulo { margin: 0; font-weight: 700; font-size: 18px; line-height: 1.3; }
.prc-sub { margin: 2px 0 0; font-size: 12px; line-height: 1.4; color: var(--prc-gris); }
.prc-cerrar { display: none; border: 0; background: transparent; padding: 6px; margin: -6px -6px 0 0; border-radius: 50%; color: var(--prc-texto); cursor: pointer; }
.prc-cargando { margin: 40px 24px; color: var(--prc-gris); font-size: 14px; }

.prc-meses { display: flex; gap: 32px; align-items: flex-start; }
.prc-mes { display: grid; gap: 8px; width: 308px; }
.prc-mes-cab { display: grid; grid-template-columns: 36px minmax(0, 1fr) 36px; align-items: center; height: 36px; }
.prc-mes-tit { margin: 0; text-align: center; font-weight: 600; font-size: 16px; line-height: 1.3; }
.prc-nav { display: grid; place-items: center; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--prc-texto); cursor: pointer; transition: background .15s; }
.prc-nav:hover:not(:disabled) { background: var(--prc-suave); }
.prc-nav:disabled { color: var(--prc-gris-no); cursor: default; }
.prc-dow { display: grid; grid-template-columns: repeat(7, 44px); font-size: 12px; font-weight: 600; color: var(--prc-gris); text-align: center; }
.prc-grid { display: grid; grid-template-columns: repeat(7, 44px); grid-auto-rows: 50px; row-gap: 4px; font-variant-numeric: tabular-nums; }

.prc-dia {
  display: grid; grid-template-rows: 16px 12px; row-gap: 4px; align-content: start; justify-items: center;
  width: 100%; height: 50px; padding: 9px 0 0; margin: 0; border: 0; border-radius: 6px; background: transparent;
  color: var(--prc-texto); font-family: inherit; cursor: pointer; transition: box-shadow .15s, background .15s;
}
.prc-dia > span:first-child { font-weight: 500; font-size: 14px; line-height: 16px; }
.prc-dia > span:last-child { font-weight: 500; font-size: 10px; line-height: 12px; white-space: nowrap; }
button.prc-dia:hover { box-shadow: inset 0 0 0 1px var(--prc-texto); }
button.prc-dia:focus-visible { outline: 2px solid #788e1e; outline-offset: 1px; }
.prc-verde { color: var(--prc-verde-precio); }
.prc-dia--no { cursor: default; user-select: none; }
.prc-dia--no > span:first-child { font-weight: 400; color: var(--prc-gris-no); text-decoration: line-through; text-decoration-color: rgba(196, 196, 196, .7); }
.prc-dia--salida > span:first-child { color: var(--prc-gris); }
.prc-dia--salida > span:last-child { color: var(--prc-gris); font-style: italic; }
.prc-dia--rango { background: var(--prc-verde-claro); border-radius: 0; }
.prc-tira { display: block; height: 50px; }
.prc-tira--der { background: linear-gradient(to right, transparent 50%, var(--prc-verde-claro) 50%); }
.prc-tira--izq { background: linear-gradient(to left, transparent 50%, var(--prc-verde-claro) 50%); }
.prc-dia--sel { background: var(--prc-verde); color: #fff; }
.prc-dia--sel > span { color: #fff !important; }
.prc-dia--sel > span:first-child { font-weight: 600; }

.prc-leyenda { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0; font-size: 12px; line-height: 1.4; color: var(--prc-gris); }
.prc-leyenda span { display: inline-flex; align-items: center; gap: 4px; }
.prc-leyenda b { font-weight: 400; }
.prc-leyenda [hidden] { display: none; }
.prc-ley-precio.prc-verde { font-weight: 500; }

.prc-pie { display: flex; justify-content: flex-end; gap: 8px; }
.prc-btn { display: inline-flex; align-items: center; justify-content: center; padding: 7px 14px; border: 1px solid transparent; border-radius: 6px; font-weight: 500; font-size: 14px; line-height: 1.4; cursor: pointer; transition: background-color .15s, border-color .15s; }
.prc-btn--principal { background: var(--prc-verde); border-color: var(--prc-verde); color: #fff; }
.prc-btn--principal:hover:not(:disabled) { background: #788e1e; border-color: #788e1e; }
.prc-btn--texto { background: transparent; color: #4f5e14; }
.prc-btn--texto:hover:not(:disabled) { background: var(--prc-verde-claro); }
.prc-btn:disabled { background: rgba(0, 0, 0, .08); border-color: transparent; color: var(--prc-gris); cursor: not-allowed; }
.prc-btn--texto:disabled { background: transparent; }

/* Campos de fecha de la ficha: se abren con un clic, sin teclado */
input.prc-campo { cursor: pointer; background-color: #fff; caret-color: transparent; }

/* Móvil: hoja a pantalla completa con los meses en lista */
.prc--movil { position: fixed; inset: 0; top: 0 !important; left: 0 !important; background: rgba(28, 31, 23, .45); }
/* iPhone: 100% deja el pie («Aplicar fechas») debajo de la barra de Safari; dvh = alto visible de verdad */
@supports (height: 100dvh) { .prc--movil { bottom: auto; height: 100dvh; } }
.prc--movil .prc-panel {
  display: flex; flex-direction: column; gap: 0; width: 100%; max-width: none; height: 100%; padding: 0;
  border: 0; border-radius: 0; box-shadow: none; animation: prcHoja .24s ease-out;
}
.prc--movil .prc-cab { padding: 16px; border-bottom: 1px solid var(--prc-linea); }
.prc--movil .prc-cerrar { display: block; }
.prc--movil .prc-cuerpo { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.prc--movil .prc-dow--fija { flex: none; display: grid; grid-template-columns: repeat(7, 48px); justify-content: center; padding: 8px 0; border-bottom: 1px solid var(--prc-linea); font-size: 12px; font-weight: 600; color: var(--prc-gris); text-align: center; }
.prc--movil .prc-meses { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; flex-direction: column; align-items: center; gap: 24px; padding: 16px 0 24px; }
.prc--movil .prc-mes { width: auto; gap: 10px; }
.prc--movil .prc-mes-cab { display: block; height: auto; padding-left: 4px; }
.prc--movil .prc-mes-cab > span, .prc--movil .prc-nav { display: none; }
.prc--movil .prc-mes-tit { text-align: left; }
.prc--movil .prc-grid { grid-template-columns: repeat(7, 48px); grid-auto-rows: 52px; }
.prc--movil .prc-dia, .prc--movil .prc-tira { height: 52px; }
.prc--movil .prc-dia { grid-template-rows: 18px 12px; }
.prc--movil .prc-dia > span:first-child { font-size: 15px; line-height: 18px; }
.prc--movil .prc-leyenda { flex: none; padding: 10px 16px; border-top: 1px solid var(--prc-linea); }
.prc--movil .prc-pie { flex: none; padding: 12px 16px 16px; padding-bottom: max(16px, env(safe-area-inset-bottom)); border-top: 1px solid var(--prc-linea); }
.prc--movil .prc-btn { padding: 12px 20px; font-size: 16px; }
.prc--movil .prc-btn--principal { flex: 1; }
html.prc-sin-scroll, html.prc-sin-scroll body { overflow: hidden; }

/* Modo integrado en la página (fichas sin reserva online: «Disponibilidad y calendario») */
.prc--inline { position: static; z-index: auto; display: grid; gap: 12px; width: 100%; max-width: 690px; margin: 8px 0 20px; }
.prc--inline .prc-inline-sel { margin: 0; font-size: 14px; line-height: 1.4; color: var(--prc-gris); }
.prc--inline .prc-cuerpo { overflow-x: auto; }
.prc--inline .prc-meses { gap: 32px; }
@media (max-width: 380px) {
  .prc--inline .prc-mes { width: 280px; }
  .prc--inline .prc-dow, .prc--inline .prc-grid { grid-template-columns: repeat(7, 40px); }
}
.prc--sin-precio .prc-grid { grid-auto-rows: 40px; }
.prc--sin-precio .prc-dia, .prc--sin-precio .prc-tira { height: 40px; }
.prc--sin-precio .prc-dia { grid-template-rows: 16px; padding-top: 12px; }
.prc--sin-precio .prc-dia > span:last-child { display: none; }
