/* Modèle commun issu des pages Santé, Budget et Remise : charte du site public. */
html.sdo-public body { background: var(--sdo-page); color: var(--sdo-text); }
html.sdo-public:not(.sdo-home) body { height: auto !important; min-height: 100vh; }
html.sdo-public main { min-width: 0; }

/* Les bandeaux historiques rejoignent le modèle orange compact, repère graphite. */
html.sdo-public main > .bandeau,
html.sdo-public main h2.bandeau,
html.sdo-public main h3.bandeau {
    position: relative;
    margin-block: 0 1.5rem;
    padding: .9rem calc(clamp(1rem, 2.5vw, 2.5rem) + 1rem + 3px);
    border: 0;
    border-bottom: 1px solid var(--sdo-orange-dark);
    background: var(--sdo-orange);
    color: var(--sdo-page);
    font-family: 'Open Sans', sans-serif !important;
    font-size: clamp(1.25rem, 1.8vw, 1.65rem) !important;
    font-weight: 700;
    line-height: 1.25 !important;
    text-align: center;
    text-shadow: none;
    text-transform: uppercase !important;
    overflow-wrap: anywhere;
    box-shadow: 0 5px 14px rgba(0, 0, 0, .14);
}
html.sdo-public main > .bandeau::before,
html.sdo-public main h2.bandeau::before,
html.sdo-public main h3.bandeau::before {
    content: '';
    position: static;
    width: 3px;
    background: var(--sdo-page);
}
html.sdo-public .lot5-banner .bandeau,
html.sdo-public .lot6-banner .bandeau {
    margin: 0;
    color: var(--sdo-page);
    font-size: clamp(1.25rem, 1.8vw, 1.65rem) !important;
    font-weight: 700;
    line-height: 1.25 !important;
    text-shadow: none;
    text-transform: uppercase !important;
}
html.sdo-public .puppies-page__hero {
    margin-top: 3rem;
    padding: .9rem clamp(1rem, 2.5vw, 2.5rem);
    border-bottom: 1px solid var(--sdo-orange-dark);
    background: var(--sdo-orange);
    box-shadow: 0 5px 14px rgba(0, 0, 0, .14);
}
html.sdo-public .puppies-page__hero > .container { max-width: 1560px; }
html.sdo-public .puppies-page__hero h1 { margin: 0; color: var(--sdo-page); font-size: clamp(1.25rem, 1.8vw, 1.65rem); font-weight: 700; line-height: 1.25; text-align: left; text-shadow: none; text-transform: uppercase !important; }

/* Sections de lecture historiques : même surface et même cadre que les nouveaux contenus. */
html.sdo-legacy main > .contenu,
html.sdo-legacy main > .container,
html.sdo-legacy main > .container-fluid,
html.sdo-text-layout main > .contenu,
html.sdo-gallery main > .container-fluid,
html.sdo-gallery main > .gallery-block {
    width: min(1560px, calc(100% - 2rem));
    margin: 2rem auto;
    padding: clamp(1.25rem, 2.5vw, 2rem);
    border: 1px solid var(--sdo-border);
    border-top: 3px solid var(--sdo-orange);
    border-radius: 4px;
    background: var(--sdo-surface);
    box-shadow: 0 10px 28px rgba(0, 0, 0, .16);
}
html.sdo-legacy main > .contenu > .container,
html.sdo-legacy main > .contenu > .container-fluid { width: 100%; max-width: none; padding-inline: 0; }
html.sdo-legacy main > .contenu .row > [class*="col-"] { color: var(--sdo-text-muted); font-size: 1rem; line-height: 1.75; text-align: left; }
html.sdo-legacy main p,
html.sdo-legacy main li { color: var(--sdo-text-muted); font-size: 1rem !important; line-height: 1.75; text-align: left; overflow-wrap: break-word; }
html.sdo-text-layout main p,
html.sdo-text-layout main li { color: var(--sdo-text-muted); font-size: 1rem !important; line-height: 1.75; text-align: left; overflow-wrap: break-word; }
html.sdo-legacy main strong { color: var(--sdo-text); }
html.sdo-legacy main h2:not(.bandeau),
html.sdo-legacy main h3:not(.bandeau) { color: var(--sdo-text); font-weight: 700; line-height: 1.35; text-align: left; text-shadow: none; }
html.sdo-legacy main h2:not(.bandeau) { font-size: clamp(1.25rem, 1.8vw, 1.65rem); }
html.sdo-legacy main h3:not(.bandeau) { font-size: 1.15rem; }
html.sdo-legacy main .ss-bandeau {
    margin-bottom: 1rem; padding: .75rem 1rem;
    border-left: 3px solid var(--sdo-orange);
    background: var(--sdo-surface-deep); color: var(--sdo-text);
    font-size: 1.1rem; line-height: 1.5; text-shadow: none; text-align: left;
}
html.sdo-legacy main .form,
html.sdo-legacy main .third-party-placeholder,
html.sdo-gallery main .third-party-placeholder {
    padding: 1.25rem; border: 1px solid var(--sdo-border); border-radius: 4px; background: var(--sdo-surface-deep); color: var(--sdo-text-muted);
}
html.sdo-legacy main label { color: var(--sdo-text); }
html.sdo-legacy main .form input:not([type=checkbox]):not([type=radio]),
html.sdo-legacy main .form select,
html.sdo-legacy main .form textarea { max-width: 100%; min-height: 44px; border-color: var(--sdo-border); }

