/* =========================================================
   EGERT MIETWELT BOOKING
   ========================================================= */

.egert-booking-widget,
.egert-booking-widget *,
.egert-booking-widget *::before,
.egert-booking-widget *::after {
    box-sizing:border-box !important;
}


.egert-booking-widget {
    --eg-dark:#171b18;
    --eg-deep:#263229;
    --eg-green:#758964;
    --eg-green-dark:#596b4e;
    --eg-orange:#ed741b;
    --eg-orange-dark:#d86514;
    --eg-cream:#f5f3ee;
    --eg-text:#626962;
    --eg-line:rgba(23,27,24,.12);

    width:100% !important;

    margin:70px 0 0 !important;

    padding:0 !important;

    background:
        var(--eg-cream) !important;

    font-family:
        "Inter",
        Arial,
        sans-serif !important;

    color:
        var(--eg-dark) !important;
}


.egert-booking-inner {
    width:calc(100% - 60px) !important;

    max-width:1350px !important;

    margin:0 auto !important;

    padding:
        80px
        0
        95px !important;
}


/* =========================================================
   HEAD
   ========================================================= */

.egert-booking-head {
    display:flex !important;

    align-items:flex-end !important;
    justify-content:space-between !important;

    gap:50px !important;

    margin-bottom:42px !important;
}


.egert-booking-kicker {
    display:flex !important;

    align-items:center !important;

    gap:12px !important;

    margin-bottom:15px !important;

    color:
        var(--eg-green) !important;

    font-size:10px !important;

    line-height:1 !important;

    font-weight:700 !important;

    letter-spacing:2px !important;

    text-transform:uppercase !important;
}


.egert-booking-kicker::before {
    content:"" !important;

    width:36px !important;
    height:2px !important;

    background:
        var(--eg-orange) !important;
}


.egert-booking-head h2 {
    max-width:760px !important;

    margin:0 !important;

    color:
        var(--eg-dark) !important;

    font-size:
        clamp(40px,4.2vw,58px) !important;

    line-height:1 !important;

    letter-spacing:-2.2px !important;

    font-weight:650 !important;
}


.egert-booking-head h2 span {
    color:
        var(--eg-green) !important;
}


.egert-booking-head-meta {
    flex-shrink:0 !important;

    text-align:right !important;
}


.egert-booking-head-price small,
.egert-booking-head-price span {
    color:
        #8b918b !important;

    font-size:12px !important;
}


.egert-booking-head-price strong {
    margin:
        0
        5px !important;

    color:
        var(--eg-green) !important;

    font-size:26px !important;

    font-weight:700 !important;
}


.egert-booking-minimum {
    margin-top:7px !important;

    color:
        var(--eg-text) !important;

    font-size:11px !important;
}


/* =========================================================
   LAYOUT
   ========================================================= */

.egert-booking-layout {
    display:grid !important;

    grid-template-columns:
        minmax(0,1.35fr)
        minmax(360px,.65fr) !important;

    gap:24px !important;

    align-items:start !important;
}


/* =========================================================
   CALENDAR PANEL
   ========================================================= */

.egert-booking-calendar-panel,
.egert-booking-request-panel {
    background:#fff !important;

    border:
        1px solid var(--eg-line) !important;
}


.egert-booking-calendar-panel {
    padding:28px !important;
}


/* =========================================================
   TOOLBAR
   ========================================================= */

.egert-calendar-toolbar {
    display:grid !important;

    grid-template-columns:
        46px
        minmax(0,1fr)
        46px !important;

    align-items:center !important;

    gap:12px !important;

    padding-bottom:22px !important;

    border-bottom:
        1px solid var(--eg-line) !important;
}


.egert-calendar-prev,
.egert-calendar-next {
    width:46px !important;
    height:46px !important;

    margin:0 !important;
    padding:0 !important;

    display:flex !important;

    align-items:center !important;
    justify-content:center !important;

    background:
        var(--eg-deep) !important;

    border:0 !important;

    border-radius:0 !important;

    color:#fff !important;

    cursor:pointer !important;

    font-size:17px !important;

    transition:
        background .2s ease !important;
}


.egert-calendar-prev:hover,
.egert-calendar-next:hover {
    background:
        var(--eg-orange) !important;
}


.egert-calendar-selection {
    text-align:center !important;
}


.egert-calendar-selection > span {
    display:block !important;

    margin-bottom:5px !important;

    color:#969b96 !important;

    font-size:8px !important;

    font-weight:700 !important;

    letter-spacing:1.4px !important;

    text-transform:uppercase !important;
}


.egert-calendar-selection strong {
    color:
        var(--eg-dark) !important;

    font-size:14px !important;

    font-weight:650 !important;
}


