/* Shared styling for the Central System's own public shortcodes
   (Tisch reservation, opening hours) — matches the REAL site's own
   contact-form visual language (product owner, 3 Oct, screenshot of
   the existing "Wir freuen uns, von dir zu hören" form): uppercase
   letter-spaced serif headings, in-field labels via placeholder
   rather than a separate label above, an accent-coloured required
   asterisk, two-column rows where it fits. Same base palette as
   wilde-wiese-brunch/assets/form.css (accent #8C857A, "Cormorant"
   headings, "Crimson Text" body) — this is the SAME site, not a
   second visual language. */
.ww-pub{max-width:520px;margin:40px auto 72px;color:#292b29;font-family:inherit;font-size:16px;line-height:1.55;padding:0 20px;box-sizing:border-box}
.ww-pub *{box-sizing:border-box}
.ww-pub h2{font-family:"Cormorant",Georgia,serif;font-size:2em;font-weight:500;line-height:1.2em;color:#8C857A;text-transform:uppercase;letter-spacing:1.5px;margin:0 0 16px}
.ww-pub .ww-pub-intro{font-family:"Crimson Text",Georgia,serif;font-style:italic;font-size:16px;color:#6b6f63;text-align:left;margin:0 0 26px}
/* Visible label text sits INSIDE the field as placeholder — a real
   <label> is still present for accessibility, just visually hidden,
   so this still works correctly without JavaScript or floating-label
   tricks. */
.ww-pub label.ww-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.ww-pub input,.ww-pub select,.ww-pub textarea{width:100%;min-height:50px;padding:13px 15px;background:#fff;border:1px solid #c9c6bd;border-radius:2px;font:inherit;font-family:"Crimson Text",Georgia,serif;color:inherit;box-shadow:none}
.ww-pub textarea{min-height:120px;resize:vertical}
.ww-pub input::placeholder,.ww-pub select,.ww-pub textarea::placeholder{color:#8a8d83}
.ww-pub input:focus,.ww-pub select:focus,.ww-pub textarea:focus{border-color:#8C857A;outline:unset}
.ww-pub .ww-required{color:#5E8C8C}
.ww-pub button{font-family:"Crimson Text",Georgia,serif;font-size:.875rem;font-weight:500;text-transform:uppercase;letter-spacing:1.7px;color:#fff;background-color:#8C857A;border:1px solid #8C857A;border-radius:2px;padding:16px 24px;width:100%;cursor:pointer;margin-top:18px;transition:transform .2s ease}

.ww-pub .ww-pub-hint{font-size:13px;color:#75786e;margin:10px 0 0}
.ww-pub .ww-pub-notice{border-radius:2px;padding:14px 16px;margin:0 0 20px;font-size:14px}
.ww-pub .ww-pub-notice.is-ok{background:#eef1ea;color:#416E3F;border-left:3px solid #6B8E5A}
.ww-pub .ww-pub-notice.is-err{background:#f4eee4;color:#a4514c;border-left:3px solid #aa7750}
.ww-pub .ww-pub-row{display:flex;flex-wrap:wrap;gap:16px}
.ww-pub .ww-pub-row>div{flex:1 1 200px}
.ww-pub .ww-pub-consent{display:flex;align-items:flex-start;gap:9px;font-size:14px;line-height:1.45;margin:18px 0}
.ww-pub .ww-pub-consent input[type=checkbox]{width:18px;height:18px;min-width:18px;min-height:0;margin:2px 0 0;accent-color:#8C857A}
.ww-pub .ww-pub-consent a{color:#5E8C8C;text-decoration:underline}
@media(prefers-reduced-motion:reduce){.ww-pub button{transition:none}}
@media(max-width:380px){.ww-pub{padding:0 12px}.ww-pub h2{font-size:1.6em}}

/* Opening-hours / special-hours / closures display (new shortcode). */
.ww-hours table{width:100%;border-collapse:collapse;font-size:15px}
.ww-hours td{padding:8px 4px;border-bottom:1px solid #e5e3dd}
.ww-hours td:first-child{font-family:"Crimson Text",Georgia,serif;font-weight:600;width:40%}
.ww-hours .ww-hours-closed{color:#918d84}
.ww-hours-special{margin-top:28px}
.ww-hours-special h3{font-family:"Cormorant",Georgia,serif;font-size:1.3em;font-weight:600;color:#8C857A;margin:0 0 10px}
.ww-hours-special-item{background:#f4eee4;border-left:3px solid #8C857A;padding:10px 14px;margin-bottom:8px;font-size:14px}
.ww-hours-special-item strong{font-family:"Crimson Text",Georgia,serif}

/* Use Elementor global typography and accent tokens where available. */
.ww-pub { color:var(--e-global-color-text,#292b29); font-family:var(--e-global-typography-text-font-family,"Crimson Text"),Georgia,serif; }
.ww-pub h2 { color:var(--e-global-color-primary,#8C857A); font-family:"Cormorant",Georgia,serif; }
.ww-pub :is(input,select,textarea):focus-visible { outline:2px solid var(--e-global-color-primary,#8C857A);outline-offset:3px; }
.ww-pub-table form + form { margin-top:28px;padding-top:24px;border-top:1px solid #e5e3dd; }
.ww-pub-table input,.ww-pub-table select { margin-bottom:14px; }
.ww-pub-table .ww-pub-consent input { margin-bottom:0; }
.ww-pub-table label:not(.ww-sr-only) { display:block;margin-bottom:6px; }

/* Public hours follow the surrounding Elementor section, including dark backgrounds. */
.ww-pub.ww-hours-display{width:100%;max-width:none;padding:0;margin:0;color:#fff;font-family:"Crimson Text",Georgia,serif;font-size:14px;line-height:1.65;text-align:center}
.ww-pub.ww-hours-display :is(h2,h3){color:inherit;font-family:"Cormorant",Georgia,serif;font-size:1.5rem;line-height:1.3;font-weight:500;text-transform:none;letter-spacing:normal;margin:0 0 24px}
.ww-pub.ww-hours-display p{color:inherit;font:inherit;margin:0}
.ww-hours-display .ww-hours-days{display:grid;grid-template-columns:repeat(var(--ww-hours-columns,3),minmax(0,1fr));gap:24px 0;width:100%;max-width:760px;margin:0 auto}
.ww-hours-display .ww-hours-day{padding:8px 24px;min-width:0}
.ww-hours-display .ww-hours-day+.ww-hours-day{border-inline-start:1px solid;color:inherit;border-color:color-mix(in srgb,currentColor 22%,transparent)}
.ww-pub.ww-hours-display .ww-hours-day-label{font-size:14px;margin-bottom:12px}
.ww-pub.ww-hours-display .ww-hours-times{font-family:"Cormorant",Georgia,serif;font-style:normal;font-weight:500;font-size:clamp(1.25rem,2.4vw,1.6rem);line-height:1.5;margin-bottom:12px}
.ww-hours-display .ww-hours-window{display:block;white-space:nowrap}
.ww-pub.ww-hours-display .ww-hours-note{font-size:12px;line-height:1.6}
.ww-hours-display .ww-hours-special-grid{display:grid;grid-template-columns:repeat(var(--ww-special-columns,4),minmax(0,1fr));gap:24px 28px;width:100%}
.ww-pub.ww-hours-display .ww-hours-special-item{background:none;border:0;padding:0;margin:0;color:inherit;font:inherit;min-width:0;overflow-wrap:anywhere}
.ww-pub.ww-hours-display .ww-hours-event-title{margin-bottom:2px}
.ww-hours-display .ww-hours-event-title strong{font-family:inherit;font-weight:600}
.ww-pub.ww-hours-display .ww-hours-event-date{margin-bottom:2px}
.ww-hours-display .ww-hours-event-times span{display:block}
.ww-hours-display .ww-hours-closure-list{display:grid;gap:14px}
.ww-pub.ww-hours-display .ww-hours-closure-dates{font-size:14px;line-height:1.8}
@media(max-width:600px){.ww-hours-display .ww-hours-days{grid-template-columns:1fr;gap:18px;max-width:360px}.ww-hours-display .ww-hours-day{padding:0 12px 18px}.ww-hours-display .ww-hours-day+.ww-hours-day{border-inline-start:0}.ww-hours-display .ww-hours-day:not(:last-child){border-bottom:1px solid;border-color:color-mix(in srgb,currentColor 22%,transparent)}.ww-hours-display .ww-hours-special-grid{gap:22px}.ww-pub.ww-hours-display .ww-hours-times{font-size:1.5rem}}

.elementor-widget-shortcode:has(.ww-hours-display){width:100%;max-width:none;align-self:stretch}.elementor-widget-shortcode:has(.ww-hours-display)>.elementor-widget-container{width:100%}
@media(max-width:800px){.ww-hours-display .ww-hours-special-grid{grid-template-columns:repeat(var(--ww-special-tablet-columns,2),minmax(0,1fr))}}
@media(max-width:480px){.ww-hours-display .ww-hours-special-grid{grid-template-columns:1fr}}

/* Empty notices collapse their dedicated widget, section or accordion without spacing. */
.ww-hours-empty-layout{display:none!important;margin:0!important;padding:0!important;min-height:0!important}

/* Special openings and closures share an accessible accordion. */
.ww-hours-display .ww-hours-toggle{display:flex;align-items:center;justify-content:center;gap:12px;list-style:none;cursor:pointer;color:#fff;font-family:"Crimson Text",Georgia,serif;font-size:18px;line-height:1.4;font-weight:600;padding:0;margin:0}
.ww-hours-display .ww-hours-toggle::-webkit-details-marker{display:none}
.ww-hours-display .ww-hours-toggle:focus-visible{outline:2px solid #fff;outline-offset:6px}
.ww-hours-display .ww-hours-toggle-icon{position:relative;display:inline-block;flex:0 0 10px;width:10px;height:10px}
.ww-hours-display .ww-hours-toggle-icon::before,.ww-hours-display .ww-hours-toggle-icon::after{content:"";position:absolute;background:currentColor}
.ww-hours-display .ww-hours-toggle-icon::before{width:10px;height:2px;left:0;top:4px}
.ww-hours-display .ww-hours-toggle-icon::after{height:10px;width:2px;top:0;left:4px}
.ww-hours-display[open]>.ww-hours-toggle{margin-bottom:24px}
.ww-hours-display[open]>.ww-hours-toggle .ww-hours-toggle-icon::after{display:none}


.ww-hours-display .ww-hours-special-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.ww-pub.ww-hours-display :is(.ww-hours-special-item,.ww-hours-closure-dates){font-size:17px;line-height:1.6}
@media(max-width:800px){.ww-hours-display .ww-hours-special-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.ww-hours-display .ww-hours-special-grid{grid-template-columns:1fr}}
/* Match the café's locally hosted typography, including Elementor overrides. */
.ww-pub.ww-hours-display{font-family:"Crimson Text",Georgia,serif!important;font-size:17px}
.ww-pub.ww-hours-display .ww-hours-day-label{font-family:"Crimson Text",Georgia,serif!important;font-size:18px}
.ww-pub.ww-hours-display .ww-hours-times{font-family:"Cormorant",Georgia,serif!important}

.ww-pub.ww-hours-display .ww-hours-event-title{margin-bottom:10px}
.ww-pub.ww-hours-display .ww-hours-event-title strong{font-family:"Cormorant",Georgia,serif!important;font-size:24px;font-weight:500;line-height:1.25;display:block;overflow-wrap:break-word}

/* Enlarge weekly opening-hour details on phones without changing desktop typography. */
@media(max-width:600px){.ww-pub.ww-hours-display .ww-hours-day-label{font-size:22px}.ww-pub.ww-hours-display .ww-hours-times{font-size:2rem}.ww-pub.ww-hours-display .ww-hours-note{font-size:17px}}

/* Keep consent aligned even when a theme applies block labels. */
.ww-pub.ww-pub-table form label.ww-pub-consent,.ww-pub.ww-pub-table form label.ww-v2-check{display:flex;align-items:flex-start;gap:12px;margin:18px 0;font:inherit;line-height:1.5}
.ww-pub.ww-pub-table form label.ww-pub-consent input[type=checkbox],.ww-pub.ww-pub-table form label.ww-v2-check input[type=checkbox]{flex:0 0 20px;width:20px;height:20px;min-height:0;margin:3px 0 0;padding:0}
.ww-pub-table .ww-table-times{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.ww-pub-table .ww-table-times button{width:auto;min-width:76px;min-height:44px;margin:0;padding:8px 14px;background:#fff;color:#4d5944;border:1px solid #8d9685;border-radius:7px}
.ww-pub-table .ww-table-times button[aria-pressed=true]{background:#4d5944;color:#fff}
.ww-pub-table [data-table-details][hidden]{display:none!important}
