/* DesignPro home — Figma designpro-home-desktop-v2 */
:root {
  --dp-blue: #3b5fe5;
  --dp-blue-soft: #eef2ff;
  --dp-ink: #0f172a;
  --dp-muted: #475569;
  --dp-line: #e2e8f0;
  --dp-bg: #f8fafc;
  --dp-white: #ffffff;
  --dp-radius: 24px;
  --dp-radius-lg: 32px;
  --dp-pad: clamp(24px, 5vw, 80px);
  --dp-max: 1280px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body.dp-body {
  margin: 0;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  color: var(--dp-ink);
  background: var(--dp-white);
  -webkit-font-smoothing: antialiased;
}

.dp a {
  color: inherit;
  text-decoration: none;
}

.dp img {
  max-width: 100%;
  display: block;
}

.dp-container {
  width: min(100% - 2 * var(--dp-pad), var(--dp-max));
  margin-inline: auto;
}

.dp-badge {
  display: inline-flex;
  align-items: center;
  padding: 6px 16px;
  border-radius: 100px;
  background: var(--dp-blue-soft);
  color: var(--dp-blue);
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.dp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 14px 28px;
  border-radius: 100px;
  font-size: 16px;
  font-weight: 600;
  border: 2px solid transparent;
  cursor: pointer;
  transition: transform 0.15s ease, opacity 0.15s ease, background 0.15s ease;
}

.dp-btn:hover {
  transform: translateY(-1px);
}

.dp-btn--primary {
  background: var(--dp-blue);
  color: #fff !important;
}

.dp-btn--outline {
  background: transparent;
  border-color: var(--dp-blue);
  color: var(--dp-blue) !important;
}

.dp-btn--white {
  background: #fff;
  color: var(--dp-blue) !important;
}

.dp-btn--block {
  width: 100%;
}

.dp-section-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center;
  margin-bottom: 56px;
}

.dp-section-head h2 {
  margin: 0;
  font-size: clamp(28px, 4vw, 44px);
  font-weight: 800;
  line-height: 1.15;
  color: var(--dp-ink);
}

.dp-section-head p {
  margin: 0;
  max-width: 680px;
  font-size: 18px;
  line-height: 1.5;
  color: var(--dp-muted);
}

/* Header */
.dp-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid var(--dp-line);
  backdrop-filter: blur(10px);
}

.dp-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 20px 0;
}

.dp-logo {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 28px;
  font-weight: 800;
  color: var(--dp-ink);
}

.dp-logo__mark {
  display: inline-flex;
  padding: 10px;
  border-radius: 14px;
  background: var(--dp-blue-soft);
}

.dp-logo__mark img {
  width: 24px;
  height: 24px;
}

.dp-nav {
  display: flex;
  align-items: center;
  gap: 32px;
}

.dp-nav a {
  font-size: 16px;
  font-weight: 500;
  color: var(--dp-muted);
}

.dp-nav a.is-active,
.dp-nav a:hover {
  color: var(--dp-blue);
  font-weight: 600;
}

.dp-header__actions {
  display: flex;
  align-items: center;
  gap: 24px;
}

.dp-header__login {
  font-size: 16px;
  font-weight: 600;
  color: var(--dp-muted);
}

.dp-menu-toggle {
  display: none;
  width: 44px;
  height: 44px;
  border: 1px solid var(--dp-line);
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
}

/* Hero */
.dp-hero {
  background: var(--dp-bg);
  padding: var(--dp-pad) 0;
}

.dp-hero__grid {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 64px;
  align-items: center;
}

.dp-hero__copy {
  display: flex;
  flex-direction: column;
  gap: 32px;
  align-items: flex-start;
}

.dp-hero__copy h1 {
  margin: 0;
  font-size: clamp(36px, 5vw, 56px);
  font-weight: 900;
  line-height: 1.15;
  color: var(--dp-ink);
}

.dp-hero__copy > p {
  margin: 0;
  font-size: 20px;
  line-height: 1.6;
  color: var(--dp-muted);
}

.dp-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.dp-hero__media {
  width: 100%;
  max-width: 580px;
  height: 460px;
  margin-left: auto;
  border-radius: var(--dp-radius);
  overflow: hidden;
}

.dp-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Directions */
.dp-section {
  padding: var(--dp-pad) 0;
}

.dp-section--alt {
  background: var(--dp-bg);
}

.dp-dirs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.dp-dir {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 32px;
  border-radius: var(--dp-radius);
  background: var(--dp-bg);
  border: 1px solid var(--dp-line);
}

.dp-section--alt .dp-dir {
  background: #fff;
}

