/* =======================================================
   DUB FACTORY STUDIOS
   LAYOUT / HERO / SECTIONS / CARDS
======================================================= */

/* HERO */

.dfs-hero,
#fh5co-header.fh5co-cover {
  position: relative;
  display: flex;
  align-items: center;

  min-height: 82vh;

  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

.dfs-hero:before,
.fh5co-cover .overlay {
  content: "";
  position: absolute;
  inset: 0;

  background: rgba(0,0,0,0.55);

  z-index: 0;
}

.dfs-hero .container,
.fh5co-cover .display-tc {
  position: relative;
  z-index: 2;
}

.dfs-hero-content,
.fh5co-cover .display-tc {
  max-width: 760px;
  padding: 120px 20px;
  color: var(--dfs-white);
}

.dfs-kicker {
  display: inline-block;

  margin-bottom: 24px;

  color: #ffb380;

  font-size: 13px;
  font-weight: 800;

  letter-spacing: 4px;
  text-transform: uppercase;
}

.dfs-hero h1,
#fh5co-header .display-tc h1 {
  color: var(--dfs-white);

  font-size: 78px;
  font-weight: 900;
  line-height: 1;

  text-transform: uppercase;

  margin-bottom: 30px;
}

.dfs-hero p,
#fh5co-header .display-tc h2 {
  max-width: 660px;

  color: rgba(255,255,255,0.92);

  font-size: 20px;
  line-height: 1.9;

  margin-bottom: 36px;
}

/* SHORT INTERIOR HERO */

.dfs-page-hero {
  background: var(--dfs-cream);
  padding: 95px 20px 75px;
  text-align: center;
}

.dfs-page-hero .dfs-legal-wrap {
  max-width: 1000px;
  margin: 0 auto;
}

.dfs-page-hero h1 {
  color: var(--dfs-black);

  font-size: 56px;
  font-weight: 900;

  text-transform: uppercase;

  margin-bottom: 18px;
}

.dfs-page-hero p {
  color: var(--dfs-gray);
}

.dfs-hero .btn-outline {
  background: rgba(0,0,0,0.72) !important;
  color: var(--dfs-white) !important;
  border: 2px solid rgba(255,255,255,0.35) !important;
  box-shadow: none;
}

.dfs-hero .btn-outline:hover,
.dfs-hero .btn-outline:focus {
  background: var(--dfs-white) !important;
  color: var(--dfs-black) !important;
  border-color: var(--dfs-white) !important;
}

/* SECTIONS */

.dfs-section {
  position: relative;
  padding: 90px 0;
  background: var(--dfs-white);
}

.dfs-section-cream {
  background: #f5f1eb;
}

.dfs-section-dark {
  background: #151515;
  color: var(--dfs-white);
}

.dfs-section-dark h1,
.dfs-section-dark h2,
.dfs-section-dark h3,
.dfs-section-dark p,
.dfs-section-dark span {
  color: var(--dfs-white);
}

/* SECTION HEADINGS */

.dfs-section-heading {
  max-width: 850px;
  margin: 0 auto 60px;
  text-align: center;
}

.dfs-section-heading span {
  display: inline-block;

  margin-bottom: 18px;

  color: var(--dfs-orange);

  font-size: 13px;
  font-weight: 800;

  letter-spacing: 4px;
  text-transform: uppercase;
}

.dfs-section-heading h2 {
  color: var(--dfs-black);

  font-size: 54px;
  font-weight: 900;
  line-height: 1.1;

  text-transform: uppercase;

  margin-bottom: 24px;
}

.dfs-section-heading p {
  color: #666666;

  font-size: 18px;
  line-height: 1.9;
}

.dfs-section-dark .dfs-section-heading h2,
.dfs-section-dark .dfs-section-heading p {
  color: var(--dfs-white);
}

/* CARD GRIDS */

.dfs-card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;

  margin-top: 40px;
}

.dfs-card {
  position: relative;

  height: 100%;

  background: var(--dfs-white);

  border-radius: 18px;

  padding: 40px;

  box-shadow: 0 10px 35px rgba(0,0,0,0.08);

  transition: all 0.3s ease;
}

.dfs-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 40px rgba(0,0,0,0.12);
}

