/*
 * founderslegals.com - Main Stylesheet
 * Copyright (c) 2025 founderslegals.com
 * Version: 1.0.0
 */

/* ======================================================================
   TABLE OF CONTENTS
   ====================================================================== */
/*
 * 1. CSS Reset and Base Styles
 * 2. Typography
 * 3. Layout and Grid
 * 4. Header
 * 5. Navigation
 * 6. Hero Section
 * 7. About Preview Section
 * 8. Problems and Solutions Section
 * 9. Services Section
 * 10. Packages Section
 * 11. Metrics Section
 * 12. Location Map Section
 * 13. Contact Form Section
 * 14. Methodology Section
 * 15. FAQ Section
 * 16. Footer
 * 17. Cookie Consent
 * 18. Modal
 * 19. Thank You Page
 * 20. About Page
 * 21. Schedule Page
 * 22. Contact Page
 * 23. Legal Pages
 * 24. Utility Classes
 * 25. Media Queries
 * 26. Animations and Transitions
 * 27. Print Styles
 */

/* ======================================================================
   1. CSS Reset and Base Styles
   ====================================================================== */
:root {
  
  --dp-primary: #1E3A5F;
  --dp-secondary: #E67E22;
  --dp-accent: #3498DB;
  
  
  --dp-text: #333333;
  --dp-text-light: #666666;
  --dp-text-lighter: #999999;
  
  
  --dp-bg-light: #F8F9FA;
  --dp-bg-dark: #2C3E50;
  --dp-bg-accent: rgba(52, 152, 219, 0.1);
  
  
  --dp-success: #27AE60;
  --dp-warning: #F39C12;
  --dp-error: #E74C3C;
  
  
  --dp-white: #FFFFFF;
  --dp-light-gray: #ECF0F1;
  --dp-gray: #BDC3C7;
  --dp-dark-gray: #7F8C8D;
  
  
  --dp-space-xs: 0.25rem;
  --dp-space-sm: 0.5rem;
  --dp-space-md: 1rem;
  --dp-space-lg: 1.5rem;
  --dp-space-xl: 2rem;
  --dp-space-xxl: 3rem;
  
  
  --dp-font-primary: 'Karla', sans-serif;
  --dp-font-secondary: 'Spectral', serif;
  --dp-font-size-xs: 0.75rem;
  --dp-font-size-sm: 0.875rem;
  --dp-font-size-md: 1rem;
  --dp-font-size-lg: 1.25rem;
  --dp-font-size-xl: 1.5rem;
  --dp-font-size-xxl: 2rem;
  --dp-font-size-xxxl: 2.5rem;
  
  
  --dp-radius-sm: 0.25rem;
  --dp-radius-md: 0.5rem;
  --dp-radius-lg: 1rem;
  
  
  --dp-shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.05);
  --dp-shadow-md: 0 4px 8px rgba(0, 0, 0, 0.1);
  --dp-shadow-lg: 0 8px 16px rgba(0, 0, 0, 0.1);
  
  
  --dp-transition-fast: 0.2s ease;
  --dp-transition-medium: 0.3s ease;
  --dp-transition-slow: 0.5s ease;
  
  
  --dp-z-below: -1;
  --dp-z-normal: 1;
  --dp-z-above: 10;
  --dp-z-modal: 100;
  --dp-z-toast: 200;
  --dp-z-cookie: 300;
  --dp-z-highest: 1000;
  
  
  --dp-container-width: 1200px;
}

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 16px;
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  font-family: var(--dp-font-primary);
  color: var(--dp-text);
  background-color: var(--dp-white);
  margin: 0;
  padding: 0;
  min-height: 100vh;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

#dp-page-wrapper {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

main {
  flex: 1;
}

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

a {
  color: var(--dp-accent);
  text-decoration: none;
  transition: color var(--dp-transition-fast);
}

a:hover, a:focus {
  color: var(--dp-primary);
  text-decoration: underline;
}

button {
  cursor: pointer;
  font-family: inherit;
}

ul, ol {
  list-style-position: inside;
}

table {
  border-collapse: collapse;
  width: 100%;
}

.iti { 
  width: 100% 
}

/* ======================================================================
   2. Typography
   ====================================================================== */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--dp-font-secondary);
  font-weight: 500;
  line-height: 1.2;
  margin-bottom: var(--dp-space-md);
  color: var(--dp-primary);
}

h1 {
  font-size: var(--dp-font-size-xxxl);
  margin-bottom: var(--dp-space-lg);
}

h2 {
  font-size: var(--dp-font-size-xxl);
  margin-bottom: var(--dp-space-lg);
}

h3 {
  font-size: var(--dp-font-size-xl);
  margin-bottom: var(--dp-space-md);
}

h4 {
  font-size: var(--dp-font-size-lg);
  margin-bottom: var(--dp-space-md);
}

h5 {
  font-size: var(--dp-font-size-md);
  margin-bottom: var(--dp-space-sm);
}

h6 {
  font-size: var(--dp-font-size-sm);
  margin-bottom: var(--dp-space-sm);
}

p {
  margin-bottom: var(--dp-space-md);
  line-height: 1.6;
}

.dp-section-title {
  text-align: center;
  margin-bottom: var(--dp-space-xl);
  position: relative;
  padding-bottom: var(--dp-space-md);
}

.dp-section-title::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 3px;
  background-color: var(--dp-secondary);
}

.dp-section-intro {
  text-align: center;
  font-size: var(--dp-font-size-lg);
  max-width: 800px;
  margin: 0 auto var(--dp-space-xl);
  color: var(--dp-text-light);
}

/* ======================================================================
   3. Layout and Grid
   ====================================================================== */
.dp-section-container {
  width: 100%;
  max-width: var(--dp-container-width);
  margin: 0 auto;
  padding: 0 var(--dp-space-lg);
}

section {
  padding: var(--dp-space-xxl) 0;
}

.dp-grid {
  display: grid;
  gap: var(--dp-space-lg);
}

.dp-flex {
  display: flex;
}

.dp-flex-column {
  flex-direction: column;
}

.dp-flex-center {
  align-items: center;
  justify-content: center;
}

.dp-flex-between {
  justify-content: space-between;
}

.dp-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ======================================================================
   4. Header
   ====================================================================== */
.dp-site-header {
  background-color: var(--dp-white);
  box-shadow: var(--dp-shadow-sm);
  position: sticky;
  top: 0;
  z-index: var(--dp-z-above);
  padding: var(--dp-space-md) 0;
}

.dp-header-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: var(--dp-container-width);
  margin: 0 auto;
  padding: 0 var(--dp-space-lg);
}

.dp-logo-wrapper {
  flex: 0 0 auto;
}

.dp-logo {
  height: 50px;
  width: auto;
}

.dp-header-cta {
  margin-left: var(--dp-space-md);
}

.dp-cta-button {
  display: inline-block;
  background-color: var(--dp-secondary);
  color: var(--dp-white);
  padding: var(--dp-space-sm) var(--dp-space-lg);
  border-radius: var(--dp-radius-md);
  font-weight: 500;
  text-align: center;
  text-decoration: none;
  transition: background-color var(--dp-transition-fast);
}

.dp-cta-button:hover, .dp-cta-button:focus {
  background-color: #d35400;
  color: var(--dp-white);
  text-decoration: none;
}

/* ======================================================================
   5. Navigation
   ====================================================================== */
.dp-main-navigation {
  flex: 1;
  margin-left: var(--dp-space-xl);
}

.dp-nav-list {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
}

.dp-nav-item {
  margin-right: var(--dp-space-lg);
  position: relative;
}

.dp-nav-link {
  color: var(--dp-text);
  font-weight: 500;
  text-decoration: none;
  padding: var(--dp-space-sm) 0;
  display: block;
  position: relative;
  transition: color var(--dp-transition-fast);
}

.dp-nav-link::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 2px;
  background-color: var(--dp-secondary);
  transition: width var(--dp-transition-medium);
}

.dp-nav-link:hover, .dp-nav-link:focus {
  color: var(--dp-secondary);
  text-decoration: none;
}

.dp-nav-link:hover::after, .dp-nav-link:focus::after, .dp-nav-current .dp-nav-link::after {
  width: 100%;
}

.dp-nav-current .dp-nav-link {
  color: var(--dp-secondary);
}

.dp-menu-toggle {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: var(--dp-space-sm);
}

.dp-menu-icon {
  display: block;
  width: 24px;
  height: 2px;
  background-color: var(--dp-primary);
  position: relative;
  transition: background-color var(--dp-transition-fast);
}

.dp-menu-icon::before, .dp-menu-icon::after {
  content: '';
  position: absolute;
  width: 24px;
  height: 2px;
  background-color: var(--dp-primary);
  transition: transform var(--dp-transition-fast);
}

.dp-menu-icon::before {
  top: -8px;
}

.dp-menu-icon::after {
  bottom: -8px;
}

.dp-menu-toggle[aria-expanded="true"] .dp-menu-icon {
  background-color: transparent;
}

.dp-menu-toggle[aria-expanded="true"] .dp-menu-icon::before {
  transform: translateY(8px) rotate(45deg);
}