/* =========================================================
   MONTHS
   ========================================================= */

.egert-calendar-months {
    display:grid !important;

    grid-template-columns:
        1fr
        1fr !important;

    gap:35px !important;

    margin-top:26px !important;
}


.egert-calendar-month-title {
    margin-bottom:18px !important;

    color:
        var(--eg-dark) !important;

    font-size:18px !important;

    line-height:1 !important;

    font-weight:650 !important;

    text-align:center !important;
}


/* =========================================================
   WEEKDAYS
   ========================================================= */

.egert-calendar-weekdays,
.egert-calendar-days {
    display:grid !important;

    grid-template-columns:
        repeat(7,1fr) !important;

    gap:4px !important;
}


.egert-calendar-weekdays {
    margin-bottom:7px !important;
}


.egert-calendar-weekdays span {
    height:25px !important;

    display:flex !important;

    align-items:center !important;
    justify-content:center !important;

    color:#959b95 !important;

    font-size:9px !important;

    font-weight:700 !important;

    text-transform:uppercase !important;
}


/* =========================================================
   DAYS
   ========================================================= */

.egert-calendar-day,
.egert-calendar-blank {
    aspect-ratio:1/1 !important;
}


.egert-calendar-day {
    min-width:0 !important;

    margin:0 !important;
    padding:0 !important;

    display:flex !important;

    align-items:center !important;
    justify-content:center !important;

    background:#f7f7f4 !important;

    border:
        1px solid transparent !important;

    border-radius:0 !important;

    color:
        var(--eg-dark) !important;

    cursor:pointer !important;

    font-family:inherit !important;

    font-size:12px !important;

    font-weight:550 !important;

    transition:
        background .16s ease,
        color .16s ease,
        border-color .16s ease !important;
}


.egert-calendar-day:hover:not(:disabled) {
    background:
        rgba(117,137,100,.13) !important;

    border-color:
        rgba(117,137,100,.30) !important;
}


.egert-calendar-day.is-range {
    background:
        rgba(117,137,100,.15) !important;

    color:
        var(--eg-green-dark) !important;
}


.egert-calendar-day.is-start,
.egert-calendar-day.is-end {
    background:
        var(--eg-green) !important;

    border-color:
        var(--eg-green) !important;

    color:#fff !important;

    font-weight:700 !important;
}


.egert-calendar-day.is-blocked {
    background:
        #eeeae6 !important;

    color:#bbb5af !important;

    text-decoration:
        line-through !important;

    cursor:not-allowed !important;
}


.egert-calendar-day.is-past {
    background:
        transparent !important;

    color:#c5c8c5 !important;

    cursor:not-allowed !important;
}


/* =========================================================
   LEGEND
   ========================================================= */

.egert-calendar-legend {
    display:flex !important;

    flex-wrap:wrap !important;

    gap:18px !important;

    margin-top:23px !important;

    padding-top:18px !important;

    border-top:
        1px solid var(--eg-line) !important;
}


.egert-calendar-legend span {
    display:flex !important;

    align-items:center !important;

    gap:7px !important;

    color:
        var(--eg-text) !important;

    font-size:10px !important;
}


.egert-calendar-legend i {
    width:10px !important;
    height:10px !important;

    display:block !important;
}


.egert-legend-free {
    background:#f2f3ef !important;

    border:
        1px solid rgba(23,27,24,.14) !important;
}


.egert-legend-selected {
    background:
        var(--eg-green) !important;
}


.egert-legend-blocked {
    background:
        #ddd5cf !important;
}


.egert-availability-note {
    margin-top:17px !important;

    padding:12px 14px !important;

    background:
        rgba(117,137,100,.09) !important;

    color:
        var(--eg-green-dark) !important;

    font-size:11px !important;

    line-height:1.5 !important;
}


/* =========================================================
   REQUEST PANEL
   ========================================================= */

.egert-booking-request-panel {
    padding:28px !important;
}


/* =========================================================
   PRICE
   ========================================================= */

.egert-price-summary {
    padding-bottom:24px !important;

    margin-bottom:25px !important;

    border-bottom:
        1px solid var(--eg-line) !important;
}


.egert-price-summary-label {
    margin-bottom:16px !important;

    color:
        var(--eg-dark) !important;

    font-size:17px !important;

    font-weight:650 !important;
}


.egert-price-summary-empty {
    color:
        var(--eg-text) !important;

    font-size:12px !important;

    line-height:1.6 !important;
}


.egert-price-row {
    display:flex !important;

    align-items:center !important;
    justify-content:space-between !important;

    gap:20px !important;

    padding:
        7px
        0 !important;

    color:
        var(--eg-text) !important;

    font-size:12px !important;
}


