/* =========================================================
 * My Reviews — карусель отзывов
 * Размеры завязаны на vh (с ограничением clamp, чтобы на очень
 * низких/высоких экранах ничего не становилось слишком мелким/крупным).
 * ========================================================= */

.myreviews-wrap{
    --mr-gap:clamp(12px,1.6vh,24px);
    --mr-radius:clamp(14px,1.9vh,24px);
    --mr-pad:clamp(16px,2.3vh,28px);
    --mr-logo:clamp(40px,4.6vh,56px);
    --mr-name:clamp(17px,2.1vh,24px);
    --mr-star:clamp(14px,1.75vh,20px);
    --mr-date:clamp(12px,1.35vh,15px);
    --mr-text:clamp(13px,1.45vh,16px);
    --mr-small:clamp(12px,1.3vh,15px);
    --mr-nav:clamp(36px,4vh,48px);
    --mr-card-h:clamp(230px,27vh,320px);
    --mr-star-color:#FFC000;
    --mr-star-off:#E1E3E8;
    --mr-accent:#2F4F86;
    --mr-muted:#8A8F98;
    width:100%;
    font-family:inherit;
    box-sizing:border-box;
    color:var(--myreviews-text-color,#222);
}
.myreviews-wrap *,.myreviews-modal *{box-sizing:border-box}

/* ---------- stage / carousel ---------- */
.myreviews-stage{position:relative}
.myreviews-viewport{overflow:hidden;width:100%;touch-action:pan-y}
.myreviews-track{position:relative;display:flex;align-items:stretch;gap:var(--mr-gap);transition:transform .45s cubic-bezier(.22,.61,.36,1);will-change:transform}

/* ---------- card ---------- */
.myreviews-card{
    flex:0 0 calc((100% - (var(--myreviews-visible,3) - 1) * var(--mr-gap)) / var(--myreviews-visible,3));
    min-width:0;
    min-height:var(--mr-card-h);
    display:flex;flex-direction:column;
    background:var(--myreviews-card-bg,#fff);
    border:1px solid rgba(17,17,17,.04);
    border-radius:var(--mr-radius);
    padding:var(--mr-pad);
}
.myreviews-card-head{display:flex;align-items:center;gap:clamp(10px,1.3vh,16px);margin-bottom:clamp(12px,1.9vh,22px)}
.myreviews-card-meta{min-width:0;flex:1 1 auto}
.myreviews-card-name{font-size:var(--mr-name);line-height:1.2;font-weight:500;color:var(--myreviews-heading-color,#111);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0 0 clamp(2px,.45vh,6px)}
.myreviews-card-rating{display:flex;align-items:center;flex-wrap:wrap;gap:4px clamp(8px,1.1vh,14px)}
.myreviews-card-date{font-size:var(--mr-date);line-height:1.2;color:var(--mr-muted);white-space:nowrap}

.myreviews-logo{flex:0 0 auto;width:var(--mr-logo);height:var(--mr-logo);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;overflow:hidden}
.myreviews-logo-yandex{background:#FC3F1D;color:#fff;font-family:Arial,Helvetica,sans-serif;font-weight:400;font-size:calc(var(--mr-logo) * .56);line-height:1}
.myreviews-logo-google{background:#fff;border:1px solid #ECEDF0}
.myreviews-logo-google svg{width:60%;height:60%;display:block}

.myreviews-stars{display:inline-flex;gap:clamp(1px,.25vh,3px);line-height:0}
.myreviews-star{display:inline-block;width:var(--mr-star);height:var(--mr-star);color:var(--mr-star-off)}
.myreviews-star.is-on{color:var(--mr-star-color)}
.myreviews-star svg{width:100%;height:100%;display:block;fill:currentColor}

.myreviews-card-text{
    margin:0;
    font-size:var(--mr-text);line-height:1.55;
    color:var(--myreviews-text-color,#222);
    white-space:pre-line;overflow-wrap:anywhere;
    display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;
}
.myreviews-card-more{
    align-self:flex-start;margin:clamp(6px,.9vh,10px) 0 0;padding:0;border:0;background:none;cursor:pointer;
    font:inherit;font-size:var(--mr-small);font-weight:600;line-height:1.3;color:var(--mr-accent);
}
.myreviews-card-more[hidden]{display:none}
.myreviews-card-more:hover{text-decoration:underline}
.myreviews-card-bottom{margin-top:auto;padding-top:clamp(14px,2.2vh,26px)}
.myreviews-card-link{font-size:var(--mr-small);line-height:1.3;color:var(--mr-muted);text-decoration:underline;text-decoration-color:rgba(138,143,152,.5);text-underline-offset:3px}
.myreviews-card-link:hover{color:var(--myreviews-heading-color,#111)}

/* ---------- arrows ---------- */
.myreviews-nav{
    position:absolute;top:50%;z-index:2;
    width:var(--mr-nav);height:var(--mr-nav);margin-top:calc(var(--mr-nav) / -2 - var(--mr-dots-h,0px) / 2);
    padding:0;border:0;border-radius:50%;cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    background:#222;color:#fff;
    transition:background-color .2s ease,opacity .2s ease,transform .2s ease;
}
.myreviews-nav svg{width:46%;height:46%;display:block}
.myreviews-nav:hover:not(:disabled){background:#000;transform:scale(1.05)}
.myreviews-nav:disabled{background:#D5D7DB;cursor:default}
.myreviews-prev{left:calc(var(--mr-nav) / -2)}
.myreviews-next{right:calc(var(--mr-nav) / -2)}
.myreviews-nav:focus-visible,.myreviews-dot:focus-visible,.myreviews-card-more:focus-visible,.myreviews-modal-close:focus-visible{outline:2px solid var(--mr-accent,#2F4F86);outline-offset:2px}

/* ---------- dots ---------- */
.myreviews-stage{--mr-dots-h:calc(clamp(18px,2.8vh,32px) + 6px)}
.myreviews-dots{display:flex;align-items:center;justify-content:center;gap:clamp(4px,.55vh,6px);height:6px;margin-top:clamp(18px,2.8vh,32px)}
.myreviews-dots[hidden]{display:none}
.myreviews-dot{width:6px;height:6px;padding:0;border:0;border-radius:6px;background:#D5D7DB;cursor:pointer;transition:width .3s ease,background-color .3s ease,transform .3s ease}
.myreviews-dot.is-active{width:20px;background:#4A7FC1}
.myreviews-dot.is-edge{transform:scale(.6)}
.myreviews-dot.is-far{display:none}
.myreviews-no-nav .myreviews-nav,.myreviews-no-nav .myreviews-dots{display:none}
.myreviews-no-nav .myreviews-stage{--mr-dots-h:0px}

/* ---------- grid ---------- */
.myreviews-wrap.myreviews-layout-grid .myreviews-viewport{overflow:visible}
.myreviews-wrap.myreviews-layout-grid .myreviews-track{display:grid;grid-template-columns:repeat(var(--myreviews-desktop-cols,3),minmax(0,1fr));transform:none!important}
.myreviews-wrap.myreviews-layout-grid .myreviews-card{flex:none}
.myreviews-wrap.myreviews-layout-grid .myreviews-nav,
.myreviews-wrap.myreviews-layout-grid .myreviews-dots{display:none}

.myreviews-empty{padding:35px;text-align:center;color:var(--mr-muted)}

/* ---------- modal ---------- */
html.myreviews-lock{overflow:hidden}
html.myreviews-lock body{padding-right:var(--myreviews-sbw,0px)}
.myreviews-modal{
    position:fixed;inset:0;z-index:100000;
    display:flex;align-items:center;justify-content:center;
    padding:clamp(12px,4vh,48px) 16px;
    visibility:hidden;opacity:0;transition:opacity .25s ease,visibility 0s linear .25s;
    font-family:inherit;
}
.myreviews-modal.is-open{visibility:visible;opacity:1;transition:opacity .25s ease}
.myreviews-modal-overlay{position:absolute;inset:0;background:rgba(17,19,24,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.myreviews-modal-dialog{
    position:relative;width:100%;max-width:min(680px,100%);max-height:min(80vh,820px);
    display:flex;flex-direction:column;
    background:#fff;color:#222;border-radius:clamp(14px,1.9vh,24px);
    box-shadow:0 24px 60px rgba(0,0,0,.22);
    transform:translateY(12px) scale(.98);transition:transform .25s ease;outline:none;
}
.myreviews-modal.is-open .myreviews-modal-dialog{transform:none}
.myreviews-modal-scroll{
    overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
    padding:clamp(20px,3.2vh,36px) clamp(18px,3vh,36px);
    scrollbar-width:thin;scrollbar-color:#4A7FC1 transparent;
}
.myreviews-modal-scroll::-webkit-scrollbar{width:4px}
.myreviews-modal-scroll::-webkit-scrollbar-thumb{background:#4A7FC1;border-radius:4px}
.myreviews-modal-close{
    position:absolute;top:clamp(10px,1.6vh,16px);right:clamp(10px,1.6vh,16px);z-index:1;
    width:clamp(30px,3.4vh,36px);height:clamp(30px,3.4vh,36px);padding:0;
    border:1.5px solid #2F4F86;border-radius:50%;background:#fff;color:#2F4F86;cursor:pointer;
    display:flex;align-items:center;justify-content:center;transition:background-color .2s ease,color .2s ease;
}
.myreviews-modal-close:hover{background:#2F4F86;color:#fff}
.myreviews-modal-close svg{width:55%;height:55%;display:block}
.myreviews-modal-stars .myreviews-stars{gap:3px}
.myreviews-modal-stars .myreviews-star{width:clamp(20px,2.6vh,28px);height:clamp(20px,2.6vh,28px)}
.myreviews-modal-stars .myreviews-star{color:#E1E3E8}
.myreviews-modal-stars .myreviews-star.is-on{color:#FFC000}
.myreviews-modal-source{display:flex;align-items:center;gap:8px;margin-top:clamp(10px,1.4vh,14px);font-size:clamp(13px,1.4vh,15px);color:#555;font-weight:500}
.myreviews-modal-source .myreviews-logo{width:22px;height:22px}
.myreviews-modal-source .myreviews-logo-yandex{font-size:13px}
.myreviews-modal-date{margin-top:clamp(10px,1.5vh,16px);font-size:clamp(12px,1.35vh,15px);color:#8A8F98}
.myreviews-modal-name{margin:clamp(8px,1.2vh,12px) 0 clamp(12px,2vh,20px);padding-right:36px;font-size:clamp(20px,2.6vh,30px);line-height:1.2;font-weight:500;color:#111;overflow-wrap:anywhere}
.myreviews-modal-text{font-size:clamp(14px,1.75vh,18px);line-height:1.6;color:#222;white-space:pre-line;overflow-wrap:anywhere}
.myreviews-modal-link{display:inline-block;margin-top:clamp(16px,2.4vh,26px);font-size:clamp(13px,1.4vh,15px);color:#8A8F98;text-decoration:underline;text-underline-offset:3px}
.myreviews-modal-link:hover{color:#111}
.myreviews-modal-link[hidden]{display:none}

/* ---------- tablet + mobile: стрелки уходят вниз, в одну строку с точками ---------- */
@media (max-width:1024px){
    .myreviews-wrap{--mr-nav:40px}
    .myreviews-layout-carousel .myreviews-stage{padding-bottom:calc(var(--mr-nav) + 16px)}
    .myreviews-nav{top:auto;bottom:0;margin-top:0}
    .myreviews-prev{left:0}
    .myreviews-next{right:0}
    .myreviews-dots{position:absolute;left:var(--mr-nav);right:var(--mr-nav);bottom:calc(var(--mr-nav) / 2 - 3px);margin:0}
    .myreviews-no-nav .myreviews-stage{padding-bottom:0}
}

/* ---------- mobile ---------- */
@media (max-width:767px){
    .myreviews-wrap{--mr-card-h:clamp(200px,26vh,280px);--mr-nav:38px;--mr-text:clamp(14px,1.7vh,16px)}
    .myreviews-wrap.myreviews-layout-grid .myreviews-track{grid-template-columns:repeat(var(--myreviews-mobile-cols,1),minmax(0,1fr))}
    .myreviews-modal{align-items:flex-end;padding:0}
    .myreviews-modal-dialog{max-width:100%;max-height:88vh;border-radius:20px 20px 0 0;transform:translateY(40px)}
}
