@charset "UTF-8";

/*--------------------------------------------------------------
# Root Variables and Custom Properties
--------------------------------------------------------------*/
:root {
  
  --ap-primary: #2A3F54;
  --ap-secondary: #1ABC9C;
  --ap-accent: #F39C12;
  
  
  --ap-glass-base: rgba(255, 255, 255, 0.15);
  --ap-glass-border: rgba(255, 255, 255, 0.2);
  --ap-glass-shadow: rgba(0, 0, 0, 0.1);
  
  
  --ap-gradient-start: #6a11cb;
  --ap-gradient-end: #2575fc;
  
  
  --ap-text-primary: #333333;
  --ap-text-secondary: #777777;
  --ap-text-light: #ffffff;
  
  
  --ap-background-light: #f8f9fa;
  --ap-background-dark: #1a1a2e;
  
  
  --ap-spacing-xs: 0.5rem;
  --ap-spacing-sm: 1rem;
  --ap-spacing-md: 1.5rem;
  --ap-spacing-lg: 2.5rem;
  --ap-spacing-xl: 4rem;
  
  
  --ap-border-radius-sm: 0.25rem;
  --ap-border-radius-md: 0.5rem;
  --ap-border-radius-lg: 1rem;
  --ap-border-radius-xl: 2rem;
  
  
  --ap-transition-fast: 0.2s ease;
  --ap-transition-normal: 0.3s ease;
  --ap-transition-slow: 0.5s ease;
  
  
  --ap-z-index-dropdown: 100;
  --ap-z-index-sticky: 200;
  --ap-z-index-fixed: 300;
  --ap-z-index-modal: 400;
  --ap-z-index-popover: 500;
  --ap-z-index-tooltip: 600;
  
  
  --ap-supports-backdrop-filter: 1;
  
  
  --ap-wrapper-width: 1280px;
  --ap-header-height: 4.5rem;
  --ap-header-top-height: 2.5rem;
}

@supports not (backdrop-filter: blur(10px)) {
  :root {
    --ap-supports-backdrop-filter: 0;
  }
}

/*--------------------------------------------------------------
# Reset & Base Styles
--------------------------------------------------------------*/
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
}

body {
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  line-height: 1.6;
  color: var(--ap-text-primary);
  background-color: var(--ap-background-light);
  overflow-x: hidden;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

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

a {
  color: var(--ap-secondary);
  text-decoration: none;
  transition: color var(--ap-transition-fast);
}

a:hover {
  color: var(--ap-primary);
}

ul, ol {
  list-style: none;
}

button, input, select, textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
}

button {
  cursor: pointer;
  border: none;
  background: transparent;
}

main {
  flex: 1 0 auto;
  position: relative;
  z-index: 1;
}

/*--------------------------------------------------------------
# Typography
--------------------------------------------------------------*/
h1, h2, h3, h4, h5, h6 {
  margin: 0 0 var(--ap-spacing-sm);
  font-weight: 700;
  line-height: 1.3;
  color: var(--ap-primary);
}

h1 {
  font-size: 2.5rem;
  margin-bottom: var(--ap-spacing-md);
}

h2 {
  font-size: 2rem;
  margin-bottom: var(--ap-spacing-md);
}

h3 {
  font-size: 1.5rem;
  margin-bottom: var(--ap-spacing-sm);
}

h4 {
  font-size: 1.25rem;
  margin-bottom: var(--ap-spacing-xs);
}

h5 {
  font-size: 1.1rem;
  margin-bottom: var(--ap-spacing-xs);
}

h6 {
  font-size: 1rem;
  margin-bottom: var(--ap-spacing-xs);
}

p {
  margin-bottom: var(--ap-spacing-md);
}

p:last-child {
  margin-bottom: 0;
}

/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/
.ap-wrapper {
  width: 100%;
  max-width: var(--ap-wrapper-width);
  margin: 0 auto;
  padding: 0 var(--ap-spacing-md);
}

@media (max-width: 768px) {
  .ap-wrapper {
    padding: 0 var(--ap-spacing-sm);
  }
}

.ap-glass-card {
  background: var(--ap-glass-base);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-radius: var(--ap-border-radius-lg);
  border: 1px solid var(--ap-glass-border);
  box-shadow: 0 8px 32px 0 var(--ap-glass-shadow);
  padding: var(--ap-spacing-lg);
  transition: transform var(--ap-transition-normal), box-shadow var(--ap-transition-normal);
  overflow: hidden;
  position: relative;
}

.ap-glass-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 40px 0 rgba(0, 0, 0, 0.15);
}

@supports ((-webkit-backdrop-filter: blur(10px)) or (backdrop-filter: blur(10px))) {
  .ap-glass-card {
    background: var(--ap-glass-base);
  }
}

@supports not ((-webkit-backdrop-filter: blur(10px)) or (backdrop-filter: blur(10px))) {
  .ap-glass-card {
    background: rgba(255, 255, 255, 0.9);
  }
}

.ap-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1.5rem;
  font-weight: 600;
  font-size: 1rem;
  text-align: center;
  text-decoration: none;
  border-radius: var(--ap-border-radius-md);
  transition: all var(--ap-transition-fast);
  cursor: pointer;
  border: 2px solid transparent;
  white-space: nowrap;
}

.ap-button--primary {
  background: var(--ap-primary);
  color: var(--ap-text-light);
}

.ap-button--primary:hover {
  background: #3a5371;
  color: var(--ap-text-light);
}

.ap-button--secondary {
  background: var(--ap-secondary);
  color: var(--ap-text-light);
}

.ap-button--secondary:hover {
  background: #16a085;
  color: var(--ap-text-light);
}

.ap-button--outline {
  background: transparent;
  color: var(--ap-primary);
  border-color: var(--ap-primary);
}

.ap-button--outline:hover {
  background: var(--ap-primary);
  color: var(--ap-text-light);
}

.ap-button--full {
  width: 100%;
}

.ap-list {
  list-style: none;
  margin-bottom: var(--ap-spacing-md);
}

.ap-list li {
  display: flex;
  align-items: flex-start;
  margin-bottom: var(--ap-spacing-sm);
  line-height: 1.5;
}

