.require {
    color: #d33753;
}

/* reviews tab */
.reviews-form {
    padding-top: 20px;
}

.reviews-form label {
    font-weight: normal;
}

.reviews-form input.form-control {
    color: #aaa;
}

.review-item {
    width: 100%;
    overflow: hidden;
    border-bottom: solid 1px #eee;
    padding: 0 5px 5px;
    margin: 0 -5px 20px;
}

.review-item-submitted {
    margin-bottom: 5px;
    position: relative;
}

.review-item-submitted strong,
.review-item-submitted em {
    display: block;
}

.review-item-submitted strong {
    margin-bottom: 3px;
}

.review-item-submitted em {
    font-style: normal;
    color: #bbb;
    font-size: 12px;
}

.review-item-submitted .rateit {
    position: absolute;
    top: 3px;
    right: 0;
}

/***
Login page
***/
.login .logo {
    margin: 60px auto 20px auto;
    padding: 15px;
    text-align: center;
}

.login {
    background-color: #fff;
    width: 360px;
    margin: 0 auto;
    margin-bottom: 0px;
    padding: 30px;
    padding-top: 20px;
    padding-bottom: 15px;
    -webkit-border-radius: 7px;
    -moz-border-radius: 7px;
    -ms-border-radius: 7px;
    -o-border-radius: 7px;
    border-radius: 7px;
}

.login h3 {
    color: #000;
}

.login h4 {
    color: #555;
}

.login p {
    color: #222;
}

.login .login-form,
.login .forget-form {
    padding: 0px;
    margin: 0px;
}

.login .input-icon {
    border-left: 2px solid #258abd !important;
}

.login .input-icon {
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    -ms-border-radius: 4px;
    -o-border-radius: 4px;
    border-radius: 4px;
}

.login .input-icon .form-control {
    border-left: 0;
}

.login .forget-form {
    display: none;
}

.login .register-form {
    display: none;
}

.login .form-title {
    font-weight: 300;
    margin-bottom: 25px;
}

.login .form-actions {
    background-color: #fff;
    clear: both;
    border: 0px;
    border-bottom: 1px solid #eee;
    padding: 0px 30px 25px 30px;
    margin-left: -30px;
    margin-right: -30px;
}

.login .form-actions .checkbox {
    margin-left: 0;
    padding-left: 0;
    display: inline-block !important;
}

.login .forget-form .form-actions {
    border: 0;
    margin-bottom: 0;
    padding-bottom: 20px;
}

.login .register-form .form-actions {
    border: 0;
    margin-bottom: 0;
    padding-bottom: 0px;
}

.login .form-actions .checkbox {
    margin-top: 8px;
    display: inline-block;
}

.login .form-actions .btn {
    margin-top: 1px;
}

.login .forget-password {
    margin-top: 25px;
}

.login .create-account {
    border-top: 1px dotted #eee;
    padding-top: 10px;
    margin-top: 15px;
}

.login .create-account a {
    display: inline-block;
    margin-top: 5px;
}

/* select2 dropdowns */
.login .select2-container {
    border-left: 2px solid #258abd !important;
}

.login .select2-container .select2-choice {
    border-left: none !important;
}

.login .select2-container i {
    display: inline-block;
    position: relative;
    color: #ccc;
    z-index: 1;
    top: 1px;
    margin: 4px 4px 0px -1px;
    width: 16px;
    height: 16px;
    font-size: 16px;
    text-align: center;
}

.login .has-error .select2-container i {
    color: #b94a48;
}

.login .select2-container a span {
    font-size: 13px;
}

.login .select2-container a span img {
    margin-left: 4px;
}

/* footer copyright */
.login .copyright {
    text-align: center;
    margin: 0 auto;
    padding: 10px;
    color: #999;
    font-size: 13px;
}

.form-control-static.students {
    display: block;
}

.lead {
    margin-bottom: 0px !important;
}

.total {
    border-top: 1px solid #000;
}

#teacher > ul > li:nth-child(3n+1) {
    clear: left;
}

@media (max-width: 480px) {
    /***
    Login page
    ***/
    .login .logo {
        margin-top: 10px;
    }

    .login {
        width: 280px;
    }

    .login h3 {
        font-size: 22px;
    }

    .login .checkbox {
        font-size: 13px;
    }
}

.pricing-head select.input-sm {
    height: 30px !important;
    width: 50% !important;;
    line-height: 30px !important;;
    padding: 5px 10px !important;;
    margin: 15px auto 0px auto !important;;
}

.term:nth-child(3n) {
    clear: left;
}

@media (max-width: 770px) {
    .col-md-6 .text-right {
        text-align: left !important;
    }

    .course-header h2 {
        margin-top: 1em;
    }
}

.dataTables_info {
    display: none !important;
}

table.dataTable thead th, table.dataTable thead td {
    padding: 10px;
}

.price small.tax, .price small.rest-price {
    display: block;
}
.price .hints small:last-child {
    margin-bottom: 2em;
}

.tax-hint {
    display: block;
}

.dataTable .details {
    background-color: transparent !important;
}

.tooltip {
    z-index: 999999 !important;
}

body > .d_pay_rate {
    height: inherit !important;
}

a.btn.btn-primary.time {
    margin: 0 10px 10px 0;
}

.datepicker table tr td.range.free {
    background: #d3ffc6;
}

.datepicker table tr td.range.medium {
    background: #ffe8c6;
}

.datepicker table tr td.range.full {
    background: #ffc6c6;
}

.datepicker table tr td.range.catchUp {
    background: #c6dcff;
}

.datepicker table tr td.range.cancelled {
    background: #484c4e !important;
    color: #fff !important;
}

.datepicker.datepicker-inline,
.datepicker.datepicker-inline table.table-condensed {
    width: 100% !important;
}

