/* ═══════════════════════════════════════════════════════════
   ART SAMUI — pont Divi (v2.0.1, Divi 4 et Divi 5)
   Chargé APRÈS artsamui.css. Neutralise les styles par défaut de Divi
   (marges de section, grille, typographie, listes, citations, liens)
   autour des composants du site, sans toucher aux réglages Divi ailleurs.

   Les sections Divi qui reçoivent un extrait HTML du kit sont reconnues
   d'elles-mêmes (par leur contenu) ; la classe CSS « as-raw » reste
   acceptée, où qu'elle soit posée. La section Contact (2 colonnes) porte « as-grid ».
   ═══════════════════════════════════════════════════════════ */

/* ═══════════ FOND ET TYPO DE BASE ═══════════ */
html, body, #page-container, #et-main-area, #main-content { background-color: var(--bone); }
body { font-family: var(--sans); font-size: 16px; line-height: 1.6; color: var(--ink); font-weight: 400; }
#page-container { padding-top: 0 !important; }
/* Divi masque le débordement vertical du conteneur : les titres collants (position: sticky) ne tiendraient plus */
#page-container, #et-main-area, #main-content { overflow-y: visible !important; overflow-x: clip; }
#main-content .container:before { display: none; }          /* filet de barre latérale */
.et_pb_scroll_top, .et_pb_scroll_top.et-visible { display: none !important; }   /* bouton « retour en haut » */

/* Divi : h1-h6 en #333 / 500 / line-height 1em, p avec padding, liens bleus.
   « body x » (spécificité 0,0,2) bat les sélecteurs d'élément de Divi
   tout en restant sous les classes du site (0,1,0). */
body :is(h1, h2, h3, h4, h5, h6) { color: inherit; font-weight: 300; line-height: inherit; padding-bottom: 0; font-family: inherit; }
body p { padding-bottom: 0; }
body a { color: inherit; }
/* contenu des extraits (modules Code) : listes, citations et images gardent les styles du site */
body :is(.et_pb_code_inner, .as-raw, .as-grid, .footer, .menu, .dock) :is(ul, ol) { list-style: none; padding: 0; line-height: inherit; }
/* listes à puces du site (Privacy, Artists « What to send us ») */
body .et_pb_code_inner :is(.policy ul, .send-list) { list-style: disc; padding-left: 1.2em; }
body :is(.et_pb_code_inner, .as-grid) blockquote { margin: 0; padding: 0; border: 0; }
body .et_pb_code_inner img { max-width: none; }              /* les images du site ont leurs propres dimensions */
body .et_pb_code_inner :is(.a-img, .art-thumb, .art-square, .journal-thumb) img { max-width: 100%; }

/* ═══════════ SECTIONS « BRUTES » ═══════════ */
/* aucune marge, aucun fond, aucune grille Divi : l'extrait garde sa mise en page */
#page-container .as-raw { padding: 0 !important; margin: 0 !important; background: transparent !important; z-index: auto; }
#page-container .as-raw .et_pb_row { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; z-index: auto; }
#page-container .as-raw .et_pb_column { width: 100% !important; margin: 0 !important; padding: 0 !important; float: none; z-index: auto; }
#page-container .as-raw .et_pb_module { margin: 0 !important; padding: 0 !important; z-index: auto; }
#page-container .as-raw .et_pb_code_inner { position: static; }

/* Même traitement si la classe a été posée sur la ligne, la colonne ou le module, ou oubliée :
   toute section Divi dont un module Code contient un extrait du kit (une <section>, un <article>,
   l'en-tête, le menu ou le pied de page du site) prend toute la largeur, sans marge ni fond. */
