/**/.hamburgerButton{display:block;background-color:transparent;border:0;padding:0;margin:0}.hamburgerButton,.hamburgerButton svg{width:100%;height:100%}/**/#dm .dmDivider{display:block;min-height:2px;margin:0;border:0;color:gray;background:0}#dm .dmDividerWrapper{display:block;margin:10px 0}/**/.imageWidget{position:relative}.imageWidget a,.imageWidget span.image-caption{font-style:italic;text-align:center}.imageWidget a[data-caption]::after,.imageWidget span[data-caption]::after{content:attr(data-caption);display:block;line-height:100%}
.imageWidget.with-caption a::after,.imageWidget.with-caption span.image-caption::after{margin-top:12px}.imageWidget img[width][height]{height:auto}[data-flex-site] #fcontainer .imageWidget:after,[data-flex-site] #flex-footer .imageWidget:after,[data-flex-site] #flex-header .imageWidget:after{content:none}
[data-flex-site] #fcontainer .imageWidget:before,[data-flex-site] #flex-footer .imageWidget:before,[data-flex-site] #flex-header .imageWidget:before{font-size:80px;transform:none}.imageWidget.hover img.hover-image,.imageWidget:hover img.hover-image{display:initial}
.imageWidget.hover.hasHover img:not(.hover-image),.imageWidget:hover.hasHover img:not(.hover-image){display:none!important}.imageWidget img.hover-image,.imageWidget img.logo-on-scroll{display:none}/**/.graphicWidget{width:200px;height:200px;margin:10px auto;text-align:center}.graphicWidget svg.svg{width:100%;height:100%;color:#000;fill:#000}.graphicWidgetV2{width:60px;height:60px}.graphicWidgetV3{font-size:0}/**/.dmNewParagraph[data-version] .text-align-left{text-align:left!important}.dmNewParagraph[data-version] .text-align-center{text-align:center!important}.dmNewParagraph[data-version] .text-align-right{text-align:right!important}
.dmNewParagraph[data-version] .text-align-justify{text-align:justify!important}.dmNewParagraph[data-version] .ql-indent-1{padding:0 1em;padding-inline-end:0;padding-inline-start:3em}.dmNewParagraph[data-version] .ql-indent-2{padding:0 2em;padding-inline-end:0;padding-inline-start:6em}
.dmNewParagraph[data-version] .ql-indent-3{padding:0 3em;padding-inline-end:0;padding-inline-start:9em}.dmNewParagraph[data-version] .ql-indent-4{padding:0 4em;padding-inline-end:0;padding-inline-start:12em}
.dmNewParagraph[data-version] .ql-indent-5{padding:0 5em;padding-inline-end:0;padding-inline-start:15em}.dmNewParagraph[data-version] .ql-indent-6{padding:0 6em;padding-inline-end:0;padding-inline-start:18em}
.dmNewParagraph[data-version] .ql-indent-7{padding:0 7em;padding-inline-end:0;padding-inline-start:21em}.dmNewParagraph[data-version] .ql-indent-8{padding:0 8em;padding-inline-end:0;padding-inline-start:24em}
.dmNewParagraph[data-version] .ql-indent-9{padding:0 9em;padding-inline-end:0;padding-inline-start:27em}.dmNewParagraph[data-version]{line-height:initial}.dmNewParagraph[data-version] [class*=size-]{width:auto!important;height:auto!important}
.dmNewParagraph[data-version] h1,.dmNewParagraph[data-version] h2,.dmNewParagraph[data-version] h3,.dmNewParagraph[data-version] h4,.dmNewParagraph[data-version] h5,.dmNewParagraph[data-version] h6,.dmNewParagraph[data-version] ol,.dmNewParagraph[data-version] p,.dmNewParagraph[data-version] ul{margin-top:0;margin-bottom:0}
.dmNewParagraph[data-version] ol,.dmNewParagraph[data-version] ul{padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.dmNewParagraph[data-version] ol>li,.dmNewParagraph[data-version] ul>li{list-style-type:none;text-indent:-1.5em;margin:0 1em;margin-inline-end:0;margin-inline-start:2em}
.dmNewParagraph[data-version] ol>li:before,.dmNewParagraph[data-version] ul>li:before{min-width:1em;display:inline-block;margin-right:.5em;margin-inline-start:0;margin-inline-end:.5em;text-align:right;text-align:end}
.dmNewParagraph[data-version] ul .ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-1}.dmNewParagraph[data-version] ul .ql-indent-1:before{font-weight:700;content:"○"}
.dmNewParagraph[data-version] ul .ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-2}.dmNewParagraph[data-version] ul .ql-indent-2:before,.dmNewParagraph[data-version] ul .ql-indent-3:before,.dmNewParagraph[data-version] ul .ql-indent-4:before,.dmNewParagraph[data-version] ul .ql-indent-5:before,.dmNewParagraph[data-version] ul .ql-indent-6:before,.dmNewParagraph[data-version] ul .ql-indent-7:before,.dmNewParagraph[data-version] ul .ql-indent-8:before,.dmNewParagraph[data-version] ul .ql-indent-9:before{font-weight:700;content:"■"}
.dmNewParagraph[data-version] ul .ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-3}.dmNewParagraph[data-version] ul .ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9;counter-increment:list-4}
.dmNewParagraph[data-version] ul .ql-indent-5{counter-reset:list-6 list-7 list-8 list-9;counter-increment:list-5}.dmNewParagraph[data-version] ul .ql-indent-6{counter-reset:list-7 list-8 list-9;counter-increment:list-6}
.dmNewParagraph[data-version] ul .ql-indent-7{counter-reset:list-8 list-9;counter-increment:list-7}.dmNewParagraph[data-version] ul .ql-indent-8{counter-reset:list-9;counter-increment:list-8}.dmNewParagraph[data-version] ul .ql-indent-9{counter-reset:list-10 list-9;counter-increment:list-9}
.dmNewParagraph[data-version] ul>li:before{font-weight:700;content:"•";font-family:Arial}.dmNewParagraph[data-version] ul.custom-list-1>li:not([class^=ql-indent-]):not([class*=" ql-indent-"]):before{content:"○";transform:scale(1);transform-origin:center right}
.dmNewParagraph[data-version] ul.custom-list-2>li:not([class^=ql-indent-]):not([class*=" ql-indent-"]):before{content:"★";transform:scale(.7);transform-origin:center right}
.dmNewParagraph[data-version] ul.custom-list-3>li:not([class^=ql-indent-]):not([class*=" ql-indent-"]):before{content:"➞";transform:scale(.8);transform-origin:center right}
.dmNewParagraph[data-version] ul.custom-list-4>li:not([class^=ql-indent-]):not([class*=" ql-indent-"]):before{content:"＋";transform:scale(.7);transform-origin:center right}
.dmNewParagraph[data-version] ul.custom-list-5>li:not([class^=ql-indent-]):not([class*=" ql-indent-"]):before{content:"－";transform:scale(.7);transform-origin:center right}
.dmNewParagraph[data-version] ul.custom-list-6>li:not([class^=ql-indent-]):not([class*=" ql-indent-"]):before{content:"✓";transform:scale(.8);transform-origin:center right}
.dmNewParagraph[data-version] ul.custom-list-7>li:not([class^=ql-indent-]):not([class*=" ql-indent-"]):before{content:"✗";transform:scale(.8);transform-origin:center right}
.dmNewParagraph[data-version] ol .ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-1}.dmNewParagraph[data-version] ol .ql-indent-1:before{content:counter(list-1,lower-alpha) ". "}
.dmNewParagraph[data-version] ol .ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-2}.dmNewParagraph[data-version] ol .ql-indent-2:before{content:counter(list-2,lower-roman) ". "}
.dmNewParagraph[data-version] ol .ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-3}.dmNewParagraph[data-version] ol .ql-indent-3:before{content:counter(list-3,decimal) ". "}
.dmNewParagraph[data-version] ol .ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9;counter-increment:list-4}.dmNewParagraph[data-version] ol .ql-indent-4:before{content:counter(list-4,lower-alpha) ". "}
.dmNewParagraph[data-version] ol .ql-indent-5{counter-reset:list-6 list-7 list-8 list-9;counter-increment:list-5}.dmNewParagraph[data-version] ol .ql-indent-5:before{content:counter(list-5,lower-roman) ". "}
.dmNewParagraph[data-version] ol .ql-indent-6{counter-reset:list-7 list-8 list-9;counter-increment:list-6}.dmNewParagraph[data-version] ol .ql-indent-6:before{content:counter(list-6,decimal) ". "}
.dmNewParagraph[data-version] ol .ql-indent-7{counter-reset:list-8 list-9;counter-increment:list-7}.dmNewParagraph[data-version] ol .ql-indent-7:before{content:counter(list-7,lower-alpha) ". "}
.dmNewParagraph[data-version] ol .ql-indent-8{counter-reset:list-9;counter-increment:list-8}.dmNewParagraph[data-version] ol .ql-indent-8:before{content:counter(list-8,lower-roman) ". "}
.dmNewParagraph[data-version] ol .ql-indent-9{counter-reset:list-10 list-9;counter-increment:list-9}.dmNewParagraph[data-version] ol .ql-indent-9:before{content:counter(list-9,decimal) ". "}
.dmNewParagraph[data-version] ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.dmNewParagraph[data-version] ol li:before{content:counter(list-0,decimal) ". "}
.dmNewParagraph[data-version] a{vertical-align:initial}@media(min-width:768px) and (max-width:1024px){.dmNewParagraph[data-version] .t-text-align-left{text-align:left!important}.dmNewParagraph[data-version] .t-text-align-center{text-align:center!important}
.dmNewParagraph[data-version] .t-text-align-right{text-align:right!important}.dmNewParagraph[data-version] .t-text-align-justify{text-align:justify!important}}@media(max-width:767px){.dmRoot .dmNewParagraph[data-version] .m-text-align-left{text-align:left!important}
.dmRoot .dmNewParagraph[data-version] .m-text-align-center{text-align:center!important}.dmRoot .dmNewParagraph[data-version] .m-text-align-right{text-align:right!important}.dmRoot .dmNewParagraph[data-version] .m-text-align-justify{text-align:justify!important}
}.inlineBindingLink{color:inherit!important;text-decoration:inherit!important}
/* Custom Widgets Styles */
.rm-primary-btn {
  display: block;
  width: 100%;
  height: 100%;
  text-decoration: none;
}

.rm-product-button-widget {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-width: 120px;
  cursor: pointer;
  box-sizing: border-box;
  background-color: var(--primary_button-background, var(--color_button, inherit));
  border-color: var(--primary_button-border-color, transparent);
  border-width: var(--primary_button-border-width, 0px);
  border-style: var(--primary_button-border-style, solid);
  border-radius: var(--primary_button-border-radius, 0px);
}

.rm-btn-text {
  display: block;
  text-transform: var(--rm-text-transform, uppercase);
  font-family: var(--primary_button-font-family, var(--font_1, inherit));
  font-size: var(--primary_button-font-size, inherit);
  font-weight: var(--primary_button-font-weight, inherit);
  font-style: var(--primary_button-font-style, inherit);
  color: var(--primary_button-color, var(--color_button_text, inherit));
  letter-spacing: var(--primary_button-letter-spacing, inherit);
}

