:root{
  --dv-ink:#0b2430;
  --dv-ink-2:#113646;
  --dv-muted:#5a7380;
  --dv-white:#ffffff;
  --dv-bg:#f5fbff;
  --dv-bg-2:#e9f6ff;
  --dv-accent:#1ea0d8;
  --dv-accent-2:#4fd4d9;
  --dv-danger:#dc3545;
  --dv-radius:18px;
  --dv-shadow:0 18px 50px rgba(9,35,49,.18);
  --dv-shadow-soft:0 12px 30px rgba(9,35,49,.12);
  --dv-border:1px solid rgba(255,255,255,.28);
}

html{scroll-behavior:smooth}
body{
  background:
    radial-gradient(1200px 700px at 20% 10%, rgba(79,212,217,.18), transparent 60%),
    radial-gradient(900px 600px at 90% 20%, rgba(30,160,216,.14), transparent 55%),
    linear-gradient(180deg, var(--dv-bg), var(--dv-bg-2));
  color:var(--dv-ink);
}
.dv-page{min-height:100vh}

.dv-topbar{
  position:sticky; top:0; z-index:50;
  backdrop-filter:saturate(1.2) blur(10px);
  background:rgba(245,251,255,.72);
  border-bottom:1px solid rgba(30,160,216,.10);
}
.dv-brand{
  font-weight:800;
  letter-spacing:.2px;
}
.dv-logo-brand{height:30px;width:auto;object-fit:contain}
.dv-logo-sm{width:28px;height:28px;object-fit:contain}
.dv-logo{height:26px;object-fit:contain}
.navbar .nav-link{color:rgba(11,36,48,.78)}
.navbar .nav-link:hover{color:rgba(11,36,48,1)}

