:root {
  --dph-ink: #1b1815;
  --dph-ink-soft: #3b352e;
  --dph-ink-muted: #5c554c;
  --dph-cream: #f8f4ed;
  --dph-sand: #ebe2d5;
  --dph-sand-deep: #ddd0bd;
  --dph-accent: #b4743a;
  --dph-accent-dark: #8d5a2b;
  --dph-accent-soft: #f0e2d2;
  --dph-forest: #2c3d33;
  --dph-white: #ffffff;
  --dph-shadow-sm: 0 6px 18px rgba(27, 24, 21, 0.08);
  --dph-shadow-md: 0 18px 44px rgba(27, 24, 21, 0.12);
  --dph-shadow-lg: 0 34px 80px rgba(27, 24, 21, 0.18);
  --dph-radius: 18px;
  --dph-radius-lg: 28px;
  --dph-font-display: "Georgia", "Times New Roman", serif;
  --dph-font-body: "Helvetica Neue", Arial, sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--dph-font-body);
  color: var(--dph-ink-soft);
  background-color: var(--dph-cream);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

h1, h2, h3, h4, h5 {
  font-family: var(--dph-font-display);
  line-height: 1.18;
  letter-spacing: -0.01em;
}

h1 { font-size: clamp(2.3rem, 4.6vw, 4rem); font-weight: 700; }
h2 { font-size: clamp(1.8rem, 3.2vw, 2.9rem); font-weight: 700; }
h3 { font-size: clamp(1.3rem, 2vw, 1.8rem); font-weight: 700; }

p {
  color: var(--dph-ink-soft);
}

a {
  color: var(--dph-accent-dark);
  text-decoration: none;
  transition: color 0.25s ease, opacity 0.25s ease;
}

a:hover,
a:focus {
  color: var(--dph-ink);
}

img {
  max-width: 100%;
  height: auto;
}

.dph-shell {
  width: 100%;
  max-width: 1220px;
  margin: 0 auto;
  padding: 0 20px;
}

.dph-section {
  padding: 92px 0;
  position: relative;
}

.dph-section--tight {
  padding: 64px 0;
}

.dph-section--dark {
  background-color: var(--dph-ink);
  color: var(--dph-cream);
}

.dph-section--dark h1,
.dph-section--dark h2,
.dph-section--dark h3,
.dph-section--dark h4 {
  color: var(--dph-white);
}

.dph-section--dark p,
.dph-section--dark li {
  color: #e7ded1;
}

.dph-section--sand {
  background-color: var(--dph-sand);
}

.dph-section--cover {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.dph-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--dph-accent-dark);
  margin-bottom: 18px;
}

.dph-eyebrow::before {
  content: "";
  width: 34px;
  height: 2px;
  background-color: var(--dph-accent);
  display: inline-block;
}

.dph-section--dark .dph-eyebrow,
.dph-hero .dph-eyebrow {
  color: #f0c99f;
}

.dph-lead {
  font-size: 1.06rem;
  max-width: 720px;
}

.dph-title-center {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

.dph-title-center .dph-lead {
  margin-left: auto;
  margin-right: auto;
}

.dph-divider {
  width: 72px;
  height: 3px;
  border-radius: 3px;
  background: linear-gradient(90deg, var(--dph-accent), var(--dph-accent-soft));
  margin: 22px 0 30px;
}

.dph-title-center .dph-divider {
  margin-left: auto;
  margin-right: auto;
}

.dph-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 15px 32px;
  border-radius: 999px;
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  border: 2px solid transparent;
  cursor: pointer;
  transition: transform 0.25s ease, background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.dph-btn--primary {
  background-color: var(--dph-accent-dark);
  color: var(--dph-white);
  box-shadow: var(--dph-shadow-sm);
}

.dph-btn--primary:hover,
.dph-btn--primary:focus {
  background-color: var(--dph-ink);
  color: var(--dph-white);
  transform: translateY(-3px);
  box-shadow: var(--dph-shadow-md);
}

.dph-btn--ghost {
  background-color: transparent;
  color: var(--dph-ink);
  border-color: var(--dph-ink);
}

.dph-btn--ghost:hover,
.dph-btn--ghost:focus {
  background-color: var(--dph-ink);
  color: var(--dph-white);
  transform: translateY(-3px);
}

.dph-btn--light {
  background-color: var(--dph-white);
  color: var(--dph-ink);
}

.dph-btn--light:hover,
.dph-btn--light:focus {
  background-color: var(--dph-accent-dark);
  color: var(--dph-white);
  transform: translateY(-3px);
}

.dph-btn--outline-light {
  background-color: transparent;
  color: var(--dph-white);
  border-color: rgba(255, 255, 255, 0.75);
}

.dph-btn--outline-light:hover,
.dph-btn--outline-light:focus {
  background-color: var(--dph-white);
  color: var(--dph-ink);
  transform: translateY(-3px);
}

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

.dph-topbar {
  background-color: var(--dph-ink);
  color: #e9e1d6;
  font-size: 0.82rem;
  padding: 10px 0;
}

.dph-topbar__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.dph-topbar__list {
  display: flex;
  flex-wrap: wrap;
  gap: 22px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.dph-topbar__list li {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #e9e1d6;
}

.dph-topbar__list i {
  color: var(--dph-accent);
}

.dph-topbar__social a {
  color: #e9e1d6;
  margin-left: 14px;
  font-size: 0.95rem;
}

.dph-topbar__social a:hover,
.dph-topbar__social a:focus {
  color: #f0c99f;
}

.dph-header {
  position: sticky;
  top: 0;
  z-index: 1030;
  background-color: rgba(248, 244, 237, 0.96);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(27, 24, 21, 0.08);
  transition: padding 0.3s ease, box-shadow 0.3s ease;
}

.dph-header.is-stuck {
  box-shadow: var(--dph-shadow-sm);
}

.dph-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 16px 0;
  transition: padding 0.3s ease;
}

.dph-header.is-stuck .dph-header__inner {
  padding: 10px 0;
}

.dph-brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--dph-font-display);
  font-size: 1.32rem;
  font-weight: 700;
  color: var(--dph-ink);
  letter-spacing: 0.01em;
}

