/* Quinta de Serena · calendario de disponibilidad */
.qcal{--g:#24331f;--c:#f4efe4;--gold:#b39159;--ink:#1f271c;--line:rgba(36,51,31,.16);background:#fffdf8;border:1px solid var(--line);padding:30px 32px 22px;color:var(--ink)}
.qcal *{box-sizing:border-box}
.qcal__top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.qcal__titulos{flex:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:48px;text-align:center}
.qcal__titulos span{font:400 clamp(22px,2.4vw,30px)/1.1 Georgia,'Times New Roman',serif;text-transform:capitalize}
.qcal__nav{width:44px;height:44px;border:1px solid var(--line);background:#fff;color:var(--g);font:22px/1 Georgia,serif;cursor:pointer;flex:none}
.qcal__nav:hover:not(:disabled){background:var(--g);color:#fff}
.qcal__nav:disabled{opacity:.3;cursor:default}
.qcal__meses{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:48px}
.qcal__cab,.qcal__rejilla{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.qcal__cab{margin-bottom:8px}
.qcal__cab span{text-align:center;font:650 11px Arial,sans-serif;letter-spacing:.14em;color:#6b6f63}
.qcal__dia{aspect-ratio:1/1;min-height:40px;border:1px solid transparent;font:15px Arial,sans-serif;display:flex;align-items:center;justify-content:center;position:relative;padding:0}
.qcal__dia.is-libre{background:#fff;border-color:var(--line);color:var(--ink);cursor:pointer;transition:background .15s,border-color .15s}
.qcal__dia.is-libre:hover{border-color:var(--g);background:#eef1e9}
.qcal__dia.is-ocupado{background:var(--g);color:#e9e4d6;cursor:not-allowed}
.qcal__dia.is-ocupado:after{content:"";position:absolute;left:22%;right:22%;top:50%;height:1px;background:rgba(233,228,214,.7);transform:rotate(-35deg)}
.qcal__dia.is-pendiente{background:linear-gradient(to bottom right,var(--g) 0 50%,#fff 50% 100%);border-color:var(--g);color:var(--ink);cursor:pointer}
.qcal__dia.is-pendiente span{font-weight:600;text-shadow:1px 0 0 #fff,-1px 0 0 #fff,0 1px 0 #fff,0 -1px 0 #fff,1px 1px 0 #fff,-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff}
.qcal__dia.is-elegido span{text-shadow:none}
.qcal__dia.is-pendiente:hover{box-shadow:inset 0 0 0 1px var(--g)}

.qcal__dia.is-pasado{background:transparent;color:#b7b6ad;cursor:default}
.qcal__dia.is-hoy{outline:2px solid var(--gold);outline-offset:-2px}
.qcal__dia.is-elegido{background:var(--gold);border-color:var(--gold);color:#fff}
.qcal__vacio{aspect-ratio:1/1}
.qcal__estado{min-height:1.2em;margin:16px 0 0;font:14px/1.5 Arial,sans-serif;color:#5d6357}
.qcal-leyenda{display:flex;flex-wrap:wrap;gap:22px;margin:18px 0 0;padding:0;list-style:none;font:13px Arial,sans-serif;color:#4a5045}
.qcal-leyenda li{display:flex;align-items:center;gap:8px}
.qcal-leyenda i{display:inline-block;width:16px;height:16px;border:1px solid rgba(36,51,31,.25)}
.qcal-leyenda .l-libre{background:#fff}.qcal-leyenda .l-ocupado{background:#24331f}.qcal-leyenda .l-pend{background:linear-gradient(to bottom right,#24331f 0 50%,#fff 50% 100%);border-color:#24331f}.qcal-leyenda .l-hoy{background:#fff;outline:2px solid #b39159;outline-offset:-2px}
@media(max-width:819px){.qcal{padding:20px 14px 16px}.qcal__meses,.qcal__titulos{gap:0}.qcal__cab,.qcal__rejilla{gap:4px}.qcal__dia{font-size:14px;min-height:38px}}
