:root{
  --canary: #FAF554;
  --green-dark: #061F1B;
  --green-main: #0B322C;
  --green-card: #082621;

  --radius: 18px;
  --shadow: 0 30px 80px rgba(0,0,0,.45);
}

/* Reset sécurisé */
*{
  box-sizing:border-box;
}

html, body{
  height:100%;
  margin:0;
  overflow-x:hidden;
}

body{
  font-family: 'Open Sans', sans-serif;
  font-weight:400;
  letter-spacing:.2px;
  color: var(--canary);
  display:flex;
  flex-direction:column;
}

/* Links */
a{
  color: var(--canary);
  text-decoration:none;
}
a:hover{
  opacity:.9;
}

/* Layout container */
.container{
  max-width: 950px;
  margin: 0 auto;
  padding: 0 16px;
}

/* ================= HEADER ================= */

.site-header{
  background: var(--green-dark);
  border-bottom: 1px solid rgba(250,245,84,.15);
}

.header-inner{
  max-width: 950px;
  margin: 0 auto;
  padding: 25px 17px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  position:relative;
  flex-wrap:wrap;
  gap:10px;
}

.header-left{
  flex:1;
  display:flex;
  align-items:center;
  padding-left: 24px;
}

.header-center{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
}

.header-right{
  flex:1;
}

.brand-logo{
  height: clamp(32px, 6vw, 45px);
  width:auto;
  display:block;
}

.brand-title-image{
  height: clamp(38px, 8vw, 70px);
  width:auto;
  max-width:90vw;
  display:block;
}

/* ================= BODY + PHOTO ================= */

.site-body{
  flex:1;
  padding: 60px 0 90px;

  background:
    linear-gradient(rgba(6,31,27,.55), rgba(6,31,27,.55)),
    url("../assets/bg/Micro.webp");

  background-size: cover;
  background-position: center 60%;
  background-repeat: no-repeat;
}

/* ================= CARD ================= */

.card{
  background: rgba(8,38,33,.88);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(250,245,84,.20);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  max-width: 880px;
  margin: 0 auto;
  overflow:hidden;
}

.card-head{
  padding: 24px;
  border-bottom: 1px solid rgba(250,245,84,.10);
}

.title{
  margin:0;
  font-style: italic;
  font-size: clamp(28px, 5vw, 42px);
  line-height:1.1;
}

.subtitle{
  margin-top:8px;
  opacity:.85;
  max-width:70ch;
}

.form{
  padding:24px;
}

.title,
.step-title{
  font-family: 'Instrument Serif', serif;
  font-style: italic;
  font-weight:400;
}

/* ================= CHOICES ================= */

.choices{
  display:grid;
  gap:14px;
}

.choice{
  position:relative;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:16px;
  border-radius:16px;
  background: rgba(0,0,0,.25);
  border:1px solid rgba(250,245,84,.15);
  cursor:pointer;
  transition:.2s ease;
}

.choice:hover{
  border-color: rgba(250,245,84,.35);
}

.choice input{
  position:absolute;
  inset:0;
  opacity:0;
  cursor:pointer;
}

.choice span{
  font-weight:500;
}

.choice:has(input:checked){
  background: rgba(250,245,84,.18);
  border-color: rgba(250,245,84,.55);
  box-shadow: 0 10px 30px rgba(0,0,0,.4);
}

.choice::after{
  content:"";
  width:14px;
  height:14px;
  border-radius:50%;
  border:2px solid rgba(250,245,84,.35);
}

.choice:has(input:checked)::after{
  background: var(--canary);
  border-color: var(--canary);
}

/* ================= PROGRESS ================= */

.progress{
  margin-top:16px;
}

.progress-label{
  display:flex;
  justify-content:space-between;
  font-size:.9rem;
  margin-bottom:6px;
  opacity:.85;
}

.progress-bar{
  height:8px;
  border-radius:999px;
  background: rgba(255,255,255,.10);
  overflow:hidden;
}

.progress-fill{
  height:100%;
  width:25%;
  background: linear-gradient(90deg, rgba(250,245,84,.95), rgba(250,245,84,.65));
  border-radius:999px;
  transition: width .3s ease;
}

/* ================= FORM FIELDS ================= */

.field{
  display:grid;
  gap:6px;
  position:relative; /* nécessaire pour la flèche custom */
}

input, select, textarea{
  width:100%;
  padding:12px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.15);
  background: rgba(0,0,0,.25);
  color:#fff;
  font-family: 'Open Sans', sans-serif;
  min-width:0;
  transition:.2s ease;
}

/* Focus premium */
input:focus,
select:focus,
textarea:focus{
  outline:none;
  border-color: rgba(250,245,84,.65);
  box-shadow: 0 0 0 3px rgba(250,245,84,.12);
}

/* ===== SELECT STYLE ===== */

select{
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  padding-right:44px; /* espace pour flèche */
  cursor:pointer;
}

/* Flèche custom */
.field:has(select)::after{
  content:"";
  position:absolute;
  right:16px;
  top:50%;
  transform: translateY(-20%) rotate(45deg);
  width:10px;
  height:10px;
  border-right:2px solid rgba(250,245,84,.75);
  border-bottom:2px solid rgba(250,245,84,.75);
  pointer-events:none;
  opacity:.9;
}

