/* Public-site redesign theme
   Scope: only applies when <body> has class `.public`
*/

.public{
  --ds-bg: #0b0f17;
  --ds-surface: rgba(255,255,255,0.06);
  --ds-surface-2: rgba(255,255,255,0.09);
  --ds-border: rgba(255,255,255,0.10);
  --ds-text: #eaf0ff;
  --ds-muted: rgba(234,240,255,0.72);
  --ds-brand: #4f8cff;
  --ds-brand-2: #7a5cff;
  --ds-radius: 18px;
  --ds-radius-sm: 12px;
  --ds-shadow: 0 18px 60px rgba(0,0,0,0.40);
  --ds-shadow-sm: 0 10px 28px rgba(0,0,0,0.28);
}

.public{
  color: var(--ds-text);
  background: radial-gradient(1200px 700px at 10% 0%, rgba(79,140,255,0.22), transparent 55%),
              radial-gradient(900px 700px at 85% 15%, rgba(122,92,255,0.18), transparent 55%),
              var(--ds-bg);
  font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Mobile: avoid “blue bleed” through translucent surfaces */
@media (max-width: 768px){
  body.public{
    background: var(--ds-bg) !important;
  }
}

.public a{ color: inherit; }
.public a:hover{ color: var(--ds-text); }

.public .container,
.public .container-fluid{
  padding-left: 18px;
  padding-right: 18px;
}

/* Typography helpers */
.public .ds-eyebrow{
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ds-muted);
}
.public .ds-h1{
  font-size: clamp(34px, 4.2vw, 60px);
  line-height: 1.05;
  letter-spacing: -0.02em;
  font-weight: 800;
}
.public .ds-h2{
  font-size: clamp(24px, 2.6vw, 36px);
  line-height: 1.15;
  letter-spacing: -0.01em;
  font-weight: 800;
}
.public .ds-lead{
  font-size: clamp(16px, 1.35vw, 18px);
  line-height: 1.6;
  color: var(--ds-muted);
  max-width: 70ch;
}

/* Section layout */
.public .ds-section{
  padding: clamp(22px, 3vw, 54px) 0;
}
.public .ds-section--alt{
  background: rgba(255,255,255,0.03);
  border-top: 1px solid rgba(255,255,255,0.08);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.public .ds-section__title{
  margin: 0 0 14px 0;
}
.public .ds-divider{
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--ds-border), transparent);
}

/* Cards */
.public .ds-card{
  background: var(--ds-surface);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius);
  box-shadow: var(--ds-shadow-sm);
  overflow: hidden;
}
.public .ds-card__body{
  padding: 18px;
}
.public .ds-card__title{
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -0.01em;
  margin: 0 0 6px 0;
}
.public .ds-card__text{
  margin: 0;
  color: var(--ds-muted);
  line-height: 1.6;
}

/* ===========================
   DS form controls (public frontend)
   Use this everywhere on the frontend so selects/inputs match schedule styling.
   =========================== */
.public .form-control,
.public .form-select{
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  color: rgba(234,240,255,0.92) !important;
  border-radius: 14px !important;
  padding: 12px 12px !important;
  min-height: 46px;
  box-shadow: none !important;
}
.public .form-control::placeholder{
  color: rgba(234,240,255,0.55) !important;
}
.public .form-control:focus,
.public .form-select:focus{
  border-color: rgba(79,140,255,0.55) !important;
  box-shadow: 0 0 0 4px rgba(79,140,255,0.18) !important;
}
.public label,
.public .form-label{
  color: rgba(234,240,255,0.78);
  font-weight: 900;
  letter-spacing: .02em;
}

/* Select2 (public frontend) — match schedule-page DS dropdown */
.public .select2-container{
  width: 100% !important;
}
.public .select2-container .select2-selection--single{
  height: auto !important;
  min-height: 46px;
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  border-radius: 14px !important;
  color: var(--ds-text) !important;
}
.public .select2-container .select2-selection--single .select2-selection__rendered{
  color: var(--ds-text) !important;
  line-height: 1.2 !important;
  padding: 12px 40px 12px 12px !important;
}
.public .select2-container .select2-selection--single .select2-selection__arrow{
  top: 50% !important;
  transform: translateY(-50%);
  right: 10px !important;
}
.public .select2-dropdown{
  background: rgba(18,18,18,0.98) !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  border-radius: 14px !important;
  box-shadow: 0 22px 70px rgba(0,0,0,0.55) !important;
  overflow: hidden;
}
.public .select2-results__option{
  color: rgba(234,240,255,0.92) !important;
}
.public .select2-results__option--highlighted{
  background: rgba(255,255,255,0.10) !important;
  color: #fff !important;
}

/* ===========================
   Global flash alerts (DS)
   =========================== */
.public .ds-alert-stack{
  position: fixed;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  width: min(980px, calc(100vw - 24px));
  display: flex;
  flex-direction: column;
  gap: 10px;
  z-index: 1105; /* above headers/modals */
  pointer-events: none;
}
.public .ds-alert-stack .ds-flash-alert{
  pointer-events: auto;
  margin: 0;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(18,18,18,0.92);
  color: rgba(234,240,255,0.92);
  box-shadow: 0 22px 70px rgba(0,0,0,0.55);
}
.public .ds-alert-stack .alert-success.ds-flash-alert{
  border-color: rgba(16,185,129,0.28);
  background: linear-gradient(180deg, rgba(16,185,129,0.14), rgba(18,18,18,0.92));
}
.public .ds-alert-stack .alert-danger.ds-flash-alert{
  border-color: rgba(239,68,68,0.30);
  background: linear-gradient(180deg, rgba(239,68,68,0.14), rgba(18,18,18,0.92));
}
.public .ds-alert-stack .alert-info.ds-flash-alert{
  border-color: rgba(79,140,255,0.28);
  background: linear-gradient(180deg, rgba(79,140,255,0.14), rgba(18,18,18,0.92));
}
.public .ds-flash-alert__row{
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding-right: 32px; /* room for close button */
}
.public .ds-flash-alert__icon{
  width: 28px;
  height: 28px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.10);
  flex: 0 0 auto;
  margin-top: 1px;
}
.public .ds-flash-alert__content{
  font-weight: 800;
  line-height: 1.45;
  color: rgba(234,240,255,0.92);
}
.public .ds-alert-stack .ds-flash-alert .btn-close{
  filter: invert(1);
  opacity: 0.8;
}
.public .ds-alert-stack .ds-flash-alert .btn-close:hover{ opacity: 1; }

