:root {
  --color-bg: #FAF8F5;
  --color-bg-alt: #F1ECE4;
  --color-surface: #FFFFFF;
  --color-charcoal: #1D1A17;
  --color-charcoal-soft: #2B2621;
  --color-text-primary: #241F1B;
  --color-text-secondary: #5C554E;
  --color-text-inverse: #FBF8F4;
  --color-border: #E6DFD3;
  --color-accent: #FF5A36;
  --color-accent-dark: #DB431F;
  --color-accent-light: #FFB199;
  --color-accent-rgb: 255, 90, 54;

  --shadow-sm: 0 1px 2px rgba(36,31,27,0.06), 0 1px 1px rgba(36,31,27,0.05);
  --shadow-md: 0 10px 24px rgba(36,31,27,0.08), 0 2px 8px rgba(36,31,27,0.06);
  --shadow-lg: 0 26px 54px rgba(36,31,27,0.16), 0 10px 22px rgba(36,31,27,0.08);
  --shadow-accent-glow: 0 12px 32px rgba(var(--color-accent-rgb), 0.35), 0 4px 12px rgba(var(--color-accent-rgb), 0.24);
  --shadow-accent-glow-strong: 0 18px 44px rgba(var(--color-accent-rgb), 0.45), 0 6px 16px rgba(var(--color-accent-rgb), 0.3);

  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 28px;
  --radius-xl: 40px;
  --radius-full: 999px;

  --space-3xs: .25rem;
  --space-2xs: .5rem;
  --space-xs: .75rem;
  --space-sm: 1.25rem;
  --space-md: 2rem;
  --space-lg: 3.25rem;
  --space-xl: 5rem;
  --space-2xl: 7rem;
  --space-3xl: 9rem;

  --font-heading: 'Bricolage Grotesque', sans-serif;
  --font-body: 'Inter', sans-serif;
  --ease-standard: cubic-bezier(.4,0,.2,1);
}

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

html { scroll-behavior: smooth; overflow-x: hidden; }

body {
  font-family: var(--font-body);
  color: var(--color-text-primary);
  background: var(--color-bg);
  line-height: 1.7;
  font-size: 16px;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

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

a { color: inherit; text-decoration: none; transition: color .3s var(--ease-standard); }

ul { list-style: none; }

button { font-family: inherit; cursor: pointer; border: none; background: none; }

h1, h2, h3, h4 {
  font-family: var(--font-heading);
  font-weight: 700;
  line-height: 1.15;
  color: var(--color-charcoal);
  letter-spacing: -0.01em;
}

h1 { font-size: clamp(2.4rem, 4.2vw + 1rem, 4.6rem); font-weight: 800; }
h2 { font-size: clamp(1.9rem, 2.4vw + 1rem, 2.9rem); }
h3 { font-size: clamp(1.25rem, 1vw + 1rem, 1.55rem); }

p { color: var(--color-text-secondary); }

.section-eyebrow-label {
  display: inline-block;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: .8rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--color-accent-dark);
  margin-bottom: var(--space-xs);

  &.section-eyebrow-label-inverse { color: var(--color-accent-light); }
}

.button-primary-accent {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  padding: 1rem 1.8rem;
  background: linear-gradient(135deg, var(--color-accent), var(--color-accent-dark));
  color: #fff;
  font-weight: 600;
  border-radius: var(--radius-full);
  box-shadow: var(--shadow-accent-glow);
  transition: transform .35s var(--ease-standard), box-shadow .35s var(--ease-standard);
  min-height: 44px;

  & i { transition: transform .35s var(--ease-standard); }
  &:hover { transform: translateY(-3px); box-shadow: var(--shadow-accent-glow-strong); }
  &:hover i { transform: translateX(4px); }
}

.button-secondary-outline {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  padding: .95rem 1.7rem;
  border: 1.5px solid var(--color-border);
  color: var(--color-charcoal);
  font-weight: 600;
  border-radius: var(--radius-full);
  background: var(--color-surface);
  transition: all .35s var(--ease-standard);
  min-height: 44px;

  &:hover { border-color: var(--color-accent); color: var(--color-accent-dark); box-shadow: var(--shadow-md); transform: translateY(-2px); }
}


