.review-page {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  padding: clamp(54px, 7vw, 92px) 0 74px;
  display: grid;
  grid-template-columns: minmax(0, 0.72fr) minmax(580px, 1.28fr);
  gap: clamp(42px, 7vw, 88px);
  align-items: start;
}
.review-intro { position: sticky; top: 128px; min-width: 0; padding-top: 30px; }
.review-intro h1 { margin: 0; max-width: 500px; color: var(--navy); font-size: clamp(2.8rem, 5vw, 4.8rem); line-height: 0.98; letter-spacing: -0.055em; overflow-wrap: break-word; }
.review-intro > p:not(.eyebrow) { max-width: 470px; margin: 27px 0; color: var(--muted); }
.review-note { max-width: 440px; display: flex; gap: 12px; padding: 17px 0; color: var(--navy); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.review-note > span { width: 23px; height: 23px; display: grid; place-items: center; flex: 0 0 auto; color: var(--white); background: var(--blue); border-radius: 50%; font-size: 0.7rem; font-weight: 800; }
.review-note p { margin: 0; font-size: 0.78rem; font-weight: 700; }
.review-card { min-width: 0; padding: clamp(25px, 4vw, 46px); background: var(--white); border: 1px solid var(--border); border-top: 5px solid var(--blue); box-shadow: var(--shadow); }
.review-heading { display: flex; gap: 16px; align-items: center; padding-bottom: 28px; margin-bottom: 31px; border-bottom: 1px solid var(--border); }
.review-number { width: 43px; height: 43px; display: grid; place-items: center; flex: 0 0 auto; color: var(--white); background: var(--navy); border-radius: 50%; font-size: 0.72rem; font-weight: 800; }
.review-heading h2 { margin: 0; color: var(--navy); font-size: clamp(1.25rem, 3vw, 1.55rem); letter-spacing: -0.025em; }
.review-heading p { margin: 4px 0 0; color: var(--muted); font-size: 0.72rem; }
.review-heading p span, .review-form b { color: #b42318; }
.review-form { display: grid; gap: 30px; }
.review-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; min-width: 0; }
.review-grid > *, .review-form > * { min-width: 0; }
.review-form label > span, .review-form legend { display: block; margin-bottom: 8px; color: var(--navy); font-size: 0.82rem; font-weight: 800; }
.review-form input[type="text"], .review-form select, .review-form textarea { width: 100%; color: var(--text); background: var(--white); border: 1.5px solid var(--border); border-radius: 7px; outline: 0; transition: border-color 0.18s, box-shadow 0.18s; }
.review-form input[type="text"], .review-form select { min-height: 52px; padding: 0 14px; }
.review-form textarea { min-height: 146px; padding: 14px; resize: vertical; }
.review-form input::placeholder, .review-form textarea::placeholder { color: #98a2b3; }
.review-form input[type="text"]:focus, .review-form select:focus, .review-form textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 4px rgba(20, 112, 175, 0.12); }
.review-block { display: block; }
.review-block > small { display: block; margin: -3px 0 11px; color: var(--muted); font-size: 0.7rem; }
.review-form fieldset { min-width: 0; padding: 0; margin: 0; border: 0; }
.review-rating > p { margin: -3px 0 11px; color: var(--muted); font-size: 0.7rem; }
.review-stars { display: grid; grid-template-columns: repeat(5, minmax(52px, 1fr)); gap: 8px; }
.review-stars input, .recommend-options input { position: absolute; opacity: 0; pointer-events: none; }
.review-stars label { min-height: 72px; display: grid; place-items: center; align-content: center; gap: 0; margin: 0; color: #98a2b3; background: var(--soft-2); border: 1.5px solid transparent; border-radius: 7px; cursor: pointer; transition: color 0.16s, background 0.16s, border-color 0.16s, transform 0.16s; }
.review-stars label:hover { color: #8a5c00; background: #fff9e9; transform: translateY(-2px); }
.review-stars label > span { margin: 0; color: inherit; font-size: 1.8rem; font-weight: 500; line-height: 1; }
.review-stars label small { color: inherit; font-size: 0.68rem; font-weight: 800; }
.review-stars label em { margin-top: 2px; color: var(--muted); font-size: 0.52rem; font-style: normal; font-weight: 600; }
.review-stars input:checked + label { color: #8a5c00; background: #fff7dd; border-color: #f4b942; }
.review-stars input:checked + label > span { color: #d79a14; }
.review-stars input:focus-visible + label, .recommend-options input:focus-visible + label { outline: 3px solid rgba(20, 112, 175, 0.28); outline-offset: 2px; }
.rating-status { margin: 8px 0 0 !important; }
.recommend-options { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.recommend-options label { min-height: 74px; display: grid; grid-template-columns: 31px 1fr; grid-template-rows: auto auto; column-gap: 12px; align-content: center; margin: 0; padding: 13px 15px; background: var(--soft-2); border: 1.5px solid transparent; border-radius: 7px; cursor: pointer; }
.recommend-options label > span { width: 31px; height: 31px; grid-row: 1 / 3; display: grid; place-items: center; margin: 0; color: var(--navy); background: var(--white); border: 1px solid var(--border); border-radius: 50%; }
.recommend-options strong { color: var(--navy); font-size: 0.78rem; }
.recommend-options small { color: var(--muted); font-size: 0.61rem; }
.recommend-options input:checked + label { background: #eff6ff; border-color: var(--blue); }
.recommend-options input:checked + label > span { color: var(--white); background: var(--blue); border-color: var(--blue); }
.review-count { display: block; margin-top: 7px; color: var(--muted); font-size: 0.68rem; font-style: normal; text-align: right; }
.review-submit { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-top: 3px; }
.review-submit p { margin: 0; color: var(--muted); font-size: 0.7rem; }
.review-submit button { min-width: 158px; }
.thank-you-page { min-height: 62vh; display: grid; place-items: center; padding: 72px 20px; background: var(--soft-2); }
.thank-you-card { width: min(660px, 100%); padding: clamp(34px, 7vw, 66px); text-align: center; background: var(--white); border-top: 5px solid var(--blue); box-shadow: var(--shadow); }
.thank-you-icon { width: 66px; height: 66px; display: grid; place-items: center; margin: 0 auto 23px; color: var(--white); background: #207a4c; border-radius: 50%; font-size: 1.8rem; }
.thank-you-card h1 { margin: 0; color: var(--navy); font-size: clamp(2rem, 5vw, 3.2rem); letter-spacing: -0.045em; }
.thank-you-card > p { max-width: 520px; margin: 17px auto 28px; color: var(--muted); }
@media (max-width: 950px) {
  .review-page { width: min(710px, calc(100% - 32px)); grid-template-columns: 1fr; gap: 38px; }
  .review-intro { position: static; padding-top: 0; }
  .review-intro h1 { max-width: 680px; }
}
@media (max-width: 590px) {
  .review-page { width: calc(100% - 24px); padding: 39px 0 46px; }
  .review-intro h1 { font-size: clamp(2.7rem, 13vw, 4rem); }
  .review-card { padding: 24px 18px 29px; }
  .review-heading { align-items: flex-start; }
  .review-grid, .recommend-options { grid-template-columns: 1fr; }
  .review-stars { gap: 5px; grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .review-stars label { min-height: 66px; }
  .review-stars label > span { font-size: 1.55rem; }
  .review-stars label em { display: none; }
  .review-submit { align-items: stretch; flex-direction: column; }
  .review-submit button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .review-page * { transition: none !important; }
}
