* {
  margin: 0;
  overflow: visible;
  box-sizing: border-box;
  font-family: 'Montserrat', sans-serif;
  color: #333333;
}
body{
	font-family: 'Montserrat', sans-serif;
}
.logoAFM{
    display: block;
    text-align: center;
    margin: 0 auto;
}
.logoAFM img{
    width: 300px;
    margin: 25px;
}
.optin {
  position: relative;
  display: flex;
  width: 100px;
  background: #eee;
  border-radius: 30px;
  overflow: hidden;
  font-family: Arial;
}

/* hide radios */
.optin input {
  display: none;
}

.option {
  flex: 1;
  text-align: center;
  padding: 10px 0;
  z-index: 2;
  cursor: pointer;
  transition: color 0.3s;
  background-color: #333333;
}
/* Toggle OUI et NON   */
.toggle-switch {
    display: inline-flex;
    align-items: center;
    width: 90px;
    height: 40px;
    border-radius: 999px;
    padding: 4px 8px;
    cursor: pointer;
    gap: 6px;
    transition: background-color 0.3s ease;
    user-select: none;
}

/* État OUI — orange, thumb à droite */
.toggle-switch.is-on {
    background-color: #F97316;
    flex-direction: row-reverse;
}

/* État NON — gris, thumb à gauche */
.toggle-switch.is-off {
    background-color: #2D2D2D;
    flex-direction: row;
}

.toggle-thumb {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background-color: #FFFFFF;
    flex-shrink: 0;
    box-shadow: 0 1px 4px rgba(0,0,0,0.3);
    transition: all 0.3s ease;
}

.toggle-text {
    color: #FFFFFF;
    font-weight: 700;
    font-size: 15px;
    flex-grow: 1;
    text-align: center;
}