.main-navigation-container {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  background: rgba(250, 248, 245, 0.86);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--color-border);
  transition: transform .4s var(--ease-standard);

  &.nav-hidden { transform: translateY(-110%); }

  & .main-navigation-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: .9rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
  }
}

.main-navigation-logo {
  display: flex;
  align-items: center;
  gap: .7rem;

  & .main-navigation-logo-text {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 1.15rem;
    color: var(--color-charcoal);
  }
}

.main-navigation-links {
  display: flex;
  align-items: center;
  gap: 2rem;

  & a {
    font-size: .95rem;
    font-weight: 500;
    color: var(--color-text-secondary);
    position: relative;
    padding: .3rem 0;
  }
  & a::after {
    content: '';
    position: absolute;
    left: 0; bottom: -2px;
    width: 0; height: 2px;
    background: var(--color-accent);
    transition: width .3s var(--ease-standard);
  }
  & a:hover { color: var(--color-charcoal); }
  & a:hover::after, & a[aria-current="page"]::after { width: 100%; }
  & a[aria-current="page"] { color: var(--color-charcoal); }
}

.main-navigation-cta {
  display: inline-flex;
  align-items: center;
  padding: .75rem 1.5rem;
  background: var(--color-charcoal);
  color: var(--color-text-inverse);
  border-radius: var(--radius-full);
  font-weight: 600;
  font-size: .92rem;
  transition: all .35s var(--ease-standard);
  white-space: nowrap;

  &:hover { background: var(--color-accent); box-shadow: var(--shadow-accent-glow); transform: translateY(-2px); }
}

.mobile-menu-toggle-button {
  display: none;
  width: 44px; height: 44px;
  align-items: center; justify-content: center;
  border-radius: var(--radius-sm);
  color: var(--color-charcoal);
  font-size: 1.3rem;
  transition: background .3s var(--ease-standard);
  &:hover { background: var(--color-bg-alt); }
}


.mobile-menu-sheet-overlay {
  position: fixed;
  inset: 0;
  background: rgba(29, 26, 23, 0.5);
  z-index: 1100;
  opacity: 0;
  visibility: hidden;
  transition: opacity .35s var(--ease-standard), visibility .35s var(--ease-standard);

  &.is-open { opacity: 1; visibility: visible; }
}

.mobile-menu-sheet-panel {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  background: var(--color-surface);
  border-radius: var(--radius-xl) var(--radius-xl) 0 0;
  padding: .8rem 1.5rem 2.2rem;
  transform: translateY(100%);
  transition: transform .4s var(--ease-standard);
  box-shadow: var(--shadow-lg);
  max-height: 80vh;
  overflow-y: auto;

  .mobile-menu-sheet-overlay.is-open & { transform: translateY(0); }
}

.mobile-menu-sheet-handle {
  width: 46px; height: 5px;
  background: var(--color-border);
  border-radius: var(--radius-full);
  margin: .3rem auto 1.4rem;
}