/* Estimate tables (shared DS look) */
.public .estimate-card{
  background: rgba(255,255,255,0.045);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 18px;
  box-shadow: 0 18px 60px rgba(0,0,0,0.40);
  padding: 14px;
}
.public .estimate-time{
  margin: 0 0 10px 0;
  font-weight: 900;
  color: rgba(234,240,255,0.92);
}
.public .estimate-time #estimated_time{
  font-variant-numeric: tabular-nums;
  font-weight: 900;
  margin-left: 6px;
}
.public .estimate-table{
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  overflow: hidden;
  border-radius: 14px;
  background: rgba(10,10,12,0.22);
  border: 1px solid rgba(255,255,255,0.10);
}
.public .estimate-table td,
.public .estimate-table th{
  padding: 12px 12px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  color: rgba(234,240,255,0.92);
  font-size: 14px;
  vertical-align: middle;
}
.public .estimate-table tr:last-child td,
.public .estimate-table tr:last-child th{
  border-bottom: 0;
}
.public .estimate-table tbody tr:nth-child(odd){
  background: rgba(255,255,255,0.02);
}
.public .estimate-table td:first-child,
.public .estimate-table th:first-child{
  width: 62%;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.public .estimate-table .estimate-value,
.public .estimate-table td:last-child,
.public .estimate-table th:last-child{
  width: 38%;
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.public .estimate-row--subtotal{
  background: rgba(79,140,255,0.08) !important;
}
.public .estimate-row--tax td:first-child{
  color: rgba(234,240,255,0.80);
}
.public .estimate-row--final{
  background: rgba(79,140,255,0.16) !important;
}

@media (max-width: 768px){
  .public .estimate-card{ padding: 12px; }
  .public .estimate-table td:first-child,
  .public .estimate-table th:first-child{ width: 56%; }
  .public .estimate-table td:last-child,
  .public .estimate-table th:last-child{ width: 44%; }
}

/* Buttons */
.public .btn-brand,
.public .main-btn,
.public .btn.btn-primary{
  background: linear-gradient(135deg, var(--ds-brand), #0824ff);
  border: 0;
  color: #fff !important;
  border-radius: 999px;
  padding: 12px 18px;
  font-weight: 800;
  letter-spacing: .02em;
  transition: transform .18s ease, filter .18s ease, box-shadow .18s ease;
}
.public .btn-brand:hover,
.public .main-btn:hover,
.public .btn.btn-primary:hover{
  filter: brightness(1.05);
  transform: translateY(-1px);
  box-shadow: 0 18px 44px rgba(79,140,255,0.26);
}
.public .btn-brand:active,
.public .main-btn:active,
.public .btn.btn-primary:active{
  transform: translateY(0);
  filter: brightness(0.98);
}
.public .btn-brand:focus-visible,
.public .main-btn:focus-visible,
.public .btn.btn-primary:focus-visible{
  outline: none;
  box-shadow: 0 0 0 4px rgba(79,140,255,0.22), 0 14px 34px rgba(79,140,255,0.20);
}
@media (prefers-reduced-motion: reduce){
  .public .btn-brand,
  .public .main-btn,
  .public .btn.btn-primary{ transition: none; }
  .public .btn-brand:hover,
  .public .main-btn:hover,
  .public .btn.btn-primary:hover{ transform: none; }
}
.public .btn-ghost{
  background: rgba(255,255,255,0.06);
  border: 1px solid var(--ds-border);
  color: var(--ds-text) !important;
  border-radius: 999px;
  padding: 12px 18px;
  font-weight: 800;
}

/* Forms */
.public .form-control,
.public .form-select,
.public select.form-control{
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  color: var(--ds-text) !important;
  border-radius: 14px !important;
  padding: 12px 12px !important;
}
.public .form-select option{
  background-color: #121212;
  color: var(--ds-text);
}
.public .form-select option:disabled{
  color: rgba(234,240,255,0.45);
}
.public .form-control::placeholder{ color: rgba(234,240,255,0.55); }
.public .form-control:focus{
  border-color: rgba(79,140,255,0.55) !important;
  box-shadow: 0 0 0 4px rgba(79,140,255,0.18) !important;
}

/* DS Select (custom dropdown) */
body.public{
  color-scheme: dark;
}
body.public .ds-select{
  position: relative;
  width: 100%;
}
body.public .ds-select__native{
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
body.public .ds-select__button{
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.14);
  color: var(--ds-text) !important; /* prevent legacy red/invalid coloring */
  border-radius: 14px;
  padding: 12px 12px;
  font-weight: 800;
  letter-spacing: 0.01em;
  text-align: left;
}
body.public .ds-select__value{
  color: inherit !important;
}
body.public .ds-select__button:focus{
  outline: none;
  border-color: rgba(79,140,255,0.55);
  box-shadow: 0 0 0 4px rgba(79,140,255,0.18);
}
body.public .ds-select__chev{
  opacity: 0.85;
  color: rgba(234,240,255,0.78) !important;
  transform: translateY(-1px);
}
body.public .ds-select.is-open .ds-select__chev{
  transform: rotate(180deg);
}
body.public .ds-select__popover{
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 8px);
  background: rgba(18,18,18,0.98);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 14px;
  box-shadow: 0 22px 70px rgba(0,0,0,0.55);
  overflow: hidden;
  z-index: 10000030;
  display: none;
}
body.public .ds-select.is-open .ds-select__popover{
  display: block;
}
body.public .ds-select__search{
  padding: 10px;
  border-bottom: 1px solid rgba(255,255,255,0.10);
  background: rgba(255,255,255,0.02);
}
body.public .ds-select__searchInput{
  width: 100%;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.14);
  color: var(--ds-text);
  border-radius: 12px;
  padding: 10px 12px;
}
body.public .ds-select__searchInput:focus{
  outline: none;
  border-color: rgba(79,140,255,0.55);
  box-shadow: 0 0 0 4px rgba(79,140,255,0.18);
}
body.public .ds-select__list{
  max-height: min(320px, 50vh);
  overflow: auto;
  padding: 8px;
}
body.public .ds-select__option{
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  border: 0;
  background: transparent;
  color: rgba(234,240,255,0.92);
  border-radius: 10px;
  padding: 10px 10px;
  text-align: left;
  font-weight: 800;
}
body.public .ds-select__option[aria-selected="true"]{
  background: rgba(79,140,255,0.16);
}
body.public .ds-select__option:hover,
body.public .ds-select__option:focus{
  background: rgba(255,255,255,0.08);
  outline: none;
}
body.public .ds-select__option:disabled{
  opacity: 0.45;
}

/* If a DS select sits inside a `.login-input` (icon on left), pad the button */
body.public .login-input .ds-select__button{
  padding-left: 44px;
}

/* Chat modal + chat button (public pages) */
body.public .chat-modal{
  position: fixed;
  inset: 0;
  display: none; /* JS toggles to flex */
  justify-content: center;
  align-items: center;
  z-index: 10000060 !important; /* above header/nav */
  background: rgba(0,0,0,0.55); /* prevent “white sheet” look */
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
body.public #chatModal{
  padding: 0;
}
body.public #chatModal #chatFrame{
  /* Match the actual chat window size (no huge empty canvas) */
  width: min(520px, 96vw) !important;
  height: min(72vh, 760px) !important;
  border: 0 !important;
  border-radius: 16px !important;
  box-shadow: 0 30px 90px rgba(0,0,0,0.65) !important;
  background: transparent !important; /* iframe doc handles its own UI */
}

