/* Contact — page-specific styles (moved from contact.html inline <style>) */

.dsmt-contact-layout { display: grid; grid-template-columns: 1.4fr 1fr; gap: clamp(32px,5vw,72px); padding: var(--dsmt-section-y) var(--dsmt-gutter); max-width: var(--dsmt-max); margin: 0 auto; align-items: start; }
@media(max-width:900px){ .dsmt-contact-layout { grid-template-columns: 1fr; } }
.dsmt-form-grid { display: grid; gap: 0; }
.dsmt-form-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
@media(max-width:560px){ .dsmt-form-row-2 { grid-template-columns: 1fr; } }

.dsmt-form-card {
  border: 1.5px solid var(--dsmt-line);
  border-radius: var(--dsmt-radius-xl);
  overflow: hidden;
  background: var(--dsmt-bg);
}
.dsmt-form-section {
  padding: 24px 28px;
  border-bottom: 1px solid var(--dsmt-line);
  display: grid;
  gap: 8px;
}
.dsmt-form-section:last-of-type { border-bottom: none; }
.dsmt-form-section-2col {
  padding: 0;
  border-bottom: 1px solid var(--dsmt-line);
  display: grid;
  grid-template-columns: 1fr 1fr;
}
@media(max-width:560px){ .dsmt-form-section-2col { grid-template-columns: 1fr; } }
.dsmt-form-section-2col .dsmt-form-cell {
  padding: 24px 28px;
  display: grid;
  gap: 8px;
}
.dsmt-form-section-2col .dsmt-form-cell + .dsmt-form-cell {
  border-left: 1px solid var(--dsmt-line);
}
@media(max-width:560px){
  .dsmt-form-section-2col .dsmt-form-cell + .dsmt-form-cell {
    border-left: none;
    border-top: 1px solid var(--dsmt-line);
  }
}
.dsmt-form-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.65rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--dsmt-ink-3);
  font-weight: 500;
}
.dsmt-form-card input[type="text"],
.dsmt-form-card input[type="email"],
.dsmt-form-card textarea {
  width: 100%;
  border: none;
  outline: none;
  background: transparent;
  font-family: var(--dsmt-font-body);
  font-size: 0.95rem;
  color: var(--dsmt-ink);
  padding: 0;
  line-height: 1.5;
  transition: color 0.15s;
}
.dsmt-form-card input[type="text"]::placeholder,
.dsmt-form-card input[type="email"]::placeholder,
.dsmt-form-card textarea::placeholder {
  color: var(--dsmt-ink-3);
}
.dsmt-form-card textarea {
  min-height: 120px;
  resize: none;
  line-height: 1.65;
}
/* Pill selectors — shared for both checkbox and radio */
.dsmt-pills-group { display: flex; gap: 8px; flex-wrap: wrap; }
.dsmt-pills-group input[type="checkbox"],
.dsmt-pills-group input[type="radio"] { display: none; }
.dsmt-pills-group label {
  padding: 7px 15px;
  border: 1.5px solid var(--dsmt-line);
  border-radius: 100px;
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--dsmt-ink-2);
  cursor: pointer;
  transition: all 0.15s;
  background: var(--dsmt-bg);
}
.dsmt-pills-group label:hover {
  border-color: var(--dsmt-blue);
  color: var(--dsmt-blue);
  background: var(--dsmt-blue-dim);
}
.dsmt-pills-group input:checked + label {
  background: var(--dsmt-ink);
  color: #fff;
  border-color: var(--dsmt-ink);
}
.dsmt-form-footer {
  padding: 20px 28px;
  border-top: 1px solid var(--dsmt-line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  background: var(--dsmt-bg-2);
  flex-wrap: wrap;
}
.dsmt-form-footer-note {
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.65rem;
  letter-spacing: 0.07em;
  color: var(--dsmt-ink-3);
}
.dsmt-contact-side { position: sticky; top: 80px; display: grid; gap: 24px; }
@media(max-width:900px){ .dsmt-contact-side { position: static; } }
.dsmt-contact-info-card { background: var(--dsmt-dark); border-radius: var(--dsmt-radius-xl); padding: 32px; }
.dsmt-contact-info-card h3 { font-family: 'Outfit', sans-serif; font-weight: 700; font-size: 1.3rem; letter-spacing: -0.025em; color: #fff; margin-bottom: 20px; }
.dsmt-contact-info-card h3 span { color: var(--dsmt-blue); }
.dsmt-contact-dl { display: grid; grid-template-columns: 90px 1fr; gap: 8px 12px; font-size: 0.875rem; }
.dsmt-contact-dl dt { font-family: 'JetBrains Mono', monospace; font-size: 0.67rem; color: rgba(255,255,255,0.35); letter-spacing: 0.08em; text-transform: uppercase; padding-top: 2px; }
.dsmt-contact-dl dd { margin: 0; color: rgba(255,255,255,0.6); }
.dsmt-contact-dl dd a { color: rgba(45,110,245,0.85); }
.dsmt-availability-card { background: var(--dsmt-bg-2); border: 1px solid var(--dsmt-line); border-radius: var(--dsmt-radius-xl); padding: 24px; }
.dsmt-avail-label { font-family: 'JetBrains Mono', monospace; font-size: 0.67rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--dsmt-ink-3); margin-bottom: 12px; }
.dsmt-avail-slots { display: grid; gap: 8px; }
.dsmt-avail-slot { display: flex; justify-content: space-between; align-items: center; padding: 10px 14px; background: var(--dsmt-bg); border: 1px solid var(--dsmt-line); border-radius: var(--dsmt-radius); font-size: 0.85rem; }
.dsmt-avail-slot .dsmt-slot-label { font-weight: 500; color: var(--dsmt-ink); }
.dsmt-avail-slot .dsmt-slot-status { font-family: 'JetBrains Mono', monospace; font-size: 0.67rem; letter-spacing: 0.06em; }
.dsmt-slot-open { color: var(--dsmt-green); }
.dsmt-slot-taken { color: var(--dsmt-ink-3); }
.dsmt-success-card { background: var(--dsmt-bg-2); border: 1px solid var(--dsmt-line); border-radius: var(--dsmt-radius-xl); padding: 48px 40px; text-align: center; display: none; }
.dsmt-success-card.dsmt-on { display: block; }
.dsmt-success-icon { width: 56px; height: 56px; background: var(--dsmt-blue); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; font-size: 22px; color: #fff; }
.dsmt-success-card h3 { font-family: 'Outfit', sans-serif; font-weight: 700; font-size: 1.5rem; letter-spacing: -0.025em; color: var(--dsmt-ink); margin-bottom: 12px; }
.dsmt-success-card h3 span { color: var(--dsmt-blue); }
.dsmt-success-card p { font-size: 0.925rem; color: var(--dsmt-ink-2); line-height: 1.7; max-width: 42ch; margin: 0 auto; }

/* ── Fluent Forms reskin (Contact page) ──
   Fluent Forms owns validation, submission and the confirmation state;
   this just maps its generated markup onto the original .dsmt-form-*
   look. Field-level container classes (dsmt-form-cell / dsmt-form-section)
   are set per-field in the Fluent Forms builder (Advanced → Container Class) —
   this CSS assumes that convention. */
.dsmt-contact-fluentform .fluentform { display: block; max-width: none; margin: 0; }
.dsmt-contact-fluentform .frm-fluent-form { display: block; }

.dsmt-contact-fluentform .ff-t-container.ff_columns_total_2 {
  display: grid; grid-template-columns: 1fr 1fr; gap: 0;
  border-bottom: 1px solid var(--dsmt-line);
}
@media (max-width: 560px) {
  .dsmt-contact-fluentform .ff-t-container.ff_columns_total_2 { grid-template-columns: 1fr; }
}
.dsmt-contact-fluentform .ff-t-cell { padding: 0 !important; }
.dsmt-contact-fluentform .ff-t-column-2 { border-left: 1px solid var(--dsmt-line); }
@media (max-width: 560px) {
  .dsmt-contact-fluentform .ff-t-column-2 { border-left: none; border-top: 1px solid var(--dsmt-line); }
}

.dsmt-contact-fluentform .dsmt-form-cell,
.dsmt-contact-fluentform .dsmt-form-section {
  padding: 24px 28px; display: grid; gap: 8px; margin: 0;
}
.dsmt-contact-fluentform .dsmt-form-section { border-bottom: 1px solid var(--dsmt-line); }
.dsmt-contact-fluentform .ff-t-container.ff_columns_total_2 .dsmt-form-cell { border-bottom: none; }

.dsmt-contact-fluentform .ff-el-input--label { margin: 0; }
.dsmt-contact-fluentform .ff-el-input--label label {
  font-family: 'JetBrains Mono', monospace; font-size: 0.65rem; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--dsmt-ink-3); font-weight: 500;
}
.dsmt-contact-fluentform .ff-el-is-required .ff_asterick { color: var(--dsmt-blue); }

.dsmt-contact-fluentform .ff-el-form-control {
  width: 100%; border: none !important; outline: none; background: transparent !important;
  font-family: var(--dsmt-font-body); font-size: 0.95rem; color: var(--dsmt-ink);
  padding: 0 !important; line-height: 1.5; border-radius: 0 !important; box-shadow: none !important;
}
.dsmt-contact-fluentform .ff-el-form-control::placeholder { color: var(--dsmt-ink-3); }
.dsmt-contact-fluentform .ff-el-form-control:focus { border: none !important; box-shadow: none !important; }
.dsmt-contact-fluentform textarea.ff-el-form-control { min-height: 120px; resize: none; line-height: 1.65; }

/* Pill-style checkbox / radio groups */
.dsmt-contact-fluentform .dsmt-form-section .ff-el-input--content {
  display: flex; gap: 8px; flex-wrap: wrap; margin-top: 4px;
}
.dsmt-contact-fluentform .ff-el-form-check { margin: 0; }
.dsmt-contact-fluentform .ff-el-form-check-input {
  position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none;
}
.dsmt-contact-fluentform .ff-el-form-check-label {
  padding: 7px 15px; border: 1.5px solid var(--dsmt-line); border-radius: 100px;
  font-size: 0.8rem; font-weight: 500; color: var(--dsmt-ink-2); cursor: pointer;
  transition: all 0.15s; background: var(--dsmt-bg); display: inline-flex; align-items: center; gap: 0; margin: 0;
}
.dsmt-contact-fluentform .ff-el-form-check-label:hover {
  border-color: var(--dsmt-blue); color: var(--dsmt-blue); background: var(--dsmt-blue-dim);
}
.dsmt-contact-fluentform .ff-el-form-check-label:has(input:checked),
.dsmt-contact-fluentform .ff-el-form-check-label.dsmt-ff-checked {
  background: var(--dsmt-ink); color: #fff; border-color: var(--dsmt-ink);
}

/* Submit footer */
.dsmt-contact-fluentform .ff_submit_btn_wrapper {
  padding: 20px 28px; margin: 0;
  display: flex; justify-content: flex-start;
}
.dsmt-contact-fluentform .ff-btn-submit {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 16px; border-radius: var(--dsmt-radius);
  font-family: var(--dsmt-font-body); font-size: 0.825rem; font-weight: 600;
  cursor: pointer; border: none; transition: all 0.15s;
  background: var(--dsmt-blue) !important; color: #fff !important; box-shadow: none !important;
}
.dsmt-contact-fluentform .ff-btn-submit:hover { opacity: 0.88; transform: translateY(-1px); }

.dsmt-contact-fluentform .error.text-danger { color: #E11D48; font-size: 0.78rem; margin-top: 2px; }
