/* Travelmanager V2. Only plugin roots and explicitly owned UI portals are styled. */
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) {
    --tm-color-primary: var(--wp--preset--color--primary, var(--e-global-color-primary, var(--awb-color4, #0872b5)));
    --tm-color-secondary: var(--wp--preset--color--secondary, var(--e-global-color-secondary, #344859));
    --tm-color-surface: #fff;
    --tm-color-text: #243044;
    --tm-color-muted: #f3f5f7;
    --tm-color-border: #d8dfe6;
    --tm-on-primary: #fff;
    --tm-on-secondary: #fff;
    --tm-radius: 16px;
    --tm-shadow: 0 8px 28px rgb(19 40 60 / 6%);
    font-family: inherit;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.55;
    color: var(--tm-color-text);
    text-align: start;
    overflow-wrap: anywhere;
    box-sizing: border-box;
}
.tm_plugin.tm-style-v2 { min-width: 0; max-width: 100%; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) *,
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) *::before,
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) *::after { box-sizing: border-box; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) :is(h1,h2,h3,h4) { font-family: inherit; color: inherit; line-height: 1.25; letter-spacing: -.02em; text-transform: none; margin: 0 0 .8em; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) :is(h1,h2) { font-size: clamp(1.25rem, 2vw, 1.65rem); font-weight: 650; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) h3 { font-size: 1.15rem; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) p { margin: 0 0 1rem; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) a { color: var(--tm-color-primary); text-underline-offset: .2em; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) img { max-width: 100%; height: auto; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) :is(button,input,select,textarea) { font: inherit; letter-spacing: normal; text-transform: none; max-width: 100%; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) :is(input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=button]):not([type=submit]),select,textarea) {
    min-height: 48px; width: 100%; padding: .65rem .85rem; margin: .35rem 0 .65rem;
    border: 1px solid var(--tm-color-border); border-radius: 9px;
    background-color: var(--tm-color-surface); color: var(--tm-color-text); box-shadow: none;
}
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) select { appearance: auto; background-image: none; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) :is(input[type=checkbox],input[type=radio]) { appearance: auto; width: 1.1em; height: 1.1em; margin: .2em .45em .2em 0; vertical-align: middle; accent-color: var(--tm-color-primary); }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) :is(button,.button,.buttonShop,.eventcard_shop_link,.wp-block-button__link,input[type=button],input[type=submit]) {
    appearance: none; display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
    min-height: 46px; padding: .7rem 1.2rem; margin: .25rem 0; border: 1px solid transparent; border-radius: 9px;
    background: var(--tm-color-primary); color: var(--tm-on-primary); box-shadow: none;
    font: inherit; font-weight: 600; line-height: 1.35; text-align: center; text-decoration: none; white-space: normal;
    cursor: pointer; transition: box-shadow .15s, filter .15s;
}
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) :is(button,.button,.buttonShop,.eventcard_shop_link,input[type=button],input[type=submit]):hover { filter: brightness(.94); text-decoration: none; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) :is(a,button,input,select,textarea,[tabindex]):focus-visible { outline: 3px solid var(--tm-color-secondary); outline-offset: 3px; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) :is(button,input,select,textarea):disabled { opacity: .55; cursor: not-allowed; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) :is(.hide,[hidden]) { display: none !important; }
.tm-style-v2 :is(.text-center,.buchung) { text-align: center; }
.tm-style-v2 .text-right { text-align: right; }
.tm-style-v2 .wp-block-columns { display: flex; flex-wrap: wrap; gap: 1.5rem; margin: 0 0 1.5rem; }
.tm-style-v2 .wp-block-column { flex: 1 1 240px; min-width: 0; margin: 0; }
.tm-style-v2 :is(.fahrtfinder2_container,.eventinfo_container,.eventcard_container,.artikel_container,.tm_index_container,.article-container > *, .block-timetable,.fahrtfinder2_tabs_container .column) {
    background: var(--tm-color-surface); border: 1px solid var(--tm-color-border); border-radius: var(--tm-radius);
    padding: clamp(1rem, 2.5vw, 1.75rem); box-shadow: var(--tm-shadow); min-width: 0;
}
.tm-style-v2 .fahrtfinder2_container { display: flex; flex-wrap: wrap; align-items: start; gap: 1.25rem; margin: 0 0 1.5rem; }
.tm-style-v2 .fahrtfinder2_container > .column { flex: 1 1 190px; min-width: 0; }
.tm-style-v2 .fahrtfinder2_container .finden { align-self: center; flex: 0 1 auto; }
.tm-style-v2 .fahrtfinder2_container .finden .button { min-width: 130px; }
.tm-style-v2 .qfinder { display: flex; flex-wrap: wrap; gap: 1rem; width: 100%; align-items: center; }
.tm-style-v2 .qfinder > div { flex: 1 1 180px; min-width: 0; }
.tm-style-v2 .qfinder .input-group { display: flex; align-items: center; gap: .5rem; }
.tm-style-v2 .qfinder .input-group-text { flex: 0 0 28px; padding: 0; border: 0; background: transparent; }
.tm-style-v2 .qfinder .input-group :is(input,select) { min-width: 0; }
.tm-style-v2 .fahrtfinder2_result_container { margin: 1.5rem 0; min-width: 0; }
.tm-style-v2 :is(.fahrtfinder2_tabs_container,.article-container,.tm_index_wrapper) { display: flex; flex-wrap: wrap; gap: 1.25rem; }
.tm-style-v2 :is(.fahrtfinder2_tabs_container > .column,.article-container > *, .tm_index_container) { flex: 1 1 270px; display: flex; flex-direction: column; }
.tm-style-v2 :is(.buchen_button,.tm_index_link,.kaufen_div) { margin-top: auto; padding-top: 1rem; }
.tm-style-v2 .tm_index_images img { width: 100%; max-height: 240px; object-fit: cover; border-radius: 10px; margin-bottom: 1rem; }
.tm-style-v2 .article-container { container: tm-shop / inline-size; }
.tm_plugin.tm-style-v2 .tm-shop-placeholder { display: grid; place-items: center; width: 100%; max-width: 320px; min-height: 180px; margin: 0 0 1rem; border: 1px solid var(--tm-color-border); border-radius: 12px; background: var(--tm-color-muted); color: var(--tm-color-primary); }
.tm-style-v2 .tm-shop-placeholder svg { display: block; width: 180px; max-width: 85%; height: 120px; }
.tm-style-v2 .article-container > .tm-shop-no-image > .tm-shop-placeholder { order: -1; max-width: none; }
.tm_plugin.tm-style-v2 .article-container > .tm-shop-no-image > a { color: var(--tm-color-text); text-decoration: none; }
.tm_plugin.tm-style-v2 .article-container > .tm-shop-no-image > a:hover .tm_index_headline { color: var(--tm-color-primary); text-decoration: underline; }
.tm-style-v2 .article-container > .tm-shop-no-image .tm_index_link { text-align: start; }
@container tm-shop (min-width: 640px) {
    .tm_plugin.tm-style-v2 .article-container > .tm-shop-no-image { display: grid; flex-basis: 100%; grid-template-columns: minmax(180px, 260px) minmax(0, 1fr); column-gap: 1.5rem; align-content: start; }
    .tm_plugin.tm-style-v2 .article-container > .tm-shop-no-image > .tm-shop-placeholder { grid-column: 1; grid-row: 1 / span 2; margin: 0; }
    .tm-style-v2 .article-container > .tm-shop-no-image > a { grid-column: 2; align-self: end; }
    .tm-style-v2 .article-container > .tm-shop-no-image > .tm_index_link { grid-column: 2; margin-top: 0; }
}
.tm-style-v2 .fahrtfinder2_tabs_container { container: tm-tour-results / inline-size; }
.tm_plugin.tm-style-v2 .fahrtfinder2_result_container .bildcontainer { width: fit-content; max-width: 100%; align-self: start; margin: 0 0 1rem; }
.tm_plugin.tm-style-v2 .fahrtfinder2_result_container .bildcontainer img { display: block; width: auto; height: auto; max-width: 100%; max-height: 320px; object-fit: contain; object-position: center; border: 1px solid var(--tm-color-border); border-radius: 10px; margin: 0; }
/* Use the available plugin width, including when embedded in a theme sidebar. */
@container tm-tour-results (min-width: 640px) {
    .tm_plugin.tm-style-v2 .fahrtfinder2_tabs_container > .column { flex-basis: 100%; display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); column-gap: 1.5rem; align-content: start; }
    .tm_plugin.tm-style-v2 .fahrtfinder2_tabs_container > .column > .bildcontainer { grid-column: 1; grid-row: 1 / span 8; margin: 0; }
    .tm_plugin.tm-style-v2 .fahrtfinder2_tabs_container > .column > :not(.bildcontainer) { grid-column: 2; min-width: 0; }
    .tm_plugin.tm-style-v2 .fahrtfinder2_tabs_container > .column .buchen_button { margin-top: 0; }
}
.tm-style-v2 :is(.linie_bezeichnung,.tm_index_headline,.tm_fahrtfinderv2_container_headline) { font-size: 1.2rem; font-weight: 650; line-height: 1.35; margin-bottom: .5rem; }
.tm-style-v2 :is(.datum,.abfahrt_station,.tm_fahrtfinderv2_container_subheadline) { font-size: .9em; }
.tm-style-v2 :is(.block-months,.filter_signets) { display: flex; flex-wrap: wrap; gap: .5rem; }
.tm-style-v2 :is(.wp-block-button-month,.button_filter,.button_categories) { display: inline-block; padding: .55rem 1rem; margin: .2rem; border: 1px solid var(--tm-color-border); border-radius: 999px; background: var(--tm-color-muted); color: var(--tm-color-text); text-decoration: none; }
.tm-style-v2 .block-timetable { margin-bottom: 1rem; }
.tm-style-v2 .block-timetable .referenzlogo { max-width: 260px; max-height: 170px; object-fit: contain; border-radius: 10px; }
.tm-style-v2 .weiterlesen_link { margin-top: .75rem; font-weight: 600; }
.tm-style-v2 .divider { border: 0; margin: 0; }
.tm-style-v2 :is(.eventinfo_container,.eventcard_container,.artikel_container) { margin: 1.5rem 0; }
.tm-style-v2 .artikel_container { container: tm-product / inline-size; }
.tm-style-v2 .tm-product-layout { display: grid; gap: 1.5rem; align-items: center; }
.tm-style-v2 .tm-product-layout > * { min-width: 0; }
.tm_plugin.tm-style-v2 .tm-product-media .tm-shop-placeholder { max-width: none; min-height: 220px; margin: 0; }
.tm-style-v2 .tm-product-media .glightbox-galerie img { display: block; width: 100%; max-height: 320px; object-fit: contain; border-radius: 12px; }
.tm-style-v2 .tm-product-media .hinweis_bilder { margin-top: .5rem; }
.tm-style-v2 .tm-product-content .artikel_betrag { margin-top: 1rem; font-size: 1.5rem; font-weight: 700; line-height: 1.3; }
.tm-style-v2 .tm-product-content .kaufen_div { margin-top: 0; padding-top: 1rem; }
@container tm-product (min-width: 640px) {
    .tm-style-v2 .tm-product-layout { grid-template-columns: minmax(180px, 280px) minmax(0, 1fr); gap: 1.75rem; }
}
.tm_plugin.tm-style-v2 .eventcard_container { padding: 1rem; margin: 1rem 0; }
.tm-style-v2 .eventcard_with_image { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.4fr); gap: 1rem; }
.tm-style-v2 .eventcard_container .bild img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 10px; }
.tm-style-v2 .eventcard_content { min-width: 0; display: grid; align-content: start; gap: .5rem; }
.tm_plugin.tm-style-v2.tm-style-v2 .eventcard_container :is(h2,p) { margin: 0; }
.tm-style-v2 .eventcard_container .abfahrten ul { margin: .25rem 0 0; padding-left: 1.25rem; }
.tm-style-v2 .eventcard_container .buttonfeld { display: flex; justify-content: flex-end; margin-top: .25rem; }
.tm_plugin.tm-style-v2.tm-style-v2 .eventcard_container .eventcard_shop_link { margin: 0; }
.tm-style-v2 .uhrzeit_ul { display: flex; flex-wrap: wrap; gap: .65rem; list-style: none; padding: 0; margin: 1rem 0; }
.tm-style-v2 .uhrzeit_ul li { padding: .75rem 1rem; border: 1px solid var(--tm-color-border); border-radius: 9px; cursor: pointer; background: var(--tm-color-surface); }
.tm-style-v2 :is(.uhrzeit_ul li.tmaktiv,.button_container_single_ride input.tmaktiv) { background: var(--tm-color-primary); color: var(--tm-on-primary); }
.tm-style-v2 .button_container_single_ride { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0; }
.tm-style-v2 .button_container_single_ride input:not(.tmaktiv) { background: var(--tm-color-muted); color: var(--tm-color-text); border-color: var(--tm-color-border); }
.tm-style-v2 .uhrzeit_ul li.soldout { cursor: not-allowed; text-decoration: line-through; opacity: .6; }
.tm-style-v2 :is(.eventdatum,.rueckfahrt,.eventdatum_abfahrt,.rueckfahrt_infotext,.highlights) { margin: 1rem 0; }
.tm-style-v2 :is(.eventycalendar,.containerfind,.listcontingent) { min-width: 0; }
/* Category search: a framed tour detail card, including AJAX-loaded tabs. */
.tm-style-v2 .containerfind { container: tm-find / inline-size; }
.tm-style-v2 .containerfind > form { margin: 0 0 1.25rem; padding: 1.25rem; border: 1px solid var(--tm-color-border); border-radius: 14px; background: var(--tm-color-muted); }
.tm-style-v2 .containerfind > form > .wp-block-columns { margin: 0; gap: 1rem; align-items: end; }
.tm-style-v2 .containerfind > form .wp-block-column { flex: 1 1 220px; }
.tm-style-v2 .containerfind > form .wp-block-column:last-child { flex: 0 0 auto; }
.tm-style-v2 .containerfind .tm-find-field { display: block; }
.tm-style-v2 .containerfind .tm-find-field > span { display: block; margin-bottom: .4rem; font-size: .9rem; font-weight: 650; }
.tm-style-v2 .containerfind > form :is(select,input[type=button]) { display: block; min-height: 48px; margin: 0 !important; }
.tm_plugin.tm-style-v2 .containerfind .ui-tabs-nav { max-width: none; max-inline-size: none; margin-bottom: 1rem; }
.tm_plugin.tm-style-v2 .containerfind .ui-tabs-panel { padding: 0; }
.tm-style-v2 .containerfind .ui-tabs-panel > .wp-block-columns { display: grid; grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr); align-items: start; gap: clamp(1.25rem,3cqi,2rem); margin: 0; padding: clamp(1rem,2.5cqi,1.75rem); border: 1px solid var(--tm-color-border); border-radius: var(--tm-radius); background: var(--tm-color-surface); box-shadow: var(--tm-shadow); }
.tm_plugin.tm-style-v2 .containerfind .linievorschaubild { display: block; width: 100%; height: auto; max-height: 420px; object-fit: contain; object-position: center; border: 1px solid var(--tm-color-border); border-radius: 14px; }
.tm_plugin.tm-style-v2 .containerfind .tm-find-title { font-size: clamp(1.25rem,2.4cqi,1.6rem); font-weight: 650; margin: 0 0 .8rem; }
.tm-style-v2 .containerfind .ui-tabs-panel > .wp-block-columns > .wp-block-column:last-child { display: flex; flex-direction: column; align-self: stretch; line-height: 1.65; }
.tm_plugin.tm-style-v2 .containerfind .ui-tabs-panel .wp-block-column > p:last-child { margin: 1.25rem 0 0; }
.tm_plugin.tm-style-v2 .containerfind .ui-tabs-panel .wp-block-column > p.tm-find-action { margin: auto 0 0; padding-top: 1.25rem; text-align: end; }
.tm_plugin.tm-style-v2.tm-style-v2 .containerfind .ui-tabs-panel .button { margin: 0; }
@container tm-find (max-width: 700px) {
    .tm-style-v2 .containerfind .ui-tabs-panel > .wp-block-columns { grid-template-columns: minmax(0,1fr); }
    .tm_plugin.tm-style-v2 .containerfind .linievorschaubild { max-height: 360px; }
}
@container tm-find (max-width: 440px) {
    .tm-style-v2 .containerfind > form .wp-block-column:last-child { flex: 1 1 100%; }
    .tm-style-v2 .containerfind > form input[type=button], .tm-style-v2 .containerfind .ui-tabs-panel .button { width: 100%; }
}
/* Filtered route list: retain the existing form and AJAX result structure. */
.tm-style-v2 .listcontainer { container: tm-route-list / inline-size; }
.tm-style-v2 .listcontainer > form { padding: 1.25rem; margin: 0 0 1.25rem; border: 1px solid var(--tm-color-border); border-radius: 14px; background: var(--tm-color-muted); }
.tm-style-v2 .listcontainer > form > .wp-block-columns { align-items: end; gap: 1rem; margin: 0; }
.tm-style-v2 .listcontainer > form .wp-block-column { flex: 1 1 200px; }
.tm-style-v2 .listcontainer > form .wp-block-column:last-child { flex: 0 0 auto; }
.tm-style-v2 .listcontainer .tm-list-field { display: block; }
.tm-style-v2 .listcontainer .tm-list-field > :is(input,select) { display: block; margin: 0 !important; }
.tm-style-v2 .listcontainer .tm-list-field > span { display: block; margin-bottom: .4rem; font-size: .9rem; font-weight: 650; }
.tm_plugin.tm-style-v2.tm-style-v2 .listcontainer > form :is(input,select,button) { margin: 0; min-height: 48px; }
.tm-style-v2 .listcontainer .suchergebnis > .trennung { display: none; }
.tm-style-v2 .listcontainer .suchergebnis > .wp-block-columns { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.4fr) auto; align-items: center; gap: 1rem; margin: 0; padding: 1.1rem 1.25rem; border: 1px solid var(--tm-color-border); border-top-width: 0; }
.tm-style-v2 .listcontainer .suchergebnis > .wp-block-columns.odd { background: var(--tm-color-surface); }
.tm-style-v2 .listcontainer .suchergebnis > .wp-block-columns.even { background: var(--tm-color-muted); }
.tm-style-v2 .listcontainer .suchergebnis > .trennung + .wp-block-columns { border-top-width: 1px; border-radius: 14px 14px 0 0; }
.tm-style-v2 .listcontainer .suchergebnis > .wp-block-columns:last-child { border-radius: 0 0 14px 14px; }
.tm-style-v2 .listcontainer .suchergebnis > .trennung + .wp-block-columns:last-child { border-radius: 14px; }
.tm-style-v2 .listcontainer .suchergebnis .wp-block-column:first-child { font-size: .9rem; font-variant-numeric: tabular-nums; }
.tm-style-v2 .listcontainer .suchergebnis .wp-block-column:nth-child(2) { font-weight: 650; }
.tm-style-v2 .listcontainer .suchergebnis .wp-block-column:last-child { text-align: end; }
.tm_plugin.tm-style-v2.tm-style-v2 .listcontainer .suchergebnis .button { margin: 0; }
@container tm-route-list (max-width: 540px) {
    .tm-style-v2 .listcontainer > form .wp-block-column:last-child { flex: 1 1 100%; }
    .tm-style-v2 .listcontainer > form button { width: 100%; }
    .tm-style-v2 .listcontainer .suchergebnis > .wp-block-columns { grid-template-columns: minmax(0,1fr); gap: .65rem; padding: 1rem; }
    .tm-style-v2 .listcontainer .suchergebnis .wp-block-column:nth-child(2) { grid-row: 1; }
    .tm-style-v2 .listcontainer .suchergebnis .button { width: 100%; margin-top: .35rem; }
}
.tm-style-v2 .listcategories { container: tm-category-list / inline-size; }
.tm-style-v2 .listcategories > .wp-block-columns { padding: 1.25rem; margin-bottom: 1.25rem; border: 1px solid var(--tm-color-border); border-radius: 14px; background: var(--tm-color-muted); gap: 1rem; }
.tm-style-v2 .listcategories > .wp-block-columns .caption { margin-bottom: .4rem; font-size: .9rem; font-weight: 650; }
.tm_plugin.tm-style-v2 .listcategories > .wp-block-columns select { margin: 0; }
.tm-style-v2 .listcategories .alternierend { border: 1px solid var(--tm-color-border); border-radius: 14px; overflow: hidden; }
.tm-style-v2 .listcategories .alternierend > .wp-block-columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "title title" "date price" "status action"; align-items: center; gap: .65rem 1rem; margin: 0; padding: 1.1rem 1.25rem; }
.tm-style-v2 .listcategories .alternierend > .wp-block-columns:nth-child(odd) { background: var(--tm-color-surface); }
.tm-style-v2 .listcategories .alternierend > .wp-block-columns:nth-child(even) { background: var(--tm-color-muted); }
.tm-style-v2 .listcategories .alternierend > .wp-block-columns + .wp-block-columns { border-top: 1px solid var(--tm-color-border); }
.tm-style-v2 .listcategories .alternierend > .wp-block-columns > .wp-block-column:nth-child(1) { grid-area: date; font-variant-numeric: tabular-nums; font-size: .9rem; }
.tm-style-v2 .listcategories .alternierend > .wp-block-columns > .wp-block-column:nth-child(2) { grid-area: title; font-weight: 650; }
.tm-style-v2 .listcategories .alternierend > .wp-block-columns > .wp-block-column:nth-child(3) { grid-area: price; font-weight: 600; }
.tm-style-v2 .listcategories .alternierend > .wp-block-columns > .wp-block-column:nth-child(4) { grid-area: status; font-size: .85rem; }
.tm-style-v2 .listcategories .alternierend > .wp-block-columns > .wp-block-column:nth-child(5) { grid-area: action; display: flex; justify-content: flex-end; }
.tm-style-v2 .listcategories .alternierend > .wp-block-columns > .wp-block-column:empty { display: none; }
.tm_plugin.tm-style-v2 .listcategories .alternierend p { margin: 0; }
.tm_plugin.tm-style-v2 .listcategories .alternierend .wp-block-column:last-child > a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .65rem .9rem; border: 1px solid transparent; border-radius: 9px; background: var(--tm-color-primary); color: var(--tm-on-primary); font-size: .9rem; font-weight: 600; line-height: 1.35; text-align: center; text-decoration: none; }
.tm-style-v2 .listcategories .alternierend .wp-block-column:last-child > a:hover { filter: brightness(.94); }
.tm-style-v2 .listcategories .fahrplan > .wp-block-columns { margin: 1rem 0 0; gap: 1rem; }
.tm-style-v2 .listcategories .fahrplan > .wp-block-columns > .wp-block-column { flex: 1 1 0; }
@container tm-category-list (min-width: 900px) {
    .tm-style-v2 .listcategories .alternierend > .wp-block-columns { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.3fr) minmax(0, .8fr) minmax(0, .8fr) 44px; grid-template-areas: "date title price status action"; }
}
@container tm-category-list (max-width: 460px) {
    .tm-style-v2 .listcategories .alternierend > .wp-block-columns { grid-template-columns: minmax(0, 1fr); grid-template-areas: "title" "date" "price" "status" "action"; padding: 1rem; }
    .tm-style-v2 .listcategories .alternierend > .wp-block-columns { grid-template-columns: minmax(0, 1fr) 44px; grid-template-areas: "title action" "date action" "price action" "status action"; }
}
.tm_plugin.tm-style-v2 .listcategories .alternierend .wp-block-column:last-child > .tm-category-disclosure { width: 44px; height: 44px; min-width: 44px; padding: 0; }
.tm-style-v2 .tm-category-disclosure::after { content: ''; width: 8px; height: 8px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: translateX(-2px) rotate(45deg); }
.tm-style-v2 .tm-category-action-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.tm_plugin.tm-style-v2 .listcategories .fahrplan > .wp-block-columns button { background: var(--tm-color-surface); color: var(--tm-color-primary); border: 1px solid var(--tm-color-border); }
.tm_plugin.tm-style-v2 .listcategories .fahrplan > .wp-block-columns button[hidden] { display: none; }