/* Headings section overrides (existing markup) */
.public .heading-section{
  background: transparent;
}
.public .heading-section:after{
  content: none !important;
}
.public .heading-section .main-heading{
  color: var(--ds-text);
  letter-spacing: -0.02em;
  font-weight: 900;
}
.public .heading-section.mobile-50 .main-heading,
.public .heading-section .main-heading{
  padding: 30px 0 18px 0;
  border-left: 0 !important;
  width: auto !important;
  margin: 0 !important;
  position: static !important;
  background: transparent !important;
}

/* Tame legacy ALL-CAPS massive H2 styles on public pages */
.public .heading-section h2{
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border-left: 0 !important;
  color: var(--ds-text) !important;
  text-transform: none !important;
  letter-spacing: -0.02em !important;
}

/* Navbar polish (desktop + mobile base) */
.public header{
  position: relative;
  overflow: visible !important;
}

.public .divine-nav .container-fluid{
  /* Background lives on `.divine-nav` to avoid “black side bars” */
  background: transparent !important;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-bottom: 0;
}
.public .divine-nav{
  position: sticky;
  top: 0;
  z-index: 10000010;
  overflow: visible !important;
  background: rgba(18,18,18,0.92);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(255,255,255,0.10);
}
.public .divine-nav .navbar{
  padding: 14px 0;
  background: transparent !important;
  overflow: visible !important; /* prevent dropdown/popover clipping */
}
.public .divine-nav .navbar-brand img{
  height: 42px;
  width: auto;
}
.public .divine-nav .navbar-nav{
  gap: 8px;
}
.public .divine-nav .navbar-expand-lg .navbar-nav .nav-link{
  color: rgba(255,255,255,0.92);
  font-weight: 800;
  letter-spacing: .02em;
  text-transform: none;
  padding: 10px 14px;
  border-radius: 999px;
  transition: background 160ms ease, transform 160ms ease, color 160ms ease;
}
.public .divine-nav .navbar-expand-lg .navbar-nav .nav-link:hover{
  background: rgba(255,255,255,0.08);
  color: #fff;
  transform: translateY(-1px);
}
.public .divine-nav .navbar .nav-item.active .nav-link{
  background: rgba(79,140,255,0.18);
  color: #fff;
  box-shadow: 0 10px 24px rgba(79,140,255,0.14);
}

/* Top contact strip */
.public .header-contact{
  position: relative;
  z-index: 10000020; /* keep dropdown above nav + hero */
  overflow: visible !important;
  background: rgba(18,18,18,0.75);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.public .header-contact .container-fluid{
  overflow: visible !important;
}
.public .header-contact .text-end{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  padding: 10px 0;
}
.public .header-contact a.mob,
.public .header-contact a.mail{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.05);
  color: rgba(255,255,255,0.92);
  font-weight: 700;
}
.public .header-contact a.mob:hover,
.public .header-contact a.mail:hover{
  background: rgba(255,255,255,0.08);
  color: #fff;
}

/* Login/Register link in top bar */
.public .header-contact a.login-register{
  color: rgba(255,255,255,0.92);
  font-weight: 800;
  padding: 6px 10px;
  border-radius: 10px;
}
.public .header-contact a.login-register:hover{
  background: rgba(255,255,255,0.08);
  color: #fff;
}

/* Footer (public pages) */
body.public .ds-footer{
  /* Override legacy global `footer{ position: absolute; ... }` from older CSS */
  position: static !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  margin-top: auto;
  padding: 28px 0;
  border-top: 1px solid rgba(255,255,255,0.10);
  background: linear-gradient(180deg, rgba(18,18,18,0.70) 0%, rgba(10,10,12,0.92) 100%);
}
/* Legacy footer CSS sets `footer span{ min-width: 50px; }` which breaks our icon spacing */
body.public .ds-footer__top > span{
  min-width: 0 !important;
  display: inline-block !important;
}
/* Footer no longer shows contact meta (removed from markup) */
body.public .ds-footer a{
  color: rgba(234,240,255,0.88);
  text-decoration: none;
}
body.public .ds-footer a:hover{
  color: #fff;
  text-decoration: none;
}
body.public .ds-footer__grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
  align-items: start;
}
body.public .ds-footer__logo{
  display: flex;
  align-items: center;
  gap: 12px;
}
body.public .ds-footer__logo img{
  width: 42px;
  height: 42px;
  object-fit: contain;
  border-radius: 12px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  padding: 7px;
}
body.public .ds-footer__name{
  font-weight: 800;
  letter-spacing: .2px;
  font-size: 16px;
}
body.public .ds-footer__links{
  display: flex;
  gap: 14px;
  justify-content: flex-end;
  justify-self: end;
  width: 100%;
  flex-wrap: wrap;
  font-weight: 700;
  font-size: 14px;
}
body.public .ds-footer__bottom{
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,0.08);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
body.public .ds-footer__copy{
  color: rgba(234,240,255,0.65);
  font-size: 13px;
}
body.public .ds-footer__top{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.06);
  color: rgba(255,255,255,0.92);
}
body.public .ds-footer__top:hover{
  background: rgba(255,255,255,0.10);
  color: #fff;
}

