:root{
  --bg:#ededed;
  --bg-soft:#e2e2e2;
  --secondary:#f26b22d8; 
  --secondary-dark:#f26b22;
  --line:#cfcfcf;
  --line-soft:rgba(20,20,20,0.14);
  --text:#1a1a1a;
  --text-dim:#5c5c5c;
  --text-faint:#8a8a8a;
  --white:#ffffff;
  --error:#d3493b;
  --radius:18px;
  --font-display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --font-body:"Inter","Helvetica Neue",Arial,sans-serif;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;-webkit-text-size-adjust:100%;}

body{
  background:var(--bg);
  color:var(--text);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}

a{color:inherit;}


.contact{
  position:relative;
   padding: 150px 10vw 70px;
  background:var(--bg);
  overflow:hidden;
}
.contact::before{
  content:"";
  position:absolute;
  inset:0;
background: radial-gradient(circle at 12% 8%, rgb(131 194 68 / 5%), transparent 42%), radial-gradient(circle at 88% 92%, rgba(131, 194, 68, 0.10), transparent 45%), linear-gradient(180deg, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.05));

  pointer-events:none;
  z-index:1;
}

.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  max-width:1440px;
  margin:0 auto;
  position:relative;
  z-index:2;
}

.contact-heading{
  font-family:var(--font-display);
  /* font-weight:800; */
    font-size: clamp(42px, 7vw, 96px);
      line-height:1.05;
  letter-spacing:-0.01em;
  margin:0 0 22px;
  text-transform:uppercase;
}
.contact-heading .dim{ color:var(--secondary); }

.contact-sub{
  color:var(--text-dim);
  font-size:16px;
  margin:0 0 38px;
  max-width:420px;
}

.info-block{
  margin-bottom:26px;
  display:flex;
  gap:16px;
  align-items:flex-start;
}
.info-icon{
  flex:0 0 auto;
  width:42px;
  height:42px;
  border-radius:50%;
  background:rgb(255, 255, 255);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--secondary-dark);
}
.info-icon svg{ width:20px; height:20px; }
.info-text{ padding-top:2px; }
.info-label{
  font-size:12px;
  font-weight:700;
  letter-spacing:0.14em;
  color:var(--secondary-dark);
  margin:0 0 8px;
}
.info-value{
  color:var(--text-dim);
  font-size:15.5px;
  margin:0;
  max-width:380px;
}
.info-value + .info-value{ margin-top:6px; }
.info-value a{ text-decoration:none; }
.info-value a:hover{ color:var(--secondary-dark); text-decoration:underline; }

.info-row{
  display:flex;
  flex-wrap:wrap;
  gap:28px 36px;
  margin-bottom:26px;
}
.info-row .info-block{
  margin-bottom:0;
  /* flex:1 1 200px; */
}

/* Form card */
.form-card{
    margin-top: 10%;
  background:var(--white);
  border:1px solid var(--line-soft);
  border-radius:var(--radius);
  padding:46px 44px 40px;
  align-self:start;
  box-shadow:0 18px 40px rgba(0,0,0,0.06);
  height: stretch;
}

form{ display:flex; flex-direction:column; }

.field{
  position:relative;
  border-bottom:1px solid var(--line);
  padding:16px 2px 14px;
}
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.field-row .field{ grid-column:span 1; }

