/* ══════════════════════════════════════════════════════
   ESCO BRAND STUDIO — contact.css
   Style carte flottante (comme realisations)
   Couleurs ESCO conservées
══════════════════════════════════════════════════════ */

/* ── BODY ── */
.ct-body{
  background:var(--dark);
  min-height:100vh;
}

/* ── TITRE DE PAGE ── */
.ct-page-title{
  position:relative;
  padding:180px 72px 80px;
  background:var(--dark);
  text-align:center;
  overflow:hidden;
}
.ct-page-title::before{
  content:'';
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:900px;height:900px;
  background:radial-gradient(circle,rgba(192,88,40,.10) 0%,transparent 65%);
  pointer-events:none;
}
.ct-page-title-inner{
  position:relative;
  z-index:2;
  max-width:820px;
  margin:0 auto;
}
.ct-kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--fb);
  font-size:.62rem;
  font-weight:500;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--rust);
  margin-bottom:26px;
  padding:8px 16px;
  border:1px solid rgba(192,88,40,.35);
  border-radius:99px;
  background:rgba(192,88,40,.06);
}
.ct-kicker-star{font-size:.75rem}
.ct-page-title-h1{
  font-family:var(--fd);
  font-size:clamp(2.4rem,5.5vw,4.6rem);
  font-weight:300;
  line-height:1;
  color:var(--cream);
  letter-spacing:-.015em;
  margin-bottom:26px;
}
.ct-page-title-h1 em{
  color:var(--rust);
  font-style:italic;
  font-weight:300;
}
.ct-page-title-sub{
  font-family:var(--fb);
  font-size:clamp(.95rem,1.4vw,1.1rem);
  font-weight:300;
  color:var(--tan2);
  line-height:1.85;
  max-width:640px;
  margin:0 auto;
}

/* ══════════════════════════════════════
   GRILLE PRINCIPALE — 2 CARTES
══════════════════════════════════════ */
.ct-main{
  padding:60px 72px 100px;
  background:var(--dark);
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:32px;
  max-width:1400px;
  margin:0 auto;
}

/* ── CARTE ── */
.ct-card{
  position:relative;
  background:linear-gradient(135deg,
    rgba(192,88,40,.08) 0%,
    var(--dark2) 40%,
    var(--dark3) 100%);
  border:1px solid rgba(240,232,212,.06);
  border-radius:24px;
  padding:0;
  overflow:hidden;
  box-shadow:
    0 40px 100px -40px rgba(0,0,0,.9),
    0 0 0 1px rgba(192,88,40,.06) inset;
}
.ct-card::before{
  content:'';
  position:absolute;
  top:-30%;right:-15%;
  width:500px;height:500px;
  background:radial-gradient(circle,rgba(192,88,40,.13) 0%,transparent 65%);
  pointer-events:none;
}
.ct-card::after{
  content:'';
  position:absolute;
  bottom:-30%;left:-10%;
  width:400px;height:400px;
  background:radial-gradient(circle,rgba(192,88,40,.07) 0%,transparent 70%);
  pointer-events:none;
}

.ct-card-inner{
  position:relative;
  z-index:2;
  padding:48px 44px;
}

/* Badge */
.ct-badge{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--fb);
  font-size:.6rem;
  font-weight:500;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:var(--rust);
  padding:8px 14px;
  border:1px solid rgba(192,88,40,.35);
  border-radius:99px;
  background:rgba(192,88,40,.06);
  margin-bottom:24px;
}
.ct-badge-star{font-size:.72rem}

/* Titre carte */
.ct-card-title{
  font-family:var(--fd);
  font-size:clamp(1.6rem,2.4vw,2.2rem);
  font-weight:400;
  line-height:1.08;
  color:var(--cream);
  margin-bottom:16px;
}
.ct-card-title em{
  color:var(--rust);
  font-style:italic;
  font-weight:300;
}
.ct-card-sub{
  font-family:var(--fb);
  font-size:.86rem;
  font-weight:300;
  color:rgba(240,232,212,.62);
  line-height:1.72;
  margin-bottom:28px;
}

