/* Vlastní doplňky k Bootstrapu 5.3 (vendor/bootstrap/bootstrap.min.css).
   Barvu značky změníte jedním řádkem níže; vše ostatní je běžný Bootstrap (třídy v šablonách). */
:root {
    --bs-primary: #1f5fbf;
    --bs-primary-rgb: 31, 95, 191;
    --bs-link-color: #1f5fbf;
    --bs-link-color-rgb: 31, 95, 191;
    --bs-link-hover-color: #164a96;
    --bs-link-hover-color-rgb: 22, 74, 150;
}
[data-bs-theme="dark"] {
    --bs-primary: #6ea0ee;
    --bs-primary-rgb: 110, 160, 238;
    --bs-link-color: #8db5f4;
    --bs-link-color-rgb: 141, 181, 244;
    --bs-link-hover-color: #b0cbf8;
    --bs-link-hover-rgb: 176, 203, 248;
}
.btn-primary { --bs-btn-bg: var(--bs-primary); --bs-btn-border-color: var(--bs-primary); --bs-btn-hover-bg: var(--bs-link-hover-color); --bs-btn-hover-border-color: var(--bs-link-hover-color);
    --bs-btn-active-bg: var(--bs-link-hover-color); --bs-btn-active-border-color: var(--bs-link-hover-color); --bs-btn-disabled-bg: var(--bs-primary); --bs-btn-disabled-border-color: var(--bs-primary); }
[data-bs-theme="dark"] .btn-primary { --bs-btn-color: #0b1220; --bs-btn-hover-color: #0b1220; --bs-btn-active-color: #0b1220; }
.btn-outline-primary { --bs-btn-color: var(--bs-primary); --bs-btn-border-color: var(--bs-primary); --bs-btn-hover-bg: var(--bs-primary); --bs-btn-hover-border-color: var(--bs-primary); --bs-btn-active-bg: var(--bs-primary); --bs-btn-active-border-color: var(--bs-primary); }
.text-bg-primary { background-color: var(--bs-primary) !important; }

/* Obrázky v kartách mají jednotný poměr stran */
.card-img-fixed { aspect-ratio: 16 / 10; object-fit: cover; width: 100%; }
.thumb-sq { aspect-ratio: 1; object-fit: cover; width: 100%; cursor: pointer; }
.cart-thumb { width: 56px; height: 56px; object-fit: cover; }

/* Hero carousel */
.hero-slide { min-height: 28rem; background: #243049 center / cover no-repeat; display: flex; }
.hero-overlay { flex: 1; display: flex; align-items: center; padding: 3rem 0 4rem; color: #fff; background: linear-gradient(90deg, rgba(8, 14, 28, .72), rgba(8, 14, 28, .15)); }
.hero-overlay .container { max-width: 1140px; }
.hero-overlay h2, .hero-overlay p { max-width: 36rem; text-shadow: 0 1px 8px rgba(0, 0, 0, .35); }
@media (max-width: 575.98px) { .hero-slide { min-height: 22rem; } }

/* Obsah z editoru (články, stránky, popisy) */
.content { overflow-wrap: anywhere; }
.content img { max-width: 100%; height: auto; border-radius: .5rem; }
.content table { width: 100%; margin-bottom: 1rem; border-collapse: collapse; }
.content th, .content td { padding: .5rem; border: 1px solid var(--bs-border-color); }
.content blockquote { border-left: 4px solid var(--bs-border-color); padding-left: 1rem; color: var(--bs-secondary-color); }
.pre-wrap { white-space: pre-wrap; }

/* Menu: třetí úroveň v rozbalovací nabídce na mobilu nepřetéká */
.dropdown-menu { max-width: 100vw; }
@media (min-width: 992px) { .navbar .dropdown:hover > .dropdown-menu { display: block; margin-top: 0; } }

/* Jídelní lístek */
.dish-img { width: 96px; height: 96px; object-fit: cover; }
.dish-list > .dish:last-child { border-bottom: 0 !important; }
abbr[title] { text-decoration: none; border-bottom: 1px dotted currentColor; cursor: help; }

/* Rezervační kalendář */
.res-nav { display: flex; justify-content: space-between; margin-bottom: .5rem; }
.res-months { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 1rem; }
.res-month-title { text-align: center; font-weight: 600; text-transform: capitalize; margin-bottom: .35rem; }
.res-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.res-dow { text-align: center; font-size: .72rem; color: var(--bs-secondary-color); }
.res-day { border: 0; background: transparent; color: var(--bs-body-color); border-radius: .35rem; height: 2.4rem; font-size: .85rem; padding: 0; }
.res-day:hover:not(:disabled) { background: var(--bs-tertiary-bg); outline: 1px solid var(--bs-primary); }
.res-day.past { color: var(--bs-tertiary-color); }
.res-day.booked { background: repeating-linear-gradient(135deg, transparent, transparent 3px, var(--bs-border-color) 3px, var(--bs-border-color) 5px); color: var(--bs-secondary-color); text-decoration: line-through; }
.res-day.range { background: rgba(var(--bs-primary-rgb), .18); border-radius: 0; }
.res-day.sel { background: var(--bs-primary); color: #fff; }
[data-bs-theme="dark"] .res-day.sel { color: #0b1220; }
.res-legend { margin-top: .5rem; display: flex; align-items: center; gap: .4rem; }
.res-key { width: 1rem; height: 1rem; border-radius: .2rem; border: 1px solid var(--bs-border-color); display: inline-block; }
.res-key.booked { background: repeating-linear-gradient(135deg, transparent, transparent 2px, var(--bs-border-color) 2px, var(--bs-border-color) 4px); }
