@charset "UTF-8";

/* ==========================================================================
   COMPONENTĂ — FOOTER GLOBAL  (.ps-footer)
   --------------------------------------------------------------------------
   Sursă:  docs/design/spec-footer.md (nodeId 3604:18181)
           docs/design/DESIGN-SYSTEM.md §10.15
   Randat de: ViewComponents/FooterViewComponent.cs
              Views/Shared/Components/Footer/Default.cshtml

   Se încarcă DUPĂ design-tokens.css. Folosește exclusiv tokeni --ps-*.
   ========================================================================== */

.ps-footer {
    border-block-start: var(--ps-border-width) solid var(--ps-border);
    background: var(--ps-bg-warm);
    color: var(--ps-text-footer);
    font-family: var(--ps-font-sans);
    padding-top: var(--ps-space-50);
}

.ps-footer__inner {
    width: 100%;
    max-width: var(--ps-container-wide);
    margin-inline: auto;
    padding-inline: var(--ps-space-20);
}

/* --- zona de contact: formularul și cardurile cu datele firmei ----------- */

/* Panou verde închis cu carduri „de sticlă”. Fără reCAPTCHA configurat formularul lipsește,
   iar cardurile cu datele firmei se întind pe tot rândul. */
.ps-footer__contact-zona {
    --ps-sticla-bg: rgb(255 255 255 / .08);
    --ps-sticla-bd: rgb(255 255 255 / .16);
    --ps-sticla-text: rgb(255 255 255 / .82);
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
    align-items: center;
    gap: var(--ps-space-20) clamp(var(--ps-space-20), 3vw, var(--ps-space-40));
    padding: clamp(var(--ps-space-20), 3.5vw, var(--ps-space-50));
    border-radius: var(--ps-radius-panel);
    background:
        radial-gradient(70% 90% at 0% 0%, rgb(255 255 255 / .14) 0%, transparent 60%),
        radial-gradient(60% 80% at 100% 100%, rgb(var(--ps-rgb-umbra) / .32) 0%, transparent 65%),
        linear-gradient(135deg, var(--ps-c-green-800), var(--ps-c-green-1000));
    color: var(--ps-c-white);
}

.ps-footer__contact-zona--fara-formular { grid-template-columns: minmax(0, 1fr); }
.ps-footer__contact-zona--fara-formular .ps-footer__info {
    grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
}

.ps-footer__sticla {
    display: flex;
    flex-direction: column;
    gap: var(--ps-space-10);
    min-width: 0;
    padding: clamp(var(--ps-space-20), 2.2vw, var(--ps-space-30));
    border: var(--ps-border-width) solid var(--ps-sticla-bd);
    border-radius: var(--ps-radius-card);
    background: var(--ps-sticla-bg);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}

.ps-footer__info {
    display: grid;
    align-content: start;
    gap: var(--ps-space-15);
    min-width: 0;
}

.ps-footer__titlu {
    margin: 0;
    font: var(--ps-fw-bold) var(--ps-fs-16) / var(--ps-lh-tight) var(--ps-font-sans);
    color: var(--ps-c-white);
}

/* --- „Soluții & servicii" ------------------------------------------------- */

.ps-footer__lista {
    display: flex;
    flex-direction: column;
    gap: var(--ps-space-6);
    margin: 0;
    padding: 0;
    list-style: none;
}

.ps-footer__item { display: flex; }

.ps-footer__link {
    font: var(--ps-type-body);
    color: var(--ps-sticla-text);
    text-decoration: none;
    transition: var(--ps-transition-color);
}

/* micro-tipografia de brand din Figma: „i" medium + restul semibold,
   fără markup suplimentar și fără a strica traducerile. */
.ps-footer__link--brand { font-weight: var(--ps-fw-semibold); }
.ps-footer__link--brand::first-letter { font-weight: var(--ps-fw-medium); }