.egert-price-row strong {
    color:
        var(--eg-dark) !important;

    font-size:13px !important;
}


.egert-price-total {
    display:flex !important;

    align-items:flex-end !important;
    justify-content:space-between !important;

    gap:20px !important;

    margin-top:12px !important;

    padding-top:16px !important;

    border-top:
        1px solid var(--eg-line) !important;
}


.egert-price-total span {
    max-width:170px !important;

    color:
        var(--eg-dark) !important;

    font-size:12px !important;

    line-height:1.35 !important;

    font-weight:600 !important;
}


.egert-price-total strong {
    color:
        var(--eg-orange) !important;

    font-size:24px !important;

    line-height:1 !important;

    font-weight:700 !important;
}


.egert-deposit-note {
    margin-top:12px !important;

    color:#8a908a !important;

    font-size:10px !important;
}


/* =========================================================
   EXTRAS
   ========================================================= */

.egert-booking-extras {
    margin-bottom:24px !important;
}


.egert-booking-form-label {
    margin-bottom:10px !important;

    color:
        var(--eg-dark) !important;

    font-size:11px !important;

    font-weight:700 !important;

    text-transform:uppercase !important;

    letter-spacing:1px !important;
}


.egert-extra-option {
    display:flex !important;

    align-items:flex-start !important;

    gap:9px !important;

    margin-bottom:7px !important;

    padding:11px !important;

    background:#f7f7f4 !important;

    border:
        1px solid rgba(23,27,24,.08) !important;

    cursor:pointer !important;
}


.egert-extra-option input {
    margin-top:3px !important;

    accent-color:
        var(--eg-green) !important;
}


.egert-extra-option strong {
    display:block !important;

    color:
        var(--eg-dark) !important;

    font-size:12px !important;
}


.egert-extra-option small {
    display:block !important;

    margin-top:3px !important;

    color:
        var(--eg-green) !important;

    font-size:10px !important;

    font-weight:600 !important;
}


/* =========================================================
   FORM
   ========================================================= */

.egert-booking-form-grid {
    display:grid !important;

    grid-template-columns:
        1fr
        1fr !important;

    gap:14px !important;
}


.egert-booking-form-grid label {
    min-width:0 !important;
}


.egert-booking-form-grid label > span {
    display:block !important;

    margin-bottom:6px !important;

    color:
        var(--eg-dark) !important;

    font-size:10px !important;

    font-weight:650 !important;
}


.egert-booking-full {
    grid-column:
        1 / -1 !important;
}


.egert-booking-form input[type="text"],
.egert-booking-form input[type="email"],
.egert-booking-form input[type="tel"],
.egert-booking-form textarea {
    width:100% !important;

    margin:0 !important;

    padding:
        11px
        12px !important;

    background:#f8f8f5 !important;

    border:
        1px solid #d8dcd7 !important;

    border-radius:0 !important;

    color:
        var(--eg-dark) !important;

    box-shadow:none !important;

    outline:none !important;

    font-family:inherit !important;

    font-size:12px !important;
}


.egert-booking-form input[type="text"],
.egert-booking-form input[type="email"],
.egert-booking-form input[type="tel"] {
    height:46px !important;
}


.egert-booking-form textarea {
    min-height:100px !important;

    resize:vertical !important;
}


.egert-booking-form input:focus,
.egert-booking-form textarea:focus {
    background:#fff !important;

    border-color:
        var(--eg-green) !important;
}


/* =========================================================
   PRIVACY
   ========================================================= */

.egert-booking-privacy {
    display:flex !important;

    align-items:flex-start !important;

    gap:9px !important;

    margin-top:16px !important;

    color:
        var(--eg-text) !important;

    font-size:10px !important;

    line-height:1.5 !important;
}


.egert-booking-privacy input {
    margin-top:2px !important;

    accent-color:
        var(--eg-green) !important;
}


/* =========================================================
   MESSAGE
   ========================================================= */

.egert-booking-message {
    margin-top:14px !important;

    padding:0 !important;

    font-size:11px !important;

    line-height:1.5 !important;
}


.egert-booking-message:empty {
    display:none !important;
}


.egert-booking-message.is-error {
    padding:10px 12px !important;

    color:#812f2f !important;

    background:#f7e8e5 !important;
}


.egert-booking-message.is-success {
    padding:10px 12px !important;

    color:#355139 !important;

    background:#e6eee2 !important;
}


.egert-booking-message.is-info {
    padding:10px 12px !important;

    color:#4c5d50 !important;

    background:#edf1ea !important;
}


/* =========================================================
   SUBMIT
   ========================================================= */

