:root{
  --ip-bg:#f6efe5;
  --ip-surface:#fffaf3;
  --ip-surface-strong:#ffffff;
  --ip-line:#ddc8ad;
  --ip-line-soft:#ebdfcf;
  --ip-text:#24324a;
  --ip-muted:#6f6a62;
  --ip-brand:#8f3328;
  --ip-brand-2:#c56f3d;
  --ip-soft:#f5e8d8;
  --ip-shadow:0 24px 44px rgba(82,46,20,.08);
}

html,body{
  margin:0;
  padding:0;
  background:linear-gradient(180deg,#fffaf2 0%,#f7efe5 60%,#efe0cf 100%);
  color:var(--ip-text);
  font-family:"Segoe UI",Tahoma,Arial,sans-serif;
}

.ip-shell{
  max-width:1180px;
  margin:0 auto;
  padding:24px 18px 42px;
}

.ip-hero,.ip-card,.ip-panel{
  background:var(--ip-surface);
  border:1px solid var(--ip-line);
  border-radius:28px;
  box-shadow:var(--ip-shadow);
}

.ip-hero{
  padding:28px;
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);
  gap:18px;
}

.ip-card,.ip-panel{
  padding:22px;
}

.ip-eyebrow{
  color:var(--ip-brand-2);
  font-size:12px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.ip-title{
  margin:10px 0 8px;
  font-size:42px;
  line-height:1.04;
}

.ip-copy{
  margin:0;
  color:var(--ip-muted);
  line-height:1.75;
}

.ip-actions,.ip-pills,.ip-grid,.ip-meta,.ip-stats,.ip-form-actions,.ip-contact-list{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

.ip-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
}

.ip-stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  margin-top:14px;
}

.ip-stat{
  padding:16px;
  border-radius:20px;
  background:var(--ip-soft);
  border:1px solid var(--ip-line);
}

.ip-stat strong{
  display:block;
  font-size:28px;
}

.ip-pill{
  display:inline-flex;
  align-items:center;
  padding:7px 11px;
  border-radius:999px;
  background:var(--ip-soft);
  border:1px solid var(--ip-line);
  color:var(--ip-brand);
  font-size:12px;
  font-weight:700;
}

.ip-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:11px 16px;
  border-radius:999px;
  border:1px solid var(--ip-line);
  background:var(--ip-soft);
  color:var(--ip-text);
  text-decoration:none;
  font-size:14px;
  font-weight:700;
}

.ip-btn.primary{
  background:linear-gradient(135deg,var(--ip-brand) 0%,var(--ip-brand-2) 100%);
  color:#fff;
  border-color:transparent;
}

.ip-btn.ghost{
  background:rgba(255,255,255,.72);
}

.ip-section{
  margin-top:18px;
}

.ip-section-title{
  margin:0 0 10px;
  font-size:26px;
}

.ip-subtitle{
  margin:18px 0 8px;
  font-size:18px;
}

.ip-rich{
  line-height:1.8;
  font-size:15px;
}

.ip-rich p{
  margin:0 0 14px;
}

.ip-rich ul{
  margin:0 0 14px 20px;
  padding:0;
}

.ip-rich li{
  margin-bottom:6px;
}

.ip-note{
  padding:14px 16px;
  border-radius:18px;
  border:1px dashed var(--ip-brand-2);
  background:#fff5e7;
  color:#6f4b29;
}

.ip-note.neutral{
  border-color:#9aa3af;
  background:#faf8f4;
  color:#5f6771;
}

.ip-meta{
  color:var(--ip-muted);
  font-size:13px;
}

.ip-link{
  color:var(--ip-brand);
  text-decoration:none;
  font-weight:700;
}

.ip-link:hover{
  text-decoration:underline;
}

.ip-form{
  display:grid;
  gap:12px;
}

.ip-form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.ip-label{
  display:block;
  margin:0 0 6px;
  font-size:14px;
  font-weight:700;
}

.ip-label.required::after{
  content:" *";
  color:#b42318;
}

.ip-input,.ip-textarea{
  width:100%;
  border:1px solid var(--ip-line-soft);
  border-radius:16px;
  background:#fffdf9;
  color:var(--ip-text);
  padding:11px 13px;
  font:inherit;
  box-sizing:border-box;
}

.ip-textarea{
  min-height:140px;
  resize:vertical;
}

.ip-input:focus,.ip-textarea:focus{
  outline:none;
  border-color:var(--ip-brand-2);
  box-shadow:0 0 0 3px rgba(197,111,61,.12);
}

.ip-map{
  border:1px solid var(--ip-line-soft);
  border-radius:20px;
  overflow:hidden;
  min-height:320px;
}

.ip-map iframe{
  display:block;
  width:100%;
  height:320px;
  border:0;
}

.ip-alert{
  padding:14px 16px;
  border-radius:18px;
  border:1px solid var(--ip-line);
  margin-bottom:16px;
}

.ip-alert.success{
  border-color:rgba(34,197,94,.35);
  background:rgba(34,197,94,.08);
}

.ip-alert.error{
  border-color:rgba(220,38,38,.35);
  background:rgba(220,38,38,.08);
}

@media (max-width:980px){
  .ip-hero,.ip-stats,.ip-form-grid{
    grid-template-columns:1fr;
  }

  .ip-title{
    font-size:34px;
  }
}

@media (max-width:640px){
  .ip-shell{
    padding:18px 12px 32px;
  }

  .ip-hero,.ip-card,.ip-panel{
    padding:18px;
    border-radius:22px;
  }

  .ip-title{
    font-size:28px;
  }

  .ip-map iframe{
    height:260px;
  }
}