.mobile-menu-sheet-links {
  display: flex;
  flex-direction: column;
  gap: .3rem;

  & a {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1rem;
    border-radius: var(--radius-md);
    font-weight: 600;
    font-size: 1.02rem;
    color: var(--color-charcoal);
    min-height: 44px;
    transition: background .3s var(--ease-standard);

    & i { width: 22px; color: var(--color-accent); font-size: 1.05rem; }
    &:hover, &:active { background: var(--color-bg-alt); }
  }

  & .mobile-menu-sheet-cta {
    margin-top: .6rem;
    background: linear-gradient(135deg, var(--color-accent), var(--color-accent-dark));
    color: #fff;
    justify-content: center;
    box-shadow: var(--shadow-accent-glow);
    & i { color: #fff; }
  }
}


.homepage-hero-section {
  position: relative;
  min-height: 90vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 9rem 1.5rem 6rem;
  background: radial-gradient(ellipse at 50% 0%, #FFF3EE 0%, var(--color-bg) 55%);
  overflow: hidden;
}

.homepage-hero-inner {
  position: relative;
  max-width: 880px;
  margin: 0 auto;
  text-align: center;
}

.homepage-hero-eyebrow {
  display: inline-block;
  font-weight: 600;
  font-size: .82rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--color-accent-dark);
  background: rgba(var(--color-accent-rgb), 0.1);
  padding: .5rem 1.1rem;
  border-radius: var(--radius-full);
  margin-bottom: var(--space-sm);
}

.homepage-hero-heading { margin-bottom: var(--space-sm); }

.homepage-hero-subheading {
  max-width: 620px;
  margin: 0 auto var(--space-md);
  font-size: 1.1rem;
  color: var(--color-text-secondary);
}

.homepage-hero-actions {
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: var(--space-xl);
}

.homepage-hero-visual-frame {
  position: relative;
  max-width: 620px;
  margin: 0 auto;
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  border: 6px solid var(--color-surface);

  & img { width: 100%; aspect-ratio: 16/10; object-fit: cover; }
}

.homepage-hero-floating-card {
  position: absolute;
  display: flex;
  align-items: center;
  gap: .6rem;
  background: var(--color-surface);
  padding: .85rem 1.2rem;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-accent-glow);
  font-weight: 600;
  font-size: .88rem;
  color: var(--color-charcoal);
  transition: transform .4s var(--ease-standard), box-shadow .4s var(--ease-standard);

  & i { color: var(--color-accent); font-size: 1.1rem; }
  &:hover { transform: translateY(-6px); box-shadow: var(--shadow-accent-glow-strong); }
}

.homepage-hero-floating-card-one { top: 8%; left: 2%; }
.homepage-hero-floating-card-two { bottom: 10%; left: 6%; }
.homepage-hero-floating-card-three { top: 4%; right: 3%; }
.homepage-hero-floating-card-four { bottom: 6%; right: 1%; }

@media (max-width: 900px) {
  .homepage-hero-floating-card { position: static; display: inline-flex; margin: .3rem; }
  .homepage-hero-floating-card-one, .homepage-hero-floating-card-two, .homepage-hero-floating-card-three, .homepage-hero-floating-card-four {
    top: auto; left: auto; right: auto; bottom: auto;
  }
}


.homepage-context-section {
  background: var(--color-bg-alt);
  padding: var(--space-2xl) 1.5rem var(--space-lg);
}

.homepage-context-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: var(--space-xl);
  align-items: center;
}

.homepage-context-text {
  & p { margin-bottom: 1rem; }
}

.homepage-context-image img {
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  aspect-ratio: 4/5;
  object-fit: cover;
}

.homepage-context-secondary-block {
  max-width: 1200px;
  margin: var(--space-2xl) auto 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-md);
}

.homepage-context-secondary-item {
  padding: var(--space-md);
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  transition: box-shadow .35s var(--ease-standard), transform .35s var(--ease-standard);

  & i { color: var(--color-accent); font-size: 1.6rem; margin-bottom: .8rem; display: block; }
  & h3 { margin-bottom: .5rem; font-size: 1.15rem; }

  &:hover { box-shadow: var(--shadow-md); transform: translateY(-4px); }
}


.homepage-methodology-section-fullwidth {
  position: relative;
  background: linear-gradient(120deg, #1C1815 0%, #4A2A1B 48%, var(--color-accent) 100%);
  padding: var(--space-2xl) 1.5rem var(--space-xl);
  color: var(--color-text-inverse);
}

.homepage-methodology-inner {
  max-width: 1200px;
  margin: 0 auto;
  text-align: center;

  & h2 { color: #fff; max-width: 700px; margin: 0 auto var(--space-sm); }
}

.homepage-methodology-intro {
  max-width: 620px;
  margin: 0 auto var(--space-lg);
  color: rgba(251, 248, 244, 0.78);
}

.homepage-methodology-steps-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-md);
  text-align: left;
}