.dp-menu-toggle[aria-expanded="true"] .dp-menu-icon::after {
  transform: translateY(-8px) rotate(-45deg);
}

.dp-nav-legal {
  display: none;
}

.dp-legal-nav {
  list-style: none;
  padding: 0;
  margin: var(--dp-space-md) 0;
}

.dp-legal-link {
  color: var(--dp-text-light);
  font-size: var(--dp-font-size-sm);
  padding: var(--dp-space-xs) 0;
  display: block;
  transition: color var(--dp-transition-fast);
}

.dp-legal-link:hover, .dp-legal-link:focus, .dp-current-legal {
  color: var(--dp-secondary);
  text-decoration: none;
}

/* ======================================================================
   6. Hero Section
   ====================================================================== */
.dp-hero-section {
  background-color: var(--dp-bg-light);
  padding: var(--dp-space-xxl) 0;
  position: relative;
  overflow: hidden;
}

.dp-hero-container {
  display: flex;
  align-items: center;
  gap: var(--dp-space-xl);
}

.dp-hero-content {
  flex: 1;
}

.dp-hero-title {
  font-size: var(--dp-font-size-xxxl);
  line-height: 1.2;
  margin-bottom: var(--dp-space-lg);
  color: var(--dp-primary);
}

.dp-hero-subtitle {
  font-size: var(--dp-font-size-lg);
  margin-bottom: var(--dp-space-xl);
  color: var(--dp-text-light);
}

.dp-typed-container {
  margin-bottom: var(--dp-space-xl);
  font-size: var(--dp-font-size-xl);
  min-height: 3rem;
  display: flex;
  align-items: center;
}

.dp-typed-prefix {
  margin-right: var(--dp-space-xs);
}

#dp-typed-text {
  color: var(--dp-secondary);
  font-weight: 700;
}

.dp-hero-cta {
  margin-top: var(--dp-space-xl);
}

.dp-primary-button {
  display: inline-block;
  background-color: var(--dp-primary);
  color: var(--dp-white);
  padding: var(--dp-space-md) var(--dp-space-xl);
  border-radius: var(--dp-radius-md);
  font-weight: 500;
  font-size: var(--dp-font-size-md);
  text-align: center;
  text-decoration: none;
  transition: background-color var(--dp-transition-fast);
  border: none;
  cursor: pointer;
}

.dp-primary-button:hover, .dp-primary-button:focus {
  background-color: #17293f;
  color: var(--dp-white);
  text-decoration: none;
}

.dp-hero-image {
  flex: 1;
  max-width: 50%;
}

.dp-hero-img {
  width: 100%;
  height: auto;
  border-radius: var(--dp-radius-lg);
  box-shadow: var(--dp-shadow-lg);
}

/* ======================================================================
   7. About Preview Section
   ====================================================================== */
.dp-about-preview {
  padding: var(--dp-space-xxl) 0;
  background-color: var(--dp-white);
}

.dp-about-preview .dp-section-container {
  display: flex;
  align-items: center;
  gap: var(--dp-space-xl);
}

.dp-about-preview-content {
  flex: 1;
}

.dp-about-text {
  margin-bottom: var(--dp-space-lg);
}

.dp-text-button {
  display: inline-flex;
  align-items: center;
  color: var(--dp-secondary);
  font-weight: 500;
  text-decoration: none;
  transition: color var(--dp-transition-fast);
}

.dp-text-button i {
  margin-left: var(--dp-space-sm);
  transition: transform var(--dp-transition-fast);
}

.dp-text-button:hover, .dp-text-button:focus {
  color: var(--dp-primary);
  text-decoration: none;
}

.dp-text-button:hover i, .dp-text-button:focus i {
  transform: translateX(5px);
}

.dp-about-preview-image {
  flex: 1;
}

.dp-about-img {
  width: 100%;
  height: auto;
  border-radius: var(--dp-radius-lg);
  box-shadow: var(--dp-shadow-lg);
}

/* ======================================================================
   8. Problems and Solutions Section
   ====================================================================== */
.dp-problems-solutions {
  background-color: var(--dp-bg-light);
  padding: var(--dp-space-xxl) 0;
}

.dp-problem-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--dp-space-lg);
}

.dp-problem-card {
  background-color: var(--dp-white);
  border-radius: var(--dp-radius-md);
  box-shadow: var(--dp-shadow-md);
  overflow: hidden;
  transition: transform var(--dp-transition-medium), box-shadow var(--dp-transition-medium);
  padding: var(--dp-space-lg);
}

.dp-problem-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--dp-shadow-lg);
}

.dp-problem-header {
  display: flex;
  align-items: center;
  margin-bottom: var(--dp-space-md);
}

.dp-problem-icon {
  font-size: var(--dp-font-size-xl);
  color: var(--dp-secondary);
  margin-right: var(--dp-space-md);
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(230, 126, 34, 0.1);
  border-radius: 50%;
}

.dp-problem-title {
  margin-bottom: 0;
  font-size: var(--dp-font-size-lg);
}

.dp-problem-description {
  margin-bottom: var(--dp-space-md);
}

.dp-solution {
  background-color: rgba(52, 152, 219, 0.05);
  padding: var(--dp-space-md);
  border-left: 3px solid var(--dp-accent);
  border-radius: 0 var(--dp-radius-sm) var(--dp-radius-sm) 0;
}

.dp-solution-title {
  font-size: var(--dp-font-size-md);
  color: var(--dp-accent);
  margin-bottom: var(--dp-space-xs);
}

.dp-solution-description {
  margin-bottom: 0;
}

/* ======================================================================
   9. Services Section
   ====================================================================== */
.dp-services {
  padding: var(--dp-space-xxl) 0;
  background-color: var(--dp-white);
}

.dp-services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
  gap: var(--dp-space-xl);
}

.dp-service-card {
  background-color: var(--dp-white);
  border-radius: var(--dp-radius-lg);
  box-shadow: var(--dp-shadow-md);
  overflow: hidden;
  transition: transform var(--dp-transition-medium), box-shadow var(--dp-transition-medium);
  display: flex;
  flex-direction: column;
}

.dp-service-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--dp-shadow-lg);
}

.dp-service-image {
  position: relative;
  overflow: hidden;
  height: 240px;
}

.dp-service-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--dp-transition-medium);
}

.dp-service-card:hover .dp-service-img {
  transform: scale(1.05);
}

.dp-service-content {
  padding: var(--dp-space-lg);
  flex: 1;
  display: flex;
  flex-direction: column;
}

.dp-service-title {
  font-size: var(--dp-font-size-xl);
  margin-bottom: var(--dp-space-md);
}

.dp-service-description {
  margin-bottom: var(--dp-space-lg);
  flex-grow: 1;
}

.dp-service-details {
  list-style: none;
  margin-bottom: var(--dp-space-lg);
}

.dp-service-details li {
  margin-bottom: var(--dp-space-sm);
  display: flex;
  align-items: baseline;
}

.dp-detail-label {
  font-weight: 700;
  margin-right: var(--dp-space-sm);
  color: var(--dp-text);
}

.dp-service-cta {
  display: inline-block;
  background-color: var(--dp-primary);
  color: var(--dp-white);
  padding: var(--dp-space-sm) var(--dp-space-lg);
  border-radius: var(--dp-radius-md);
  font-weight: 500;
  text-align: center;
  text-decoration: none;
  transition: background-color var(--dp-transition-fast);
  align-self: flex-start;
}

.dp-service-cta:hover, .dp-service-cta:focus {
  background-color: #17293f;
  color: var(--dp-white);
  text-decoration: none;
}

/* ======================================================================
   10. Packages Section
   ====================================================================== */
.dp-packages {
  background-color: var(--dp-bg-light);
  padding: var(--dp-space-xxl) 0;
}

.dp-packages-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--dp-space-lg);
}

.dp-package-card {
  background-color: var(--dp-white);
  border-radius: var(--dp-radius-lg);
  box-shadow: var(--dp-shadow-md);
  overflow: hidden;
  transition: transform var(--dp-transition-medium), box-shadow var(--dp-transition-medium);
  display: flex;
  flex-direction: column;
}

.dp-package-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--dp-shadow-lg);
}

.dp-featured-package {
  border: 2px solid var(--dp-secondary);
  transform: scale(1.02);
  position: relative;
  z-index: 1;
}

.dp-featured-package:hover {
  transform: scale(1.02) translateY(-5px);
}

.dp-package-header {
  background-color: var(--dp-primary);
  color: var(--dp-white);
  padding: var(--dp-space-lg);
  text-align: center;
}

.dp-featured-package .dp-package-header {
  background-color: var(--dp-secondary);
}

.dp-package-title {
  color: var(--dp-white);
  margin-bottom: var(--dp-space-xs);
}

.dp-package-subtitle {
  color: rgba(255, 255, 255, 0.8);
  margin-bottom: 0;
  font-size: var(--dp-font-size-sm);
}

.dp-package-body {
  padding: var(--dp-space-lg);
  flex: 1;
  display: flex;
  flex-direction: column;
}

