@import url('/fonts/suit/suit.css');

.section-reservation-01 {
    box-sizing: border-box;
    width: 100%;
    padding: 80px 46px 0;
    background: #fff;
    color: #191919;
    font-family: var(--font-suit, 'SUIT Variable', sans-serif);
}

.section-reservation-01-inner {
    box-sizing: border-box;
    width: 100%;
    margin: 0 auto;
    border-left: 1px solid #F3F3F3;
    border-right: 1px solid #F3F3F3;
}

.section-reservation-01-heading {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 56px;
    padding: 14px 24px;
    background: var(--reservation-heading-background, #f3f3f3);
    border-top: 1px solid #F3F3F3;
    border-bottom: 1px solid #F3F3F3;
    box-sizing: border-box;
}

.section-reservation-01-heading h2 {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.5;
    text-align: center;
}

.section-reservation-01-rate {
    min-height: 360px;
    padding: 56px 174px;

    overflow-x: auto;
    border-bottom: 1px solid #F3F3F3;
    -webkit-overflow-scrolling: touch;
}

.section-reservation-01-widget {
    min-width: 720px;
    min-height: 360px;
}

.section-reservation-01-widget[data-ddnayo-reserv] {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0 auto;
    overflow-x: auto;
    scrollbar-width: none;
    font-family: Arial, var(--font-suit, sans-serif);
}

.section-reservation-01-widget[data-ddnayo-reserv]::-webkit-scrollbar { display: none; }

/* Match the reference's four-day table; only Ddnayo receives these styles. */
.section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_t {
    position: sticky;
    left: 0;
    display: grid;
    grid-template-columns: 30px minmax(0, max-content) 30px;
    align-items: center;
    justify-content: center;
    gap: 20px;
    box-sizing: border-box;
    width: 100%;
    min-height: 36px;
    margin: 0 0 16px;
    background: #fff;
}

.section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_t > p {
    margin: 0;
    color: #000;
    font-size: 16px;
    font-weight: 400;
    line-height: 22px;
    text-align: center;
    word-break: keep-all;
}

.section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_t > :is(.prv, .next) {
    position: relative;
    display: grid;
    place-items: center;
    box-sizing: border-box;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #c2a380;
    color: #fff;
    font-size: 0;
    cursor: pointer;
    touch-action: manipulation;
}

.section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_t > :is(.prv, .next)::before {
    width: 0;
    height: 0;
    border-top: 5px solid transparent;
    border-bottom: 5px solid transparent;
    content: '';
}

.section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_t > .prv::before {
    border-right: 8px solid currentColor;
    transform: translateX(-1px);
}

.section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_t > .next::before {
    border-left: 8px solid currentColor;
    transform: translateX(1px);
}

.section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_t > :is(.prv, .next)::after {
    position: absolute;
    inset: -7px;
    content: '';
}

.section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_t > :is(.prv, .next):hover {
    background: #ab8c6a;
}

.section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_t > :is(.prv, .next):focus-visible {
    outline: 2px solid #735b40;
    outline-offset: 3px;
}

.section-reservation-01-widget[data-ddnayo-reserv] :is(.rsv_cal_h, .rsv_cal_b) {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    margin: 0;
    border: 0;
    border-collapse: collapse;
    table-layout: fixed;
    color: #191919;
    font-family: inherit;
    font-size: 14px;
    line-height: 21px;
    text-align: center;
}

.section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_h {
    border-top: 1px solid #999;
}

.section-reservation-01-widget[data-ddnayo-reserv] :is(.rsv_cal_h, .rsv_cal_b) td {
    box-sizing: border-box;
    padding: 10px 4px;
    border: 0;
    border-bottom: 1px solid #999;
    background: #fff;
    vertical-align: middle;
    word-break: keep-all;
    overflow-wrap: anywhere;
}

.section-reservation-01-widget[data-ddnayo-reserv] :is(.rsv_cal_h, .rsv_cal_b) p {
    margin: 0;
    line-height: inherit;
}

.section-reservation-01-widget[data-ddnayo-reserv] :is(.rsv_cal_h .blank, .rsv_cal_b .nm_room) {
    width: 30%;
}

.section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_h td {
    background: #f2f2f2;
    font-weight: 400;
}

.section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_h .ssn > td:not(.blank) {
    font-size: 14px;
}

.section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_h .satur {
    color: #0000ff;
}

.section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_h .sun {
    color: #ff0000;
}

.section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_b .nm_room {
    padding: 14px 16px;
    background: #f2f2f2;
    text-align: center;
}

.section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_b .nm {
    font-weight: 400;
}

.section-reservation-01-widget[data-ddnayo-reserv] :is(.su, .space) {
    color: #191919;
    font-size: 14px;
    font-weight: 400;
    line-height: 21px;
}

.section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_b .rate > td:not(.nm_room) {
    height: 84px;
    padding: 10px 4px;
}

.section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_b p.rate {
    color: #aaa;
    font-size: 14px;
    text-decoration: line-through;
}

.section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_b .dc {
    color: #ff5000;
    font-size: 14px;
    font-weight: 400;
}

.section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_b .sale {
    color: #000;
    font-size: 14px;
    font-weight: 700;
    white-space: nowrap;
}

.section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_b .state > td {
    padding: 10px 3px;
    background: #fff;
}

.section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_b .rstate {
    font-size: 14px;
    line-height: 21px;
}

.section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_b .son {
    color: #6d9fc5;
}

.section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_b .soff {
    color: #aaa;
}

@media (min-width: 769px) and (max-width: 1100px) {
    .section-reservation-01[data-rate-provider="ddnayo"] .section-reservation-01-rate {
        padding: 40px 24px;
    }
}

.section-reservation-01-widget > [data-pensionnara-status],
.section-reservation-01-widget > [data-ddnayo-status] {
    display: grid;
    min-height: 360px;
    margin: 0;
    place-items: center;
    color: #777;
    font-size: 14px;
    text-align: center;
}

.section-reservation-01-widget.is-error > [data-pensionnara-status],
.section-reservation-01-widget.is-error > [data-ddnayo-status] {
    color: #8d151b;
}

@media (max-width: 860px) {
    .section-reservation-01 {
        padding: 64px 32px 0;
    }
}

@media (max-width: 768px) {
    .section-reservation-01 {
        padding: 48px 32px 0;
    }

    .section-reservation-01-heading {
        min-height: 52px;
        padding: 12px 18px;
    }

    .section-reservation-01-rate {
        padding: 0;
    }

    .section-reservation-01-widget {
        width: 100%;
        min-width: 0;
    }

    .section-reservation-01[data-rate-provider="ddnayo"] .section-reservation-01-rate {
        padding: 24px 0 0;
        min-height: 0;
    }

    .section-reservation-01-widget[data-ddnayo-reserv] {
        min-height: 0;
    }

    .section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_t {
        grid-template-columns: 24px minmax(0, 1fr) 24px;
        gap: 8px;
        min-height: 36px;
        margin-bottom: 10px;
        padding: 0 10px;
    }

    .section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_t > p {
        font-size: clamp(11px, 3.2vw, 13px);
        line-height: 20px;
    }

    .section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_t > :is(.prv, .next) {
        width: 24px;
        height: 24px;
    }

    .section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_t > :is(.prv, .next)::after {
        inset: -10px;
    }

    /* Keep the shared four-day table, sizing its cells and text for the viewport. */
    .section-reservation-01-widget[data-ddnayo-reserv] :is(.rsv_cal_h, .rsv_cal_b) {
        min-width: 0;
        font-size: clamp(10px, 2.8vw, 12px);
        line-height: 1.5;
    }

    .section-reservation-01-widget[data-ddnayo-reserv] :is(.rsv_cal_h, .rsv_cal_b) td {
        padding: 7px 2px;
    }

    .section-reservation-01-widget[data-ddnayo-reserv] :is(.rsv_cal_h .blank, .rsv_cal_b .nm_room) {
        width: 26%;
    }

    .section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_h .ssn > td:not(.blank) {
        font-size: inherit;
    }

    .section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_b .nm_room {
        padding: 8px 4px;
    }

    .section-reservation-01-widget[data-ddnayo-reserv] :is(.su, .space) {
        font-size: clamp(9px, 2.5vw, 11px);
        line-height: 1.5;
    }

    .section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_b .rate > td:not(.nm_room) {
        height: 64px;
        padding: 8px 2px;
    }

    .section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_b :is(.dc, p.rate, .sale) {
        font-size: clamp(9px, 2.8vw, 12px);
        line-height: 1.5;
    }

    .section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_b .state > td {
        padding: 7px 2px;
    }

    .section-reservation-01-widget[data-ddnayo-reserv] .rsv_cal_b .rstate {
        font-size: inherit;
        line-height: 1.5;
    }

    .section-reservation-01-rate,
    .section-reservation-01-widget,
    .section-reservation-01-widget > [data-pensionnara-status],
    .section-reservation-01-widget > [data-ddnayo-status] {
        min-height: 300px;
    }

    /* The API appends its own styles; keep these overrides scoped to this template. */
    .section-reservation-01 .pensionnara-reservation-contents,
    .section-reservation-01 .pensionnara-reservation-info-container {
        width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    .section-reservation-01 .pensionnara-reservation-info-dates {
        margin-bottom: 16px;
    }

    .section-reservation-01 .pensionnara-reservation-info-dates > .pensionnara-reservation-calendar-date {
        flex: 1;
        min-width: 0;
        height: auto;
        min-height: 44px;
        margin: 0 4px;
        /* The provider also marks the date and price font sizes as important. */
        font-size: clamp(12px, 3vw, 14px) !important;
        line-height: 1.5;
        text-align: center;
    }

    .section-reservation-01 .pensionnara-pension-calendar-date-btn {
        align-items: center;
        justify-content: center;
        width: 36px;
        min-height: 44px;
    }

    .section-reservation-01 .pensionnara-pension-calendar-date-btn img {
        width: 10px;
        height: 18px;
        object-fit: contain;
    }

    .section-reservation-01 .pensionnara-reservation-info-container > .pensionnara-reservation-info-tr,
    .section-reservation-01 .pensionnara-reservation-info-container > .pensionnara-reservation-info-tr:first-child {
        height: auto;
        min-height: 100px;
        align-items: stretch;
    }

    .section-reservation-01 .pensionnara-reservation-info-container > .pensionnara-reservation-info-tr > .pensionnara-reservation-info-th {
        flex: 0 0 34%;
        width: 34%;
        min-width: 0;
        height: auto;
        padding: 10px 6px;
        box-sizing: border-box;
        font-size: clamp(11px, 3vw, 13px);
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .section-reservation-01 .pensionnara-col {
        flex: 1;
        width: auto;
        min-width: 0;
        height: auto;
    }

    .section-reservation-01 .pensionnara-col > div {
        min-width: 0;
        min-height: 44px;
        align-items: stretch;
    }

    .section-reservation-01 .pensionnara-col > div > .pensionnara-reservation-info-th,
    .section-reservation-01 .pensionnara-reservation-info-container > .pensionnara-reservation-info-tr .pensionnara-reservation-info-td {
        flex: 1;
        width: auto;
        min-width: 0;
        height: auto;
        padding: 6px 2px;
        box-sizing: border-box;
        font-size: clamp(11px, 3vw, 13px) !important;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }
}

@media (max-width: 480px) {
    .section-reservation-01 {
        padding: 40px 15px 0;
    }

    .section-reservation-01-heading {
        min-height: 48px;
        padding: 12px 15px;
    }

    .section-reservation-01-heading h2 {
        font-size: 14px;
        line-height: 20px;
    }
}
