/* Layout adjustments */
.topbar-left {
    display: flex !important;
    align-items: center !important;
    padding-left: 0 !important;
}

.gva_topbar_menu {
    margin: 0 !important;
    padding: 0 !important;
}

/* Topbar user dropdown */
.topbar-right {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    gap: 0.75rem;
}

.topbar-right .gva_topbar_account {
    margin-left: auto !important;
}

.topbar-right .topbar-user {
    position: relative;
    display: inline-flex;
    color: #fff !important;
}

.topbar-user[open] {
    z-index: 25;
}

.topbar-user__toggle {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 1rem;
    border-radius: 999px;
    background: transparent;
    border: 1px solid transparent;
    font-size: 0.95rem;
    color: #fff !important;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.topbar-user__toggle:focus {
    outline: none;
    border-color: rgba(255, 255, 255, 0.45) !important;
}

.topbar-user__toggle:hover {
    background: rgba(255, 255, 255, 0.12);
    transform: translateY(-1px);
}

.topbar-user[open] .topbar-user__toggle {
    background: rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.45);
}

.topbar-user__toggle::-webkit-details-marker,
.topbar-user__toggle::marker {
    display: none;
}

.topbar-user__icon {
    font-size: 1.6rem;
    color: #fff;
    line-height: 1;
}

.topbar-user__text {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
}

.topbar-user__greeting {
    font-size: 0.7rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.75);
}

.topbar-user__name {
    font-size: 1.05rem;
    font-weight: 600;
    color: #fff;
}

.topbar-user__caret {
    font-size: 0.8rem;
    color: #fff;
}

.topbar-user__menu {
    position: absolute;
    top: calc(100% + 0.6rem);
    right: 0;
    min-width: 180px;
    background: #fff;
    border-radius: 0.5rem;
    border: 1px solid #e3e7ef;
    box-shadow: 0 8px 20px rgba(28, 39, 51, 0.15);
    padding: 0.75rem;
}

.topbar-user:not([open]) .topbar-user__menu {
    display: none;
}

.topbar-user__links {
    list-style: none;
    margin: 0;
    padding: 0;
}

.topbar-user__item + .topbar-user__item {
    margin-top: 0.7rem;
}

.topbar-user__item a {
    display: block;
    color: #1C2733 !important;
    font-weight: 600;
    font-size: 1.05rem;
    text-decoration: none !important;
    padding: 0.65rem 0;
}

.topbar-user__item a:hover {
    color: #d66016 !important;
}

.topbar-user__menu nav {
    margin-top: 0.9rem;
}

.topbar-user__menu nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.topbar-user__menu nav ul.menu {
    padding: 0;
    margin: 0;
}

.topbar-user__menu nav ul.menu li {
    margin: 0;
}

.topbar-user__menu nav li + li {
    margin-top: 0;
}

.topbar-user__menu nav a {
    display: block;
    color: #1C2733 !important;
    text-decoration: none !important;
    font-weight: 600;
    font-size: 1rem;
    padding: 0.55rem 0;
}

.topbar-user__menu nav a:hover {
    color: #d66016 !important;
}

.topbar-user__menu nav a[href$="/user"],
.topbar-user__menu nav a[href$="/user/"],
.topbar-user__menu nav a[href$="/user/logout"] {
    display: none !important;
}

@media (max-width: 640px) {
    .topbar-right {
        justify-content: flex-end !important;
        gap: 0.4rem;
    }

    .topbar-right .topbar-user {
        margin-left: 0;
    }

    .topbar-user__toggle {
        padding: 0.45rem 0.75rem;
        gap: 0.5rem;
    }

    .topbar-user__greeting {
        display: none;
    }

    .topbar-user__name {
        font-size: 1rem;
    }

    .topbar-user__menu {
        min-width: 200px;
        padding: 0.8rem;
    }
}
/* Topbar and header connection */
.topbar {
    border-bottom: none !important;
    background: #1C2733 !important;
    position: relative;
    z-index: 10;
    padding: 12px 0 !important;
    margin-bottom: 0 !important;
    min-height: 50px !important;
}

.header-main {
    background: #fff;
    margin-top: 0 !important;
    position: relative;
    z-index: 9;
    border-top: none !important;
}

/* ====================================
   SAFE HEADER RESPONSIVE ENHANCEMENT
   ==================================== */

/* Make header container wider but preserve Drupal columns */
.header-main .container {
    max-width: none !important;
    width: 100% !important;
    padding: 0 clamp(1rem, 4vw, 3rem) !important;
}

/* DON'T override the row flex properties - keep Drupal's col system */
.header-main-inner .row {
    width: 100% !important;
    /* REMOVED: display: flex and justify-content that broke it */
}

/* Work within the existing col-md-3 branding column */
.branding {
    /* Don't override Drupal's column system */
    display: flex !important;
    align-items: center !important;
}

/* Logo adjustments */
.branding img {
    width: clamp(160px, 14vw, 200px) !important;
    height: auto !important;
    max-width: 100% !important;
    transition: all 0.3s ease !important;
    transform-origin: center !important;
    filter: drop-shadow(0 0 0 transparent) !important;
    transform: scale(1.05) !important; /* 5% bigger */
    margin-top: 6px !important; /* Move down 2px */
}

/* Smooth logo switching states */
.branding img.switching {
    opacity: 0.5 !important;
    transform: scale(0.95) !important;
}


/* Work within the existing col-md-9 header-inner column */
.header-inner {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    height: 100% !important;
}

/* Make the main menu more responsive */
.main-menu {
    width: 100% !important;
}

.gva-navigation {
    display: flex !important;
    justify-content: flex-end !important;
    width: 100% !important;
}

.gva_menu.gva_menu_main {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: clamp(0.5rem, 1.5vw, 1rem) !important;
    justify-content: flex-end !important;
}

.gva_menu.gva_menu_main > li > a {
    font-size: clamp(0.9rem, 1.8vw, 1.1rem) !important;
    padding: clamp(0.5rem, 1vw, 1rem) clamp(0.8rem, 1.5vw, 1.2rem) !important;
}
/* Search region adjustments (not part of main menu) */
.gva-search-region {
  display: flex;
  align-items: center;
  transform: translate(-35px, 7px) !important;
}

/* ====================================
   TOPBAR RESPONSIVE ENHANCEMENT
   ==================================== */

/* Make topbar responsive too */
.topbar .container {
    max-width: none !important;
    width: 100% !important;
    padding: 0 clamp(1rem, 4vw, 3rem) !important;
}

.topbar .row {
    width: 100% !important;
}

/* ====================================
   COURSE GRID FIXES (UNCHANGED)
   ==================================== */

.gva-view-grid-inner.lg-block-grid-4 {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
    gap: clamp(1rem, 3vw, 2rem) !important;
    width: 100% !important;
}

.course-block-inner {
    width: 100% !important;
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    min-height: 350px !important;
}

.course-block .image,
.course-block .image img {
    width: 100% !important;
    height: 200px !important;
    object-fit: cover !important;
}

.course-block .course-content {
    flex: 1 !important;
    padding: 1rem !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
}

/* Veranstaltungsart label above the course card title (teaser display field
   field_veranstaltungsart), e.g. "Seminar" / "Webinar". */
.course-block .course-type {
    margin: 0 0 8px;
    line-height: 1;
}

.course-block .course-type .field,
.course-block .course-type .field__item {
    display: inline-block;
}

.course-block .course-type .field__item {
    border-radius: 999px;
    padding: 4px 10px;
    background: #fbe7d9;
    color: #a9480f;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.3;
}

/* Fully booked: outlined twin of the type pill. */
.course-block .course-type .course-waitlist {
    display: inline-block;
    border: 1px solid #c75a14;
    border-radius: 999px;
    padding: 3px 9px;
    color: #a9480f;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.3;
}

.gva-view-grid-inner.lg-block-grid-4 .item-columns {
    width: 100% !important;
    min-width: 280px !important;
}

/* ====================================
   RESPONSIVE TYPOGRAPHY
   ==================================== */

h1, h2, h3, h4, h5, h6,
.widget.gsc-heading .title {
    font-size: clamp(1.1rem, 3vw, 2rem) !important;
    line-height: 1.3 !important;
}

body, p {
    font-size: clamp(1.6rem, 2vw, 1.05rem) !important;
    line-height: 1.6 !important;
}

/* ====================================
   MOBILE RESPONSIVENESS
   ==================================== */

@media (max-width: 768px) {
    /* Stack header elements on mobile */
    .header-main-inner .row {
        flex-direction: column !important;
        text-align: center !important;
    }
    
    .branding {
        order: 1 !important;
        justify-content: center !important;
        margin-bottom: 1rem !important;
    }
    
    .branding img {
        width: clamp(120px, 15vw, 140px) !important;
    }
    
    .header-inner {
        order: 2 !important;
        justify-content: center !important;
    }
    
    /* Make menu mobile-friendly */
    .gva_menu.gva_menu_main {
        flex-direction: column !important;
        gap: 0.5rem !important;
        align-items: center !important;
    }
    
    /* Single column for course grid */
    .gva-view-grid-inner.lg-block-grid-4 {
        grid-template-columns: 1fr !important;
        gap: 1rem !important;
    }
    
    .course-block-inner {
        min-height: 300px !important;
    }
}

/* ====================================
   TABLET AND DESKTOP ADJUSTMENTS
   ==================================== */

@media (min-width: 769px) and (max-width: 1024px) {
    .gva-view-grid-inner.lg-block-grid-4 {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (min-width: 1200px) {
    .gva-view-grid-inner.lg-block-grid-4 {
        grid-template-columns: repeat(3, 1fr) !important;
        max-width: 1200px !important;
        margin: 0 auto !important;
    }
}

@media (min-width: 1400px) {
    .gva-view-grid-inner.lg-block-grid-4 {
        grid-template-columns: repeat(4, 1fr) !important;
    }
}

/* ====================================
   PRESERVE EXISTING FUNCTIONALITY
   ==================================== */

/* Don't touch owl carousels */
.owl-carousel,
.owl-stage-outer,
.owl-stage,
.owl-item {
    /* Preserve all existing styles */
}

/* Better container spacing */
.container {
    padding-left: clamp(1rem, 3vw, 2rem) !important;
    padding-right: clamp(1rem, 3vw, 2rem) !important;
}

/* Images responsive */
img {
    max-width: 100% !important;
    height: auto !important;
}
/* ------------------------------------------------------------------------*/
/* ====================================
   STICKY HEADER - OPTION 1: SIMPLE FIXED
   ==================================== */

/* Simple fixed header - always sticky */
.header-main {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 1000 !important;
    background: #fff !important;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1) !important;
    transition: all 0.3s ease !important;
}

/* Add padding to body to prevent content jump */
body {
    padding-top: 80px !important; /* Adjust based on your header height */
}

/* Keep topbar above the fixed header */
.topbar {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 1001 !important;
}

/* Adjust main header to sit below topbar */
.header-main {
    top: 40px !important; /* Adjust based on topbar height */
}

/* Update body padding for both topbar and header */
body {
    padding-top: 120px !important; /* topbar + header height */
}

/* Authenticated users do not receive a topbar. Keep the fixed header flush
   with the viewport and retain only its 80px content clearance. */
body.logged-in .topbar {
    display: none !important;
}

body.logged-in:not(.path-user) .header-main {
    top: 0 !important;
}

body.logged-in:not(.path-user) {
    padding-top: 80px !important;
}

/* Let only the anonymous utility strip leave the viewport on scroll. */
body:not(.logged-in):not(.path-user) .topbar {
    transition: transform 0.3s ease, opacity 0.3s ease, visibility 0s;
}

body:not(.logged-in):not(.path-user).ip-topbar-hidden .topbar {
    transform: translateY(-100%);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: transform 0.3s ease, opacity 0.3s ease, visibility 0s 0.3s;
}

body:not(.logged-in):not(.path-user).ip-topbar-hidden .header-main {
    top: 0 !important;
}

/* The 56px utility strip overlaps 16px of the 80px white header. Center the
   one-row desktop navigation in the white area actually visible below it. */
@media (min-width: 1060px) {
    body:not(.logged-in):not(.path-user) .header-main .area-main-menu .area-inner {
        position: relative;
        top: 0;
        transition: top 0.3s ease;
    }

    body:not(.logged-in):not(.path-user):not(.ip-topbar-hidden) .header-main .area-main-menu .area-inner {
        top: 8px;
    }

    body:not(.logged-in):not(.path-user).ip-topbar-hidden .header-main .branding img {
        translate: 0 -8px;
    }

    /* The anonymous menu has no profile item, so its old -28px search offset
       puts the icon over the final label. Keep a clear gap in both scroll states. */
    body:not(.logged-in):not(.path-user) header .area-main-menu .gva-search-region {
        transform: translate(28px, 0) !important;
    }
}

@media (min-width: 1200px) {
    body.logged-in:not(.path-user) .gva-navigation .gva_menu.gva_menu_main > li:not(.menu-item--profile) > a {
        translate: 0 -2px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body:not(.logged-in):not(.path-user) .topbar,
    body:not(.logged-in):not(.path-user) .header-main,
    body:not(.logged-in):not(.path-user) .header-main .area-main-menu .area-inner,
    body:not(.logged-in):not(.path-user) .header-main .branding img {
        transition: none !important;
    }
}

/* ====================================
   MENU CENTERING FIX
   ==================================== */

/* First, let's fix the main header layout */
.header-main-inner .row {
    display: flex !important;
    align-items: center !important;
    min-height: 80px !important; /* Give it some breathing room */
}

/* Ensure the branding column behaves */
.header-main-inner .branding {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
}

/* This is the key fix - keep menu on the right but center it vertically */
.header-inner {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important; /* Keep menu on the right */
    height: 100% !important;
    min-height: 80px !important; /* Match the row height */
}

/* Make sure the navigation container doesn't mess things up */
.gva-navigation {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important; /* Right-align the navigation */
    width: 100% !important;
}

/* The actual menu should be right-aligned */
.gva_menu.gva_menu_main {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important; /* Right-align menu items */
    gap: clamp(1rem, 2vw, 2rem) !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Menu items should have consistent spacing */
.gva_menu.gva_menu_main > li {
    margin: 0 !important;
}

.gva_menu.gva_menu_main > li > a {
    padding: clamp(0.8rem, 1.5vw, 1.2rem) clamp(1rem, 2vw, 1.5rem) !important;
    display: flex !important;
    align-items: center !important;
    white-space: nowrap !important;
}

/* ====================================
   TABLET AND DESKTOP SPECIFIC FIXES
   ==================================== */

/* For tablets and up - ensure proper centering */
@media (min-width: 768px) {
    .header-main-inner .row {
        align-items: center !important;
    }
    
    /* Make sure the header columns work together */
    .header-main-inner .col-md-3 {
        display: flex !important;
        align-items: center !important;
    }
    
    .header-main-inner .col-md-9 {
        display: flex !important;
        align-items: center !important;
        justify-content: flex-end !important; /* Keep menu on the right */
    }
    
    /* Override any conflicting styles */
    .main-menu {
        display: flex !important;
        align-items: center !important;
        justify-content: flex-end !important; /* Right-align menu */
        width: 100% !important;
    }
    
    .area-main-menu {
        display: flex !important;
        align-items: center !important;
        justify-content: flex-end !important; /* Right-align menu */
        width: 100% !important;
    }
    
    .area-inner {
        display: flex !important;
        align-items: center !important;
        justify-content: flex-end !important; /* Right-align menu */
        width: 100% !important;
    }
}

/* ====================================
   Coloring
   ==================================== */

.icon.gv-icon-1083,
.icon.gv-icon-1084,
.icon.gv-icon-1087 {
  color: #d66016 !important;
}

.heading-line {
  background-color: #d66016 !important;
}

.block-info-title::before,
.block-info-title::after,
.field__item::before,
.field__item::after,
.gsc-heading .title::before,
.gsc-heading .title::after,
.widget .title::before,
.widget .title::after,
.heading-line span,
.course-block .field__label::before,
.testimonial-content .info .right .title a::before {
  color: #d66016 !important;
  border-color: #d66016 !important;
  fill: #d66016 !important;
}

.block-info-title::before {
  background-color: #d66016 !important;
}

.sub-title,
.sub-title span {
  color: #d66016 !important;
}

/* ====================================
   EXACT MENU FONT SIZING - MAIN & SUB MENUS
   ==================================== */

/* Main Menu Items - Even smaller, consistent Arial font */
.gva-navigation .gva_menu.gva_menu_main > li > a,
.navigation .gva_menu.gva_menu_main > li > a {
    font-size: clamp(10.5px, 0.95vw, 14px) !important;
    font-family: 'Arial', Helvetica, sans-serif !important; 
    font-weight: 600 !important;
}

.gva-navigation .menu-item--profile {
  position: relative;
}

.gva-navigation .menu-item--profile > a {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #1c2733;
  padding: 0;
}

.gva-navigation .menu-item--profile > a .fa-user {
  font-size: 1.6rem;
}

.gva-navigation .menu-item--profile > a .icaret {
  display: none;
}

.gva-navigation .menu-item--profile:hover > a,
.gva-navigation .menu-item--profile:focus-within > a {
  color: #d66016;
}

/* Sub Menu Items - FORCE same exact font and size (nuclear approach) */
.gva-navigation .gva_menu.gva_menu_main .menu.sub-menu li a,
.navigation .gva_menu.gva_menu_main .menu.sub-menu li a,
.gva_menu.gva_menu_main .sub-menu li a,
.navigation .gva_menu .sub-menu > li > a {
    font-size: clamp(10px, 0.9vw, 13px) !important; /* EXACT same smaller size as main menu */
    font-family: 'Arial', Helvetica, sans-serif !important; /* EXACT same font as main menu */
    font-weight: 600 !important; /* EXACT same weight as main menu */
    padding: clamp(10px, 1.2vw, 20px) clamp(16px, 2vw, 24px) !important;
}

/* Center interior labels between the existing dropdown separator lines. */
@media (min-width: 992px) {
    .gva-navigation .gva_menu.gva_menu_main .menu.sub-menu > li:not(:first-child):not(:last-child) > a {
        padding-top: calc(clamp(10px, 1.2vw, 20px) - 6px) !important;
        padding-bottom: calc(clamp(10px, 1.2vw, 20px) + 6px) !important;
    }
}

/* Make sure the dropdown arrows don't get affected */
.gva_menu.gva_menu_main .icaret.nav-plus {
    font-size: 16px !important; /* Keep arrows smaller */
    margin-left: 8px !important;
}

/* Optional: If you want to make the menu items taller to accommodate the bigger text */
.gva_menu.gva_menu_main > li > a {
    padding: 15px 20px !important;
    line-height: 1.2 !important;
}

/* Optional: Adjust sub-menu container if needed */
.gva_menu.gva_menu_main .menu.sub-menu {
    min-width: 200px !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important;
    padding-bottom: 8px !important;
    border: 1px solid #e3e7ef !important;
    border-radius: 6px !important;
}

/* Center profile submenu under the icon */
.gva-navigation .menu-item--profile .menu.sub-menu {
    right: auto !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
}

/* Reduce bottom spacing from last submenu item */
.gva_menu.gva_menu_main .menu.sub-menu li:last-child a {
    padding-bottom: 8px !important; /* Reduced padding but still some space */
}

/* Mobile responsive - smaller on tiny screens */
@media (max-width: 768px) {
    .gva-navigation .gva_menu.gva_menu_main > li > a,
    .gva-navigation .gva_menu.gva_menu_main .menu.sub-menu li a {
        font-size: 24px !important; /* Slightly smaller on mobile */
    }
}

.search-form__submit,
input.search-form__submit,
.search-block-form input[type="submit"],
.search-form input[type="submit"],
#edit-submit,
input.js-form-submit.form-submit[value="Suche"] {
    background-color: #d66016 !important; /* Your brand orange */
    border-color: #d66016 !important; /* Match the background */
    color: #fff !important; /* White text for contrast */
    transition: all 0.3s ease !important; /* Smooth hover effect */
}

/* Search button hover state */
.search-form__submit:hover,
input.search-form__submit:hover,
.search-block-form input[type="submit"]:hover,
.search-form input[type="submit"]:hover,
#edit-submit:hover,
input.js-form-submit.form-submit[value="Suche"]:hover {
    background-color: #b85514 !important; /* Slightly darker on hover */
    border-color: #b85514 !important; 
    color: #fff !important;
    transform: translateY(-1px) !important; /* Subtle lift effect */
    box-shadow: 0 2px 4px rgba(214, 96, 22, 0.3) !important; /* Nice shadow */
}

/* Drupal reuses the search form in the header and on results pages. Style by
   form rather than input ID: the header ID gains a suffix when both render. */
header .area-main-menu .gva-search-region .search-content {
    box-sizing: border-box;
    width: min(calc(100vw - 32px), 280px);
    padding: 14px;
    border: 1px solid rgba(62, 63, 65, 0.1);
    border-radius: 14px;
    box-shadow: 0 10px 24px rgba(28, 39, 51, 0.14);
}

#search-block-form {
    display: flex;
    align-items: center;
    gap: 8px;
}

#search-block-form .form-item-keys {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
}

#search-block-form .form-actions {
    flex: 0 0 auto;
    margin: 0;
}

#search-form #edit-basic {
    display: flex;
    align-items: flex-end;
    gap: 10px;
}

#search-form .form-item-keys {
    display: flex;
    flex: 0 1 360px;
    flex-direction: column;
    min-width: 0;
    margin: 0;
}

#search-form .form-item-keys label {
    margin-bottom: 6px;
}

header .area-main-menu .gva-search-region .search-content #search-block-form input.form-search,
#search-form input.form-search {
    box-sizing: border-box;
    display: block;
    width: 100%;
    height: 44px;
    padding: 0 14px;
    border: 1px solid #b8c0c7;
    border-radius: 10px;
    background: #fff;
    color: #3e3f41;
    font-size: 15px;
    line-height: normal;
}

header .area-main-menu .gva-search-region .search-content #search-block-form input.form-search:focus-visible,
#search-form input.form-search:focus-visible {
    border-color: #a9480f;
    outline: 2px solid rgba(169, 72, 15, 0.3);
    outline-offset: 1px;
}

header .area-main-menu .gva-search-region .search-content #search-block-form input.search-form__submit,
#search-form input.search-form__submit {
    position: static;
    height: 44px;
    padding: 0 18px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: normal;
    line-height: 44px;
    text-transform: none;
    white-space: nowrap;
}

header .area-main-menu .gva-search-region .search-content #search-block-form input.form-search {
    height: 40px;
    padding: 0 12px;
}

header .area-main-menu .gva-search-region .search-content #search-block-form input.search-form__submit {
    min-width: 100px;
    height: 40px;
    line-height: 40px;
}

#search-block-form input.search-form__submit:focus-visible,
#search-form input.search-form__submit:focus-visible {
    outline: 3px solid rgba(169, 72, 15, 0.55);
    outline-offset: 2px;
}

/* ====================================
   TOPBAR BRAND COLOR TREATMENT
   ==================================== */

/* Login/Register links - brand color treatment */
.topbar-right .gva_topbar_menu li a {
    color: #d66016 !important; /* Brand color for login/register links */
    transition: all 0.3s ease !important;
}

.topbar-right .gva_topbar_menu li a:hover {
    color: #b85514 !important; /* Darker shade on hover */
    text-decoration: underline !important;
}

/* body .gva-body-page .button {
    background: #d66016 !important;
    background-color: #d66016 !important;
} */


/* ====================================
   BREADCRUMB BACKGROUND SIZING OPTIONS
   ==================================== */

/* Option 1: COVER - Fills entire area, might crop image (RECOMMENDED) */
.breadcrumb-style {
    background-image: url('/themes/gavias_edmix/images/breadcrumb.jpg?v=2025') !important;
    background-size: cover !important; /* Fills the whole area */
    background-position: center center !important;
    background-repeat: no-repeat !important;
}

/* Breadcrumb links (e.g. "Startseite", "Weiterbildung") use the topbar's
   navy (#1c2733) in every state; the current page is plain text and stays
   white. The color needs !important to override the theme customizer's
   inline !important link rule. */
.breadcrumb-content-inner
  .gva-breadcrumb-content
  .gva-block-breadcrumb.text-light
  .breadcrumb-links
  nav.breadcrumb
  ol > li > a {
    color: #1c2733 !important;
    text-decoration: none;
    transition: none;
}

.breadcrumb-content-inner
  .gva-breadcrumb-content
  .gva-block-breadcrumb.text-light
  .breadcrumb-links
  nav.breadcrumb
  ol > li > a:hover,
.breadcrumb-content-inner
  .gva-breadcrumb-content
  .gva-block-breadcrumb.text-light
  .breadcrumb-links
  nav.breadcrumb
  ol > li > a:focus {
    color: #1c2733 !important;
    text-decoration: none;
}

/* Hide the original title */
.single-course .block-info .block-info-title {
    display: none !important;
}

/* Add a bigger "Inhalte" title above the body content */
.single-course .field--name-body::before {
    content: "Inhalte";
    display: block;
    font-weight: bold;
    margin-bottom: 20px;
    font-size: 1.5em !important; /* Made it bigger */
    color: #d66016; /* Your brand orange */
    border-bottom: 3px solid #d66016; /* Thicker line too */
    padding-bottom: 8px;
}

/* Make the description text bigger with more force */
.field--name-body .field__item p {
    font-size: 1.50em !important;
    line-height: 1.7 !important;
}

/* Even more specific targeting if the above doesn't work */
.single-course .field--type-text-with-summary .field__item p,
.course-block .field--name-body .field__item p {
    font-size: 1.2em !important;
    line-height: 1.5 !important;
    margin-bottom: 1em;
}

/* Match editor-authored lists to the surrounding course-description paragraphs. */
.single-course .field--type-text-with-summary .field__item > :is(ul, ol) {
    margin-bottom: 1em;
    font-size: 1.2em;
    line-height: 1.5;
}