.dp-package-features {
  list-style: none;
  margin-bottom: var(--dp-space-lg);
  flex-grow: 1;
}

.dp-package-feature {
  margin-bottom: var(--dp-space-md);
  padding-left: 30px;
  position: relative;
}

.dp-package-feature::before {
  content: '\f00c';
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
  color: var(--dp-secondary);
  position: absolute;
  left: 0;
  top: 2px;
}

.dp-featured-package .dp-package-feature::before {
  color: var(--dp-secondary);
}

.dp-package-value {
  font-style: italic;
  color: var(--dp-text-light);
  margin-bottom: var(--dp-space-lg);
}

.dp-package-cta {
  display: inline-block;
  background-color: var(--dp-primary);
  color: var(--dp-white);
  padding: var(--dp-space-sm) var(--dp-space-lg);
  border-radius: var(--dp-radius-md);
  font-weight: 500;
  text-align: center;
  text-decoration: none;
  transition: background-color var(--dp-transition-fast);
  width: 100%;
}

.dp-package-cta:hover, .dp-package-cta:focus {
  background-color: #17293f;
  color: var(--dp-white);
  text-decoration: none;
}

.dp-featured-package .dp-package-cta {
  background-color: var(--dp-secondary);
}

.dp-featured-package .dp-package-cta:hover, 
.dp-featured-package .dp-package-cta:focus {
  background-color: #d35400;
}

/* ======================================================================
   11. Metrics Section
   ====================================================================== */
.dp-metrics {
  padding: var(--dp-space-xxl) 0;
  background-color: var(--dp-primary);
  color: var(--dp-white);
}

.dp-metrics .dp-section-title {
  color: var(--dp-white);
}

.dp-metrics .dp-section-title::after {
  background-color: var(--dp-white);
}

.dp-metrics-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--dp-space-lg);
  text-align: center;
}

.dp-metric-card {
  padding: var(--dp-space-lg);
  background-color: rgba(255, 255, 255, 0.1);
  border-radius: var(--dp-radius-md);
  transition: transform var(--dp-transition-medium);
}

.dp-metric-card:hover {
  transform: translateY(-5px);
  background-color: rgba(255, 255, 255, 0.15);
}

.dp-metric-value {
  font-size: 3rem;
  font-weight: 700;
  color: var(--dp-secondary);
  margin-bottom: var(--dp-space-sm);
  font-family: var(--dp-font-secondary);
}

.dp-metric-label {
  font-size: var(--dp-font-size-md);
  color: rgba(255, 255, 255, 0.9);
}

/* ======================================================================
   12. Location Map Section
   ====================================================================== */
.dp-location-map {
  padding: var(--dp-space-xxl) 0;
  background-color: var(--dp-white);
}

.dp-map-container {
  border-radius: var(--dp-radius-lg);
  overflow: hidden;
  box-shadow: var(--dp-shadow-md);
  margin-bottom: var(--dp-space-xl);
  height: 450px;
}

.dp-map-iframe {
  width: 100%;
  height: 100%;
  border: none;
}

.dp-location-details {
  display: flex;
  flex-wrap: wrap;
  gap: var(--dp-space-lg);
  justify-content: center;
}

.dp-location-card {
  background-color: var(--dp-bg-light);
  padding: var(--dp-space-lg);
  border-radius: var(--dp-radius-md);
  box-shadow: var(--dp-shadow-sm);
  flex: 1;
  min-width: 300px;
  max-width: 400px;
}

.dp-location-title {
  font-size: var(--dp-font-size-lg);
  margin-bottom: var(--dp-space-md);
  color: var(--dp-primary);
}

.dp-location-address, .dp-location-phone {
  display: flex;
  align-items: flex-start;
  margin-bottom: var(--dp-space-md);
}

.dp-location-address i, .dp-location-phone i {
  color: var(--dp-secondary);
  margin-right: var(--dp-space-sm);
  margin-top: 4px;
}

.dp-location-phone a {
  color: var(--dp-text);
  transition: color var(--dp-transition-fast);
}

.dp-location-phone a:hover, .dp-location-phone a:focus {
  color: var(--dp-secondary);
  text-decoration: none;
}

.dp-location-hours {
  margin-top: var(--dp-space-lg);
}

.dp-hours-title {
  font-size: var(--dp-font-size-md);
  margin-bottom: var(--dp-space-sm);
  color: var(--dp-primary);
}

.dp-hours-list {
  list-style: none;
}

.dp-hours-list li {
  margin-bottom: var(--dp-space-xs);
}

.dp-day {
  font-weight: 500;
  margin-right: var(--dp-space-sm);
}

/* ======================================================================
   13. Contact Form Section
   ====================================================================== */
.dp-contact-form-section {
  padding: var(--dp-space-xxl) 0;
  background-color: var(--dp-bg-light);
}

.dp-form-container {
  max-width: 800px;
  margin: 0 auto;
  background-color: var(--dp-white);
  border-radius: var(--dp-radius-lg);
  box-shadow: var(--dp-shadow-md);
  overflow: hidden;
}

.dp-form-header {
  background-color: var(--dp-primary);
  padding: var(--dp-space-lg);
  color: var(--dp-white);
  text-align: center;
}

.dp-form-title {
  color: var(--dp-white);
  margin-bottom: var(--dp-space-sm);
}

.dp-form-subtitle {
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 0;
}

.dp-form {
  padding: var(--dp-space-lg);
}

.dp-form-group {
  margin-bottom: var(--dp-space-lg);
}

.dp-form-label {
  display: block;
  margin-bottom: var(--dp-space-sm);
  font-weight: 500;
  color: var(--dp-text);
}

.dp-form-input, .dp-form-textarea {
  width: 100%;
  padding: var(--dp-space-md);
  border: 1px solid var(--dp-light-gray);
  border-radius: var(--dp-radius-md);
  font-family: var(--dp-font-primary);
  font-size: var(--dp-font-size-md);
  transition: border-color var(--dp-transition-fast);
}

.dp-form-input:focus, .dp-form-textarea:focus {
  outline: none;
  border-color: var(--dp-accent);
  box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.2);
}

.dp-form-checkbox {
  display: flex;
  align-items: flex-start;
}

.dp-checkbox {
  margin-right: var(--dp-space-sm);
  margin-top: 4px;
}

.dp-checkbox-label {
  font-size: var(--dp-font-size-sm);
  color: var(--dp-text-light);
}

.dp-form-link {
  color: var(--dp-accent);
  text-decoration: underline;
  transition: color var(--dp-transition-fast);
}

.dp-form-link:hover, .dp-form-link:focus {
  color: var(--dp-primary);
}

.dp-form-submit {
  text-align: center;
}

.dp-submit-button {
  display: inline-block;
  background-color: var(--dp-secondary);
  color: var(--dp-white);
  padding: var(--dp-space-md) var(--dp-space-xl);
  border-radius: var(--dp-radius-md);
  font-weight: 500;
  font-size: var(--dp-font-size-md);
  text-align: center;
  text-decoration: none;
  transition: background-color var(--dp-transition-fast);
  border: none;
  cursor: pointer;
}

.dp-submit-button:hover, .dp-submit-button:focus {
  background-color: #d35400;
  color: var(--dp-white);
}

/* ======================================================================
   14. Methodology Section
   ====================================================================== */
.dp-methodology {
  padding: var(--dp-space-xxl) 0;
  background-color: var(--dp-white);
}

.dp-methodology-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: var(--dp-space-lg);
}

.dp-methodology-card {
  background-color: var(--dp-bg-light);
  border-radius: var(--dp-radius-md);
  padding: var(--dp-space-lg);
  box-shadow: var(--dp-shadow-sm);
  transition: transform var(--dp-transition-medium), box-shadow var(--dp-transition-medium);
  text-align: center;
}

.dp-methodology-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--dp-shadow-md);
}

.dp-methodology-icon {
  width: 60px;
  height: 60px;
  background-color: var(--dp-primary);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto var(--dp-space-md);
}

.dp-methodology-icon i {
  color: var(--dp-white);
  font-size: var(--dp-font-size-xl);
}

.dp-methodology-title {
  font-size: var(--dp-font-size-lg);
  margin-bottom: var(--dp-space-md);
  color: var(--dp-primary);
}

.dp-methodology-description {
  color: var(--dp-text-light);
  margin-bottom: 0;
}

/* ======================================================================
   15. FAQ Section
   ====================================================================== */
.dp-faq {
  padding: var(--dp-space-xxl) 0;
  background-color: var(--dp-bg-light);
}

.dp-faq-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(500px, 1fr));
  gap: var(--dp-space-lg);
}

.dp-faq-item {
  background-color: var(--dp-white);
  border-radius: var(--dp-radius-md);
  box-shadow: var(--dp-shadow-sm);
  overflow: hidden;
  margin-bottom: var(--dp-space-md);
}

.dp-faq-question {
  padding: var(--dp-space-lg);
  background-color: var(--dp-white);
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: background-color var(--dp-transition-fast);
}

.dp-faq-question:hover, .dp-faq-question:focus {
  background-color: rgba(52, 152, 219, 0.05);
  outline: none;
}

