/* El Pajar · Disponibilidad. Ámbito propio: no altera header, footer ni formularios ajenos. */
.epd, .epd *, .epd *::before, .epd *::after { box-sizing: border-box; }
.epd { --epd-ink:#3b271d; --epd-paper:#fbf8f3; --epd-line:#d8cebd; --epd-olive:#515139; --epd-gold:#f3d28f; color:#312b26; font:16px/1.55 Arial,Helvetica,sans-serif; overflow-wrap:anywhere; }
.epd h1, .epd h2, .epd h3, .epd p, .epd ul, .epd ol { padding:0; }
.epd p { margin:0 0 14px; }
.epd h1,.epd h2,.epd h3 { font-family:Georgia,'Times New Roman',serif; font-weight:400; color:var(--epd-ink); line-height:1.2; letter-spacing:-.015em; }
.epd h1 { font-size:34px; margin:0 0 8px; }
.epd h2 { font-size:26px; margin:0 0 14px; }
.epd h3 { font-size:22px; margin:0 0 14px; }
.epd .epd-eyebrow { margin:0 0 10px; font-size:11px; line-height:1.5; font-weight:700; letter-spacing:.18em; color:#755037; text-transform:uppercase; }
.epd .epd-small { font-size:13px; color:#625749; line-height:1.6; }
.epd a { color:#58402d; text-underline-offset:3px; }
.epd .epd-sr { position:absolute!important; width:1px!important; height:1px!important; margin:-1px!important; padding:0!important; border:0!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; }
.epd button,.epd select,.epd input { font:inherit; letter-spacing:normal; text-transform:none; }
.epd button { appearance:none; margin:0; color:var(--epd-ink); cursor:pointer; line-height:1.3; box-shadow:none; }
.epd button:disabled,.epd :disabled { cursor:not-allowed; }
.epd button:focus-visible,.epd input:focus-visible,.epd select:focus-visible,.epd a:focus-visible,.epd summary:focus-visible { outline:3px solid #825a20; outline-offset:3px; box-shadow:none; }
.epd .epd-button,.epd .epd-button--quiet { display:inline-flex; align-items:center; justify-content:center; min-height:44px; max-width:100%; padding:11px 17px; border:1px solid transparent; border-radius:4px; color:#2b1b14; background:var(--epd-gold); font-size:14px; font-weight:600; text-decoration:none; }
.epd .epd-button:hover { background:#efc86f; color:#2b1b14; }
.epd .epd-button--quiet { border-color:var(--epd-line); background:#fffdf9; }
.epd .epd-button--quiet:hover { background:#f0e9dd; color:#2b1b14; }
.epd .epd-button:disabled,.epd .epd-button--quiet:disabled { color:#696359; background:#e6e0d7; border-color:#d6cfc3; opacity:.8; }
.epd .epd-message { margin:0 0 20px; padding:13px 16px; border-left:3px solid #8c816c; border-radius:0 4px 4px 0; background:#f1ece3; color:#4c4033; font-size:14px; }
.epd .epd-message--success { background:#edf2e5; border-color:#617853; color:#385039; }
.epd .epd-message--notice { background:#fbefcf; border-color:#98722a; color:#59411d; }
.epd .epd-message--error { background:#f9e6dd; border-color:#a54b32; color:#743b2b; }
.epd .epd-legend { display:flex; flex-wrap:wrap; gap:12px 24px; list-style:none; margin:0 0 22px; padding:0; font-size:14px; }
.epd .epd-legend li { display:flex; align-items:center; gap:8px; margin:0; padding:0; list-style:none; }
.epd .epd-legend li::before,.epd .epd-legend li::after { content:none; }
.epd .epd-swatch { display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border:1px solid; border-radius:4px; font-size:12px; font-weight:700; }
.epd .epd-is-free { color:#35543a; background:#e4edda; border-color:#b0c0a2; }
.epd .epd-is-reserved { color:#803a2d; background:#f4ded4; border-color:#d6a594; }
.epd .epd-is-unknown { color:#615c52; background:#eeeae2; border-color:#d4cdc0; }
.epd .epd-is-past { color:#827a70; background:#f6f3ef; border-color:#e7e2da; }
.epd .epd-toolbar { display:flex; align-items:center; gap:8px; margin:0 0 20px; flex-wrap:wrap; }
.epd .epd-toolbar label { margin:0; min-width:0; }
.epd .epd-toolbar select { width:100%; min-width:0; min-height:42px; height:auto; padding:7px 27px 7px 10px; border:1px solid var(--epd-line); border-radius:4px; color:var(--epd-ink); background-color:#fffdf9; font-size:15px; }
.epd .epd-toolbar .epd-nav { display:inline-flex; align-items:center; justify-content:center; flex:0 0 42px; width:42px; height:42px; min-height:42px; margin:0; padding:0; border:1px solid var(--epd-line); border-radius:4px; background:#fffdf9; color:#493928; font-size:22px; }
.epd .epd-toolbar .epd-nav:hover { background:#f0e9dd; }
.epd .epd-toolbar .epd-nav:disabled { color:#afa79b; background:#f2efe9; }
.epd .epd-month-label { flex:0 1 142px; }
.epd .epd-year-label { flex:0 1 100px; }
.epd .epd-today { margin-left:auto; }
.epd .epd-months { display:grid; gap:24px; align-items:start; }
.epd .epd-month { width:100%; margin:0; border:0; border-collapse:separate; border-spacing:4px; table-layout:fixed; background:transparent; }
.epd .epd-month caption { caption-side:top; text-align:left; margin:0 0 14px; padding:0 4px; color:var(--epd-ink); font:400 23px/1.3 Georgia,'Times New Roman',serif; text-transform:none; }
.epd .epd-month th,.epd .epd-month td { padding:0; text-align:center; vertical-align:middle; border:0; background:transparent; }
.epd .epd-month th { height:28px; color:#665946; font-size:12px; font-weight:700; }
.epd .epd-month abbr { border:0; text-decoration:none; cursor:default; }
.epd .epd-day { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; width:100%; min-width:0; height:48px; min-height:48px; padding:3px 0; margin:0; border:1px solid; border-radius:4px; font:400 16px/1.15 Arial,Helvetica,sans-serif; box-shadow:none; }
.epd .epd-day.epd-is-free { border-color:#b0c0a2; }
.epd .epd-day.epd-is-reserved { border-color:#d6a594; }
.epd .epd-day.epd-is-unknown { border-color:#d4cdc0; }
.epd .epd-day.epd-is-past { border-color:#e7e2da; }
.epd .epd-day-number { display:block; font-size:16px; font-weight:600; line-height:1.1; }
.epd .epd-day-code { display:block; font-size:10px; font-weight:700; line-height:1; }
.epd .epd-day.epd-is-today { box-shadow:inset 0 0 0 1px #515139; }
.epd .epd-day.epd-is-selected { outline:3px solid #986f2c; outline-offset:-2px; }
.epd button.epd-day:not(:disabled):hover { box-shadow:inset 0 0 0 2px #897754; }
.epd button.epd-day:disabled { opacity:.65; }
.epd .epd-empty { height:48px; }
/* Vista pública */
.epd.epd-public { width:100%; max-width:1280px; margin:24px auto; padding:clamp(18px,3vw,36px); border:1px solid #e3d9c8; border-radius:5px; background:var(--epd-paper); }
.epd .epd-public-heading { max-width:44rem; margin-bottom:20px; }
.epd .epd-public-heading h2 { font-size:clamp(26px,2.4vw,36px); }
.epd .epd-public-heading>p:last-child { color:#665746; font-size:15px; }
.epd .epd-public-footer { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px 20px; margin:22px 0 18px; border-top:1px solid var(--epd-line); padding-top:18px; }
.epd .epd-public-footer p { flex:1 1 240px; font-size:13px; margin:0; color:#665746; }
.epd.epd-public>.epd-small { margin:0; }
/* Edición privada */
.wrap.epd.epd-admin { max-width:1320px; margin:28px 24px 40px 0; }
.epd .epd-admin-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px; margin:0 0 24px; }
.epd .epd-admin-heading p { margin-bottom:0; }
.epd .epd-admin-heading .epd-eyebrow { margin-bottom:8px; }
.epd .epd-badge { border:1px solid #d7c091; color:#60491e; background:#f8ebcb; border-radius:25px; padding:8px 16px; font-size:13px; font-weight:700; }
.epd .epd-badge--live { border-color:#a1b294; background:#e4edda; color:#38503a; }
.epd .epd-admin-tools { display:flex; flex-wrap:wrap; align-items:center; gap:16px; margin-bottom:22px; }
.epd .epd-admin-controls { display:block; min-width:0; margin:0; padding:0; border:0; }
.epd .epd-card { min-width:0; margin:0 0 24px; padding:26px; border:1px solid #ded5c6; border-radius:6px; background:#fffdf9; box-shadow:0 3px 12px rgba(52,36,21,.03); }
.epd .epd-card>p { max-width:68rem; color:#645647; font-size:14px; }
.epd form { margin:0; }
.epd form label { display:block; margin:0 0 16px; color:#4f4334; font-size:14px; font-weight:600; }
.epd input[type=date] { display:block; width:100%; min-width:0; min-height:44px; margin:8px 0 0; padding:8px 12px; border:1px solid #bcb09c; border-radius:4px; color:#3b271d; background:#fff; font-size:15px; }
.epd .epd-range-form { display:flex; align-items:flex-end; flex-wrap:wrap; gap:16px 20px; margin:20px 0 14px; }
.epd .epd-range-form label { flex:0 1 230px; margin:0; }
.epd .epd-editor { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:24px; align-items:start; }
.epd .epd-selection-card { background:#f7f1e5; }
.epd .epd-selection-summary { padding:12px; border-radius:4px; background:#eee4d0; font-size:14px; color:#55412b; }
.epd .epd-states { margin:0 0 20px; padding:0; border:0; }
.epd .epd-states legend { margin:0 0 10px; padding:0; font-size:14px; font-weight:600; color:#4f4334; }
.epd .epd-states .epd-state-choice { display:flex; align-items:center; gap:10px; margin:0 0 10px; padding:11px 12px; min-height:44px; border:1px solid; border-radius:4px; cursor:pointer; }
.epd .epd-state-choice--reserved { color:#803a2d; background:#f4ded4; border-color:#d6a594!important; }
.epd .epd-state-choice--free { color:#35543a; background:#e4edda; border-color:#b0c0a2!important; }
.epd input[type=radio],.epd input[type=checkbox] { width:18px; height:18px; min-width:18px; margin:0; accent-color:#515139; }
.epd .epd-save-days { width:100%; margin-bottom:18px; }
.epd .epd-publication { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:28px; border-top:3px solid #8d9573; }
.epd .epd-confirm { display:flex!important; align-items:flex-start; gap:12px; margin:0; font-size:14px; color:#4f4334; font-weight:400; line-height:1.6; }
.epd .epd-confirm input { flex:0 0 18px; margin-top:3px; }
.epd .epd-publication-actions { display:flex; flex-direction:column; gap:12px; align-items:stretch; }
.epd .epd-backup summary { font-weight:600; cursor:pointer; color:#514332; font-size:15px; }
.epd .epd-backup[open]>p { margin-top:18px; }
.epd .epd-restore-form { margin:24px 0; padding:20px 0; border-block:1px solid var(--epd-line); }
.epd .epd-restore-form input[type=file] { display:block; margin-top:10px; max-width:100%; font-size:14px; }
.epd .epd-restore-form .epd-confirm { margin-bottom:16px; }
.epd .epd-history { margin:0; padding-left:20px; font-size:13px; color:#635645; }
.epd .epd-history li { margin:0 0 10px; }
.epd .epd-help code { display:inline-block; max-width:100%; padding:10px 14px; margin:0 0 14px; background:#f1ece3; color:#3b271d; border-radius:4px; white-space:normal; overflow-wrap:anywhere; }
@media (max-width:1120px) {
    .epd .epd-editor { grid-template-columns:minmax(0,1fr); gap:0; }
    .epd .epd-selection-card form { display:grid; grid-template-columns:1fr 1fr; gap:0 20px; }
    .epd .epd-selection-card .epd-states,.epd .epd-selection-card .epd-save-days { grid-column:1 / -1; }
    .epd .epd-selection-card .epd-states { display:flex; gap:12px; flex-wrap:wrap; }
    .epd .epd-states .epd-state-choice { flex:1 1 200px; }
}
@media (max-width:680px) {
    .wrap.epd.epd-admin { margin:22px 12px 30px 0; }
    .epd .epd-card { padding:20px 16px; }
    .epd .epd-publication { grid-template-columns:minmax(0,1fr); gap:20px; }
    .epd .epd-publication-actions { align-items:flex-start; }
    .epd .epd-selection-card form { display:block; }
    .epd .epd-range-form label { flex:1 1 160px; }
    .epd .epd-legend { gap:12px 16px; font-size:13px; }
    .epd .epd-toolbar { gap:6px; }
    .epd .epd-today { margin-left:0; }
    .epd .epd-toolbar .epd-nav { flex-basis:36px; width:36px; min-height:44px; height:44px; }
    .epd .epd-month-label { flex:1 1 110px; }
    .epd .epd-year-label { flex:0 1 88px; }
    .epd .epd-toolbar select { min-height:44px; font-size:14px; }
    .epd .epd-today { flex:0 0 100%; }
    .epd .epd-month { border-spacing:3px; }
    .epd .epd-message { padding:12px; font-size:13px; }
    .epd .epd-public-footer { display:block; }
    .epd .epd-public-footer p { margin-bottom:14px; }
}
@media (prefers-reduced-motion:reduce) { .epd * { scroll-behavior:auto; } }