.homepage-methodology-step-card {
  position: relative;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.14);
  backdrop-filter: blur(6px);
  padding: var(--space-md);
  border-radius: var(--radius-lg);
  transition: transform .35s var(--ease-standard), background .35s var(--ease-standard);

  & i { color: var(--color-accent-light); font-size: 1.5rem; margin-bottom: .8rem; display: block; }
  & h3 { color: #fff; margin-bottom: .5rem; font-size: 1.15rem; }
  & p { color: rgba(251, 248, 244, 0.75); font-size: .93rem; }

  &:hover { transform: translateY(-6px); background: rgba(255,255,255,0.1); }
}

.homepage-methodology-step-number {
  display: block;
  font-family: var(--font-heading);
  font-size: .95rem;
  font-weight: 700;
  color: var(--color-accent-light);
  margin-bottom: .6rem;
  letter-spacing: .05em;
}

.section-gradient-fade-transition {
  height: 140px;
  margin-top: -1px;
  background: linear-gradient(to bottom, var(--color-accent) 0%, rgba(250,248,245,0) 100%);
  position: relative;
  z-index: 1;
}


.homepage-training-areas-section {
  padding: 0 1.5rem var(--space-2xl);
  margin-top: -60px;
  position: relative;
  z-index: 2;
}

.homepage-training-areas-header {
  max-width: 640px;
  margin: 0 auto var(--space-lg);
  text-align: center;
}

.training-areas-swiper-container {
  max-width: 1280px;
  margin: 0 auto;
  padding-bottom: 3rem;
}

.training-area-slide-card {
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  padding: var(--space-md);
  box-shadow: var(--shadow-md);
  height: 100%;
  min-height: 220px;
  transition: transform .35s var(--ease-standard), box-shadow .35s var(--ease-standard);

  & i { color: var(--color-accent); font-size: 1.7rem; margin-bottom: 1rem; display: block; }
  & h3 { font-size: 1.1rem; margin-bottom: .6rem; }
  & p { font-size: .93rem; }

  &:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
}

.swiper-pagination-bullet-active { background: var(--color-accent) !important; }


.homepage-audience-preview-section,
.homepage-individual-sessions-preview-section {
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--space-xl) 1.5rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-xl);
  align-items: center;
}

.homepage-audience-preview-image img,
.homepage-individual-sessions-preview-image img {
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  aspect-ratio: 4/3;
  object-fit: cover;
}

.homepage-audience-tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin: var(--space-sm) 0;

  & li {
    padding: .5rem 1rem;
    background: var(--color-bg-alt);
    border-radius: var(--radius-full);
    font-size: .87rem;
    font-weight: 600;
    color: var(--color-charcoal);
  }
}

.homepage-individual-sessions-preview-text p { margin-bottom: 1rem; }


.homepage-faq-preview-section {
  max-width: 900px;
  margin: 0 auto;
  padding: var(--space-xl) 1.5rem;
}

.homepage-faq-preview-header {
  text-align: center;
  margin-bottom: var(--space-lg);
}

.homepage-faq-preview-footer {
  text-align: center;
  margin-top: var(--space-lg);
}

.faq-accordion-container { display: flex; flex-direction: column; gap: 1rem; }

.faq-accordion-item {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  overflow: hidden;
  transition: border-color .3s var(--ease-standard), box-shadow .3s var(--ease-standard);

  &:hover { box-shadow: var(--shadow-sm); }
  &.is-open { border-color: var(--color-accent); box-shadow: var(--shadow-md); }
  &.is-open .faq-accordion-question i { transform: rotate(45deg); color: var(--color-accent); }
}

.faq-accordion-question {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.2rem 1.5rem;
  text-align: left;
  font-weight: 600;
  font-family: var(--font-heading);
  font-size: 1.02rem;
  color: var(--color-charcoal);
  min-height: 44px;

  & i { color: var(--color-text-secondary); transition: transform .35s var(--ease-standard), color .35s var(--ease-standard); }
}