/* Les encarts éditoriaux déjà présents rejoignent les mêmes composants. */
html.sdo-modern body:not(.lot5-page) .sdo-editorial-intro {
    max-width: 1560px; padding: clamp(1.25rem, 2.5vw, 2rem);
    border: 1px solid var(--sdo-border); border-left: 3px solid var(--sdo-orange); border-radius: 4px;
    background: var(--sdo-surface); box-shadow: 0 10px 28px rgba(0, 0, 0, .16); text-align: left;
}
html.sdo-modern body:not(.lot5-page) .sdo-editorial-intro::before { display: none; }
html.sdo-modern body:not(.lot5-page) .sdo-editorial-intro p { text-align: left; }
html.sdo-modern .sdo-editorial-details { border-top: 3px solid var(--sdo-orange); box-shadow: 0 10px 28px rgba(0, 0, 0, .16); }

/* Listes, fiches et galeries : les structures fonctionnelles restent en place. */
html.sdo-public main :is(.box_actu, .box-liste-chiot, .box-liste-portee, .box-tab-fratrie),
html.sdo-profile main .container.details,
html.sdo-profile main .container-pedigree {
    border: 1px solid var(--sdo-border);
    border-top: 3px solid var(--sdo-orange);
    border-radius: 4px;
    background: var(--sdo-surface);
    box-shadow: 0 10px 28px rgba(0, 0, 0, .16);
}
html.sdo-profile main .container.details { max-width: 1560px; padding: clamp(1rem, 2.5vw, 2rem); }
html.sdo-profile main .container-pedigree { max-width: calc(100% - 2rem); margin-inline: auto; padding: 1rem; overflow-x: auto; }
html.sdo-public main .box_actu :is(.box_actu_info, .box_actu_body, .box_actu_footer) { background: var(--sdo-surface); color: var(--sdo-text-muted); }
html.sdo-gallery .container-fluid-galerie { width: 100%; max-width: 1560px; margin-inline: auto; }
html.sdo-gallery main .item { border: 1px solid var(--sdo-border); }