.ps-footer__link:hover,
.ps-footer__link:focus-visible {
    color: var(--ps-c-white);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.ps-footer__link[aria-current="page"] {
    color: var(--ps-c-white);
    font-weight: var(--ps-fw-semibold);
}

/* --- datele firmei și adresa ---------------------------------------------- */

.ps-footer__firma-rand {
    margin: 0;
    font-size: var(--ps-fs-14);
    line-height: var(--ps-lh-body);
    color: var(--ps-sticla-text);
}

.ps-footer__eticheta {
    font-weight: var(--ps-fw-semibold);
    color: var(--ps-c-white);
}

.ps-footer__adresa {
    font-size: var(--ps-fs-14);
    font-style: normal;
    line-height: 1.6;
    color: var(--ps-sticla-text);
}

/* adresa se deschide în Google Maps */
.ps-footer__adresa-link {
    display: inline-flex;
    align-items: flex-start;
    gap: var(--ps-space-6);
    color: inherit;
    text-decoration: none;
    transition: var(--ps-transition-color);
}
.ps-footer__adresa-link .ps-icon-glyph { margin-block-start: 1px; }
.ps-footer__adresa-link:hover,
.ps-footer__adresa-link:focus-visible {
    color: var(--ps-c-white);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* --- formularul de contact ------------------------------------------------ */

.ps-footer__formular-titlu {
    margin: 0;
    font: var(--ps-fw-bold) clamp(22px, 1.2vw + 14px, 28px) / 1.2 var(--ps-font-sans);
    letter-spacing: var(--ps-ls-title);
    color: var(--ps-c-white);
}

.ps-footer__formular-text {
    margin: 0 0 var(--ps-space-10);
    font-size: var(--ps-fs-14);
    line-height: 1.5;
    color: rgb(255 255 255 / .78);
}

.ps-footer__formular {
    display: flex;
    flex-direction: column;
    gap: var(--ps-space-15);
}

.ps-footer__camp {
    display: flex;
    flex-direction: column;
    gap: var(--ps-space-6);
}

.ps-footer__eticheta-camp {
    font: var(--ps-fw-semibold) var(--ps-fs-13) / 1.2 var(--ps-font-sans);
    color: var(--ps-c-white);
}

.ps-footer__input {
    inline-size: 100%;
    min-block-size: 44px;
    padding: var(--ps-space-10) 14px;
    border: var(--ps-border-width) solid rgb(255 255 255 / .22);
    border-radius: var(--ps-radius-control);
    background: rgb(255 255 255 / .1);
    color: var(--ps-c-white);
    font: var(--ps-fw-regular) var(--ps-fs-14) / 1.4 var(--ps-font-sans);
    transition: border-color var(--ps-duration) var(--ps-ease),
                background-color var(--ps-duration) var(--ps-ease),
                box-shadow var(--ps-duration) var(--ps-ease);
}
.ps-footer__input::placeholder { color: rgb(255 255 255 / .55); }
.ps-footer__input:hover { border-color: rgb(255 255 255 / .38); }
.ps-footer__input:focus-visible {
    outline: none;
    border-color: rgb(255 255 255 / .75);
    background: rgb(255 255 255 / .14);
    box-shadow: 0 0 0 4px rgb(255 255 255 / .16);
}
.ps-footer__input[aria-invalid="true"] {
    border-color: #FFB4A9;
    box-shadow: 0 0 0 3px rgb(255 180 169 / .25);
}
/* completarea automată a browserului păstrează fundalul panoului */
.ps-footer__input:-webkit-autofill {
    -webkit-text-fill-color: var(--ps-c-white);
    -webkit-box-shadow: 0 0 0 1000px var(--ps-c-green-800) inset;
    caret-color: var(--ps-c-white);
}

/* prefixul de țară al telefonului, pe fundalul închis al panoului */
.ps-footer__camp .ps-telefon__prefix {
    --ps-ctl-bg: rgb(255 255 255 / .1);
    --ps-ctl-bd: rgb(255 255 255 / .22);
    --ps-ctl-fg: var(--ps-c-white);
    min-block-size: 44px;
    box-shadow: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}
.ps-footer__camp .ps-telefon__prefix:hover { --ps-ctl-bd: rgb(255 255 255 / .38); }
.ps-footer__camp .ps-telefon__prefix:focus-visible {
    --ps-ctl-bd: rgb(255 255 255 / .75);
    box-shadow: 0 0 0 4px rgb(255 255 255 / .16);
}

.ps-footer__input--mesaj {
    min-block-size: 110px;
    resize: vertical;
}

/* locul casetei reCAPTCHA e rezervat, ca formularul să nu sară când se încarcă;
   pe telefon footer-contact.js o scalează cât lățimea formularului */
.ps-footer__recaptcha {
    --ps-recaptcha-scara: 1;
    block-size: calc(78px * var(--ps-recaptcha-scara));
    overflow: hidden;
}
.ps-footer__recaptcha > div {
    transform: scale(var(--ps-recaptcha-scara));
    transform-origin: 0 0;
}

.ps-footer__formular-stare {
    margin: 0;
    padding: var(--ps-space-10) 14px;
    border-radius: var(--ps-radius-control);
    font-size: var(--ps-fs-14);
    line-height: 1.45;
}
.ps-footer__formular-stare:empty { display: none; }
.ps-footer__formular-stare--succes {
    border: var(--ps-border-width) solid rgb(255 255 255 / .3);
    background: rgb(255 255 255 / .14);
    color: var(--ps-c-white);
}
.ps-footer__formular-stare--eroare {
    border: var(--ps-border-width) solid rgb(255 180 169 / .45);
    background: rgb(255 120 100 / .18);
    color: #FFE4DF;
}

.ps-footer__trimite {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--ps-space-10);
    inline-size: 100%;
    min-block-size: 48px;
    padding: 12px var(--ps-space-20);
    border: 0;
    border-radius: var(--ps-radius-btn);
    background: var(--ps-c-white);
    box-shadow: 0 10px 24px -12px rgb(0 0 0 / .45);
    color: var(--ps-green-dark);
    font: var(--ps-fw-bold) var(--ps-fs-15) / 1 var(--ps-font-sans);
    cursor: pointer;
    transition: background-color var(--ps-duration) var(--ps-ease),
                transform var(--ps-duration) var(--ps-ease);
}
.ps-footer__trimite:hover { background: var(--ps-c-green-30); transform: translateY(-1px); }
.ps-footer__trimite:focus-visible { outline: 3px solid var(--ps-c-white); outline-offset: 3px; }
.ps-footer__trimite:disabled {
    cursor: progress;
    opacity: .75;
    transform: none;
}

/* --- rețele sociale ------------------------------------------------------ */

.ps-footer__social {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--ps-space-10);
    margin: var(--ps-space-5) 0 0;
    padding: 0;
    list-style: none;
}

