/* DF Tour Booking – Frontend Styles (Elementor-friendly)
   Uses Elementor global CSS variables when available.
*/

.dft-scope{
  --dft-primary: var(--e-global-color-primary, #111827);
  --dft-accent: var(--e-global-color-accent, #2563eb);
  --dft-text: var(--e-global-color-text, #111827);
  --dft-muted: var(--e-global-color-secondary, #f6f7f7);
  --dft-border: rgba(0,0,0,.12);
  --dft-radius: 14px;
  color: var(--dft-text);
  font-family: inherit;
}
.dft-scope *{ box-sizing: border-box; }

.dft-card{
  border: 1px solid var(--dft-border);
  border-radius: var(--dft-radius);
  background: #fff;
  padding: 14px;
}
.dft-card + .dft-card{ margin-top: 14px; }

.dft-title{ font-weight: 800; font-size: 16px; line-height: 1.2; }
.dft-title-lg{ font-size: 18px; }
.dft-title-sm{ font-size: 14px; margin-bottom: 6px; }

.dft-meta{ display: grid; gap: 4px; margin-top: 8px; font-size: 14px; }
.dft-section{ margin-top: 10px; padding-top: 10px; border-top: 1px solid rgba(0,0,0,.08); }
.dft-text{ margin-top: 4px; font-size: 14px; }

.dft-badge{
  font-size: 12px;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(0,0,0,.03);
  white-space: nowrap;
}
.dft-card-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:10px; }
.dft-card-actions{ margin-top: 12px; display:flex; gap:10px; flex-wrap:wrap; align-items:center; }

.dft-alert{
  padding: 12px 14px;
  border-radius: var(--dft-radius);
  border: 1px solid var(--dft-border);
  background: #fff;
  margin: 0 0 14px;
}
.dft-alert.dft-success{ border-color: rgba(34,197,94,.35); background: rgba(34,197,94,.06); }
.dft-alert.dft-error{ border-color: rgba(239,68,68,.35); background: rgba(239,68,68,.06); }

.dft-btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:12px 14px; gap:8px;
  border-radius: calc(var(--dft-radius) - 2px);
  border:1px solid rgba(0,0,0,.15);
  text-decoration:none;
  cursor:pointer;
  font-weight:700;
  line-height:1;
}
.dft-btn-primary{ background: var(--dft-primary); border-color: var(--dft-primary); color: #fff !important; }
.dft-btn-ghost{ background: transparent; border-color: rgba(0,0,0,.20); color: var(--dft-text); }
.dft-btn-light{ background: var(--dft-muted); border-color: rgba(0,0,0,.12); color: var(--dft-text); }
.dft-btn:focus{ outline: 2px solid rgba(37,99,235,.35); outline-offset: 2px; }
.dft-btn.is-disabled, .dft-btn:disabled{ opacity: .55; cursor:not-allowed; }

.dft-form{ margin-top: 14px; display:grid; gap:10px; max-width:560px; }
.dft-field{ display:grid; gap:6px; }
.dft-label{ font-size: 12px; font-weight: 700; opacity: .85; }
.dft-help{ font-size: 12px; opacity: .75; }
.dft-input{
  width:100%;
  padding:12px;
  border-radius: calc(var(--dft-radius) - 4px);
  border: 1px solid rgba(0,0,0,.18);
  background:#fff;
  font:inherit;
}
.dft-input:focus{ outline: none; border-color: var(--dft-accent); box-shadow: 0 0 0 3px rgba(37,99,235,.18); }
.dft-check{ display:flex; gap:10px; align-items:flex-start; font-size:14px; }
.dft-check input{ margin-top: 3px; }
.dft-hp{ position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; overflow:hidden !important; }

.dft-filter{
  margin: 12px 0 14px;
  padding: 12px;
  border: 1px solid var(--dft-border);
  border-radius: var(--dft-radius);
  background: #fff;
}
.dft-filter-grid{
  display:grid;
  grid-template-columns: repeat(6, 1fr);
  gap:10px;
}
.dft-filter-grid .dft-wide{ grid-column: span 6; }
.dft-filter-actions{ margin-top:10px; display:flex; gap:10px; flex-wrap:wrap; }

.dft-trips-grid{ display:grid; gap:12px; }
.dft-cols-1{ grid-template-columns:repeat(1,1fr); }
.dft-cols-2{ grid-template-columns:repeat(2,1fr); }
.dft-cols-3{ grid-template-columns:repeat(3,1fr); }
.dft-cols-4{ grid-template-columns:repeat(4,1fr); }
.dft-cols-5{ grid-template-columns:repeat(5,1fr); }
.dft-cols-6{ grid-template-columns:repeat(6,1fr); }

@media (max-width: 980px){
  .dft-filter-grid{ grid-template-columns: repeat(2, 1fr); }
  .dft-filter-grid .dft-wide{ grid-column: span 2; }
  .dft-cols-3,.dft-cols-4,.dft-cols-5,.dft-cols-6{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px){
  .dft-filter-grid{ grid-template-columns: repeat(1, 1fr); }
  .dft-filter-grid .dft-wide{ grid-column: span 1; }
  .dft-cols-2,.dft-cols-3,.dft-cols-4,.dft-cols-5,.dft-cols-6{ grid-template-columns: repeat(1, 1fr); }
}

/* Calendar */
.dft-dep-picker{ margin-top: 12px; }
.dft-cal{ margin-top: 10px; }
.dft-cal-header{
  display:flex; justify-content:space-between; align-items:center; gap:10px;
  padding:8px 10px;
  border-radius: var(--dft-radius);
  background: var(--dft-muted);
  border: 1px solid rgba(0,0,0,.10);
}
.dft-cal-title{ font-weight:900; }
.dft-cal-nav{
  width:44px; height:38px;
  border-radius: calc(var(--dft-radius) - 2px);
  border: 1px solid rgba(0,0,0,.18);
  background:#fff;
  cursor:pointer;
  font-weight:900;
}
.dft-cal-table{
  width:100%;
  border-collapse: collapse;
  table-layout: fixed;
  margin-top: 10px;
}
.dft-cal-table th{ font-size:12px; padding:6px 0; border-bottom:1px solid rgba(0,0,0,.08); opacity:.8; }
.dft-cal-table td{ padding:6px; border-bottom:1px solid rgba(0,0,0,.06); vertical-align:top; }

.dft-cal-day{
  width:100%;
  min-height:56px;
  border-radius: calc(var(--dft-radius) - 2px);
  border: 1px solid rgba(0,0,0,.10);
  background:#fff;
  text-align:left;
  padding:8px;
  cursor:pointer;
}
.dft-cal-day.has-dep{ background: var(--dft-muted); }
.dft-cal-day.is-selected{ border: 2px solid var(--dft-accent); background: rgba(37,99,235,.10); }
.dft-cal-day.is-out{ opacity:.45; }
.dft-cal-day.is-disabled{ opacity:.55; cursor:not-allowed; }
.dft-day-num{ font-weight:800; font-size:13px; }
.dft-day-sub{ font-size:11px; margin-top:2px; opacity:.85; }

.dft-times{ margin-top: 12px; }
.dft-times-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap:8px;
  margin-top: 8px;
}
.dft-time-btn{
  text-align:left;
  padding:10px 12px;
  border-radius: calc(var(--dft-radius) - 2px);
  border: 1px solid rgba(0,0,0,.18);
  background:#fff;
  cursor:pointer;
}
.dft-time-btn.is-selected{ border: 2px solid var(--dft-accent); background: rgba(37,99,235,.10); }
.dft-time-btn.is-disabled{ opacity:.55; cursor:not-allowed; }
.dft-time{ font-weight:800; }
.dft-sub{ font-size:12px; margin-top:2px; opacity:.8; }

.dft-note{
  margin-top:10px;
  padding:10px 12px;
  border-radius: var(--dft-radius);
  background: rgba(0,0,0,.03);
  border: 1px dashed rgba(0,0,0,.18);
}


/* Pro Trip Cards / Customer Overview */
.dft-trip-pro{ padding:16px; }
.dft-trip-top{ display:flex; gap:12px; align-items:flex-start; justify-content:space-between; }
.dft-trip-tags{ display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.dft-trip-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:10px;
  margin-top:12px;
}
.dft-trip-kv{
  padding:10px 12px;
  border-radius: calc(var(--dft-radius) - 2px);
  background: rgba(0,0,0,.03);
  border: 1px solid rgba(0,0,0,.08);
}
.dft-trip-kv span{
  display:block;
  font-size:12px;
  font-weight:800;
  opacity:.75;
  margin-bottom:2px;
}
.dft-trip-kv strong{ font-size:14px; }
.dft-trip-kv-wide{ grid-column: span 2; }

.dft-trip-details{ margin-top:10px; }
.dft-trip-details summary{ cursor:pointer; font-weight:900; }
.dft-trip-detail{
  margin-top:8px;
  padding:10px 12px;
  border-radius: calc(var(--dft-radius) - 2px);
  border:1px solid rgba(0,0,0,.10);
  background:#fff;
  font-size:14px;
}

.dft-note-inline{
  display:block;
  font-size:13px;
  padding:10px 12px;
  border-radius: calc(var(--dft-radius) - 2px);
  border: 1px dashed rgba(0,0,0,.18);
  background: rgba(0,0,0,.02);
}

@media (max-width: 980px){
  .dft-trip-grid{ grid-template-columns: repeat(1, minmax(0, 1fr)); }
  .dft-trip-kv-wide{ grid-column: span 1; }
  .dft-trip-top{ flex-direction:column; align-items:flex-start; }
  .dft-trip-tags{ justify-content:flex-start; }
}
