/*
  /contact page — hero (shared .xrt-hero, see hero.css) followed by a
  form + office-info section. Namespaced .xrt-contact-*, relies on the
  --xrt-* tokens defined on .xrt-scope in layout.css.
  Mobile-first: single column, form above info card. From 900px the two
  sit side by side (matches homepage.css's 900px breakpoint convention).
*/
.xrt-contact{max-width:1120px;margin:0 auto;padding:40px 20px 64px}
.xrt-contact__grid{display:grid;grid-template-columns:1fr;gap:28px}
@media(min-width:900px){
  .xrt-contact{padding:64px 24px 96px}
  .xrt-contact__grid{grid-template-columns:1.35fr 1fr;gap:32px;align-items:start}
}

/* ---- form card ---------------------------------------------------- */
.xrt-contact__card{background:#fff;border:1px solid var(--xrt-border);border-radius:var(--xrt-r-lg);box-shadow:var(--xrt-shadow-sm);padding:24px 20px}
@media(min-width:768px){.xrt-contact__card{padding:36px 32px}}
.xrt-contact__card-title{font-family:var(--xrt-font-h);font-weight:800;font-size:clamp(20px,2.6vw,26px);letter-spacing:-.02em;color:var(--xrt-ink);margin:0 0 6px}
.xrt-contact__card-sub{font-size:14px;line-height:1.55;color:#5c6a63;margin:0 0 24px}

.xrt-contact__row{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:560px){.xrt-contact__row{grid-template-columns:1fr 1fr}}
.xrt-contact__field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.xrt-contact__label{font-family:var(--xrt-font-h);font-weight:700;font-size:12.5px;color:var(--xrt-ink)}
.xrt-contact__label small{font-weight:500;color:#8a948f;text-transform:none;letter-spacing:0}
.xrt-contact__input,.xrt-contact__select,.xrt-contact__textarea{
  font-family:var(--xrt-font-b);font-size:15px;color:var(--xrt-ink);
  border:1px solid var(--xrt-border);border-radius:var(--xrt-r-sm);
  padding:12px 14px;background:#fff;width:100%;min-height:46px;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.xrt-contact__textarea{min-height:130px;resize:vertical;font-family:var(--xrt-font-b)}
.xrt-contact__input:focus,.xrt-contact__select:focus,.xrt-contact__textarea:focus{
  outline:none;border-color:var(--xrt-teal);box-shadow:0 0 0 3px rgba(47,107,92,.14);
}
.xrt-contact__hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}

.xrt-contact__submit{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  width:100%;min-height:48px;border:none;border-radius:var(--xrt-r-md);
  background:var(--xrt-lime);color:var(--xrt-lime-ink);
  font-family:var(--xrt-font-h);font-weight:700;font-size:15.5px;letter-spacing:.01em;
  cursor:pointer;transition:filter .15s ease,transform .15s ease;margin-top:4px;
}
.xrt-contact__submit:hover{filter:brightness(1.06)}
.xrt-contact__submit:disabled{opacity:.6;cursor:default;filter:none}
@media(min-width:560px){.xrt-contact__submit{width:auto;padding:0 28px}}

.xrt-contact__msg{display:none;border-radius:var(--xrt-r-sm);padding:12px 14px;font-size:13.5px;line-height:1.5;margin-top:14px}
.xrt-contact__msg--error{display:block;background:#fdf0ee;border:1px solid #e8b8b2;color:#a3322d}
.xrt-contact__msg--ok{display:block;background:#eef8ef;border:1px solid #b7ddb9;color:#1f6b2b}

.xrt-contact__success{display:none;text-align:center;padding:24px 8px}
.xrt-contact__success--show{display:block}
.xrt-contact__success h3{font-family:var(--xrt-font-h);font-size:20px;color:var(--xrt-ink);margin:12px 0 6px}
.xrt-contact__success p{font-size:14px;color:#5c6a63;margin:0}
.xrt-contact__success-icon{width:52px;height:52px;border-radius:50%;background:var(--xrt-cream);color:var(--xrt-teal);display:grid;place-items:center;margin:0 auto}

/* ---- office info card ---------------------------------------------- */
.xrt-contact__info{background:var(--xrt-deep);color:#fff;border-radius:var(--xrt-r-lg);padding:24px 20px;box-shadow:var(--xrt-shadow-md)}
@media(min-width:768px){.xrt-contact__info{padding:32px 28px}}
.xrt-contact__info-title{font-family:var(--xrt-font-h);font-weight:800;font-size:19px;letter-spacing:-.01em;margin:0 0 18px;color:#fff}
.xrt-contact__info-item{display:flex;gap:12px;align-items:flex-start;padding:14px 0;border-top:1px solid rgba(255,255,255,.12)}
.xrt-contact__info-item:first-of-type{border-top:none;padding-top:0}
.xrt-contact__info-icon{flex:0 0 auto;width:36px;height:36px;border-radius:50%;background:rgba(200,243,106,.14);color:var(--xrt-lime);display:grid;place-items:center}
.xrt-contact__info-label{font-family:var(--xrt-font-h);font-weight:700;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.55);margin:0 0 3px}
.xrt-contact__info-value{font-size:14.5px;line-height:1.5;color:rgba(255,255,255,.92);margin:0}
.xrt-contact__info-value a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35)}
.xrt-contact__info-value a:hover{border-color:#fff}
.xrt-contact__directions{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-family:var(--xrt-font-h);font-weight:700;font-size:13.5px;color:var(--xrt-lime);text-decoration:none}
.xrt-contact__directions svg{width:14px;height:14px}