.ps-footer__social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--ps-icon-36);
    height: var(--ps-icon-36);
    border-radius: var(--ps-radius-full);
    color: var(--ps-c-white);
    background: rgb(255 255 255 / .1);
    transition: var(--ps-transition-color);
}

.ps-footer__social-icon {
    width: var(--ps-icon-20);
    height: var(--ps-icon-20);
    fill: currentColor;
}

.ps-footer__social-link:hover,
.ps-footer__social-link:focus-visible { background: rgb(255 255 255 / .2); }

/* --- logo-urile de plată -------------------------------------------------- */

.ps-footer__plati { display: flex; }

.ps-footer__plati-lista {
    display: flex;
    align-items: center;
    gap: var(--ps-space-13);
    margin: 0;
    padding: 0;
    list-style: none;
}

/* mărimea vine din atributele width/height; pe ecranele înguste se micșorează proporțional */
.ps-footer__plati-logo {
    display: block;
    max-inline-size: 100%;
    block-size: auto;
    border-radius: var(--ps-radius-control);
}

.ps-footer__plati-link { display: inline-flex; }

/* --- linkuri legale ------------------------------------------------------ */

.ps-footer__legal {
    margin-top: var(--ps-space-40);
    padding: var(--ps-space-10);
}

.ps-footer__legal-lista {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: var(--ps-space-20);
    margin: 0;
    padding: 0;
    list-style: none;
}

.ps-footer__legal-link {
    font: var(--ps-type-body-medium);
    line-height: var(--ps-lh-tight);
    color: var(--ps-green-dark);
    text-decoration: none;
    white-space: nowrap;
    transition: var(--ps-transition-color);
}

.ps-footer__legal-link--gdpr {
    font-size: var(--ps-fs-18);
    padding-block: var(--ps-space-5);
}

.ps-footer__legal-link:hover,
.ps-footer__legal-link:focus-visible { text-decoration: underline; }
.ps-footer__legal-link:active { color: var(--ps-c-green-1000); }
.ps-footer__legal-link[aria-current="page"] {
    text-decoration: underline;
    font-weight: var(--ps-fw-semibold);
}

/* --- banda de copyright (separator full-bleed) --------------------------- */

.ps-footer__bottom {
    margin-top: var(--ps-space-10);
    padding: var(--ps-space-10) var(--ps-space-20);
    border-top: var(--ps-border-width) solid var(--ps-green-dark);
    text-align: center;
}

.ps-footer__copyright,
.ps-footer__drepturi {
    margin: 0;
    font-size: var(--ps-fs-14);
    font-weight: var(--ps-fw-medium);
    line-height: var(--ps-lh-tight);
    color: var(--ps-green-dark);
}

.ps-footer__copyright-marca { font-weight: var(--ps-fw-semibold); }

.ps-footer__drepturi {
    margin-top: var(--ps-space-5);
    font-size: var(--ps-fs-12);
    color: var(--ps-text-footer);
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */

/* formularul deasupra, cardurile cu datele firmei dedesubt, unul lângă altul */
@media (max-width: 991.98px) {
    .ps-footer__contact-zona { grid-template-columns: minmax(0, 1fr); }
    .ps-footer__info { grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); }
    .ps-footer__plati { grid-column: 1 / -1; justify-content: center; }
}