// Global styles (non-layout-specific)
#dm .dmInner .dmWidget:after{
    margin-right: 0;
}

/* ── Search / Filter / Sort Bar ─────────────────────────────────────── */
.rm-filter-bar {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 20px;
    width: 100%;
}

.rm-search-wrapper {
    position: relative;
    width: 100%;
}

.rm-search-icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 15px;
    height: 15px;
    fill: #888;
    pointer-events: none;
}

.rm-search-input {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 14px 10px 40px;
    border: 1px solid #d0d0d0;
    border-radius: 6px;
    font-size: 15px;
    color: #333;
    background: #fff;
    outline: none;
    transition: border-color 0.2s;
}

.rm-search-input:focus {
    border-color: #999;
}

.rm-filter-sort-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
}

.rm-filter-pills-wrapper {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.rm-filter-label {
    font-weight: 600;
    font-size: 13px;
    color: #555;
    white-space: nowrap;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.rm-filter-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.rm-filter-pill {
    padding: 7px 16px;
    border-radius: 999px;
    border: 1px solid #d0d0d0;
    background: #fff;
    color: #333;
    font-size: 14px;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
    white-space: nowrap;
}

.rm-filter-pill:hover {
    border-color: #999;
    background: #f5f5f5;
}

.rm-filter-pill--active {
    background: #c47f17;
    color: #fff;
    border-color: #c47f17;
}

.rm-sort-wrapper {
    position: relative;
    display: flex;
    align-items: center;
}

.rm-sort-select {
    appearance: none;
    -webkit-appearance: none;
    padding: 8px 36px 8px 14px;
    border: 1px solid #d0d0d0;
    border-radius: 6px;
    font-size: 14px;
    color: #333;
    background: #fff;
    cursor: pointer;
    outline: none;
    transition: border-color 0.2s;
}

.rm-sort-select:focus {
    border-color: #999;
}

.rm-sort-chevron {
    position: absolute;
    right: 11px;
    pointer-events: none;
    width: 12px;
    height: 12px;
    fill: #666;
}

.rm-results-count {
    font-size: 14px;
    color: #555;
}

@media (max-width: 480px) {
    .rm-filter-sort-row {
        flex-direction: column;
        align-items: flex-start;
    }
    .rm-sort-wrapper {
        width: 100%;
    }
    .rm-sort-select {
        width: 100%;
    }
}
/* ── End Search / Filter / Sort Bar ─────────────────────────────────── */
.rm-product-bullets{
    list-style-type: none;
    line-height: 28px;
}
// Global Mobile-only styles
@media (max-width: 480px) {

}

// Global Desktop-only styles
@media (min-width: 1024px) {
    
}

.widget-bc56d0 {
    width: 100%;
}
.rm-product-container-layout-4{
    .rm-product-details {
        height: 100%;
    }
}
.rm-product-details {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 16px;
    height: auto;
}

.rm-product-sub-header {
    font-style: italic;
    font-weight: normal;
    font-size: 18px;
    font-family: Clarendon;
    color: #8a1418;
}

.rm-product-details-text {
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.rm-product-header {
    display: flex;
    flex-direction: column;
}
.rm-product-name {
    font-family: 'Interstate_RegularCompressed';
    font-size: 32px;
    font-weight: normal;
    text-decoration: none;
    color: inherit !important;
}

.rm-product-description {
    font-family: Helvetica;
    font-size: 18px;
    font-weight: normal;
    color: #272525;
}

.rm-product-image {
    object-fit: cover;
    object-position: 50% 50%;
    height: 100%;
    width: 100%;
}

.rm-product-container {
    background-color: #fff;
    // padding: 20px;
    border-radius: 6px;
}

.rm-product-price-container {
    display: flex;
    flex-flow: column nowrap;
}

.rm-product-price-label {
    font-size: 18px;
    font-weight: normal;
    font-family: 'Interstate_RegularCompressed';
    color: #272525;
}

.rm-product-price {
    font-size: 30px;
    font-weight: normal;
    font-family: 'Interstate_RegularCompressed';
    font-weight: bold;
}

.rm-product-buttons-layout-1 {
    align-items: center;
    display: flex;
    gap: 10px;
    flex-flow: row nowrap;
}

.rm-product-button {
    width: 100% !important;
    min-width: 120px;
    margin: 0 !important;
    text-wrap-mode: nowrap !important;
    color: #ffffff;
    color: var(--btn-text-color);
    font-family: var(--btn-text-font-family);
    font-size: var(--btn-text-font-size);
    padding: 10px !important;
    width: 100% !important;
    height: 100% !important;
    display: flex !important;
    justify-content: center;
    align-items: center;
    div.ng-scope{
        display: inline-block;
    }
}
.rm-product-button.button_2:hover {
    color: var(--btn-hover-text-color);
}
.rm-primary-btn.rm-product-button {
    min-width: 170px;
    height: 44px !important;
}

.rm-product-button .text{
    padding: 0px !important;
    text-wrap-mode: nowrap !important;
}
.rm-secondary-btn{
    text-decoration: none !important;
    height: 44px !important;
}


.rm-product-image-container-layout-1,
.rm-product-image-container-layout-2,
.rm-product-image-container-layout-3,
.rm-product-image-container-layout-4 {
    position: relative;
}
.rm-image-gallery-btn {
    fill: #ffffff;
}

.rm-line-divider {
    width: 100%;
    border: 0; 
    border-bottom-color: #000000;
    border-bottom: 2px dotted;

}

.rm-slider-btn {
    fill: #262626;
}

// SLIDER STYLES
.rm-move-icon {
    cursor: pointer;
    z-index: 2;
    top: 50%;
    position: absolute;
}

.rm-move-icon svg {
    height: 1em;
}

.rm-move-prev {
    left: 5px;
}

.rm-move-next {
    right: 5px;
}

.rm-product-container {
    container-type: inline-size;
}

.rm-product-image-container {
    flex-shrink: 0;
}

// LAYOUT 1
// Layout 1 Mobile-only styles
@media (max-width: 480px) {
    .rm-product-container-layout-1 {
        flex-flow: column nowrap;
    }
    .rm-product-details-footer-layout-1 {
        flex-flow: column nowrap;
    }
    .rm-product-buttons-layout-1{
       flex-flow: column nowrap; 
    }
    .rm-product-buttons-layout-1 .rm-product-button {
        width: 100%;
    }
    
    .rm-product-prices-layout-1 .rm-product-price-container {
        align-items: center;
    }
    
    .rm-product-image-container-layout-1 {
        height: 200px;
    }
    .rm-secondary-btn{
        width: 100%;
    }
}




// Layout 1 Tablet-only styles
@container (min-width: 481px) and (max-width: 1023px) {
    .rm-product-buttons-layout-1 {
        margin-left: 0;
    }
    .rm-product-image-container-layout-1 {
        width: 220px;
        height: auto;
        flex-shrink: 0;
    }
}

// Layout 1 Desktop-only styles
@container (min-width: 1024px) {
    .rm-product-buttons-layout-1 {
        margin-left: auto;
    }
    
    .rm-product-image-container-layout-1 {
        width: 290px;
        height: 210px;
    }
}

@media (min-width: 1024px) {
    .rm-product-container-layout-1 {
        flex-flow: row nowrap;
    }
    .rm-product-details-footer-layout-1 {
        flex-flow: row wrap;
    }
    // .rm-product-buttons-layout-1 {
    //     margin-left: auto;
    // }
    
    .rm-product-prices-layout-1 .rm-product-price-container {
        align-items: center;
    }
    
    // .rm-product-image-container-layout-1 {
    //     width: 290px;
    //     flex-shrink: 0;
    // }
}

.rm-widget-container-layout-1 {
    display: flex;
    flex-flow: column nowrap;
    gap: 20px;
}

.rm-product-container-layout-1 {
    display: flex;
    gap: 20px;
}

.rm-product-details-footer-layout-1 {
    display: flex;
    justify-content: space-between;
    gap: 10px;
}

.rm-product-prices-layout-1 {
    display: flex;
    flex-flow: row nowrap;
    gap: 20px;
}


// LAYOUT 2
// Layout 2 Mobile-only styles
@media (max-width: 480px) {
    .rm-product-container-layout-2 {
        flex-flow: column nowrap;
    }
    .rm-product-prices-layout-1 .rm-product-price-container {
        align-items: center;
    }
    .rm-product-image-container-layout-2 {
        height: 210px;
    }
}

// Layout 2 Desktop-only styles
@media (min-width: 1024px) {
    .rm-product-container-layout-2 {
        flex-flow: row nowrap;
    }
    .rm-product-image-container-layout-2 { // Changed from layout 1
        width: 50%;
        height: auto;
    }
    .rm-product-prices-layout-1 .rm-product-price-container {
        align-items: center;
    }
}
@container (min-width: 481px) and (max-width: 1023px) {
    .rm-product-image-container-layout-2 {
        width: 500px;
        height: auto;
    }
}

.rm-product-image-container-layout-2 {
    flex-shrink: 0;
}
.rm-widget-container-layout-2 {
    display: flex;
    flex-flow: column nowrap;
    gap: 20px;
}

.rm-product-container-layout-2 {
    display: flex;
    gap: 20px;
}

.rm-product-details-footer-layout-2 {
    display: flex;
    flex-flow: column nowrap; // Changed from layout 1
    gap: 10px;
}

.rm-product-prices-layout-2 {
    display: flex;
    flex-flow: row nowrap;
    gap: 20px;
}

.rm-product-buttons-layout-2 {
    display: flex;
    flex-flow: column nowrap;
    gap: 10px;
}

.rm-product-buttons-layout-2 .rm-product-button {
    width: 100% !important;
}


// LAYOUT 3
// Layout 3 Mobile-only styles
@media (max-width: 480px) {
    .rm-product-container-layout-3 {
        flex-flow: column nowrap;
    }
    .rm-product-prices-layout-1 .rm-product-price-container {
        align-items: center;
    }
    .rm-product-image-container-layout-3 {
        height: 210px;
    }
}

// Layout 3 Desktop-only styles
@media (min-width: 1024px) {
    .rm-product-container-layout-3 {
        flex-flow: row nowrap;
    }
    .rm-product-image-container-layout-3 { // Changed from layout 1
        width: 65%;
        height: auto;
    }
    .rm-product-prices-layout-1 .rm-product-price-container {
        align-items: center;
    }
}
@container (min-width: 481px) and (max-width: 1023px) {
    .rm-product-image-container-layout-3 {
        width: 500px;
        height: auto;
    }
}

.rm-product-image-container-layout-3 {
    flex-shrink: 0;
}
.rm-widget-container-layout-3 {
    display: flex;
    flex-flow: column nowrap;
    gap: 20px;
}

.rm-product-container-layout-3 {
    display: flex;
    gap: 20px;
}

.rm-product-details-footer-layout-3 {
    display: flex;
    flex-flow: column nowrap; // Changed from layout 1
    gap: 10px;
}

.rm-product-prices-layout-3 {
    display: flex;
    flex-flow: row nowrap;
    gap: 20px;
}

.rm-product-buttons-layout-3 {
    display: flex;
    flex-flow: column nowrap;
    gap: 10px;
}

.rm-product-buttons-layout-3 .rm-product-button {
    width: 100% !important;
}


// LAYOUT 4
// Layout 4 Mobile-only styles
@media (max-width: 480px) {
    .rm-widget-container-layout-4 {
        position: relative;
        display: flex;
        flex-flow: column nowrap;
        gap: 20px;
        // padding: 20px 7%;
        margin: 0 10px;
    }
    .rm-product-container-layout-4 {
        flex-flow: column nowrap;
    }
    .rm-product-image-container-layout-4 { // Changed from layout 1
        height: 210px;
    }
    
}

// Layout 4 Desktop-only styles
@media (min-width: 1024px) {
    .rm-widget-container-layout-4 {
        display: flex;
        flex-flow: row nowrap;
        gap: 20px;
        justify-content: center;
        padding: 20px 2%;
        // margin: 0 20px;
    }
    .rm-product-container-layout-4 {
        // flex-shrink: 0;
        // width: 240px;
        width: 100%;
    }
    .rm-product-image-container-layout-4 { // Changed from layout 1
        height: 210px;
    }
}


.rm-product-buttons-layout-4 {
    display: flex;
    flex-flow: column nowrap;
    gap: 10px;
}

.rm-product-buttons-layout-4 .rm-product-button {
    width: 100% !important;
}

.rm-product-container-layout-4 {
    display: flex;
    flex-flow: column nowrap; // Changed from layouts 1 & 2
    gap: 20px;
}

.rm-product-details-footer-layout-4 {
    display: flex;
    flex-flow: column nowrap; // Same as layout 3
    gap: 10px;
    margin-top: auto;
}

.rm-product-prices-layout-4 {
    display: flex;
    flex-flow: row nowrap; // Changed from layouts 1 & 2
    gap: 20px;
}


// LAYOUT 5 — Card Grid
// grid-template-columns is set by JS (inline style) so changing columns in the design panel works.
// CSS only sets display:grid and gap here.

// Layout 5 Mobile-only styles
@media (max-width: 480px) {
    .rm-widget-container-layout-5 {
        display: flex;
        flex-direction: column;
        gap: 24px;
    }
    .rm-product-image-container-layout-5 {
        height: 220px;
    }
}

// Layout 5 Tablet-only styles — grid-template-columns is overwritten by JS
@media (min-width: 481px) and (max-width: 1023px) {
    .rm-widget-container-layout-5 {
        display: grid;
        gap: 24px;
    }
}

// Layout 5 Desktop-only styles — grid-template-columns is overwritten by JS
@media (min-width: 1024px) {
    .rm-widget-container-layout-5 {
        display: grid;
        gap: 24px;
    }
    .rm-product-container-layout-5 {
        width: 100%;
    }
    .rm-product-image-container-layout-5 {
        height: 220px;
    }
}

/* Layout 5 card structure */
.rm-product-container-layout-5 {
    display: flex;
    flex-flow: column nowrap;
    gap: 0;
    overflow: hidden;
    border-radius: 12px;
    box-shadow: 0 2px 16px rgba(0,0,0,0.10);
    background: #fff;
}

.rm-product-image-container-layout-5 {
    position: relative;
    overflow: hidden;
    flex-shrink: 0;
    height: 220px;
}

.rm-product-image-container-layout-5 .rm-product-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

/* Overlay badges */
.rm-card-badge {
    position: absolute;
    top: 14px;
    padding: 5px 12px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.03em;
    white-space: nowrap;
    line-height: 1.4;
}

.rm-card-badge--left {
    left: 14px;
    background: #1e2d3d;
    color: #fff;
}

.rm-card-badge--right {
    right: 14px;
    background: #e07820;
    color: #fff;
    text-transform: uppercase;
}

/* Card body */
.rm-product-container-layout-5 .rm-product-details {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    flex: 1;
    padding: 0;
    height: auto;
    gap: 0;
}

/* Promo code row */
.rm-card-promo-row {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 16px;
    font-size: 13px;
    color: #555;
}

.rm-card-promo-icon {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    fill: #e07820;
}

.rm-card-promo-code {
    color: #e07820;
    font-weight: 700;
}

.rm-card-promo-divider {
    width: 100%;
    border: none;
    border-bottom: 1.5px dashed #e0c89a;
    margin: 0;
}

/* Details text area */
.rm-product-container-layout-5 .rm-product-details-text {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px 16px 10px;
}

/* Product name */
.rm-product-container-layout-5 .rm-product-name {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    color: #1a1a1a !important;
    text-decoration: none;
}

/* Duration row — standalone clock + text display */
.rm-duration-row {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 15px;
    font-weight: 500;
    color: #555;
    margin-bottom: 2px;
}

.rm-duration-row .rm-card-clock {
    width: 16px;
    height: 16px;
    fill: #888;
    flex-shrink: 0;
}

/* Meta row: rating + duration */
.rm-card-meta-row {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}

.rm-card-rating,
.rm-card-duration {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 14px;
    color: #444;
    font-weight: 500;
}

.rm-card-star {
    width: 16px;
    height: 16px;
    fill: #f5a623;
    flex-shrink: 0;
}

.rm-card-clock {
    width: 16px;
    height: 16px;
    fill: #888;
    flex-shrink: 0;
}

/* Description */
.rm-product-container-layout-5 .rm-product-description {
    font-size: 14px;
    color: #555;
    line-height: 1.55;
}

/* Footer: price stacked above buttons */
.rm-product-details-footer-layout-5 {
    display: flex;
    flex-flow: column nowrap;
    align-items: stretch;
    gap: 10px;
    padding: 12px 16px 16px;
    margin-top: auto;
}

.rm-product-prices-layout-5 {
    display: flex;
    flex-flow: column nowrap;
    gap: 2px;
}

.rm-product-prices-layout-5 .rm-product-price-label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #888;
}

.rm-product-prices-layout-5 .rm-product-price {
    font-size: 26px;
    font-weight: 700;
    color: #e07820;
    text-align: left;
    line-height: 1.1;
}

.rm-product-buttons-layout-5 {
    display: flex;
    flex-flow: column nowrap;
    gap: 8px;
    width: 100%;
}

.rm-product-buttons-layout-5 .rm-product-button {
    width: 100% !important;
}

.rm-product-buttons-layout-5 .rm-primary-btn,
.rm-product-buttons-layout-5 .rm-secondary-btn {
    width: 100% !important;
    text-decoration: none;
}
// LAYOUT 6
.rm-product-prices-layout-6 .rm-product-price-container{
        display: flex;
        flex-flow: column nowrap;
        align-items: center;
        gap: 4px;
    }
.rm-product-prices-layout-6 .rm-product-price {
    text-align: center;
}
.rm-product-buttons-layout-6 {
    align-items: center;
    display: flex;
    gap: 10px;
    flex-flow: column;
    width: 100%;
    .rm-primary-btn,
    .rm-secondary-btn{
        width: 100%;
        text-decoration: none;
    }
}
.rm-product-details-footer-layout-6{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    gap: 40px;
    padding: 20px;
    background: #e1e1e1;
    border-radius: 8px 8px 8px 8px;
}
.rm-widget-container-layout-6 {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.rm-product-image-container-layout-6 {
    height: 100%;
    .rm-product-image{
        border-radius: 8px 8px 8px 8px;
    }
}
.rm-product-container-layout-6 {
    display: grid;
    align-items: center;
    gap: 20px;
    padding: 20px;
    background-color: #ffffff;
    border-radius: 8px;
}

// Layout 6 Mobile-only styles

// Layout 6 Desktop-only styles
@media (min-width: 1024px) {
    .rm-product-container-layout-6 {
        display: grid;
        grid-template-columns: 1fr 3fr;
    }
    .rm-product-details-layout-6{
        display: grid;
        grid-template-columns: 5fr 2fr;
        gap: 16px;
        height: 100%;
        .rm-product-details-text{
            padding-top: 10px;
        }
    }  
}


/* Location displayed near the title */
.rm-product-location-header {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 15px;
    font-weight: 600;
    color: #c47f17;
    margin: 2px 0;
}

.rm-product-location-header::before {
    content: "";
    display: inline-block;
    width: 12px;
    height: 12px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath fill='currentColor' d='M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    flex-shrink: 0;
    opacity: 0.85;
}

/* Full-width buttons: price stacks above buttons */
.rm-product-details-footer--stacked {
    flex-flow: column nowrap !important;
    align-items: stretch !important;
}

.rm-product-details-footer--stacked .rm-product-prices-layout-5 {
    flex-flow: row nowrap;
    align-items: baseline;
    gap: 8px;
}

.rm-product-details-footer--stacked .rm-product-buttons-layout-5,
.rm-product-details-footer--stacked .rm-product-buttons-layout-4,
.rm-product-details-footer--stacked .rm-product-buttons-layout-3,
.rm-product-details-footer--stacked .rm-product-buttons-layout-2,
.rm-product-details-footer--stacked .rm-product-buttons-layout-1,
.rm-product-details-footer--stacked .rm-product-buttons-layout-6 {
    width: 100%;
}

.rm-product-details-footer--stacked .rm-primary-btn,
.rm-product-details-footer--stacked .rm-secondary-btn {
    width: 100% !important;
}

.rm-product-details-footer--stacked .rm-product-buttons-layout-1 {
    flex-flow: column nowrap !important;
}

/* Custom Bullets */
.rm-product-description{
    ul {
        list-style: none;
        padding-left: 0;
        gap: 6px;
        display: flex;
        flex-direction: column;
        margin-bottom: 4px;
    }
    
    li {
      position: relative;
      display: flex;
      align-items: center;
      justify-content: start;
      flex-flow: wrap;
    }
    
    li::before {
        content: "";
        position: relative;
        width: 20px;
        height: 20px;
        background-image: url(https://irp.cdn-website.com/8237dfbc/dms3rep/multi/check-icon.svg);
        background-size: contain;
        background-repeat: no-repeat;
        margin-right: 4px;
    }
}

@charset "UTF-8";
/* ============================================================
 * Resmark Media Gallery
 * OTA-quality four-layout media gallery + conversion lightbox.
 *
 * CSS class prefix: rmg
 * Spec reference: MediaGalleryWidget_FunctionalOutline.md §15
 *
 * NOTE on @media specificity: do NOT write nested selectors for desktop
 * (e.g. dialog.rmg-lightbox .rmg-lb-shell) and bare ones for mobile.
 * Desktop wins by specificity even inside the @media block. Use the
 * same selector everywhere; the @media query alone gates the override.
 * ============================================================ */
/* =====================================================================
 * Tokens (theme inheritance via Duda site colors falls through fallbacks)
 * ===================================================================== */
.rmg {
  /* Colors */
  --rmg-color-bg: var(--site-bg-color, #ffffff);
  --rmg-color-page: var(--site-page-color, #f6f6f7);
  --rmg-color-text: var(--site-text-color, #111111);
  --rmg-color-muted: var(--site-muted-color, #6b7280);
  --rmg-color-border: var(--site-border-color, #e5e7eb);
  --rmg-color-primary: var(--site-primary-color, var(--color_1, #d97706));
  --rmg-color-primary-dark: var(--site-primary-dark, #b45309);
  --rmg-color-pill-bg: rgba(255, 255, 255, 0.92);
  --rmg-color-pill-text: #111111;
  --rmg-color-overlay: rgba(0, 0, 0, 0.92);
  --rmg-color-stars: #f59e0b;
  /* Spacing & shape */
  --rmg-gap: 0.5rem;
  --rmg-radius: 8px;
  --rmg-radius-pill: 999px;
  --rmg-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.06);
  --rmg-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  --rmg-shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.18);
  /* Typography */
  --rmg-font: var(--site-font, system-ui, -apple-system, BlinkMacSystemFont,
                  "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);
  /* Sizes (overridden per layout below) */
  --rmg-mosaic-height: 480px;
  --rmg-strip-thumb-w: 110px;
  --rmg-strip-thumb-h: 90px;
  --rmg-inset-height: 240px;
  --rmg-carousel-height: 480px;
  --rmg-reviews-width: 320px;
  position: relative;
  width: 100%;
  font-family: var(--rmg-font);
  color: var(--rmg-color-text);
  box-sizing: border-box;
}

.rmg *, .rmg *::before, .rmg *::after {
  box-sizing: border-box;
}

/* =====================================================================
 * Stage wrapper: gallery + optional right rail (CTA card and/or reviews)
 *
 * The right rail is controlled entirely by data-show-rail="true|false",
 * which JS computes from ctaPosition + showReviews. This replaces the old
 * layout-specific and reviews-specific column rules so all four layouts can
 * now show a right rail when needed.
 *
 * IMPORTANT — why we set explicit height per layout:
 * Without a fixed height, the CSS grid row expands to the tallest item,
 * which is the reviews content. The gallery column then has empty space
 * below it, and the rail is never actually taller than its container, so
 * overflow-y:auto on the reviews panel never triggers. Fixing the height
 * to match the gallery's visual height caps the grid row correctly so the
 * reviews panel scrolls instead of pushing the layout taller.
 * ===================================================================== */
.rmg-stage-wrap {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--rmg-gap);
  align-items: stretch;
}

/* Per-layout heights cap the grid row to the gallery's visual height.
 * Uses the layout tokens directly — CSS Sliders cannot target CSS custom
 * properties in Duda (they output NaN and break the layout). Operator
 * control of sidebar scroll height is handled via max-height on
 * .rmg-reviews-panel-host, which the Reviews Sidebar Height CSS Slider
 * targets directly. */
.rmg[data-layout=mosaic] .rmg-stage-wrap,
.rmg[data-layout=strip] .rmg-stage-wrap {
  height: var(--rmg-mosaic-height);
}

.rmg[data-layout=carousel] .rmg-stage-wrap {
  height: var(--rmg-carousel-height);
}

.rmg[data-layout=inset] .rmg-stage-wrap {
  height: var(--rmg-inset-height);
}

/* Right rail appears when JS signals it has something to show */
.rmg[data-show-rail=true] .rmg-stage-wrap {
  grid-template-columns: 1fr var(--rmg-reviews-width);
}

/* Right rail container — CTA card on top, reviews below.
 * overflow:hidden + flex child rules let the reviews panel scroll
 * inside the rail rather than pushing the rail taller than the gallery. */
.rmg-right-rail {
  display: flex;
  flex-direction: column;
  gap: var(--rmg-gap);
  min-width: 0;
  overflow: hidden;
}

.rmg:not([data-show-rail=true]) .rmg-right-rail {
  display: none;
}

/* CTA host hidden unless ctaPosition is rail */
.rmg:not([data-cta-position=rail]) .rmg-cta-host {
  display: none;
}

/* Hide empty CTA host (no tripName/ctaPage supplied) */
.rmg-cta-host:empty {
  display: none;
}

/* CTA host must not grow/shrink — it takes its natural height so reviews get the rest */
.rmg-cta-host {
  flex-shrink: 0;
}

/* Reviews panel host hidden when reviews disabled */
.rmg[data-no-reviews=true] .rmg-reviews-panel-host {
  display: none;
}

.rmg-gallery {
  position: relative;
  min-width: 0; /* allow grid child to shrink */
  width: 100%; /* strip layout needs explicit width to fill the grid column */
}

/* =====================================================================
 * Tiles (shared across layouts)
 * ===================================================================== */
.rmg-tile {
  position: relative;
  overflow: hidden;
  background: var(--rmg-color-page);
  border-radius: var(--rmg-radius);
  cursor: pointer;
  user-select: none;
  -webkit-user-drag: none;
}

.rmg-tile img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 350ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.rmg-tile:hover img {
  transform: scale(1.04);
}

.rmg-tile:focus-visible {
  outline: 3px solid var(--rmg-color-primary);
  outline-offset: 2px;
}

/* Video / social tile overlay with play icon */
.rmg-video-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 30%, rgba(0, 0, 0, 0.35) 100%);
  pointer-events: none;
}

.rmg-play-icon {
  width: 56px;
  height: 56px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: #111;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--rmg-shadow);
}

.rmg-play-icon svg {
  width: 24px;
  height: 24px;
}

.rmg-traveler-badge {
  position: absolute;
  top: 0.5rem;
  left: 0.5rem;
  background: rgba(0, 0, 0, 0.72);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.25rem 0.5rem;
  border-radius: var(--rmg-radius-pill);
  pointer-events: none;
}

/* "View all N images" pill */
.rmg-pill {
  position: absolute;
  bottom: 0.75rem;
  right: 0.75rem;
  background: var(--rmg-color-pill-bg);
  color: var(--rmg-color-pill-text);
  border: none;
  border-radius: var(--rmg-radius-pill);
  padding: 0.55rem 1rem;
  font-family: inherit;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  box-shadow: var(--rmg-shadow);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.rmg-pill svg {
  width: 1em;
  height: 1em;
}

.rmg-pill:hover {
  background: #fff;
}

.rmg-pill:focus-visible {
  outline: 2px solid var(--rmg-color-primary);
  outline-offset: 2px;
}

.rmg-pill[hidden] {
  display: none;
}

/* =====================================================================
 * Layout: Hero Mosaic
 * ===================================================================== */
.rmg-layout-mosaic {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: var(--rmg-gap);
  height: var(--rmg-mosaic-height);
}

.rmg-layout-mosaic .rmg-tile.large {
  grid-column: 1/2;
  grid-row: 1/3;
}

/* Mosaic mobile slideshow arrows — hidden on desktop, shown on mobile */
.rmg-mosaic-arrow {
  display: none;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: none;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  z-index: 2;
}

.rmg-mosaic-arrow svg {
  width: 24px;
  height: 24px;
}

.rmg-mosaic-arrow:hover {
  background: rgba(0, 0, 0, 0.75);
}

.rmg-mosaic-arrow.prev {
  left: 0.5rem;
}

.rmg-mosaic-arrow.next {
  right: 0.5rem;
}

.rmg-mosaic-arrow:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

/* =====================================================================
 * Layout: Side Strip + Hero
 * ===================================================================== */
.rmg-layout-strip {
  display: grid;
  grid-template-columns: var(--rmg-strip-thumb-w) 1fr;
  gap: var(--rmg-gap);
  height: var(--rmg-mosaic-height);
}

.rmg-strip {
  overflow-y: auto;
  overflow-x: hidden;
  display: flex;
  flex-direction: column;
  gap: calc(var(--rmg-gap) * 0.75);
  padding-right: 2px; /* room for scrollbar without clipping outline */
}

.rmg-strip::-webkit-scrollbar {
  width: 4px;
}

.rmg-strip::-webkit-scrollbar-thumb {
  background: var(--rmg-color-border);
  border-radius: 4px;
}

.rmg-strip-thumb {
  flex: 0 0 var(--rmg-strip-thumb-h);
  height: var(--rmg-strip-thumb-h);
  border: 2px solid transparent;
}

.rmg-strip-thumb.selected {
  border-color: var(--rmg-color-primary);
  /* +ring so the active state is not color-only (a11y) */
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.9), var(--rmg-shadow);
}

.rmg-strip-hero {
  position: relative;
  overflow: hidden;
  border-radius: var(--rmg-radius);
  background: var(--rmg-color-page);
}

.rmg-strip-hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Hero arrows (Side Strip) */
.rmg-hero-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: none;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}

.rmg-hero-arrow svg {
  width: 24px;
  height: 24px;
}

.rmg-hero-arrow:hover {
  background: rgba(0, 0, 0, 0.75);
}

.rmg-hero-arrow:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.rmg-hero-arrow.prev {
  left: 0.5rem;
}

.rmg-hero-arrow.next {
  right: 0.5rem;
}

.rmg-hero-arrow:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

/* =====================================================================
 * Layout: Large Tile Carousel
 * ===================================================================== */
.rmg-layout-carousel {
  position: relative;
  overflow: hidden;
  height: var(--rmg-carousel-height);
}

.rmg-carousel-wrap {
  position: relative;
  height: calc(100% - 2.5rem); /* room for dots */
  overflow: hidden;
}

.rmg-carousel-track {
  display: flex;
  height: 100%;
  gap: var(--rmg-gap);
  will-change: transform;
  transition: transform 450ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.rmg-carousel-track.no-transition {
  transition: none !important;
}

.rmg-carousel-track .rmg-tile {
  flex: 0 0 auto; /* width set inline */
  height: 100%;
}

.rmg-carousel-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: none;
  background: rgba(255, 255, 255, 0.92);
  color: #111;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 3;
  box-shadow: var(--rmg-shadow);
}

.rmg-carousel-arrow svg {
  width: 24px;
  height: 24px;
}

.rmg-carousel-arrow:hover {
  background: #fff;
}

.rmg-carousel-arrow.prev {
  left: 1rem;
}

.rmg-carousel-arrow.next {
  right: 1rem;
}

.rmg-carousel-arrow:focus-visible {
  outline: 2px solid var(--rmg-color-primary);
  outline-offset: 2px;
}

.rmg-dots {
  position: absolute;
  bottom: 0.5rem;
  left: 0;
  right: 0;
  display: flex;
  justify-content: center;
  gap: 0.4rem;
  z-index: 3;
}

.rmg-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  border: none;
  background: rgba(0, 0, 0, 0.25);
  cursor: pointer;
  padding: 0;
  transition: background 150ms;
}

.rmg-dot.active {
  background: var(--rmg-color-primary);
  width: 22px;
}

.rmg-dot:focus-visible {
  outline: 2px solid var(--rmg-color-primary);
  outline-offset: 2px;
}

/* CTA card — base styles shared by both rail and overlay positions */
.rmg-cta-card {
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  padding: 1rem 1.25rem;
  border-radius: var(--rmg-radius);
  box-shadow: var(--rmg-shadow);
  z-index: 3;
}

/* Overlay variant — positioned over the top-right corner of the gallery.
 * Hidden on mobile; the page's own floating CTA handles that context. */
.rmg-cta-card.rmg-cta-overlay {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 280px;
  max-width: calc(100% - 2rem);
}

.rmg-cta-eyebrow {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--rmg-color-muted);
  margin-bottom: 0.25rem;
}

.rmg-cta-name {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 0.75rem;
  color: var(--rmg-color-text);
}

.rmg-cta-button,
.rmg-cta-card a.rmg-cta-button {
  display: inline-block;
  background: var(--rmg-color-primary);
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 0.04em;
  padding: 0.65rem 1rem;
  border: none;
  border-radius: var(--rmg-radius);
  cursor: pointer;
  transition: background 150ms;
}

.rmg-cta-button:hover {
  background: var(--rmg-color-primary-dark);
}

/* =====================================================================
 * Layout: Inset Gallery
 * ===================================================================== */
.rmg-layout-inset {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--rmg-gap);
  height: var(--rmg-inset-height);
}

/* =====================================================================
 * Reviews panel (desktop sidebar)
 * ===================================================================== */
/* Reviews panel host grows to fill whatever vertical space the right rail
 * has left after the CTA card takes its share, then clips so the inner
 * panel can scroll rather than pushing the rail taller than the gallery.
 *
 * max-height is the target for the "Reviews Sidebar Height" CSS Slider in
 * Duda's Design panel. Targeting a real CSS property on a real selector is
 * the only reliable way to use a CSS Slider in Duda — variables produce NaN. */
.rmg-reviews-panel-host {
  display: flex;
  flex: 1 1 0;
  min-height: 0;
  overflow: hidden;
  max-height: 480px; /* default; overridden by CSS Slider in Design panel */
}

.rmg-reviews-panel {
  background: var(--rmg-color-bg);
  border: 1px solid var(--rmg-color-border);
  border-radius: var(--rmg-radius);
  padding: 1rem;
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  overflow-y: auto;
}

.rmg-score {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--rmg-color-text);
}

.rmg-stars {
  color: var(--rmg-color-stars);
  letter-spacing: 0.05em;
}

.rmg-count {
  font-size: 0.85rem;
}

.rmg-review {
  border-bottom: 1px solid var(--rmg-color-border);
  padding-bottom: 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.rmg-review:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.rmg-review-author {
  font-weight: 600;
  font-size: 0.9rem;
}

.rmg-review-rating {
  color: var(--rmg-color-stars);
  font-size: 0.85rem;
}

.rmg-review-quote {
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--rmg-color-text);
}

/* Duda's rich-text editor wraps review content in <ul>/<li> — strip list chrome */
.rmg-review-quote ul,
.rmg-review-quote ol {
  list-style: none;
  padding: 0;
  margin: 0;
}

.rmg-review-quote li {
  display: block;
  padding: 0;
  margin: 0;
}

.rmg-review-quote br:last-child {
  display: none;
}

.rmg-review-meta {
  font-size: 0.75rem;
  color: var(--rmg-color-muted);
}

/* =====================================================================
 * Inline expansion (universal pill behavior)
 * ===================================================================== */
.rmg-inline-rows {
  display: flex;
  flex-direction: column;
  gap: var(--rmg-gap);
  margin-top: var(--rmg-gap);
}

.rmg-row-half {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--rmg-gap);
}

.rmg-row-half .rmg-tile {
  aspect-ratio: 1/1;
}

.rmg-row-full .rmg-tile {
  aspect-ratio: 16/9;
}

/* =====================================================================
 * Lightbox (desktop default; mobile overrides at the bottom of the file)
 * ===================================================================== */
.rmg-lightbox {
  padding: 0;
  border: none;
  background: transparent;
  color: #fff;
  width: min(100vw, 1600px);
  max-width: 100vw;
  height: 100vh;
  height: 100dvh; /* iOS Safari 15.4+: shrinks when browser chrome is visible */
  max-height: 100vh;
  max-height: 100dvh;
  overflow: hidden;
}

.rmg-lightbox::backdrop {
  background: var(--rmg-backdrop-color, rgba(0, 0, 0, 0.92));
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.rmg-lb-shell {
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-rows: auto 1fr auto;
  background: transparent;
  color: #fff;
  font-family: var(--rmg-font);
}

/* Lightbox header — solid opaque (NOT a gradient — see spec §6).
 * Bright images bled through gradients in earlier prototypes. */
.rmg-lb-header {
  position: relative;
  background: rgba(0, 0, 0, 0.92);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  padding: 0.85rem 3rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

/* When the reviews sidebar is visible, shift the visual centre of the header
 * rightward so the name + CTA align above the image column, not the full
 * dialog width. The close button is position:absolute so it stays at the edge. */
.rmg-lightbox:not([data-no-reviews=true]) .rmg-lb-header {
  padding-right: calc(var(--rmg-reviews-width) + 3rem);
}

.rmg-lb-tabs {
  display: flex;
  gap: 0.25rem;
  background: rgba(255, 255, 255, 0.08);
  border-radius: var(--rmg-radius-pill);
  padding: 0.25rem;
}

.rmg-lb-tab {
  background: transparent;
  color: rgba(255, 255, 255, 0.75);
  border: none;
  padding: 0.4rem 1rem;
  font-size: 0.85rem;
  font-weight: 600;
  border-radius: var(--rmg-radius-pill);
  cursor: pointer;
}

.rmg-lb-tab.active {
  background: #fff;
  color: #111;
}

.rmg-lb-tabs[hidden] {
  display: none;
}

.rmg-lb-center {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  width: 100%;
}

.rmg-lb-name {
  font-size: 1.05rem;
  font-weight: 700;
  color: #fff;
  text-align: center;
}

.rmg-lb-cta {
  display: inline-block;
  background: var(--rmg-color-primary);
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 0.8rem 2rem;
  border-radius: 8px;
  transition: background 150ms;
  white-space: nowrap;
}

.rmg-lb-cta:hover {
  background: var(--rmg-color-primary-dark);
}

.rmg-lb-cta:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

.rmg-lb-cta[hidden] {
  display: none;
}

/* View toggle (Gallery / Grid) — sits at top of .rmg-lb-stage (flex column) */
.rmg-lb-view-toggle {
  display: flex;
  background: rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  padding: 3px;
  gap: 0;
  flex-shrink: 0;
  align-self: center;
  margin: 0.6rem 0;
  z-index: 2;
}

.rmg-lb-view-btn {
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.65);
  padding: 5px 18px;
  border-radius: 999px;
  cursor: pointer;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  transition: background 0.18s, color 0.18s;
  white-space: nowrap;
}

.rmg-lb-view-btn.active {
  background: #fff;
  color: #111;
}

.rmg-lb-view-btn:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

/* Grid view — hide single-image UI only; reviews sidebar/drawer follow the
   same data-no-reviews logic as gallery view so they show/hide consistently */
.rmg-lightbox[data-lb-view=grid] .rmg-lb-prev,
.rmg-lightbox[data-lb-view=grid] .rmg-lb-next,
.rmg-lightbox[data-lb-view=grid] .rmg-lb-counter,
.rmg-lightbox[data-lb-view=grid] .rmg-lb-caption,
.rmg-lightbox[data-lb-view=grid] .rmg-lb-mute,
.rmg-lightbox[data-lb-view=grid] .rmg-lb-thumbs {
  display: none;
}

.rmg-lightbox[data-lb-view=grid] .rmg-lb-stage-media {
  overflow-y: auto;
}

.rmg-lightbox[data-lb-view=grid] .rmg-lb-content-container {
  display: block;
  overflow-y: auto;
  height: 100%;
  align-items: unset;
  justify-content: unset;
}

/* Grid layout inside lightbox */
.rmg-lb-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
  gap: 4px;
  padding: 16px;
}

.rmg-lb-grid-item {
  aspect-ratio: 1;
  overflow: hidden;
  cursor: pointer;
  border-radius: 4px;
  border: none;
  padding: 0;
  background: rgba(255, 255, 255, 0.05);
  position: relative;
}

.rmg-lb-grid-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.2s ease, opacity 0.2s;
}

.rmg-lb-grid-item:hover img {
  transform: scale(1.05);
}

.rmg-lb-grid-item:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

/* Video badge on grid items */
.rmg-lb-grid-item.video::after {
  content: "";
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M8 5v14l11-7z'/%3E%3C/svg%3E") center/32px no-repeat, rgba(0, 0, 0, 0.35);
  pointer-events: none;
  border-radius: 4px;
}

.rmg-lb-close {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  border: none;
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 4;
}

.rmg-lb-close svg {
  width: 22px;
  height: 22px;
}

.rmg-lb-close:hover {
  background: rgba(255, 255, 255, 0.2);
}

.rmg-lb-close:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

.rmg-lb-body {
  display: grid;
  grid-template-columns: 1fr var(--rmg-reviews-width);
  min-height: 0;
}

.rmg-lightbox[data-no-reviews=true] .rmg-lb-body {
  grid-template-columns: 1fr;
}

.rmg-lightbox[data-no-reviews=true] .rmg-lb-reviews-side {
  display: none;
}

.rmg-lb-stage {
  position: relative;
  background: rgba(0, 0, 0, 0.95);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  overflow: hidden;
  min-height: 0;
}

/* Wrapper for arrows + content — fills remaining height after the view toggle */
.rmg-lb-stage-media {
  position: relative;
  flex: 1 1 0;
  min-height: 0;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.rmg-lb-content-container {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.rmg-lb-image {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  touch-action: pinch-zoom;
}

.rmg-lb-video-frame {
  width: 100%;
  height: 100%;
  border: none;
  background: #000;
}

.rmg-lb-video-poster {
  position: relative;
  width: 100%;
  height: 100%;
  cursor: pointer;
}

.rmg-lb-video-poster img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #000;
}

.rmg-play-big {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 88px;
  height: 88px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: #111;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--rmg-shadow-lg);
  pointer-events: none;
}

.rmg-play-big svg {
  width: 36px;
  height: 36px;
}

.rmg-lb-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  border-radius: 999px;
  border: none;
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 3;
}

.rmg-lb-arrow svg {
  width: 26px;
  height: 26px;
}

.rmg-lb-arrow:hover {
  background: rgba(0, 0, 0, 0.85);
}

.rmg-lb-arrow.rmg-lb-prev {
  left: 1rem;
}

.rmg-lb-arrow.rmg-lb-next {
  right: 1rem;
}

.rmg-lb-arrow:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

.rmg-lb-caption {
  position: absolute;
  bottom: 1rem;
  left: 50%;
  transform: translateX(-50%);
  max-width: 70%;
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.85);
  background: rgba(0, 0, 0, 0.55);
  padding: 0.4rem 0.75rem;
  border-radius: var(--rmg-radius);
  text-align: center;
}