.tm-style-v2 .eventycalendar .navigation { display: flex; flex-wrap: wrap; gap: 1rem; margin: 0 0 1.5rem; padding: 1.25rem; background: var(--tm-color-muted); border: 1px solid var(--tm-color-border); border-radius: var(--tm-radius); }
.tm-style-v2 .eventycalendar .navigation > .wp-block-column { flex: 1 1 180px; }
.tm-style-v2 .eventycalendar .navigation .caption { font-size: .85rem; font-weight: 600; margin-bottom: .35rem; }
.tm-style-v2 .eventycalendar .navigation select { margin: 0; }
.tm-style-v2 .eventycalendar table { width: 100%; table-layout: fixed; border-collapse: collapse; }
.tm-style-v2 .eventycalendar :is(th,td) { padding: .5rem; border: 1px solid var(--tm-color-border); overflow-wrap: anywhere; }
.tm-style-v2 :is(.fehler,.no_results,.notice,.success_message) { padding: 1rem 1.25rem; border-radius: 10px; border: 1px solid var(--tm-color-border); border-inline-start: 4px solid var(--tm-color-secondary); background: var(--tm-color-muted); margin: 1rem 0; }
/* Keep service alerts vertically balanced without trailing paragraph spacing. */
.tm_plugin.tm-style-v2 > .notice.hasalert > :first-child { margin-top: 0; }
.tm_plugin.tm-style-v2 > .notice.hasalert > :last-child { margin-bottom: 0; }
.tm-style-v2 .tm_index_cart form { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.tm-style-v2 .tm_index_cart .quantity_select { width: auto; }
.tm-style-v2 .tm_relationen ul { list-style: none; padding: 0; }
.tm-style-v2 .tm_relationen li { margin: .4rem 0; }
.tm-style-v2 :is(#booking_iframe,.booking_window iframe) { width: 100%; border: 1px solid var(--tm-color-border); border-radius: 12px; min-height: 600px; }
.tm-style-v2 #travelmanager-cart-icon svg.shopping-cart { width: 30px; height: 30px; vertical-align: middle; }
.tm-style-v2 .items-present { cursor: pointer; }
.tm-style-v2 .flexslider { border: 0; border-radius: 10px; background: var(--tm-color-surface); box-shadow: none; max-width: 100%; margin-bottom: 3rem; }
.tm-style-v2 .flexslider.carousel.tm-show-small { width: 100%; }
.tm-style-v2 .flexslider .slides img { object-fit: cover; max-height: 350px; }
/* Theme prose limits must not shrink FlexSlider's translated image track. */
.tm_plugin.tm-style-v2 .flexslider .slides { max-width: none; max-inline-size: none; }
.tm-style-v2 .eventinfo_container { container: tm-event / inline-size; scroll-margin-top: 7rem; }
.tm-style-v2 .tm-event-overview { display: grid; gap: 1.5rem; align-items: start; }
.tm-style-v2 .tm-event-overview > * { min-width: 0; }
.tm-style-v2 .eventinfo_container .flexslider { margin: 0; }
.tm-style-v2 .eventinfo_container .flexslider .slides img { display: block; width: 100%; height: auto; max-height: 360px; object-fit: contain; border-radius: 10px; }
.tm-style-v2 .tm-event-description .container_verbindung_info { padding: 1rem 1.25rem; margin: 0 0 1.25rem; border-radius: 10px; background: var(--tm-color-muted); }
.tm_plugin.tm-style-v2 .tm-event-description .event_station_title { font-size: 1rem; margin-bottom: .4rem; }
.tm-style-v2 .tm-event-description .event_verbindung { font-weight: 600; }
.tm-style-v2 .tm-event-description > :last-child { margin-bottom: 0; }
.tm-style-v2 .tm-event-booking { margin-top: 1.75rem; padding-top: 1.5rem; border-top: 1px solid var(--tm-color-border); min-width: 0; }
.tm-style-v2 .tm-event-dates { display: grid; gap: 1rem 1.5rem; align-items: start; }
.tm-style-v2 .tm-event-dates > * { min-width: 0; margin: 0; }
.tm-style-v2 .tm-event-dates > :is(.eventdatum_hinweis,.wp-block-columns) { grid-column: 1 / -1; }
.tm-style-v2 .tm-event-dates > .column:empty { display: none; }
.tm-style-v2 .tm-event-dates > .eventdatum_abfahrt:empty { display: none; }
.tm_plugin.tm-style-v2 .eventinfo_container :is(.anfahrtsbeschreibung,.bewertung) { margin-top: 1.5rem; font-size: 1.1rem; }
@container tm-event (min-width: 700px) {
    .tm-style-v2 .tm-event-with-image { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }
    .tm-style-v2 .tm-event-dates { grid-template-columns: minmax(0, 22rem) minmax(0, 1fr); }
}
/* jQuery UI: structural and visual rules, without a global third-party theme. */
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-widget { font: inherit; color: inherit; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-helper-hidden { display: none; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-helper-clearfix::after { content: ''; display: table; clear: both; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-helper-hidden-accessible { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-state-disabled { opacity: .4; cursor: default; pointer-events: none; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-tabs { padding: 0; border: 0; background: transparent; width: 100%; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-tabs-nav { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1rem; padding: .4rem; list-style: none; background: var(--tm-color-muted); border: 0; border-radius: 12px; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-tabs-nav li { float: none; margin: 0; border: 0; list-style: none; background: transparent; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-tabs-anchor { display: block; padding: .65rem 1rem; text-decoration: none; border-radius: 8px; color: var(--tm-color-text); }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-tabs-active .ui-tabs-anchor { background: var(--tm-color-secondary); color: var(--tm-on-secondary); }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-tabs-panel { border: 0; padding: .5rem 0; background: transparent; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-datepicker,
.ui-datepicker.tm-v2-portal { width: 22rem; max-width: 100%; padding: .75rem; border: 1px solid var(--tm-color-border); border-radius: 14px; background: var(--tm-color-surface); box-shadow: var(--tm-shadow); }
#ui-datepicker-div.tm-v2-portal { display: none; max-width: calc(100vw - 24px); z-index: 16000 !important; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-datepicker-header { position: relative; background: var(--tm-color-surface); border: 0; padding: .5rem 2.5rem; border-radius: 9px; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-datepicker-title { text-align: center; font-weight: 650; line-height: 2rem; margin: 0; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-datepicker-title select { display: inline-block; width: auto; min-height: 32px; padding: .1rem; margin: 0; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) :is(.ui-datepicker-prev,.ui-datepicker-next) { position: absolute; top: .35rem; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 8px; text-decoration: none; cursor: pointer; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-datepicker-prev { left: 0; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-datepicker-next { right: 0; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) :is(.ui-datepicker-prev,.ui-datepicker-next) span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-datepicker-prev::after { content: '‹'; font-size: 1.7rem; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-datepicker-next::after { content: '›'; font-size: 1.7rem; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-datepicker table { width: 100%; border-collapse: separate; border-spacing: 3px; margin: .5rem 0 0; table-layout: fixed; font-size: .9rem; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-datepicker :is(th,td) { border: 0; padding: 0; text-align: center; background: none; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-datepicker th { font-size: .8em; padding: .5rem 0; font-weight: 500; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-datepicker td :is(a,span) { display: block; padding: .55rem .15rem; border-radius: 7px; border: 0; background: var(--tm-color-muted); color: var(--tm-color-text); text-align: center; text-decoration: none; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-datepicker td a:hover { box-shadow: inset 0 0 0 2px var(--tm-color-primary); }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-datepicker td .ui-state-active { background: var(--tm-color-primary); color: var(--tm-on-primary); }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-datepicker-today a { box-shadow: inset 0 0 0 1px var(--tm-color-secondary); }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .ui-datepicker .contingentcell sub { display: block; font-size: .7em; }
.ui-dialog.tm-v2-portal { position: absolute; z-index: 15000; max-width: calc(100vw - 24px); max-height: calc(100dvh - 24px); padding: 0; overflow: hidden; border: 1px solid var(--tm-color-border); border-radius: 18px; background: var(--tm-color-surface); box-shadow: 0 24px 80px rgb(0 0 0 / 22%); }
.ui-dialog.tm-v2-portal .ui-dialog-titlebar { padding: 1.1rem 3.5rem 1.1rem 1.25rem; position: relative; background: var(--tm-color-muted); border: 0; }
.ui-dialog.tm-v2-portal .ui-dialog-title { font-weight: 650; }
.ui-dialog.tm-v2-portal.tm-v2-portal button.ui-dialog-titlebar-close { position: absolute; right: .5rem; top: .45rem; width: 40px; height: 40px; min-height: 40px; padding: 0; margin: 0; color: var(--tm-color-text); background: transparent; font-size: 0; }
.ui-dialog.tm-v2-portal .ui-dialog-titlebar-close::after { content: '×'; font-size: 1.6rem; }
.ui-dialog.tm-v2-portal .ui-dialog-titlebar-close .ui-icon { display: none; }
.ui-dialog.tm-v2-portal .ui-dialog-content { overflow: auto; padding: 1.25rem; max-height: calc(100dvh - 180px); border: 0; background: var(--tm-color-surface); }
.ui-dialog.tm-v2-portal .ui-dialog-buttonpane { border-top: 1px solid var(--tm-color-border); padding: .75rem 1.25rem; background: var(--tm-color-surface); }
.ui-dialog.tm-v2-portal .ui-dialog-buttonset { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; }
.ui-dialog.tm-v2-portal.tm-v2-portal button.ui-button-left { background: var(--tm-color-muted); color: var(--tm-color-text); }
.ui-widget-overlay.tm-v2-overlay { position: fixed; inset: 0; background: rgb(15 23 42 / 45%); z-index: 14999; }
.ui-dialog.tm-v2-portal .chatbot-messages { min-height: 160px; max-height: 38vh; overflow-y: auto; background: var(--tm-color-muted); padding: 1rem; border-radius: 9px; }
.ui-dialog.tm-v2-portal .tm-chatbot-send-btn { width: 100%; }
:is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) .tm-spinner { display: inline-block; width: 1em; height: 1em; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: tm-v2-spin .7s linear infinite; }
@keyframes tm-v2-spin { to { transform: rotate(360deg); } }
@media (min-width: 769px) { .tm-style-v2 .tm-show-small { display: none !important; } }
@media (max-width: 768px) {
    .tm-style-v2 .tm-show-medium-up { display: none !important; }
    .tm-style-v2 .eventcard_with_image { grid-template-columns: minmax(0,1fr); }
    .tm-style-v2 .fahrtfinder2_container > .column { flex-basis: 100%; }
    .tm-style-v2 .fahrtfinder2_container .finden, .tm-style-v2 .fahrtfinder2_container .finden .button { width: 100%; }
    .tm-style-v2 .eventycalendar :is(th,td) { padding: .2rem; font-size: .8rem; }
}
@media (prefers-reduced-motion: reduce) {
    :is(.tm_plugin.tm-style-v2.tm-style-v2, .tm-v2-portal.tm-v2-portal) * { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
/* Legacy server-rendered calendar markup remains unchanged. */
.tm-style-v2 table.calendar { width: 100%; max-width: 28rem; table-layout: fixed; border-collapse: separate; border-spacing: 5px; border: 1px solid var(--tm-color-border); border-radius: 14px; padding: .75rem; background: var(--tm-color-surface); box-shadow: var(--tm-shadow); }
.tm-style-v2 table.calendar td { border: 0; text-align: center; vertical-align: middle; padding: .5rem .1rem; border-radius: 7px; font-size: .9rem; }
.tm-style-v2 table.calendar .calendarHeader { font-weight: 600; }
.tm-style-v2 table.calendar td:has(a) { background: var(--tm-color-muted); padding: 0; }
.tm-style-v2 table.calendar td a { display: block; padding: .65rem .1rem; border-radius: 7px; text-decoration: none; font-weight: 600; }
.tm-style-v2 table.calendar td.calendarToday { box-shadow: inset 0 0 0 1px var(--tm-color-secondary); }
.tm-style-v2 table.calendar td a:hover { background: var(--tm-color-primary); color: var(--tm-on-primary); }
.tm_plugin.tm-style-v2.tm-style-v2 .buchen_button a { display: inline-flex; justify-content: center; min-height: 46px; align-items: center; padding: .7rem 1.2rem; border-radius: 9px; background: var(--tm-color-primary); color: var(--tm-on-primary); text-decoration: none; font-weight: 600; }
.tm-style-v2 table.calendar tr:first-child td:not([colspan]) { width: 14.2857%; }
.tm-style-v2 table.calendar tr:first-child td[colspan="5"] { width: 71.4286%; }
/* Keep jQuery UI's existing resizing affordances functional. */
.ui-dialog.tm-v2-portal .ui-dialog-titlebar { cursor: move; }
.ui-dialog.tm-v2-portal .ui-resizable-handle { position: absolute; display: block; font-size: 0; touch-action: none; }
.ui-dialog.tm-v2-portal :is(.ui-resizable-n,.ui-resizable-s) { height: 7px; left: 0; width: 100%; cursor: ns-resize; }
.ui-dialog.tm-v2-portal .ui-resizable-n { top: 0; }
.ui-dialog.tm-v2-portal .ui-resizable-s { bottom: 0; }
.ui-dialog.tm-v2-portal :is(.ui-resizable-e,.ui-resizable-w) { width: 7px; top: 0; height: 100%; cursor: ew-resize; }
.ui-dialog.tm-v2-portal .ui-resizable-e { right: 0; }
.ui-dialog.tm-v2-portal .ui-resizable-w { left: 0; }
.ui-dialog.tm-v2-portal :is(.ui-resizable-ne,.ui-resizable-nw,.ui-resizable-se,.ui-resizable-sw) { width: 12px; height: 12px; }
.ui-dialog.tm-v2-portal :is(.ui-resizable-ne,.ui-resizable-se) { right: 0; }
.ui-dialog.tm-v2-portal :is(.ui-resizable-nw,.ui-resizable-sw) { left: 0; }
.ui-dialog.tm-v2-portal :is(.ui-resizable-ne,.ui-resizable-nw) { top: 0; }
.ui-dialog.tm-v2-portal :is(.ui-resizable-se,.ui-resizable-sw) { bottom: 0; }
.ui-dialog.tm-v2-portal :is(.ui-resizable-ne,.ui-resizable-sw) { cursor: nesw-resize; }
.ui-dialog.tm-v2-portal :is(.ui-resizable-nw,.ui-resizable-se) { cursor: nwse-resize; }

/* Backend event-calendar markup: V2 presentation without changing dates or links. */
.tm_plugin.tm-style-v2 .eventycalendar { container: tm-event-calendar / inline-size; }
.tm_plugin.tm-style-v2 .eventcalendar { font: inherit; color: var(--tm-color-text); background: transparent; margin: 0; }
.tm_plugin.tm-style-v2 .eventcalendar .header .month-year { padding: 0 0 1rem; font: inherit; font-size: 1.5rem; line-height: 1.3; font-weight: 650; color: var(--tm-color-text); letter-spacing: -.025em; }
.tm_plugin.tm-style-v2 .eventcalendar .days { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 1px; border: 1px solid var(--tm-color-border); border-radius: 14px; overflow: hidden; background: var(--tm-color-border); }
.tm_plugin.tm-style-v2 .eventcalendar .days .day_name { width: auto; padding: .85rem .4rem; border: 0; background: var(--tm-color-muted); color: var(--tm-color-text); text-align: center; font-size: .75rem; font-weight: 650; letter-spacing: .035em; text-transform: none; }
.tm_plugin.tm-style-v2 .eventcalendar .days .day_name span.large { display: none; }
.tm_plugin.tm-style-v2 .eventcalendar .days .day_name span.small { display: inline; }
.tm_plugin.tm-style-v2 .eventcalendar .days .day_num { display: flex; flex-direction: column; gap: .5rem; width: auto; min-width: 0; min-height: 116px; padding: .75rem .6rem; border: 0; background: var(--tm-color-surface); color: var(--tm-color-text); font-weight: 500; cursor: default; }
.tm_plugin.tm-style-v2 .eventcalendar .days .day_num > span { display: inline-flex; align-items: center; justify-content: center; width: 1.8rem; min-height: 1.8rem; font-size: .85rem; line-height: 1; font-weight: 650; border-radius: 50%; }
.tm_plugin.tm-style-v2 .eventcalendar .days .day_num.selected { background: var(--tm-color-surface); }
.tm_plugin.tm-style-v2 .eventcalendar .days .day_num.selected > span { background: var(--tm-color-primary); color: var(--tm-on-primary); }
.tm_plugin.tm-style-v2 .eventcalendar .days .day_num.ignore { background: var(--tm-color-muted); color: color-mix(in srgb,var(--tm-color-text) 45%,var(--tm-color-surface)); font-size: .85rem; }
/* Override provider inline category colors only inside V2; use the configured palette. */
.tm_plugin.tm-style-v2 .eventcalendar .days .day_num .event { margin: 0; padding: 0; min-width: 0; border: 1px solid var(--tm-color-border); border-left: 3px solid var(--tm-color-primary); border-radius: 8px; background: var(--tm-color-muted) !important; color: var(--tm-color-text); text-align: start; }
.tm_plugin.tm-style-v2 .eventcalendar .days .day_num .event:hover { border-color: var(--tm-color-primary); background: color-mix(in srgb,var(--tm-color-primary) 8%,var(--tm-color-surface)) !important; }
.tm_plugin.tm-style-v2 .eventcalendar .event a { display: block; height: auto; min-height: 44px; padding: .55rem .45rem; color: var(--tm-color-text) !important; font-size: .85rem; font-weight: 550; line-height: 1.45; white-space: normal; overflow: visible; overflow-wrap: anywhere; text-overflow: clip; -webkit-line-clamp: unset; line-clamp: unset; text-decoration: none; }
.tm_plugin.tm-style-v2 .eventcalendar .event a:hover { text-decoration: underline; text-underline-offset: .2em; }
.tm_plugin.tm-style-v2 .eventcalendar .event a:focus-visible { outline-offset: -3px; }
.tm_plugin.tm-style-v2 .eventcalendar .eventlink a.small { display: none; }
.tm_plugin.tm-style-v2 .eventcalendar .event .hinweis { width: auto; max-width: 100%; font-size: .75rem; }
@container tm-event-calendar (min-width: 960px) {
    .tm_plugin.tm-style-v2 .eventcalendar .days .day_name span.large { display: inline; }
    .tm_plugin.tm-style-v2 .eventcalendar .days .day_name span.small { display: none; }
}
/* A readable agenda for narrow embeds and phones, using the same booking links. */
@container tm-event-calendar (max-width: 759px) {
    .tm_plugin.tm-style-v2 .eventcalendar .days { grid-template-columns: minmax(0,1fr); gap: .65rem; border: 0; border-radius: 0; overflow: visible; background: transparent; }
    .tm_plugin.tm-style-v2 .eventcalendar .days .day_name,
    .tm_plugin.tm-style-v2 .eventcalendar .days .day_num.ignore { display: none; }
    .tm_plugin.tm-style-v2 .eventcalendar .days .day_num { display: grid; grid-template-columns: 2.5rem minmax(0,1fr); align-content: start; align-items: start; column-gap: .75rem; min-height: 60px; padding: .75rem; border: 1px solid var(--tm-color-border); border-radius: 12px; }
    .tm_plugin.tm-style-v2 .eventcalendar .days .day_num > span { grid-column: 1; grid-row: 1; width: 2.5rem; min-height: 2.5rem; background: var(--tm-color-muted); }
    .tm_plugin.tm-style-v2 .eventcalendar .days .day_num.selected > span { background: var(--tm-color-primary); }
    .tm_plugin.tm-style-v2 .eventcalendar .days .day_num > .event { grid-column: 2; }
    .tm_plugin.tm-style-v2 .eventcalendar .event a { padding: .65rem .7rem; font-size: .95rem; }
}
/* Some backend calendars append a whole week of next-month placeholders. */
.tm_plugin.tm-style-v2 .eventcalendar .days .day_num.ignore:nth-child(7n+8):not(:has(~ .day_num:not(.ignore))),
.tm_plugin.tm-style-v2 .eventcalendar .days .day_num.ignore:nth-child(7n+8):not(:has(~ .day_num:not(.ignore))) ~ .day_num.ignore { display: none; }

/* Category details: natural content height and one clear booking action. */
.ui-dialog.tm-v2-portal.tm-category-dialog { display: flex; flex-direction: column; max-height: calc(100dvh - 32px); border-radius: 18px; }
.ui-dialog.tm-v2-portal.tm-category-dialog .ui-dialog-titlebar { flex: 0 0 auto; padding: 1.35rem 3.75rem 1.2rem 1.5rem; border-bottom: 1px solid var(--tm-color-border); background: var(--tm-color-surface); }
.ui-dialog.tm-v2-portal.tm-category-dialog .ui-dialog-title { font-size: 1.35rem; line-height: 1.35; letter-spacing: -.02em; }
.ui-dialog.tm-v2-portal.tm-category-dialog .ui-dialog-titlebar-close { top: 1rem; right: .9rem; text-indent: 0; line-height: 1; }
.ui-dialog.tm-v2-portal.tm-category-dialog .ui-dialog-content { flex: 1 1 auto; min-height: 0 !important; padding: 1.5rem; line-height: 1.7; }
.ui-dialog.tm-v2-portal.tm-category-dialog .ui-dialog-content > :first-child { margin-top: 0; }
.ui-dialog.tm-v2-portal.tm-category-dialog .ui-dialog-content > :last-child { margin-bottom: 0; }
.ui-dialog.tm-v2-portal.tm-category-dialog .ui-dialog-buttonpane { flex: 0 0 auto; margin: 0; padding: 1rem 1.5rem; background: var(--tm-color-muted); }
.ui-dialog.tm-v2-portal.tm-category-dialog .ui-dialog-buttonset { float: none; width: 100%; align-items: center; justify-content: space-between; gap: .75rem; }
.ui-dialog.tm-v2-portal.tm-category-dialog .ui-dialog-buttonset > * { margin: 0; min-height: 48px; }
.ui-dialog.tm-v2-portal.tm-category-dialog .tm-category-booking { min-width: 180px; gap: .75rem; }
.ui-dialog.tm-v2-portal.tm-category-dialog .tm-category-booking::after { content: ''; width: 7px; height: 7px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); }
@media (max-width: 480px) {
    .ui-dialog.tm-v2-portal.tm-category-dialog .ui-dialog-titlebar { padding-left: 1.1rem; }
    .ui-dialog.tm-v2-portal.tm-category-dialog .ui-dialog-content { padding: 1.1rem; }
    .ui-dialog.tm-v2-portal.tm-category-dialog .ui-dialog-buttonpane { padding: .9rem 1.1rem; }
    .ui-dialog.tm-v2-portal.tm-category-dialog .ui-dialog-buttonset { flex-direction: column-reverse; gap: .4rem; }
    .ui-dialog.tm-v2-portal.tm-category-dialog .ui-dialog-buttonset > * { width: 100%; }
}
