.hero-content .hero-description { margin-bottom: 18px; }
.hero-rating { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 24px; color: #f7f3e8; font-size: 12px; }
.google-mark { font: 600 24px/1 var(--body); background: conic-gradient(#4285f4 0deg 95deg, #34a853 95deg 175deg, #fbbc05 175deg 230deg, #ea4335 230deg 290deg, #4285f4 290deg); background-clip: text; -webkit-background-clip: text; color: transparent; }
.hero-rating .google-mark { background-color: var(--cream); border-radius: 50%; }
.hero-rating strong { font-size: 21px; font-weight: 500; }
.rating-stars { display: inline-block; position: relative; font-size: 17px; line-height: 1; letter-spacing: 2px; color: #ffffff55; white-space: nowrap; }
.rating-stars-fill { position: absolute; left: 0; top: 0; width: 98%; overflow: hidden; color: #e5bd6b; }
.rating-count { display: inline-flex; align-items: center; gap: 6px; border-left: 1px solid #ffffff4d; padding-left: 10px; }
.rating-count svg { width: 17px; height: 17px; }
.hero-rating:hover .rating-count { text-decoration: underline; text-underline-offset: 4px; }
.reviews-section { display: grid; grid-template-columns: .9fr 1.3fr; gap: 7%; padding-top: 62px; padding-bottom: 62px; align-items: center; border-bottom: 1px solid var(--line); }
.reviews-intro .eyebrow { margin-bottom: 18px; }
.reviews-intro h2 { font-size: clamp(42px, 4vw, 58px); }
.reviews-intro .text-link { font-size: 14px; margin-top: 24px; }
.review-carousel { min-width: 0; }
.review-count { margin-right: auto; color: #65725b; font-size: 13px; font-variant-numeric: tabular-nums; letter-spacing: 1px; }
.review-slide.has-photos { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 0 24px; align-content: center; padding: 22px; }
.review-gallery { grid-column: 1; grid-row: 1 / 4; min-width: 0; align-self: center; }
.review-photo-main { position: relative; display: block; overflow: hidden; border-radius: 12px; background: #dfe4d7; }
.review-load-image { opacity: 0; transition: opacity .3s ease; }
.review-load-image.is-ready { opacity: 1; }
.review-photo-loading { position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none; opacity: 0; transition: opacity .2s ease; }
[aria-busy=true] > .review-photo-loading { opacity: 1; }
.review-photo-loading::before { content: ''; width: 62px; height: 62px; border: 1px solid #62775133; border-top: 2px solid #627751; border-radius: 50%; }
[aria-busy=true] > .review-photo-loading::before { animation: review-loading-turn 1.2s linear infinite; }
.review-photo-loading svg { position: absolute; justify-self: center; align-self: center; width: 28px; height: 32px; fill: #627751; }
.review-photo-error { display: none; position: absolute; inset: 0; align-items: center; justify-content: center; text-align: center; padding: 20px; color: #526447; font-size: 13px; }
.photo-error > .review-photo-error { display: flex; }
@keyframes review-loading-turn { to { transform: rotate(360deg); } }
.review-photo-main img { width: 100%; height: 290px; object-fit: contain; }
.review-photo-thumbs { display: flex; justify-content: center; gap: 7px; margin-top: 9px; }
.review-photo-thumbs button { position: relative; overflow: hidden; padding: 2px; width: 43px; height: 43px; border: 1px solid transparent; border-radius: 7px; background: #dfe4d7; }
.review-photo-thumbs .review-photo-loading::before { width: 25px; height: 25px; }
.review-photo-thumbs .review-photo-loading svg { width: 13px; height: 15px; }
.review-photo-thumbs button[aria-pressed=true] { border-color: #5b6e4a; }
.review-photo-thumbs img { width: 100%; height: 100%; border-radius: 4px; object-fit: cover; }
.has-photos .review-top, .has-photos blockquote, .has-photos .review-author { grid-column: 2; }
.has-photos .review-top { align-self: end; }
.has-photos blockquote { font-size: clamp(24px, 2.1vw, 30px); margin: 18px 0; }
.has-photos .review-author { align-self: start; }
.review-viewport { position: relative; overflow: hidden; border: 1px solid #d7dacd; border-radius: 20px; background: #eeeee5; }
.review-slides { display: grid; }
.review-slide { grid-area: 1 / 1; padding: 30px 34px; opacity: 0; visibility: hidden; transform: translateX(20px); transition: opacity .45s, transform .45s, visibility .45s; }
.review-slide.is-active { opacity: 1; visibility: visible; transform: none; }
.review-slide:not(.has-photos) { display: flex; flex-direction: column; justify-content: center; }
.review-top { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.review-stars { color: #a77b2d; font-size: 18px; letter-spacing: 3px; }
.review-slide blockquote { font: 500 28px/1.35 var(--display); margin: 22px 0 25px; overflow-wrap: anywhere; }
.review-author { display: flex; align-items: center; gap: 12px; font-size: 14px; }
.review-avatar { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: #dfe4d5; color: #435239; font-size: 14px; }
.review-source { display: block; color: #66705d; font-size: 11px; margin-top: 2px; }
.review-source:hover { text-decoration: underline; text-underline-offset: 3px; }
.review-controls { display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin-top: 14px; }
.review-controls > button { width: 36px; height: 36px; border-radius: 50%; border: 1px solid #cfd4c4; background: transparent; color: var(--ink); }
.review-controls > button:hover { background: var(--sage); }
.review-dots { display: flex; gap: 3px; margin-right: auto; }
.review-dots button { width: 24px; height: 30px; padding: 8px; background: transparent; }
.review-dots button::after { content: ''; display: block; width: 7px; height: 7px; border-radius: 50%; background: #c8cebd; }
.review-dots button[aria-pressed=true]::after { background: #586b49; }
.reviews-pending { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; padding: 30px 34px; }
.reviews-pending > span:not(.google-mark) { font: 500 31px/1.15 var(--display); }
.reviews-pending small { font-size: 13px; color: #566349; }
@media (min-width: 761px) and (max-height: 850px) {
  .hero-content { padding-top: 35px; padding-bottom: 90px; }
  .hero h1 { font-size: clamp(56px, 5vw, 76px); }
  .hero-content .eyebrow { margin-bottom: 18px; }
  .hero-content .hero-description { margin-top: 18px; margin-bottom: 14px; }
  .hero-rating { margin-bottom: 18px; }
  .hero-contact { margin-top: 17px; }
}
@media (max-width: 760px) {
  .hero-rating { justify-content: center; gap: 8px; font-size: 11px; }
  .hero-rating strong { font-size: 20px; }
  .hero-rating .rating-stars { font-size: 15px; letter-spacing: 1px; }
  .reviews-section { grid-template-columns: 1fr; gap: 28px; padding-top: 44px; padding-bottom: 44px; }
  .reviews-intro { text-align: center; }
  .reviews-intro h2 { font-size: 46px; }
  .review-slide, .reviews-pending { padding: 25px; }
  .review-slide blockquote { font-size: 27px; }
  .review-slide.has-photos { grid-template-columns: 1fr; gap: 0; padding: 20px; }
  .review-gallery { grid-column: 1; grid-row: 1; margin-bottom: 20px; }
  .review-photo-main img { height: 250px; }
  .has-photos .review-top, .has-photos blockquote, .has-photos .review-author { grid-column: 1; }
  .has-photos blockquote { font-size: 26px; }
}
@media (prefers-reduced-motion: reduce) { .review-slide { transform: none; transition: none; } }
@media (prefers-reduced-motion: reduce) { .review-load-image, .review-photo-loading { transition: none; } .review-photo-loading::before { animation: none !important; } }
