/* HIBANAS — Contact : simple, clair et sans répétition */
body.page-contact{
  --contact-ink:#20372e;
  --contact-text:#667a71;
  --contact-muted:#83968c;
  --contact-green:#17865a;
  --contact-green-deep:#0d704b;
  --contact-soft:#f2f8f4;
  --contact-line:#d9e7df;
  --contact-shadow:0 18px 50px rgba(24,67,51,.08);
}

body.page-contact .contact-hero{
  position:relative;
  overflow:hidden;
  padding:clamp(4rem,7vw,6rem) 0 clamp(3.6rem,6vw,5.2rem);
  border-bottom:1px solid var(--contact-line);
  background:linear-gradient(135deg,#fff 0%,#f7fbf9 65%,#edf7f1 100%);
}
body.page-contact .contact-hero::after{
  content:"";
  position:absolute;
  right:-130px;
  top:-180px;
  width:430px;
  height:430px;
  border:1px solid rgba(23,134,90,.08);
  border-radius:50%;
  box-shadow:0 0 0 70px rgba(23,134,90,.02);
  pointer-events:none;
}

body.page-contact .contact-hero h1{
  max-width:12ch;
  margin:0;
  color:var(--contact-ink);
  font-size:clamp(3rem,5.6vw,5rem);
  line-height:.99;
  letter-spacing:-.055em;
}
body.page-contact .contact-hero h1 em{font-style:normal;color:var(--contact-green)}
body.page-contact .contact-hero p{
  max-width:650px;
  margin:1.3rem 0 0;
  color:var(--contact-text);
  font-size:clamp(1rem,1.25vw,1.08rem);
  line-height:1.75;
}

body.page-contact .contact-main{background:#fff}
body.page-contact .contact-main__grid{
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(340px,.7fr);
  gap:clamp(1.2rem,2.4vw,1.8rem);
  align-items:stretch;
}
body.page-contact .contact-form-card,
body.page-contact .contact-direct-card{
  border:1px solid var(--contact-line);
  border-radius:22px;
  background:#fff;
}
body.page-contact .contact-form-card{
  padding:clamp(1.4rem,2.7vw,2.1rem);
  box-shadow:var(--contact-shadow);
}
body.page-contact .contact-form-card__head{
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
  gap:1rem;
}
body.page-contact .contact-form-card__head h2,
body.page-contact .contact-direct-card__head h2{
  margin:0;
  color:var(--contact-ink);
  line-height:1.08;
  letter-spacing:-.035em;
}
body.page-contact .contact-form-card__head h2{font-size:clamp(1.8rem,2.7vw,2.5rem)}
body.page-contact .contact-form-card__badge{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  flex:0 0 auto;
  padding:.55rem .72rem;
  border-radius:999px;
  background:#edf7f1;
  color:#237b50;
  font-size:.7rem;
  font-weight:800;
}
body.page-contact .contact-form-card__intro{
  max-width:690px;
  margin:.85rem 0 1.5rem;
  color:var(--contact-text);
  font-size:.88rem;
  line-height:1.65;
}
body.page-contact .contact-form{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
}
body.page-contact .contact-field{display:block;min-width:0}
body.page-contact .contact-field--message{grid-column:1/-1}
body.page-contact .contact-field__label{
  display:flex;
  align-items:center;
  gap:.55rem;
  margin-bottom:.48rem;
  color:var(--contact-ink);
  font-size:.78rem;
  font-weight:800;
}
body.page-contact .contact-field__label small{margin-left:.28rem;color:#93a49c;font-size:.66rem;font-weight:650}
body.page-contact .contact-field__icon{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:8px;
  background:var(--contact-soft);
  color:var(--contact-green);
  font-size:.78rem;
}
body.page-contact .contact-control{display:block;position:relative}
body.page-contact .contact-control input,
body.page-contact .contact-control select,
body.page-contact .contact-control textarea{
  width:100%;
  border:1px solid #d7e5dd;
  border-radius:12px;
  outline:0;
  background:#fbfdfc;
  color:var(--contact-ink);
  font:inherit;
  font-size:.9rem;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
body.page-contact .contact-control input,
body.page-contact .contact-control select{min-height:50px;padding:0 .95rem}
body.page-contact .contact-control textarea{min-height:148px;padding:.9rem .95rem;resize:vertical;line-height:1.55}
body.page-contact .contact-control input::placeholder,
body.page-contact .contact-control textarea::placeholder{color:#9aaca3}
body.page-contact .contact-control input:focus,
body.page-contact .contact-control select:focus,
body.page-contact .contact-control textarea:focus{
  border-color:#75b693;
  background:#fff;
  box-shadow:0 0 0 4px rgba(23,134,90,.08);
}
body.page-contact .contact-control--select::after{
  content:"";
  position:absolute;
  right:.95rem;
  top:50%;
  transform:translateY(-50%);
  font-family:"bootstrap-icons";
  font-size:.75rem;
  color:#789087;
  pointer-events:none;
}
body.page-contact .contact-control select{appearance:none;padding-right:2.6rem}
body.page-contact .contact-form__footer{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:1rem;
  margin-top:.2rem;
  padding-top:1rem;
  border-top:1px solid var(--contact-line);
}
body.page-contact .contact-submit{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;min-width:210px;white-space:nowrap}

body.page-contact .contact-direct-card{
  display:flex;
  flex-direction:column;
  padding:clamp(1.4rem,2.7vw,2rem);
  background:linear-gradient(180deg,#f9fcfa 0%,#f3f9f5 100%);
}
body.page-contact .contact-direct-card__head{padding-bottom:1.2rem;border-bottom:1px solid var(--contact-line)}
body.page-contact .contact-direct-card__head h2{max-width:12ch;font-size:clamp(1.55rem,2.2vw,2.05rem)}
body.page-contact .contact-direct-card__head p{margin:.65rem 0 0;color:var(--contact-text);font-size:.84rem;line-height:1.58}
body.page-contact .contact-direct-list{display:grid;margin-top:.3rem}
body.page-contact .contact-direct-item{
  display:grid;
  grid-template-columns:46px minmax(0,1fr) 24px;
  gap:.85rem;
  align-items:center;
  padding:1rem 0;
  border-bottom:1px solid var(--contact-line);
  color:var(--contact-ink);
  transition:color .18s ease;
}
body.page-contact .contact-direct-item:last-child{border-bottom:0}
body.page-contact .contact-direct-item:hover{color:var(--contact-green-deep)}
body.page-contact .contact-direct-item__icon{
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  border:1px solid #dce9e1;
  border-radius:13px;
  background:#fff;
  color:var(--contact-green);
  font-size:1rem;
}
body.page-contact .contact-direct-item--whatsapp .contact-direct-item__icon{color:#249b56}
body.page-contact .contact-direct-item__copy{min-width:0}
body.page-contact .contact-direct-item__copy small{
  display:block;
  margin-bottom:.12rem;
  color:var(--contact-muted);
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.07em;
  text-transform:uppercase;
}
body.page-contact .contact-direct-item__copy strong{display:block;overflow-wrap:anywhere;font-size:.9rem;line-height:1.4}
body.page-contact .contact-direct-item__arrow{justify-self:end;color:#96aaa0;font-size:.8rem}

body.page-contact .contact-location{padding-top:0;background:#fff}
body.page-contact .contact-location__head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(330px,.7fr);
  gap:clamp(1.5rem,3vw,2.5rem);
  align-items:end;
  margin-bottom:1.25rem;
}
body.page-contact .contact-location__head h2{
  max-width:12ch;
  margin:0;
  color:var(--contact-ink);
  font-size:clamp(2rem,3.6vw,3.2rem);
  line-height:1.05;
  letter-spacing:-.04em;
}
body.page-contact .contact-location__head h2 em{font-style:normal;color:var(--contact-green)}
body.page-contact .contact-address{
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  gap:.9rem;
  align-items:start;
  padding:1rem 1.1rem;
  border:1px solid var(--contact-line);
  border-radius:16px;
  background:#f8fbf9;
}
body.page-contact .contact-address__icon{
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  border-radius:13px;
  background:#eaf6ef;
  color:var(--contact-green);
  font-size:1rem;
}
body.page-contact .contact-address small{
  display:block;
  color:var(--contact-muted);
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.07em;
  text-transform:uppercase;
}
body.page-contact .contact-address p{margin:.28rem 0 .55rem;color:var(--contact-text);font-size:.86rem;line-height:1.55}
body.page-contact .contact-address a{display:inline-flex;align-items:center;gap:.4rem;color:var(--contact-green-deep);font-size:.79rem;font-weight:800}
body.page-contact .contact-location__shell{
  padding:7px;
  border:1px solid var(--contact-line);
  border-radius:22px;
  background:#fff;
  box-shadow:0 14px 40px rgba(29,73,56,.06);
}
body.page-contact .map-frame{position:relative;width:100%;height:350px;overflow:hidden;border-radius:16px;background:#edf5f0}
body.page-contact .map-frame iframe{width:100%;height:100%;border:0}
body.page-contact .map-placeholder{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  padding:2rem;
  text-align:center;
  background:linear-gradient(135deg,#f4faf6,#eaf5ee);
}
body.page-contact .map-placeholder__icon{
  display:grid;
  place-items:center;
  width:56px;
  height:56px;
  margin-bottom:.85rem;
  border:1px solid #d4e5da;
  border-radius:16px;
  background:#fff;
  color:var(--contact-green);
  font-size:1.2rem;
}
body.page-contact .map-placeholder strong{color:var(--contact-ink);font-size:1rem}
body.page-contact .map-placeholder p{max-width:420px;margin:.4rem 0 1rem;color:var(--contact-text);font-size:.79rem;line-height:1.5}
body.page-contact .map-placeholder .btn{min-height:44px;padding:.68rem 1.15rem}

@media (max-width:1020px){
  body.page-contact .contact-main__grid{grid-template-columns:1fr}
  body.page-contact .contact-direct-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-top:1rem}
  body.page-contact .contact-direct-item{grid-template-columns:44px minmax(0,1fr);grid-template-rows:auto auto;padding:1rem;border:1px solid var(--contact-line);border-radius:14px;background:#fff}
  body.page-contact .contact-direct-item__arrow{grid-column:2;grid-row:1}
  body.page-contact .contact-direct-item__copy{grid-column:1/-1;grid-row:2}
}
@media (max-width:850px){
  body.page-contact .contact-location__head{grid-template-columns:1fr;align-items:start}
  body.page-contact .contact-address{max-width:650px}
}
@media (max-width:700px){
  body.page-contact .contact-form{grid-template-columns:1fr}
  body.page-contact .contact-field--message,
  body.page-contact .contact-form__footer{grid-column:auto}
  body.page-contact .contact-form__footer{align-items:stretch;flex-direction:column}
  body.page-contact .contact-submit{width:100%;min-width:0}
  body.page-contact .contact-direct-list{grid-template-columns:1fr}
  body.page-contact .contact-direct-item{grid-template-columns:44px minmax(0,1fr) 24px;grid-template-rows:auto;align-items:center;border:0;border-bottom:1px solid var(--contact-line);border-radius:0;background:transparent;padding:1rem 0}
  body.page-contact .contact-direct-item__copy{grid-column:2;grid-row:1}
  body.page-contact .contact-direct-item__arrow{grid-column:3;grid-row:1}
}
@media (max-width:640px){
  body.page-contact .contact-hero{padding-top:3rem}
  body.page-contact .contact-hero h1{font-size:clamp(2.65rem,12vw,3.7rem)}
  body.page-contact .contact-form-card,
  body.page-contact .contact-direct-card{padding:1.1rem;border-radius:18px}
  body.page-contact .contact-form-card__head{align-items:flex-start;flex-direction:column}
  body.page-contact .contact-form-card__badge{font-size:.67rem}
  body.page-contact .contact-address{grid-template-columns:42px minmax(0,1fr);padding:.9rem}
  body.page-contact .contact-address__icon{width:42px;height:42px}
  body.page-contact .contact-location__shell{border-radius:18px}
  body.page-contact .map-frame{height:285px}
  body.page-contact .map-placeholder p{display:none}
}


/* Generated contact icons */
body.page-contact .contact-direct-item__icon img,
body.page-contact .contact-address__icon img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
body.page-contact .contact-direct-item__icon{
  padding:8px;
}
body.page-contact .contact-address__icon{
  padding:8px;
}
body.page-contact .contact-direct-item__icon i,
body.page-contact .contact-address__icon i{display:none}
body.page-contact .contact-direct-item--whatsapp .contact-direct-item__icon{color:inherit}


/* Unified contact page icons */
body.page-contact .contact-form-card__badge,
body.page-contact .contact-field__label,
body.page-contact .map-placeholder__icon{display:flex;align-items:center}
body.page-contact .contact-ui-icon,
body.page-contact .contact-form-card__badge .contact-ui-icon,
body.page-contact .contact-field__icon,
body.page-contact .map-placeholder__icon{
  flex:0 0 auto;
  display:grid;
  place-items:center;
}
body.page-contact .contact-form-card__badge .contact-ui-icon{
  width:30px;height:30px;padding:2px;margin-right:.5rem;
}
body.page-contact .contact-field__icon{
  width:34px;height:34px;padding:2px;
}
body.page-contact .map-placeholder__icon{
  width:64px;height:64px;padding:6px;margin:0 auto .8rem;
}
body.page-contact .contact-form-card__badge img,
body.page-contact .contact-field__icon img,
body.page-contact .contact-ui-icon img,
body.page-contact .map-placeholder__icon img,
body.page-contact .contact-direct-item__icon img,
body.page-contact .contact-address__icon img{
  display:block;width:100%;height:100%;object-fit:contain;
}
body.page-contact .contact-field__icon i,
body.page-contact .map-placeholder__icon i{display:none}
body.page-contact .contact-link-arrow{
  display:inline-flex;align-items:center;justify-content:center;
  color:#8ca197;font-size:1rem;line-height:1;font-weight:700;
}
body.page-contact .contact-submit .contact-link-arrow{color:currentColor;font-size:1rem}
body.page-contact .contact-direct-item__arrow{justify-self:end}
body.page-contact .contact-address a .contact-link-arrow{margin-left:.2rem;color:currentColor}

/* v52 — structure compacte Contact, cohérente avec Produits / Services / À propos */
body.page-contact .contact-hero.contact-hero--compact{
  padding:clamp(1.65rem,3vw,2.35rem) 0 clamp(1.15rem,2vw,1.55rem)!important;
  background:linear-gradient(180deg,#fff 0%,#f8fbf9 100%)!important;
  border-bottom:1px solid var(--contact-line)!important;
}
body.page-contact .contact-hero.contact-hero--compact::before,
body.page-contact .contact-hero.contact-hero--compact::after{display:none!important}
body.page-contact .contact-hero__compact{
  display:flex;
  justify-content:center;
  max-width:none;
}
body.page-contact .contact-intro{
  display:flex;
  flex-direction:column;
  align-items:center;
  row-gap:.35rem;
  width:100%;
  text-align:center;
}
body.page-contact .contact-intro .eyebrow{
  margin-bottom:.1rem!important;
}
body.page-contact .contact-intro h1{
  max-width:760px!important;
  margin:0 auto!important;
  color:var(--contact-ink)!important;
  font-size:clamp(1.9rem,3.25vw,2.9rem)!important;
  line-height:1.08!important;
  letter-spacing:-.04em!important;
  text-align:center!important;
}
body.page-contact .contact-intro>p{
  grid-column:1;
  max-width:780px!important;
  margin:.38rem 0 0!important;
  color:var(--contact-text)!important;
  font-size:.94rem!important;
  line-height:1.62!important;
}
body.page-contact .contact-hero__meta{
  grid-column:2;
  grid-row:2/4;
  display:flex;
  align-items:center;
  gap:.5rem;
  align-self:center;
  margin:0!important;
}
body.page-contact .contact-hero__meta span{
  display:grid;
  justify-items:center;
  min-width:92px;
  padding:.62rem .75rem;
  border:1px solid #dce9e2;
  border-radius:12px;
  background:#fff;
  color:#6c8179;
  font-size:.7rem;
  line-height:1.2;
  white-space:nowrap;
}
body.page-contact .contact-hero__meta strong{
  display:block;
  margin-bottom:.14rem;
  color:var(--contact-green-deep);
  font-size:1.02rem;
  line-height:1;
}
body.page-contact .contact-main{
  padding-top:clamp(1.7rem,3vw,2.4rem)!important;
}
body.page-contact .contact-form-card,
body.page-contact .contact-direct-card{
  border-radius:18px!important;
}
body.page-contact .contact-form-card{
  box-shadow:0 12px 34px rgba(24,67,51,.06)!important;
}
body.page-contact .contact-location{
  padding-top:clamp(1rem,2vw,1.6rem)!important;
}
@media (max-width:880px){
  body.page-contact .contact-intro{align-items:center}
  body.page-contact .contact-hero__meta{
    grid-column:1;
    grid-row:auto;
    justify-self:center;
    margin-top:.45rem!important;
    flex-wrap:wrap;
  }
}
@media (max-width:640px){
  body.page-contact .contact-hero.contact-hero--compact{padding:1.35rem 0 1rem!important}
  body.page-contact .contact-intro h1{font-size:1.78rem!important}
  body.page-contact .contact-intro>p{font-size:.88rem!important}
  body.page-contact .contact-hero__meta{gap:.38rem}
  body.page-contact .contact-hero__meta span{min-width:82px;padding:.54rem .62rem;font-size:.66rem}
  body.page-contact .contact-main{padding-top:1.25rem!important}
}


/* v53 — correction visibilité des icônes de contact direct */
body.page-contact .contact-direct-item__icon,
body.page-contact .contact-address__icon{
  overflow:hidden;
  background:linear-gradient(180deg,#f7fbf9 0%,#eef7f2 100%)!important;
  border:1px solid #d5e5dc!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9), 0 6px 14px rgba(20,84,57,.06);
}
body.page-contact .contact-direct-item__icon{
  width:56px!important;
  height:56px!important;
  border-radius:16px!important;
  padding:6px!important;
}
body.page-contact .contact-address__icon{
  width:52px!important;
  height:52px!important;
  border-radius:15px!important;
  padding:6px!important;
}
body.page-contact .contact-direct-item__icon img,
body.page-contact .contact-address__icon img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  transform:scale(1.08);
  filter:drop-shadow(0 2px 5px rgba(16,93,61,.12));
}
body.page-contact .contact-direct-item--whatsapp .contact-direct-item__icon{
  background:linear-gradient(180deg,#f2fbf5 0%,#e9f8ee 100%)!important;
  border-color:#cfe7d8!important;
}
@media (max-width:1020px){
  body.page-contact .contact-direct-item{grid-template-columns:56px minmax(0,1fr) 24px!important}
}
@media (max-width:700px){
  body.page-contact .contact-direct-item{grid-template-columns:56px minmax(0,1fr) 24px!important}
}


/* v54 — icônes Contact direct visibles dès le premier rendu */
body.page-contact .contact-direct-item__icon,
body.page-contact .contact-direct-item__icon img{
  opacity:1!important;
  visibility:visible!important;
}
body.page-contact .contact-direct-item__icon img{
  transition:none!important;
  animation:none!important;
}

/* Facebook : même rangée et même cadre que les autres canaux directs. */
body.page-contact .contact-direct-item--facebook .contact-direct-item__icon{
  background:linear-gradient(180deg,#f5f9ff 0%,#edf4ff 100%)!important;
  border-color:#d7e4f3!important;
}
body.page-contact .contact-direct-item--facebook .contact-direct-item__icon .bi-facebook{
  display:block;
  color:#1877f2;
  font-size:2rem;
  line-height:1;
}