.rmg-lb-caption[hidden] {
  display: none;
}

.rmg-lb-counter {
  position: absolute;
  bottom: 1rem;
  right: 1rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
  background: rgba(0, 0, 0, 0.55);
  padding: 0.4rem 0.75rem;
  border-radius: var(--rmg-radius);
}

.rmg-lb-mute {
  position: absolute;
  bottom: 1rem;
  left: 1rem;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  border: none;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

.rmg-lb-mute svg {
  width: 20px;
  height: 20px;
}

.rmg-lb-mute[hidden] {
  display: none;
}

.rmg-lb-thumbs {
  background: rgba(0, 0, 0, 0.92);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding: 0.5rem 1rem;
  display: flex;
  gap: 0.4rem;
  overflow-x: auto;
  overflow-y: hidden;
}

.rmg-lb-thumbs::-webkit-scrollbar {
  height: 6px;
}

.rmg-lb-thumbs::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.2);
  border-radius: 4px;
}

.rmg-lb-thumb {
  flex: 0 0 80px;
  height: 56px;
  border-radius: 4px;
  overflow: hidden;
  cursor: pointer;
  border: 2px solid transparent;
  background: #222;
  position: relative;
}

.rmg-lb-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.rmg-lb-thumb.active {
  border-color: #fff;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.6);
}

