.home-reviews { position: relative; overflow: hidden; padding: 48px 28px 30px; background: #fbfaf7; color: #101827; }
.home-reviews::after { content: ""; position: absolute; inset: 0 0 0 58%; background: linear-gradient(90deg, rgba(251,250,247,.96), rgba(251,250,247,.2)), var(--reviews-background-image) right center / cover no-repeat; opacity: .72; pointer-events: none; }
.home-reviews__inner { position: relative; z-index: 1; width: min(1230px,100%); margin: 0 auto; }
.home-reviews__heading { text-align: center; margin-bottom: 26px; }
.home-reviews__eyebrow, .review-modal__eyebrow { display: flex; align-items: center; justify-content: center; gap: 10px; color: #d69a24; font-size: 13px; font-weight: 800; letter-spacing: .04em; }
.home-reviews__eyebrow span, .review-modal__eyebrow span { width: 36px; height: 1px; background: #d69a24; }
.home-reviews__heading h2 { margin: 9px 0; font-family: "Cormorant Garamond", Georgia, serif; font-size: clamp(32px,3vw,44px); font-weight: 700; line-height: 1.08; }
.home-reviews__heading p { margin: 0; color: #657184; font-size: 15px; line-height: 1.45; }
.reviews-carousel { position: relative; padding: 0 42px; }
.reviews-carousel__viewport { overflow: hidden; }
.reviews-carousel__track { display: flex; gap: 20px; transition: transform .48s ease; }
.review-card { box-sizing: border-box; display: flex; flex: 0 0 calc((100% - 40px)/3); min-height: 256px; flex-direction: column; padding: 23px; border-radius: 15px; background: rgba(255,255,255,.96); box-shadow: 0 10px 26px rgba(16,24,39,.07); }
.review-card__stars { color: #dd9b1b; font-size: 20px; letter-spacing: 2px; }
.review-card__text { display: -webkit-box; overflow: hidden; margin: 12px 0 18px; color: #233044; font-size: 15px; line-height: 1.42; -webkit-box-orient: vertical; -webkit-line-clamp: 5; }
.review-card__footer { display: flex; align-items: center; gap: 10px; margin-top: auto; }
.review-card__avatar { display: grid; width: 40px; height: 40px; flex: 0 0 40px; place-items: center; border-radius: 50%; background: #eee9df; color: #635c51; font-size: 13px; font-weight: 700; }
.review-card__author { min-width: 0; display: grid; gap: 3px; }.review-card__author strong { color: #18335d; font-size: 13px; }.review-card__author small, .review-card time { color: #788294; font-size: 11px; }.review-card time { margin-left: auto; white-space: nowrap; }
.reviews-carousel__arrow { position: absolute; z-index: 2; top: 50%; display: grid; width: 38px; height: 38px; place-items: center; border: 0; border-radius: 50%; background: #fff; box-shadow: 0 5px 16px rgba(16,24,39,.12); color: #18335d; cursor: pointer; transform: translateY(-50%); }.reviews-carousel__arrow span { font-size: 35px; line-height: .7; }.reviews-carousel__arrow--previous { left: 0; }.reviews-carousel__arrow--next { right: 0; }
.reviews-carousel__dots { display: flex; justify-content: center; gap: 8px; margin-top: 16px; }.reviews-carousel__dots button { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 50%; background: #d8d8d8; cursor: pointer; }.reviews-carousel__dots button[aria-current="true"] { background: #d69a24; }
.home-reviews__call-to-action { display: grid; justify-items: center; gap: 9px; margin-top: 24px; }.home-reviews__add-button, .review-form__submit { border: 0; border-radius: 9px; background: linear-gradient(120deg,#e4ba4e,#c88b1c); box-shadow: 0 7px 16px rgba(163,111,24,.15); color: #fff; font-weight: 700; cursor: pointer; }.home-reviews__add-button { min-width: 203px; padding: 14px 25px; font-size: 15px; }.home-reviews__call-to-action p { margin: 0; color: #788294; font-size: 12px; }
.review-modal { position: fixed; z-index: 2000; inset: 0; display: grid; place-items: center; padding: 16px; }.review-modal[hidden] { display: none; }.review-modal__overlay { position: absolute; inset: 0; background: rgba(15,30,46,.67); backdrop-filter: blur(4px); }.review-modal__dialog { position: relative; display: grid; grid-template-columns: minmax(0,2fr) minmax(260px,1fr); width: min(864px,100%); max-height: calc(100vh - 32px); overflow: hidden; border-radius: 19px; background: #fff; box-shadow: 0 25px 80px rgba(6,18,34,.3); }.review-modal__close { position: absolute; z-index: 2; top: 15px; right: 15px; display: grid; width: 34px; height: 34px; place-items: center; border: 0; border-radius: 50%; background: #fff; box-shadow: 0 3px 12px rgba(16,24,39,.12); color: #142238; font-size: 25px; cursor: pointer; }.review-modal__form-area { padding: 24px 38px 22px; }.review-modal__eyebrow { justify-content: flex-start; font-size: 12px; }.review-modal__eyebrow span { width: 34px; }.review-modal h2 { margin: 8px 0 3px; font-family: "Cormorant Garamond", Georgia, serif; color: #10203a; font-size: 32px; line-height: 1.05; }.review-modal__subtitle { max-width: 480px; margin: 0 0 15px; color: #627086; line-height: 1.35; }
.review-form label, .review-form legend { display: grid; gap: 4px; color: #18304e; font-size: 12px; font-weight: 700; }.review-form b { color: #c74132; }.review-form input, .review-form select, .review-form textarea { box-sizing: border-box; width: 100%; border: 1px solid #dbe1e8; border-radius: 8px; background: #fff; color: #1b2a40; font: inherit; font-size: 13px; outline-color: #d69a24; }.review-form input, .review-form select { height: 36px; padding: 0 11px; }.review-form textarea { height: 76px; padding: 9px 11px; resize: vertical; }.review-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 18px; margin-bottom: 11px; }.review-form__grid:not(.review-form__grid--bottom) > label { grid-template-rows: 15px 36px; }.review-form__textarea-label { position: relative; margin-bottom: 11px; }.review-form__counter { position: absolute; right: 10px; bottom: 8px; color: #8290a2; font-size: 11px; font-weight: 500; }.review-form__rating { padding: 0; border: 0; }.review-form__rating > div { display: flex; gap: 6px; }.review-form__rating button { padding: 0; border: 0; background: none; color: #d69a24; font-size: 26px; line-height: 34px; cursor: pointer; }.review-form__consent { grid-template-columns: 20px 1fr !important; align-items: start; margin: 2px 0 9px; color: #59697e !important; font-weight: 500 !important; line-height: 1.3; }.review-form__consent input { width: 19px; height: 19px; margin: 0; }.review-form__error { min-height: 15px; margin: 0 0 5px; color: #b42318; font-size: 12px; }.review-form__submit { width: 100%; min-height: 44px; font-size: 15px; }.review-form__success { padding: 17px; border-radius: 8px; background: #ecfdf3; color: #167244; font-size: 14px; line-height: 1.45; }.review-modal__art { display: flex; min-height: 100%; flex-direction: column; justify-content: center; padding: 30px 28px 25px; background: linear-gradient(90deg,rgba(255,255,255,.9),rgba(255,255,255,.12)), var(--reviews-background-image) center / cover; }.review-modal__quote-mark { color: #e7d7b3; font-family: Georgia,serif; font-size: 82px; line-height: .5; }.review-modal__art p { margin: 17px 0 auto; color: #667086; font-family: "Cormorant Garamond",Georgia,serif; font-size: 25px; font-style: italic; line-height: 1.1; }.review-modal__art img { display: block; width: 132px; max-height: 54px; margin: 22px auto 0; object-fit: contain; }
@media (max-width: 900px) { .review-card { flex-basis: calc((100% - 20px)/2); }.home-reviews::after { left: 45%; }.review-modal__form-area { padding: 32px; } }
@media (max-width: 640px) { .home-reviews { padding: 40px 18px 27px; }.home-reviews__heading h2 { font-size: 34px; }.home-reviews__heading p br { display: none; }.reviews-carousel { padding: 0 24px; }.review-card { flex-basis: 100%; min-height: 246px; padding: 21px; }.reviews-carousel__arrow--previous { left: -8px; }.reviews-carousel__arrow--next { right: -8px; }.review-modal { padding: 12px; }.review-modal__dialog { display: block; max-height: calc(100vh - 24px); overflow-y: auto; border-radius: 15px; }.review-modal__form-area { padding: 30px 22px 24px; }.review-modal h2 { font-size: 31px; }.review-modal__art { display: none; }.review-form__grid { grid-template-columns: 1fr; gap: 14px; }.review-form__grid--bottom { grid-template-columns: 1fr 1fr; }.review-modal__close { top: 10px; right: 10px; } }