/* ===== Tokens ===== */
:root{
  --zr-primary:#0B3D2E;
  --zr-cta:#0B3D2E;
  --zr-white:#fff;
  --zr-surface:#F8FAF9;
  --zr-ink:#0a0f0d;
  --zr-muted:#586066;
  --zr-border:#E2E8E5;
  --container-max:1200px;
  --container-pad-x:24px;
  --radius:10px;
  --ctr-h-md:42px;
  --ctr-pad-x:14px;
  --fs-14:.875rem;
}

/* ===== Base ===== */
.zr-contact-page{ background:var(--zr-surface); color:var(--zr-ink); padding-bottom:48px; font-family:"Circular","Circular Std",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; font-size:14px; }
.zr-contact-page *, .zr-contact-page *::before, .zr-contact-page *::after{ box-sizing:border-box; }
.zr-contact-page .container{ max-width:var(--container-max); margin:0 auto; padding:0 var(--container-pad-x); }

/* ===== Headings ===== */
.zr-contact-page h1{ font-size:2rem; font-weight:700; margin:0 0 .5rem; }
.zr-contact-page .h2{ font-size:1.25rem; font-weight:700; margin:0 0 .75rem; }
.zr-contact-page .hero__subtitle{ color:var(--zr-muted); font-size:var(--fs-14); margin:.5rem 0 1.25rem; }

/* ===== Hero ===== */
.zr-contact-page .contact-hero{ padding:64px 0 16px; text-align:center; }

/* ===== Grid ===== */
.zr-contact-page .contact-grid{ display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:36px; align-items:start; }
@media (max-width:1020px){ .zr-contact-page .contact-grid{ grid-template-columns:1fr; } }

/* ===== Cards ===== */
.zr-contact-page .contact-form,
.zr-contact-page .contact-card{
  background:#fff; border:1px solid var(--zr-border); border-radius:20px;
  padding:28px; box-shadow:0 8px 24px rgba(0,0,0,.06);
}

/* ===== Inputs ===== */
.zr-contact-page .zr-form .field{ display:flex; flex-direction:column; gap:6px; margin-bottom:18px; }
.zr-contact-page .input-wrap{ position:relative; }
.zr-contact-page .input-wrap svg.input-icon{ position:absolute; left:12px; top:50%; transform:translateY(-50%); opacity:.6; pointer-events:none; }

/* WordPress overrides neutralized for pixel parity */
.zr-contact-page input,
.zr-contact-page select,
.zr-contact-page textarea{
  font:inherit !important;
  color:var(--zr-ink) !important;
  background:#fff !important;
  border:1px solid var(--zr-border) !important;
  border-radius:var(--radius) !important;
  height:var(--ctr-h-md) !important;
  padding:0 var(--ctr-pad-x) !important;
  width:100% !important;
  box-shadow:none !important;
  outline:none !important;
  -webkit-appearance:none; appearance:none;
}
.zr-contact-page select{ line-height:var(--ctr-h-md) !important; }
.zr-contact-page .input-wrap.has-icon input,
.zr-contact-page .input-wrap.has-icon select{ padding-left:44px !important; }
.zr-contact-page textarea{ min-height:132px !important; height:auto !important; padding:.7rem var(--ctr-pad-x) !important; resize:vertical; }
.zr-contact-page input:focus,
.zr-contact-page select:focus,
.zr-contact-page textarea:focus{
  border-color:color-mix(in oklab, var(--zr-cta), white 22%) !important;
  box-shadow:0 0 0 3px color-mix(in oklab, var(--zr-cta), white 82%) !important;
}

/* Row layout */
.zr-contact-page .row-2{ display:grid; gap:16px; grid-template-columns:1fr 1fr; }
@media (max-width:900px){ .zr-contact-page .row-2{ grid-template-columns:1fr; } }

