/* Borbe Portal – Theme (nach computed styles der YOOtheme-Seite) */
@font-face { font-family: "Archivo Black"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/archivo-black-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Archivo Black"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/archivo-black-latin-ext-400-normal.woff2") format("woff2"); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Gelasio"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/gelasio-latin-700-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+FEFF, U+FFFD; }
@font-face { font-family: "Gelasio"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/gelasio-latin-ext-700-normal.woff2") format("woff2"); unicode-range: U+0100-02AF, U+1E00-1E9F, U+2C60-2C7F, U+A720-A7FF; }

:root {
  --tm-primary: #e3000f; --tm-accent: #ed0010; --tm-text: #4d4d4d; --tm-heading: #383838; --tm-bg: #f5f5f5; --tm-link: #9e9e9e;
  --tm-font: "Archivo Black", "Arial Black", Arial, sans-serif;
}

html { font-family: var(--tm-font); font-size: 16px; line-height: 1.6; color: var(--tm-text); background: var(--tm-bg); }
body { background: var(--tm-bg); }
h1, h2, h3, h4, h5, h6, .uk-h1, .uk-h2, .uk-h3, .uk-h4, .uk-h5, .uk-h6, .uk-heading-small, .uk-heading-medium, .uk-card-title, .uk-article-title {
  font-family: var(--tm-font); font-weight: 600; color: var(--tm-heading); text-transform: none; letter-spacing: normal;
}
h1, .uk-h1 { font-size: 2.4rem; line-height: 1.25; }
h2, .uk-h2 { font-size: 1.9rem; line-height: 1.3; }
h3, .uk-h3 { font-size: 1.6rem; line-height: 1.4; }
h4, .uk-h4 { font-size: 1.35rem; line-height: 1.4; }
h5, .uk-h5 { font-size: 1.1rem; }
@media (min-width: 960px) {
  h1, .uk-h1 { font-size: 2.875rem; }
  h2, .uk-h2 { font-size: 2.375rem; }
  h3, .uk-h3 { font-size: 1.875rem; }
  h4, .uk-h4 { font-size: 1.5rem; }
}
.uk-heading-small { font-size: 2.2rem; line-height: 1.1; }
@media (min-width: 640px) { .uk-heading-small { font-size: 2.7rem; } }
@media (min-width: 960px) { .uk-heading-small { font-size: 54px; } }
a, .uk-link { color: var(--tm-link); }
a:hover, .uk-link:hover { color: var(--tm-heading); }
em, .uk-text-meta { color: #999; }
.uk-text-meta { font-size: 0.875rem; }
.uk-text-large { font-size: 1.25rem; line-height: 1.5; }
hr, .uk-hr { border-top-color: #e5e5e5; }

/* Seite & Container */
@media (min-width: 960px) { .tm-page { border: 15px solid var(--tm-bg); } }
.tm-page { position: relative; }
.uk-container-large { max-width: 1360px; }
.tm-grid-expand > * { flex-grow: 1; }
.uk-section-default { background: var(--tm-bg); }
.uk-section-muted { background: #fafafa; }
.uk-section-primary { background: var(--tm-accent); }
.uk-section-primary, .uk-section-primary a, .uk-section-primary a:hover, .uk-section-primary .uk-h5 { color: #fff !important; }
.uk-section-primary .uk-subnav > * > a { color: #fff; }
.uk-section-primary .uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before { border-left-color: rgba(255,255,255,.5); }
.uk-section-secondary { background: #383838; }
.uk-section-large { padding-top: 70px; padding-bottom: 70px; }
@media (min-width: 960px) { .uk-section-large { padding-top: 140px; padding-bottom: 140px; } }

/* Header */
.tm-header, .tm-header-mobile { position: relative; z-index: 980; }
.tm-header .uk-navbar-container, .tm-header-mobile .uk-navbar-container { background: var(--tm-bg); }
.tm-header .uk-navbar-container { border-bottom: 6px solid var(--tm-accent); }
.tm-header .uk-navbar-item, .tm-header .uk-navbar-nav > li > a { min-height: 100px; }
.tm-header-mobile .uk-navbar-container { border-bottom: 4px solid var(--tm-accent); }
.tm-header-mobile .uk-navbar-item, .tm-header-mobile .uk-navbar-toggle { min-height: 80px; }
.tm-header-mobile .uk-navbar-toggle { color: var(--tm-heading); }
.uk-logo img { display: block; }
.uk-navbar-nav { gap: 29px; }
.uk-navbar-nav > li > a {
  padding: 0; font-family: var(--tm-font); font-size: 17px; color: var(--tm-heading); text-transform: none;
  position: relative; z-index: 1;
}
.uk-navbar-nav > li > a::before {
  content: ""; display: block; position: absolute; z-index: -1; bottom: 30px; height: 1px; left: 0; right: 100%;
  background-color: transparent; transition: right .2s ease-in-out, background-color .2s ease-in-out;
}
.uk-navbar-nav > li:hover > a::before, .uk-navbar-nav > li > a[aria-expanded="true"]::before { right: 0; background-color: var(--tm-heading); }
.uk-navbar-nav > li.uk-active > a::before { right: 0; background-color: var(--tm-heading); }
.uk-navbar-nav > li:hover > a, .uk-navbar-nav > li.uk-active > a { color: var(--tm-heading); }
.uk-navbar-dropdown { background: #e02529; padding: 30px; color: #fff; box-shadow: 0 5px 12px rgba(0,0,0,.15); }
.uk-navbar-dropdown-nav > li > a { color: rgba(255,255,255,.9); padding: 5px 0; font-size: 16px; }
.uk-navbar-dropdown-nav > li > a:hover, .uk-navbar-dropdown-nav > li.uk-active > a { color: #fff; }
.navphone { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; background: var(--tm-accent) !important; color: #fff !important; font-size: 17px; line-height: 27px; text-decoration: none !important; }
.navphone:hover { background: var(--tm-primary) !important; }
.uk-navbar-sticky { box-shadow: 0 2px 12px rgba(0,0,0,.08); }
@media (max-width: 959px) {
  .jobs { background: var(--tm-accent); color: #fff !important; padding: 5px !important; }
  .jobs::before { display: inline-block; content: "► "; }
}

/* Offcanvas (hell wie im Original) */
.uk-offcanvas-bar { background: var(--tm-bg); color: var(--tm-text); width: 300px; padding: 30px; }
.uk-offcanvas-bar .uk-nav-default > li > a, .uk-offcanvas-bar .uk-nav-default .uk-nav-sub a { color: var(--tm-heading); }
.uk-offcanvas-bar .uk-nav-default > li > a { font-size: 18px; padding: 6px 0; }
.uk-offcanvas-bar .uk-nav-default .uk-nav-sub a { color: #666; font-size: 15px; }
.uk-offcanvas-bar .uk-nav-default > li.uk-active > a, .uk-offcanvas-bar .uk-nav-default a:hover { color: var(--tm-primary); }
.uk-offcanvas-bar .uk-offcanvas-close { color: var(--tm-heading); }
.uk-offcanvas-bar .uk-button-primary { color: #fff; }

/* Hero / Bild-Header */
.uk-text-danger { color: #fff !important; text-shadow: rgba(0,0,0,.7) 2px 2px 6px; }
.uk-heading-small.uk-text-danger { background: rgba(227,0,15,.7); }
.tm-hero .uk-heading-small { padding: 0 10px; }
#slideshow .el-title { background: rgba(227,0,15,.8); color: #fff; padding: 25px; text-shadow: rgba(0,0,0,.7) 2px 2px 6px; font-size: 1.4rem; }
@media (min-width: 960px) { #slideshow .el-title { font-size: 30px; } }
#slideshow .el-link { background: rgba(227,0,15,.8); color: #fff; padding: 15px; border: 3px solid #fff; display: inline-block; text-decoration: none; line-height: 1.2; }
#slideshow .el-link:hover { background: var(--tm-primary); }
.tm-video-hero video { pointer-events: none; }

/* Kacheln, Karten, Overlays */
.uk-tile-primary { background-color: var(--tm-primary); color: #fff !important; }
.uk-tile-primary h2, .uk-tile-primary h3, .uk-tile-primary .uk-h2 { color: #fff !important; }
.uk-tile-primary .uk-button-default { color: #fff; border-color: #fff; }
.uk-tile-primary .uk-button-default:hover { background: #fff; color: var(--tm-primary); }
.uk-card-secondary { background-color: #383838; color: #fff; }
.uk-card-secondary .uk-card-title, .uk-card-secondary h3 { color: #fff; }
.uk-card-secondary .el-content, .uk-card-secondary p { color: #fff; }
.uk-card-primary { background-color: var(--tm-primary); color: #383838; }
.uk-card-primary .uk-card-title { color: #fff; }
.uk-card-primary a { color: #fff; }
.uk-card-title { font-size: 1.6rem; }
@media (min-width: 960px) { .uk-card-title { font-size: 30px; } }
.uk-overlay-default { background: rgba(227,0,15,.55); }
.uk-overlay-default .el-title, .uk-overlay-default h3 { color: #fff; }
.uk-overlay-primary { background: rgba(56,56,56,.8); }
.uk-light .el-title, .uk-light h3 { color: #fff; }
#fuhrpark .uk-card-secondary { background: #fff; box-shadow: rgba(0,0,0,.4) 2px 2px 6px; color: #383838 !important; }
#fuhrpark .el-content, #fuhrpark .el-title { color: #383838 !important; }
#unterfahrzeuge .uk-panel h2 { color: #fff !important; border-color: #fff !important; }
#unterfahrzeuge .el-content { color: #fff !important; border-color: #fff !important; }
#bistrogalerie .el-title { display: none; }
.tm-box-decoration-primary, .tm-box-decoration-secondary { position: relative; z-index: 0; display: inline-block; }
.tm-box-decoration-primary::before, .tm-box-decoration-secondary::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: var(--tm-primary); }
.tm-box-decoration-primary::before { transform: translate(20px, 20px); }
.tm-box-decoration-secondary::before { transform: translate(20px, -20px); }
.tm-box-decoration-primary img, .tm-box-decoration-secondary img { display: block; }
@media (max-width: 639px) { .tm-box-decoration-primary::before, .tm-box-decoration-secondary::before { transform: translate(10px, 10px); } }

/* Buttons */
.uk-button { font-family: var(--tm-font); font-size: 16px; line-height: 48px; padding: 0 25px; text-transform: none; border-radius: 0; }
.uk-button-large { line-height: 58px; font-size: 18px; }
.uk-button-default { background: transparent; color: #383838; border: 1px solid #383838; }
.uk-button-default:hover { background: #383838; color: #fff; border-color: #383838; }
.uk-button-primary { background: var(--tm-primary); color: #fff; border: 1px solid transparent; }
.uk-button-primary:hover { background: #b8000c; color: #fff; }
.red .btn, .red .uk-button-default { border: 2px solid var(--tm-primary) !important; }
.red .uk-button-default:hover { background: var(--tm-primary); color: #fff; }
.uk-card-secondary > :not([class*="uk-card-media"]) .uk-button-primary, .uk-card-body .uk-button-primary { width: 100%; }
#fuhrpark .mehrerfahren { border: 3px solid var(--tm-accent); background-color: #fff !important; color: #000 !important; }
#fuhrpark .mehrerfahren:hover { background-color: var(--tm-accent) !important; color: #fff !important; }
.uk-subnav > * > :first-child { color: var(--tm-text); font-size: 16px; text-transform: none; }
.uk-subnav > .uk-active > a { color: var(--tm-primary); }

/* Text */
.sborbe { font-family: "Gelasio", Georgia, serif; font-weight: 700 !important; text-transform: uppercase !important; }
.pull-left { float: left; margin: 0 25px 15px 0; max-width: 45%; height: auto; }
@media (max-width: 639px) { .pull-left { float: none; display: block; margin: 0 auto 20px; } }
.uk-panel table.table { width: 100%; border-collapse: collapse; }
.uk-panel table.table td { padding: 10px 12px 10px 0; border-bottom: 1px solid #e5e5e5; vertical-align: top; }
.uk-panel table.table p { margin: 0; }
.uk-article-title { font-size: 2.4rem; }

/* Footer */
.tm-hours h2 { margin-bottom: 30px; }
#sndgfooter { padding-top: 55px; }
#sndgfooter .uk-subnav > * > a { color: #fff; }
.tm-footer-map .tm-map { z-index: 0; }
.tm-map { width: 100%; background: #e5e3df; }
.tm-map .leaflet-popup-content { font-family: var(--tm-font); font-size: 15px; line-height: 1.6; margin: 18px 20px; }
.tm-map .leaflet-popup-content p { margin: 0 0 10px; }
.tm-map .leaflet-popup-content a { color: var(--tm-link); }

/* Schnellkontakt-Leiste rechts */
.tm-toolbar { position: fixed; right: 1px; top: 350px; z-index: 990; display: flex; flex-direction: column; gap: 4px; }
.tm-toolbar-item { display: block; padding: 10px; line-height: 0; background: var(--tm-accent); color: #fff !important; box-shadow: 0 28px 50px rgba(0,0,0,.16); }
.tm-toolbar-item:hover { background: var(--tm-primary); }
.tm-toolbar-img { display: inline-block; width: 36px; height: 36px; background: center / contain no-repeat; }
.tm-toolbar-modal { background: #fff; border: 7px solid var(--tm-accent); color: #000 !important; }
.tm-toolbar-modal h3, .tm-toolbar-modal h4 { color: #000 !important; }
.tm-toolbar-modal a { color: #000; }
@media (max-height: 640px) { .tm-toolbar { top: auto; bottom: 90px; } }

/* Formulare (Stil wie Balbooa Forms) */
.tm-form .uk-form-label { font-size: 13px; color: #333; line-height: 36px; }
.tm-form .uk-input, .tm-form .uk-select, .tm-form .uk-textarea { background: #fff; border: 1px solid #f3f3f3; font-family: var(--tm-font); font-size: 13px; color: #555; }
.tm-form .uk-input, .tm-form .uk-select { height: 42px; }
.tm-form .uk-input:focus, .tm-form .uk-select:focus, .tm-form .uk-textarea:focus { border-color: var(--tm-primary); }
.tm-form .tm-privacy { display: block; font-size: 13px; line-height: 1.6; color: #555; }
.tm-form .tm-privacy a { color: var(--tm-primary); }
.tm-form .tm-form-submit { font-size: 20px; line-height: 18px; padding: 20px 60px; color: #fafafa; }
.tm-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

/* Cookie-Hinweis */
.tm-cookie-banner { z-index: 1000; box-shadow: 0 -4px 16px rgba(0,0,0,.08); }
.tm-cookie-banner .uk-container { font-size: 15px; }
.tm-cookie-banner .uk-button { margin-top: 8px; }

/* Speiseplan */
.tm-speiseplan img { box-shadow: 0 6px 24px rgba(0,0,0,.12); }
.tm-speiseplan-pdf { background: #fff; }

/* Vorschau aus dem Backend */
.tm-preview .tm-preview-section { position: relative; outline: 2px dashed transparent; outline-offset: -2px; }
.tm-preview .tm-preview-section:hover { outline-color: #1e87f0; }
.tm-preview .tm-preview-section::after { content: attr(data-label); position: absolute; top: 6px; left: 6px; z-index: 50; background: #1e87f0; color: #fff; font: 12px/1.4 Arial, sans-serif; padding: 2px 8px; opacity: 0; transition: opacity .15s; pointer-events: none; }
.tm-preview .tm-preview-section:hover::after { opacity: 1; }
.tm-preview .tm-preview-hidden { opacity: .45; }

@media (max-width: 959px) {
  .uk-heading-small.uk-width-2xlarge, .uk-heading-small.uk-width-xlarge, .uk-heading-small.uk-width-large { width: auto; }
}
.uk-navbar-item, .uk-navbar-toggle, .uk-navbar-nav > li > a, .uk-nav, .uk-button, .uk-subnav > * > :first-child, .uk-input, .uk-select, .uk-textarea, .uk-form-label { font-family: var(--tm-font); }