.dp-dir__icon {
  display: inline-flex;
  padding: 14px;
  border-radius: 16px;
  background: #fff;
  width: fit-content;
}

.dp-section--alt .dp-dir__icon {
  background: var(--dp-blue-soft);
}

.dp-dir__icon img {
  width: 24px;
  height: 24px;
}

.dp-dir__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.dp-dir__top h3 {
  margin: 0;
  font-size: 22px;
  font-weight: 700;
}

.dp-dir__top span {
  font-size: 14px;
  font-weight: 600;
  color: var(--dp-blue);
  white-space: nowrap;
}

.dp-dir p {
  margin: 10px 0 0;
  font-size: 15px;
  line-height: 1.5;
  color: var(--dp-muted);
}

/* Benefits */
.dp-benefits {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.dp-benefit {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 32px;
  border-radius: var(--dp-radius);
  background: #fff;
  border: 1px solid var(--dp-line);
}

.dp-benefit__icon {
  display: inline-flex;
  padding: 16px;
  border-radius: 100px;
  background: var(--dp-blue-soft);
  width: fit-content;
}

.dp-benefit__icon img {
  width: 28px;
  height: 28px;
}

.dp-benefit h3 {
  margin: 0;
  font-size: 20px;
  font-weight: 700;
}

.dp-benefit p {
  margin: 0;
  font-size: 15px;
  line-height: 1.5;
  color: var(--dp-muted);
}

/* Courses */
.dp-courses {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.dp-course {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border-radius: var(--dp-radius);
  border: 1px solid var(--dp-line);
  background: #fff;
  overflow: hidden;
  color: inherit;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.dp-course:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.08);
}

.dp-course__cover {
  height: 220px;
  overflow: hidden;
}

.dp-course__cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dp-course__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 28px;
}

.dp-course__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.dp-course__cat {
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--dp-blue);
}

.dp-course__rating {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 14px;
  font-weight: 700;
}

.dp-course__rating img {
  width: 16px;
  height: 16px;
}

.dp-course__body h3 {
  margin: 0;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.25;
}

.dp-course__stats {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  font-size: 14px;
  font-weight: 500;
  color: var(--dp-muted);
}

.dp-course__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 28px 20px;
  border-top: 1px solid var(--dp-line);
}

.dp-course__teacher {
  display: flex;
  align-items: center;
  gap: 12px;
}

.dp-course__teacher img {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
}

.dp-course__teacher strong {
  display: block;
  font-size: 14px;
  font-weight: 600;
}

.dp-course__teacher span {
  display: block;
  font-size: 12px;
  color: var(--dp-muted);
}