.ap-list li i {
  color: var(--ap-secondary);
  margin-right: var(--ap-spacing-xs);
  margin-top: 0.25rem;
  flex-shrink: 0;
}

.ap-list--compact li {
  margin-bottom: var(--ap-spacing-xs);
  font-size: 0.95rem;
}

/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/
.ap-header {
  position: sticky;
  top: 0;
  left: 0;
  width: 100%;
  z-index: var(--ap-z-index-sticky);
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  transition: transform var(--ap-transition-normal);
}

.ap-header__top {
  background-color: var(--ap-primary);
  color: var(--ap-text-light);
  height: var(--ap-header-top-height);
  display: flex;
  align-items: center;
}

.ap-header__contact {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
  font-size: 0.875rem;
}

.ap-header__phone,
.ap-header__address {
  display: flex;
  align-items: center;
  margin-left: var(--ap-spacing-md);
  color: var(--ap-text-light);
}

.ap-header__phone i,
.ap-header__address i {
  margin-right: var(--ap-spacing-xs);
  font-size: 0.9rem;
}

.ap-header__phone:hover {
  color: var(--ap-secondary);
}

.ap-header__main {
  height: var(--ap-header-height);
  display: flex;
  align-items: center;
}

.ap-header__main .ap-wrapper {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.ap-logo {
  display: block;
  width: 180px;
  height: 48px;
}

.ap-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.ap-nav {
  display: flex;
  align-items: center;
}

.ap-nav__toggle {
  display: none;
  flex-direction: column;
  width: 30px;
  height: 21px;
  justify-content: space-between;
  cursor: pointer;
  z-index: 20;
}

.ap-nav__toggle span {
  width: 100%;
  height: 3px;
  background-color: var(--ap-primary);
  border-radius: 10px;
  transition: all var(--ap-transition-fast);
}

.ap-nav__list {
  display: flex;
  align-items: center;
}

.ap-nav__item {
  margin-left: var(--ap-spacing-md);
  position: relative;
}

.ap-nav__item a {
  color: var(--ap-primary);
  font-weight: 600;
  padding: 0.5rem 0;
  display: inline-block;
  position: relative;
}

.ap-nav__item a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 2px;
  background-color: var(--ap-secondary);
  transition: width var(--ap-transition-fast);
}

.ap-nav__item a:hover::after,
.ap-nav__item--active a::after {
  width: 100%;
}

.ap-nav__item--active a {
  color: var(--ap-secondary);
}

@media (max-width: 992px) {
  .ap-header__top {
    display: none;
  }
  
  .ap-nav__toggle {
    display: flex;
  }
  
  .ap-nav__list {
    position: fixed;
    top: 0;
    right: -100%;
    width: 70%;
    max-width: 300px;
    height: 100vh;
    background-color: var(--ap-background-light);
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: var(--ap-spacing-xl) var(--ap-spacing-md);
    transition: right var(--ap-transition-normal);
    box-shadow: -5px 0 15px rgba(0, 0, 0, 0.1);
    z-index: 10;
  }
  
  .ap-nav.active .ap-nav__list {
    right: 0;
  }
  
  .ap-nav.active .ap-nav__toggle span:nth-child(1) {
    transform: translateY(9px) rotate(45deg);
  }
  
  .ap-nav.active .ap-nav__toggle span:nth-child(2) {
    opacity: 0;
  }
  
  .ap-nav.active .ap-nav__toggle span:nth-child(3) {
    transform: translateY(-9px) rotate(-45deg);
  }
  
  .ap-nav__item {
    margin: var(--ap-spacing-sm) 0;
    width: 100%;
  }
  
  .ap-nav__item a {
    display: block;
    width: 100%;
    padding: var(--ap-spacing-xs) 0;
  }
  
  .ap-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 5;
    opacity: 0;
    visibility: hidden;
    transition: all var(--ap-transition-normal);
  }
  
  .ap-overlay.active {
    opacity: 1;
    visibility: visible;
  }
}

/*--------------------------------------------------------------
# Hero Section
--------------------------------------------------------------*/
.ap-hero {
  position: relative;
  padding: var(--ap-spacing-xl) 0;
  overflow: hidden;
  min-height: calc(100vh - var(--ap-header-height) - var(--ap-header-top-height));
  display: flex;
  align-items: center;
}

.ap-hero__background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
}

.ap-hero__bg-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.ap-hero .ap-wrapper {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.ap-hero__content {
  max-width: 600px;
  padding: var(--ap-spacing-lg);
  background: rgba(255, 255, 255, 0.9);
  border-radius: var(--ap-border-radius-lg);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.ap-hero__title {
  font-size: 3rem;
  margin-bottom: var(--ap-spacing-md);
  background: linear-gradient(to right, var(--ap-primary), var(--ap-secondary));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.ap-hero__subtitle {
  font-size: 1.25rem;
  margin-bottom: var(--ap-spacing-lg);
  color: var(--ap-text-secondary);
}

.ap-hero__visual {
  position: relative;
  flex: 0 0 40%;
  margin-left: var(--ap-spacing-lg);
}

@media (max-width: 992px) {
  .ap-hero .ap-wrapper {
    flex-direction: column;
  }
  
  .ap-hero__content {
    max-width: 100%;
    margin-bottom: var(--ap-spacing-lg);
  }
  
  .ap-hero__visual {
    margin-left: 0;
    width: 100%;
  }
  
  .ap-hero__title {
    font-size: 2.5rem;
  }
}

@media (max-width: 768px) {
  .ap-hero {
    padding: var(--ap-spacing-lg) 0;
  }
  
  .ap-hero__title {
    font-size: 2rem;
  }
  
  .ap-hero__subtitle {
    font-size: 1.1rem;
  }
}

/*--------------------------------------------------------------
# Stats
--------------------------------------------------------------*/
.ap-stat {
  text-align: center;
  margin-bottom: var(--ap-spacing-md);
}

.ap-stat:last-child {
  margin-bottom: 0;
}

.ap-stat__value {
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--ap-primary);
  margin-bottom: var(--ap-spacing-xs);
  background: linear-gradient(to right, var(--ap-primary), var(--ap-secondary));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.ap-stat__label {
  font-size: 1rem;
  color: var(--ap-text-secondary);
}

/*--------------------------------------------------------------
# Section Header
--------------------------------------------------------------*/
.ap-section-header {
  text-align: center;
  margin-bottom: var(--ap-spacing-lg);
}

.ap-section-header__title {
  position: relative;
  display: inline-block;
  margin-bottom: var(--ap-spacing-sm);
  padding-bottom: var(--ap-spacing-sm);
}

.ap-section-header__title::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 3px;
  background: linear-gradient(to right, var(--ap-primary), var(--ap-secondary));
  border-radius: 3px;
}

.ap-section-header__subtitle {
  color: var(--ap-text-secondary);
  max-width: 700px;
  margin: 0 auto;
}

/*--------------------------------------------------------------
# Services Section
--------------------------------------------------------------*/
.ap-services {
  padding: var(--ap-spacing-xl) 0;
  position: relative;
}

.ap-services__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--ap-spacing-md);
}

