/* ========== REVIEW CAROUSEL (3D ring) ========== */
.rc-section{background:linear-gradient(180deg,var(--mist) 0%,#fff 100%);padding:1.25rem 0 2.25rem;overflow:hidden;position:relative}
.rc-section::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 55%,rgba(13,148,136,.09),transparent 60%);pointer-events:none}
.rc-head{text-align:center;position:relative;z-index:1;margin-bottom:.4rem}
.rc-head h2{font-size:1.15rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--slate)}
.rc-head h2::after{content:"";display:block;width:2.5rem;height:3px;background:var(--teal);margin:.45rem auto 0;border-radius:2px}
.rc-summary{margin-top:.6rem;color:var(--slate-mid);font-size:.9rem;font-weight:600}
.rc-summary .rc-sum-stars{color:var(--star);letter-spacing:.06em;margin-right:.35rem}
.rc-stage{position:relative;z-index:1;height:440px;margin-top:.5rem;touch-action:pan-y;transition:height .5s ease}
.rc-ring{position:absolute;inset:0;perspective:1600px;perspective-origin:50% 40%;transform-style:flat}
.rc-card{position:absolute;left:50%;top:18px;width:380px;margin-left:-190px;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:1.2rem 1.25rem 1.1rem;box-shadow:0 10px 30px rgba(15,23,42,.10);display:flex;flex-direction:column;gap:.65rem;backface-visibility:hidden;transform-origin:50% 50%;
  transition:transform 1.15s cubic-bezier(.22,.68,.18,1),opacity .9s ease,filter .9s ease,box-shadow .6s ease,border-color .6s ease;will-change:transform,opacity;cursor:pointer;user-select:none}