.dfs-card i {
  display: block;

  color: var(--dfs-orange);

  font-size: 38px;

  margin-bottom: 24px;
}

.dfs-card h3 {
  color: #111111;

  font-size: 24px;
  font-weight: 800;

  margin-bottom: 18px;
}

.dfs-card p {
  color: #666666;

  font-size: 16px;
  line-height: 1.8;

  margin-bottom: 0;
}

/* DARK SECTION CARDS */

.dfs-section-dark .dfs-card {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.08);
  box-shadow: none;
}

.dfs-section-dark .dfs-card h3,
.dfs-section-dark .dfs-card p {
  color: var(--dfs-white);
}

/* =======================================================
   PRICING GRID
   Default remains 4 columns for older pages.
   Custom song package rows use scoped 3-column classes.
======================================================= */

.dfs-pricing-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  align-items: stretch;
}

.dfs-pricing-grid.dfs-pricing-grid-three,
.dfs-pricing-grid.dfs-addon-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;

  width: 100%;
  max-width: 1180px;

  margin-left: auto;
  margin-right: auto;
}

.dfs-price-card {
  position: relative;
  overflow: hidden;

  display: flex;
  flex-direction: column;

  background: var(--dfs-white);

  border: 1px solid var(--dfs-border);
  border-radius: 18px;

  padding: 26px 24px;

  box-shadow: var(--dfs-shadow);
}

.dfs-price-card.featured {
  border-color: rgba(255,106,0,0.55);
  box-shadow: 0 28px 65px rgba(255,106,0,0.16);
}

.dfs-price-card.featured:before {
  content: "Popular";

  position: absolute;

  top: 18px;
  right: -38px;

  width: 150px;

  text-align: center;

  transform: rotate(35deg);

  background: var(--dfs-orange);

  color: var(--dfs-white);

  font-size: 11px;
  font-weight: 800;

  letter-spacing: 1px;
  text-transform: uppercase;

  padding: 6px 0;
}

.dfs-price-card h3 {
  color: var(--dfs-black);

  font-size: 22px;
  font-weight: 800;

  margin-bottom: 6px;
}

.dfs-price {
  color: var(--dfs-red);

  font-size: 36px;
  font-weight: 900;

  margin-bottom: 14px;
}

.dfs-price-card p {
  color: var(--dfs-gray);

  font-size: 15px;
  line-height: 1.65;

  margin-bottom: 18px;
}

.dfs-price-card ul {
  margin: 0 0 22px;
  padding: 0;

  flex-grow: 1;
}

.dfs-price-card li {
  list-style: none;

  padding: 7px 0;

  color: var(--dfs-gray);

  font-size: 14px;
  line-height: 1.45;

  border-bottom: 1px solid rgba(0,0,0,0.06);
}

.dfs-price-card .btn {
  margin-top: auto;
  align-self: center;
}

/* CUSTOM SONG PACKAGE ADD-ON PRESENTATION */

.dfs-section-divider {
  max-width: 600px;
  margin: 60px auto 40px;

  display: flex;
  align-items: center;
  justify-content: center;

  color: var(--dfs-orange);
}

.dfs-section-divider:before,
.dfs-section-divider:after {
  content: "";
  flex: 1;
  height: 1px;
  background: rgba(255,106,0,0.35);
}

.dfs-section-divider span {
  width: 48px;
  height: 48px;

  margin: 0 20px;

  display: flex;
  align-items: center;
  justify-content: center;

  color: var(--dfs-orange);
  font-size: 22px;
}

.dfs-addon-heading {
  margin-bottom: 50px;
}

.dfs-addon-card {
  height: 100%;
  padding: 34px 30px;
}

/* RESPONSIVE */

@media screen and (max-width: 1200px) {
  .dfs-pricing-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .dfs-pricing-grid.dfs-pricing-grid-three,
  .dfs-pricing-grid.dfs-addon-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 780px;
  }
}

@media screen and (max-width: 991px) {
  .dfs-card-grid {
    grid-template-columns: 1fr;
  }

  .dfs-hero h1,
  #fh5co-header .display-tc h1 {
    font-size: 54px;
  }

  .dfs-section-heading h2 {
    font-size: 42px;
  }
}