@media (max-width: 768px){
  body.public .ds-footer{
    padding: 22px 0;
  }
  body.public .ds-footer__grid{
    grid-template-columns: 1fr;
  }
  body.public .ds-footer__links{
    justify-content: center;
    justify-self: center;
  }
}

/* My Account dropdown */
.public .header-contact .dropdown.login-register .btn{
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.12);
  color: rgba(255,255,255,0.92);
  font-weight: 800;
  border-radius: 999px;
  padding: 8px 12px;
}
.public .header-contact .dropdown.login-register .btn:hover{
  background: rgba(255,255,255,0.08);
  color: #fff;
}
.public .header-contact .dropdown-menu,
.public .divine-nav .dropdown-menu{
  z-index: 10000030 !important;
}
.public .header-contact .dropdown-menu.profile{
  z-index: 10000030;
  background: rgba(18,18,18,0.98);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 14px;
  box-shadow: 0 22px 70px rgba(0,0,0,0.55);
  padding: 10px;
  min-width: 260px;
}
.public .header-contact .dropdown-menu.profile .dropdown-item{
  color: rgba(255,255,255,0.92);
  border-radius: 10px;
  padding: 10px 12px;
  font-weight: 700;
}
.public .header-contact .dropdown-menu.profile .dropdown-item:hover{
  background: rgba(255,255,255,0.08);
  color: #fff;
}

/* Hero/banner baseline (existing markup) */
.public .banner-section{
  position: relative;
}
.public.page-home .home-banner{
  background: url(../images/banner.jpg) no-repeat center center fixed;
  background-size: cover;
}
.public .banner-section::after{
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(800px 420px at 50% 30%, rgba(0,0,0,0.35), rgba(0,0,0,0.70));
  pointer-events: none;
}
.public.page-home .banner-section::after{
  /* Home hero: soften overlay so the background image reads better */
  background: radial-gradient(800px 420px at 50% 30%, rgba(0,0,0,0.20), rgba(0,0,0,0.58));
}
.public .banner-section > *{
  position: relative;
  z-index: 1;
}

/* Transports page: legacy CSS sets a light background; keep text readable under `.public` */
.public .trasports-section{
  background: transparent !important;
  color: var(--ds-text) !important;
}
.public .trasports-section .ds-lead{
  color: var(--ds-muted) !important;
}

/* ---------------------------------------------------------------------
   Legacy page sections: normalize colors + contrast under `.public`
------------------------------------------------------------------------ */

/* Links */
.public a{
  text-decoration: none;
}
.public a:hover{
  text-decoration: none;
}
.public .link,
.public .text-primary,
.public a[href]{
  color: var(--ds-text);
}
.public a[href]:hover{
  color: #ffffff;
}
.public a[href]:focus{
  outline: 2px solid rgba(79,140,255,0.55);
  outline-offset: 2px;
}

/* Bootstrap-ish variables (helps tables/forms/alerts in BS5/BS4 mixes) */
.public{
  --bs-body-color: var(--ds-text);
  --bs-body-bg: var(--ds-bg);
  --bs-border-color: rgba(255,255,255,0.12);
  --bs-primary: var(--ds-brand);
}

/* Make native UI controls dark where supported (select menus, scrollbars, etc.) */
body.public{
  color-scheme: dark;
}
body.public select,
body.public option,
body.public optgroup{
  background-color: #121212;
  color: var(--ds-text);
}
body.public option:disabled{
  color: rgba(234,240,255,0.45);
}

/* Ensure footer sits at bottom on short pages (e.g. login) */
body.public{
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
body.public > header{
  flex: 0 0 auto;
}
body.public > section:first-of-type{
  flex: 1 0 auto;
  width: 100%;
}
body.public > section.copyright-section{
  flex: 0 0 auto;
  margin-top: auto; /* push footer to bottom when content is short */
}

/* Footer (copyright-section) modern DS styling */
.public .copyright-section{
  background: rgba(18,18,18,0.92) !important;
  border-top: 1px solid rgba(255,255,255,0.10);
  color: rgba(234,240,255,0.78);
  padding: 24px 0 !important;
  margin-top: 0 !important;
}
.public .copyright-section .container-fluid{
  max-width: 1240px;
  margin: 0 auto;
  padding-left: 20px;
  padding-right: 20px;
}
.public .copyright-section .footer-content{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}
.public .copyright-section p{
  margin: 0 !important;
  color: rgba(234,240,255,0.70);
  font-weight: 700;
  letter-spacing: 0.01em;
}
.public .copyright-section .privacy-and-terms{
  display: inline-flex !important;
  gap: 18px;
  align-items: center;
}
.public .copyright-section .privacy-and-terms a{
  color: rgba(234,240,255,0.78) !important;
  font-weight: 800;
  text-decoration: none !important;
  border-bottom: 1px solid rgba(255,255,255,0.18);
}
.public .copyright-section .privacy-and-terms a:hover{
  color: #ffffff !important;
  border-bottom-color: rgba(79,140,255,0.65);
}
.public .copyright-section .privacy-and-terms .termsNcondition{
  margin-left: 0 !important;
}
.public .copyright-section .ohio-mobile{
  opacity: 1 !important;
  padding: 0 !important;
  color: rgba(234,240,255,0.62);
}
.public .copyright-section .top-btn{
  margin-top: 14px;
  display: flex;
  justify-content: center;
}
.public .copyright-section .top-btn span{
  width: 44px;
  height: 44px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.05);
  color: rgba(255,255,255,0.90);
  transition: transform 160ms ease, background 160ms ease, border-color 160ms ease;
}
.public .copyright-section .top-btn:hover span{
  transform: translateY(-2px);
  background: rgba(255,255,255,0.08);
  border-color: rgba(255,255,255,0.22);
}

@media (max-width: 768px){
  .public .copyright-section{
    padding: 18px 0 !important;
  }
  .public .copyright-section .footer-content{
    justify-content: center;
    text-align: center;
  }
  .public .copyright-section .privacy-and-terms{
    justify-content: center !important;
    width: 100%;
    opacity: 1 !important;
  }
}

/* Tables (e.g. estimate table uses `bg-white`) */
.public .bg-white{ background: transparent !important; }
.public .table{
  color: var(--ds-text);
}
.public .table > :not(caption) > * > *{
  background: transparent;
  border-color: rgba(255,255,255,0.12);
  color: var(--ds-text);
}
.public .table-bordered{
  border-color: rgba(255,255,255,0.12);
}
.public .table thead th{
  color: rgba(234,240,255,0.88);
}