/* Articles et actualités : rubrique dans le bandeau, titre propre dans le document. */
html.sdo-editorial-detail main > .container { width: 100%; max-width: 1640px; padding-inline: clamp(1rem, 2.5vw, 2.5rem); }
html.sdo-editorial .document {
    width: 100%; max-width: 1560px; margin-inline: auto; overflow: hidden;
    border: 1px solid var(--sdo-border); border-top: 3px solid var(--sdo-orange); border-radius: 4px;
    background: var(--sdo-surface); color: var(--sdo-text);
    box-shadow: 0 10px 28px rgba(0, 0, 0, .16);
}
html.sdo-editorial .document .titre_document { padding: 0; border-bottom: 1px solid var(--sdo-border); background: var(--sdo-surface-deep); text-align: left; }
html.sdo-editorial .document .titre_document h1.sdo-document-title {
    margin: 0; padding: 1.25rem clamp(1.25rem, 4vw, 4rem);
    color: var(--sdo-text); font-family: 'Open Sans', sans-serif; font-size: clamp(1.45rem, 2vw, 1.95rem); font-weight: 800; line-height: 1.3; text-align: left; text-shadow: none; overflow-wrap: anywhere;
}
html.sdo-editorial .document .img_document { border: 0; border-bottom: 1px solid var(--sdo-border); background: var(--sdo-surface-deep); }
html.sdo-editorial body:not(.lot5-article) .document .img_document > .editoriales-picture > img { width: 100%; height: auto; max-height: 640px; object-fit: contain; }
html.sdo-editorial .document .img_document > .editoriales-placeholder > img { max-height: 360px; object-fit: contain; }
html.sdo-editorial .document .infos_document { padding: clamp(1.25rem, 4vw, 4rem); background: var(--sdo-surface); color: var(--sdo-text); }
html.sdo-editorial .document .contenu_document { max-width: 1200px; margin-inline: auto; color: var(--sdo-text-muted); font-size: 1rem; line-height: 1.75; overflow-wrap: break-word; }
html.sdo-editorial .document .contenu_document :is(p, li, blockquote) { color: var(--sdo-text-muted); font-size: 1rem !important; line-height: 1.75; text-align: left; }
html.sdo-editorial .document .contenu_document strong { color: var(--sdo-text); }
html.sdo-editorial .document .contenu_document :is(h2, h3, h4) { margin: 1.75rem 0 1rem; padding-left: 1rem; border-left: 3px solid var(--sdo-orange); color: var(--sdo-text); font-weight: 700; line-height: 1.35; text-align: left; text-shadow: none; }
html.sdo-editorial .document .contenu_document h2 { font-size: clamp(1.25rem, 1.7vw, 1.55rem); }
html.sdo-editorial .document .contenu_document :is(h3,h4) { font-size: 1.15rem; }
html.sdo-editorial .document .contenu_document figure { margin: 1.5rem 0; padding: 0; overflow: hidden; border: 1px solid var(--sdo-border); border-radius: 4px; background: var(--sdo-surface-deep); }
html.sdo-editorial .document .contenu_document figcaption { padding: .75rem 1rem; color: var(--sdo-text-muted); font-size: .875rem; line-height: 1.5; }
html.sdo-editorial .document .contenu_document img { max-width: 100%; height: auto; }
html.sdo-editorial .document .footer_document { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--sdo-border); color: var(--sdo-text-muted); }
html.sdo-editorial .document .footer_document table { width: 100%; }
html.sdo-editorial .document .footer_document td { padding: .5rem; white-space: normal; overflow-wrap: anywhere; }
html.sdo-editorial main > .container > .ss-bandeau { margin: 2rem 0 1rem; padding: 1rem; border-left: 3px solid var(--sdo-orange); background: var(--sdo-surface-deep); color: var(--sdo-text); font-size: 1.25rem; text-align: left; }
html.sdo-public .footer time { white-space: nowrap; }

/* Le titre et son repère forment un seul groupe centré dans chaque bandeau. */
html.sdo-public main .bandeau,
html.sdo-public .puppies-page__hero h1 {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    text-align: center !important;
}
html.sdo-public main .bandeau::before,
html.sdo-public .puppies-page__hero h1::before {
    content: '';
    position: static;
    display: block;
    flex: 0 0 3px;
    align-self: center;
    width: 3px;
    height: 1.2em;
    margin: 0;
    background: var(--sdo-page);
}
html.sdo-public :is(.lot5-banner__inner, .lot6-banner__inner),
html.sdo-public .puppies-page__hero > .container {
    padding: 0;
    border: 0;
    text-align: center;
}
/* Les grandes photographies suivent le bandeau sans bande vide intermédiaire. */
html.sdo-public main > .bandeau:has(+ .view) { margin-bottom: 0; }
html.sdo-public main > .bandeau + .view { margin-top: 0; }