.rc-card.is-front{cursor:default;user-select:text;border-color:rgba(13,148,136,.55);box-shadow:0 18px 46px rgba(15,23,42,.18),0 0 0 1px rgba(13,148,136,.15)}
.rc-card.is-hidden{opacity:0;pointer-events:none}
.rc-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.rc-stars{color:var(--star);letter-spacing:.06em;font-size:1rem}
.rc-text{font-size:.9rem;line-height:1.58;color:var(--slate-mid);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.rc-card.is-front .rc-text{-webkit-line-clamp:unset;display:block;font-size:.95rem;color:var(--slate)}
.rc-text::before{content:"\201C"}.rc-text::after{content:"\201D"}
.rc-foot{display:flex;align-items:center;justify-content:space-between;gap:.5rem;border-top:1px solid var(--line);padding-top:.6rem;margin-top:auto}
.rc-name{font-weight:800;color:var(--slate);font-size:.92rem;line-height:1.2}
.rc-date{display:block;font-weight:600;font-size:.72rem;color:#64748b}
.rc-badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.7rem;font-weight:700;color:var(--slate-mid);border:1px solid var(--line);border-radius:999px;padding:.2rem .55rem .2rem .25rem;white-space:nowrap;background:#fff}
a.rc-badge:hover{border-color:var(--teal);color:var(--teal-dark)}
.rc-mark{width:18px;height:18px;border-radius:5px;display:grid;place-items:center;font-size:.55rem;font-weight:800;line-height:1}
.rc-mark.exp{background:#0F172A;color:#fff;font-size:.42rem}
.rc-mark.zillow{background:#006AFF;color:#fff}
.rc-mark.google{background:#fff;color:#4285F4;border:1px solid #e2e8f0;font-size:.62rem}
.rc-controls{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:.25rem}
.rc-arrow{width:42px;height:42px;border-radius:50%;border:1.5px solid var(--teal);background:#fff;color:var(--teal-dark);display:grid;place-items:center;cursor:pointer;transition:background .15s,color .15s}
.rc-arrow:hover,.rc-arrow:focus-visible{background:var(--teal);color:#fff;outline:none}
.rc-count{font-size:.78rem;font-weight:700;color:var(--slate-mid);min-width:4.5rem;text-align:center;font-variant-numeric:tabular-nums}
.rc-cta{display:flex;justify-content:center;margin-top:1rem;position:relative;z-index:2}
.rc-btn{display:inline-flex;align-items:center;gap:.4rem;background:var(--teal);color:#fff;font-size:.75rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:.7rem 1.2rem;border-radius:6px;transition:background .15s}
.rc-btn:hover{background:var(--teal-dark)}
/* fade mode: mobile + reduced motion */
.rc-section.rc-fade .rc-stage{perspective:none}
.rc-section.rc-fade .rc-card{width:min(92vw,420px);margin-left:calc(min(92vw,420px) / -2);transform:none !important;transition:opacity .6s ease}
.rc-section.rc-fade .rc-card:not(.is-front){opacity:0;pointer-events:none}
@media (prefers-reduced-motion: reduce){.rc-card,.rc-stage{transition:opacity .3s linear !important}}
/* ========== HOMEPAGE REVIEW OVERLAY (frosted glass layer) ========== */
html.rv-lock,html.rv-lock body{overflow:hidden}
.rv-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;overflow-y:auto;overscroll-behavior:contain;
  padding:3.25rem 0 1.5rem;background:rgba(15,23,42,.38);opacity:1;transition:opacity .45s ease,visibility 0s linear 0s;cursor:pointer}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .rv-overlay{background:rgba(15,23,42,.38);-webkit-backdrop-filter:none;backdrop-filter:none}
}
.rv-overlay[hidden]{display:none}
.rv-overlay.is-closing{opacity:0;visibility:hidden;transition:opacity .45s ease,visibility 0s linear .45s}
.rv-overlay .rv-panel{background:transparent;width:100%;max-width:1200px;margin:auto;padding:.5rem 0 1rem;overflow:hidden}
.rv-overlay .rv-panel::before{background:radial-gradient(ellipse at 50% 55%,rgba(13,148,136,.18),transparent 60%)}
.rv-overlay .rc-head h2{color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.35)}
.rv-overlay .rc-summary{color:#e2e8f0}
.rv-overlay .rc-count{color:#e2e8f0}
.rv-overlay .rc-card,.rv-overlay .rc-arrow,.rv-overlay .rc-btn{cursor:pointer}
.rv-overlay .rc-card.is-front{cursor:default;box-shadow:0 22px 60px rgba(0,0,0,.35),0 0 0 1px rgba(13,148,136,.25)}
.rv-close{position:fixed;top:14px;right:16px;z-index:2;width:44px;height:44px;border-radius:50%;border:1.5px solid rgba(255,255,255,.7);background:rgba(15,23,42,.55);color:#fff;display:grid;place-items:center;cursor:pointer;transition:background .15s,border-color .15s}
.rv-close:hover,.rv-close:focus-visible{background:var(--teal);border-color:var(--teal);outline:none}
.rv-hint{position:relative;z-index:1;text-align:center;margin-top:.9rem;color:#cbd5e1;font-size:.78rem;font-weight:600;letter-spacing:.04em}
@media (max-width:699px){
  .rv-overlay{align-items:flex-start;padding-top:3.5rem}
  .rv-overlay .rc-head h2{font-size:1rem}
  .rv-overlay .rc-summary{font-size:.8rem;padding:0 1rem}
}
@media (prefers-reduced-motion: reduce){.rv-overlay,.rv-overlay.is-closing{transition:none}}
/* ========== Shrink-to-pill (homepage overlay only; pill is created by carousel.js) ========== */
.rv-overlay .rv-panel{transform-origin:50% 50%;transition:transform .5s cubic-bezier(.4,0,.2,1),opacity .5s cubic-bezier(.7,0,1,.4)}
.rv-overlay.is-closing{opacity:1;background-color:rgba(15,23,42,0);pointer-events:none;transition:background-color .5s ease,visibility 0s linear .5s}
.rv-overlay.is-closing .rv-close,.rv-overlay.is-closing .rv-hint{opacity:0;transition:opacity .2s ease}
.rv-overlay.is-growing{animation:rv-bg-in .5s ease}
@keyframes rv-bg-in{from{background-color:rgba(15,23,42,0)}to{background-color:rgba(15,23,42,.38)}}
.rv-pill{position:fixed;right:20px;bottom:20px;z-index:9990;display:inline-flex;align-items:center;gap:.45rem;
  padding:.7rem 1.1rem .7rem .95rem;border-radius:999px;border:2px solid #0D9488;background:#0F172A;color:#fff;
  font:700 .9rem/1 "Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;letter-spacing:.01em;cursor:pointer;
  box-shadow:0 10px 28px rgba(15,23,42,.45),0 0 0 4px rgba(13,148,136,.22);
  opacity:0;transform:translateY(10px) scale(.85);transition:opacity .3s ease,transform .3s cubic-bezier(.3,1.4,.5,1),background .15s}
.rv-pill[hidden]{display:none}
.rv-pill.is-in{opacity:1;transform:none}
.rv-pill:hover,.rv-pill:focus-visible{background:#0D9488;outline:none}
.rv-pill-stars{color:#f59e0b;letter-spacing:.05em;font-size:.8rem}
.rv-pill-score{color:#fff}
.rv-pill-sep{color:#5eead4}
.rv-pill-label{color:#e2e8f0}
@media (max-width:699px){
  .rv-pill{right:12px;bottom:max(12px,env(safe-area-inset-bottom));padding:.45rem .75rem .45rem .65rem;font-size:.74rem;gap:.35rem}
  .rv-pill-stars{font-size:.68rem}
}
@media (prefers-reduced-motion: reduce){
  .rv-overlay .rv-panel{transition:none}
  .rv-overlay.is-closing{opacity:0;transition:opacity .3s linear,visibility 0s linear .3s}
  .rv-overlay.is-growing{animation:none}
  .rv-pill{transition:opacity .2s linear;transform:none}
}
