.imv-pia-scope.imv-itinerary-accordion {
    --imv-transition: 260ms ease;
    --imv-header-start: #4F823E;
    --imv-header-end: #2C410A;
    --imv-header-angle: 90deg;
    --imv-active-header-bg: #FFFFFF;
    --imv-preview-bg: #FFFFFF;
    --imv-open-body-bg: #F4F5EE;
    --imv-border-normal: transparent;
    --imv-border-active: #84BB4A;
    --imv-divider-active: #84BB4A;
    --imv-border-width: 1px;

    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 12px;
    font-family: inherit;
    font-style: normal;
    text-transform: none;
    letter-spacing: normal;
    box-sizing: border-box;
}

/* Keep sizing predictable inside this widget without affecting anything outside it. */
.imv-pia-scope.imv-itinerary-accordion *,
.imv-pia-scope.imv-itinerary-accordion *::before,
.imv-pia-scope.imv-itinerary-accordion *::after {
    box-sizing: border-box;
}

.imv-pia-scope.imv-itinerary-accordion.imv-has-scroll {
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 12px;
    align-content: flex-start;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    scrollbar-color: rgba(139, 155, 134, 0.9) transparent;
}

.imv-pia-scope.imv-itinerary-accordion.imv-has-scroll::-webkit-scrollbar {
    width: 8px;
}

.imv-pia-scope.imv-itinerary-accordion.imv-has-scroll::-webkit-scrollbar-track {
    background: transparent;
}

.imv-pia-scope.imv-itinerary-accordion.imv-has-scroll::-webkit-scrollbar-thumb {
    background: rgba(139, 155, 134, 0.9);
    border-radius: 999px;
}

.imv-pia-scope .imv-itinerary-item {
    width: 100%;
    flex: 0 0 auto;
    min-height: max-content;
    overflow: hidden;
    background: var(--imv-preview-bg);
    border: var(--imv-border-width) solid var(--imv-border-normal);
    border-radius: 15px;
    box-shadow: none;
    transition: border-color var(--imv-transition), box-shadow var(--imv-transition);
}

/* -------------------------------------------------
   Button isolation
   Prevent theme/Elementor global button CSS leaking in
-------------------------------------------------- */
.imv-pia-scope button.imv-itinerary-toggle {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    min-height: 52px;
    margin: 0;
    border: 0;
    border-radius: 0;
    outline: 0;
    padding: 8px 11px;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 24px;
    text-align: left;
    cursor: pointer;
    box-shadow: none !important;
    text-decoration: none !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    font-family: inherit !important;
    font-style: normal !important;
    line-height: normal;
    white-space: normal !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    -webkit-tap-highlight-color: transparent;
    transition: background var(--imv-transition), border-color var(--imv-transition);
}

/* Normal/closed header always keeps the plugin gradient. */
.imv-pia-scope .imv-itinerary-item:not(.is-open) > button.imv-itinerary-toggle,
.imv-pia-scope .imv-itinerary-item:not(.is-open) > button.imv-itinerary-toggle:hover,
.imv-pia-scope .imv-itinerary-item:not(.is-open) > button.imv-itinerary-toggle:focus,
.imv-pia-scope .imv-itinerary-item:not(.is-open) > button.imv-itinerary-toggle:focus-visible,
.imv-pia-scope .imv-itinerary-item:not(.is-open) > button.imv-itinerary-toggle:active {
    outline: none !important;
    box-shadow: none !important;
    border: 0 !important;
    background: linear-gradient(var(--imv-header-angle), var(--imv-header-start) 0%, var(--imv-header-end) 100%) !important;
}

/* Active/open header always keeps its own configured background. */
.imv-pia-scope .imv-itinerary-item.is-open > button.imv-itinerary-toggle,
.imv-pia-scope .imv-itinerary-item.is-open > button.imv-itinerary-toggle:hover,
.imv-pia-scope .imv-itinerary-item.is-open > button.imv-itinerary-toggle:focus,
.imv-pia-scope .imv-itinerary-item.is-open > button.imv-itinerary-toggle:focus-visible,
.imv-pia-scope .imv-itinerary-item.is-open > button.imv-itinerary-toggle:active {
    outline: none !important;
    box-shadow: none !important;
    background: var(--imv-active-header-bg) !important;
    border-top: 0 !important;
    border-right: 0 !important;
    border-left: 0 !important;
    border-bottom: var(--imv-border-width) solid var(--imv-divider-active) !important;
}

/* Remove theme-generated pseudo overlays on buttons. */
.imv-pia-scope button.imv-itinerary-toggle::before,
.imv-pia-scope button.imv-itinerary-toggle::after {
    content: none !important;
    display: none !important;
    background: transparent !important;
    box-shadow: none !important;
}

/* CLOSED DAY BADGE */
.imv-pia-scope .imv-itinerary-day {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    min-width: 59px;
    padding: 7px 10px;
    border-radius: 7px;
    background: #7fbd32;
    color: #ffffff;
    font-size: 13px;
    line-height: 1.2;
    font-weight: 500;
    white-space: nowrap;
    text-decoration: none;
    text-transform: none;
    transition: all var(--imv-transition);
}

.imv-pia-scope .imv-itinerary-title {
    min-width: 0;
    color: #ffffff;
    font-size: 13px;
    line-height: 1.35;
    font-weight: 600;
    overflow-wrap: anywhere;
    word-break: break-word;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    display: block !important;
    height: auto !important;
    max-height: none !important;
    -webkit-line-clamp: unset !important;
    -webkit-box-orient: initial !important;
    text-decoration: none;
    text-transform: none;
}