.dp-question-text {
  margin-bottom: 0;
  font-size: var(--dp-font-size-md);
  color: var(--dp-primary);
}

.dp-faq-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-left: var(--dp-space-md);
}

.dp-faq-icon i {
  color: var(--dp-primary);
  transition: transform var(--dp-transition-fast);
}

.dp-faq-icon .fa-minus {
  display: none;
}

.dp-faq-answer {
  padding: 0 var(--dp-space-lg);
  max-height: 0;
  overflow: hidden;
  transition: max-height var(--dp-transition-medium), padding var(--dp-transition-medium);
}

.dp-faq-item.dp-active .dp-faq-answer {
  padding: 0 var(--dp-space-lg) var(--dp-space-lg);
  max-height: 1000px;
}

.dp-faq-item.dp-active .dp-faq-icon .fa-plus {
  display: none;
}

.dp-faq-item.dp-active .dp-faq-icon .fa-minus {
  display: block;
}

/* ======================================================================
   16. Footer
   ====================================================================== */
.dp-site-footer {
  background-color: var(--dp-bg-dark);
  color: var(--dp-white);
  padding: var(--dp-space-xl) 0 var(--dp-space-md);
}

.dp-footer-container {
  max-width: var(--dp-container-width);
  margin: 0 auto;
  padding: 0 var(--dp-space-lg);
}

.dp-footer-main {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: var(--dp-space-xl);
  margin-bottom: var(--dp-space-xl);
}

.dp-footer-title {
  color: var(--dp-white);
  font-size: var(--dp-font-size-lg);
  margin-bottom: var(--dp-space-md);
  position: relative;
  padding-bottom: var(--dp-space-sm);
}

.dp-footer-title::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 40px;
  height: 2px;
  background-color: var(--dp-secondary);
}

.dp-footer-address p {
  margin-bottom: var(--dp-space-sm);
  display: flex;
  align-items: flex-start;
}

.dp-footer-address i {
  color: var(--dp-secondary);
  margin-right: var(--dp-space-sm);
  margin-top: 4px;
}

.dp-footer-address a {
  color: var(--dp-white);
  transition: color var(--dp-transition-fast);
}

.dp-footer-address a:hover, .dp-footer-address a:focus {
  color: var(--dp-secondary);
  text-decoration: none;
}

.dp-footer-hours {
  margin-top: var(--dp-space-lg);
}

.dp-hours-title {
  font-size: var(--dp-font-size-md);
  color: var(--dp-white);
  margin-bottom: var(--dp-space-sm);
}

.dp-footer-map-container {
  border-radius: var(--dp-radius-md);
  overflow: hidden;
  height: 150px;
}

.dp-footer-map-iframe {
  width: 100%;
  height: 100%;
  border: none;
}

.dp-footer-nav {
  list-style: none;
  padding: 0;
  margin: 0;
}

.dp-footer-nav li {
  margin-bottom: var(--dp-space-sm);
}

.dp-footer-nav a {
  color: var(--dp-light-gray);
  transition: color var(--dp-transition-fast);
}

.dp-footer-nav a:hover, .dp-footer-nav a:focus {
  color: var(--dp-secondary);
  text-decoration: none;
}

.dp-mt {
  margin-top: var(--dp-space-lg);
}

.dp-footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: var(--dp-space-md);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  flex-wrap: wrap;
  gap: var(--dp-space-md);
}

.dp-copyright {
  font-size: var(--dp-font-size-sm);
  color: var(--dp-gray);
}

.dp-cookie-button {
  background: none;
  border: 1px solid var(--dp-gray);
  color: var(--dp-gray);
  padding: var(--dp-space-xs) var(--dp-space-md);
  border-radius: var(--dp-radius-md);
  font-size: var(--dp-font-size-sm);
  cursor: pointer;
  transition: all var(--dp-transition-fast);
}

.dp-cookie-button:hover, .dp-cookie-button:focus {
  background-color: rgba(255, 255, 255, 0.1);
  border-color: var(--dp-white);
  color: var(--dp-white);
}

/* ======================================================================
   17. Cookie Consent
   ====================================================================== */
.dp-cookie-consent {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  background-color: var(--dp-bg-dark);
  color: var(--dp-white);
  box-shadow: 0 -5px 10px rgba(0, 0, 0, 0.1);
  z-index: var(--dp-z-cookie);
  display: none;
}

.dp-cookie-content {
  max-width: var(--dp-container-width);
  margin: 0 auto;
  padding: var(--dp-space-lg);
}

.dp-cookie-title {
  color: var(--dp-white);
  margin-bottom: var(--dp-space-md);
  font-size: var(--dp-font-size-xl);
}

.dp-cookie-text {
  margin-bottom: var(--dp-space-lg);
}

.dp-cookie-options {
  margin-bottom: var(--dp-space-lg);
}

.dp-cookie-option {
  display: flex;
  align-items: flex-start;
  margin-bottom: var(--dp-space-md);
  background-color: rgba(255, 255, 255, 0.05);
  padding: var(--dp-space-md);
  border-radius: var(--dp-radius-md);
}

.dp-cookie-option input[type="checkbox"] {
  margin-right: var(--dp-space-sm);
  margin-top: 4px;
}

.dp-cookie-option label {
  font-weight: 500;
  margin-bottom: var(--dp-space-xs);
}

.dp-cookie-description {
  margin-left: 24px;
  font-size: var(--dp-font-size-sm);
  color: var(--dp-light-gray);
  margin-bottom: 0;
}

.dp-cookie-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--dp-space-md);
  margin-bottom: var(--dp-space-md);
}

.dp-cookie-btn {
  padding: var(--dp-space-sm) var(--dp-space-lg);
  border-radius: var(--dp-radius-md);
  font-weight: 500;
  cursor: pointer;
  transition: all var(--dp-transition-fast);
  border: none;
}

.dp-accept-btn {
  background-color: var(--dp-secondary);
  color: var(--dp-white);
}

.dp-accept-btn:hover, .dp-accept-btn:focus {
  background-color: #d35400;
}

.dp-save-btn {
  background-color: var(--dp-primary);
  color: var(--dp-white);
}

.dp-save-btn:hover, .dp-save-btn:focus {
  background-color: #17293f;
}

.dp-reject-btn {
  background-color: transparent;
  color: var(--dp-white);
  border: 1px solid var(--dp-white);
}

.dp-reject-btn:hover, .dp-reject-btn:focus {
  background-color: rgba(255, 255, 255, 0.1);
}

.dp-cookie-footer {
  font-size: var(--dp-font-size-sm);
  color: var(--dp-light-gray);
}

.dp-cookie-footer a {
  color: var(--dp-secondary);
  text-decoration: underline;
}

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

/* ======================================================================
   18. Modal
   ====================================================================== */
.dp-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: var(--dp-z-modal);
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--dp-transition-medium), visibility var(--dp-transition-medium);
}

.dp-modal.dp-active {
  opacity: 1;
  visibility: visible;
}

.dp-modal-content {
  background-color: var(--dp-white);
  border-radius: var(--dp-radius-lg);
  box-shadow: var(--dp-shadow-lg);
  width: 90%;
  max-width: 500px;
  padding: var(--dp-space-xl);
  position: relative;
  transform: translateY(20px);
  transition: transform var(--dp-transition-medium);
}

.dp-modal.dp-active .dp-modal-content {
  transform: translateY(0);
}

.dp-modal-close {
  position: absolute;
  top: var(--dp-space-md);
  right: var(--dp-space-md);
  background: none;
  border: none;
  font-size: var(--dp-font-size-lg);
  color: var(--dp-text-light);
  cursor: pointer;
  transition: color var(--dp-transition-fast);
}

.dp-modal-close:hover, .dp-modal-close:focus {
  color: var(--dp-error);
}

.dp-modal-title {
  margin-bottom: var(--dp-space-md);
  color: var(--dp-primary);
  font-size: var(--dp-font-size-xl);
}

.dp-modal-text {
  margin-bottom: var(--dp-space-lg);
}

/* ======================================================================
   19. Thank You Page
   ====================================================================== */
.dp-thanks-section {
  padding: var(--dp-space-xxl) 0;
  background-color: var(--dp-bg-light);
  min-height: 70vh;
  display: flex;
  align-items: center;
}

.dp-thanks-container {
  max-width: 800px;
  margin: 0 auto;
  background-color: var(--dp-white);
  border-radius: var(--dp-radius-lg);
  box-shadow: var(--dp-shadow-md);
  padding: var(--dp-space-xl);
  text-align: center;
}

.dp-thanks-icon {
  font-size: 4rem;
  color: var(--dp-success);
  margin-bottom: var(--dp-space-lg);
}

.dp-thanks-title {
  color: var(--dp-primary);
  margin-bottom: var(--dp-space-lg);
  font-size: var(--dp-font-size-xxl);
}

.dp-thanks-message {
  margin-bottom: var(--dp-space-xl);
}

.dp-thanks-text {
  font-size: var(--dp-font-size-lg);
  margin-bottom: var(--dp-space-md);
}

