/* Uses Ricardo's existing tokens and fonts. */
#googleReviews { margin: 0 auto 28px; }
.google-summary { display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:center; margin-bottom:24px; color:var(--navy); }
.google-summary strong { font-size:30px; }
.google-g { width:22px; height:22px; flex-shrink:0; }
.google-stars { color:#b77900; letter-spacing:2px; white-space:nowrap; }
.google-review-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.google-review-card { min-width:0; background:var(--white,#fff); border:1px solid #e2e6ec; border-radius:var(--radius,14px); padding:24px; box-shadow:0 4px 18px rgba(10,33,64,.05); }
.google-review-author { display:flex; gap:12px; align-items:center; margin-bottom:12px; }
.google-review-avatar { width:44px; height:44px; border-radius:50%; object-fit:cover; background:var(--off); display:grid; place-items:center; flex-shrink:0; color:var(--navy); font-weight:700; }
.google-review-author strong { color:var(--navy); overflow-wrap:anywhere; }
.google-review-date { display:block; font-size:12px; color:var(--text2); margin-top:3px; }
.google-review-text { color:var(--text2); line-height:1.75; font-size:14px; white-space:pre-line; overflow-wrap:anywhere; margin-top:12px; }
.google-review-source { display:block; text-align:center; margin:18px 0; color:var(--blue); text-decoration:underline; }
.google-review-status { text-align:center; color:var(--text2); padding:20px; }
#testimonios .testi-cta { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:12px; }
.review-pill { display:inline-flex; align-items:center; justify-content:center; gap:10px; background:#fff; border:1px solid #e2e6ec; border-radius:999px; padding:13px 22px; min-height:48px; color:var(--navy); font:600 14px 'DM Sans',sans-serif; cursor:pointer; transition:box-shadow .2s; text-decoration:none; }
.review-pill:hover { box-shadow:0 4px 14px rgba(10,33,64,.10); }
.review-pill .ti-brand-whatsapp { color:#25D366; font-size:24px; }
.review-wa-icon { width:24px; height:24px; fill:#25D366; flex-shrink:0; }
.rev-overlay { position:fixed; inset:0; z-index:1200; display:flex; align-items:center; justify-content:center; padding:20px; background:rgba(12,20,32,.5); backdrop-filter:blur(3px); opacity:0; transition:opacity .22s; }
.rev-overlay[hidden] { display:none !important; }
.rev-overlay.show { opacity:1; }
.rev-modal { position:relative; width:100%; max-width:480px; max-height:calc(100dvh - 40px); overflow:auto; overscroll-behavior:contain; background:var(--white,#fff); border-radius:22px; padding:32px; color:var(--navy); box-shadow:0 24px 70px rgba(0,0,0,.2); transform:translateY(12px); transition:transform .22s; }
.rev-overlay.show .rev-modal { transform:translateY(0); }
.rev-close { position:absolute; top:10px; right:10px; width:44px; height:44px; background:transparent; border:0; color:var(--text2); font-size:30px; cursor:pointer; }
.rev-logo { display:block; width:44px; height:44px; margin-bottom:20px; }
.rev-modal h2 { font-family:'Montserrat',sans-serif; font-size:24px; line-height:1.25; margin-bottom:12px; padding-right:12px; }
.rev-modal p { color:var(--text2); font-size:14px; line-height:1.65; margin-bottom:16px; }
.rev-stars { display:flex; gap:4px; margin:8px 0 18px; }
.rev-star { width:48px; height:48px; border:0; background:transparent; color:#a6afbb; font-size:36px; cursor:pointer; }
.rev-star.selected { color:#b77900; }
.rev-modal label { display:block; margin:14px 0 7px; font-size:14px; font-weight:600; }
.rev-modal input,.rev-modal textarea { width:100%; border:1px solid #c6cfda; border-radius:10px; padding:12px; font:inherit; font-size:16px; color:var(--text); background:#fff; }
.rev-modal textarea { min-height:100px; resize:vertical; }
.rev-submit { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; min-height:48px; margin-top:20px; padding:12px; background:#4285F4; color:#fff; border:0; border-radius:10px; font:700 14px 'DM Sans',sans-serif; cursor:pointer; }
.rev-error { color:#b42318 !important; margin-top:12px; }
.rev-error[hidden],.rev-thanks[hidden],.rev-form[hidden] { display:none !important; }
.rev-modal :focus-visible,.review-pill:focus-visible,#googleReviews a:focus-visible { outline:3px solid var(--blue); outline-offset:4px; }
@media(max-width:900px) { .google-review-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:419px) { #testimonios .review-pill { width:100%; } .rev-overlay { padding:12px; } .rev-modal { max-height:calc(100dvh - 24px); } }
@media(prefers-reduced-motion:reduce) { .rev-overlay,.rev-modal { transition:none; } }

.footer-cofepris { background:transparent; border:0; font-family:inherit; cursor:pointer; text-decoration:underline; text-underline-offset:5px; }
.footer-cofepris:hover { color:#b8def0; }
.footer-cofepris:focus-visible { outline:3px solid var(--blue); outline-offset:4px; }
.cofepris-logo { display:block; width:100%; max-width:310px; height:auto; margin:12px 0 26px; }
.cofepris-folio { background:var(--off,#f3f6fa); border:1px solid #e2e6ec; border-radius:12px; padding:18px; margin:22px 0; }
.cofepris-folio span { display:block; color:var(--text2); font-size:12px; margin-bottom:6px; }
.cofepris-folio strong { font-size:21px; overflow-wrap:anywhere; }
.cofepris-modal h3 { font-size:15px; margin:20px 0 8px; }
.cofepris-source { color:var(--blue); text-decoration:underline; font-size:14px; }
.cofepris-modal .rev-submit { background:var(--blue); }
@media(max-width:600px) { .google-review-grid { grid-template-columns:1fr; } .rev-modal { padding:28px 22px; } }
