/* Dragonfly Delivery V23 global design system lock.
   Purpose: centralize the shared visual rules that previously drifted across pages. */
:root{
  --df-ink:#142024;
  --df-muted:#526065;
  --df-line:#e6dfd2;
  --df-paper:#ffffff;
  --df-soft:#f7f4ec;
  --df-soft-2:#f6f2ea;
  --df-accent:#2f8780;
  --df-radius:18px;
  --df-shadow:0 10px 30px rgba(20,32,36,.08);
  --df-rail:980px;
  --df-wide:1180px;
}
html{scroll-behavior:smooth;overflow-y:scroll;}
body{color:var(--df-ink);background:var(--df-soft);font-family:Arial,Helvetica,sans-serif;}
body,main{overflow-x:hidden;}
main{display:block;}
main > section,
main > .section,
main > .hero,
main > .container,
main > .page-section,
main > article,
main > .content,
main > .app-card,
main > .estimate-card{
  max-width:var(--df-rail);
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:20px;
  padding-right:20px;
  box-sizing:border-box;
}
main > .hero,
main > .section.hero,
main > section.hero{
  max-width:var(--df-wide);
}
.section-inner,
.container,
.content,
.page-content,
.app-card,
.estimate-card,
.quote-form,
.booking-intake-form,
.blog-index,
.cards,
.card-grid{
  max-width:var(--df-rail);
  margin-left:auto;
  margin-right:auto;
  box-sizing:border-box;
}
.app-card,
.estimate-card,
.card,
.notice,
.quote-form,
.booking-section{
  border:1px solid var(--df-line);
  border-radius:var(--df-radius);
  background:var(--df-paper);
  box-shadow:var(--df-shadow);
}
a{color:var(--df-ink);}
a:hover{color:#000;}
.btn,
button,
input[type="submit"]{
  border-radius:999px;
  font-weight:800;
  letter-spacing:.01em;
}
.btn.primary,
.btn-deposit,
button.primary,
.quote-form button[type="submit"],
.booking-intake-form button[type="submit"]{
  background:var(--df-ink) !important;
  color:#fff !important;
  border:1px solid var(--df-ink) !important;
}
.btn.secondary,
button.secondary,
a.btn.secondary{
  background:#fff !important;
  color:var(--df-ink) !important;
  border:1px solid var(--df-ink) !important;
}
.btn.primary *,
.btn-deposit *,
button.primary *,
.quote-form button[type="submit"] *,
.booking-intake-form button[type="submit"] *{
  color:#fff !important;
}
input,select,textarea{
  max-width:100%;
  box-sizing:border-box;
}
.form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.form-grid .full,
.full{grid-column:1/-1;}
/* Approved header lock: do not move items page-to-page. */
.site-header.df-header-v217{
  background:#fff !important;
  border-bottom:1px solid var(--df-line) !important;
  position:relative;
  z-index:100;
}
.site-header.df-header-v217 .df-header-inner{
  max-width:var(--df-wide) !important;
  width:calc(100% - 40px) !important;
  margin:0 auto !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:22px !important;
  min-height:86px !important;
}
.site-header.df-header-v217 .nav-links{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:9px !important;
  flex-wrap:nowrap !important;
}
.site-header.df-header-v217 .nav-links a{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:38px !important;
  padding:9px 11px !important;
  color:var(--df-ink) !important;
  text-decoration:none !important;
  border:1px solid transparent !important;
  border-radius:999px !important;
  font-weight:800 !important;
  font-size:14px !important;
  line-height:1 !important;
  white-space:nowrap !important;
  transform:none !important;
}
.site-header.df-header-v217 .nav-links a:hover,
.site-header.df-header-v217 .nav-links a[aria-current="page"]{
  background:var(--df-soft-2) !important;
  border-color:var(--df-line) !important;
  color:var(--df-ink) !important;
}
.site-header.df-header-v217 .nav-links a.btn,
.site-header.df-header-v217 .nav-links a[href="/book-now"]{
  background:var(--df-ink) !important;
  border-color:var(--df-ink) !important;
  color:#fff !important;
  margin-left:8px !important;
  padding-left:16px !important;
  padding-right:16px !important;
}
/* Approved full footer lock. */
.footer.df-footer-v217{
  background:#fff !important;
  border-top:1px solid var(--df-line) !important;
  color:var(--df-ink) !important;
  padding:34px 20px calc(34px + env(safe-area-inset-bottom)) !important;
}
.footer.df-footer-v217 .df-footer-inner{
  max-width:var(--df-wide) !important;
  margin:0 auto !important;
}
.footer.df-footer-v217 a,
.footer.df-footer-v217 p,
.footer.df-footer-v217 li,
.footer.df-footer-v217 div,
.footer.df-footer-v217 span,
.footer.df-footer-v217 strong{
  color:var(--df-ink) !important;
}
.footer.df-footer-v217 a{
  text-decoration:none !important;
  font-weight:800 !important;
}
.footer.df-footer-v217 a:hover{text-decoration:underline !important;}
.footer.df-footer-v217 .footer-grid{
  display:grid !important;
  grid-template-columns:1.4fr repeat(3,1fr) !important;
  gap:24px !important;
  align-items:start !important;
}
.footer.df-footer-v217 ul{list-style:none !important;margin:8px 0 0 !important;padding:0 !important;}
.footer.df-footer-v217 li{margin:7px 0 !important;}
.footer.df-footer-v217 .footer-bottom{
  margin-top:24px !important;
  padding-top:18px !important;
  border-top:1px solid var(--df-line) !important;
}
/* Single mobile sticky CTA system. */
.mobile-sticky-cta{
  display:none !important;
}
@media (max-width:900px){
  body{padding-bottom:78px;}
  .site-header.df-header-v217 .df-header-inner{
    width:calc(100% - 28px) !important;
    min-height:auto !important;
    padding:12px 0 !important;
    display:block !important;
  }
  .site-header.df-header-v217 .brand-block{margin-bottom:10px !important;}
  .site-header.df-header-v217 .nav-links{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:8px !important;
  }
  .site-header.df-header-v217 .nav-links a,
  .site-header.df-header-v217 .nav-links a.btn,
  .site-header.df-header-v217 .nav-links a[href="/book-now"]{
    width:100% !important;
    min-height:42px !important;
    padding:10px 8px !important;
    margin-left:0 !important;
    font-size:13px !important;
  }
  main > section,
  main > .section,
  main > .hero,
  main > .container,
  main > .page-section,
  main > article,
  main > .content,
  main > .app-card,
  main > .estimate-card{
    max-width:100% !important;
    padding-left:16px !important;
    padding-right:16px !important;
  }
  .form-grid{grid-template-columns:1fr !important;}
  .footer.df-footer-v217 .footer-grid{
    grid-template-columns:1fr !important;
    gap:18px !important;
  }
  .mobile-sticky-cta{
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    z-index:9999 !important;
    display:grid !important;
    grid-template-columns:repeat(3,1fr) !important;
    gap:8px !important;
    padding:10px 10px calc(10px + env(safe-area-inset-bottom)) !important;
    background:#fff !important;
    border-top:1px solid var(--df-line) !important;
    box-shadow:0 -8px 28px rgba(20,32,36,.12) !important;
  }
  .mobile-sticky-cta a{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-height:46px !important;
    background:#000 !important;
    color:#fff !important;
    border:1px solid #000 !important;
    border-radius:999px !important;
    font-size:13px !important;
    font-weight:900 !important;
    line-height:1.1 !important;
    text-decoration:none !important;
    text-align:center !important;
    white-space:nowrap !important;
  }
  .mobile-sticky-cta a:visited,
  .mobile-sticky-cta a:hover,
  .mobile-sticky-cta a:active,
  .mobile-sticky-cta a:focus{
    color:#fff !important;
  }
}

/* Dispatch admin detail view */
.detail-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin:12px 0 18px;
}
.detail-grid > div,
.detail-item{
  border:1px solid var(--df-line);
  border-radius:14px;
  background:var(--df-soft-2);
  padding:12px;
}
.record-detail h3{margin:18px 0 8px;}
@media (max-width:900px){
  .detail-grid{grid-template-columns:1fr;}
  .table-wrap{overflow-x:auto;}
}


/* V23 dispatch triage form helpers */
.quote-form [name="Pickup access"],
.quote-form [name="Delivery access"]{
  min-height:44px;
}
