@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;0,700;1,400&family=Manrope:wght@300;400;500;600;700&display=swap");

:root {
  --dm-ink: #16120e;
  --dm-ink-soft: #241d17;
  --dm-cream: #fbf7f0;
  --dm-cream-deep: #f1e9dc;
  --dm-paper: #ffffff;
  --dm-gold: #c9a227;
  --dm-gold-soft: #e0c463;
  --dm-coral: #c03a28;
  --dm-coral-dark: #9d2c1d;
  --dm-text: #1a1714;
  --dm-text-soft: #5c5348;
  --dm-text-on-dark: #f4efe6;
  --dm-text-on-dark-soft: #cbc2b6;
  --dm-line: rgba(26, 23, 20, 0.12);
  --dm-line-dark: rgba(244, 239, 230, 0.18);
  --dm-font-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --dm-font-body: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --dm-radius-sm: 10px;
  --dm-radius: 18px;
  --dm-radius-lg: 30px;
  --dm-shadow-sm: 0 6px 20px rgba(22, 18, 14, 0.08);
  --dm-shadow: 0 22px 50px -22px rgba(22, 18, 14, 0.35);
  --dm-shadow-dark: 0 30px 60px -28px rgba(0, 0, 0, 0.72);
  --dm-section-y: clamp(4.5rem, 9vw, 8.5rem);
  --dm-shell: 1240px;
  --dm-header-h: 84px;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: var(--dm-font-body);
  font-size: 1rem;
  line-height: 1.7;
  color: var(--dm-text);
  background-color: var(--dm-cream);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

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

a {
  color: var(--dm-coral);
  text-decoration: none;
  transition: color 0.25s ease;
}

a:hover {
  color: var(--dm-coral-dark);
}

section {
  scroll-margin-top: calc(var(--dm-header-h) + 1.25rem);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0 0 0.75rem;
  font-family: var(--dm-font-display);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -0.012em;
  color: var(--dm-ink);
}

h1 {
  font-size: clamp(2.5rem, 5.4vw, 4.4rem);
}

h2 {
  font-size: clamp(2rem, 3.8vw, 3rem);
}

h3 {
  font-size: clamp(1.4rem, 2.2vw, 1.85rem);
}

p {
  margin: 0 0 1rem;
}

.dm-shell {
  width: 100%;
  max-width: var(--dm-shell);
  margin-inline: auto;
  padding-inline: 1.35rem;
}

.dm-shell--narrow {
  max-width: 880px;
}

.dm-section {
  position: relative;
  padding-block: var(--dm-section-y);
}

.dm-section--tight {
  padding-block: clamp(3rem, 6vw, 5rem);
}

.dm-section--cream {
  background-color: var(--dm-cream);
}

.dm-section--paper {
  background-color: var(--dm-paper);
}

.dm-section--deep {
  background-color: var(--dm-cream-deep);
}

.dm-section--dark {
  background-color: var(--dm-ink);
  color: var(--dm-text-on-dark);
}

.dm-section--photo {
  background-color: var(--dm-ink);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: #ffffff;
}

.dm-section--dark h1,
.dm-section--dark h2,
.dm-section--dark h3,
.dm-section--dark h4,
.dm-section--photo h1,
.dm-section--photo h2,
.dm-section--photo h3,
.dm-section--photo h4 {
  color: #ffffff;
}

.dm-section--dark .dm-lead,
.dm-section--photo .dm-lead,
.dm-section--dark .dm-text-soft,
.dm-section--photo .dm-text-soft {
  color: var(--dm-text-on-dark-soft);
}

.dm-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  margin-bottom: 1rem;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--dm-coral);
}

.dm-section--dark .dm-eyebrow,
.dm-section--photo .dm-eyebrow {
  color: var(--dm-gold-soft);
}

.dm-eyebrow::before {
  content: "";
  display: inline-block;
  width: 36px;
  height: 1px;
  background: currentColor;
  opacity: 0.75;
}

.dm-lead {
  max-width: 62ch;
  font-size: clamp(1.03rem, 1.5vw, 1.2rem);
  color: var(--dm-text-soft);
}

.dm-text-soft {
  color: var(--dm-text-soft);
}

.dm-rule {
  width: 100%;
  height: 1px;
  border: 0;
  margin: 0;
  background: var(--dm-line);
}

.dm-section--dark .dm-rule,
.dm-section--photo .dm-rule {
  background: var(--dm-line-dark);
}

.dm-header {
  position: sticky;
  top: 0;
  z-index: 1040;
  background: rgba(251, 247, 240, 0.78);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid transparent;
  transition: background-color 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
}

.dm-header--solid {
  background: rgba(251, 247, 240, 0.97);
  border-bottom-color: var(--dm-line);
  box-shadow: 0 12px 30px -24px rgba(22, 18, 14, 0.6);
}

.dm-header__bar {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  min-height: var(--dm-header-h);
  padding-block: 0.6rem;
}