.egert-booking-submit {
    width:100% !important;

    min-height:53px !important;

    margin-top:17px !important;

    padding:
        0
        18px !important;

    display:flex !important;

    align-items:center !important;
    justify-content:space-between !important;

    background:
        var(--eg-orange) !important;

    border:
        1px solid var(--eg-orange) !important;

    border-radius:0 !important;

    color:#fff !important;

    cursor:pointer !important;

    font-family:inherit !important;

    font-size:12px !important;

    font-weight:700 !important;

    transition:
        background .2s ease,
        opacity .2s ease !important;
}


.egert-booking-submit:hover:not(:disabled) {
    background:
        var(--eg-orange-dark) !important;
}


.egert-booking-submit:disabled {
    cursor:not-allowed !important;

    opacity:.38 !important;
}


.egert-booking-submit.is-loading {
    opacity:.60 !important;
}


.egert-booking-disclaimer {
    margin:
        11px
        0
        0 !important;

    color:#989d98 !important;

    font-size:9px !important;

    line-height:1.5 !important;
}


/* Honeypot */

.egert-booking-hp {
    position:absolute !important;

    left:-99999px !important;

    width:1px !important;
    height:1px !important;

    overflow:hidden !important;
}


/* =========================================================
   TABLET
   ========================================================= */

@media(max-width:1024px) {

    .egert-booking-layout {
        grid-template-columns:
            minmax(0,1.15fr)
            minmax(330px,.85fr) !important;
    }


    .egert-calendar-months {
        gap:20px !important;
    }

}


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

@media(max-width:767px) {

    .egert-booking-widget {
        margin-top:
            50px !important;
    }


    .egert-booking-inner {
        width:
            calc(100% - 34px) !important;

        padding:
            65px
            0
            70px !important;
    }


    .egert-booking-head {
        display:block !important;

        margin-bottom:
            30px !important;
    }


    .egert-booking-head h2 {
        font-size:
            39px !important;

        letter-spacing:
            -1.8px !important;
    }


    .egert-booking-head-meta {
        margin-top:
            20px !important;

        text-align:left !important;
    }


    .egert-booking-layout {
        display:block !important;
    }


    .egert-booking-calendar-panel {
        padding:
            18px
            14px !important;
    }


    .egert-calendar-toolbar {
        grid-template-columns:
            40px
            minmax(0,1fr)
            40px !important;

        gap:7px !important;
    }


    .egert-calendar-prev,
    .egert-calendar-next {
        width:40px !important;
        height:40px !important;
    }


    .egert-calendar-selection strong {
        font-size:
            11px !important;
    }


    .egert-calendar-months {
        grid-template-columns:
            1fr !important;

        gap:30px !important;
    }


    .egert-calendar-month:nth-child(2) {
        display:none !important;
    }


    .egert-calendar-day {
        font-size:
            11px !important;
    }


    .egert-booking-request-panel {
        margin-top:
            14px !important;

        padding:
            22px
            18px !important;
    }


    .egert-booking-form-grid {
        grid-template-columns:
            1fr !important;
    }


    .egert-booking-full {
        grid-column:
            auto !important;
    }

}


/* =========================================================
   SAISON- & STAFFELPREISE V1.1
   ========================================================= */

.egert-booking-widget
.egert-season-breakdown {
    margin:
        7px
        0 !important;

    padding:
        8px
        0 !important;

    border-top:
        1px solid rgba(23,27,24,.09) !important;

    border-bottom:
        1px solid rgba(23,27,24,.09) !important;
}


.egert-booking-widget
.egert-season-breakdown[hidden] {
    display:none !important;
}


.egert-booking-widget
.egert-season-price-row {
    font-size:
        11px !important;
}


.egert-booking-widget
.egert-season-price-row span {
    color:
        #626962 !important;
}


.egert-booking-widget
.egert-tier-price-note {
    margin-top:
        7px !important;

    padding:
        7px
        9px !important;

    background:
        rgba(117,137,100,.10) !important;

    color:
        #596b4e !important;

    font-size:
        10px !important;

    line-height:
        1.4 !important;

    font-weight:
        650 !important;
}



/* =========================================================
   FLEXIBLE SAISONPREISE V2
   ========================================================= */

.egert-booking-widget
.egert-season-breakdown-item {
    padding:
        8px
        0;
}

.egert-booking-widget
.egert-season-breakdown-item +
.egert-season-breakdown-item {
    border-top:
        1px solid rgba(23,27,24,.07);
}

.egert-booking-widget
.egert-season-tier {
    margin-top:
        4px;

    color:
        #758964;

    font-size:
        10px;

    line-height:
        1.4;

    font-weight:
        650;
}