/* CMS pages (privacy/terms) */
.public .cms-page .ds-lead{
  color: rgba(234,240,255,0.70);
}
.public .cms-page .ds-card{
  background: rgba(18,18,18,0.70);
  border: 1px solid rgba(255,255,255,0.10);
}
.public .ds-prose{
  color: rgba(234,240,255,0.78);
  line-height: 1.8;
  font-size: 1.02rem;
}
.public .ds-prose > *:first-child{ margin-top: 0; }
.public .ds-prose > *:last-child{ margin-bottom: 0; }
.public .ds-prose h1,
.public .ds-prose h2,
.public .ds-prose h3,
.public .ds-prose h4{
  color: var(--ds-text);
  font-weight: 900;
  letter-spacing: -0.02em;
  margin: 18px 0 10px 0;
}
.public .ds-prose p{
  margin: 0 0 12px 0;
}
.public .ds-prose ul,
.public .ds-prose ol{
  padding-left: 1.2rem;
  margin: 0 0 14px 0;
}
.public .ds-prose li{
  margin: 6px 0;
}
.public .ds-prose a{
  color: var(--ds-brand);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.public .ds-prose a:hover{
  color: #ffffff;
}
.public .ds-prose hr{
  border: 0;
  border-top: 1px solid rgba(255,255,255,0.10);
  margin: 18px 0;
}
.public .ds-prose img{
  max-width: 100%;
  height: auto;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.10);
}
.public .ds-prose table{
  width: 100%;
  border-collapse: collapse;
  margin: 14px 0 18px 0;
  overflow: hidden;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.10);
}
.public .ds-prose th,
.public .ds-prose td{
  padding: 10px 12px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  vertical-align: top;
}
.public .ds-prose th{
  color: rgba(234,240,255,0.92);
  background: rgba(255,255,255,0.04);
  font-weight: 900;
}
.public .ds-prose tr:last-child td{
  border-bottom: 0;
}

/* Information page */
.public .information-section{
  background: transparent !important;
  color: var(--ds-text) !important;
  padding: clamp(18px, 2.6vw, 28px) !important;
}
.public .information-section .info-card{
  background: var(--ds-surface) !important;
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: var(--ds-radius);
  box-shadow: var(--ds-shadow-sm);
}
.public .information-section .info-content{
  background: transparent !important;
}
.public .information-section .info-content h2{
  color: var(--ds-text) !important;
  font-weight: 900;
  letter-spacing: -0.02em;
}
.public .information-section .info-content h3{
  color: var(--ds-brand) !important;
  font-weight: 900;
}
.public .information-section .info-content p,
.public .information-section .info-content li{
  color: var(--ds-muted) !important;
}
.public .information-section .info-content a{
  color: var(--ds-brand) !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.public .information-section .info-content a:hover{
  color: #ffffff !important;
}

/* Contact page + auth pages share `.contact-section` / `.contact-card` */
.public .contact-section{
  background: transparent !important;
  padding: clamp(18px, 3vw, 52px) 0 !important;
}
.public .contact-section .contact-card{
  background: var(--ds-surface) !important;
  border: 1px solid rgba(255,255,255,0.10) !important;
  border-radius: var(--ds-radius) !important;
  box-shadow: var(--ds-shadow) !important;
  overflow: hidden;
}
.public .contact-section .contact-card .left-panel,
.public .contact-section .contact-card .right-panel{
  background: transparent !important;
  color: var(--ds-text) !important;
}
.public .contact-section .contact-card .left-panel .heading,
.public .contact-section .contact-card .right-panel .heading,
.public .contact-section .contact-card .left-panel h3,
.public .contact-section .contact-card .right-panel h3{
  color: var(--ds-text) !important;
}
.public .contact-section .contact-card .left-panel .para,
.public .contact-section .contact-card .right-panel .para,
.public .contact-section .contact-card .left-panel .sub-text,
.public .contact-section .contact-card .right-panel .desc,
.public .contact-section .contact-card label{
  color: var(--ds-muted) !important;
}
.public .contact-section .contact-card .left-panel .address span,
.public .contact-section .contact-card .left-panel .address .heading{
  color: rgba(234,240,255,0.85) !important;
}
.public .contact-section .contact-card .left-panel .address .para{
  color: var(--ds-muted) !important;
}

/* Inputs inside contact/login/register (override legacy borders) */
.public .contact-section .contact-card input,
.public .contact-section .contact-card textarea,
.public .contact-section .contact-card select{
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  color: var(--ds-text) !important;
}
.public .contact-section .contact-card input::placeholder,
.public .contact-section .contact-card textarea::placeholder{
  color: rgba(234,240,255,0.55) !important;
}
.public .contact-section .signup-btn{
  color: var(--ds-brand) !important;
}
.public .contact-section .signup-btn:hover{
  color: #ffffff !important;
}
.public .contact-section .termsNprivacy a{
  color: var(--ds-brand) !important;
}

/* Register page polish */
body.public .register-page .login-form{
  color: var(--ds-text) !important;
}
body.public .register-page .radio-wrapper{
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px;
  border-radius: 999px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.12);
  margin-bottom: 18px;
}
body.public .register-page .radio-wrapper input[type="radio"]{
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
body.public .register-page .radio-wrapper label{
  margin: 0;
  padding: 10px 14px;
  border-radius: 999px;
  font-weight: 900;
  color: rgba(234,240,255,0.72);
  cursor: pointer;
  transition: background 160ms ease, color 160ms ease, transform 160ms ease;
}
body.public .register-page .radio-wrapper input[type="radio"]:checked + label{
  background: rgba(79,140,255,0.18);
  color: #fff;
  box-shadow: 0 10px 24px rgba(79,140,255,0.14);
}
body.public .register-page .radio-wrapper label:hover{
  background: rgba(255,255,255,0.07);
  color: #fff;
  transform: translateY(-1px);
}

body.public .register-page .contact-form .form-group{
  margin-bottom: 14px;
}
body.public .register-page .login-input{
  position: relative;
}
body.public .register-page .login-input > span.fa{
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 16px;
  color: rgba(234,240,255,0.65);
  pointer-events: none;
  line-height: 1;
}
body.public .register-page .login-input .form-control,
body.public .register-page .login-input .form-select{
  padding-left: 44px !important;
}
body.public .register-page .login-input strong.alert-danger{
  display: block;
  margin-top: 6px;
}

body.public .register-page .termsNprivacy{
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 12px;
  border-radius: 14px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.10);
  color: rgba(234,240,255,0.78);
}
body.public .register-page .termsNprivacy input[type="checkbox"]{
  margin-top: 4px;
  flex: 0 0 auto;
}
body.public .register-page .termsNprivacy span{
  line-height: 1.5;
}
body.public .register-page .recaptcha{
  margin-top: 14px;
}
body.public .register-page .log-inNsign-up{
  margin-top: 18px;
}

