/* 24.10.2026: containerele de 1320px erau centrate, dar titlurile și coloanele
   de 680–880px rămâneau în stânga lor. Acest strat comun centrează conținutul
   efectiv, inclusiv în template-urile RO/EN/HU cu stiluri locale. */
main.main {
    --max: 1200px;
    --reading-width: 52rem;
    --reading-shell: calc(var(--reading-width) + 2 * var(--gut));
}

/* Același container pentru section, article și div. */
main.main > .section {
    width: 100%;
    max-width: var(--max);
    margin-inline: auto;
    padding: var(--s-7) var(--gut);
}

main.main > .page-header {
    text-align: center;
    padding-block: var(--s-7) var(--s-6);
}

main.main .page-header__title {
    max-width: 26ch;
    margin-inline: auto;
    font-size: clamp(2rem, 1.45rem + 2.6vw, 3.5rem);
    line-height: 1.1;
    text-wrap: balance;
}

main.main .page-header__lead {
    max-width: 65ch;
    margin-inline: auto;
}

main.main .page-header :is(.page-header__eyebrow, .page-header__stats,
    .page-header__cta, .article-meta, .med-aliases, .agg-stats, .vpt-stats,
    .pets-actions, .pharm-hero__meta, .med-actions) {
    justify-content: center;
}

main.main .page-header > :is(p, .pets-intro, .vacc-quick-answer) {
    margin-inline: auto;
}

main.main .page-header :is(.med-hero, .pharm-hero) {
    max-width: 60rem;
    margin-inline: auto;
}
main.main .page-header .med-hero { justify-items: center; }

/* Fișele cu fotografie sau logo formează un grup centrat, cu datele ușor
   de parcurs lângă imagine. Nu centram fiecare rând din tabelul de prețuri. */
main.main .page-header :is(.product-hero, .chain-hero) {
    max-width: 64rem;
    margin-inline: auto;
    text-align: left;
}
main.main :is(.product-hero, .chain-hero) .page-header__title {
    margin-inline: 0;
}
main.main :is(.product-hero, .chain-hero) .page-header__stats {
    justify-content: flex-start;
}

/* Coloana editorială trebuie centrată ca întreg, nu doar închisă într-un
   container lat: aceasta era cauza golului mare din dreapta pe /animale. */
main.main > .section:is(.intent-explainer, .method-prose, .section--legal,
    .section--faq, .pets-evergreen) {
    max-width: var(--reading-shell);
}
main.main .section > :is(.prose, .faq, .faq-list, .index-alpha, .sources-list,
    .sublist-note, .contact-faq, .contact-note, [style*="max-width"]) {
    margin-inline: auto;
}
main.main :is(.med-prose, .prose--non-stop, .prose--open-now,
    .prose--compensate, .prose--cc, .cc-faq, .psd-body, .nm-content,
    .method-list, .method-note, .non-stop-cities-plain, .vacc-cities-plain,
    .glossary, .contact-section, .chart-container, .geo-answer,
    .med-disclaimer--compact, .al-faq, .intent-explainer, .med-hero-stats,
    .alert-box, .complications-list) {
    margin-inline: auto;
}
main.main > .section.about-grid { max-width: var(--reading-shell); }
main.main .al-summary p { margin-inline: auto; }
main.main > .section > p {
    max-width: var(--reading-width);
    margin-inline: auto;
}
main.main > .section:has(> .med-hero-stats) {
    padding-top: var(--s-4);
    padding-bottom: var(--s-5);
}
main.main .section__header {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--s-3);
    text-align: center;
}
main.main .section > .section__title,
main.main .section__header .section__title {
    max-width: 30ch;
    margin-inline: auto;
    text-align: center;
    text-wrap: balance;
}
main.main .section__header + :is(.pets-lead, .section__sub),
main.main .section > :is(.pets-lead, .section__sub, .section__note) {
    margin-inline: auto;
}
main.main .article-layout > * { min-width: 0; }
main.main .article-layout > .prose { margin-inline: auto; }