.dp-thanks-cta {
  margin-bottom: var(--dp-space-xl);
}

.dp-thanks-contact {
  margin-top: var(--dp-space-xl);
  padding-top: var(--dp-space-lg);
  border-top: 1px solid var(--dp-light-gray);
  text-align: left;
}

.dp-contact-title {
  color: var(--dp-primary);
  margin-bottom: var(--dp-space-md);
}

.dp-contact-text {
  margin-bottom: var(--dp-space-md);
}

.dp-contact-details {
  font-style: normal;
}

.dp-contact-details p {
  margin-bottom: var(--dp-space-sm);
  display: flex;
  align-items: flex-start;
}

.dp-contact-details i {
  color: var(--dp-secondary);
  margin-right: var(--dp-space-sm);
  margin-top: 4px;
}

.dp-contact-details a {
  color: var(--dp-accent);
  transition: color var(--dp-transition-fast);
}

.dp-contact-details a:hover, .dp-contact-details a:focus {
  color: var(--dp-primary);
}

/* ======================================================================
   20. About Page
   ====================================================================== */
.dp-page-header {
  background-color: var(--dp-primary);
  color: var(--dp-white);
  padding: var(--dp-space-xl) 0;
}

.dp-breadcrumb {
  margin-bottom: var(--dp-space-md);
  font-size: var(--dp-font-size-sm);
  color: rgba(255, 255, 255, 0.7);
}

.dp-breadcrumb a {
  color: var(--dp-white);
  text-decoration: none;
  transition: color var(--dp-transition-fast);
}

.dp-breadcrumb a:hover, .dp-breadcrumb a:focus {
  color: var(--dp-secondary);
  text-decoration: underline;
}

.dp-page-title {
  color: var(--dp-white);
  margin-bottom: var(--dp-space-md);
  font-size: var(--dp-font-size-xxxl);
}

.dp-page-intro {
  color: rgba(255, 255, 255, 0.9);
  font-size: var(--dp-font-size-lg);
  max-width: 800px;
  margin-bottom: 0;
}

.dp-about-mission {
  padding: var(--dp-space-xxl) 0;
  background-color: var(--dp-white);
}

.dp-about-mission .dp-section-container {
  display: flex;
  align-items: center;
  gap: var(--dp-space-xl);
}

.dp-about-content {
  flex: 1;
}

.dp-mission-text {
  font-size: var(--dp-font-size-lg);
  margin-bottom: var(--dp-space-lg);
}

.dp-mission-values {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--dp-space-lg);
  margin-top: var(--dp-space-xl);
}

.dp-value-item {
  text-align: center;
  padding: var(--dp-space-lg);
  background-color: var(--dp-bg-light);
  border-radius: var(--dp-radius-md);
  transition: transform var(--dp-transition-medium);
}

.dp-value-item:hover {
  transform: translateY(-5px);
}

.dp-value-icon {
  font-size: 2rem;
  color: var(--dp-secondary);
  margin-bottom: var(--dp-space-md);
}

.dp-value-title {
  margin-bottom: var(--dp-space-sm);
  color: var(--dp-primary);
}

.dp-value-text {
  margin-bottom: 0;
}

.dp-about-image {
  flex: 1;
}

.dp-about-methodology {
  background-color: var(--dp-bg-light);
  padding: var(--dp-space-xxl) 0;
}

.dp-methodology-blocks {
  margin-top: var(--dp-space-xl);
}

.dp-methodology-block {
  background-color: var(--dp-white);
  border-radius: var(--dp-radius-md);
  padding: var(--dp-space-lg);
  margin-bottom: var(--dp-space-lg);
  box-shadow: var(--dp-shadow-sm);
}

.dp-block-title {
  color: var(--dp-primary);
  margin-bottom: var(--dp-space-md);
  font-size: var(--dp-font-size-xl);
}

.dp-block-text {
  margin-bottom: var(--dp-space-md);
}

.dp-block-list {
  margin-bottom: var(--dp-space-md);
  padding-left: var(--dp-space-lg);
}

.dp-block-list li {
  margin-bottom: var(--dp-space-sm);
}

.dp-about-cases {
  padding: var(--dp-space-xxl) 0;
  background-color: var(--dp-white);
}

.dp-cases-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(450px, 1fr));
  gap: var(--dp-space-lg);
}

.dp-case-card {
  background-color: var(--dp-bg-light);
  border-radius: var(--dp-radius-md);
  overflow: hidden;
  box-shadow: var(--dp-shadow-sm);
}

.dp-case-header {
  background-color: var(--dp-primary);
  padding: var(--dp-space-md) var(--dp-space-lg);
  color: var(--dp-white);
}

.dp-case-title {
  margin-bottom: 0;
  color: var(--dp-white);
  font-size: var(--dp-font-size-lg);
}

.dp-case-body {
  padding: var(--dp-space-lg);
}

.dp-case-situation, .dp-case-solution, .dp-case-results {
  margin-bottom: var(--dp-space-md);
}

.dp-situation-title, .dp-solution-title, .dp-results-title {
  font-size: var(--dp-font-size-md);
  margin-bottom: var(--dp-space-xs);
  color: var(--dp-primary);
}

.dp-situation-text, .dp-solution-text {
  margin-bottom: 0;
}

.dp-results-list {
  margin-bottom: 0;
}

.dp-results-list li {
  margin-bottom: var(--dp-space-xs);
}

.dp-about-problems {
  background-color: var(--dp-bg-light);
  padding: var(--dp-space-xxl) 0;
}

.dp-problems-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
  gap: var(--dp-space-lg);
}

.dp-problem-item {
  background-color: var(--dp-white);
  border-radius: var(--dp-radius-md);
  padding: var(--dp-space-lg);
  box-shadow: var(--dp-shadow-sm);
}

.dp-problem-title {
  display: flex;
  align-items: center;
  margin-bottom: var(--dp-space-md);
  color: var(--dp-primary);
  font-size: var(--dp-font-size-lg);
}

.dp-problem-title i {
  color: var(--dp-secondary);
  margin-right: var(--dp-space-sm);
  font-size: 1.2em;
}

.dp-problem-content {
  margin-left: var(--dp-space-lg);
}

.dp-problem-description {
  margin-bottom: var(--dp-space-md);
}

.dp-problem-solution {
  background-color: rgba(52, 152, 219, 0.05);
  padding: var(--dp-space-md);
  border-left: 3px solid var(--dp-accent);
  border-radius: 0 var(--dp-radius-sm) var(--dp-radius-sm) 0;
}

.dp-solution-subtitle {
  font-size: var(--dp-font-size-md);
  margin-bottom: var(--dp-space-xs);
  color: var(--dp-accent);
}

.dp-solution-text {
  margin-bottom: 0;
}

.dp-about-audience {
  padding: var(--dp-space-xxl) 0;
  background-color: var(--dp-white);
}

.dp-audience-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--dp-space-lg);
  margin-bottom: var(--dp-space-xl);
}

.dp-audience-card {
  background-color: var(--dp-bg-light);
  border-radius: var(--dp-radius-md);
  padding: var(--dp-space-lg);
  box-shadow: var(--dp-shadow-sm);
  transition: transform var(--dp-transition-medium);
}

.dp-audience-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--dp-shadow-md);
}

.dp-audience-icon {
  width: 60px;
  height: 60px;
  background-color: var(--dp-primary);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--dp-space-md);
}

.dp-audience-icon i {
  color: var(--dp-white);
  font-size: var(--dp-font-size-xl);
}

.dp-audience-title {
  color: var(--dp-primary);
  margin-bottom: var(--dp-space-md);
  font-size: var(--dp-font-size-lg);
}

.dp-audience-list {
  margin-bottom: var(--dp-space-md);
  padding-left: var(--dp-space-lg);
}

.dp-audience-list li {
  margin-bottom: var(--dp-space-sm);
}

.dp-audience-effect {
  font-style: italic;
  color: var(--dp-text-light);
  margin-bottom: 0;
}

.dp-audience-cta {
  text-align: center;
  background-color: rgba(52, 152, 219, 0.05);
  padding: var(--dp-space-lg);
  border-radius: var(--dp-radius-md);
}