#page-container .et_pb_section:has(.as-raw, .et_pb_code_inner :is(section, article, header, footer, .menu)) {
  padding: 0 !important; margin: 0 !important; background: transparent !important; z-index: auto;
}
#page-container .et_pb_section:has(.as-raw, .et_pb_code_inner :is(section, article, header, footer, .menu)) .et_pb_row {
  width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; z-index: auto;
}
#page-container .et_pb_section:has(.as-raw, .et_pb_code_inner :is(section, article, header, footer, .menu)) .et_pb_column {
  width: 100% !important; margin: 0 !important; padding: 0 !important; float: none; z-index: auto;
}
#page-container .et_pb_section:has(.as-raw, .et_pb_code_inner :is(section, article, header, footer, .menu)) .et_pb_module {
  margin: 0 !important; padding: 0 !important; z-index: auto;
}
#page-container .et_pb_section:has(.as-raw, .et_pb_code_inner :is(section, article, header, footer, .menu)) .et_pb_code_inner { position: static; }

/* en-tête / pied de page Theme Builder : la section ne doit rien dessiner */
.et-l--header .as-raw, .et-l--footer .as-raw,
.et-l--header .et_pb_section:has(.dock), .et-l--footer .et_pb_section:has(.footer) { position: static; }
/* site.js rattache la barre (#dock) et le menu à <body> : la section d'en-tête du Theme Builder reste vide
   et ne doit plus occuper de place (sinon : bande blanche de 100 px en haut de chaque page) */
#page-container .et-l--header .et_pb_section:has(.et_pb_code) { padding: 0 !important; margin: 0 !important; background: transparent !important; min-height: 0 !important; }
#page-container .et-l--header .et_pb_section:has(.et_pb_code) :is(.et_pb_row, .et_pb_column, .et_pb_module) {
  width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; min-height: 0 !important;
}
body.admin-bar .dock { top: 44px; }
@media (max-width: 782px) { body.admin-bar .dock { top: 56px; } }

/* ═══════════ ÉDITEUR VISUEL DIVI (body.as-builder) ═══════════ */
/* tout est visible et à plat pour l'édition ; les animations ne tournent que sur le site */
.as-builder .reveal, .as-builder .rise > span { opacity: 1 !important; transform: none !important; }
.as-builder .veil, .as-builder .menu, .as-builder .dive { display: none !important; }
.as-builder .dock { position: relative; top: auto; left: auto; right: auto; margin: 12px; transform: none !important; }
.as-builder .page-hero-media { position: absolute; inset: 0; }
.as-builder .page-hero-media img, .as-builder .figure .media img { transform: none !important; }
.as-builder .ink-text .fc, .as-builder .fill-text .fc { color: inherit !important; }

/* ═══════════ SECTION CONTACT (2 colonnes Divi) — reconnue par les coordonnées (.coord), classe « as-grid » facultative ═══════════ */
#page-container :is(.as-grid, .et_pb_section:has(.coord)) { background: transparent !important; padding: 2vh 0 16vh !important; }
#page-container :is(.as-grid, .et_pb_section:has(.coord)) .et_pb_row {
  width: 100% !important; max-width: var(--maxw) !important; margin: 0 auto !important;
  padding: 0 var(--gutter) !important; display: flex; gap: 7vw; align-items: flex-start;
}
#page-container :is(.as-grid, .et_pb_section:has(.coord)) .et_pb_row::after { display: none; }
#page-container :is(.as-grid, .et_pb_section:has(.coord)) .et_pb_column { width: auto !important; margin: 0 !important; padding: 0 !important; float: none; flex: 1 1 0; z-index: auto; }
#page-container :is(.as-grid, .et_pb_section:has(.coord)) .et_pb_column:last-child { flex-grow: 1.2; }
#page-container :is(.as-grid, .et_pb_section:has(.coord)) .et_pb_module { margin: 0 0 4vh !important; }
@media (max-width: 900px) {
  #page-container :is(.as-grid, .et_pb_section:has(.coord)) .et_pb_row { flex-direction: column; gap: 40px; }
  /* flex: none — sinon base 0 + le min-height: 1px des colonnes Divi les écrase */
  #page-container :is(.as-grid, .et_pb_section:has(.coord)) .et_pb_column { width: 100% !important; flex: none; }
}