/* Mai multe familii de pagini folosesc details în interiorul .faq-item.
   Rama globală de pe li dubla rama și padding-ul detaliului. */
main.main .faq-item:has(> details) {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
}
main.main .faq-list { margin-inline: auto; }

/* Același ritm pentru hub-ul de animale în toate cele trei limbi. */
main.main .pets-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--s-5) var(--s-3);
}
main.main .pets-stats__cell { min-width: 0; overflow-wrap: anywhere; }
@media (min-width: 960px) {
    main.main .pets-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Prima pagină are propriul hero, folosit și de versiunile EN/HU. */
main.main > .hero { text-align: center; padding-block: var(--s-7); }
main.main .hero :is(.hero__display, .hero__lead, .search-bar) {
    margin-inline: auto;
}
main.main .hero__display {
    max-width: 22ch;
    font-size: clamp(2.5rem, 1.4rem + 4.5vw, 5rem);
    line-height: 1.05;
    text-wrap: balance;
}
main.main .hero :is(.hero__cta-row, .hero__trust, .al-stores) {
    justify-content: center;
}
main.main .hero__capsule {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    opacity: .2;
}
main.main .home-intro p { margin-inline: auto; text-align: center; }

/* Cataloagele noi și căutarea din apropiere au antete proprii. */
main.main > .nm-hero { text-align: center; }
main.main .nm-hero > :is(h1, p) { margin-inline: auto; }
main.main .nm-hero h1 {
    max-width: 26ch;
    font-size: clamp(2rem, 1.45rem + 2.6vw, 3.5rem);
    line-height: 1.1;
    text-wrap: balance;
}
main.main .nm-cta { max-width: 100%; justify-content: center; }
main.main > section:not(.section) > h2 { text-align: center; margin-inline: auto; }
main.main :is(.pet-catalog, .vet-registry, .pmod-wrap) > h1 {
    max-width: 26ch;
    margin-inline: auto;
    text-align: center;
    text-wrap: balance;
}
main.main :is(.pet-catalog, .vet-registry, .pmod-wrap) > p {
    max-width: var(--reading-width);
    margin-inline: auto;
}
main.main .section > .search-bar { margin-inline: auto; }

/* 24.10.2026: cardurile cu minmax(320px, 1fr) depășeau coloana utilă de
   269px la un viewport de 320px. Pragul minim nu poate depăși părintele. */
main.main :is(.pharm-list, .pharm-247-list, .cc-list) {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
}
main.main :is(.features, .contact-grid, .pmod-chain-grid, .vpt-grid,
    .ps-grid, .pmod-alt-list, .eat-grid) {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 17.5rem), 1fr));
}
main.main .med-nearby ul {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 17.5rem), 1fr));
}
main.main .nm-cities {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
}
.page-pets-hub main.main .med-nearby ul {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
}

/* Butoanele lungi trebuie să încapă inclusiv în traduceri; overflow:hidden
   pe body ascundea tăierea lor fără să rezolve lățimea. */
main.main .btn {
    max-width: 100%;
    min-width: 0;
    white-space: normal;
    line-height: 1.4;
    text-align: center;
}

@media (max-width: 600px) {
    main.main > .page-header,
    main.main > .section { padding-block: var(--s-6); }
    main.main .page-header__title { font-size: clamp(2rem, 7vw, 2.5rem); }
    .page-pets-hub main.main .med-nearby ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    main.main .faq-item__q { padding: var(--s-4); gap: var(--s-2); }
    main.main .faq-item__a { padding: 0 var(--s-4) var(--s-4); }
    main.main .page-header :is(.product-hero__media, .chain-hero__logo-wrap) {
        margin-inline: auto;
    }
}

@media (max-width: 359px) {
    main.main :is(.features, .contact-grid, .drug-rec-grid),
    main.main .med-nearby ul { grid-template-columns: minmax(0, 1fr); }
    .page-pets-hub main.main .med-nearby ul { grid-template-columns: minmax(0, 1fr); }
}