.dph-brand:hover,
.dph-brand:focus {
  color: var(--dph-accent-dark);
}

.dph-brand__mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background-color: var(--dph-accent-dark);
  color: var(--dph-white);
  font-size: 1.1rem;
}

.dph-nav {
  display: flex;
  align-items: center;
  gap: 6px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.dph-nav a {
  display: inline-block;
  padding: 10px 14px;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--dph-ink-soft);
  border-radius: 999px;
}

.dph-nav a:hover,
.dph-nav a:focus,
.dph-nav a.is-active {
  background-color: var(--dph-accent-soft);
  color: var(--dph-accent-dark);
}

.dph-header__cta {
  display: flex;
  align-items: center;
  gap: 14px;
}

.dph-header__phone {
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--dph-ink);
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.dph-header__phone i {
  color: var(--dph-accent-dark);
}

.dph-burger {
  display: none;
  width: 46px;
  height: 46px;
  border-radius: 14px;
  border: 1px solid rgba(27, 24, 21, 0.18);
  background-color: transparent;
  color: var(--dph-ink);
  font-size: 1.05rem;
  cursor: pointer;
}

.dph-burger:hover,
.dph-burger:focus {
  background-color: var(--dph-ink);
  color: var(--dph-white);
}

.dph-drawer {
  position: fixed;
  inset: 0 0 0 auto;
  width: min(360px, 88vw);
  background-color: var(--dph-cream);
  box-shadow: var(--dph-shadow-lg);
  transform: translateX(102%);
  transition: transform 0.35s ease;
  z-index: 1080;
  padding: 26px 24px 40px;
  overflow-y: auto;
}

.dph-drawer.is-open {
  transform: translateX(0);
}

.dph-drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 22px;
}

.dph-drawer__close {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  border: 1px solid rgba(27, 24, 21, 0.18);
  background: transparent;
  color: var(--dph-ink);
  cursor: pointer;
}

.dph-drawer__nav {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
}

.dph-drawer__nav a {
  display: block;
  padding: 13px 0;
  border-bottom: 1px solid rgba(27, 24, 21, 0.09);
  font-size: 1rem;
  font-weight: 600;
  color: var(--dph-ink);
}

.dph-drawer__nav a:hover,
.dph-drawer__nav a:focus {
  color: var(--dph-accent-dark);
  padding-left: 6px;
}

.dph-drawer__contact {
  font-size: 0.9rem;
  display: grid;
  gap: 10px;
  margin-bottom: 22px;
}

.dph-backdrop {
  position: fixed;
  inset: 0;
  background-color: rgba(27, 24, 21, 0.55);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  z-index: 1070;
}

.dph-backdrop.is-open {
  opacity: 1;
  visibility: visible;
}

.dph-hero {
  position: relative;
  color: var(--dph-white);
  background-size: cover;
  background-position: center;
  padding: 120px 0 110px;
  overflow: hidden;
}

.dph-hero h1,
.dph-hero h2,
.dph-hero p,
.dph-hero li {
  color: var(--dph-white);
}

.dph-hero__grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 48px;
  align-items: center;
}

.dph-hero__text {
  max-width: 620px;
}

.dph-hero__text p {
  color: #ede4d8;
  font-size: 1.08rem;
}

.dph-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 32px;
}

.dph-hero__stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-top: 46px;
}

.dph-hero__stat {
  padding: 20px 18px;
  border-radius: var(--dph-radius);
  background-color: rgba(255, 255, 255, 0.09);
  border: 1px solid rgba(255, 255, 255, 0.18);
}

.dph-hero__stat strong {
  display: block;
  font-family: var(--dph-font-display);
  font-size: 1.9rem;
  color: var(--dph-white);
  line-height: 1.1;
}

.dph-hero__stat span {
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #e0d5c6;
}

.dph-hero__card {
  background-color: rgba(248, 244, 237, 0.97);
  border-radius: var(--dph-radius-lg);
  padding: 34px 30px;
  color: var(--dph-ink-soft);
  box-shadow: var(--dph-shadow-lg);
}