/* ── MÉTHODES DE CONTACT ── */
.ct-methods{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-bottom:32px;
}
.ct-method{
  display:flex;
  align-items:center;
  gap:16px;
  padding:14px 18px;
  background:rgba(240,232,212,.03);
  border:1px solid rgba(240,232,212,.06);
  border-radius:12px;
  transition:all .3s cubic-bezier(.22,1,.36,1);
  text-decoration:none;
}
.ct-method:hover{
  background:rgba(192,88,40,.08);
  border-color:rgba(192,88,40,.3);
  transform:translateX(4px);
}
.ct-method-icon{
  width:38px;height:38px;
  border-radius:10px;
  background:rgba(192,88,40,.15);
  border:1px solid rgba(192,88,40,.3);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--rust);
  font-size:1rem;
  flex-shrink:0;
}
.ct-method-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.ct-method-label{
  font-family:var(--fb);
  font-size:.56rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--tan);
  font-weight:500;
}
.ct-method-value{
  font-family:var(--fb);
  font-size:.85rem;
  color:var(--cream);
  font-weight:300;
  overflow-wrap:anywhere;
}

/* ── RÉSEAUX ── */
.ct-social-block{margin-bottom:32px}
.ct-social-label{
  display:block;
  font-family:var(--fb);
  font-size:.56rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--rust);
  margin-bottom:14px;
  font-weight:500;
}
.ct-social-row{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.ct-social-row a{
  width:40px;height:40px;
  border:1px solid rgba(240,232,212,.1);
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:rgba(240,232,212,.5);
  font-size:1rem;
  transition:all .3s;
}
.ct-social-row a:hover{
  border-color:var(--rust);
  color:var(--rust);
  background:rgba(192,88,40,.08);
  transform:translateY(-2px);
}

/* ── AIDE ── */
.ct-help{
  padding-top:24px;
  border-top:1px solid rgba(240,232,212,.06);
}
.ct-help-label{
  display:block;
  font-family:var(--fb);
  font-size:.56rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:rgba(240,232,212,.3);
  margin-bottom:14px;
  font-weight:500;
}
.ct-help ul{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:0;margin:0;
}
.ct-help li{
  font-family:var(--fb);
  font-size:.8rem;
  line-height:1.6;
  color:var(--tan2);
  font-weight:300;
  padding-left:20px;
  position:relative;
}
.ct-help li::before{
  content:'—';
  position:absolute;
  left:0;
  color:var(--rust);
  font-size:.7rem;
}

/* ══════════════════════════════════════
   FORMULAIRE
══════════════════════════════════════ */
.ct-choice-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin-bottom:24px;
}
.ct-choice{
  min-height:86px;
  padding:14px 12px;
  background:rgba(240,232,212,.025);
  border:1px solid rgba(240,232,212,.08);
  border-radius:12px;
  color:var(--tan2);
  font-family:var(--fb);
  text-align:left;
  line-height:1.35;
  transition:all .25s cubic-bezier(.22,1,.36,1);
  cursor:pointer;
}
.ct-choice span{
  display:block;
  color:var(--cream);
  font-size:.6rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-bottom:6px;
  font-weight:500;
}
.ct-choice small{
  display:block;
  color:rgba(240,232,212,.42);
  font-size:.68rem;
  line-height:1.4;
  font-weight:300;
}
.ct-choice:hover,
.ct-choice.active{
  border-color:rgba(192,88,40,.45);
  background:rgba(192,88,40,.1);
  transform:translateY(-1px);
}
.ct-choice.active{
  box-shadow:0 12px 28px -12px rgba(192,88,40,.35);
}

/* Grille 2 colonnes */
.ct-form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.ct-form-group{margin-bottom:16px}

.ct-label{
  display:block;
  font-family:var(--fb);
  font-size:.58rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--tan);
  margin-bottom:8px;
  font-weight:500;
}

