.tdc-page-loader { position:fixed; inset:0; z-index:3000; display:grid; place-items:center; overflow:hidden; isolation:isolate; background:radial-gradient(circle at 50% 42%,#fff 0,#f9fbff 38%,#e8f2ff 100%); opacity:1; visibility:visible; transition:opacity .38s ease,visibility .38s ease; }.tdc-page-loader::before,.tdc-page-loader::after { position:absolute; z-index:-1; border-radius:50%; content:""; }.tdc-page-loader::before { width:min(92vw,780px); height:min(92vw,780px); border:1px dashed rgba(13,105,231,.28); animation:tdc-loader-spin 18s linear infinite; }.tdc-page-loader::after { width:min(76vw,640px); height:min(76vw,640px); border:1px solid rgba(245,173,29,.24); box-shadow:inset 0 0 50px rgba(12,167,225,.08); }.tdc-loader-content { position:relative; z-index:1; display:grid; justify-items:center; gap:17px; width:min(78vw,430px); text-align:center; animation:tdc-loader-content-in .55s cubic-bezier(.2,.8,.2,1) both; }.tdc-loader-logo { width:min(76vw,390px); height:min(46vw,265px); display:block!important; flex:none!important; opacity:1!important; visibility:visible!important; background:url('../../images/logo.png') center / contain no-repeat; filter:drop-shadow(0 8px 12px rgba(9,45,121,.13)); }.tdc-loader-content p { margin:0; color:#0b5fd2; font-size:16px; font-weight:600; letter-spacing:.02em; }.tdc-loader-content p span { display:inline-block; animation:tdc-loader-dot 1.2s infinite; }.tdc-loader-content p span:nth-child(2) { animation-delay:.16s; }.tdc-loader-content p span:nth-child(3) { animation-delay:.32s; }.tdc-loader-dots { display:flex; gap:10px; }.tdc-loader-dots i { width:9px; height:9px; display:block; border-radius:50%; background:#0874ef; box-shadow:0 3px 7px rgba(8,111,240,.25); animation:tdc-loader-pulse 1.1s ease-in-out infinite; }.tdc-loader-dots i:nth-child(2) { animation-delay:.12s; }.tdc-loader-dots i:nth-child(3) { background:#10bdd8; animation-delay:.24s; }.tdc-loader-dots i:nth-child(4) { background:#f4ad1b; animation-delay:.36s; }.tdc-page-loader.is-hidden { opacity:0; visibility:hidden; pointer-events:none; }.tdc-page-loader.is-leaving .tdc-loader-content { animation:tdc-loader-content-out .25s ease both; }@keyframes tdc-loader-spin { to { transform:rotate(360deg); } }@keyframes tdc-loader-content-in { from { opacity:0; transform:scale(.92) translateY(12px); } to { opacity:1; transform:scale(1) translateY(0); } }@keyframes tdc-loader-content-out { to { opacity:0; transform:scale(1.04); } }@keyframes tdc-loader-pulse { 0%,100% { transform:translateY(0); opacity:.4; } 50% { transform:translateY(-6px); opacity:1; } }@keyframes tdc-loader-dot { 0%,100% { opacity:.2; transform:translateY(0); } 50% { opacity:1; transform:translateY(-2px); } }@media (max-width:575.98px) { .tdc-loader-content { gap:13px; }.tdc-loader-logo { height:min(48vw,205px); }.tdc-loader-content p { font-size:14px; }.tdc-loader-dots { gap:8px; }.tdc-loader-dots i { width:8px; height:8px; } }@media (prefers-reduced-motion:reduce) { .tdc-page-loader *, .tdc-page-loader::before { animation:none!important; } }
/* Compact loader: keeps the brand visible without covering the page with oversized artwork. */
.tdc-page-loader::before { width:min(48vw,420px); height:min(48vw,420px); }
.tdc-page-loader::after { width:min(40vw,340px); height:min(40vw,340px); }
.tdc-loader-content { width:min(62vw,260px); gap:9px; animation:none; }
.tdc-loader-logo { width:min(54vw,230px); height:min(32vw,145px); }
.tdc-loader-content p { font-size:13px; }
.tdc-loader-dots { gap:7px; }
.tdc-loader-dots i { width:7px; height:7px; }

@media (max-width:575.98px) {
  .tdc-page-loader::before { width:300px; height:300px; }
  .tdc-page-loader::after { width:245px; height:245px; }
  .tdc-loader-logo { width:190px; height:120px; }
}
/* The logo is positioned separately from its status copy, keeping it at the orbit centre. */
.tdc-loader-content {
  position:absolute;
  top:50%;
  left:50%;
  display:block;
  width:min(54vw,230px);
  height:min(32vw,145px);
  transform:translate(-50%, -50%);
}
.tdc-loader-logo { width:100%; height:100%; }
.tdc-loader-status {
  position:absolute;
  top:calc(50% + 84px);
  left:50%;
  z-index:1;
  display:grid;
  justify-items:center;
  gap:7px;
  transform:translateX(-50%);
  text-align:center;
}
.tdc-loader-status p {
  margin:0;
  color:#0b5fd2;
  font-size:13px;
  font-weight:600;
  letter-spacing:.02em;
}
.tdc-loader-status p span { display:inline-block; animation:tdc-loader-dot 1.2s infinite; }
.tdc-loader-status p span:nth-child(2) { animation-delay:.16s; }
.tdc-loader-status p span:nth-child(3) { animation-delay:.32s; }

@media (max-width:575.98px) {
  .tdc-loader-content { width:190px; height:120px; }
  .tdc-loader-status { top:calc(50% + 71px); }
}

/* Shared overlay for AJAX form submissions. */
.tdc-submit-loader {
  position:fixed;
  inset:0;
  z-index:3100;
  display:grid;
  place-items:center;
  background:rgba(249,252,255,.72);
  backdrop-filter:blur(2px);
  opacity:0;
  pointer-events:none;
  transition:opacity .22s ease;
}
.tdc-submit-loader.is-visible { opacity:1; pointer-events:auto; }
.tdc-submit-loader__content {
  display:grid;
  width:230px;
  height:230px;
  box-sizing:border-box;
  justify-items:center;
  align-content:center;
  gap:13px;
  color:#0870e8;
  background:transparent;
  font-size:17px;
  font-weight:800;
}
.tdc-submit-loader__spinner {
  width:74px;
  height:74px;
  border:10px solid #e9f1ff;
  border-top-color:#0879ef;
  border-right-color:#0fbce2;
  border-bottom-color:#f4ad1b;
  border-radius:50%;
  animation:tdc-submit-spin 1s linear infinite;
}
.tdc-submit-loader__dots { display:flex; gap:10px; }
.tdc-submit-loader__dots i {
  width:10px;
  height:10px;
  border-radius:50%;
  background:#0874ef;
  box-shadow:0 3px 8px rgba(8,111,240,.2);
  animation:tdc-submit-dot 1.1s ease-in-out infinite;
}
.tdc-submit-loader__dots i:nth-child(2) { background:#169ce9; animation-delay:.12s; }
.tdc-submit-loader__dots i:nth-child(3) { background:#10bdd8; animation-delay:.24s; }
.tdc-submit-loader__dots i:nth-child(4) { background:#f4ad1b; animation-delay:.36s; }
@keyframes tdc-submit-spin { to { transform:rotate(360deg); } }
@keyframes tdc-submit-dot { 0%,100% { transform:translateY(0); opacity:.38; } 50% { transform:translateY(-5px); opacity:1; } }
@media (max-width:575.98px) {
  .tdc-submit-loader__content { width:190px; height:190px; font-size:15px; }
  .tdc-submit-loader__spinner { width:62px; height:62px; border-width:8px; }
}
@media (prefers-reduced-motion:reduce) {
  .tdc-submit-loader__spinner,
  .tdc-submit-loader__dots i { animation:none; }
}
