/* Contact form, direct-contact card, footer, and reveal state. */
.contact-section{
  padding:90px 0 105px
}
.contact-panel{
  display:grid;
  grid-template-columns:1.08fr .92fr;
  gap:34px;
  padding:clamp(28px,5vw,56px);
  border-radius:46px;
  color:var(--ink);
  background:radial-gradient(circle at 86% 12%,rgba(121,242,192,.28),transparent 16rem),radial-gradient(circle at 5% 100%,rgba(241,201,105,.22),transparent 17rem),linear-gradient(135deg,var(--cream2),var(--cream));
  box-shadow:var(--shadow)
}
.contact-main h2{
  margin:0 0 22px;
  font-size:clamp(38px,5vw,64px);
  letter-spacing:-.055em
}
.contact-main>p{
  color:var(--muted-dark);
  font-size:18px
}
.contact-trust{
  display:inline-flex;
  margin-top:8px;
  padding:8px 11px;
  border:1px solid rgba(17,23,36,.12);
  border-radius:999px;
  background:rgba(255,255,255,.45);
  color:#395041;
  font-family:var(--mono);
  font-size:12px;
  font-weight:900
}
.idea-form{
  margin-top:28px;
  padding:22px;
  border:1px solid var(--line-dark);
  border-radius:30px;
  background:rgba(255,255,255,.64);
  box-shadow:var(--soft)
}
.idea-form label{
  display:block;
  margin-bottom:8px;
  font-size:14px;
  font-weight:900
}
.idea-form label span{
  color:var(--muted-dark);
  font-weight:750
}
.idea-form textarea,.idea-form input:not(.hp-field){
  width:100%;
  padding:15px 16px;
  border:1px solid rgba(17,23,36,.16);
  border-radius:18px;
  color:var(--ink);
  background:rgba(255,255,255,.75);
  outline:none;
  transition:border-color .2s,box-shadow .2s
}
.idea-form textarea{
  min-height:170px;
  resize:vertical
}
.idea-form textarea:focus,.idea-form input:focus{
  border-color:rgba(18,116,87,.48);
  box-shadow:0 0 0 5px rgba(121,242,192,.17)
}
.form-row{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:14px;
  margin-top:14px
}
.form-bottom{
  display:flex;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
  margin-top:18px
}
.form-privacy{
  margin:0;
  color:var(--muted-dark);
  font-size:13px
}
.form-status{
  min-height:24px;
  margin-top:14px;
  font-weight:850;
  color:#235c48
}
.form-status.error{
  color:#9b2d2d
}
.hp-field{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none
}
.idea-form.sending{
  opacity:.72;
  pointer-events:none
}
.contact-card{
  display:flex;
  flex-direction:column;
  padding:25px;
  border:1px solid var(--line-dark);
  border-radius:34px;
  background:rgba(255,255,255,.66);
  box-shadow:var(--soft)
}
.contact-card h3{
  margin:0 0 12px;
  font-size:24px;
  letter-spacing:-.04em
}
.direct-buttons{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin:12px 0 10px
}
.direct-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:46px;
  padding:10px 12px;
  border:1px solid rgba(17,23,36,.14);
  border-radius:999px;
  background:rgba(255,255,255,.65);
  color:var(--ink);
  font-weight:900;
  cursor:pointer;
  transition:.2s
}
.direct-btn:hover{
  transform:translateY(-2px);
  background:rgba(255,255,255,.92);
  box-shadow:0 14px 34px rgba(17,23,36,.11)
}
.direct-btn.dark{
  color:var(--text);
  border-color:var(--ink);
  background:var(--ink)
}
.direct-btn svg{
  width:19px;
  height:19px
}
.direct-btn.whatsapp svg{
  color:#1e9d68
}
.contact-microcopy{
  margin:0 0 10px;
  color:var(--muted-dark);
  font-size:12.5px
}
.contact-row{
  display:grid;
  grid-template-columns:104px 1fr;
  gap:12px;
  padding:13px 0;
  border-bottom:1px solid var(--line-dark)
}
.contact-row:last-of-type{
  border-bottom:0
}
.contact-row>span:first-child{
  color:var(--muted-dark);
  font-weight:850
}
.contact-row>span:last-child{
  font-weight:850
}
.contact-row a{
  text-decoration:underline;
  text-decoration-color:rgba(17,23,36,.25);
  text-underline-offset:3px
}
.contact-note{
  margin-top:auto;
  padding:18px;
  border-radius:21px;
  color:var(--text);
  background:linear-gradient(135deg,#101522,#25334d)
}
.contact-note strong{
  display:block
}
.contact-note span{
  display:block;
  margin-top:6px;
  color:rgba(248,245,236,.68)
}
.site-footer{
  padding:28px 0;
  border-top:1px solid rgba(255,255,255,.1);
  color:rgba(248,245,236,.55);
  background:#070a10
}
.footer-grid{
  display:flex;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  font-size:14px
}
.reveal{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .65s,transform .65s
}
.reveal.visible{
  opacity:1;
  transform:none
}