.rmg-lb-thumb.video::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.25);
}

.rmg-lb-thumb:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

/* Reviews sidebar inside lightbox (desktop only — mobile uses a drawer) */
.rmg-lb-reviews-side {
  background: rgba(20, 20, 20, 0.96);
  border-left: 1px solid rgba(255, 255, 255, 0.08);
  overflow-y: auto;
  padding: 1rem;
  color: #fff;
}

.rmg-lb-reviews-side .rmg-reviews-panel {
  background: transparent;
  border: none;
  padding: 0;
  color: #fff;
}

/* .rmg-count in the lightbox sidebar inherits color: #fff from .rmg-lb-reviews-side .rmg-reviews-panel */
.rmg-lb-reviews-side .rmg-review {
  border-bottom-color: rgba(255, 255, 255, 0.08);
}

.rmg-lb-reviews-side .rmg-review-quote {
  color: rgba(255, 255, 255, 0.92);
}

.rmg-lb-reviews-side .rmg-review-meta {
  color: rgba(255, 255, 255, 0.6);
}

/* Reviews drawer on mobile (hidden by default; revealed via @media below) */
.rmg-lb-reviews-drawer {
  display: none;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: #fff;
  border-radius: 16px 16px 0 0;
  box-shadow: 0 -6px 24px rgba(0, 0, 0, 0.18);
  color: #111;
  z-index: 5;
  transition: max-height 280ms cubic-bezier(0.4, 0, 0.2, 1);
  max-height: 52px;
  overflow: hidden;
}