/* Ordinary links in editable descriptions stay visible without a special ID.
   The theme customizer's grey link color uses !important. */
body.integplan-course-detail #kursbeschreibung .field--name-body a:not(.btn):not(.button) {
    color: #d65f16 !important;
    text-decoration: underline;
    text-underline-offset: 0.12em;
}


/* Clean, minimal slider arrows with your brand color */
.rev_slider .tp-rightarrow,
.rev_slider .tp-leftarrow,
.gavias_sliderlayer .tp-rightarrow,
.gavias_sliderlayer .tp-leftarrow {
    background-color: #d66016 !important;
    color: white !important;
    border: none !important; /* Remove the border completely */
}

/* Fix hover to stay your brand color */
.rev_slider .tp-rightarrow:hover,
.rev_slider .tp-leftarrow:hover,
.gavias_sliderlayer .tp-rightarrow:hover,
.gavias_sliderlayer .tp-leftarrow:hover {
    background-color: #d66016 !important; /* Keep same color on hover */
    color: white !important;
    border: none !important;
}

.highlight_content .desc p.p1 {
    font-size: 1.0em !important;
    line-height: 1.5 !important;
}

/* Override JavaScript opacity and make logos always visible */
.branding img {
    opacity: 1 !important;
    transform: scale(1.05) translateY(2px) !important;
    transition: transform 0.3s ease !important; /* Remove opacity from transition */
}


.container.container-bg {
  max-width: 1400px; /* or 90%, or whatever works for your layout */
  width: 100%;
  padding-left: 2rem;
  padding-right: 2rem;
  margin-left: auto;
  margin-right: auto;
}

/* Legacy embedded forms. Native Webform pages use webform-page.css. */


/* Clean form styling - full width */
:where(body:not(.node--type-webform)) .webform-submission-form {
    background: #fafafa !important;
    padding: 20px !important;
    margin: 15px 0 !important;
    border-radius: 4px !important;
    width: 100% !important;
    max-width: none !important;
    border: 1px solid #ddd !important;
    box-sizing: border-box !important;
}

/* Field spacing */
:where(body:not(.node--type-webform)) .webform-submission-form .form-item,
:where(body:not(.node--type-webform)) .webform-submission-form .js-form-item,
:where(body:not(.node--type-webform)) .webform-submission-form .form-wrapper {
    margin-bottom: 15px !important;
}

/* Labels */
:where(body:not(.node--type-webform)) .webform-submission-form label {
    display: block !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    color: #333 !important;
    margin-bottom: 4px !important;
}

/* Input fields - smaller and cleaner */
:where(body:not(.node--type-webform)) .webform-submission-form input[type="text"],
:where(body:not(.node--type-webform)) .webform-submission-form input[type="email"],
:where(body:not(.node--type-webform)) .webform-submission-form input[type="tel"],
:where(body:not(.node--type-webform)) .webform-submission-form input[type="number"],
:where(body:not(.node--type-webform)) .webform-submission-form select {
    width: 100% !important;
    padding: 8px 12px !important;
    border: 1px solid #ccc !important;
    border-radius: 3px !important;
    font-size: 14px !important;
    background: white !important;
    transition: border-color 0.2s ease !important;
    box-sizing: border-box !important;
}

/* Simple focus */
:where(body:not(.node--type-webform)) .webform-submission-form input[type="text"]:focus,
:where(body:not(.node--type-webform)) .webform-submission-form input[type="email"]:focus,
:where(body:not(.node--type-webform)) .webform-submission-form input[type="tel"]:focus,
:where(body:not(.node--type-webform)) .webform-submission-form input[type="number"]:focus,
:where(body:not(.node--type-webform)) .webform-submission-form select:focus {
    border-color: #d66016 !important;
    outline: none !important;
}

/* Flexbox - no extra borders */
:where(body:not(.node--type-webform)) .webform-submission-form .webform-flexbox {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
    margin-bottom: 15px !important;
}

:where(body:not(.node--type-webform)) .webform-submission-form .webform-flex {
    flex: 1 !important;
    min-width: 180px !important;
}

/* Fieldset - minimal styling */
:where(body:not(.node--type-webform)) .webform-submission-form fieldset {
    border: none !important;
    padding: 0 !important;
    margin-bottom: 15px !important;
    background: none !important;
}

/* Checkbox - simple */
:where(body:not(.node--type-webform)) .webform-submission-form input[type="checkbox"] {
    margin-right: 6px !important;
    accent-color: #d66016 !important;
}

:where(body:not(.node--type-webform)) .webform-submission-form .form-checkbox + label {
    display: inline !important;
    font-weight: 400 !important;
    margin-bottom: 0 !important;
}

/* Submit button - clean */
:where(body:not(.node--type-webform)) .webform-submission-form .form-submit {
    background-color: #d66016 !important;
    color: white !important;
    padding: 10px 20px !important;
    border: none !important;
    border-radius: 3px !important;
    font-size: 14px !important;
    cursor: pointer !important;
    margin-top: 15px !important;
}

:where(body:not(.node--type-webform)) .webform-submission-form .form-submit:hover {
    background-color: #b8541c !important;
}

/* File upload - much smaller */
:where(body:not(.node--type-webform)) .webform-submission-form input[type="file"] {
    padding: 6px !important;
    border: 1px solid #ccc !important;
    border-radius: 3px !important;
    background: white !important;
    font-size: 12px !important;
}

:where(body:not(.node--type-webform)) .webform-submission-form .form-submit[name*="upload"] {
    background-color: #f5f5f5 !important;
    color: #333 !important;
    border: 1px solid #ccc !important;
    padding: 6px 12px !important;
    font-size: 11px !important;
    margin-top: 3px !important;
    margin-left: 8px !important;
}

:where(body:not(.node--type-webform)) .webform-submission-form .form-submit[name*="upload"]:hover {
    background-color: #e9e9e9 !important;
}

/* Description text */
:where(body:not(.node--type-webform)) .webform-submission-form .description,
:where(body:not(.node--type-webform)) .webform-submission-form .webform-element-description {
    font-size: 11px !important;
    color: #666 !important;
    margin-top: 2px !important;
    line-height: 1.3 !important;
}

/* Clean up wrappers */
.field--name-field-product-webform,
.field--name-field-product-webform .field__item,
.webform-ajax-form-wrapper {
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Mobile */
@media (max-width: 768px) {
    :where(body:not(.node--type-webform)) .webform-submission-form {
        padding: 15px !important;
        margin: 10px 5px !important;
    }
    
    :where(body:not(.node--type-webform)) .webform-submission-form .webform-flexbox {
        flex-direction: column !important;
        gap: 8px !important;
    }
    
    :where(body:not(.node--type-webform)) .webform-submission-form .webform-flex {
        min-width: 100% !important;
    }
}

/* Hide admin stuff */
:where(body:not(.node--type-webform)) .webform-submission-form .contextual {
    display: none !important;
}

/* ############################################################################# */

/* ====================================
   Profile Menu Item Visibility
   ==================================== */

/* Hide profile menu icon for anonymous users */
body:not(.logged-in) .gva-navigation .menu-item--profile {
  display: none !important;
}

/* ====================================
   Kontakt Newsletter Signup Embed
   ==================================== */

/* ====================================
   Login Page Adjustments
   ==================================== */
.page-user-login .content-main #edit-actions {
  margin-top: 2rem;
}

/* ====================================
   Zielgruppe icon (course meta)
   ==================================== */
.single-course .course-meta .meta-item .icon.icon-zielgruppe {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: FontAwesome;
  font-size: 22px;
  color: #444;
}
.single-course .course-meta .meta-item .icon.icon-zielgruppe::before {
  content: "\f0c0"; /* fa-users */
}

/* ====================================
   Kategorie icon (course meta)
   ==================================== */
.single-course .course-meta .meta-item .icon.icon-kategorie {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: FontAwesome;
  font-size: 22px;
  color: #444;
}
.single-course .course-meta .meta-item .icon.icon-kategorie::before {
  content: "\f02c"; /* fa-tags */
}

/* Generic Veranstaltungsart icon (course meta fallback for Themenbereich
   "Andere"). One shared icon is intentional for all event types. */
.single-course .course-meta .meta-item .icon.icon-veranstaltungsart {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: FontAwesome;
  font-size: 22px;
  color: #444;
}
.single-course .course-meta .meta-item .icon.icon-veranstaltungsart::before {
  content: "\f073"; /* fa-calendar */
}

/* ====================================
   Ort icon (course meta)
   ==================================== */
.single-course .course-meta .meta-item .icon.icon-ort {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: FontAwesome;
  font-size: 22px;
  color: #444;
}
.single-course .course-meta .meta-item .icon.icon-ort::before {
  content: "\f041"; /* fa-map-marker */
}

/* ====================================
   Course filter form (views exposed form)
   ==================================== */

/* Filter form — override Drupal's display:table, use flexbox directly on the form */
#views-exposed-form-courses-block-2 {
  background: #f7f7f7;
  border-radius: 8px;
  padding: 20px 24px 16px;
  margin-bottom: 28px;
  display: flex !important;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 16px;
}

/* Each dropdown field (direct child) */
#views-exposed-form-courses-block-2 > .form-item {
  flex: 1 1 180px;
  margin: 0 !important;
}

#views-exposed-form-courses-block-2 > .form-item label {
  display: block;
  margin-bottom: 6px;
  font-size: 13px;
  font-weight: 700;
  color: #595a5c;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

#views-exposed-form-courses-block-2 .form-select {
  width: 100%;
  border-radius: 6px !important;
  border: 1px solid #ccc !important;
  padding: 9px 14px !important;
  background-color: #fff !important;
  font-size: 14px;
  color: #333;
}

/* Submit button — aligns with bottom of dropdowns */
#views-exposed-form-courses-block-2 > .form-actions {
  flex: 0 0 auto;
  margin: 0 !important;
  align-self: flex-end;
}
#views-exposed-form-courses-block-2 #edit-submit-courses {
  border-radius: 6px !important;
  padding: 10px 24px !important;
  white-space: nowrap;
}

/* Mobile: stack vertically */
@media (max-width: 767px) {
  #views-exposed-form-courses-block-2 {
    padding: 16px;
    flex-direction: column;
  }
  #views-exposed-form-courses-block-2 > .form-item,
  #views-exposed-form-courses-block-2 > .form-actions {
    width: 100%;
  }
  #views-exposed-form-courses-block-2 #edit-submit-courses {
    width: 100%;
  }
}

/* ====================================
   Equal-height course grid cards
   ==================================== */

/* Convert float-based grid to flexbox so all cards in a row stretch to same height */
.gva-view-grid-inner {
  display: flex !important;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 24px 0;
}

/* Remove float (was the cause of unequal heights), keep as flex column */
.gva-view-grid-inner .item-columns {
  float: none !important;
  display: flex !important;
  flex-direction: column;
}

/* Anonymous wrapper div between .item-columns and .course-block */
.item-columns > div {
  flex: 1;
  display: flex;
  flex-direction: column;
}

/* Card stretches to fill column */
.item-columns .course-block {
  flex: 1;
  display: flex;
  flex-direction: column;
}

/* Card inner uses column flexbox */
.item-columns .course-block-inner {
  display: flex;
  flex-direction: column;
  flex: 1;
}

/* Course content grows to fill available space */
.item-columns .course-content {
  display: flex;
  flex-direction: column;
  flex: 1;
}

/* Content inner (title, date, teacher) grows, pushing button down */
.item-columns .content-inner {
  flex: 1;
}

/* "Hier anmelden" button always sits at the bottom */
.item-columns .content-action {
  margin-top: auto;
}

/* ====================================
   Course meta: center-align rows
   ==================================== */
.single-course .course-meta {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
}
.single-course .course-meta .meta-item {
  float: none !important;
}

/* ====================================
   Course grid card — title font size
   ==================================== */
/* 20px too large, 15px too small — 17px fits 2-3 lines and stays readable */
.gva-view-grid .content-inner h4 {
  font-size: 17px !important;
  line-height: 23px !important;
}
/* ====================================
   Kursmaterial dashboard page — hide node title
   (Gavias "hide title" setting only fires on /node/NID, not embedded renders)
   ==================================== */
.kursmaterial-content .node__title {
  display: none;
}

/* Date/meta smaller than title for clear visual hierarchy */
.gva-view-grid .content-inner .course-date,
.gva-view-grid .content-inner .field--name-field-course-duration {
  font-size: 13px !important;
}

/* ====================================
   Kursmaterial "Materialien ansehen" button
   — small inline text link, not a full pill button
   ==================================== */
.btn-material {
  display: inline-block;
  margin-top: 8px;
  padding: 0 !important;
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: #d66016 !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: 0.03em;
  text-transform: none !important;
  text-decoration: none;
  line-height: 1.4;
  transition: color 0.2s;
}
.btn-material:hover {
  color: #b34e0e !important;
  text-decoration: underline;
}

/* ====================================
   Calendar view toggle — /uebersicht
   ==================================== */

/* Toggle bar (sits above the filter form) */
#integplan-calendar-toggle {
  display: flex;
  gap: 8px;
  margin-bottom: 18px;
}

.cal-toggle-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 18px;
  border: 2px solid #d66016;
  border-radius: 4px;
  background: #fff;
  color: #d66016;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
  line-height: 1.3;
}

.cal-toggle-btn:hover {
  background: #f9ece3;
  color: #b34e0e;
  border-color: #b34e0e;
}

.cal-toggle-btn.cal-toggle-active {
  background: #d66016;
  color: #fff;
  border-color: #d66016;
}

.cal-toggle-btn.cal-toggle-active:hover {
  background: #b34e0e;
  border-color: #b34e0e;
}

/* Calendar container */
#integplan-calendar-container {
  display: none;
  margin-top: 20px;
  min-height: 300px;
}

/* When calendar is active, hide the grid content but keep the filter form visible.
   .integplan-views-block is added to .views-element-container by JS — this element
   survives Drupal AJAX filter updates. Targets the Gavias grid wrapper and standard
   Views .view-content both, for robustness. */
body.integplan-cal-active .integplan-views-block .gva-view-grid,
body.integplan-cal-active .integplan-views-block .view-content {
  display: none !important;
}

/* Show the calendar container when active (positioned outside the AJAX zone). */
body.integplan-cal-active #integplan-calendar-container {
  display: block;
}

/* Hide the Anwenden submit button in calendar mode — filter changes are applied
   automatically via calendar refetch, so the button would cause confusion. */
body.integplan-cal-active #views-exposed-form-courses-block-2 [type="submit"],
body.integplan-cal-active #views-exposed-form-courses-block-2 .form-submit {
  display: none !important;
}

/* FullCalendar base overrides */
#integplan-calendar-container .fc {
  font-family: inherit;
  font-size: 14px;
}

#integplan-calendar-container .fc-toolbar-title {
  font-size: 18px;
  font-weight: 700;
  color: #333;
}

#integplan-calendar-container .fc-button {
  background: #d66016 !important;
  border-color: #d66016 !important;
  font-size: 13px;
}

#integplan-calendar-container .fc-button:hover {
  background: #b34e0e !important;
  border-color: #b34e0e !important;
}

#integplan-calendar-container .fc-button-active {
  background: #b34e0e !important;
  border-color: #b34e0e !important;
}

/* Default event color (fallback) */
#integplan-calendar-container .fc-event {
  background-color: #3a7fc1;
  border-color: #2e6aa8;
  color: #fff;
  cursor: pointer;
  font-size: 12px;
  padding: 2px 4px;
  border-radius: 3px;
}

#integplan-calendar-container .fc-event:hover {
  opacity: 0.88;
}

/* Allow event titles to wrap so the full course name is visible.
   FullCalendar clips long titles by default; this ensures they wrap instead. */
#integplan-calendar-container .fc-daygrid-event .fc-event-title {
  white-space: normal;
  overflow: visible;
  line-height: 1.25;
}

/* Give day-grid events a minimum height so even short titles aren't just a sliver. */
#integplan-calendar-container .fc-daygrid-event {
  min-height: 30px;
  align-items: flex-start;
}

/* Color-coding by Durchführungsform (field_course_category)
   Slugs generated server-side: iconv UTF-8→ASCII//TRANSLIT → strtolower → strip non-alphanumeric
   Terms: Präsenz, Online, Hybrid */

/* Präsenz → prasenz */
#integplan-calendar-container .fc-event.integplan-cal-type-prasenz {
  background-color: #d66016 !important;  /* IntegPlan brand orange */
  border-color: #b34e0e !important;
}

/* Online → online */
#integplan-calendar-container .fc-event.integplan-cal-type-online {
  background-color: #295c63 !important;
  border-color: #214a50 !important;
}

/* Hybrid → hybrid */
#integplan-calendar-container .fc-event.integplan-cal-type-hybrid {
  background-color: #a9480f !important;
  border-color: #81370c !important;
}

/* List view (mobile / listMonth) */
#integplan-calendar-container .fc-list-event:hover td {
  background: #f5f5f5;
}

#integplan-calendar-container .fc-list-event-dot {
  border-color: #d66016;
}

/* Mobile: compact toolbar */
@media (max-width: 600px) {
  #integplan-calendar-toggle {
    flex-wrap: wrap;
  }

  .cal-toggle-btn {
    font-size: 13px;
    padding: 6px 14px;
  }

  #integplan-calendar-container .fc-toolbar {
    flex-direction: column;
    gap: 8px;
  }

  #integplan-calendar-container .fc-toolbar-title {
    font-size: 15px;
  }
}

/* ── E-Learning fullscreen: hide site chrome ─────────────────────────── */
body.elearning-fs-open {
  overflow: hidden !important;
}

body.elearning-fs-open .header-main,
body.elearning-fs-open .topbar {
  display: none !important;
}

/* ── E-Learning "Kurs starten / Weitermachen" buttons — white text, all states.
   High-specificity selector beats any global a{} or a:visited{} from theme skins. */
.integplan-dashboard .elearning-modules-grid a.btn-elearning,
.integplan-dashboard .elearning-modules-grid a.btn-elearning:link,
.integplan-dashboard .elearning-modules-grid a.btn-elearning:visited,
.integplan-dashboard .elearning-modules-grid a.btn-elearning:hover,
.integplan-dashboard .elearning-modules-grid a.btn-elearning:focus,
.integplan-dashboard .elearning-modules-grid a.btn-elearning:active {
  color: #ffffff !important;
  text-decoration: none !important;
}

/* ── Zertifikatskurs progress page ─────────────────────────────────────────── */

