/* Source-separated reviews. Native scrolling and the existing motion lifecycle. */
.reviews-section{scroll-margin-top:110px}.reviews-section .section-heading h2{font-size:clamp(2.6rem,5.5vw,5.8rem)}
.reviews-source,.reviews-google-source{padding:30px 0;border-top:1px solid #ffffff24}.reviews-source-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:24px}.reviews-source-heading h3{font-size:1.3rem;margin:0}.reviews-score{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:0}.reviews-score strong{font-size:2rem;color:var(--accent,#d3bfff)}.reviews-score span,.reviews-note{font-size:.82rem;line-height:1.7;color:#bcb9c7}.reviews-note{margin:16px 0}
.review-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:2px;padding:8px 2px 22px;overscroll-behavior-x:contain;align-items:stretch;scrollbar-width:thin}.review-card{flex:0 0 calc((100% - 40px)/3);min-width:0;scroll-snap-align:start;padding:28px;border:1px solid #ffffff21;border-radius:22px;background:linear-gradient(145deg,#24202f,#131219);display:flex;flex-direction:column;gap:24px;transition:transform .28s ease,border-color .28s ease}.review-card:hover{border-color:#cdb6ff80;transform:translateY(-4px)}.review-card-top{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.review-source-badge{font-size:.72rem;letter-spacing:.06em;color:#d6cced}.review-stars{color:#d9c4ff;letter-spacing:.1em;white-space:nowrap}.review-card blockquote{font-size:1rem;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;flex:1}.review-author{display:flex;gap:12px;align-items:center}.review-author strong,.review-author time{display:block;overflow-wrap:anywhere}.review-author time{font-size:.75rem;color:#bcb9c7;margin-top:5px}.review-avatar{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#cbb7ef;color:#191022;flex:none}.review-avatar img{width:44px;height:44px;border-radius:50%;object-fit:cover}.review-card a{color:#dfceff;text-underline-offset:4px}.review-card .review-permalink{font-size:.8rem}.reviews-section .testimonial-controls{display:flex;gap:12px;align-items:center;margin:12px 0}.reviews-section .testimonial-controls button{padding:11px 18px}.reviews-section .testimonial-controls span{font-size:.85rem;color:#bcb9c7}.reviews-empty{display:flex;gap:28px;align-items:center;background:linear-gradient(115deg,#282035,#17141f);border-radius:24px;padding:36px}.reviews-empty>span{font-size:8rem;line-height:.7;color:#d2bcff}.reviews-empty h3{font-size:1.8rem;margin:0 0 12px}.reviews-empty p{line-height:1.8;max-width:720px;color:#cfccd6}.reviews-invite{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:36px 0}.reviews-invite h3{font-size:clamp(1.6rem,3vw,2.5rem);margin:12px 0}.reviews-invite p{color:#bcb9c7}.reviews-invite-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.review-form-panel{border:1px solid #ffffff29;border-radius:20px;padding:24px;scroll-margin-top:110px}.review-form-panel>summary{font-size:1.25rem;cursor:pointer;display:flex;justify-content:space-between;gap:16px}.review-form-panel[open]>summary{margin-bottom:26px}.review-form{display:grid;gap:22px;max-width:820px}.review-form>p{color:#c5c1d0;line-height:1.7}.review-form>label{display:grid;gap:10px;font-size:.9rem}.review-form input:not([type=checkbox]):not([type=radio]),.review-form textarea{width:100%;box-sizing:border-box;background:#141218;border:1px solid #ffffff38;color:#fff;border-radius:10px;padding:14px;font:inherit}.review-form textarea{resize:vertical}.review-form :focus-visible,.review-track:focus-visible{outline:2px solid #ddc7ff;outline-offset:4px}.review-rating{display:flex;gap:10px;flex-wrap:wrap;border:0;padding:0;margin:0}.review-rating legend{margin-bottom:14px}.review-rating label{position:relative}.review-rating input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.review-rating span{display:block;padding:12px 17px;border:1px solid #ffffff38;border-radius:10px;color:#d4bee9}.review-rating input:checked+span{background:#d6c3ff;color:#1b102a;border-color:#d6c3ff}.review-rating input:focus-visible+span{outline:2px solid #fff;outline-offset:3px}.review-form .review-consent{display:flex;align-items:flex-start;gap:12px;line-height:1.7}.review-consent input{margin-top:5px;width:20px;height:20px;flex:none;accent-color:#d6c3ff}.review-privacy{font-size:.82rem;color:#c3bdcf;line-height:1.8}.review-privacy summary{cursor:pointer}.review-privacy a{color:#dfcfff}.review-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.review-form button{justify-self:start}.reviews-section button:disabled{opacity:.5;cursor:default}.reviews-google-source [data-google-status]{font-size:.9rem;line-height:1.6;color:#c5bfce}.reviews-section [hidden]{display:none!important}
.google-maps-attribution{height:18px;width:98px;max-width:none;margin:10px 10px 5px;display:block}
@media(max-width:1050px){.review-card{flex-basis:calc((100% - 20px)/2)}.reviews-invite{align-items:flex-start;flex-direction:column}}
@media(max-width:600px){.review-card{flex-basis:88%;padding:22px;gap:20px}.review-track{gap:14px}.reviews-empty{padding:26px;align-items:flex-start;gap:16px}.reviews-empty>span{font-size:5rem}.reviews-empty h3{font-size:1.4rem}.review-form-panel{padding:20px}.review-rating{gap:7px}.review-rating span{padding:12px}.reviews-source,.reviews-google-source{padding:24px 0}.reviews-invite-actions .button{width:100%;text-align:center}}
@media(prefers-reduced-motion:reduce){.review-card{transition:none}.review-card:hover{transform:none}}

/* 4ONE-030: layered invitation, drifting real cards and sequential rating stars. */
.reviews-motion-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 20px}.reviews-motion-toolbar .text-button{color:#d6c6ff;padding:12px 0;min-height:44px;text-decoration:underline;text-underline-offset:5px}
.review-invitation-stage{isolation:isolate;position:relative;margin:18px 12px 30px;padding:48px 30px 30px}.review-invitation-stage::before,.review-invitation-stage::after{content:"";position:absolute;inset:40px 36px 20px;z-index:-1;border-radius:28px;border:1px solid #efe8ff66;background:var(--visual-blue,#a9c9ff);transform:translateY(-12px) rotate(-3deg)}.review-invitation-stage::after{background:var(--visual-pink,#ebc6e9);transform:translateY(-6px) rotate(2deg)}
.review-invitation-stage .reviews-empty{position:relative;background:linear-gradient(115deg,var(--visual-paper,#eeeaff),var(--visual-lilac,#c5b2ff));color:var(--visual-ink,#171222);box-shadow:0 20px 50px #0003;min-height:220px;padding:40px;gap:32px}.review-invitation-stage .reviews-empty>span{color:#655185}.review-invitation-stage .reviews-empty h3{font-size:clamp(1.8rem,3vw,3.2rem);letter-spacing:-.035em;margin-top:12px}.review-invitation-stage .reviews-empty p{color:#40344e;max-width:700px}.review-invitation-stage .reviews-empty .text-link{color:#21172e;border-color:#21172e66}.review-invitation-stage .reviews-empty .eyebrow{font-size:10px;color:#49365e}
.review-spark{position:absolute;z-index:2;color:var(--visual-paper,#eeeaff);font-size:44px;line-height:1;pointer-events:none;text-shadow:0 0 28px #bba1ff44}.review-spark-one{top:0;left:4%;--spark-delay:0s}.review-spark-two{right:0;top:38%;font-size:62px;--spark-delay:.8s}.review-spark-three{left:10%;bottom:-12px;font-size:28px;--spark-delay:1.6s}
.review-motion-enabled .review-track{padding:32px 20px 36px 12px;scroll-padding-inline:12px}.review-motion-enabled .review-card{--card-angle:-1.2deg;--card-lift:-12px;border-color:#eadfff;background:linear-gradient(145deg,var(--visual-paper,#eeeaff),#d2c0f5);color:var(--visual-ink,#171222);box-shadow:0 12px 25px #0002;animation:review-card-drift 7s ease-in-out infinite;animation-play-state:paused;animation-delay:-1.2s;transform-origin:50% 70%}.review-motion-enabled .review-card:nth-child(3n+2){--card-angle:1.4deg;--card-lift:-8px;background:linear-gradient(145deg,#f6e9f5,var(--visual-pink,#ebc6e9));animation-delay:-3.5s}.review-motion-enabled .review-card:nth-child(3n){--card-angle:-.7deg;background:linear-gradient(145deg,#e2efff,var(--visual-blue,#a9c9ff));animation-delay:-5.1s}.review-motion-enabled .review-card .review-source-badge,.review-motion-enabled .review-card time{color:#51415f}.review-motion-enabled .review-card a{color:#4a286f}.review-motion-enabled .review-card .review-stars{color:#674485}.review-star{display:inline-block;transform-origin:50% 60%}
.review-motion-enabled .review-star{animation:review-star-shine 4.4s ease-in-out infinite;animation-delay:calc(var(--star-index)*.16s);animation-play-state:paused}
.review-motion-enabled .review-invitation-stage .reviews-empty{animation:review-invitation-drift 7s ease-in-out infinite;animation-play-state:paused}.review-motion-enabled .review-invitation-stage::before{animation:review-layer-back 8s ease-in-out infinite;animation-play-state:paused}.review-motion-enabled .review-invitation-stage::after{animation:review-layer-front 8s ease-in-out infinite;animation-play-state:paused}.review-motion-enabled .review-spark{animation:review-spark-turn 4s ease-in-out infinite;animation-delay:var(--spark-delay);animation-play-state:paused}
.review-motion-enabled [data-review-playing=true] .review-card,.review-motion-enabled [data-review-playing=true] .review-star,.review-motion-enabled [data-review-playing=true] .reviews-empty,.review-motion-enabled [data-review-playing=true] .review-spark,.review-motion-enabled [data-review-playing=true]::before,.review-motion-enabled [data-review-playing=true]::after{animation-play-state:running}
.review-motion-enabled .review-track:hover .review-card,.review-motion-enabled .review-track:focus-within .review-card,.review-motion-enabled .review-track:hover .review-star,.review-motion-enabled .review-track:focus-within .review-star{animation-play-state:paused}
.review-motion-enabled .review-card:hover{transform:none;border-color:#b99ee1}
@keyframes review-card-drift{0%,100%{transform:translateY(4px) rotate(var(--card-angle))}50%{transform:translateY(var(--card-lift)) rotate(calc(var(--card-angle)*-1))}}
@keyframes review-invitation-drift{0%,100%{transform:translateY(3px) rotate(-.6deg)}50%{transform:translateY(-10px) rotate(.6deg)}}
@keyframes review-layer-back{0%,100%{transform:translateY(-12px) rotate(-3deg)}50%{transform:translateY(-22px) rotate(-4.5deg)}}
@keyframes review-layer-front{0%,100%{transform:translateY(-6px) rotate(2deg)}50%{transform:translateY(-14px) rotate(3.5deg)}}
@keyframes review-star-shine{0%,35%,100%{transform:scale(1) rotate(0deg);opacity:1}10%{transform:scale(1.28) rotate(-12deg);opacity:.7}22%{transform:scale(1.05) rotate(7deg);opacity:1}}
@keyframes review-spark-turn{0%,100%{transform:scale(.8) rotate(-10deg);opacity:.6}50%{transform:scale(1.15) rotate(25deg);opacity:1}}
@media(max-width:600px){.review-invitation-stage{margin:16px 5px 26px;padding:35px 12px 20px}.review-invitation-stage::before,.review-invitation-stage::after{inset:32px 18px 16px}.review-invitation-stage .reviews-empty{padding:26px 22px;gap:12px;min-height:280px}.review-invitation-stage .reviews-empty>span{font-size:3.5rem}.review-spark-one{left:2%;font-size:30px}.review-spark-two{right:-5px;font-size:36px}.review-spark-three{font-size:24px}.reviews-motion-toolbar .eyebrow{font-size:9px}.reviews-motion-toolbar{gap:4px}}
@media(prefers-reduced-motion:reduce){.review-motion-enabled .review-card,.review-motion-enabled .review-star,.review-motion-enabled .review-invitation-stage .reviews-empty,.review-motion-enabled .review-spark,.review-motion-enabled .review-invitation-stage::before,.review-motion-enabled .review-invitation-stage::after{animation:none!important;transform:none}.review-invitation-stage::before{transform:rotate(-2deg)}.review-invitation-stage::after{transform:rotate(1deg)}}
