/*
 * Isolated third-party sidebar widgets — layouts 3 and 4.
 * Provider code is rendered inside srcdoc iframes so CMS theme rules cannot
 * change its dimensions, typography, lists, images or internal spacing.
 */
.cms-sidebar-widget-editor-target{
    box-sizing:border-box;
    display:block;
    max-width:100%;
    overflow:visible;
    width:100%;
}

.cms-sidebar-widget-zone{
    box-sizing:border-box;
    display:block;
    max-width:100%;
    width:100%;
}

.cms-sidebar-widget-zone-title{
    box-sizing:border-box;
    display:block;
    margin:0 0 clamp(10px,1.8vw,18px);
    padding:0;
    text-align:center;
}

#widget_edit .cms-sidebar-widgets,
#widget_edit .cms-sidebar-widget{
    margin:0 !important;
}

.cms-sidebar-widgets{
    align-items:flex-start;
    box-sizing:border-box;
    display:flex;
    flex-wrap:wrap;
    gap:clamp(18px,3vw,38px);
    justify-content:center;
    max-width:100%;
    min-width:0;
    overflow:visible;
    padding:0;
    width:100%;
}

.cms-sidebar-widget{
    align-items:flex-start;
    box-sizing:border-box;
    display:flex;
    flex:0 0 auto;
    justify-content:center;
    max-width:100%;
    min-width:0;
    overflow:visible;
    padding:0;
}

.cms-sidebar-widget--native{
    align-items:stretch;
    flex:1 1 100%;
    justify-content:center;
    width:100%;
}

.cms-sidebar-widget-native{
    box-sizing:border-box;
    color:inherit;
    display:block;
    font-family:inherit;
    font-size:inherit;
    line-height:inherit;
    margin-left:auto;
    margin-right:auto;
    max-width:950px;
    min-width:0;
    text-align:center;
    width:100%;
}

/* Native editorial widgets must follow the site's text font. Icon fonts stay untouched. */
.cms-sidebar-widget-native p,
.cms-sidebar-widget-native a,
.cms-sidebar-widget-native span,
.cms-sidebar-widget-native strong,
.cms-sidebar-widget-native b,
.cms-sidebar-widget-native em,
.cms-sidebar-widget-native small,
.cms-sidebar-widget-native li,
.cms-sidebar-widget-native label,
.cms-sidebar-widget-native button,
.cms-sidebar-widget-native input,
.cms-sidebar-widget-native textarea,
.cms-sidebar-widget-native select{
    font-family:inherit;
}

.cms-sidebar-widget-frame{
    background:transparent;
    border:0;
    box-shadow:none;
    display:block;
    flex:none;
    margin:0;
    max-width:100%;
    min-height:1px;
    overflow:hidden;
    padding:0;
}

.cms-footer-widget-content,
.cms-footer-widget-content #widget_edit,
.cms-contact-widget-content{
    overflow:visible;
}

@media screen and (max-width:640px){
    .cms-sidebar-widgets{
        align-items:center;
        flex-direction:column;
        flex-wrap:nowrap;
        gap:18px;
    }

    .cms-sidebar-widget{
        width:100%;
    }
}

/* Google Business Profile widgets and full reviews block. */
.cms-sidebar-widget--google{
    align-self:stretch;
    flex:0 1 320px;
    min-width:240px;
}

.cms-google-review-summary{
    background:#fff;
    border:1px solid rgba(32,33,36,.18);
    border-radius:10px;
    box-shadow:0 8px 24px rgba(32,33,36,.10);
    box-sizing:border-box;
    color:#202124;
    display:flex;
    flex-direction:column;
    font-family:Arial,Helvetica,sans-serif;
    justify-content:center;
    min-height:210px;
    padding:22px;
    text-align:left;
    width:100%;
}

.cms-google-review-summary__brand,
.cms-google-reviews-block__brand{
    align-items:center;
    display:flex;
    flex-wrap:wrap;
    font-family:Arial,Helvetica,sans-serif;
    font-size:14px;
    font-weight:600;
    gap:8px;
}