.faq-accordion-answer {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .4s var(--ease-standard);

  .faq-accordion-item.is-open & { grid-template-rows: 1fr; }
}

.faq-accordion-answer-inner {
  overflow: hidden;
  padding: 0 1.5rem;

  .faq-accordion-item.is-open & { padding: 0 1.5rem 1.4rem; }

  & p { font-size: .95rem; }
}


.homepage-final-cta-section {
  position: relative;
  min-height: 60vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding: var(--space-xl) 1.5rem;
}

.homepage-final-cta-background-image {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 0;
}

.homepage-final-cta-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(28,24,21,0.92), rgba(219,67,31,0.75));
  z-index: 1;
}

.homepage-final-cta-content {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 640px;

  & h2 { color: #fff; margin-bottom: var(--space-xs); }
  & p { color: rgba(251,248,244,0.85); margin-bottom: var(--space-md); }
}


.inner-page-header-banner {
  padding: 9.5rem 1.5rem 4rem;
  background: linear-gradient(180deg, #FFF3EE 0%, var(--color-bg) 100%);
  text-align: center;
}

.inner-page-header-banner-inner {
  max-width: 720px;
  margin: 0 auto;

  & p { max-width: 560px; margin: var(--space-xs) auto 0; font-size: 1.05rem; }
}


.audience-page-intro-section {
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--space-xl) 1.5rem;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: var(--space-xl);
  align-items: center;

  & p { margin-bottom: 1rem; }
}

.audience-page-intro-image img {
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  aspect-ratio: 4/5;
  object-fit: cover;
}

.audience-profiles-section {
  background: var(--color-bg-alt);
  padding: var(--space-xl) 1.5rem;
}

.audience-profiles-header {
  max-width: 700px;
  margin: 0 auto var(--space-lg);
  text-align: center;
}

.audience-profile-card-grid {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-md);
}

.audience-profile-card-wrapper {
  background: var(--color-surface);
  padding: var(--space-md);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  transition: transform .35s var(--ease-standard), box-shadow .35s var(--ease-standard);

  & i { color: var(--color-accent); font-size: 1.6rem; margin-bottom: .8rem; display: block; }
  & h3 { font-size: 1.1rem; margin-bottom: .5rem; }
  & p { font-size: .93rem; }

  &:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); }
}

.audience-situations-section {
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--space-xl) 1.5rem;
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: var(--space-xl);
  align-items: center;
}

.audience-situations-image img {
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  aspect-ratio: 4/5;
  object-fit: cover;
}

.audience-situations-list {
  display: flex;
  flex-direction: column;
  gap: .9rem;
  margin-top: var(--space-sm);

  & li {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
    font-size: 1rem;
    color: var(--color-text-primary);
  }
  & i { color: var(--color-accent); margin-top: .35rem; }
}

.audience-reassurance-section {
  background: var(--color-bg-alt);
  padding: var(--space-xl) 1.5rem;
}

.audience-reassurance-inner {
  max-width: 700px;
  margin: 0 auto;
  text-align: center;

  & p { margin: var(--space-xs) 0; }
  & .button-primary-accent { margin-top: var(--space-sm); }
}


.sessions-format-section {
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--space-xl) 1.5rem;
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: var(--space-xl);
  align-items: center;

  & p { margin-bottom: 1rem; }
}

.sessions-format-image img {
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  aspect-ratio: 4/5;
  object-fit: cover;
}

.sessions-steps-section {
  background: var(--color-bg-alt);
  padding: var(--space-xl) 1.5rem;
}

.sessions-steps-header {
  max-width: 700px;
  margin: 0 auto var(--space-lg);
  text-align: center;
}

.sessions-steps-grid {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-md);
}