/* Register: ensure `.hide` always wins (needed for Community toggle) */
body.public .register-page .hide{
  display: none !important;
}

/* Dropdown menus (Bootstrap/Select2) on public pages */
body.public .dropdown-menu,
body.public .select2-dropdown{
  background: rgba(18,18,18,0.98) !important;
  border: 1px solid rgba(255,255,255,0.12) !important;
  border-radius: 14px !important;
  box-shadow: 0 22px 70px rgba(0,0,0,0.55) !important;
}
body.public .dropdown-item,
body.public .select2-results__option{
  color: rgba(234,240,255,0.92) !important;
  border-radius: 10px;
}
body.public .dropdown-item:hover,
body.public .dropdown-item:focus,
body.public .select2-results__option--highlighted[aria-selected],
body.public .select2-results__option--highlighted[data-selected]{
  background: rgba(255,255,255,0.08) !important;
  color: #fff !important;
}

body.public .select2-container--default .select2-selection--single{
  height: auto !important;
  min-height: 46px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.14) !important;
  border-radius: 14px !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.06) !important;
  display: flex;
  align-items: center;
}
body.public .select2-container--default .select2-selection--single .select2-selection__rendered{
  color: var(--ds-text) !important;
  line-height: 1.2 !important;
  padding: 12px 40px 12px 12px !important;
  font-weight: 800;
}
body.public .select2-container--default .select2-selection--single .select2-selection__arrow{
  top: 50% !important;
  transform: translateY(-50%);
  right: 10px !important;
  width: 28px;
  height: 28px;
}
body.public .select2-container--default .select2-selection--single .select2-selection__arrow b{
  border-color: rgba(234,240,255,0.75) transparent transparent transparent !important;
  border-style: solid !important;
  border-width: 6px 5px 0 5px !important;
  height: 0 !important;
  width: 0 !important;
  margin-left: -5px !important;
  margin-top: -4px !important; /* nudge caret up for better optical centering */
  display: block;
  transform-origin: 50% 45%;
  transition: transform 180ms ease;
}
body.public .select2-container--open{
  z-index: 10000060 !important;
}
body.public .select2-container--open .select2-selection--single{
  border-color: rgba(79,140,255,0.55) !important;
  box-shadow: 0 0 0 4px rgba(79,140,255,0.16), inset 0 1px 0 rgba(255,255,255,0.06) !important;
}
body.public .select2-container--open .select2-selection--single .select2-selection__arrow b{
  transform: rotate(180deg);
}
body.public .select2-search--dropdown .select2-search__field{
  background: rgba(255,255,255,0.06) !important;
  color: var(--ds-text) !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  border-radius: 12px !important;
}
body.public .select2-dropdown{
  background: rgba(18,18,18,0.98) !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  border-radius: 14px !important;
  box-shadow: 0 22px 70px rgba(0,0,0,0.55) !important;
  overflow: hidden;
  backdrop-filter: blur(10px);
}
body.public .select2-search--dropdown{
  padding: 10px;
  border-bottom: 1px solid rgba(255,255,255,0.10);
  background: rgba(0,0,0,0.14);
}
body.public .select2-search--dropdown .select2-search__field{
  padding: 10px 12px !important;
  outline: none !important;
  box-shadow: none !important;
}
body.public .select2-search--dropdown .select2-search__field:focus{
  border-color: rgba(79,140,255,0.55) !important;
  box-shadow: 0 0 0 4px rgba(79,140,255,0.16) !important;
}
body.public .select2-results__options{
  padding: 6px;
  scrollbar-width: thin;
  scrollbar-color: rgba(79,140,255,0.70) rgba(255,255,255,0.06);
}
body.public .select2-results__options::-webkit-scrollbar{ width: 10px; }
body.public .select2-results__options::-webkit-scrollbar-track{
  background: rgba(255,255,255,0.06);
  border-left: 1px solid rgba(255,255,255,0.08);
}
body.public .select2-results__options::-webkit-scrollbar-thumb{
  background: linear-gradient(180deg, rgba(79,140,255,0.80), rgba(8,36,255,0.70));
  border-radius: 999px;
  border: 2px solid rgba(18,18,18,0.85);
}
body.public .select2-results__option{
  padding: 10px 12px !important;
  border-radius: 12px;
  margin: 4px;
  font-weight: 800;
  line-height: 1.2;
}
body.public .select2-results__option[aria-selected="true"]{
  background: rgba(79,140,255,0.16) !important;
  color: #fff !important;
}

/* Login page: match register visuals */
body.public .login-page .login-form{
  color: var(--ds-text) !important;
}
body.public .login-page .radio-wrapper{
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px;
  border-radius: 999px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.12);
}
body.public .login-page .radio-wrapper input[type="radio"]{
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
body.public .login-page .radio-wrapper label{
  margin: 0;
  padding: 10px 14px;
  border-radius: 999px;
  font-weight: 900;
  color: rgba(234,240,255,0.72);
  cursor: pointer;
  transition: background 160ms ease, color 160ms ease, transform 160ms ease;
}
body.public .login-page .radio-wrapper input[type="radio"]:checked + label{
  background: rgba(79,140,255,0.18);
  color: #fff;
  box-shadow: 0 10px 24px rgba(79,140,255,0.14);
}
/* Login/Register "Personal vs Community": community should be green when active */
body.public .login-page .radio-wrapper #community:checked + label,
body.public .register-page .radio-wrapper #community:checked + label{
  background: rgb(41 167 0 / 14%);
  color: #fff;
  box-shadow: 0 10px 24px rgba(41,167,0,0.16);
}
body.public .login-page .radio-wrapper #user:checked + label,
body.public .register-page .radio-wrapper #user:checked + label{
  background: rgba(79,140,255,0.18);
  color: #fff;
  box-shadow: 0 10px 24px rgba(79,140,255,0.14);
}
body.public .login-page .radio-wrapper label:hover{
  background: rgba(255,255,255,0.07);
  color: #fff;
  transform: translateY(-1px);
}

