/* =====================================================
   ROCARVIO — STRAT FINAL DE UNIFORMIZARE (încărcat ultimul)
   Aliniere identică a lățimilor, cardurilor, butoanelor,
   formularelor și tabelelor pe toate paginile/dispozitivele.
   ===================================================== */

:root{
    --rc-max:1600px;
    --rc-edge:clamp(16px,3.2vw,48px);
    --rc-radius:14px;
    --rc-radius-lg:20px;
    --rc-control-h:48px;
    --rc-gold:#d4af37;
}

/* ---------- 1. Aceeași lățime pentru antet, conținut și subsol ---------- */
header{
    padding-left:max(var(--rc-edge),calc((100% - var(--rc-max)) / 2))!important;
    padding-right:max(var(--rc-edge),calc((100% - var(--rc-max)) / 2))!important;
}
footer{
    padding-left:max(var(--rc-edge),calc((100% - var(--rc-max)) / 2)) !important;
    padding-right:max(var(--rc-edge),calc((100% - var(--rc-max)) / 2)) !important;
}
.footer-grid{max-width:var(--rc-max)}

.container,
.recomandate,
.recently-viewed,
.dealer-public-section,
.listing-filters,
.listing-results,
.listing-toolbar,
.auth-main,
.valuation-main,
.safety-main,
.legal-main,
.account-main,
.messages-main,
.seller-public-main,
.compare-main,
.contact-hero,
.contact-layout,
.contact-faq,
.plans-shell,
.dealer-plans-main{
    width:min(100% - (2 * var(--rc-edge)),var(--rc-max))!important;
    max-width:none!important;
    margin-left:auto !important;
    margin-right:auto !important;
}

.detail-main{
    width:min(calc(100% - (2 * clamp(14px,2.2vw,36px))),1660px);
    max-width:none;
    margin-left:auto;
    margin-right:auto;
}

/* Pagini cu text lung: coloană mai îngustă, dar aliniată la aceeași grilă */
.legal-main,
.auth-main,
.messages-main{
    width:min(100% - (2 * var(--rc-edge)),1400px)!important;
}

/* ---------- 2. Carduri auto identice pe toate paginile ---------- */
.cards,
.recently-viewed-grid.cards{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:clamp(14px,1.35vw,20px)!important;
    align-items:stretch!important;
}

.cards .card{
    display:flex!important;
    flex-direction:column!important;
    height:100%!important;
    min-width:0;
    overflow:hidden;
    border-radius:var(--rc-radius-lg);
}

.cards .card > img,
.cards .card .card-image img,
.cards .card img.uniform-listing-image{
    width:100%!important;
    aspect-ratio:16 / 9!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    object-fit:cover!important;
    display:block;
}

.cards .card-content{
    display:flex!important;
    flex-direction:column!important;
    flex:1 1 auto;
    min-width:0;
    padding:clamp(14px,1.15vw,18px)!important;
    gap:0;
}

.cards .card-content h3{
    min-height:calc(2 * 1.3em)!important;
    margin-bottom:var(--rc-space-2)!important;
    font-size:clamp(16px,1.12vw,19px)!important;
    line-height:var(--rc-leading-snug) !important;
    overflow:hidden;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
}

.cards .card-content > p:not(.listing-published-at){
    min-height:1.5em!important;
    margin-bottom:var(--rc-space-3)!important;
    font-size:var(--rc-text-sm) !important;
    line-height:var(--rc-leading-relaxed) !important;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.cards .card-content h4{
    min-height:1.25em!important;
    margin-bottom:var(--rc-space-4)!important;
    font-size:clamp(19px,1.45vw,23px)!important;
    line-height:1.25!important;
}

/* Etichete (CP / cutie / județ): rând flexibil, fără cuvinte tăiate */
.cards .card-content .specs{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    align-items:stretch;
    gap:var(--rc-space-2)!important;
    min-height:0!important;
    margin-bottom:var(--rc-space-4)!important;
}
.cards .card-content .specs span{
    width:100%!important;
    min-width:0!important;
    min-height:34px!important;
    padding:var(--rc-space-3) var(--rc-space-1)!important;
    border-radius:10px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    font-size:clamp(9.5px,.78vw,11.5px)!important;
    line-height:var(--rc-leading-tight) !important;
    text-align:center!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
    hyphens:none!important;
}

.cards .card-content .listing-published-at{
    order:99;
    min-height:0!important;
    margin:var(--rc-space-4) 0 0!important;
    font-size:11.5px!important;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.cards .card-content .card-actions,
.cards .card-content > a.btn-detalii,
.cards .card-content > button{
    margin-top:auto!important;
}
.cards .card-content .card-actions > a,
.cards .card-content .card-actions > button,
.cards .card-content > a.btn-detalii{
    min-height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    border-radius:11px;
    font-size:var(--rc-text-md);
}

/* ---------- 3. Butoane și câmpuri de aceeași dimensiune ---------- */
button,
.btn,
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
select,
textarea{
    font-family:inherit;
}
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
select{
    min-height:var(--rc-control-h);
    border-radius:11px;
}
textarea{border-radius:11px}
button:not(.mobile-menu-close):not(.card-favorite):not(.detail-favorite):not(.gallery-nav){
    min-height:44px;
    border-radius:11px;
    cursor:pointer;
}
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
    outline:2px solid var(--rc-gold);
    outline-offset:2px;
}

/* ---------- 4. Antet identic și pe paginile fără style.css ---------- */
.plans-page header,
body:not(.home-page) header{
    align-items:center;
}
.plans-page .logo,
.plans-page header img{max-height:56px}

/* ---------- 5. Tabele: derulare orizontală în loc de depășire ---------- */
table{
    width:100%;
    border-collapse:collapse;
}
@media (max-width:900px){
    .plans-table-wrap,
    .compare-table-wrap,
    .table-scroll{
        overflow-x:auto;
        -webkit-overflow-scrolling:touch;
    }
    :not(.table-wrap):not(.plans-table-wrap):not(.compare-table-wrap):not(.table-scroll) > table{
        display:block;
        width:100%;
        overflow-x:auto;
    }
    .table-wrap,.plans-table-wrap,.compare-table-wrap,.table-scroll{
        max-width:100%;
        overflow-x:auto;
        -webkit-overflow-scrolling:touch;
    }
}

/* ---------- 6. Nimic nu iese din ecran ---------- */
html,body{max-width:100%;overflow-x:hidden}
img,video,canvas,iframe{max-width:100%}
.card-content,
.detail-main,
.account-main,
.messages-main{min-width:0}

/* ---------- 7. Praguri responsive comune pentru grile ---------- */
@media (max-width:1279px){
    .cards,.recently-viewed-grid.cards{
        grid-template-columns:repeat(3,minmax(0,1fr))!important;
    }
}
@media (max-width:1000px){
    .cards,.recently-viewed-grid.cards{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }
}
@media (max-width:560px){
    .cards,.recently-viewed-grid.cards{
        grid-template-columns:1fr!important;
    }
    .cards .card-content h3{min-height:0!important}
    .cards .card-content .specs span{font-size:var(--rc-text-sm) !important}
}
/* Stare HTML nativa comuna tuturor paginilor. */
[hidden]{display:none!important}