.rmg-lb-reviews-drawer.open {
  max-height: 65%;
}

.rmg-lb-reviews-drawer-toggle {
  width: 100%;
  background: transparent;
  border: none;
  color: #111;
  padding: 0 1.25rem;
  height: 52px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  font-weight: 700;
  font-size: 1rem;
}

.rmg-lb-reviews-drawer-toggle svg {
  width: 1.1em;
  height: 1.1em;
  transition: transform 220ms;
  color: #555;
}

.rmg-lb-reviews-drawer.open .rmg-lb-reviews-drawer-toggle svg {
  transform: rotate(180deg);
}

.rmg-lb-reviews-drawer-content {
  padding: 0 1rem 1.5rem;
  max-height: calc(65vh - 52px);
  overflow-y: auto;
}

/* Light-theme reviews panel inside the drawer */
.rmg-lb-reviews-drawer .rmg-reviews-panel {
  background: transparent;
  border: none;
  padding: 0;
  color: #111;
}

/* .rmg-count in the drawer inherits color: #111 from .rmg-lb-reviews-drawer .rmg-reviews-panel */
.rmg-lb-reviews-drawer .rmg-review {
  border-bottom-color: #e5e7eb;
}

.rmg-lb-reviews-drawer .rmg-review-rating {
  color: var(--rmg-color-stars);
}

