/* =========================================================
   Nuxerya — estimate.css
   Page estimation projet
========================================================= */

.estimate-page{
  padding-top:calc(var(--nav-h) + 72px);
}

.estimate-container{
  width:min(1120px, 92%);
}

.estimate-hero{
  max-width:760px;
  margin-bottom:clamp(34px, 5vw, 58px);
}

.estimate-layout{
  display:grid;
  grid-template-columns:minmax(280px, .42fr) minmax(0, .58fr);
  gap:clamp(28px, 5vw, 72px);
  align-items:start;
}

.estimate-summary{
  position:sticky;
  top:calc(var(--nav-h) + 28px);
}

.estimate-summary__inner{
  position:relative;
  overflow:hidden;

  padding:28px;
  border-radius:var(--radius-lg);
  border:1px solid rgba(88,241,211,.16);

  background:
    radial-gradient(520px 260px at 14% 0%, rgba(88,241,211,.07), transparent 58%),
    radial-gradient(520px 280px at 100% 0%, rgba(106,51,216,.10), transparent 64%),
    linear-gradient(180deg, rgba(20,25,36,.64), rgba(20,25,36,.34)),
    rgba(11,17,30,.54);

  box-shadow:
    0 22px 60px rgba(0,0,0,.26),
    0 0 0 1px rgba(255,255,255,.025) inset;
}

.estimate-summary__inner::before{
  content:"";
  position:absolute;
  left:24px;
  right:24px;
  top:0;

  height:1px;

  background:linear-gradient(
    90deg,
    rgba(88,241,211,.62),
    rgba(26,81,166,.34),
    transparent
  );
}

