/* ===== PAGE HERO ===== */
.page-hero{
  position:relative;min-height:650px;display:flex;align-items:center;
  background:#1a1a1a;
  background-image:linear-gradient(180deg,rgba(0,0,0,.45) 0%,rgba(0,0,0,.10) 45%,rgba(0,0,0,.55) 100%),url('../img/contatti-header.jpg');
  background-size:cover;background-position:center 30%;
}
.page-hero .wrap{display:flex;justify-content:center;width:100%;}
.page-hero h1{font-size:46px;font-weight:800;color:#fff;letter-spacing:-.01em;}

/* ===== INTRO ===== */
.intro-sec{padding:96px 0 40px;}
.intro-sec h2{font-size:40px;font-weight:800;color:#fff;margin-bottom:34px;letter-spacing:-.01em;}
.intro-sec p{color:var(--body);max-width:1080px;margin-bottom:18px;}

/* ===== LOCATIONS ===== */
.locs{padding:54px 0 110px;}
.loc{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;margin-bottom:78px;}
.loc:last-child{margin-bottom:0;}
.loc.img-left .loc-text{order:2;}
.loc.img-left .loc-media{order:1;}
.loc-media img{width:100%;height:auto;object-fit:cover;border-radius:3px;}
.loc-text h3{display:flex;align-items:center;gap:16px;font-family:var(--head);font-weight:800;font-size:23px;letter-spacing:.01em;color:#fff;margin-bottom:18px;}
.loc-text h3 .sq{margin:0;flex:none;width:13px;height:13px;}
.loc-text .sub{color:var(--body-dim);margin-bottom:18px;line-height:1.5;}
.loc-text .ln{color:var(--body);margin-bottom:10px;line-height:1.55;}
.loc-text .ln a{color:var(--red);text-decoration:underline;text-underline-offset:3px;}
.loc-text .ln a:hover{color:#ff4a51;}
.loc-text .addr{display:inline-block;margin-bottom:14px;line-height:1.5;color:#fff;text-decoration:none;}

/* ===== FORM ===== */
.form-sec{padding:30px 0 110px;}
.form-sec h2{font-size:42px;font-weight:800;color:#fff;margin-bottom:18px;}
.form-sec .lead{color:var(--body);margin-bottom:54px;}
.contact-form{max-width:840px;margin:0 auto;}
.fieldset-label{font-size:14px;color:var(--body-dim);margin-bottom:18px;letter-spacing:.01em;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 26px;margin-bottom:22px;}
.field{display:flex;flex-direction:column;gap:8px;}
.field.full{grid-column:1 / -1;}
.field > span{font-size:13.5px;color:var(--body-dim);}
.contact-form input[type=text],
.contact-form input[type=email],
.contact-form input[type=tel],
.contact-form select,
.contact-form textarea{
  width:100%;background:#fff;border:1px solid #d9d9d9;border-radius:3px;
  padding:13px 14px;font-family:var(--text);font-size:15px;color:#1b1b1b;
}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:#9a9a9a;}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{
  outline:none;border-color:var(--red);box-shadow:0 0 0 2px rgba(237,28,36,.18);
}
.contact-form select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23555' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px;}
.contact-form textarea{min-height:150px;resize:vertical;}
.form-row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:22px 26px;align-items:end;margin-bottom:22px;}
.file-field{display:flex;flex-direction:column;gap:8px;}
.file-field > span{font-size:13.5px;color:var(--body-dim);}  /* match the sibling field labels */
.file-field .filebox{display:flex;align-items:center;gap:14px;font-size:14px;color:var(--body-dim);}
.file-field .filebtn{background:#fff;border:1px solid #d9d9d9;border-radius:3px;padding:11px 16px;font-family:var(--text);font-size:14px;color:#1b1b1b;cursor:pointer;}
.contact-form input[type=file]{color:var(--body-dim);font-size:14px;}
.consent{display:flex;align-items:center;gap:12px;margin:30px 0 28px;font-size:14px;color:var(--body);}
.consent input{width:17px;height:17px;accent-color:var(--red);}
.consent a{color:var(--red);text-decoration:underline;text-underline-offset:2px;}
.submit-btn, .contact-form input[type=submit]{background:var(--red);color:#fff;border:none;border-radius:36px;padding:14px 48px;font-family:var(--text);font-size:17px;cursor:pointer;transition:background .25s ease,transform .25s ease;}
.submit-btn:hover, .contact-form input[type=submit]:hover{background:#ff2730;transform:translateY(-2px);}

/* ===== MAP ===== */
.map-sec{padding:20px 0 120px;}
.map-sec h2{font-size:38px;font-weight:800;color:#fff;margin-bottom:38px;}
.map-tabs{display:flex;gap:54px;flex-wrap:wrap;border-bottom:1px solid rgba(255,255,255,.16);padding-bottom:0;margin-bottom:34px;}
.map-tab{background:none;border:none;cursor:pointer;font-family:var(--text);font-size:15px;letter-spacing:.05em;color:var(--body-dim);padding:0 2px 18px;position:relative;text-transform:uppercase;transition:color .25s ease;}
.map-tab:hover{color:#fff;}
.map-tab.active{color:#fff;}
.map-tab.active::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--red);}
.map-frame{border-radius:4px;overflow:hidden;}
.map-frame img{width:100%;height:auto;display:block;}

@media (max-width:860px){
  .page-hero{min-height:420px;}
  .page-hero h1{font-size:34px;}
  /* 34px e non 30: e' la misura dei titoli di sezione di tutte le altre pagine */
  .intro-sec h2,.form-sec h2{font-size:34px;}
  .loc{grid-template-columns:1fr;gap:30px;margin-bottom:54px;}
  .loc.img-left .loc-text,.loc.img-left .loc-media{order:initial;}
  .form-grid,.form-row3{grid-template-columns:1fr;}
  .map-tabs{gap:24px;}
}
