/* Soja — formulaires : newsletter (extension Newsletter), contact (Vulgaris Core), emplacements publicitaires. */

/* Newsletter : le formulaire « minimal » de l'extension prend le style du bloc .news */
.news .tnp{max-width:480px;margin:0 auto}
.news .tnp form{display:flex;background:var(--cream);border-radius:999px;padding:6px;margin:0}
.news .tnp-email{flex:1;min-width:0;border:0;background:transparent;outline:0;padding:0 20px;font:inherit}
.news .tnp-submit{border:0;cursor:pointer;font:inherit;font-weight:600;font-size:.92rem;background:var(--sage-d);color:var(--cream);padding:13px 22px;border-radius:999px;transition:.2s}
.news .tnp-submit:hover{background:var(--sage)}
.news .tnp form:focus-within{box-shadow:0 0 0 3px var(--sage-l)}
.news__legal{max-width:480px;margin:14px auto 0!important;font-size:.82rem;color:var(--muted)}
.news__legal a{color:var(--sage-d);text-decoration:underline;text-underline-offset:3px}
/* Pages de l'extension (confirmation, profil) : rendues dans le contenu, on harmonise les champs. */
.prose .tnp input[type=email],.prose .tnp input[type=text],.prose .tnp select{font:inherit;border:1px solid #d8ccb6;background:var(--cream);border-radius:16px;padding:12px 16px;width:100%;max-width:420px}
.prose .tnp input[type=submit],.prose .tnp .tnp-submit{border:0;cursor:pointer;font:inherit;font-weight:600;background:var(--sage-d);color:var(--cream);padding:13px 22px;border-radius:999px;margin-top:10px}

/* Formulaire de contact [contact_form] */
.vc-contact{background:var(--cream);border-radius:32px;padding:32px;margin:2em 0;display:flex;flex-direction:column;gap:16px;scroll-margin-top:24px}
.prose .vc-contact>*+*{margin-top:0}
.vc-contact__row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.vc-contact__field{display:flex;flex-direction:column;gap:6px;margin:0}
.vc-contact label{font-size:.88rem;font-weight:600}
.vc-contact input[type=text],.vc-contact input[type=email],.vc-contact select,.vc-contact textarea{font:inherit;font-size:1rem;border:1px solid #d8ccb6;background:var(--sand);border-radius:16px;padding:12px 16px;width:100%;transition:.2s;color:var(--ink)}
.vc-contact input:focus,.vc-contact select:focus,.vc-contact textarea:focus{border-color:var(--sage);background:#fff;outline:0;box-shadow:0 0 0 3px var(--sage-l)}
.vc-contact textarea{min-height:150px;resize:vertical}
.vc-contact__consent{margin:0}
.vc-contact__consent label{display:flex;gap:12px;align-items:flex-start;font-weight:400;font-size:.9rem;color:var(--muted);line-height:1.5;cursor:pointer}
.vc-contact__consent input{width:20px;height:20px;flex:none;margin-top:2px;accent-color:var(--sage-d)}
.vc-contact__medical{margin:0;font-size:.85rem;color:#6d3a22;background:var(--terra-l);border-radius:16px;padding:12px 16px}
.vc-contact__submit{border:0;cursor:pointer;font-size:1rem;padding:15px 28px}
.vc-contact__hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.vc-contact__errors{background:#fbe3e3;color:#7a2323;border-radius:18px;padding:14px 18px;font-size:.92rem}
.vc-contact__errors p{margin:0 0 6px;font-weight:600}
.prose .vc-contact__errors ul{gap:2px}
.prose .vc-contact__errors li::before{background:#c0392b}
.vc-contact--sent{background:var(--sage-l);text-align:center;padding:40px 32px}
.vc-contact__title{font-family:var(--serif);font-size:1.7rem;color:var(--sage-d);margin:0}

/* Emplacements publicitaires (Banner Shuffle) */
.ad-slot{margin:0 auto}
.ad-slot--single_top{max-width:760px;padding:14px 0 4px}
.ad-slot--in_content{margin:2.2em 0}
.ad-slot--home_middle{max-width:970px;margin:0 auto 80px}
.ad-slot .banner-shuffle{--banner-shuffle-radius:20px}
/* Bannières (où qu'elles soient : emplacements du thème, insertion automatique, bloc, shortcode) :
   on neutralise les règles générales du thème qui s'appliqueraient aux liens et images qu'elles contiennent
   — soulignement des liens de .prose, images en inline-block arrondies, img{height:100%;object-fit:cover}.
   L'extension garde ainsi exactement son rendu prévu (coins, ombre, halo, reflet). */
.banner-shuffle a,.prose .banner-shuffle a{border:0;text-decoration:none;background:none}
.banner-shuffle img,.prose .banner-shuffle img{display:block;width:100%;height:auto;max-width:none;margin:0;border-radius:0;object-fit:initial}

@media (max-width:600px){
  .vc-contact{padding:22px;border-radius:24px}
  .vc-contact__row{grid-template-columns:1fr}
  .news .tnp form{flex-direction:column;border-radius:24px;gap:6px}
  .news .tnp-email{padding:12px 16px}
}