.dm-header__brand {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  font-family: var(--dm-font-display);
  font-size: 1.45rem;
  font-weight: 700;
  color: var(--dm-ink);
  letter-spacing: -0.02em;
}

.dm-header__brand:hover {
  color: var(--dm-ink);
}

.dm-header__info {
  display: flex;
  align-items: center;
  gap: 1.35rem;
  margin-left: auto;
  font-size: 0.85rem;
  color: var(--dm-text-soft);
}

.dm-header__info span,
.dm-header__info i {
  color: var(--dm-text-soft);
}

.dm-header__info i {
  margin-right: 0.35rem;
  color: var(--dm-coral);
}

.dm-nav {
  display: flex;
  align-items: center;
  gap: 1.6rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.dm-nav a {
  position: relative;
  font-size: 0.94rem;
  font-weight: 500;
  color: var(--dm-text);
}

.dm-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -6px;
  width: 0;
  height: 2px;
  background: var(--dm-coral);
  transition: width 0.3s ease;
}

.dm-nav a:hover::after,
.dm-nav a.is-active::after {
  width: 100%;
}

.dm-burger {
  display: inline-grid;
  place-items: center;
  width: 46px;
  height: 46px;
  margin-left: auto;
  border: 1px solid var(--dm-line);
  border-radius: 50%;
  background: transparent;
  color: var(--dm-ink);
  font-size: 1.05rem;
}

.dm-burger:hover {
  border-color: var(--dm-coral);
  color: var(--dm-coral);
}

.dm-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  padding: 0.95rem 1.95rem;
  border: 1px solid transparent;
  border-radius: 999px;
  font-family: var(--dm-font-body);
  font-size: 0.94rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1;
  text-align: center;
  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;
}

.dm-btn:hover {
  transform: translateY(-2px);
}

.dm-btn--primary {
  background: var(--dm-coral);
  color: #ffffff;
  box-shadow: 0 16px 32px -16px rgba(192, 58, 40, 0.8);
}

.dm-btn--primary:hover {
  background: var(--dm-coral-dark);
  color: #ffffff;
}

.dm-btn--gold {
  background: var(--dm-gold);
  color: var(--dm-ink);
}

.dm-btn--gold:hover {
  background: var(--dm-gold-soft);
  color: var(--dm-ink);
}

.dm-btn--ghost {
  background: transparent;
  color: var(--dm-ink);
  border-color: rgba(26, 23, 20, 0.28);
}

.dm-btn--ghost:hover {
  color: var(--dm-ink);
  border-color: var(--dm-ink);
}

.dm-section--dark .dm-btn--ghost,
.dm-section--photo .dm-btn--ghost {
  color: var(--dm-text-on-dark);
  border-color: var(--dm-line-dark);
}

.dm-section--dark .dm-btn--ghost:hover,
.dm-section--photo .dm-btn--ghost:hover {
  color: var(--dm-ink);
  background: var(--dm-text-on-dark);
  border-color: var(--dm-text-on-dark);
}

.dm-btn--link {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--dm-coral);
  font-weight: 700;
}

.dm-btn--link:hover {
  transform: none;
  color: var(--dm-coral-dark);
}

.dm-hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: min(92vh, 880px);
  background-color: var(--dm-ink);
  background-size: cover;
  background-position: center;
  color: #ffffff;
}

.dm-hero__inner {
  position: relative;
  z-index: 2;
  padding-block: clamp(4.5rem, 12vh, 8rem);
}

.dm-hero__title {
  color: #ffffff;
  max-width: 18ch;
}

.dm-hero__title em {
  font-style: italic;
  color: var(--dm-gold-soft);
}

.dm-hero__lead {
  max-width: 52ch;
  color: rgba(244, 239, 230, 0.92);
}

.dm-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
  margin-top: 2rem;
}

.dm-hero__facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
  margin-top: 3.25rem;
  padding-top: 2rem;
  border-top: 1px solid var(--dm-line-dark);
}

.dm-hero__fact strong {
  display: block;
  font-family: var(--dm-font-display);
  font-size: clamp(1.7rem, 3vw, 2.4rem);
  font-weight: 700;
  color: var(--dm-gold-soft);
  line-height: 1;
}

.dm-hero__fact span {
  display: block;
  margin-top: 0.45rem;
  font-size: 0.88rem;
  color: rgba(244, 239, 230, 0.85);
}

.dm-hero__scroll {
  position: absolute;
  left: 50%;
  bottom: 1.6rem;
  transform: translateX(-50%);
  z-index: 3;
  font-size: 1.1rem;
  color: rgba(244, 239, 230, 0.85);
  animation: dm-bob 2.4s ease-in-out infinite;
}

@keyframes dm-bob {
  0%, 100% { transform: translate(-50%, 0); }
  50% { transform: translate(-50%, 10px); }
}

.dm-slider .carousel-inner {
  border-radius: var(--dm-radius-lg);
  overflow: hidden;
}

.dm-slide {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: clamp(440px, 66vh, 680px);
  background-color: var(--dm-ink);
  background-size: cover;
  background-position: center;
}

