:root{
  --ink:#1a1814;
  --bone:#f7f4ee;
  --storefront-bg:#fffdf5;
  --champagne:#c8a96a;
  --champagne-dim:#a98c52;
  --stone:#8c857a;
  --line:#e3ddd2;
  --white:#ffffff;
  --shadow:0 24px 60px -28px rgba(26,24,20,.28);
  --serif:'Fraunces',Georgia,serif;
  --sans:'Outfit',system-ui,sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
}

.contact-page{padding:clamp(3rem,6vw,5rem) 0 clamp(4rem,8vw,6.5rem)}
.contact-grid{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(0,1.15fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}
.contact-info{display:grid;gap:2rem}
.contact-info-head{display:grid;gap:1rem}
.contact-info-head h2{font-size:clamp(2rem,4vw,3.2rem);max-width:none}
.contact-info-head p{max-width:34rem;color:var(--stone);font-size:1rem;line-height:1.8}
.contact-list{display:grid;gap:1rem;margin:0}
.contact-list div{border-top:1px solid var(--line);padding-top:1rem}
.contact-list dt{font-size:.72rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--champagne-dim);margin-bottom:.35rem}
.contact-list dd{margin:0;color:var(--ink);font-size:1rem;line-height:1.65}
.contact-list a{color:var(--ink);transition:color .25s var(--ease)}
.contact-list a:hover{color:var(--champagne-dim)}
.contact-card{border:1px solid var(--line);background:#f2efe3;border-radius:16px;box-shadow:var(--shadow);padding:clamp(1.4rem,3vw,2.4rem)}
.contact-success{border:1px solid rgba(166,124,61,.32);background:#fff8e8;color:#6f5420;border-radius:12px;padding:1rem 1.1rem;margin-bottom:1.3rem;font-size:.95rem;scroll-margin-top:110px}
.contact-submit + .contact-success{margin-top:1rem;margin-bottom:0}
.contact-form{display:grid;gap:1.1rem}
.contact-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.contact-form label{display:grid;gap:.5rem;color:var(--stone);font-size:.74rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase}
.contact-form input,.contact-form textarea{width:100%;border:1px solid var(--line);background:#fffdf8;color:var(--ink);border-radius:12px;padding:.95rem 1rem;font-family:var(--sans);font-size:1rem;font-weight:300;letter-spacing:0;text-transform:none;outline:none;transition:border-color .25s var(--ease),background .25s var(--ease),box-shadow .25s var(--ease)}
.contact-form textarea{resize:vertical;min-height:160px}
.contact-form input:focus,.contact-form textarea:focus{border-color:var(--champagne-dim);background:#fff;box-shadow:0 0 0 3px rgba(200,169,106,.14)}
.contact-form label.has-error input,.contact-form label.has-error textarea{border-color:#b95c4d;background:#fff8f6}
.contact-form small{color:#9f3f34;font-size:.78rem;font-weight:400;letter-spacing:0;text-transform:none}
.contact-submit{width:max-content;min-width:190px;border-radius:12px}
.contact-submit:disabled{opacity:.68;cursor:wait}

@media(max-width:900px){
  .contact-grid{grid-template-columns:1fr}
  .contact-info-head h2{max-width:100%}
}

@media(max-width:600px){
  .contact-page{padding:2.3rem 0 4rem}
  .contact-form-grid{grid-template-columns:1fr}
  .contact-card{border-radius:14px;padding:1.2rem}
  .contact-submit{width:100%}
}
