.hero-contact{
  --hero-height:clamp(360px,56dvh,640px);
  position:relative;display:grid;place-items:center;min-height:var(--hero-height);
  padding:clamp(48px,8vw,96px) var(--px,24px);color:#fff;
  background:var(--hero-img,url('/wp-content/uploads/2025/09/vista-dall-alto-azienda-crainox-2.jpg')) center/cover no-repeat
}
.hero-contact .overlay{
  background:color-mix(in oklab,#000 12%,transparent);
  backdrop-filter:blur(2px);border-radius:16px;padding:clamp(16px,2.4vw,22px)
}
.hero-contact .hero-title{color:var(--cl-ivory);margin-bottom:.75rem}
.hero-contact .overlay p{color:var(--cl-ivory);opacity:.9}

.btn-cta{
  display:inline-block;margin-top:1.25rem;padding:.95rem 1.2rem;text-align:center;font-weight:700;letter-spacing:.01em;color:#fff;text-decoration:none;border-radius:999px;
  border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);
  box-shadow:0 0 0 1px rgba(255,255,255,.04) inset,0 12px 28px rgba(0,0,0,.18);
  transition:background .16s ease,border-color .16s ease,transform .16s ease,box-shadow .16s ease
}
.btn-cta:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.28);transform:translateY(-1px);box-shadow:0 0 0 1px rgba(255,255,255,.06) inset,0 16px 32px rgba(0,0,0,.24)}
.btn-cta:focus-visible{outline:2px solid #fff;outline-offset:2px}

.contact-wrapper{
  position:relative;z-index:2;max-width:var(--container-max);margin:-72px auto 0;
  padding:clamp(32px,4vw,60px);border-radius:30px 30px 0 0;background:var(--cl-ivory);
  box-shadow:0 -15px 34px rgba(0,0,0,.12);display:flex;flex-wrap:wrap;gap:clamp(20px,3vw,32px)
}
.contact-form{
  flex:1 1 640px;background:var(--cl-stone);border-radius:10px;
  padding:clamp(22px,3vw,40px);box-shadow:0 10px 24px rgba(0,0,0,.1)
}
.contact-info{flex:1 1 280px;min-width:min(320px,100%)}
.sticky-info{
  position:sticky;top:clamp(78px,9vh,120px);background:var(--cl-stone);border-radius:10px;
  padding:clamp(18px,2.4vw,28px);box-shadow:0 6px 18px rgba(0,0,0,.06);color:var(--cl-dark)
}
body.admin-bar .sticky-info{top:calc(clamp(78px,9vh,120px) + 32px)}

.contact-info h3{color:var(--cl-dark);margin-bottom:.75rem;font-weight:var(--fw-medium)}
.contact-info ul{list-style:none;margin:0 0 .75rem;padding:0}
.contact-info li{display:flex;align-items:center;gap:.6rem;margin-bottom:.5rem;color:var(--cl-dark)}
.contact-info a{color:var(--cl-dark);text-decoration:none;border-bottom:1px solid color-mix(in oklab,var(--cl-dark) 20%,transparent)}
.contact-info a:hover{border-color:var(--cl-dark)}

.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}
.form-field--full,.form-field--consent,.form-field--legal,.form-actions{grid-column:1/-1}

