/* Formulaire newsletter SES Mailer — portable, thémable par variables.
   Dispositions : --inline --stacked --card --banner
   Thèmes       : --auto --light --dark --soft
   L'accent, sa couleur de texte et l'arrondi sont injectés en ligne. */

.sesm-form{
	--sesm-accent:#8A0E32;
	--sesm-accent-text:#fff;
	--sesm-radius:8px;
	--sesm-bg:transparent;
	--sesm-fg:inherit;
	--sesm-border:rgba(127,127,127,.32);
	--sesm-field-bg:transparent;
	--sesm-maxw:560px;
	--sesm-pad-y:.8rem;
	--sesm-pad-x:1rem;
	max-width:var(--sesm-maxw);
	box-sizing:border-box;
}
.sesm-form *,.sesm-form *::before,.sesm-form *::after{box-sizing:border-box;}
/* Label masqué sans dépendre du thème (portable). */
.sesm-form .screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

.sesm-form__title{margin:0 0 .35em;font-size:1.4rem;line-height:1.2;color:var(--sesm-fg);}
.sesm-form__text{margin:0 0 1em;color:var(--sesm-fg);opacity:.78;}
.sesm-form__row{display:flex;gap:.5rem;flex-wrap:wrap;}
.sesm-form__input{
	flex:1 1 200px;min-width:0;
	padding:var(--sesm-pad-y) var(--sesm-pad-x);font:inherit;font-size:1rem;
	border:1px solid var(--sesm-border);border-radius:var(--sesm-radius);
	background:var(--sesm-field-bg);color:var(--sesm-fg);
}
.sesm-form__name{flex:0 1 150px;}
.sesm-form__input::placeholder{color:var(--sesm-fg);opacity:.5;}
.sesm-form__input:focus{outline:2px solid var(--sesm-accent);outline-offset:1px;}
.sesm-form__btn{
	flex:0 0 auto;
	padding:var(--sesm-pad-y) calc(var(--sesm-pad-x) + .4rem);
	font:inherit;font-size:.85rem;font-weight:700;
	letter-spacing:.06em;text-transform:uppercase;cursor:pointer;line-height:1.2;
	border:2px solid var(--sesm-accent);border-radius:var(--sesm-radius);
	background:var(--sesm-accent);color:var(--sesm-accent-text);
	transition:opacity .15s ease,transform .15s ease,background .15s ease,color .15s ease;
}
.sesm-form__btn:hover{opacity:.9;}
.sesm-form__btn:active{transform:translateY(1px);}
.sesm-form__btn[disabled]{opacity:.5;cursor:default;}

/* Styles de bouton */
.sesm-form--btn-outline .sesm-form__btn{background:transparent;color:var(--sesm-accent);}
.sesm-form--btn-outline .sesm-form__btn:hover{background:var(--sesm-accent);color:var(--sesm-accent-text);opacity:1;}
.sesm-form--btn-ghost .sesm-form__btn{background:transparent;border-color:transparent;color:var(--sesm-accent);padding-left:.6rem;padding-right:.6rem;}
.sesm-form--btn-ghost .sesm-form__btn:hover{text-decoration:underline;opacity:1;}

/* Tailles (densité) */
.sesm-form--size-s{--sesm-pad-y:.55rem;--sesm-pad-x:.85rem;}
.sesm-form--size-s .sesm-form__input{font-size:.92rem;}
.sesm-form--size-l{--sesm-pad-y:1.05rem;--sesm-pad-x:1.25rem;}
.sesm-form--size-l .sesm-form__input{font-size:1.06rem;}
.sesm-form__note{margin:.6rem 0 0;font-size:.8rem;opacity:.6;color:var(--sesm-fg);}
.sesm-form__msg{margin:.7rem 0 0;font-size:.92rem;min-height:1.2em;color:var(--sesm-fg);}
.sesm-form__msg.is-ok{color:#1a7f43;}
.sesm-form__msg.is-err{color:#c4341f;}

/* ---- Dispositions ------------------------------------------------------- */

/* stacked : champ au-dessus du bouton, centré (idéal sidebar / footer). */
.sesm-form--stacked{margin-left:auto;margin-right:auto;text-align:center;}
.sesm-form--stacked .sesm-form__row{flex-direction:column;}
.sesm-form--stacked .sesm-form__input,
.sesm-form--stacked .sesm-form__btn{flex:0 0 auto;width:100%;}

/* card : bloc encadré, padding confortable (CTA en plein contenu). */
.sesm-form--card{
	padding:clamp(1.4rem,3vw,2rem);
	border:1px solid var(--sesm-border);
	border-radius:calc(var(--sesm-radius) + 4px);
	background:var(--sesm-bg);
}

/* banner : pleine largeur, texte à gauche / formulaire à droite. */
.sesm-form--banner{
	max-width:none;
	display:flex;align-items:center;justify-content:space-between;
	gap:1.2rem 2.5rem;flex-wrap:wrap;
	padding:clamp(1.4rem,3vw,2.2rem) clamp(1.4rem,4vw,2.6rem);
	border-radius:calc(var(--sesm-radius) + 4px);
	background:var(--sesm-bg);
}
.sesm-form--banner .sesm-form__head{flex:1 1 260px;margin:0;}
.sesm-form--banner .sesm-form__title{margin:0 0 .2em;}
.sesm-form--banner .sesm-form__text{margin:0;}
.sesm-form--banner .sesm-form__body{flex:1 1 340px;}

/* ---- Thèmes ------------------------------------------------------------- */
/* auto : transparent, hérite des couleurs du site (valeurs de base). */
.sesm-theme--light{--sesm-bg:#ffffff;--sesm-fg:#1a1410;--sesm-border:rgba(0,0,0,.14);--sesm-field-bg:#ffffff;}
.sesm-theme--dark{--sesm-bg:#15110f;--sesm-fg:#ece7e1;--sesm-border:rgba(255,255,255,.18);--sesm-field-bg:rgba(255,255,255,.05);}
.sesm-theme--soft{
	--sesm-bg:color-mix(in srgb,var(--sesm-accent) 8%,transparent);
	--sesm-border:color-mix(in srgb,var(--sesm-accent) 28%,transparent);
}
