.reviews.page-section { max-width: none; padding-block: var(--section-space); }
/* About's bottom inset supplies the shared gap between these paper sections. */
.about.page-section + .reviews.page-section { padding-top: 0; }
.reviews > h2 { font-size: var(--type-section); margin-bottom: var(--heading-gap); }
.review-panel { max-width: 792px; margin: auto; padding: 0; font-family: var(--font-ui); }
.review-list.glsr { --glsr-review-row-gap: 20px; --glsr-review-star: 21px; }
.review-list.glsr .glsr-reviews { grid-template-columns: minmax(0, 1fr); }
.review-list.glsr .glsr-review { display: block; min-width: 0; padding: 28px 0 24px; overflow-wrap: anywhere; border-top: var(--border-surface); }
.review-panel [hidden] { display: none !important; }
.review-list.glsr .glsr-review { scroll-margin-top: 140px; }
.review-panel :is(button,summary):focus-visible, .review-panel .glsr-review:focus-visible { outline: var(--focus-ring); outline-offset: 3px; }
.review-copy .review-preview { margin: 0; font: var(--type-ui)/var(--leading-ui) var(--font-reading); }
.review-reading > summary { width: fit-content; max-width: 100%; min-height: var(--control-height); padding: 10px 0; color: var(--text-accent); font: var(--type-ui)/var(--leading-ui) var(--font-ui); text-decoration-line: underline; text-underline-offset: var(--link-underline-offset); cursor: pointer; }
.review-reading > summary:hover { color: var(--link-hover); }
.review-reading:not([open]) .review-collapse-label, .review-reading[open] .review-read-label, .review-copy:has(.review-reading[open]) > .review-preview { display: none; }
.review-reading[open] .glsr-review-content { margin-top: 6px; }
.review-byline { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 20px; margin-bottom: 2px; }
.review-byline h3 { min-width: 0; max-width: 100%; margin: 0; font: var(--type-card)/1.3 var(--font-display); }
.review-list.glsr .glsr-review-date { flex: 0 0 auto; max-width: 100%; white-space: normal; font-size: var(--type-meta); }
.review-list .glsr-review-rating { margin: 0 0 6px; }
.review-list .glsr-review-content { font: var(--type-ui)/var(--leading-ui) var(--font-reading); }
.review-list .glsr-review-content p { margin: 0; font: inherit; }
.review-video { display: block; width: 100%; height: auto; max-height: 420px; margin-top: 12px; background: #15272c; }
.review-video[hidden] { display: none; }
.review-list, .review-dialog { --glsr-star-full: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23a48b50' stroke='%23777355' stroke-width='.8' stroke-linejoin='round' d='m12 2 3 6.8 7.4.7-5.6 4.8 1.7 7.2-6.5-3.8-6.5 3.8 1.7-7.2-5.6-4.8L9 8.8Z'/%3E%3C/svg%3E"); --glsr-star-empty: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23777355' stroke-width='.8' stroke-linejoin='round' d='m12 2 3 6.8 7.4.7-5.6 4.8 1.7 7.2-6.5-3.8-6.5 3.8 1.7-7.2-5.6-4.8L9 8.8Z'/%3E%3C/svg%3E"); }
.review-attachment { display: block; max-width: 300px; margin-top: 20px; }
.review-attachment img { display: block; width: auto; max-width: 100%; height: auto; max-height: 300px; object-fit: contain; }
.reviews > .review-open { display: block; margin: 44px auto 0; padding: 10px 30px; }
.review-dialog { box-sizing: border-box; width: min(510px, calc(100% - 32px)); max-height: calc(100dvh - 40px); overflow: auto; padding: 28px; border: var(--border-surface); border-radius: var(--radius-card); box-shadow: var(--shadow-dialog); background: var(--color-paper); color: var(--color-ink); }
.review-dialog::backdrop { background: var(--dialog-backdrop); }
.review-dialog { --glsr-form-error: var(--field-error); --glsr-input-border-color: var(--control-border); }
.review-dialog > h2 { margin: 0 48px 24px 0; text-align: left; overflow-wrap: anywhere; font: 32px/1.4 var(--font-display); }
.review-close { position: absolute; top: 10px; right: 10px; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%; color: var(--color-ink); background: var(--color-sand); cursor: pointer; font: 28px/1 Arial, sans-serif; }
.review-dialog .glsr-default form.glsr-form { gap: 16px; font: var(--type-ui)/var(--leading-ui) var(--font-ui); --glsr-text-sm: var(--type-meta); --glsr-description-text: var(--type-meta); }
.review-dialog .glsr-default form.glsr-form label.glsr-label { font: var(--type-ui)/var(--leading-ui) var(--font-ui); }
.review-dialog .glsr-field:has([required]) > .glsr-label::after { content: ' *'; }
.review-dialog .glsr-star-rating--stars { gap: 12px; }
.review-dialog .glsr-default .glsr-input, .review-dialog .glsr-default .glsr-textarea { border: 1px solid var(--control-border); border-radius: var(--radius-control); background: var(--color-paper); color: var(--color-ink); }
/* Outrank vendor type rules without changing the field/error border cascade. */
.review-dialog .glsr-default form.glsr-form :is(.glsr-input, .glsr-textarea) { font: var(--type-ui)/var(--leading-ui) var(--font-ui); min-height: var(--field-height); padding: 10px 12px; }
.review-dialog .glsr-default form.glsr-form .glsr-field-error { font-family: var(--font-ui); }
.review-dialog .glsr-default :is(.glsr-input, .glsr-textarea).glsr-is-invalid { border-color: var(--field-error); }
.review-dialog .glsr-default form.glsr-form :is(input.glsr-input, textarea.glsr-textarea):focus-visible { outline: var(--focus-ring); outline-offset: 3px; box-shadow: none; }
.review-dialog .glsr-default form.glsr-form .glsr-textarea { min-height: 140px; }
.review-dialog .glsr-default .glsr-button { width: 100%; min-height: var(--control-height); border: 1px solid var(--action-fill); border-radius: var(--radius-control); background: var(--action-fill); color: var(--action-text); font: var(--type-ui)/var(--leading-ui) var(--font-ui); }
.review-dialog .glsr-default .glsr-button:hover { background: var(--action-hover); border-color: var(--action-hover); }
.review-dialog [data-field=submit-button] { margin-top: 8px; }
.review-dialog .wp-block-button, .review-dialog .wp-block-buttons { width: 100%; }
.review-upload { display: grid; gap: 8px; font: var(--type-ui)/var(--leading-ui) var(--font-ui); }
.review-file-picker { position: relative; width: 180px; min-height: var(--control-height); padding: 10px 20px; color: var(--color-accent); background: var(--action-secondary-fill); border: 1px solid var(--action-secondary-fill); border-radius: var(--radius-control); text-align: center; transition: background-color var(--interaction-duration) var(--interaction-ease), border-color var(--interaction-duration) var(--interaction-ease), color var(--interaction-duration) var(--interaction-ease); }
.review-file-picker input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.review-file-picker:focus-within { outline: var(--focus-ring); outline-offset: 3px; }
.review-file-picker:hover { background: var(--action-secondary-hover); border-color: var(--action-secondary-hover); }
.review-file-name { overflow-wrap: anywhere; }
.review-file-name:empty { display: none; }
.review-upload small { font-size: var(--type-meta); line-height: 1.5; }
/* Keep desktop dialog opening stable; phones use overlay scrollbars. */
html:has(.reviews) { scrollbar-gutter: stable; }
html:has(.review-dialog[open], .review-story-dialog[open]) { overflow: hidden; }
@media (max-width: 640px) {
  .review-panel { padding: 0; }
  .review-list.glsr .glsr-review { padding-block: 22px; }
  .review-byline { gap: 4px 10px; }
  .review-dialog { padding: 24px 22px; }
  .review-dialog > h2 { font-size: 28px; }
}

/* Shared server-rendered carousel; JavaScript adds motion and dialog reading. */
.reviews.page-section { background: var(--surface-page); }
.reviews .testimonial-heading {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: var(--copy-heading-gap) var(--card-space); max-width: var(--measure-feature); margin: 0 auto var(--heading-gap);
}
.reviews .testimonial-heading h2 { margin: 0; font-size: var(--type-section); text-align: start; }
.reviews .testimonial-heading .review-open { margin: 0; padding: 10px 24px; }
.reviews .review-panel { max-width: var(--measure-feature); }
.reviews .testimonial-carousel {
  position: relative;
  display: grid; grid-template-columns: 48px minmax(0, 1fr) 48px;
  align-items: center; gap: 20px; min-width: 0;
  width: calc(100% + 136px); margin-inline: -68px;
}
.reviews .testimonial-carousel > .shortcode-site-reviews { grid-column: 2; grid-row: 1; min-width: 0; }
.reviews .testimonial-carousel .glsr-reviews {
  grid-template-columns: repeat(var(--reviews-per-view, 3), minmax(0, 1fr)) !important;
  gap: 24px;
}
@media (max-width: 1100px) {
  .reviews .testimonial-carousel .glsr-reviews { touch-action: pan-y pinch-zoom; }
}
.reviews .testimonial-carousel .glsr-reviews.reviews-sweeping {
  overflow: hidden; overflow: clip; overflow-clip-margin: 20px;
}
.reviews .testimonial-carousel .glsr-review.review-sweep-card {
  grid-row: 1; grid-column: var(--review-sweep-column) !important;
  width: var(--review-sweep-width) !important; justify-self: center; box-sizing: border-box;
}
.reviews .testimonial-carousel .review-list.glsr .glsr-review {
  display: flex; flex-direction: column;
  min-height: max(432px, var(--review-card-height, 0px)); padding: var(--panel-space); border: 1px solid #d7dcd7;
  background: var(--surface-page); border-radius: 4px;
  transition: box-shadow var(--interaction-duration) var(--interaction-ease);
}
@media (hover: hover) {
  .reviews .testimonial-carousel .review-list.glsr .glsr-review:hover { box-shadow: 0 4px 14px #14272e17; }
}
.reviews .testimonial-carousel .glsr-reviews.reviews-measuring {
  position: absolute; top: 0; left: 0; width: var(--reviews-measure-width);
  visibility: hidden; pointer-events: none; --review-card-height: 0px;
}
.testimonial-carousel[data-per-view="3"][data-visible="1"] .glsr-review:not([hidden]) { grid-column: 2; }
.testimonial-carousel[data-per-view="2"][data-visible="1"] .glsr-review:not([hidden]) { grid-column: 1 / -1; width: calc((100% - 24px) / 2); justify-self: center; box-sizing: border-box; }
.reviews .testimonial-carousel .glsr-review[hidden] { display: none !important; }
.reviews--interactive .testimonial-carousel .review-reading,
.reviews--interactive .testimonial-carousel .glsr-review > :is(.review-attachment, .review-video, .glsr-review-response) { display: none; }
.reviews .testimonial-carousel .review-preview,
.reviews--interactive .testimonial-carousel .glsr-review > .glsr-review-content {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 7;
  overflow: hidden; font: 18px/1.65 var(--font-reading); margin: 0;
}
.reviews .testimonial-carousel .review-copy { margin-bottom: 0; }
.testimonial-carousel .review-media-summary {
  display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 14px 0 0;
  color: #50615c; font: 15px/1.5 var(--font-ui);
}
.review-media-type { display: flex; flex: 1 1 160px; align-items: center; gap: 10px; min-width: 0; max-width: 100%; }
.review-media-thumbnail { position: relative; display: block; flex: 0 0 60px; width: 60px; height: 60px; background: var(--surface-support); border-radius: 2px; overflow: hidden; }
.review-media-thumbnail img { display: block; width: 100%; height: 100%; object-fit: contain; }
.review-media-thumbnail svg { position: absolute; right: 2px; bottom: 2px; width: 22px; height: 22px; padding: 2px; border-radius: 2px; color: var(--color-ink); background: var(--surface-page); }
.review-media-label { min-width: 0; }
.review-media-summary + .review-story-open { margin-top: 0; }
.review-story-open {
  display: block; width: fit-content; max-width: 100%; margin: 14px 0 0;
  min-height: 44px; padding: 9px 0; border: 0; background: transparent;
  color: var(--color-accent); font: 16px/1.5 var(--font-ui); text-align: start;
  text-decoration-line: underline; text-underline-offset: var(--link-underline-offset); cursor: pointer;
}
.review-story-open[hidden] { display: none; }
.review-story-open { transition: color var(--interaction-duration) var(--interaction-ease); }
.review-story-open:is(:hover, :focus-visible) { color: var(--link-hover); text-decoration-thickness: var(--link-underline-active-width); }
.reviews .review-arrow {
  display: grid; place-items: center; width: 48px; height: 48px;
  padding: 0;
}
.reviews .review-arrow svg { width: 22px; height: 22px; }
.reviews .review-arrow-prev { grid-column: 1; grid-row: 1; }
.reviews .review-arrow-next { grid-column: 3; grid-row: 1; }
.reviews .carousel-status {
  grid-column: 2; grid-row: 2; margin: 0; text-align: center;
  color: #50615c; font: 15px/1.5 var(--font-ui);
}
.reviews :is(.review-arrow, .review-story-open):focus-visible,
.review-story-dialog button:focus-visible { outline: var(--focus-ring); outline-offset: 4px; }
.newsletter.page-section { margin-top: 0; }
.review-story-dialog {
  width: min(760px, calc(100% - 32px)); max-height: calc(100dvh - 40px);
  box-sizing: border-box; overflow: hidden; overflow-wrap: anywhere; overscroll-behavior: contain;
  padding: 28px; border: var(--border-surface); border-radius: var(--radius-card);
  background: var(--surface-page); color: var(--color-ink); box-shadow: var(--shadow-dialog);
}
.review-story-dialog[open] { display: flex; flex-direction: column; }
.review-story-dialog::backdrop { background: var(--dialog-backdrop); }
.review-story-dialog h2 { flex-shrink: 0; margin: 0 48px 24px 0; font: 32px/1.4 var(--font-display); }
.review-story-close {
  position: absolute; right: 12px; top: 12px; width: 44px; height: 44px;
  padding: 0; border: 0; border-radius: 50%; background: var(--surface-support);
  color: var(--color-ink); font: 28px/1 Arial,sans-serif; cursor: pointer;
}
.review-story-meta { display: flex; flex-shrink: 0; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-bottom: 20px; font: 15px/1.5 var(--font-ui); }
/* Gap-aware sizing: H + gap + (H - gap) / 2, so every preview is square. */
.review-story-media:not([hidden]) { --review-preview-size: min(16dvh, 140px, max(118px, calc((100vw - 90px) / 3 - 2px))); display: grid; grid-template-columns: var(--review-preview-size) minmax(0, 1fr); grid-template-rows: repeat(2, minmax(0, 1fr)); align-self: flex-start; flex: 0 0 auto; gap: 6px; width: calc(var(--review-preview-size) * 1.5 + 3px); max-width: 100%; height: var(--review-preview-size); margin-bottom: 24px; }
.review-story-media > .review-media-item { position: relative; display: block; min-width: 0; min-height: 0; max-width: none; margin: 0; overflow: hidden; border-radius: 3px; background: var(--surface-support); }
.review-story-media > .review-media-item:first-child { grid-row: 1 / -1; }
.review-story-media[data-count="1"] { grid-template-columns: minmax(0, 1fr); width: var(--review-preview-size); }
.review-story-media[data-count="2"] > .review-media-item:nth-child(2) { grid-row: 1 / -1; align-self: center; aspect-ratio: 1; }
.review-story-media > .review-media-item[hidden] { display: none; }
.review-story-media img { display: block; width: 100%; height: 100%; max-width: 100%; max-height: 100%; margin: 0; object-fit: cover; }
.review-media-play { position: absolute; z-index: 1; top: 50%; left: 50%; display: grid; place-items: center; width: 30px; height: 30px; transform: translate(-50%, -50%); border-radius: 50%; color: white; background: rgb(12 26 25 / .75); pointer-events: none; }
.review-media-play svg { width: 18px; height: 18px; }
.review-media-item--video .gallery-open-cue { display: none; }
.review-media-item:not(:first-child) .gallery-open-cue { padding: 5px; }
.review-media-item:not(:first-child) .gallery-open-cue svg { width: 18px; height: 18px; }
.review-media-item:not(:first-child) .gallery-open-label { display: none; }
.review-media-more { position: absolute; z-index: 2; inset: 0; display: grid; place-items: center; background: rgb(12 26 25 / .58); color: white; font: 20px/1 var(--font-ui); pointer-events: none; }
.review-media-item:has(.review-media-more) .gallery-open-cue { display: none; }
.review-media-item:has(.review-media-more):focus-visible .review-media-more { text-decoration: underline; text-underline-offset: 4px; }
.review-story-body { flex: 0 1 auto; min-height: 0; overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.review-story-body :is(.glsr-review-content, p) { font: 18px/1.75 var(--font-reading); }
.review-story-body p { margin: 0 0 20px; }
.review-story-body :is(img, video) { max-width: 100%; height: auto; }
@media (max-width: 740px) {
  .reviews .testimonial-carousel { grid-template-columns: 48px minmax(0, 1fr) 48px; gap: 20px 12px; }
  .reviews .testimonial-carousel > .shortcode-site-reviews { grid-column: 1 / -1; }
  .reviews .review-arrow-prev { grid-row: 2; }
  .reviews .review-arrow-next { grid-row: 2; }
  .reviews .testimonial-carousel .review-list.glsr .glsr-review { min-height: max(426px, var(--review-card-height, 0px)); }
}
@media (max-width: 640px) {
  .review-story-dialog { padding: 24px 22px; }
  .review-story-dialog h2 { font-size: 28px; }
}
@media (max-height: 600px) {
  .review-dialog, .review-story-dialog { padding-block: 20px; }
  .review-dialog > h2, .review-story-dialog h2 { margin-bottom: 16px; font-size: 26px; }
  .review-story-meta { gap: 8px 16px; font-size: 14px; }
  .review-story-media:not([hidden]) { --review-preview-size: min(16dvh, 94px); margin-bottom: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .reviews .testimonial-carousel .review-list.glsr .glsr-review { transition: none; }
  .testimonial-carousel *, .review-story-dialog * { scroll-behavior: auto !important; }
}

.reviews > h2 { max-width: var(--measure-feature); text-align: start; }
.testimonial-carousel .review-list.glsr { --glsr-review-star: 18px; }
.testimonial-carousel .glsr-review-rating { margin: 0 0 20px; }
.testimonial-carousel .review-byline { margin: auto 0 0; padding-top: 22px; gap: 8px 16px; }
.testimonial-carousel .review-byline h3 { font: 18px/1.4 var(--font-ui); }
.testimonial-carousel .review-list.glsr .glsr-review-date { color: #50615c; font-size: 15px; }
.reviews .review-arrow:disabled { opacity: .4; cursor: default; }
@media (max-width: 1599px) {
  .reviews .testimonial-carousel { width: 100%; margin-inline: 0; gap: 20px 12px; }
  .reviews .testimonial-carousel > .shortcode-site-reviews { grid-column: 1 / -1; }
  .reviews .review-arrow-prev, .reviews .review-arrow-next { grid-row: 2; }
}
@media (max-width: 740px) {
  html:has(.reviews) { scrollbar-gutter: auto; }
}

/* The same cards and controls have a native URL destination before enhancement. */
.testimonial-carousel .review-arrow { text-decoration: none; }
.testimonial-carousel .review-byline { order: 5; }
.reviews:not(.reviews--interactive) .testimonial-carousel .review-list.glsr .glsr-review[data-review-offset] { display: none; }
.reviews:not(.reviews--interactive) .testimonial-carousel .review-list.glsr .glsr-review:is([data-review-offset="0"], [data-review-offset="1"], [data-review-offset="2"]) { display: flex; }
.testimonial-carousel .review-capacity-1, .testimonial-carousel .review-capacity-2 { display: none; }
@media (min-width: 1101px) {
  .reviews:not(.reviews--interactive) .testimonial-carousel[data-visible="1"] .glsr-review[data-review-offset="0"] { grid-column: 2; }
}
@media (min-width: 741px) and (max-width: 1100px) {
  .reviews:not(.reviews--interactive) .testimonial-carousel .glsr-reviews { --reviews-per-view: 2; }
  .reviews:not(.reviews--interactive) .testimonial-carousel .review-list.glsr .glsr-review[data-review-offset="2"] { display: none; }
  .testimonial-carousel .review-capacity-3 { display: none; }
  .testimonial-carousel .review-capacity-2 { display: grid; }
  .carousel-status .review-capacity-2 { display: inline; }
  .reviews:not(.reviews--interactive) .testimonial-carousel[data-visible="1"] .glsr-review[data-review-offset="0"] { grid-column: 1 / -1; width: calc((100% - 24px) / 2); justify-self: center; }
}
@media (max-width: 740px) {
  .reviews:not(.reviews--interactive) .testimonial-carousel .glsr-reviews { --reviews-per-view: 1; }
  .reviews:not(.reviews--interactive) .testimonial-carousel .review-list.glsr .glsr-review[data-review-offset="0"] { grid-column: 1; width: auto; }
  .reviews:not(.reviews--interactive) .testimonial-carousel .review-list.glsr .glsr-review:is([data-review-offset="1"], [data-review-offset="2"]) { display: none; }
  .testimonial-carousel .review-capacity-3 { display: none; }
  .testimonial-carousel .review-capacity-1 { display: grid; }
  .carousel-status .review-capacity-1 { display: inline; }
}

.testimonial-heading > .wp-block-details { border: 0; margin: 0; padding: 0; }
.testimonial-heading > .wp-block-details > summary { list-style: none; padding: 10px 24px; font: var(--type-ui)/var(--leading-ui) var(--font-ui); }
.testimonial-heading > .wp-block-details > summary::-webkit-details-marker { display: none; }
.testimonial-heading > .wp-block-details[open] { flex-basis: 100%; }
.testimonial-heading > .wp-block-details[open] > summary { width: fit-content; margin-bottom: var(--card-space); }

.review-native-media { margin-top: 14px; }
.review-native-media > summary.review-media-summary { margin: 0; cursor: pointer; list-style: none; }
.review-native-media > summary::-webkit-details-marker { display: none; }
.review-native-media > summary .review-media-label { text-decoration: underline; text-underline-offset: var(--link-underline-offset); }
.review-native-media[open] > summary { margin-bottom: 14px; }