.dm-slide__body {
  position: relative;
  z-index: 2;
  width: min(620px, 100%);
  padding: clamp(1.8rem, 5vw, 3.4rem);
  color: #ffffff;
}

.dm-slide__body h3 {
  color: #ffffff;
  font-size: clamp(1.6rem, 3vw, 2.4rem);
}

.dm-slide__body p {
  color: rgba(244, 239, 230, 0.9);
}

.dm-slider .carousel-control-prev,
.dm-slider .carousel-control-next {
  top: 50%;
  width: 54px;
  height: 54px;
  border: 1px solid rgba(255, 255, 255, 0.32);
  border-radius: 50%;
  background: rgba(12, 9, 7, 0.5);
  color: #ffffff;
  opacity: 0.92;
  transform: translateY(-50%);
  transition: background-color 0.25s ease, border-color 0.25s ease, opacity 0.25s ease;
}

.dm-slider .carousel-control-prev {
  left: 1.4rem;
}

.dm-slider .carousel-control-next {
  right: 1.4rem;
}

.dm-slider .carousel-control-prev:hover,
.dm-slider .carousel-control-next:hover {
  background: var(--dm-coral);
  border-color: var(--dm-coral);
  opacity: 1;
}

.dm-slider .carousel-control-prev-icon,
.dm-slider .carousel-control-next-icon {
  width: auto;
  height: auto;
  background-image: none;
}

.dm-slider .carousel-indicators {
  margin-bottom: 1.1rem;
}

.dm-slider .carousel-indicators [data-bs-target] {
  width: 34px;
  height: 3px;
  margin-inline: 4px;
  border: 0;
  border-radius: 999px;
  background-color: #ffffff;
  opacity: 0.45;
}

.dm-slider .carousel-indicators .active {
  background-color: var(--dm-gold);
  opacity: 1;
}

.dm-card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  border: 1px solid var(--dm-line);
  border-radius: var(--dm-radius);
  background: var(--dm-paper);
  overflow: hidden;
  transition: transform 0.45s cubic-bezier(0.2, 0.7, 0.2, 1), box-shadow 0.45s ease, border-color 0.45s ease;
}

.dm-card:hover {
  transform: translateY(-6px);
  border-color: rgba(192, 58, 40, 0.35);
  box-shadow: var(--dm-shadow);
}

.dm-card__media {
  position: relative;
  aspect-ratio: 4 / 3;
  background: var(--dm-cream-deep);
  overflow: hidden;
}

.dm-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.9s cubic-bezier(0.2, 0.7, 0.2, 1);
}

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

.dm-card__flag {
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 2;
}

.dm-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 0.65rem;
  padding: 1.6rem 1.5rem 1.85rem;
}

.dm-card__title {
  margin: 0;
  font-size: 1.42rem;
}

.dm-card__text {
  margin: 0;
  font-size: 0.96rem;
  color: var(--dm-text-soft);
}

.dm-card__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: auto;
  padding-top: 1.1rem;
  border-top: 1px solid var(--dm-line);
}

.dm-card__price {
  font-family: var(--dm-font-display);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--dm-coral);
}

.dm-tag {
  display: inline-block;
  padding: 0.34rem 0.85rem;
  border-radius: 999px;
  background: rgba(201, 162, 39, 0.16);
  color: #7a5f0d;
  font-size: 0.71rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.dm-tag--coral {
  background: rgba(192, 58, 40, 0.12);
  color: var(--dm-coral-dark);
}

.dm-tag--dark {
  background: rgba(22, 18, 14, 0.08);
  color: var(--dm-text);
}

.dm-split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
}

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

.dm-split__media {
  position: relative;
  aspect-ratio: 4 / 5;
  border-radius: var(--dm-radius-lg);
  background: var(--dm-cream-deep);
  overflow: hidden;
  box-shadow: var(--dm-shadow);
}

.dm-split__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dm-split__badge {
  position: absolute;
  right: -1.2rem;
  bottom: 1.8rem;
  max-width: 210px;
  padding: 1.1rem 1.25rem;
  border-radius: var(--dm-radius);
  background: var(--dm-coral);
  color: #ffffff;
  box-shadow: var(--dm-shadow);
}

.dm-split__badge strong {
  display: block;
  font-family: var(--dm-font-display);
  font-size: 1.75rem;
  line-height: 1;
}

.dm-split__badge span {
  display: block;
  margin-top: 0.3rem;
  font-size: 0.82rem;
  line-height: 1.4;
}

.dm-check {
  margin: 1.5rem 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.7rem;
}

.dm-check li {
  position: relative;
  padding-left: 2rem;
  color: var(--dm-text-soft);
}

.dm-check li i {
  position: absolute;
  left: 0;
  top: 0.35rem;
  color: var(--dm-coral);
  font-size: 0.9rem;
}

.dm-section--dark .dm-check li,
.dm-section--photo .dm-check li {
  color: var(--dm-text-on-dark-soft);
}