.ap-services__item {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.ap-glass-card__icon {
  width: 60px;
  height: 60px;
  background: linear-gradient(135deg, var(--ap-primary), var(--ap-secondary));
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--ap-spacing-md);
  color: white;
  font-size: 1.5rem;
}

.ap-glass-card__title {
  margin-bottom: var(--ap-spacing-sm);
  font-size: 1.3rem;
}

.ap-glass-card__text {
  margin-bottom: var(--ap-spacing-md);
  color: var(--ap-text-secondary);
}

.ap-glass-card__image {
  width: 100%;
  height: 200px;
  object-fit: cover;
  border-radius: var(--ap-border-radius-md);
  margin-top: auto;
}

@media (max-width: 768px) {
  .ap-services__grid {
    grid-template-columns: 1fr;
  }
}

/*--------------------------------------------------------------
# Advantages Section
--------------------------------------------------------------*/
.ap-advantages {
  padding: var(--ap-spacing-xl) 0;
  background: linear-gradient(135deg, rgba(42, 63, 84, 0.05), rgba(26, 188, 156, 0.05));
}

.ap-advantages__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--ap-spacing-md);
}

.ap-advantages__item {
  text-align: center;
  padding: var(--ap-spacing-md);
}

.ap-advantages__value {
  font-size: 2.5rem;
  font-weight: 700;
  margin-bottom: var(--ap-spacing-xs);
  background: linear-gradient(to right, var(--ap-primary), var(--ap-secondary));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.ap-advantages__label {
  color: var(--ap-text-secondary);
  font-weight: 500;
}

@media (max-width: 992px) {
  .ap-advantages__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 768px) {
  .ap-advantages__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 576px) {
  .ap-advantages__grid {
    grid-template-columns: 1fr;
  }
}

/*--------------------------------------------------------------
# Process Section
--------------------------------------------------------------*/
.ap-process {
  padding: var(--ap-spacing-xl) 0;
}

.ap-process__flow {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  position: relative;
}

.ap-process__step {
  flex: 0 0 calc(25% - var(--ap-spacing-lg));
  position: relative;
  z-index: 1;
}

.ap-process__connector {
  flex: 0 0 calc(var(--ap-spacing-lg) / 2);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ap-secondary);
  font-size: 1.5rem;
}

.ap-process__number {
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--ap-primary);
  margin-bottom: var(--ap-spacing-sm);
  opacity: 0.2;
}

.ap-process__title {
  margin-bottom: var(--ap-spacing-sm);
  font-size: 1.25rem;
}

.ap-process__text {
  color: var(--ap-text-secondary);
  font-size: 0.95rem;
}

@media (max-width: 1200px) {
  .ap-process__flow {
    flex-direction: column;
  }
  
  .ap-process__step {
    flex: 0 0 100%;
    margin-bottom: var(--ap-spacing-md);
  }
  
  .ap-process__connector {
    flex: 0 0 100%;
    height: 40px;
    transform: rotate(90deg);
    margin-bottom: var(--ap-spacing-md);
  }
}

/*--------------------------------------------------------------
# Cases Section
--------------------------------------------------------------*/
.ap-cases {
  padding: var(--ap-spacing-xl) 0;
  background: linear-gradient(135deg, rgba(42, 63, 84, 0.05), rgba(26, 188, 156, 0.05));
}

.ap-cases__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: var(--ap-spacing-md);
}

.ap-cases__item {
  height: 100%;
}

.ap-cases__industry {
  background: linear-gradient(to right, var(--ap-primary), var(--ap-secondary));
  color: white;
  display: inline-block;
  padding: 0.25rem 1rem;
  border-radius: var(--ap-border-radius-sm);
  font-weight: 600;
  margin-bottom: var(--ap-spacing-md);
}

.ap-cases__challenge,
.ap-cases__solution,
.ap-cases__result {
  margin-bottom: var(--ap-spacing-md);
}

.ap-cases__challenge h3,
.ap-cases__solution h3,
.ap-cases__result h3 {
  font-size: 1.1rem;
  margin-bottom: var(--ap-spacing-xs);
  color: var(--ap-primary);
}

.ap-cases__challenge p,
.ap-cases__solution p,
.ap-cases__result p {
  color: var(--ap-text-secondary);
  font-size: 0.95rem;
  margin-bottom: 0;
}

.ap-cases__result h3 {
  color: var(--ap-secondary);
}

@media (max-width: 992px) {
  .ap-cases__grid {
    grid-template-columns: 1fr;
  }
}

/*--------------------------------------------------------------
# Contact Section
--------------------------------------------------------------*/
.ap-contact {
  padding: var(--ap-spacing-xl) 0;
}

.ap-contact__content {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: var(--ap-spacing-lg);
}

.ap-contact__form-container {
  padding: var(--ap-spacing-lg);
}

.ap-contact__info {
  padding: var(--ap-spacing-lg);
}

.ap-contact__form {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--ap-spacing-md);
}

.ap-form-group {
  margin-bottom: var(--ap-spacing-sm);
}