.certificate-status-box {
  padding: 20px 24px;
  border-radius: 6px;
  margin-bottom: 30px;
}
.certificate-status-box--success {
  background: #e6f4ea;
  border-left: 5px solid #2e8b57;
}
.certificate-status-box--success h2 { color: #1a5c37; }
.certificate-status-box--warning {
  background: #fff8e1;
  border-left: 5px solid #f0a500;
}
.certificate-status-box--warning h2 { color: #8a5c00; }
.certificate-status-box--neutral {
  background: #f4f6f8;
  border-left: 5px solid #aab0b8;
}

.certificate-progress-header {
  margin-bottom: 24px;
}
.certificate-progress-header h2 { margin-bottom: 4px; }
.certificate-progress-header p { color: #555; margin: 0; }

.certificate-categories {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-bottom: 32px;
}

.certificate-category {
  background: #f9fafc;
  border: 1px solid #dde1e7;
  border-radius: 6px;
  padding: 16px 20px;
}
.certificate-category--done {
  border-color: #2e8b57;
  background: #f0faf3;
}

.certificate-category__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}
.certificate-category__header h3 {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
}
.certificate-category__count {
  font-weight: 700;
  color: #333;
  font-size: 1rem;
}
.certificate-category--done .certificate-category__count { color: #2e8b57; }

.certificate-category__bar {
  height: 8px;
  background: #dde1e7;
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: 12px;
}
.certificate-category__bar-fill {
  height: 100%;
  background: #3a7fc1;
  border-radius: 4px;
  transition: width 0.3s ease;
}
.certificate-category--done .certificate-category__bar-fill { background: #2e8b57; }

.certificate-category__events {
  margin: 0;
  padding-left: 18px;
  font-size: 0.85rem;
  color: #555;
}
.certificate-category__events li { margin-bottom: 2px; }

/* ── Zertifikatskurs Booking Page ──────────────────────────────────────────── */
.termin-section { padding: 0; }

.termin-my-slot { margin-bottom: 28px; }
.termin-my-slot h2,
.termin-available h2 { font-size: 1.1rem; font-weight: 600; margin-bottom: 14px; color: #333; }

.termin-cancel-hint { font-size: 0.88rem; color: #666; margin: 10px 0 8px; }
.termin-no-slots { color: #666; font-size: 0.95rem; padding: 16px 0; }

.certificate-cta-btn {
  display: inline-block; margin-top: 14px;
  background: #2a7fc1; color: #fff !important; padding: 10px 24px;
  border-radius: 4px; font-weight: 600; text-decoration: none;
}
.certificate-cta-btn:hover,
.certificate-cta-btn:focus { background: #1f6298; color: #fff !important; }

/* ── Calendar picker ────────────────────────────────────────────────────────── */
.termin-cal-wrapper {
  display: flex;
  background: #fff;
  border: 1px solid #e2e6ea;
  border-radius: 10px;
  overflow: hidden;
  max-width: 580px;
}
.termin-cal-picker {
  flex: 1;
  padding: 22px 20px;
  min-width: 260px;
}

/* Month navigation */
.termin-cal-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 18px;
}
.termin-cal-month-title {
  font-size: 1rem;
  font-weight: 700;
  color: #1a2e3d;
  letter-spacing: -0.01em;
}
.termin-cal-btn-prev,
.termin-cal-btn-next {
  background: none;
  border: 1px solid #dde1e7;
  border-radius: 50%;
  width: 30px; height: 30px;
  cursor: pointer;
  font-size: 1.1rem;
  line-height: 1;
  color: #555;
  display: flex; align-items: center; justify-content: center;
  padding: 0;
  transition: background 0.15s, border-color 0.15s;
}
.termin-cal-btn-prev:hover:not(:disabled),
.termin-cal-btn-next:hover:not(:disabled) { background: #f0f4f8; border-color: #aab0b8; }
.termin-cal-btn-prev:disabled,
.termin-cal-btn-next:disabled { opacity: 0.28; cursor: default; }

/* Weekday header row */
.termin-cal-weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  margin-bottom: 4px;
}
.termin-cal-weekdays span {
  text-align: center;
  font-size: 0.72rem;
  font-weight: 700;
  color: #9aa3ad;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 4px 0;
}

/* Week rows and day cells */
.termin-cal-week {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
  margin-bottom: 2px;
}
.termin-cal-cell {
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-size: 0.88rem;
  border: none;
  background: none;
  cursor: default;
  font-family: inherit;
  transition: background 0.13s, color 0.13s;
}
.termin-cal-cell--empty { }
.termin-cal-cell--inactive { color: #c8cdd4; }
.termin-cal-cell--available {
  background: #e8f3fd;
  color: #1a5fa0;
  font-weight: 700;
  cursor: pointer;
}
.termin-cal-cell--available:hover {
  background: #2a7fc1;
  color: #fff;
}
.termin-cal-cell--selected,
.termin-cal-cell--selected:hover {
  background: #1a4f7a !important;
  color: #fff !important;
}

/* Right: time slot panel */
.termin-cal-slots-panel {
  width: 190px;
  flex-shrink: 0;
  border-left: 1px solid #e2e6ea;
  padding: 22px 16px;
  background: #f7f9fb;
  display: flex;
  flex-direction: column;
}
.termin-cal-slots-header {
  font-size: 0.82rem;
  font-weight: 700;
  color: #555;
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid #e2e6ea;
  letter-spacing: 0.01em;
}
.termin-cal-slots-list {
  display: flex;
  flex-direction: column;
  gap: 7px;
  overflow-y: auto;
  max-height: 280px;
}
.termin-book-form { margin: 0; }
.termin-time-btn {
  width: 100%;
  padding: 9px 12px;
  background: #fff;
  border: 1px solid #c5d8ec;
  border-radius: 6px;
  color: #1a5fa0;
  font-size: 0.92rem;
  font-weight: 600;
  cursor: pointer;
  text-align: center;
  font-family: inherit;
  transition: background 0.14s, color 0.14s, border-color 0.14s;
}
.termin-time-btn:hover { background: #2a7fc1; color: #fff; border-color: #2a7fc1; }
.termin-time-btn--selected,
.termin-time-btn--selected:hover {
  background: #1a5fa0;
  color: #fff;
  border-color: #1a5fa0;
}

/* Two-step booking confirm */
.termin-confirm-wrap {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid #dde4ec;
}
.termin-confirm-summary {
  font-size: 0.85rem;
  color: #555;
  margin-bottom: 8px;
  text-align: center;
}
.termin-confirm-btn {
  display: block;
  width: 100%;
  padding: 11px 16px;
  background: #2e8b57;
  color: #fff;
  border: none;
  border-radius: 6px;
  font-size: 0.95rem;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  transition: background 0.14s;
}
.termin-confirm-btn:hover { background: #246b44; }

/* Responsive: stack on narrow screens */
@media (max-width: 540px) {
  .termin-cal-wrapper { flex-direction: column; max-width: 100%; }
  .termin-cal-slots-panel { width: auto; border-left: none; border-top: 1px solid #e2e6ea; }
}

/* ── Certificate page — booked appointment card ────────────────────────────── */
.certificate-booked-slot {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap;
  gap: 14px; padding: 14px 18px; border-radius: 6px; margin-bottom: 20px;
  background: #eaf6ed; border: 1px solid #a8d5b0;
}
.certificate-booked-slot--upcoming {
  background: #eaf6ed; border: 1px solid #a8d5b0;
}
.certificate-booked-slot--none {
  background: #f5f5f5; border: 1px solid #ddd; color: #666;
  align-items: center; gap: 8px;
}
.certificate-booked-slot__info {
  display: flex; align-items: center; gap: 12px;
}
.certificate-booked-slot__icon { font-size: 1.4rem; line-height: 1; }
.certificate-booked-slot__label { font-size: 0.8rem; color: #4a7a59; text-transform: uppercase; letter-spacing: 0.04em; font-weight: 600; }
.certificate-booked-slot__date { font-size: 1.05rem; font-weight: 700; color: #1e4d2b; margin-top: 2px; }
.certificate-booked-slot__hint { margin: 12px 0 0; font-size: 0.88rem; color: #555; }
.certificate-cancel-form { margin: 0; }
.certificate-book-link { font-weight: 600; color: #2a7fc1; text-decoration: underline; margin-left: 4px; }

/* ── Zertifikatskurs CTA link on registration confirmation ─────────────────── */
.messages--status .zk-registration-cta {
  display: inline-block; margin-left: 6px;
  font-weight: 700; color: #155724 !important; text-decoration: none;
  padding: 2px 12px; border: 2px solid #155724; border-radius: 4px;
  white-space: nowrap; font-size: 0.92rem;
}
.messages--status .zk-registration-cta:hover,
.messages--status .zk-registration-cta:focus {
  background: #155724; color: #fff !important;
}

/* ── Cancel button ─────────────────────────────────────────────────────────── */
.termin-cancel-actions { margin-top: 12px; }
.termin-cancel-form { margin: 0; }
.certificate-cancel-form { margin: 0; }
.btn-outline-danger,
.termin-cancel-btn {
  background: transparent;
  color: #b00020; border: 1px solid #b00020;
  padding: 7px 18px; border-radius: 4px; cursor: pointer;
  font-size: 0.88rem; font-weight: 500;
  transition: background 0.15s, color 0.15s;
}
.btn-outline-danger:hover,
.termin-cancel-btn:hover { background: #b00020; color: #fff; }

/* ── Zertifikatskurs booking calendar — brand refinement ─────────────────── */
.integplan-dashboard .termin-section {
  --ip-brand: #d66016;
  --ip-brand-dark: #b34e0e;
  --ip-brand-deep: #7d2c06;
  --ip-brand-soft: #fff3eb;
  --ip-ink: #1c2733;
  --ip-muted: #67717c;
  --ip-line: #ead8cc;
}

.integplan-dashboard .termin-booking-intro {
  max-width: 620px;
  margin: -6px 0 18px;
  color: var(--ip-muted);
  font-size: 0.94rem;
  line-height: 1.55;
}

.integplan-dashboard .termin-available h2,
.integplan-dashboard .termin-my-slot h2 {
  color: var(--ip-ink);
  letter-spacing: -0.01em;
}

.integplan-dashboard .termin-available h2::before,
.integplan-dashboard .termin-my-slot h2::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: 9px;
  border-radius: 999px;
  background: var(--ip-brand);
  box-shadow: 0 0 0 5px rgba(214, 96, 22, 0.12);
  vertical-align: 1px;
}

.integplan-dashboard .termin-cal-wrapper {
  max-width: 700px;
  border-color: var(--ip-line);
  border-radius: 18px;
  background: linear-gradient(135deg, #ffffff 0%, #fff8f3 100%);
  box-shadow: 0 18px 44px rgba(28, 39, 51, 0.10);
}

.integplan-dashboard .termin-cal-picker {
  padding: 26px 24px 24px;
}

.integplan-dashboard .termin-cal-month-title {
  color: var(--ip-ink);
  font-size: 1.08rem;
}

.integplan-dashboard .termin-cal-btn-prev,
.integplan-dashboard .termin-cal-btn-next {
  border-color: rgba(214, 96, 22, 0.28);
  color: var(--ip-brand-dark);
  background: #fff;
}

.integplan-dashboard .termin-cal-btn-prev:hover:not(:disabled),
.integplan-dashboard .termin-cal-btn-next:hover:not(:disabled),
.integplan-dashboard .termin-cal-btn-prev:focus-visible,
.integplan-dashboard .termin-cal-btn-next:focus-visible {
  background: var(--ip-brand);
  border-color: var(--ip-brand);
  color: #fff;
}

.integplan-dashboard .termin-cal-weekdays span {
  color: var(--ip-brand-dark);
}

.integplan-dashboard .termin-cal-cell {
  position: relative;
}

.integplan-dashboard .termin-cal-cell--available {
  background: var(--ip-brand-soft);
  color: var(--ip-brand-dark);
  box-shadow: inset 0 0 0 1px rgba(214, 96, 22, 0.18);
}

.integplan-dashboard .termin-cal-cell--available::after {
  content: "";
  position: absolute;
  bottom: 5px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: currentColor;
}

.integplan-dashboard .termin-cal-cell--available:hover,
.integplan-dashboard .termin-cal-cell--available:focus-visible,
.integplan-dashboard .termin-cal-cell--selected,
.integplan-dashboard .termin-cal-cell--selected:hover {
  background: var(--ip-brand-dark) !important;
  color: #fff !important;
  box-shadow: 0 8px 18px rgba(214, 96, 22, 0.28);
}

.integplan-dashboard .termin-cal-slots-panel {
  width: 220px;
  border-left-color: var(--ip-line);
  background: #fff4ec;
}

.integplan-dashboard .termin-cal-slots-header {
  color: var(--ip-ink);
  border-bottom-color: rgba(214, 96, 22, 0.22);
}

.integplan-dashboard .termin-time-btn {
  border-color: rgba(214, 96, 22, 0.32);
  color: var(--ip-brand-dark);
  background: #fff;
}

.integplan-dashboard .termin-time-btn:hover,
.integplan-dashboard .termin-time-btn:focus-visible,
.integplan-dashboard .termin-time-btn--selected,
.integplan-dashboard .termin-time-btn--selected:hover {
  background: var(--ip-brand-dark);
  border-color: var(--ip-brand-dark);
  color: #fff;
}

.integplan-dashboard .termin-confirm-wrap {
  border-top-color: rgba(214, 96, 22, 0.24);
}

.integplan-dashboard .termin-confirm-btn,
.integplan-dashboard .certificate-cta-btn {
  background: var(--ip-brand);
  color: #fff !important;
  border-radius: 999px;
  box-shadow: 0 10px 22px rgba(214, 96, 22, 0.22);
}

.integplan-dashboard .termin-confirm-btn:hover,
.integplan-dashboard .termin-confirm-btn:focus-visible,
.integplan-dashboard .certificate-cta-btn:hover,
.integplan-dashboard .certificate-cta-btn:focus {
  background: var(--ip-brand-dark);
  color: #fff !important;
}

.integplan-dashboard .certificate-booked-slot {
  border-color: rgba(214, 96, 22, 0.34);
  background: linear-gradient(135deg, #fff7f1 0%, #fff 100%);
  box-shadow: 0 10px 28px rgba(28, 39, 51, 0.07);
}

.integplan-dashboard .certificate-booked-slot__label,
.integplan-dashboard .certificate-booked-slot__date,
.integplan-dashboard .certificate-book-link {
  color: var(--ip-brand-dark);
}

@media (max-width: 540px) {
  .integplan-dashboard .termin-cal-wrapper {
    border-radius: 14px;
  }

  .integplan-dashboard .termin-cal-slots-panel {
    width: auto;
    border-left: none;
    border-top-color: var(--ip-line);
  }
}

/* ── Dashboard module visual refresh ──────────────────────────────────────── */
.integplan-dashboard {
  --ip-brand: #d66016;
  --ip-brand-dark: #b34e0e;
  --ip-brand-deep: #7d2c06;
  --ip-brand-soft: #fff4ec;
  --ip-brand-soft-2: #fff9f5;
  --ip-ink: #1c2733;
  --ip-muted: #626b76;
  --ip-line: #ead8cc;
  --ip-line-soft: rgba(214, 96, 22, 0.16);
}

.integplan-dashboard .dashboard-header {
  margin-bottom: 2rem;
  padding-bottom: 1.1rem;
  border-bottom: 2px solid var(--ip-brand);
}

.integplan-dashboard .dashboard-title {
  color: var(--ip-ink);
  letter-spacing: -0.02em;
}

.integplan-dashboard .dashboard-subtitle {
  color: var(--ip-muted);
}

.integplan-dashboard .dashboard-layout {
  gap: clamp(1.4rem, 3vw, 2.25rem);
}

.integplan-dashboard .dashboard-section {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}

.integplan-dashboard .dashboard-toc {
  border-color: rgba(28, 39, 51, 0.10);
  border-radius: 18px;
  padding: 0.85rem;
  box-shadow: 0 16px 40px rgba(28, 39, 51, 0.07);
}

.integplan-dashboard .dashboard-toc__list {
  gap: 0.15rem;
}

.integplan-dashboard .dashboard-toc__list a {
  width: 100%;
  border-bottom: 0;
  border-radius: 12px;
  padding: 0.62rem 0.8rem;
  color: #3d4651;
}

.integplan-dashboard .dashboard-toc__list a:hover,
.integplan-dashboard .dashboard-toc__list a:focus,
.integplan-dashboard .dashboard-toc__list a.active {
  color: var(--ip-brand-dark);
  background: var(--ip-brand-soft);
  text-decoration: none;
}

.integplan-dashboard .certificate-section,
.integplan-dashboard .termin-section {
  max-width: 820px;
}

.integplan-dashboard .certificate-progress-header {
  margin: 8px 0 20px;
}

.integplan-dashboard .certificate-progress-header h2 {
  color: var(--ip-ink);
  font-size: 1.28rem;
  letter-spacing: -0.015em;
}

.integplan-dashboard .certificate-progress-header p {
  color: var(--ip-muted);
}

.integplan-dashboard .certificate-status-box {
  border: 1px solid var(--ip-line-soft);
  border-left: 4px solid var(--ip-brand);
  border-radius: 18px;
  background: linear-gradient(135deg, #fff 0%, var(--ip-brand-soft-2) 100%);
  box-shadow: 0 12px 34px rgba(28, 39, 51, 0.07);
}

.integplan-dashboard .certificate-status-box h2 {
  color: var(--ip-ink);
}

.integplan-dashboard .certificate-status-box--success,
.integplan-dashboard .certificate-status-box--warning,
.integplan-dashboard .certificate-status-box--neutral {
  border-left-color: var(--ip-brand);
  background: linear-gradient(135deg, #fff 0%, var(--ip-brand-soft-2) 100%);
}

.integplan-dashboard .certificate-status-box--success h2,
.integplan-dashboard .certificate-status-box--warning h2 {
  color: var(--ip-brand-dark);
}

.integplan-dashboard .certificate-categories {
  gap: 16px;
}

.integplan-dashboard .certificate-category {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(28, 39, 51, 0.10);
  border-radius: 16px;
  background: #fff;
  padding: 18px 20px;
  box-shadow: 0 10px 28px rgba(28, 39, 51, 0.045);
}

.integplan-dashboard .certificate-category::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: #e5e9ef;
}

.integplan-dashboard .certificate-category--done {
  border-color: rgba(214, 96, 22, 0.34);
  background: linear-gradient(135deg, #fff 0%, #fff8f3 100%);
}

.integplan-dashboard .certificate-category--done::before {
  background: var(--ip-brand);
}

.integplan-dashboard .certificate-category__header h3 {
  color: var(--ip-ink);
  font-size: 1.08rem;
  letter-spacing: -0.015em;
}

.integplan-dashboard .certificate-category__count,
.integplan-dashboard .certificate-category--done .certificate-category__count {
  color: var(--ip-brand-dark);
  font-size: 0.82rem;
  background: var(--ip-brand-soft);
  border-radius: 999px;
  padding: 0.2rem 0.55rem;
}

.integplan-dashboard .certificate-category__bar {
  height: 9px;
  background: #eef1f5;
  border-radius: 999px;
}

.integplan-dashboard .certificate-category__bar-fill {
  background: linear-gradient(90deg, #e8971a 0%, var(--ip-brand) 70%, var(--ip-brand-dark) 100%);
  border-radius: inherit;
}

.integplan-dashboard .certificate-category--done .certificate-category__bar-fill {
  background: linear-gradient(90deg, #e8971a 0%, var(--ip-brand) 65%, var(--ip-brand-dark) 100%);
}

.integplan-dashboard .certificate-category__events {
  color: #47515d;
  font-size: 0.84rem;
  line-height: 1.55;
}

.integplan-dashboard .certificate-category__events li::marker {
  color: var(--ip-brand);
}

.integplan-dashboard .certificate-booked-slot {
  border-radius: 16px;
  padding: 13px 16px;
}

.integplan-dashboard .certificate-booked-slot--none {
  justify-content: space-between;
}

.integplan-dashboard .termin-available {
  border: 1px solid rgba(28, 39, 51, 0.10);
  border-radius: 18px;
  background: #fff;
  padding: 20px;
  box-shadow: 0 12px 34px rgba(28, 39, 51, 0.06);
}

.integplan-dashboard .termin-cal-wrapper {
  max-width: 700px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.integplan-dashboard .termin-cal-picker {
  padding-left: 0;
}

.integplan-dashboard .termin-cal-slots-panel {
  border-left-color: var(--ip-line-soft);
  border-radius: 14px;
  background: #fff8f3;
}

.integplan-dashboard .profile-info,
.integplan-dashboard .registration-card,
.integplan-dashboard .registrations-empty,
.integplan-dashboard .events-year-group,
.integplan-dashboard .attended-events-empty,
.integplan-dashboard .elearning-module-card {
  border: 1px solid rgba(28, 39, 51, 0.10);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(28, 39, 51, 0.045);
}

.integplan-dashboard .profile-field,
.integplan-dashboard .event-card {
  border-left-color: var(--ip-brand);
  border-radius: 12px;
  background: var(--ip-brand-soft-2);
}

.integplan-dashboard .year-title {
  color: var(--ip-brand-dark);
  border-bottom-color: var(--ip-brand);
}

.integplan-dashboard .progress-bar-container {
  background: #eef1f5;
  border-radius: 999px;
}

.integplan-dashboard .progress-bar {
  background: linear-gradient(90deg, #e8971a 0%, var(--ip-brand) 70%, var(--ip-brand-dark) 100%);
  border-radius: inherit;
}

.integplan-dashboard .progress-complete,
.integplan-dashboard .elearning-complete-badge {
  color: var(--ip-brand-dark);
}

.integplan-dashboard .elearning-complete-badge {
  background: var(--ip-brand-soft);
}

@media (max-width: 992px) {
  .integplan-dashboard .dashboard-toc__list a {
    width: auto;
    border-color: rgba(214, 96, 22, 0.18);
  }

  .integplan-dashboard .certificate-section,
  .integplan-dashboard .termin-section {
    max-width: none;
  }
}


/* ── Auth pages and anonymous header actions — 2026-06 refresh ────────────── */
.page-user-login,
.page-user-register {
  --ip-auth-brand: #d66016;
  --ip-auth-brand-dark: #a9480f;
  --ip-auth-brand-hover: #ee732d;
  --ip-auth-soft: #fff4ec;
  --ip-auth-soft-2: #fff9f5;
  --ip-auth-ink: #1c2733;
  --ip-auth-muted: #626b76;
  --ip-auth-line: rgba(214, 96, 22, 0.18);
  --ip-auth-shadow: 0 22px 60px rgba(28, 39, 51, 0.10);
  min-height: 100vh;
  background:
    radial-gradient(circle at 12% 10%, rgba(251, 231, 217, 0.85) 0, rgba(251, 231, 217, 0) 28%),
    linear-gradient(135deg, #fff9f5 0%, #fafaf9 48%, #f3f4f5 100%);
}

.page-user-login .bg,
.page-user-register .bg {
  display: none !important;
}

.page-user-login .main-page,
.page-user-register .main-page {
  min-height: 100vh;
  padding: clamp(28px, 5vw, 64px) 16px;
}

.page-user-login .branding,
.page-user-register .branding {
  margin-bottom: 24px;
}

.page-user-login .content-full,
.page-user-register .content-full {
  display: flex;
  justify-content: center;
}

.page-user-login .content-main,
.page-user-register .content-main {
  width: min(100%, 520px);
  margin: 0 auto;
  border: 1px solid rgba(28, 39, 51, 0.08);
  border-top: 4px solid var(--ip-auth-brand);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.96);
  padding: clamp(24px, 4vw, 38px);
  box-shadow: var(--ip-auth-shadow);
}

.page-user-register .content-main {
  width: min(100%, 620px);
}

.page-user-login .content-main::before,
.page-user-register .content-main::before {
  display: block;
  margin-bottom: 8px;
  color: var(--ip-auth-brand-dark);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.page-user-login .content-main::before {
  content: "IntegPlan Konto";
}

.page-user-register .content-main::before {
  content: "Registrierung";
}

.page-user-login .page-title,
.page-user-register .page-title,
.page-user-login h1,
.page-user-register h1 {
  color: var(--ip-auth-ink) !important;
  font-size: clamp(1.8rem, 3vw, 2.25rem);
  line-height: 1.15;
  margin: 0 0 22px !important;
  letter-spacing: -0.015em;
}

.page-user-login .user-form,
.page-user-register .user-form {
  color: var(--ip-auth-ink);
}

.page-user-login .user-form .form-item,
.page-user-register .user-form .form-item {
  margin-bottom: 18px;
}

.page-user-login .user-form label,
.page-user-register .user-form label,
.page-user-login .user-form details summary,
.page-user-register .user-form details summary,
.page-user-login .captcha__title,
.page-user-register .captcha__title {
  color: var(--ip-auth-ink) !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: 0.94rem !important;
  font-weight: 700 !important;
  line-height: 1.35;
}

.page-user-login .user-form input[type="text"],
.page-user-login .user-form input[type="email"],
.page-user-login .user-form input[type="password"],
.page-user-register .user-form input[type="text"],
.page-user-register .user-form input[type="email"],
.page-user-register .user-form input[type="password"] {
  width: 100%;
  min-height: 48px;
  border: 1px solid rgba(28, 39, 51, 0.14) !important;
  border-radius: 12px !important;
  background: #fff !important;
  color: var(--ip-auth-ink) !important;
  padding: 0 14px !important;
  box-shadow: none !important;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
}

.page-user-login .user-form input:focus,
.page-user-register .user-form input:focus {
  border-color: var(--ip-auth-brand) !important;
  background: #fff !important;
  box-shadow: 0 0 0 4px rgba(214, 96, 22, 0.12) !important;
  outline: none !important;
}

.page-user-login .description,
.page-user-register .description,
.page-user-login .password-strength,
.page-user-register .password-strength {
  color: var(--ip-auth-muted) !important;
  font-size: 0.88rem;
  line-height: 1.55;
}

.page-user-login .captcha,
.page-user-register .captcha {
  margin: 24px 0 20px;
  border: 1px solid var(--ip-auth-line) !important;
  border-left: 4px solid var(--ip-auth-brand) !important;
  border-radius: 16px !important;
  background: var(--ip-auth-soft-2) !important;
  padding: 18px !important;
}

.page-user-login .captcha legend,
.page-user-register .captcha legend {
  width: auto;
  margin: 0 0 12px;
  border: 0;
  padding: 0 8px 0 0;
  background: transparent;
}

.page-user-login .captcha__title,
.page-user-register .captcha__title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 !important;
}

.page-user-login .captcha__title::before,
.page-user-register .captcha__title::before {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: var(--ip-auth-brand);
  box-shadow: 0 0 0 4px rgba(214, 96, 22, 0.12);
}

.page-user-login .captcha__element,
.page-user-register .captcha__element {
  display: grid;
  gap: 12px;
}

.page-user-login .g-recaptcha,
.page-user-register .g-recaptcha {
  max-width: 100%;
  overflow: hidden;
}

.page-user-login .captcha__description,
.page-user-register .captcha__description {
  margin-top: 2px;
  color: var(--ip-auth-muted) !important;
}

.page-user-login .form-actions,
.page-user-register .form-actions {
  margin-top: 24px !important;
}

.page-user-login .form-actions input[type="submit"],
.page-user-register .form-actions input[type="submit"] {
  width: 100%;
  min-height: 50px;
  border: 0 !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg, var(--ip-auth-brand) 0%, var(--ip-auth-brand-hover) 100%) !important;
  color: #fff !important;
  font-weight: 700 !important;
  letter-spacing: 0.01em;
  box-shadow: 0 12px 24px rgba(214, 96, 22, 0.24) !important;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.page-user-login .form-actions input[type="submit"]:hover,
.page-user-login .form-actions input[type="submit"]:focus,
.page-user-register .form-actions input[type="submit"]:hover,
.page-user-register .form-actions input[type="submit"]:focus {
  background: linear-gradient(135deg, var(--ip-auth-brand-dark) 0%, var(--ip-auth-brand) 100%) !important;
  box-shadow: 0 16px 30px rgba(169, 72, 15, 0.28) !important;
  transform: translateY(-1px);
}

.page-user-login .login-secondary {
  margin-top: 18px;
  text-align: center;
}

.page-user-login .login-secondary a,
.page-user-register .content-main a {
  color: var(--ip-auth-brand-dark) !important;
  font-weight: 700;
  text-decoration: none;
}

.page-user-login .login-secondary a:hover,
.page-user-register .content-main a:hover {
  color: var(--ip-auth-brand) !important;
  text-decoration: underline;
}

.topbar .topbar-right ul.gva_topbar_menu {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  margin: 0;
}

.topbar .topbar-right ul.gva_topbar_menu > li {
  margin: 0 !important;
  padding: 0 !important;
}

.topbar .topbar-right ul.gva_topbar_menu > li > a {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  border: 1px solid rgba(214, 96, 22, 0.22);
  border-radius: 999px;
  padding: 7px 14px !important;
  color: #a9480f !important;
  background: #fff9f5;
  font-weight: 700;
  line-height: 1;
  text-decoration: none !important;
  transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}

.topbar .topbar-right ul.gva_topbar_menu > li:first-child > a,
.topbar .topbar-right ul.gva_topbar_menu > li:last-child > a {
  border-color: #d66016;
  background: #d66016;
  color: #fff !important;
  box-shadow: 0 8px 18px rgba(214, 96, 22, 0.18);
}

.topbar .topbar-right ul.gva_topbar_menu > li > a:hover,
.topbar .topbar-right ul.gva_topbar_menu > li > a:focus {
  border-color: #a9480f;
  background: #fff4ec;
  color: #a9480f !important;
  text-decoration: none !important;
  transform: translateY(-1px);
}

.topbar .topbar-right ul.gva_topbar_menu > li:first-child > a:hover,
.topbar .topbar-right ul.gva_topbar_menu > li:first-child > a:focus,
.topbar .topbar-right ul.gva_topbar_menu > li:last-child > a:hover,
.topbar .topbar-right ul.gva_topbar_menu > li:last-child > a:focus {
  background: #a9480f;
  color: #fff !important;
  box-shadow: 0 10px 22px rgba(169, 72, 15, 0.24);
}

@media (max-width: 575px) {
  .page-user-login .main-page,
  .page-user-register .main-page {
    padding: 20px 12px;
  }

  .page-user-login .content-main,
  .page-user-register .content-main {
    border-radius: 14px;
    padding: 22px 18px;
  }

  .topbar .topbar-left,
  .topbar .topbar-right {
    width: 100%;
  }

  .topbar .topbar-right ul.gva_topbar_menu {
    justify-content: center;
    flex-wrap: wrap;
  }
}

/* ── Auth page simplification pass — reduce empty header space ────────────── */
.page-user-login .main-page,
.page-user-register .main-page {
  padding-top: clamp(18px, 3vw, 34px);
  padding-bottom: clamp(28px, 5vw, 56px);
}

.page-user-login .branding,
.page-user-register .branding {
  margin: 0 auto 14px;
  line-height: 1;
}

.page-user-login .branding img,
.page-user-register .branding img {
  max-width: min(280px, 72vw);
  max-height: 78px;
  width: auto;
  height: auto;
}

.page-user-login .help.show,
.page-user-register .help.show {
  min-height: 0;
  margin: 0;
  padding: 0;
}

.page-user-login .help.show .container,
.page-user-register .help.show .container,
.page-user-login .help.show .content-inner,
.page-user-register .help.show .content-inner {
  min-height: 0;
  padding-top: 0;
  padding-bottom: 0;
}

.page-user-login .content-main,
.page-user-register .content-main {
  border-top-width: 3px;
  border-radius: 14px;
  padding: clamp(22px, 3vw, 32px);
  box-shadow: 0 14px 38px rgba(28, 39, 51, 0.075);
}

.page-user-login .content-main::before,
.page-user-register .content-main::before {
  margin-bottom: 6px;
  font-size: 0.76rem;
}

.page-user-login .captcha,
.page-user-register .captcha {
  border-radius: 12px !important;
  padding: 15px !important;
}

.topbar .topbar-right ul.gva_topbar_menu > li > a {
  min-height: 32px;
  padding: 7px 13px !important;
  box-shadow: none;
}

.topbar .topbar-right ul.gva_topbar_menu > li:first-child > a,
.topbar .topbar-right ul.gva_topbar_menu > li:last-child > a {
  border-color: #d66016;
  background: #d66016;
  color: #fff !important;
  box-shadow: none;
}

/* ── Password reset page joins the refreshed auth layout ─────────────────── */
.page-user-pass {
  --ip-auth-brand: #d66016;
  --ip-auth-brand-dark: #a9480f;
  --ip-auth-brand-hover: #ee732d;
  --ip-auth-soft-2: #fff9f5;
  --ip-auth-ink: #1c2733;
  --ip-auth-muted: #626b76;
  --ip-auth-line: rgba(214, 96, 22, 0.18);
  min-height: 100vh;
  background:
    radial-gradient(circle at 12% 10%, rgba(251, 231, 217, 0.75) 0, rgba(251, 231, 217, 0) 26%),
    linear-gradient(135deg, #fff9f5 0%, #fafaf9 48%, #f3f4f5 100%);
}

.page-user-pass .bg {
  display: none !important;
}

.page-user-pass .main-page {
  min-height: 100vh;
  padding: clamp(18px, 3vw, 34px) 16px clamp(28px, 5vw, 56px);
}

.page-user-pass .branding {
  margin: 0 auto 14px;
  line-height: 1;
}

.page-user-pass .branding img {
  max-width: min(280px, 72vw);
  max-height: 78px;
  width: auto;
  height: auto;
}

.page-user-pass .help.show,
.page-user-pass .help.show .container,
.page-user-pass .help.show .content-inner {
  min-height: 0;
  margin: 0;
  padding-top: 0;
  padding-bottom: 0;
}

.page-user-pass .content-full {
  display: flex;
  justify-content: center;
}

.page-user-pass .content-main {
  width: min(100%, 520px);
  margin: 0 auto;
  border: 1px solid rgba(28, 39, 51, 0.08);
  border-top: 3px solid var(--ip-auth-brand);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.96);
  padding: clamp(22px, 3vw, 32px);
  box-shadow: 0 14px 38px rgba(28, 39, 51, 0.075);
}

.page-user-pass .content-main::before {
  content: "Konto wiederherstellen";
  display: block;
  margin-bottom: 6px;
  color: var(--ip-auth-brand-dark);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.page-user-pass .page-title,
.page-user-pass h1 {
  color: var(--ip-auth-ink) !important;
  font-size: clamp(1.8rem, 3vw, 2.25rem);
  line-height: 1.15;
  margin: 0 0 22px !important;
  letter-spacing: -0.015em;
}

.page-user-pass .user-form label,
.page-user-pass .captcha__title {
  color: var(--ip-auth-ink) !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: 0.94rem !important;
  font-weight: 700 !important;
}

.page-user-pass .user-form input[type="text"],
.page-user-pass .user-form input[type="email"] {
  width: 100%;
  min-height: 48px;
  border: 1px solid rgba(28, 39, 51, 0.14) !important;
  border-radius: 12px !important;
  background: #fff !important;
  color: var(--ip-auth-ink) !important;
  padding: 0 14px !important;
  box-shadow: none !important;
}

.page-user-pass .user-form input:focus {
  border-color: var(--ip-auth-brand) !important;
  box-shadow: 0 0 0 4px rgba(214, 96, 22, 0.12) !important;
  outline: none !important;
}

.page-user-pass .description {
  color: var(--ip-auth-muted) !important;
  font-size: 0.88rem;
  line-height: 1.55;
}

.page-user-pass .captcha {
  margin: 24px 0 20px;
  border: 1px solid var(--ip-auth-line) !important;
  border-left: 4px solid var(--ip-auth-brand) !important;
  border-radius: 12px !important;
  background: var(--ip-auth-soft-2) !important;
  padding: 15px !important;
}

.page-user-pass .captcha legend {
  width: auto;
  margin: 0 0 12px;
  border: 0;
  padding: 0 8px 0 0;
  background: transparent;
}

.page-user-pass .form-actions input[type="submit"] {
  width: 100%;
  min-height: 50px;
  border: 0 !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg, var(--ip-auth-brand) 0%, var(--ip-auth-brand-hover) 100%) !important;
  color: #fff !important;
  font-weight: 700 !important;
  box-shadow: 0 12px 24px rgba(214, 96, 22, 0.24) !important;
}

.page-user-pass .form-actions input[type="submit"]:hover,
.page-user-pass .form-actions input[type="submit"]:focus {
  background: linear-gradient(135deg, var(--ip-auth-brand-dark) 0%, var(--ip-auth-brand) 100%) !important;
}

/* ── Auth page simplification pass 2 — less box, less top whitespace ─────── */
.page-user-register .branding,
.page-user-login .branding,
.page-user-pass .branding {
  display: none !important;
}

.page-user-register .main-page,
.page-user-login .main-page,
.page-user-pass .main-page {
  min-height: auto;
  padding-top: clamp(22px, 4vw, 46px);
}

.page-user-register .content-main,
.page-user-login .content-main,
.page-user-pass .content-main {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  padding: 0;
}

.page-user-register .content-main {
  width: min(100%, 560px);
}

.page-user-register .content-main::before,
.page-user-login .content-main::before,
.page-user-pass .content-main::before {
  margin-bottom: 10px;
}

.page-user-register .block-system-main-block,
.page-user-login .block-system-main-block,
.page-user-pass .block-system-main-block {
  border-top: 3px solid #d66016;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.86);
  padding: clamp(22px, 3vw, 30px);
  box-shadow: 0 10px 28px rgba(28, 39, 51, 0.055);
}

.page-user-register .user-form .form-item,
.page-user-login .user-form .form-item,
.page-user-pass .user-form .form-item {
  margin-bottom: 15px;
}

.page-user-register .user-form input[type="text"],
.page-user-register .user-form input[type="email"],
.page-user-register .user-form input[type="password"],
.page-user-login .user-form input[type="text"],
.page-user-login .user-form input[type="email"],
.page-user-login .user-form input[type="password"],
.page-user-pass .user-form input[type="text"],
.page-user-pass .user-form input[type="email"] {
  border-radius: 8px !important;
}

.page-user-register .captcha,
.page-user-login .captcha,
.page-user-pass .captcha {
  border: 0 !important;
  border-left: 3px solid #d66016 !important;
  border-radius: 8px !important;
  background: #fff7f1 !important;
  padding: 14px 16px !important;
  box-shadow: none !important;
}

.page-user-register .captcha__title::before,
.page-user-login .captcha__title::before {
  display: none;
}

.page-user-register .form-actions input[type="submit"],
.page-user-login .form-actions input[type="submit"],
.page-user-pass .form-actions input[type="submit"] {
  border-radius: 8px !important;
  box-shadow: none !important;
}

.page-user-register .form-actions input[type="submit"]:hover,
.page-user-register .form-actions input[type="submit"]:focus,
.page-user-login .form-actions input[type="submit"]:hover,
.page-user-login .form-actions input[type="submit"]:focus,
.page-user-pass .form-actions input[type="submit"]:hover,
.page-user-pass .form-actions input[type="submit"]:focus {
  transform: none;
  box-shadow: none !important;
}

/* ── Auth pages use the normal site header — 2026-06 correction ───────────── */
.page-user-register #header .branding,
.page-user-login #header .branding,
.page-user-pass #header .branding {
  display: block !important;
}

.page-user-register .main-page > .branding,
.page-user-login .main-page > .branding,
.page-user-pass .main-page > .branding {
  display: none !important;
}

.page-user-register #header,
.page-user-login #header,
.page-user-pass #header {
  background: #fff;
  box-shadow: 0 1px 0 rgba(28, 39, 51, 0.08);
}

.page-user-register .main-page,
.page-user-login .main-page,
.page-user-pass .main-page {
  padding-top: clamp(26px, 4vw, 48px);
}

/* ── Compact auth logo restored under the normal header ──────────────────── */
.page-user-register .auth-branding,
.page-user-login .auth-branding,
.page-user-pass .auth-branding {
  margin: 0 auto 16px;
  line-height: 1;
}

.page-user-register .auth-branding img,
.page-user-login .auth-branding img,
.page-user-pass .auth-branding img {
  max-width: min(230px, 62vw);
  max-height: 58px;
  width: auto;
  height: auto;
}

.page-user-register .auth-branding .site-branding-logo,
.page-user-login .auth-branding .site-branding-logo,
.page-user-pass .auth-branding .site-branding-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* ── Auth fixed-header clearance — prevent form from sliding under header ─── */
body.path-user {
  scroll-padding-top: 140px;
}

.page-user-register,
.page-user-login,
.page-user-pass {
  padding-top: 0;
}

.page-user-register .main-page,
.page-user-login .main-page,
.page-user-pass .main-page {
  padding-top: clamp(34px, 5vw, 62px) !important;
  padding-bottom: clamp(40px, 6vw, 72px) !important;
}

.page-user-register #content,
.page-user-login #content,
.page-user-pass #content {
  position: relative;
  z-index: 1;
}

.page-user-register .block-system-main-block,
.page-user-login .block-system-main-block,
.page-user-pass .block-system-main-block {
  scroll-margin-top: 150px;
}

@media (max-width: 767px) {
  body.path-user {
    scroll-padding-top: 112px;
  }

  .page-user-register .main-page,
  .page-user-login .main-page,
  .page-user-pass .main-page {
    padding-top: 24px !important;
  }
}

/* ── Auth pages: keep header in document flow, not fixed overlay ──────────── */
body.path-user {
  padding-top: 0 !important;
  scroll-padding-top: 0;
}

.page-user-register .topbar,
.page-user-login .topbar,
.page-user-pass .topbar,
.page-user-register .header-main,
.page-user-login .header-main,
.page-user-pass .header-main {
  position: static !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
}

.page-user-register #header,
.page-user-login #header,
.page-user-pass #header {
  position: relative;
  z-index: 20;
}

.page-user-register .main-page,
.page-user-login .main-page,
.page-user-pass .main-page {
  padding-top: clamp(24px, 4vw, 44px) !important;
}

/* ── Auth page headings ─────────────────────────────────────────────────── */
.page-user-login .content-main::before,
.page-user-register .content-main::before,
.page-user-pass .content-main::before {
  content: none;
  display: none;
}

.page-user-login .auth-heading,
.page-user-register .auth-heading,
.page-user-pass .auth-heading {
  margin: 0 0 14px !important;
  color: var(--ip-auth-brand) !important;
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(18px, calc(17px + 0.35vw), 22px) !important;
  font-weight: 700;
  line-height: 1.25 !important;
  letter-spacing: 0.02em;
  overflow-wrap: normal;
  word-break: normal;
}

.page-user-login .user-login-form input[type="text"]:focus,
.page-user-login .user-login-form input[type="email"]:focus,
.page-user-login .user-login-form input[type="password"]:focus {
  border-color: var(--ip-auth-brand);
  outline: 3px solid rgba(214, 96, 22, 0.32) !important;
  outline-offset: 1px;
}

.page-user-login #user-login-form .form-actions input[type="submit"]:focus-visible,
.page-user-register #user-register-form .form-actions input[type="submit"]:focus-visible,
.page-user-login .login-secondary .reset-link:focus-visible {
  outline-color: var(--ip-auth-brand-dark) !important;
  outline-style: solid !important;
  outline-width: 3px !important;
  outline-offset: 3px !important;
}

.page-user-login .login-secondary .reset-link {
  display: inline-block;
}

/* Logout confirmation joins the refreshed auth layout */
.page-user-logout {
  --ip-auth-brand: #d66016;
  --ip-auth-brand-dark: #a9480f;
  --ip-auth-soft: #fff7f1;
  --ip-auth-ink: #1c2733;
  --ip-auth-muted: #626b76;
  min-height: 100vh;
  padding-top: 0;
  background:
    radial-gradient(circle at 12% 10%, rgba(251, 231, 217, 0.55) 0, rgba(251, 231, 217, 0) 24%),
    linear-gradient(135deg, #fff9f5 0%, #fafaf9 52%, #f3f4f5 100%);
}

.page-user-logout .bg {
  display: none !important;
}

.page-user-logout #header {
  position: relative;
  z-index: 20;
  background: #fff;
  box-shadow: 0 1px 0 rgba(28, 39, 51, 0.08);
}

.page-user-logout .topbar,
.page-user-logout .header-main {
  position: static !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
}

.page-user-logout #header .branding {
  display: block !important;
}

.page-user-logout .main-page {
  min-height: auto;
  padding: clamp(22px, 3vw, 34px) 16px clamp(34px, 5vw, 56px) !important;
}

.page-user-logout .help.show,
.page-user-logout .help.show .container,
.page-user-logout .help.show .content-inner {
  min-height: 0;
  margin: 0;
  padding-top: 0;
  padding-bottom: 0;
}

.page-user-logout .content-full {
  display: flex;
  justify-content: center;
}

.page-user-logout .content-main {
  width: min(100%, 440px);
  margin: 0 auto;
  color: var(--ip-auth-ink);
}

.page-user-logout .content-main::before {
  display: none;
}

.page-user-logout .block-system-main-block {
  border-top: 2px solid var(--ip-auth-brand);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.88);
  padding: clamp(18px, 3vw, 24px);
  box-shadow: 0 8px 22px rgba(28, 39, 51, 0.045);
  scroll-margin-top: 120px;
}

.page-user-logout .page-title,
.page-user-logout h1 {
  margin: 0 0 10px !important;
  color: var(--ip-auth-ink) !important;
  font-size: clamp(1.35rem, 2.4vw, 1.65rem);
  line-height: 1.22;
  letter-spacing: 0;
}

.page-user-logout #user-logout-confirm {
  margin: 0;
}

.page-user-logout #user-logout-confirm::before {
  content: "Sie werden von Ihrem IntegPlan-Konto abgemeldet.";
  display: block;
  margin: 0 0 16px;
  color: var(--ip-auth-muted);
  font-size: 0.95rem;
  line-height: 1.55;
}

.page-user-logout #user-logout-confirm > p {
  display: none;
}

.page-user-logout .form-actions {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  margin-top: 18px !important;
}

.page-user-logout .form-actions input[type="submit"] {
  min-height: 40px;
  border: 1px solid var(--ip-auth-brand) !important;
  border-radius: 7px !important;
  background: var(--ip-auth-brand) !important;
  color: #fff !important;
  padding: 9px 16px !important;
  font-size: 0.94rem !important;
  font-weight: 700 !important;
  line-height: 1.2;
  box-shadow: none !important;
  transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.page-user-logout .form-actions input[type="submit"]:hover,
.page-user-logout .form-actions input[type="submit"]:focus {
  border-color: var(--ip-auth-brand-dark) !important;
  background: var(--ip-auth-brand-dark) !important;
  color: #fff !important;
  box-shadow: none !important;
  transform: none;
}

.page-user-logout .form-actions a.button,
.page-user-logout .form-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: var(--ip-auth-brand-dark) !important;
  padding: 9px 10px;
  font-size: 0.94rem;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none !important;
  transition: background-color 0.18s ease, color 0.18s ease;
}

.page-user-logout .form-actions a.button:hover,
.page-user-logout .form-actions a.button:focus,
.page-user-logout .form-actions a:hover,
.page-user-logout .form-actions a:focus {
  background: var(--ip-auth-soft);
  color: var(--ip-auth-brand-dark) !important;
  text-decoration: none !important;
}

@media (max-width: 575px) {
  .page-user-logout .main-page {
    padding: 22px 12px 44px !important;
  }

  .page-user-logout .content-main {
    width: 100%;
  }

  .page-user-logout .form-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .page-user-logout .form-actions input[type="submit"],
  .page-user-logout .form-actions a.button,
  .page-user-logout .form-actions a {
    width: 100%;
  }
}

/* ── Registration confirmation page — branded email verification state ───── */
.path-registrierung .main-page {
  min-height: calc(100vh - 220px);
  padding: clamp(28px, 5vw, 58px) 16px clamp(44px, 7vw, 78px);
  background:
    radial-gradient(circle at 12% 10%, rgba(251, 231, 217, 0.75) 0, rgba(251, 231, 217, 0) 26%),
    linear-gradient(135deg, #fff9f5 0%, #fafaf9 48%, #f3f4f5 100%);
}

.path-registrierung #content.content-full {
  display: flex;
  justify-content: center;
}

.path-registrierung #content .container,
.path-registrierung #content .container-bg,
.path-registrierung #content .content-main {
  width: 100%;
  max-width: 720px;
}

.ip-registration-confirmation {
  --ip-auth-brand: #d66016;
  --ip-auth-brand-dark: #a9480f;
  --ip-auth-brand-hover: #ee732d;
  --ip-auth-soft: #fff7f1;
  --ip-auth-ink: #1c2733;
  --ip-auth-muted: #626b76;
  color: var(--ip-auth-ink);
}

.ip-registration-confirmation__panel {
  border-top: 3px solid var(--ip-auth-brand);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.9);
  padding: clamp(24px, 4vw, 36px);
  box-shadow: 0 10px 28px rgba(28, 39, 51, 0.055);
}

.ip-registration-confirmation__eyebrow {
  margin-bottom: 10px;
  color: var(--ip-auth-brand-dark);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ip-registration-confirmation__title {
  margin: 0 0 18px !important;
  color: var(--ip-auth-ink) !important;
  font-size: clamp(1.85rem, 3vw, 2.35rem);
  line-height: 1.15;
}

.ip-registration-confirmation__body,
.ip-registration-confirmation__note {
  margin: 0;
  color: var(--ip-auth-muted);
  font-size: 1rem;
  line-height: 1.65;
}

.ip-registration-confirmation__note {
  margin-top: 14px;
  border-left: 3px solid var(--ip-auth-brand);
  border-radius: 8px;
  background: var(--ip-auth-soft);
  padding: 12px 14px;
}

.ip-registration-confirmation__actions {
  display: flex;
  gap: 12px;
  margin-top: 26px;
}

.ip-registration-confirmation__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  border-radius: 8px;
  padding: 12px 18px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none !important;
  transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.ip-registration-confirmation__button--primary {
  border: 1px solid var(--ip-auth-brand);
  background: var(--ip-auth-brand);
  color: #fff !important;
}

.ip-registration-confirmation__button--primary:hover,
.ip-registration-confirmation__button--primary:focus {
  border-color: var(--ip-auth-brand-dark);
  background: var(--ip-auth-brand-dark);
  color: #fff !important;
}

.ip-registration-confirmation__button--secondary {
  border: 1px solid rgba(214, 96, 22, 0.28);
  background: #fff;
  color: var(--ip-auth-brand-dark) !important;
}

.ip-registration-confirmation__button--secondary:hover,
.ip-registration-confirmation__button--secondary:focus {
  border-color: var(--ip-auth-brand);
  background: var(--ip-auth-soft);
  color: var(--ip-auth-brand-dark) !important;
}

@media (max-width: 575px) {
  .path-registrierung .main-page {
    padding: 24px 12px 48px;
  }

  .ip-registration-confirmation__actions {
    display: grid;
  }

  .ip-registration-confirmation__button {
    width: 100%;
  }
}

.integplan-dashboard .certificate-category__events {
  color: #47515d;
  font-size: 14px;
  line-height: 1.55;
}

.integplan-dashboard .certificate-category__events li {
  margin-bottom: 0.35rem;
  padding-left: 0.15rem;
}

.integplan-dashboard .certificate-event-year {
  color: var(--ip-muted);
  margin-left: 0.2em;
  font-weight: 600;
  white-space: nowrap;
  transition: color 0.18s ease;
}

.integplan-dashboard .certificate-event-link,
.integplan-dashboard .certificate-event-link:link,
.integplan-dashboard .certificate-event-link:visited {
  border-radius: 3px;
  color: inherit;
  font-weight: inherit;
  text-decoration: none;
  transition: color 0.18s ease, background-color 0.18s ease;
}

.integplan-dashboard .certificate-event-link:hover,
.integplan-dashboard .certificate-event-link:focus-visible {
  color: var(--ip-brand-action);
  background: rgba(169, 72, 15, 0.07);
  text-decoration: none;
}

.integplan-dashboard .certificate-event-link:hover .certificate-event-year,
.integplan-dashboard .certificate-event-link:focus-visible .certificate-event-year {
  color: inherit;
}

.integplan-dashboard .certificate-event-link:focus-visible {
  outline: 3px solid #f29a63;
  outline-offset: 3px;
}

/* ── Spacious dashboard, progress and appointment UI — 2026-08-06 ───────── */
.integplan-dashboard {
  --ip-brand-action: #a9480f;
  width: 100%;
  max-width: 1440px;
  padding: clamp(1.25rem, 2.5vw, 2.5rem) clamp(0.75rem, 2vw, 2rem);
}

.integplan-dashboard .dashboard-layout {
  gap: clamp(1.5rem, 3vw, 3rem);
}

.integplan-dashboard .dashboard-toc {
  flex: 0 0 220px;
  min-width: 220px;
  padding: 0.25rem 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.integplan-dashboard .dashboard-content {
  min-width: 0;
}

.integplan-dashboard .certificate-section,
.integplan-dashboard .termin-section {
  width: 100%;
  max-width: none;
}

.integplan-dashboard .certificate-progress-header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem 2rem;
  margin: 1.25rem 0 0.5rem;
}

.integplan-dashboard .certificate-progress-header p {
  font-size: 1rem;
  text-align: right;
}

.integplan-dashboard .certificate-progress-header p strong {
  color: var(--ip-brand-dark);
  font-size: 1.15em;
}

.integplan-dashboard .certificate-categories {
  gap: 0;
  margin-bottom: 2rem;
  border-bottom: 1px solid rgba(28, 39, 51, 0.12);
}

.integplan-dashboard .certificate-category,
.integplan-dashboard .certificate-category--done {
  overflow: visible;
  padding: clamp(1.25rem, 2.4vw, 1.75rem) 0;
  border: 0;
  border-top: 1px solid rgba(28, 39, 51, 0.12);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.integplan-dashboard .certificate-category::before {
  display: none;
}

.integplan-dashboard .certificate-category__header {
  align-items: flex-start;
  gap: 1rem 2rem;
  margin-bottom: 1rem;
}

.integplan-dashboard .certificate-category__header h3 {
  padding-top: 0.55rem;
  font-size: clamp(1.1rem, 1.5vw, 1.3rem);
  line-height: 1.35;
}

.integplan-dashboard .certificate-category__count,
.integplan-dashboard .certificate-category--done .certificate-category__count {
  display: inline-grid;
  flex: 0 0 auto;
  justify-items: end;
  min-width: 190px;
  padding: 0.65rem 0.8rem;
  border: 1px solid rgba(169, 72, 15, 0.24);
  border-radius: 12px;
  background: var(--ip-brand-soft);
  color: var(--ip-brand-deep);
  line-height: 1;
}

.integplan-dashboard .certificate-category__numbers {
  display: flex;
  align-items: baseline;
  gap: 0.35rem;
  font-size: 1.35rem;
  font-weight: 700;
}

.integplan-dashboard .certificate-category__numbers strong {
  font-size: clamp(1.75rem, 2.3vw, 2.2rem);
  font-weight: 800;
}

.integplan-dashboard .certificate-category__legend {
  margin-top: 6px;
  color: #58595b;
  /* px: 0.72rem was only ~7px with the theme's 10px root; 12px matches the
     dashboard's other small labels (e.g. year badges). */
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0;
  text-transform: none;
}


.integplan-dashboard .certificate-category__bar {
  height: 10px;
  margin-bottom: 1rem;
}

.integplan-dashboard .termin-available {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.integplan-dashboard .termin-available h2,
.integplan-dashboard .termin-my-slot h2 {
  font-size: clamp(20px, 1.6vw, 23px);
  line-height: 1.35;
}

.integplan-dashboard .termin-booking-intro {
  max-width: 780px;
  margin: 0 0 clamp(1.5rem, 2.5vw, 2.25rem);
  font-size: 16px;
  line-height: 1.65;
}

.integplan-dashboard .termin-cal-wrapper {
  display: grid;
  grid-template-columns: minmax(430px, 1.05fr) minmax(340px, 0.95fr);
  align-items: start;
  gap: clamp(1.5rem, 3vw, 3rem);
  width: 100%;
  max-width: none;
  overflow: visible;
}

.integplan-dashboard .termin-cal-picker {
  min-width: 0;
  padding: 0.75rem 0 0;
}

.integplan-dashboard .termin-cal-nav {
  margin-bottom: 1.5rem;
}

.integplan-dashboard .termin-cal-month-title {
  font-size: clamp(16px, 1.25vw, 19px);
}

.integplan-dashboard .termin-cal-btn-prev,
.integplan-dashboard .termin-cal-btn-next {
  width: 44px;
  height: 44px;
  font-size: 1.35rem;
}

.integplan-dashboard .termin-cal-weekdays {
  margin-bottom: 0.45rem;
}

.integplan-dashboard .termin-cal-weekdays span {
  padding: 0.4rem 0;
  font-size: 13px;
}

.integplan-dashboard .termin-cal-week {
  gap: clamp(3px, 0.65vw, 8px);
  margin-bottom: clamp(3px, 0.65vw, 8px);
}

.integplan-dashboard .termin-cal-cell {
  width: 100%;
  min-width: 44px;
  min-height: 44px;
  font-size: 15px;
  line-height: 1;
}

.integplan-dashboard .termin-cal-cell--inactive {
  color: #898989;
}

.integplan-dashboard .termin-cal-cell--available {
  color: var(--ip-brand-deep);
}

.integplan-dashboard .termin-cal-cell--selected::after {
  content: "✓";
  bottom: 3px;
  width: auto;
  height: auto;
  background: transparent;
  font-size: 0.7rem;
  font-weight: 800;
}

.integplan-dashboard .termin-cal-slots-panel {
  width: auto;
  min-width: 0;
  padding: clamp(1.25rem, 2.5vw, 2rem);
  border: 1px solid rgba(169, 72, 15, 0.18);
  border-radius: 16px;
  background: #fff8f3;
}

.integplan-dashboard .termin-cal-slots-header {
  margin-bottom: 1rem;
  padding-bottom: 0.85rem;
  font-size: clamp(17px, 1.25vw, 19px);
  font-weight: 800;
  line-height: 1.4;
}

.integplan-dashboard .termin-cal-slots-list,
.integplan-dashboard .termin-nojs-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(108px, 1fr));
  gap: 0.65rem;
  max-height: none;
  overflow: visible;
}

.integplan-dashboard .termin-book-form {
  min-width: 0;
}

.integplan-dashboard .termin-time-btn {
  min-height: 46px;
  padding: 0.7rem 0.8rem;
  border-color: rgba(169, 72, 15, 0.34);
  color: var(--ip-brand-deep);
  font-size: 15px;
  line-height: 1.25;
}

.integplan-dashboard .termin-time-btn:hover,
.integplan-dashboard .termin-time-btn--selected,
.integplan-dashboard .termin-time-btn--selected:hover {
  border-color: var(--ip-brand-action);
  background: var(--ip-brand-action);
  color: #fff;
}

.integplan-dashboard .termin-cal-btn-prev:focus-visible,
.integplan-dashboard .termin-cal-btn-next:focus-visible,
.integplan-dashboard .termin-cal-cell--available:focus-visible,
.integplan-dashboard .termin-time-btn:focus-visible,
.integplan-dashboard .termin-confirm-btn:focus-visible,
.integplan-dashboard .termin-cancel-btn:focus-visible {
  outline: 3px solid #f29a63;
  outline-offset: 3px;
}

.integplan-dashboard .termin-cal-btn-prev:focus-visible,
.integplan-dashboard .termin-cal-btn-next:focus-visible {
  border-color: var(--ip-brand-action);
  background: var(--ip-brand-action);
  color: #fff;
}

.integplan-dashboard .termin-cal-slots-empty {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--ip-muted);
  font-size: 0.95rem;
  line-height: 1.6;
}

.integplan-dashboard .termin-confirm-wrap {
  margin-top: 1.25rem;
  padding-top: 1.1rem;
}

.integplan-dashboard .termin-confirm-summary {
  margin-bottom: 0.75rem;
  color: var(--ip-ink);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.45;
  text-align: left;
}

.integplan-dashboard .termin-confirm-btn,
.integplan-dashboard .certificate-cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  background: var(--ip-brand-action);
  font-size: 16px;
  letter-spacing: normal;
  text-transform: none;
}

.integplan-dashboard .termin-confirm-btn:hover {
  background: var(--ip-brand-deep);
}

.integplan-dashboard .termin-nojs {
  margin-top: 1.5rem;
  padding: 1.25rem;
  border: 1px solid var(--ip-line-soft);
  border-radius: 14px;
  background: var(--ip-brand-soft-2);
}

.integplan-dashboard .termin-nojs h3 {
  margin-top: 0;
}

.integplan-dashboard .termin-nojs-list {
  margin-top: 1rem;
}

.integplan-dashboard .termin-nojs .termin-time-btn {
  height: auto;
  min-height: 48px;
}

@media (max-width: 1100px) {
  .integplan-dashboard .dashboard-layout {
    flex-direction: column;
  }

  .integplan-dashboard .dashboard-toc {
    position: static;
    width: 100%;
    min-width: 0;
  }

  .integplan-dashboard .dashboard-toc__list {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.5rem;
  }

  .integplan-dashboard .dashboard-toc__list a {
    width: auto;
    padding: 0.55rem 0.8rem;
    border: 1px solid rgba(214, 96, 22, 0.18);
    border-radius: 999px;
  }
}

@media (max-width: 860px) {
  .integplan-dashboard .termin-cal-wrapper {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
  }

  .integplan-dashboard .termin-cal-slots-panel {
    border-left: 1px solid rgba(169, 72, 15, 0.18);
  }
}

@media (max-width: 640px) {
  .integplan-dashboard {
    padding-inline: 0.5rem;
  }

  .integplan-dashboard .certificate-progress-header {
    display: block;
  }

  .integplan-dashboard .certificate-progress-header p {
    margin-top: 0.35rem;
    text-align: left;
  }

  .integplan-dashboard .certificate-category__header {
    display: grid;
    gap: 0.75rem;
  }

  .integplan-dashboard .certificate-category__header h3 {
    padding-top: 0;
  }

  .integplan-dashboard .certificate-category__count,
  .integplan-dashboard .certificate-category--done .certificate-category__count {
    justify-items: start;
    width: 100%;
    min-width: 0;
  }

  .integplan-dashboard .termin-cal-slots-list,
  .integplan-dashboard .termin-nojs-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .integplan-dashboard .certificate-booked-slot {
    align-items: flex-start;
  }
}

@media (max-width: 480px) {
  .integplan-dashboard .termin-cal-week {
    gap: 3px;
    margin-bottom: 3px;
  }

  .integplan-dashboard .termin-cal-cell {
    min-width: 0;
    min-height: 40px;
    font-size: 14px;
  }

  .integplan-dashboard .termin-cal-picker {
    padding-top: 0.25rem;
  }

  .integplan-dashboard .termin-cal-slots-panel {
    padding: 1rem;
  }
}

/* ====================================
   Course detail: compact header
   ==================================== */
/* Reduce the orange area's total height by about 20% without changing its
   title, breadcrumb, background treatment, or surrounding page spacing. */
body.integplan-course-detail
  .breadcrumb-content-inner
  .gva-breadcrumb-content
  .gva-block-breadcrumb
  .breadcrumb-style,
body.integplan-compact-breadcrumb
  .breadcrumb-content-inner
  .gva-breadcrumb-content
  .gva-block-breadcrumb
  .breadcrumb-style {
  padding: 68px 0 120px;
}

/* Keep the lead image aligned with course-meta while trimming 10% of its
   natural height. The per-image ratio prevents taller assets from being
   cropped more aggressively than panoramic course images. */
body.integplan-course-detail .single-course > .image.course-images {
  width: 100%;
  aspect-ratio: var(--course-image-aspect-ratio);
  overflow: hidden;
}

body.integplan-course-detail
  .single-course > .image.course-images > div:first-child,
body.integplan-course-detail
  .single-course > .image.course-images
  > div:first-child
  > .image-item:first-child {
  height: 100%;
}

body.integplan-course-detail
  .single-course > .image.course-images
  img:not(.hidden) {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  object-position: center;
}

/* ── Auth pages: spacious desktop canvas ────────────────────────────────── */
.page-user-login .main-page,
.page-user-register .main-page,
.page-user-pass .main-page,
.page-user-logout .main-page {
  width: 100%;
  max-width: none;
  margin-right: auto;
  margin-left: auto;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

@media (min-width: 992px) {
  .page-user-login {
    --ip-auth-content-width: 680px;
  }

  .page-user-register {
    --ip-auth-content-width: 760px;
  }

  .page-user-pass {
    --ip-auth-content-width: 680px;
  }

  .page-user-logout {
    --ip-auth-content-width: 620px;
  }

  .page-user-login .content-main,
  .page-user-register .content-main,
  .page-user-pass .content-main,
  .page-user-logout .content-main {
    display: block;
    width: min(calc(100vw - 80px), var(--ip-auth-content-width)) !important;
    max-width: none !important;
  }

  .page-user-login .content-main::after,
  .page-user-register .content-main::after,
  .page-user-pass .content-main::after,
  .page-user-logout .content-main::after {
    content: none;
    display: none;
  }
}

/* The search trigger is a semantic button in every header variant. Reset the
   browser's native button chrome globally; mobile sizing is handled below. */
header .area-main-menu .gva-search-region > button.icon {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  margin: 0;
  padding: 0;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  color: inherit;
  cursor: pointer;
  line-height: 1;
  text-shadow: none !important;
  vertical-align: middle;
}

header .area-main-menu .gva-search-region > button.icon:hover,
header .area-main-menu .gva-search-region.show > button.icon {
  background: transparent !important;
}

header .area-main-menu .gva-search-region > button.icon:focus-visible {
  outline: 3px solid rgba(169, 72, 15, 0.55);
  outline-offset: 2px;
}

@media (min-width: 992px) {
  header .area-main-menu .gva-search-region {
    display: flex;
    align-items: center;
    justify-content: center;
    transform: translate(-28px, 0) !important;
  }

  body.logged-in:not(.path-user) header .site-branding-logo {
    padding-top: 10px;
    padding-bottom: 10px;
  }

  body.logged-in:not(.path-user) header .branding img {
    margin-top: 0 !important;
    transform: scale(1.05) !important;
  }
}

/* ── Mobile header and navigation repair — 2026-08 ─────────────────────── */
/*
 * Gavias switches to its off-canvas navigation below Bootstrap's 992px
 * breakpoint. Earlier general header rules stacked the logo and trigger at
 * 768px and increased every off-canvas link to 24px, which created the extra
 * header row and the overly tall menu. Keep this correction local to that
 * component so the desktop menu remains unchanged.
 */
@media (max-width: 991px) {
  body:not(.logged-in):not(.path-user) {
    padding-top: 108px !important;
    scroll-padding-top: 108px;
  }

  body.logged-in:not(.path-user) {
    padding-top: 64px !important;
    scroll-padding-top: 64px;
  }

  .topbar {
    min-height: 44px !important;
    padding: 4px 0 !important;
  }

  .topbar .row {
    display: flex;
    align-items: center;
    justify-content: flex-end;
  }

  .topbar .topbar-left {
    display: none !important;
  }

  .topbar .topbar-right {
    float: none;
    width: 100% !important;
    min-height: 36px;
    padding-right: 8px;
  }

  .topbar .topbar-right ul.gva_topbar_menu {
    flex-wrap: nowrap;
    justify-content: flex-end;
    gap: 8px;
  }

  .topbar .topbar-right ul.gva_topbar_menu > li > a {
    min-height: 36px;
    padding: 7px 12px !important;
    font-size: 0.88rem;
  }

  .header-main,
  body.logged-in:not(.path-user) .header-main {
    top: 44px !important;
    min-height: 64px;
  }

  body.logged-in:not(.path-user) .header-main {
    top: 0 !important;
  }

  .header-main .container {
    padding: 0 16px !important;
  }

  .header-main-inner > .row {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap;
    align-items: center !important;
    min-height: 64px !important;
    margin-right: -8px;
    margin-left: -8px;
    text-align: left !important;
  }

  .header-main-inner > .row > .branding {
    float: none !important;
    display: flex !important;
    flex: 1 1 auto;
    align-items: center !important;
    width: auto !important;
    min-width: 0;
    margin: 0 !important;
    padding-right: 8px;
    padding-left: 8px;
  }

  .header-main-inner > .row > .p-static {
    float: none !important;
    display: flex !important;
    flex: 0 0 100px;
    align-items: center !important;
    width: 100px !important;
    min-height: 64px;
    padding-right: 4px;
    padding-left: 4px;
  }

  .branding .site-branding-logo {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
  }

  .branding img {
    width: auto !important;
    max-width: 100% !important;
    max-height: 46px;
    margin: 0 !important;
    transform: none !important;
  }

  .header-inner,
  .main-menu,
  .area-main-menu,
  .area-main-menu .area-inner {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    width: 100% !important;
    min-height: 64px !important;
  }

  header .header-inner {
    padding-right: 0 !important;
  }

  header .area-main-menu .area-inner {
    gap: 4px;
  }

  header .area-main-menu .gva-search-region {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    display: inline-flex;
    order: -1;
    align-items: center;
    justify-content: center;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    margin: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    transform: none !important;
    z-index: 2;
  }

  header .area-main-menu .gva-search-region .icon {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0 !important;
    border-radius: 0;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    color: #3e3f41 !important;
    font-size: 15px !important;
    line-height: 1;
  }

  header .area-main-menu .gva-search-region .icon:hover,
  header .area-main-menu .gva-search-region.show .icon {
    background: transparent;
    color: #a9480f !important;
  }

  header .area-main-menu .area-inner {
    position: relative;
  }

  header .area-main-menu .gva-search-region .icon:focus-visible {
    outline: 3px solid rgba(169, 72, 15, 0.55);
    outline-offset: 2px;
  }

  header .area-main-menu .gva-search-region .icon:focus:not(:focus-visible) {
    outline: 0;
  }

  header .area-main-menu .gva-search-region .search-content {
    top: calc(100% + 6px) !important;
    right: auto !important;
    left: 4px !important;
  }

  #menu-bar.menu-bar {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    margin: 0 !important;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: #fff;
  }

  #menu-bar.menu-bar:hover,
  #menu-bar.menu-bar.show-view {
    background: #fff4ec;
    box-shadow: none;
  }

  #menu-bar.menu-bar span {
    width: 22px;
    height: 2px;
    background-color: #3e3f41;
  }

  #menu-bar.menu-bar:focus-visible,
  #gva-mobile-menu a:focus-visible,
  #gva-mobile-menu button:focus-visible {
    outline: 3px solid rgba(169, 72, 15, 0.55);
    outline-offset: 2px;
  }

  .mobile-menu-backdrop {
    display: none;
  }

  body.mobile-menu-open {
    overflow: hidden;
  }

  body.mobile-menu-open .header-main {
    z-index: 1004 !important;
  }

  body.mobile-menu-open .mobile-menu-backdrop {
    position: fixed;
    z-index: 1002;
    display: block;
    inset: 0;
    background: rgba(28, 39, 51, 0.38);
  }

  #gva-mobile-menu.gva-offcanvas-mobile {
    z-index: 1003;
    width: min(88vw, 320px);
    max-width: 320px;
    padding: 0 16px 20px;
    overscroll-behavior: contain;
    visibility: hidden;
  }

  #gva-mobile-menu.gva-offcanvas-mobile.show-view {
    visibility: visible;
  }

  #gva-mobile-menu .close-offcanvas {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin: 0 -4px 8px auto;
    padding: 0;
    border: 0;
    border-bottom: 0;
    border-radius: 8px;
    background: transparent;
    color: #3e3f41;
  }

  #gva-mobile-menu .close-offcanvas:hover {
    color: #a9480f;
    background: #fff4ec;
  }

  #gva-mobile-menu .block {
    padding: 0;
    border: 0;
  }

  #gva-mobile-menu .gva-navigation,
  #gva-mobile-menu .gva-navigation .gva_menu {
    display: block !important;
    width: 100% !important;
    margin: 0;
    padding: 0;
    transform: none !important;
  }

  #gva-mobile-menu .gva-navigation .gva_menu > li {
    display: block;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    border-bottom: 1px solid rgba(62, 63, 65, 0.14);
  }

  #gva-mobile-menu .gva-navigation .gva_menu > li > a {
    display: flex !important;
    align-items: center;
    width: 100%;
    min-height: 48px;
    padding: 10px 48px 10px 0 !important;
    color: #3e3f41 !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.35;
    text-transform: none !important;
    white-space: normal !important;
  }

  #gva-mobile-menu .gva-navigation .gva_menu > li > a:hover,
  #gva-mobile-menu .gva-navigation .gva_menu > li.menu-item--active-trail > a {
    color: #a9480f !important;
  }

  #gva-mobile-menu .gva-navigation .gva_menu li a .icaret {
    right: 0 !important;
    width: 44px;
    height: 44px;
    font-size: 14px;
  }

  #gva-mobile-menu .gva-navigation .gva_menu > li ul.menu.sub-menu {
    margin: 0 0 8px !important;
    padding: 0 0 0 16px !important;
  }

  #gva-mobile-menu .gva-navigation .gva_menu .sub-menu li a,
  #gva-mobile-menu .gva-navigation .gva_menu > li ul.menu.sub-menu li a {
    display: flex !important;
    align-items: center;
    min-height: 44px;
    padding: 8px 32px 8px 0 !important;
    color: #58595b !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1.35;
    text-transform: none !important;
    white-space: normal !important;
  }

  #gva-mobile-menu .gva-navigation .menu-item--profile > a {
    justify-content: flex-start;
    width: 100%;
    height: auto;
    border-radius: 0;
  }

  #gva-mobile-menu .gva-navigation .menu-item--profile > a::after {
    content: 'Mein Profil';
    margin-left: 12px;
  }
}