.btn-dv-primary{
  color:#fff !important;
  background-color:var(--dv-accent);
  background-image:linear-gradient(135deg,var(--dv-accent),var(--dv-accent-2));
  border:0;
  box-shadow:0 12px 25px rgba(30,160,216,.25);
}
.btn-dv-primary:hover,
.btn-dv-primary:focus{
  color:#fff !important;
  background-color:#1692c6;
  background-image:linear-gradient(135deg,#1692c6,#40c6cc);
}
.btn-dv-primary:focus{
  box-shadow:0 0 0 .25rem rgba(30,160,216,.28), 0 12px 25px rgba(30,160,216,.25);
}
.btn-dv-ghost{
  --bs-btn-color:var(--dv-ink);
  --bs-btn-bg:rgba(255,255,255,.65);
  --bs-btn-border-color:rgba(11,36,48,.12);
  --bs-btn-hover-color:var(--dv-ink);
  --bs-btn-hover-bg:rgba(255,255,255,.9);
  --bs-btn-hover-border-color:rgba(11,36,48,.16);
  border:1px solid rgba(11,36,48,.12);
  box-shadow:var(--dv-shadow-soft);
}

.dv-hero{
  position:relative;
  padding:86px 0 54px;
  overflow:hidden;
}
.dv-hero-course{padding-bottom:42px}
.dv-hero-bg{
  position:absolute; inset:-1px;
  background-image:url("../assets_images/style.jpg");
  background-size:cover;
  background-position:center;
  filter:saturate(1.1);
}
.dv-hero-overlay{
  position:absolute; inset:0;
  background:
    radial-gradient(900px 500px at 20% 10%, rgba(255,255,255,.85), rgba(255,255,255,.45) 55%, rgba(245,251,255,.10) 100%),
    linear-gradient(180deg, rgba(245,251,255,.20), rgba(245,251,255,.86));
}
.dv-hero-content{position:relative; z-index:2}
.dv-h1{
  font-weight:900;
  letter-spacing:-.7px;
  line-height:1.02;
  font-size:clamp(2.05rem, 1.35rem + 2.35vw, 3.2rem);
  text-shadow:0 1px 0 rgba(255,255,255,.65);
}
.dv-h1-accent{
  display:block;
  background:linear-gradient(135deg,var(--dv-accent),var(--dv-accent-2));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.dv-h2{
  font-weight:900;
  letter-spacing:-.4px;
  font-size:clamp(1.5rem, 1.05rem + 1.1vw, 2.1rem);
}
.dv-lead{
  color:rgba(17,54,70,.86);
  font-size:1.1rem;
}
.dv-text{color:rgba(17,54,70,.86); font-size:1.03rem}
.dv-price-inline{
  display:inline-block;
  padding:.12rem .55rem;
  border-radius:999px;
  background:rgba(255,255,255,.65);
  border:1px solid rgba(11,36,48,.08);
  box-shadow:var(--dv-shadow-soft);
}

.dv-pill{
  display:inline-flex; align-items:center; gap:.55rem;
  padding:.5rem .75rem;
  border-radius:999px;
  background:rgba(255,255,255,.58);
  border:1px solid rgba(11,36,48,.10);
  box-shadow:0 10px 25px rgba(9,35,49,.10);
  color:rgba(11,36,48,.80);
}
.dv-dot{
  width:10px; height:10px; border-radius:999px;
  background:linear-gradient(135deg,var(--dv-accent),var(--dv-accent-2));
  box-shadow:0 0 0 4px rgba(79,212,217,.18);
}

.dv-hero-card{
  border-radius:var(--dv-radius);
  background:rgba(255,255,255,.60);
  border:var(--dv-border);
  box-shadow:var(--dv-shadow);
  padding:18px;
}
.dv-hero-card-title{font-weight:900; color:rgba(11,36,48,.88)}
.dv-mini-course{
  padding:12px;
  border-radius:14px;
  background:rgba(255,255,255,.62);
  border:1px solid rgba(11,36,48,.08);
  box-shadow:0 10px 18px rgba(9,35,49,.08);
  margin-bottom:10px;
}
.dv-mini-title{font-weight:800; line-height:1.15}
.dv-mini-meta{color:rgba(90,115,128,.95); font-size:.92rem}
.dv-mini-desc{color:rgba(17,54,70,.86); font-size:.95rem; line-height:1.25}
.dv-mini-price{font-weight:900; color:rgba(11,36,48,.88)}

.dv-stats{display:flex; gap:12px; flex-wrap:wrap}
.dv-stat{
  min-width:160px;
  padding:12px 14px;
  border-radius:16px;
  background:rgba(255,255,255,.55);
  border:1px solid rgba(11,36,48,.08);
  box-shadow:0 12px 20px rgba(9,35,49,.10);
}
.dv-stat-num{font-weight:900; font-size:1.1rem}
.dv-stat-label{color:rgba(90,115,128,.95); font-size:.9rem}

.dv-scroll-hint{
  position:absolute; left:0; right:0; bottom:14px;
  display:flex; justify-content:center;
  z-index:3;
}
.dv-scroll-pill{
  padding:.4rem .75rem;
  border-radius:999px;
  background:rgba(255,255,255,.55);
  border:1px solid rgba(11,36,48,.08);
  color:rgba(17,54,70,.78);
  font-size:.9rem;
}

.dv-section{padding:64px 0}
.dv-section-alt{
  background:
    radial-gradient(1100px 600px at 10% 10%, rgba(30,160,216,.10), transparent 55%),
    radial-gradient(1000px 600px at 90% 40%, rgba(79,212,217,.14), transparent 55%),
    linear-gradient(180deg, rgba(255,255,255,.65), rgba(255,255,255,.35));
  border-top:1px solid rgba(11,36,48,.06);
  border-bottom:1px solid rgba(11,36,48,.06);
}

.dv-card, .dv-course{
  border-radius:var(--dv-radius);
  background:rgba(255,255,255,.72);
  border:1px solid rgba(11,36,48,.08);
  box-shadow:var(--dv-shadow-soft);
  padding:18px;
  transition:transform .18s ease, box-shadow .18s ease;
}
.dv-card:hover, .dv-course:hover{transform:translateY(-3px); box-shadow:var(--dv-shadow)}
.dv-card-title, .dv-course-title{font-weight:900; letter-spacing:-.2px}
.dv-card-text{color:rgba(90,115,128,.98)}
.dv-course-meta{color:rgba(90,115,128,.95); font-size:.92rem}
.dv-course-desc{color:rgba(17,54,70,.86); min-height:3.4em}
.dv-course-price{font-weight:900; font-size:1.15rem}

.dv-glass{
  border-radius:var(--dv-radius);
  background:rgba(255,255,255,.62);
  border:var(--dv-border);
  box-shadow:var(--dv-shadow);
  padding:18px;
}
.dv-glass-lg{padding:22px}
.dv-glass-title{font-weight:900}
.dv-glass-note{color:rgba(90,115,128,.95); font-size:.95rem}
.dv-chip{font-weight:900}
.dv-chip-sub{color:rgba(90,115,128,.95); font-size:.92rem}

.dv-checks{display:grid; gap:10px}
.dv-check{
  padding:10px 12px;
  border-radius:14px;
  background:rgba(255,255,255,.62);
  border:1px solid rgba(11,36,48,.08);
  box-shadow:0 10px 18px rgba(9,35,49,.06);
}

.dv-accordion .accordion-item{
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(11,36,48,.10);
  background:rgba(255,255,255,.7);
  box-shadow:var(--dv-shadow-soft);
  margin-bottom:10px;
}
.dv-accordion .accordion-button{font-weight:800}
.dv-accordion .accordion-button:not(.collapsed){background:rgba(79,212,217,.14)}

.dv-contact{display:grid; gap:12px}
.dv-contact-item{
  padding:14px 16px;
  border-radius:16px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(11,36,48,.08);
  box-shadow:var(--dv-shadow-soft);
}
.dv-contact-label{color:rgba(90,115,128,.95); font-size:.9rem}
.dv-contact-value{font-weight:900}

.dv-footer{padding:16px 0; border-top:1px solid rgba(11,36,48,.06)}

.dv-empty{
  border-radius:var(--dv-radius);
  padding:18px;
  background:rgba(255,255,255,.75);
  border:1px dashed rgba(11,36,48,.18);
}
.dv-empty-title{font-weight:900}
.dv-empty-text{color:rgba(90,115,128,.95)}

.dv-unavailable{
  border-radius:var(--dv-radius);
  padding:24px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(11,36,48,.10);
  box-shadow:var(--dv-shadow);
}
.dv-unavailable-title{font-weight:900; font-size:1.6rem}
.dv-unavailable-text{color:rgba(90,115,128,.98)}

/* Teachers */
.dv-teacher{
  border-radius:var(--dv-radius);
  background:rgba(255,255,255,.72);
  border:1px solid rgba(11,36,48,.08);
  box-shadow:var(--dv-shadow-soft);
  padding:16px;
}
.dv-teacher-top{position:relative}
.dv-teacher-img{
  width:100%;
  aspect-ratio:3 / 4;
  height:auto;
  object-fit:cover;
  border-radius:16px;
  border:1px solid rgba(11,36,48,.08);
  background:rgba(17,54,70,.06);
}
.dv-img-fallback{
  display:block;
}
.dv-teacher-placeholder{
  background:
    radial-gradient(600px 260px at 20% 10%, rgba(79,212,217,.20), transparent 55%),
    radial-gradient(480px 240px at 90% 30%, rgba(30,160,216,.18), transparent 55%),
    linear-gradient(180deg, rgba(255,255,255,.85), rgba(255,255,255,.55));
}
.dv-teacher-badge{
  position:absolute; left:12px; bottom:12px;
  padding:.35rem .6rem;
  border-radius:999px;
  background:rgba(255,255,255,.70);
  border:1px solid rgba(11,36,48,.10);
  font-weight:800;
  font-size:.92rem;
}
.dv-teacher-name{font-weight:900}

/* Materials */
.dv-block-title{font-weight:900; letter-spacing:-.2px}
.dv-banner{
  width:100%;
  border:none;
  border-radius:16px;
  overflow:hidden;
  background:rgba(255,255,255,.75);
  border:1px solid rgba(11,36,48,.10);
  box-shadow:var(--dv-shadow-soft);
  padding:0;
  text-align:left;
  transition:transform .18s ease, box-shadow .18s ease;
}
.dv-banner:hover{transform:translateY(-2px); box-shadow:var(--dv-shadow)}
.dv-banner-fallback{
  width:100%;
  height:150px;
  background:
    radial-gradient(520px 220px at 30% 10%, rgba(79,212,217,.22), transparent 55%),
    radial-gradient(520px 220px at 80% 30%, rgba(30,160,216,.18), transparent 55%),
    linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.62));
}
.dv-banner img{width:100%; height:150px; object-fit:cover; display:block}
.dv-banner-cap{
  display:block;
  padding:10px 12px;
  font-weight:800;
  font-size:.92rem;
  color:rgba(11,36,48,.86);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* Big banner rail (300x600 frames) */
.dv-banner-rail-wrap{
  border-radius:var(--dv-radius);
  background:rgba(255,255,255,.55);
  border:1px solid rgba(11,36,48,.08);
  box-shadow:var(--dv-shadow-soft);
  padding:14px;
}
.dv-banner-rail{
  --dv-banner-w: 300px;
  --dv-banner-h: 600px;
  display:flex;
  gap:14px;
  overflow-x:auto;
  padding:2px 2px 10px;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
}
.dv-banner-rail::-webkit-scrollbar{height:10px}
.dv-banner-rail::-webkit-scrollbar-thumb{background:rgba(11,36,48,.18); border-radius:999px}
.dv-banner-card{
  flex:0 0 auto;
  width: min(var(--dv-banner-w), 78vw);
  border:0;
  background:transparent;
  padding:0;
  text-align:left;
  scroll-snap-align:start;
}
.dv-banner-frame{
  width:100%;
  height: min(var(--dv-banner-h), 72vh);
  border-radius:18px;
  overflow:hidden;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(11,36,48,.10);
  box-shadow:var(--dv-shadow-soft);
  position:relative;
}
.dv-banner-frame .dv-banner-fallback{
  height:100%;
  border-radius:0;
}
.dv-banner-img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  background:rgba(255,255,255,.92);
}
.dv-banner-meta{
  padding:10px 6px 0;
}
.dv-banner-title{
  font-weight:900;
  line-height:1.15;
  color:rgba(11,36,48,.90);
  word-break:break-word;
}
.dv-banner-sub{
  color:rgba(90,115,128,.95);
  font-size:.92rem;
}
.dv-rail-btn{white-space:nowrap}