.ap-form-group:nth-child(1),
.ap-form-group:nth-child(2),
.ap-form-group:nth-child(5),
.ap-form-group:nth-child(6),
.ap-form-group--checkbox {
  grid-column: span 2;
}

.ap-form-group label {
  display: block;
  margin-bottom: var(--ap-spacing-xs);
  font-weight: 500;
  color: var(--ap-primary);
}

.ap-form-group input,
.ap-form-group textarea {
  width: 100%;
  padding: 0.75rem;
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: var(--ap-border-radius-sm);
  background-color: rgba(255, 255, 255, 0.9);
  transition: all var(--ap-transition-fast);
}

.ap-form-group input:focus,
.ap-form-group textarea:focus {
  outline: none;
  border-color: var(--ap-secondary);
  box-shadow: 0 0 0 3px rgba(26, 188, 156, 0.2);
}

.ap-form-group--checkbox {
  display: flex;
  align-items: flex-start;
  margin-top: var(--ap-spacing-sm);
}

.ap-form-group--checkbox input {
  width: auto;
  margin-right: var(--ap-spacing-xs);
  margin-top: 0.3rem;
}

.ap-form-group--checkbox label {
  margin-bottom: 0;
  font-size: 0.9rem;
}

.ap-contact__info-item {
  display: flex;
  margin-bottom: var(--ap-spacing-md);
}

.ap-contact__info-item i {
  width: 40px;
  height: 40px;
  background: linear-gradient(135deg, var(--ap-primary), var(--ap-secondary));
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  margin-right: var(--ap-spacing-md);
  flex-shrink: 0;
}

.ap-contact__info-item h3 {
  font-size: 1.1rem;
  margin-bottom: var(--ap-spacing-xs);
}

.ap-contact__info-item p {
  margin-bottom: 0;
  color: var(--ap-text-secondary);
}

@media (max-width: 992px) {
  .ap-contact__content {
    grid-template-columns: 1fr;
  }
  
  .ap-contact__form {
    grid-template-columns: 1fr;
  }
  
  .ap-form-group:nth-child(1),
  .ap-form-group:nth-child(2),
  .ap-form-group:nth-child(3),
  .ap-form-group:nth-child(4),
  .ap-form-group:nth-child(5),
  .ap-form-group:nth-child(6) {
    grid-column: span 1;
  }
}

/*--------------------------------------------------------------
# FAQ Section
--------------------------------------------------------------*/
.ap-faq {
  padding: var(--ap-spacing-xl) 0;
  background: linear-gradient(135deg, rgba(42, 63, 84, 0.05), rgba(26, 188, 156, 0.05));
}

.ap-faq__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: var(--ap-spacing-md);
}

.ap-faq__item {
  height: 100%;
}

.ap-faq__question {
  font-size: 1.2rem;
  margin-bottom: var(--ap-spacing-sm);
  color: var(--ap-primary);
}

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

@media (max-width: 992px) {
  .ap-faq__grid {
    grid-template-columns: 1fr;
  }
}

/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/
.ap-footer {
  background-color: var(--ap-primary);
  color: var(--ap-text-light);
  padding: var(--ap-spacing-lg) 0 var(--ap-spacing-md);
}

.ap-footer__main {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-bottom: var(--ap-spacing-lg);
}

.ap-footer__company {
  flex: 0 0 30%;
}

.ap-footer__logo {
  display: block;
  margin-bottom: var(--ap-spacing-md);
}

.ap-footer__tagline {
  font-size: 0.95rem;
  opacity: 0.8;
}

.ap-footer__nav {
  flex: 0 0 65%;
  display: flex;
  justify-content: space-between;
}

.ap-footer__nav-column {
  flex: 0 0 30%;
}

.ap-footer__nav-title {
  color: var(--ap-text-light);
  font-size: 1.1rem;
  margin-bottom: var(--ap-spacing-md);
  position: relative;
  padding-bottom: var(--ap-spacing-xs);
}

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

.ap-footer__nav-list li,
.ap-footer__contact-list li {
  margin-bottom: var(--ap-spacing-xs);
}

.ap-footer__nav-list a {
  color: var(--ap-text-light);
  opacity: 0.8;
  transition: all var(--ap-transition-fast);
}

.ap-footer__nav-list a:hover {
  opacity: 1;
  color: var(--ap-secondary);
}

.ap-footer__contact-list li {
  display: flex;
  align-items: flex-start;
}

.ap-footer__contact-list i {
  margin-right: var(--ap-spacing-xs);
  color: var(--ap-secondary);
  margin-top: 0.3rem;
}

.ap-footer__contact-list a {
  color: var(--ap-text-light);
  opacity: 0.8;
  transition: all var(--ap-transition-fast);
}

.ap-footer__contact-list a:hover {
  opacity: 1;
  color: var(--ap-secondary);
}

.ap-footer__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: var(--ap-spacing-md);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.ap-footer__copyright {
  font-size: 0.9rem;
  opacity: 0.7;
  margin-bottom: 0;
}

.ap-footer__legal {
  display: flex;
  align-items: center;
}

.ap-footer__cookie-button {
  color: var(--ap-text-light);
  opacity: 0.7;
  font-size: 0.9rem;
  text-decoration: underline;
  transition: all var(--ap-transition-fast);
}

.ap-footer__cookie-button:hover {
  opacity: 1;
  color: var(--ap-secondary);
}

@media (max-width: 992px) {
  .ap-footer__main {
    flex-direction: column;
  }
  
  .ap-footer__company {
    flex: 0 0 100%;
    margin-bottom: var(--ap-spacing-lg);
  }
  
  .ap-footer__nav {
    flex: 0 0 100%;
  }
}

@media (max-width: 768px) {
  .ap-footer__nav {
    flex-direction: column;
  }
  
  .ap-footer__nav-column {
    flex: 0 0 100%;
    margin-bottom: var(--ap-spacing-md);
  }
  
  .ap-footer__bottom {
    flex-direction: column;
    align-items: flex-start;
  }
  
  .ap-footer__copyright {
    margin-bottom: var(--ap-spacing-sm);
  }
}