@media (max-width: 767px) {
  .container.container-bg {
    width: 100%;
    padding-right: 16px !important;
    padding-left: 16px !important;
  }

  #content h1,
  #content h2,
  #content h3,
  #content h4,
  #content h5,
  #content h6,
  #content p,
  #content li {
    overflow-wrap: anywhere;
    hyphens: auto;
  }

  #content input:not([type='checkbox']):not([type='radio']),
  #content select,
  #content textarea,
  #content button {
    max-width: 100%;
    box-sizing: border-box;
  }

  .gva-view-grid-inner.lg-block-grid-4 .item-columns {
    min-width: 0 !important;
  }
}

@media (max-width: 360px) {
  .topbar .topbar-right ul.gva_topbar_menu > li > a {
    padding-right: 10px !important;
    padding-left: 10px !important;
    font-size: 0.82rem;
  }

  .branding img {
    max-height: 40px;
  }
}

/* Keep the root canvas visually continuous with the auth-page topbar. */
body.path-user {
  margin: 0 !important;
  background: #1c2733 !important;
}

body.path-user > .dialog-off-canvas-main-canvas,
.page-user-login #header,
.page-user-register #header,
.page-user-pass #header,
.page-user-logout #header,
.page-user-login .topbar,
.page-user-register .topbar,
.page-user-pass .topbar,
.page-user-logout .topbar {
  margin-top: 0 !important;
  border-top: 0 !important;
}

