#reviews [hidden]{display:none!important}
#reviews{background:#fff;--review-ink:#17313a;--review-blue:#1d6780;--review-paper:#f5f6f7;--review-line:#e3e8ea}
#reviews .google-rating-summary{display:flex;justify-content:space-between;align-items:center;gap:24px;background:var(--review-paper);border-radius:16px;padding:24px 28px;margin:30px 0 24px}
#reviews .google-rating-summary>div:first-child{display:flex;align-items:center;gap:14px;flex-wrap:wrap;order:2}
#reviews .rating-number{font:700 30px/1 'DM Sans',sans-serif;color:var(--review-ink)}
#reviews .rating-stars-big{font-size:24px;letter-spacing:1px;background:linear-gradient(90deg,#e8a100 var(--rating-fill,100%),#d6dce0 var(--rating-fill,100%));background-clip:text;-webkit-background-clip:text;color:transparent}
#reviews .rating-count{flex-basis:100%;text-align:right;font:500 13px/1.5 'DM Sans',sans-serif;color:#52626a}
#reviews .google-logo-badge{display:flex;gap:12px;align-items:center}
#reviews .google-badge-text{font:500 12px/1.6 'DM Sans',sans-serif;color:#52626a}
#reviews .google-badge-text strong{display:block;font-size:20px;color:var(--review-ink)}
.reviews-grid.live-reviews{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;align-items:flex-start;padding:4px 2px 20px;scrollbar-width:thin;scrollbar-color:#b7cbd3 transparent;scroll-padding:2px;overscroll-behavior-x:contain;margin:0}
.live-reviews .review-column{flex:0 0 calc((100% - 32px)/3);min-width:0;scroll-snap-align:start;display:flex;flex-direction:column;gap:16px}
.live-review-card.review-card{background:#f5f6f7;border:1px solid #edf0f1;border-radius:16px;display:flex;flex-direction:column;gap:12px;padding:23px;min-width:0;box-sizing:border-box;transform:none;box-shadow:none;overflow:hidden;color:#17313a}
.live-review-card.review-card:hover{transform:none;box-shadow:none;border-color:#cbd9de}
.live-review-card::before{display:none}
.live-review-card .review-header{display:flex;flex-wrap:nowrap;gap:10px;align-items:center;margin:0}
.live-review-card .review-header>svg{flex-shrink:0}
.live-review-card .reviewer-avatar{position:relative;flex-shrink:0;width:40px;height:40px;border-radius:50%;background:#1d6780;color:white;overflow:hidden;font:700 16px 'DM Sans',sans-serif}
.live-review-card .reviewer-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.live-review-card .reviewer-details{flex:1;min-width:0;overflow-wrap:anywhere}
.live-review-card .reviewer-name{font:700 14px/1.4 'DM Sans',sans-serif;color:#17313a}
.live-review-card .review-date{font:500 12px/1.6 'DM Sans',sans-serif;color:#67747a}
.live-review-card .review-stars{color:#b87800;margin:0;line-height:1.2;letter-spacing:1px;font-size:19px}
.live-review-card .review-text{white-space:pre-wrap;overflow-wrap:anywhere;font:400 15px/1.65 'DM Sans',sans-serif;color:#263e48;margin:0}
.review-text-collapsed{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;overflow:hidden}
.review-read-more,.reviews-browse{align-self:flex-start;border:0;background:transparent;color:#1d6780;font:700 13px/1.5 'DM Sans',sans-serif;padding:2px 0;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.reviews-browse{float:left;min-height:44px;margin-bottom:14px}
.review-media{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:4px}
.review-media:has(> :only-child){grid-template-columns:1fr}
.review-photo{position:relative;display:block;padding:0;border:0;border-radius:9px;overflow:hidden;background:#e6ebed;cursor:zoom-in;min-width:0}
.review-media img{display:block;width:100%;height:180px;object-fit:cover;transition:transform .2s ease}
.review-photo:hover img{transform:scale(1.035)}
.review-video-label{position:absolute;left:6px;bottom:6px;background:#17313a;color:white;padding:3px 7px;border-radius:4px;font:600 11px 'DM Sans',sans-serif}
.review-photo-more{position:absolute;inset:0;display:grid;place-items:center;background:#17313a80;color:#fff;font:700 28px 'DM Sans',sans-serif}
.review-reply{font:400 12px/1.6 'DM Sans',sans-serif;border-top:1px solid #dbe2e5;padding-top:12px;overflow-wrap:anywhere;color:#52626a}
.review-reply summary{cursor:pointer;font-weight:600}
.review-reply p{white-space:pre-wrap;margin-top:8px}
#reviews :is(a,button,[tabindex]):focus-visible,.reviews-dialog :is(a,button,summary):focus-visible{outline:3px solid #1d6780;outline-offset:4px}
.review-controls{display:flex;justify-content:flex-end;gap:8px;margin-bottom:14px}
.review-controls button,.review-photo-arrow{width:44px;height:44px;border:1px solid #cfdbdf;border-radius:50%;background:white;color:#1d6780;font:600 20px 'DM Sans',sans-serif;cursor:pointer;transition:background .15s,color .15s}
.review-controls button:hover:not(:disabled),.review-photo-arrow:hover:not(:disabled){background:#1d6780;color:white}
.review-controls button:disabled,.review-photo-arrow:disabled{opacity:.35;cursor:default}
.review-status{font:500 13px/1.6 'DM Sans',sans-serif;text-align:left;color:#52626a;margin:0 0 16px}
.review-connection{max-width:760px;margin:28px auto 0;font-size:.78rem;line-height:1.65;color:var(--text-mid);text-align:center}
.review-connection summary{cursor:pointer;text-decoration:underline;font-weight:600}
.review-connection p{margin-top:10px}.review-connection a{text-decoration:underline}
.reviews-modal-open{overflow:hidden}
.reviews-dialog{width:min(720px,calc(100% - 32px));max-height:85dvh;border:0;border-radius:20px;padding:0;color:#17313a;background:white;box-shadow:0 24px 80px #0003;margin:auto;font-family:'DM Sans',sans-serif;overscroll-behavior:contain}
.reviews-dialog::backdrop{background:#10262f99;backdrop-filter:blur(3px)}
.reviews-dialog[open]{animation:review-enter .18s ease-out}
.reviews-dialog-top{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;background:white;border-bottom:1px solid #e3e8ea}
.reviews-dialog-top strong{font-size:18px}
.reviews-dialog-close{width:40px;height:40px;border:0;border-radius:50%;background:#f0f3f4;color:#17313a;font-size:26px;cursor:pointer}
.reviews-dialog-list{padding:0 24px 20px}
.reviews-dialog-list .review-full{background:white;border:0;border-bottom:1px solid #e3e8ea;border-radius:0;padding:24px 0;scroll-margin-top:80px}
.review-full .review-media{grid-template-columns:repeat(3,minmax(0,1fr))}
.review-full .review-media img{height:130px}
.reviews-photo-dialog{width:min(850px,calc(100% - 24px))}
.reviews-photo-content{padding:16px;text-align:center;background:#f5f6f7}
.reviews-photo-content>img{display:block;width:100%;height:55dvh;object-fit:contain}
.review-video-open{display:inline-block;margin:12px;color:#1d6780;text-decoration:underline;font-weight:700}
.reviews-photo-nav{display:flex;justify-content:center;align-items:center;gap:24px;padding:12px;font-size:13px;font-weight:600}
@keyframes review-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1000px){.live-reviews .review-column{flex-basis:calc((100% - 16px)/2)}}
@media(max-width:600px){#reviews .google-rating-summary{flex-direction:row;align-items:center;padding:18px;gap:12px}#reviews .google-badge-text{font-size:0}#reviews .google-badge-text strong{font-size:15px}#reviews .google-logo-badge{gap:8px}#reviews .google-logo-badge svg{width:22px;height:22px}#reviews .google-rating-summary>div:first-child{gap:7px;justify-content:flex-end}#reviews .rating-number{font-size:24px}#reviews .rating-stars-big{font-size:16px}#reviews .rating-count{font-size:11px}.live-reviews .review-column{flex-basis:92%}.live-review-card.review-card{padding:19px}.review-media img{height:180px}.reviews-dialog-list{padding:0 18px 16px}.reviews-dialog-top{padding:12px 18px}.review-full .review-media{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.review-controls button,.review-photo-arrow,.review-media img{transition:none}.reviews-dialog[open]{animation:none}.live-reviews{scroll-behavior:auto}}
#reviews .google-logo-badge{background:none;border:0;box-shadow:none;padding:0}
#reviews .google-rating-summary>div:first-child{display:grid;grid-template-columns:auto auto;justify-content:end;gap:4px 10px}
#reviews .rating-count{grid-column:1/-1;letter-spacing:0}
#reviews .rating-stars-big{margin:0}
#reviews .rating-number{background:none;-webkit-text-fill-color:#17313a;letter-spacing:-.03em}
/* Keep scrolling surfaces inside the rounded dialog shell. */
.reviews-dialog{overflow:hidden;max-height:85dvh}
.reviews-dialog[open]{display:flex;flex-direction:column}
.reviews-dialog-top{position:relative;flex:0 0 auto}
.reviews-dialog-list{min-height:0;overflow-y:auto;overscroll-behavior:contain;margin-bottom:16px;scrollbar-width:thin;scrollbar-color:#a9bec6 transparent}
.reviews-dialog-list .review-full{scroll-margin-top:0}
.reviews-dialog-list::-webkit-scrollbar{width:7px}
.reviews-dialog-list::-webkit-scrollbar-thumb{background:#a9bec6;border-radius:8px}
.reviews-photo-content{min-height:0;overflow:auto}
.reviews-photo-nav{flex-shrink:0}
.review-source-name{display:inline-block;text-decoration:none}
.review-source-name:hover{text-decoration:underline;text-underline-offset:3px}
.review-source-google{display:grid;place-items:center;flex:0 0 32px;width:32px;height:36px;border-radius:8px}
.review-source-google:hover{background:#e3eaed}
@media(max-width:600px){.live-review-card .review-media img{height:280px}.review-full .review-media img{height:260px}}
@media(prefers-reduced-motion:reduce){.live-reviews{transition:none}}
.live-review-card .review-source-name{display:block}

/* Every stop has the same footprint: a full photo card or two text cards. */
.reviews-grid.live-reviews{height:644px;overflow-y:hidden;box-sizing:border-box;align-items:stretch;transition:none}
.live-reviews .review-column{height:620px;flex-shrink:0;display:grid;grid-template-rows:minmax(0,1fr)}
.live-reviews .review-column-stacked{grid-template-rows:repeat(2,minmax(0,1fr))}
.live-reviews .live-review-card{height:100%;min-height:0;gap:10px}
.live-reviews .review-header,.live-reviews .review-stars,.live-reviews .review-read-more,.live-reviews .review-reply-link{flex-shrink:0}
.live-reviews .review-text-collapsed{-webkit-line-clamp:3;flex-shrink:0}
.live-reviews .review-column:not(.review-column-stacked) .live-review-card:not(.review-with-media) .review-text-collapsed{-webkit-line-clamp:12}
.live-reviews .review-media{flex:1;min-height:100px;margin-top:4px;overflow:hidden;border-radius:12px}
.live-reviews .review-photo{height:100%;border-radius:12px;background:#dbe2e5}
.live-reviews .review-media img{height:100%;width:100%;object-fit:cover;background:none}
.review-reply-link{margin-top:auto;text-align:left;padding:10px 0 0;border:0;border-top:1px solid #dbe2e5;background:none;color:#52626a;font:600 12px/1.5 'DM Sans',sans-serif;cursor:pointer}
.review-full .review-media img{height:260px;object-fit:cover}
.review-full .review-photo{border-radius:12px}
/* Immersive photo viewer, with a blurred copy filling spare aspect-ratio space. */
.reviews-photo-dialog{width:min(1040px,100%);height:94dvh;max-height:94dvh;max-width:100%;background:#161a1b;color:white;border-radius:20px;isolation:isolate}
.reviews-photo-dialog .reviews-dialog-top{position:absolute;top:0;left:0;right:0;padding:18px;z-index:3;border:0;background:linear-gradient(#0007,transparent);color:white}
.reviews-photo-dialog .reviews-dialog-top strong{font-size:14px;font-weight:500}
.reviews-photo-dialog .reviews-dialog-close{background:#0008;color:white;backdrop-filter:blur(12px);width:44px;height:44px}
.reviews-photo-content{position:absolute;inset:0;padding:0;overflow:hidden;background:#161a1b;touch-action:pan-y pinch-zoom}
.reviews-photo-content .review-photo-backdrop{position:absolute;inset:-5%;width:110%;height:110%;object-fit:cover;filter:blur(32px) brightness(.45);transform:scale(1.04)}
.reviews-photo-content .review-photo-main{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.review-photo-caption{position:absolute;left:24px;right:24px;bottom:76px;max-width:680px;margin:auto;display:flex;flex-direction:column;gap:6px;padding:18px 20px;border:1px solid #ffffff18;border-radius:20px;background:#101314d9;backdrop-filter:blur(16px);color:white;text-align:left;cursor:pointer;font-family:'DM Sans',sans-serif}
.photo-caption-person{font-size:15px;font-weight:700;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.photo-caption-date{font-size:12px;font-weight:400;color:#d2d8da}
.photo-caption-stars{color:#ffc344;font-size:20px;letter-spacing:1px;line-height:1}
.photo-caption-text{font-size:14px;line-height:1.5;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.photo-caption-more{font-size:12px;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.reviews-photo-nav{position:absolute;bottom:0;left:0;right:0;z-index:2;background:linear-gradient(transparent,#0008);color:white;padding:12px 20px;gap:20px}
.reviews-photo-nav .review-photo-arrow{background:#0009;border:1px solid #ffffff40;color:white;backdrop-filter:blur(12px)}
.review-photo-count{min-width:150px;text-align:center;font-size:12px}
.reviews-photo-content .review-video-open{position:absolute;right:20px;top:80px;background:#101314dd;color:white;border-radius:16px;padding:10px 14px;margin:0}
.reviews-photo-content [hidden]{display:none!important}
.review-photo-sheet{max-width:100%;max-height:70dvh;margin:auto auto 0;width:min(760px,100%);border-radius:24px 24px 0 0;background:#171b1d;color:white}
.review-photo-sheet .reviews-dialog-top{background:#171b1d;color:white;border-color:#ffffff24}
.review-photo-sheet .live-review-card{background:#171b1d;color:white;border-color:#ffffff24}
.review-photo-sheet .reviewer-name,.review-photo-sheet .review-text{color:white}
.review-photo-sheet .review-date,.review-photo-sheet .review-reply{color:#c7d0d4}
.review-photo-sheet .review-source-google:hover{background:#ffffff18}
@media(max-width:600px){
 .live-reviews .review-column{flex-basis:100%;height:600px}
 .reviews-grid.live-reviews{height:624px;gap:16px}
 .live-reviews .live-review-card{padding:17px;gap:9px}
 .live-reviews .review-text{font-size:14px;line-height:1.55}
 .live-reviews .reviewer-name{font-size:13px}
 .live-reviews .review-text-collapsed{-webkit-line-clamp:3}
 .reviews-photo-dialog{width:100%;height:100dvh;max-height:100dvh;border-radius:0}
 .reviews-photo-dialog .reviews-dialog-top{padding:calc(12px + env(safe-area-inset-top)) 14px 12px}
 .review-photo-caption{left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom));padding:15px 16px}
 .reviews-photo-nav{padding-bottom:calc(12px + env(safe-area-inset-bottom))}
 .review-full .review-media img{height:220px}
}

/* Keep the image primary; the full review lives in a separate bottom sheet. */
.review-photo-caption{bottom:18px;padding:13px 16px;gap:5px;max-width:640px}
.photo-caption-person{font-size:14px;line-height:1.3}
.photo-caption-stars{font-size:17px}
.photo-caption-text{font-size:13px;line-height:1.4;-webkit-line-clamp:1}
.photo-caption-more{font-size:11px}
.reviews-photo-nav{inset:50% 14px auto;transform:translateY(-50%);justify-content:space-between;pointer-events:none;padding:0;background:none}
.reviews-photo-nav button{pointer-events:auto;width:38px;height:38px}
.review-photo-count{position:absolute;z-index:4;top:34px;left:50%;transform:translateX(-50%);font-size:11px;pointer-events:none}
.reviews-photo-dialog .reviews-dialog-top strong{max-width:40%;font-size:12px}
.review-photo-sheet[open]{animation:review-sheet-in .22s cubic-bezier(.2,.8,.2,1)}
@keyframes review-sheet-in{from{transform:translateY(100%)}to{transform:translateY(0)}}
@media(max-width:600px){
 .review-photo-caption{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));padding:13px 15px}
 .photo-caption-date{font-size:11px}
 .review-photo-count{top:calc(31px + env(safe-area-inset-top));left:auto;right:70px;transform:none;min-width:0;font-size:10px}
 .reviews-photo-nav{inset:45% 10px auto;padding:0}
 .reviews-photo-nav button{width:34px;height:34px;font-size:18px}
}
@media(prefers-reduced-motion:reduce){.review-photo-sheet[open]{animation:none}}

.reviews-photo-content{overflow:clip}

#reviews a.google-rating-summary{text-decoration:none;color:inherit;cursor:pointer;transition:box-shadow .15s ease}
#reviews a.google-rating-summary:hover{box-shadow:inset 0 0 0 1px #9bbbc7}
