/* Unified source-owned Rate widget; same five stars on Services, HUB and Service. */
.apx-site .apx-rating{
 position:relative;isolation:isolate;overflow:hidden;box-sizing:border-box;
 width:100%;max-width:440px;min-width:0;margin:18px 0 8px;padding:18px 20px;
 border-radius:19px;border:1px solid #e6d39a70;
 background:linear-gradient(138deg,#132b40ef,#27334ce9 60%,#302d4bea);
 box-shadow:0 16px 40px #010d2280,inset 0 1px #ffffff24;color:#e7f0fa;
}
.apx-site .apx-rating::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;
 background:radial-gradient(ellipse 75% 90% at 10% 0%,#e8b95d17,transparent 75%);}
.apx-site .apx-rating__title{display:block;margin-bottom:7px;color:#ffe08b;font-size:15px;font-weight:800;line-height:1.4}
/* One set of five live Rate controls; a numeric mean sits beside it. */
.apx-site .apx-rating__average-value{display:inline-block;color:#ffe28b;font-size:19px;font-weight:850;white-space:nowrap;font-variant-numeric:tabular-nums}
.apx-site .apx-rating :is(.rate-widget,form,.rating-table){margin:0;padding:0;border:0;background:transparent;box-shadow:none;width:100%;max-width:none}
.apx-site .apx-rating .rating-table{display:block;border-collapse:collapse}
.apx-site .apx-rating .rating-table tbody{display:block}
.apx-site .apx-rating .rating-table tr{display:block;border:0;background:transparent}
.apx-site .apx-rating .rating-table :is(td,.rating-table-td){display:block;border:0;background:transparent;padding:0;color:inherit}
.apx-site .apx-rating .rating-table tr.apx-rating__old-title,
.apx-site .apx-rating .rating-table tr.apx-rating__old-hint{display:none}
.apx-site .apx-rating .apx-rating__stars>td:first-child{display:flex;align-items:center;flex-wrap:nowrap;gap:5px 15px;min-width:0}
.apx-site .apx-rating .apx-rating__stars>td:first-child>.fivestar-rating-wrapper{flex:0 0 auto}
.apx-site .apx-rating .apx-rating__stars>td:first-child>input[type="hidden"],
.apx-site .apx-rating .apx-rating__stars>td:first-child>.fivestar-rating-submit{flex:0 0 auto}
.apx-site .apx-rating .fivestar-rating-wrapper{display:flex;flex-flow:row nowrap;align-items:center;gap:2px;width:max-content;max-width:100%;white-space:nowrap}
.apx-site .apx-rating .form-type-radio{margin:0;padding:0;border:0;width:clamp(29px,3vw,40px);height:43px;flex:none}
.apx-site .apx-rating .rating-label{display:grid;place-items:center;position:relative;cursor:pointer;margin:0;padding:0;
 width:100%;height:43px;border:0;background:transparent;font-size:0}
.apx-site .apx-rating .rating-label::before{
 content:"★";position:absolute;inset:0;display:grid;place-items:center;
 font-size:clamp(27px,3vw,39px);line-height:1;
 color:transparent;-webkit-text-stroke:.35px #a4b8c94d;
 background:linear-gradient(90deg,#ffdd75 0 var(--apx-rating-star-fill,0%),#607487 var(--apx-rating-star-fill,0%) 100%);
 -webkit-background-clip:text;background-clip:text;
 opacity:.65;filter:drop-shadow(0 0 3px #ffe3a829);
 transition:opacity .55s ease,transform .55s cubic-bezier(.17,.8,.2,1),filter .55s ease;
}
/* A verified vote brightens this SAME set of stars, not a second row. */
.apx-site .apx-rating.apx-rating--voted .rating-label::before{opacity:1;filter:drop-shadow(0 0 8px #ffcf6578)}
.apx-site .apx-rating.apx-rating--previewing .rating-label::before{background:linear-gradient(90deg,#526779,#526779);-webkit-background-clip:text;background-clip:text;opacity:.78}
.apx-site .apx-rating.apx-rating--previewing .rating-label.is-preview::before{
 background:linear-gradient(90deg,#ffe18a,#ffc44f);-webkit-background-clip:text;background-clip:text;
 opacity:1;transform:translateY(-2px) scale(1.09);filter:drop-shadow(0 0 9px #ffe17189);
}
/* Suppress any extra decorative star supplied by the module's CSS. */
.apx-site .apx-rating .rating-label::after{content:none}
.apx-site .apx-rating .rate-disabled .rating-label,
.apx-site .apx-rating [can-edit="false"] .rating-label{cursor:default;pointer-events:none}
.apx-site .apx-rating .rate-disabled .rating-input,
.apx-site .apx-rating [can-edit="false"] .rating-input{pointer-events:none;cursor:default}
.apx-site .apx-rating .rating-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer;z-index:1}
.apx-site .apx-rating .rating-label:has(input:focus-visible){outline:2px solid #7beddc;outline-offset:2px;border-radius:8px}
.apx-site .apx-rating .rating-option-result{display:none}
.apx-site .apx-rating .vote-result{
 display:block;color:#cbdcec;font-weight:650;white-space:normal;
 margin-top:10px;padding-top:10px;border-top:1px solid #e4d39c32;
 font-size:13px;line-height:1.45;
}
/* If JS is unavailable the native Drupal button remains usable. */
.apx-site .apx-rating.apx-rating--ready .fivestar-rating-submit{display:none}
/* Service ratings sit beside pricing; HUB and /services remain at bottom contacts. */
.apx-site--service .apx-offer-band__inner:has(>.apx-rating){grid-template-columns:minmax(200px,.75fr) minmax(240px,1.2fr) minmax(250px,.92fr)}
.apx-site--service .apx-offer-band__inner>.apx-rating{grid-column:3;grid-row:1;margin:0;max-width:none}
.apx-site--service .apx-offer-band .apx-rating{border-color:#bd8b4075;background:linear-gradient(135deg,#15263dee,#33334ff0);color:#eaf3fc}
@media(max-width:1100px){
 .apx-site--service .apx-offer-band__inner:has(>.apx-rating){grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .apx-site--service .apx-offer-band__inner>.apx-rating{grid-column:1/-1;grid-row:auto;max-width:510px}
}
@media(max-width:440px){
 .apx-site .apx-rating .apx-rating__average-value{font-size:15px}
 .apx-site .apx-rating .apx-rating__stars>td:first-child{gap:5px 8px}
 .apx-site .apx-rating .form-type-radio{width:29px}
}
@media(max-width:680px){
 .apx-site--service .apx-offer-band__inner:has(>.apx-rating){grid-template-columns:1fr}
 .apx-site--service .apx-offer-band__inner>.apx-rating{grid-column:1;max-width:none}
 .apx-site .apx-rating{max-width:none;padding:16px}
}
@media(prefers-reduced-motion:reduce){.apx-site .apx-rating .rating-label::before{transition:none}}