/*--------------------------------------------------------------
# Modal
--------------------------------------------------------------*/
.ap-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(--ap-z-index-modal);
  opacity: 0;
  visibility: hidden;
  transition: all var(--ap-transition-normal);
}

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

.ap-modal__content {
  width: 90%;
  max-width: 500px;
  text-align: center;
  position: relative;
  transform: scale(0.9);
  transition: transform var(--ap-transition-normal);
}

.ap-modal.active .ap-modal__content {
  transform: scale(1);
}

.ap-modal__close {
  position: absolute;
  top: var(--ap-spacing-sm);
  right: var(--ap-spacing-sm);
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ap-primary);
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.8);
  transition: all var(--ap-transition-fast);
}

.ap-modal__close:hover {
  background-color: var(--ap-primary);
  color: white;
}

.ap-modal__icon {
  font-size: 4rem;
  color: var(--ap-secondary);
  margin-bottom: var(--ap-spacing-md);
}

.ap-modal__title {
  margin-bottom: var(--ap-spacing-sm);
}

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

/*--------------------------------------------------------------
# Cookie Consent
--------------------------------------------------------------*/
.ap-cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  background-color: var(--ap-primary);
  color: var(--ap-text-light);
  padding: var(--ap-spacing-md);
  z-index: var(--ap-z-index-fixed);
  transform: translateY(100%);
  transition: transform var(--ap-transition-normal);
}

.ap-cookie-banner.active {
  transform: translateY(0);
}

.ap-cookie-banner__content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: var(--ap-wrapper-width);
  margin: 0 auto;
}

.ap-cookie-banner__content p {
  margin-bottom: 0;
  margin-right: var(--ap-spacing-md);
  flex: 1;
}

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

.ap-cookie-banner__actions {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.ap-cookie-banner__actions .ap-button {
  margin-left: var(--ap-spacing-xs);
}

.ap-cookie-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(--ap-z-index-modal);
  opacity: 0;
  visibility: hidden;
  transition: all var(--ap-transition-normal);
}

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

.ap-cookie-modal__content {
  width: 90%;
  max-width: 600px;
  max-height: 90vh;
  overflow-y: auto;
  transform: scale(0.9);
  transition: transform var(--ap-transition-normal);
}

.ap-cookie-modal.active .ap-cookie-modal__content {
  transform: scale(1);
}

.ap-cookie-modal__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--ap-spacing-md);
  padding-bottom: var(--ap-spacing-sm);
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.ap-cookie-modal__header h3 {
  margin-bottom: 0;
}

.ap-cookie-modal__close {
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ap-primary);
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.8);
  transition: all var(--ap-transition-fast);
}

.ap-cookie-modal__close:hover {
  background-color: var(--ap-primary);
  color: white;
}

.ap-cookie-modal__body {
  margin-bottom: var(--ap-spacing-md);
}

.ap-cookie-category {
  margin-bottom: var(--ap-spacing-sm);
  padding: var(--ap-spacing-sm);
  border-radius: var(--ap-border-radius-sm);
  background-color: rgba(255, 255, 255, 0.5);
}

.ap-cookie-category__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.ap-cookie-category__info h4 {
  margin-bottom: var(--ap-spacing-xs);
  font-size: 1.1rem;
}

.ap-cookie-category__info p {
  color: var(--ap-text-secondary);
  font-size: 0.9rem;
  margin-bottom: 0;
}

.ap-cookie-toggle {
  position: relative;
  width: 50px;
  height: 26px;
  flex-shrink: 0;
}

.ap-cookie-toggle input {
  opacity: 0;
  width: 0;
  height: 0;
}

.ap-cookie-toggle label {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  transition: var(--ap-transition-fast);
  border-radius: 34px;
}

.ap-cookie-toggle label:before {
  position: absolute;
  content: "";
  height: 18px;
  width: 18px;
  left: 4px;
  bottom: 4px;
  background-color: white;
  transition: var(--ap-transition-fast);
  border-radius: 50%;
}

.ap-cookie-toggle input:checked + label {
  background-color: var(--ap-secondary);
}

.ap-cookie-toggle input:focus + label {
  box-shadow: 0 0 1px var(--ap-secondary);
}

.ap-cookie-toggle input:checked + label:before {
  transform: translateX(24px);
}

.ap-cookie-toggle--disabled {
  opacity: 0.6;
  pointer-events: none;
}

.ap-cookie-modal__footer {
  display: flex;
  justify-content: flex-end;
  padding-top: var(--ap-spacing-md);
  border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.ap-cookie-modal__footer .ap-button {
  margin-left: var(--ap-spacing-xs);
}

@media (max-width: 768px) {
  .ap-cookie-banner__content {
    flex-direction: column;
    align-items: flex-start;
  }
  
  .ap-cookie-banner__content p {
    margin-right: 0;
    margin-bottom: var(--ap-spacing-sm);
  }
  
  .ap-cookie-modal__footer {
    flex-wrap: wrap;
    justify-content: center;
  }
  
  .ap-cookie-modal__footer .ap-button {
    margin: var(--ap-spacing-xs);
    flex: 1 0 auto;
  }
}

/*--------------------------------------------------------------
# Page Header
--------------------------------------------------------------*/
.ap-page-header {
  position: relative;
  padding: var(--ap-spacing-xl) 0;
  min-height: 400px;
  display: flex;
  align-items: center;
  overflow: hidden;
}

.ap-page-header--small {
  min-height: 200px;
}

.ap-page-header__background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
}

.ap-page-header__bg-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: 0.7;
}

.ap-page-header .ap-wrapper {
  position: relative;
  z-index: 1;
}

.ap-page-header__title {
  font-size: 3rem;
  margin-bottom: var(--ap-spacing-md);
  color: var(--ap-primary);
  position: relative;
  display: inline-block;
  padding-bottom: var(--ap-spacing-sm);
}

.ap-page-header__title::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100px;
  height: 4px;
  background: linear-gradient(to right, var(--ap-primary), var(--ap-secondary));
  border-radius: 2px;
}