.course-module .tab-content,
#main-content .course-module .tab-content .container {
    padding-left: 0;
    padding-right: 0;
    margin-left: 0;
    margin-right: 0;
}

.course-module .quote-v1 span {
    font-size: 1.1em;
    line-height: 1.3em;
}

.course-module .table tr.heading > th {
    background: transparent !important;
}

.course-module .nav-pills > li > a {
    border-radius: 4px;
}

.course-module .dataTables_wrapper .row {
    height: 0;
}

.external_price {
    display: inline-block;
    line-height: 1.4em;
    padding-left: 15px;
    padding-right: 15px;
    white-space: wrap !important;
}

div#courseDatePrice span {
    font-size: x-large;
}

div#courseDatePrice .text-muted {
    font-size: small;
    top: 0;
    left: 10px;
}

/* grid layout for index-columns view: equal-height cards with wrap, footer pinned to bottom */
.courses-grid .row {
    display: flex;
    flex-wrap: wrap;
}

.courses-grid .row > [class*="col-"] {
    display: flex;
}

.courses-grid .thumbnail {
    display: flex;
    flex-direction: column;
    width: 100%;
    transition: box-shadow 0.2s ease;
}

.courses-grid .thumbnail:hover {
    box-shadow: 0 0 20px 2px rgba(0, 0, 0, 0.12);
}

.courses-grid .thumbnail .caption {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.courses-grid .course-card-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: auto;
    padding-top: 15px;
}

.courses-grid .price {
    font-size: 1.6em;
}

/* week-view layout (show-week.tpl.php): collapsible day sections with tile grid */
.courses-week button.panel-heading,
.terms-modal button.panel-heading {
    display: block;
    width: 100%;
    text-align: inherit;
    border: 0;
    color: inherit;
    cursor: pointer;
}

#termModal .modal-header {
    position: sticky;
    top: 0;
    z-index: 1;
    background-color: inherit;
}

#termModal .tooltip-inner {
    max-width: 320px;
}

.terms-modal-details {
    margin-bottom: 0;
}

.terms-modal-details > tbody > tr > td {
    border-top: 0;
}

.courses-week .panel-heading {
    letter-spacing: 0.06em;
}

.courses-week .panel-heading .fa-chevron-down,
.terms-modal .panel-heading .fa-chevron-down {
    transition: transform 0.2s ease;
}

.courses-week .panel-heading.collapsed .fa-chevron-down,
.terms-modal .panel-heading.collapsed .fa-chevron-down {
    transform: rotate(-90deg);
}

.terms-modal .panel-heading > .row {
    display: flex;
    align-items: center;
}

.terms-modal .panel.term {
    transition: box-shadow 0.2s ease;
}

.terms-modal .panel.term:hover {
    box-shadow: 0 0 20px 2px rgba(0, 0, 0, 0.12) !important;
}

/* CSS Grid with `auto-fill` + `minmax` gives every tile the SAME width — the
   browser picks the column count based on container width, and each column is
   `1fr` so all tracks (including incomplete last rows) keep identical width.
   Min track width (220px) drives implicit responsiveness: wide screens get
   more columns automatically, narrow ones fewer, without dedicated media
   queries for the tile sizing. */
.courses-week-tiles {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 15px;
}

.courses-week-tile {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 15px;
    border: 1px solid #eee;
    border-radius: 4px;
    cursor: pointer;
    transition: box-shadow 0.2s ease;
}

.courses-week-tile:hover {
    box-shadow: 0 0 20px 2px rgba(0, 0, 0, 0.12);
}

.courses-week-tile-time {
    font-weight: bold;
    font-size: 16px;
}

/* Alert wrapper for multi-slot tiles: keep Bootstrap's .alert defaults
   (background, border, color, margin-bottom) and only tighten padding for the
   tile density. */
.courses-week-tile-time.alert {
    padding: 6px 10px;
}

.courses-week-tile-price {
    font-size: 21px;
    margin-top: 4px;
}

/* Strike-through original price lives inside the <strong> so it inherits the
   bold weight. Force it back to normal so the discounted price stays the
   visual emphasis and the crossed-out value reads as secondary info. */
.courses-week-tile-price .text-line-through {
    font-weight: normal;
}

/* Form holds Raten-select + Buchen button as siblings; lay them out on the same
   row, gap-separated. The select shrinks to fill available width while the
   button stays whole — `flex-shrink: 0` + `white-space: nowrap` make sure the
   button label never wraps to a second line. */
.courses-week-tile form {
    /* `margin-top: auto` keeps the form pinned to the bottom of the tile so
       buttons align across rows. `padding-top` adds the visual breathing room
       to the content above without breaking that alignment. */
    margin-top: auto;
    padding-top: 10px;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 6px;
}

.courses-week-tile form .d_pay_rate,
.courses-week-tile form .termBtn {
    flex: 1 1 auto;
    min-width: 0;
}

.courses-week-tile form .termBtn {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: left;
    background-color: transparent !important;
    border-color: transparent !important;
    color: #777 !important;
}

.courses-week-tile form .termBtn:hover,
.courses-week-tile form .termBtn:focus {
    background-color: rgba(0, 0, 0, 0.04) !important;
    border-color: transparent !important;
    color: #333 !important;
}

.courses-week-tile form .book-btn {
    flex-shrink: 0;
    white-space: nowrap;
}
.courses-week-tile form:not(:has(.d_pay_rate)):not(:has(.termBtn:not(.hidden))) {
    justify-content: center;
}

.courses-week-tile .btn {
    margin-top: 4px;
    align-self: flex-start;
}

.courses-week-tile form .btn {
    margin-top: 0;
    align-self: auto;
}