:root {
  /* Site custom colors (themed based on Diaclose product name to avoid footprint/forbidden keywords) */
  --dc-canvas: #F5F9F7;          /* soft emerald-tinted light bg */
  --dc-canvas-darker: #EDF3F0;   /* slightly darker tint for cards */
  --dc-surface: #FFFFFF;         /* clean white */
  --dc-accent-deep: #107B65;     /* therapeutic clean green */
  --dc-accent-muted: #E2EFEA;    /* soft background tint of accent */
  --dc-accent-hover: #0B5C4B;    /* darker hover state */
  --dc-accent-bright: #E05A47;   /* high contrast call to action state */
  --dc-ink-heavy: #12211D;       /* high contrast text (almost black green) */
  --dc-ink-soft: #4F635F;        /* muted descriptive typography */
  --dc-ink-light: #7A918C;       /* subtle legal/placeholder typography */
  --dc-border-subtle: #D8E4E0;   /* thin sleek borders */
  
  /* Typography Preloads */
  --dc-font-headline: 'Josefin Sans', sans-serif;
  --dc-font-prose: 'Poppins', sans-serif;
  
  /* Layout constraints */
  --dc-bound-limit: 1140px;      /* Randomly chosen container width limit */
  --dc-curve-soft: 16px;         /* soft rounded corner style */
  
  /* Elevation Shadows corresponding to Raised style */
  --dc-shadow-elevated: 0 10px 30px -10px rgba(16, 123, 101, 0.12);
  --dc-shadow-active: 0 15px 35px -5px rgba(16, 123, 101, 0.22);
}

/* Global Reset overrides */
body {
  font-family: var(--dc-font-prose);
  background-color: var(--dc-canvas);
  color: var(--dc-ink-heavy);
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

/* Base structural Haven (replaces banned container class name) */
.dc-haven {
  max-width: var(--dc-bound-limit);
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  width: 100%;
}

/* Header customization layout */
.dc-header-shell {
  background-color: var(--dc-surface);
  border-bottom: 2px solid var(--dc-border-subtle);
  height: 80px;
  position: relative;
  z-index: 50;
}

.dc-brand-anchor {
  text-decoration: none;
  color: var(--dc-accent-deep);
  transition: opacity 0.2s ease;
}

.dc-brand-anchor:hover {
  opacity: 0.9;
}

.dc-brand-icon {
  width: 32px;
  height: 32px;
}

.dc-brand-text {
  font-family: var(--dc-font-headline);
  font-weight: 700;
  font-size: 1.5rem;
  letter-spacing: -0.5px;
}

.dc-ambient-vector {
  color: var(--dc-accent-deep);
}

/* Typography styles based on Config specifications */
.dc-editorial-h1 {
  font-family: var(--dc-font-headline);
  font-size: 2.25rem;
  line-height: 1.2;
  font-weight: 700;
  color: var(--dc-ink-heavy);
  text-transform: uppercase; /* uppercase parameter applied */
  margin: 0 0 1rem 0;
}

@media (min-width: 1024px) {
  .dc-editorial-h1 {
    font-size: 3rem;
  }
}

.dc-editorial-h2 {
  font-family: var(--dc-font-headline);
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--dc-ink-heavy);
  text-transform: uppercase; /* uppercase parameter applied */
  margin: 0;
}

.dc-editorial-h3 {
  font-family: var(--dc-font-headline);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--dc-ink-heavy);
  text-transform: uppercase;
  margin: 0 0 0.5rem 0;
}

.dc-lead-prose {
  font-size: 1.125rem;
  line-weight: 1.6;
  color: var(--dc-ink-soft);
  margin: 0 0 1.5rem 0;
}

.dc-narrative-paragraph {
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--dc-ink-soft);
}

.dc-narrative-paragraph-small {
  line-height: 1.6;
  color: var(--dc-ink-soft);
}