.dp-cta-text {
  font-size: var(--dp-font-size-lg);
  margin-bottom: var(--dp-space-lg);
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

/* ======================================================================
   21. Schedule Page
   ====================================================================== */
.dp-schedule-filters {
  padding-top: var(--dp-space-lg);
  padding-bottom: var(--dp-space-lg);
  background-color: var(--dp-white);
  border-bottom: 1px solid var(--dp-light-gray);
}

.dp-filter-container {
  max-width: 1000px;
  margin: 0 auto;
}

.dp-filter-title {
  font-size: var(--dp-font-size-lg);
  margin-bottom: var(--dp-space-md);
  color: var(--dp-primary);
  text-align: center;
}

.dp-filter-controls {
  display: flex;
  flex-wrap: wrap;
  gap: var(--dp-space-lg);
  justify-content: center;
}

.dp-filter-group {
  margin-bottom: var(--dp-space-md);
}

.dp-filter-group-title {
  font-size: var(--dp-font-size-md);
  margin-bottom: var(--dp-space-sm);
  color: var(--dp-text);
  text-align: center;
}

.dp-filter-options {
  display: flex;
  flex-wrap: wrap;
  gap: var(--dp-space-sm);
}

.dp-filter-btn {
  background-color: var(--dp-bg-light);
  border: 1px solid var(--dp-light-gray);
  padding: var(--dp-space-sm) var(--dp-space-md);
  border-radius: var(--dp-radius-md);
  cursor: pointer;
  transition: all var(--dp-transition-fast);
  font-size: var(--dp-font-size-sm);
}

.dp-filter-btn:hover, .dp-filter-btn:focus {
  background-color: rgba(52, 152, 219, 0.1);
  border-color: var(--dp-accent);
}

.dp-filter-btn.dp-active {
  background-color: var(--dp-primary);
  color: var(--dp-white);
  border-color: var(--dp-primary);
}

.dp-schedule-calendar {
  padding: var(--dp-space-xl) 0;
  background-color: var(--dp-bg-light);
}

.dp-calendar-container {
  max-width: 900px;
  margin: 0 auto;
  background-color: var(--dp-white);
  border-radius: var(--dp-radius-md);
  box-shadow: var(--dp-shadow-md);
  overflow: hidden;
}

.dp-calendar-header {
  background-color: var(--dp-primary);
  padding: var(--dp-space-md);
  color: var(--dp-white);
}

.dp-calendar-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.dp-calendar-month {
  font-size: var(--dp-font-size-lg);
  margin-bottom: 0;
  color: var(--dp-white);
}

.dp-calendar-btn {
  background: none;
  border: none;
  color: var(--dp-white);
  font-size: var(--dp-font-size-md);
  cursor: pointer;
  padding: var(--dp-space-sm);
  border-radius: var(--dp-radius-sm);
  transition: background-color var(--dp-transition-fast);
}

.dp-calendar-btn:hover, .dp-calendar-btn:focus {
  background-color: rgba(255, 255, 255, 0.1);
}

.dp-calendar-grid {
  padding: var(--dp-space-md);
}

.dp-calendar-weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  text-align: center;
  font-weight: 700;
  margin-bottom: var(--dp-space-sm);
}

.dp-weekday {
  padding: var(--dp-space-sm);
}

.dp-calendar-days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: var(--dp-space-sm);
}

.dp-day {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  border-radius: var(--dp-radius-sm);
  cursor: pointer;
  transition: background-color var(--dp-transition-fast);
  position: relative;
}

.dp-day.dp-other-month {
  color: var(--dp-text-lighter);
}

.dp-day.dp-weekend {
  background-color: rgba(0, 0, 0, 0.03);
}

.dp-day.dp-has-event::after {
  content: '';
  position: absolute;
  bottom: 5px;
  left: 50%;
  transform: translateX(-50%);
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background-color: var(--dp-secondary);
}

.dp-day:hover, .dp-day:focus {
  background-color: rgba(52, 152, 219, 0.1);
}

.dp-day.dp-active {
  background-color: var(--dp-primary);
  color: var(--dp-white);
}

.dp-calendar-legend {
  display: flex;
  justify-content: center;
  gap: var(--dp-space-lg);
  padding: var(--dp-space-md);
  border-top: 1px solid var(--dp-light-gray);
}

.dp-legend-item {
  display: flex;
  align-items: center;
  font-size: var(--dp-font-size-sm);
}

.dp-legend-color {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  margin-right: var(--dp-space-sm);
}

.dp-legend-color.dp-individual {
  background-color: var(--dp-accent);
}

.dp-legend-color.dp-group {
  background-color: var(--dp-secondary);
}

.dp-legend-color.dp-corporate {
  background-color: var(--dp-primary);
}

.dp-schedule-events {
  padding: var(--dp-space-xl) 0;
  background-color: var(--dp-white);
}

.dp-events-list {
  display: flex;
  flex-direction: column;
  gap: var(--dp-space-lg);
}

.dp-event-item {
  display: flex;
  background-color: var(--dp-bg-light);
  border-radius: var(--dp-radius-md);
  box-shadow: var(--dp-shadow-sm);
  overflow: hidden;
  transition: transform var(--dp-transition-medium), box-shadow var(--dp-transition-medium);
}

.dp-event-item:hover {
  transform: translateY(-5px);
  box-shadow: var(--dp-shadow-md);
}

.dp-event-date {
  background-color: var(--dp-primary);
  color: var(--dp-white);
  padding: var(--dp-space-lg);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 120px;
  text-align: center;
}

.dp-event-day {
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1;
  margin-bottom: var(--dp-space-xs);
}

.dp-event-month {
  font-size: var(--dp-font-size-md);
  text-transform: uppercase;
  margin-bottom: var(--dp-space-xs);
}

.dp-event-year {
  font-size: var(--dp-font-size-sm);
}

.dp-event-details {
  flex: 1;
  padding: var(--dp-space-lg);
}

.dp-event-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--dp-space-md);
  flex-wrap: wrap;
  gap: var(--dp-space-sm);
}

.dp-event-title {
  margin-bottom: 0;
  font-size: var(--dp-font-size-lg);
  color: var(--dp-primary);
}

.dp-event-tag {
  display: inline-block;
  padding: var(--dp-space-xs) var(--dp-space-sm);
  border-radius: var(--dp-radius-sm);
  font-size: var(--dp-font-size-xs);
  font-weight: 500;
  text-transform: uppercase;
}

.dp-tag-individual {
  background-color: rgba(52, 152, 219, 0.1);
  color: var(--dp-accent);
}

.dp-tag-group {
  background-color: rgba(230, 126, 34, 0.1);
  color: var(--dp-secondary);
}

.dp-tag-corporate {
  background-color: rgba(30, 58, 95, 0.1);
  color: var(--dp-primary);
}

.dp-event-info {
  margin-bottom: var(--dp-space-md);
}

.dp-event-description {
  margin-bottom: var(--dp-space-md);
}

.dp-event-meta {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: var(--dp-space-sm);
}

.dp-event-meta li {
  display: flex;
  align-items: center;
  color: var(--dp-text-light);
  font-size: var(--dp-font-size-sm);
}

.dp-event-meta i {
  margin-right: var(--dp-space-sm);
  color: var(--dp-secondary);
}

.dp-event-action {
  margin-top: var(--dp-space-md);
}

.dp-event-button {
  display: inline-block;
  background-color: var(--dp-primary);
  color: var(--dp-white);
  padding: var(--dp-space-sm) var(--dp-space-lg);
  border-radius: var(--dp-radius-md);
  font-weight: 500;
  text-align: center;
  text-decoration: none;
  transition: background-color var(--dp-transition-fast);
}

.dp-event-button:hover, .dp-event-button:focus {
  background-color: #17293f;
  color: var(--dp-white);
  text-decoration: none;
}

.dp-no-events-message {
  text-align: center;
  padding: var(--dp-space-xl);
  background-color: var(--dp-bg-light);
  border-radius: var(--dp-radius-md);
}

.dp-preparation {
  padding: var(--dp-space-xl) 0;
  background-color: var(--dp-bg-light);
}

.dp-preparation-content {
  display: flex;
  gap: var(--dp-space-xl);
  align-items: center;
  margin-bottom: var(--dp-space-xl);
}

.dp-preparation-text {
  flex: 3;
}

.dp-preparation-image {
  flex: 2;
}

.dp-preparation-intro {
  font-size: var(--dp-font-size-lg);
  margin-bottom: var(--dp-space-lg);
}

.dp-preparation-steps {
  margin-bottom: var(--dp-space-lg);
}

.dp-preparation-step {
  margin-bottom: var(--dp-space-lg);
}

.dp-step-title {
  display: flex;
  align-items: center;
  margin-bottom: var(--dp-space-sm);
  color: var(--dp-primary);
}

.dp-step-number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  background-color: var(--dp-primary);
  color: var(--dp-white);
  border-radius: 50%;
  margin-right: var(--dp-space-sm);
  font-size: var(--dp-font-size-sm);
  font-weight: 700;
}

.dp-step-text {
  margin-bottom: 0;
  padding-left: 38px;
}

.dp-prep-img {
  width: 100%;
  height: auto;
  border-radius: var(--dp-radius-lg);
  box-shadow: var(--dp-shadow-lg);
}

.dp-preparation-note {
  background-color: rgba(52, 152, 219, 0.05);
  padding: var(--dp-space-lg);
  border-left: 3px solid var(--dp-accent);
  border-radius: 0 var(--dp-radius-md) var(--dp-radius-md) 0;
}

.dp-schedule-cta {
  padding: var(--dp-space-xl) 0;
  background-color: var(--dp-white);
}

.dp-cta-box {
  background-color: var(--dp-primary);
  color: var(--dp-white);
  padding: var(--dp-space-xl);
  border-radius: var(--dp-radius-lg);
  text-align: center;
  max-width: 800px;
  margin: 0 auto;
}

.dp-cta-title {
  color: var(--dp-white);
  margin-bottom: var(--dp-space-md);
  font-size: var(--dp-font-size-xl);
}

