/* GoogleBusinesses default front-end styles. Disable with the googlebusinesses.load_css setting or &css=`0`. */
.gb-business {
    --gb-star: #fbbc04;
    --gb-star-empty: #dadce0;
    --gb-muted: #5f6368;
    --gb-open: #188038;
    --gb-closed: #d93025;
    --gb-gap: .75rem;
    display: flex;
    flex-direction: column;
    gap: var(--gb-gap);
    line-height: 1.5;
}
.gb-business * { box-sizing: border-box; }
.gb-field { margin: 0; }
.gb-field--name { margin: 0; line-height: 1.25; }
.gb-label { font-weight: 600; }
h4.gb-label { margin: 0 0 .35rem; font-size: 1rem; }
span.gb-label { color: var(--gb-muted); }
.gb-field--address address { display: inline; font-style: normal; }

/* Stars: a grey row of five with a gold row clipped to the rating on top. */
.gb-stars { position: relative; display: inline-block; font-size: 1em; line-height: 1; vertical-align: -.1em; letter-spacing: .05em; }
.gb-stars::before { content: "★★★★★"; color: var(--gb-star-empty); }
.gb-stars__fill { position: absolute; inset: 0 auto 0 0; overflow: hidden; white-space: nowrap; }
.gb-stars__fill::before { content: "★★★★★"; color: var(--gb-star); }
.gb-rating__value { font-weight: 600; }
.gb-rating__count { color: var(--gb-muted); }
.gb-rating__link { color: inherit; text-decoration: none; }
.gb-rating__link:hover .gb-rating__count { text-decoration: underline; }

/* Hours */
.gb-open { margin: 0 0 .35rem; font-weight: 600; }
.gb-open--open { color: var(--gb-open); }
.gb-open--closed { color: var(--gb-closed); }
.gb-hours { border-collapse: collapse; }
.gb-hours th, .gb-hours td { padding: .1rem 1.25rem .1rem 0; text-align: left; vertical-align: top; font-weight: normal; }
.gb-hours__row--today th, .gb-hours__row--today td { font-weight: 600; }
.gb-hours__row--closed td { color: var(--gb-muted); }
.gb-hours__special-title { margin: .6rem 0 .25rem; font-size: .9rem; }

/* Status */
.gb-status { display: inline-block; padding: .1rem .5rem; border-radius: 1rem; font-size: .875rem; font-weight: 600; background: #fce8e6; color: var(--gb-closed); }
.gb-status--operational { background: #e6f4ea; color: var(--gb-open); }

/* Reviews */
.gb-reviews { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.gb-review { margin: 0; }
.gb-review__author { display: flex; align-items: center; gap: .5rem; font-weight: 600; }
.gb-review__photo { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.gb-review__meta { margin: .25rem 0; color: var(--gb-muted); font-size: .875rem; }
.gb-review__text { margin: 0; }
.gb-review__note { margin: .25rem 0 0; color: var(--gb-muted); font-size: .8rem; }
.gb-review__reply { margin: .5rem 0 0 1rem; padding-left: .75rem; border-left: 3px solid var(--gb-star-empty); font-size: .9rem; }
.gb-review__source { display: inline-block; margin-top: .25rem; font-size: .8rem; }
.gb-reviews__links { display: flex; gap: 1rem; margin: .75rem 0 0; font-size: .9rem; }

/* Photos */
.gb-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: .5rem; }
.gb-photo { margin: 0; }
.gb-photo__img { display: block; width: 100%; height: 160px; object-fit: cover; border-radius: 4px; }
.gb-photo__author { margin-top: .2rem; font-size: .75rem; color: var(--gb-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gb-photo__author a { color: inherit; }

/* Attributes */
.gb-attributes { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .75rem; }
.gb-attributes__title { margin: 0 0 .25rem; font-size: .9rem; }
.gb-attributes__list { margin: 0; padding-left: 1.1rem; }
.gb-attributes__item--no { color: var(--gb-muted); text-decoration: line-through; }

.gb-map { display: block; border-radius: 4px; }

/* Google Maps text attribution (required when Places data is shown without a Google map). */
.gb-attribution { margin: 0; font-family: Roboto, Arial, sans-serif; font-size: 12px; color: #5e5e5e; }
.gb-attribution__google { font-weight: 500; letter-spacing: normal; white-space: nowrap; }
.gb-attribution a { color: inherit; }