.ct-input{
  width:100%;
  padding:14px 16px;
  background:rgba(240,232,212,.04);
  border:1px solid rgba(240,232,212,.08);
  border-radius:10px;
  font-family:var(--fb);
  font-size:.88rem;
  color:var(--cream);
  font-weight:300;
  transition:border-color .3s,background .3s;
  outline:none;
  -webkit-appearance:none;
}
.ct-input::placeholder{color:rgba(240,232,212,.22)}
.ct-input:focus{
  border-color:rgba(192,88,40,.55);
  background:rgba(240,232,212,.06);
}
.ct-textarea{
  min-height:120px;
  resize:vertical;
  font-family:var(--fb);
}

/* Select */
.ct-input[type="text"],
select.ct-input{
  background:rgba(240,232,212,.04);
}
select.ct-input option{
  background:var(--dark2);
  color:var(--cream);
}

/* Bouton submit */
.ct-submit{
  width:100%;
  padding:18px 24px;
  background:var(--rust);
  color:var(--cream);
  font-family:var(--fb);
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.16em;
  text-transform:uppercase;
  border:none;
  border-radius:12px;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  transition:all .3s cubic-bezier(.22,1,.36,1);
  box-shadow:0 15px 40px -10px rgba(192,88,40,.5);
  margin-top:8px;
}
.ct-submit:hover{
  background:var(--rust2);
  transform:translateY(-2px);
  box-shadow:0 20px 50px -10px rgba(192,88,40,.6);
}
.ct-submit-arrow{
  transition:transform .3s;
  font-size:.9rem;
}
.ct-submit:hover .ct-submit-arrow{
  transform:translateX(4px);
}

.ct-form-note{
  font-family:var(--fb);
  font-size:.66rem;
  color:var(--tan);
  margin-top:14px;
  text-align:center;
  letter-spacing:.06em;
}

/* ══════════════════════════════════════
   FAQ
══════════════════════════════════════ */
.ct-faq{
  padding:80px 72px 120px;
  background:var(--dark);
}
.ct-faq-inner{
  max-width:820px;
  margin:0 auto;
  text-align:center;
}
.ct-faq-title{
  font-family:var(--fd);
  font-size:clamp(1.8rem,3.4vw,2.8rem);
  font-weight:300;
  line-height:1.05;
  color:var(--cream);
  margin-bottom:48px;
}
.ct-faq-title em{color:var(--rust);font-style:italic}

.ct-faq-list{
  display:flex;
  flex-direction:column;
  gap:0;
  text-align:left;
}
.ct-faq-item{
  padding:28px 0;
  border-bottom:1px solid rgba(240,232,212,.06);
}
.ct-faq-item:first-child{border-top:1px solid rgba(240,232,212,.06)}
.ct-faq-item h3{
  font-family:var(--fd);
  font-size:1.05rem;
  font-weight:400;
  color:var(--cream);
  margin-bottom:12px;
}
.ct-faq-item p{
  font-family:var(--fb);
  font-size:.85rem;
  line-height:1.78;
  color:var(--tan2);
  font-weight:300;
}

/* ══════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════ */
@media(max-width:1100px){
  .ct-main{
    grid-template-columns:1fr;
    gap:24px;
    padding:50px 40px 80px;
  }
}
@media(max-width:860px){
  .ct-page-title{padding:140px 32px 60px}
  .ct-main{padding:40px 24px 60px}
  .ct-card-inner{padding:36px 28px}
  .ct-faq{padding:60px 32px 80px}
}
@media(max-width:600px){
  .ct-page-title{padding:120px 20px 50px}
  .ct-page-title-h1{font-size:clamp(2rem,8vw,2.8rem)}
  .ct-main{padding:30px 16px 50px}
  .ct-card{border-radius:18px}
  .ct-card-inner{padding:28px 22px}
  .ct-choice-row{grid-template-columns:1fr;gap:6px}
  .ct-choice{min-height:auto;padding:12px}
  .ct-form-row{grid-template-columns:1fr;gap:0}
  .ct-submit{padding:16px 20px;font-size:.66rem}
  .ct-faq{padding:50px 20px 60px}
  .ct-faq-item h3{font-size:.98rem}
  .ct-faq-item p{font-size:.82rem}
}