.estimate-summary__label{
  display:block;
  margin-bottom:12px;

  color:var(--accent);
  font-size:11px;
  font-weight:750;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.estimate-summary__price{
  color:var(--text-strong);
  font-family:var(--font-title);
  font-size:clamp(32px, 3.6vw, 48px);
  font-weight:650;
  line-height:1;
  letter-spacing:-.07em;
}

.estimate-summary__range{
  margin:14px 0 0;

  color:rgba(218,231,242,.72);
  font-size:15px;
  line-height:1.65;
}

.estimate-summary__monthly{
  margin-top:16px;
  padding:12px 14px;
  border-radius:16px;
  border:1px solid rgba(88,241,211,.14);

  color:rgba(231,236,243,.78);
  background:rgba(88,241,211,.045);

  font-size:14px;
}

.estimate-summary__monthly strong{
  color:var(--text-strong);
}

.estimate-summary__notice{
  margin-top:14px;
  padding-left:14px;
  border-left:1px solid rgba(88,241,211,.28);

  color:rgba(218,231,242,.62);
  font-size:13px;
  line-height:1.6;
}

.estimate-summary__cta{
  width:100%;
  margin-top:22px;
}

.estimate-form{
  display:grid;
  gap:18px;
}

.estimate-step{
  min-width:0;
  margin:0;
  padding:24px;
  border-radius:var(--radius-lg);
  border:1px solid rgba(88,241,211,.11);

  background:
    linear-gradient(180deg, rgba(20,25,36,.52), rgba(20,25,36,.26)),
    rgba(11,17,30,.42);

  box-shadow:var(--shadow-card);
}

.estimate-step legend{
  width:100%;
  margin:0 0 18px;
  padding:0;

  display:flex;
  align-items:flex-start;
  gap:12px;

  color:var(--text-strong);
  font-size:clamp(20px, 2.4vw, 27px);
  font-weight:600;
  line-height:1.15;
  letter-spacing:-.04em;
}

.estimate-step legend span{
  width:34px;
  height:34px;
  flex:0 0 auto;

  display:grid;
  place-items:center;

  border-radius:12px;
  border:1px solid rgba(88,241,211,.18);

  color:var(--accent);
  background:rgba(88,241,211,.045);

  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
}

.estimate-option{
  position:relative;
  isolation:isolate;

  display:grid;
  grid-template-columns:auto minmax(0, 1fr) auto;
  gap:14px;
  align-items:center;

  width:100%;
  padding:16px;
  border-radius:20px;
  border:1px solid rgba(88,241,211,.09);

  background:rgba(244,250,255,.026);

  cursor:pointer;

  transition:
    border-color .18s ease,
    background .18s ease,
    transform .18s ease,
    box-shadow .18s ease;
}

.estimate-option + .estimate-option{
  margin-top:10px;
}

.estimate-option:hover{
  transform:translateY(-1px);
  border-color:rgba(88,241,211,.18);
  background:rgba(244,250,255,.04);
}

.estimate-option input{
  appearance:none;
  -webkit-appearance:none;

  width:20px;
  height:20px;
  border-radius:999px;
  border:1px solid rgba(88,241,211,.34);

  background:rgba(11,17,30,.72);

  display:grid;
  place-items:center;
}

.estimate-option input[type="checkbox"]{
  border-radius:7px;
}

.estimate-option input::before{
  content:"";

  width:9px;
  height:9px;
  border-radius:999px;

  background:var(--accent);

  transform:scale(0);
  transition:transform .16s ease;
}

.estimate-option input[type="checkbox"]::before{
  width:10px;
  height:6px;
  border-radius:0;
  border-left:2px solid var(--nux-night);
  border-bottom:2px solid var(--nux-night);

  background:transparent;

  transform:rotate(-45deg) scale(0);
}

.estimate-option input:checked{
  border-color:rgba(88,241,211,.70);
  background:var(--accent);
  box-shadow:0 0 20px rgba(88,241,211,.14);
}

.estimate-option input:checked::before{
  transform:scale(1);
}

.estimate-option input[type="checkbox"]:checked::before{
  transform:rotate(-45deg) scale(1);
}

.estimate-option:has(input:checked){
  border-color:rgba(88,241,211,.28);
  background:
    radial-gradient(220px 110px at 0% 0%, rgba(88,241,211,.07), transparent 62%),
    rgba(244,250,255,.04);

  box-shadow:
    0 16px 38px rgba(0,0,0,.16),
    0 0 0 1px rgba(88,241,211,.035) inset;
}

.estimate-option span{
  min-width:0;
}

.estimate-option strong{
  display:block;

  color:rgba(244,250,255,.92);
  font-size:15px;
  font-weight:650;
  line-height:1.25;
}

.estimate-option small{
  display:block;
  margin-top:5px;

  color:rgba(168,177,195,.88);
  font-size:13px;
  line-height:1.45;
}

.estimate-option__link{
  display:inline-flex;
  margin-top:6px;

  color:var(--accent);
  font-size:12px;
  font-weight:650;
  text-decoration:none;
}

.estimate-option__link:hover{
  text-decoration:underline;
  text-underline-offset:3px;
}

.estimate-textarea{
  margin-top:14px;
}

.estimate-textarea label{
  display:block;
  margin-bottom:8px;

  color:rgba(244,250,255,.82);
  font-size:13px;
  font-weight:600;
}

.estimate-textarea textarea{
  width:100%;
  min-height:120px;
  padding:14px;
  border-radius:16px;
  border:1px solid rgba(88,241,211,.10);

  color:var(--text-strong);
  background:rgba(11,17,30,.68);
  font:inherit;
  line-height:1.6;

  resize:vertical;
  outline:none;
}

.estimate-textarea textarea:focus{
  border-color:rgba(88,241,211,.36);
  box-shadow:0 0 0 4px rgba(88,241,211,.08);
}

.estimate-bottom{
  padding:22px;
  border-radius:var(--radius-lg);
  border:1px solid rgba(88,241,211,.10);

  background:rgba(244,250,255,.026);
}

.estimate-bottom h2{
  margin:0 0 8px;

  color:var(--text-strong);
  font-size:22px;
  font-weight:600;
  letter-spacing:-.035em;
}

.estimate-bottom p{
  margin:0;

  color:rgba(168,177,195,.90);
  line-height:1.7;
}

.estimate-bottom strong{
  color:var(--text-strong);
}

/* Responsive */
@media (max-width: 900px){
  .estimate-page{
    padding-top:48px !important;
  }

  .estimate-container{
    width:min(100% - 40px, 620px);
  }

  .estimate-layout{
    grid-template-columns:1fr;
    gap:22px;
  }

  .estimate-summary{
    position:sticky;
    top:calc(var(--nav-h) + 10px);
    z-index:10;
  }

  .estimate-summary__inner{
    padding:18px;
    border-radius:24px;
  }

  .estimate-summary__price{
    font-size:40px;
  }

  .estimate-summary__cta{
    min-height:48px;
  }

  .estimate-step{
    padding:20px;
    border-radius:24px;
  }

  .estimate-step legend{
    font-size:21px;
  }

  .estimate-option{
    grid-template-columns:auto minmax(0, 1fr);
    align-items:flex-start;
  }
}

@media (max-width: 420px){
  .estimate-container{
    width:min(100% - 32px, 620px);
  }

  .estimate-step{
    padding:18px;
  }

  .estimate-option{
    padding:14px;
    border-radius:18px;
  }

  .estimate-option strong{
    font-size:14.5px;
  }

  .estimate-option small{
    font-size:12.5px;
  }
}



/* =========================================================
   Estimate wizard — cadre gauche + question unique à droite
========================================================= */

.estimate-layout{
  grid-template-columns:minmax(300px, .40fr) minmax(0, .60fr);
  align-items:stretch;
}

.estimate-summary{
  position:relative;
  top:auto;
  height:100%;
}

.estimate-summary__inner{
  min-height:100%;
  display:flex;
  flex-direction:column;
}

.estimate-summary__cta{
  margin-top:auto;
}

.estimate-wizard{
  position:relative;
  overflow:hidden;

  min-height:620px;
  padding:26px;
  border-radius:var(--radius-lg);
  border:1px solid rgba(88,241,211,.13);

  display:grid;
  grid-template-rows:auto auto minmax(0, 1fr) auto auto auto;
  gap:18px;

  background:
    radial-gradient(560px 280px at 12% 0%, rgba(88,241,211,.06), transparent 58%),
    radial-gradient(620px 320px at 100% 0%, rgba(106,51,216,.10), transparent 64%),
    linear-gradient(180deg, rgba(20,25,36,.60), rgba(20,25,36,.30)),
    rgba(11,17,30,.48);

  box-shadow:
    0 22px 60px rgba(0,0,0,.24),
    0 0 0 1px rgba(255,255,255,.025) inset;
}

.estimate-wizard::before{
  content:"";
  position:absolute;
  left:26px;
  right:26px;
  top:0;

  height:1px;

  background:linear-gradient(
    90deg,
    rgba(88,241,211,.62),
    rgba(26,81,166,.34),
    transparent
  );
}

.estimate-wizard__top{
  position:relative;
  z-index:1;

  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}

.estimate-wizard__eyebrow{
  display:block;
  margin-bottom:7px;

  color:var(--accent);
  font-size:10px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.estimate-wizard__top strong{
  display:block;

  color:var(--text-strong);
  font-size:18px;
  font-weight:650;
  letter-spacing:-.035em;
  line-height:1.1;
}

.estimate-wizard__index{
  flex:0 0 auto;

  display:flex;
  align-items:baseline;
  gap:4px;

  color:var(--text-strong);
  font-family:var(--font-title);
  line-height:1;
}

.estimate-wizard__index span{
  font-size:34px;
  font-weight:650;
  letter-spacing:-.06em;
}

.estimate-wizard__index em{
  color:rgba(218,231,242,.46);
  font-size:13px;
  font-style:normal;
  font-weight:650;
}

.estimate-wizard__progress{
  position:relative;
  z-index:1;

  height:2px;
  border-radius:999px;
  background:rgba(88,241,211,.075);
  overflow:hidden;
}

.estimate-wizard__progress span{
  display:block;
  width:25%;
  height:100%;
  border-radius:inherit;

  background:var(--gradient-line);

  transition:width .28s ease;
}

.estimate-wizard__viewport{
  position:relative;
  z-index:1;

  min-height:0;
  display:grid;
  align-items:start;
}

.estimate-step{
  min-width:0;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;

  background:transparent;
  box-shadow:none;
}

.estimate-step[hidden]{
  display:none !important;
}

.estimate-step.is-active{
  animation:estimateStepIn .28s ease both;
}

@keyframes estimateStepIn{
  from{
    opacity:0;
    transform:translateY(10px);
  }

  to{
    opacity:1;
    transform:translateY(0);
  }
}

.estimate-step legend{
  margin-bottom:22px;
}

.estimate-wizard__actions{
  position:relative;
  z-index:1;

  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.estimate-wizard__actions .btn{
  min-width:140px;
}

.estimate-wizard__actions .btn:disabled{
  opacity:.42;
  cursor:not-allowed;
  transform:none;
  box-shadow:none;
}

.estimate-wizard__dots{
  position:relative;
  z-index:1;

  display:flex;
  justify-content:center;
  gap:8px;
}

.estimate-wizard__dots button{
  width:8px;
  height:8px;
  padding:0;
  border-radius:999px;
  border:0;

  background:rgba(218,231,242,.22);
  cursor:pointer;

  transition:
    width .2s ease,
    background .2s ease,
    box-shadow .2s ease;
}

.estimate-wizard__dots button.is-active{
  width:28px;
  background:var(--gradient-line);
  box-shadow:0 0 20px rgba(88,241,211,.12);
}

.estimate-bottom{
  position:relative;
  z-index:1;

  margin-top:2px;
  padding:16px;
  border-radius:20px;
}

.estimate-bottom h2{
  font-size:17px;
}

.estimate-bottom p{
  font-size:13.5px;
}

#estimatePrice{
  display:inline-flex;
  align-items:baseline;

  transition:
    transform .22s ease,
    text-shadow .22s ease;
}

.is-updating #estimatePrice{
  transform:translateY(-2px);
  text-shadow:
    0 0 32px rgba(88,241,211,.18),
    0 0 58px rgba(106,51,216,.14);
}

/* Responsive */
@media (max-width: 900px){
  .estimate-layout{
    grid-template-columns:1fr;
    gap:22px;
  }

  .estimate-summary{
    position:relative;
    top:auto;
  }

  .estimate-summary__cta{
    margin-top:22px;
  }

  .estimate-wizard{
    min-height:auto;
    padding:20px;
    border-radius:24px;
  }

  .estimate-wizard__top{
    gap:14px;
  }

  .estimate-wizard__index span{
    font-size:28px;
  }

  .estimate-wizard__actions{
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .estimate-wizard__actions .btn{
    width:100%;
    min-width:0;
  }
}

@media (max-width: 420px){
  .estimate-wizard{
    padding:18px;
  }

  .estimate-wizard__actions{
    grid-template-columns:1fr;
  }

  .estimate-wizard__actions .btn{
    min-height:50px;
  }

  .estimate-wizard__dots{
    margin-top:2px;
  }
}



/* =========================================================
   Estimate wizard — options en grille 2 colonnes
========================================================= */

@media (min-width: 901px){
  .estimate-step{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:12px;
  }

  .estimate-step legend{
    grid-column:1 / -1;
    margin-bottom:10px;
  }

  .estimate-option,
  .estimate-option + .estimate-option{
    margin-top:0;
  }

  .estimate-option{
    height:100%;
    align-items:flex-start;

    grid-template-columns:auto minmax(0, 1fr);
    gap:12px;
  }

  .estimate-textarea{
    grid-column:1 / -1;
    margin-top:2px;
  }

  .estimate-option--other{
    grid-column:1 / -1;
  }

  .estimate-step[data-step-title="Services complémentaires"] .estimate-option:last-of-type{
    grid-column:1 / -1;
  }
}



/* Badge tarif plus discret, aligné avec le titre */
.estimate-option{
  grid-template-columns:auto minmax(0, 1fr) auto;
  align-items:flex-start;
}

/* Le titre reste bien aligné avec le prix */
.estimate-option strong{
  padding-right:6px;
}

/* Version grille 2 colonnes sur desktop */
@media (min-width: 901px){
  .estimate-option{
    grid-template-columns:auto minmax(0, 1fr) auto;
  }

  .estimate-option em{
    grid-column:auto;
    justify-self:end;
    align-self:start;
    margin-top:1px;
  }
}


/* Titre + tarif sur la première ligne, description sur toute la largeur disponible */
.estimate-option{
  display:grid;
  grid-template-columns:auto minmax(0, 1fr) auto;
  grid-template-rows:auto auto;
  align-items:start;
}

/* On "déplie" le span pour pouvoir positionner strong et small séparément */
.estimate-option > span{
  display:contents;
}

.estimate-option input{
  grid-column:1;
  grid-row:1 / 3;
  margin-top:2px;
}

.estimate-option strong{
  grid-column:2;
  grid-row:1;

  min-width:0;
  padding-right:10px;
}

.estimate-option em{
  grid-column:3;
  grid-row:1;

  justify-self:end;
  align-self:start;

  padding:0;
  border:0;
  background:transparent;

  color:rgba(88,241,211,.96);
  font-size:11px;
  font-style:normal;
  font-weight:650;
  line-height:1.25;
  white-space:nowrap;
}

/* La description prend maintenant toute la largeur texte + tarif */
.estimate-option small{
  grid-column:2 / 4;
  grid-row:2;

  display:block;
  width:100%;
  max-width:none;

  margin-top:7px;
}

/* Le lien "En savoir plus" suit la description sur toute la largeur */
.estimate-option__link{
  grid-column:2 / 4;
  width:max-content;
}

.estimate-option--discount em{
  color:#ff6b6b;
}



/* =========================================================
   Détail estimation — tech premium épuré
========================================================= */

.estimate-summary__details{
  margin-top:20px;
  padding-top:16px;
  border-top:1px solid rgba(88,241,211,.12);
}

.estimate-summary__details > span{
  display:flex;
  align-items:center;
  gap:8px;

  margin-bottom:12px;

  color:rgba(88,241,211,.86);
  font-size:10px;
  font-weight:750;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.estimate-summary__details > span::before{
  content:"";
  width:5px;
  height:5px;
  border-radius:999px;

  background:var(--accent);
  box-shadow:0 0 14px rgba(88,241,211,.34);
}

.estimate-summary__details ul{
  display:grid;
  gap:0;

  padding:0;
  margin:0;
  list-style:none;
}

.estimate-summary__details li{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:14px;
  align-items:center;

  padding:10px 0;
  border-bottom:1px solid rgba(88,241,211,.065);

  color:rgba(218,231,242,.66);
  font-size:13px;
  line-height:1.35;
}

.estimate-summary__details li:last-child{
  border-bottom:0;
}

.estimate-summary__details strong{
  min-width:0;

  color:rgba(244,250,255,.82);
  font-size:13px;
  font-weight:520;
  line-height:1.35;
}

.estimate-summary__details em{
  color:rgba(88,241,211,.92);

  font-size:12px;
  font-style:normal;
  font-weight:720;
  line-height:1;
  white-space:nowrap;
}

.estimate-summary__details em.is-discount{
  color:#ff7b7b;
}



.estimate-summary__tax-note{
  margin:6px 0 0;

  color:rgba(218,231,242,.46);
  font-size:12px;
  font-weight:500;
  line-height:1.45;
}

.estimate-option--included em{
  display:none;
}

.estimate-step.is-active .estimate-option--included em{
  display:block;
}
/* =========================================================
   Estimation — demande de contact avec PDF joint
========================================================= */

.estimate-summary__contact-note{
  margin:12px 0 0;
  color:rgba(218,231,242,.52);
  font-size:12.5px;
  line-height:1.55;
}

.estimate-contact[hidden]{
  display:none !important;
}

.estimate-contact{
  position:relative;
  margin-top:clamp(28px, 5vw, 56px);
  padding:clamp(22px, 4vw, 34px);
  border-radius:var(--radius-lg);
  border:1px solid rgba(88,241,211,.13);
  background:
    radial-gradient(620px 260px at 12% 0%, rgba(88,241,211,.065), transparent 62%),
    radial-gradient(620px 300px at 100% 0%, rgba(106,51,216,.09), transparent 68%),
    linear-gradient(180deg, rgba(20,25,36,.58), rgba(20,25,36,.30)),
    rgba(11,17,30,.46);
  box-shadow:
    0 22px 60px rgba(0,0,0,.22),
    0 0 0 1px rgba(255,255,255,.022) inset;
  overflow:hidden;
}

.estimate-contact::before{
  content:"";
  position:absolute;
  left:clamp(22px, 4vw, 34px);
  right:clamp(22px, 4vw, 34px);
  top:0;
  height:1px;
  background:linear-gradient(90deg, rgba(88,241,211,.60), rgba(26,81,166,.32), transparent);
}

.estimate-contact__head{
  max-width:760px;
  margin-bottom:24px;
}

.estimate-contact__head h2{
  margin:0;
  color:var(--text-strong);
  font-family:var(--font-title);
  font-size:clamp(24px, 3vw, 36px);
  font-weight:650;
  line-height:1.08;
  letter-spacing:-.045em;
}

.estimate-contact__head p:not(.eyebrow){
  margin:14px 0 0;
  color:rgba(218,231,242,.72);
  line-height:1.72;
}

.estimate-contact__alerts{
  display:grid;
  gap:10px;
  margin-bottom:18px;
}

.estimate-contact__form{
  display:grid;
  gap:18px;
}

.estimate-contact__grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
}

.estimate-contact__grid .form__row--full{
  grid-column:1 / -1;
}

.estimate-contact__form input,
.estimate-contact__form textarea{
  width:100%;
  border-radius:var(--field-radius);
  border:1px solid rgba(88,241,211,.10);
  color:var(--text-strong);
  background:rgba(11,17,30,.62);
  font:inherit;
  outline:none;
  transition:
    border-color .2s ease,
    box-shadow .2s ease,
    background .2s ease;
}

.estimate-contact__form input{
  height:var(--field-h);
  padding:0 15px;
}

.estimate-contact__form textarea{
  min-height:150px;
  padding:15px;
  line-height:1.62;
  resize:vertical;
}

.estimate-contact__form input:focus,
.estimate-contact__form textarea:focus{
  border-color:rgba(88,241,211,.38);
  box-shadow:0 0 0 4px rgba(88,241,211,.08);
  background:rgba(11,17,30,.82);
}

.estimate-contact__form input::placeholder,
.estimate-contact__form textarea::placeholder{
  color:#838EA3;
}

.estimate-contact__bottom{
  padding-top:16px;
  border-top:1px solid rgba(88,241,211,.08);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}

.estimate-contact__bottom p{
  max-width:58ch;
  margin:0;
  color:rgba(218,231,242,.58);
  font-size:13px;
  line-height:1.6;
}

.estimate-contact__bottom .btn{
  flex:0 0 auto;
}

@media (max-width: 760px){
  .estimate-contact__grid{
    grid-template-columns:1fr;
  }

  .estimate-contact__grid .form__row--full{
    grid-column:auto;
  }

  .estimate-contact__bottom{
    align-items:stretch;
    flex-direction:column;
  }

  .estimate-contact__bottom .btn{
    width:100%;
  }
}
