/* ============================================================
   Contact — form, info cards, map placeholder
   ============================================================ */
.contact-layout{
  display:grid;
  gap:var(--sp-8);
}
.contact-info{
  display:flex;
  flex-direction:column;
  gap:var(--sp-5);
}
.info-card{
  display:flex;
  gap:var(--sp-4);
  padding:var(--sp-5);
  background:color-mix(in srgb, var(--paper-raised) 70%, transparent);
  backdrop-filter: blur(23px);
  -webkit-backdrop-filter: blur(23px);
  border:1px solid var(--line);
}
.info-card .icon-tile{ width:44px; height:44px; }
.info-card .icon-tile svg{ width:22px; height:22px; }
.info-card h3{ font-size:.95rem; font-family:var(--font-body); font-weight:700; margin-bottom:4px; }
.info-card p, .info-card a{ font-size:var(--fs-sm); color:var(--slate); display:block; }
.info-card a:hover{ color:var(--ink); text-decoration:underline; }
.info-card .hours-row{ display:flex; justify-content:space-between; gap:var(--sp-3); font-size:var(--fs-sm); color:var(--slate); }
.info-card .hours-row b{ color:var(--ink); font-weight:600; }

.map-placeholder{
  position:relative;
  aspect-ratio:16/11;
  background:var(--black-950);
  overflow:hidden;
  border:1px solid var(--line);
}
.map-placeholder canvas{ position:absolute; inset:0; width:100%; height:100%; }
.map-pin{
  position:absolute; left:50%; top:44%;
  transform:translate(-50%,-100%);
  z-index:2;
  display:flex; flex-direction:column; align-items:center;
}
.map-pin svg{ width:34px; height:34px; color:var(--jodhpur-400); filter:drop-shadow(0 6px 10px rgba(0,0,0,.4)); }
.map-pin .pulse{
  width:14px; height:14px; border-radius:50%;
  background:rgba(107,167,219,.35);
  margin-top:-6px;
  animation:pulse-ring 2.4s ease-out infinite;
}
@media (prefers-reduced-motion:reduce){ .map-pin .pulse{ animation:none; } }
@keyframes pulse-ring{
  0%{ transform:scale(.5); opacity:.8; }
  100%{ transform:scale(3.2); opacity:0; }
}
.map-caption{
  position:absolute; left:0; right:0; bottom:0; z-index:2;
  display:flex; align-items:center; justify-content:space-between; gap:var(--sp-4);
  padding:var(--sp-4) var(--sp-5);
  background:linear-gradient(0deg, rgba(6,7,10,.9), transparent);
}
.map-caption span{ color:var(--on-black-soft); font-size:var(--fs-xs); }
.map-caption a{
  font-size:var(--fs-xs); font-weight:700; color:var(--jodhpur-300);
  display:inline-flex; align-items:center; gap:6px;
  border-bottom:1px solid rgba(228,200,122,.4);
}

.contact-form-card{
  background:color-mix(in srgb, var(--paper-raised) 70%, transparent);
  backdrop-filter: blur(23px);
  -webkit-backdrop-filter: blur(23px);
  border:1px solid var(--line);
  padding:var(--sp-7);
}
.form-grid{
  display:grid;
  gap:var(--sp-5);
}
.field{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.field label{
  font-size:var(--fs-xs);
  font-weight:700;
  letter-spacing:.03em;
  color:var(--ink);
}
.field label .opt{ color:var(--slate-soft); font-weight:500; text-transform:none; letter-spacing:0; }
.field input,
.field select,
.field textarea{
  border:1.5px solid var(--line-strong);
  background:var(--paper);
  padding:14px 16px;
  font-size:var(--fs-sm);
  color:var(--ink);
  width:100%;
  transition:border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease);
}
.field select{ appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%239aa3b8' stroke-width='2'%3E%3Cpath d='M5 7.5l5 5 5-5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:40px; }
.field textarea{ resize:vertical; min-height:120px; }
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none;
  border-color:var(--ink);
  background:var(--paper-raised);
}
.field.has-error input, .field.has-error select, .field.has-error textarea{ border-color:var(--error); }
.field-error{
  font-size:12px; color:var(--error); display:none; font-weight:600;
}
.field.has-error .field-error{ display:block; }
.field-row-2{ display:grid; gap:var(--sp-5); grid-template-columns:1fr; }
.checkbox-row{
  display:flex; align-items:flex-start; gap:10px;
}
.checkbox-row input{ width:18px; height:18px; margin-top:2px; accent-color:var(--ink); flex:none; }
.checkbox-row label{ font-size:var(--fs-xs); color:var(--slate); font-weight:500; letter-spacing:0; }
.form-foot{
  display:flex; align-items:center; justify-content:space-between; gap:var(--sp-4);
  flex-wrap:wrap;
}
.form-note{ font-size:12px; color:var(--slate-soft); max-width:32ch; }

.form-success{
  display:none;
  flex-direction:column;
  align-items:flex-start;
  gap:var(--sp-4);
  padding:var(--sp-6);
  background:var(--black-950);
  color:var(--on-black);
}
.form-success.is-visible{ display:flex; }
.form-success .icon-tile{ background:var(--jodhpur-400); color:var(--black-950); }
.form-success h3{ color:var(--on-black); }
.form-success p{ color:var(--on-black-soft); }
.contact-form-card.is-submitted .form-grid,
.contact-form-card.is-submitted .form-foot{ display:none; }

@media (min-width:640px){
  .field-row-2{ grid-template-columns:1fr 1fr; }
}
@media (min-width:960px){
  .contact-layout{ grid-template-columns:.85fr 1.15fr; align-items:start; }
}
