/* ============================================================
   Fracassini — Pagina Contatti (sotto .fr-contatti)
   ============================================================ */
.fr-contatti .thead{position:relative;color:#fff;overflow:hidden;padding:150px 0 54px;background:var(--ink);background-size:cover;background-position:center}
.fr-contatti .thead .scrim{position:absolute;inset:0;background:linear-gradient(100deg,rgba(13,17,18,.86) 0%,rgba(13,17,18,.5) 50%,rgba(16,58,54,.42) 100%)}
.fr-contatti .thead .fr-wrap{position:relative;z-index:2}
.fr-contatti .crumb{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.7);margin-bottom:1.4rem;display:flex;gap:.5rem;flex-wrap:wrap}
.fr-contatti .crumb a:hover{color:var(--orange)}
.fr-contatti .thead .kick{color:#9fe0d8}
.fr-contatti .thead h1{font-family:var(--display);font-weight:800;font-size:clamp(2.4rem,5.5vw,4.4rem);line-height:.95;letter-spacing:-.02em;text-transform:uppercase;margin:1rem 0 0}
.fr-contatti .thead h1::after{content:".";color:var(--orange)}
.fr-contatti .thead .lead{margin:1.3rem 0 0;max-width:52ch;color:#ECE8DF;font-size:1.1rem}

.fr-contatti .body{padding:clamp(3.5rem,6vw,5.5rem) 0}
.fr-contatti .grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,4vw,3.5rem);align-items:start}

/* info / recapiti */
.fr-contatti .info{display:flex;flex-direction:column;gap:14px}
.fr-contatti .card{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:16px;align-items:center;background:var(--white);border:1px solid var(--line);border-radius:0;padding:1.1rem 1.3rem;text-decoration:none;color:var(--ink);transition:transform .2s,box-shadow .2s,border-color .2s}
.fr-contatti a.card:hover{transform:translateY(-3px);box-shadow:0 18px 36px -24px rgba(21,25,27,.4);border-color:var(--teal)}
.fr-contatti .card .ic{grid-row:1/3;width:44px;height:44px;border-radius:0;background:var(--paper-2);display:flex;align-items:center;justify-content:center;color:var(--teal-deep)}
.fr-contatti a.card:hover .ic{background:var(--teal);color:#fff}
.fr-contatti .card .ic svg{width:22px;height:22px}
.fr-contatti .card .k{font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--concrete);align-self:end}
.fr-contatti .card .v{font-family:var(--display);font-weight:600;font-size:1.1rem;align-self:start}
.fr-contatti .card.hours{align-items:start}
.fr-contatti .card.hours .ic{grid-row:1/4}
.fr-contatti .card.hours .v.row{display:flex;justify-content:space-between;gap:1rem;font-family:var(--sans);font-weight:400;font-size:.95rem;border-top:1px solid var(--line);padding-top:.4rem;margin-top:.4rem}
.fr-contatti .card.hours .v.row:first-of-type{border-top:0;padding-top:0;margin-top:0}
.fr-contatti .card.hours .v.row em{font-style:normal;color:var(--concrete)}
.fr-contatti .card.hours .v.row b{font-weight:600}

/* form */
.fr-contatti .formcard{background:var(--white);border:1px solid var(--line);border-radius:0;padding:clamp(1.6rem,3vw,2.4rem);box-shadow:0 10px 40px -26px rgba(21,25,27,.4)}
.fr-contatti .formcard .sec{color:var(--ink);margin-bottom:1.2rem}
.fr-contatti .frform label{display:block;font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--concrete);margin-bottom:1rem}
.fr-contatti .frform .row2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.fr-contatti .frform input[type=text],.fr-contatti .frform input[type=email],.fr-contatti .frform input[type=tel],.fr-contatti .frform textarea{width:100%;margin-top:.4rem;font-family:var(--sans);font-size:1rem;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:0;padding:.8rem .9rem;transition:border-color .2s,box-shadow .2s}
.fr-contatti .frform input:focus,.fr-contatti .frform textarea:focus{outline:0;border-color:var(--teal);box-shadow:0 0 0 3px rgba(43,138,128,.14)}
.fr-contatti .frform textarea{resize:vertical}
.fr-contatti .frform .chk{display:flex;gap:.6rem;align-items:flex-start;text-transform:none;letter-spacing:0;font-family:var(--sans);font-size:.85rem;color:#5B544C;line-height:1.5}
.fr-contatti .frform .chk input{margin-top:.2rem;accent-color:var(--teal)}
.fr-contatti .frform .btn{margin-top:.4rem;border:0;cursor:pointer}
.fr-contatti .frform .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.fr-contatti .notice{border-radius:0;padding:1rem 1.2rem;margin-bottom:1.4rem;font-size:.95rem}
.fr-contatti .notice.ok{background:rgba(43,138,128,.12);color:var(--teal-ink);border:1px solid rgba(43,138,128,.3)}
.fr-contatti .notice.err{background:rgba(235,102,1,.1);color:#9a4300;border:1px solid rgba(235,102,1,.3)}

/* mappa */
.fr-contatti .mapwrap{line-height:0;border-top:1px solid var(--line)}
.fr-contatti .mapwrap iframe{display:block;width:100%;filter:grayscale(.2)}

@media(max-width:900px){
  .fr-contatti .grid{grid-template-columns:1fr}
  .fr-contatti .frform .row2{grid-template-columns:1fr}
}
