/* Identidade da marca e avaliações — design responsivo, leve e acessível */
html { scroll-padding-top: 6.5rem; }
.hweb-brand { display:flex; align-items:center; gap:.8rem; min-width:0; color:#fff; text-decoration:none; }
.hweb-brand:hover { color:#fff; }
.hweb-brand-logo { display:block; width:auto; max-width:clamp(86px, 12vw, 142px); max-height:54px; object-fit:contain; }
.hweb-brand-details { display:flex; flex-direction:column; gap:.15rem; line-height:1.2; }
.hweb-brand-id { color:rgba(255,255,255,.86); font-size:clamp(.62rem, .82vw, .75rem); font-weight:500; letter-spacing:.035em; }
.hweb-brand-name { color:#fff; font-size:clamp(.72rem, 1vw, .88rem); font-weight:650; letter-spacing:.01em; }
.reviews-section { background:linear-gradient(180deg,#f7f9ff 0%,#fff 100%); scroll-margin-top:5rem; }
.reviews-heading { max-width:760px; }
.reviews-eyebrow { display:inline-flex; align-items:center; padding:.48rem .9rem; border-radius:999px; color:#5142a5; background:#efedff; font-size:.82rem; font-weight:650; letter-spacing:.025em; }
.reviews-summary { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:.6rem; margin-top:1.35rem; }
.reviews-average { color:#1f2937; font-size:1.15rem; font-weight:750; }
.reviews-stars { color:#e7a62b; font-size:1.2rem; letter-spacing:.12em; }
.reviews-total { color:#6b7280; font-size:.88rem; }
.reviews-layout { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(310px,.85fr); gap:2rem; max-width:1120px; margin:0 auto; align-items:start; }
.reviews-list { display:grid; gap:1rem; }
.review-card,.review-form-card { border:1px solid #e8eaf2; border-radius:1.15rem; background:#fff; box-shadow:0 12px 35px rgba(30,41,80,.07); }
.review-card { padding:1.35rem 1.5rem; }
.review-card-top { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.review-card-company { margin:0; color:#202438; font-size:1rem; font-weight:700; }
.review-card-representative { margin:.2rem 0 0; color:#767d8e; font-size:.86rem; }
.review-card-rating { color:#e7a62b; white-space:nowrap; letter-spacing:.1em; }
.review-card-comment { margin:1rem 0 0; color:#50586a; font-size:.96rem; line-height:1.75; overflow-wrap:anywhere; }
.review-card-date { margin:.9rem 0 0; color:#8990a0; font-size:.78rem; }
.reviews-loading,.reviews-empty,.reviews-error { padding:1.5rem; border:1px dashed #d7dbea; border-radius:1rem; color:#6b7280; text-align:center; background:rgba(255,255,255,.7); }
.reviews-error { color:#9f3a38; }
.review-form-card { position:sticky; top:6rem; padding:1.6rem; }
.review-form-heading { display:flex; align-items:center; gap:.8rem; margin-bottom:1.4rem; }
.review-form-icon { display:grid; width:2.7rem; height:2.7rem; flex:0 0 auto; place-items:center; border-radius:.85rem; color:#fff; background:linear-gradient(135deg,#667eea,#764ba2); }
.review-form-heading h3 { margin:0; color:#202438; font-size:1.2rem; font-weight:750; }
.review-form-heading p { margin:.2rem 0 0; color:#7c8291; font-size:.86rem; }
.review-label { display:block; margin:.9rem 0 .42rem; color:#33394b; font-size:.87rem; font-weight:650; }
.review-input { display:block; width:100%; padding:.78rem .9rem; border:1px solid #dfe3ed; border-radius:.7rem; background:#fff; color:#272c3c; font:inherit; font-size:.92rem; transition:border-color .2s,box-shadow .2s; }
.review-input::placeholder { color:#a1a7b4; }
.review-input:focus { border-color:#7c6be8; outline:0; box-shadow:0 0 0 3px rgba(124,107,232,.14); }
.review-textarea { min-height:112px; resize:vertical; }
.review-rating-fieldset { margin:.25rem 0 .1rem; padding:0; border:0; }
.review-required { color:#858b98; font-size:.76rem; font-weight:400; }
.review-rating { display:flex; flex-direction:row-reverse; justify-content:flex-end; gap:.12rem; width:max-content; }
.review-rating input { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.review-rating label { cursor:pointer; color:#cfd3dc; font-size:2rem; line-height:1.1; transition:color .15s,transform .15s; }
.review-rating label:hover,.review-rating label:hover~label,.review-rating input:checked~label { color:#efa928; }
.review-rating label:hover { transform:scale(1.08); }
.review-rating input:focus-visible+label { outline:2px solid #7c6be8; outline-offset:2px; border-radius:3px; }
.review-counter { display:block; margin-top:.3rem; color:#9298a5; font-size:.74rem; text-align:right; }
.review-status { display:none; margin:.85rem 0 0; padding:.7rem .8rem; border-radius:.65rem; font-size:.85rem; line-height:1.5; }
.review-status.is-visible { display:block; }
.review-status.is-success { color:#17663a; background:#eaf8ef; }
.review-status.is-error { color:#a33131; background:#fff0f0; }
.review-submit { display:block; width:100%; margin-top:1rem; padding:.88rem 1rem; border:0; border-radius:.75rem; color:#fff; background:linear-gradient(110deg,#5a70df,#794eb0); font:inherit; font-size:.95rem; font-weight:700; box-shadow:0 8px 18px rgba(94,88,201,.2); cursor:pointer; transition:transform .18s,box-shadow .18s,opacity .18s; }
.review-submit:hover { transform:translateY(-1px); box-shadow:0 11px 22px rgba(94,88,201,.26); }
.review-submit:disabled { cursor:wait; opacity:.7; transform:none; }
.review-privacy { margin:.8rem 0 0; color:#888f9d; font-size:.73rem; line-height:1.5; }
.review-honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
@media (max-width:900px) { .hweb-brand { gap:.55rem; } .hweb-brand-logo { max-width:92px; max-height:45px; } .reviews-layout { grid-template-columns:minmax(0,1fr) minmax(280px,.85fr); gap:1.25rem; } }
@media (max-width:767px) { .hweb-brand-logo { max-width:76px; max-height:42px; } .hweb-brand-details { max-width:190px; } .hweb-brand-id { font-size:.62rem; } .hweb-brand-name { font-size:.69rem; } .reviews-section { padding-top:4rem!important; padding-bottom:4rem!important; } .reviews-layout { grid-template-columns:1fr; max-width:620px; } .review-form-card { position:static; grid-row:1; } .reviews-list-column { grid-row:2; } }
@media (max-width:380px) { .hweb-brand-details { max-width:150px; } .hweb-brand-id { font-size:.56rem; } .hweb-brand-name { font-size:.62rem; } .hweb-brand-logo { max-width:65px; } }
@media (prefers-reduced-motion:reduce) { .review-input,.review-rating label,.review-submit { transition:none; } }