/* Login fields explicitly follow the auth form's full-width rhythm. */
.page-user-login #user-login-form .form-item-name,
.page-user-login #user-login-form .form-item-pass {
  display: block;
  float: none;
  clear: both;
  width: 100%;
  max-width: none;
}

.page-user-login #user-login-form .form-item-name {
  margin-bottom: 16px;
}

.page-user-login #user-login-form .form-item-pass {
  margin-bottom: 18px;
}

.page-user-login #user-login-form .form-item-name > label,
.page-user-login #user-login-form .form-item-pass > label {
  display: block;
  margin-bottom: 6px;
}

.page-user-login #user-login-form input[type="text"],
.page-user-login #user-login-form input[type="email"],
.page-user-login #user-login-form input[type="password"] {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 48px;
  border-radius: 8px !important;
  padding: 0 14px !important;
  box-sizing: border-box;
}

/* ====================================
   Seminar leaders: carousel cards and profile quotes
   ==================================== */
/* Keep the semantic H2 while matching the compact treatment used by Gavias
   subtitle headings such as "Seminare". The row is scoped by its unique Team
   carousel class so unrelated headings retain their normal hierarchy. */
.integplan-section-page .gbb-row-wrapper:has(.seminar-leader-carousel)
  .gsc-heading .title {
  color: #d66016 !important;
  font-family: "Raleway", sans-serif;
  font-size: 14px !important;
  font-weight: 400;
  letter-spacing: 0.5px;
  line-height: 1.6 !important;
  padding-bottom: 0;
  text-transform: uppercase;
}

/* Team teaser portraits (image style "team_portrait", uncropped): crop into
   the theme's circle here, anchored above centre so faces of portrait-format
   photos sit in the middle of the circle. */
.team-teaser-1 .team-image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: 50% 30%;
}

/* The class is assigned only to Team view display team_v1. Owl's stage and
   generated/cloned items all participate in the same stretch layout. */
.seminar-leader-carousel .owl-stage {
  display: flex;
  align-items: stretch;
}

.seminar-leader-carousel .owl-item,
.seminar-leader-carousel .owl-item > .item,
.seminar-leader-carousel .owl-item > .item > div {
  display: flex;
  height: auto;
}

.seminar-leader-carousel .owl-item > .item,
.seminar-leader-carousel .owl-item > .item > div,
.seminar-leader-carousel .team-teaser-1 {
  width: 100%;
}

.seminar-leader-carousel .team-teaser-1 {
  display: flex;
  flex-direction: column;
}

.seminar-leader-carousel .team-content {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
}

.seminar-leader-carousel .team-body {
  overflow-wrap: anywhere;
}

.seminar-leader-carousel .owl-nav > div:focus {
  outline: 3px solid #a9480f;
  outline-offset: 3px;
}

.seminar-leader-carousel .owl-nav > div:focus:not(:focus-visible) {
  outline: 0;
}

.seminar-leader-carousel .owl-nav > div:focus-visible {
  outline: 3px solid #a9480f;
  outline-offset: 3px;
}

/* Weiterbildung: Owl's skin hides navigation until the carousel is hovered.
   Keep the usable desktop controls visible and place them below the profiles,
   rather than on top of a team card. The Über uns team carousel owns its
   separate control styling and is intentionally excluded. */
@media (min-width: 992px) {
  body.path-node.integplan-section-page:not(.integplan-about-page)
    .seminar-leader-carousel .owl-nav {
    align-items: center;
    background: transparent !important;
    display: flex;
    gap: 10px;
    justify-content: center;
    margin: 24px 0 0;
    opacity: 1 !important;
    position: static;
    visibility: visible !important;
  }

  body.path-node.integplan-section-page:not(.integplan-about-page)
    .seminar-leader-carousel .owl-nav > .owl-prev,
  body.path-node.integplan-section-page:not(.integplan-about-page)
    .seminar-leader-carousel .owl-nav > .owl-next {
    align-items: center;
    background: #fff !important;
    border: 1px solid rgba(214, 96, 22, 0.38);
    border-radius: 50%;
    box-shadow: 0 5px 14px rgba(75, 48, 32, 0.14);
    color: #a9480f !important;
    display: inline-flex !important;
    height: 46px;
    justify-content: center;
    line-height: 1;
    margin: 0 !important;
    padding: 0 !important;
    position: static !important;
    top: auto;
    width: 46px;
  }

  body.path-node.integplan-section-page:not(.integplan-about-page)
    .seminar-leader-carousel .owl-nav > div i {
    color: currentColor;
    font-size: 16px;
    line-height: 1;
  }

  body.path-node.integplan-section-page:not(.integplan-about-page)
    .seminar-leader-carousel .owl-nav > .owl-prev:hover,
  body.path-node.integplan-section-page:not(.integplan-about-page)
    .seminar-leader-carousel .owl-nav > .owl-next:hover,
  body.path-node.integplan-section-page:not(.integplan-about-page)
    .seminar-leader-carousel .owl-nav > .owl-prev:focus-visible,
  body.path-node.integplan-section-page:not(.integplan-about-page)
    .seminar-leader-carousel .owl-nav > .owl-next:focus-visible {
    background: #d66016 !important;
    border-color: #d66016;
    box-shadow: 0 7px 18px rgba(169, 72, 15, 0.26);
    color: #fff !important;
  }

  body.path-node.integplan-section-page:not(.integplan-about-page)
    .seminar-leader-carousel .owl-nav > div.disabled {
    box-shadow: none;
    cursor: default;
    opacity: 0.42 !important;
  }
}

/* Team quotes contain editorial text only. The skin adds the quote glyph as a
   pseudo-element; remove that presentation and its reserved indentation. */
.node--type-team .team-single-page .team-quote {
  padding-left: 0;
}

.node--type-team .team-single-page .team-quote::after {
  display: none;
  content: none;
}

/* Kontakte */
.widget.gsc-team.team-horizontal .team-name {
  font-size: 14px;
  text-transform: none;
  font-weight: 700;
}

/* Restore a clear heading/body hierarchy across the homepage mobile layout.
   An older global clamp otherwise reduces headings below supporting copy. */
@media (max-width: 991px) {
  .frontpage .widget.gsc-heading.style-default .title {
    font-size: clamp(21px, 5.6vw, 23px) !important;
    line-height: 1.25 !important;
  }

  .frontpage .widget.gsc-heading.style-default .title-desc,
  .frontpage .widget.gsc-heading.style-default .title-desc p {
    font-size: 16px !important;
    line-height: 1.6 !important;
  }

  .frontpage .ip-news-card__title,
  .frontpage .ip-news-section .item:first-child .ip-news-card__title {
    font-size: clamp(21px, 5.5vw, 24px) !important;
    line-height: 1.25 !important;
  }

  /* The global theme clamp resolves heading minimums in rem against Gavias's
     10px root size. Keep key content-page headings above their 16px copy. */
  body.integplan-about-page .ip-about-copy h1 {
    font-size: 26px !important;
    line-height: 1.2 !important;
  }

  body.integplan-about-page .ip-about-section-heading .title,
  body.integplan-about-page .ip-about-stats-title .title {
    font-size: 22px !important;
    line-height: 1.25 !important;
  }

  body.integplan-about-page .ip-about-actors-primary-heading .title {
    font-size: 20px !important;
    line-height: 1.3 !important;
  }

  body.integplan-about-page .ip-about-action-card .title h3,
  body.integplan-about-page .ip-about-team-card .team-name {
    font-size: 18px !important;
    line-height: 1.35 !important;
  }

  body.integplan-section-page:not(.integplan-about-page)
    .widget.gsc-heading:not(.ip-heading) .title {
    font-size: 22px !important;
    line-height: 1.25 !important;
  }

  body.integplan-section-page:not(.integplan-about-page)
    .column-content > h2 {
    font-size: 19px !important;
    line-height: 1.35 !important;
  }

  body.integplan-section-page:not(.integplan-about-page) .team-name,
  body.integplan-section-page:not(.integplan-about-page)
    .gsc-image-content .title {
    font-size: 18px !important;
    line-height: 1.35 !important;
  }
}

/* Homepage course-category tabs: retain the AJAX-selected state. */
.frontpage .gsc-tabs-views-ajax .links-ajax > li.active > a,
.frontpage .gsc-tabs-views-ajax .links-ajax > li.active > a:hover,
.frontpage .gsc-tabs-views-ajax .links-ajax > li.active > a:focus,
.frontpage .gsc-tabs-views-ajax .links-ajax > li:not(.active) > a:hover,
.frontpage .gsc-tabs-views-ajax .links-ajax > li:not(.active) > a:focus {
  color: #d65f16 !important;
}

.frontpage .gsc-tabs-views-ajax .links-ajax > li > a:focus-visible {
  color: #d65f16 !important;
  outline: 3px solid rgba(214, 95, 22, 0.38) !important;
  outline-offset: 3px;
}

/* The course filter is an inline desktop tab row in the base theme. On narrow
   screens, keep its existing order in one swipeable, touch-friendly row
   (seven Veranstaltungsart tabs would otherwise wrap into many lines). */