.rmg-lb-reviews-drawer .rmg-review-quote {
  color: #111;
}

.rmg-lb-reviews-drawer .rmg-review-meta {
  color: #6b7280;
}

.rmg-lightbox[data-no-reviews=true] .rmg-lb-reviews-drawer {
  display: none !important;
}

/* =====================================================================
 * Mobile overrides (< 800px)
 *
 * Same selectors as the desktop rules above (no extra qualifiers) so
 * specificity stays equal — see the note at the top of the file.
 * ===================================================================== */
@media (max-width: 800px) {
  .rmg {
    --rmg-mosaic-height: 280px;
    --rmg-inset-height: 240px;
    --rmg-carousel-height: 280px;
  }
  /* Stage wrap always single column on mobile; right rail and overlay CTA hidden */
  .rmg-stage-wrap {
    grid-template-columns: 1fr !important;
  }
  .rmg-right-rail {
    display: none !important;
  }
  .rmg-cta-card.rmg-cta-overlay {
    display: none;
  }
  /* Hero Mosaic → single hero tile on mobile */
  .rmg-layout-mosaic {
    grid-template-columns: 1fr;
    grid-template-rows: 1fr;
    height: var(--rmg-mosaic-height);
  }
  .rmg-layout-mosaic .rmg-tile.large {
    grid-column: 1/2;
    grid-row: 1/2;
  }
  .rmg-layout-mosaic .rmg-tile:not(.large) {
    display: none;
  }
  .rmg-mosaic-arrow {
    display: flex;
  }
  /* Side Strip on mobile: 64px strip, smaller thumbs, smaller hero arrows */
  .rmg-layout-strip {
    grid-template-columns: 64px 1fr;
  }
  .rmg-strip-thumb {
    flex-basis: 56px;
    height: 56px;
  }
  .rmg-hero-arrow {
    width: 36px;
    height: 36px;
  }
  .rmg-hero-arrow svg {
    width: 20px;
    height: 20px;
  }
  /* Inset → 2x2 on mobile */
  .rmg-layout-inset {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, 1fr);
  }
  .rmg-layout-inset .rmg-tile:nth-child(n+5) {
    display: none;
  }
  /* ===== Mobile lightbox =====
   * Spec §6 mobile layout: shell uses flex column centered so the header
   * + image group together as a unit. Close X is yanked out of the header
   * flow and pinned to the shell's top-right corner. */
  .rmg-lightbox {
    width: 100vw;
    height: 100vh;
    height: 100dvh; /* iOS Safari: don't include browser chrome in height */
  }
  /* Mobile lightbox: header pinned to top, image fills remaining height,
   * reviews drawer slides up from bottom without covering the header. */
  .rmg-lb-shell {
    display: flex;
    flex-direction: column;
    justify-content: flex-start; /* header stays at top, not centered */
    align-items: stretch;
    position: relative;
  }
  .rmg-lb-header {
    position: static;
    flex-shrink: 0; /* never shrink — always visible at top */
    padding: 0.75rem 1rem;
  }
  .rmg-lb-name {
    font-size: 0.95rem;
  }
  .rmg-lb-center {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    width: 100%;
    flex-direction: column;
  }
  .rmg-lb-cta {
    display: block;
    width: auto;
    text-align: center;
    box-sizing: border-box;
    font-size: 0.85rem;
    padding: 0.65rem 1.25rem;
  }
  .rmg-lb-close {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    z-index: 10;
    width: 40px;
    height: 40px;
    /* Ensure close is always above the header content */
    background: rgba(0, 0, 0, 0.45);
  }
  .rmg-lb-body {
    display: flex; /* override desktop grid so children can flex-fill */
    flex-direction: column;
    flex: 1 1 0; /* fills all remaining height below header */
    min-height: 0;
    max-height: none;
  }
  /* Stage must fill the full body height so the image isn't stranded in the
   * middle of a black void. Without this the stage sizes to content only. */
  .rmg-lb-stage {
    flex: 1 1 0;
    min-height: 0;
  }
  .rmg-lb-reviews-side {
    display: none;
  }
  .rmg-lb-thumbs {
    display: none;
  }
  .rmg-lb-caption {
    display: none;
  }
  /* Lift the counter above the collapsed reviews drawer (52px tall) so it
   * isn't hidden behind it. Only needed when the drawer is visible. */
  .rmg-lightbox:not([data-no-reviews=true]) .rmg-lb-counter {
    bottom: calc(52px + 0.75rem);
  }
  .rmg-lb-arrow {
    width: 36px;
    height: 36px;
  }
  .rmg-lb-arrow svg {
    width: 20px;
    height: 20px;
  }
  /* Cancel the desktop header padding-right that shifts centering over the
   * image column — there's no reviews sidebar on mobile, so no offset needed. */
  .rmg-lightbox:not([data-no-reviews=true]) .rmg-lb-header {
    padding: 1rem 3rem;
  }
  /* Grid view: force 2 columns on narrow screens */
  .rmg-lb-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  /* Reviews drawer reveals on mobile when reviews enabled */
  .rmg-lightbox:not([data-no-reviews=true]) .rmg-lb-reviews-drawer {
    display: block;
  }
}
/* =====================================================================
 * Reduced-motion: kill scale-on-hover and dampen transitions
 * ===================================================================== */
@media (prefers-reduced-motion: reduce) {
  .rmg-tile:hover img {
    transform: none;
  }
  .rmg-carousel-track,
  .rmg-lb-reviews-drawer {
    transition: none !important;
  }
  .rmg-tile img {
    transition: none !important;
  }
}
/* =====================================================================
 * Aspect-ratio reservations for tiles inside the gallery — prevents CLS
 * before images load. (Mosaic + Strip + Inset use absolute heights via
 * grid; expansion rows set their own. Carousel tile heights are 100% of
 * track.) Spec §8.
 * ===================================================================== */
.rmg-layout-mosaic .rmg-tile {
  aspect-ratio: auto;
}

.rmg-layout-inset .rmg-tile {
  aspect-ratio: auto;
}

.widget-3fab8e .marquee-bar {
  background-color: #f5f0e8;
  border-top: 1px solid #d4b896;
  border-bottom: 1px solid #d4b896;
  padding-top: 22px;
  padding-bottom: 22px;
  overflow: hidden;
  width: 100%;
  box-sizing: border-box;
}

.widget-3fab8e .marquee-track {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  width: 100%;
  overflow: hidden;
}

.widget-3fab8e .marquee-track:hover .marquee-content {
  animation-play-state: paused;
}

.widget-3fab8e .marquee-content {
  display: flex;
  flex-direction: row;
  align-items: center;
  flex-shrink: 0;
  white-space: nowrap;
  animation: widget-marquee-left 20s linear infinite;
  will-change: transform;
}

.widget-3fab8e .marquee-reverse .marquee-content {
  animation-name: widget-marquee-right;
}

.widget-3fab8e .marquee-item {
  font-family: inherit;
  font-size: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #1e1a16;
  padding: 0 1.5em;
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  flex-shrink: 0;
}

.widget-3fab8e .marquee-item-photo {
  display: inline-block;
  height: 36px;
  width: auto;
  object-fit: cover;
  border-radius: 4px;
  flex-shrink: 0;
  vertical-align: middle;
}