.imv-pia-scope .imv-itinerary-arrow {
    width: 22px;
    height: 22px;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #ffffff;
    color: #4f8d43;
    transition: transform var(--imv-transition), background-color var(--imv-transition), color var(--imv-transition);
}

.imv-pia-scope .imv-itinerary-arrow svg {
    width: 54%;
    height: 54%;
    display: block;
}

/* OPEN ITEM */
.imv-pia-scope .imv-itinerary-item.is-open {
    border-color: var(--imv-border-active);
}

.imv-pia-scope .imv-itinerary-item.is-open .imv-itinerary-day {
    min-width: 0;
    min-height: 0;
    padding: 0 9px;
    border-radius: 0;
    background: transparent;
    color: #4a8f42;
    font-size: 12px;
    font-weight: 500;
}

.imv-pia-scope .imv-itinerary-item.is-open .imv-itinerary-title {
    visibility: hidden;
}

.imv-pia-scope .imv-itinerary-item.is-open .imv-itinerary-arrow {
    transform: rotate(180deg);
    background: #4f8d43;
    color: #ffffff;
}

/* CLOSED DESCRIPTION PREVIEW */
.imv-pia-scope .imv-itinerary-preview {
    padding: 14px 17px 13px;
    color: #8a8a8a;
    background: var(--imv-preview-bg);
    font-size: 12px;
    line-height: 1.45;
    text-transform: none;
}

.imv-pia-scope .imv-itinerary-preview p {
    margin: 0;
    padding: 0;
}

.imv-pia-scope .imv-itinerary-more {
    color: #5d5d5d;
    font-weight: 600;
    white-space: nowrap;
}

.imv-pia-scope .imv-itinerary-item.is-open .imv-itinerary-preview {
    display: none;
}

/* EXPAND / COLLAPSE BODY */
.imv-pia-scope .imv-itinerary-panel {
    display: grid;
    grid-template-rows: 0fr;
    background: var(--imv-open-body-bg);
    transition: grid-template-rows var(--imv-transition), background-color var(--imv-transition);
}

.imv-pia-scope .imv-itinerary-item.is-open .imv-itinerary-panel {
    grid-template-rows: 1fr;
}

.imv-pia-scope .imv-itinerary-panel-inner {
    min-height: 0;
    overflow: hidden;
}

.imv-pia-scope .imv-itinerary-body {
    padding: 10px 19px 15px;
    background: var(--imv-open-body-bg);
}

.imv-pia-scope .imv-itinerary-body-title {
    margin: 0 0 6px;
    padding: 0;
    color: #303030;
    font-size: 13px;
    line-height: 1.35;
    font-weight: 500;
    text-transform: none;
}

.imv-pia-scope .imv-itinerary-info {
    padding: 0;
    color: #4f4f4f;
    font-size: 12px;
    line-height: 1.48;
    text-transform: none;
}

.imv-pia-scope .imv-itinerary-info > :first-child {
    margin-top: 0;
}

.imv-pia-scope .imv-itinerary-info > :last-child {
    margin-bottom: 0;
}

.imv-pia-scope .imv-itinerary-info p {
    margin-top: 0;
    margin-bottom: 8px;
    padding: 0;
}

.imv-pia-scope .imv-itinerary-notice {
    padding: 12px 14px;
    border: 1px dashed #c8c8c8;
    border-radius: 8px;
    background: #ffffff;
    color: #555555;
    font-size: 13px;
}

/* Tablet/mobile: long itinerary titles must wrap instead of being clipped by global theme styles. */
@media (max-width: 1024px) {
    .imv-pia-scope button.imv-itinerary-toggle {
        grid-template-columns: auto minmax(0, 1fr) auto !important;
        align-items: center !important;
        white-space: normal !important;
        height: auto !important;
        min-height: 52px;
    }

    .imv-pia-scope .imv-itinerary-title {
        min-width: 0 !important;
        width: auto !important;
        white-space: normal !important;
        overflow: visible !important;
        text-overflow: clip !important;
        overflow-wrap: anywhere !important;
        word-break: break-word !important;
        line-height: 1.35 !important;
    }

    .imv-pia-scope .imv-itinerary-day,
    .imv-pia-scope .imv-itinerary-arrow {
        flex-shrink: 0 !important;
    }

    .imv-pia-scope .imv-itinerary-preview,
    .imv-pia-scope .imv-itinerary-preview p,
    .imv-pia-scope .imv-itinerary-body-title,
    .imv-pia-scope .imv-itinerary-info,
    .imv-pia-scope .imv-itinerary-info p {
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        word-break: break-word !important;
        max-width: 100% !important;
    }
}

@media (max-width: 767px) {
    .imv-pia-scope.imv-itinerary-accordion {
        gap: 10px;
    }

    .imv-pia-scope button.imv-itinerary-toggle {
        min-height: 49px;
        gap: 12px;
        padding: 7px 10px;
    }

    .imv-pia-scope .imv-itinerary-day {
        min-width: 56px;
        min-height: 37px;
        padding-left: 8px;
        padding-right: 8px;
    }

    .imv-pia-scope .imv-itinerary-body,
    .imv-pia-scope .imv-itinerary-preview {
        padding-left: 14px;
        padding-right: 14px;
    }
}
