/* Shared review cards. Metadata appears only when the review supplies it.
   Patient accounts stay still; the silver finish belongs only to controls. */
.dio-review-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:20px;
  align-items:stretch;
  padding:0;
  margin:0;
  list-style:none;
}
.dio-review-card{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:16px;
  min-width:0;
  margin:0;
  padding:24px;
  border:1px solid #d4dfe4;
  border-radius:4px;
  background:#fafbfb;
  color:#203846;
  box-shadow:none;
  transform:none;
  font-family:var(--font,'Avenir Next',Avenir,Nunito Sans,sans-serif);
  font-size:17px;
  line-height:1.6;
  text-align:left;
  overflow-wrap:anywhere;
  animation:none;
  transition:none;
}
.dio-review-card[hidden],.dio-review-grid[hidden],.dio-review-control[hidden]{display:none!important}
.dio-review-card .dio-review-card-head{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:48px;
  margin:0;
  padding:0;
  border:0;
  background:none;
}
.dio-review-avatar{
  display:grid;
  position:relative;
  overflow:hidden;
  place-items:center;
  flex:0 0 48px;
  width:48px;
  height:48px;
  border:1px solid #d4dfe4;
  border-radius:50%;
  background:#e8eff2;
  color:#2f4453;
  font-size:20px;
  font-weight:500;
  line-height:1;
  letter-spacing:0;
}
.dio-review-avatar .dio-review-photo{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  margin:0;
  border:0;
  border-radius:inherit;
  object-fit:cover;
  opacity:0;
  transform:none;
  animation:none;
  transition:none;
}
/* The initial is also the no-script and failed-image fallback. */
.dio-review-avatar[data-photo-ready="true"] .dio-review-photo{opacity:1}
.dio-review-avatar[data-photo-ready="true"] .dio-review-initial{visibility:hidden}
/* 2026-11-11 audit: the date line is reserved, so a card without a date keeps its name level with its neighbours. */
.dio-review-identity{min-width:0;min-height:47px;display:flex;flex-direction:column;justify-content:center}   /* centred: a card with no date had its name at the top of the reserved space, off the round initial's centre */
.dio-review-card .dio-review-name{
  margin:0;
  padding:0;
  color:#203846;
  font:600 18px/1.35 var(--font,'Avenir Next',Avenir,Nunito Sans,sans-serif);
  letter-spacing:0;
  text-transform:none;
}
.dio-review-card .dio-review-date{
  display:block;
  margin:3px 0 0;
  color:#526873;
  font-size:14px;
  line-height:1.4;
  font-weight:400;
}
.dio-review-card .dio-review-metadata{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px 12px;
  margin:0;
  padding:0;
}
.dio-review-card .dio-review-rating{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px 10px;
  margin:0;
  padding:0;
  color:#4c6675;
}
.dio-review-stars{display:inline-flex;align-items:center;gap:3px;line-height:1;flex:none}
.dio-review-star{
  display:block;
  width:19px;
  height:19px;
  flex:none;
  fill:none;
  stroke:currentColor;
  stroke-width:1.5;
  stroke-linejoin:round;
  overflow:visible;
  filter:drop-shadow(0 1px 1px rgba(16,32,42,.25));
  animation:none;
  transition:none;
}
.dio-review-card .dio-review-rating-note,
.dio-review-card .dio-review-office{
  margin:0;
  padding:0;
  color:#526873;
  font-size:14px;
  font-weight:400;
  line-height:1.45;
  letter-spacing:0;
}
.dio-review-card .dio-review-text{
  display:block;
  min-width:0;
  max-width:none;
  width:auto;
  margin:0;
  padding:0;
  border:0;
  background:none;
  color:#203846;
  font:400 17px/1.6 var(--font,'Avenir Next',Avenir,Nunito Sans,sans-serif);
  letter-spacing:0;
  text-align:left;
  text-transform:none;
  white-space:pre-line;
  overflow-wrap:anywhere;
  box-shadow:none;
}
.dio-review-card .dio-review-text::before,
.dio-review-card .dio-review-text::after{content:none}
/* Full text is the default, including when scripts are unavailable. */
.dio-review-card[data-enhanced][data-expanded="false"] .dio-review-text{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:6;
  line-clamp:6;
  min-height:9.6em;
  overflow:hidden;
  white-space:normal; /* 2026-11-11 audit: one block while clamped, so blank paragraph lines do not use up the excerpt or strand the ellipsis */
}
.dio-review-card .dio-review-card-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  min-width:0;
  margin-top:auto;
  padding:0;
}
.dio-review-card .dio-review-source{
  display:block;
  min-height:0;
  margin:0;
  padding:14px 0 0;
  border:0;
  border-top:1px solid #e0e7ea;
  background:none;
  color:#526873;
  font-size:14px;
  font-weight:400;
  line-height:1.45;
  letter-spacing:0;
  text-transform:none;
}
/* Rounded reading controls, without the primary CTA's orange action layer. */
button.dio-review-control{
  display:inline-flex;
  position:relative;
  isolation:isolate;
  align-items:center;
  justify-content:center;
  min-width:48px;
  min-height:48px;
  max-width:100%;
  padding:10px 19px;
  border:1px solid #bcc7cc;
  border-radius:999px;
  background:var(--dio-alu-silver,linear-gradient(180deg,#e6e8e8 0%,#d4d7d7 38%,#c9cdcd 100%));
  color:#1c3341;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -1px 0 rgba(20,40,52,.28),inset 1px 0 0 rgba(255,255,255,.35),inset -1px 0 0 rgba(20,40,52,.12),0 1px 2px rgba(16,32,42,.12);
  font:500 16px/1.25 var(--font,'Avenir Next',Avenir,Nunito Sans,sans-serif);
  letter-spacing:0;
  text-align:center;
  text-decoration:none;
  text-transform:none;
  text-shadow:0 1px 0 rgba(255,255,255,.55);
  white-space:normal;
  cursor:pointer;
  clip-path:none;
  transform:none;
  animation:none;
  transition:none;
  -webkit-appearance:none;
  appearance:none;
}
button.dio-review-control::before{content:none}
button.dio-review-control::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  border-radius:inherit;
  pointer-events:none;
  opacity:.22;
  mix-blend-mode:overlay;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .5 0 0 0 1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:none;
  transition:none;
  transform:none;
}
button.dio-review-control:focus-visible{outline:2px solid #203846;outline-offset:3px}
button.dio-review-control:active{box-shadow:inset 0 1px 2px rgba(20,40,52,.2),inset 0 -1px 0 rgba(255,255,255,.8)}
@media(hover:hover){button.dio-review-control:hover{text-decoration:underline;text-underline-offset:3px}}
@media(min-width:900px){.dio-review-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* A strip inside an office card has less room than the page's main gallery. */
.dio-review-grid--compact{grid-template-columns:minmax(0,1fr)}
@media(max-width:599px){
  .dio-review-grid{gap:16px}
  .dio-review-card{padding:20px;gap:14px}
  .dio-review-card .dio-review-name{font-size:17px}
}
@media(forced-colors:active){
  .dio-review-card{background:Canvas;color:CanvasText;border-color:CanvasText}
  .dio-review-avatar{background:Canvas;color:CanvasText;border-color:CanvasText}
  .dio-review-card :is(.dio-review-name,.dio-review-date,.dio-review-text,.dio-review-source,.dio-review-rating,.dio-review-rating-note,.dio-review-office){color:CanvasText}
  .dio-review-card .dio-review-source{border-color:CanvasText}
  .dio-review-star{filter:none}
  .dio-review-star .dio-star-highlight{display:none}
  .dio-review-star .dio-star-surface{stroke:CanvasText!important;fill:Canvas!important}
  .dio-review-star.is-filled .dio-star-surface{fill:CanvasText!important}
  .dio-review-star.is-outline .dio-star-surface{fill:none!important}
  button.dio-review-control{background:ButtonFace;color:ButtonText;border-color:ButtonText;box-shadow:none;text-shadow:none;forced-color-adjust:auto}
  button.dio-review-control::after{display:none}
  button.dio-review-control:focus-visible{outline-color:Highlight}
}
@media print{
  .dio-review-grid{display:block}
  .dio-review-card{break-inside:avoid;margin-bottom:18px;background:#fff;color:#000}
  .dio-review-card[data-enhanced][data-expanded="false"] .dio-review-text{display:block;min-height:0;max-height:none;-webkit-line-clamp:unset;line-clamp:unset;overflow:visible}
  .dio-review-card-actions,.dio-review-control{display:none!important}
}