.field input,
.field textarea{
  width:100%;
  background:transparent;
  border:none;
  outline:none;
  color:var(--text);
  font-family:var(--font-body);
  font-size:15.5px;
  padding:0;
  resize:none;
  -webkit-appearance:none;
  -webkit-tap-highlight-color:transparent;
  -webkit-border-radius:0;
}
.field textarea{ min-height:64px; line-height:1.5; }
.field input::placeholder,
.field textarea::placeholder{ color:#9b9b9b; }

.field.invalid{ border-bottom-color:var(--error); }
.error-msg{
  display:none;
  color:var(--error);
  font-size:12.5px;
  margin-top:6px;
  letter-spacing:0.01em;
}
.field.invalid .error-msg{ display:block; }

.submit-btn{
    margin-top: 30px;
    background: var(--secondary);
    color: #ffffff;
    border: none;
    border-radius:2px;
    padding: 15px 20px;
    width: fit-content;
  /* font-family:var(--font-display); */
    font-weight:700;
    font-size:14px;
    letter-spacing:0.12em;
    cursor:pointer;
    transition:transform .15s ease, box-shadow .2s ease, background .2s ease;
    -webkit-appearance:none;
    -webkit-tap-highlight-color:transparent;
}
.submit-btn:hover{ color:black; background:var(--secondary-dark); box-shadow:0 8px 24px rgba(131,194,68,0.35); }
.submit-btn:active{ -webkit-transform:scale(0.98); transform:scale(0.98); }
.submit-btn:focus-visible,
.field input:focus-visible,
.field textarea:focus-visible{
  outline:2px solid var(--secondary-dark);
  outline-offset:3px;
}

.form-status{
  margin-top:16px;
  font-size:13.5px;
  text-align:center;
  min-height:18px;
}
.form-status.success{ color:var(--secondary-dark); }
.form-status.error{ color:var(--error); }

.disclaimer{
  border-top:1px solid var(--line);
  margin-top:60px;
  padding-top:26px;
  max-width:1100px;
  margin-left:auto;
  margin-right:auto;
  text-align:center;
  color:var(--text-faint);
  font-size:12.5px;
  line-height:1.7;
  position:relative;
  z-index:2;
}


.map-section{
  /* background:var(--bg-soft); */
  padding:70px 8vw 90px;
  border-top:1px solid var(--line);
}
.map-head{
  max-width:1440px;
  margin:0 auto 36px;
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  flex-wrap:wrap;
}
.map-eyebrow{
  font-size:12px;
  font-weight:700;
  letter-spacing:0.14em;
  color:var(--text-dim);
  margin:0 0 12px;
}
.map-title{
  /* font-family:var(--font-display); */
  font-weight:800;
  font-size:clamp(26px,3.4vw,38px);
  text-transform:uppercase;
  margin:0;
  letter-spacing:-0.01em;
}
.map-directions{
  display:inline-flex;
  align-items:center;
  gap:8px;
  border:1px solid var(--secondary);
  color:var(--secondary-dark);
  text-decoration:none;
  font-size:13.5px;
  font-weight:600;
  letter-spacing:0.04em;
  padding:12px 22px;
  border-radius:50px;
  transition:background .2s ease, color .2s ease;
  white-space:nowrap;
  -webkit-tap-highlight-color:transparent;
}
.map-directions:hover{ background:var(--secondary); color:#fefffd; }

.map-frame-wrap{
  max-width:1440px;
  margin:0 auto;
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid var(--line-soft);
  position:relative;
  box-shadow:0 18px 40px rgba(0,0,0,0.08);
}
.map-frame-wrap img{
  width:100%;
  height:460px;
  object-fit:cover;
  display:block;
}
.map-pin{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-100%);
  display:flex;
  flex-direction:column;
  align-items:center;
  pointer-events:none;
}
.map-pin .dot{
  width:18px;
  height:18px;
  background:var(--secondary);
  border:3px solid #fff;
  border-radius:50%;
  box-shadow:0 2px 8px rgba(0,0,0,0.3);
}
.map-pin .stem{
  width:3px;
  height:16px;
  background:var(--secondary);
}
.map-pin .ring{
  position:absolute;
  top:0;
  width:34px;
  height:34px;
  border-radius:50%;
  background:rgba(131,194,68,0.35);
  animation:pulse 2.2s ease-out infinite;
}
@keyframes pulse{
  0%{ -webkit-transform:scale(0.4); transform:scale(0.4); opacity:0.8; }
  100%{ -webkit-transform:scale(1.6); transform:scale(1.6); opacity:0; }
}
.map-caption{
  position:absolute;
  bottom:18px;
  left:18px;
  background:rgba(255,255,255,0.92);
  border-radius:10px;
  padding:10px 16px;
  font-size:13px;
  font-weight:600;
  color:var(--text);
  box-shadow:0 6px 18px rgba(0,0,0,0.12);
}

@media (max-width: 1100px){
  .contact{ padding: 110px 6vw 60px; }
  .contact-grid{ gap:46px; }
  .map-section{ padding:60px 6vw 70px; }
}

@media (max-width: 900px){
  .contact-grid{ grid-template-columns:1fr; gap:46px; }
  .form-card{ padding:34px 26px 30px; }
  .field-row{ grid-template-columns:1fr; gap:0; }
  .map-head{ flex-direction:column; align-items:flex-start; }
  .info-row{ flex-direction:column; gap:20px; }
}

@media (max-width: 600px){
   .contact {
        padding: 40% 5vw 30px;
    }
  .info-block{ gap:12px; }
  .info-row .info-block {
    margin-bottom: 0;
    flex: 1 1;
}
  .info-icon{ width:36px; height:36px; }
  .info-icon svg{ width:17px; height:17px; }
  .info-value{ max-width:100%; }
  .form-card{ margin-top:0; padding:26px 18px 24px; }
  .submit-btn{ width:100%; }
  .map-frame-wrap img{ height:320px; }
  .map-caption{ font-size:12px; padding:8px 12px; bottom:12px; left:12px; max-width:calc(100% - 36px); }
}

@media (max-width: 380px){
   
  .info-icon{ width:32px; height:32px; }
  .form-card{ padding:20px 14px 20px; }
  .map-frame-wrap img{ height:240px; }
}