.dph-hero__card h3 {
  margin-bottom: 6px;
}

.dph-hero__card p {
  color: var(--dph-ink-muted);
  font-size: 0.95rem;
}

.dph-hero__card-list {
  list-style: none;
  margin: 18px 0 0;
  padding: 0;
  display: grid;
  gap: 12px;
}

.dph-hero__card-list li {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  font-size: 0.94rem;
  color: var(--dph-ink-soft);
}

.dph-hero__card-list i {
  color: var(--dph-accent-dark);
  margin-top: 5px;
}

.dph-marquee {
  border-top: 1px solid rgba(27, 24, 21, 0.1);
  border-bottom: 1px solid rgba(27, 24, 21, 0.1);
  background-color: var(--dph-white);
  padding: 20px 0;
  overflow: hidden;
}

.dph-marquee__track {
  display: flex;
  align-items: center;
  gap: 56px;
  white-space: nowrap;
  animation: dph-scroll 32s linear infinite;
  width: max-content;
}

.dph-marquee__item {
  font-family: var(--dph-font-display);
  font-size: 1.15rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--dph-ink-muted);
}

.dph-marquee__item i {
  color: var(--dph-accent);
  margin-right: 10px;
}

@keyframes dph-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

.dph-grid {
  display: grid;
  gap: 26px;
}

.dph-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dph-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dph-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.dph-card {
  background-color: var(--dph-white);
  border-radius: var(--dph-radius-lg);
  overflow: hidden;
  box-shadow: var(--dph-shadow-sm);
  display: flex;
  flex-direction: column;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.dph-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--dph-shadow-md);
}

.dph-card__media {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background-color: var(--dph-sand);
}

.dph-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.dph-card:hover .dph-card__media img {
  transform: scale(1.06);
}

.dph-card__badge {
  position: absolute;
  top: 16px;
  left: 16px;
  background-color: var(--dph-white);
  color: var(--dph-accent-dark);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 7px 14px;
  border-radius: 999px;
}

.dph-card__body {
  padding: 26px 24px 28px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.dph-card__body h3 {
  font-size: 1.32rem;
  margin-bottom: 10px;
}

.dph-card__body p {
  font-size: 0.95rem;
  color: var(--dph-ink-muted);
  flex-grow: 1;
}

.dph-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--dph-accent-dark);
  margin-bottom: 14px;
}

.dph-card__foot {
  margin-top: 20px;
}

.dph-link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  font-size: 0.88rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--dph-accent-dark);
}

.dph-link-arrow i {
  transition: transform 0.25s ease;
}

.dph-link-arrow:hover i,
.dph-link-arrow:focus i {
  transform: translateX(5px);
}

.dph-feature {
  background-color: var(--dph-white);
  border-radius: var(--dph-radius);
  padding: 32px 28px;
  box-shadow: var(--dph-shadow-sm);
  height: 100%;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.dph-feature:hover {
  transform: translateY(-6px);
  box-shadow: var(--dph-shadow-md);
}

.dph-feature__icon {
  width: 58px;
  height: 58px;
  border-radius: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: var(--dph-accent-soft);
  color: var(--dph-accent-dark);
  font-size: 1.35rem;
  margin-bottom: 20px;
}

.dph-feature h3 {
  font-size: 1.18rem;
  margin-bottom: 10px;
}

.dph-feature p {
  font-size: 0.94rem;
  color: var(--dph-ink-muted);
  margin-bottom: 0;
}

.dph-feature--dark {
  background-color: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.16);
  box-shadow: none;
}

.dph-feature--dark p {
  color: #ddd2c3;
}

.dph-feature--dark .dph-feature__icon {
  background-color: rgba(240, 201, 159, 0.16);
  color: #f0c99f;
}

.dph-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
}

.dph-split--reverse .dph-split__media {
  order: 2;
}

.dph-split__media {
  position: relative;
  border-radius: var(--dph-radius-lg);
  overflow: hidden;
  aspect-ratio: 5 / 4;
  background-color: var(--dph-sand);
  box-shadow: var(--dph-shadow-md);
}

.dph-split__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dph-split__tag {
  position: absolute;
  bottom: 20px;
  left: 20px;
  background-color: var(--dph-white);
  border-radius: 16px;
  padding: 16px 20px;
  box-shadow: var(--dph-shadow-sm);
}

.dph-split__tag strong {
  display: block;
  font-family: var(--dph-font-display);
  font-size: 1.5rem;
  color: var(--dph-ink);
  line-height: 1.1;
}

.dph-split__tag span {
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--dph-ink-muted);
}

.dph-check-list {
  list-style: none;
  margin: 22px 0 0;
  padding: 0;
  display: grid;
  gap: 14px;
}

.dph-check-list li {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  font-size: 0.98rem;
}

.dph-check-list i {
  color: var(--dph-accent-dark);
  margin-top: 6px;
}

.dph-section--dark .dph-check-list i {
  color: #f0c99f;
}

.dph-stat {
  text-align: center;
  padding: 30px 18px;
  border-radius: var(--dph-radius);
  background-color: var(--dph-white);
  box-shadow: var(--dph-shadow-sm);
}

