/* MuseoPath Booking Phase 1: scoped, accessible, no external dependencies. */
.elcd-booking{max-width:960px;margin:2rem auto;padding:clamp(1rem,3vw,2rem);background:#fff;color:#2B3A45;border:1px solid #d5ded8;border-radius:9px;box-shadow:0 10px 30px rgb(24 38 48 / 7%);color-scheme:light}
.elcd-booking h2,.elcd-booking h3{color:#182630}
.elcd-booking fieldset{display:flex;flex-wrap:wrap;gap:1rem;border:1px solid #d1ddd5;border-radius:9px;margin:1rem 0;padding:1rem}
.elcd-booking legend{font-weight:700;padding:0 .5rem;color:#182630}
.elcd-booking label{display:block;margin:.8rem 0;font-weight:600}
.elcd-booking :is(input:not([type=checkbox]),select,textarea){display:block;width:100%;max-width:100%;min-height:48px;padding:10px 12px;margin-top:.3rem;border:1px solid #849c8d;border-radius:9px;background:#fff;color:#182630}
.elcd-booking input[type=time]{min-width:160px}
.elcd-booking textarea{min-height:92px}
.elcd-booking button,.elcd-booking .elcd-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin:.5rem .5rem .5rem 0;padding:.65rem 1rem;background:#17663E;color:#fff;border:0;border-radius:9px;font-weight:700;cursor:pointer}
.elcd-booking button:hover{background:#0F4D2D}
.elcd-booking :is(a,button,input,select,textarea):focus-visible{outline:3px solid #1159AF;outline-offset:3px}
.elcd-booking .elcd-lesson{border-top:1px solid #d5ded8;padding:1rem 0}
.elcd-honeypot{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:390px){.elcd-booking{margin:1rem auto;padding:1rem}.elcd-booking fieldset{display:block}.elcd-booking input[type=time]{min-width:0}}
/* Public slot picker: MuseoPath Step 2; scoped to curator author profiles. */
.elcd-public-booking{max-width:100%;margin:1.5rem 0;background:#F5F0E8;border-color:#D0DCD4}
.elcd-booking-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem}
.elcd-slot-list{display:block;min-width:0;margin:1rem 0;border-radius:12px}
.elcd-slot-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.65rem}
.elcd-public-booking .elcd-slot-choice{background:#fff;color:#17663E;border:1px solid #90B6A2;margin:0;width:100%;font-weight:700}
.elcd-public-booking .elcd-slot-choice:hover{background:#E8F3EB;color:#0F4D2D}
.elcd-public-booking .elcd-slot-choice[aria-pressed="true"]{background:#17663E;color:#fff;border-color:#17663E}
.elcd-public-booking .elcd-book-request{border-top:1px solid #CCD8D0;padding-top:1rem}
.elcd-public-booking .elcd-book-request[hidden]{display:none}
.elcd-public-booking .elcd-user-timezone{font-weight:700;color:#48665B}
.elcd-public-booking .elcd-selected-slot{font-weight:700;color:#182630}
.elcd-public-booking .elcd-adult-label{display:flex;gap:.5rem;align-items:flex-start;font-weight:500}
.elcd-public-booking .elcd-adult-label input{width:auto;flex:none}
.elcd-public-booking .elcd-slot-login{margin-top:.75rem;display:inline-flex;text-decoration:none}
@media(max-width:639px){.elcd-booking-filters{grid-template-columns:minmax(0,1fr)}.elcd-slot-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:360px){.elcd-slot-buttons{grid-template-columns:minmax(0,1fr)}}
.elcd-public-booking,.elcd-public-booking *{box-sizing:border-box}

/* Public student calendar navigator: scoped, responsive, accessible. */
.elcd-date-explorer{margin:1.1rem 0;padding:1rem;background:#fff;border:1px solid #d4dfd7;border-radius:12px}
.elcd-explorer-head{display:flex;justify-content:space-between;align-items:start;gap:1rem;flex-wrap:wrap}
.elcd-explorer-title h3{font-size:1.08rem;margin:0;color:#183025}
.elcd-explorer-title p{font-size:.9rem;color:#51665d;margin:.2rem 0 .8rem}
.elcd-explorer-controls{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.elcd-public-booking .elcd-week-nav{font-size:.8rem;min-height:36px;padding:.4rem .7rem;margin:0;background:#ecf5ee;color:#135333;border:1px solid #d2e1d6}
.elcd-public-booking .elcd-week-nav:disabled{cursor:not-allowed;opacity:.45}
.elcd-week-caption{margin:.2rem 0 .7rem;font-size:.82rem;font-weight:700;color:#365647}
.elcd-day-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.45rem}
.elcd-public-booking .elcd-date-tile{display:flex;flex-direction:column;gap:.12rem;align-items:center;min-width:0;min-height:82px;margin:0;padding:.5rem .1rem;background:#e5f4e9;color:#155b37;border:1px solid #a4d2b1;border-radius:10px}
.elcd-public-booking .elcd-date-tile:hover:not(:disabled){background:#d5ecdb;color:#12442b}
.elcd-public-booking .elcd-date-tile[aria-pressed=true]{background:#145c3d;color:#fff;border-color:#145c3d}
.elcd-public-booking .elcd-date-tile:disabled{background:#f2f3f2;color:#747e79;border-color:#e4e6e5;opacity:1;cursor:not-allowed}
.elcd-date-weekday{font-size:.73rem;font-weight:600}
.elcd-date-number{font-size:1.16rem;line-height:1.25}
.elcd-date-count{font-size:.67rem;line-height:1.25;text-align:center}
.elcd-overview-summary{font-size:.86rem;color:#456354;margin:.75rem 0 .35rem}
.elcd-public-booking .elcd-first-available{background:#17663e;margin:.4rem 0 0;padding:.6rem .85rem}
.elcd-first-available[hidden]{display:none!important}
@media(max-width:640px){.elcd-day-strip{grid-template-columns:repeat(4,minmax(0,1fr))}.elcd-explorer-head{display:block}.elcd-explorer-controls{margin-bottom:.6rem}}
@media(max-width:390px){.elcd-day-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.elcd-public-booking .elcd-date-tile{min-height:78px}}

/* Read-only, curator-controlled lesson details (v1.1.46.3). */
.elcd-public-booking .elcd-booking-defaults{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1rem;padding:.8rem 1rem;margin:.6rem 0 1rem;border:1px solid #d2ddd3;border-radius:10px;background:#fff}
.elcd-public-booking .elcd-booking-defaults p{margin:0;overflow-wrap:anywhere;line-height:1.5}
.elcd-public-booking .elcd-booking-defaults strong{display:block;color:#365647;font-size:.85rem}
@media(max-width:560px){.elcd-public-booking .elcd-booking-defaults{grid-template-columns:minmax(0,1fr)}}

/* Muzelle v1.1.46.4: compact public-time selector, not a tall vertical stack. */
.elcd-public-booking .elcd-slot-list{display:block;width:100%;min-width:0;box-sizing:border-box;overflow:visible;padding:clamp(.75rem,2vw,1.15rem)}
.elcd-public-booking .elcd-slot-list legend{font-size:1rem;margin:0}
.elcd-public-booking .elcd-slot-message{margin:.25rem 0 1rem;line-height:1.55}
.elcd-public-booking .elcd-slot-buttons{display:grid;width:100%;min-width:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;align-items:stretch}
.elcd-public-booking .elcd-slot-buttons>.elcd-slot-choice{width:100%;min-width:0;max-width:none;min-height:46px;padding:.55rem .35rem;margin:0;font-size:.9rem;line-height:1.25;white-space:normal;text-align:center}
.elcd-public-booking .elcd-slot-choice[hidden],.elcd-public-booking .elcd-more-times[hidden]{display:none!important}
.elcd-public-booking .elcd-more-times{display:inline-flex;width:auto;max-width:100%;margin:.85rem 0 0;padding:.5rem .9rem;min-height:40px;background:#e9f2ec;color:#125b37;border:1px solid #b8d1bf;font-size:.88rem}
.elcd-public-booking .elcd-more-times:hover{background:#dcefe1;color:#0f4d2d}
.elcd-public-booking .elcd-book-request{margin-top:1rem;padding-top:1.2rem;border-top:1px solid #CCD8D0}
@media(max-width:600px){.elcd-public-booking .elcd-slot-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:360px){.elcd-public-booking .elcd-slot-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}.elcd-public-booking .elcd-slot-buttons>.elcd-slot-choice{font-size:.82rem}}

/* Muzelle booking inbox and dashboard tiles (no global dashboard override). */
.elcd-home-requests{max-width:1120px;margin:16px auto 26px;padding:22px;background:#faf6ee;border:1px solid #d7ded5;border-radius:14px;color:#22352a;box-shadow:0 4px 16px rgba(25,42,32,.06)}
.elcd-home-requests-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:12px}
.elcd-mini-kicker{font-size:.7rem;letter-spacing:.13em;color:#1e5631;font-weight:800}
.elcd-home-requests h2,.elcd-inbox-head h2{font-family:Georgia,serif;font-size:clamp(1.4rem,2vw,1.9rem);line-height:1.25;margin:4px 0;color:#182630}
.elcd-home-requests a{color:#1e5631;font-weight:700;text-decoration:none}
.elcd-home-request{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 0;border-top:1px solid #e0e5dc}
.elcd-home-request p{margin:5px 0 0;font-size:.9rem;color:#54685d}
.elcd-request-state{display:inline-block;flex:none;padding:6px 11px;background:#e6f1e9;color:#1e5631;border:1px solid #c7ddcf;border-radius:999px;font-size:.78rem;font-weight:750}
.elcd-empty{margin:16px 0 0;color:#526759}
.elcd-inbox-head{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:24px}
.elcd-inbox-head p{margin:4px 0;color:#54685d}
.elcd-lessons-inbox .elcd-lesson{border:1px solid #e0e6dd;border-radius:12px;background:#fff;padding:18px;margin:12px 0;box-shadow:0 4px 18px rgba(30,48,35,.04)}
.elcd-lessons-inbox .elcd-lesson-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.elcd-lessons-inbox .elcd-lesson h3{margin:4px 0 10px;font-size:1.2rem;font-family:Georgia,serif}
.elcd-lesson-person{margin:0;color:#6b786b;font-size:.83rem;font-weight:700}
.elcd-lessons-inbox .elcd-lesson-time{color:#1e5631;font-weight:700;font-size:.94rem;margin:0 0 11px}
@media(max-width:630px){.elcd-home-requests{margin:12px;padding:16px}.elcd-home-request{align-items:flex-start;flex-direction:column}.elcd-lessons-inbox .elcd-lesson{padding:14px}}

/* ===== Muzelle booking v1.1.48: professional booking panel ===== */
#book-a-lesson,.elcd-booking-section{scroll-margin-top:110px}
.elcd-public-booking{max-width:100%;margin:1.5rem 0;padding:clamp(1.25rem,3.2vw,2.5rem);background:#fff;border:1px solid #dbe4dd;border-radius:20px;box-shadow:0 24px 60px rgba(24,38,48,.09)}
.elcd-bk-head{margin-bottom:1.4rem;padding-bottom:1.3rem;border-bottom:1px solid #e6ece7}
.elcd-bk-kicker{margin:0 0 .4rem;font:800 .75rem/1.4 system-ui,-apple-system,'Segoe UI',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#17663E}
.elcd-public-booking .elcd-bk-head h2{margin:0 0 .5rem;font:600 clamp(1.7rem,3.4vw,2.35rem)/1.15 Georgia,'Times New Roman',serif;letter-spacing:-.02em;color:#182630;hyphens:none;overflow-wrap:normal}
.elcd-bk-intro{margin:0 0 1.1rem;max-width:58ch;color:#4b5b64;line-height:1.6}
.elcd-bk-steps{display:flex;flex-wrap:wrap;gap:.6rem;margin:0;padding:0;list-style:none;counter-reset:bk}
.elcd-bk-steps li{counter-increment:bk;display:inline-flex;align-items:center;gap:.5rem;margin:0;padding:.38rem .9rem .38rem .4rem;border-radius:999px;background:#f1f6f2;color:#1d4a33;font:700 .84rem/1 system-ui,-apple-system,'Segoe UI',sans-serif}
.elcd-bk-steps li:before{content:counter(bk);display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#17663E;color:#fff;font-size:.78rem}
.elcd-bk-notice{margin:0 0 1rem;padding:.8rem 1rem;border-radius:12px;background:#fff6e5;border:1px solid #efd9a8;color:#6a4a0f;font-weight:600}
.elcd-public-booking .elcd-user-timezone{display:inline-flex;align-items:center;gap:.5rem;margin:0 0 1rem;padding:.42rem .85rem;border-radius:999px;background:#f5f0e8;color:#3b5a4a;font:700 .8rem/1.3 system-ui,-apple-system,'Segoe UI',sans-serif}
.elcd-public-booking .elcd-user-timezone:before{content:'';flex:none;width:15px;height:15px;background:url('data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%2317663E%27 stroke-width=%272.3%27 stroke-linecap=%27round%27><circle cx=%2712%27 cy=%2712%27 r=%279%27/><path d=%27M12 7v5l3 2%27/></svg>') center/contain no-repeat}

/* Day navigator */
.elcd-public-booking .elcd-date-explorer{margin:0 0 1.25rem;padding:1.15rem;background:#fbfcfb;border:1px solid #dfe7e1;border-radius:16px}
.elcd-public-booking .elcd-explorer-title h3{margin:0;font:700 1.02rem/1.3 system-ui,-apple-system,'Segoe UI',sans-serif;color:#182630}
.elcd-public-booking .elcd-explorer-title p{margin:.25rem 0 .9rem;color:#5b6a62;font-size:.88rem}
.elcd-public-booking .elcd-week-nav{min-height:38px;padding:.45rem .85rem;border-radius:10px;background:#fff;color:#17663E;border:1px solid #cddcd2;font-size:.82rem}
.elcd-public-booking .elcd-week-nav:hover:not(:disabled){background:#eaf5ee}
.elcd-public-booking .elcd-week-caption{margin:.1rem 0 .8rem;font:700 .8rem/1.4 system-ui,sans-serif;letter-spacing:.04em;text-transform:uppercase;color:#4b5b64}
.elcd-public-booking .elcd-day-strip{gap:.55rem}
.elcd-public-booking .elcd-date-tile{min-height:90px;border-radius:14px;background:#eaf5ee;border:1.5px solid #b6dcc3;color:#15603a;box-shadow:none;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}
.elcd-public-booking .elcd-date-tile:hover:not(:disabled){background:#dcf0e3;transform:translateY(-2px)}
.elcd-public-booking .elcd-date-tile[aria-pressed=true]{background:#17663E;color:#fff;border-color:#17663E;box-shadow:0 8px 18px rgba(23,102,62,.3)}
.elcd-public-booking .elcd-date-tile:disabled{background:#f4f5f4;color:#8a948f;border-color:#e8ebe9;transform:none}
.elcd-public-booking .elcd-overview-summary{margin:.9rem 0 0;color:#5b6a62;font-size:.88rem}
.elcd-public-booking .elcd-first-available{margin:.7rem 0 0;padding:.55rem .95rem;min-height:40px;border-radius:10px;background:#fff;color:#17663E;border:1px solid #17663E;font-size:.85rem}
.elcd-public-booking .elcd-first-available:hover{background:#eaf5ee}

/* Date and length */
.elcd-public-booking .elcd-booking-filters{gap:1rem;margin-bottom:1.25rem}
.elcd-public-booking .elcd-booking-filters label{margin:0;font:700 .76rem/1.3 system-ui,-apple-system,'Segoe UI',sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#4b5b64}
.elcd-public-booking :is(input:not([type=checkbox]),select,textarea){min-height:52px;margin-top:.4rem;padding:11px 14px;border:1px solid #b9c7bf;border-radius:12px;background:#fff;color:#182630;font:500 1rem system-ui,-apple-system,'Segoe UI',sans-serif;text-transform:none;letter-spacing:0}
.elcd-public-booking :is(input,select,textarea):focus{border-color:#17663E}

/* Times */
.elcd-public-booking .elcd-slot-list{margin:0;padding:1.15rem;border:1px solid #dfe7e1;border-radius:16px;background:#fbfcfb}
.elcd-public-booking .elcd-slot-list legend{padding:0 .5rem;font:700 1.02rem/1.3 system-ui,-apple-system,'Segoe UI',sans-serif;color:#182630}
.elcd-public-booking .elcd-slot-message{margin:.2rem 0 1rem;color:#4b5b64;font-size:.92rem}
.elcd-public-booking .elcd-slot-buttons{grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}
.elcd-public-booking .elcd-slot-buttons>.elcd-slot-choice{min-height:52px;border-radius:12px;background:#fff;color:#14603a;border:1.5px solid #9cc7ac;font:700 .95rem/1.2 system-ui,-apple-system,'Segoe UI',sans-serif;transition:background .15s ease,transform .15s ease}
.elcd-public-booking .elcd-slot-buttons>.elcd-slot-choice:hover{background:#eaf5ee;transform:translateY(-1px)}
.elcd-public-booking .elcd-slot-buttons>.elcd-slot-choice[aria-pressed=true]{background:#17663E;color:#fff;border-color:#17663E;box-shadow:0 8px 18px rgba(23,102,62,.28)}
.elcd-public-booking .elcd-more-times{border-radius:10px;background:#fff;border:1px solid #cddcd2;color:#17663E}

/* Summary and payment */
.elcd-public-booking .elcd-confirm{margin:1.4rem 0 0;padding:clamp(1.1rem,2.6vw,1.8rem);background:#f5f0e8;border:1px solid #e3d9c4;border-radius:18px}
.elcd-public-booking .elcd-confirm[hidden]{display:none}
.elcd-public-booking .elcd-book-request{border-top:1px solid #e3d9c4}
.elcd-confirm-title{margin:0 0 1rem;font:700 1.3rem/1.3 Georgia,'Times New Roman',serif;color:#182630;hyphens:none;overflow-wrap:normal}
.elcd-summary-list{margin:0 0 1rem;padding:.15rem 1.1rem;background:#fff;border:1px solid #e6dfd0;border-radius:14px}
.elcd-summary-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.75rem 0;border-bottom:1px solid #eee8db}
.elcd-summary-row:last-child{border-bottom:0}
.elcd-summary-row dt{margin:0;color:#5b6a62;font-weight:600}
.elcd-summary-row dd{margin:0;text-align:right;font-weight:700;color:#182630}
.elcd-summary-row--price dd{font:700 1.5rem/1.2 Georgia,'Times New Roman',serif;color:#0f4d2d}
.elcd-public-booking .elcd-booking-defaults{margin:0 0 .9rem;background:#fff;border-color:#e6dfd0;border-radius:12px}
.elcd-public-booking .elcd-booking-defaults strong{display:block;margin-bottom:.1rem;color:#5b6a62;font-size:.76rem;letter-spacing:.06em;text-transform:uppercase}
.elcd-public-booking .elcd-option{margin:.6rem 0;padding:.15rem 1rem;border:1px solid #e3d9c4;border-radius:12px;background:#fff}
.elcd-public-booking .elcd-option summary{padding:.7rem 0;cursor:pointer;font-weight:700;color:#1d4a33}
.elcd-public-booking .elcd-option label{margin:.3rem 0 .8rem}
.elcd-public-booking .elcd-group-note{margin:0 0 .8rem;color:#5b6a62;font-size:.86rem;line-height:1.5}
.elcd-public-booking .elcd-adult-label{margin:1rem 0 0;color:#2b3a45}
.elcd-public-booking .elcd-adult-label input{min-height:0;width:20px;height:20px;margin-top:.15rem}
.elcd-public-booking .elcd-pay-btn,.elcd-public-booking .elcd-confirm--guest .elcd-slot-login{display:flex;width:100%;min-height:58px;margin:1.1rem 0 .5rem;padding:.8rem 1.2rem;gap:.6rem;border-radius:14px;background:#17663E;color:#fff;font:700 1.08rem/1.2 system-ui,-apple-system,'Segoe UI',sans-serif;text-align:center;text-decoration:none;box-shadow:0 10px 24px rgba(23,102,62,.3);transition:background .15s ease,transform .15s ease}
.elcd-public-booking .elcd-pay-btn:hover,.elcd-public-booking .elcd-confirm--guest .elcd-slot-login:hover{background:#0f4d2d;color:#fff;transform:translateY(-1px)}
.elcd-public-booking .elcd-pay-btn:before{content:'';flex:none;width:18px;height:18px;background:url('data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27white%27 stroke-width=%272.4%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27><rect x=%273.5%27 y=%2710.5%27 width=%2717%27 height=%2710%27 rx=%272.5%27/><path d=%27M7.5 10.5V7.5a4.5 4.5 0 0 1 9 0v3%27/></svg>') center/contain no-repeat}
.elcd-secure-note{margin:.3rem 0 0;text-align:center;color:#5b6a62;font-size:.86rem;line-height:1.5}
.elcd-public-booking .elcd-login-hint{color:#5b6a62}

@media(max-width:700px){
  .elcd-public-booking .elcd-slot-buttons{grid-template-columns:repeat(3,minmax(0,1fr))}
  .elcd-public-booking .elcd-day-strip{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:480px){
  .elcd-public-booking{border-radius:16px}
  .elcd-public-booking .elcd-slot-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}
  .elcd-public-booking .elcd-day-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
  .elcd-summary-row{flex-direction:column;gap:.15rem}
  .elcd-summary-row dd{text-align:left}
}
@media(prefers-reduced-motion:reduce){.elcd-public-booking *{transition:none!important}}