.dm-section--dark .dm-check li i,
.dm-section--photo .dm-check li i {
  color: var(--dm-gold-soft);
}

.dm-stat {
  padding: 1.6rem 0;
  border-top: 1px solid var(--dm-line);
}

.dm-section--dark .dm-stat,
.dm-section--photo .dm-stat {
  border-top-color: var(--dm-line-dark);
}

.dm-stat__value {
  display: block;
  font-family: var(--dm-font-display);
  font-size: clamp(2.5rem, 5vw, 3.9rem);
  font-weight: 700;
  line-height: 1;
  color: var(--dm-coral);
}

.dm-section--dark .dm-stat__value,
.dm-section--photo .dm-stat__value {
  color: var(--dm-gold-soft);
}

.dm-stat__label {
  display: block;
  margin-top: 0.6rem;
  font-size: 0.92rem;
  color: var(--dm-text-soft);
}

.dm-section--dark .dm-stat__label,
.dm-section--photo .dm-stat__label {
  color: var(--dm-text-on-dark-soft);
}

.dm-steps {
  position: relative;
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 2.25rem;
}

.dm-steps::before {
  content: "";
  position: absolute;
  left: 1.5rem;
  top: 0.5rem;
  bottom: 0.5rem;
  width: 1px;
  background: var(--dm-line);
}

.dm-section--dark .dm-steps::before,
.dm-section--photo .dm-steps::before {
  background: var(--dm-line-dark);
}

.dm-step {
  position: relative;
  padding-left: 4.4rem;
}

.dm-step__index {
  position: absolute;
  left: 0;
  top: 0;
  display: grid;
  place-items: center;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  background: var(--dm-ink);
  color: var(--dm-cream);
  font-family: var(--dm-font-display);
  font-size: 1.1rem;
  font-weight: 700;
}

.dm-section--dark .dm-step__index,
.dm-section--photo .dm-step__index {
  background: var(--dm-gold);
  color: var(--dm-ink);
}

.dm-step__title {
  margin: 0 0 0.35rem;
  font-size: 1.3rem;
}

.dm-step__text {
  margin: 0;
  color: var(--dm-text-soft);
}

.dm-section--dark .dm-step__text,
.dm-section--photo .dm-step__text {
  color: var(--dm-text-on-dark-soft);
}

.dm-gallery {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1rem;
}

.dm-gallery__item {
  position: relative;
  border-radius: var(--dm-radius);
  background: var(--dm-cream-deep);
  overflow: hidden;
}

.dm-gallery__item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.9s cubic-bezier(0.2, 0.7, 0.2, 1);
}

.dm-gallery__item:hover img {
  transform: scale(1.05);
}

.dm-gallery__item--wide {
  grid-column: span 8;
  aspect-ratio: 16 / 10;
}

.dm-gallery__item--tall {
  grid-column: span 4;
  aspect-ratio: 3 / 4;
}

.dm-gallery__item--half {
  grid-column: span 6;
  aspect-ratio: 4 / 3;
}

.dm-gallery__caption {
  position: absolute;
  left: 1rem;
  right: 1rem;
  bottom: 1rem;
  z-index: 2;
  padding: 0.6rem 0.9rem;
  border-radius: var(--dm-radius-sm);
  background: rgba(12, 9, 7, 0.62);
  color: #ffffff;
  font-size: 0.84rem;
}

.dm-marquee {
  padding-block: 1.15rem;
  border-block: 1px solid var(--dm-line);
  overflow: hidden;
}

.dm-section--dark .dm-marquee,
.dm-section--photo .dm-marquee {
  border-block-color: var(--dm-line-dark);
}

.dm-marquee__track {
  display: flex;
  gap: 3rem;
  width: max-content;
  animation: dm-marquee 28s linear infinite;
}

.dm-marquee:hover .dm-marquee__track {
  animation-play-state: paused;
}

.dm-marquee__item {
  display: inline-flex;
  align-items: center;
  gap: 3rem;
  font-family: var(--dm-font-display);
  font-size: clamp(1.15rem, 2vw, 1.6rem);
  white-space: nowrap;
  color: var(--dm-text-soft);
}

.dm-marquee__item::after {
  content: "\2022";
  color: var(--dm-coral);
}

.dm-section--dark .dm-marquee__item,
.dm-section--photo .dm-marquee__item {
  color: var(--dm-text-on-dark-soft);
}

@keyframes dm-marquee {
  to {
    transform: translateX(-50%);
  }
}

.dm-quote {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 2rem;
  border: 1px solid var(--dm-line);
  border-radius: var(--dm-radius);
  background: var(--dm-paper);
}

.dm-quote__mark {
  font-family: var(--dm-font-display);
  font-size: 3rem;
  line-height: 0.8;
  color: var(--dm-gold);
}

.dm-quote__text {
  margin: 0.75rem 0 0;
  font-family: var(--dm-font-display);
  font-size: 1.22rem;
  font-style: italic;
  line-height: 1.5;
  color: var(--dm-ink);
}