/* ═══════════ FORMULAIRE CONTACT DIVI (module Contact ; classe « as-contact-form » facultative) ═══════════ */
:is(.as-contact-form, .et_pb_contact_form_container) .et_pb_contact_main_title { display: none; }
:is(.as-contact-form, .et_pb_contact_form_container) .et_pb_contact_form { margin: 0 !important; }
#page-container :is(.as-contact-form, .et_pb_contact_form_container) .et_pb_contact_field { width: 100% !important; margin: 0 !important; padding: 0 0 34px !important; float: none; clear: both; }
#page-container :is(.as-contact-form, .et_pb_contact_form_container) .et_pb_contact_form_label {
  display: block !important; position: static; margin: 0 0 10px; color: var(--ash);
  font: 500 11px/1.5 var(--sans); letter-spacing: 0.18em; text-transform: uppercase;
}
#page-container :is(.as-contact-form, .et_pb_contact_form_container) .et_pb_contact_form .input,
#page-container :is(.as-contact-form, .et_pb_contact_form_container) .et_pb_contact_form select,
#page-container :is(.as-contact-form, .et_pb_contact_form_container) .et_pb_contact_form textarea {
  width: 100%; background: transparent !important; border: 0 !important;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.3) !important; border-radius: 0 !important;
  padding: 8px 0 12px !important; color: var(--ink) !important;
  font: 400 24px/1.35 var(--serif) !important; box-shadow: none !important;
  -webkit-appearance: none; appearance: none;
}
#page-container :is(.as-contact-form, .et_pb_contact_form_container) .et_pb_contact_form textarea { min-height: 120px; }
#page-container :is(.as-contact-form, .et_pb_contact_form_container) .et_pb_contact_form .input:focus { border-bottom-color: var(--bronze) !important; }
/* Divi recopie le titre du champ en placeholder : le libellé visible suffit */
#page-container :is(.as-contact-form, .et_pb_contact_form_container) .et_pb_contact_form .input::placeholder { color: transparent; }
#page-container :is(.as-contact-form, .et_pb_contact_form_container) .et_pb_contact_form select {
  background-image: linear-gradient(45deg, transparent 50%, var(--ink) 50%), linear-gradient(135deg, var(--ink) 50%, transparent 50%) !important;
  background-position: calc(100% - 14px) 52%, calc(100% - 8px) 52% !important; background-size: 6px 6px !important; background-repeat: no-repeat !important;
}
:is(.as-contact-form, .et_pb_contact_form_container) .et_contact_bottom_container { float: none; display: flex; justify-content: flex-end; align-items: center; gap: 20px; margin: 0; text-align: right; }
:is(.as-contact-form, .et_pb_contact_form_container) .et_pb_contact_right { display: none; }                /* captcha : désactivé dans le module */
#page-container :is(.as-contact-form, .et_pb_contact_form_container) .et_pb_contact_submit {
  background: none !important; border: 0 !important; padding: 0 !important; margin: 0 !important;
  color: var(--ink) !important; font: italic 300 30px/1.2 var(--serif) !important; letter-spacing: 0 !important;
}
#page-container :is(.as-contact-form, .et_pb_contact_form_container) .et_pb_contact_submit:hover { color: var(--bronze) !important; background: none !important; }
#page-container :is(.as-contact-form, .et_pb_contact_form_container) .et_pb_contact_submit::after, #page-container :is(.as-contact-form, .et_pb_contact_form_container) .et_pb_contact_submit::before { display: none !important; }
:is(.as-contact-form, .et_pb_contact_form_container) .et-pb-contact-message { font-family: var(--serif); font-size: 22px; color: var(--ink); margin-bottom: 26px; }
:is(.as-contact-form, .et_pb_contact_form_container) .et-pb-contact-message ul { padding: 0; list-style: none; }
/* lien Privacy posé sous le formulaire (module Code) */
#page-container :is(.as-grid, .et_pb_section:has(.coord)) .as-form-note { margin: -2vh 0 3vh; }