@media (max-width: 1199px) {
  .frontpage .gsc-tabs-views-ajax.style-1 .list-links-tabs {
    margin: 0 auto 18px;
    padding: 0;
    text-align: center;
  }

  .frontpage .gsc-tabs-views-ajax.style-1 .list-links-tabs .links-ajax {
    border: 0;
    display: flex;
    flex-wrap: nowrap;
    gap: 6px;
    margin: 0;
    overflow-x: auto;
    padding: 0 16px 4px;
    scroll-padding-inline: 16px;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    width: 100%;
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 16px, #000 calc(100% - 28px), transparent 100%);
    mask-image: linear-gradient(to right, transparent 0, #000 16px, #000 calc(100% - 28px), transparent 100%);
  }

  .frontpage .gsc-tabs-views-ajax.style-1 .list-links-tabs .links-ajax::-webkit-scrollbar {
    display: none;
  }

  .frontpage .gsc-tabs-views-ajax.style-1 .list-links-tabs .links-ajax > li {
    float: none;
    flex: 0 0 auto;
    margin: 0 !important;
    min-width: 0;
    scroll-snap-align: start;
  }

  .frontpage .gsc-tabs-views-ajax.style-1 .list-links-tabs .links-ajax > li > a {
    align-items: center;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: #3e3f41 !important;
    display: flex;
    font-size: 12px !important;
    font-weight: 700;
    justify-content: center;
    line-height: 1.25;
    min-height: 32px;
    padding: 4px 8px !important;
    text-align: center;
    white-space: nowrap;
    width: auto;
  }

  .frontpage .gsc-tabs-views-ajax.style-1 .list-links-tabs .links-ajax > li > a::after {
    display: none !important;
  }

  .frontpage .gsc-tabs-views-ajax.style-1 .list-links-tabs .links-ajax > li.active > a,
  .frontpage .gsc-tabs-views-ajax.style-1 .list-links-tabs .links-ajax > li.active > a:hover,
  .frontpage .gsc-tabs-views-ajax.style-1 .list-links-tabs .links-ajax > li.active > a:focus {
    background: #fff4ec !important;
    box-shadow: inset 0 -2px 0 #d65f16;
    color: #d65f16 !important;
  }

  .frontpage .gsc-tabs-views-ajax.style-1 .list-links-tabs .links-ajax > li:not(.active) > a:hover,
  .frontpage .gsc-tabs-views-ajax.style-1 .list-links-tabs .links-ajax > li:not(.active) > a:focus {
    background: #fff4ec !important;
    color: #a9480f !important;
  }
}

/* Center incomplete course rows in the homepage AJAX category panels. */
.frontpage .gsc-tabs-views-ajax .gva-view-grid-inner {
  justify-content: center;
}

/* "No results" text of a homepage course tab (Views empty area, a <p>). */
.frontpage .gsc-tabs-views-ajax .tab-pane [class*="js-view-dom-id"] > p {
  margin: 24px auto;
  color: #58595b;
  text-align: center;
}

/* Homepage Weiterbildung copy link: match the orange inline-link treatment. */
.frontpage
  .gsc-heading
  .title-desc
  a[href="/weiterbildung"],
.frontpage
  .gsc-heading
  .title-desc
  a[href="/weiterbildung"]:visited {
  color: #d65f16 !important;
  font-weight: 400;
  text-decoration: none;
}

.frontpage
  .gsc-heading
  .title-desc
  a[href="/weiterbildung"]:hover,
.frontpage
  .gsc-heading
  .title-desc
  a[href="/weiterbildung"]:focus-visible {
  color: #d65f16 !important;
  text-decoration: underline;
}

.frontpage
  .gsc-heading
  .title-desc
  a[href="/weiterbildung"]:focus-visible {
  outline: 3px solid rgba(214, 95, 22, 0.38) !important;
  outline-offset: 3px;
}

/* ====================================
   Global footer: editable partner logo and navigation block
   ==================================== */
/* Keep all large, neutral page surfaces on true white. The theme customizer
   otherwise adds a subtle body pattern and near-white breadcrumb/footer
   fills that become visibly gray on higher-contrast displays. */
body {
  background-color: #fff !important;
  background-image: none !important;
}

body .body-page,
body .breadcrumb-content-inner {
  background: #fff !important;
}

/* The theme customizer and older footer overrides both use !important for the
   footer surface and spacing. The body prefix is intentionally used only here
   to supersede those declarations without changing unrelated components. */
body #footer,
body #footer .footer-inner,
body #footer .footer-center {
  background: #fff !important;
}

body #footer {
  border-top: 1px solid #d9d9d9;
}

body #footer .footer-center {
  padding: clamp(36px, 4vw, 56px) 0 !important;
}

body #footer .footer-center > .container {
  width: 100% !important;
  max-width: 1600px !important;
  margin-right: auto;
  margin-left: auto;
  padding-right: clamp(16px, 3vw, 48px);
  padding-left: clamp(16px, 3vw, 48px);
}

body #footer .footer-first {
  margin-bottom: 0;
}

#block-gavias-edmix-footer-2 .field__item {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
  align-items: center;
}

#block-gavias-edmix-footer-2 .field__item > p:first-child {
  min-width: 0;
  margin: 0 !important;
}

#block-gavias-edmix-footer-2 .field__item > p:first-child img {
  display: block;
  width: 100% !important;
  max-width: 1500px !important;
  height: auto !important;
  margin: 0 auto;
  object-fit: contain;
}

#block-gavias-edmix-footer-2 .field__item > ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  justify-content: center;
  justify-self: center;
  width: min(760px, 100%);
  margin: 0;
  padding: 16px 0 0;
  border-top: 1px solid #d9d9d9;
  list-style: none;
}

#block-gavias-edmix-footer-2 .field__item > ul > li {
  margin: 0 !important;
  padding: 0;
  list-style: none;
}

#block-gavias-edmix-footer-2 .field__item > ul > li::before,
#block-gavias-edmix-footer-2 .field__item > ul > li::marker {
  display: none;
  content: none;
}

#block-gavias-edmix-footer-2 .field__item > ul a,
#block-gavias-edmix-footer-2 .field__item > ul a:link,
#block-gavias-edmix-footer-2 .field__item > ul a:visited {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  padding: 8px 6px;
  color: #3e3f41 !important;
  font-size: 16px !important;
  font-weight: 600;
  line-height: 1.35;
  text-decoration: none !important;
  text-underline-offset: 4px;
}

#block-gavias-edmix-footer-2 .field__item > ul a:hover {
  color: #a9480f !important;
  text-decoration: none !important;
}

#block-gavias-edmix-footer-2 .field__item > ul a:focus-visible {
  color: #a9480f !important;
  border-radius: 2px;
  outline: 3px solid #d76117 !important;
  outline-offset: 3px;
  text-decoration: underline !important;
  text-decoration-thickness: 2px !important;
}

@media (max-width: 575px) {
  body #footer .footer-center {
    padding: 28px 0 !important;
  }

  #block-gavias-edmix-footer-2 .field__item {
    gap: 20px;
  }

  #block-gavias-edmix-footer-2 .field__item > ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px 8px;
    padding-top: 16px;
  }

  #block-gavias-edmix-footer-2 .field__item > ul a {
    width: 100%;
    justify-content: center;
    text-align: center;
    white-space: normal;
  }
}

/* ── Authentication-page presentation refinement ────────────────────────── */
/*
 * These selectors intentionally stay within the dedicated user-page wrappers.
 * The Gavias base `input.js-form-submit` treatment supplies the site's rounded
 * button language, but also forces uppercase text; restore normal German
 * sentence case only for account tasks.
 */
.page-user-login #user-login-form label,
.page-user-register #user-register-form label,
.page-user-pass #user-pass label {
  display: block;
  margin-bottom: 12px;
  font-size: clamp(16px, 1.35vw, 18px) !important;
  font-weight: 700 !important;
  letter-spacing: normal !important;
  line-height: 1.4;
  text-transform: none !important;
}

.page-user-login #user-login-form .description,
.page-user-register #user-register-form .description,
.page-user-pass #user-pass .description,
.page-user-login .captcha__description,
.page-user-register .captcha__description,
.page-user-pass .captcha__description {
  margin-top: 10px;
  font-size: clamp(14px, 1vw, 15px) !important;
  line-height: 1.6;
}

.page-user-login #user-login-form .form-actions input[type="submit"],
.page-user-register #user-register-form .form-actions input[type="submit"],
.page-user-pass #user-pass .form-actions input[type="submit"] {
  min-height: 58px;
  border-radius: 999px !important;
  font-size: 16px !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

.page-user-login #user-login-form .form-actions input[type="submit"]:focus-visible,
.page-user-register #user-register-form .form-actions input[type="submit"]:focus-visible,
.page-user-pass #user-pass .form-actions input[type="submit"]:focus-visible {
  outline: 3px solid var(--ip-auth-brand-dark) !important;
  outline-offset: 3px !important;
}

.page-user-login .auth-heading,
.page-user-register .auth-heading,
.page-user-pass .auth-heading {
  font-size: clamp(23px, 2vw, 28px) !important;
  line-height: 1.15 !important;
}

.page-user-login #user-login-form input[type="text"],
.page-user-login #user-login-form input[type="email"],
.page-user-login #user-login-form input[type="password"],
.page-user-register #user-register-form input[type="text"],
.page-user-register #user-register-form input[type="email"],
.page-user-register #user-register-form input[type="password"],
.page-user-pass #user-pass input[type="text"],
.page-user-pass #user-pass input[type="email"] {
  min-height: 58px;
  font-size: clamp(17px, 1.4vw, 18px) !important;
  line-height: 1.35;
}

.page-user-login .captcha__title,
.page-user-register .captcha__title,
.page-user-pass .captcha__title {
  font-size: 15px !important;
  text-transform: none !important;
}

/* Keep the account-recovery action as legible as the surrounding form. */
.page-user-login .login-secondary .reset-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 6px 8px;
  font-size: 16px !important;
  line-height: 1.4;
  text-transform: none !important;
}

/* The confirmation form is Drupal core's standard `ConfirmFormBase` output. */
.page-user-logout .content-main {
  color: var(--ip-auth-ink);
}

.page-user-logout .block-system-main-block {
  border-top-width: 3px;
  border-radius: 14px;
  padding: clamp(28px, 4vw, 42px);
  box-shadow: 0 14px 38px rgba(28, 39, 51, 0.075);
}

.page-user-logout .page-title,
.page-user-logout h1 {
  margin-bottom: 18px !important;
  font-size: clamp(26px, 3vw, 34px);
  line-height: 1.2;
}

.page-user-logout #user-logout-confirm::before {
  margin-bottom: 28px;
  font-size: clamp(16px, 1.4vw, 19px);
  line-height: 1.6;
}

.page-user-logout .form-actions {
  gap: 12px;
  margin-top: 26px !important;
}

.page-user-logout .form-actions input[type="submit"],
.page-user-logout .form-actions a.button,
.page-user-logout .form-actions a {
  min-height: 58px;
  border-radius: 999px !important;
  font-size: 16px !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

.page-user-logout .form-actions input[type="submit"] {
  padding: 11px 24px !important;
}

.page-user-logout .form-actions input[type="submit"]:focus-visible,
.page-user-logout .form-actions a:focus-visible {
  outline: 3px solid var(--ip-auth-brand-dark) !important;
  outline-offset: 3px !important;
}

@media (min-width: 992px) {
  .page-user-login {
    --ip-auth-content-width: 700px;
  }

  .page-user-register {
    --ip-auth-content-width: 780px;
  }

  .page-user-logout {
    --ip-auth-content-width: 760px;
  }
}

/* Make a booked certificate appointment unmistakable at a glance. */
.integplan-dashboard .certificate-booked-slot:not(.certificate-booked-slot--none) {
  align-items: center;
  gap: 18px;
  padding: 20px 22px;
  border: 1px solid rgba(214, 96, 22, 0.42);
  border-radius: 14px;
  background: linear-gradient(135deg, #fff3eb 0%, #fff 72%);
  box-shadow: 0 9px 22px rgba(169, 72, 15, 0.09);
}

.integplan-dashboard .certificate-booked-slot:not(.certificate-booked-slot--none) .certificate-booked-slot__info {
  gap: 13px;
}

.integplan-dashboard .certificate-booked-slot:not(.certificate-booked-slot--none) .certificate-booked-slot__icon {
  display: grid;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  place-items: center;
  border: 1px solid rgba(214, 96, 22, 0.28);
  border-radius: 11px;
  background: #fff;
  font-size: 1.4rem;
}

.integplan-dashboard .certificate-booked-slot:not(.certificate-booked-slot--none) .certificate-booked-slot__label {
  font-size: clamp(1.05rem, 1.4vw, 1.2rem);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: normal;
  text-transform: none;
}

.integplan-dashboard .certificate-booked-slot:not(.certificate-booked-slot--none) .certificate-booked-slot__date {
  margin-top: 5px;
  font-size: clamp(1.2rem, 1.65vw, 1.5rem);
  line-height: 1.2;
}

.integplan-dashboard .certificate-booked-slot:not(.certificate-booked-slot--none) .certificate-cancel-form {
  margin-left: auto;
}

.integplan-dashboard .certificate-booked-slot:not(.certificate-booked-slot--none) .termin-cancel-btn {
  min-height: 46px;
  padding: 10px 18px;
  border-width: 2px;
  border-radius: 999px;
  font-size: 1rem;
  font-weight: 600;
}

@media (max-width: 640px) {
  .integplan-dashboard .certificate-booked-slot:not(.certificate-booked-slot--none) {
    align-items: stretch;
    padding: 17px;
  }

  .integplan-dashboard .certificate-booked-slot:not(.certificate-booked-slot--none) .certificate-booked-slot__info {
    align-items: flex-start;
  }

  .integplan-dashboard .certificate-booked-slot:not(.certificate-booked-slot--none) .certificate-cancel-form {
    width: 100%;
    margin-left: 0;
  }

  .integplan-dashboard .certificate-booked-slot:not(.certificate-booked-slot--none) .termin-cancel-btn {
    width: 100%;
  }
}

/* Drupal-managed Kontakt and Newsletter page presentation. */
.node--type-page .field--name-webform {
  width: min(100%, 760px);
  margin-top: 24px;
}

.node--type-page .field--name-webform .form-item {
  margin: 0 0 18px;
}

.node--type-page .field--name-webform .form-item label {
  display: block;
  margin-bottom: 7px;
  color: #3e3f41;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.4;
  text-transform: none;
}

.node--type-page .field--name-webform input.form-text,
.node--type-page .field--name-webform input.form-email,
.node--type-page .field--name-webform textarea.form-textarea {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.node--type-page .field--name-webform textarea.form-textarea {
  min-height: 150px;
  resize: vertical;
}

.node--type-page .field--name-webform .form-actions {
  margin-top: 26px;
}

.node--type-page .field--name-webform input.js-form-submit {
  min-height: 46px;
  padding: 10px 24px;
  text-transform: none;
}

/* Shared presentation for the general contact form and Mittagspause questions. */
:is(article[data-history-node-id="4"], .mittagspause-section--question) .webform-submission-form {
  display: flex !important;
  flex-direction: column;
  gap: clamp(0.75rem, 1.6vw, 1.2rem);
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 1.4rem;
  line-height: 1.7;
}

:is(article[data-history-node-id="4"], .mittagspause-section--question) .webform-submission-form .form-item,
:is(article[data-history-node-id="4"], .mittagspause-section--question) .webform-submission-form .js-form-item,
:is(article[data-history-node-id="4"], .mittagspause-section--question) .webform-submission-form .js-form-wrapper {
  width: 100%;
  margin: 0 !important;
}

:is(article[data-history-node-id="4"], .mittagspause-section--question) .webform-submission-form label {
  display: inline-flex !important;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 0.3rem !important;
  color: #1c2733 !important;
  font-size: 1.05em !important;
  font-weight: 500 !important;
}

:is(article[data-history-node-id="4"], .mittagspause-section--question) .webform-submission-form input[type="text"],
:is(article[data-history-node-id="4"], .mittagspause-section--question) .webform-submission-form input[type="email"],
:is(article[data-history-node-id="4"], .mittagspause-section--question) .webform-submission-form input[type="tel"],
:is(article[data-history-node-id="4"], .mittagspause-section--question) .webform-submission-form textarea {
  width: 100% !important;
  padding: 0.95rem 1.15rem !important;
  border: 1px solid #ccd4df !important;
  border-radius: 12px !important;
  background: #fff !important;
  color: #1c2733 !important;
  font: inherit;
  font-size: 1em !important;
  line-height: 1.6;
  box-shadow: inset 0 1px 1px rgba(12, 23, 37, 0.04);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

:is(article[data-history-node-id="4"], .mittagspause-section--question) .webform-submission-form textarea {
  min-height: 8.5rem;
}

:is(article[data-history-node-id="4"], .mittagspause-section--question) .webform-submission-form input:focus,
:is(article[data-history-node-id="4"], .mittagspause-section--question) .webform-submission-form textarea:focus {
  border-color: #d66016 !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(214, 96, 22, 0.18);
}

:is(article[data-history-node-id="4"], .mittagspause-section--question) .webform-submission-form input[readonly] {
  background: #fff !important;
  color: #1c2733 !important;
}

:is(article[data-history-node-id="4"], .mittagspause-section--question) .webform-submission-form .form-actions {
  margin-top: 0.4rem !important;
}

:is(article[data-history-node-id="4"], .mittagspause-section--question) .webform-submission-form .form-submit {
  align-self: flex-start;
  min-height: 0;
  margin-top: 0 !important;
  padding: 0.85rem 2.4rem !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #d66016 !important;
  color: #fff !important;
  font-size: 1em !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em !important;
  line-height: 1.6;
  text-transform: none !important;
  box-shadow: none !important;
  transform: none !important;
}

:is(article[data-history-node-id="4"], .mittagspause-section--question) .webform-submission-form .form-submit:hover {
  background: #d66016 !important;
  color: #fff !important;
  box-shadow: none !important;
  transform: none !important;
}

:is(article[data-history-node-id="4"], .mittagspause-section--question) .webform-submission-form .form-submit:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px rgba(214, 96, 22, 0.32) !important;
}

article[data-history-node-id="4"],
article[data-history-node-id="2276"] {
  overflow: hidden;
  background: #fff url("/sites/default/files/Medien/sliders_exkursion/HintergrundKontakt_0.png") center top / cover no-repeat;
}

article[data-history-node-id="4"] > header > .container,
article[data-history-node-id="2276"] > header > .container {
  width: 100%;
  max-width: none;
  padding: clamp(34px, 4vw, 58px) clamp(36px, 5vw, 68px) 0;
}

article[data-history-node-id="4"] .node__content {
  display: flex !important;
  flex-wrap: nowrap;
  align-items: start;
  gap: clamp(36px, 5vw, 76px);
  padding: 8px clamp(36px, 5vw, 68px) clamp(40px, 5vw, 68px);
  background: transparent;
}

article[data-history-node-id="4"] .node__content::before,
article[data-history-node-id="4"] .node__content::after {
  display: none !important;
  content: none !important;
}

article[data-history-node-id="4"] .field--name-body,
article[data-history-node-id="4"] .field--name-webform {
  min-width: 0;
}

article[data-history-node-id="4"] .field--name-body {
  flex: 0 1 42%;
  width: 42%;
}

article[data-history-node-id="4"] .field--name-webform {
  flex: 1 1 58%;
  width: auto !important;
  margin-top: 0;
}

article[data-history-node-id="4"] .contact-details {
  max-width: 34rem;
  text-align: left;
}

article[data-history-node-id="4"] .contact-details h3,
article[data-history-node-id="4"] .webform-submission-form h3 {
  margin: 0 0 22px;
  color: #3e3f41;
  font-size: clamp(1.35rem, 2vw, 1.65rem);
  line-height: 1.25;
}

article[data-history-node-id="4"] .contact-details p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.8;
}

article[data-history-node-id="4"] .contact-details p + p {
  margin-top: clamp(24px, 3vw, 38px);
}

article[data-history-node-id="4"] .contact-details a {
  overflow-wrap: anywhere;
}

article[data-history-node-id="4"] .webform-submission-form .captcha {
  order: 90;
  margin: 22px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

article[data-history-node-id="4"] .webform-submission-form .captcha__title,
article[data-history-node-id="4"] .webform-submission-form .captcha__title .fieldset-legend {
  margin: 0 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  text-transform: none !important;
}

article[data-history-node-id="4"] .webform-submission-form .captcha__description {
  margin-top: 6px !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
}

article[data-history-node-id="4"] .webform-submission-form .form-actions {
  order: 100;
}

article[data-history-node-id="2276"] .node__content {
  padding: 8px clamp(36px, 5vw, 68px) clamp(24px, 3vw, 36px);
  border-radius: 0;
  background: transparent;
}

article[data-history-node-id="2276"] .newsletter-signup {
  width: min(100%, 760px);
  margin: 0 auto;
  text-align: center;
}

article[data-history-node-id="2276"] .newsletter-signup iframe {
  display: block;
  width: 100%;
  height: 285px;
  min-height: 285px;
  margin: 24px auto 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

@media (max-width: 767px) {
  article[data-history-node-id="4"] > header > .container,
  article[data-history-node-id="2276"] > header > .container {
    padding: 28px 20px 0;
  }

  article[data-history-node-id="4"] .node__content {
    display: block !important;
    padding: 8px 20px 30px;
  }

  article[data-history-node-id="4"] .field--name-body {
    width: 100%;
  }

  article[data-history-node-id="4"] .field--name-webform {
    margin-top: 36px;
  }

  article[data-history-node-id="2276"] .node__content {
    padding: 8px 20px 20px;
  }

  article[data-history-node-id="2276"] .newsletter-signup iframe {
    height: 310px;
    min-height: 310px;
    margin-top: 20px;
  }
}

@media (max-width: 640px) {
  :is(article[data-history-node-id="4"], .mittagspause-section--question) .webform-submission-form {
    font-size: 1.3rem;
  }
}

/* Account tasks use the same subtle world artwork as the Newsletter page. */
.page-user-login,
.page-user-register,
.page-user-pass,
.page-user-logout {
  background: #fafafa !important;
}

/* The restored footer should follow the compact logout content immediately. */
.page-user-logout {
  min-height: auto !important;
}

.page-user-login .main-page,
.page-user-register .main-page,
.page-user-pass .main-page,
.page-user-logout .main-page {
  margin-top: 0 !important;
  background: #fafafa url("/sites/default/files/Medien/sliders_exkursion/HintergrundKontakt_0.png")
    center / cover no-repeat !important;
}

.page-user-login .content-main,
.page-user-register .content-main,
.page-user-pass .content-main,
.page-user-logout .content-main {
  box-sizing: border-box;
  padding: clamp(24px, 4vw, 38px) !important;
  border: 1px solid rgba(62, 63, 65, 0.12) !important;
  border-radius: 16px !important;
  background: rgba(255, 255, 255, 0.95) !important;
  box-shadow: 0 14px 36px rgba(28, 39, 51, 0.1) !important;
}

/* Login and registration titles sit only slightly above their field labels. */
.page-user-login .auth-heading,
.page-user-register .auth-heading {
  margin-bottom: 12px !important;
  font-size: clamp(19px, 1.5vw, 20px) !important;
  line-height: 1.25 !important;
}

@media (max-width: 575px) {
  .page-user-login .content-main,
  .page-user-register .content-main,
  .page-user-pass .content-main,
  .page-user-logout .content-main {
    padding: 22px 18px !important;
    border-radius: 13px !important;
  }
}

/* Admin only: Block Builder edit link as a small, quiet tag at the top right
   instead of a big orange button over the page title. */
.gavias-blockbuilder-content .link-edit-blockbuider {
  top: 0;
  right: 0;
  left: auto;
  padding: 4px 9px;
  border: 1px solid rgba(28, 39, 51, 0.15);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.9);
  color: #1c2733 !important;
  font-size: 11px;
  font-weight: 600;
  text-transform: none;
  box-shadow: none;
  opacity: 0.45;
}
.gavias-blockbuilder-content .link-edit-blockbuider:hover,
.gavias-blockbuilder-content .link-edit-blockbuider:focus {
  opacity: 1;
  color: #1c2733 !important;
}

/* Registrierung bestätigen (/registrierung/bestaetigung): one clean card,
   readable label, pill buttons with white text like the rest of the site.
   px sizes because the theme root is 10px; !important where global
   rules (body .body-page a, h1 clamp) would win otherwise. */
.path-registrierung #content .container-bg {
  background: transparent;
  padding: 0;
}

.ip-registration-confirmation__panel {
  border-radius: 14px;
  background: #fff;
  padding: clamp(26px, 4vw, 40px);
  box-shadow: 0 14px 36px rgba(28, 39, 51, 0.08);
}

.ip-registration-confirmation__eyebrow {
  margin-bottom: 8px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
}

.ip-registration-confirmation h1.ip-registration-confirmation__title {
  margin: 0 0 16px !important;
  font-size: clamp(21px, 2vw, 24px) !important;
  line-height: 1.25 !important;
}

.ip-registration-confirmation__body,
.ip-registration-confirmation__note {
  font-size: 16px;
}

.ip-registration-confirmation__note {
  font-size: 15px;
}

body .body-page .ip-registration-confirmation a.ip-registration-confirmation__button {
  min-height: 44px;
  border-radius: 999px;
  padding: 11px 24px;
  font-size: 15px;
  font-weight: 700;
}

body .body-page .ip-registration-confirmation a.ip-registration-confirmation__button--primary,
body .body-page .ip-registration-confirmation a.ip-registration-confirmation__button--primary:hover,
body .body-page .ip-registration-confirmation a.ip-registration-confirmation__button--primary:focus {
  color: #fff !important;
}

body .body-page .ip-registration-confirmation a.ip-registration-confirmation__button--secondary {
  border-color: var(--ip-auth-brand);
  color: var(--ip-auth-brand-dark) !important;
}

/* Konto bearbeiten / Passwort festlegen (page--user--account.html.twig):
   same presentation as the registration form. The wrapper also carries
   .page-user-register for layout, card and background. */
.page-user-account #user-form label:not(.option) {
  display: block;
  margin-bottom: 12px;
  font-size: clamp(16px, 1.35vw, 18px) !important;
  font-weight: 700 !important;
  letter-spacing: normal !important;
  line-height: 1.4;
  text-transform: none !important;
}

.page-user-account #user-form .description,
.page-user-account #user-form .password-confirm-message,
.page-user-account #user-form .password-suggestions {
  margin-top: 10px;
  font-size: clamp(14px, 1vw, 15px) !important;
  line-height: 1.6;
}