/* Accueil : les bandeaux rejoignent aussi les carrousels et les images imbriquées. */
html.sdo-home main > :is(h1, h2, h3).bandeau { margin: 0; box-shadow: none; }
html.sdo-home main > .caroussel {
    margin: 0;
    padding: 1rem 1rem .25rem;
    background: var(--sdo-page);
}
html.sdo-home main > .caroussel :is(.responsive, .slick-list, .slick-track, .preview) { background: transparent; }
html.sdo-home main > .caroussel .box_actu,
html.sdo-home main > .caroussel .footer_news td { background: var(--sdo-surface) !important; }
html.sdo-home main > .caroussel .box_actu { box-shadow: none; }
html.sdo-home main > .bandeau + .contenu:has(img) { padding-top: 0; }

/* Pages de lecture longues : sections distinctes et largeur de lecture maîtrisée. */
html.sdo-public .lot8-reading-page main > .contenu {
    width: min(1200px, calc(100% - 2rem));
    margin: 1.5rem auto;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}
.lot8-reading-page main > .contenu > .container { padding: 0; margin-bottom: 0 !important; }
.lot8-reading-page .lot8-topic-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.lot8-reading-page .lot8-topic {
    min-width: 0;
    padding: clamp(1.25rem, 2.5vw, 2rem);
    border: 1px solid var(--sdo-border);
    border-top: 3px solid var(--sdo-orange);
    border-radius: 4px;
    background: var(--sdo-surface);
}
.lot8-reading-page .lot8-topic--wide { grid-column: 1 / -1; }
html.sdo-public .lot8-reading-page .lot8-topic--wide > :is(h2, h3, p, ul) { max-width: 50rem; margin-inline: auto; }
.lot8-reading-page .lot8-topic :is(p, ul) { max-width: 80ch; margin-inline: auto; }
.lot8-reading-page main .lot8-topic :is(h2, h3) {
    margin: 0 0 1.1rem;
    padding: 0 0 0 .8rem;
    border-left: 3px solid var(--sdo-orange);
    font-size: clamp(1.15rem, 1.7vw, 1.4rem);
    line-height: 1.4;
    text-align: left;
}
.lot8-reading-page .lot8-topic p { margin-top: 0; margin-bottom: 1rem; }
.lot8-reading-page .lot8-topic > :last-child { margin-bottom: 0; }
.lot8-reading-page .lot8-reading-list { padding-left: 1.25rem; }
.lot8-reading-page .lot8-reading-list li + li { margin-top: .4rem; }
.lot8-reading-page .lot8-reading-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; width: 100%; margin-bottom: .5rem; }
.lot8-reading-page .lot8-reading-nav a { padding: .55rem 1.25rem; min-height: 44px; border: 1px solid var(--sdo-orange); border-radius: 4px; background: var(--sdo-surface-deep); font-size: 1rem; line-height: 1.5; }
.lot8-reading-page .lot8-reading-nav a:focus-visible { outline: 3px solid var(--sdo-orange-hover); outline-offset: 3px; }
.lot8-reading-page .lot8-credit .row { display: block; margin: 0; }
.lot8-reading-page .lot8-credit p { margin-bottom: 0; text-align: center; }
.lot8-reading-page main > .lot8-illustration-card {
    width: min(960px, calc(100% - 2rem)); padding: 1rem;
    border: 1px solid var(--sdo-border); border-radius: 4px; background: var(--sdo-surface);
}
.lot8-reading-page .lot8-illustration-card .row { margin: 0 !important; }
.lot8-reading-page .lot8-illustration-card [class*="col-"] { padding: 0; }
.lot8-reading-page main img { max-width: 100%; height: auto; }
.lot8-reading-page main img:not([src]) { display: none; }
.lot8-reading-page #hanche, .lot8-reading-page #coude { scroll-margin-top: 6rem; }

