.padus { --padus-ink:#23382c; --padus-line:#d9dfd7; max-width:960px; margin:0 auto; padding:clamp(18px,4vw,48px); color:var(--padus-ink); }
.padus, .padus * { box-sizing:border-box; }
.padus h2 { margin:0 0 1rem; }
.padus h3 { margin:2rem 0 1rem; padding-bottom:.6rem; border-bottom:2px solid var(--padus-line); }
.padus h4 { margin:0; font-size:1.1em; }
.padus p { margin:.5rem 0 1rem; white-space:pre-line; overflow-wrap:anywhere; }
.padus .padus-demo { padding:1rem; background:#fff1cf; border:1px solid #ad862d; color:#493807; }
.padus .padus-dish { padding:1rem 0; border-bottom:1px solid var(--padus-line); }
.padus .padus-heading { display:flex; justify-content:space-between; gap:1rem; align-items:baseline; }
.padus .padus-heading h4 { overflow-wrap:anywhere; min-width:0; }
.padus .padus-price { flex-shrink:0; font-weight:600; }
.padus .padus-allergens { font-size:.9em; }
.padus fieldset { min-width:0; padding:clamp(12px,3vw,24px); border:1px solid var(--padus-line); margin:1.5rem 0; }
.padus legend { padding:0 .5rem; font-weight:600; }
.padus label { display:block; margin:.9rem 0; }
.padus input:not([type=checkbox]), .padus textarea { display:block; width:100%; max-width:100%; margin-top:.4rem; padding:.7rem; border:1px solid #78877c; border-radius:4px; background:#fff; color:#172b21; font-size:1em; }
.padus textarea { min-height:90px; resize:vertical; }
.padus .padus-check { display:flex; align-items:flex-start; gap:.7rem; }
.padus input[type=checkbox] { margin-top:.3rem; flex-shrink:0; width:18px; height:18px; }
.padus .padus-tools { display:flex; flex-wrap:wrap; gap:.6rem; margin:1rem 0; }
.padus button, .padus input[type=submit] { border:1px solid #23382c; background:#23382c; color:#fff; padding:.7rem 1rem; border-radius:4px; min-height:44px; cursor:pointer; font-size:1em; white-space:normal; }
.padus button:disabled { opacity:.45; cursor:default; }
.padus :focus-visible { outline:3px solid #a35e0a; outline-offset:3px; }
.padus [data-status] { font-weight:600; }
@media(max-width:480px) { .padus .padus-heading { gap:.6rem; } .padus .padus-tools button { flex:1 1 140px; } .padus fieldset fieldset { padding:10px; } }
@media print { .padus [data-status] { display:none; } .padus { max-width:none; padding:0; } .padus .padus-dish { break-inside:avoid; } }

/* Public menu: warm paper, course filters and allergen information. */
.padus[data-padus=public] { --padus-paper:#faf8f2; --padus-accent:#735a2f; background:var(--padus-paper); border-radius:18px; }
.padus[data-padus=public] > h2 { font-size:clamp(1.9rem,5vw,3rem); line-height:1.15; }
.padus .padus-note { padding:1rem 1.2rem; border-left:3px solid var(--padus-accent); background:#f0eadc; font-size:.95em; }
.padus .padus-filters { position:sticky; top:var(--padus-sticky-top,0px); z-index:20; display:flex; gap:.5rem; flex-wrap:wrap; padding:1rem 0; background:var(--padus-paper); border-bottom:1px solid var(--padus-line); }
.padus .padus-filters button { border-radius:999px; padding:.6rem 1rem; background:transparent; color:var(--padus-ink); border-color:#9aa79c; line-height:1.3; }
.padus .padus-filters button[aria-pressed=true] { background:var(--padus-ink); color:#fff; border-color:var(--padus-ink); }
.padus .padus-filters button:hover { box-shadow:inset 0 0 0 1px var(--padus-ink); }
.padus .padus-help { font-size:.85em; margin:1rem 0 2rem; }
.padus .padus-category { margin:1.5rem 0; padding:clamp(16px,3vw,28px); background:#fff; border:1px solid #e4e3da; border-radius:12px; }
.padus .padus-category[hidden] { display:none !important; }
.padus .padus-eyebrow { margin:0 0 .4rem; color:var(--padus-accent); font-size:.78em; letter-spacing:.09em; text-transform:uppercase; font-weight:600; }
.padus .padus-category h3 { margin:0 0 .5rem; border:0; padding:0 0 .6rem; font-size:clamp(1.4rem,3vw,1.9rem); }
.padus .padus-dish:last-child { border-bottom:0; padding-bottom:0; }
.padus .padus-allergens { display:block; margin:.6rem 0 .2rem; line-height:1.8; color:#526054; }
.padus .padus-allergens > span { font-size:1em; }
.padus .padus-allergens button { display:inline; min-width:0; min-height:0; width:auto; height:auto; padding:0; margin:0; border-radius:0; background:transparent; color:inherit; border:0; box-shadow:none; line-height:inherit; font-size:1em; font-weight:inherit; vertical-align:baseline; text-decoration:underline; text-underline-offset:.18em; cursor:pointer; }
.padus .padus-allergens button:hover { background:transparent; color:var(--padus-ink); text-decoration-thickness:2px; box-shadow:none; }
.padus .padus-legend { margin:2rem 0 .5rem; border-top:1px solid var(--padus-line); padding-top:1rem; }
.padus .padus-legend summary { min-height:44px; cursor:pointer; font-weight:600; padding:.7rem 0; }
.padus .padus-legend p { margin-top:1rem; }
.padus .padus-dialog { position:fixed; inset:0; margin:auto; width:min(480px,calc(100% - 32px)); max-height:85vh; overflow:auto; padding:clamp(20px,5vw,36px); border:1px solid var(--padus-line); border-radius:16px; background:#fffdf8; color:var(--padus-ink); box-shadow:0 24px 80px #0003; font:inherit; }
.padus .padus-dialog:not([open]) { display:none; }
.padus .padus-dialog::backdrop { background:#12271dcc; }
.padus .padus-dialog h3 { margin:0 0 1rem; border:0; }
.padus .padus-dialog button { margin-top:.5rem; }
.admin-bar .padus { --padus-sticky-top:32px; }
@media(max-width:782px) { .admin-bar .padus { --padus-sticky-top:46px; } }
@media(max-width:480px) { .padus .padus-filters { gap:.4rem; } .padus .padus-filters button { padding:.55rem .8rem; font-size:.9em; } }
@media print { .padus .padus-filters, .padus .padus-help, .padus .padus-dialog { display:none !important; } .padus .padus-category[hidden] { display:block !important; } .padus .padus-legend > p { display:block; } .padus[data-padus=public] { background:#fff; } }

/* Hours inherit footer typography, without the menu container styling. */
.padus-hours { white-space:pre-wrap; overflow-wrap:anywhere; }
.padus .padus-hours-dialog { width:min(620px,calc(100% - 32px)); }
.padus .padus-hours-dialog textarea { min-height:320px; line-height:1.45; }
.padus .padus-hours-dialog [aria-invalid=true] { border-color:#a32b20; }
.padus-hours-manager { border-top:1px solid var(--padus-line); }