/* Benefit tags design */
.dc-capsule-tag {
  background-color: var(--dc-accent-muted);
  color: var(--dc-accent-deep);
  font-weight: 600;
  font-size: 0.75rem;
  padding: 0.35rem 0.85rem;
  border-radius: 99px; /* pill style for standalone details */
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

/* Horizontal visual icons */
.dc-quick-facets-row {
  display: flex;
  gap: 1.5rem;
  border-top: 1px solid var(--dc-border-subtle);
  border-bottom: 1px solid var(--dc-border-subtle);
  padding: 1rem 0;
}

.dc-quick-facet-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.dc-quick-facet-icon {
  width: 20px;
  height: 20px;
  color: var(--dc-accent-deep);
}

.dc-quick-facet-label {
  font-size: 0.8rem;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--dc-ink-heavy);
}

/* Floating Action call-to-action layout preset B requirement */
.dc-appeal-haven {
  background-color: var(--dc-surface);
  border-radius: var(--dc-curve-soft);
  padding: 1.5rem;
  box-shadow: var(--dc-shadow-elevated);
  border: 1px solid var(--dc-border-subtle);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

@media (min-width: 1024px) {
  .dc-appeal-haven {
    position: sticky;
    bottom: 2rem;
    z-index: 40;
    box-shadow: var(--dc-shadow-active);
    border: 2px solid var(--dc-accent-deep);
  }
}

/* Price Display customization as Badge */
.dc-price-badge-layout {
  background-color: var(--dc-accent-muted);
  border-left: 4px solid var(--dc-accent-deep);
  padding: 0.5rem 1.25rem;
  border-radius: 4px;
}

.dc-price-label {
  color: var(--dc-accent-deep);
  font-weight: 700;
}

.dc-price-value {
  color: var(--dc-ink-heavy);
}

/* Custom Interactive Trigger Button */
.dc-trigger {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  background-color: var(--dc-accent-bright);
  color: var(--dc-surface) !important;
  font-family: var(--dc-font-headline);
  font-weight: 700;
  font-size: 1.15rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 1rem 2.5rem;
  border-radius: var(--dc-curve-soft);
  text-decoration: none;
  transition: background-color 0.2s ease, transform 0.1s ease;
  box-shadow: 0 4px 14px rgba(224, 90, 71, 0.3);
  border: none;
  cursor: pointer;
}

.dc-trigger:hover {
  background-color: #C84635; /* Darker red-orange contrast */
  transform: translateY(-2px);
}

.dc-trigger:active {
  transform: translateY(0);
}

/* Guarantee Badge (icon-left style) */
.dc-seal-inline {
  border-top: 1px dashed var(--dc-border-subtle);
}

.dc-seal-icon {
  width: 24px;
  height: 24px;
  color: var(--dc-accent-deep);
}

.dc-seal-text {
  color: var(--dc-ink-soft);
  font-weight: 500;
  margin: 0;
}

/* Split layout geometry - Preset B Image Right */
.dc-vanguard-mesh {
  display: flex;
  flex-direction: column;
  gap: 3rem;
}

@media (min-width: 1024px) {
  .dc-vanguard-mesh {
    flex-direction: row;
    align-items: flex-start;
  }
  .dc-narrative-pillar {
    width: 55%;
  }
  .dc-visual-pillar {
    width: 45%;
    position: sticky;
    top: 50px;
  }
}

/* Showcase graphic styling */
.dc-visual-mesh {
  background-color: var(--dc-surface);
  border-radius: var(--dc-curve-soft);
  padding: 2.5rem;
  box-shadow: var(--dc-shadow-elevated);
  border: 1px solid var(--dc-border-subtle);
  overflow: hidden;
}

.dc-visual-mesh img {
  max-width: 100%;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 15px 25px rgba(16, 123, 101, 0.15));
}

/* Background Abstract vector */
.dc-ambient-bg {
  position: absolute;
  top: -10%;
  right: -5%;
  color: var(--dc-accent-deep);
  pointer-events: none;
  z-index: 0;
}