/* Placeholder gris tant que non sélectionné */
select:invalid{
  color: rgba(255,255,255,.55);
}

select option{
  color:#000; /* texte lisible dans le menu système */
}

/* Placeholder inputs */
input::placeholder,
textarea::placeholder{
  color: rgba(255,255,255,.45);
}

textarea{
  resize:vertical;
}

/* Grid */
.grid2{
  display:grid;
  gap:16px;
  grid-template-columns:1fr;
}

/* ================= CUSTOM DROPDOWN ================= */

.dropdown{
  position: relative;
}

.dropdown-btn{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;

  padding:12px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.15);
  background: rgba(0,0,0,.25);
  color:#fff;

  font-family: 'Open Sans', sans-serif;
  cursor:pointer;
  transition:.2s ease;
}

.dropdown-btn:focus{
  outline:none;
  border-color: rgba(250,245,84,.65);
  box-shadow: 0 0 0 3px rgba(250,245,84,.12);
}

.dropdown-value{
  text-align:left;
  flex:1;
}

.dropdown[data-empty="1"] .dropdown-value{
  color: rgba(255,255,255,.55);
}

.dropdown-chevron{
  width:10px;
  height:10px;
  border-right:2px solid rgba(250,245,84,.75);
  border-bottom:2px solid rgba(250,245,84,.75);
  transform: rotate(45deg);
  flex:0 0 auto;
}

.dropdown.open .dropdown-chevron{
  transform: rotate(-135deg);
}

.dropdown-list{
  position:absolute;
  left:0;
  right:0;
  top: calc(100% + 8px);
  z-index: 50;

  background: rgba(6,31,27,.98);
  border:1px solid rgba(250,245,84,.22);
  border-radius:14px;
  box-shadow: 0 18px 55px rgba(0,0,0,.55);

  padding:6px;
  display:none;
  max-height: 240px;
  overflow:auto;
}

.dropdown.open .dropdown-list{
  display:block;
}

.dropdown-option{
  width:100%;
  text-align:left;

  background: transparent;
  border:0;
  color: rgba(250,245,84,.92);

  padding:10px 12px;
  border-radius:10px;
  cursor:pointer;
  font-family:'Open Sans', sans-serif;
  transition:.15s ease;
}

.dropdown-option:hover,
.dropdown-option[aria-selected="true"],
.dropdown-option.is-active{
  background: rgba(250,245,84,.14);
}

/* ================= ACTIONS ================= */

.actions{
  display:flex;
  flex-direction:column-reverse;
  gap:16px;
  margin-top:24px;
  padding-top:18px;
  border-top:1px solid rgba(250,245,84,.12);
}

.actions-right{
  display:flex;
  flex-direction:column;
  gap:16px;
}

.btn{
  width:100%;
  padding:14px;
  border-radius:999px;
  border:1px solid rgba(250,245,84,.40);
  background: rgba(250,245,84,.12);
  color: var(--canary);
  font-weight:600;
  cursor:pointer;
  transition:.2s ease;
  font-family: 'Open Sans', serif;
  letter-spacing:.3px;
}

.btn:hover{
  background: rgba(250,245,84,.22);
}

.btn:disabled{
  opacity:.5;
  cursor:not-allowed;
}

/* ================= FOOTER ================= */

.site-footer{
  background: var(--green-dark);
  border-top: 1px solid rgba(250,245,84,.15);
}

.footer-inner{
  padding: 20px 0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:12px;
  font-size:.9rem;
  color: rgba(250,245,84,.80);
}

.footer-inner a{
  color: var(--canary);
  font-weight:500;
}

.footer-inner a:hover{
  opacity:.85;
}

/* ================= RESPONSIVE ================= */

@media (max-width:1024px){
  .site-body{
    background-position:center 55%;
  }
}

@media (max-width:700px){

  .header-inner{
    padding:16px;
  }

  .header-left{
    padding-left:0;
    flex:0 0 auto;
  }

  .header-center{
    position:static;
    transform:none;
    width:100%;
    order:3;
    display:flex;
    justify-content:center;
  }

  .brand-logo{
    height:40px;
  }

  .brand-title-image{
    max-height:56px;
  }

  .site-body{
    padding:26px 0 90px;
    background-position:center center;
    background-attachment:scroll;
  }

  .card-head,
  .form{
    padding:18px;
  }

  .subtitle{
    max-width:none;
  }

  .choice{
    padding:14px;
  }

  .footer-inner{
    justify-content:center;
    text-align:center;
  }
}

@media (max-width:420px){
  .title{
    font-size: clamp(24px, 7vw, 34px);
  }
  .card-head,
  .form{
    padding:16px;
  }
}

@media (min-width:600px){
  .actions{
    flex-direction:row;
    justify-content:space-between;
    align-items:center;
  }
  .actions-right{
    flex-direction:row;
    align-items:center;
  }
  .btn{
    width:auto;
  }
}

@media (min-width:800px){
  .grid2{
    grid-template-columns:1fr 1fr;
  }
}

@media (min-width:1100px){
  .site-body{
    padding:70px 0 90px;
  }
}

/* Honeypot anti-spam */
.hp{
  display:none !important;
  position:absolute !important;
  left:-9999px !important;
}