.dv-modal-imgwrap-banner{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:10px;
}
.dv-modal-imgwrap-banner .dv-modal-img{
  max-height:80vh;
  width:auto;
  max-width:100%;
  height:auto;
}
.dv-carousel-caption{
  text-align:center;
}

.dv-modal .modal-header{border-bottom:1px solid rgba(11,36,48,.10)}
.dv-modal{border-radius:18px}
.dv-modal-imgwrap{
  background:rgba(17,54,70,.05);
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(11,36,48,.08);
}
.dv-modal-fallback{
  width:100%;
  min-height:280px;
  background:
    radial-gradient(700px 320px at 30% 10%, rgba(79,212,217,.18), transparent 55%),
    radial-gradient(700px 320px at 80% 30%, rgba(30,160,216,.14), transparent 55%),
    linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.62));
}
.dv-modal-imgwrap img{width:100%; height:auto; display:block}

.dv-files .dv-file{background:rgba(255,255,255,.72); border:1px solid rgba(11,36,48,.10)}
.dv-file-title{font-weight:900}
.dv-file-meta{color:rgba(90,115,128,.95); font-size:.85rem}
.dv-note{
  padding:10px 12px;
  border-radius:14px;
  background:rgba(30,160,216,.08);
  border:1px solid rgba(30,160,216,.12);
  color:rgba(17,54,70,.90);
}

/* Sticky CTA */
.dv-sticky-cta{
  position:fixed; left:12px; right:12px; bottom:12px;
  display:none;
  z-index:60;
}
.dv-sticky-cta .btn{width:100%}
@media (max-width: 991.98px){
  .dv-sticky-cta{display:block}
  .dv-hero{padding-top:74px}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .dv-card,.dv-course,.dv-banner{transition:none}
}
