/*
 * Luxe Maison Forms
 * Uses CSS custom properties so it can inherit / be rethemed easily.
 */

.lmf-wrap{
  --lmf-bg:#f7f3ec;
  --lmf-surface:#fffdfa;
  --lmf-text:#282b25;
  --lmf-muted:#6f7369;
  --lmf-accent:#58604a;
  --lmf-accent-hover:#444b39;
  --lmf-line:#d9d5cb;
  --lmf-danger:#8b302b;
  --lmf-success:#365c3c;
  --lmf-radius:2px;
  --lmf-font-serif:Georgia,"Times New Roman",serif;
  --lmf-font-sans:Arial,Helvetica,sans-serif;
  max-width:980px;
  margin:0 auto;
  color:var(--lmf-text);
  font-family:var(--lmf-font-sans);
}

.lmf-form{
  position:relative;
  padding:clamp(26px,5vw,64px);
  background:var(--lmf-surface);
  border:1px solid var(--lmf-line);
}

.lmf-heading{
  max-width:720px;
  margin-bottom:clamp(28px,5vw,48px);
}

.lmf-heading h2{
  margin:.25rem 0 1rem;
  font-family:var(--lmf-font-serif);
  font-size:clamp(34px,5vw,56px);
  font-weight:400;
  line-height:1.04;
  letter-spacing:-.025em;
}

.lmf-heading p:last-child{
  max-width:680px;
  margin:0;
  color:var(--lmf-muted);
  font-size:16px;
  line-height:1.7;
}

.lmf-eyebrow{
  margin:0;
  color:var(--lmf-accent);
  font-size:12px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.lmf-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px 24px;
}

.lmf-field--full{
  grid-column:1 / -1;
}

.lmf-field label{
  display:block;
  margin:0 0 8px;
  font-size:13px;
  font-weight:700;
  letter-spacing:.02em;
}

.lmf-field label span{
  color:var(--lmf-accent);
}

.lmf-field input,
.lmf-field select,
.lmf-field textarea{
  box-sizing:border-box;
  width:100%;
  min-height:52px;
  padding:13px 14px;
  border:1px solid var(--lmf-line);
  border-radius:var(--lmf-radius);
  outline:0;
  background:#fff;
  color:var(--lmf-text);
  font:inherit;
  font-size:15px;
  transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease;
}

.lmf-field textarea{
  min-height:150px;
  resize:vertical;
  line-height:1.6;
}

.lmf-field input:focus,
.lmf-field select:focus,
.lmf-field textarea:focus{
  border-color:var(--lmf-accent);
  box-shadow:0 0 0 3px rgba(88,96,74,.11);
}

.lmf-help{
  margin:7px 0 0;
  color:var(--lmf-muted);
  font-size:12px;
  line-height:1.5;
}

.lmf-consent{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:28px 0 24px;
  color:var(--lmf-muted);
  font-size:13px;
  line-height:1.55;
}

.lmf-consent input{
  flex:0 0 auto;
  width:16px;
  height:16px;
  margin-top:2px;
  accent-color:var(--lmf-accent);
}

.lmf-submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  padding:13px 25px;
  border:1px solid var(--lmf-accent);
  border-radius:var(--lmf-radius);
  background:var(--lmf-accent);
  color:#fff;
  font:inherit;
  font-size:13px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
  transition:transform .2s ease,background-color .2s ease,border-color .2s ease;
}

.lmf-submit:hover,
.lmf-submit:focus-visible{
  border-color:var(--lmf-accent-hover);
  background:var(--lmf-accent-hover);
  transform:translateY(-1px);
}

.lmf-submit:focus-visible{
  outline:2px solid var(--lmf-text);
  outline-offset:3px;
}

.lmf-notice{
  margin:0 0 20px;
  padding:14px 16px;
  border:1px solid currentColor;
  background:#fff;
  font-size:14px;
  line-height:1.55;
}

.lmf-notice--success{
  color:var(--lmf-success);
}

.lmf-notice--error{
  color:var(--lmf-danger);
}

.lmf-hp{
  position:absolute!important;
  left:-10000px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
}

@media(max-width:700px){
  .lmf-form{
    padding:24px 18px 30px;
  }

  .lmf-grid{
    grid-template-columns:1fr;
    gap:18px;
  }

  .lmf-field--full{
    grid-column:auto;
  }

  .lmf-submit{
    width:100%;
  }
}

@media(prefers-reduced-motion:reduce){
  .lmf-field input,
  .lmf-field select,
  .lmf-field textarea,
  .lmf-submit{
    transition:none;
  }
}