.widget-3fab8e .marquee-item-photo + .marquee-item-photo {
  margin-left: 6px;
}

.widget-3fab8e .marquee-item-text {
  display: inline-block;
  vertical-align: middle;
}

.widget-3fab8e .marquee-separator {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #b8912a;
  line-height: 1;
}

.widget-3fab8e .marquee-separator svg {
  display: block;
  width: 20px;
  height: 20px;
  fill: currentColor;
}

@keyframes widget-marquee-left {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-100%);
  }
}
@keyframes widget-marquee-right {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .widget-3fab8e .marquee-content {
    animation: none !important;
  }
}
@media (max-width: 767px) {
  .widget-3fab8e .marquee-item {
    font-size: 0.875rem;
    padding: 0 1em;
  }
  .widget-3fab8e .marquee-separator svg {
    width: 16px;
    height: 16px;
  }
}

.rm-primary-btn {
  display: block;
  width: 100%;
  height: 100%;
  text-decoration: none;
}

.rm-product-button-widget {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-width: 120px;
  cursor: pointer;
  box-sizing: border-box;
  background-color: var(--primary_button-background, var(--color_button, inherit));
  border-color: var(--primary_button-border-color, transparent);
  border-width: var(--primary_button-border-width, 0px);
  border-style: var(--primary_button-border-style, solid);
  border-radius: var(--primary_button-border-radius, 0px);
}

.rm-btn-text {
  display: block;
  text-transform: var(--rm-text-transform, uppercase);
  font-family: var(--primary_button-font-family, var(--font_1, inherit));
  font-size: var(--primary_button-font-size, inherit);
  font-weight: var(--primary_button-font-weight, inherit);
  font-style: var(--primary_button-font-style, inherit);
  color: var(--primary_button-color, var(--color_button_text, inherit));
  letter-spacing: var(--primary_button-letter-spacing, inherit);
}

.widget-09b069 {
  .testimonial-widget {
    width: 100%;
  }

  /* ── Section wrapper ── */
  .testimonial-section {
    padding: 80px 28px 50px 28px;
    position: relative;
    overflow: visible;
    box-sizing: border-box;
  }

  /* ── Shared card styles ── */
  .testimonial-card {
    background: #ffffff;
    border-radius: 18px;
    --card-shadow-color: rgba(0,0,0,0.12);
    box-shadow: 0 10px 40px var(--card-shadow-color);
    box-sizing: border-box;
    position: relative;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
  }

  .testimonial-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 52px var(--card-shadow-color);
  }

  /* Avatar floating on top of card */
  .avatar-wrapper {
    position: absolute;
    top: -50px;
    left: 50%;
    transform: translateX(-50%);
    width: 100px;
    height: 100px;
    border-radius: 50%;
    overflow: hidden;
    background: #e0e0e0;
    border: 4px solid #ffffff;
    box-shadow: 0 4px 16px rgba(0,0,0,0.15);
    z-index: 2;
    flex-shrink: 0;
  }

  .avatar-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 50%;
  }

  .card-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 58px 24px 28px 24px;
    box-sizing: border-box;
  }

  .reviewer-info {
    margin-bottom: 10px;
  }

  .reviewer-name {
    font-size: 17px;
    font-weight: 700;
    color: #1a1a2e;
    line-height: 1.3;
    margin-bottom: 3px;
  }

  .reviewer-role {
    font-size: 13px;
    color: #888;
    font-weight: 400;
    line-height: 1.4;
  }

  .stars-row {
    margin-bottom: 14px;
  }

  .stars {
    font-size: 24px;
    color: #f5a623;
    letter-spacing: 2px;
    display: inline-block;
  }

  .review-text {
    font-size: 14px;
    color: #444;
    line-height: 1.75;
    text-align: center;
  }

  /* ════════════════════════════
     CAROUSEL layout
  ════════════════════════════ */

  /*
   * .carousel-outer:
   *   - Centred block that the "Track Width" max-width slider targets.
   *   - margin: 0 auto centres it when max-width < 100%.
   *   - overflow: visible so floating avatars aren't clipped.
   */
  .carousel-outer {
    width: 100%;
    margin: 0 auto;
    overflow: visible;
    box-sizing: border-box;
  }

  /*
   * .carousel-wrapper:
   *   - Flex row: [prev-btn] [track-container] [next-btn]
   *   - align-items: center keeps buttons vertically centred on the cards.
   */
  .carousel-wrapper {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    box-sizing: border-box;
  }

  .nav-btn {
    background: transparent;
    color: #ffffff;
    border: none;
    width: 36px;
    min-width: 36px;
    font-size: 52px;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: opacity 0.2s, transform 0.15s;
    z-index: 10;
    padding: 0;
    opacity: 0.85;
    user-select: none;
  }

  .nav-btn:hover {
    opacity: 1;
    transform: scale(1.12);
  }

  /*
   * .carousel-track-container:
   *   - Takes all remaining width (flex: 1).
   *   - overflow: hidden clips the sliding track.
   *   - padding-top + negative margin-top create space for floating avatars
   *     without increasing the layout height.
   *   - Side padding prevents card box-shadows from being clipped.
   */
  .carousel-track-container {
    flex: 1 1 0%;
    min-width: 0;
    overflow: hidden;
    box-sizing: border-box;
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    padding-top: 60px;
    margin-top: -60px;
    padding-left: 16px;
    padding-right: 16px;
  }

  .carousel-track {
    display: flex;
    transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform;
    align-items: flex-start;
    gap: 20px;
  }

  .carousel-track .testimonial-card {
    flex-shrink: 0;
    padding-top: 56px;
  }

  .carousel-track .card-inner {
    padding-top: 14px;
  }

  .testimonial-card.is-center {
    box-shadow: 0 18px 52px var(--card-shadow-color);
  }

  .dots-container {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin-top: 30px;
  }

  .dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: rgba(255,255,255,0.35);
    cursor: pointer;
    transition: background-color 0.25s, transform 0.2s;
    border: none;
    padding: 0;
    flex-shrink: 0;
  }

  .dot.active {
    background-color: #ffffff;
    transform: scale(1.3);
  }

  /* ════════════════════════════
     GRID layout
  ════════════════════════════ */
  .grid-wrapper {
    display: grid;
    gap: 72px 20px;
    max-width: 1200px;
    margin: 0 auto;
    grid-template-columns: repeat(3, 1fr);
    padding-top: 60px;
    align-items: stretch;
  }

  .grid-wrapper[data-cols="1"] { grid-template-columns: repeat(1, 1fr); }
  .grid-wrapper[data-cols="2"] { grid-template-columns: repeat(2, 1fr); }
  .grid-wrapper[data-cols="3"] { grid-template-columns: repeat(3, 1fr); }
  .grid-wrapper[data-cols="4"] { grid-template-columns: repeat(4, 1fr); }

  .grid-wrapper .testimonial-card { padding-top: 56px; height: 100%; }
  .grid-wrapper .card-inner { padding-top: 14px; }

  /* ════════════════════════════
     LIST layout
  ════════════════════════════ */
  .list-wrapper {
    display: flex;
    flex-direction: column;
    gap: 20px;
    max-width: 800px;
    margin: 0 auto;
  }

  .list-card {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    padding: 24px 28px;
    border-radius: 16px;
    position: static;
  }

  .list-avatar-wrapper {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    overflow: hidden;
    background: #e0e0e0;
    border: 3px solid #f0f0f0;
    box-shadow: 0 2px 10px rgba(0,0,0,0.10);
    flex-shrink: 0;
  }

  .list-card-body {
    flex: 1;
    text-align: left;
  }

  .list-header { margin-bottom: 6px; }
  .list-card .reviewer-name { font-size: 16px; }
  .list-card .stars-row { margin-bottom: 8px; }
  .list-card .review-text { text-align: left; }

  /* ════════════════════════════
     MASONRY layout
  ════════════════════════════ */
  .masonry-wrapper {
    column-gap: 20px;
    max-width: 1200px;
    margin: 0 auto;
    column-count: 3;
    padding-top: 60px;
  }

  .masonry-wrapper[data-cols="1"] { column-count: 1; }
  .masonry-wrapper[data-cols="2"] { column-count: 2; }
  .masonry-wrapper[data-cols="3"] { column-count: 3; }
  .masonry-wrapper[data-cols="4"] { column-count: 4; }

  .masonry-card {
    break-inside: avoid;
    margin-bottom: 72px;
    display: inline-block;
    width: 100%;
    padding-top: 56px;
  }

  .masonry-card .card-inner { padding-top: 14px; }

  /* ════════════════════════════
     Responsive
  ════════════════════════════ */
  @media (max-width: 767px) {
    .testimonial-section {
      padding: 80px 0 40px 0 !important;
    }

    /* Hide nav buttons on mobile — swipe only */
    .nav-btn { display: none !important; }
    .carousel-track { gap: 0 !important; }
    .carousel-outer { max-width: 100% !important; }
    .carousel-track-container {
      padding-left: 12px;
      padding-right: 12px;
    }

    /* Grid → single column */
    .grid-wrapper,
    .grid-wrapper[data-cols="2"],
    .grid-wrapper[data-cols="3"],
    .grid-wrapper[data-cols="4"] {
      grid-template-columns: 1fr;
    }

    /* Masonry → single column */
    .masonry-wrapper,
    .masonry-wrapper[data-cols="2"],
    .masonry-wrapper[data-cols="3"],
    .masonry-wrapper[data-cols="4"] {
      column-count: 1;
    }

    .list-card { padding: 20px 16px; }
    .list-avatar-wrapper { width: 64px; height: 64px; }

    .avatar-wrapper { width: 90px; height: 90px; top: -46px; }
    .testimonial-card { padding-top: 50px; }
    .card-inner { padding: 12px 20px 24px 20px; }
    .reviewer-name { font-size: 16px; }
    .reviewer-role { font-size: 13px; }
    .review-text { font-size: 14px; line-height: 1.7; }
    .stars { font-size: 22px; }
  }

  @media (min-width: 768px) and (max-width: 1024px) {
    .grid-wrapper[data-cols="3"],
    .grid-wrapper[data-cols="4"] {
      grid-template-columns: repeat(2, 1fr);
    }

    .masonry-wrapper[data-cols="3"],
    .masonry-wrapper[data-cols="4"] {
      column-count: 2;
    }
  }
}


