.contact-shell{
  position:relative;
  padding:4rem 0 4.5rem;
  overflow:hidden;
}
.contact-shell-bg{
  position:absolute; inset:0;
  background:var(--paper-2);
  z-index:-2;
}
.contact-shell-bg::before{
  content:"";
  position:absolute; inset:0;
  background-image:
    radial-gradient(circle at 10% 10%, rgba(214,160,63,.10), transparent 38%),
    radial-gradient(circle at 92% 90%, rgba(43,25,104,.08), transparent 42%);
  z-index:-1;
}

.contact-title{
  font-family:'Fraunces', serif;
  font-weight:600;
  font-size:clamp(1.8rem, 3vw, 2.3rem);
  margin-top:.4rem;
  color:var(--ink);
}
.contact-subtitle{
  color:#6A6480;
  font-size:.98rem;
  max-width:32rem;
  margin-top:.6rem;
}

.contact-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  padding:1.6rem 1.4rem;
  height:100%;
  text-align:center;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.contact-card:hover{
  transform:translateY(-3px);
  box-shadow:0 20px 45px -22px rgba(23,13,59,.22);
  border-color:var(--gold-500);
}
.contact-icon{
  width:3rem; height:3rem;
  margin:0 auto .9rem;
  border-radius:50%;
  background:rgba(214,160,63,.14);
  color:var(--gold-600);
  display:flex; align-items:center; justify-content:center;
  font-size:1.25rem;
}
.contact-label{ color:var(--emerald-700); margin-bottom:.5rem; }
.contact-value{
  font-size:.92rem;
  line-height:1.55;
  color:#3A3550;
  margin:0;
}
.contact-value a{ color:var(--indigo-800); font-weight:600; }
.contact-value a:hover{ color:var(--gold-600); }

.contact-map-wrap{
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow:0 24px 55px -30px rgba(23,13,59,.22);
}
.contact-map{
  width:100%;
  height:340px;
  border:0;
  display:block;
}

@media (max-width: 575px){
  .contact-map{ height:260px; }
}