.dph-stat strong {
  display: block;
  font-family: var(--dph-font-display);
  font-size: 2.6rem;
  color: var(--dph-accent-dark);
  line-height: 1;
}

.dph-stat span {
  display: block;
  margin-top: 10px;
  font-size: 0.84rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--dph-ink-muted);
}

.dph-progress {
  height: 8px;
  border-radius: 999px;
  background-color: var(--dph-sand);
  overflow: hidden;
  margin-top: 12px;
}

.dph-progress__bar {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--dph-accent-dark), var(--dph-accent));
  width: 0;
  transition: width 1.2s ease;
}

.dph-skill {
  margin-bottom: 24px;
}

.dph-skill__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--dph-ink);
}

.dph-step {
  position: relative;
  background-color: var(--dph-white);
  border-radius: var(--dph-radius);
  padding: 32px 26px 28px;
  box-shadow: var(--dph-shadow-sm);
  height: 100%;
}

.dph-step__num {
  font-family: var(--dph-font-display);
  font-size: 2.2rem;
  color: var(--dph-accent);
  line-height: 1;
  display: block;
  margin-bottom: 14px;
}

.dph-step h3 {
  font-size: 1.12rem;
  margin-bottom: 8px;
}

.dph-step p {
  font-size: 0.93rem;
  color: var(--dph-ink-muted);
  margin-bottom: 0;
}

.dph-price {
  background-color: var(--dph-white);
  border-radius: var(--dph-radius-lg);
  padding: 34px 30px 36px;
  box-shadow: var(--dph-shadow-sm);
  height: 100%;
  display: flex;
  flex-direction: column;
  border: 2px solid transparent;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.dph-price:hover {
  transform: translateY(-6px);
  box-shadow: var(--dph-shadow-md);
}

.dph-price--featured {
  border-color: var(--dph-accent);
  box-shadow: var(--dph-shadow-md);
}

.dph-price__label {
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--dph-accent-dark);
  margin-bottom: 14px;
}

.dph-price h3 {
  font-size: 1.4rem;
  margin-bottom: 8px;
}

.dph-price__amount {
  font-family: var(--dph-font-display);
  font-size: 2.5rem;
  color: var(--dph-ink);
  line-height: 1;
  margin: 16px 0 6px;
}

.dph-price__amount small {
  font-size: 0.9rem;
  font-family: var(--dph-font-body);
  color: var(--dph-ink-muted);
  margin-left: 6px;
}

.dph-price__list {
  list-style: none;
  margin: 22px 0 26px;
  padding: 0;
  display: grid;
  gap: 12px;
  flex-grow: 1;
}

.dph-price__list li {
  display: flex;
  gap: 11px;
  align-items: flex-start;
  font-size: 0.93rem;
}

.dph-price__list i {
  color: var(--dph-accent-dark);
  margin-top: 5px;
}

.dph-testimonial {
  background-color: var(--dph-white);
  border-radius: var(--dph-radius-lg);
  padding: 34px 30px;
  box-shadow: var(--dph-shadow-sm);
  height: 100%;
  display: flex;
  flex-direction: column;
}

.dph-testimonial__stars {
  color: var(--dph-accent);
  margin-bottom: 16px;
  font-size: 0.9rem;
}

.dph-testimonial__quote {
  font-family: var(--dph-font-display);
  font-size: 1.08rem;
  color: var(--dph-ink);
  flex-grow: 1;
  margin-bottom: 22px;
}

.dph-testimonial__person {
  display: flex;
  align-items: center;
  gap: 14px;
}

.dph-testimonial__avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  overflow: hidden;
  background-color: var(--dph-sand);
  flex-shrink: 0;
}

.dph-testimonial__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dph-testimonial__person strong {
  display: block;
  font-size: 0.96rem;
  color: var(--dph-ink);
}

.dph-testimonial__person span {
  font-size: 0.82rem;
  color: var(--dph-ink-muted);
}

.dph-slider .carousel-indicators {
  position: static;
  margin: 28px 0 0;
}

.dph-slider .carousel-indicators [data-bs-target] {
  width: 28px;
  height: 4px;
  border-radius: 999px;
  background-color: rgba(27, 24, 21, 0.25);
  border: 0;
  opacity: 1;
}

.dph-slider .carousel-indicators .active {
  background-color: var(--dph-accent-dark);
}

.dph-slider--light .carousel-indicators [data-bs-target] {
  background-color: rgba(255, 255, 255, 0.4);
}

.dph-slider--light .carousel-indicators .active {
  background-color: #f0c99f;
}

.dph-slide {
  padding: 4px;
}

.dph-slide__inner {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 40px;
  align-items: center;
  background-color: var(--dph-white);
  border-radius: var(--dph-radius-lg);
  overflow: hidden;
  box-shadow: var(--dph-shadow-md);
}

.dph-slide__media {
  aspect-ratio: 4 / 3;
  background-color: var(--dph-sand);
  height: 100%;
}

.dph-slide__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dph-slide__body {
  padding: 34px 36px 34px 0;
}

