/* Visual CSS Config - Themes & Layout Rules (No fixed naming pattern matches allowed) */
:root {
  /* LIGHT Theme Specific Harmonious Colors */
  --ct-bg-site: #f8fafc;        /* Soft cream/slate light hue */
  --ct-bg-panel: #ffffff;       /* Pure white */
  --ct-bg-dark: #0f172a;        /* Deep midnight slate */
  --ct-bg-footer: #1e293b;      /* Dark slate */
  
  --ct-accent-vibrant: #dc2626;  /* Heart-inspired crimson red */
  --ct-accent-hover: #b91c1c;    /* Deep burgundy hover state */
  --ct-accent-soft: #fef2f2;     /* Very light red screen tint */
  
  --ct-navy-deep: #1e293b;       /* Slate 800 for structural headers */
  --ct-ink-main: #0f172a;        /* Slate 900 for absolute contrast text */
  --ct-ink-muted: #475569;       /* Slate 600 for subtext and parameters */
  --ct-border-soft: #e2e8f0;     /* Slate 200 border lines */
  
  /* Fonts configuration based on inputs */
  --ct-font-display: 'Montserrat', sans-serif;
  --ct-font-body: 'Poppins', sans-serif;
  
  /* Layout limits */
  --ct-container-max: 1180px;    /* Container width selected from range */
  
  /* Theme Border Radius Style: Soft (12-20px) */
  --ct-radius-soft: 14px;
  --ct-radius-pill: 9999px;
  
  /* Theme Shadow Depth: Raised */
  --ct-shadow-raised: 0 10px 25px -5px rgba(15, 23, 42, 0.08), 
                      0 8px 10px -6px rgba(15, 23, 42, 0.04);
}

/* Base resets & typography */
body {
  font-family: var(--ct-font-body);
  background-color: var(--ct-bg-site);
  color: var(--ct-ink-main);
}

h1, h2, h3, h4, .ct-brand-headline {
  font-family: var(--ct-font-display);
  color: var(--ct-ink-main);
}

/* Structural container avoiding restricted classes */
.ct-major-shell {
  width: 100%;
  max-width: var(--ct-container-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

/* Header customization */
.ct-header-bar {
  background-color: var(--ct-bg-dark);
  border-bottom: 2px solid var(--ct-accent-vibrant);
}
.ct-header-bar .ct-brand-headline {
  color: #ffffff;
}
.ct-header-bar .ct-logo-vector {
  color: var(--ct-accent-vibrant);
}
.ct-header-bar .ct-decor-vector {
  color: var(--ct-accent-vibrant);
}

/* Footer customization */
.ct-footer-plate {
  background-color: var(--ct-bg-footer);
  color: #cbd5e1;
  border-top: 4px solid var(--ct-accent-vibrant);
}
.ct-footer-plate .ct-logo-vector {
  color: var(--ct-accent-vibrant);
}
.ct-footer-plate .ct-footer-navigation a {
  color: #94a3b8;
  transition: color 0.15s ease;
}
.ct-footer-plate .ct-footer-navigation a:hover {
  color: #ffffff;
}

/* Preset A Split Showcase Layout */
@media (min-width: 768px) {
  .ct-split-showcase {
    display: flex;
    gap: 2.5rem;
    align-items: flex-start;
  }
  .ct-visual-side {
    position: -webkit-sticky;
    position: sticky;
    top: 24px;
    align-self: flex-start;
  }
}

/* Visual container styling */
.ct-visual-container {
  background-color: var(--ct-bg-panel);
  border-radius: var(--ct-radius-soft);
  box-shadow: var(--ct-shadow-raised);
  border: 1px solid var(--ct-border-soft);
}

/* Stamp Overlay */
.ct-stamp-overlay {
  background-color: var(--ct-navy-deep);
  color: #ffffff;
}

/* Plate panels - replacement of .card */
.ct-info-plate {
  background-color: var(--ct-bg-panel);
  border-radius: var(--ct-radius-soft);
  box-shadow: var(--ct-shadow-raised);
  border-left: 4px solid var(--ct-accent-vibrant);
}

/* Bullet list icons */
.ct-check-icon {
  color: var(--ct-accent-vibrant);
}

/* Guarantee strip decoration */
.ct-guarantee-strip {
  background-color: var(--ct-accent-soft);
  border-radius: var(--ct-radius-soft);
  border: 1px dashed var(--ct-accent-vibrant);
}
.ct-guarantee-strip .ct-shield-vector {
  color: var(--ct-accent-vibrant);
}
.ct-guarantee-text {
  color: var(--ct-ink-muted);
}

/* Price presentation - BADGE style (prominently colored) */
.ct-purchase-block {
  background-color: var(--ct-bg-panel);
  border-radius: var(--ct-radius-soft);
  box-shadow: var(--ct-shadow-raised);
  border: 1px solid var(--ct-border-soft);
}
.ct-badge-price-rack {
  background-color: var(--ct-accent-vibrant);
  color: #ffffff;
  border-radius: var(--ct-radius-pill);
  display: inline-block;
}
.ct-price-label {
  color: var(--ct-ink-muted);
}

/* Interactive custom action trigger */
.ct-trigger-link {
  background-color: var(--ct-accent-vibrant);
  color: #ffffff;
  font-family: var(--ct-font-display);
  border-radius: var(--ct-radius-soft);
  transition: background-color 0.2s cubic-bezier(0.16, 1, 0.3, 1), transform 0.1s ease;
  box-shadow: 0 4px 14px 0 rgba(220, 38, 38, 0.3);
}
.ct-trigger-link:hover {
  background-color: var(--ct-accent-hover);
  transform: translateY(-2px);
}
.ct-trigger-link:active {
  transform: translateY(0);
}

/* Features (merits) tier separated styling */
.ct-merit-row-capsule {
  background-color: var(--ct-bg-panel);
  border-radius: var(--ct-radius-soft);
  border: 1px solid var(--ct-border-soft);
  box-shadow: var(--ct-shadow-raised);
  transition: transform 0.2s ease;
}
.ct-merit-row-capsule:hover {
  transform: translateY(-3px);
}
.ct-merit-icon-housing {
  background-color: var(--ct-accent-soft);
  color: var(--ct-accent-vibrant);
}

/* Testimonials (Feedback) structure: Colored Top border + initials */
.ct-feedback-tier {
  background-color: var(--ct-bg-panel);
  border: 1px solid var(--ct-border-soft);
  box-shadow: var(--ct-shadow-raised);
}
.ct-feedback-grid {
  display: grid;
  grid-template-columns: 1fr;
}
@media (min-width: 640px) {
  .ct-feedback-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1024px) {
  .ct-feedback-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
.ct-feedback-plate {
  background-color: var(--ct-bg-site);
  border-radius: var(--ct-radius-soft);
  border-top: 4px solid var(--ct-accent-vibrant);
  box-shadow: var(--ct-shadow-raised);
}
.ct-patron-avatar {
  background-color: var(--ct-navy-deep);
  color: #ffffff;
}

/* Legal text box */
.ct-disclaimer-box {
  background-color: var(--ct-accent-soft);
  border: 1px solid var(--ct-border-soft);
  color: var(--ct-ink-muted);
}

/* Global utility font helpers to prevent banned classes */
.ct-headline-primary {
  text-transform: uppercase;
  letter-spacing: 0.025em;
  color: var(--ct-ink-main);
}
.ct-tagline-secondary {
  color: var(--ct-accent-vibrant);
}
.ct-prose-paragraph {
  color: var(--ct-ink-muted);
}