/* Homepage reviews: a quiet Google-style carousel within the M. STUDIO palette. */
.ms-review-section { padding: 80px 24px 72px; background: #f9f9f9; color: #504842; font-family: Jost, Arial, sans-serif; }
.ms-review-section *, .ms-review-section *::before, .ms-review-section *::after { box-sizing: border-box; }
.ms-review-section .ms-review-inner { max-width: 1160px; margin-inline: auto; }
.ms-review-section .ms-review-heading { text-align: center; margin-bottom: 44px; }
.ms-review-section .ms-review-heading h2 { font: 400 clamp(28px, 3vw, 40px)/1.2 'Marcellus SC', Georgia, serif; margin: 0 0 14px; color: #504842; text-wrap: balance; }
.ms-review-section .ms-review-heading p { margin: 0; font-size: 17px; line-height: 1.55; color: #736d68; }
.ms-review-section .ms-review-layout { display: grid; grid-template-columns: 224px minmax(0, 1fr); align-items: center; gap: 36px; }
.ms-review-section .ms-review-summary { padding-right: 12px; }
.ms-review-section .ms-review-logo { display: block; width: 120px; height: 55px; object-fit: contain; object-position: left center; margin-bottom: 16px; }
.ms-review-section .ms-review-business { font: 500 17px/1.4 Jost, Arial, sans-serif; margin: 0 0 4px; }
.ms-review-section .ms-review-rating { display: flex; align-items: center; gap: 9px; margin: 0 0 3px; }
.ms-review-section .ms-review-rating strong { font: 500 22px/1.4 Jost, Arial, sans-serif; }
.ms-review-section .ms-review-stars { color: #f5b400; font: 22px/1.15 Arial, sans-serif; letter-spacing: 1px; white-space: nowrap; }
.ms-review-section .ms-review-stars--aggregate { color: transparent; background: linear-gradient(90deg, #f5b400 var(--rating-fill), #dad6d0 var(--rating-fill)); -webkit-background-clip: text; background-clip: text; }
.ms-review-section a { color: #504842 !important; text-decoration: none; }
.ms-review-section a:hover { color: #2a2622 !important; }
.ms-review-section .ms-review-count { display: block; font-size: 15px; line-height: 1.5; }
.ms-review-section .ms-review-count:hover, .ms-review-section .ms-review-all:hover, .ms-review-section .ms-review-author a:hover { text-decoration: underline; text-underline-offset: 4px; }
.ms-review-section .ms-review-write { display: inline-flex; justify-content: center; align-items: center; gap: 20px; padding: 10px 16px; margin-top: 19px; border: 1px solid #b1a389; border-radius: 5px; background: transparent; font-size: 15px; line-height: 1.4; font-weight: 500; transition: background .22s ease, border-color .22s ease; }
.ms-review-section .ms-review-write:hover { background: #fffae9; border-color: #504842; }
.ms-review-section .ms-review-carousel { position: relative; min-width: 0; }
.ms-review-section .ms-review-track { display: flex; align-items: stretch; gap: 16px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; padding: 10px 4px 17px; margin: -10px -4px -17px; cursor: grab; }
.ms-review-section .ms-review-track::-webkit-scrollbar { display: none; }
.ms-review-section .ms-review-track.is-dragging { scroll-snap-type: none; scroll-behavior: auto; cursor: grabbing; user-select: none; }
.ms-review-section .ms-review-card { flex: 0 0 calc((100% - 32px) / 3); min-width: 0; padding: 21px 20px 20px; min-height: 330px; scroll-snap-align: start; background: #fff; border: 1px solid #ece9e4; border-radius: 12px; box-shadow: 0 4px 12px rgb(42 38 34 / 6%); display: flex; flex-direction: column; gap: 12px; }
.ms-review-section .ms-review-card > div[itemprop="reviewRating"] { display: none; }
.ms-review-section .ms-review-person { display: flex; align-items: center; gap: 10px; min-width: 0; }
.ms-review-section .ms-review-avatar { display: grid; place-items: center; flex-shrink: 0; width: 37px; height: 37px; border-radius: 50%; background: #eee9df; color: #504842; font-size: 13px; font-weight: 500; }
.ms-review-section .ms-review-card:nth-child(3n + 2) .ms-review-avatar { background: #e6ebe5; color: #415345; }
.ms-review-section .ms-review-card:nth-child(3n + 3) .ms-review-avatar { background: #eee4e3; color: #785454; }
.ms-review-section .ms-review-author { flex: 1; min-width: 0; font: 500 15px/1.35 Jost, Arial, sans-serif; color: #2a2622; }
.ms-review-section .ms-review-author [itemprop="name"] { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.ms-review-section .ms-review-source { display: block; margin-top: 2px; font-size: 12px; font-weight: 400; color: #736d68; }
.ms-review-section .ms-review-google { flex-shrink: 0; }
.ms-review-section .ms-review-card > .ms-review-stars { font-size: 20px; margin-top: 1px; }
.ms-review-section .ms-review-text { color: #35312e; font: 400 16px/1.55 Jost, Arial, sans-serif; margin: 0; }
.ms-review-section .ms-review-track.is-ready .ms-review-text { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.ms-review-section .ms-review-track.is-ready .ms-review-card.is-expanded .ms-review-text { display: block; overflow: visible; }
.ms-review-section .ms-review-expand { width: fit-content; padding: 0; border: 0; background: none; color: #736d68; font: 400 14px/1.5 Jost, Arial, sans-serif; text-align: left; cursor: pointer; margin-top: -5px; }
.ms-review-section .ms-review-expand:hover { color: #2a2622; text-decoration: underline; text-underline-offset: 3px; }
.ms-review-section [hidden] { display: none !important; }
.ms-review-section .ms-review-photos { display: flex; gap: 6px; flex-wrap: wrap; margin-top: auto; padding-top: 2px; }
.ms-review-section .ms-review-photo { border: 0; padding: 0; width: 52px; height: 52px; border-radius: 5px; overflow: hidden; cursor: zoom-in; background: #eee9df; }
.ms-review-section .ms-review-photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.ms-review-section .ms-review-photo:hover img { transform: scale(1.06); }
.ms-review-section .ms-review-controls { display: flex; justify-content: center; gap: 14px; align-items: center; margin-top: 25px; }
.ms-review-section .ms-review-arrow { display: grid; place-items: center; padding: 0; width: 34px; height: 34px; border: 1px solid #dedad4; border-radius: 50%; background: #fff; color: #504842; cursor: pointer; transition: background .2s ease, color .2s ease, opacity .2s ease; }
.ms-review-section .ms-review-arrow:hover:not(:disabled) { background: #504842; color: #fff; }
.ms-review-section .ms-review-arrow:disabled { opacity: .35; cursor: default; }
.ms-review-section .ms-review-position { min-width: 47px; font-size: 13px; color: #736d68; text-align: center; font-variant-numeric: tabular-nums; }
.ms-review-section .ms-review-all { display: table; margin: 25px auto 0; font-size: 15px; line-height: 1.5; }
.ms-review-section .ms-review-all span { display: inline-block; margin-left: 6px; }
.ms-review-section :is(a, button, [tabindex]):focus-visible { outline: 2px solid #504842; outline-offset: 5px; }
.ms-review-section .ms-review-lightbox { position: fixed; inset: 0; width: min(90vw, 900px); max-width: none; height: min(86dvh, 1000px); max-height: none; margin: auto; padding: 0; border: none; background: transparent; overflow: visible; color: #fff; }
.ms-review-section .ms-review-lightbox::backdrop { background: rgb(24 21 19 / 88%); }
.ms-review-section .ms-review-lightbox > img { display: block; width: 100%; height: 100%; object-fit: contain; }
.ms-review-section .ms-review-lightbox-close { position: absolute; z-index: 1; right: 0; top: 0; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgb(255 255 255 / 45%); background: #2a2622; color: #fff; font: 300 30px/1 Arial, sans-serif; cursor: pointer; }
@media (min-width: 1101px) { .ms-review-section .ms-review-controls { margin-top: 22px; } .ms-review-section .ms-review-prev, .ms-review-section .ms-review-next { position: absolute; top: 147px; z-index: 1; } .ms-review-section .ms-review-prev { left: -17px; } .ms-review-section .ms-review-next { right: -17px; } }
@media (max-width: 1100px) { .ms-review-section .ms-review-layout { grid-template-columns: 210px minmax(0, 1fr); gap: 32px; } .ms-review-section .ms-review-card { flex-basis: calc((100% - 16px) / 2); } }
@media (max-width: 760px) { .ms-review-section { padding: 58px 24px; } .ms-review-section .ms-review-heading { margin-bottom: 28px; } .ms-review-section .ms-review-layout { grid-template-columns: minmax(0, 1fr); gap: 30px; } .ms-review-section .ms-review-summary { display: flex; align-items: center; justify-content: center; gap: 25px; padding: 0; } .ms-review-section .ms-review-logo { width: 104px; height: 58px; margin: 0; object-position: center; } .ms-review-section .ms-review-business { display: none; } .ms-review-section .ms-review-write { margin-top: 10px; } }
@media (max-width: 560px) { .ms-review-section { padding-inline: 20px; } .ms-review-section .ms-review-card { flex-basis: calc(100% - 26px); min-height: 322px; padding: 22px; } .ms-review-section .ms-review-heading p { font-size: 16px; } .ms-review-section .ms-review-summary { gap: 20px; } .ms-review-section .ms-review-logo { width: 93px; } .ms-review-section .ms-review-author { font-size: 16px; } .ms-review-section .ms-review-controls { margin-top: 22px; } }
@media (prefers-reduced-motion: reduce) { .ms-review-section *, .ms-review-section *::before, .ms-review-section *::after { scroll-behavior: auto !important; transition: none !important; } }