.ap-page-header__subtitle {
  font-size: 1.25rem;
  color: var(--ap-text-secondary);
  max-width: 700px;
}

@media (max-width: 768px) {
  .ap-page-header {
    min-height: 300px;
    padding: var(--ap-spacing-lg) 0;
  }
  
  .ap-page-header__title {
    font-size: 2.2rem;
  }
  
  .ap-page-header__subtitle {
    font-size: 1.1rem;
  }
}

/*--------------------------------------------------------------
# CTA Section
--------------------------------------------------------------*/
.ap-cta {
  padding: var(--ap-spacing-xl) 0;
}

.ap-cta__content {
  text-align: center;
  padding: var(--ap-spacing-xl) var(--ap-spacing-lg);
  background: linear-gradient(135deg, rgba(42, 63, 84, 0.1), rgba(26, 188, 156, 0.1));
}

.ap-cta__title {
  font-size: 2.2rem;
  margin-bottom: var(--ap-spacing-md);
}

.ap-cta__text {
  max-width: 700px;
  margin: 0 auto var(--ap-spacing-lg);
  color: var(--ap-text-secondary);
  font-size: 1.1rem;
}

@media (max-width: 768px) {
  .ap-cta__title {
    font-size: 1.8rem;
  }
  
  .ap-cta__text {
    font-size: 1rem;
  }
}

/*--------------------------------------------------------------
# Legal Content
--------------------------------------------------------------*/
.ap-legal-content {
  padding: var(--ap-spacing-xl) 0;
}

.ap-legal-content__container {
  padding: var(--ap-spacing-lg);
}

.ap-legal-content__intro {
  margin-bottom: var(--ap-spacing-lg);
}

.ap-legal-content__section {
  margin-bottom: var(--ap-spacing-lg);
}

.ap-legal-content__section:last-child {
  margin-bottom: 0;
}

.ap-legal-content__section h2 {
  font-size: 1.5rem;
  margin-bottom: var(--ap-spacing-md);
  color: var(--ap-primary);
  border-bottom: 2px solid var(--ap-secondary);
  padding-bottom: var(--ap-spacing-xs);
  display: inline-block;
}

.ap-legal-content__section h3 {
  font-size: 1.25rem;
  margin-bottom: var(--ap-spacing-sm);
  margin-top: var(--ap-spacing-md);
  color: var(--ap-primary);
}

.ap-legal-content__section p {
  margin-bottom: var(--ap-spacing-sm);
}

.ap-legal-content__section ul,
.ap-legal-content__section ol {
  margin-bottom: var(--ap-spacing-md);
  padding-left: var(--ap-spacing-lg);
}

.ap-legal-content__section ul li,
.ap-legal-content__section ol li {
  margin-bottom: var(--ap-spacing-xs);
}

.ap-legal-content__section ul {
  list-style-type: disc;
}

.ap-legal-content__section ol {
  list-style-type: decimal;
}

.ap-legal-content__table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: var(--ap-spacing-md);
}

.ap-legal-content__table th,
.ap-legal-content__table td {
  padding: var(--ap-spacing-sm);
  text-align: left;
  border: 1px solid rgba(0, 0, 0, 0.1);
}

.ap-legal-content__table th {
  background-color: var(--ap-primary);
  color: white;
  font-weight: 600;
}

.ap-legal-content__table tr:nth-child(even) {
  background-color: rgba(0, 0, 0, 0.02);
}

@media (max-width: 768px) {
  .ap-legal-content__table {
    display: block;
    overflow-x: auto;
  }
}

/*--------------------------------------------------------------
# Thanks Page
--------------------------------------------------------------*/
.ap-thanks {
  padding: var(--ap-spacing-xl) 0;
  min-height: calc(100vh - var(--ap-header-height) - var(--ap-header-top-height));
  display: flex;
  align-items: center;
}

.ap-thanks__content {
  text-align: center;
  padding: var(--ap-spacing-xl) var(--ap-spacing-lg);
}

.ap-thanks__icon {
  font-size: 5rem;
  color: var(--ap-secondary);
  margin-bottom: var(--ap-spacing-md);
}

.ap-thanks__title {
  font-size: 2.5rem;
  margin-bottom: var(--ap-spacing-md);
}

.ap-thanks__text {
  max-width: 700px;
  margin: 0 auto var(--ap-spacing-md);
  color: var(--ap-text-secondary);
  font-size: 1.1rem;
}

.ap-thanks__links {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: var(--ap-spacing-lg);
}

.ap-thanks__link {
  display: flex;
  align-items: center;
  margin: 0 var(--ap-spacing-sm) var(--ap-spacing-sm);
  padding: var(--ap-spacing-sm) var(--ap-spacing-md);
  background-color: rgba(26, 188, 156, 0.1);
  border-radius: var(--ap-border-radius-md);
  color: var(--ap-primary);
  transition: all var(--ap-transition-fast);
}

.ap-thanks__link i {
  margin-right: var(--ap-spacing-xs);
  color: var(--ap-secondary);
}

.ap-thanks__link:hover {
  background-color: rgba(26, 188, 156, 0.2);
  transform: translateY(-3px);
}

@media (max-width: 768px) {
  .ap-thanks__title {
    font-size: 2rem;
  }
  
  .ap-thanks__text {
    font-size: 1rem;
  }
}

/*--------------------------------------------------------------
# Contact Details Page
--------------------------------------------------------------*/
.ap-contact-details {
  padding: var(--ap-spacing-xl) 0;
}

.ap-contact-details__content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--ap-spacing-lg);
}

.ap-contact-details__info,
.ap-contact-details__map {
  padding: var(--ap-spacing-lg);
}

.ap-contact-details h2 {
  margin-bottom: var(--ap-spacing-md);
  position: relative;
  padding-bottom: var(--ap-spacing-sm);
  display: inline-block;
}

.ap-contact-details h2::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 60px;
  height: 3px;
  background: linear-gradient(to right, var(--ap-primary), var(--ap-secondary));
  border-radius: 2px;
}

.ap-contact-details__items {
  margin-bottom: var(--ap-spacing-lg);
}

.ap-contact-details__item {
  display: flex;
  margin-bottom: var(--ap-spacing-md);
}