.dph-slide__body h3 {
  font-size: 1.5rem;
  margin-bottom: 12px;
}

.dph-slide__body p {
  color: var(--dph-ink-muted);
  font-size: 0.96rem;
}

.dph-slide__tag {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--dph-accent-dark);
  margin-bottom: 12px;
}

.dph-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.dph-gallery__item {
  position: relative;
  border-radius: var(--dph-radius);
  overflow: hidden;
  aspect-ratio: 1 / 1;
  background-color: var(--dph-sand);
}

.dph-gallery__item--wide {
  grid-column: span 2;
  aspect-ratio: 2 / 1;
}

.dph-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.dph-gallery__item:hover img {
  transform: scale(1.07);
}

.dph-gallery__caption {
  position: absolute;
  inset: auto 0 0 0;
  padding: 22px 20px 18px;
  background: linear-gradient(to top, rgba(27, 24, 21, 0.85), rgba(27, 24, 21, 0));
  color: var(--dph-white);
  font-size: 0.92rem;
  font-weight: 600;
}

.dph-faq {
  display: grid;
  gap: 14px;
}

.dph-faq__item {
  background-color: var(--dph-white);
  border-radius: var(--dph-radius);
  border: 1px solid rgba(27, 24, 21, 0.09);
  overflow: hidden;
}

.dph-faq__question {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 22px 24px;
  background: transparent;
  border: 0;
  text-align: left;
  font-family: var(--dph-font-display);
  font-size: 1.08rem;
  font-weight: 700;
  color: var(--dph-ink);
  cursor: pointer;
}

.dph-faq__question i {
  color: var(--dph-accent-dark);
  transition: transform 0.3s ease;
  flex-shrink: 0;
}

.dph-faq__item.is-open .dph-faq__question i {
  transform: rotate(45deg);
}

.dph-faq__answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease;
}

.dph-faq__answer p {
  padding: 0 24px 24px;
  margin: 0;
  font-size: 0.95rem;
  color: var(--dph-ink-muted);
}

.dph-form {
  background-color: var(--dph-white);
  border-radius: var(--dph-radius-lg);
  padding: 36px 32px 38px;
  box-shadow: var(--dph-shadow-md);
}

.dph-form--dark {
  background-color: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.15);
  box-shadow: none;
}

.dph-form label {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--dph-ink-muted);
  margin-bottom: 8px;
  display: block;
}

.dph-form--dark label {
  color: #ddd2c3;
}

.dph-form .form-control,
.dph-form .form-select {
  border-radius: 12px;
  border: 1px solid rgba(27, 24, 21, 0.16);
  padding: 13px 16px;
  font-size: 0.95rem;
  background-color: var(--dph-cream);
  color: var(--dph-ink);
}

.dph-form .form-control:focus,
.dph-form .form-select:focus {
  border-color: var(--dph-accent);
  box-shadow: 0 0 0 3px rgba(180, 116, 58, 0.18);
  background-color: var(--dph-white);
}

.dph-form--dark .form-control,
.dph-form--dark .form-select {
  background-color: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.22);
  color: var(--dph-white);
}

.dph-form--dark .form-control::placeholder {
  color: #c9beb0;
}

.dph-form--dark .form-control:focus,
.dph-form--dark .form-select:focus {
  background-color: rgba(255, 255, 255, 0.12);
  color: var(--dph-white);
}

.dph-form__note {
  font-size: 0.82rem;
  color: var(--dph-ink-muted);
  margin-top: 16px;
  margin-bottom: 0;
}

.dph-form--dark .dph-form__note {
  color: #cdc2b4;
}

.dph-newsletter {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.dph-newsletter .form-control {
  flex: 1 1 240px;
  border-radius: 999px;
  padding: 14px 20px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  background-color: rgba(255, 255, 255, 0.08);
  color: var(--dph-white);
}

.dph-newsletter .form-control::placeholder {
  color: #c9beb0;
}

.dph-team {
  text-align: center;
}

.dph-team__photo {
  border-radius: var(--dph-radius-lg);
  overflow: hidden;
  aspect-ratio: 3 / 4;
  background-color: var(--dph-sand);
  margin-bottom: 18px;
}

.dph-team__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dph-team h3 {
  font-size: 1.18rem;
  margin-bottom: 4px;
}

.dph-team span {
  font-size: 0.82rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--dph-accent-dark);
}

.dph-team p {
  font-size: 0.92rem;
  color: var(--dph-ink-muted);
  margin-top: 12px;
}

.dph-timeline {
  position: relative;
  list-style: none;
  margin: 0;
  padding: 0 0 0 34px;
}

.dph-timeline::before {
  content: "";
  position: absolute;
  left: 8px;
  top: 8px;
  bottom: 8px;
  width: 2px;
  background-color: rgba(27, 24, 21, 0.14);
}

.dph-timeline li {
  position: relative;
  padding-bottom: 30px;
}

.dph-timeline li::before {
  content: "";
  position: absolute;
  left: -34px;
  top: 7px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background-color: var(--dph-accent-dark);
  border: 3px solid var(--dph-cream);
}

