/* Scoped component styles. Site colors are inherited with standalone fallbacks. */
.icc-google-reviews {
    --reviews-bg: var(--color-surface-dark, #131313);
    --reviews-card: var(--color-surface, #1a1a1a);
    --reviews-text: var(--color-text, #e5e2e1);
    --reviews-muted: var(--color-muted, #ccc3d4);
    --reviews-accent: var(--color-primary, #d3bbff);
    --reviews-border: var(--color-border, rgba(255, 255, 255, .1));
    box-sizing: border-box;
    width: 100%;
    max-width: 1320px;
    margin: clamp(2rem, 5vw, 5rem) auto;
    padding: 0 1.5rem;
    color: var(--reviews-text);
    font-family: inherit;
    container: icc-reviews / inline-size;
}
.icc-google-reviews *, .icc-google-reviews *::before, .icc-google-reviews *::after { box-sizing: border-box; }
.icc-google-reviews a { color: var(--reviews-accent); text-underline-offset: .2em; overflow-wrap: anywhere; }
.icc-google-reviews a:hover { text-decoration: underline; }
.icc-google-reviews a:focus-visible, .icc-google-reviews summary:focus-visible { outline: 2px solid var(--reviews-accent); outline-offset: 5px; }
.icc-google-reviews__intro { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.icc-google-reviews .icc-google-reviews__eyebrow { margin: 0 0 .75rem; color: var(--reviews-accent); font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.icc-google-reviews .icc-google-reviews__title { max-width: 20ch; margin: 0; color: var(--reviews-text); font-size: clamp(1.65rem, 3.4vw, 3rem); font-weight: 800; line-height: 1.12; text-transform: uppercase; }
.icc-google-reviews__member { flex: 0 0 auto; margin: 0; text-align: center; }
/* Original image includes generous empty margins; frame the seal via CSS without changing the asset. */
.icc-google-reviews__seal { position: relative; width: 112px; height: 112px; overflow: hidden; margin: 0 auto .5rem; }
.icc-google-reviews__seal img { position: absolute; width: 310%; height: auto; max-width: none; left: 50%; top: 50%; transform: translate(-50%, -51%); }
.icc-google-reviews__member figcaption { color: var(--reviews-muted); font-size: .65rem; letter-spacing: .06em; text-transform: uppercase; }
.icc-google-reviews__google-content { padding: clamp(1.25rem, 3vw, 2.5rem); border: 1px solid var(--reviews-border); background: var(--reviews-bg); }
.icc-google-reviews__summary { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-bottom: 1.75rem; border-bottom: 1px solid var(--reviews-border); }
.icc-google-reviews__summary-info { min-width: 0; }
.icc-google-reviews .icc-google-reviews__place { margin: 0 0 1.25rem; color: var(--reviews-text); font-size: clamp(1.05rem, 2vw, 1.4rem); line-height: 1.4; overflow-wrap: anywhere; }
.icc-google-reviews__rating { display: flex; align-items: center; flex-wrap: wrap; gap: 1.25rem; }
.icc-google-reviews__score { color: var(--reviews-text); font-size: clamp(2.75rem, 5vw, 4rem); font-weight: 800; letter-spacing: -.05em; line-height: 1; white-space: nowrap; }
.icc-google-reviews__score > span { color: var(--reviews-muted); font-size: 1rem; font-weight: 400; letter-spacing: 0; }
.icc-google-reviews .icc-google-reviews__count { margin: .35rem 0 0; color: var(--reviews-muted); font-size: .85rem; }
.icc-google-reviews .icc-google-reviews__maps-link { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; gap: 1rem; padding: .9rem 1.2rem; min-height: 48px; border: 1px solid var(--reviews-accent); color: var(--reviews-accent); font-weight: 700; font-size: .85rem; text-decoration: none; }
.icc-google-reviews .icc-google-reviews__maps-link:hover { background: var(--reviews-accent); color: var(--color-on-primary, #3d0e84); }
.icc-google-reviews__maps-link > span { font-size: 1.25rem; }
.icc-google-reviews .icc-google-reviews__notice { max-width: 95ch; margin: 1.25rem 0 1.75rem; color: var(--reviews-muted); font-size: .75rem; line-height: 1.65; }
.icc-google-reviews__list { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1rem; align-items: start; }
.icc-google-reviews__review { grid-column: span 2; display: flex; flex-direction: column; min-width: 0; padding: clamp(1rem, 2vw, 1.5rem); background: var(--reviews-card); border: 1px solid var(--reviews-border); border-top: 2px solid var(--reviews-accent); }
/* Five reviews form three cards above two wider cards. Fewer results balance naturally. */
.icc-google-reviews__review:nth-child(4):nth-last-child(2), .icc-google-reviews__review:nth-child(5):last-child,
.icc-google-reviews__review:first-child:nth-last-child(2), .icc-google-reviews__review:nth-child(2):last-child { grid-column: span 3; }
.icc-google-reviews__review:only-child { grid-column: 1 / -1; }
.icc-google-reviews__author { display: flex; align-items: center; gap: .75rem; min-height: 44px; margin-bottom: 1rem; font-weight: 700; }
.icc-google-reviews__author img { flex: 0 0 40px; width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.icc-google-reviews__author a, .icc-google-reviews__author span { min-width: 0; overflow-wrap: anywhere; }
.icc-google-reviews__author a { color: var(--reviews-text); font-size: .95rem; text-decoration: none; }
.icc-google-reviews__meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; }
.icc-google-reviews time { color: var(--reviews-muted); font-size: .75rem; }
.icc-google-reviews__stars { display: inline-block; color: #edc777; font-family: Arial, sans-serif; font-size: 1rem; line-height: 1.2; letter-spacing: .12em; white-space: nowrap; }
.icc-google-reviews__rating .icc-google-reviews__stars { font-size: 1.25rem; }
/* One text row only: fractional ratings are colored without duplicate glyphs. */
@supports ((background-clip: text) or (-webkit-background-clip: text)) {
    .icc-google-reviews__stars {
        background-image: linear-gradient(to right, #edc777 0%, #edc777 var(--rating-percent, 100%), #777 var(--rating-percent, 100%), #777 100%);
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent;
    }
}
.icc-google-reviews .icc-google-reviews__text, .icc-google-reviews__preview { margin: 1.25rem 0; color: var(--reviews-text); white-space: pre-wrap; overflow-wrap: anywhere; font-size: .9rem; line-height: 1.75; }
.icc-google-reviews__expand summary { list-style: none; cursor: pointer; }
.icc-google-reviews__expand summary::-webkit-details-marker { display: none; }
.icc-google-reviews__preview { display: block; }
.icc-google-reviews__read-more, .icc-google-reviews__read-less { display: flex; justify-content: space-between; gap: 1rem; margin: 1rem 0; color: var(--reviews-accent); font-size: .8rem; font-weight: 700; }
.icc-google-reviews__read-less, .icc-google-reviews__expand[open] .icc-google-reviews__read-more, .icc-google-reviews__expand[open] .icc-google-reviews__preview { display: none; }
.icc-google-reviews__expand[open] .icc-google-reviews__read-less { display: flex; }
.icc-google-reviews .icc-google-reviews__original { display: block; margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--reviews-border); font-size: .75rem; line-height: 1.5; text-decoration: none; }
.icc-google-reviews__attribution { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.75rem; padding-top: 1.25rem; border-top: 1px solid var(--reviews-border); font-size: .75rem; }
.icc-google-reviews__attribution p { margin: 0; }
/* Official dark logo stays unchanged on its own light background. */
.icc-google-reviews__logo { display: block; box-sizing: content-box; height: 18px; width: auto; max-width: none; padding: 10px 10px 5px; background: #fff; }
.icc-google-reviews__debug { margin-top: 1.5rem; padding: 1rem; border: 1px solid var(--reviews-accent); background: var(--reviews-card); color: var(--reviews-text); }
.icc-google-reviews__debug dt { font-weight: 700; }
.icc-google-reviews__debug dd { margin: 0 0 .75rem; overflow-wrap: anywhere; }
@media (max-width: 991.98px) {
    .icc-google-reviews { max-width: 960px; }
    .icc-google-reviews__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .icc-google-reviews__list > .icc-google-reviews__review:nth-child(n) { grid-column: auto; }
    .icc-google-reviews__list > .icc-google-reviews__review:last-child:nth-child(odd) { grid-column: 1 / -1; }
    .icc-google-reviews__summary { align-items: flex-start; flex-direction: column; }
}
/* Keep cards readable on phones and narrow content columns. */
@media (max-width: 767.98px) {
    .icc-google-reviews { padding: 0 1rem; }
    .icc-google-reviews__intro { align-items: flex-start; flex-direction: column; gap: 1.25rem; }
    .icc-google-reviews__member { display: flex; align-items: center; gap: 1rem; text-align: left; }
    .icc-google-reviews__seal { flex: 0 0 72px; width: 72px; height: 72px; margin: 0; }
    .icc-google-reviews__member figcaption { max-width: 15ch; line-height: 1.6; }
    .icc-google-reviews__list { grid-template-columns: minmax(0, 1fr); }
    .icc-google-reviews__list > .icc-google-reviews__review:nth-child(n) { grid-column: 1 / -1; }
    .icc-google-reviews .icc-google-reviews__maps-link { width: 100%; }
}

/* The element can be narrow even on a wide viewport, for example in a site column. */
@container icc-reviews (max-width: 44rem) {
    .icc-google-reviews__intro { align-items: flex-start; flex-direction: column; gap: 1.25rem; }
    .icc-google-reviews__member { display: flex; align-items: center; gap: 1rem; text-align: left; }
    .icc-google-reviews__seal { flex: 0 0 72px; width: 72px; height: 72px; margin: 0; }
    .icc-google-reviews__member figcaption { max-width: 15ch; line-height: 1.6; }
    .icc-google-reviews__summary { align-items: flex-start; flex-direction: column; }
    .icc-google-reviews__list { grid-template-columns: minmax(0, 1fr); }
    .icc-google-reviews__list > .icc-google-reviews__review:nth-child(n) { grid-column: 1 / -1; }
    .icc-google-reviews .icc-google-reviews__maps-link { width: 100%; }
}

@container icc-reviews (max-width: 25rem) {
    .icc-google-reviews__google-content { padding: 1rem; }
    .icc-google-reviews__rating { gap: .75rem; }
    .icc-google-reviews__score { font-size: 2.5rem; }
    .icc-google-reviews__review { padding: 1rem; }
}