/* Utilisation : cadre à la mesure de la photo, puis disciplines en cartes distinctes. */
html.sdo-public .lot8-utilisation-page main > .lot8-utilisation-hero { width: min(780px, calc(100% - 2rem)); padding: 1rem; }
.lot8-utilisation-page .lot8-utilisation-hero > .container { padding: 0; }
.lot8-utilisation-photo img { display: block; width: 100%; height: auto; border-radius: 3px; }
.lot8-utilisation-page .lot8-utilisation-copy p { max-width: 80ch; margin-inline: auto; margin-bottom: 1rem; }
html.sdo-public .lot8-utilisation-page main > .lot8-utilisation-disciplines { padding: 0; border: 0; background: transparent; box-shadow: none; }
.lot8-utilisation-page .lot8-utilisation-disciplines .row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; margin: 0 !important; }
.lot8-utilisation-page .lot8-utilisation-disciplines .grid { width: 100%; max-width: none; padding: 0; }
.lot8-utilisation-page .lot8-utilisation-disciplines figure { float: none; width: 100%; max-width: none; min-width: 0; margin: 0; border: 1px solid var(--sdo-border); border-radius: 4px; }
.lot8-utilisation-page .lot8-utilisation-disciplines figure img { width: 100%; height: auto; }
.lot8-utilisation-page .lot8-utilisation-disciplines figure:focus-within { outline: 3px solid var(--sdo-orange-hover); outline-offset: 3px; }

