/* deva555 — celestial teal / saffron / lotus theme */
:root {
  --abyss: #040d10;
  --deep: #071619;
  --saffron: #f7b445;
  --saffron-hot: #ec961c;
  --lotus: #f2679a;
  --text: #e8f1f0;
  --muted: #a9c2c0;
}
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  background:
    radial-gradient(900px 520px at 85% -10%, rgba(242, 103, 154, .12), transparent 60%),
    radial-gradient(800px 600px at -10% 20%, rgba(27, 70, 80, .55), transparent 65%),
    var(--abyss);
  color: var(--text);
  overflow-x: hidden;
}
::selection { background: rgba(247, 180, 69, .35); color: #fff; }
a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid var(--saffron); outline-offset: 3px; border-radius: 6px; }

/* ---------- Navigation ---------- */
.dv-topbar {
  position: sticky; top: 0; z-index: 50;
  background: rgba(4, 13, 16, .78);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  backdrop-filter: blur(14px) saturate(140%);
  border-bottom: 1px solid rgba(247, 180, 69, .14);
}
.dv-navlink { position: relative; padding: .5rem .2rem; color: var(--muted); transition: color .2s; }
.dv-navlink::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px;
  background: linear-gradient(90deg, var(--saffron), var(--lotus));
  transform: scaleX(0); transform-origin: left; transition: transform .25s;
}
.dv-navlink:hover, .dv-navlink[aria-current="page"] { color: #fff; }
.dv-navlink:hover::after, .dv-navlink[aria-current="page"]::after { transform: scaleX(1); }
.dv-drawer { display: none; }
.dv-drawer.is-open { display: block; animation: dv-drop .22s ease-out; }
.dv-drawer a[aria-current="page"] { color: var(--saffron); background: rgba(247, 180, 69, .08); }
@keyframes dv-drop { from { opacity: 0; transform: translateY(-6px); } }

/* ---------- Buttons ---------- */
.dv-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  padding: .85rem 1.6rem; border-radius: 999px;
  font-family: Mitr, sans-serif; font-weight: 500; color: #241302;
  background: linear-gradient(135deg, #ffe08f 0%, var(--saffron) 45%, var(--saffron-hot) 100%);
  box-shadow: 0 0 0 1px rgba(255, 224, 143, .5) inset, 0 10px 28px -8px rgba(236, 150, 28, .65);
  transition: transform .2s, box-shadow .2s, filter .2s;
}
.dv-btn:hover { transform: translateY(-2px); filter: brightness(1.06); box-shadow: 0 0 0 1px rgba(255, 224, 143, .6) inset, 0 16px 34px -10px rgba(236, 150, 28, .8); }
.dv-btn-ghost {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  padding: .8rem 1.5rem; border-radius: 999px; font-family: Mitr, sans-serif;
  color: var(--text); border: 1px solid rgba(242, 103, 154, .45);
  background: rgba(242, 103, 154, .07); transition: background .2s, border-color .2s;
}
.dv-btn-ghost:hover { background: rgba(242, 103, 154, .16); border-color: var(--lotus); }

/* ---------- Cards: glass + glowing border ---------- */
.dv-glass {
  background: linear-gradient(160deg, rgba(18, 50, 58, .62), rgba(7, 22, 25, .55));
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(169, 194, 192, .12);
  border-radius: 1.25rem;
}
.dv-glow { position: relative; isolation: isolate; }
.dv-glow::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px; z-index: -1;
  background: linear-gradient(140deg, rgba(247, 180, 69, .75), rgba(242, 103, 154, .15) 40%, rgba(27, 70, 80, .2) 60%, rgba(247, 180, 69, .55));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  opacity: .55; transition: opacity .25s;
}
.dv-glow:hover::before { opacity: 1; }
.dv-lift { transition: transform .25s, box-shadow .25s; }
.dv-lift:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -18px rgba(247, 180, 69, .35); }
.dv-solid { background: #0a1c20; border: 1px solid #16343b; border-radius: 1.25rem; }

.dv-kicker {
  display: inline-flex; align-items: center; gap: .45rem;
  font-family: Mitr, sans-serif; font-size: .8rem; letter-spacing: .06em;
  color: var(--saffron); padding: .3rem .8rem; border-radius: 999px;
  background: rgba(247, 180, 69, .08); border: 1px solid rgba(247, 180, 69, .25);
}
.dv-gradtext {
  background: linear-gradient(100deg, #ffe08f, var(--saffron) 40%, var(--lotus));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.dv-icon {
  display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: .9rem;
  background: radial-gradient(circle at 30% 25%, rgba(255, 224, 143, .35), rgba(247, 180, 69, .08) 70%);
  border: 1px solid rgba(247, 180, 69, .3); font-size: 1.4rem;
}

/* ---------- Hero art (home) ---------- */
.dv-heroart { position: relative; width: min(100%, 460px); margin-inline: auto; }
.dv-heroart::before {
  content: ""; position: absolute; inset: 8% 4%; z-index: -1; border-radius: 50%;
  background: radial-gradient(circle, rgba(247, 180, 69, .28), rgba(242, 103, 154, .12) 45%, transparent 70%);
  filter: blur(30px);
}
.dv-heroart img {
  display: block; width: 100%; height: auto;
  -webkit-mask-image: radial-gradient(ellipse 72% 68% at 50% 46%, #000 58%, transparent 100%);
  mask-image: radial-gradient(ellipse 72% 68% at 50% 46%, #000 58%, transparent 100%);
}

/* ---------- Image banners ---------- */
.dv-banner {
  display: block; border-radius: 1.25rem; overflow: hidden; border: 1px solid rgba(247, 180, 69, .22);
  box-shadow: 0 24px 50px -28px rgba(247, 180, 69, .45); transition: transform .25s, box-shadow .25s;
}
.dv-banner:hover { transform: translateY(-3px); box-shadow: 0 28px 56px -24px rgba(247, 180, 69, .6); }
.dv-banner img { display: block; width: 100%; height: auto; }

/* page hero (inner pages) */
.dv-pagehero { position: relative; overflow: hidden; border-bottom: 1px solid rgba(247, 180, 69, .1); }
.dv-pagehero::after {
  content: ""; position: absolute; right: -120px; top: -120px; width: 380px; height: 380px; border-radius: 50%;
  border: 1px dashed rgba(247, 180, 69, .25); box-shadow: 0 0 0 40px rgba(242, 103, 154, .03), 0 0 0 90px rgba(247, 180, 69, .02);
  pointer-events: none;
}

/* ---------- Provider Logo Slider ---------- */
.dv-prov { padding: 2.25rem 0 2.5rem; background: linear-gradient(180deg, rgba(12, 34, 38, .6), transparent); }
.dv-prov-head { text-align: center; max-width: 760px; margin: 0 auto 1.4rem; padding: 0 1rem; }
.dv-prov-marquee {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.dv-prov-track {
  display: flex; gap: 18px; width: max-content; margin: 0; padding: 10px 0 14px; list-style: none;
  animation: dv-prov-scroll 48s linear infinite; animation-play-state: paused;
}
.dv-prov-marquee.is-on .dv-prov-track { animation-play-state: running; }
.dv-prov-marquee.is-on:hover .dv-prov-track { animation-play-state: paused; }
.dv-prov-track li {
  flex: none; border-radius: 16px; padding: 3px;
  background: linear-gradient(140deg, rgba(247, 180, 69, .55), rgba(242, 103, 154, .25), rgba(27, 70, 80, .5));
  box-shadow: 0 10px 22px -10px rgba(0, 0, 0, .7);
  transition: transform .25s, box-shadow .25s;
}
.dv-prov-track li:hover { transform: translateY(-4px); box-shadow: 0 14px 28px -10px rgba(247, 180, 69, .45); }
.dv-prov-track img { width: 220px; height: 141px; display: block; border-radius: 13px; background: #0c2226; }
/* track holds two identical sets: shift one set (+ one gap) for a seamless loop */
@keyframes dv-prov-scroll { to { transform: translateX(calc(-50% - 9px)); } }
@media (max-width: 640px) {
  .dv-prov-track { gap: 12px; animation-duration: 34s; }
  .dv-prov-track img { width: 168px; height: 108px; }
  @keyframes dv-prov-scroll { to { transform: translateX(calc(-50% - 6px)); } }
}
@media (prefers-reduced-motion: reduce) {
  .dv-prov-track { animation-duration: 110s; }
}

/* ---------- Article prose ---------- */
.dv-prose { color: #d3e2e0; line-height: 1.95; font-size: 1.06rem; }
.dv-prose h2 { font-family: Mitr, sans-serif; color: #fff; font-size: 1.5rem; line-height: 1.4; margin: 2.4rem 0 .9rem; padding-left: .9rem; border-left: 3px solid var(--saffron); scroll-margin-top: 90px; }
.dv-prose h3 { font-family: Mitr, sans-serif; color: var(--saffron); font-size: 1.18rem; margin: 1.6rem 0 .5rem; }
.dv-prose p { margin: 0 0 1.1rem; }
.dv-prose ul, .dv-prose ol { margin: 0 0 1.2rem 1.3rem; }
.dv-prose ul { list-style: disc; }
.dv-prose ol { list-style: decimal; }
.dv-prose li { margin: .35rem 0; }
.dv-prose li::marker { color: var(--saffron); }
.dv-prose a { color: var(--saffron); text-decoration: underline; text-decoration-color: rgba(247, 180, 69, .4); text-underline-offset: 3px; }
.dv-prose a:hover { text-decoration-color: var(--saffron); }
.dv-prose a.dv-btn { color: #241302; text-decoration: none; }
.dv-prose .dv-glass p { margin: 0; }
.dv-prose strong { color: #fff; }
.dv-prose blockquote { margin: 1.5rem 0; padding: 1rem 1.25rem; border-radius: 1rem; background: rgba(242, 103, 154, .07); border: 1px solid rgba(242, 103, 154, .25); color: #f3dce6; }
.dv-prose table { width: 100%; border-collapse: collapse; margin: 1rem 0 1.5rem; font-size: .96rem; }
.dv-prose th, .dv-prose td { padding: .7rem .8rem; border-bottom: 1px solid #16343b; text-align: left; }
.dv-prose th { color: var(--saffron); font-family: Mitr, sans-serif; font-weight: 400; background: rgba(247, 180, 69, .06); }
.dv-tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* ---------- FAQ ---------- */
.dv-faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.dv-faq summary::-webkit-details-marker { display: none; }
.dv-faq summary::after { content: "+"; font-size: 1.4rem; color: var(--saffron); transition: transform .2s; flex: none; }
.dv-faq[open] summary::after { transform: rotate(45deg); }

/* ---------- Misc ---------- */
.dv-divider { height: 1px; background: linear-gradient(90deg, transparent, rgba(247, 180, 69, .35), transparent); }
.dv-chip { display: inline-block; padding: .35rem .85rem; border-radius: 999px; font-size: .88rem; color: var(--muted); border: 1px solid #1b4650; background: rgba(12, 34, 38, .6); transition: color .2s, border-color .2s; }
.dv-chip:hover { color: var(--saffron); border-color: rgba(247, 180, 69, .5); }
.dv-step { counter-increment: dvstep; }
.dv-step::before {
  content: counter(dvstep); display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 50%;
  font-family: Mitr, sans-serif; color: #241302; background: linear-gradient(135deg, #ffe08f, var(--saffron-hot));
  margin-bottom: .9rem;
}
.dv-tocs a[aria-current="true"] { color: var(--saffron); }
.dv-totop {
  position: fixed; right: 16px; bottom: 16px; z-index: 40; width: 44px; height: 44px; border-radius: 50%;
  display: grid; place-items: center; color: #241302; background: var(--saffron);
  box-shadow: 0 8px 20px -6px rgba(236, 150, 28, .7);
  opacity: 0; pointer-events: none; transform: translateY(10px); transition: opacity .25s, transform .25s;
}
.dv-totop.is-shown { opacity: 1; pointer-events: auto; transform: none; }