body.public .login-page .form-group{
  margin-bottom: 14px !important;
}
body.public .login-page .login-input{
  position: relative;
}
body.public .login-page .login-input > span.fa{
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 16px;
  color: rgba(234,240,255,0.65);
  pointer-events: none;
}
body.public .login-page .login-input .form-control{
  padding-left: 44px !important;
}
body.public .login-page strong.alert-danger{
  display: block;
  margin-top: 6px;
}
body.public .login-page .signup-btn{
  color: var(--ds-brand) !important;
  font-weight: 900;
  text-decoration: none;
}
body.public .login-page .signup-btn:hover{
  color: #ffffff !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}
body.public .login-page .recaptcha{
  margin-top: 10px;
}
/* Inline form errors */
.public .alert-danger,
.public .text-danger{
  color: #ffb4b4 !important;
}

/* Transports cards: make images consistent */
.public .transport_service_image{
  height: 260px;
  background: rgba(255,255,255,0.04);
  border-bottom: 1px solid rgba(255,255,255,0.10);
}
.public .transport_service_image img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Simple list + map helpers */
.public .ds-list{
  margin: 0;
  padding-left: 1.1rem;
  color: var(--ds-muted);
  line-height: 1.7;
}
.public .ds-list li + li{
  margin-top: 6px;
}
.public .ds-map{
  height: 380px;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.10);
  background: rgba(255,255,255,0.04);
}

/* Home hero */
.public .home-hero-card{
  background: rgba(18,18,18,0.70);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}