/* Robes et masques : explications séparées, illustrations et légendes visibles. */
.lot8-colors-page .lot8-colors-layout { width: min(1560px, calc(100% - 2rem)); margin: 2rem auto; }
.lot8-colors-page .lot8-colors-section + .lot8-colors-section { margin-top: 3rem; }
html.sdo-public .lot8-colors-page .lot8-colors-layout h2 {
    margin: 0 0 1.25rem; padding-left: .8rem; border-left: 3px solid var(--sdo-orange);
    color: var(--sdo-text); font-size: clamp(1.35rem, 1.8vw, 1.65rem); line-height: 1.4; text-align: left;
}
.lot8-colors-page .lot8-colors-overview { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 2rem; margin-bottom: 2rem; }
.lot8-colors-page :is(.lot8-colors-intro, .lot8-colors-palette, .lot8-mask-intro) {
    min-width: 0; padding: clamp(1.25rem, 2.5vw, 2rem);
    border: 1px solid var(--sdo-border); border-radius: 4px; background: var(--sdo-surface);
}
.lot8-colors-page .lot8-colors-layout p { margin: 0 0 1rem; max-width: 80ch; }
.lot8-colors-page .lot8-colors-layout p:last-child { margin-bottom: 0; }
html.sdo-public .lot8-colors-page .lot8-colors-palette h3 { margin: 0 0 1rem; color: var(--sdo-text); font-size: 1.1rem; line-height: 1.5; text-align: left; }
.lot8-colors-page .lot8-colors-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; padding: 0; margin: 0; list-style: none; }
.lot8-colors-page .lot8-colors-list li { min-width: 0; padding: .5rem .75rem; border-left: 2px solid var(--sdo-orange); background: var(--sdo-surface-deep); }
.lot8-colors-page .lot8-colors-list li:last-child { grid-column: 1 / -1; }
.lot8-colors-page :is(.lot8-coat-grid, .lot8-mask-grid) { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem; }
.lot8-colors-page .lot8-color-card { min-width: 0; margin: 0; overflow: hidden; border: 1px solid var(--sdo-border); border-radius: 4px; background: var(--sdo-surface); }
.lot8-colors-page .lot8-color-card img { display: block; width: 100%; max-width: 100%; height: auto; }
.lot8-colors-page .lot8-color-card figcaption {
    display: flex; align-items: center; justify-content: center; min-height: 3.25rem;
    padding: .75rem; border-top: 1px solid var(--sdo-border); color: var(--sdo-text);
    font-size: 1rem; font-weight: 700; line-height: 1.5; text-align: center; overflow-wrap: anywhere;
}
.lot8-colors-page .lot8-mask-intro { margin-bottom: 2rem; }
@media (max-width: 1099px) {
    .lot8-colors-page .lot8-colors-overview { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
}
@media (max-width: 991px) {
    .lot8-colors-page :is(.lot8-coat-grid, .lot8-mask-grid) { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
}
@media (max-width: 575px) {
    .lot8-colors-page .lot8-colors-layout { margin-block: 1.5rem; }
    .lot8-colors-page :is(.lot8-coat-grid, .lot8-mask-grid) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lot8-colors-page .lot8-color-card figcaption { min-height: 4.5rem; padding: .6rem; font-size: .875rem; }
}

/* Alimentation : photo d'entrée, rubriques lisibles et cartes de taille mesurée. */
.lot8-food-page .lot8-food-layout { width: min(1560px, calc(100% - 2rem)); margin: 2rem auto; }
.lot8-food-page .lot8-food-intro {
    display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    overflow: hidden; margin-bottom: 2rem;
    border: 1px solid var(--sdo-border); border-radius: 4px;
    background: var(--sdo-surface); box-shadow: 0 10px 28px rgba(0, 0, 0, .16);
}
.lot8-food-page .lot8-food-intro figure { align-self: center; min-width: 0; margin: 0; }
.lot8-food-page .lot8-food-intro img { display: block; width: 100%; max-width: 100%; height: auto; }
.lot8-food-page .lot8-food-intro__body { min-width: 0; padding: clamp(1.25rem, 2.5vw, 2rem); }
.lot8-food-page .lot8-food-section { margin-block: 2.5rem; }
.lot8-food-page .lot8-food-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
.lot8-food-page .lot8-food-card {
    min-width: 0; padding: clamp(1.25rem, 2.5vw, 2rem);
    border: 1px solid var(--sdo-border); border-top: 3px solid var(--sdo-orange); border-radius: 4px;
    background: var(--sdo-surface); box-shadow: 0 10px 28px rgba(0, 0, 0, .16);
}
.lot8-food-page .lot8-food-card--wide { grid-column: 1 / -1; }
html.sdo-public .lot8-food-page .lot8-food-layout :is(h2, h3) {
    margin: 0 0 1rem; color: var(--sdo-text); text-align: left; text-shadow: none; line-height: 1.4;
}
html.sdo-public .lot8-food-page .lot8-food-layout h2 { padding-left: .8rem; border-left: 3px solid var(--sdo-orange); font-size: clamp(1.25rem, 1.8vw, 1.65rem); }
html.sdo-public .lot8-food-page .lot8-food-layout h3 { font-size: 1.1rem; }
.lot8-food-page .lot8-food-layout p { max-width: 80ch; margin: 0 0 1rem; }
.lot8-food-page .lot8-food-layout p:last-child { margin-bottom: 0; }
.lot8-food-page .lot8-food-card--wide p { max-width: none; }
.lot8-food-page .lot8-food-quote { margin: 2rem 0; padding: 1.25rem; border-left: 3px solid var(--sdo-orange); background: var(--sdo-surface-deep); }
.lot8-food-page .lot8-food-quote p { max-width: none; }

@media (max-width: 991px) {
    .lot8-food-page .lot8-food-intro { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767px) {
    .lot8-reading-page .lot8-topic-grid { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
    .lot8-utilisation-page .lot8-utilisation-disciplines .row { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
    .lot8-food-page .lot8-food-layout { margin-block: 1rem; }
    .lot8-food-page .lot8-food-grid { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
    .lot8-food-page .lot8-food-section { margin-block: 1.5rem; }
}

@media (max-width: 767px) {
    html.sdo-editorial .document .footer_document :is(tbody,tr,td) { display: block; width: 100%; }
    html.sdo-profile main .container.details { max-width: calc(100% - 2rem); }
    html.sdo-legacy main > .contenu, html.sdo-gallery main > .gallery-block { margin-block: 1rem; }
}

/* Liens utiles : logos locaux entiers et cartes de dimensions régulières. */
.lot8-links-page .lot8-links-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; width: min(1560px, calc(100% - 2rem)); margin: 2rem auto; }
.lot8-links-page .lot8-link-card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid var(--sdo-border); border-top: 3px solid var(--sdo-orange); border-radius: 4px; background: var(--sdo-surface); }
.lot8-links-page .lot8-link-card__logo { display: flex; align-items: center; justify-content: center; height: 200px; padding: 1rem; border-bottom: 1px solid var(--sdo-border); background: var(--sdo-surface-deep); }
.lot8-links-page .lot8-link-card__logo img { display: block; max-width: min(100%, 230px); max-height: 168px; width: auto; height: auto; object-fit: contain; }
.lot8-links-page .lot8-link-logo-light { display: inline-flex; padding: .75rem; border-radius: 3px; background: var(--sdo-light); }
.lot8-links-page .lot8-link-card__body { display: flex; flex-direction: column; flex: 1; padding: 1.25rem; }
html.sdo-public .lot8-links-page .lot8-link-card h2 { margin: 0 0 1rem; color: var(--sdo-text); font-size: 1.15rem; line-height: 1.5; text-align: left; }
.lot8-links-page .lot8-link-card__body > p { margin: 0 0 1.25rem; }
.lot8-links-page .lot8-link-card__body > .lot8-link-card__action { margin-top: auto; margin-bottom: 0; }
.lot8-links-page .lot8-link-card__action a { display: inline-flex; align-items: center; gap: .4em; min-height: 44px; }
@media (max-width: 1199px) { .lot8-links-page .lot8-links-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 639px) { .lot8-links-page .lot8-links-grid { grid-template-columns: minmax(0, 1fr); gap: 1rem; } }

/* Listes de chiens : agencement et encart, effet Goliath historique conservé. */
.lot8-dogs-page .lot8-dogs-layout { width: min(1560px, calc(100% - 2rem)); margin: 2rem auto; }
.lot8-dogs-page .lot8-dogs-intro { margin-bottom: 2rem; padding: clamp(1.25rem, 2.5vw, 2rem); border: 1px solid var(--sdo-border); border-left: 3px solid var(--sdo-orange); border-radius: 4px; background: var(--sdo-surface); }
html.sdo-public .lot8-dogs-page .lot8-dogs-intro p { max-width: 85ch; margin: 0 auto; color: var(--sdo-text-muted); font-size: 1rem; line-height: 1.75; text-align: left; }
.lot8-dogs-page .lot8-dogs-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
.lot8-dogs-page .lot8-dogs-grid--compact { max-width: 1200px; margin-inline: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lot8-dogs-page .lot8-dogs-grid > .grid { min-width: 0; width: 100%; max-width: none; margin: 0; padding: 0; }
.lot8-dogs-page .lot8-dogs-grid > .grid > figure { float: none; width: 100%; margin: 0; }
.lot8-dogs-page .lot8-dogs-grid > .grid > figure img { width: 100%; height: auto; }
@media (max-width: 1199px) { .lot8-dogs-page .lot8-dogs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 639px) { .lot8-dogs-page .lot8-dogs-grid { grid-template-columns: minmax(0, 1fr); gap: 1rem; } }

/* Les courts textes d’introduction gardent un encart proportionné sur ordinateur. */
@media (min-width: 992px) {
    .lot8-dogs-page .lot8-dogs-intro { width: 100%; max-width: none; margin-inline: auto; padding: 1rem 1.25rem; }
    .lot8-dogs-page .lot8-dogs-layout:has(> .lot8-dogs-grid--compact) > .lot8-dogs-intro { max-width: 1200px; }
    html.sdo-public .lot8-dogs-page .lot8-dogs-intro p { max-width: none; }
}

/* Sélection : le montage final et son crédit forment un seul visuel centré. */
.lot8-selection-page .lot8-selection-visual { width: min(1000px, calc(100% - 2rem)); margin: 2rem auto; overflow: hidden; border: 1px solid var(--sdo-border); border-top: 3px solid var(--sdo-orange); border-radius: 4px; background: var(--sdo-surface); }
.lot8-selection-page .lot8-selection-visual picture { display: block; }
.lot8-selection-page .lot8-selection-visual img { display: block; width: 100%; max-width: 100%; height: auto; }
.lot8-selection-page .lot8-selection-visual figcaption { padding: 1rem 1.25rem; color: var(--sdo-text-muted); font-size: .95rem; line-height: 1.6; text-align: left; }


/* Footer public commun : modèle Santé, indépendant des feuilles de chaque page.
   Les sélecteurs bornés au footer gardent la priorité sur les variantes historiques. */
html.sdo-public footer.footer {
    padding: 1rem 1rem 1.25rem;
    font-family: 'Open Sans', sans-serif;
    font-size: .875rem;
    font-weight: 300;
    line-height: 1.5;
    text-align: center;
}
html.sdo-public footer.footer :is(.about, .follow, .more) {
    display: inline-block;
    font-size: clamp(1.05rem, 1.5vw, 1.3rem);
    line-height: 1.25;
    border-bottom-width: 2px;
    padding-bottom: .2rem;
}
html.sdo-public footer.footer :is(h2, p) {
    margin-top: .55rem;
    margin-bottom: .55rem;
    font-family: 'Open Sans', sans-serif !important;
    font-size: .875rem !important;
    line-height: 1.55;
}
html.sdo-public footer.footer h2 { font-weight: 300; }
html.sdo-public footer.footer p { font-weight: 700; }
html.sdo-public footer.footer .social-network { margin-top: 0; }
html.sdo-public footer.footer :is(.fb-page, .third-party-placeholder) {
    margin-top: 3rem !important;
    margin-bottom: 3rem !important;
}
html.sdo-public footer.footer .footer-site-news { margin: 1rem 1rem 0; line-height: 1.6; }
html.sdo-public footer.footer .footer-site-news ul { margin-bottom: 1rem; }
html.sdo-public footer.footer .copyscape { margin-top: 1rem !important; margin-bottom: 1rem !important; }
@media (min-width: 576px) {
    html.sdo-public footer.footer .social-network { margin-top: 10px; }
}

/* Bibliographies : encart discret, sans réduire les textes courants ni le footer du site. */
html.sdo-public main :is(.ear-sources, .dent-sources, .groupcat-sources, .recuperation-sources, .ch-sources) {
    min-width: 0;
    padding: clamp(1rem, 2vw, 1.25rem);
    border: 1px solid var(--sdo-border);
    border-radius: 4px;
    background: var(--sdo-surface);
    color: var(--sdo-text-muted);
    font-size: .875rem;
    line-height: 1.6;
    text-align: left;
}
html.sdo-public main :is(.ear-sources, .dent-sources, .groupcat-sources, .recuperation-sources, .ch-sources) h2 {
    font-size: 1rem !important;
    line-height: 1.4;
}
html.sdo-public main :is(.ear-sources, .dent-sources, .groupcat-sources, .recuperation-sources, .ch-sources) :is(p, li) {
    max-width: none;
    font-size: .875rem !important;
    line-height: 1.6;
}
html.sdo-public main :is(.ear-sources, .dent-sources, .groupcat-sources, .recuperation-sources, .ch-sources) a { font-size: inherit; }
html.sdo-public main :is(.ear-sources, .dent-sources, .groupcat-sources, .recuperation-sources, .ch-sources) ul {
    gap: .5rem 1.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
html.sdo-public main :is(.ear-sources, .dent-sources, .groupcat-sources, .recuperation-sources, .ch-sources) p { margin: 0 0 .75rem; }
html.sdo-public main :is(.ear-sources, .dent-sources, .groupcat-sources, .recuperation-sources, .ch-sources) ul + p { margin-top: .75rem; }
html.sdo-public main :is(.ear-sources, .dent-sources, .groupcat-sources, .recuperation-sources, .ch-sources) :is(p, ul):last-child { margin-bottom: 0; }