.page-user-account #user-form .password-confirm-message:has([data-drupal-selector="password-match-status-text"]:empty) {
  display: none;
}

.page-user-account #user-form input[type="text"],
.page-user-account #user-form input[type="email"],
.page-user-account #user-form input[type="password"] {
  width: 100%;
  min-height: 58px;
  font-size: clamp(17px, 1.4vw, 18px) !important;
  line-height: 1.35;
}

.page-user-account #user-form .form-actions input[type="submit"] {
  width: 100%;
  min-height: 58px;
  border-radius: 999px !important;
  font-size: 16px !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

.page-user-account #user-form .form-actions input[type="submit"]:focus-visible {
  outline: 3px solid var(--ip-auth-brand-dark, #a9480f) !important;
  outline-offset: 3px !important;
}

/* Status/error messages on all account pages: a rounded note at card width. */
:is(.page-user-login, .page-user-register, .page-user-pass) .help .alert {
  max-width: 780px;
  margin: 0 auto 22px;
  border: 0;
  border-left: 3px solid #d66016;
  border-radius: 12px;
  background: #fff7f1;
  padding: 14px 18px;
  color: #1c2733;
  font-size: 15px;
  line-height: 1.55;
  box-shadow: 0 8px 22px rgba(28, 39, 51, 0.06);
}

:is(.page-user-login, .page-user-register, .page-user-pass) .help .alert-danger,
:is(.page-user-login, .page-user-register, .page-user-pass) .help .alert-error,
:is(.page-user-login, .page-user-register, .page-user-pass) .help .alert-warning {
  border-left-color: #b3261e;
  background: #fdf1f0;
}

/* Registrierung bestätigen: plain white page background. */
.path-registrierung .main-page {
  background: #fff;
}

/* Auth pages: the world-map area fills the page down to the footer instead
   of leaving a grey strip when the card is shorter than the viewport. */
:is(.page-user-login, .page-user-register, .page-user-pass, .page-user-logout).gva-body-page {
  display: flex;
  flex-direction: column;
}

:is(.page-user-login, .page-user-register, .page-user-pass, .page-user-logout).gva-body-page > .main-page {
  flex: 1 0 auto;
}

/* Konto wiederherstellen: same heading size, rounded field and help text as
   Login/Registrierung. */
.page-user-pass .auth-heading {
  margin-bottom: 12px !important;
  font-size: clamp(19px, 1.5vw, 20px) !important;
  line-height: 1.25 !important;
}

.page-user-pass #user-pass input[type="text"],
.page-user-pass #user-pass input[type="email"] {
  border-radius: 8px !important;
}

.page-user-pass #user-pass > p,
.page-user-pass #user-pass .form-item + p {
  margin-top: 10px;
  color: #626b76;
  font-size: clamp(14px, 1vw, 15px) !important;
  line-height: 1.6;
}

/* Registrierung bestätigen: no oversized empty area below the card. */
.path-registrierung .main-page {
  min-height: 0;
  padding-bottom: clamp(48px, 7vw, 88px);
}

/* Field labels on all account pages in the same dark ink as Registrierung. */
.page-user-login #user-login-form label,
.page-user-pass #user-pass label {
  color: #1c2733 !important;
}

/* Einmalige Anmeldung (/user/reset/...): the page behind the e-mail link. */
.page-user-reset #user-pass-reset p {
  margin: 0 0 10px;
  color: #3e3f41;
  font-size: 16px;
  line-height: 1.6;
}

.page-user-reset #user-pass-reset p em.placeholder {
  color: #1c2733;
  font-style: normal;
  font-weight: 700;
}

.page-user-reset #user-pass-reset .form-actions {
  margin-top: 22px;
}

.page-user-reset #user-pass-reset .form-actions input[type="submit"] {
  width: 100%;
  min-height: 58px;
  border-radius: 999px !important;
  font-size: 16px !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

/* Abmelden: same heading as the other account pages. */
.page-user-logout .auth-heading {
  margin: 0 0 12px !important;
  color: #d66016 !important;
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(19px, 1.5vw, 20px) !important;
  font-weight: 700;
  line-height: 1.25 !important;
  letter-spacing: 0.02em;
}

/* Logged-in account pages have no dark topbar, so the navy canvas colour
   (kept for the anonymous topbar) must not show below short pages. */
body.logged-in.path-user {
  background: #fff !important;
}

:is(.page-user-login, .page-user-register, .page-user-pass) .help .alert ul {
  margin: 0;
  padding-left: 18px;
}

/* Messages match the width of each page's card. */
.page-user-login .help .alert { max-width: 700px; }
.page-user-pass .help .alert { max-width: 680px; }

/* Account pages, calmer scale (2026-09-25): smaller labels, fields, text and
   button across Login, Registrieren, Konto wiederherstellen, Einmalige
   Anmeldung and Passwort festlegen. Same selectors (incl. form IDs) as the
   rules above so these later declarations win. */
.page-user-login #user-login-form label,
.page-user-register #user-register-form label,
.page-user-pass #user-pass label,
.page-user-account #user-form label:not(.option) {
  margin-bottom: 7px;
  font-size: 15px !important;
  font-weight: 700 !important;
}

.page-user-login #user-login-form input[type="text"],
.page-user-login #user-login-form input[type="email"],
.page-user-login #user-login-form input[type="password"],
.page-user-register #user-register-form input[type="text"],
.page-user-register #user-register-form input[type="email"],
.page-user-register #user-register-form input[type="password"],
.page-user-pass #user-pass input[type="text"],
.page-user-pass #user-pass input[type="email"],
.page-user-account #user-form input[type="text"],
.page-user-account #user-form input[type="email"],
.page-user-account #user-form input[type="password"] {
  min-height: 44px !important;
  height: 44px;
  padding: 8px 13px !important;
  font-size: 15px !important;
}

.page-user-login #user-login-form .description,
.page-user-register #user-register-form .description,
.page-user-pass #user-pass .description,
.page-user-pass #user-pass > p,
.page-user-account #user-form .description,
.page-user-account #user-form .password-confirm-message,
:is(.page-user-login, .page-user-register, .page-user-pass) .captcha__description {
  margin-top: 6px;
  font-size: 13px !important;
  line-height: 1.5;
}

.page-user-login #user-login-form .form-actions input[type="submit"],
.page-user-register #user-register-form .form-actions input[type="submit"],
.page-user-pass #user-pass .form-actions input[type="submit"],
.page-user-account #user-form .form-actions input[type="submit"],
.page-user-reset #user-pass-reset .form-actions input[type="submit"] {
  min-height: 46px !important;
  height: 46px;
  padding: 0 24px !important;
  font-size: 15px !important;
}

.page-user-reset #user-pass-reset p {
  font-size: 15px;
  line-height: 1.55;
}

.page-user-login .login-secondary .reset-link {
  font-size: 14px !important;
}

:is(.page-user-login, .page-user-register, .page-user-pass) .captcha__title {
  font-size: 14px !important;
}

:is(.page-user-login, .page-user-register, .page-user-pass) .help .alert {
  font-size: 14px;
}

/* Narrower account cards; messages keep the card width. */
:is(.page-user-login, .page-user-pass, .page-user-logout).gva-body-page .content-main {
  width: min(100%, 560px) !important;
  max-width: 560px !important;
}

.page-user-register.gva-body-page .content-main {
  width: min(100%, 600px) !important;
  max-width: 600px !important;
}

:is(.page-user-login, .page-user-pass) .help .alert { max-width: 560px; }
.page-user-register .help .alert { max-width: 600px; }

.page-user-reset #user-pass-reset p {
  font-size: 14px;
}

/* Abmelden: slim pill + quiet text link instead of two 58px buttons. */
.page-user-logout #user-logout-confirm .form-actions {
  gap: 14px;
  margin-top: 16px !important;
}

.page-user-logout #user-logout-confirm .form-actions input[type="submit"] {
  min-height: 40px !important;
  height: 40px;
  border-radius: 999px !important;
  padding: 0 22px !important;
  font-size: 14px !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

.page-user-logout #user-logout-confirm .form-actions a {
  min-height: 40px !important;
  height: 40px;
  border-radius: 999px;
  padding: 0 12px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
}

.page-user-logout #user-logout-confirm,
.page-user-logout .content-main .description {
  font-size: 15px;
}

.page-user-logout #user-logout-confirm::before {
  margin-bottom: 16px !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
}

/* Account pages: one card instead of a box inside a box. The inner block
   loses its own background, shadow and padding; its orange top line stays as
   a divider under the heading. Cards are slightly wider in exchange. */
:is(.page-user-login, .page-user-register, .page-user-pass, .page-user-logout) .content-main .block-system-main-block {
  border-right: 0 !important;
  border-bottom: 0 !important;
  border-left: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 24px 0 0 !important;
}

:is(.page-user-login, .page-user-pass, .page-user-logout).gva-body-page .content-main {
  width: min(100%, 600px) !important;
  max-width: 600px !important;
}

.page-user-register.gva-body-page .content-main {
  width: min(100%, 640px) !important;
  max-width: 640px !important;
}

:is(.page-user-login, .page-user-pass) .help .alert { max-width: 600px; }
.page-user-register .help .alert { max-width: 640px; }

/* Account pages: the submit button sizes to its label (left-aligned with the
   fields) instead of spanning the whole card; full width only on phones. */
@media (min-width: 576px) {
  .page-user-login #user-login-form .form-actions input[type="submit"],
  .page-user-register #user-register-form .form-actions input[type="submit"],
  .page-user-pass #user-pass .form-actions input[type="submit"],
  .page-user-account #user-form .form-actions input[type="submit"],
  .page-user-reset #user-pass-reset .form-actions input[type="submit"] {
    display: inline-block;
    width: auto !important;
    min-width: 200px;
    padding: 0 32px !important;
  }

  :is(.page-user-login, .page-user-register, .page-user-pass) .content-main .form-actions {
    display: flex !important;
    justify-content: flex-start !important;
  }

  .page-user-login .login-secondary {
    text-align: left !important;
    justify-content: flex-start !important;
  }

  .page-user-login .login-secondary .reset-link {
    padding-left: 0 !important;
  }
}

/* Account cards one step wider (supersedes the 600/640px widths above). */
:is(.page-user-login, .page-user-pass, .page-user-logout).gva-body-page .content-main {
  width: min(100%, 680px) !important;
  max-width: 680px !important;
}

.page-user-register.gva-body-page .content-main {
  width: min(100%, 720px) !important;
  max-width: 720px !important;
}

:is(.page-user-login, .page-user-pass) .help .alert { max-width: 680px; }
.page-user-register .help .alert { max-width: 720px; }

/* "Passwort vergessen?" centred under the form (per request). */
@media (min-width: 576px) {
  .page-user-login .login-secondary {
    text-align: center !important;
    justify-content: center !important;
  }

  .page-user-login .login-secondary .reset-link {
    padding-left: 8px !important;
  }
}

/* Konto wiederherstellen: field spans the card like on Login. */
.page-user-pass #user-pass input[type="text"],
.page-user-pass #user-pass input[type="email"] {
  width: 100% !important;
}

/* Account pages: submit buttons centred under the fields (per request). */
@media (min-width: 576px) {
  .page-user-login #user-login-form .form-actions,
  .page-user-register #user-register-form .form-actions,
  .page-user-pass #user-pass .form-actions,
  .page-user-account #user-form .form-actions,
  .page-user-reset #user-pass-reset .form-actions,
  .page-user-logout #user-logout-confirm .form-actions {
    display: flex !important;
    justify-content: center !important;
  }
}

.page-user-logout #user-logout-confirm::before {
  text-align: center;
}

/* Account pages: less empty map between card and footer. The wrapper only
   needs to be tall enough that page + footer fill the screen (~420px footer),
   so no canvas colour shows below the footer on tall screens. */
:is(.page-user-login, .page-user-register, .page-user-pass, .page-user-logout).gva-body-page {
  min-height: calc(100vh - 420px) !important;
}

:is(.page-user-login, .page-user-register, .page-user-pass, .page-user-logout).gva-body-page > .main-page {
  padding-bottom: 56px !important;
}

/* "Termin absagen": slim outlined pill with readable 14px text (the rem-based
   sizes resolved to 9–10px because of the theme's 10px root). */
.integplan-dashboard .termin-cancel-btn,
.integplan-dashboard .certificate-booked-slot:not(.certificate-booked-slot--none) .termin-cancel-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 160px;
  min-height: 40px;
  height: 40px;
  padding: 0 22px;
  border: 1px solid #b00020;
  border-radius: 999px;
  background: #fff;
  color: #b00020;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
}

.integplan-dashboard .termin-cancel-btn:hover,
.integplan-dashboard .certificate-booked-slot:not(.certificate-booked-slot--none) .termin-cancel-btn:hover {
  background: #b00020;
  color: #fff;
}

/* Booked-slot icon: FontAwesome calendar instead of the 📅 emoji, which some
   systems render as an empty box. */
.integplan-dashboard .certificate-booked-slot__icon {
  font-size: 0 !important;
  color: #d66016;
}

.integplan-dashboard .certificate-booked-slot__icon::before {
  content: "\f073";
  font-family: FontAwesome;
  font-size: 18px;
  line-height: 1;
}

/* Booked slot: readable label and date next to the slimmer cancel button. */
.integplan-dashboard .certificate-booked-slot:not(.certificate-booked-slot--none) .certificate-booked-slot__label {
  font-size: 14px;
}

.integplan-dashboard .certificate-booked-slot:not(.certificate-booked-slot--none) .certificate-booked-slot__date {
  font-size: 17px;
}

/* Anmeldungen (empty state): "Weiterbildungen entdecken" as a proper primary
   pill; the rem-based 0.95rem resolved to 9.5px with the 10px theme root. */
.integplan-dashboard .registrations-empty {
  padding: 32px 24px;
}

.integplan-dashboard .registrations-empty .empty-message {
  margin: 0 0 18px;
  font-size: 16px;
}

body .body-page .integplan-dashboard .registrations-empty a.btn-primary,
body .body-page .integplan-dashboard .registrations-empty a.btn-primary:hover,
body .body-page .integplan-dashboard .registrations-empty a.btn-primary:focus {
  color: #fff !important;
}

.integplan-dashboard .registrations-empty a.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 26px;
  border: 1px solid #d66016;
  border-radius: 999px;
  background: #d66016;
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
}

.integplan-dashboard .registrations-empty a.btn-primary:hover,
.integplan-dashboard .registrations-empty a.btn-primary:focus {
  border-color: #a9480f;
  background: #a9480f;
}

/* Profil bearbeiten (/meine-ubersicht/profil-bearbeiten): one centred card,
   two-column grid on desktop and the same field language as the account
   pages (44px fields, 15px labels/text, 8px radius, orange focus). */
form.integplan-profile-edit-form {
  display: grid !important;
  grid-template-columns: 1fr;
  column-gap: 24px;
  row-gap: 18px !important;
  width: min(100%, 860px) !important;
  max-width: 860px !important;
  margin: 8px auto 56px !important;
  border: 1px solid rgba(28, 39, 51, 0.08) !important;
  border-top: 3px solid #d66016 !important;
  border-radius: 16px !important;
  background: #fff !important;
  padding: clamp(22px, 4vw, 38px) !important;
  box-shadow: 0 14px 36px rgba(28, 39, 51, 0.08) !important;
  font-size: 15px !important;
  line-height: 1.5 !important;
}

@media (min-width: 768px) {
  form.integplan-profile-edit-form {
    grid-template-columns: 1fr 1fr;
  }

  form.integplan-profile-edit-form > .field--name-field-anrede,
  form.integplan-profile-edit-form > .field--name-field-rueckkehrberaterin,
  form.integplan-profile-edit-form > .form-actions,
  form.integplan-profile-edit-form > .messages,
  form.integplan-profile-edit-form > [data-drupal-messages] {
    grid-column: 1 / -1;
  }

  form.integplan-profile-edit-form > .field--name-field-anrede .form-item {
    max-width: calc(50% - 12px);
  }

  /* "Profil bearbeiten": Anrede | Benutzername (read-only) in one row. */
  form.integplan-profile-edit-form > .field--name-field-anrede.ip-anrede-with-username {
    grid-column: auto;
  }

  form.integplan-profile-edit-form > .field--name-field-anrede.ip-anrede-with-username .form-item {
    max-width: none;
  }
}

form.integplan-profile-edit-form > .form-actions {
  grid-column: 1 / -1;
}

form.integplan-profile-edit-form .form-item {
  margin: 0 !important;
}

form.integplan-profile-edit-form label:not(.option),
form.integplan-profile-edit-form legend,
form.integplan-profile-edit-form .fieldset-legend,
form.integplan-profile-edit-form .field--type-datetime > h4,
form.integplan-profile-edit-form h4 {
  display: block !important;
  margin: 0 0 7px !important;
  color: #1c2733 !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

form.integplan-profile-edit-form input[type="text"],
form.integplan-profile-edit-form input[type="email"],
form.integplan-profile-edit-form input[type="tel"],
form.integplan-profile-edit-form input[type="number"],
form.integplan-profile-edit-form input[type="date"],
form.integplan-profile-edit-form .form-date,
form.integplan-profile-edit-form select {
  width: 100% !important;
  height: 44px !important;
  min-height: 44px !important;
  padding: 8px 13px !important;
  border: 1px solid #d9dde3 !important;
  border-radius: 8px !important;
  background-color: #fff !important;
  box-shadow: none !important;
  color: #1c2733 !important;
  font-size: 15px !important;
  line-height: 1.3 !important;
}

form.integplan-profile-edit-form input:focus,
form.integplan-profile-edit-form select:focus {
  border-color: #d66016 !important;
  box-shadow: 0 0 0 3px rgba(214, 96, 22, 0.16) !important;
}

form.integplan-profile-edit-form .description {
  margin-top: 6px;
  color: #626b76;
  font-size: 13px !important;
  line-height: 1.5;
}

/* RückkehrberaterIn: options side by side. */
form.integplan-profile-edit-form .field-rueckkehrberaterin-wrapper .fieldset-wrapper,
form.integplan-profile-edit-form .field--name-field-rueckkehrberaterin .form-radios {
  display: flex !important;
  flex-wrap: wrap;
  gap: 8px 28px !important;
}

form.integplan-profile-edit-form .field--name-field-rueckkehrberaterin label.option {
  color: #1c2733;
  font-size: 15px !important;
  font-weight: 400 !important;
}

form.integplan-profile-edit-form .field--name-field-rueckkehrberaterin fieldset {
  margin: 0 !important;
  border: 0 !important;
  padding: 0 !important;
}

/* Actions: centred pill + quiet back link. */
form.integplan-profile-edit-form .form-actions {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 12px 22px;
  margin: 10px 0 0 !important;
  border-top: 1px solid rgba(28, 39, 51, 0.08);
  padding-top: 22px;
}

form.integplan-profile-edit-form .form-actions input[type="submit"] {
  min-width: 200px;
  height: 46px !important;
  min-height: 46px !important;
  margin: 0 !important;
  border-radius: 999px !important;
  padding: 0 32px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

body .body-page form.integplan-profile-edit-form a.integplan-profile-back {
  color: #a9480f !important;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
}

body .body-page form.integplan-profile-edit-form a.integplan-profile-back:hover {
  text-decoration: underline;
}

@media (min-width: 768px) {
  form.integplan-profile-edit-form > .field--name-field-strasse {
    grid-column: 1;
  }
}

form.integplan-profile-edit-form #edit-field-rueckkehrberaterin {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 28px;
}

form.integplan-profile-edit-form #edit-field-rueckkehrberaterin .form-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

form.integplan-profile-edit-form #edit-field-rueckkehrberaterin input[type="radio"] {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: #d66016;
}

form.integplan-profile-edit-form #edit-field-rueckkehrberaterin label.option {
  margin: 0 !important;
  color: #1c2733;
  font-size: 15px !important;
  font-weight: 400 !important;
}

form.integplan-profile-edit-form #edit-field-rueckkehrberaterin input[type="radio"] {
  width: 18px !important;
  height: 18px !important;
}

form.integplan-profile-edit-form label:not(.option),
form.integplan-profile-edit-form legend,
form.integplan-profile-edit-form .field--type-datetime > h4,
form.integplan-profile-edit-form h4 {
  line-height: 1.4 !important;
}

/* Booked-slot calendar icon: centred in its 44px square. */
.integplan-dashboard .certificate-booked-slot__icon {
  padding: 0 !important;
  line-height: 1 !important;
}

.integplan-dashboard .certificate-booked-slot__icon::before {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  text-align: center;
}

.integplan-dashboard .certificate-booked-slot__icon {
  position: relative;
}

.integplan-dashboard .certificate-booked-slot__icon::before {
  position: absolute;
  inset: 0;
  height: auto;
}

/* Booked slot: neutral label, the date stays the orange highlight. */
.integplan-dashboard .certificate-booked-slot .certificate-booked-slot__label {
  color: #3e3f41 !important;
}

/* Booked slot, calmer: neutral date text and a plain light surface instead
   of the orange-bordered gradient card with shadow. */
.integplan-dashboard .certificate-booked-slot .certificate-booked-slot__date {
  color: #1c2733 !important;
}

.integplan-dashboard .certificate-booked-slot:not(.certificate-booked-slot--none) {
  border: 0 !important;
  border-radius: 12px !important;
  background: #f7f7f6 !important;
  box-shadow: none !important;
}

.integplan-dashboard .certificate-booked-slot:not(.certificate-booked-slot--none) .certificate-booked-slot__icon {
  border-color: rgba(28, 39, 51, 0.08) !important;
  background: #fff !important;
}

/* E-Learning Video-Chat: no coloured panel, content flush with the heading. */
.integplan-dashboard .elearning-final-appointment {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
}

.integplan-dashboard .elearning-final-appointment__details-body {
  margin-top: 14px;
  color: #3e3f41;
  font-size: 14px;
  line-height: 1.55;
}

.integplan-dashboard .elearning-final-appointment__details-body p {
  margin: 0 0 12px !important;
}

.integplan-dashboard .elearning-final-appointment__details-body p:last-child {
  margin-bottom: 0 !important;
}

/* Course page: "Auf einen Blick" facts (field_course_features) as a calm list
   instead of the skin's bold two-column float layout. */
.single-course .course-features--list {
  margin: 28px 0 0 !important;
  border-top: 1px solid rgba(28, 39, 51, 0.1);
  padding-top: 18px;
  font-weight: 400 !important;
}