@charset "UTF-8";
.widget-c1f4ed {
  /* ═══════════════════════════════════════
     VERTICAL LAYOUT (default)
  ═══════════════════════════════════════ */
  /* ═══════════════════════════════════════
     HORIZONTAL LAYOUT
  ═══════════════════════════════════════ */
  /* ═══════════════════════════════════════
     TRAVEL TIMELINE LAYOUT
  ═══════════════════════════════════════ */
  /* Central vertical line */
  /* Each stop: image | center col | text */
  /* ── ODD: image left, text right ── */
  /* ── EVEN: text left, image right ── */
  /* Center column: dot + label side-by-side */
  /* Dot pinned on the vertical line */
  /* Label always on the same side as the content/text column */
  /* Odd: content is on the RIGHT → label goes to the RIGHT of dot */
  /* Even: content is on the LEFT → label goes to the LEFT of dot */
  /* Image fills its column — width and height controlled independently */
  /* ═══════════════════════════════════════
     SHARED CARD STYLES
  ═══════════════════════════════════════ */
  /* ═══════════════════════════════════════
     RESPONSIVE
  ═══════════════════════════════════════ */
}
.widget-c1f4ed .process-section {
  padding: 40px 0;
  background: #f9fafb;
  font-family: system-ui, sans-serif;
}
.widget-c1f4ed .layout-vertical .timeline {
  position: relative;
  max-width: 1100px;
  margin: auto;
}
.widget-c1f4ed .layout-vertical .timeline:before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  width: 2px;
  height: 100%;
  background: #f9ad21;
  transform: translateX(-50%);
}
.widget-c1f4ed .layout-vertical .timeline-item {
  display: flex;
  align-items: center;
  margin-bottom: 40px;
  position: relative;
}
.widget-c1f4ed .layout-vertical .timeline-item:nth-child(odd) {
  justify-content: flex-start;
}
.widget-c1f4ed .layout-vertical .timeline-item:nth-child(even) {
  justify-content: flex-end;
}
.widget-c1f4ed .layout-vertical .timeline-content {
  max-width: 42%;
  width: 42%;
}
.widget-c1f4ed .layout-vertical .step {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
}
.widget-c1f4ed .layout-horizontal .timeline {
  max-width: 1200px;
  margin: auto;
  position: relative;
}
.widget-c1f4ed .layout-horizontal .h-row {
  display: flex;
  align-items: flex-start;
  position: relative;
  gap: 0px;
}
.widget-c1f4ed .layout-horizontal .h-row:before {
  content: "";
  position: absolute;
  top: 37px;
  left: 0;
  right: 0;
  height: 2px;
  background: #f9ad21;
  z-index: 0;
}
.widget-c1f4ed .layout-horizontal .h-col {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  position: relative;
  z-index: 1;
  padding-left: 12px;
  padding-right: 12px;
}
.widget-c1f4ed .layout-horizontal .h-icon-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
}
.widget-c1f4ed .layout-horizontal .icon-box {
  width: 74px;
  height: 74px;
  border-radius: 50%;
  box-shadow: 0 4px 16px rgba(249, 173, 33, 0.35);
}
.widget-c1f4ed .layout-horizontal .timeline-content {
  background: transparent;
  box-shadow: none;
  padding: 0 12px;
  text-align: center;
  border-radius: 0;
}
.widget-c1f4ed .layout-horizontal .timeline-content:hover {
  background: transparent;
  box-shadow: none;
  transform: none;
}
.widget-c1f4ed .layout-travel .timeline {
  position: relative;
  max-width: 100%;
  margin: 0;
  width: 100%;
}
.widget-c1f4ed .layout-travel .timeline:before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: 2px;
  background: #12b3c4;
  transform: translateX(-50%);
  z-index: 0;
}
.widget-c1f4ed .layout-travel .tv-item {
  display: grid;
  grid-template-columns: 1fr 80px 1fr;
  align-items: stretch;
  margin-bottom: 24px;
  position: relative;
}
.widget-c1f4ed .layout-travel .tv-item:nth-child(odd) .tv-image-col {
  grid-column: 1;
  grid-row: 1;
  justify-self: stretch;
  align-self: stretch;
  overflow: hidden;
  border-radius: 14px;
  display: flex;
  align-items: center;
}
.widget-c1f4ed .layout-travel .tv-item:nth-child(odd) .tv-center {
  grid-column: 2;
  grid-row: 1;
}
.widget-c1f4ed .layout-travel .tv-item:nth-child(odd) .tv-content-col {
  grid-column: 3;
  grid-row: 1;
  padding-left: var(--travel-img-text-gap, 40px);
  padding-right: 20px;
  text-align: left;
  display: flex;
  align-items: center;
}
.widget-c1f4ed .layout-travel .tv-item:nth-child(even) .tv-image-col {
  grid-column: 3;
  grid-row: 1;
  justify-self: stretch;
  align-self: stretch;
  overflow: hidden;
  border-radius: 14px;
  display: flex;
  align-items: center;
}
.widget-c1f4ed .layout-travel .tv-item:nth-child(even) .tv-center {
  grid-column: 2;
  grid-row: 1;
}
.widget-c1f4ed .layout-travel .tv-item:nth-child(even) .tv-content-col {
  grid-column: 1;
  grid-row: 1;
  padding-right: var(--travel-img-text-gap, 40px);
  padding-left: 20px;
  text-align: left;
  display: flex;
  align-items: center;
}
.widget-c1f4ed .layout-travel .tv-center {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: center;
}
.widget-c1f4ed .layout-travel .tv-dot {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #12b3c4;
  border: 3px solid #fff;
  box-shadow: 0 0 0 2px #12b3c4;
  flex-shrink: 0;
  position: relative;
  z-index: 3;
}
.widget-c1f4ed .layout-travel .tv-label {
  position: absolute;
  font-size: 13px;
  font-weight: 700;
  color: #12b3c4;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  line-height: 1;
  white-space: nowrap;
}
.widget-c1f4ed .layout-travel .tv-item:nth-child(odd) .tv-label {
  left: calc(50% + 12px);
  right: auto;
}
.widget-c1f4ed .layout-travel .tv-item:nth-child(even) .tv-label {
  right: calc(50% + 12px);
  left: auto;
}
.widget-c1f4ed .layout-travel .tv-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  width: 100%;
}
.widget-c1f4ed .layout-travel .tv-image {
  width: 1000px;
  height: 700px;
  object-fit: cover;
  border-radius: 14px;
  display: block;
  flex-shrink: 0;
}
.widget-c1f4ed .layout-travel .tv-title {
  margin: 0 0 10px;
  font-size: 32px;
  font-weight: 800;
  color: #1a2233;
  line-height: 1.15;
}
.widget-c1f4ed .layout-travel .tv-difficulty {
  display: inline-block;
  margin-bottom: 16px;
  padding: 4px 14px;
  background: #e0f7fa;
  color: #12b3c4;
  font-size: 13px;
  font-weight: 700;
  border-radius: 20px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.widget-c1f4ed .eyebrow {
  display: block;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #f9ad21;
  margin-bottom: 6px;
}
.widget-c1f4ed .timeline-content {
  background: white;
  padding: 35px;
  border-radius: 18px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
  transition: background 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
  cursor: default;
}
.widget-c1f4ed .timeline-content:hover {
  background: #fff8e7;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.13);
  transform: translateY(-3px);
}
.widget-c1f4ed .timeline-content h3 {
  margin: 0 0 8px;
  font-size: 18px;
  font-weight: 700;
}
.widget-c1f4ed .timeline-content p {
  color: #6b7280;
  line-height: 1.6;
  margin: 0;
  font-size: 15px;
  white-space: pre-line;
}
.widget-c1f4ed .layout-travel .tv-desc {
  margin: 0 0 24px;
  font-size: 16px;
  color: #1a2233;
  line-height: 1.75;
  white-space: pre-line;
}
.widget-c1f4ed .layout-travel .tv-btn {
  display: inline-block;
  padding: 12px 28px;
  background: #12b3c4;
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  border-radius: 8px;
  text-decoration: none;
  cursor: pointer;
  transition: opacity 0.2s ease, transform 0.2s ease;
  border: none;
  line-height: 1;
}
.widget-c1f4ed .layout-travel .tv-btn:hover {
  opacity: 0.85;
  transform: translateY(-2px);
}
.widget-c1f4ed .icon-box {
  width: 46px;
  height: 46px;
  background: #f9ad21;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  overflow: hidden;
  flex-shrink: 0;
}
.widget-c1f4ed .icon-box svg {
  width: 60%;
  height: 60%;
  fill: #fff;
}
.widget-c1f4ed .step {
  background: #f9ad21;
  color: #000;
  font-weight: 700;
  padding: 10px 14px;
  border-radius: 10px;
  font-size: 15px;
  line-height: 1;
  white-space: nowrap;
}
@media (max-width: 900px) {
  .widget-c1f4ed {
    /* Horizontal → stack vertically on mobile */
    /* Travel → stack on mobile */
  }
  .widget-c1f4ed .layout-vertical .timeline:before {
    left: 20px;
  }
  .widget-c1f4ed .layout-vertical .timeline-item,
  .widget-c1f4ed .layout-vertical .timeline-item:nth-child(odd),
  .widget-c1f4ed .layout-vertical .timeline-item:nth-child(even) {
    justify-content: flex-start;
    padding-left: 55px;
  }
  .widget-c1f4ed .layout-vertical .timeline-content {
    max-width: 100%;
    width: 100%;
  }
  .widget-c1f4ed .layout-vertical .step {
    left: 20px;
    transform: none;
  }
  .widget-c1f4ed .layout-horizontal .h-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 32px;
  }
  .widget-c1f4ed .layout-horizontal .h-row:before {
    top: 0;
    left: 37px;
    right: auto;
    width: 2px;
    height: 100%;
  }
  .widget-c1f4ed .layout-horizontal .h-col {
    flex-direction: row;
    align-items: center;
    gap: 20px;
    width: 100%;
  }
  .widget-c1f4ed .layout-horizontal .timeline-content {
    text-align: left;
    padding: 0;
  }
  .widget-c1f4ed .layout-travel .timeline:before {
    left: 20px;
    transform: none;
  }
  .widget-c1f4ed .layout-travel .tv-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding-left: 52px;
    margin-bottom: 36px;
    position: relative;
  }
  .widget-c1f4ed .layout-travel .tv-item:nth-child(odd) .tv-center,
  .widget-c1f4ed .layout-travel .tv-item:nth-child(even) .tv-center {
    position: absolute;
    left: 20px;
    top: 8px;
    transform: translateX(-50%);
    flex-direction: column;
    gap: 4px;
  }
  .widget-c1f4ed .layout-travel .tv-item:nth-child(odd) .tv-image-col,
  .widget-c1f4ed .layout-travel .tv-item:nth-child(even) .tv-image-col {
    order: 1;
    width: 100%;
    grid-column: unset;
    border-radius: 14px;
  }
  .widget-c1f4ed .layout-travel .tv-item:nth-child(odd) .tv-content-col,
  .widget-c1f4ed .layout-travel .tv-item:nth-child(even) .tv-content-col {
    order: 2;
    padding: 16px 0 12px;
    text-align: left;
    grid-column: unset;
  }
  .widget-c1f4ed .layout-travel .tv-image {
    width: 100% !important;
    height: 240px !important;
    flex-shrink: unset;
  }
}
@media (max-width: 767px) {
  .widget-c1f4ed .process-section {
    padding: 30px 12px;
  }
  .widget-c1f4ed .layout-vertical .timeline-content {
    padding: 24px;
  }
  .widget-c1f4ed .layout-vertical .timeline-content h3 {
    font-size: 18px;
  }
  .widget-c1f4ed .layout-vertical .timeline-item {
    margin-bottom: 50px;
  }
}