.dp-course__chevron {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

/* Pricing */
.dp-pricing {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  align-items: stretch;
}

.dp-plan {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 32px;
  padding: 40px;
  border-radius: var(--dp-radius-lg);
  border: 1px solid var(--dp-line);
  background: #fff;
}

.dp-plan--featured {
  background: var(--dp-blue);
  border-color: transparent;
  box-shadow: 0 16px 16px rgba(59, 95, 229, 0.2);
  color: #fff;
}

.dp-plan__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.dp-plan__head h3 {
  margin: 0;
  font-size: 28px;
  font-weight: 800;
}

.dp-plan__tag {
  padding: 4px 12px;
  border-radius: 100px;
  background: var(--dp-blue-soft);
  color: var(--dp-blue);
  font-size: 13px;
  font-weight: 700;
}

.dp-plan--featured .dp-plan__tag {
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
}

.dp-plan__desc {
  margin: 16px 0 0;
  font-size: 15px;
  line-height: 1.4;
  color: var(--dp-muted);
}

.dp-plan--featured .dp-plan__desc {
  color: rgba(255, 255, 255, 0.8);
}

.dp-plan__price {
  display: flex;
  align-items: baseline;
  gap: 4px;
  margin-top: 16px;
}

.dp-plan__price strong {
  font-size: 48px;
  font-weight: 900;
  line-height: 1;
}

.dp-plan__price span {
  font-size: 18px;
  font-weight: 500;
  color: var(--dp-muted);
}

.dp-plan--featured .dp-plan__price span {
  color: rgba(255, 255, 255, 0.7);
}

.dp-plan__divider {
  height: 1px;
  margin: 28px 0;
  background: var(--dp-line);
}

.dp-plan--featured .dp-plan__divider {
  background: rgba(255, 255, 255, 0.25);
}

.dp-plan__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.dp-plan__list li {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  font-size: 15px;
  line-height: 1.4;
}

.dp-plan__list img {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  margin-top: 1px;
}

.dp-plan--featured .dp-btn--outline {
  border-color: #fff;
  color: #fff !important;
  background: transparent;
}

.dp-plan--featured .dp-btn--white {
  background: #fff;
  color: var(--dp-blue) !important;
}

/* Instructor */
.dp-instructor {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 64px;
  align-items: center;
}

.dp-instructor__photo {
  border-radius: var(--dp-radius);
  overflow: hidden;
  min-height: 480px;
}

.dp-instructor__photo img {
  width: 100%;
  height: 100%;
  min-height: 480px;
  object-fit: cover;
}

.dp-instructor__copy h2 {
  margin: 12px 0 8px;
  font-size: clamp(28px, 4vw, 40px);
  font-weight: 800;
}

.dp-instructor__role {
  margin: 0 0 20px;
  font-size: 18px;
  font-weight: 600;
  color: var(--dp-blue);
}

.dp-instructor__bio {
  margin: 0 0 32px;
  font-size: 17px;
  line-height: 1.6;
  color: var(--dp-muted);
}

.dp-instructor__stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.dp-instructor__stat {
  padding: 24px;
  border-radius: 20px;
  background: var(--dp-bg);
  border: 1px solid var(--dp-line);
}

.dp-instructor__stat strong {
  display: block;
  font-size: 28px;
  font-weight: 800;
  margin-bottom: 6px;
}

.dp-instructor__stat span {
  font-size: 14px;
  color: var(--dp-muted);
}

/* Reviews */
.dp-reviews {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.dp-review {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 28px;
  padding: 32px;
  border-radius: var(--dp-radius);
  background: #fff;
  border: 1px solid var(--dp-line);
}

.dp-review__quote {
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: var(--dp-muted);
}

.dp-review__person {
  display: flex;
  align-items: center;
  gap: 12px;
}

.dp-review__person img {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
}

.dp-review__person strong {
  display: block;
  font-size: 15px;
}

.dp-review__person span {
  display: block;
  font-size: 13px;
  color: var(--dp-muted);
}

/* CTA band */
.dp-cta {
  padding: 0 var(--dp-pad) var(--dp-pad);
}

.dp-cta__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding: 56px 64px;
  border-radius: var(--dp-radius-lg);
  background: var(--dp-blue);
  color: #fff;
}

.dp-cta__inner h2 {
  margin: 0 0 12px;
  font-size: clamp(28px, 4vw, 40px);
  font-weight: 800;
}

.dp-cta__inner p {
  margin: 0;
  max-width: 560px;
  font-size: 18px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.85);
}

/* Footer */
.dp-footer {
  background: #0b1220;
  color: rgba(255, 255, 255, 0.78);
  padding: 64px 0 28px;
}

.dp-footer__grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
  gap: 40px;
  margin-bottom: 48px;
}

.dp-footer__brand {
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: flex-start;
}

.dp-footer .dp-logo {
  color: #fff;
}

.dp-footer__brand p {
  margin: 0;
  max-width: 320px;
  line-height: 1.6;
  font-size: 15px;
}

.dp-footer h4 {
  margin: 0 0 16px;
  font-size: 16px;
  font-weight: 700;
  color: #fff;
}

.dp-footer ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.dp-footer a:hover {
  color: #fff;
}

.dp-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 16px;
  padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  font-size: 14px;
}

.dp-footer__legal {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}

/* Responsive */
@media (max-width: 1100px) {
  .dp-hero__grid,
  .dp-instructor {
    grid-template-columns: 1fr;
  }

  .dp-hero__media,
  .dp-instructor__photo {
    max-width: none;
    margin: 0;
    min-height: 360px;
    height: 360px;
  }

  .dp-dirs,
  .dp-courses,
  .dp-pricing,
  .dp-reviews {
    grid-template-columns: 1fr 1fr;
  }

  .dp-benefits,
  .dp-footer__grid {
    grid-template-columns: 1fr 1fr;
  }

  .dp-cta__inner {
    flex-direction: column;
    align-items: flex-start;
    padding: 40px;
  }
}

@media (max-width: 760px) {
  .dp-nav,
  .dp-header__actions {
    display: none;
  }

  .dp-menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .dp-header.is-open .dp-nav,
  .dp-header.is-open .dp-header__actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
  }

  .dp-header.is-open .dp-header__inner {
    flex-wrap: wrap;
  }

  .dp-dirs,
  .dp-courses,
  .dp-pricing,
  .dp-reviews,
  .dp-benefits,
  .dp-footer__grid,
  .dp-instructor__stats {
    grid-template-columns: 1fr;
  }

  .dp-hero__media,
  .dp-instructor__photo,
  .dp-instructor__photo img {
    height: 280px;
    min-height: 280px;
  }
}
