/* Stage 07: no global selectors, theme-safe responsive dynamic content. */
.ess-dynamic-module{width:100%;min-width:0;color:inherit;font-size:1rem}
.ess-dynamic-module *{box-sizing:border-box}
.ess-dynamic-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:18px;align-items:stretch}
.ess-dynamic-card{margin:0;padding:20px;border:1px solid #dbe2eb;border-radius:12px;background:#fff;color:#17243a;overflow-wrap:anywhere;min-width:0}
.ess-dynamic-card h3{font-size:1.18rem;line-height:1.3;margin:8px 0;color:#152841}
.ess-dynamic-card h3 a{color:inherit;text-decoration:none}.ess-dynamic-card h3 a:hover{text-decoration:underline}
.ess-dynamic-card p{font-size:.94rem;line-height:1.5;margin:8px 0}.ess-dynamic-date{font-weight:600;color:#38668d}
.ess-dynamic-thumbnail{width:100%;height:auto;max-height:210px;object-fit:cover;display:block;border-radius:8px}
.ess-dynamic-hours dl{display:grid;gap:0;margin:0}.ess-dynamic-hours dl>div{display:flex;justify-content:space-between;gap:24px;padding:12px;border-bottom:1px solid #e2e8f0}.ess-dynamic-hours dt{font-weight:600}.ess-dynamic-hours dd{margin:0;text-align:right}
.ess-dynamic-hours h4{margin:20px 0 8px}.ess-dynamic-hours ul{padding-inline-start:20px}
.ess-dynamic-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:12px}.ess-dynamic-gallery figure{margin:0}.ess-dynamic-gallery img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:8px}
.ess-dynamic-faq details{border:1px solid #dbe2eb;border-radius:8px;padding:14px;margin-bottom:8px}.ess-dynamic-faq summary{font-weight:600;cursor:pointer}.ess-dynamic-faq summary:focus-visible{outline:3px solid #2563eb;outline-offset:4px}
.ess-dynamic-faq p{white-space:pre-wrap}.ess-dynamic-empty{padding:12px;background:#f1f5f9;color:#475569;border-radius:8px}
@media(max-width:600px){.ess-dynamic-grid{grid-template-columns:1fr}.ess-dynamic-hours dl>div{gap:12px}.ess-dynamic-card{padding:14px}}
/* 07B — monthly calendar, albums, search and contact */
.ess-dynamic-calendar{overflow-x:auto}.ess-calendar-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.ess-dynamic-calendar table{border-collapse:collapse;width:100%;table-layout:fixed;font-size:.87rem}
.ess-dynamic-calendar caption{text-align:left;font-weight:600;margin-bottom:12px}
.ess-dynamic-calendar th,.ess-dynamic-calendar td{border:1px solid #dbe2eb;padding:8px;vertical-align:top;overflow-wrap:anywhere}
.ess-dynamic-calendar th{background:#f1f5f9}.ess-dynamic-calendar td{min-width:65px;height:70px}.ess-dynamic-calendar time{font-weight:700}
.ess-dynamic-calendar ul{list-style:none;padding:0;margin:5px 0}.ess-dynamic-calendar li{font-size:.77rem;line-height:1.3;margin:4px 0}
.ess-dynamic-search form{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.ess-dynamic-search label{flex:1 1 230px;display:grid;gap:5px}
.ess-dynamic-search input,.ess-contact input,.ess-contact textarea,.ess-custom-form input,.ess-custom-form textarea,.ess-custom-form select,.ess-booking-form input{width:100%;min-width:0;padding:10px;border:1px solid #b4bfce;border-radius:6px}
.ess-dynamic-search button,.ess-contact button{padding:10px 18px;background:#2563eb;border:0;border-radius:6px;color:#fff;cursor:pointer}
.ess-dynamic-search :focus-visible,.ess-contact :focus-visible,.ess-dynamic-calendar :focus-visible{outline:3px solid #2563eb;outline-offset:2px}
.ess-search-results{margin-top:15px}.ess-search-results li{margin-bottom:10px}
.ess-contact form,.ess-custom-form form,.ess-booking-form form{display:grid;gap:14px}.ess-contact label{display:grid;gap:5px;font-weight:600}.ess-contact-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.ess-contact-success{border-inline-start:4px solid #16865c;padding:12px;background:#edfcf3}.ess-contact-error{border-inline-start:4px solid #b42318;padding:12px;background:#fff0ee}
.ess-contact-hint{font-size:.85rem;color:#475569}
@media(max-width:640px){.ess-dynamic-calendar th,.ess-dynamic-calendar td{min-width:42px;padding:3px;font-size:.75rem}.ess-dynamic-calendar li{font-size:.68rem}}

/* 07B.06–08 */
.ess-custom-form label,.ess-booking-form label{display:grid;gap:6px;font-weight:600}.ess-custom-form input[type=checkbox],.ess-booking-form input[type=checkbox]{width:auto;justify-self:start}.ess-custom-form button,.ess-booking-form button{background:#2563eb;color:#fff;border:0;border-radius:6px;padding:11px 18px;cursor:pointer}.ess-custom-form :focus-visible,.ess-booking-form :focus-visible{outline:3px solid #2563eb;outline-offset:2px}