.dm-quote__person {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin-top: auto;
  padding-top: 1.5rem;
}

.dm-quote__avatar {
  flex: 0 0 54px;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: var(--dm-cream-deep);
  overflow: hidden;
}

.dm-quote__avatar img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dm-quote__name {
  display: block;
  font-weight: 600;
  color: var(--dm-ink);
}

.dm-quote__role {
  display: block;
  font-size: 0.85rem;
  color: var(--dm-text-soft);
}

.dm-faq .accordion-item {
  border: 0;
  border-bottom: 1px solid var(--dm-line);
  background: transparent;
}

.dm-faq .accordion-button {
  padding: 1.35rem 2rem 1.35rem 0;
  background: transparent;
  box-shadow: none;
  font-family: var(--dm-font-display);
  font-size: 1.22rem;
  font-weight: 600;
  color: var(--dm-ink);
}

.dm-faq .accordion-button:not(.collapsed) {
  background: transparent;
  color: var(--dm-coral);
}

.dm-faq .accordion-button:focus {
  box-shadow: none;
  border-color: transparent;
}

.dm-faq .accordion-body {
  padding: 0 0 1.5rem;
  color: var(--dm-text-soft);
}

.dm-form {
  display: grid;
  gap: 1.1rem;
}

.dm-form__row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.1rem;
}

.dm-label {
  display: block;
  margin-bottom: 0.45rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--dm-text-soft);
}

.dm-input,
.dm-select,
.dm-textarea {
  display: block;
  width: 100%;
  padding: 0.95rem 1.1rem;
  border: 1px solid var(--dm-line);
  border-radius: var(--dm-radius-sm);
  background: var(--dm-paper);
  color: var(--dm-text);
  font-family: var(--dm-font-body);
  font-size: 0.98rem;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.dm-textarea {
  min-height: 148px;
  resize: vertical;
}

.dm-input:focus,
.dm-select:focus,
.dm-textarea:focus {
  outline: none;
  border-color: var(--dm-coral);
  box-shadow: 0 0 0 4px rgba(192, 58, 40, 0.14);
}

.dm-consent {
  display: flex;
  gap: 0.7rem;
  align-items: flex-start;
  font-size: 0.86rem;
  color: var(--dm-text-soft);
}

.dm-consent input {
  margin-top: 0.28rem;
  accent-color: var(--dm-coral);
}

.dm-contact-card {
  height: 100%;
  padding: 1.5rem;
  border: 1px solid var(--dm-line);
  border-radius: var(--dm-radius);
  background: var(--dm-paper);
}

.dm-contact-card i {
  color: var(--dm-coral);
  font-size: 1.15rem;
}

.dm-cta {
  position: relative;
  background-color: var(--dm-ink);
  background-size: cover;
  background-position: center;
  border-radius: var(--dm-radius-lg);
  color: #ffffff;
  overflow: hidden;
}

.dm-cta__inner {
  position: relative;
  z-index: 2;
  padding: clamp(2.5rem, 6vw, 4.5rem);
  text-align: center;
}

.dm-cta__inner h2 {
  color: #ffffff;
}

.dm-cta__inner p {
  max-width: 56ch;
  margin-inline: auto;
  color: rgba(244, 239, 230, 0.92);
}

.dm-pill-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.dm-pill-list li {
  padding: 0.5rem 1rem;
  border: 1px solid var(--dm-line);
  border-radius: 999px;
  font-size: 0.86rem;
  color: var(--dm-text-soft);
}

.dm-section--dark .dm-pill-list li,
.dm-section--photo .dm-pill-list li {
  border-color: var(--dm-line-dark);
  color: var(--dm-text-on-dark-soft);
}

.dm-map {
  border-radius: var(--dm-radius-lg);
  overflow: hidden;
  border: 1px solid var(--dm-line);
  background: var(--dm-cream-deep);
  line-height: 0;
}

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

.dm-footer {
  padding: 5rem 0 2.25rem;
  background: var(--dm-ink);
  color: var(--dm-text-on-dark-soft);
}

.dm-footer h2,
.dm-footer h3 {
  color: var(--dm-text-on-dark);
}

.dm-footer__brand {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  font-family: var(--dm-font-display);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--dm-text-on-dark);
}

.dm-footer__brand:hover {
  color: var(--dm-gold-soft);
}

.dm-footer__title {
  margin-bottom: 1.1rem;
  font-family: var(--dm-font-display);
  font-size: 1.08rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--dm-text-on-dark);
}

.dm-footer p,
.dm-footer li,
.dm-footer span {
  font-size: 0.92rem;
  color: var(--dm-text-on-dark-soft);
}

.dm-footer a {
  color: var(--dm-text-on-dark-soft);
  transition: color 0.25s ease;
}

.dm-footer a:hover {
  color: var(--dm-gold-soft);
}

.dm-footer__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.65rem;
}

.dm-footer__list i {
  margin-right: 0.5rem;
  color: var(--dm-gold);
}