.sessions-step-card {
  background: var(--color-surface);
  padding: var(--space-md);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  transition: transform .35s var(--ease-standard), box-shadow .35s var(--ease-standard);

  & h3 { font-size: 1.08rem; margin: .8rem 0 .5rem; }
  & p { font-size: .92rem; }

  &:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); }
}

.sessions-step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px; height: 38px;
  border-radius: var(--radius-full);
  background: linear-gradient(135deg, var(--color-accent), var(--color-accent-dark));
  color: #fff;
  font-family: var(--font-heading);
  font-weight: 700;
  box-shadow: var(--shadow-accent-glow);
}

.sessions-outcomes-section,
.sessions-technical-section {
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--space-xl) 1.5rem;
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: var(--space-xl);
  align-items: center;
}

.sessions-outcomes-image img,
.sessions-technical-image img {
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  aspect-ratio: 4/3;
  object-fit: cover;
}

.sessions-outcomes-list {
  display: flex;
  flex-direction: column;
  gap: .9rem;

  & li { display: flex; gap: .8rem; align-items: flex-start; color: var(--color-text-primary); }
  & i { color: var(--color-accent); margin-top: .35rem; }
}

.sessions-technical-text p { margin-bottom: 1rem; }


.faq-page-content-section {
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--space-xl) 1.5rem;
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: var(--space-xl);
  align-items: start;
}

.faq-page-image-column img {
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  position: sticky;
  top: 110px;
  aspect-ratio: 3/4;
  object-fit: cover;
}

.faq-page-cta-section {
  background: var(--color-bg-alt);
  padding: var(--space-xl) 1.5rem;
  text-align: center;

  & p { max-width: 480px; margin: .5rem auto var(--space-sm); }
}


.contact-page-content-section {
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--space-xl) 1.5rem;
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: var(--space-xl);
}

.contact-page-info-column { display: flex; flex-direction: column; gap: var(--space-md); }

.contact-page-info-card {
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  padding: var(--space-md);

  & h3 { margin-bottom: var(--space-sm); }
  & p { display: flex; align-items: center; gap: .7rem; margin-bottom: .8rem; color: var(--color-text-primary); }
  & i { color: var(--color-accent); width: 20px; }
  & a:hover { color: var(--color-accent-dark); }
}

