/* =========================
   Page Contact (refonte 2025)
   Scope local : .section-contact
   ========================= */

/* iOS lisibilité & zoom inputs */
html{ -webkit-text-size-adjust:100%; }
.section-contact :where(input,select,textarea){ font-size:16px; line-height:1.4; }

/* Safe box-sizing local */
.section-contact, .section-contact *{ box-sizing:border-box; }

/* Entête */
.section-contact .pretitle{
  color:var(--gc-muted, #6b7280);
  font-size:.95rem; letter-spacing:.3px; margin:0 0 .25rem;
}
.section-contact .contact-header{ margin-bottom:var(--space-4, 1rem); }
.section-contact .contact-header h1{ margin:0 0 .5rem; }

/* =========================
   Grille principale (page)
   ========================= */
.section-contact .contact-layout{
  display:grid;
  gap:var(--space-6,1.5rem);
  align-items:start;
  grid-template-columns:1fr; /* mobile */
}
@media (min-width:840px){
  .section-contact .contact-layout{ grid-template-columns:1fr 1fr; } /* 50/50 dès 840px */
}
.section-contact .contact-layout > *{ min-width:0; } /* anti contraintes internes */

/* Cartes */
.section-contact .card{
  padding:var(--space-5, 1.25rem);
  overflow:visible;
  -webkit-overflow-scrolling:touch;
  /* Anti-CLS si contenu async (maps, iframes…) */
  content-visibility:auto;
  contain-intrinsic-size:300px 200px;
}

/* =========================
   GAUCHE — Infos + Logo
   ========================= */
.section-contact .contact-aside .contact-aside-grid{
  display:grid;
  grid-template-columns:1fr; /* mobile: logo sous les infos */
  gap:var(--space-5,1.25rem);
  align-items:center;
}
@media (min-width:840px){
  .section-contact .contact-aside .contact-aside-grid{
    grid-template-columns:1fr 1fr; /* 50/50 interne */
  }
}

.section-contact .contact-aside-info{ min-width:0; }
.section-contact .contact-aside-info h2{ margin:0 0 .75rem; line-height:1.15; }
.section-contact .contact-entity{ margin:0 0 .25rem; }
.section-contact .contact-address{ font-style:normal; color:var(--gc-fg,#1f2937); }
.section-contact .contact-infos{
  margin:.5rem 0 0; padding:0; list-style:none; display:grid; gap:.45rem;
}
.section-contact .contact-infos a{
  color:var(--gc-accent,#ff6f3c);
  text-decoration:underline; text-underline-offset:2px;
}
@media (hover:hover){
  .section-contact .contact-infos a:hover{ text-decoration-thickness:.12em; }
}
.section-contact .contact-actions{ margin-top:.85rem; }

/* Logo */
.section-contact .contact-aside-logo{
  display:flex; align-items:center; justify-content:center; min-height:140px;
  content-visibility:auto; contain-intrinsic-size:260px 160px; /* anti-CLS */
}
.section-contact .brand-img{
  display:block;
  width:clamp(160px, 30vw, 320px) !important;
  max-width:100%;
  height:auto;
  max-height:320px;
  object-fit:contain;
  filter:drop-shadow(0 8px 20px rgba(0,0,0,.08));
}
@media (max-width:839.98px){
  .section-contact .brand-img{ width:260px !important; max-height:260px; }
}

/* =========================
   DROITE — Formulaire (CF7)
   ========================= */
.section-contact .contact-form{ width:100%; } /* occupe 100% de sa colonne */

.section-contact .contact-form .wpcf7{ display:block; width:100%; }
.section-contact .contact-form .wpcf7 form{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
}
.section-contact .contact-form .wpcf7 form > p{ width:100%; }

.section-contact .contact-form .form-grid{
  display:grid; grid-template-columns:1fr; gap:var(--space-4, 1rem);
}
@media (min-width:960px){
  .section-contact .contact-form .form-grid{ grid-template-columns:1fr 1fr; }
}
.section-contact .contact-form .form-field,
.section-contact .contact-form .wpcf7 *{ min-width:0; }
.section-contact .contact-form .form-field--full{ grid-column:1 / -1; }

.section-contact .contact-form label{ display:block; margin:0 0 .35rem; }
.section-contact .contact-form :where(input[type="text"],input[type="email"],input[type="tel"],textarea,select){
  font:inherit; color:var(--gc-fg,#1f2937); background:#fff;
  border:1px solid #e5e7eb; border-radius:12px;
  padding:.65rem .75rem; min-height:48px; width:100%; max-width:100%;
}
.section-contact .contact-form textarea{ min-height:140px; }
.section-contact .contact-form :where(input,textarea,select):focus-visible{
  outline:3px solid var(--gc-focus,#0ea5e9); outline-offset:2px; border-color:transparent;
}
.section-contact .contact-form :where(input,textarea,select):disabled{
  background:#f3f4f6; color:#9ca3af; cursor:not-allowed;
}

/* Messages CF7 (succès/erreur/validation) */
.section-contact .contact-form .wpcf7-not-valid-tip{
  color:#b91c1c; font-size:.9rem; margin-top:.25rem;
}
.section-contact .contact-form .wpcf7-response-output{
  margin:0; padding:.75rem 1rem; border-radius:12px;
}
/* États selon classes CF7 récentes */
.section-contact .contact-form .wpcf7 form.submitting .wpcf7-response-output{
  border:1px solid #93c5fd; background:#eff6ff; color:#1e3a8a;
}
.section-contact .contact-form .wpcf7 form.invalid .wpcf7-response-output{
  border:1px solid #ef4444; background:#fef2f2; color:#7f1d1d;
}
.section-contact .contact-form .wpcf7 form.sent .wpcf7-response-output{
  border:1px solid #10b981; background:#ecfdf5; color:#065f46;
}

/* Boutons */
.section-contact .contact-form .wpcf7-submit,
.section-contact .contact-form .form-actions .btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.7rem 1rem; border-radius:var(--gc-radius,16px);
  background:var(--gc-accent,#ff6f3c); color:var(--gc-btn-fg,#0f172a);
  border:0; cursor:pointer; font-weight:600;
  box-shadow:var(--gc-shadow,0 8px 20px rgba(0,0,0,.06));
  transition:transform .15s ease, opacity .15s ease;
  min-height:48px; text-decoration:none;
}
@media (hover:hover){
  .section-contact .contact-form .wpcf7-submit:hover,
  .section-contact .contact-form .form-actions .btn:hover{ transform:translateY(-1px); }
}
.section-contact .contact-form .wpcf7-submit:focus-visible,
.section-contact .contact-form .form-actions .btn:focus-visible{
  outline:3px solid var(--gc-focus,#0ea5e9); outline-offset:2px;
}
.section-contact .contact-form .wpcf7-submit:disabled{
  opacity:.6; cursor:not-allowed; transform:none;
}

/* Alertes (si hors CF7) */
.section-contact .sbc-alert{
  border:1px solid; border-radius:12px; padding:.75rem 1rem; margin-bottom:1rem; font-size:.95rem;
}
.section-contact .sbc-alert--success{ background:#ecfdf5; border-color:#10b981; color:#065f46; }
.section-contact .sbc-alert--error{ background:#fef2f2; border-color:#ef4444; color:#7f1d1d; }

/* Ancre & safe-area */
.section-contact #contact{ scroll-margin-top:calc(var(--gc-header-offset,80px) + 8px); }
@supports (padding: max(0px)){
  .section-contact .contact-form{ padding-bottom:max(var(--space-5,1.25rem), env(safe-area-inset-bottom)); }
}

/* Print */
@media print{
  .site-header, .site-footer, .back-to-top, nav{ display:none !important; }
  .section-contact .card{ box-shadow:none !important; border:1px solid #ddd; }
}

/* 2 colonnes CF7 si <p class="half"> */
.section-contact .contact-form .wpcf7 form .half{ grid-column:span 1; }
@media (max-width:959.98px){
  .section-contact .contact-form .wpcf7 form .half{ grid-column:1 / -1; }
}