/* ===== Buttons ===== */
.zr-contact-page .btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  height:var(--ctr-h-md); padding:0 var(--ctr-pad-x); line-height:1;
  border-radius:var(--radius); font-weight:700; cursor:pointer; text-align:center;
  border:1px solid transparent; background:transparent; box-shadow:none !important;
}
.zr-contact-page .btn-primary{
  background:var(--zr-cta); color:var(--zr-white);
  border-color:color-mix(in oklab, var(--zr-cta), white 14%);
}
.zr-contact-page .btn-primary:hover{ transform:translateY(-1px); background:color-mix(in oklab, var(--zr-cta), black 6%); }
.zr-contact-page .btn-ghost{ background:transparent; color:var(--zr-cta); border:1px solid color-mix(in oklab, var(--zr-cta), white 62%); }
.zr-contact-page .btn-ghost:hover{ background:#F5F7F6; }
.zr-contact-page .actions{ display:flex; gap:12px; margin-top:16px; flex-wrap:wrap; }
@media (max-width:540px){ .zr-contact-page .actions .btn{ flex:1; min-width:130px; } }

.zr-contact-page .form-note{ margin-top:12px; color:var(--zr-muted); font-size:.85rem; }
.zr-contact-page .form-error{ color:#b42318; min-height:1.2em; margin:4px 0 0; }

/* ===== Contact card ===== */
.zr-contact-page .contact-list{ margin:16px 0 8px; display:flex; flex-direction:column; gap:14px; }
.zr-contact-page .contact-item{ display:flex; align-items:flex-start; gap:12px; }
.zr-contact-page .contact-item svg{ margin-top:2px; opacity:.7; }
.zr-contact-page .contact-label{ font-size:.75rem; font-weight:700; color:var(--zr-muted); margin-bottom:2px; }
.zr-contact-page .contact-link{ color:inherit; text-decoration:none; font-size:.95rem; line-height:1.35; }
.zr-contact-page .contact-link:hover{ text-decoration:underline; }
.zr-contact-page .contact-cta{ display:flex; flex-direction:column; gap:10px; margin-top:12px; }

/* ===== Map (full width) ===== */
.zr-contact-page .contact-section{ padding-bottom:20px; }
.zr-contact-page .contact-map{ margin-top:24px; }
.zr-contact-page .map-frame{ width:100% !important; border-radius:20px; overflow:hidden; border:1px solid var(--zr-border); box-shadow:0 10px 28px rgba(0,0,0,.10); }
.zr-contact-page .map-frame iframe{
  display:block; width:100% !important; max-width:none !important;
  height:420px !important; border:0 !important;
}
/* Kill common WP responsive-embed clamps */
.zr-contact-page .wp-block-embed,
.zr-contact-page .wp-embed-responsive,
.zr-contact-page figure.wp-block-embed{ max-width:none !important; width:100% !important; }

/* Neutralize theme margins inside entry content for this page */
.zr-contact-page .entry-content > *{ margin:0 !important; }

/* ===== Modal Popup styles ===== */

/* animations */
@keyframes zrModalFadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes zrModalScaleIn {
  from { opacity: 0; transform: translate(-50%,-46%) scale(.98); }
  to   { opacity: 1; transform: translate(-50%,-50%) scale(1); }
}

.zr-modal[hidden]{ display:none !important; }
.zr-modal{ position:fixed; inset:0; z-index:9999; }

/* backdrop with subtle blur + fade */
.zr-modal__backdrop{
  position:absolute; inset:0;
  background: rgba(10,15,13,.48);
  -webkit-backdrop-filter: blur(4px) saturate(1.1);
  backdrop-filter: blur(4px) saturate(1.1);
  animation: zrModalFadeIn .18s ease-out both;
}

/* dialog card with gentle pop */
.zr-modal__dialog{
  position:absolute; left:50%; top:50%;
  transform: translate(-50%,-50%);
  width:min(560px, calc(100vw - 40px));
  background:#fff;
  border:1px solid var(--zr-border);
  border-radius:20px;
  box-shadow: 0 24px 60px rgba(0,0,0,.18), 0 8px 22px rgba(0,0,0,.10);
  padding:22px 22px 18px;
  outline:none;
  animation: zrModalScaleIn .2s cubic-bezier(.2,.7,.2,1) both;
}

/* close button */
.zr-modal__close{
  position:absolute; top:10px; right:10px;
  display:grid; place-items:center;
  height:32px; width:32px;
  background:#fff;
  border:1px solid color-mix(in oklab, var(--zr-cta), white 70%);
  border-radius:10px; cursor:pointer;
  color: var(--zr-muted);
  transition: background .15s ease, color .15s ease, border-color .15s ease, transform .06s ease;
}
.zr-modal__close:hover{
  background:#F5F7F6;
  color: var(--zr-ink);
  border-color: color-mix(in oklab, var(--zr-cta), white 58%);
}
.zr-modal__close:active{ transform: translateY(1px); }
.zr-modal__close:focus{
  outline: 3px solid color-mix(in oklab, var(--zr-cta), white 78%);
  outline-offset: 2px;
}

/* header + icon chip */
.zr-modal__header{
  display:flex; align-items:center; gap:10px; margin-bottom:6px;
}
.zr-modal__icon{
  display:inline-block;
  width:28px; height:28px;
  padding:6px;
  border-radius:999px;
  color: var(--zr-cta);
  background: color-mix(in oklab, var(--zr-cta), white 88%);
  border: 1px solid color-mix(in oklab, var(--zr-cta), white 72%);
  box-sizing: content-box;
}
.zr-modal__title{
  margin:0; font-size:1.08rem; font-weight:800; letter-spacing:.2px;
}

/* text */
.zr-modal__body{
  margin:.35rem 0 1rem;
  color:var(--zr-ink);
  line-height:1.5;
}

/* actions */
.zr-modal__actions{
  display:flex; justify-content:flex-end; gap:10px;
}
.zr-modal__actions .btn.btn-primary{
  padding:10px 16px;
  border-radius:12px;
  font-weight:800;
  box-shadow: 0 1px 0 color-mix(in oklab, var(--zr-cta), black 18%);
}

/* reduced motion */
@media (prefers-reduced-motion: reduce){
  .zr-modal__backdrop, .zr-modal__dialog{ animation:none !important; }
}