.dp-cta-text {
  font-size: var(--dp-font-size-lg);
  margin-bottom: var(--dp-space-lg);
  color: rgba(255, 255, 255, 0.9);
}

/* ======================================================================
   22. Contact Page
   ====================================================================== */
.dp-contact-details {
  padding: var(--dp-space-xl) 0;
  background-color: var(--dp-white);
}

.dp-contact-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(450px, 1fr));
  gap: var(--dp-space-xl);
}

.dp-contact-info {
  padding-right: var(--dp-space-lg);
}

.dp-contact-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--dp-space-md);
  margin-bottom: var(--dp-space-xl);
}

.dp-contact-card {
  display: flex;
  align-items: flex-start;
  padding: var(--dp-space-lg);
  background-color: var(--dp-bg-light);
  border-radius: var(--dp-radius-md);
  box-shadow: var(--dp-shadow-sm);
}

.dp-contact-icon {
  width: 40px;
  height: 40px;
  background-color: var(--dp-primary);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: var(--dp-space-md);
  color: var(--dp-white);
  flex-shrink: 0;
}

.dp-contact-text {
  flex: 1;
}

.dp-contact-card-title {
  margin-bottom: var(--dp-space-sm);
  color: var(--dp-primary);
  font-size: var(--dp-font-size-md);
}

.dp-address {
  font-style: normal;
  margin-bottom: 0;
}

.dp-phone, .dp-email {
  margin-bottom: 0;
}

.dp-phone a, .dp-email a {
  color: var(--dp-text);
  transition: color var(--dp-transition-fast);
}

.dp-phone a:hover, .dp-phone a:focus, 
.dp-email a:hover, .dp-email a:focus {
  color: var(--dp-secondary);
  text-decoration: none;
}

.dp-hours {
  margin-bottom: 0;
}

.dp-contact-note {
  background-color: rgba(52, 152, 219, 0.05);
  padding: var(--dp-space-lg);
  border-radius: var(--dp-radius-md);
  margin-bottom: var(--dp-space-lg);
}

.dp-note-title {
  color: var(--dp-primary);
  margin-bottom: var(--dp-space-sm);
  font-size: var(--dp-font-size-lg);
}

.dp-note-text {
  margin-bottom: var(--dp-space-md);
}

.dp-note-text:last-child {
  margin-bottom: 0;
}

.dp-contact-map {
  margin-bottom: var(--dp-space-lg);
}

.dp-map-directions {
  margin-top: var(--dp-space-lg);
}

.dp-directions-title {
  color: var(--dp-primary);
  margin-bottom: var(--dp-space-md);
  font-size: var(--dp-font-size-lg);
}

.dp-directions-content {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--dp-space-lg);
}

.dp-direction-item {
  background-color: var(--dp-bg-light);
  padding: var(--dp-space-md);
  border-radius: var(--dp-radius-md);
}

.dp-direction-type {
  display: flex;
  align-items: center;
  margin-bottom: var(--dp-space-sm);
  color: var(--dp-primary);
  font-size: var(--dp-font-size-md);
}

.dp-direction-type i {
  margin-right: var(--dp-space-sm);
  color: var(--dp-secondary);
}

.dp-direction-text {
  margin-bottom: 0;
}

.dp-contact-instructions {
  padding: var(--dp-space-xl) 0;
  background-color: var(--dp-bg-light);
}

.dp-instructions-content {
  display: flex;
  gap: var(--dp-space-xl);
  align-items: center;
  margin-bottom: var(--dp-space-lg);
}

.dp-instructions-text {
  flex: 3;
}

.dp-instructions-image {
  flex: 2;
}

.dp-instructions-intro {
  font-size: var(--dp-font-size-lg);
  margin-bottom: var(--dp-space-lg);
}

.dp-steps-list {
  counter-reset: steps;
  list-style: none;
}

.dp-step-item {
  counter-increment: steps;
  margin-bottom: var(--dp-space-lg);
}

.dp-step-item .dp-step-title::before {
  content: counter(steps);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  background-color: var(--dp-primary);
  color: var(--dp-white);
  border-radius: 50%;
  margin-right: var(--dp-space-sm);
  font-size: var(--dp-font-size-sm);
  font-weight: 700;
}

.dp-instruction-img {
  width: 100%;
  height: auto;
  border-radius: var(--dp-radius-lg);
  box-shadow: var(--dp-shadow-lg);
}

.dp-instructions-note {
  background-color: rgba(52, 152, 219, 0.05);
  padding: var(--dp-space-lg);
  border-radius: var(--dp-radius-md);
  text-align: center;
}

.dp-contact-cta {
  padding: var(--dp-space-xl) 0;
  background-color: var(--dp-white);
}

/* ======================================================================
   23. Legal Pages
   ====================================================================== */
.dp-legal-header {
  padding: var(--dp-space-lg) 0;
}

.dp-legal-meta {
  margin-top: var(--dp-space-md);
  font-size: var(--dp-font-size-sm);
  color: rgba(255, 255, 255, 0.7);
}

.dp-legal-updated {
  margin-bottom: 0;
}

.dp-legal-content {
  padding: var(--dp-space-xl) 0;
  background-color: var(--dp-white);
}

.dp-legal-content .dp-section-container {
  display: flex;
  gap: var(--dp-space-xl);
}

.dp-legal-toc {
  flex: 0 0 250px;
  position: sticky;
  top: 100px;
  align-self: flex-start;
  background-color: var(--dp-bg-light);
  padding: var(--dp-space-lg);
  border-radius: var(--dp-radius-md);
  box-shadow: var(--dp-shadow-sm);
}

.dp-toc-title {
  font-size: var(--dp-font-size-lg);
  margin-bottom: var(--dp-space-md);
  color: var(--dp-primary);
}

.dp-toc-list {
  list-style-position: inside;
  padding-left: 0;
}

.dp-toc-list li {
  margin-bottom: var(--dp-space-sm);
}

.dp-toc-list a {
  color: var(--dp-text);
  text-decoration: none;
  transition: color var(--dp-transition-fast);
}

.dp-toc-list a:hover, .dp-toc-list a:focus {
  color: var(--dp-secondary);
  text-decoration: underline;
}

.dp-legal-sections {
  flex: 1;
}

.dp-legal-section {
  margin-bottom: var(--dp-space-xl);
  scroll-margin-top: 100px;
}

.dp-legal-title {
  font-size: var(--dp-font-size-xl);
  color: var(--dp-primary);
  margin-bottom: var(--dp-space-md);
  padding-bottom: var(--dp-space-sm);
  border-bottom: 1px solid var(--dp-light-gray);
}

.dp-legal-subtitle {
  font-size: var(--dp-font-size-lg);
  color: var(--dp-primary);
  margin-top: var(--dp-space-lg);
  margin-bottom: var(--dp-space-sm);
}

.dp-cookie-table {
  width: 100%;
  margin: var(--dp-space-md) 0;
  border-collapse: collapse;
}

.dp-cookie-table th, .dp-cookie-table td {
  padding: var(--dp-space-md);
  text-align: left;
  border-bottom: 1px solid var(--dp-light-gray);
}

.dp-cookie-table th {
  background-color: var(--dp-bg-light);
  font-weight: 700;
  color: var(--dp-primary);
}

.dp-cookie-table tr:nth-child(even) {
  background-color: var(--dp-bg-light);
}

.dp-cookie-settings-cta {
  margin: var(--dp-space-lg) 0;
  text-align: center;
}

.dp-cookie-settings-btn {
  display: inline-block;
  background-color: var(--dp-primary);
  color: var(--dp-white);
  padding: var(--dp-space-sm) var(--dp-space-lg);
  border-radius: var(--dp-radius-md);
  font-weight: 500;
  text-align: center;
  text-decoration: none;
  transition: background-color var(--dp-transition-fast);
  border: none;
  cursor: pointer;
}

.dp-cookie-settings-btn:hover, .dp-cookie-settings-btn:focus {
  background-color: #17293f;
}

/* ======================================================================
   24. Utility Classes
   ====================================================================== */
.dp-text-center {
  text-align: center;
}

.dp-text-left {
  text-align: left;
}

.dp-text-right {
  text-align: right;
}

.dp-mb-0 {
  margin-bottom: 0;
}

.dp-mb-sm {
  margin-bottom: var(--dp-space-sm);
}

.dp-mb-md {
  margin-bottom: var(--dp-space-md);
}

.dp-mb-lg {
  margin-bottom: var(--dp-space-lg);
}

.dp-mb-xl {
  margin-bottom: var(--dp-space-xl);
}

.dp-mt-0 {
  margin-top: 0;
}

.dp-mt-sm {
  margin-top: var(--dp-space-sm);
}

.dp-mt-md {
  margin-top: var(--dp-space-md);
}

.dp-mt-lg {
  margin-top: var(--dp-space-lg);
}

.dp-mt-xl {
  margin-top: var(--dp-space-xl);
}

.dp-p-0 {
  padding: 0;
}

.dp-p-sm {
  padding: var(--dp-space-sm);
}