/* Features Block - 2-column grid format (Preset B requirement) */
.dc-virtues-mesh {
  background-color: var(--dc-surface);
  position: relative;
  z-index: 10;
  border-top: 1px solid var(--dc-border-subtle);
  border-bottom: 1px solid var(--dc-border-subtle);
}

.dc-virtues-lattice {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
}

.dc-virtue-unit {
  width: 100%;
  padding: 1.5rem;
  border-radius: var(--dc-curve-soft);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
}

.dc-virtue-unit:hover {
  transform: translateY(-4px);
  box-shadow: var(--dc-shadow-elevated);
  background-color: var(--dc-canvas);
}

@media (min-width: 768px) {
  .dc-virtue-unit {
    width: calc(50% - 1rem);
  }
}

/* Large 64px circular icon container */
.dc-circle-icon-holder {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background-color: var(--dc-accent-muted);
  color: var(--dc-accent-deep);
  display: flex;
  align-items: center;
  justify-content: center;
}

.dc-circle-icon-holder svg {
  width: 28px;
  height: 28px;
}

.dc-subtitle-prose {
  color: var(--dc-ink-soft);
}

/* Testimonials Deck (Preset B - horizontal cards with decorative quotes) */
.dc-endorsements-mesh {
  background-color: var(--dc-canvas);
  position: relative;
  z-index: 10;
}

.dc-testimonial-deck {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

@media (min-width: 768px) {
  .dc-testimonial-deck {
    flex-direction: row;
    flex-wrap: wrap;
  }
}

.dc-testimonial-slate {
  background-color: var(--dc-canvas-darker); /* Darker than primary background */
  border-radius: var(--dc-curve-soft);
  padding: 2.25rem;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  border: 1px solid var(--dc-border-subtle);
  width: 100%;
  transition: transform 0.2s ease;
}

.dc-testimonial-slate:hover {
  transform: translateY(-2px);
}

@media (min-width: 768px) {
  .dc-testimonial-slate {
    width: calc(50% - 0.75rem);
  }
}

/* Giant Quote decor */
.dc-testimonial-quote-decor {
  position: absolute;
  top: 10px;
  right: 25px;
  font-family: var(--dc-font-headline);
  font-size: 7.5rem;
  line-height: 1;
  color: var(--dc-accent-deep);
  opacity: 0.08;
  user-select: none;
  pointer-events: none;
}

.dc-user-avatar-initials {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-family: var(--dc-font-headline);
}

.dc-user-name {
  color: var(--dc-ink-heavy);
  margin: 0;
}

.dc-user-location {
  display: block;
  color: var(--dc-ink-soft);
}

.dc-star-rating-row {
  color: #DDA110; /* Soft gold rating color */
  font-size: 1rem;
  letter-spacing: 2px;
}

.dc-testimonial-quote {
  color: var(--dc-ink-soft);
  line-height: 1.6;
  margin: 0;
  position: relative;
  z-index: 5;
}

/* Footer Section */
.dc-audit-footer {
  background-color: var(--dc-ink-heavy);
  color: var(--dc-surface);
  border-top: 3px solid var(--dc-accent-deep);
  padding: 3.5rem 0;
  position: relative;
  z-index: 50;
}

.dc-footer-twin {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}

@media (min-width: 768px) {
  .dc-footer-twin {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }
}

.dc-footer-identity .dc-brand-text {
  color: var(--dc-surface);
}

.dc-footer-identity .dc-brand-icon {
  color: var(--dc-accent-deep);
}

.dc-footer-desc {
  color: #8CA09B; /* Muted contrast green-grey */
}

.dc-footer-nav-pillar {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  align-items: center;
}

@media (min-width: 768px) {
  .dc-footer-nav-pillar {
    align-items: flex-end;
  }
}

.dc-footer-link {
  color: #8CA09B;
  text-decoration: none;
  font-size: 0.825rem;
  font-weight: 500;
  transition: color 0.2s ease;
}

.dc-footer-link:hover {
  color: var(--dc-surface);
}