/* =========================================================
   CARRÉMENT SAINT-CHAMOND — CONTACT
   ========================================================= */

.csc-contact-page{overflow:hidden}
.csc-contact-page svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* HERO */
.csc-contact-hero{
  position:relative;
  padding:72px 0 32px;
  background:linear-gradient(180deg,#f8fcff 0%,#fff 94%);
  overflow:hidden;
}
.csc-contact-hero::before{
  content:"";
  position:absolute;
  left:-100px;
  top:100px;
  width:260px;
  height:260px;
  border:2px solid rgba(74,147,200,.07);
  border-radius:62px;
  transform:rotate(14deg);
}
.csc-contact-hero__grid{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(430px,.95fr);
  align-items:center;
  gap:48px;
  min-height:455px;
}
.csc-contact-hero__copy{position:relative;z-index:2;max-width:760px}
.csc-contact-hero h1{
  margin:12px 0 24px;
  font-size:clamp(48px,5.2vw,78px);
  line-height:.98;
  letter-spacing:-.055em;
  color:var(--csc-text);
}
.csc-contact-hero h1 strong{color:var(--csc-primary);font-weight:900}
.csc-contact-hero__copy>p{
  max-width:690px;
  margin:0;
  color:var(--csc-text-light);
  font-size:17px;
  line-height:1.8;
}
.csc-contact-hero__links{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:30px;
}
.csc-contact-hero__links>a{
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  align-items:center;
  gap:10px;
  min-height:58px;
  padding:9px 14px 9px 10px;
  border:1px solid var(--csc-border);
  border-radius:16px;
  background:#fff;
  color:var(--csc-text);
  text-decoration:none;
  box-shadow:0 7px 24px rgba(31,70,94,.05);
}
.csc-contact-hero__links>a>span:first-child{
  width:38px;height:38px;border-radius:12px;
  display:grid;place-items:center;
  background:var(--csc-primary-soft);
  color:var(--csc-primary);
}
.csc-contact-hero__links svg{width:18px;height:18px}
.csc-contact-hero__links>a>span:last-child{display:grid;gap:1px}
.csc-contact-hero__links small{
  color:var(--csc-text-light);
  font-size:9px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.07em;
}
.csc-contact-hero__links strong{font-size:12px}

.csc-contact-hero__scene{color:var(--csc-primary);transition:transform .16s ease-out}
.csc-contact-hero__scene svg{display:block;width:100%;height:auto;overflow:visible}
.csc-contact-cloud{fill:#fff;stroke:none;filter:drop-shadow(0 10px 18px rgba(74,147,200,.12))}
.csc-contact-cloud--one{animation:cscContactCloud 11s ease-in-out infinite alternate}
.csc-contact-cloud--two{animation:cscContactCloud 14s ease-in-out infinite alternate-reverse}
.csc-contact-shop path:first-child{fill:#f3f9fc}
.csc-contact-bubble path:first-child{fill:#fff}
.csc-contact-heart{fill:#e9b98d;stroke:none;transform-box:fill-box;transform-origin:center;animation:cscContactHeart 2.5s ease-in-out infinite}
.csc-contact-ground{stroke:#c7dfea;stroke-width:3}
.csc-contact-person{animation:cscContactFloat 4.2s ease-in-out infinite alternate}
.csc-contact-person--right{animation-delay:.6s}

@keyframes cscContactCloud{from{transform:translateX(-5px)}to{transform:translateX(14px)}}
@keyframes cscContactFloat{from{transform:translateY(0)}to{transform:translateY(-6px)}}
@keyframes cscContactHeart{0%,100%{transform:scale(1)}12%{transform:scale(1.1)}25%{transform:scale(1)}38%{transform:scale(1.05)}}

/* MAIN */
.csc-contact-main{padding:54px 0 100px;background:#fff}
.csc-contact-main__grid{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);
  gap:72px;
  align-items:start;
}
.csc-contact-section-head{margin-bottom:28px}
.csc-contact-section-head h2,
.csc-contact-aside__intro h2{
  margin:7px 0 10px;
  font-size:clamp(32px,3.4vw,46px);
  line-height:1.05;
  letter-spacing:-.045em;
  color:var(--csc-text);
}
.csc-contact-section-head p,
.csc-contact-aside__intro p{
  max-width:690px;
  margin:0;
  color:var(--csc-text-light);
  font-size:14px;
  line-height:1.75;
}

/* FORM */
.csc-contact-form{
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.csc-contact-form__grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.csc-contact-field{
  display:grid;
  gap:7px;
  margin:0;
}
.csc-contact-field--full{grid-column:1/-1}
.csc-contact-field>span{
  color:var(--csc-text);
  font-size:13px;
  font-weight:900;
}
.csc-contact-field>span i{
  color:#c85f55;
  font-style:normal;
}
.csc-contact-form input,
.csc-contact-form select,
.csc-contact-form textarea{
  width:100%;
  min-height:54px;
  padding:11px 14px;
  border:1px solid var(--csc-border)!important;
  border-radius:15px!important;
  background:#f9fbfc!important;
  color:var(--csc-text)!important;
  outline:0;
  box-shadow:none!important;
  font:inherit;
  font-size:14px;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.csc-contact-form textarea{min-height:180px;resize:vertical}
.csc-contact-form input:focus,
.csc-contact-form select:focus,
.csc-contact-form textarea:focus{
  background:#fff!important;
  border-color:#9fcde6!important;
  box-shadow:0 0 0 4px rgba(74,147,200,.09)!important;
}
.csc-contact-form input::placeholder,
.csc-contact-form textarea::placeholder{color:#96a3ab}
.csc-contact-counter{
  justify-self:end;
  margin-top:-2px;
  color:var(--csc-text-light);
  font-size:10px;
  font-weight:800;
}
.csc-contact-consent{
  display:grid;
  grid-template-columns:18px minmax(0,1fr);
  gap:10px;
  align-items:start;
  margin-top:20px;
  color:var(--csc-text-light);
  font-size:12px;
  line-height:1.6;
}
.csc-contact-consent input{
  width:17px!important;
  min-height:17px!important;
  height:17px;
  margin-top:2px;
  padding:0!important;
  accent-color:var(--csc-primary);
}
.csc-contact-consent a{color:var(--csc-primary);font-weight:800}

.csc-contact-submit{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  margin-top:24px;
  padding-top:22px;
  border-top:1px solid var(--csc-border);
}
.csc-contact-submit p{
  max-width:430px;
  margin:0;
  color:var(--csc-text-light);
  font-size:10px;
  line-height:1.5;
}
.csc-contact-submit__button{
  min-height:54px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:0 20px;
  border:0;
  border-radius:15px;
  background:var(--csc-primary);
  color:#fff;
  font-size:13px;
  font-weight:900;
  cursor:pointer;
  transition:transform .2s ease,background .2s ease,box-shadow .2s ease;
}
.csc-contact-submit__button svg{width:18px;height:18px}
.csc-contact-submit__button:hover{
  background:var(--csc-primary-hover);
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(40,107,154,.18);
}

/* Aside */
.csc-contact-aside{
  position:sticky;
  top:110px;
  padding-top:4px;
}
.csc-contact-direct{
  display:grid;
  gap:0;
  margin-top:28px;
  border-top:1px solid var(--csc-border);
}
.csc-contact-direct>a,
.csc-contact-direct__static{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 28px;
  align-items:center;
  gap:12px;
  min-height:78px;
  padding:12px 0;
  border-bottom:1px solid var(--csc-border);
  color:var(--csc-text);
  text-decoration:none;
}
.csc-contact-direct__static{grid-template-columns:42px minmax(0,1fr)}
.csc-contact-direct__icon{
  width:42px;height:42px;
  display:grid;place-items:center;
  border-radius:13px;
  background:var(--csc-primary-soft);
  color:var(--csc-primary);
}
.csc-contact-direct__icon svg{width:19px;height:19px}
.csc-contact-direct>a>span:nth-child(2),
.csc-contact-direct__static>span:nth-child(2){display:grid;gap:3px;min-width:0}
.csc-contact-direct small{
  color:var(--csc-text-light);
  font-size:9px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.csc-contact-direct strong{
  font-size:13px;
  line-height:1.4;
  overflow-wrap:anywhere;
}
.csc-contact-direct__arrow{color:var(--csc-primary)}
.csc-contact-direct__arrow svg{width:17px;height:17px}
.csc-contact-direct>a:hover .csc-contact-direct__arrow{transform:translateX(2px)}

.csc-contact-note{
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  gap:14px;
  margin-top:28px;
  padding:18px;
  border-radius:18px;
  background:linear-gradient(135deg,#f3f9fc,#fff);
}
.csc-contact-note>span{
  width:48px;height:48px;
  display:grid;place-items:center;
  border-radius:15px;
  background:#fff;
  color:#e9a76f;
  box-shadow:0 8px 20px rgba(31,70,94,.07);
}
.csc-contact-note>span svg{width:22px;height:22px;fill:#f5d6b9;stroke:#d69c68}
.csc-contact-note strong{font-size:13px}
.csc-contact-note p{
  margin:4px 0 0;
  color:var(--csc-text-light);
  font-size:11px;
  line-height:1.6;
}

/* SIGNATURE */
.csc-contact-signature{
  padding:42px 0 90px;
  background:linear-gradient(180deg,#fff,#f3f9fd);
}
.csc-contact-signature__inner{
  display:grid;
  grid-template-columns:minmax(0,1fr) 100px;
  align-items:center;
  gap:40px;
  padding-top:34px;
  border-top:1px solid rgba(74,147,200,.13);
}
.csc-contact-signature h2{
  max-width:850px;
  margin:7px 0 0;
  font-size:clamp(30px,3.5vw,48px);
  line-height:1.04;
  letter-spacing:-.045em;
}
.csc-contact-signature__heart{
  width:82px;height:82px;
  display:grid;place-items:center;
  justify-self:end;
  border-radius:28px;
  background:#fff;
  color:#e9a76f;
  box-shadow:0 16px 34px rgba(31,70,94,.07);
  animation:cscContactHeart 2.6s ease-in-out infinite;
}
.csc-contact-signature__heart svg{width:36px;height:36px;fill:#f7dec6;stroke:#d79f6c}

/* Sycow security blocks harmonisation */
.csc-contact-form .sycow-human-check{
  margin-top:18px;
  padding:14px 16px;
  border:1px solid var(--csc-border);
  border-radius:14px;
  background:#f7fafc;
}
.csc-contact-form .sycow-form-honeypot{
  position:absolute!important;
  left:-9999px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
}

/* Reveal */
[data-csc-contact-reveal]{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .58s ease,transform .58s ease;
}
[data-csc-contact-reveal].is-visible{opacity:1;transform:none}

@media(max-width:1050px){
  .csc-contact-hero__grid{grid-template-columns:1fr;min-height:auto}
  .csc-contact-hero__scene{max-width:720px;margin:0 auto}
  .csc-contact-main__grid{grid-template-columns:minmax(0,1fr) 310px;gap:44px}
}

@media(max-width:800px){
  .csc-contact-hero{padding:44px 0 20px}
  .csc-contact-hero h1{font-size:clamp(42px,12vw,60px)}
  .csc-contact-hero__copy>p{font-size:15px}
  .csc-contact-hero__scene{margin-top:8px}

  .csc-contact-main{padding:42px 0 78px}
  .csc-contact-main__grid{grid-template-columns:1fr;gap:56px}
  .csc-contact-aside{position:static}
  .csc-contact-form__grid{grid-template-columns:1fr}
  .csc-contact-field--full{grid-column:auto}
  .csc-contact-submit{align-items:stretch;flex-direction:column}
  .csc-contact-submit__button{width:100%}
  .csc-contact-signature__inner{grid-template-columns:1fr}
  .csc-contact-signature__heart{justify-self:start}
}

@media(max-width:520px){
  .csc-contact-hero__links{display:grid;grid-template-columns:1fr}
  .csc-contact-hero__links>a{width:100%}
  .csc-contact-hero__scene{margin-inline:-24px}
  .csc-contact-section-head h2,
  .csc-contact-aside__intro h2{font-size:34px}
}

@media(prefers-reduced-motion:reduce){
  .csc-contact-cloud,
  .csc-contact-person,
  .csc-contact-heart,
  .csc-contact-signature__heart{animation:none!important}
  [data-csc-contact-reveal]{opacity:1;transform:none;transition:none}
}