.dph-timeline strong {
  display: block;
  font-family: var(--dph-font-display);
  font-size: 1.05rem;
  color: var(--dph-ink);
}

.dph-timeline span {
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--dph-accent-dark);
}

.dph-timeline p {
  font-size: 0.93rem;
  color: var(--dph-ink-muted);
  margin: 8px 0 0;
}

.dph-logos {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 22px;
  align-items: center;
}

.dph-logos__item {
  background-color: var(--dph-white);
  border-radius: var(--dph-radius);
  padding: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--dph-shadow-sm);
  font-family: var(--dph-font-display);
  font-size: 0.98rem;
  color: var(--dph-ink-muted);
  text-align: center;
}

.dph-map {
  border-radius: var(--dph-radius-lg);
  overflow: hidden;
  box-shadow: var(--dph-shadow-md);
  line-height: 0;
}

.dph-map iframe {
  width: 100%;
  height: 420px;
  border: 0;
  display: block;
}

.dph-contact-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 20px;
}

.dph-contact-list li {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}

.dph-contact-list i {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: var(--dph-accent-soft);
  color: var(--dph-accent-dark);
  flex-shrink: 0;
}

.dph-contact-list strong {
  display: block;
  font-size: 0.8rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--dph-ink-muted);
  margin-bottom: 3px;
}

.dph-contact-list span,
.dph-contact-list a {
  font-size: 0.98rem;
  color: var(--dph-ink);
  font-weight: 600;
}

.dph-cta-band {
  position: relative;
  background-size: cover;
  background-position: center;
  border-radius: var(--dph-radius-lg);
  padding: 62px 48px;
  color: var(--dph-white);
  overflow: hidden;
}

.dph-cta-band h2 {
  color: var(--dph-white);
  margin-bottom: 12px;
}

.dph-cta-band p {
  color: #ece2d5;
  max-width: 620px;
  margin-bottom: 26px;
}

.dph-cta-band__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.dph-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  list-style: none;
  margin: 0 0 18px;
  padding: 0;
  font-size: 0.82rem;
  color: #ddd2c3;
}

.dph-breadcrumb a {
  color: #f0c99f;
}

.dph-breadcrumb li::after {
  content: "/";
  margin-left: 10px;
  color: rgba(255, 255, 255, 0.5);
}

.dph-breadcrumb li:last-child::after {
  content: "";
}

.dph-legal {
  background-color: var(--dph-white);
  border-radius: var(--dph-radius-lg);
  padding: 40px 38px;
  box-shadow: var(--dph-shadow-sm);
}

.dph-legal h2 {
  font-size: 1.35rem;
  margin: 34px 0 12px;
}

.dph-legal h2:first-of-type {
  margin-top: 0;
}

.dph-legal p,
.dph-legal li {
  font-size: 0.96rem;
  color: var(--dph-ink-soft);
}

.dph-legal ul {
  padding-left: 20px;
}

.dph-footer {
  background-color: var(--dph-ink);
  color: #ded4c6;
  padding: 78px 0 0;
}

.dph-footer h3,
.dph-footer h4 {
  color: var(--dph-white);
  font-size: 1.02rem;
  letter-spacing: 0.04em;
  margin-bottom: 20px;
}

.dph-footer p,
.dph-footer li,
.dph-footer a {
  color: #cbbfae;
  font-size: 0.92rem;
}

.dph-footer a:hover,
.dph-footer a:focus {
  color: var(--dph-white);
}

.dph-footer__brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--dph-font-display);
  font-size: 1.3rem;
  color: var(--dph-white);
  margin-bottom: 18px;
}

.dph-footer__brand:hover,
.dph-footer__brand:focus {
  color: #f0c99f;
}

.dph-footer__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 11px;
}

.dph-footer__list i {
  color: var(--dph-accent);
  margin-right: 10px;
}

.dph-footer__hours {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
}

.dph-footer__hours li {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.14);
  padding-bottom: 9px;
}

.dph-footer__hours span:last-child {
  color: var(--dph-white);
  font-weight: 600;
}

.dph-footer__bottom {
  margin-top: 56px;
  border-top: 1px solid rgba(255, 255, 255, 0.13);
  padding: 24px 0;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
  justify-content: space-between;
  font-size: 0.85rem;
}