.dm-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
  align-items: center;
  justify-content: space-between;
  margin-top: 3rem;
  padding-top: 1.6rem;
  border-top: 1px solid var(--dm-line-dark);
  font-size: 0.84rem;
}

.dm-footer__legal {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.dm-to-top {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 1030;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 50%;
  background: var(--dm-coral);
  color: #ffffff;
  font-size: 1rem;
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease, background-color 0.25s ease;
}

.dm-to-top:hover {
  background: var(--dm-coral-dark);
}

.dm-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: none;
}

.dm-cookie {
  position: fixed;
  left: clamp(0.9rem, 3vw, 2rem);
  bottom: clamp(0.9rem, 3vw, 2rem);
  z-index: 1080;
  width: min(432px, calc(100vw - 1.8rem));
  padding: 1.5rem 1.55rem 1.5rem 1.85rem;
  border-radius: var(--dm-radius);
  background: var(--dm-ink-soft);
  color: var(--dm-text-on-dark);
  box-shadow: var(--dm-shadow-dark);
  overflow: hidden;
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.45s ease, transform 0.45s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.dm-cookie::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 5px;
  background: linear-gradient(180deg, var(--dm-gold), var(--dm-coral));
}

.dm-cookie--visible {
  opacity: 1;
  transform: translateY(0);
}

.dm-cookie--leaving {
  opacity: 0;
  transform: translateY(22px);
}

.dm-cookie__head {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  margin-bottom: 0.65rem;
}

.dm-cookie__icon {
  display: grid;
  place-items: center;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(201, 162, 39, 0.2);
  color: var(--dm-gold-soft);
  font-size: 0.95rem;
}

.dm-cookie__title {
  margin: 0;
  font-family: var(--dm-font-display);
  font-size: 1.22rem;
  font-weight: 600;
  color: var(--dm-text-on-dark);
}

.dm-cookie__text {
  margin: 0 0 0.8rem;
  font-size: 0.9rem;
  line-height: 1.6;
  color: var(--dm-text-on-dark-soft);
}

.dm-cookie__link {
  display: inline-block;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--dm-gold-soft);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.dm-cookie__link:hover {
  color: var(--dm-gold);
}

.dm-cookie__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 1.15rem;
}

