/* GENERATED from site/index.html by scripts/build-home-parts.js (Google reviews section styles). Do not edit: change the homepage, then run node scripts/build-home-parts.js. */
.home-luxe #reviews.rvb {
    position: relative; overflow: hidden; isolation: isolate;
    min-height: min(96vh, 1040px); display: flex; align-items: center;
    padding: 9vh clamp(1.25rem, 6vw, 6rem) !important;
    background: #000 !important; color: #f5f5f7;
}
.rvb-media { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.rvb-media picture { display: block; width: 100%; height: 100%; }
.rvb-media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; display: block;
    transform: scale(1.06); transition: transform 2.2s cubic-bezier(.2,.7,.2,1); }
.rvb-media::after { content: ""; position: absolute; inset: 0;
    background: linear-gradient(90deg, rgba(0,0,0,.6) 0%, rgba(0,0,0,.18) 55%, rgba(0,0,0,0) 100%); }
.rvb-panel { position: relative; width: min(560px, 46vw); padding: 3rem 3rem 2.5rem; border-radius: 30px;
    background: rgba(29,29,31,.5); backdrop-filter: blur(30px) saturate(1.5); -webkit-backdrop-filter: blur(30px) saturate(1.5);
    box-shadow: 0 30px 80px rgba(0,0,0,.35);
    transition: opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1); }
.home-luxe #reviews.rvb .rvb-panel { margin: 0 !important; }
.rvb-rating { display: flex; align-items: baseline; gap: 1rem; min-height: 1.5rem; }
.rvb-num { font-size: clamp(76px, 7.4vw, 112px); font-weight: 700; letter-spacing: -.05em; line-height: .9; color: #fff; }
.rvb-stars { color: #f2b705; font-size: 1.5rem; letter-spacing: .12em; transition: opacity 1s ease .25s; }
.home-luxe #reviews.rvb h2 { margin: 1.35rem 0 0; font-size: clamp(2rem, 2.9vw, 2.6rem); line-height: 1.05;
    letter-spacing: -.035em; font-weight: 700; color: #fff; text-align: left; }
.rvb-sub { margin: .75rem 0 0; font-size: 1.06rem; line-height: 1.45; color: rgba(255,255,255,.72); }
.rvb-quotes { margin-top: 1.9rem; display: grid; gap: .75rem; }
.rvb-quote { padding: 1.1rem 1.25rem; border-radius: 22px; background: rgba(255,255,255,.08); }
.rvb-quote-stars { color: #f2b705; font-size: .72rem; letter-spacing: .12em; margin-bottom: .45rem; }
.rvb-quote p { margin: 0; font-size: .98rem; line-height: 1.45; color: #f5f5f7; letter-spacing: -.005em; }
.rvb-quote small { display: block; margin-top: .5rem; font-size: .78rem; color: rgba(255,255,255,.55); }
.rvb-quotes .review-loading { height: 96px; background: rgba(255,255,255,.06); border-radius: 22px; padding: 1.1rem 1.25rem; }
.rvb-quotes .review-loading .review-stars { color: rgba(242,183,5,.5); font-size: .72rem; letter-spacing: .12em; }
.rvb-quotes .review-fallback { padding: 1.25rem; border-radius: 22px; background: rgba(255,255,255,.08); color: #f5f5f7; text-align: left !important; }
.rvb-foot { margin-top: 1.6rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.rvb-count { font-size: .8rem; color: rgba(255,255,255,.6); }
.rvb-cta { display: inline-flex; align-items: center; gap: .45rem; min-height: 44px; padding: 0 1.25rem; border-radius: 999px;
    background: rgba(255,255,255,.12); color: #fff; font-weight: 600; font-size: .95rem; text-decoration: none;
    transition: background .2s ease; touch-action: manipulation; }
.rvb-cta:hover { background: rgba(255,255,255,.2); }
.home-luxe #reviews.rvb #google-attribution { justify-content: flex-start !important; margin-top: 1rem !important; }
.rvb-place { position: absolute; right: clamp(1.25rem, 5vw, 5rem); bottom: 5vh; font-size: .8rem; color: rgba(255,255,255,.75); letter-spacing: .02em; }
/* Reveal: armed by JS only, so no-JS / old browsers see everything. */
.rvb.rvb-armed .rvb-panel { opacity: 0; transform: translateY(12px); }
.rvb.rvb-armed .rvb-stars { opacity: 0; }
.rvb.rvb-in .rvb-panel { opacity: 1; transform: none; }
.rvb.rvb-in .rvb-stars { opacity: 1; }
.rvb.rvb-in .rvb-media img { transform: scale(1); }
@media (max-width: 860px) {
    .home-luxe #reviews.rvb { display: flex; flex-direction: column; align-items: stretch; min-height: 0;
        padding: 4.5rem 1.25rem 4rem !important; }
    .rvb-panel { display: contents; }
    .rvb-top { order: 1; }
    .rvb-media { order: 2; position: relative; inset: auto; z-index: 0; margin: 2rem -.25rem 0; border-radius: 26px; aspect-ratio: 4 / 5; }
    .rvb-media::after { display: none; }
    .rvb-quotes { order: 3; margin-top: 1rem; }
    .rvb-quotes > :nth-child(n+3) { display: none; }
    .rvb-foot { order: 4; }
    #reviews.rvb #google-attribution { order: 5; }
    .rvb-place { position: absolute; top: calc(4.5rem - 1.9rem); right: 1.25rem; bottom: auto; font-size: .75rem; color: rgba(255,255,255,.5); }
    .rvb-num { font-size: 76px; }
    .home-luxe #reviews.rvb h2 { font-size: 2.35rem; }
    .rvb.rvb-armed .rvb-top, .rvb.rvb-armed .rvb-quotes { opacity: 0; transform: translateY(12px); transition: opacity .9s ease, transform .9s ease; }
    .rvb.rvb-in .rvb-top, .rvb.rvb-in .rvb-quotes { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
    .rvb-panel, .rvb-stars, .rvb-media img, .rvb-top, .rvb-quotes { transition: none !important; }
    .rvb-media img { transform: none !important; }
}