.ap-contact-details__icon {
  width: 50px;
  height: 50px;
  background: linear-gradient(135deg, var(--ap-primary), var(--ap-secondary));
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  margin-right: var(--ap-spacing-md);
  flex-shrink: 0;
  font-size: 1.25rem;
}

.ap-contact-details__text h3 {
  font-size: 1.2rem;
  margin-bottom: var(--ap-spacing-xs);
}

.ap-contact-details__text p {
  margin-bottom: var(--ap-spacing-xs);
  color: var(--ap-text-secondary);
}

.ap-contact-details__extra {
  font-size: 0.9rem;
  color: var(--ap-text-secondary);
  opacity: 0.8;
}

.ap-contact-details__legal h3 {
  font-size: 1.2rem;
  margin-bottom: var(--ap-spacing-sm);
}

.ap-contact-details__legal p {
  font-size: 0.95rem;
  color: var(--ap-text-secondary);
  margin-bottom: var(--ap-spacing-xs);
}

.ap-contact-details__map-container {
  width: 100%;
  height: 450px;
  border-radius: var(--ap-border-radius-md);
  overflow: hidden;
  margin-bottom: var(--ap-spacing-md);
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.ap-contact-details__map-container iframe {
  border-radius: var(--ap-border-radius-md);
}

.ap-contact-details__directions h3 {
  font-size: 1.2rem;
  margin-bottom: var(--ap-spacing-sm);
}

.ap-contact-details__directions p {
  margin-bottom: var(--ap-spacing-sm);
  color: var(--ap-text-secondary);
}

@media (max-width: 992px) {
  .ap-contact-details__content {
    grid-template-columns: 1fr;
  }
}

/*--------------------------------------------------------------
# Audit, Methodology and Plan Pages
--------------------------------------------------------------*/
.ap-audit-scope,
.ap-analysis-metrics,
.ap-audit-deliverables,
.ap-approach,
.ap-tools,
.ap-risk-management,
.ap-roadmap,
.ap-kpi,
.ap-eprocurement {
  padding: var(--ap-spacing-xl) 0;
}

.ap-audit-scope:nth-child(odd),
.ap-analysis-metrics:nth-child(odd),
.ap-audit-deliverables:nth-child(odd),
.ap-approach:nth-child(odd),
.ap-tools:nth-child(odd),
.ap-risk-management:nth-child(odd),
.ap-roadmap:nth-child(odd),
.ap-kpi:nth-child(odd),
.ap-eprocurement:nth-child(odd) {
  background: linear-gradient(135deg, rgba(42, 63, 84, 0.05), rgba(26, 188, 156, 0.05));
}

.ap-audit-scope__content,
.ap-analysis-metrics__content,
.ap-audit-deliverables__content,
.ap-approach__content,
.ap-tools__content,
.ap-risk-management__content,
.ap-roadmap__content,
.ap-kpi__content,
.ap-eprocurement__content {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ap-spacing-lg);
}

.ap-audit-scope__info {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: var(--ap-spacing-lg);
  align-items: center;
}

