.etp-review-page,
.etp-review-examples {
  --review-paper: var(--paper, #efefec);
  --review-raised: var(--paper-raised, #f7f7f3);
  --review-ink: var(--ink, #292825);
  --review-muted: var(--ink-soft, #66635e);
  --review-line: var(--hairline, rgba(41, 40, 37, .14));
  --review-walnut: var(--walnut, #503225);
  color: var(--review-ink);
  font-family: var(--sans, Arial, sans-serif);
}
.etp-review-page {
  min-height: 70vh;
  background: var(--review-paper);
  padding: clamp(36px, 6vw, 96px) 20px 110px;
}
.etp-review-shell { width: min(100%, 900px); margin: 0 auto; }
.etp-review-back {
  display: inline-block; margin-bottom: clamp(48px, 7vw, 88px);
  color: var(--review-muted); font-size: 13px; letter-spacing: .01em;
  text-decoration: none; border-bottom: 1px solid transparent;
}
.etp-review-back:hover { color: var(--review-ink); border-bottom-color: currentColor; }
.etp-review-intro { text-align: center; margin: 0 auto clamp(48px, 7vw, 80px); max-width: 690px; }
.etp-review-eyebrow,
.etp-review-examples__intro > span {
  color: var(--review-walnut); text-transform: uppercase; letter-spacing: .2em;
  font-size: 11px; font-weight: 600;
}
.etp-review-intro h1,
.etp-review-complete h2,
.etp-review-examples__intro h2 {
  font: normal clamp(42px, 6vw, 68px)/1.08 var(--serif, Georgia, serif);
  letter-spacing: -.045em; margin: 18px 0 20px; text-wrap: balance;
}
.etp-review-intro > p { color: var(--review-muted); font-size: clamp(16px, 1.7vw, 18px); line-height: 1.7; }
.etp-review-intro > .etp-review-intro__reward {
  max-width: 620px; margin: 24px auto 0; padding-top: 22px;
  border-top: 1px solid var(--review-line); color: var(--review-walnut); font-size: 15px;
}
.etp-review-intro > .etp-review-intro__preview {
  margin: 24px auto 0; color: var(--review-muted); font-size: 12px;
  letter-spacing: .02em;
}
.etp-review-intro__preview + .etp-review-intro__reward { margin-top: 10px; }
.etp-review-form { display: grid; gap: 18px; }
.etp-review-panel {
  background: var(--review-raised); border: 1px solid var(--review-line);
  padding: clamp(26px, 4.5vw, 54px);
  display: grid; grid-template-columns: 38px minmax(0, 1fr);
  column-gap: clamp(16px, 2.5vw, 30px);
}
.etp-review-panel__number {
  font-size: 12px; color: var(--review-walnut); letter-spacing: .08em;
  padding-top: 8px;
}
.etp-review-panel > div:nth-child(2) h2 {
  font: normal clamp(30px, 3.5vw, 40px)/1.12 var(--serif, Georgia, serif);
  letter-spacing: -.035em; margin: 0 0 9px;
}
.etp-review-panel > div:nth-child(2) p { color: var(--review-muted); margin: 0; line-height: 1.6; }
.etp-review-products,
.etp-review-rating,
.etp-review-field,
.etp-review-uploads,
.etp-review-file-list { grid-column: 2; }
.etp-review-products { display: grid; gap: 12px; margin-top: 30px; }
.etp-review-product {
  display: flex; align-items: center; gap: 22px; min-height: 116px;
  padding: 12px 18px 12px 12px; border: 1px solid var(--review-line);
  background: #fff; cursor: pointer; transition: border-color .2s ease, background .2s ease;
}
.etp-review-product:has(input:checked) { border-color: var(--review-walnut); background: #fcfaf7; }
.etp-review-product:focus-within { outline: 2px solid var(--focus, #355d55); outline-offset: 2px; }
.etp-review-product input { accent-color: var(--review-walnut); }
.etp-review-product img { flex: 0 0 90px; width: 90px; height: 90px; object-fit: contain; background: var(--review-paper); }
.etp-review-product strong { display: block; font-size: 15px; font-weight: 600; line-height: 1.35; }
.etp-review-product small { display: block; color: var(--review-muted); margin-top: 8px; font-size: 12px; }
.etp-review-product__check { margin-left: auto; opacity: 0; color: var(--review-walnut); }
.etp-review-product:has(input:checked) .etp-review-product__check { opacity: 1; }
.etp-review-rating {
  border: 0; padding: 0; margin: 32px 0 0;
}
.etp-review-rating legend,
.etp-review-field > span { font-size: 14px; font-weight: 600; margin-bottom: 11px; }
.etp-review-rating__choices { display: flex; flex-wrap: wrap; gap: 7px; }
.etp-review-rating__choices label { cursor: pointer; position: relative; display: inline-grid; place-items: center; width: 49px; height: 49px; }
.etp-review-rating__choices input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.etp-review-rating__choices span[aria-hidden] { color: #c4beb5; font-size: 34px; line-height: 1; transition: color .15s ease, transform .15s ease; }
.etp-review-rating__choices label.is-filled span[aria-hidden],
.etp-review-rating__choices label:hover span[aria-hidden] { color: var(--review-walnut); transform: scale(1.06); }
.etp-review-rating__choices input:focus-visible + span { outline: 2px solid var(--focus, #355d55); outline-offset: 4px; }
.etp-review-rating .screen-reader-text {
  position: absolute !important; width: 1px !important; height: 1px !important;
  padding: 0 !important; margin: -1px !important; overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important;
}
.etp-review-field { display: grid; margin-top: 34px; }
.etp-review-field textarea,
.etp-review-field input {
  width: 100%; background: #fff; border: 1px solid var(--review-line);
  border-radius: 0; color: var(--review-ink); font: inherit;
  padding: 16px 18px; box-shadow: none;
}
.etp-review-field textarea { resize: vertical; min-height: 164px; line-height: 1.65; }
.etp-review-field input { min-height: 52px; }
.etp-review-field textarea:focus,
.etp-review-field input:focus { outline: 2px solid var(--focus, #355d55); outline-offset: 2px; }
.etp-review-field--name { max-width: 420px; }
.etp-review-uploads { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 30px; }
.etp-review-upload {
  display: flex; flex-direction: column; align-items: flex-start; justify-content: center;
  min-height: 165px; padding: 20px 25px; border: 1px dashed #aaa39a;
  background: #fff; cursor: pointer; transition: border-color .2s ease, background .2s ease;
}
.etp-review-upload:hover, .etp-review-upload:focus-within { border-color: var(--review-walnut); background: #fcfaf7; }
.etp-review-upload > span { font: normal 29px/1 var(--serif, Georgia, serif); color: var(--review-walnut); margin-bottom: 13px; }
.etp-review-upload strong { font-size: 14px; font-weight: 600; }
.etp-review-upload small { color: var(--review-muted); margin-top: 7px; font-size: 12px; }
.etp-review-upload input {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.etp-review-file-list { color: var(--review-muted); font-size: 13px; }
.etp-review-file-list:empty { display: none; }
.etp-review-file-list { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 12px; }
.etp-review-file-preview { width: min(100%, 180px); margin: 0; position: relative; }
.etp-review-file-preview img, .etp-review-file-preview video {
  width: 100%; height: 130px; display: block; object-fit: cover; background: var(--review-paper);
}
.etp-review-file-preview figcaption { overflow-wrap: anywhere; margin-top: 7px; font-size: 11px; line-height: 1.35; }
.etp-review-file-preview button {
  border: 1px solid var(--review-line); background: white; color: var(--review-ink);
  font: inherit; font-size: 11px; padding: 5px 10px; margin-top: 6px; cursor: pointer;
}
.etp-review-file-error { width: 100%; color: var(--error, #9a3838); font-size: 12px; }
.etp-review-submit {
  text-align: center; margin: 32px auto 0; width: min(100%, 660px);
}
.etp-review-submit p { color: var(--review-muted); font-size: 12px; line-height: 1.75; margin-bottom: 30px; }
.etp-review-submit small { display: block; margin-top: 17px; color: var(--review-muted); }
.etp-review-button {
  display: inline-flex; justify-content: center; align-items: center; min-height: 55px;
  padding: 15px 34px; background: var(--review-walnut); border: 1px solid var(--review-walnut);
  color: white !important; font: 600 13px/1.2 var(--sans, Arial, sans-serif);
  letter-spacing: .05em; text-decoration: none; cursor: pointer; transition: background .2s ease;
}
.etp-review-button:hover { background: var(--walnut-deep, #2f1d17); }
.etp-review-button:focus-visible { outline: 2px solid var(--focus, #355d55); outline-offset: 3px; }
.etp-review-button:disabled { opacity: .6; cursor: wait; }
.etp-review-form:not(form) .etp-review-button:disabled { cursor: default; }
.etp-review-error { padding: 18px 24px; background: #fff5f1; border-left: 2px solid var(--error, #9a3838); }
.etp-review-complete { background: var(--review-raised); border: 1px solid var(--review-line); text-align: center; padding: clamp(34px, 6vw, 76px); }
.etp-review-complete__mark { font-size: 36px; color: var(--review-walnut); }
.etp-review-complete h2 { font-size: clamp(38px, 5vw, 58px); }
.etp-review-complete > p { color: var(--review-muted); line-height: 1.7; }
.etp-review-complete blockquote { font: normal 21px/1.5 var(--serif, Georgia, serif); margin: 40px auto; max-width: 570px; }
.etp-review-complete__scores { color: var(--review-walnut) !important; font-size: 13px; margin-top: 25px; }
.etp-review-complete__media { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin: 0 auto 28px; }
.etp-review-complete__media img, .etp-review-complete__media video { width: min(100%, 280px); max-height: 260px; object-fit: cover; }
.etp-review-gift { display: grid; gap: 10px; justify-items: center; padding: 26px; margin: 35px auto; border-top: 1px solid var(--review-line); border-bottom: 1px solid var(--review-line); }
.etp-review-gift span { color: var(--review-walnut); text-transform: uppercase; letter-spacing: .16em; font-size: 10px; }
.etp-review-gift strong { font: normal 22px/1.3 var(--serif, Georgia, serif); }
.etp-review-gift code { background: #fff; padding: 9px 13px; font-size: 14px; user-select: all; }
.etp-review-examples { padding: clamp(55px, 8vw, 110px) 20px; }
.etp-review-examples__intro { text-align: center; margin-bottom: 42px; }
.etp-review-examples__intro h2 { font-size: clamp(36px, 5vw, 54px); }
.etp-review-examples__grid { max-width: 1180px; margin: auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 20px; }
.etp-review-example { background: var(--review-raised); border: 1px solid var(--review-line); }
.etp-review-example__media { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3px; }
.etp-review-example__media figure { margin: 0; min-width: 0; }
.etp-review-example__media figure:first-child { grid-column: 1 / -1; }
.etp-review-example__media img, .etp-review-example__media video { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: var(--review-paper); }
.etp-review-example__body { padding: 25px; }
.etp-review-example__scores { color: var(--review-walnut); font-size: 12px; letter-spacing: .03em; }
.etp-review-example blockquote { font: normal 21px/1.4 var(--serif, Georgia, serif); margin: 22px 0; }
.etp-review-example__byline { font-size: 12px; color: var(--review-muted); }
.etp-review-example__disclosure { font-size: 11px; color: var(--review-muted); line-height: 1.5; border-top: 1px solid var(--review-line); padding-top: 15px; }
.etp-account-review-entry { margin: 32px 0 0; padding: 28px; border: 1px solid var(--hairline, rgba(41,40,37,.14)); background: var(--paper-raised, #f7f7f3); }
.etp-account-review-entry h3 { margin: 0 0 10px; font: normal 30px/1.2 var(--serif, Georgia, serif); }
.etp-account-review-entry p { margin: 0 0 20px; color: var(--ink-soft, #66635e); }
.etp-account-review-entry a.button { background: var(--walnut, #503225); color: #fff; border-color: var(--walnut, #503225); }
@media (max-width: 620px) {
  .etp-review-page { padding-inline: 14px; }
  .etp-review-panel { grid-template-columns: 1fr; }
  .etp-review-panel__number { padding: 0 0 13px; }
  .etp-review-products, .etp-review-rating, .etp-review-field, .etp-review-uploads, .etp-review-file-list { grid-column: 1; }
  .etp-review-uploads { grid-template-columns: 1fr; }
  .etp-review-upload { min-height: 130px; }
  .etp-review-product { gap: 12px; }
  .etp-review-product img { width: 65px; height: 65px; flex-basis: 65px; }
}