.cms-google-wordmark{
    font-family:Arial,Helvetica,sans-serif !important;
    font-size:21px;
    font-weight:700;
    letter-spacing:-1.5px;
    line-height:1;
    white-space:nowrap;
}
.cms-google-wordmark span:nth-child(1),
.cms-google-wordmark span:nth-child(4){color:#4285f4;}
.cms-google-wordmark span:nth-child(2),
.cms-google-wordmark span:nth-child(6){color:#ea4335;}
.cms-google-wordmark span:nth-child(3){color:#fbbc05;}
.cms-google-wordmark span:nth-child(5){color:#34a853;}

.cms-google-review-summary__location{
    font-size:16px;
    font-weight:700;
    margin-top:14px;
}

.cms-google-review-summary__score{
    align-items:center;
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    margin-top:13px;
}

.cms-google-review-summary__score strong,
.cms-google-reviews-block__score strong{
    font-size:24px;
    line-height:1;
}

.cms-google-stars{
    display:inline-flex;
    font-family:Arial,Helvetica,sans-serif !important;
    font-size:19px;
    gap:1px;
    letter-spacing:0;
    line-height:1;
    white-space:nowrap;
}
.cms-google-stars .is-filled{color:#fbbc04;}
.cms-google-stars .is-empty{color:#d5d7da;}

.cms-google-review-summary__count{
    color:#5f6368;
    font-size:13px;
    margin-top:8px;
}

.cms-google-review-summary__link{
    align-self:flex-start;
    color:#1a73e8 !important;
    font-size:13px;
    font-weight:600;
    margin-top:15px;
    text-decoration:none;
}
.cms-google-review-summary__link:hover{text-decoration:underline;}
.cms-google-review-summary__pending{
    color:#5f6368;
    font-size:13px;
    line-height:1.45;
    margin:18px 0 0;
}
.cms-google-review-summary--pending{
    border-style:dashed;
    box-shadow:none;
}

.cms-google-reviews-block{
    /* Fallback used until JavaScript copies the colour of the preceding Home block. */
    background:rgba(0,0,0,.88);
    box-sizing:border-box;
    clear:both;
    position:relative;
    transition:background-color .2s ease;
    width:100%;
}

.cms-google-reviews-block__inner{
    box-sizing:border-box;
    padding-bottom:clamp(45px,6vw,80px);
    padding-top:clamp(45px,6vw,80px);
}

.cms-google-reviews-block__header{
    margin:0 auto clamp(24px,4vw,42px);
    max-width:900px;
    text-align:center;
}

.cms-google-reviews-block__brand{
    justify-content:center;
    margin-bottom:12px;
}

.cms-google-reviews-block__header h2{
    margin:0;
    padding:0;
    font:inherit;
}

.cms-google-reviews-block__score{
    align-items:center;
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    justify-content:center;
    margin-top:16px;
}
.cms-google-reviews-block__score > span:last-child{
    opacity:.75;
}

.cms-google-reviews-slider-shell{
    align-items:center;
    display:grid;
    gap:12px;
    grid-template-columns:42px minmax(0,1fr) 42px;
    margin:0 auto;
    max-width:1280px;
}

.cms-google-reviews-slider{
    display:flex;
    gap:clamp(16px,2vw,26px);
    overflow-x:auto;
    padding:8px 4px 18px;
    scroll-behavior:smooth;
    scroll-snap-type:x mandatory;
    scrollbar-width:thin;
}

.cms-google-review-card{
    background:#fff;
    border:1px solid rgba(32,33,36,.14);
    border-radius:12px;
    box-shadow:0 10px 28px rgba(32,33,36,.10);
    box-sizing:border-box;
    color:#202124;
    flex:0 0 calc((100% - 52px)/3);
    min-height:245px;
    padding:22px;
    scroll-snap-align:start;
    text-align:left;
}

.cms-google-review-card__author{
    align-items:center;
    display:flex;
    gap:12px;
    margin-bottom:15px;
}
.cms-google-review-card__author img,
.cms-google-review-card__avatar{
    border-radius:50%;
    flex:0 0 44px;
    height:44px;
    object-fit:cover;
    width:44px;
}
.cms-google-review-card__avatar{
    align-items:center;
    background:#e8f0fe;
    color:#1a73e8;
    display:flex;
    font-family:Arial,Helvetica,sans-serif;
    font-size:18px;
    font-weight:700;
    justify-content:center;
}
.cms-google-review-card__author div{
    min-width:0;
}
.cms-google-review-card__author strong,
.cms-google-review-card__author a{
    color:#202124 !important;
    display:block;
    font-family:Arial,Helvetica,sans-serif;
    font-size:14px;
    font-weight:700;
    overflow:hidden;
    text-decoration:none;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.cms-google-review-card__author small{
    color:#777;
    display:block;
    font-family:Arial,Helvetica,sans-serif;
    font-size:11px;
    margin-top:3px;
}
.cms-google-review-card p{
    color:#3c4043;
    display:-webkit-box;
    font-family:Arial,Helvetica,sans-serif;
    font-size:14px;
    line-height:1.55;
    margin:16px 0 0;
    overflow:hidden;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:6;
}

.cms-google-reviews-nav{
    align-items:center;
    background:rgba(255,255,255,.92);
    border:1px solid rgba(32,33,36,.15);
    border-radius:50%;
    box-shadow:0 5px 16px rgba(32,33,36,.14);
    color:#333;
    cursor:pointer;
    display:flex;
    font-family:Arial,Helvetica,sans-serif;
    font-size:30px;
    height:42px;
    justify-content:center;
    line-height:1;
    padding:0 0 4px;
    width:42px;
}
.cms-google-reviews-nav:hover{transform:translateY(-1px);}

.cms-google-reviews-block__actions{
    margin-top:25px;
    text-align:center;
}
.cms-google-reviews-block__actions a{
    border:1px solid currentColor;
    border-radius:6px;
    display:inline-block;
    font-weight:700;
    padding:11px 18px;
    text-decoration:none;
}

.cms-google-reviews-empty{
    background:rgba(255,255,255,.65);
    border:1px dashed rgba(0,0,0,.22);
    border-radius:10px;
    box-sizing:border-box;
    margin:0 auto;
    max-width:760px;
    padding:22px;
    text-align:center;
}

.cms-google-reviews-block__controls{
    bottom:20px;
    position:absolute;
    right:20px;
    z-index:9;
}
.cms-google-reviews-block__controls > div{
    padding:6px;
}

@media screen and (max-width:980px){
    .cms-google-review-card{flex-basis:calc((100% - 24px)/2);}
}

@media screen and (max-width:640px){
    .cms-sidebar-widget--google{
        flex-basis:auto;
        min-width:0;
        width:100%;
    }
    .cms-google-review-summary{
        margin-left:auto;
        margin-right:auto;
        max-width:360px;
    }
    .cms-google-reviews-slider-shell{
        grid-template-columns:1fr;
    }
    .cms-google-reviews-nav{display:none;}
    .cms-google-review-card{flex-basis:88%;}
    .cms-google-reviews-block__controls{
        bottom:10px;
        right:10px;
    }
}