.dph-footer__legal {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.dph-to-top {
  position: fixed;
  right: 22px;
  bottom: 22px;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  border: 0;
  background-color: var(--dph-accent-dark);
  color: var(--dph-white);
  font-size: 1rem;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease, background-color 0.3s ease;
  z-index: 1040;
  box-shadow: var(--dph-shadow-md);
}

.dph-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.dph-to-top:hover,
.dph-to-top:focus {
  background-color: var(--dph-ink);
}

.dph-cookie-shell {
  position: fixed;
  left: 50%;
  bottom: 24px;
  transform: translateX(-50%);
  width: min(1080px, calc(100% - 32px));
  z-index: 1090;
}

.dph-cookie-card {
  display: grid;
  grid-template-columns: 76px 1fr auto;
  align-items: center;
  gap: 24px;
  background-color: var(--dph-ink);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: var(--dph-radius-lg);
  padding: 22px 26px;
  box-shadow: var(--dph-shadow-lg);
}

.dph-cookie-mark {
  width: 76px;
  height: 76px;
  border-radius: 24px;
  background-color: rgba(240, 201, 159, 0.14);
  color: #f0c99f;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.8rem;
}

.dph-cookie-copy {
  min-width: 0;
}

.dph-cookie-eyebrow {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #f0c99f;
  margin-bottom: 8px;
}

.dph-cookie-text {
  margin: 0;
  font-size: 0.92rem;
  color: #ded4c6;
  max-width: 640px;
}

.dph-cookie-link {
  color: var(--dph-white);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.dph-cookie-link:hover,
.dph-cookie-link:focus {
  color: #f0c99f;
}

.dph-cookie-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.dph-cookie-accept,
.dph-cookie-decline {
  border-radius: 999px;
  padding: 13px 26px;
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  cursor: pointer;
  border: 2px solid transparent;
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}

.dph-cookie-accept {
  background-color: var(--dph-accent-dark);
  color: var(--dph-white);
}

.dph-cookie-accept:hover,
.dph-cookie-accept:focus {
  background-color: var(--dph-white);
  color: var(--dph-ink);
  transform: translateY(-2px);
}

.dph-cookie-decline {
  background-color: transparent;
  border-color: rgba(255, 255, 255, 0.55);
  color: var(--dph-white);
}

.dph-cookie-decline:hover,
.dph-cookie-decline:focus {
  background-color: rgba(255, 255, 255, 0.14);
  border-color: var(--dph-white);
  transform: translateY(-2px);
}

.dph-cookie-shell.is-hidden {
  opacity: 0;
  visibility: hidden;
  transform: translateX(-50%) translateY(18px);
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
}

.dph-empty {
  padding: 40px;
  text-align: center;
  border-radius: var(--dph-radius);
  background-color: var(--dph-sand);
  color: var(--dph-ink-muted);
}

@media (max-width: 1100px) {
  .dph-nav {
    display: none;
  }

  .dph-burger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .dph-header__phone {
    display: none;
  }

  .dph-logos {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 991px) {
  .dph-section {
    padding: 68px 0;
  }

  .dph-hero {
    padding: 84px 0 76px;
  }

  .dph-hero__grid,
  .dph-split,
  .dph-slide__inner {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .dph-split--reverse .dph-split__media {
    order: 0;
  }

  .dph-slide__body {
    padding: 0 28px 32px;
  }

  .dph-grid--4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dph-grid--3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dph-cookie-card {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .dph-cookie-mark {
    width: 58px;
    height: 58px;
    border-radius: 18px;
    font-size: 1.4rem;
  }

  .dph-map iframe {
    height: 340px;
  }
}

@media (max-width: 767px) {
  .dph-section {
    padding: 56px 0;
  }

  .dph-grid--2,
  .dph-grid--3,
  .dph-grid--4,
  .dph-gallery,
  .dph-logos {
    grid-template-columns: 1fr;
  }

  .dph-gallery__item--wide {
    grid-column: span 1;
    aspect-ratio: 4 / 3;
  }

  .dph-hero__stats {
    grid-template-columns: 1fr;
  }

  .dph-form,
  .dph-legal {
    padding: 28px 22px;
  }

  .dph-cta-band {
    padding: 44px 26px;
  }

  .dph-cookie-shell {
    bottom: 14px;
    width: calc(100% - 20px);
  }

  .dph-cookie-card {
    padding: 20px 18px;
  }

  .dph-cookie-actions {
    flex-direction: column;
  }

  .dph-cookie-accept,
  .dph-cookie-decline {
    width: 100%;
  }

  .dph-footer__bottom {
    flex-direction: column;
    align-items: flex-start;
  }
}
/* About page hero heading contrast fix */
.ab-hero h1,
.ab-hero .display-3{color:#fff !important}

/* Contacts page contrast fixes */
.ct-hero { background-color: #1a140d !important; }
.cta-band { background-color: #1a140d !important; }
.sec-cream .label,
.sec-white .label { color: #6f5730 !important; }
.cta-band .label,
.sec-dark .label { color: #c19a6b !important; }
.btn-wood,
.btn-wood.w-100 { background-color: #8a6d3b !important; color: #ffffff !important; }
.btn-wood:hover,
.btn-wood:focus { background-color: #6f5730 !important; color: #ffffff !important; }
.navbar .btn[href="/contacts/"] { background-color: #8a6d3b !important; color: #ffffff !important; }

/* ===== Contrast fixes: custom-furniture-design-k7 ===== */
/* Give the hero an explicit dark background-color so text contrast is detectable */
body .svc-hero{background-color:#2b2118}

/* Section labels: dark wood tone on light backgrounds */
body .label{color:#7a5f34}
/* Hero label sits on the dark overlay, keep it light */
body .svc-hero .label{color:#e8d6ba}

/* Solid wood buttons need darker fill for white text to pass 4.5:1 */
body .btn-wood,
body .btn-wood:focus{background:#7a5f34;color:#fff}
body .btn-wood:hover{background:#5f4a28;color:#fff}

/* Pricing "Best Value" tag */
body .price-card .tag{background:#7a5f34;color:#fff}

/* Process step number circles */
body .step .num{background:#7a5f34;color:#fff}

/* Gallery captions: add a solid dark base so caption text contrast is measurable */
body .gal-cap{background-color:rgba(0,0,0,.68)}

/* Header "Get a Quote" button (inline style must be overridden) */
body #inject-header a.btn[href="/contacts/"]{background-color:#7a5f34 !important;color:#fff !important}

/* Contacts hero heading contrast fix */
.ct-hero h1,
.ct-hero .display-3 { color: #ffffff !important; }

/* Hero heading sits on the dark hero image - make it white for contrast */
body .svc-hero h1,
body .svc-hero .display-3{color:#fff}

/* ===== Homepage contrast fixes (hero text, gallery captions, cookie accept) ===== */
/* Hero uses only a background-image, so give it an explicit dark base colour
   so the white heading + lead text contrast is measurable and correct. */
body .hero{background-color:#2b2118 !important}
body .hero p{color:rgba(255,255,255,.94) !important}
body .hero .label{color:#e8d6ba !important}

/* Ghost button sits on the dark hero; give it a solid dark base */
body .hero .btn-ghost{background-color:rgba(15,10,5,.6);color:#fff !important}
body .hero .btn-ghost:hover{background-color:#fff;color:#2b2118 !important}

/* Gallery captions: add a solid dark base so caption text contrast is measurable */
body .gal span{background-color:rgba(0,0,0,.78) !important;background-image:none}

/* Cookie consent Accept button: darker wood fill for white text to pass 4.5:1 */
body .cookie-frag .btn-accept{background-color:#7a5f34 !important;color:#ffffff !important}
body .cookie-frag .btn-accept:hover,
body .cookie-frag .btn-accept:focus{background-color:#5f4a28 !important;color:#ffffff !important}

/* Hero heading sits on the dark hero - force white for contrast */
body .hero h1,
body .hero .display-3{color:#ffffff !important}
body .hero h1,
body .hero span.label{text-shadow:0 1px 2px rgba(0,0,0,.35)}

/* Legal page contrast fixes */
.legal-hero h1,
.legal-hero h1.display-4,
.legal-hero .display-4{
  color:#ffffff !important;
}
.legal-hero .label{
  color:#f0dcc0 !important;
}
.legal-cta h4{
  color:#ffffff !important;
}
.legal-cta p{
  color:rgba(255,255,255,.88) !important;
}

/* ===== Privacy Policy page contrast fixes ===== */
/* Hero/heading text sits on the dark legal-hero overlay - force white */
body .legal-hero h1,
body .legal-hero .display-4,
body .legal-hero .display-3 { color: #ffffff !important; }

/* Hero label on the dark overlay needs a light wood tone (override dark .label) */
body .legal-hero .label { color: #e8d6ba !important; }

/* CTA card heading sits on the dark .legal-cta background - force white */
body .legal-cta h4 { color: #ffffff !important; }

/* ===== Price page contrast fixes ===== */
/* Hero uses only a background-image, so give it an explicit dark base colour
   so white text contrast is measurable and correct. */
body .pr-hero{background-color:#2b2118}
body .pr-hero h1,
body .pr-hero .display-3{color:#ffffff !important}
body .pr-hero .label{color:#e8d6ba !important}
body .pr-hero p{color:rgba(255,255,255,.94) !important}

/* "Most Chosen" tag: darker wood fill so white text passes 4.5:1 */
body .big-price .tag{background:#8a6d3b;color:#ffffff}

/* Featured (dark) package sub-label needs a light wood tone */
body .big-price.pop .sub{color:#c19a6b}

/* Price table "From" header sits on the dark header row */
body .price-table th.col-last{color:#c19a6b}

/* Factors live inside the dark section - lighten heading and body copy */
body .sec-dark .factor h4{color:#ffffff}
body .sec-dark .factor p{color:rgba(255,255,255,.82)}

/* ===== Thank-you page contrast fixes ===== */
/* Hero uses only a background-image, so give it an explicit dark base colour
   so white text contrast is measurable and correct. */
body .ty-hero{background-color:#2b2118}
body .ty-hero h1,
body .ty-hero .display-3{color:#ffffff !important}
body .ty-hero .label{color:#e8d6ba !important}
body .ty-hero p{color:rgba(255,255,255,.94) !important}

/* Ghost button sits on the dark hero; give it a solid dark base so the
   white label has measurable contrast. */
body .ty-hero .btn-ghost{background-color:#2b2118;color:#ffffff !important}
body .ty-hero .btn-ghost:hover,
body .ty-hero .btn-ghost:focus{background-color:#ffffff;color:#2b2118 !important}

/* Ghost button inside the dark CTA band keeps a dark base as well */
body .cta-band .btn-ghost{background-color:rgba(15,10,5,.6);color:#ffffff !important}
body .cta-band .btn-ghost:hover,
body .cta-band .btn-ghost:focus{background-color:#ffffff;color:#2b2118 !important}