.single-course .course-features--list .course-facts {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.single-course .course-features--list .course-facts__item {
  position: relative;
  margin: 0;
  padding-left: 18px;
  color: #3e3f41 !important;
  /* Same size as the description text (1.2em of the 1.6rem base). */
  font-size: 1.92rem !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
}

.single-course .course-features--list .course-facts__item::before {
  content: "";
  position: absolute;
  top: 0.62em;
  left: 2px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #d66016;
}

.single-course .course-features--list .course-facts__label {
  color: #1c2733;
  font-weight: 700;
}

/* Profil bearbeiten, flat: no card frame, orange line, shadow or divider;
   same centred width, grid and field styling as before. */
form.integplan-profile-edit-form {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 12px 0 0 !important;
}

form.integplan-profile-edit-form .form-actions {
  border-top: 0 !important;
  padding-top: 8px !important;
}

/* RückkehrberaterIn radios: native orange radio, no square background or
   halo from the older dashboard rules. */
form.integplan-profile-edit-form .field-rueckkehrberaterin-wrapper .form-radio,
form.integplan-profile-edit-form .field-rueckkehrberaterin-wrapper .form-radio:checked,
form.integplan-profile-edit-form .field-rueckkehrberaterin-wrapper .form-radio:focus {
  border: 0 !important;
  background: none !important;
  box-shadow: none !important;
  accent-color: #d66016;
}

/* Course facts closer to the description text. */
.single-course .course-features--list {
  margin-top: 4px !important;
  padding-top: 14px;
}

/* Anmeldungen: "Weiterbildung ansehen" readable (0.95rem resolved to 9.5px). */
.integplan-dashboard .registration-card a.btn-view {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 18px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
}

body .body-page .integplan-dashboard .registration-card a.btn-view,
body .body-page .integplan-dashboard .registration-card a.btn-view:hover,
body .body-page .integplan-dashboard .registration-card a.btn-view:focus {
  color: #a9480f !important;
}

/* ===== Dashboard, calmer pass (2026-09-25) ===== */

/* Vergangene Teilnahmen: plain white cards with a fine border; no orange
   side accent, gradient, circle icon or vertical timeline line. Dates in
   quiet grey so orange stays for "Materialien". No automatic hyphenation. */
.integplan-dashboard .attended-events-list::before {
  display: none !important;
}

.integplan-dashboard .event-card {
  border: 1px solid rgba(28, 39, 51, 0.1) !important;
  border-radius: 10px !important;
  background: #fff !important;
  box-shadow: none !important;
}

.integplan-dashboard .event-card::before {
  display: none !important;
}

.integplan-dashboard .event-card .event-title {
  hyphens: manual !important;
  -webkit-hyphens: manual !important;
  overflow-wrap: normal;
}

.integplan-dashboard .event-card .event-date {
  color: #626b76 !important;
  font-weight: 500 !important;
}

/* Anmeldungen: readable status badge in normal case. */
.integplan-dashboard .registration-state {
  display: inline-flex;
  align-items: center;
  padding: 4px 11px !important;
  border-radius: 999px !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

.integplan-dashboard .event-card {
  grid-template-columns: minmax(0, 1fr) auto !important;
  column-gap: 16px !important;
}

/* Mein Profil: fields as quiet tiles, labels in normal case. */
.integplan-dashboard .profile-field {
  border: 0 !important;
  border-radius: 10px !important;
  background: #f7f7f6 !important;
  box-shadow: none !important;
}

.integplan-dashboard .profile-field .field-label {
  color: #626b76 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

/* Zertifikatskurs status box: white with a fine border, no gradient, side
   line or shadow; the heading keeps its orange. */
.integplan-dashboard .certificate-status-box {
  border: 1px solid rgba(28, 39, 51, 0.1) !important;
  border-radius: 12px !important;
  background: #fff !important;
  box-shadow: none !important;
}

.integplan-dashboard .certificate-status-box::before {
  display: none !important;
}

/* E-Learning overview, calmer: module cards with a fine border (no orange
   top line or shadow), pill buttons like the rest of the site, no heavy
   button shadows. Progress bars unchanged. */
.integplan-dashboard .elearning-overview-section .elearning-module-card {
  border: 1px solid rgba(28, 39, 51, 0.1) !important;
  border-radius: 12px !important;
  box-shadow: none !important;
}

.integplan-dashboard .elearning-module-card .btn-elearning {
  border-radius: 999px !important;
  box-shadow: none !important;
}

.integplan-dashboard .elearning-final-appointment__link,
.integplan-dashboard .elearning-poll-form .form-actions input[type="submit"],
.integplan-dashboard .elearning-poll-form input.button--primary {
  box-shadow: none !important;
}

/* Zertifikatskurs, no appointment yet: same calm surface as a booked slot,
   orange calendar icon, text and a pill "Termin buchen" on the right. */
.integplan-dashboard .certificate-booked-slot--none {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  border: 0 !important;
  border-radius: 12px !important;
  background: #f7f7f6 !important;
  box-shadow: none !important;
  padding: 18px 22px !important;
  color: #3e3f41 !important;
}

.integplan-dashboard .certificate-booked-slot--none .certificate-booked-slot__icon {
  position: relative;
  display: grid;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(28, 39, 51, 0.08);
  border-radius: 11px;
  background: #fff;
}

.integplan-dashboard .certificate-booked-slot--none .certificate-booked-slot__empty {
  font-size: 15px;
  font-weight: 600;
}

body .body-page .integplan-dashboard .certificate-booked-slot--none a.certificate-book-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  margin-left: auto;
  border-radius: 999px;
  background: #d66016;
  padding: 0 22px;
  color: #fff !important;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none !important;
}

body .body-page .integplan-dashboard .certificate-booked-slot--none a.certificate-book-link:hover,
body .body-page .integplan-dashboard .certificate-booked-slot--none a.certificate-book-link:focus {
  background: #a9480f;
  color: #fff !important;
}

@media (max-width: 575px) {
  .integplan-dashboard .certificate-booked-slot--none {
    flex-wrap: wrap;
  }

  body .body-page .integplan-dashboard .certificate-booked-slot--none a.certificate-book-link {
    width: 100%;
    margin-left: 0;
  }
}

/* Course pages: no "Inhalte" heading and orange line above the description;
   the text follows the meta box directly. */
.single-course .field--name-body::before {
  content: none !important;
  display: none !important;
}

.single-course .post-content .field--name-body {
  margin-top: 28px;
}

/* Course description: fine grey divider above the text (same as above the
   course facts list) instead of the former "Inhalte" heading. */
.single-course .post-content .field--name-body {
  margin-top: 28px;
  border-top: 1px solid rgba(28, 39, 51, 0.1);
  padding-top: 22px;
}

.single-course .post-content {
  clear: both;
}

.single-course .post-content .field--name-body {
  margin-top: 0 !important;
  padding-top: 20px;
}

/* Course pages: "?" hint beside "Themenbereich" in the info box, same look as
   the Themenbereich filter in the Weiterbildung overview. CSS-only: opens on
   hover, keyboard focus and tap (focus). */
.single-course .course-meta .ip-meta-help {
  position: relative;
  display: inline-flex;
  margin-left: 5px;
  vertical-align: -1px;
}

.single-course .course-meta .ip-meta-help__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 15px;
  height: 15px;
  border: 0;
  border-radius: 50%;
  padding: 0;
  background: #fbe7d9;
  color: #a9480f;
  line-height: 0;
  cursor: help;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.single-course .course-meta .ip-meta-help__button:hover,
.single-course .course-meta .ip-meta-help:focus-within .ip-meta-help__button {
  background: #d66016;
  color: #fff;
}

.single-course .course-meta .ip-meta-help__button:focus-visible {
  outline: 3px solid rgba(215, 97, 23, 0.35);
  outline-offset: 2px;
}

.single-course .course-meta .ip-meta-help__tip {
  position: absolute;
  z-index: 40;
  bottom: calc(100% + 9px);
  left: 50%;
  width: max-content;
  max-width: 240px;
  border-radius: 8px;
  padding: 8px 12px;
  background: #1c2733;
  color: #fff;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.4;
  text-align: center;
  text-transform: none;
  letter-spacing: normal;
  white-space: normal;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(-50%);
  transition: opacity 0.15s ease, visibility 0.15s ease;
}

.single-course .course-meta .ip-meta-help__tip::after {
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -6px;
  border: 6px solid transparent;
  border-top-color: #1c2733;
  content: "";
}

.single-course .course-meta .ip-meta-help:hover .ip-meta-help__tip,
.single-course .course-meta .ip-meta-help:focus-within .ip-meta-help__tip {
  opacity: 1;
  visibility: visible;
}

/* "?" directly after "Themenbereich", optically centred on the small label. */
.single-course .course-meta .ip-meta-help {
  top: -2px;
  margin-left: 4px;
  vertical-align: middle;
}

/* Rounded picture cards (Builder el_class "ip-rounded-image-lg") on the
   Weiterbildung overview (Fachtagungen): link text like the site's in-text
   links (brand orange, normal weight, underline on hover). */
body.integplan-section-page .body-page .gsc-image-content.ip-rounded-image-lg .action a {
  color: #d65f16 !important;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: normal;
  text-transform: none;
  text-decoration: none !important;
}

body.integplan-section-page .body-page .gsc-image-content.ip-rounded-image-lg .action a:hover,
body.integplan-section-page .body-page .gsc-image-content.ip-rounded-image-lg .action a:focus-visible {
  color: #d65f16 !important;
  text-decoration: underline !important;
  text-decoration-thickness: 1px !important;
  text-underline-offset: 3px;
}

/* Photo gallery cards on the Fachtagung info pages (Builder el_class
   "ip-gallery-image"): picture only, no title/link line underneath. */
.gsc-image-content.ip-gallery-image .content {
  display: none !important;
}

.gsc-image-content.ip-gallery-image {
  margin-bottom: 24px;
}

/* Fachtagung info pages (node class "ip-fachtagung-page", set in the page
   edit form): moderate header image and one calm text hierarchy. */
body.ip-fachtagung-page .gbb-row .text-size-medium img {
  width: 100% !important;
  max-width: 400px !important;
  height: auto !important;
}

body.ip-fachtagung-page .gbb-row .text-size-medium :is(p, li) {
  font-size: 16px !important;
  line-height: 1.55 !important;
}

body.ip-fachtagung-page .gbb-row .text-size-medium h2 {
  margin: 8px 0 12px !important;
  font-size: 22px !important;
}

body.ip-fachtagung-page .gbb-row .text-size-medium h3 {
  margin: 22px 0 10px !important;
  color: #3e3f41 !important;
  font-size: 17px !important;
}

/* Wide banner-style header images (class "ip-header-wide" on the <img> in the
   Builder, e.g. 2026) use the full column width instead of 400px. */
body.ip-fachtagung-page .gbb-row .text-size-medium img.ip-header-wide {
  max-width: 100% !important;
}

/* Login hint that replaces members-only Builder elements for anonymous
   visitors (integplan_dashboard_node_view_alter()). */
.ip-members-only-hint {
  margin-top: 26px;
}

body .body-page .ip-members-only-hint p a {
  color: #d65f16 !important;
  text-decoration: none !important;
}

body .body-page .ip-members-only-hint p a:hover,
body .body-page .ip-members-only-hint p a:focus-visible {
  text-decoration: underline !important;
  text-underline-offset: 3px;
}

body.ip-fachtagung-page .gbb-row .text-size-medium .ip-members-only-hint,
body.ip-fachtagung-page .gbb-row .ip-members-only-hint p {
  color: #58595b;
}

.gbb-row .column-content.ip-members-only {
  margin-top: 26px;
}

/* Fachtagung pages: group headings (e.g. Mainz 2021) as quiet sub-labels;
   directly after "Präsentationen" without an extra gap. */
body.ip-fachtagung-page .gbb-row .text-size-medium h3 {
  margin: 26px 0 8px !important;
  color: #d65f16 !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

body.ip-fachtagung-page .gbb-row .text-size-medium h2 + h3 {
  margin-top: 4px !important;
}

/* E-Learning dashboard: video-chat buttons in the same size as the module
   buttons (42px, 14px). Mittagspause on course pages is unchanged. */
.integplan-dashboard .elearning-final-appointment__link {
  min-height: 42px !important;
  height: 42px;
  padding: 0 22px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
}

.integplan-dashboard .elearning-final-appointment__details summary {
  min-height: 36px !important;
  padding: 0 16px !important;
  display: inline-flex !important;
  align-items: center;
  font-size: 13px !important;
}

.integplan-dashboard .elearning-poll-form .form-actions input[type="submit"] {
  min-height: 42px !important;
  height: 42px;
  padding: 0 22px !important;
  font-size: 14px !important;
}

.integplan-dashboard .elearning-final-appointment__link {
  width: auto !important;
  min-width: 0 !important;
}


/* /weiterbildung: content hidden until the section navigation and filters
   are built (class removed by weiterbildung-navigation.js); CSS fallback
   reveals it after 2.5s. Small spinner meanwhile. */
html.ip-wb-loading body.integplan-training-page .gavias-blockbuilder-content {
  opacity: 0;
  animation: ip-wb-reveal 0.2s ease 2.5s forwards;
}

html.ip-wb-loading body.integplan-training-page::after {
  content: "";
  position: fixed;
  top: 50%;
  left: 50%;
  width: 34px;
  height: 34px;
  margin: -17px 0 0 -17px;
  border: 3px solid #fbe7d9;
  border-top-color: #d66016;
  border-radius: 50%;
  animation: ip-wb-spin 0.8s linear infinite, ip-wb-hide 0s linear 2.5s forwards;
  z-index: 50;
}

body.integplan-training-page .gavias-blockbuilder-content.ip-section-builder {
  animation: ip-wb-reveal 0.2s ease;
}

@keyframes ip-wb-reveal { from { opacity: 0; } to { opacity: 1; } }
@keyframes ip-wb-spin { to { transform: rotate(360deg); } }
@keyframes ip-wb-hide { to { visibility: hidden; } }

/* Drupal status messages (server-rendered .alert and BigPipe/JS-rendered
   .messages): one calm card at the top of the content, site colours. */
[data-drupal-messages] :is(.messages, .alert) {
  max-width: 1600px;
  margin: 18px auto 0;
  border: 1px solid rgba(28, 39, 51, 0.1);
  border-left: 4px solid #2e7d32;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(28, 39, 51, 0.06);
  padding: 14px 18px 14px 18px;
  color: #1c2733;
  font-size: 15px;
  line-height: 1.55;
}

[data-drupal-messages] :is(.messages--warning, .alert-warning) {
  border-left-color: #d66016;
}

[data-drupal-messages] :is(.messages--error, .alert-danger, .alert-error) {
  border-left-color: #b3261e;
}

[data-drupal-messages] :is(.messages, .alert) a {
  color: #d65f16 !important;
}


[data-drupal-messages] :is(.messages, .alert) {
  margin-bottom: 22px;
}

/* Status messages, final look: soft tinted box with a small round icon,
   no shadow; on course pages flush with the text column. */
[data-drupal-messages] :is(.messages, .alert) {
  position: relative;
  max-width: none;
  margin: 20px 0 24px;
  border: 0 !important;
  border-radius: 10px;
  background: #eef6ef;
  box-shadow: none;
  padding: 14px 18px 14px 52px;
  color: #1e4d2b;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.5;
}

[data-drupal-messages] :is(.messages, .alert)::before {
  content: "\f00c";
  position: absolute;
  top: 50%;
  left: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  margin-top: -12px;
  border-radius: 50%;
  background: #2e7d32;
  color: #fff;
  font-family: FontAwesome;
  font-size: 12px;
  line-height: 1;
}

[data-drupal-messages] :is(.messages--warning, .alert-warning) {
  background: #fdf1e8;
  color: #7a3a0c;
}

[data-drupal-messages] :is(.messages--warning, .alert-warning)::before {
  content: "\f12a";
  background: #d66016;
}

[data-drupal-messages] :is(.messages--error, .alert-danger, .alert-error) {
  background: #fdeeed;
  color: #8a1c14;
}

[data-drupal-messages] :is(.messages--error, .alert-danger, .alert-error)::before {
  content: "\f00d";
  background: #b3261e;
}

/* Course pages: align the message area with the course text column. */
body.integplan-course-detail .gav-help-region .container {
  width: auto !important;
  max-width: none !important;
  padding: 0 20px !important;
}

@media (min-width: 992px) {
  body.integplan-course-detail .gav-help-region [data-drupal-messages] {
    width: calc(100% - 306px);
  }
}

/* Override Bootstrap .alert-info/-warning/-danger colours and borders. */
[data-drupal-messages] .alert,
[data-drupal-messages] .alert.alert-info {
  border: 0 !important;
  background: #eef6ef !important;
  color: #1e4d2b !important;
}

[data-drupal-messages] .alert.alert-warning {
  background: #fdf1e8 !important;
  color: #7a3a0c !important;
}

[data-drupal-messages] .alert.alert-danger {
  background: #fdeeed !important;
  color: #8a1c14 !important;
}

[data-drupal-messages] .alert h2.visually-hidden + * {
  margin: 0;
}

[data-drupal-messages] :is(.messages, .alert) {
  border-radius: 10px !important;
}

/* Theme skin frames the message wrapper with a blue border and padding
   (.gav-help-region .messages__wrapper in the skins' template.css): remove it,
   the message card itself carries the styling. */
.gav-help-region .messages__wrapper,
[data-drupal-messages] .messages__wrapper {
  margin: 0 !important;
  border: 0 !important;
  background: none !important;
  padding: 0 !important;
}

/* ===== Barrierefreiheit (BITV 2.0) 2026-10-06 – keyboard focus and skip link =====
   Visible focus ring only for keyboard navigation (focus-visible), so mouse
   clicks look unchanged. Revert: remove this block. */
html body a:focus-visible,
html body button:focus-visible,
html body input:focus-visible,
html body select:focus-visible,
html body textarea:focus-visible,
html body summary:focus-visible,
html body [role="button"]:focus-visible,
html body [tabindex]:not([tabindex="-1"]):focus-visible {
  outline: 3px solid #a9480f !important;
  outline-offset: 2px !important;
}
#main-content:focus,
#main-content:focus-visible {
  outline: none !important;
}
html body a.visually-hidden.focusable:focus,
html body a.visually-hidden.focusable:active {
  position: fixed !important;
  top: 10px !important;
  left: 10px !important;
  z-index: 100000 !important;
  width: auto !important;
  height: auto !important;
  clip: auto !important;
  overflow: visible !important;
  padding: 10px 18px !important;
  background: #fff !important;
  color: #3e3f41 !important;
  border: 2px solid #a9480f !important;
  border-radius: 6px !important;
  font-size: 15px !important;
  text-decoration: none !important;
}

/* BITV 2026-10-06: submenus reachable by keyboard. A submenu opens while a
   keyboard-focused element (focus-visible) is inside its menu item; mouse and
   touch behaviour is unchanged (hover / plus icon). Revert: remove block. */
@media (min-width: 992px) {
  html body .navigation .gva_menu > li:has(:focus-visible) > ul.sub-menu,
  html body .navigation .gva_menu > li:has(:focus-visible) div.sub-menu {
    display: block;
    visibility: visible;
    opacity: 1;
    top: 100%;
  }
  html body .navigation .gva_menu > li:has(:focus-visible) > ul.sub-menu ul,
  html body .navigation .gva_menu > li:has(:focus-visible) > ul.sub-menu li,
  html body .navigation .gva_menu > li:has(:focus-visible) > ul.sub-menu div {
    visibility: visible;
  }
}
html body #gva-mobile-menu .gva-navigation .gva_menu > li:has(:focus-visible) > ul.sub-menu {
  display: block !important;
}

/* BITV 2026-10-06: visible required-field marker on the contact (webform)
   and account registration forms. Course registration forms keep their
   "(optional)" marking. Revert: remove block. */
html body .webform-submission-form label.form-required::after,
html body .user-register-form label.form-required::after {
  content: " *" !important;
  display: inline !important;
  background: none !important;
  width: auto !important;
  height: auto !important;
  color: inherit !important;
  margin: 0 !important;
}

/* BITV 2026-10-06: "Erklärung zur Barrierefreiheit" page (node class
   ip-a11y-statement): comfortable reading width, links clearly marked. */
body.ip-a11y-statement .field--name-body {
  max-width: 920px;
  margin: 0 auto;
  padding: 10px 20px 30px;
  font-size: 16px;
}
body.ip-a11y-statement .field--name-body h2 {
  font-size: 22px;
  margin: 30px 0 10px;
}
body.ip-a11y-statement .field--name-body a {
  color: #a9480f;
  text-decoration: underline;
}

/* Erklärung zur Barrierefreiheit (Block Builder 33, body class
   "barrierefreiheit"): same look as /datenschutz. Section headings stay real
   <h2> elements but look like the bold Datenschutz sub-headings; links are
   underlined. */
body.ip-a11y-statement blockquote h2 {
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  margin: 26px 0 4px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: inherit !important;
}
body.ip-a11y-statement blockquote a {
  text-decoration: underline;
}
body.ip-a11y-statement blockquote ul,
body.ip-a11y-statement blockquote li {
  font-size: 16px !important;
  line-height: 1.6 !important;
  margin-bottom: 4px;
}

/* Anmeldungen: finished courses and canceled registrations collapsed below the
   current ones (2026-10-28). */
.integplan-dashboard .registrations-archive {
  margin-top: 24px;
  border-top: 1px solid #e9e9e7;
}
.integplan-dashboard .registrations-archive > summary {
  padding: 16px 0;
  font-size: 15px;
  font-weight: 600;
  color: #58595b;
  cursor: pointer;
}
.integplan-dashboard .registrations-archive > summary:hover,
.integplan-dashboard .registrations-archive > summary:focus-visible {
  color: #a9480f;
}
.integplan-dashboard .registrations-archive .registration-card {
  opacity: 0.85;
}

/* Anmeldungen with registrations: same "Weiterbildungen entdecken" pill below
   the list (2026-10-06). */
.integplan-dashboard .registrations-more {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid #e9e9e7;
  text-align: center;
}
.integplan-dashboard .registrations-more__text {
  margin: 0 0 14px;
  font-size: 15px;
  color: #58595b;
}
body .body-page .integplan-dashboard .registrations-more a.btn-primary,
body .body-page .integplan-dashboard .registrations-more a.btn-primary:hover,
body .body-page .integplan-dashboard .registrations-more a.btn-primary:focus {
  color: #fff !important;
}
.integplan-dashboard .registrations-more a.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 26px;
  border: 1px solid #d66016;
  border-radius: 999px;
  background: #d66016;
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
}
.integplan-dashboard .registrations-more a.btn-primary:hover,
.integplan-dashboard .registrations-more a.btn-primary:focus {
  border-color: #a9480f;
  background: #a9480f;
}

/* Newsletter article (Aktuelles, node 3010): embedded newsletter issue and
   sign-up button. Classes are set in the article body. */
.ip-newsletter-embed {
  margin: 18px 0 8px;
}
.ip-newsletter-embed iframe {
  display: block;
  width: 100%;
  height: 1200px;
  border: 1px solid #e3e3e1;
  border-radius: 10px;
  background: #fff;
}
body .body-page a.ip-newsletter-cta,
body .body-page a.ip-newsletter-cta:visited {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 24px;
  border-radius: 999px;
  background: #d66016;
  color: #fff !important;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
}
body .body-page a.ip-newsletter-cta:hover,
body .body-page a.ip-newsletter-cta:focus {
  background: #a9480f;
  color: #fff !important;
}
.ip-newsletter-fallback {
  font-size: 14px;
  color: #58595b;
}
@media (max-width: 767px) {
  .ip-newsletter-embed iframe { height: 900px; }
}
html body .body-page .field--name-body a.ip-newsletter-cta,
html body .body-page .field--name-body a.ip-newsletter-cta:visited,
html body .body-page .field--name-body a.ip-newsletter-cta:hover,
html body .body-page .field--name-body a.ip-newsletter-cta:focus {
  color: #fff !important;
  -webkit-text-fill-color: #fff;
  text-decoration: none !important;
}

/* Admin toolbar (only for accounts that see it, body.toolbar-fixed): move the
   fixed site header below the toolbar instead of under it. Drupal publishes
   the toolbar height as --drupal-displace-offset-top. Without the toolbar
   (visitors, participants) nothing changes. */
html body.toolbar-fixed:not(.path-user) .header-main {
  top: var(--drupal-displace-offset-top, 0px) !important;
}
html body.toolbar-fixed:not(.path-user) {
  padding-top: calc(80px + var(--drupal-displace-offset-top, 0px)) !important;
}
@media (max-width: 991px) {
  html body.toolbar-fixed:not(.path-user) {
    padding-top: calc(64px + var(--drupal-displace-offset-top, 0px)) !important;
  }
  /* Narrow screens: the toolbar scrolls with the page, so the header joins
     the page flow right below it (admins only). */
  html body.toolbar-vertical:not(.toolbar-fixed):not(.path-user) .header-main {
    position: relative !important;
    top: 0 !important;
  }
  html body.toolbar-vertical:not(.toolbar-fixed):not(.path-user) {
    padding-top: var(--drupal-displace-offset-top, 0px) !important;
  }
}
/* Admin toolbar on front-end user pages (/user/<id>): the fixed header there
   sits at 40px without body padding; logout confirmation has a static
   header. Again only with the toolbar. */
html body.toolbar-fixed.path-user .header-main {
  top: var(--drupal-displace-offset-top, 0px) !important;
}
html body.toolbar-fixed.path-user:not(:has(.page-user-logout)) {
  padding-top: max(0px, calc(var(--drupal-displace-offset-top, 0px) - 40px)) !important;
}
html body.toolbar-fixed.path-user:has(.page-user-logout) {
  padding-top: var(--drupal-displace-offset-top, 0px) !important;
}

/* Course page: "Zum Kalender hinzufügen" below the date, starting at the
   visible left edge of the clock (text column 45px right of the icon box,
   minus the clock image's 3px transparent margin). */
.meta-item .course-ics {
  margin-top: 10px;
  margin-left: -42px;
}
.meta-item .course-ics .fa {
  position: relative;
  top: -1px;
}
/* Webinars: the link follows the Videochat line a little closer. */
.meta-item .course-videochat + .course-ics {
  margin-top: 5px;
}

/* Zertifikatskurs: link to upcoming events of a category (2026-10-22). */
.integplan-dashboard .certificate-category__more,
.integplan-dashboard .certificate-category__more:link,
.integplan-dashboard .certificate-category__more:visited {
  display: inline-block;
  margin-top: 0.6rem;
  /* The theme customizer colours every content link grey with !important. */
  color: var(--ip-brand-action) !important;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
}

.integplan-dashboard .certificate-category__more:hover,
.integplan-dashboard .certificate-category__more:focus-visible {
  color: #d76117 !important;
  text-decoration: none;
}

.integplan-dashboard .certificate-category__more:focus-visible {
  border-radius: 3px;
  outline: 3px solid #f29a63;
  outline-offset: 3px;
}

/* Breadcrumb trail ("Startseite - Weiterbildung - …") removed on all public
   subpages (2026-10-23); the orange banner keeps only the page title. The
   trail stays in the markup so the breadcrumb block keeps its cache contexts.
   Delete this rule to show it again. */
.breadcrumb-content-inner .gva-breadcrumb-content .breadcrumb-links {
  display: none;
}

/* Form fields: one focus indicator (orange border + soft ring) instead of the
   browser's own focus outline on top of it, which looked like a double border.
   :where() keeps specificity at zero, so page-specific focus styles still win;
   checkboxes, radios, buttons and the header search keep their own styles. */
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="image"]):not([type="file"]):not(.form-search), select, textarea):focus {
  outline: none;
  border-color: #d66016;
  box-shadow: 0 0 0 3px rgba(214, 96, 22, 0.16);
}

/* Course lists on /weiterbildung (Builder "ip-course-list"): the Views
   "more" link (e.g. "Alle vergangenen digitalen Mittagspausen") as a calm
   orange text link instead of the skin's turquoise pill that fills on hover. */
.ip-course-list .more-link {
  margin-top: 18px;
  text-align: center;
}
.ip-course-list .more-link a,
.ip-course-list .more-link a:visited {
  display: inline;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  color: #a9480f !important;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  text-decoration: none;
}
.ip-course-list .more-link a::after {
  content: " →";
}
.ip-course-list .more-link a:hover,
.ip-course-list .more-link a:focus-visible {
  background: none;
  color: #d76117 !important;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}