@media screen and (max-width: 768px) {
  .dfs-hero,
  #fh5co-header.fh5co-cover {
    min-height: auto;
  }

  .dfs-hero {
    padding: 130px 0 90px;
  }

  .dfs-hero-content,
  .fh5co-cover .display-tc {
    padding: 80px 24px;
  }

  .dfs-hero h1,
  #fh5co-header .display-tc h1 {
    font-size: 42px;
  }

  .dfs-hero p,
  #fh5co-header .display-tc h2 {
    font-size: 18px;
  }

  .dfs-section {
    padding: 70px 20px;
  }

  .dfs-section-heading h2 {
    font-size: 34px;
  }

  .dfs-pricing-grid,
  .dfs-pricing-grid.dfs-pricing-grid-three,
  .dfs-pricing-grid.dfs-addon-grid {
    grid-template-columns: 1fr;
    max-width: 420px;
  }

  .dfs-page-hero {
    padding: 70px 20px 55px;
  }

  .dfs-page-hero h1 {
    font-size: 38px;
  }

  .dfs-section-divider {
    margin: 44px auto 32px;
  }
}

@media screen and (max-width: 480px) {
  .dfs-hero h1,
  #fh5co-header .display-tc h1 {
    font-size: 34px;
  }

  .dfs-price {
    font-size: 34px;
  }
}

/* =======================================================
   PACKAGE JUMP GRID
======================================================= */

.dfs-package-jump-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
  margin-top: 42px;
}

.dfs-package-jump-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  min-height: 220px;
  padding: 28px;

  text-align: center;
  text-decoration: none;

  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 22px;

  transition: all 0.25s ease;
}

.dfs-package-jump-card:hover {
  transform: translateY(-6px);
  background: rgba(255,255,255,0.14);
  border-color: rgba(255,255,255,0.32);
  text-decoration: none;
}

.dfs-package-jump-title {
  color: var(--dfs-white);
  font-size: 24px;
  font-weight: 800;
  margin-bottom: 12px;
}

.dfs-package-jump-price {
  color: var(--dfs-orange);
  font-size: 42px;
  font-weight: 900;
  margin-bottom: 20px;
}

.dfs-package-jump-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-width: 140px;
  height: 44px;
  padding: 0 18px;

  border-radius: 999px;
  background: var(--dfs-orange);
  color: var(--dfs-white);

  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

@media screen and (max-width: 992px) {
  .dfs-package-jump-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (max-width: 768px) {
  .dfs-package-jump-grid {
    grid-template-columns: 1fr;
  }

  .dfs-package-jump-card {
    min-height: auto;
  }
}

/* =======================================================
   CUSTOM SONGS PACKAGE GRID
   Uses a unique class so global pricing rules cannot override it.
======================================================= */

.dfs-custom-song-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(280px, 360px));
  gap: 28px;
  justify-content: center;
  align-items: stretch;

  width: 100%;
  max-width: 1180px;

  margin-left: auto;
  margin-right: auto;
}

.dfs-custom-song-grid .dfs-price-card {
  width: 100%;
  max-width: 360px;
}

.dfs-section-divider {
  max-width: 600px;
  margin: 60px auto 40px;

  display: flex;
  align-items: center;
  justify-content: center;

  color: var(--dfs-orange);
}

.dfs-section-divider:before,
.dfs-section-divider:after {
  content: "";
  flex: 1;
  height: 1px;
  background: rgba(255,106,0,0.35);
}

.dfs-section-divider span {
  width: 48px;
  height: 48px;
  margin: 0 20px;

  display: flex;
  align-items: center;
  justify-content: center;

  color: var(--dfs-orange);
  font-size: 22px;
}

.dfs-addon-heading {
  margin-bottom: 50px;
}

.dfs-addon-card {
  height: 100%;
  padding: 34px 30px;
}

@media screen and (max-width: 1200px) {
  .dfs-custom-song-grid {
    grid-template-columns: repeat(2, minmax(280px, 360px));
    max-width: 780px;
  }
}

@media screen and (max-width: 768px) {
  .dfs-custom-song-grid {
    grid-template-columns: 1fr;
    max-width: 420px;
  }

  .dfs-custom-song-grid .dfs-price-card {
    max-width: 420px;
  }
}