
*{box-sizing:border-box} :root{--blue:#2563eb;--blue-dark:#1d4ed8;--text:#0f172a;--muted:#64748b;--line:#e2e8f0;--soft:#f8fafc;--white:#fff;--shadow:0 14px 38px rgba(15,23,42,.08)}
html{scroll-behavior:smooth} body{margin:0;background:#f6f9fc;color:var(--text);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif} button{font:inherit;cursor:pointer}
.site-header{position:sticky;top:0;z-index:100;border-bottom:1px solid var(--line);background:rgba(255,255,255,.94);backdrop-filter:blur(18px)}
.header-inner,.hero-inner,.section-shell{width:min(1240px,calc(100% - 32px));margin:auto}
.header-inner{min-height:76px;display:flex;align-items:center;gap:24px}
.brand{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none}.brand-mark{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,#2563eb,#38bdf8);color:#fff;font:italic 800 25px Georgia}.brand strong{display:block;font:italic 800 26px Georgia}.brand small{display:block;color:var(--muted);font-size:10px}
.main-nav{margin-left:auto;display:flex;gap:5px}.nav-link{border:0;border-radius:10px;background:transparent;padding:10px 12px;color:#475569;font-size:13px;font-weight:800}.nav-link:hover,.nav-link.active{background:#eff6ff;color:var(--blue)}
.login-button{border:1px solid #bfdbfe;border-radius:11px;background:#fff;color:var(--blue);padding:9px 13px;font-size:12px;font-weight:800}
.hero{background:radial-gradient(circle at 10% 10%,rgba(56,189,248,.18),transparent 32%),linear-gradient(#fff,#f8fbff)}
.hero-inner{min-height:370px;padding:66px 0 52px;display:grid;grid-template-columns:1.5fr .7fr;align-items:center;gap:52px}.eyebrow{color:var(--blue);font-size:11px;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
.hero h1{margin:10px 0 16px;font-size:clamp(42px,6vw,72px);line-height:.98;letter-spacing:-.055em}.hero h1 span{display:block;color:var(--blue)}.hero p{color:var(--muted);font-size:17px}
.hero-actions{display:flex;gap:10px;margin-top:26px}.primary-button,.ghost-button{border-radius:12px;padding:12px 17px;font-size:13px;font-weight:850}.primary-button{border:1px solid var(--blue);background:var(--blue);color:#fff}.ghost-button{border:1px solid var(--line);background:#fff}.primary-button:disabled{background:#cbd5e1;border-color:#cbd5e1;cursor:not-allowed}
.hero-info-card{display:grid;gap:1px;overflow:hidden;border:1px solid var(--line);border-radius:20px;background:var(--line);box-shadow:var(--shadow)}.hero-info-card>div{display:flex;justify-content:space-between;gap:16px;background:#fff;padding:17px}.hero-info-card span{color:var(--muted);font-size:12px}.hero-info-card strong{font-size:13px}
.menu-section,.static-section,.info-section{padding:68px 0}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:26px}.section-heading h2,.static-section h2{margin:5px 0 4px;font-size:34px}.section-heading p{margin:0;color:var(--muted);font-size:13px}
.week-switcher{display:flex;gap:8px}.week-button{min-width:145px;border:1px solid var(--line);border-radius:13px;background:#fff;padding:11px 13px;text-align:left;font-size:12px;font-weight:850}.week-button small{display:block;margin-top:4px;color:#94a3b8;font-size:10px}.week-button.active{border-color:#93c5fd;background:#eff6ff;color:var(--blue)}
.day-tabs{display:flex;gap:8px;overflow-x:auto;margin-bottom:18px}.day-tab{min-width:116px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px 12px;text-align:left}.day-tab strong{display:block;font-size:11px;text-transform:uppercase}.day-tab span{font-size:10px;color:#94a3b8}.day-tab.active{background:var(--blue);border-color:var(--blue);color:#fff}.day-tab.active span{color:#dbeafe}
.menu-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:22px;align-items:start}.day-card,.order-summary{border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 8px 28px rgba(15,23,42,.04)}.day-card{overflow:hidden}.day-card-head{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:16px 18px}.day-card-head span{font-size:11px;color:var(--muted)}
.meal-row{display:grid;grid-template-columns:90px minmax(0,1fr) 84px 130px;align-items:center;gap:14px;min-height:74px;padding:12px 16px;border-bottom:1px solid #f1f5f9}.meal-code{border-radius:9px;background:#eff6ff;color:var(--blue);padding:7px;text-align:center;font-size:11px;font-weight:900}.meal-main strong{display:block;font-size:13px}.meal-main small{color:#94a3b8;font-size:10px}.meal-price{text-align:right;font-size:13px;font-weight:900}
.quantity-control{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;gap:5px}.quantity-control button{width:34px;height:34px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:18px}.quantity-control strong{text-align:center}
.order-summary{position:sticky;top:96px;padding:18px}.summary-head{display:flex;justify-content:space-between}.summary-head h3{margin:4px 0;font-size:24px}.summary-count{min-width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:var(--blue);color:#fff;font-weight:900}.summary-empty{display:grid;gap:5px;text-align:center;border:1px dashed #cbd5e1;border-radius:14px;padding:28px 15px;color:var(--muted);font-size:11px}.summary-items{display:grid;gap:8px}.summary-item{display:grid;grid-template-columns:1fr auto;gap:10px;border-radius:11px;background:var(--soft);padding:10px}.summary-item strong{font-size:11px}.summary-item small{display:block;margin-top:3px;color:var(--muted);font-size:9px}.summary-item-price{font-size:11px;font-weight:900}.summary-total{display:flex;justify-content:space-between;margin-top:15px;border-top:1px solid var(--line);padding-top:15px}.summary-submit{width:100%;margin-top:15px}.summary-note{display:block;margin-top:9px;color:#94a3b8;font-size:9px;text-align:center}
.static-section{background:#fff}.static-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.static-card{border:1px solid var(--line);border-radius:16px;background:#fbfdff;padding:20px}.static-card>div{font-size:28px}.static-card strong{display:block;margin-top:10px}.static-card span{display:block;color:var(--muted);font-size:11px;margin-top:5px}
.info-card{display:grid;grid-template-columns:1fr .7fr;gap:38px;border-radius:22px;background:linear-gradient(135deg,#172554,#1e3a8a);color:#fff;padding:34px}.info-card .eyebrow{color:#93c5fd}.info-card p{color:#cbd5e1;font-size:12px;line-height:1.7}.info-points{display:grid;gap:10px;align-content:center}.info-points span{background:rgba(255,255,255,.08);padding:10px;border-radius:10px;font-size:11px}
.mobile-cart{display:none}.toast{position:fixed;right:18px;bottom:18px;z-index:200;background:#0f172a;color:#fff;padding:12px 14px;border-radius:12px;font-size:12px}
@media(max-width:980px){.main-nav{display:none}.hero-inner{grid-template-columns:1fr}.menu-layout{grid-template-columns:1fr}.order-summary{position:static}}
@media(max-width:720px){.header-inner,.hero-inner,.section-shell{width:min(100% - 22px,1240px)}.brand strong{font-size:21px}.brand small{display:none}.hero-inner{padding:42px 0}.hero h1{font-size:44px}.section-heading{display:block}.week-switcher{margin-top:18px;overflow:auto}.meal-row{grid-template-columns:64px minmax(0,1fr) 70px}.quantity-control{grid-column:1/-1;grid-template-columns:40px 1fr 40px;border-top:1px solid #f1f5f9;padding-top:8px}.static-grid,.info-card{grid-template-columns:1fr}.mobile-cart{position:fixed;left:10px;right:10px;bottom:10px;z-index:120;display:flex;justify-content:space-between;align-items:center;border:1px solid #dbeafe;border-radius:15px;background:#fff;padding:10px 10px 10px 14px;box-shadow:0 16px 40px rgba(15,23,42,.18)}.mobile-cart button{border:0;border-radius:10px;background:var(--blue);color:#fff;padding:10px 12px;font-size:11px;font-weight:850}}


/* V53 – veřejné přihlášení a registrace */
body.auth-open{overflow:hidden}
.login-button.user-active{background:#eff6ff;border-color:#93c5fd;color:var(--blue-dark)}
.auth-modal[hidden]{display:none!important}
.auth-modal{position:fixed;inset:0;z-index:500;display:grid;place-items:center;padding:20px}
.auth-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.55);backdrop-filter:blur(6px)}
.auth-dialog{position:relative;z-index:1;width:min(520px,100%);max-height:calc(100vh - 40px);overflow:auto;border:1px solid rgba(255,255,255,.65);border-radius:24px;background:#fff;padding:28px;box-shadow:0 30px 90px rgba(15,23,42,.28)}
.auth-close{position:absolute;right:16px;top:14px;width:38px;height:38px;border:0;border-radius:12px;background:#f1f5f9;color:#475569;font-size:24px;line-height:1}
.auth-brand{display:flex;align-items:center;gap:10px;padding-right:48px}.auth-brand strong{display:block;font:italic 800 23px Georgia}.auth-brand small{display:block;color:var(--muted);font-size:10px}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:24px 0 22px;border-radius:13px;background:#f1f5f9;padding:4px}.auth-tab{border:0;border-radius:10px;background:transparent;padding:10px;color:#64748b;font-size:12px;font-weight:850}.auth-tab.active{background:#fff;color:var(--blue);box-shadow:0 3px 10px rgba(15,23,42,.07)}
.auth-heading h2{margin:0 0 7px;font-size:27px;letter-spacing:-.025em}.auth-heading p{margin:0 0 20px;color:var(--muted);font-size:12px;line-height:1.6}
.auth-form{display:grid;gap:13px}.auth-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.auth-form label{display:grid;gap:6px}.auth-form label>span{font-size:11px;font-weight:850;color:#334155}.auth-form input{width:100%;height:44px;border:1px solid #dbe3ee;border-radius:11px;background:#fff;padding:0 12px;color:var(--text);outline:none}.auth-form input:focus{border-color:#60a5fa;box-shadow:0 0 0 3px rgba(37,99,235,.10)}
.auth-hint{color:#94a3b8;font-size:10px}.auth-submit{width:100%;margin-top:3px}.auth-message{border-radius:10px;padding:10px 11px;background:#fef2f2;color:#b91c1c;font-size:11px;font-weight:700}.auth-message.success{background:#ecfdf5;color:#047857}
.auth-switch-text{margin:17px 0 0;text-align:center;color:var(--muted);font-size:11px}.auth-switch-text button{border:0;background:none;color:var(--blue);font-weight:850;padding:0}
.account-badge{width:58px;height:58px;margin:8px auto 15px;border-radius:18px;display:grid;place-items:center;background:#ecfdf5;color:#059669;font-size:26px;font-weight:900}.account-heading{text-align:center}.account-details{display:grid;gap:8px;margin:20px 0}.account-details>div{display:flex;justify-content:space-between;gap:16px;border:1px solid var(--line);border-radius:12px;background:var(--soft);padding:12px}.account-details span{color:var(--muted);font-size:11px}.account-details strong{font-size:11px}
@media(max-width:560px){.auth-modal{padding:10px}.auth-dialog{max-height:calc(100vh - 20px);border-radius:20px;padding:22px 17px}.auth-form-grid{grid-template-columns:1fr}.auth-tabs{margin-top:20px}}

.order-success-dialog {
    text-align: center;
    max-width: 430px;
}
.order-success-dialog .account-badge {
    margin: 0 auto 16px;
    width: 64px;
    height: 64px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    font-size: 32px;
}
.order-success-dialog .primary-button {
    width: 100%;
    margin-top: 10px;
}

.order-success-modal[hidden]{display:none!important}
.order-success-modal{
    position:fixed;inset:0;z-index:10050;
    display:grid;place-items:center;padding:20px
}
.order-success-modal .auth-backdrop{
    position:absolute;inset:0;z-index:0;pointer-events:auto
}
.order-success-modal .order-success-dialog{
    position:relative;z-index:1;pointer-events:auto
}
.order-success-modal .auth-close,
.order-success-modal .primary-button{
    pointer-events:auto
}
.account-orders{
    margin-top:18px;padding-top:15px;
    border-top:1px solid rgba(148,163,184,.25)
}
.account-orders-head{
    display:flex;align-items:center;justify-content:space-between;
    gap:10px;margin-bottom:9px
}
.account-orders-refresh{padding:6px 9px;font-size:11px}
.account-orders-list{
    display:grid;gap:7px;max-height:260px;overflow:auto
}
.account-order-item{
    padding:9px 10px;border:1px solid rgba(148,163,184,.25);
    border-radius:10px;background:rgba(148,163,184,.06)
}
.account-order-top{
    display:flex;align-items:center;justify-content:space-between;
    gap:8px;margin-bottom:4px
}
.account-order-top strong{font-size:12px}
.account-order-state,.account-order-meals,.account-orders-empty{
    color:var(--muted,#64748b);font-size:11px
}
.account-order-meals{line-height:1.45}
.account-orders-empty{text-align:center;padding:10px}

/* V68 – zákaznický portál podle původní logiky Papani.eu */
[hidden]{display:none!important}
.main-nav{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.nav-link{white-space:nowrap}
.protected-catalog{min-height:55vh}
.catalog-intro{max-width:720px;color:var(--muted,#64748b);margin:0 0 22px}
body:not(.auth-open) .auth-modal[hidden]{display:none!important}
@media(max-width:900px){
  .header-inner{align-items:flex-start}
  .main-nav{order:3;width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}
}

/* v77 – zákaznické zprávy */
.account-chat{margin-top:18px;border-top:1px solid #e5e7eb;padding-top:18px}
.account-chat-unread{min-width:24px;height:24px;padding:0 7px;border-radius:999px;display:inline-grid;place-items:center;background:#16a34a;color:#fff;font-size:.78rem;font-weight:800}
.customer-chat-messages{margin-top:12px;max-height:280px;overflow:auto;display:flex;flex-direction:column;gap:9px;padding:12px;border:1px solid #e5e7eb;border-radius:14px;background:#f8fafc}
.customer-chat-bubble{max-width:84%;padding:9px 11px;border-radius:14px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.06);align-self:flex-start}
.customer-chat-bubble.mine{align-self:flex-end;background:#dbeafe}.customer-chat-bubble small{display:block;margin-top:5px;color:#64748b;font-size:.72rem}
.customer-chat-form{display:grid;gap:9px;margin-top:10px}.customer-chat-form textarea{width:100%;min-height:74px;resize:vertical;border:1px solid #dbe2ea;border-radius:12px;padding:11px 12px;font:inherit}
\n\n/* V89 – spojený jídelníček + objednávka, samostatné Moje objednávky a Zprávy */\n.week-switcher-above-days{margin:0 0 12px}\n.nav-link-messages{display:inline-flex;align-items:center;gap:6px}\n.nav-unread{min-width:19px;height:19px;padding:0 5px;border-radius:999px;display:inline-grid;place-items:center;background:#dc2626;color:#fff;font-size:10px;font-weight:900}\n.customer-portal-section{min-height:62vh;background:#f6f9fc}\n.portal-page-card{width:min(860px,100%);margin:0 auto;border:1px solid var(--line);border-radius:20px;background:#fff;padding:24px;box-shadow:var(--shadow)}\n.portal-page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}\n.portal-page-heading h2{margin:5px 0 4px;font-size:32px}\n.portal-page-heading p{margin:0;color:var(--muted);font-size:12px}\n.portal-orders-list{max-height:none;overflow:visible;gap:10px}\n.portal-orders-list .account-order-item{padding:13px 14px;background:#f8fafc}\n.portal-chat-messages{max-height:430px;min-height:260px}\n.portal-chat-form{grid-template-columns:minmax(0,1fr) auto;align-items:end}\n.portal-chat-form textarea{min-height:84px}\n.portal-chat-form .primary-button{min-width:150px;height:46px}\n@media(max-width:720px){.week-switcher-above-days{margin-top:0}.portal-page-card{padding:18px 14px}.portal-page-heading{align-items:flex-start}.portal-chat-form{grid-template-columns:1fr}.portal-chat-form .primary-button{width:100%}}\n

/* v90 – větší mezera mezi volbou týdne a řádkem dnů/dat */
.week-switcher,
.week-selector,
.menu-week-switch,
.offer-week-switch {
  margin-bottom: 28px !important;
}
.week-button { margin-bottom: 28px !important; }
.week-button-title { margin-bottom: 28px !important; }
.week-switcher { margin-bottom: 28px !important; }
.week-switcher-above-days { margin-bottom: 28px !important; }

/* v91 – skutečná mezera mezi přepínačem týdne a dny */
.week-switcher-above-days {
    margin-bottom: 42px !important;
}
.week-switcher-above-days + .days,
.week-switcher-above-days + .day-tabs,
.week-switcher-above-days + .weekday-tabs,
.week-switcher-above-days + .menu-days {
    margin-top: 42px !important;
}

/* v92 – pevná viditelná mezera mezi týdnem a dny */
.week-days-spacer {
  display: block !important;
  width: 100% !important;
  height: 36px !important;
  min-height: 36px !important;
  flex: 0 0 36px !important;
}


/* v93 – výrazná mezera + dnešní/minulé dny pouze ke čtení */
.week-days-spacer{
  height:72px !important;
  min-height:72px !important;
  flex-basis:72px !important;
}
.day-tab.today{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.08)}
.day-tab.readonly{opacity:.72;background:#f8fafc}
.day-card-readonly{background:#fbfdff}
.day-readonly-info{margin-top:8px;font-size:12px;font-weight:700;color:#b45309;background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:8px 10px}
.readonly-meal-row{opacity:.86}
.quantity-readonly{display:flex!important;align-items:center;justify-content:center;border:0!important;background:transparent!important}
.quantity-readonly span{font-size:11px;font-weight:800;color:#94a3b8;white-space:nowrap}


/* v94 – finální rozestup a bez nasčítaných starších marginů */
.week-switcher-above-days{
  margin-bottom:0 !important;
}
.week-switcher-above-days .week-button,
.week-switcher-above-days .week-button-title{
  margin-bottom:0 !important;
}
.week-days-spacer{
  display:block !important;
  width:100% !important;
  height:20px !important;
  min-height:20px !important;
  flex:0 0 20px !important;
  margin:0 !important;
  padding:0 !important;
}
.week-days-spacer + .day-tabs{
  margin-top:0 !important;
}

/* v95 – hero bez informačního panelu */
.hero-inner{grid-template-columns:1fr !important;}


/* v98 – tisk jídelníčku a potvrzení objednávky */
.section-heading{
  align-items:flex-start;
  gap:18px;
}
.print-menu-button{
  flex:0 0 auto;
  white-space:nowrap;
}
.order-success-actions{
  display:flex;
  gap:10px;
  justify-content:center;
  flex-wrap:wrap;
}
.order-success-actions .primary-button,
.order-success-actions .ghost-button{
  min-width:180px;
}
@media (max-width:720px){
  .section-heading{
    flex-direction:column;
  }
  .print-menu-button{
    width:100%;
  }
  .order-success-actions{
    flex-direction:column;
  }
  .order-success-actions .primary-button,
  .order-success-actions .ghost-button{
    width:100%;
  }
}


/* v102 – dynamický obsah z Papani */
.dynamic-catalog-card{overflow:hidden;padding:0!important;display:flex!important;flex-direction:column}
.dynamic-catalog-card>img,.catalog-image-placeholder{width:100%;height:210px;object-fit:cover;background:#f3f4f6;display:flex;align-items:center;justify-content:center;font-size:46px}
.dynamic-catalog-body{padding:20px;display:flex;flex-direction:column;gap:8px}
.dynamic-catalog-body strong{font-size:20px}
.dynamic-catalog-body span{color:var(--muted,#667085);line-height:1.5}
.dynamic-catalog-body b{margin-top:4px;font-size:18px}
.catalog-loading{grid-column:1/-1;padding:26px;border:1px dashed #d0d5dd;border-radius:16px;color:#667085;text-align:center}
.dynamic-info-card{display:grid!important;grid-template-columns:1fr minmax(260px,420px);gap:28px;align-items:center}
.dynamic-info-text p{white-space:pre-line}
.dynamic-info-image{width:100%;height:auto;max-height:none;object-fit:contain;object-position:center top;border-radius:18px;display:block}
@media(max-width:760px){.dynamic-info-card{grid-template-columns:1fr}.dynamic-catalog-card>img,.catalog-image-placeholder{height:180px}}


/* =========================================================
   v169 – nové horní menu podle návrhu uživatele
========================================================= */
.site-header{
    position:sticky;
    top:0;
    z-index:100;
    border:0;
    background:#fff;
    backdrop-filter:none;
    box-shadow:none;
}

.public-menu-top{
    min-height:27px;
    background:#fff;
    display:flex;
    align-items:flex-end;
    overflow-x:auto;
}

.site-header .main-nav{
    margin:0;
    padding:0;
    display:flex;
    align-items:stretch;
    gap:4px;
    flex-wrap:nowrap;
    width:max-content;
}

.site-header .nav-link{
    min-height:25px;
    border:1px solid #b8b8b8;
    border-bottom:0;
    border-radius:0;
    padding:2px 10px 3px;
    background:#efefef;
    color:#111;
    font-size:14px;
    line-height:19px;
    font-weight:400;
    white-space:nowrap;
    box-shadow:none;
}

.site-header .nav-link:hover{
    filter:brightness(.97);
    color:#111;
}

.site-header .nav-menu,
.site-header .nav-menu.active{
    background:#79c9e8;
    border-color:#79c9e8;
    color:#fff;
}

.site-header .nav-order,
.site-header .nav-order.active{
    background:#79c9e8;
    border-color:#79c9e8;
    color:#fff;
}

.site-header .nav-permanent,
.site-header .nav-permanent.active{
    background:#f26522;
    border-color:#e55818;
    color:#fff;
}

.site-header .nav-dumplings,
.site-header .nav-dumplings.active{
    background:#f5a623;
    border-color:#e49a1d;
    color:#fff;
}

.site-header .nav-info,
.site-header .nav-info.active{
    background:#efefef;
    color:#000;
}

.site-header .nav-orders,
.site-header .nav-orders.active{
    background:#dce6f1;
    color:#111;
}

.site-header .nav-messages,
.site-header .nav-messages.active{
    background:#8cc63f;
    border-color:#7bb234;
    color:#fff;
}

.site-header .nav-unread{
    min-width:17px;
    height:17px;
    margin-left:3px;
    padding:0 4px;
    border-radius:9px;
    background:#dc2626;
    color:#fff;
    font-size:10px;
    line-height:17px;
    font-weight:800;
}

.public-menu-status{
    min-height:22px;
    background:#79c9e8;
    color:#fff;
}

.public-menu-status-inner{
    min-height:22px;
    padding:0 7px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    font-size:12px;
    line-height:22px;
    font-weight:600;
}

.public-user-status{
    display:flex;
    align-items:center;
    white-space:nowrap;
}

.public-user-divider{
    margin:0 4px;
    opacity:.9;
}

.site-header .login-button{
    border:0;
    border-radius:0;
    background:transparent;
    color:#fff;
    padding:0;
    font:inherit;
    text-decoration:underline;
    cursor:pointer;
}

.site-header .login-button:hover,
.site-header .login-button.user-active{
    background:transparent;
    color:#fff;
}

@media(max-width:980px){
    .site-header .main-nav{
        display:flex;
    }
}

@media(max-width:720px){
    .public-menu-top{
        overflow-x:auto;
        scrollbar-width:thin;
    }

    .site-header .nav-link{
        font-size:13px;
        padding-left:8px;
        padding-right:8px;
    }

    .public-menu-status-inner{
        padding:0 6px;
        font-size:11px;
    }

    .public-user-status{
        margin-left:auto;
    }

    #publicUserStatusText{
        display:none;
    }

    .public-user-divider{
        display:none;
    }
}


/* =========================================================
   v170 – obrázek nad menu + menu lícuje s obsahem
========================================================= */

/* Obrázek je 1760 × 124 px a zůstává 1:1, bez roztahování. */
.site-header::before{
    content:"";
    display:block;
    width:100%;
    height:124px;
    background-image:var(--papani-header-image, url("img/vrsek.jfif"));
    background-repeat:no-repeat;
    background-position:center top;
    background-size:1760px 124px;
}

/* Menu začíná na stejné levé hraně jako obsah Papani.eu. */
.public-menu-top,
.public-menu-status-inner{
    width:min(1760px, 100%);
    margin-left:auto;
    margin-right:auto;
    box-sizing:border-box;
}

.public-menu-top{
    align-items:flex-end;
}

/* První položka začíná přesně na začátku řádku. */
.site-header .main-nav{
    margin-left:0;
}

/* Menu je až pod obrázkem, nikoliv přes něj. */
.public-menu-top{
    position:relative;
    z-index:2;
}

@media(max-width:1760px){
    .site-header::before{
        /* Na užším monitoru obrázek stále nezmenšujeme – pouze se ořízne po stranách. */
        background-size:1760px 124px;
        background-position:center top;
    }
}


/* =========================================================
   v171 – menu posunuté k logu a lehce přes spodní část obrázku
========================================================= */
.site-header{
    position:sticky;
    top:0;
    z-index:100;
    background:#79c9e8;
}

/* Obrázek zůstává 1:1. Menu jej dole lehce překrývá. */
.site-header::before{
    height:124px;
    background-size:1760px 124px;
    background-position:center top;
}

/* Překrytí odstraní bílou mezeru mezi obrázkem a menu. */
.public-menu-top{
    margin-top:-27px;
    min-height:27px;
    position:relative;
    z-index:3;
    background:transparent;
    overflow-x:auto;
}

/*
  Obsah obrázku je široký 1760 px. Menu začíná uvnitř této plochy,
  ne na kraji okna – přibližně pod začátkem nápisu Papani.eu.
*/
.public-menu-top .main-nav{
    margin-left:max(18px, calc((100vw - 1760px) / 2 + 118px));
}

/* Modrý stavový pruh navazuje rovnou pod menu. */
.public-menu-status{
    position:relative;
    z-index:4;
    margin-top:0;
}

/* Text ve spodním pruhu lícuje se začátkem menu. */
.public-menu-status-inner{
    padding-left:max(18px, calc((100vw - 1760px) / 2 + 118px));
    padding-right:max(8px, calc((100vw - 1760px) / 2 + 8px));
}

@media(max-width:720px){
    .public-menu-top .main-nav{
        margin-left:12px;
    }

    .public-menu-status-inner{
        padding-left:12px;
        padding-right:6px;
    }
}


/* v172 – menu o kus více doleva */
.public-menu-top .main-nav{
    margin-left:max(10px, calc((100vw - 1760px) / 2 + 55px));
}

.public-menu-status-inner{
    padding-left:max(10px, calc((100vw - 1760px) / 2 + 55px));
}

@media(max-width:720px){
    .public-menu-top .main-nav{
        margin-left:6px;
    }

    .public-menu-status-inner{
        padding-left:6px;
    }
}


/* v173 – menu posunuto více doprava */
.public-menu-top .main-nav{
    margin-left:max(10px, calc((100vw - 1760px) / 2 + 90px));
}

.public-menu-status-inner{
    padding-left:max(10px, calc((100vw - 1760px) / 2 + 90px));
}

@media(max-width:720px){
    .public-menu-top .main-nav{ margin-left:10px; }
    .public-menu-status-inner{ padding-left:10px; }
}


/* =========================================================
   v174 – menu zarovnané se začátkem nápisu „Jídelníček Papani.eu“
   v grafice vrsek.jfif
========================================================= */

/*
  vrsek.jfif je široký 1760 px a je vycentrovaný.
  Levý okraj menu držíme ve stejné souřadnici jako začátek
  nápisu v obrázku, takže se zarovnání nemění s šířkou monitoru.
*/
.public-menu-top .main-nav{
    margin-left:max(10px, calc((100vw - 1760px) / 2 + 165px));
}

.public-menu-status-inner{
    padding-left:max(10px, calc((100vw - 1760px) / 2 + 165px));
}

@media(max-width:720px){
    .public-menu-top .main-nav{
        margin-left:10px;
    }

    .public-menu-status-inner{
        padding-left:10px;
    }
}


/* =========================================================
   v175 – menu lícuje s textovým obsahem stránky
   („Jídelníček Papani.eu“ / „Vyber si oběd…“)
========================================================= */

/*
  Hlavní obsah používá .hero-inner/.section-inner s max-width:1180px
  a 24px bočním odsazením. Stejnou levou hranu použijeme pro menu.
*/
.public-menu-top .main-nav{
    margin-left:max(24px, calc((100vw - 1180px) / 2 + 24px));
}

/* Stejná osa také pro text v modrém informačním pruhu. */
.public-menu-status-inner{
    width:100%;
    max-width:none;
    margin:0;
    padding-left:max(24px, calc((100vw - 1180px) / 2 + 24px));
    padding-right:max(24px, calc((100vw - 1180px) / 2 + 24px));
}

@media(max-width:720px){
    .public-menu-top .main-nav{
        margin-left:18px;
    }

    .public-menu-status-inner{
        padding-left:18px;
        padding-right:18px;
    }
}


/* v176 – bez textu „Jídelní lístek“ v modrém pruhu */
.public-menu-status-inner{
    justify-content:flex-end;
}


/* =========================================================
   v178 – posouváme pouze menu, obsah stránky zůstává beze změny
   Hero používá:
   width:min(1240px, calc(100% - 32px)); margin:auto;
   Proto má jeho levý okraj na desktopu přesně tuto hodnotu.
========================================================= */
.public-menu-top{
    width:100%;
    max-width:none;
    padding-left:0;
    padding-right:0;
}

.public-menu-top .main-nav{
    margin-left:max(16px, calc((100vw - 1240px) / 2)) !important;
}

/* Na mobilu hero používá 100% - 22px => 11 px od kraje. */
@media(max-width:720px){
    .public-menu-top .main-nav{
        margin-left:11px !important;
    }
}


/* =========================================================
   v179 – spodní grafické pozadí pouze jednou, bez opakování
========================================================= */
body{
    background:#fff;
}

main{
    background-image:url("img/pozadi.jpg");
    background-repeat:no-repeat;
    background-position:center top;
    background-size:auto;
}

/* Sekce necháme průhledné, aby bylo pozadí pod nimi vidět. */
.hero,
.static-section,
.customer-portal-section{
    background:transparent;
}


/* =========================================================
   v180 – spodní pozadí má stejnou šířku jako vršek: 1760 px
========================================================= */

/* Obrázek se zobrazí jen jednou, vycentrovaný.
   Šířka je přesně 1760 px stejně jako img/vrsek.jfif.
   Výška se dopočítá automaticky podle poměru obrázku. */
main{
    background-image:url("img/pozadi.jpg");
    background-repeat:no-repeat;
    background-position:center top;
    background-size:1760px auto;
}

/* =========================================================
   v182 – zaoblené horní menu ve stylu ostatních prvků
========================================================= */
.site-header .nav-link{
    border-radius:9px 9px 0 0;
    padding-left:13px;
    padding-right:13px;
}

/* Jemnější přechod mezi jednotlivými záložkami. */
.site-header .main-nav{
    gap:5px;
}

/* První a poslední karta mají o chlup měkčí vnější roh. */
.site-header .main-nav .nav-link:first-child{
    border-top-left-radius:11px;
}
.site-header .main-nav .nav-link:last-child{
    border-top-right-radius:11px;
}


/* v184 – lišta pod menu přebírá barvu aktivní položky */
.public-menu-status{transition:background-color .18s ease,color .18s ease}
.public-menu-status.status-order{background:#79c9e8;color:#fff}
.public-menu-status.status-permanent{background:#f26522;color:#fff}
.public-menu-status.status-dumplings{background:#f5a623;color:#fff}
.public-menu-status.status-info{background:#efefef;color:#111}
.public-menu-status.status-orders{background:#dce6f1;color:#111}
.public-menu-status.status-messages{background:#8cc63f;color:#fff}
.public-menu-status.status-info .login-button,.public-menu-status.status-info .public-user-divider,.public-menu-status.status-info .public-user-status,.public-menu-status.status-orders .login-button,.public-menu-status.status-orders .public-user-divider,.public-menu-status.status-orders .public-user-status{color:#111}
.public-menu-status.status-order .login-button,.public-menu-status.status-permanent .login-button,.public-menu-status.status-dumplings .login-button,.public-menu-status.status-messages .login-button{color:#fff}


/* v186 – Objednávka natvrdo modrá + cache refresh */
.site-header .main-nav .nav-link.nav-order,
.site-header .main-nav .nav-link.nav-order.active,
.site-header .main-nav .nav-link.nav-order:hover,
.site-header .main-nav .nav-link.nav-order:focus{
    background:#79c9e8 !important;
    border-color:#79c9e8 !important;
    color:#fff !important;
}

/* =========================================================
   v189 – jemný přechod ze světle modré do bílé
========================================================= */
body{
    background:#fff;
}
main{
    background-image:linear-gradient(to bottom, #eaf8fd 0%, #f4fbfe 32%, #ffffff 72%, #ffffff 100%) !important;
    background-repeat:no-repeat !important;
    background-position:center top !important;
    background-size:100% 720px !important;
}
.hero,
.static-section,
.customer-portal-section{
    background:transparent;
}


/* v192 – větší a čitelnější přepínače týdnů */
.week-switcher-above-days .week-button{
    min-width:190px !important;
    padding:14px 16px !important;
}
.week-switcher-above-days .week-button-title{
    display:block;
    font-size:16px !important;
    line-height:1.25;
    font-weight:900;
}
.week-switcher-above-days .week-button small{
    margin-top:6px !important;
    font-size:12px !important;
    line-height:1.3;
}
@media(max-width:720px){
    .week-switcher-above-days .week-button{
        min-width:175px !important;
        padding:13px 14px !important;
    }
    .week-switcher-above-days .week-button-title{
        font-size:15px !important;
    }
    .week-switcher-above-days .week-button small{
        font-size:11px !important;
    }
}


/* v193 – jemná animace střídání úvodních sdělení */
.hero-inner > div{transition:opacity .28s ease,transform .28s ease}
.hero-inner > div.hero-copy-changing{opacity:.12;transform:translateY(4px)}

/* v194 – obrázek v rotujícím úvodním banneru */
.hero-banner-media{justify-self:end;width:min(100%,390px);aspect-ratio:16/10;border-radius:24px;overflow:hidden;background:#fff;box-shadow:0 18px 50px rgba(15,23,42,.14);border:1px solid rgba(255,255,255,.8)}
.hero-banner-media[hidden]{display:none!important}
.hero-banner-media img{width:100%;height:100%;display:block;object-fit:cover}
@media(max-width:980px){.hero-banner-media{justify-self:start;width:min(100%,520px)}}


/* v198 – velikost obrázku v sekci Informace podle nastavení v administraci */
.dynamic-info-card[data-image-size="small"]{grid-template-columns:minmax(0,1fr) minmax(180px,240px)}
.dynamic-info-card[data-image-size="medium"]{grid-template-columns:minmax(0,1fr) minmax(260px,420px)}
.dynamic-info-card[data-image-size="large"]{grid-template-columns:minmax(0,1fr) minmax(360px,620px)}
.dynamic-info-image--small{width:100%;max-width:240px;justify-self:end}
.dynamic-info-image--medium{width:100%;max-width:420px;justify-self:end}
.dynamic-info-image--large{width:100%;max-width:620px;justify-self:end}
.dynamic-info-card[data-image-size="full"]{grid-template-columns:1fr}
.dynamic-info-image--full{width:100%;max-width:none;height:auto;max-height:none;object-fit:contain;justify-self:stretch}
@media(max-width:760px){
  .dynamic-info-card[data-image-size="small"],
  .dynamic-info-card[data-image-size="medium"],
  .dynamic-info-card[data-image-size="large"],
  .dynamic-info-card[data-image-size="full"]{grid-template-columns:1fr}
  .dynamic-info-image--small,.dynamic-info-image--medium,.dynamic-info-image--large,.dynamic-info-image--full{max-width:100%;justify-self:stretch}
}


/* v199 – Informace: obrázek se zobrazuje celý, bez výškového ořezu */
.dynamic-info-image--small,.dynamic-info-image--medium,.dynamic-info-image--large,.dynamic-info-image--full{height:auto!important;max-height:none!important;object-fit:contain!important;object-position:center top!important;}


/* =========================================================
   V10.17 – nastavitelné zobrazení úvodního banneru
========================================================= */
.hero-inner{
    grid-template-columns:minmax(0,1fr) minmax(280px,390px) !important;
}
.hero-banner-media{
    width:100%;
    max-width:390px;
    aspect-ratio:auto;
}
.hero-banner-media img{
    width:100%;
    height:100%;
    display:block;
}
.hero-inner.hero-mode-image-only{
    display:block;
    padding-top:30px;
    padding-bottom:30px;
}
.hero-inner.hero-mode-image-only .hero-banner-media{
    width:100%;
    max-width:none;
    justify-self:stretch;
}
.hero-inner.hero-mode-text-only{
    grid-template-columns:1fr !important;
}
@media(max-width:980px){
    .hero-inner{
        grid-template-columns:1fr !important;
    }
    .hero-banner-media{
        width:100%;
        max-width:520px;
    }
    .hero-inner.hero-mode-image-only .hero-banner-media{
        max-width:none;
    }
}


/* =========================================================
   V10.18 – skutečná pozice obrázku banneru
   Vlevo / střed / vpravo určuje umístění celého obrázku,
   ne pouze výřez uvnitř obrázku.
========================================================= */
.hero-inner:not(.hero-mode-image-only):not(.hero-mode-text-only){
    grid-template-columns:minmax(280px,390px) minmax(0,1fr) minmax(280px,390px) !important;
}
.hero-inner:not(.hero-mode-image-only):not(.hero-mode-text-only) .hero-copy{
    grid-column:2;
}
.hero-inner:not(.hero-mode-image-only):not(.hero-mode-text-only) .hero-banner-media{
    grid-row:1;
}
.hero-inner:not(.hero-mode-image-only):not(.hero-mode-text-only) .hero-banner-media[data-position="left"]{
    grid-column:1;
    justify-self:start;
}
.hero-inner:not(.hero-mode-image-only):not(.hero-mode-text-only) .hero-banner-media[data-position="center"]{
    grid-column:3;
    justify-self:center;
}
.hero-inner:not(.hero-mode-image-only):not(.hero-mode-text-only) .hero-banner-media[data-position="right"]{
    grid-column:3;
    justify-self:end;
}

/* U banneru pouze s obrázkem se obrázek opravdu zarovná v rámci celé šířky. */
.hero-inner.hero-mode-image-only .hero-banner-media{
    width:min(100%, 980px);
}
.hero-inner.hero-mode-image-only .hero-banner-media[data-position="left"]{
    margin-left:0;
    margin-right:auto;
}
.hero-inner.hero-mode-image-only .hero-banner-media[data-position="center"]{
    margin-left:auto;
    margin-right:auto;
}
.hero-inner.hero-mode-image-only .hero-banner-media[data-position="right"]{
    margin-left:auto;
    margin-right:0;
}

@media(max-width:980px){
    .hero-inner:not(.hero-mode-image-only):not(.hero-mode-text-only){
        grid-template-columns:1fr !important;
    }
    .hero-inner:not(.hero-mode-image-only):not(.hero-mode-text-only) .hero-copy,
    .hero-inner:not(.hero-mode-image-only):not(.hero-mode-text-only) .hero-banner-media{
        grid-column:1 !important;
    }
    .hero-inner:not(.hero-mode-image-only):not(.hero-mode-text-only) .hero-copy{
        grid-row:auto;
    }
    .hero-inner:not(.hero-mode-image-only):not(.hero-mode-text-only) .hero-banner-media{
        grid-row:auto;
    }
}


/* =========================================================
   V10.19 – jednodušší a předvídatelné rozložení banneru
========================================================= */

/* Základ: text + obrázek ve 2 sloupcích */
.hero-inner:not(.hero-mode-image-only):not(.hero-mode-text-only){
    display:grid !important;
    grid-template-columns:minmax(0,1.45fr) minmax(260px,.85fr) !important;
    grid-template-areas:"copy image" !important;
    align-items:center;
    gap:32px;
}
.hero-inner:not(.hero-mode-image-only):not(.hero-mode-text-only) .hero-copy{
    grid-area:copy !important;
    grid-column:auto !important;
    grid-row:auto !important;
}
.hero-inner:not(.hero-mode-image-only):not(.hero-mode-text-only) .hero-banner-media{
    grid-area:image !important;
    grid-column:auto !important;
    grid-row:auto !important;
    width:100%;
    max-width:420px;
    justify-self:end !important;
    margin:0 !important;
}

/* Obrázek vlevo */
.hero-inner.hero-image-left:not(.hero-mode-image-only):not(.hero-mode-text-only){
    grid-template-columns:minmax(260px,.85fr) minmax(0,1.45fr) !important;
    grid-template-areas:"image copy" !important;
}
.hero-inner.hero-image-left:not(.hero-mode-image-only):not(.hero-mode-text-only) .hero-banner-media{
    justify-self:start !important;
}

/* Obrázek vpravo */
.hero-inner.hero-image-right:not(.hero-mode-image-only):not(.hero-mode-text-only){
    grid-template-areas:"copy image" !important;
}
.hero-inner.hero-image-right:not(.hero-mode-image-only):not(.hero-mode-text-only) .hero-banner-media{
    justify-self:end !important;
}

/* Obrázek na střed = pod textem, text dostane celou šířku */
.hero-inner.hero-image-center:not(.hero-mode-image-only):not(.hero-mode-text-only){
    grid-template-columns:1fr !important;
    grid-template-areas:
        "copy"
        "image" !important;
}
.hero-inner.hero-image-center:not(.hero-mode-image-only):not(.hero-mode-text-only) .hero-banner-media{
    justify-self:center !important;
    max-width:760px;
}

/* Jen text / Bez obrázku = skutečně celá šířka pro text */
.hero-inner.hero-mode-text-only{
    display:grid !important;
    grid-template-columns:1fr !important;
    grid-template-areas:"copy" !important;
}
.hero-inner.hero-mode-text-only .hero-copy{
    grid-area:copy !important;
    width:100%;
    max-width:none !important;
}
.hero-inner.hero-mode-text-only .hero-banner-media{
    display:none !important;
}

/* Jen obrázek */
.hero-inner.hero-mode-image-only{
    display:block !important;
}
.hero-inner.hero-mode-image-only .hero-banner-media{
    width:min(100%,980px) !important;
    max-width:980px !important;
}
.hero-inner.hero-mode-image-only .hero-banner-media[data-position="left"]{
    margin-left:0 !important;
    margin-right:auto !important;
}
.hero-inner.hero-mode-image-only .hero-banner-media[data-position="center"]{
    margin-left:auto !important;
    margin-right:auto !important;
}
.hero-inner.hero-mode-image-only .hero-banner-media[data-position="right"]{
    margin-left:auto !important;
    margin-right:0 !important;
}

@media(max-width:980px){
    .hero-inner:not(.hero-mode-image-only):not(.hero-mode-text-only),
    .hero-inner.hero-image-left:not(.hero-mode-image-only):not(.hero-mode-text-only),
    .hero-inner.hero-image-right:not(.hero-mode-image-only):not(.hero-mode-text-only){
        grid-template-columns:1fr !important;
        grid-template-areas:
            "copy"
            "image" !important;
    }
    .hero-inner:not(.hero-mode-image-only):not(.hero-mode-text-only) .hero-banner-media{
        justify-self:center !important;
        max-width:620px;
    }
}


/* =========================================================
   V10.20 – stabilní výška úvodního banneru
   Banner má rezervovaný prostor, aby stránka při střídání
   různě dlouhých textů / obrázků neskákala nahoru a dolů.
========================================================= */
.hero{
    min-height:430px;
}

.hero .hero-inner{
    min-height:370px;
    box-sizing:border-box;
}

/* Obsah držíme svisle uprostřed rezervovaného prostoru */
.hero .hero-copy{
    align-self:center;
}

/* U čistě textové varianty zachováme stejnou výšku banneru */
.hero-inner.hero-mode-text-only{
    min-height:370px !important;
    align-items:center;
}

/* U varianty jen s obrázkem také držíme stejnou rezervu */
.hero-inner.hero-mode-image-only{
    min-height:370px !important;
    display:flex !important;
    align-items:center;
}

/* Mobil: menší rezervovaný prostor, aby banner nebyl zbytečně vysoký */
@media(max-width:980px){
    .hero{
        min-height:360px;
    }

    .hero .hero-inner,
    .hero-inner.hero-mode-text-only,
    .hero-inner.hero-mode-image-only{
        min-height:300px !important;
    }
}

@media(max-width:640px){
    .hero{
        min-height:330px;
    }

    .hero .hero-inner,
    .hero-inner.hero-mode-text-only,
    .hero-inner.hero-mode-image-only{
        min-height:270px !important;
    }
}


/* =========================================================
   V10.21 – skutečně pevný prostor banneru
========================================================= */
@media(min-width:981px){
    .hero{
        height:470px !important;
        min-height:470px !important;
        max-height:470px !important;
        overflow:hidden !important;
    }
    .hero .hero-inner,
    .hero-inner.hero-mode-text-only,
    .hero-inner.hero-mode-image-only{
        height:100% !important;
        min-height:0 !important;
        max-height:100% !important;
        box-sizing:border-box;
    }
    .hero-banner-media{
        max-height:400px !important;
    }
    .hero-inner.hero-image-center:not(.hero-mode-image-only):not(.hero-mode-text-only){
        grid-template-rows:auto minmax(0,1fr) !important;
        align-content:center;
    }
    .hero-inner.hero-image-center:not(.hero-mode-image-only):not(.hero-mode-text-only) .hero-banner-media{
        max-height:245px !important;
    }
}

/* Na mobilu necháme bezpečný prostor, ale nevynutíme ořez dlouhého obsahu. */
@media(max-width:980px){
    .hero{
        min-height:430px !important;
    }
    .hero .hero-inner,
    .hero-inner.hero-mode-text-only,
    .hero-inner.hero-mode-image-only{
        min-height:370px !important;
    }
}


/* =========================================================
   V10.22 – banner "Jen obrázek" přes celou šířku obsahu
========================================================= */
.hero-inner.hero-mode-image-only{
    width:100%;
}

.hero-inner.hero-mode-image-only .hero-banner-media{
    width:100% !important;
    max-width:none !important;
    justify-self:stretch !important;
    margin-left:0 !important;
    margin-right:0 !important;
}

/* U samostatného obrázku už vlevo/střed/vpravo nemění šířku.
   Obrázek vždy používá celou dostupnou šířku hlavního obsahu. */
.hero-inner.hero-mode-image-only .hero-banner-media[data-position="left"],
.hero-inner.hero-mode-image-only .hero-banner-media[data-position="center"],
.hero-inner.hero-mode-image-only .hero-banner-media[data-position="right"]{
    width:100% !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
}

.hero-inner.hero-mode-image-only .hero-banner-media img{
    width:100% !important;
}


/* =========================================================
   V10.23 – šířka banneru podle horního menu / účtu
========================================================= */

/*
  "Jen obrázek" nezačne přes celou hero plochu.
  Začíná na stejné levé ose jako horní menu a končí přibližně
  na stejné pravé ose jako oblast Můj účet.
*/
@media(min-width:981px){
    .hero-inner.hero-mode-image-only .hero-banner-media,
    .hero-inner.hero-mode-image-only .hero-banner-media[data-position="left"],
    .hero-inner.hero-mode-image-only .hero-banner-media[data-position="center"],
    .hero-inner.hero-mode-image-only .hero-banner-media[data-position="right"]{
        width:calc(100% - 54px) !important;
        max-width:1186px !important;
        margin-left:0 !important;
        margin-right:auto !important;
        align-self:center;
    }
}

/* Na menších displejích využijeme dostupnou šířku normálně. */
@media(max-width:980px){
    .hero-inner.hero-mode-image-only .hero-banner-media{
        width:100% !important;
        max-width:none !important;
    }
}


/* =========================================================
   V10.24 – oprava vystředění širokého obrázkového banneru
========================================================= */
@media(min-width:981px){
    .hero-inner.hero-mode-image-only .hero-banner-media,
    .hero-inner.hero-mode-image-only .hero-banner-media[data-position="left"],
    .hero-inner.hero-mode-image-only .hero-banner-media[data-position="center"],
    .hero-inner.hero-mode-image-only .hero-banner-media[data-position="right"]{
        width:calc(100% - 54px) !important;
        max-width:1186px !important;
        margin-left:auto !important;
        margin-right:auto !important;
        align-self:center !important;
    }
}


/* =========================================================
   V10.25 – stabilní pozice stránky při přepínání menu
========================================================= */
[data-view-section],
#jidelnicek,
#orderSummary{
    overflow-anchor:none;
}


/* =========================================================
   V10.27 – návrat na Objednávku pouze pod banner
========================================================= */
#jidelnicek{
    scroll-margin-top:92px;
}
@media(max-width:720px){
    #jidelnicek{
        scroll-margin-top:78px;
    }
}


/* =========================================================
   V10.28 – banner už nesmí posouvat Týdenní nabídku
========================================================= */
@media(min-width:981px){
    .hero{
        height:470px !important;
        min-height:470px !important;
        max-height:470px !important;
        box-sizing:border-box !important;
        overflow:hidden !important;
        contain:layout paint;
    }

    .hero .hero-inner{
        height:100% !important;
        min-height:0 !important;
        max-height:100% !important;
        box-sizing:border-box !important;
        overflow:hidden !important;
    }

    .hero .hero-banner-media{
        flex-shrink:0 !important;
    }
}

/*
  Týdenní nabídka začíná vždy až za pevným boxem banneru.
  Změna obrázku/textu uvnitř slideru tak nemění její pozici.
*/
#jidelnicek{
    position:relative;
    clear:both;
}


/* =========================================================
   V10.29 – skutečná oprava výšky banneru
   HTML používá .hero (ne .hero-section).
========================================================= */
@media(min-width:981px){
    section.hero[data-view-section="menu"]{
        height:470px !important;
        min-height:470px !important;
        max-height:470px !important;
        overflow:hidden !important;
        box-sizing:border-box !important;
    }

    section.hero[data-view-section="menu"] > .hero-inner{
        height:470px !important;
        min-height:470px !important;
        max-height:470px !important;
        box-sizing:border-box !important;
        overflow:hidden !important;
    }
}

/* Rozbitý obrázek nikdy nezobrazí ikonu/alternativní text v banneru. */
#heroBannerImage{
    font-size:0 !important;
    color:transparent !important;
}


/* V10.35 – objednávání ze Stálé nabídky */
.permanent-order-toolbar{
    display:flex;align-items:flex-end;justify-content:space-between;gap:18px;
    margin:14px 0 20px;padding:14px 16px;border:1px solid #dfe7e2;
    border-radius:16px;background:#fff;
}
.permanent-order-toolbar label{display:grid;gap:6px;min-width:230px;font-weight:800}
.permanent-order-toolbar label span{font-size:12px;color:#64748b}
.permanent-order-toolbar select{
    min-height:44px;border:1px solid #cfd9d3;border-radius:11px;
    padding:8px 12px;background:#fff;font:inherit;font-weight:800
}
.permanent-order-toolbar small{color:#6b7a72;line-height:1.4}
.permanent-title-line{display:flex;align-items:center;justify-content:space-between;gap:10px}
.permanent-code-badge{
    display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:30px;
    padding:0 9px;border-radius:999px;background:#eef4ff;border:1px solid #c7d7fe;
    color:#175cd3;font-size:13px;font-weight:950;flex:0 0 auto
}
.permanent-quantity-control{
    display:grid;grid-template-columns:42px 46px 42px;align-items:center;
    justify-content:start;gap:6px;margin-top:10px
}
.permanent-quantity-control button{
    width:42px;height:42px;border:1px solid #ccd8d1;border-radius:11px;
    background:#fff;font-size:22px;font-weight:900;cursor:pointer
}
.permanent-quantity-control button:last-child{background:#167353;border-color:#167353;color:#fff}
.permanent-quantity-control button:disabled{opacity:.38;cursor:not-allowed}
.permanent-quantity-control strong{text-align:center;font-size:18px}
.permanent-order-warning{display:block;margin-top:8px;color:#b42318!important;font-weight:800}
@media(max-width:700px){
    .permanent-order-toolbar{align-items:stretch;flex-direction:column}
    .permanent-order-toolbar label{min-width:0}
}

/* V10.36 – Stálá nabídka: oranžové + */
.permanent-quantity-control button:last-child{
    background:#f28c18 !important;
    border-color:#f28c18 !important;
    color:#fff !important;
}
.permanent-quantity-control button:last-child:hover:not(:disabled){
    background:#dc7710 !important;
    border-color:#dc7710 !important;
}


/* V10.61 – Stálá nabídka: viditelně označit položku vloženou do souhrnu */
.permanent-in-summary{
    display:flex;
    align-items:center;
    gap:6px;
    margin-top:9px;
    padding:7px 10px;
    border-radius:10px;
    background:#edf8f3;
    color:#146c50;
    font-size:12px;
    font-weight:800;
}
.permanent-in-summary span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:18px;
    height:18px;
    margin:0;
    border-radius:50%;
    background:#167353;
    color:#fff;
    font-size:11px;
    line-height:1;
}
.permanent-in-summary strong{
    display:inline;
    margin:0;
    color:inherit;
    font-size:12px;
}


/* V10.63 – hezké potvrzovací okno Stálé nabídky */
.permanent-confirm-overlay[hidden]{display:none!important;}
.permanent-confirm-overlay{
    position:fixed;
    inset:0;
    z-index:99999;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
    background:rgba(20,24,29,.62);
    backdrop-filter:blur(5px);
}
.permanent-confirm-modal{
    position:relative;
    width:min(520px,100%);
    max-height:90vh;
    overflow:auto;
    background:#fff;
    border-radius:24px;
    padding:30px;
    box-shadow:0 24px 80px rgba(0,0,0,.28);
    animation:permanentConfirmIn .18s ease-out;
}
@keyframes permanentConfirmIn{
    from{opacity:0;transform:translateY(12px) scale(.98)}
    to{opacity:1;transform:translateY(0) scale(1)}
}
.permanent-confirm-close{
    position:absolute;
    top:14px;
    right:14px;
    width:36px;
    height:36px;
    border:0;
    border-radius:50%;
    background:#f1f3f5;
    font-size:24px;
    cursor:pointer;
}
.permanent-confirm-icon{
    width:58px;
    height:58px;
    margin:0 auto 16px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#fff3cd;
    color:#9a6700;
    font-size:30px;
    font-weight:900;
}
.permanent-confirm-modal h2{
    margin:0;
    text-align:center;
    font-size:26px;
    line-height:1.15;
}
.permanent-confirm-lead{
    margin:10px 0 18px;
    text-align:center;
    color:#626a73;
}
.permanent-confirm-days{
    display:grid;
    gap:10px;
}
.permanent-confirm-day-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    padding:13px 15px;
    border:1px solid #e6e9ed;
    border-radius:14px;
    background:#f8f9fa;
}
.permanent-confirm-day-row strong{
    text-transform:capitalize;
}
.permanent-confirm-day-row span{
    text-align:right;
    font-weight:700;
}
.permanent-confirm-note{
    margin:18px 0 14px;
    text-align:center;
    font-weight:800;
}
.permanent-confirm-actions{
    display:grid;
    grid-template-columns:1fr 1.35fr;
    gap:10px;
}
.permanent-confirm-actions button{
    min-height:48px;
    border:0;
    border-radius:13px;
    padding:10px 14px;
    font-weight:800;
    cursor:pointer;
}
.permanent-confirm-back{
    background:#eceff2;
    color:#31363b;
}
.permanent-confirm-send{
    background:#167353;
    color:#fff;
}
@media(max-width:560px){
    .permanent-confirm-modal{padding:26px 18px 18px;border-radius:20px}
    .permanent-confirm-modal h2{font-size:22px}
    .permanent-confirm-day-row{align-items:flex-start;flex-direction:column;gap:5px}
    .permanent-confirm-day-row span{text-align:left}
    .permanent-confirm-actions{grid-template-columns:1fr}
}


/* V10.64 – Stálá nabídka ve stejném principu jako Objednávka: seznam vlevo, Souhrn vpravo */
.permanent-page-section{
    background:#fff;
}
.permanent-section-heading{
    margin-bottom:16px;
}
.permanent-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 330px;
    gap:22px;
    align-items:start;
}
.permanent-list{
    display:grid;
    gap:12px;
    min-width:0;
}
.permanent-list .catalog-loading{
    border:1px dashed #cbd5e1;
    border-radius:16px;
    padding:28px 18px;
    text-align:center;
    color:#64748b;
}
.permanent-list .permanent-order-card{
    display:grid!important;
    grid-template-columns:150px minmax(0,1fr);
    min-height:128px;
    overflow:hidden;
    padding:0!important;
    border:1px solid var(--line);
    border-radius:18px;
    background:#fff;
    box-shadow:0 8px 28px rgba(15,23,42,.04);
}
.permanent-list .permanent-order-card>img,
.permanent-list .permanent-order-card>.catalog-image-placeholder{
    width:150px;
    height:100%;
    min-height:128px;
    object-fit:cover;
    border-radius:0;
}
.permanent-list .permanent-order-card .dynamic-catalog-body{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:
        "title qty"
        "desc qty"
        "price qty"
        "state qty"
        "warning warning";
    column-gap:18px;
    align-content:center;
    padding:16px 18px;
    min-width:0;
}
.permanent-list .permanent-title-line{
    grid-area:title;
    justify-content:flex-start;
}
.permanent-list .permanent-title-line strong{
    margin:0;
    font-size:17px;
}
.permanent-list .dynamic-catalog-body>span{
    grid-area:desc;
    margin-top:4px;
}
.permanent-list .dynamic-catalog-body>b{
    grid-area:price;
    margin-top:7px;
}
.permanent-list .permanent-quantity-control{
    grid-area:qty;
    align-self:center;
    margin:0;
    min-width:128px;
}
.permanent-list .permanent-in-summary{
    grid-area:state;
    width:max-content;
    max-width:100%;
}
.permanent-list .permanent-order-warning{
    grid-area:warning;
}
.permanent-order-summary{
    position:sticky;
    top:96px;
}
.permanent-order-summary .summary-items{
    max-height:430px;
    overflow:auto;
    padding-right:2px;
}

@media(max-width:980px){
    .permanent-layout{
        grid-template-columns:1fr;
    }
    .permanent-order-summary{
        position:static;
    }
}
@media(max-width:680px){
    .permanent-list .permanent-order-card{
        grid-template-columns:92px minmax(0,1fr);
        min-height:118px;
    }
    .permanent-list .permanent-order-card>img,
    .permanent-list .permanent-order-card>.catalog-image-placeholder{
        width:92px;
        min-height:118px;
    }
    .permanent-list .permanent-order-card .dynamic-catalog-body{
        grid-template-columns:1fr;
        grid-template-areas:
            "title"
            "desc"
            "price"
            "qty"
            "state"
            "warning";
        gap:7px;
        padding:13px;
    }
    .permanent-list .permanent-quantity-control{
        justify-self:start;
        min-width:126px;
    }
    .permanent-list .permanent-in-summary{
        margin-top:0;
    }
}


/* V10.65 – připravené Knedlíky ve stejném rozložení jako Stálá nabídka */
.dumplings-page-section{
    background:#fff;
}
.dumplings-section-heading{
    margin-bottom:16px;
}
.dumplings-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 330px;
    gap:22px;
    align-items:start;
}
.dumplings-list{
    display:grid;
    gap:12px;
    min-width:0;
}
.dumplings-list .catalog-loading{
    border:1px dashed #cbd5e1;
    border-radius:16px;
    padding:28px 18px;
    text-align:center;
    color:#64748b;
}
.dumplings-list-card{
    display:grid!important;
    grid-template-columns:150px minmax(0,1fr);
    min-height:128px;
    overflow:hidden;
    padding:0!important;
    border:1px solid var(--line);
    border-radius:18px;
    background:#fff;
    box-shadow:0 8px 28px rgba(15,23,42,.04);
}
.dumplings-list-card>img,
.dumplings-list-card>.catalog-image-placeholder{
    width:150px;
    height:100%;
    min-height:128px;
    object-fit:cover;
    border-radius:0;
}
.dumplings-list-card .dynamic-catalog-body{
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    padding:16px 18px;
    min-width:0;
}
.dumplings-title-line{
    display:flex;
    align-items:center;
    gap:10px;
}
.dumplings-title-line strong{
    margin:0;
    font-size:17px;
}
.dumplings-number-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:26px;
    height:26px;
    padding:0 7px;
    border-radius:999px;
    background:#f1f5f9;
    color:#475569;
    font-size:12px;
    font-weight:900;
}
.dumplings-list-card .dynamic-catalog-body>span{
    margin-top:5px;
}
.dumplings-list-card .dynamic-catalog-body>b{
    margin-top:8px;
}
.dumplings-order-summary{
    position:sticky;
    top:96px;
}
.dumplings-summary-info{
    margin-top:14px;
    padding:12px 14px;
    border-radius:13px;
    background:#f8fafc;
    border:1px solid #e2e8f0;
}
.dumplings-summary-info strong,
.dumplings-summary-info span{
    display:block;
}
.dumplings-summary-info strong{
    margin-bottom:4px;
    font-size:13px;
}
.dumplings-summary-info span{
    color:#64748b;
    font-size:12px;
    line-height:1.45;
}

@media(max-width:980px){
    .dumplings-layout{
        grid-template-columns:1fr;
    }
    .dumplings-order-summary{
        position:static;
    }
}
@media(max-width:680px){
    .dumplings-list-card{
        grid-template-columns:92px minmax(0,1fr);
        min-height:118px;
    }
    .dumplings-list-card>img,
    .dumplings-list-card>.catalog-image-placeholder{
        width:92px;
        min-height:118px;
    }
    .dumplings-list-card .dynamic-catalog-body{
        padding:13px;
    }
}


/* V10.67 – závěrečný souhrn před závazným odesláním objednávky */
.order-review-overlay[hidden]{display:none!important;}
.order-review-overlay{
    position:fixed;
    inset:0;
    z-index:100020;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
    background:rgba(15,23,42,.66);
    backdrop-filter:blur(6px);
}
.order-review-modal{
    position:relative;
    width:min(720px,100%);
    max-height:min(860px,92vh);
    overflow:auto;
    background:#fff;
    border-radius:26px;
    padding:28px;
    box-shadow:0 28px 90px rgba(0,0,0,.30);
    animation:orderReviewIn .18s ease-out;
}
@keyframes orderReviewIn{
    from{opacity:0;transform:translateY(12px) scale(.985)}
    to{opacity:1;transform:translateY(0) scale(1)}
}
.order-review-close{
    position:absolute;
    top:14px;
    right:14px;
    width:38px;
    height:38px;
    border:0;
    border-radius:50%;
    background:#f1f5f9;
    color:#334155;
    font-size:24px;
    cursor:pointer;
}
.order-review-heading{padding-right:42px;}
.order-review-heading h2{margin:4px 0 6px;font-size:28px;}
.order-review-heading p{margin:0;color:#64748b;}
.order-review-permanent-notice{
    display:flex;
    flex-direction:column;
    gap:2px;
    margin:18px 0 0;
    padding:13px 15px;
    border:1px solid #f2c66d;
    border-radius:14px;
    background:#fff8e8;
    color:#7a4a00;
}
.order-review-permanent-notice[hidden]{display:none!important;}
.order-review-permanent-notice strong{font-size:14px;}
.order-review-permanent-notice span{font-size:12px;}
.order-review-days{display:grid;gap:14px;margin-top:18px;}
.order-review-day-card{
    overflow:hidden;
    border:1px solid #e2e8f0;
    border-radius:16px;
    background:#fff;
}
.order-review-day-title{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:12px 14px;
    background:#f8fafc;
    border-bottom:1px solid #e2e8f0;
}
.order-review-day-title strong{text-transform:capitalize;}
.order-review-day-title span{font-size:12px;font-weight:800;color:#64748b;}
.order-review-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) 72px 92px;
    gap:12px;
    align-items:center;
    padding:12px 14px;
    border-bottom:1px solid #eef2f7;
}
.order-review-row:last-child{border-bottom:0;}
.order-review-row.is-permanent{background:#fffdf7;}
.order-review-meal{min-width:0;}
.order-review-meal strong,.order-review-meal span{display:block;}
.order-review-meal strong{font-size:14px;}
.order-review-meal span{margin-top:2px;font-size:11px;color:#94a3b8;}
.order-review-qty{text-align:right;font-weight:800;}
.order-review-price{text-align:right;font-weight:900;}
.order-review-total{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-top:18px;
    padding:16px 4px 4px;
    border-top:2px solid #e2e8f0;
}
.order-review-total span{font-weight:800;color:#475569;}
.order-review-total strong{font-size:24px;}
.order-review-actions{
    display:grid;
    grid-template-columns:1fr 1.35fr;
    gap:10px;
    margin-top:18px;
}
.order-review-actions button{min-height:50px;border-radius:13px;font-weight:900;}
.order-review-legal{display:block;margin-top:10px;text-align:center;color:#94a3b8;}
@media(max-width:620px){
    .order-review-modal{padding:22px 16px 16px;border-radius:20px;}
    .order-review-heading h2{font-size:23px;}
    .order-review-row{grid-template-columns:minmax(0,1fr) auto;}
    .order-review-price{grid-column:2;}
    .order-review-qty{grid-column:2;grid-row:1;text-align:right;}
    .order-review-price{margin-top:22px;}
    .order-review-actions{grid-template-columns:1fr;}
}


/* V10.69 – nouzová úprava objednávky zákazníkem */
.account-order-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px solid #e2e8f0}
.account-order-actions small{color:#64748b;font-size:11px}
.emergency-edit-button{border:1px solid #f59e0b;background:#fff7ed;color:#9a3412;border-radius:10px;padding:8px 11px;font-weight:800;cursor:pointer}
.emergency-edit-button:hover:not(:disabled){background:#ffedd5}
.emergency-edit-button:disabled{border-color:#e2e8f0;background:#f8fafc;color:#94a3b8;cursor:not-allowed}
.emergency-edit-overlay{position:fixed;inset:0;z-index:10020;background:rgba(15,23,42,.58);display:grid;place-items:center;padding:18px}
.emergency-edit-overlay[hidden]{display:none!important}
.emergency-edit-modal{position:relative;width:min(680px,100%);max-height:min(88vh,820px);overflow:auto;background:#fff;border-radius:22px;padding:24px;box-shadow:0 28px 80px rgba(15,23,42,.3)}
.emergency-edit-warning{display:flex;flex-direction:column;gap:3px;margin:14px 0;padding:12px 14px;border:1px solid #fdba74;background:#fff7ed;border-radius:14px;color:#9a3412}
.emergency-edit-warning span{font-size:12px}
.emergency-edit-items{display:grid;gap:8px;margin:14px 0 18px}
.emergency-edit-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 12px;border:1px solid #e2e8f0;border-radius:13px;background:#f8fafc}
.emergency-edit-label{display:flex;align-items:center;gap:10px;min-width:0}.emergency-edit-label strong{display:inline-grid;place-items:center;min-width:36px;height:30px;border-radius:9px;background:#fff;border:1px solid #e2e8f0}.emergency-edit-label span{font-size:13px;color:#475569}
.emergency-edit-qty{display:flex;align-items:center;gap:6px}.emergency-edit-qty button{width:34px;height:34px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;font-size:20px;cursor:pointer}.emergency-edit-qty input{width:58px;height:34px;text-align:center;border:1px solid #cbd5e1;border-radius:9px;font-weight:800}
.emergency-edit-actions{display:flex;justify-content:flex-end;gap:10px;position:sticky;bottom:-24px;background:#fff;padding:14px 0 0}
@media(max-width:620px){.emergency-edit-modal{padding:19px 14px}.emergency-edit-row{align-items:flex-start;flex-direction:column}.emergency-edit-qty{align-self:flex-end}.emergency-edit-actions{flex-direction:column-reverse}.emergency-edit-actions button{width:100%}}

/* V10.74 – Můj účet / úprava osobních údajů */
.account-edit-form{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.account-edit-note{display:grid;gap:4px;margin-bottom:2px;padding:11px 12px;border:1px solid #fde68a;border-radius:12px;background:#fffbeb;color:#92400e}
.account-edit-note strong{font-size:12px}.account-edit-note span{font-size:11px;line-height:1.45}
.account-edit-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
#accountEditButton{margin-bottom:8px}
.account-details #accountAddress{max-width:65%;text-align:right;overflow-wrap:anywhere}
@media(max-width:560px){.account-edit-actions{grid-template-columns:1fr}.account-details #accountAddress{max-width:58%}}


/* V10.75 – souhlas s podmínkami při registraci */
.register-terms-check{
    display:flex!important;
    align-items:flex-start;
    gap:9px!important;
    padding:11px 12px;
    border:1px solid #dbe3ee;
    border-radius:12px;
    background:#f8fafc;
    cursor:pointer;
}
.register-terms-check input{
    width:18px!important;
    height:18px!important;
    min-width:18px;
    margin:1px 0 0!important;
    padding:0!important;
    box-shadow:none!important;
}
.register-terms-check>span{
    display:block;
    color:#334155;
    font-size:12px;
    font-weight:750;
    line-height:1.45;
}
.register-terms-link{
    display:inline;
    border:0;
    background:none;
    padding:0;
    color:#2563eb;
    font:inherit;
    font-weight:900;
    text-decoration:underline;
    cursor:pointer;
}
.terms-modal[hidden]{display:none!important}
.terms-modal{
    position:fixed;
    inset:0;
    z-index:10050;
    display:grid;
    place-items:center;
    padding:20px;
}
.terms-dialog{
    width:min(720px,100%);
}
.terms-modal-text{
    max-height:min(55vh,520px);
    overflow:auto;
    margin:18px 0;
    padding:16px 18px;
    border:1px solid var(--line,#e5e7eb);
    border-radius:14px;
    background:#f8fafc;
    color:#334155;
    white-space:pre-wrap;
    line-height:1.6;
    font-size:13px;
}
.terms-modal-text.is-empty{
    color:#b91c1c;
    background:#fef2f2;
    border-color:#fecaca;
}


/* V10.78 – Moje objednávky jako seznam + stránkování po 10 */
.orders-page-card{
    width:min(1180px,100%);
    margin:0 auto;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    padding:6px 0 28px;
}
.orders-page-card .portal-page-heading{
    margin-bottom:20px;
    padding:0 2px 16px;
    border-bottom:1px solid #dbe3ec;
}
.portal-orders-list{
    display:flex;
    flex-direction:column;
    gap:8px;
}
.portal-orders-list .account-order-item{
    display:grid;
    grid-template-columns:190px minmax(0,1fr) 150px;
    grid-template-areas:
        "top meals total"
        "actions actions actions";
    gap:10px 22px;
    align-items:center;
    padding:15px 18px;
    border:1px solid #dce4ec;
    border-radius:14px;
    background:#fff;
    box-shadow:0 2px 8px rgba(15,23,42,.035);
}
.portal-orders-list .account-order-top{
    grid-area:top;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:5px;
}
.portal-orders-list .account-order-top strong{font-size:14px;color:#0f172a}
.portal-orders-list .account-order-state{font-size:11px;color:#64748b}
.portal-orders-list .account-order-meals{
    grid-area:meals;
    margin:0;
    color:#334155;
    font-size:13px;
    line-height:1.5;
}
.account-order-total{
    grid-area:total;
    justify-self:end;
    min-width:135px;
    text-align:right;
    white-space:nowrap;
    font-size:13px;
    color:#64748b;
}
.account-order-total span{font-weight:800;color:#64748b}
.account-order-total strong{font-size:20px;color:#111827}
.portal-orders-list .account-order-actions{
    grid-area:actions;
    margin:0;
    padding-top:9px;
    border-top:1px solid #eef2f6;
}
.orders-pagination{
    display:grid;
    grid-template-columns:150px 1fr 150px;
    align-items:center;
    gap:14px;
    margin-top:18px;
    padding-top:18px;
    border-top:1px solid #dbe3ec;
}
.orders-pagination[hidden]{display:none!important}
.orders-pagination strong{text-align:center;color:#475569;font-size:13px}
.orders-page-button{width:100%}
.orders-page-button:disabled{opacity:.42;cursor:not-allowed}
@media(max-width:760px){
    .orders-page-card{padding-left:0;padding-right:0}
    .portal-orders-list .account-order-item{
        grid-template-columns:1fr auto;
        grid-template-areas:"top total" "meals meals" "actions actions";
        gap:10px 14px;
        padding:14px;
    }
    .account-order-total{min-width:0}
    .orders-pagination{grid-template-columns:1fr 1fr;gap:8px}
    .orders-pagination strong{grid-column:1/-1;grid-row:1}
}
@media(max-width:460px){
    .portal-orders-list .account-order-item{grid-template-columns:1fr;grid-template-areas:"top" "meals" "total" "actions"}
    .account-order-total{justify-self:start;text-align:left}
}

/* V10.87 – výrazný odkaz pro obnovu hesla přímo v přihlášení */
.auth-login-tools{display:flex;justify-content:flex-end;margin-top:-4px}
.auth-login-tools button{border:0;background:none;padding:2px 0;color:var(--blue);font-size:12px;font-weight:850;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.auth-login-tools button:hover{opacity:.78}

/* V10.92 */
.account-order-cancel{margin-top:6px;color:#b42318;border-color:#fecaca}.account-order-cancel:disabled{color:#94a3b8;border-color:#e2e8f0}


/* =========================================================
   V10.97 – mobil + čitelné dny + pouze 4 týdny
========================================================= */

/* Aktivní den, který už je pouze ke čtení, nesmí mít bílý text
   na světlém pozadí. */
.day-tab.active.readonly{
    background:#eaf2ff;
    border-color:#60a5fa;
    color:#0f172a;
    opacity:1;
}
.day-tab.active.readonly strong{
    color:#0f172a;
}
.day-tab.active.readonly span{
    color:#475569;
}

/* Mobilní rozložení objednávky */
@media(max-width:720px){
    .section-shell{
        width:min(100% - 16px,1240px);
    }

    .hero-inner{
        padding:26px 0;
    }

    .hero h1{
        font-size:34px;
        line-height:1.05;
    }

    .hero p{
        font-size:14px;
    }

    /* 4 týdny přehledně jako mřížka 2 × 2 */
    .week-switcher,
    .week-switcher-above-days{
        display:grid !important;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:8px;
        overflow:visible;
        margin-bottom:18px !important;
    }

    .week-switcher-above-days .week-button,
    .week-switcher .week-button{
        width:100%;
        min-width:0;
        margin:0 !important;
        padding:10px 9px;
        border-radius:11px;
    }

    .week-switcher-above-days .week-button-title,
    .week-switcher .week-button-title{
        margin:0 !important;
        font-size:11px;
        line-height:1.2;
    }

    .week-switcher-above-days .week-button small,
    .week-switcher .week-button small{
        margin-top:4px;
        font-size:9px;
        white-space:nowrap;
    }

    .week-days-spacer{
        height:16px !important;
        min-height:16px !important;
        flex-basis:16px !important;
    }

    /* Po–Pá se na telefonu vejde najednou bez vodorovného posouvání. */
    .day-tabs{
        display:grid;
        grid-template-columns:repeat(5,minmax(0,1fr));
        gap:5px;
        overflow:visible;
        margin-bottom:14px;
    }

    .day-tab{
        min-width:0;
        padding:8px 3px;
        text-align:center;
        border-radius:10px;
    }

    .day-tab strong{
        font-size:9px;
        line-height:1.15;
        white-space:normal;
    }

    .day-tab span{
        display:block;
        margin-top:3px;
        font-size:8px;
        line-height:1.1;
    }

    .day-card{
        border-radius:15px;
        overflow:hidden;
    }

    .day-card-head{
        padding:14px 12px;
    }

    .meal-row{
        grid-template-columns:44px minmax(0,1fr) auto;
        gap:8px;
        padding:12px 10px;
        align-items:center;
    }

    .meal-code{
        width:40px;
        min-width:40px;
        height:40px;
        display:grid;
        place-items:center;
        font-size:15px;
        font-weight:900;
        border-radius:10px;
    }

    .meal-main strong{
        font-size:13px;
        line-height:1.3;
    }

    .meal-main small{
        font-size:9px;
        line-height:1.35;
    }

    .meal-price{
        font-size:12px;
        white-space:nowrap;
    }

    .quantity-control{
        grid-column:1/-1;
        width:100%;
        grid-template-columns:44px minmax(0,1fr) 44px;
        gap:8px;
        padding-top:10px;
        margin-top:2px;
    }

    .quantity-control button{
        min-height:40px;
        font-size:20px;
    }

    .quantity-control strong{
        min-height:40px;
        display:grid;
        place-items:center;
    }

    .order-summary{
        border-radius:15px;
    }

    .mobile-cart{
        left:8px;
        right:8px;
        bottom:8px;
    }
}

@media(max-width:420px){
    .hero h1{
        font-size:29px;
    }

    .day-tab strong{
        font-size:8px;
    }

    .day-tab span{
        font-size:7px;
    }

    .meal-row{
        grid-template-columns:40px minmax(0,1fr) auto;
        padding-left:8px;
        padding-right:8px;
    }

    .meal-code{
        width:36px;
        min-width:36px;
        height:36px;
        font-size:14px;
    }
}


/* =========================================================
   V10.99 – Zákaznický účet / Moje objednávky
   Okno má pevnou maximální šířku a na velkém monitoru se už
   neroztahuje přes celou stránku.
========================================================= */
[data-view-section~="orders"] .portal-page-card,
[data-view-section="orders"] .portal-page-card,
#myOrdersView .portal-page-card,
#ordersView .portal-page-card{
    width:min(100%, 920px);
    max-width:920px;
    margin-left:auto;
    margin-right:auto;
    box-sizing:border-box;
}

@media(max-width:720px){
    [data-view-section~="orders"] .portal-page-card,
    [data-view-section="orders"] .portal-page-card,
    #myOrdersView .portal-page-card,
    #ordersView .portal-page-card{
        width:100%;
        max-width:100%;
    }
}

.my-orders-section .portal-page-card,
.my-orders-section .account-card,
.my-orders-section > .section-shell{
    max-width:920px;
    margin-left:auto;
    margin-right:auto;
    box-sizing:border-box;
}
@media(max-width:720px){
    .my-orders-section .portal-page-card,
    .my-orders-section .account-card,
    .my-orders-section > .section-shell{max-width:100%;}
}


/* =========================================================
   V11.00 – Moje objednávky bez vnitřního scrollování
========================================================= */

/*
 * Seznam objednávek nesmí mít vlastní scrollovací oblast.
 * Karta roste podle obsahu a scrolluje se pouze celá stránka.
 */
#mojeObjednavky .account-orders-list,
#mojeObjednavky .portal-orders-list,
#accountOrdersList{
    max-height:none !important;
    height:auto !important;
    overflow:visible !important;
    overflow-y:visible !important;
    overflow-x:visible !important;
}

/* Ani obal zákaznického účtu nesmí výšku seznamu ořezávat. */
#mojeObjednavky,
#mojeObjednavky .section-shell,
#mojeObjednavky .portal-page-card,
#mojeObjednavky .orders-page-card{
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
}

/*
 * Na desktopu využijeme dostupný prostor lépe.
 * Necháme kartu širší než v V10.99, ale stále příjemně čitelnou.
 */
#mojeObjednavky .section-shell{
    width:min(100% - 32px, 1240px);
}

#mojeObjednavky .orders-page-card{
    width:100%;
    max-width:1180px;
    margin-left:auto;
    margin-right:auto;
}

/* Objednávky jsou kompaktnější, aby se jich na obrazovku vešlo více. */
#mojeObjednavky .account-order-item{
    padding:12px 18px;
}

@media(max-width:720px){
    #mojeObjednavky .section-shell{
        width:min(100% - 16px,1240px);
    }

    #mojeObjednavky .orders-page-card{
        max-width:100%;
    }
}

/* V11.19 – fotografie k zákaznickým zprávám / reklamacím */
.customer-chat-actions{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.customer-chat-photo-button{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.customer-chat-file-help{display:block;color:var(--muted,#6b7280);margin-top:6px}
.customer-chat-attachment{display:grid;grid-template-columns:64px 1fr auto;gap:12px;align-items:center;padding:10px;border:1px solid #e5e7eb;border-radius:14px;background:#fff}
.customer-chat-attachment img{width:64px;height:64px;object-fit:cover;border-radius:10px}
.customer-chat-attachment div{display:flex;flex-direction:column;gap:3px;min-width:0}.customer-chat-attachment strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.customer-chat-image-link{display:block;margin-top:8px}.customer-chat-image{display:block;max-width:min(100%,360px);max-height:320px;object-fit:contain;border-radius:12px}
@media(max-width:600px){.customer-chat-actions>*{flex:1}.customer-chat-attachment{grid-template-columns:54px 1fr}.customer-chat-attachment img{width:54px;height:54px}.customer-chat-attachment>button{grid-column:1/-1}}

/* V11.68 – informace zákazníkovi po provozní úpravě objednávky */
.account-order-operational-notice{
    display:inline-flex;
    align-items:center;
    width:max-content;
    max-width:100%;
    margin-top:8px;
    padding:6px 10px;
    border-radius:999px;
    background:rgba(245,158,11,.12);
    border:1px solid rgba(245,158,11,.32);
    font-size:.82rem;
    font-weight:700;
}

/* V11.91 – objednatel / odběratel */
.recipient-same-check{display:flex!important;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--card) 94%,var(--bg))}
.recipient-same-check input{width:18px;height:18px;flex:0 0 auto;margin-top:1px}.recipient-same-check span{font-weight:700}
.recipient-fields{padding:14px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--bg) 65%,var(--card))}
.recipient-title{display:flex;flex-direction:column;gap:3px;margin-bottom:12px}.recipient-title small{color:var(--muted)}

/* V11.92 – širší registrační okno */
#authModal .auth-dialog,
#authModal .auth-modal-card,
#authModal .modal-card{
    width:min(920px,calc(100vw - 32px))!important;
    max-width:920px!important;
}
@media(max-width:700px){
    #authModal .auth-dialog,
    #authModal .auth-modal-card,
    #authModal .modal-card{
        width:calc(100vw - 20px)!important;
        max-width:none!important;
    }
}

/* V11.93 – registrace se rozšíří až při jiném odběrateli */
#authModal .auth-dialog,
#authModal .auth-modal-card,
#authModal .modal-card{
    width:min(620px,calc(100vw - 32px))!important;
    max-width:620px!important;
    transition:width .22s ease,max-width .22s ease;
}
#authModal.recipient-different .auth-dialog,
#authModal.recipient-different .auth-modal-card,
#authModal.recipient-different .modal-card{
    width:min(1080px,calc(100vw - 32px))!important;
    max-width:1080px!important;
}
#authModal.recipient-different .auth-form{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    column-gap:28px;
    align-items:start;
}
#authModal.recipient-different .auth-form > *{grid-column:1}
#authModal.recipient-different #registerRecipientFields{
    grid-column:2;
    grid-row:1 / span 20;
}
#authModal.recipient-different .recipient-same-check{
    grid-column:1;
}
@media(max-width:760px){
    #authModal .auth-dialog,
    #authModal .auth-modal-card,
    #authModal .modal-card,
    #authModal.recipient-different .auth-dialog,
    #authModal.recipient-different .auth-modal-card,
    #authModal.recipient-different .modal-card{
        width:calc(100vw - 20px)!important;
        max-width:none!important;
    }
    #authModal.recipient-different .auth-form{display:block}
}


/* V12.38 – bohaté Informace */
.public-info-rich{line-height:1.6}.public-info-rich img{display:inline-block;height:auto;max-width:100%;margin:12px 8px;vertical-align:middle;border-radius:12px}.public-info-rich .info-img-small{width:min(240px,100%)}.public-info-rich .info-img-medium{width:min(420px,100%)}.public-info-rich .info-img-large{width:min(620px,100%)}.public-info-rich .info-img-full{display:block;width:100%;margin-left:0;margin-right:0}.public-info-rich h2,.public-info-rich h3{margin:1em 0 .45em}.public-info-rich p{margin:.55em 0}.public-info-rich ul,.public-info-rich ol{padding-left:1.5em}@media(max-width:700px){.public-info-rich img{width:100%!important;display:block;margin:12px 0}}

/* V12.51 – označení nahraných fotografií ve Stálé nabídce a Knedlících */
.catalog-photo-wrap{width:100%;position:relative;background:#f3f4f6;line-height:0}
.catalog-photo-wrap>img{width:100%;height:210px;object-fit:cover;display:block}
.catalog-photo-note{position:absolute;right:8px;bottom:7px;padding:4px 7px;border-radius:7px;background:rgba(17,24,39,.68);color:#fff;font-size:11px;font-weight:600;line-height:1.2;letter-spacing:.01em;pointer-events:none}
@media(max-width:760px){.catalog-photo-wrap>img{height:180px}}

/* V12.52 – den, kdy se nevaří */
.day-closed-info{margin-top:10px;padding:14px 16px;border-radius:12px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;display:flex;flex-direction:column;gap:3px}
.day-closed-info strong{font-size:15px}.day-closed-info span{font-weight:600}.day-closed-info small{color:#7c2d12}

/* V12.72 – kompaktnější úvod objednávkové stránky */
@media(min-width:981px){
    .hero{
        height:340px !important;
        min-height:340px !important;
        max-height:340px !important;
    }
    .hero .hero-inner,
    .hero-inner.hero-mode-text-only,
    .hero-inner.hero-mode-image-only{
        height:100% !important;
        min-height:0 !important;
        padding-top:28px !important;
        padding-bottom:28px !important;
    }
    .hero-banner-media{max-height:285px !important;}
    .hero-inner.hero-image-center:not(.hero-mode-image-only):not(.hero-mode-text-only) .hero-banner-media{max-height:190px !important;}
}
@media(max-width:980px){
    .hero{min-height:320px !important;}
    .hero .hero-inner,
    .hero-inner.hero-mode-text-only,
    .hero-inner.hero-mode-image-only{
        min-height:280px !important;
        padding-top:30px !important;
        padding-bottom:30px !important;
    }
}
@media(max-width:640px){
    .hero{min-height:285px !important;}
    .hero .hero-inner,
    .hero-inner.hero-mode-text-only,
    .hero-inner.hero-mode-image-only{
        min-height:245px !important;
        padding-top:24px !important;
        padding-bottom:24px !important;
    }
}

/* V12.73 – skutečné zmenšení prázdných mezer kolem úvodního banneru */
@media(min-width:981px){
    .hero{
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
    }
    .hero .hero-inner,
    .hero-inner.hero-mode-text-only,
    .hero-inner.hero-mode-image-only{
        height:auto !important;
        min-height:0 !important;
        padding-top:18px !important;
        padding-bottom:14px !important;
    }
    .menu-section{
        padding-top:22px !important;
    }
}
@media(max-width:980px){
    .hero{
        height:auto !important;
        min-height:0 !important;
    }
    .hero .hero-inner,
    .hero-inner.hero-mode-text-only,
    .hero-inner.hero-mode-image-only{
        min-height:0 !important;
        padding-top:20px !important;
        padding-bottom:16px !important;
    }
    .menu-section{padding-top:28px !important;}
}

/* V12.74 – výrazně kompaktnější mezery úvodu */
@media(min-width:981px){
    .hero .hero-inner,
    .hero-inner.hero-mode-text-only,
    .hero-inner.hero-mode-image-only{
        padding-top:4px !important;
        padding-bottom:4px !important;
    }
    .hero h1{margin-top:6px !important;margin-bottom:10px !important;}
    .menu-section{padding-top:10px !important;}
}
@media(max-width:980px){
    .hero .hero-inner,
    .hero-inner.hero-mode-text-only,
    .hero-inner.hero-mode-image-only{
        padding-top:10px !important;
        padding-bottom:8px !important;
    }
    .menu-section{padding-top:16px !important;}
}


/* V12.75 – odstranění skutečné mezery nad úvodním textem
   Hero text má nyní vlastní .hero-copy, takže se správně umístí do gridu. */
@media(min-width:981px){
    .hero{margin:0 !important;padding:0 !important;}
    .hero .hero-inner{
        min-height:0 !important;
        height:auto !important;
        padding-top:0 !important;
        padding-bottom:2px !important;
        align-items:start !important;
    }
    .hero .hero-copy{
        margin:0 !important;
        padding:6px 0 0 !important;
        align-self:start !important;
    }
    .hero-inner.hero-mode-text-only{align-items:start !important;}
    .hero .eyebrow{display:block;margin:0 0 2px !important;}
    .hero h1{margin:2px 0 6px !important;}
    .hero p{margin:0 !important;}
    .menu-section{padding-top:6px !important;}
}
@media(max-width:980px){
    .hero .hero-inner{padding-top:6px !important;padding-bottom:4px !important;}
    .hero .hero-copy{margin:0 !important;padding:0 !important;align-self:start !important;}
}


/* V12.76 – vyvážené mezery kolem úvodního banneru/textu.
   Přepisuje staré V10.29 pravidlo s pevnou výškou 470 px. */
@media(min-width:981px){
    section.hero[data-view-section="menu"]{
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
        overflow:visible !important;
        padding:0 !important;
    }
    section.hero[data-view-section="menu"] > .hero-inner{
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
        overflow:visible !important;
        padding-top:18px !important;
        padding-bottom:18px !important;
        align-items:start !important;
    }
    section.hero[data-view-section="menu"] .hero-copy{
        margin:0 !important;
        padding:0 !important;
    }
    section.hero[data-view-section="menu"] + .menu-section{
        padding-top:20px !important;
    }
}
@media(max-width:980px){
    section.hero[data-view-section="menu"]{
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
    }
    section.hero[data-view-section="menu"] > .hero-inner{
        min-height:0 !important;
        padding-top:14px !important;
        padding-bottom:14px !important;
    }
    section.hero[data-view-section="menu"] + .menu-section{
        padding-top:18px !important;
    }
}

/* V12.77 – vyvážený odstup + stabilní výška hero, aby rotující banner nehýbal jídelníčkem */
@media(min-width:981px){
    section.hero[data-view-section="menu"]{
        height:300px !important;
        min-height:300px !important;
        max-height:300px !important;
        overflow:hidden !important;
        box-sizing:border-box !important;
    }
    section.hero[data-view-section="menu"] > .hero-inner{
        height:100% !important;
        min-height:100% !important;
        max-height:100% !important;
        padding-top:26px !important;
        padding-bottom:22px !important;
        box-sizing:border-box !important;
        overflow:hidden !important;
        align-items:center !important;
    }
    section.hero[data-view-section="menu"] .hero-copy{
        align-self:center !important;
    }
    section.hero[data-view-section="menu"] .hero-banner-media{
        max-height:248px !important;
        overflow:hidden !important;
    }
    section.hero[data-view-section="menu"] .hero-banner-media img{
        max-height:248px !important;
    }
    section.hero[data-view-section="menu"] + .menu-section{
        padding-top:18px !important;
    }
}
@media(max-width:980px){
    section.hero[data-view-section="menu"] > .hero-inner{
        padding-top:18px !important;
        padding-bottom:16px !important;
    }
}

/* V13.22 – mobil: stabilní výška rotujícího banneru, aby jídelníček při delším textu neskákal */
@media(max-width:980px){
    section.hero[data-view-section="menu"]{
        min-height:390px !important;
        box-sizing:border-box !important;
    }
    section.hero[data-view-section="menu"] > .hero-inner{
        min-height:390px !important;
        box-sizing:border-box !important;
        align-content:center !important;
    }
    section.hero[data-view-section="menu"] .hero-copy{
        align-self:center !important;
    }
}
@media(max-width:520px){
    section.hero[data-view-section="menu"],
    section.hero[data-view-section="menu"] > .hero-inner{
        min-height:410px !important;
    }
}

/* V13.24 – „Nevaří se“ vycentrované v kartě dne */
.day-closed-info{
  width:min(100%, 420px);
  margin:18px auto;
  align-items:center;
  justify-content:center;
  text-align:center;
}

/* V13.25 – „Nevaří se“ skutečně uprostřed karty dne */
.day-card-head:has(.day-closed-info){
  display:grid;
  grid-template-columns:1fr auto;
  align-items:start;
}
.day-card-head:has(.day-closed-info) .day-closed-info{
  grid-column:1 / -1;
  width:min(420px, calc(100% - 24px));
  margin:18px auto 4px !important;
  display:flex;
  flex-direction:column;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
}
.day-card-head:has(.day-closed-info) .day-closed-info > *{
  width:100%;
  margin-left:auto;
  margin-right:auto;
  text-align:center !important;
}