.contact-page-mission-quote-block {
  background: linear-gradient(135deg, #241F1B, #4A2A1B);
  color: var(--color-text-inverse);
  padding: var(--space-md);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  position: relative;

  & i { color: var(--color-accent-light); font-size: 1.4rem; margin-bottom: .8rem; display: block; }
  & p { color: rgba(251,248,244,0.9); font-style: italic; margin-bottom: .8rem; }
  & span { font-weight: 600; font-size: .9rem; color: var(--color-accent-light); }
}

.contact-page-image-wrapper img {
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  aspect-ratio: 4/3;
  object-fit: cover;
}

.contact-form-element {
  background: var(--color-surface);
  padding: var(--space-lg);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.contact-form-field-group {
  display: flex;
  flex-direction: column;
  gap: .5rem;

  & label { font-weight: 600; font-size: .92rem; color: var(--color-charcoal); }

  & input, & select, & textarea {
    padding: .85rem 1rem;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-sm);
    font-family: var(--font-body);
    font-size: .96rem;
    color: var(--color-text-primary);
    background: var(--color-bg);
    transition: border-color .3s var(--ease-standard), box-shadow .3s var(--ease-standard);
    min-height: 44px;

    &:focus { outline: none; border-color: var(--color-accent); box-shadow: 0 0 0 4px rgba(var(--color-accent-rgb), 0.14); }
  }

  & textarea { min-height: 140px; resize: vertical; }
}

.contact-form-privacy-checkbox-group {
  display: flex;
  align-items: flex-start;
  gap: .7rem;

  & input { width: 20px; height: 20px; margin-top: .2rem; accent-color: var(--color-accent); flex-shrink: 0; }
  & label { font-size: .88rem; color: var(--color-text-secondary); }
  & a { color: var(--color-accent-dark); font-weight: 600; }
}

.contact-form-submit-button { align-self: flex-start; margin-top: .5rem; }

.contact-page-map-section {
  max-width: 1200px;
  margin: 0 auto var(--space-2xl);
  padding: 0 1.5rem;
}

.contact-page-map-inner {
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  line-height: 0;
}


.thanks-page-hero-section {
  min-height: 55vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 9.5rem 1.5rem 4rem;
  background: linear-gradient(120deg, #1C1815 0%, #4A2A1B 45%, var(--color-accent) 100%);
  color: #fff;
}

.thanks-page-hero-inner {
  max-width: 600px;

  & i { font-size: 3rem; color: var(--color-accent-light); margin-bottom: var(--space-sm); }
  & h1 { color: #fff; margin-bottom: var(--space-xs); }
  & p { color: rgba(251,248,244,0.85); }
}

.thanks-page-next-steps-section {
  padding: var(--space-xl) 1.5rem;
  text-align: center;
}

.thanks-page-next-steps-inner {
  max-width: 640px;
  margin: 0 auto;

  & p { margin: var(--space-xs) 0 var(--space-md); }
}

.thanks-page-next-steps-actions {
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}


.legal-page-content-section {
  max-width: 760px;
  margin: 0 auto;
  padding: 9.5rem 1.5rem var(--space-2xl);
}

.legal-page-content-inner {
  & h1 { margin-bottom: .5rem; }
  & h2 { margin: var(--space-md) 0 var(--space-xs); font-size: 1.4rem; }
  & p { margin-bottom: 1rem; }
}

.legal-page-updated-date {
  font-size: .88rem;
  color: var(--color-text-secondary);
  margin-bottom: var(--space-md);
  font-weight: 600;
}


.site-footer-container {
  background: var(--color-charcoal);
  color: rgba(251,248,244,0.8);
  padding: var(--space-xl) 1.5rem var(--space-md);
}

.site-footer-main {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr;
  gap: var(--space-lg);
  padding-bottom: var(--space-lg);
  border-bottom: 1px solid rgba(255,255,255,0.12);

  & .main-navigation-logo-text { color: #fff; }
  & p { color: rgba(251,248,244,0.65); margin: var(--space-sm) 0 var(--space-sm); }
}

.site-footer-contact-line {
  display: flex;
  align-items: center;
  gap: .6rem;
  margin-bottom: .6rem !important;
  font-size: .92rem;

  & i { color: var(--color-accent); width: 16px; }
  & a:hover { color: var(--color-accent-light); }
}

.site-footer-links-block {
  display: flex;
  flex-direction: column;
  gap: .7rem;

  & h4 { color: #fff; font-size: .95rem; margin-bottom: .3rem; letter-spacing: .04em; text-transform: uppercase; }
  & a { color: rgba(251,248,244,0.7); font-size: .92rem; transition: color .3s var(--ease-standard); }
  & a:hover { color: var(--color-accent-light); }
}

.site-footer-legal-links {
  max-width: 1200px;
  margin: 0 auto;
  padding-top: var(--space-md);
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .5rem;
  font-size: .82rem;
  color: rgba(251,248,244,0.5);
}


.cookie-consent-banner-container {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 2000;
  background: var(--color-charcoal);
  color: rgba(251,248,244,0.92);
  transform: translateY(-100%);
  transition: transform .45s var(--ease-standard);
  box-shadow: var(--shadow-lg);

  &.is-visible { transform: translateY(0); }
}

.cookie-consent-banner-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: .9rem 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  flex-wrap: wrap;
}

.cookie-consent-banner-text {
  font-size: .88rem;
  color: rgba(251,248,244,0.85);
  flex: 1;
  min-width: 220px;

  & i { color: var(--color-accent); margin-right: .4rem; }
  & a { color: var(--color-accent-light); text-decoration: underline; }
}

.cookie-consent-banner-actions {
  display: flex;
  gap: .6rem;
  flex-wrap: wrap;
}

.cookie-consent-btn {
  padding: .6rem 1.1rem;
  border-radius: var(--radius-full);
  font-size: .84rem;
  font-weight: 600;
  transition: all .3s var(--ease-standard);
  min-height: 40px;

  &.cookie-consent-btn-ghost { color: rgba(251,248,244,0.75); }
  &.cookie-consent-btn-ghost:hover { color: #fff; }

  &.cookie-consent-btn-outline { border: 1.5px solid rgba(251,248,244,0.35); color: #fff; }
  &.cookie-consent-btn-outline:hover { border-color: var(--color-accent); }

  &.cookie-consent-btn-solid { background: var(--color-accent); color: #fff; box-shadow: var(--shadow-accent-glow); }
  &.cookie-consent-btn-solid:hover { background: var(--color-accent-dark); transform: translateY(-2px); }
}

.cookie-consent-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(29,26,23,0.6);
  z-index: 2100;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity .35s var(--ease-standard), visibility .35s var(--ease-standard);
  padding: 1.5rem;

  &.is-open { opacity: 1; visibility: visible; }
}

.cookie-consent-modal-panel {
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  max-width: 540px;
  width: 100%;
  box-shadow: var(--shadow-lg);
  transform: translateY(20px);
  transition: transform .35s var(--ease-standard);

  .cookie-consent-modal-overlay.is-open & { transform: translateY(0); }
}

.cookie-consent-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.4rem 1.6rem;
  border-bottom: 1px solid var(--color-border);
}

.cookie-consent-modal-close {
  width: 36px; height: 36px;
  display: flex; align-items: center; justify-content: center;
  border-radius: var(--radius-sm);
  color: var(--color-text-secondary);
  transition: background .3s var(--ease-standard);
  &:hover { background: var(--color-bg-alt); }
}

.cookie-consent-modal-body { padding: 1rem 1.6rem; }

.cookie-consent-category-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--color-border);

  &:last-child { border-bottom: none; }

  & h4 { font-size: .98rem; margin-bottom: .3rem; }
  & p { font-size: .85rem; }
  & input { width: 22px; height: 22px; margin-top: .2rem; accent-color: var(--color-accent); flex-shrink: 0; }
}

.cookie-consent-modal-footer {
  display: flex;
  gap: .8rem;
  padding: 1.2rem 1.6rem 1.6rem;
  flex-wrap: wrap;
}


@media (max-width: 1024px) {
  .homepage-context-secondary-block,
  .homepage-methodology-steps-grid,
  .audience-profile-card-grid,
  .sessions-steps-grid { grid-template-columns: repeat(2, 1fr); }

  .site-footer-main { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 860px) {
  .main-navigation-links, .main-navigation-cta { display: none; }
  .mobile-menu-toggle-button { display: flex; }

  .homepage-context-inner,
  .homepage-audience-preview-section,
  .homepage-individual-sessions-preview-section,
  .audience-page-intro-section,
  .audience-situations-section,
  .sessions-format-section,
  .sessions-outcomes-section,
  .sessions-technical-section,
  .faq-page-content-section,
  .contact-page-content-section {
    grid-template-columns: 1fr;
  }

  .faq-page-image-column img { position: static; }

  .homepage-individual-sessions-preview-image,
  .homepage-audience-preview-image,
  .sessions-format-image { order: -1; }

  .site-footer-main { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .homepage-context-secondary-block,
  .homepage-methodology-steps-grid,
  .audience-profile-card-grid,
  .sessions-steps-grid { grid-template-columns: 1fr; }

  .homepage-hero-section { padding: 7.5rem 1.2rem 4rem; }
  .inner-page-header-banner { padding: 7.5rem 1.2rem 3rem; }
  .legal-page-content-section { padding: 7.5rem 1.2rem var(--space-xl); }

  .cookie-consent-banner-inner { flex-direction: column; align-items: flex-start; }
  .cookie-consent-banner-actions { width: 100%; }
  .cookie-consent-btn { flex: 1; text-align: center; }
}