.contact-form :where(input[type="text"],input[type="email"],input[type="tel"],textarea,select){
  width:100%;font:inherit;color:var(--cl-dark);background:#fff;border:1px solid #d9d9d2;border-radius:8px;padding:.8rem 1rem;line-height:1.25;
  transition:border-color .16s ease,box-shadow .16s ease
}
.contact-form ::placeholder{color:color-mix(in oklab,var(--cl-dark,#0b1216) 55%,transparent)}
.contact-form textarea{min-height:140px;resize:vertical}
.contact-form select{
  padding-right:2.2rem;-webkit-appearance:none;appearance:none;
  background-image:linear-gradient(transparent,transparent)
}
.contact-form :where(input,select,textarea):focus,
.contact-form :where(input,select,textarea):focus-visible{
  outline:2px solid color-mix(in oklab,var(--cl-petrol,#004d4e) 62%,#fff 0%);outline-offset:2px;
  border-color:color-mix(in oklab,var(--cl-petrol,#004d4e) 62%,#fff 0%);
  box-shadow:0 0 0 3px color-mix(in oklab,var(--cl-petrol,#004d4e) 18%,transparent)
}

.form-field--consent{display:flex;align-items:flex-start;gap:.75rem;padding:.25rem 0;color:var(--cl-dark,#0b1216)}
.form-field--consent .wpcf7-acceptance{display:block}
.form-field--consent .wpcf7-acceptance .wpcf7-list-item label{display:flex;gap:.75rem;align-items:flex-start;cursor:pointer}
.form-field--consent input[type="checkbox"]{inline-size:22px;block-size:22px;flex:0 0 auto;margin-top:.2rem;accent-color:var(--cl-petrol,#004d4e)}
.form-field--consent input[type="checkbox"]:focus-visible{outline:2px solid var(--cl-petrol,#004d4e);outline-offset:3px;border-radius:6px}
.form-field--consent .wpcf7-acceptance.wpcf7-not-valid label{color:var(--cl-error,#b64545)}
.form-field--consent .wpcf7-acceptance.wpcf7-not-valid input[type="checkbox"]{outline:2px solid var(--cl-error,#b64545);outline-offset:3px;border-radius:6px}
.form-field--consent a{color:var(--cl-petrol,#004d4e);text-decoration:underline;text-underline-offset:3px}

.contact-form .wpcf7-submit,.contact-form button[type="submit"]{
  display:inline-block;min-height:40px;padding:.7rem 1.15rem;border-radius:999px;font-weight:700;letter-spacing:.01em;color:#fff;background:var(--cl-petrol,#004d4e);
  border:1px solid rgba(0,0,0,.08);box-shadow:0 .5px 0 rgba(255,255,255,.12) inset,0 12px 24px rgba(0,0,0,.16);
  transition:transform .16s ease,box-shadow .16s ease,background .16s ease
}
.contact-form .wpcf7-submit:hover,.contact-form button[type="submit"]:hover{transform:translateY(-1px);box-shadow:0 .5px 0 rgba(255,255,255,.16) inset,0 16px 30px rgba(0,0,0,.22)}
.contact-form .wpcf7-submit:focus-visible,.contact-form button[type="submit"]:focus-visible{
  outline:2px solid #fff;outline-offset:2px;box-shadow:0 0 0 3px color-mix(in oklab,var(--cl-ottanio) 30%,transparent)
}

.wpcf7 form .wpcf7-response-output{
  margin-top:12px;border:1px solid #d9d9d2;border-radius:8px;padding:.75rem 1rem;background:#fff;color:var(--cl-dark)
}

.map-container{
  max-width:var(--container-max);margin:48px auto 100px;border-radius:12px;overflow:hidden;background:#fff;min-height:380px;padding:0;
  box-shadow:0 10px 24px rgba(0,0,0,.1);content-visibility:auto;contain-intrinsic-size:800px 400px
}
.map-container iframe{width:100%;height:400px;border:0;display:block}

.fade-up{animation:fadeUp .5s cubic-bezier(.33,1,.55,1) both}
.slide-left{animation:slideLeft .5s cubic-bezier(.33,1,.55,1) both .06s}
.slide-right{animation:slideRight .5s cubic-bezier(.33,1,.55,1) both .06s}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes slideLeft{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:none}}
@keyframes slideRight{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.fade-up,.slide-left,.slide-right{animation:none}}

:where(.contact-wrapper) a:focus-visible{outline:2px solid var(--cl-petrol);outline-offset:2px}
:where(.contact-wrapper) *::selection{background:color-mix(in oklab,var(--cl-ottanio) 40%,#fff 0%);color:#fff}

.form-field--legal{margin-top:6px}
.form-field--legal .legal-note{display:block;width:100%;font-size:.82rem;line-height:1.35;color:color-mix(in oklab,var(--cl-dark,#0b1216) 65%,transparent)}
.form-field--legal .legal-note a{color:inherit;text-decoration:underline;text-underline-offset:2px;border-bottom:none}

@media (max-width:1366px){.hero-contact .overlay{padding-inline:var(--gutter-md)}}
@media (max-width:1024px){
  .hero-contact .overlay{padding-inline:var(--gutter-sm)}
  .contact-wrapper{padding:48px var(--gutter-sm)}
}

@media (max-width:782px){body.admin-bar .sticky-info{top:calc(clamp(78px,9vh,120px) + 46px)}}

@media (max-width:768px){
  .hero-contact{min-height:56vh}
  .hero-contact .overlay{padding-inline:var(--gutter-xs)}
  .contact-wrapper{margin-top:-52px;padding:32px var(--gutter-xs);flex-direction:column}
  .sticky-info{position:static;top:auto;margin-bottom:20px}
  .form-grid{grid-template-columns:1fr}
  .map-container{margin:40px var(--gutter-xs) 90px}
  .hero-contact .overlay{background:color-mix(in oklab,#000 14%,transparent)}
}
@media (max-width:600px){
  .map-container iframe{height:340px}
  .form-field--consent{gap:.9rem}
  .form-field--consent input[type="checkbox"]{inline-size:24px;block-size:24px}
  .form-field--legal .legal-note{font-size:.84rem}
}
@media (max-width:480px){form.wpcf7-form.init.contact-form{padding: 0;box-shadow: none;}}