.dm-cookie__btn {
  flex: 1 1 120px;
  padding: 0.72rem 1.15rem;
  border: 1px solid transparent;
  border-radius: 999px;
  font-family: var(--dm-font-body);
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.dm-cookie__btn--accept {
  background: var(--dm-gold);
  color: var(--dm-ink);
}

.dm-cookie__btn--accept:hover {
  background: var(--dm-gold-soft);
}

.dm-cookie__btn--decline {
  background: transparent;
  color: var(--dm-text-on-dark);
  border-color: var(--dm-line-dark);
}

.dm-cookie__btn--decline:hover {
  border-color: var(--dm-text-on-dark);
}

.dm-newsletter {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  margin-top: 1.25rem;
}

.dm-newsletter .dm-input {
  flex: 1 1 240px;
}

.dm-sticky-note {
  position: sticky;
  top: calc(var(--dm-header-h) + 1.5rem);
}

@media (max-width: 991.98px) {
  .dm-header__info {
    display: none;
  }

  .dm-nav {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
    padding: 1rem 0 0.5rem;
  }

  .dm-nav a {
    display: block;
    width: 100%;
    padding: 0.6rem 0;
    font-size: 1.05rem;
  }

  .dm-split,
  .dm-form__row {
    grid-template-columns: 1fr;
  }

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

  .dm-gallery__item--wide,
  .dm-gallery__item--tall,
  .dm-gallery__item--half {
    grid-column: span 12;
  }

  .dm-split__badge {
    right: 1rem;
  }
}

@media (max-width: 767.98px) {
  :root {
    --dm-header-h: 72px;
  }

  .dm-hero__facts {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .dm-hero__actions .dm-btn {
    flex: 1 1 100%;
  }

  .dm-slider .carousel-control-prev,
  .dm-slider .carousel-control-next {
    display: none;
  }

  .dm-cookie {
    left: 0.75rem;
    right: 0.75rem;
    bottom: 0.75rem;
    width: auto;
  }

  .dm-cookie__btn {
    flex: 1 1 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .dm-marquee__track,
  .dm-hero__scroll {
    animation: none;
  }

  .dm-card,
  .dm-btn,
  .dm-gallery__item img,
  .dm-card__media img {
    transition: none;
  }
}

/* QA_STEP_CARD_GRID_FIX .dm-steps:has(> .dm-step) */
@media(min-width:992px){.dm-steps:has(> .dm-step){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.dm-steps:has(> .dm-step)>:not(.dm-step){grid-column:1/-1}}

/* QA_CONTRAST_FIX .dm-hero heading + ghost button on dark photo */
.dm-hero h1,
.dm-hero h2,
.dm-hero h3 {
  color: #ffffff;
}

.dm-hero .dm-hero__inner > p {
  color: rgba(244, 239, 230, 0.94);
}

.dm-hero .dm-btn--ghost {
  color: #f4efe6;
  border-color: rgba(244, 239, 230, 0.42);
  background-color: rgba(12, 9, 7, 0.28);
}

.dm-hero .dm-btn--ghost:hover,
.dm-hero .dm-btn--ghost:focus-visible {
  color: #16120e;
  background-color: #f4efe6;
  border-color: #f4efe6;
}

.dm-hero .dm-hero__fact span,
.dm-hero .dm-hero__fact {
  color: rgba(244, 239, 230, 0.92);
}

/* QA_CONTRAST_FIX: hero headings and ghost button over dark hero image */
.dm-hero h1,
.dm-hero h2,
.dm-hero h3 {
  color: #ffffff;
}

.dm-hero .dm-btn--ghost {
  color: var(--dm-text-on-dark);
  border-color: var(--dm-line-dark);
}

.dm-hero .dm-btn--ghost:hover {
  color: var(--dm-ink);
  background: var(--dm-text-on-dark);
  border-color: var(--dm-text-on-dark);
}

/* QA_CONTRAST_FIX: cards keep their light surface inside dark/photo sections */
.dm-section--dark .dm-card,
.dm-section--photo .dm-card {
  color: var(--dm-text);
}

.dm-section--dark .dm-card h1,
.dm-section--dark .dm-card h2,
.dm-section--dark .dm-card h3,
.dm-section--dark .dm-card h4,
.dm-section--photo .dm-card h1,
.dm-section--photo .dm-card h2,
.dm-section--photo .dm-card h3,
.dm-section--photo .dm-card h4 {
  color: var(--dm-ink);
}

.dm-section--dark .dm-card .dm-card__meta,
.dm-section--photo .dm-card .dm-card__meta {
  color: var(--dm-text-soft);
}

.dm-section--dark .dm-card .dm-card__text,
.dm-section--photo .dm-card .dm-card__text {
  color: var(--dm-text-soft);
}

/* QA_CONTRAST_FIX: legal sidebar cards use light surfaces, so footer-style titles must be dark */
.dm-contact-card .dm-footer__title {
  color: var(--dm-ink);
}

.dm-contact-card .dm-footer__list li,
.dm-contact-card .dm-footer__list span {
  color: var(--dm-text-soft);
}

.dm-contact-card .dm-footer__list a {
  color: var(--dm-coral);
}

.dm-contact-card .dm-footer__list a:hover {
  color: var(--dm-coral-dark);
}

/* --- Contact form confirmation state --- */
.dm-form__success {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(216, 178, 92, 0.55);
  border-radius: 12px;
  padding: 1.5rem 1.5rem;
  max-width: 100%;
}

.dm-form__success-title {
  margin: 0 0 0.5rem;
  font-size: 1.15rem;
  font-weight: 700;
}

.dm-form__success-text {
  margin: 0;
  line-height: 1.6;
}

/* ===== QA_CONTRAST_ROUND2 ===== */

/* Tags placed on the dark carousel slides need light, solid surfaces */
.dm-slide .dm-tag {
  background-color: #e0c463;
  color: #16120e;
}

.dm-slide .dm-tag--coral {
  background-color: #e8a091;
  color: #3d1108;
}

.dm-slide .dm-tag--dark {
  background-color: #f4efe6;
  color: #16120e;
}

/* Form labels inside dark / photo sections must be light */
.dm-section--dark .dm-label,
.dm-section--photo .dm-label {
  color: var(--dm-text-on-dark);
}

/* Inline links inside dark / photo sections must clear 4.5:1 */
.dm-section--dark .dm-text-soft a,
.dm-section--photo .dm-text-soft a,
.dm-section--dark form a,
.dm-section--photo form a,
.dm-section--dark .dm-check a,
.dm-section--photo .dm-check a {
  color: var(--dm-gold-soft);
}

.dm-section--dark .dm-text-soft a:hover,
.dm-section--photo .dm-text-soft a:hover,
.dm-section--dark form a:hover,
.dm-section--photo form a:hover,
.dm-section--dark .dm-check a:hover,
.dm-section--photo .dm-check a:hover {
  color: #f4efe6;
}

/* Explicit solid surfaces for gold CTAs so contrast is unambiguous */
.dm-hero .dm-btn--gold,
.dm-cookie__btn--accept {
  background-color: var(--dm-gold);
  color: #16120e;
}

.dm-hero .dm-btn--gold:hover,
.dm-hero .dm-btn--gold:focus-visible,
.dm-cookie__btn--accept:hover,
.dm-cookie__btn--accept:focus-visible {
  background-color: var(--dm-gold-soft);
  color: #16120e;
}

/* Ghost CTA over the dark hero keeps a solid readable surface */
.dm-hero .dm-btn--ghost {
  background-color: rgba(12, 9, 7, 0.55);
  color: #f4efe6;
  border-color: rgba(244, 239, 230, 0.5);
}

/* ===== QA_CONTRAST_ROUND3: pill lists inside light cards within dark/photo sections ===== */
.dm-section--dark .dm-card .dm-pill-list li,
.dm-section--photo .dm-card .dm-pill-list li {
  color: var(--dm-text-soft);
  border-color: var(--dm-line);
}

/* Inline links on the cream-deep section need a darker tone to clear 4.5:1 */
.dm-section--deep a {
  color: var(--dm-coral-dark);
}

.dm-section--deep a:hover {
  color: var(--dm-ink);
}

/* ===== QA_CONTRAST_ROUND3: eyebrow on cream-deep section ===== */
.dm-section--deep .dm-eyebrow {
  color: var(--dm-coral-dark);
}

/* ===== QA_CONTRAST_ROUND4: hero eyebrow, hero card title and card flags ===== */

/* Eyebrow sits directly on the dark hero photo -> use the light gold tone */
.dm-hero .dm-eyebrow {
  color: var(--dm-gold-soft);
}

/* The hero card is a light surface inside the dark hero: keep its heading dark */
.dm-hero .dm-card h1,
.dm-hero .dm-card h2,
.dm-hero .dm-card h3,
.dm-hero .dm-card .dm-card__title,
.dm-hero .dm-card h2.dm-card__title {
  color: var(--dm-ink);
}

/* Flags/pills are placed on top of photos: give them an opaque, readable surface */
.dm-card__media .dm-card__flag,
.dm-card__flag.dm-tag,
.dm-card__flag.dm-tag--coral,
.dm-card__flag.dm-tag--dark {
  background-color: #f4efe6;
  color: #16120e;
  border: 1px solid rgba(22, 18, 14, 0.12);
}

.dm-card__flag.dm-tag--coral {
  background-color: var(--dm-coral);
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.28);
}

/* ===== QA_MAP_BLOCK_FIX: location section map must not render as an empty beige card ===== */
/* The map wrapper previously kept a tall beige surface (--dm-cream-deep) even when the
   embedded map did not fill it, producing an abnormal blank block below the contact
   content. Constrain the wrapper to the embedded map and let the map fill it exactly. */
.dm-map {
  display: block;
  line-height: 0;
  height: auto;
  min-height: 0;
  padding: 0;
}

.dm-map iframe {
  display: block;
  width: 100%;
  height: clamp(280px, 45vw, 420px);
  min-height: 0;
  border: 0;
  background: var(--dm-cream-deep);
}

@media (max-width: 767.98px) {
  .dm-map iframe {
    height: clamp(220px, 62vw, 320px);
  }
}

/* The location section's map wrapper follows the previous split block: collapse any
   leftover margin so no stray empty surface is painted below the map. */
.dm-section > .dm-shell > .dm-map:last-child {
  margin-bottom: 0;
}

/* ===== QA_FOOTER_MAP_BLOCK_FIX =====
   The footer map wrapper inherited the global .dm-map iframe sizing
   (clamp(280px, 45vw, 420px)), which rendered an oversized empty rounded
   rectangle below the footer columns when the embedded map did not paint.
   Keep the footer map compact and let the wrapper shrink to the map. */
.dm-footer .dm-map {
  display: block;
  line-height: 0;
  height: auto;
  min-height: 0;
  padding: 0;
  margin-top: 2rem;
  border-radius: var(--dm-radius);
  border-color: var(--dm-line-dark);
  background: transparent;
}

.dm-footer .dm-map iframe {
  display: block;
  width: 100%;
  height: clamp(200px, 26vw, 260px);
  min-height: 0;
  border: 0;
  background: var(--dm-ink-soft);
}

/* The footer legal block already owns the spacing below the map. */
.dm-footer .dm-map + .dm-footer__bottom {
  margin-top: 2rem;
}

@media (max-width: 767.98px) {
  .dm-footer .dm-map iframe {
    height: clamp(180px, 52vw, 240px);
  }
}

/* ===== QA_LOCATION_MAP_EMPTY_CARD_FIX =====
   In section 10 ("Nous trouver") the map wrapper (.dm-map.mt-5) sits directly
   below the location/contact column. The wrapper carried a beige surface
   (--dm-cream-deep) plus the Bootstrap mt-5 spacing while its embedded map did
   not paint, which showed up as a tall empty beige card under the buttons on
   narrow screens. Remove the painted surface from the wrapper, keep only a thin
   frame, and let the embedded map itself own the height so no blank block can
   be produced when the map does not render. */
.dm-section > .dm-shell > .dm-map {
  background: transparent;
  border-color: transparent;
  height: auto;
  min-height: 0;
}

.dm-section > .dm-shell > .dm-map iframe {
  display: block;
  width: 100%;
  height: clamp(240px, 42vw, 380px);
  min-height: 0;
  border: 0;
  border-radius: var(--dm-radius-lg);
  border: 1px solid var(--dm-line);
  background: var(--dm-cream-deep);
}

@media (max-width: 767.98px) {
  .dm-section > .dm-shell > .dm-map iframe {
    height: clamp(200px, 56vw, 300px);
  }
}
