.elementor-514 .elementor-element.elementor-element-43637b5{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-html .neb-protected-content-message, .elementor-widget-html .protected-content-error-msg{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}/* Start custom CSS for html, class: .elementor-element-7f2be4b */.dds-appt *, .dds-appt *::before, .dds-appt *::after { box-sizing: border-box; margin: 0; padding: 0; }
 
.dds-appt {
  font-family: 'Inter', sans-serif;
  color: #12302d;
  --green-dark: #0f2422;
  --green-mid:  #12302d;
  --green-acc:  #2d6e5e;
  --gold:       #c8a97e;
  --cream:      #f4f1ed;
  --cream-2:    #edf3f0;
  --text:       #5f716d;
  --border:     rgba(18,48,45,0.1);
  --pad-x:      clamp(24px,5vw,80px);
  --max-w:      1280px;
}
 
/* ══ LABEL ══════════════════════════════════ */
.dds-appt-label {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 10.5px; font-weight: 600;
  letter-spacing: .2em; text-transform: uppercase;
  color: var(--green-acc); margin-bottom: 14px;
}
.dds-appt-label::before {
  content:''; width:26px; height:1px;
  background: var(--gold); flex-shrink:0;
}
.dds-appt-label.light { color:rgba(255,255,255,.65); }
.dds-appt-label.light::before { background:rgba(255,255,255,.4); }
 
/* ══ HERO STRIP ═════════════════════════════ */
.dds-appt-hero {
  background: linear-gradient(160deg,#edf3f0 0%,#f1f5f2 100%);
  padding: 100px var(--pad-x) 80px;
  text-align: center;
  position: relative; overflow: hidden;
}
 
.dds-appt-hero h1 {
  font-family: 'Playfair Display', serif;
  font-size: clamp(38px,5vw,68px);
  font-weight: 400; line-height: 1.08;
  color: var(--green-mid); margin-bottom: 18px;
}
.dds-appt-hero h1 em { font-style:italic; font-weight:300; color:var(--green-acc); }
 
.dds-appt-hero p {
  font-size: 15px; line-height: 1.85;
  color: var(--text); max-width: 500px; margin: 0 auto 36px;
}
 
/* trust pills */
.dds-appt-pills {
  display: flex; align-items: center; justify-content: center;
  flex-wrap: wrap; gap: 10px;
}
.dds-appt-pill {
  display: flex; align-items: center; gap: 7px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 100px;
  padding: 8px 16px;
  font-size: 12px; font-weight: 500; color: var(--green-mid);
  box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.dds-appt-pill svg {
  width:14px; height:14px; flex-shrink:0;
  fill:none; stroke:var(--green-acc);
  stroke-width:2; stroke-linecap:round; stroke-linejoin:round;
}
 
/* ══ MAIN GRID ══════════════════════════════ */
.dds-appt-main {
  max-width: var(--max-w); margin: 0 auto;
  padding: 80px var(--pad-x) 100px;
  display: grid;
  grid-template-columns: 1fr 0.75fr;
  gap: 56px; align-items: start;
}
 
/* ══ FORM CARD ══════════════════════════════ */
.dds-appt-form-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 24px;
  padding: 52px 48px;
  box-shadow: 0 8px 40px rgba(0,0,0,0.07);
  position: relative; overflow: hidden;
}
 
/* top gold accent */
.dds-appt-form-card::before {
  content:''; position:absolute;
  top:0; left:0; right:0; height:3px;
  background: linear-gradient(90deg, var(--gold), rgba(200,169,126,0.3));
}
 
/* ── Progress bar ────────────────────────── */
.dds-progress-bar {
  display: flex; align-items: center;
  gap: 0; margin-bottom: 44px;
}
 
.dds-progress-step {
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  flex: 1; cursor: default;
}
 
.dds-progress-dot {
  width: 34px; height: 34px; border-radius: 50%;
  border: 2px solid rgba(18,48,45,0.15);
  background: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 600; color: rgba(18,48,45,0.35);
  transition: all .4s ease; position: relative; z-index: 2;
}
.dds-progress-dot svg {
  width:14px; height:14px; fill:none; stroke:#fff;
  stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round;
  display:none;
}
 
.dds-progress-step.active .dds-progress-dot {
  border-color: var(--green-acc); background: var(--green-acc);
  color: #fff; box-shadow: 0 0 0 4px rgba(45,110,94,0.12);
}
.dds-progress-step.done .dds-progress-dot {
  border-color: var(--green-acc); background: var(--green-acc); color:#fff;
}
.dds-progress-step.done .dds-progress-dot span { display:none; }
.dds-progress-step.done .dds-progress-dot svg  { display:block; }
 
.dds-progress-label {
  font-size: 10px; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase;
  color: rgba(18,48,45,0.3);
  transition: color .4s;
}
.dds-progress-step.active .dds-progress-label,
.dds-progress-step.done  .dds-progress-label { color: var(--green-acc); }
 
/* connector line between dots */
.dds-progress-connector {
  flex: 1; height: 1.5px; margin-bottom: 22px;
  background: rgba(18,48,45,0.1);
  position: relative; overflow: hidden;
}
.dds-progress-connector::after {
  content:''; position:absolute; inset:0;
  background: var(--green-acc);
  transform: scaleX(0); transform-origin: left;
  transition: transform .5s ease;
}
.dds-progress-connector.filled::after { transform: scaleX(1); }
 
/* ── Step panels ─────────────────────────── */
.dds-step-panel { display: none; }
.dds-step-panel.active { display: block; }
 
.dds-step-heading {
  margin-bottom: 30px;
}
.dds-step-heading h2 {
  font-family: 'Playfair Display', serif;
  font-size: 26px; font-weight: 400;
  color: var(--green-mid); line-height: 1.2; margin-bottom: 6px;
}
.dds-step-heading h2 em { font-style: italic; font-weight: 300; }
.dds-step-heading p {
  font-size: 13px; color: var(--text); line-height: 1.6;
}
 
/* ── Form fields ─────────────────────────── */
.dds-appt-row {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 16px; margin-bottom: 16px;
}
.dds-appt-row.full { grid-template-columns: 1fr; }
 
.dds-field { display: flex; flex-direction: column; gap: 7px; }
 
.dds-field label {
  font-size: 11px; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--green-mid);
}
.dds-field label .req { color: var(--gold); margin-left: 2px; }
 
.dds-field input,
.dds-field select,
.dds-field textarea {
  width: 100%; padding: 13px 16px;
  border: 1.5px solid rgba(18,48,45,0.12);
  border-radius: 12px; background: #fdfbf9;
  font-family: 'Inter', sans-serif; font-size: 14px;
  color: var(--green-mid); outline: none;
  transition: border-color .3s, box-shadow .3s, background .3s;
  -webkit-appearance: none; appearance: none;
}
.dds-field input:focus,
.dds-field select:focus,
.dds-field textarea:focus {
  border-color: var(--green-acc);
  box-shadow: 0 0 0 3px rgba(45,110,94,0.1);
  background: #fff;
}
.dds-field input::placeholder,
.dds-field textarea::placeholder { color: #b5bfbc; }
.dds-field textarea { resize:vertical; min-height:110px; line-height:1.7; }
 
/* service .elementor-514 .elementor-element.elementor-element-7f2be4b cards */
.dds-service-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 10px; margin-bottom: 16px;
}
 
.dds-service-card {
  border: 1.5px solid rgba(18,48,45,0.1);
  border-radius: 12px; padding: 16px;
  cursor: pointer; background: #fdfbf9;
  transition: border-color .3s, background .3s, box-shadow .3s;
  display: flex; align-items: flex-start; gap: 12px;
}
.dds-service-card:hover {
  border-color: rgba(45,110,94,0.3);
  background: rgba(45,110,94,0.03);
}
.dds-service-card.selected {
  border-color: var(--green-acc);
  background: rgba(45,110,94,0.05);
  box-shadow: 0 0 0 3px rgba(45,110,94,0.1);
}
.dds-service-card input[type="radio"] { display:none; }
 
.dds-service-icon {
  width: 34px; height: 34px; border-radius: 8px;
  background: rgba(45,110,94,0.08);
  display: flex; align-items: center; justify-content: center; flex-shrink:0;
}
.dds-service-icon svg {
  width:16px; height:16px; fill:none; stroke:var(--green-acc);
  stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;
}
.dds-service-card.selected .dds-service-icon { background: var(--green-acc); }
.dds-service-card.selected .dds-service-icon svg { stroke:#fff; }
 
.dds-service-card-name {
  font-size: 13px; font-weight: 600;
  color: var(--green-mid); line-height: 1.3; margin-bottom: 3px;
}
.dds-service-card-desc {
  font-size: 11px; color: var(--text); line-height: 1.4;
}
 
/* date/time picker visual */
.dds-time-grid {
  display: grid; grid-template-columns: repeat(3,1fr);
  gap: 8px; margin-top: 8px;
}
.dds-time-slot {
  border: 1.5px solid rgba(18,48,45,0.1);
  border-radius: 10px; padding: 10px 8px;
  text-align: center; cursor: pointer;
  font-size: 13px; font-weight: 500; color: var(--green-mid);
  background: #fdfbf9;
  transition: border-color .25s, background .25s, color .25s;
}
.dds-time-slot:hover    { border-color: rgba(45,110,94,.35); background:rgba(45,110,94,.03); }
.dds-time-slot.selected { border-color: var(--green-acc); background:rgba(45,110,94,.06); color:var(--green-acc); font-weight:600; }
.dds-time-slot.unavailable { opacity:.35; cursor:not-allowed; pointer-events:none; }
 
/* patient type toggle */
.dds-patient-toggle {
  display: flex; border: 1.5px solid rgba(18,48,45,0.12);
  border-radius: 12px; overflow: hidden; margin-bottom:16px;
}
.dds-patient-toggle label {
  flex:1; text-align:center;
  padding: 12px 8px; cursor:pointer;
  font-size:13px; font-weight:500; color:var(--text);
  transition: background .3s, color .3s;
  letter-spacing:0; text-transform:none;
}
.dds-patient-toggle input { display:none; }
.dds-patient-toggle input:checked + label {
  background: var(--green-acc); color:#fff; font-weight:600;
}
 
/* ── Nav buttons ─────────────────────────── */
.dds-form-nav {
  display: flex; align-items: center; justify-content: space-between;
  margin-top: 32px; gap: 12px;
}
 
.dds-btn-back {
  height:48px; padding:0 24px; border-radius:100px;
  border:1.5px solid rgba(18,48,45,0.15); background:transparent;
  color:var(--text); font-family:'Inter',sans-serif;
  font-size:13px; font-weight:500; cursor:pointer;
  display:flex; align-items:center; gap:7px;
  transition: border-color .25s, color .25s;
}
.dds-btn-back:hover { border-color:var(--green-acc); color:var(--green-acc); }
.dds-btn-back svg {
  width:14px; height:14px; fill:none; stroke:currentColor;
  stroke-width:2; stroke-linecap:round; stroke-linejoin:round;
}
 
.dds-btn-next {
  height:50px; padding:0 32px; border-radius:100px;
  border:none; background:var(--green-mid); color:#fff;
  font-family:'Inter',sans-serif; font-size:13px; font-weight:600;
  letter-spacing:.06em; text-transform:uppercase; cursor:pointer;
  display:flex; align-items:center; gap:9px; margin-left:auto;
  transition: background .3s, transform .3s, box-shadow .3s;
}
.dds-btn-next:hover {
  background:var(--green-acc); transform:translateY(-2px);
  box-shadow:0 10px 28px rgba(45,110,94,.28);
}
.dds-btn-next svg {
  width:14px; height:14px; fill:none; stroke:#fff;
  stroke-width:2; stroke-linecap:round; stroke-linejoin:round;
  transition:transform .3s;
}
.dds-btn-next:hover svg { transform:translateX(3px); }
 
/* step counter */
.dds-step-counter {
  font-size:11px; color:var(--text); letter-spacing:.08em;
}
.dds-step-counter strong { color:var(--green-mid); }
 
/* ── Success state ───────────────────────── */
.dds-appt-success {
  display:none; text-align:center; padding:20px 0;
}
.dds-success-icon {
  width:72px; height:72px; border-radius:50%;
  background:rgba(45,110,94,0.08);
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 24px;
}
.dds-success-icon svg {
  width:32px; height:32px; fill:none; stroke:var(--green-acc);
  stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;
}
.dds-appt-success h3 {
  font-family:'Playfair Display',serif;
  font-size:28px; font-weight:400; color:var(--green-mid);
  margin-bottom:12px;
}
.dds-appt-success h3 em { font-style:italic; font-weight:300; }
.dds-appt-success p { font-size:14px; color:var(--text); line-height:1.8; max-width:380px; margin:0 auto 28px; }
.dds-success-detail {
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(45,110,94,0.06); border:1px solid rgba(45,110,94,0.15);
  border-radius:100px; padding:10px 20px;
  font-size:13px; font-weight:500; color:var(--green-acc);
}
.dds-success-detail svg {
  width:14px; height:14px; fill:none; stroke:currentColor;
  stroke-width:2; stroke-linecap:round; stroke-linejoin:round;
}
 
/* ══ SIDEBAR ════════════════════════════════ */
.dds-appt-sidebar { display:flex; flex-direction:column; gap:20px; }
 
/* contact card */
.dds-sidebar-card {
  background:#fff; border:1px solid var(--border);
  border-radius:18px; padding:28px 26px;
  box-shadow:0 4px 20px rgba(0,0,0,0.05);
}
.dds-sidebar-card-title {
  font-size:10px; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold); margin-bottom:16px;
}
.dds-contact-list { display:flex; flex-direction:column; gap:14px; }
.dds-contact-item { display:flex; align-items:flex-start; gap:12px; }
.dds-contact-item-icon {
  width:34px; height:34px; border-radius:50%; flex-shrink:0;
  background:rgba(45,110,94,0.08);
  display:flex; align-items:center; justify-content:center;
}
.dds-contact-item-icon svg {
  width:14px; height:14px; fill:none; stroke:var(--green-acc);
  stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;
}
.dds-contact-item-body { min-width:0; }
.dds-contact-item-label {
  font-size:10px; font-weight:600; letter-spacing:.12em;
  text-transform:uppercase; color:var(--text); margin-bottom:3px;
}
.dds-contact-item-val {
  font-size:13.5px; font-weight:500; color:var(--green-mid); line-height:1.5;
}
.dds-contact-item-val a { color:inherit; text-decoration:none; transition:color .2s; }
.dds-contact-item-val a:hover { color:var(--green-acc); }
 
/* why us */
.dds-why-list { display:flex; flex-direction:column; gap:11px; }
.dds-why-item { display:flex; align-items:center; gap:10px; font-size:13px; color:var(--green-mid); font-weight:500; }
.dds-why-item::before {
  content:''; width:6px; height:6px; border-radius:50%;
  background:var(--gold); flex-shrink:0;
}
 
/* insurance */
.dds-insurance-logos {
  display:flex; flex-wrap:wrap; gap:8px; margin-top:4px;
}
.dds-insurance-tag {
  padding:5px 12px; border-radius:100px;
  border:1px solid rgba(18,48,45,0.1);
  font-size:11px; font-weight:500; color:var(--text);
  background:#fdfbf9;
}
 
/* review snippet */
.dds-sidebar-review {
  background:var(--green-dark); border-radius:18px;
  padding:28px 26px; position:relative; overflow:hidden;
}
.dds-sidebar-review::before {
  content:'\201C'; font-family:'Playfair Display',serif;
  font-size:80px; line-height:1; color:rgba(255,255,255,0.07);
  position:absolute; top:8px; right:16px;
  pointer-events:none;
}
.dds-review-stars { display:flex; gap:3px; margin-bottom:12px; }
.dds-review-stars svg { width:14px; height:14px; fill:#fbbc04; }
.dds-review-text {
  font-size:13px; line-height:1.8;
  color:rgba(255,255,255,0.7); margin-bottom:16px; font-style:italic;
}
.dds-review-author { display:flex; align-items:center; gap:10px; }
.dds-review-avatar {
  width:36px; height:36px; border-radius:50%; object-fit:cover;
  border:1.5px solid rgba(255,255,255,0.15); flex-shrink:0;
}
.dds-review-author-name { font-size:13px; font-weight:600; color:#fff; line-height:1.2; }
.dds-review-author-sub  { font-size:11px; color:rgba(255,255,255,0.4); }
 
/* ══ SCROLL REVEAL ══════════════════════════ */
.sr { opacity:0; transform:translateY(22px); transition:opacity .65s ease,transform .65s ease; }
.sr.sr-left  { transform:translateX(-22px); }
.sr.sr-right { transform:translateX(22px); }
.sr.visible  { opacity:1; transform:none; }
.sr-d1{transition-delay:.1s} .sr-d2{transition-delay:.2s} .sr-d3{transition-delay:.3s}
 
/* ══ RESPONSIVE ═════════════════════════════ */
@media(max-width:960px){
  .dds-appt-main { grid-template-columns:1fr; }
  .dds-appt-sidebar { order:-1; display:grid; grid-template-columns:1fr 1fr; }
  .dds-sidebar-review { grid-column:1/-1; }
}
@media(max-width:640px){
  .dds-appt-form-card { padding:32px 24px; }
  .dds-appt-row { grid-template-columns:1fr; }
  .dds-service-grid { grid-template-columns:1fr; }
  .dds-time-grid { grid-template-columns:repeat(2,1fr); }
  .dds-appt-sidebar { grid-template-columns:1fr; }
  .dds-appt-pills { gap:8px; }
}/* End custom CSS */