@media (max-width: 767.98px) {
    .ps-footer { padding-top: var(--ps-space-40); }

    .ps-footer__plati-lista { justify-content: center; flex-wrap: wrap; }

    .ps-footer__legal { margin-top: var(--ps-space-25); }
    .ps-footer__legal-lista { gap: var(--ps-space-13) var(--ps-space-20); }
}

@media print {
    .ps-footer__formular-card,
    .ps-footer__social,
    .ps-footer__plati { display: none; }
}


/* ==========================================================================
   LINKURILE SEO (ControlFooterMaster.ascx:175-393)
   --------------------------------------------------------------------------
   Carduri de linkuri spre landing-uri: categoriile cu subcategoriile lor,
   orașele și specializările. Grupurile au lungimi foarte diferite (2–60
   linkuri): js/components/footer-seo.js le împarte în coloane egale pe toată
   lățimea, iar un card mult mai lung decât restul îl lățește peste mai multe
   coloane; fără JavaScript cardurile curg în coloane CSS.
   ========================================================================== */

.ps-footer__seo {
    --ps-seo-latime-min: 200px;
    columns: var(--ps-seo-latime-min);
    column-gap: var(--ps-space-15);
    padding-block: var(--ps-space-10) var(--ps-space-30);
    margin-block-end: var(--ps-space-30);
    border-block-end: var(--ps-border-width) solid var(--ps-border);
}

.ps-footer__seo-grup {
    display: flex;
    flex-direction: column;
    gap: var(--ps-space-10);
    min-width: 0;
    margin-block-end: var(--ps-space-15);
    padding: var(--ps-space-15) var(--ps-space-20) var(--ps-space-20);
    border: var(--ps-border-width) solid var(--ps-border-soft);
    border-radius: var(--ps-radius-card);
    background: var(--ps-surface);
    box-shadow: var(--ps-shadow-xs);
    break-inside: avoid;
}

/* coloanele aranjate de footer-seo.js; cardurile din fiecare se întind egal până jos */
.ps-footer__seo[data-ps-seo-coloane] {
    display: grid;
    grid-template-columns: repeat(var(--ps-seo-coloane, 1), minmax(0, 1fr));
    row-gap: var(--ps-space-15);
    columns: auto;
}

.ps-footer__seo-coloana {
    display: flex;
    flex-direction: column;
    gap: var(--ps-space-15);
    min-width: 0;
}

.ps-footer__seo-coloana > .ps-footer__seo-grup { margin-block-end: 0; }

/* cardul lățit de footer-seo.js peste --ps-seo-lat coloane, cu lista împărțită pe tot atâtea */
.ps-footer__seo-grup[data-ps-seo-lat] {
    grid-column: span var(--ps-seo-lat);
    margin-block-end: 0;
}

.ps-footer__seo-grup[data-ps-seo-lat] > .ps-footer__seo-lista {
    display: block;
    columns: var(--ps-seo-lat);
    column-gap: var(--ps-space-20);
}

.ps-footer__seo-grup[data-ps-seo-lat] > .ps-footer__seo-lista > li {
    padding-block-end: var(--ps-space-3);
    break-inside: avoid;
}

.ps-footer__seo[data-ps-seo-egal] .ps-footer__seo-coloana > .ps-footer__seo-grup { flex-grow: 1; }

.ps-footer__seo-titlu {
    margin: 0;
    padding-block-end: var(--ps-space-10);
    border-block-end: var(--ps-border-width) solid var(--ps-border-soft);
    font: var(--ps-fw-semibold) var(--ps-fs-14) / var(--ps-lh-tight) var(--ps-font-sans);
    color: var(--ps-green-dark);
}

.ps-footer__seo-lista {
    display: flex;
    flex-direction: column;
    gap: var(--ps-space-3);
    margin: 0;
    padding: 0;
    list-style: none;
}

.ps-footer__seo-link {
    font: var(--ps-type-caption);
    color: var(--ps-text-footer);
    text-decoration: none;
    overflow-wrap: anywhere;
    transition: var(--ps-transition-color);
}

.ps-footer__seo-link--titlu {
    font: inherit;
    color: inherit;
}

.ps-footer__seo-link:hover,
.ps-footer__seo-link:focus-visible {
    color: var(--ps-green-link);
    text-decoration: underline;
}

/* pe telefon, două coloane de carduri mai compacte */
@media (max-width: 575.98px) {
    .ps-footer__seo {
        --ps-seo-latime-min: 130px;
        columns: 2;
        column-gap: var(--ps-space-10);
    }

    .ps-footer__seo[data-ps-seo-coloane] { row-gap: var(--ps-space-10); }

    .ps-footer__seo-coloana { gap: var(--ps-space-10); }

    .ps-footer__seo-grup {
        margin-block-end: var(--ps-space-10);
        padding: var(--ps-space-13) var(--ps-space-13) var(--ps-space-15);
    }
}