.toggle-wrapper {
    display: flex;
    align-items: center;
}
.hidden-checkbox {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.toggle-switch {
    cursor: pointer;
}
 /*  toggle FIN  */
.blockEmail, .blockTitre{
    display:block;
    margin: 15px auto;
    text-align: center;
}
.blockText {
    width: 670px;
    margin: 0 auto;
    padding: 15px;
    line-height: 1.4;
}
.blockTitre h1{
    font: bold;
    text-transform: uppercase;
    color:#F36D21;
    margin: 15px 0 35px 0;
}
.emailGet{
	font-size: 16px;
    font-weight: 400;
    border-radius: 8px;
    color: #333333;
    background-color: #E7E7E7;
    padding: 10px 15px;
    border: #777777 1px solid;
    width: 300px;

}
.listAbo{
    width: 70%;
    display: block;
    margin: 30px auto;
}
.imgAbo {
    width: 295px;
    height: 250px;
    border-radius: 10px;
    overflow: hidden;
    margin: 0 15px;
}
.imgCont{
   width: 100%;
   height: 100%;
   object-fit: cover;
}
.blockAbo{
    display: flex;
    margin: 40px 10px;
    justify-content: center;
}
.blockAFM {
    display: block;
    text-align: center;
    margin: 20px auto;
}
.blockAFM .btn-submit, .frame .blockFrame .blockAFM .btn-submit {
    background-color: #005159;
    color: #fff;
    padding: 15px;
    font-size: 16px;
    border: none;
    width: 200px;
    font-weight: bold;
    border-radius:0;
    height:auto;
    cursor: pointer;
}
.frame .blockFrame .bl-img {
    height: 225px;
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
    border: #D9D9D9 1px solid;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
}
.contentAbo{
    border-radius: 10px;
    background-color: #F5F5F5;
    padding: 5px 10px;
    margin: 0 10px;
    width: 650px;
}
.contentAbo .titleAbo{
    border-left: #FDC613 7px solid;
    padding: 0 0 0 15px;
    margin:10px;
}
.textAbo{
    display: flex;
}
.textAbo p{
    width: 80%;
    margin: 10px;
}
.info-rgpd{
    width: 50%;
    text-align: center;
    display: block;
    margin: 15px auto;
    padding: 15px 10px;
    font-size: 14px;
}
.info-rgpd p{
    font-size: 14px;
    margin: 15px 0 ;
}
.frame{
    display: block;
    margin: 35px auto;
    text-align: center;
}
.frame .blockFrame{
    background-color: #F5F5F5;
    border:#D9D9D9 1px solid ;
    border-radius: 10px;
    width: 670px;
    height: 100%;
    text-align: center;
    display: block;
    margin: 15px auto;
}
.frame .blockFrame .topImg{
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}
.contentFrame{
    display: flex;
    flex-direction: column;
}
.contentFrame form{
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 18px 0;
}
.frame .blockFrame input{
    border: #777777 1px solid ;
    border-radius: 8px;
    background-color: #fff;
    color: #777777;
    width: 350px;
    height: 40px;
    margin: 10px;
    padding: 5px;
}
.frame .blockFrame .text{
    display: block;
    margin: 0 auto;
    text-align: center;
}
.frame .blockFrame .text p{
    font-size: 16px;
    width: 70%;
    text-align: center;
    margin: 20px auto;
}
.frame .blockFrame .oblig{
    font-size: 13px;
    text-align: left;
    margin: 7px;
}
.blockMessage {
    width: 75%;
    margin: 15px auto 35px;
}
.blockMessage .message-succes {
    font-size: 20px;
    font-weight: 600;
    text-align: center;
    margin: 20px auto;
}

.message-alert{
    padding: 30px;
    background-color: #FAF2D7;
    border-radius: 10px;
    border: 1px solid #FDC613;
    margin: 35px auto;
    width: 75%;

}
.message-alert p{
    color: #9D7905;
    font-size: 18px;
    font-weight: 200;
    text-align: center;
    }
.message-error{
    padding: 30px;
    background-color:rgb(255, 170, 179);
    border-radius: 10px;
    border: 1px solid #ff0000;
    margin: 35px auto;
    width: 75%;
    font-size: 18px;
    font-weight: 200;
    text-align: center;
    list-style: none;
    }
img.icon-valid {
    width: 65px;
    text-align: center;
    margin: 25px auto 0;
}
.lien-gestion{
	color: #F36D21;
	font-size: 20px;
	text-decoration-line: underline;
	margin: 10px auto;
}
.block-confirm{
    margin: 40px 0;
}
.frame .blockFrame .blockCheckbox  {
    display: flex;
    align-items: center;
    margin: 15px;
}
.frame .blockFrame .blockCheckbox .checkConf {
	width: 22px;
	height:22px
}
.frame .blockFrame .blockCheckbox label {
    text-align: center;
    padding: 0 10px;
}

.frame .blockFrame .blockLien{
    display: block;
    text-align: center;
    margin: 20px auto;
}

.error-global {
    color: #d32f2f;
    background: #fdecea;
    border: 1px solid #f5c2c7;
    padding: 12px;
    border-radius: 4px;
    margin-bottom: 15px;
}

.input-error {
    display: block;
    color: #d32f2f;
    font-size: 13px;
    margin-top: 4px;
    margin-bottom: 10px;
}
@media screen and (max-width: 768px) {
				body {
					width: 100%;
					overflow-x: hidden;
				}

				.logoAFM img {
					width: min(240px, 80vw);
					height: auto;
					margin: 20px auto;
				}

				.blockTitre,
				.blockEmail,
				.listAbo,
				.info-rgpd,
				.frame,
				.blockMessage {
					width: 100%;
					max-width: 100%;
					padding-left: 15px;
					padding-right: 15px;
				}

				.blockTitre,
				.blockText,
				.blockEmail,
				.blockMessage,
				.message-alert {
					width: 100%;
					max-width: 100%;
					box-sizing: border-box;
					padding-left: 15px;
					padding-right: 15px;
				}

				.blockTitre h1 {
					font-size: 24px;
					line-height: 1.3;
				}

				.emailGet,
				.frame .blockFrame input {
					width: 100%;
					max-width: 350px;
				}

				.listAbo {
					margin: 20px auto;
				}

				.blockAbo {
					flex-direction: column;
					align-items: center;
					margin: 25px 0;
				}

				.imgAbo {
					width: 50%;
					max-width: 295px;
					height: auto;
					aspect-ratio: 59 / 50;
					margin: 0 0 15px;
				}

				.contentAbo,
				.frame .blockFrame {
					width: 100%;
					max-width: 670px;
					margin-left: 0;
					margin-right: 0;
				}

				.textAbo {
					flex-direction: column;
					align-items: center;
				}

				.textAbo p {
					width: 100%;
					margin: 10px 0 20px;
				}

				.radio-ui {
					margin-bottom: 15px;
				}

				.info-rgpd {
					box-sizing: border-box;
				}
				
				.blockFrame,
				.frame .blockFrame {
					width: calc(100% - 30px);
					max-width: 670px;
					margin-left: auto;
					margin-right: auto;
				}

				.bl-img,
				.frame .blockFrame .bl-img {
					height: auto;
					min-height: 180px;
				}

				.topImg,
				.frame .blockFrame .topImg {
					width: 100%;
					height: auto;
					min-height: 180px;
					object-fit: cover;
				}

				.contentFrame form {
					width: 100%;
					box-sizing: border-box;
					padding-left: 15px;
					padding-right: 15px;
				}

				.frame .blockFrame input,
				.blockFrame input,
				.emailGet {
					width: 100%;
					max-width: 350px;
					box-sizing: border-box;
				}

				.frame .blockFrame .text p,
				.blockFrame .text p {
					width: 100%;
					padding-left: 10px;
					padding-right: 10px;
					box-sizing: border-box;
				}

				.blockCheckbox,
				.frame .blockFrame .blockCheckbox {
					align-items: flex-start;
					width: calc(100% - 30px);
					box-sizing: border-box;
				}

				.blockCheckbox label,
				.frame .blockFrame .blockCheckbox label {
					text-align: left;
					line-height: 1.4;
				}

				.blockLien {
					padding-left: 15px;
					padding-right: 15px;
				}

				.lien-gestion {
					display: inline-block;
					font-size: 17px;
					line-height: 1.4;
				}

				.message-error {
					width: calc(100% - 30px);
					box-sizing: border-box;
					padding: 20px 15px;
				}
			}

@media screen and (max-width: 480px) {
				.blockTitre h1,
				h2 {
					font-size: 20px;
				}

				.contentAbo {
					padding: 5px 15px;
				}

				.blockAFM .btn-submit,
				.frame .blockFrame .blockAFM .btn-submit {
					width: 100%;
					max-width: 260px;
				}
				.message-alert {
					padding-top: 20px;
					padding-bottom: 20px;
				}
			}
