html, body { height: 100%; overflow: hidden; }
body {
  margin: 0;
  min-height: 100vh;
  height: 100vh;
  height: 100dvh;
  padding: clamp(12px, 2vw, 24px);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 12px;
  background: #f8f4ed;
  color: #3e4740;
  font-family: 'Montserrat', sans-serif;
  font-weight: 400;
}
* { box-sizing: border-box; }
.back-button {
  display: inline-block;
  padding: 10px 24px;
  background: #e9d2ce;
  border-color: #cfb1ac;
  color: #3e4740;
  box-shadow: none;
}
.contact-card {
  width: 100%;
  max-width: 620px;
  margin: 0 auto;
  padding: clamp(20px, 3vw, 32px);
  align-self: center;
  justify-self: center;
  transform: scale(var(--contact-scale, 1));
  transform-origin: center;
  border: 1px solid #e1dcd2;
  border-radius: 20px;
  background: #fffdf9;
  box-shadow: 0 16px 50px #454f3f08;
}
.brand { margin: 0 0 24px; color: #687d69; letter-spacing: 3px; text-align: center; }
.contact-address { margin: 0 0 24px; font-style: normal; text-align: center; line-height: 1.8; }
.contact-address a { color: inherit; overflow-wrap: anywhere; }
h1 { width: auto; margin: 0 0 18px; font-size: clamp(26px, 4vw, 34px); line-height: 1.35; letter-spacing: -0.5px; }
.intro { margin: 0 0 32px; text-align: center; line-height: 1.8; color: #3e4740; }
label { display: block; margin-bottom: 10px; font-size: 15px; }
input[type="email"] {
  width: 100%;
  padding: 16px;
  border: 1px solid #c3cbbd;
  border-radius: 9px;
  background: #fffdf9;
  color: #3e4740;
  font-size: 16px;
}
input:focus-visible, .send-button:focus-visible, .back-button:focus-visible { outline: 2px solid #687d69; outline-offset: 4px; }
.send-button {
  width: 100%;
  margin-top: 20px;
  padding: 17px 20px;
  border: 1px solid #cfb1ac;
  border-radius: 9px;
  background: #e9d2ce;
  color: #3e4740;
  font-size: 15px;
  line-height: 1.5;
  cursor: pointer;
}
.send-button:hover:not(:disabled) { background: #dfbfba; }
.send-button:disabled { opacity: 0.65; cursor: wait; }
.privacy { margin: 18px 0 0; font-size: 12px; line-height: 1.8; color: #687d69; }
.status { margin: 18px 0 0; line-height: 1.8; color: #687d69; }
.status.error { color: #934b45; }
.honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
#spam-check { margin-top: 16px; }