.dp-p-md {
  padding: var(--dp-space-md);
}

.dp-p-lg {
  padding: var(--dp-space-lg);
}

.dp-p-xl {
  padding: var(--dp-space-xl);
}

.dp-bg-primary {
  background-color: var(--dp-primary);
  color: var(--dp-white);
}

.dp-bg-secondary {
  background-color: var(--dp-secondary);
  color: var(--dp-white);
}

.dp-bg-accent {
  background-color: var(--dp-accent);
  color: var(--dp-white);
}

.dp-bg-light {
  background-color: var(--dp-bg-light);
}

.dp-bg-white {
  background-color: var(--dp-white);
}

.dp-text-primary {
  color: var(--dp-primary);
}

.dp-text-secondary {
  color: var(--dp-secondary);
}

.dp-text-accent {
  color: var(--dp-accent);
}

.dp-text-light {
  color: var(--dp-text-light);
}

.dp-text-lighter {
  color: var(--dp-text-lighter);
}

.dp-text-white {
  color: var(--dp-white);
}

.dp-fw-light {
  font-weight: 300;
}

.dp-fw-normal {
  font-weight: 400;
}

.dp-fw-medium {
  font-weight: 500;
}

.dp-fw-bold {
  font-weight: 700;
}

.dp-font-primary {
  font-family: var(--dp-font-primary);
}

.dp-font-secondary {
  font-family: var(--dp-font-secondary);
}

.dp-fs-xs {
  font-size: var(--dp-font-size-xs);
}

.dp-fs-sm {
  font-size: var(--dp-font-size-sm);
}

.dp-fs-md {
  font-size: var(--dp-font-size-md);
}

.dp-fs-lg {
  font-size: var(--dp-font-size-lg);
}

.dp-fs-xl {
  font-size: var(--dp-font-size-xl);
}

.dp-fs-xxl {
  font-size: var(--dp-font-size-xxl);
}

.dp-fs-xxxl {
  font-size: var(--dp-font-size-xxxl);
}

.dp-shadow-sm {
  box-shadow: var(--dp-shadow-sm);
}

.dp-shadow-md {
  box-shadow: var(--dp-shadow-md);
}

.dp-shadow-lg {
  box-shadow: var(--dp-shadow-lg);
}

.dp-rounded-sm {
  border-radius: var(--dp-radius-sm);
}

.dp-rounded-md {
  border-radius: var(--dp-radius-md);
}

.dp-rounded-lg {
  border-radius: var(--dp-radius-lg);
}

.dp-hidden {
  display: none;
}

.dp-visible {
  display: block;
}

/* ======================================================================
   25. Media Queries
   ====================================================================== */
@media (max-width: 1200px) {
  :root {
    --dp-font-size-xxxl: 2.25rem;
    --dp-font-size-xxl: 1.75rem;
    --dp-font-size-xl: 1.375rem;
  }
  
  .dp-hero-container {
    flex-direction: column;
  }
  
  .dp-hero-image {
    max-width: 100%;
    margin-top: var(--dp-space-lg);
  }
  
  .dp-about-preview .dp-section-container {
    flex-direction: column;
  }
  
  .dp-about-preview-image {
    margin-top: var(--dp-space-lg);
  }
  
  .dp-about-mission .dp-section-container {
    flex-direction: column;
  }
  
  .dp-about-image {
    margin-top: var(--dp-space-lg);
  }
  
  .dp-cases-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 992px) {
  .dp-main-navigation {
    margin-left: 0;
  }
  
  .dp-menu-toggle {
    display: block;
  }
  
  .dp-nav-list {
    position: fixed;
    top: 0;
    left: 0;
    width: 80%;
    max-width: 300px;
    height: 100%;
    background-color: var(--dp-white);
    box-shadow: var(--dp-shadow-lg);
    flex-direction: column;
    padding: var(--dp-space-xl) var(--dp-space-lg);
    transform: translateX(-100%);
    transition: transform var(--dp-transition-medium);
    z-index: var(--dp-z-above);
    overflow-y: auto;
  }
  
  .dp-menu-toggle[aria-expanded="true"] + .dp-nav-list {
    transform: translateX(0);
  }
  
  .dp-nav-item {
    margin-right: 0;
    margin-bottom: var(--dp-space-md);
  }
  
  .dp-nav-legal {
    display: block;
    margin-top: var(--dp-space-lg);
    padding-top: var(--dp-space-lg);
    border-top: 1px solid var(--dp-light-gray);
  }
  
  .dp-contact-form-section {
    padding: var(--dp-space-lg) 0;
  }
  
  .dp-contact-grid {
    grid-template-columns: 1fr;
  }
  
  .dp-contact-info {
    padding-right: 0;
  }
  
  .dp-preparation-content, .dp-instructions-content {
    flex-direction: column;
  }
  
  .dp-preparation-image, .dp-instructions-image {
    margin-top: var(--dp-space-lg);
  }
  
  .dp-legal-content .dp-section-container {
    flex-direction: column;
  }
  
  .dp-legal-toc {
    position: static;
    margin-bottom: var(--dp-space-lg);
  }
}

@media (max-width: 768px) {
  :root {
    --dp-font-size-xxxl: 2rem;
    --dp-font-size-xxl: 1.5rem;
    --dp-font-size-xl: 1.25rem;
    --dp-font-size-lg: 1.125rem;
  }
  
  .dp-header-container {
    padding: 0 var(--dp-space-md);
  }
  
  .dp-section-container {
    padding: 0 var(--dp-space-md);
  }
  
  .dp-problem-grid, .dp-services-grid, .dp-packages-grid, .dp-methodology-grid {
    grid-template-columns: 1fr;
  }
  
  .dp-metrics-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  
  .dp-event-item {
    flex-direction: column;
  }
  
  .dp-event-date {
    padding: var(--dp-space-md);
    flex-direction: row;
    justify-content: center;
    align-items: center;
    min-width: auto;
  }
  
  .dp-event-day, .dp-event-month, .dp-event-year {
    margin-bottom: 0;
    margin-right: var(--dp-space-xs);
  }
  
  .dp-event-meta {
    grid-template-columns: 1fr;
  }
  
  .dp-faq-grid {
    grid-template-columns: 1fr;
  }
  
  .dp-footer-main {
    grid-template-columns: 1fr;
  }
  
  .dp-footer-bottom {
    flex-direction: column;
    text-align: center;
  }
  
  .dp-cookie-actions {
    flex-direction: column;
  }
  
  .dp-cookie-btn {
    width: 100%;
  }
}

@media (max-width: 576px) {
  :root {
    --dp-font-size-xxxl: 1.75rem;
    --dp-font-size-xxl: 1.375rem;
    --dp-font-size-xl: 1.25rem;
    --dp-space-xxl: 2rem;
    --dp-space-xl: 1.5rem;
    --dp-space-lg: 1.25rem;
  }
  
  .dp-logo {
    height: 40px;
  }
  
  .dp-header-cta {
    margin-left: var(--dp-space-sm);
  }
  
  .dp-cta-button {
    padding: var(--dp-space-xs) var(--dp-space-md);
    font-size: var(--dp-font-size-sm);
  }
  
  .dp-metrics-grid {
    grid-template-columns: 1fr;
  }
  
  .dp-contact-cards {
    grid-template-columns: 1fr;
  }
  
  .dp-audience-grid {
    grid-template-columns: 1fr;
  }
}

/* ======================================================================
   26. Animations and Transitions
   ====================================================================== */
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes slideInUp {
  from {
    transform: translateY(20px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes pulse {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.05);
  }
  100% {
    transform: scale(1);
  }
}

.dp-animate-fade {
  animation: fadeIn 0.6s ease forwards;
}

.dp-animate-slide-up {
  animation: slideInUp 0.6s ease forwards;
}

.dp-animate-pulse {
  animation: pulse 2s infinite;
}

/* ======================================================================
   27. Print Styles
   ====================================================================== */
@media print {
  body {
    font-size: 12pt;
    color: #000;
    background: #fff;
  }
  
  .dp-site-header, .dp-site-footer, .dp-cookie-consent, .dp-modal, 
  .dp-contact-form-section, .dp-hero-cta, .dp-metrics, .dp-map-container {
    display: none !important;
  }
  
  .dp-section-container {
    width: 100%;
    max-width: 100%;
    padding: 0;
    margin: 0;
  }
  
  a {
    color: #000;
    text-decoration: underline;
  }
  
  a[href]::after {
    content: " (" attr(href) ")";
    font-size: 90%;
  }
  
  a[href^="#"]::after, a[href^="javascript:"]::after {
    content: "";
  }
  
  h1, h2, h3, h4, h5, h6 {
    page-break-after: avoid;
    page-break-inside: avoid;
  }
  
  img {
    max-width: 100% !important;
    page-break-inside: avoid;
  }
  
  p, h2, h3 {
    orphans: 3;
    widows: 3;
  }
  
  .dp-page-break-before {
    page-break-before: always;
  }
  
  .dp-page-break-after {
    page-break-after: always;
  }
  
  .dp-no-print {
    display: none !important;
  }
}