.public .home-hero-card .ds-hero-logo{
  display: block;
  margin: 2px auto 14px auto;
  width: min(420px, 100%);
  max-width: 420px;
}
.public .ds-card__media{
  height: 260px;
  background: rgba(255,255,255,0.04);
  border-bottom: 1px solid rgba(255,255,255,0.10);
}
.public .ds-card__media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.public .ds-video{
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.10);
}
.public .ds-video iframe{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

/* Testimonials on home */
.public .testimonial-item{
  /* Avoid edge clipping on mobile: spacing is handled via `.owl-item` padding instead. */
  margin: 0;
}
.public .testimonial.owl-carousel{
  padding: 18px 0 !important; /* override legacy spacing */
}
.public .owl-carousel.testimonial{
  position: relative;
}
.public .owl-carousel.testimonial .owl-stage-outer{ padding: 0; }
.public .owl-carousel.testimonial .owl-item{
  padding: 0 12px;
  box-sizing: border-box;
}
.public .owl-carousel.testimonial .testimonial-item{
  /* normalize legacy items (some were missing ds-card classes) */
  background: var(--ds-surface);
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: var(--ds-radius);
  box-shadow: var(--ds-shadow);
  overflow: hidden;
}
.public .owl-carousel.testimonial .testimonial-item .heading{
  color: var(--ds-text);
  font-weight: 900;
  letter-spacing: -0.02em;
}
.public .owl-carousel.testimonial .testimonial-item .para{
  color: var(--ds-muted);
  line-height: 1.7;
}
.public .owl-carousel.testimonial .testimonial-item .stars{
  color: rgba(255,255,255,0.85);
}

/* Testimonial arrows (owl-nav) */
.public .owl-carousel.testimonial .owl-nav{
  margin: 0;
}
.public .testimonial.owl-carousel .owl-nav.disabled{
  /* legacy CSS forces this on; keep it visible for nav buttons */
  display: block !important;
  position: static !important;
}
.public .testimonial.owl-carousel .owl-nav .owl-prev,
.public .testimonial.owl-carousel .owl-nav .owl-next{
  /* override legacy: it pins arrows to bottom with huge font */
  bottom: auto !important;
  top: 50% !important;
  font-size: inherit !important;
}
.public .testimonial.owl-carousel .heading{
  font-family: inherit !important;
}
.public .testimonial.owl-carousel .para{
  width: auto !important;
  margin: 0 !important;
  font-size: 1rem !important;
  line-height: 1.7 !important;
}
.public .testimonial.owl-carousel .image img{
  width: 100% !important;
  height: 100% !important;
  border-radius: inherit !important;
  margin: 0 !important;
}

.public .owl-carousel.testimonial .owl-nav button.owl-prev,
.public .owl-carousel.testimonial .owl-nav button.owl-next{
  position: absolute;
  top: 50% !important;
  transform: translateY(-50%);
  width: 52px !important;
  height: 52px !important;
  border-radius: 999px !important;
  padding: 0 !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  background: rgba(18,18,18,0.70) !important;
  color: rgba(255,255,255,0.92) !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  box-shadow: 0 18px 50px rgba(0,0,0,0.35);
  transition: transform 160ms ease, background 160ms ease, border-color 160ms ease, color 160ms ease;
  z-index: 5;
  font-size: 0 !important; /* kill legacy huge glyph sizing */
}
.public .owl-carousel.testimonial .owl-nav button.owl-prev{
  left: 18px;
}
.public .owl-carousel.testimonial .owl-nav button.owl-next{
  right: 18px;
}
.public .owl-carousel.testimonial .owl-nav button.owl-prev:hover,
.public .owl-carousel.testimonial .owl-nav button.owl-next:hover{
  background: rgba(255,255,255,0.10) !important;
  border-color: rgba(255,255,255,0.20) !important;
  color: #fff !important;
  transform: translateY(-50%) scale(1.03);
}
.public .owl-carousel.testimonial .owl-nav button.owl-prev span,
.public .owl-carousel.testimonial .owl-nav button.owl-next span{
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
  line-height: 1;
  margin: 0 !important;
}
.public .owl-carousel.testimonial .owl-nav button.owl-prev.disabled,
.public .owl-carousel.testimonial .owl-nav button.owl-next.disabled{
  opacity: 0.35 !important;
}

/* Testimonial layout polish: tighter + more premium */
.public .owl-carousel.testimonial .testimonial-item.ds-card{
  display: grid;
  grid-template-columns: 86px 1fr;
  gap: 18px;
  padding: 22px;
  min-height: 200px;
  width: min(1100px, 100%);
}
.public .owl-carousel.testimonial .testimonial-item.ds-card .ds-avatar{
  margin: 2px 0 0 0;
  width: 86px;
  height: 86px;
}
.public .owl-carousel.testimonial .testimonial-item.ds-card .ds-card__body{
  padding: 0 !important;
}
.public .owl-carousel.testimonial .testimonial-item.ds-card .ds-card__text{
  font-size: 1.02rem;
}
.public .owl-carousel.testimonial .testimonial-item.ds-card .ds-stars{
  margin: 6px 0 10px 0;
  color: #fdd20a;
}
.public .owl-carousel.testimonial .testimonial-item.ds-card .ds-card__title{
  font-size: 1.15rem;
}
.public .owl-carousel.testimonial .testimonial-item.ds-card .ds-card__text{
  color: rgba(234,240,255,0.78);
}
.public .owl-carousel.testimonial .testimonial-item .para,
.public .owl-carousel.testimonial .testimonial-item .ds-card__text{
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* Center the testimonial card within each slide (prevents right drift) */
.public .owl-carousel.testimonial .owl-item > .item{
  width: 100%;
  display: flex;
  justify-content: center;
}

.public .owl-carousel.testimonial .owl-dots{
  margin-top: 14px;
}
.public .owl-carousel.testimonial .owl-dots .owl-dot span{
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: rgba(255,255,255,0.20);
  transition: transform 160ms ease, background 160ms ease;
}
.public .owl-carousel.testimonial .owl-dots .owl-dot.active span{
  background: rgba(79,140,255,0.75);
  transform: scale(1.15);
}
.public .owl-carousel.testimonial .owl-dots .owl-dot:hover span{
  background: rgba(255,255,255,0.35);
}

@media (max-width: 768px){
  /* IMPORTANT:
     `backdrop-filter` on `.divine-nav` makes `position: fixed` children behave like they're fixed
     to the nav's box (≈59px tall) on mobile, which breaks the drawer/overlay. */
  body.public .divine-nav{
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  body.public .divine-nav .container-fluid{
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  body.public .header-contact{
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  body.public .header-contact .container-fluid{
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }

  /* Mobile nav drawer must sit above sticky header JS z-index (999999999) */
  body.public .tabNmob-nav{
    z-index: 1000000005 !important;
    background: #121212 !important;
  }
  body.public .overlay-mobile{
    z-index: 1000000004 !important;
    display: none;
    background: rgba(0,0,0,0.55) !important;
    opacity: 1 !important; /* use rgba instead */
  }
  body.public .overlay-mobile.is-open{
    display: block !important;
  }
  body.public .divine-nav{
    z-index: 1000000003 !important;
  }
  body.public .header-contact{
    z-index: 1000000003 !important;
  }

  /* On small screens use swipe + dots (avoid arrow overlap and any clipping).
     Legacy CSS forces `.owl-nav.disabled{display:block!important}` so we must override that too. */
  .public .owl-carousel.testimonial .owl-nav,
  .public .testimonial.owl-carousel .owl-nav{
    display: none !important;
    visibility: hidden !important;
  }
  .public .testimonial.owl-carousel .owl-nav.disabled{
    display: none !important;
    visibility: hidden !important;
  }
  .public .owl-carousel.testimonial .owl-stage-outer{
    padding: 0 6px; /* small safe padding so first/last card isn't clipped */
  }
  .public .owl-carousel.testimonial .testimonial-item.ds-card{
    grid-template-columns: 1fr;
    text-align: left;
  }
  .public .owl-carousel.testimonial .testimonial-item.ds-card .ds-avatar{
    margin: 0 auto 10px auto;
  }
  .public .owl-carousel.testimonial .owl-nav button.owl-prev{
    left: 10px;
  }
  .public .owl-carousel.testimonial .owl-nav button.owl-next{
    right: 10px;
  }
}

/* Tablet nav (iPad): keep drawer working up to Bootstrap lg breakpoint */
@media (max-width: 991px){
  /* IMPORTANT:
     `backdrop-filter` on `.divine-nav` can make `position: fixed` children behave like they're fixed
     to the nav's box, which breaks the drawer/overlay height. */
  body.public .divine-nav{
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  body.public .divine-nav .container-fluid{
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  body.public .header-contact{
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  body.public .header-contact .container-fluid{
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }

  /* Drawer/overlay stacking */
  body.public .tabNmob-nav{
    z-index: 1000000005 !important;
  }
  body.public .overlay-mobile{
    z-index: 1000000004 !important;
  }
  body.public .divine-nav,
  body.public .header-contact{
    z-index: 1000000003 !important;
  }
}

/* Partners logo band: lighter surface for light-themed logos */
.public .ds-logo-band{
  border-top: 1px solid rgba(2,6,23,0.08);
  border-bottom: 1px solid rgba(2,6,23,0.08);
  padding: clamp(12px, 2vw, 22px) 0;
}
.public .ds-logo-band .owl-stage-outer{
  padding: 10px 18px;
}
.public .ds-logo-band .item{
  padding: 6px 10px;
}
.public .ds-logo-band .brand-img{
  background: rgba(255,255,255,0.92);
  border: 1px solid rgba(2,6,23,0.08);
  border-radius: 18px;
  padding: 18px 22px;
  box-shadow: 0 12px 28px rgba(2,6,23,0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 96px;
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}
.public .ds-logo-band .brand-img:hover{
  transform: translateY(-2px);
  border-color: rgba(2,6,23,0.14);
  box-shadow: 0 18px 40px rgba(2,6,23,0.12);
}
.public .ds-logo-band .brand-img img{
  max-height: 62px;
  width: auto;
  filter: none !important;
}
.public .ds-avatar{
  width: 72px;
  height: 72px;
  border-radius: 999px;
  overflow: hidden;
  margin: 18px auto 0 auto;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.06);
}
.public .ds-avatar img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.public .ds-stars{
  color: rgba(255,255,255,0.85);
  margin: 8px 0 10px 0;
}

/* Google Places autocomplete dropdown */
.public .pac-container{
  /* Must sit above sticky header + any overlays, otherwise suggestions can't be clicked */
  z-index: 1000000010 !important;
  border-radius: 12px !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  background: rgba(18,18,18,0.98) !important;
  color: var(--ds-text) !important;
  box-shadow: 0 18px 50px rgba(0,0,0,0.55) !important;
}
.public .pac-item{
  border-top: 1px solid rgba(255,255,255,0.08) !important;
  color: rgba(234,240,255,0.90) !important;
}
.public .pac-item:hover{
  background: rgba(255,255,255,0.06) !important;
}
.public .pac-item-query{
  color: #ffffff !important;
}
