/* ─────────── Form ─────────── */
  .contact .contact__side ul{display:none}
  .form{display:grid;grid-template-columns:1fr 1fr;gap:24px}
  .field{display:flex;flex-direction:column;gap:8px}
  .field.full{grid-column:1/-1}
  .field label{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--navy);font-weight:500}
  .field input,.field select,.field textarea{
    font:inherit;font-size:15px;
    padding:14px 0;border:0;border-bottom:1px solid var(--line);
    background:transparent;color:var(--navy);
    transition:border-color .2s;
  }
  .field textarea{min-height:120px;resize:vertical}
  .field__counter{
    align-self:flex-end;
    font-size:11px;
    line-height:1;
    color:var(--muted);
    font-variant-numeric:tabular-nums;
  }
  .field input:focus,.field select:focus,.field textarea:focus{outline:none;border-bottom-color:var(--gold)}
  .field select{appearance:none;background:transparent url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' stroke='%23B89968' fill='none' stroke-width='1.4'/></svg>") right 4px center no-repeat}
  .form .submit{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:12px;flex-wrap:wrap}
  .form .privacy{font-size:12px;color:var(--muted);max-width:42ch;line-height:1.5}
  .form .privacy a{color:var(--navy);border-bottom:1px solid var(--line)}

/* ─────────── Form refinement: checkbox + select ─────────── */

.form .privacy-check{
  max-width:52ch;
  display:flex;
  align-items:flex-start;
  gap:12px;
  cursor:pointer;
}

.form .privacy-check input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.form .privacy-check__box{
  width:18px;
  height:18px;
  flex:0 0 18px;
  margin-top:1px;
  border:1px solid var(--line);
  border-radius:4px;
  background:transparent;
  position:relative;
  transition:border-color .2s, background-color .2s, box-shadow .2s;
}

.form .privacy-check__box::after{
  content:"";
  position:absolute;
  left:5px;
  top:2px;
  width:5px;
  height:9px;
  border:solid var(--navy);
  border-width:0 1.5px 1.5px 0;
  transform:rotate(45deg) scale(0);
  transform-origin:center;
  transition:transform .18s ease;
}

.form .privacy-check input:checked + .privacy-check__box{
  border-color:var(--gold);
  background-color:rgba(184,153,104,.14);
}

.form .privacy-check input:checked + .privacy-check__box::after{
  transform:rotate(45deg) scale(1);
}

.form .privacy-check input:focus-visible + .privacy-check__box{
  box-shadow:0 0 0 3px rgba(184,153,104,.18);
  border-color:var(--gold);
}

.form .privacy-check__text{
  display:block;
  font-size:12px;
  color:var(--muted);
  line-height:1.5;
}

/* ─────────── Custom select ─────────── */

.field--select{
  position:relative;
}

.field--select.is-hidden{
  display:none;
}

.field--select .native-select{
  position:absolute;
  inset:0;
  opacity:0;
  pointer-events:none;
}

.custom-select{
  position:relative;
  width:100%;
}

.custom-select__trigger{
  width:100%;
  min-height:51px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:14px 0;
  border:0;
  border-bottom:1px solid var(--line);
  background:transparent;
  color:var(--navy);
  font:inherit;
  font-size:15px;
  text-align:left;
  cursor:pointer;
  transition:border-color .2s;
}

.custom-select__trigger:hover,
.custom-select.is-open .custom-select__trigger{
  border-bottom-color:var(--gold);
}

.custom-select__trigger:focus-visible{
  outline:none;
  border-bottom-color:var(--gold);
}

.custom-select__icon{
  width:12px;
  height:8px;
  flex:0 0 12px;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' stroke='%23B89968' fill='none' stroke-width='1.4'/></svg>") center/12px 8px no-repeat;
  transition:transform .2s;
}

.custom-select.is-open .custom-select__icon{
  transform:rotate(180deg);
}

.custom-select__menu{
  position:absolute;
  top:calc(100% + 10px);
  left:0;
  right:0;
  z-index:20;
  display:none;
  padding:8px;
  border:1px solid rgba(184,153,104,.35);
  background:#f4f0e8;
  box-shadow:0 18px 50px rgba(15,31,54,.14);
}

.custom-select.is-open .custom-select__menu{
  display:block;
}

.custom-select__option{
  width:100%;
  display:block;
  padding:11px 12px;
  border:0;
  background:transparent;
  color:var(--navy);
  font:inherit;
  font-size:15px;
  text-align:left;
  cursor:pointer;
  transition:background-color .18s, color .18s;
}

.custom-select__option:hover,
.custom-select__option:focus-visible{
  outline:none;
  background:rgba(184,153,104,.14);
}

.custom-select__option.is-selected{
  background:rgba(184,153,104,.2);
  color:var(--navy);
}

/* ─────────── Form required fields ─────────── */

.field label.is-required::after{
  content:"*";
  display:inline-block;
  margin-left:6px;
  color:var(--gold);
  font-size:12px;
  line-height:1;
  transform:translateY(-1px);
}

.field__optional{
  margin-left:8px;
  color:var(--muted);
  font-size:10px;
  letter-spacing:.14em;
  font-weight:400;
  text-transform:uppercase;
  opacity:.75;
}

.custom-select__option.is-placeholder,
.custom-select__trigger:has([data-custom-select-value]:empty){
  color:var(--muted);
}

.custom-select__option.is-placeholder{
  opacity:.78;
}

.custom-select.has-placeholder .custom-select__trigger{
  color:var(--muted);
}

.field.has-error label{
  color:#9f3a2f;
}

.field.has-error input,
.field.has-error textarea,
.field.has-error .custom-select__trigger{
  border-bottom-color:#9f3a2f;
}

.field.has-error::after{
  content:"";
  width:6px;
  height:6px;
  margin-top:2px;
  border-radius:999px;
  background:#9f3a2f;
}
.privacy-check.has-error .privacy-check__box{
  border-color:#9f3a2f;
  box-shadow:0 0 0 3px rgba(159,58,47,.12);
}

.privacy-check.has-error .privacy-check__text{
  color:#9f3a2f;
}
  @media (max-width:980px){.contact .wrap{grid-template-columns:1fr;gap:48px}}
  @media (max-width:600px){.form{grid-template-columns:1fr}}

  /* Contatti — cards affiancate + form sotto */
  .contact-cards{
    display:grid;grid-template-columns:1fr 1fr;gap:0;
    margin-top:48px;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }
  .contact-card{
    padding:clamp(32px,3.5vw,56px) clamp(24px,3vw,48px)!important;
    display:flex;flex-direction:column;gap:18px;
  }
  .contact-card + .contact-card{border-left:1px solid var(--line)}
  .contact-card h3{font-size:clamp(26px,2.4vw,34px);margin-top:2px}
  .contact-card__rule{display:block;width:48px;height:1px;background:var(--gold);margin:4px 0 8px}
  .contact-card__rows{display:flex;flex-direction:column;gap:6px}
  .contact-card__rows a{
    display:grid;grid-template-columns:110px 1fr;gap:18px;align-items:baseline;
    font-family:var(--serif);font-size:18px;color:var(--navy);
    padding:8px 0;border-bottom:1px solid var(--line);
    transition:color .2s, border-color .2s;
  }
  .contact-card__rows a:last-child{border-bottom:0}
  .contact-card__rows a:hover{color:var(--gold);border-bottom-color:var(--gold)}
  .contact-card__rows small{
    font-family:var(--sans);font-size:11px;letter-spacing:.22em;
    text-transform:uppercase;color:var(--muted);font-weight:500;
  }
  @media (max-width:780px){
    .contact-cards{grid-template-columns:1fr}
    .contact-card + .contact-card{border-left:0;border-top:1px solid var(--line)}
  }

  .contact-form{margin-top:clamp(56px,7vw,96px);display:flex;flex-direction:column;gap:32px;padding:0 clamp(24px,3vw,48px)}
  .contact-form__head{padding-bottom:8px}