.ap-audit-scope__image img,
.ap-tools__eprocurement-image img,
.ap-kpi__dashboard-image img {
  width: 100%;
  height: auto;
  border-radius: var(--ap-border-radius-md);
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.ap-audit-scope__sources,
.ap-analysis-metrics__grid,
.ap-analysis-metrics__report-sections,
.ap-audit-deliverables__items,
.ap-audit-deliverables__timeline-steps,
.ap-approach__stages-flow,
.ap-approach__roles-grid,
.ap-tools__grid,
.ap-tools__eprocurement-grid,
.ap-risk-management__grid,
.ap-roadmap__phases,
.ap-roadmap__templates-grid,
.ap-kpi__grid,
.ap-kpi__monitoring-grid,
.ap-eprocurement__flow,
.ap-eprocurement__benefits-grid {
  display: grid;
  gap: var(--ap-spacing-md);
}

.ap-audit-scope__sources,
.ap-analysis-metrics__grid,
.ap-tools__grid,
.ap-tools__eprocurement-grid,
.ap-risk-management__grid,
.ap-roadmap__templates-grid,
.ap-kpi__grid,
.ap-kpi__monitoring-grid,
.ap-eprocurement__benefits-grid {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.ap-analysis-metrics__report-sections {
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

.ap-audit-deliverables__items {
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

.ap-approach__roles-grid {
  grid-template-columns: 1fr 1fr;
}

.ap-audit-scope__source,
.ap-analysis-metrics__item,
.ap-audit-deliverables__item,
.ap-approach__role,
.ap-tools__item,
.ap-tools__eprocurement-item,
.ap-risk-management__item,
.ap-kpi__item,
.ap-kpi__monitoring-item,
.ap-eprocurement__benefit {
  display: flex;
  align-items: flex-start;
}

.ap-audit-scope__source-icon,
.ap-analysis-metrics__icon,
.ap-audit-deliverables__icon,
.ap-tools__icon,
.ap-tools__eprocurement-icon,
.ap-risk-management__icon,
.ap-kpi__icon,
.ap-kpi__monitoring-icon,
.ap-eprocurement__benefit-icon {
  width: 50px;
  height: 50px;
  background: linear-gradient(135deg, var(--ap-primary), var(--ap-secondary));
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  margin-right: var(--ap-spacing-md);
  flex-shrink: 0;
  font-size: 1.25rem;
}

.ap-audit-scope__source-info h4,
.ap-analysis-metrics__info h4,
.ap-audit-deliverables__info h4,
.ap-tools__info h4,
.ap-tools__eprocurement-info h4,
.ap-risk-management__info h4,
.ap-kpi__info h4,
.ap-kpi__monitoring-info h4,
.ap-eprocurement__benefit-info h4 {
  font-size: 1.1rem;
  margin-bottom: var(--ap-spacing-xs);
}

.ap-audit-scope__source-info p,
.ap-analysis-metrics__info p,
.ap-audit-deliverables__info p,
.ap-tools__info p,
.ap-tools__eprocurement-info p,
.ap-risk-management__info p,
.ap-kpi__info p,
.ap-kpi__monitoring-info p,
.ap-eprocurement__benefit-info p {
  color: var(--ap-text-secondary);
  font-size: 0.95rem;
  margin-bottom: var(--ap-spacing-sm);
}

.ap-analysis-metrics__report-section h4,
.ap-audit-deliverables__timeline-info h4 {
  font-size: 1.1rem;
  margin-bottom: var(--ap-spacing-xs);
}

.ap-analysis-metrics__report-section p,
.ap-audit-deliverables__timeline-info p {
  color: var(--ap-text-secondary);
  font-size: 0.95rem;
}

.ap-audit-deliverables__timeline-steps {
  position: relative;
}

.ap-audit-deliverables__timeline-steps::before {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 15px;
  width: 2px;
  background-color: var(--ap-secondary);
}

.ap-audit-deliverables__timeline-step {
  display: flex;
  position: relative;
  padding-left: 50px;
  margin-bottom: var(--ap-spacing-md);
}

.ap-audit-deliverables__timeline-marker {
  position: absolute;
  left: 0;
  top: 0;
  width: 30px;
  height: 30px;
  background: var(--ap-primary);
  border-radius: 50%;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
}

.ap-approach__stages-flow,
.ap-eprocurement__flow {
  display: flex;
  flex-direction: column;
}

.ap-approach__stage,
.ap-eprocurement__step {
  display: flex;
  margin-bottom: var(--ap-spacing-md);
}

.ap-approach__stage-number,
.ap-eprocurement__step-number {
  width: 60px;
  height: 60px;
  background: linear-gradient(135deg, var(--ap-primary), var(--ap-secondary));
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-weight: 700;
  font-size: 1.5rem;
  margin-right: var(--ap-spacing-md);
  flex-shrink: 0;
}

.ap-approach__stage-connector,
.ap-eprocurement__step-connector {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  margin-bottom: var(--ap-spacing-md);
  color: var(--ap-secondary);
  font-size: 1.5rem;
}

.ap-approach__stage-info h4,
.ap-eprocurement__step-info h4 {
  font-size: 1.3rem;
  margin-bottom: var(--ap-spacing-sm);
}

.ap-approach__stage-info p,
.ap-eprocurement__step-info p {
  margin-bottom: var(--ap-spacing-sm);
}

.ap-approach__integration {
  margin-top: var(--ap-spacing-lg);
  padding-top: var(--ap-spacing-lg);
  border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.ap-roadmap__phase {
  margin-bottom: var(--ap-spacing-lg);
}

.ap-roadmap__phase:last-child {
  margin-bottom: 0;
}

.ap-roadmap__phase-header {
  display: flex;
  align-items: center;
  margin-bottom: var(--ap-spacing-md);
}

.ap-roadmap__phase-icon {
  width: 60px;
  height: 60px;
  background: linear-gradient(135deg, var(--ap-primary), var(--ap-secondary));
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 1.5rem;
  margin-right: var(--ap-spacing-md);
}

.ap-roadmap__phase-title {
  font-size: 1.3rem;
  margin-bottom: 0;
}

.ap-roadmap__template-header {
  display: flex;
  align-items: center;
  margin-bottom: var(--ap-spacing-sm);
}

.ap-roadmap__template-icon {
  width: 40px;
  height: 40px;
  background: linear-gradient(135deg, var(--ap-primary), var(--ap-secondary));
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 1rem;
  margin-right: var(--ap-spacing-md);
}

.ap-roadmap__template-header h4 {
  font-size: 1.1rem;
  margin-bottom: 0;
}

@media (max-width: 992px) {
  .ap-audit-scope__info,
  .ap-approach__roles-grid {
    grid-template-columns: 1fr;
  }
  
  .ap-audit-scope__text {
    order: 1;
  }
  
  .ap-audit-scope__image {
    order: 0;
    margin-bottom: var(--ap-spacing-md);
  }
}

/*--------------------------------------------------------------
# Animations and Effects
--------------------------------------------------------------*/
#ap-particles {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  pointer-events: none;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

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

.ap-fade-in {
  animation: fadeIn 0.8s ease forwards;
}

.ap-slide-up {
  animation: slideUp 0.8s ease forwards;
}

.ap-delayed {
  animation-delay: 0.3s;
}

@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/*--------------------------------------------------------------
# Utility Classes
--------------------------------------------------------------*/
.ap-text-center {
  text-align: center;
}

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

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

.ap-mb-sm {
  margin-bottom: var(--ap-spacing-sm);
}

.ap-mb-md {
  margin-bottom: var(--ap-spacing-md);
}

.ap-mb-lg {
  margin-bottom: var(--ap-spacing-lg);
}

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

.ap-mt-sm {
  margin-top: var(--ap-spacing-sm);
}

.ap-mt-md {
  margin-top: var(--ap-spacing-md);
}

.ap-mt-lg {
  margin-top: var(--ap-spacing-lg);
}

.ap-hidden {
  display: none;
}

.ap-visible {
  display: block;
}

.iti {
  width: 100%;
}

/*--------------------------------------------------------------
# Print Styles
--------------------------------------------------------------*/
@media print {
  body {
    background: white;
    color: black;
  }
  
  .ap-header,
  .ap-footer,
  .ap-cookie-banner,
  .ap-cookie-modal,
  .ap-modal,
  #ap-particles {
    display: none;
  }
  
  main {
    margin: 0;
    padding: 0;
  }
  
  .ap-glass-card {
    box-shadow: none;
    background: transparent;
    border: 1px solid #ddd;
  }
  
  .ap-page-header {
    min-height: auto;
    padding: 2rem 0;
  }
  
  .ap-page-header__background {
    display: none;
  }
  
  a {
    color: #000;
    text-decoration: underline;
  }
  
  a[href]::after {
    content: " (" attr(href) ")";
    font-size: 0.8em;
  }
  
  a[href^="#"]::after,
  a[href^="javascript:"]::after,
  a[href^="tel:"]::after,
  a[href^="mailto:"]::after {
    content: "";
  }
  
  @page {
    margin: 2cm;
  }
}