
:root {
  /* === NEW: Moody, Premium Colour Scheme === */
  
  /* --- Greys & Surfaces --- */
  --bg-dark: #0D0D0F; /* Near black, cool tone */
  --surface-dark: #1A1B1E; /* Slightly lighter for cards/surfaces */
  --surface-hover: #24262A; /* A slightly lighter surface for hover states */
  --surface-soft-bg: rgba(255, 255, 255, 0.03); /* For very subtle backgrounds like open accordions */

  /* --- Borders --- */
  --border-subtle: rgba(255, 255, 255, 0.22); /* More prominent border color to feel 'thicker' (20% more opaque) */
  
  /* --- Text --- */
  --text-light: #E1E1E1; /* Main text, slightly off-white */
  --text-heading: #FFFFFF; /* Pure white for headings for contrast */
  --text-muted: #888888; /* Muted grey for secondary text */
  --text-dim: #B0B0B0; /* An intermediate muted color */
  
  /* --- Blues --- */
  --accent-blue: #3B82F6; /* A modern, clean blue */
  --accent-blue-hover: #93C5FD; /* A brighter, more noticeable version for hover */
  --accent-blue-deep: #1E40AF; /* A darker, richer blue for active states */
  --accent-blue-soft-bg: rgba(59, 130, 246, 0.1); /* For blue-tinted soft backgrounds */
  --accent-blue-medium-bg: rgba(59, 130, 246, 0.2); /* A stronger blue-tinted background */
  --accent-blue-strong-bg: rgba(59, 130, 246, 0.4); /* A stronger blue-tinted background */
  --accent-blue-overlay: rgba(59, 130, 246, 0.6); /* For overlays like the marquee */
  
  /* Mapped to old variable names for compatibility */
  --primary: var(--accent-blue);
  --primary-dark: var(--accent-blue-deep);
  --secondary: var(--accent-blue-hover);
  --light: var(--text-heading);
  --background-blue: var(--bg-dark);
  --border-color: var(--border-subtle);
  --success: #10B981; /* A more muted, modern green */

  /* UPDATED FONTS */
  --heading-font: "Rubik", sans-serif;
  --body-font: "Source Code Pro", monospace;
  --button-font: "Rubik", sans-serif;
  
  /* === NEW: Border Radius === */
  --border-radius: 4px;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  /* REMOVED: Force sharp corners globally rule was here */
}

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

body {
  font-family: var(--body-font);
  line-height: 1.6;
  color: var(--text-light); /* Default text color changed */
  background-color: var(--background-blue); /* Background changed */
  overflow-x: hidden;
  transition: background-color 0.3s ease, color 0.3s ease;
}

/* ADDED: Hero Logo Animation */
@keyframes fadeInFromLeft {
  0% {
    opacity: 0;
    transform: translateX(-60px);
  }

  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

/* === Typography === */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--heading-font);
  font-weight: 700;
  font-style: italic; /* Headers are now italic */
  line-height: 1.2;
  margin-bottom: 1rem;
  color: var(--text-heading);
}

h1 { font-size: clamp(2.5rem, 5vw, 4rem); }
h2 { font-size: clamp(2rem, 4vw, 3rem); }
h3 { font-size: clamp(1.2rem, 3vw, 1.5rem); }

p {
  margin-bottom: 1.5rem;
  font-size: clamp(0.7rem, 1.05vw, 0.7875rem);
  font-weight: 400;
  color: var(--text-light);
  opacity: 0.9;
}

a {
  color: var(--primary);
  text-decoration: none;
  transition: all 0.3s ease;
}
a:hover { color: var(--secondary); }

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

/* === Layout & Utility Classes === */
.container {
  width: 100%;
  margin: 0 auto;
  padding: 4rem 2rem;
}

.section {
  border-bottom: 1px solid var(--border-color);
  width: 100%;
}

.section-title {
  text-align: center;
  margin-bottom: 4rem;
  grid-column: 1 / -1; /* Make title span full width of the grid */
}

.text-center { text-align: center; }
.grid { display: grid; gap: 0; }

@media (max-width: 767px) {
  /* Keep mobile layouts inside the viewport with consistent padding */
  .container {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
  .section,
  .grid-container,
  #pf-portfolio,
  .pf-wrapper,
  .pf-grid,
  .portfolio-content-grid {
    width: 100%;
    overflow-x: hidden;
  }
}

/* MODIFICATION: Make specific sections flush */
#ethos,
#capabilities.section,
#works.section {
    border-bottom: none;
}
#principles .container {
    padding-top: 0;
}

/* MODIFICATION: Make section headers smaller */
#capabilities h2, #works h2, #principles h2, #testimonials h2, #nz-partners h2, #contact h2, .footer-callout h2 {
    font-size: clamp(1.4rem, 2.8vw, 2.1rem);
}

/* === Grid System (6 columns) === */
.grid-container {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  width: 100%;
  border-top: 1px solid var(--border-color);
}

.grid-item {
  border-left: 1px solid var(--border-color);
  border-bottom: 1px solid var(--border-color);
  padding: 2rem;
}
.grid-item:first-child,
.grid-item:nth-child(6n + 1) {
  border-left: none;
}

/* Column spans */
.col-span-1 { grid-column: span 1; }
.col-span-2 { grid-column: span 2; }
.col-span-3 { grid-column: span 3; }
.col-span-4 { grid-column: span 4; }
.col-span-5 { grid-column: span 5; }
.col-span-6 { grid-column: span 6; }

/* Responsive grid adjustments */
@media (max-width: 1024px) {
    .grid-container {
        grid-template-columns: repeat(2, 1fr);
    }
    .grid-item { border-left: 1px solid var(--border-color); }
    .grid-item:nth-child(odd) { border-left: none; }
    .col-span-1, .col-span-2, .col-span-3 { grid-column: span 2; }
    .col-span-4 { grid-column: span 2; }
    .col-span-5, .col-span-6 { grid-column: span 2; }
    
}

@media (max-width: 767px) {
    .grid-container {
        grid-template-columns: repeat(1, 1fr);
    }
    .grid-item { border-left: none; }
    .col-span-1, .col-span-2, .col-span-3, .col-span-4, .col-span-5, .col-span-6 { grid-column: span 1; }
}

/* === Buttons === */
.btn {
  display: inline-block;
  padding: 0.875rem 2rem;
  font-weight: 300;
  font-family: var(--button-font);
  cursor: pointer;
  transition: all 0.3s ease;
  font-size: 0.7rem;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 1px;
  border: 1px solid var(--border-color);
  background: transparent;
  color: var(--text-heading);
  border-radius: var(--border-radius); /* MODIFIED */
}

/* ADDED: More prominent hover effect for secondary buttons */
.btn:hover {
  background: var(--text-heading);
  color: var(--bg-dark);
  border-color: var(--text-heading);
}

.btn-primary {
  background: var(--primary);
  color: var(--text-heading) !important;
  border-color: var(--primary);
}

/* MODIFIED: More prominent, high-contrast hover effect for primary buttons */
.btn-primary:hover {
  background: var(--secondary); /* Use the bright hover blue */
  border-color: var(--secondary);
  color: var(--accent-blue-deep) !important; /* Use dark blue text for high contrast */
}

.btn-block {
  display: block;
  width: 100%;
}

/* === Header & Navigation === */
.hero-wrapper {
  border-bottom: 1px solid var(--border-color);
}

.hero {
  overflow: hidden;
  position: relative;
  height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

/* ADDED: Hero video background */
.hero-video {
  position: absolute;
  top: 50%;
  left: 50%;
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto;
  object-fit: cover;
  transform: translate(-50%, -50%);
  z-index: 0;
}

/* ADDED: Hero video overlay */
.hero::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background-color: rgba(13, 13, 15, 0.5); /* MODIFIED: Use new bg color with alpha */
  z-index: 1;
}

.navbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.4rem 2rem;
  border-bottom: 1px solid var(--border-color);
  position: relative;
  z-index: 1000;
  width: 100%;
}

.navbar-fixed {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  background-color: transparent;
  transition: background-color 0.3s ease;
}

.navbar-scrolled {
  background-color: var(--background-blue);
}

/* ADDED: Header Logo Swap on Scroll */
.nav-logo-menu {
    min-width: 150px; 
}
.nav-logo-link {
    display: inline-block;
    position: relative;
    width: 100%;
    height: 35px;
    transition: all 0.3s ease;
}
.logo-initial, .logo-scrolled {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    transition: opacity 0.8s ease, clip-path 0.9s ease;
}
.logo-initial {
    height: 30px;
    width: 30px;
    opacity: 1;
}
.logo-scrolled {
    height: 25px;
    width: auto;
    opacity: 0;
    clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
}

.navbar-scrolled .logo-initial {
    opacity: 0;
}

.navbar-scrolled .logo-scrolled {
    opacity: 1;
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}

/* ADDED: Nav Actions Container */
.nav-actions {
  display: flex;
  align-items: center;
}

.nav-links a { margin-left: 1rem; font-weight: 400; color: var(--text-heading); font-family: var(--body-font); font-size: 0.8rem; text-transform: uppercase; }
.nav-links a:hover { color: var(--secondary); }
.mobile-nav-toggle { display: none; }

@media (max-width: 1024px) {
  .nav-links { display: none; }
  .mobile-nav-toggle { display: block; background: none; border: none; font-size: 1.5rem; cursor: pointer; color: var(--text-heading); }
}

@media (max-width: 767px) {
  .nav-actions {
    display: none;
  }
}

/* Mobile Nav */
.mobile-nav {
  position: fixed; top: 0; right: -100%; width: 80%; max-width: 400px;
  height: 100vh; background-color: var(--background-blue); padding: 2rem;
  transition: all 0.3s ease; border-left: 1px solid var(--border-color); z-index: 1001;
}
.mobile-nav.active { right: 0; }
.mobile-nav-close { background: none; border: none; font-size: 1.5rem; cursor: pointer; color: var(--text-heading); position: absolute; top: 1rem; right: 1rem; }
.mobile-nav-links { margin-top: 3rem; display: flex; flex-direction: column; }
.mobile-nav-links a { margin-bottom: 1.5rem; font-weight: 400; font-size: 1.25rem; color: var(--text-heading); text-transform: capitalize; }
.overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(13, 13, 15, 0.7); z-index: 999; opacity: 0; visibility: hidden; transition: all 0.3s ease; }
.overlay.active { opacity: 1; visibility: visible; }

/* === NEW HERO LAYOUT === */
.hero-layout {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  height: 100%;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}

/* ADDED: Hero Main Logo */
.hero-main-logo {
    margin-bottom: auto;
    padding: 2.5rem;
    padding-top: 8rem;
}
.hero-main-logo img {
    width: clamp(562px, 62vw, 780px);
    height: auto;
    opacity: 0;
    animation: fadeInFromLeft 1.2s ease-out 0.5s forwards;
}

.hero-bottom-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    width: 100%;
    border-top: 1px solid var(--border-color);
}

.hero-column {
    padding: 2.5rem;
    border-left: 1px solid var(--border-color);
    display: flex;
    flex-direction: column;
    justify-content: center;
    background-color: rgba(26, 27, 30, 0.5); /* MODIFIED: Use new surface color with alpha */
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
}

.hero-column:first-child {
    border-left: none;
}

.hero-column h1, .hero-column p {
    margin-bottom: 0;
}

.hero-title { 
  margin-bottom: 0; 
  font-size: clamp(1.5rem, 3vw, 2.4rem);
}
.hero-subtitle { font-size: clamp(0.875rem, 1.4vw, 1.05rem); color: var(--text-light); opacity: 0.9; margin-bottom:0; }
.hero-cta { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 1.5rem; }

.hero-cta .btn {
    flex: 1; 
    padding-top: 0.6rem;
    padding-bottom: 0.6rem;
}

.hero-stats { display: grid; grid-template-columns: repeat(3, auto); gap: 1.5rem; }

.stat-number { 
  font-size: 1.5rem; 
  font-weight: 700; 
  display: block; 
  color: var(--text-heading); 
  transform: scale(0);
  transition: transform 0.8s cubic-bezier(0.19, 1, 0.22, 1);
}
.stat-label { font-size: 0.7rem; color: var(--text-light); opacity: 0.9; font-weight: 400; text-transform: uppercase; }

@media (max-width: 1024px) {
    .hero-bottom-grid {
        grid-template-columns: 1fr;
    }
    .hero-column {
        border-left: none;
        border-top: 1px solid var(--border-color);
    }
     .hero-column:first-child {
         border-top: none;
     }
}
 @media (max-width: 767px) {
     .hero-stats {
         grid-template-columns: 1fr;
         text-align: left;
         gap: 1rem;
     }
     .hero-main-logo {
         padding-top: 6rem;
     }
     .hero-main-logo img {
         width: 90%;
     }
     .hero-cta {
         flex-direction: column;
     }
 }
 
/* === NEW: Subpage Hero Styles === */
.hero-subpage-wrapper {
  border-bottom: 1px solid var(--border-color);
  position: relative;
  height: 50vh;
  min-height: 350px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  overflow: hidden;
}

.hero-subpage-wrapper .hero-video {
  z-index: 0;
}

.hero-subpage-wrapper::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background-color: rgba(13, 13, 15, 0.6); /* MODIFIED */
  z-index: 1;
}

.hero-subpage-content {
  position: relative;
  z-index: 2;
  padding: 2rem;
  max-width: 800px;
}

.hero-subpage-content h1 {
  font-size: clamp(2.2rem, 5vw, 3.5rem);
}

.hero-subpage-content p {
  font-size: clamp(0.9rem, 2vw, 1.1rem);
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
  color: var(--light);
}

/* === MODIFIED: Work Page Intro Section === */
.work-intro {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 60vh;
}

.work-intro .container {
  text-align: center;
  padding-top: 6rem;
  padding-bottom: 6rem;
}

.intro-text-wrapper {
  max-width: 720px;
  margin: 0 auto;
}

.intro-text-wrapper p {
  font-size: clamp(1.1rem, 2.5vw, 1.3rem);
  line-height: 1.7;
  color: var(--light);
  margin-bottom: 0;
}

/* ADDED: Typewriter effect styles for intro text */
.intro-text-wrapper #intro-typewriter::after {
  content: '|';
  display: inline-block;
  animation: blink 0.7s infinite;
  margin-left: 0.2em;
}

@keyframes blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0; }
}


/* === PREMIUM: Our Ethos Section === */
.ethos-section {
  height: 400vh;
  padding: 0;
  position: relative;
  display: block;
}

.ethos-scroll-wrapper {
  position: relative;
  height: 100%;
}

.ethos-sticky-text-wrapper {
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  mix-blend-mode: difference;
}

.ethos-content {
  max-width: 800px;
  position: relative;
  text-align: center;
}

.ethos-content, .ethos-content * {
color: white !important;
}

.ethos-image-grid {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  pointer-events: none;
}

.ethos-image-wrapper {
  position: absolute;
  border-radius: var(--border-radius); /* MODIFIED */
  overflow: hidden; /* MODIFIED */
}
.ethos-image-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  border: 1px solid var(--border-color);
  border-radius: var(--border-radius); /* MODIFIED */
}

/* REMOVED: .ethos-img-1 rule */
.ethos-img-2 { top: 70vh; right: 10%; width: 28vw; height: 45vh; }
.ethos-img-3 { top: 120vh; left: 15%; width: 20vw; height: 30vh; }
.ethos-img-4 { top: 160vh; right: 20%; width: 25vw; height: 40vh; }
.ethos-img-5 { top: 200vh; left: 5%; width: 30vw; height: 50vh; }
.ethos-img-6 { top: 230vh; right: 8%; width: 20vw; height: 35vh; }
/* ADDED: 4 new image positions */
.ethos-img-7 { top: 280vh; left: 12%; width: 25vw; height: 40vh; }
.ethos-img-8 { top: 310vh; right: 15%; width: 22vw; height: 35vh; }
.ethos-img-9 { top: 340vh; left: 20%; width: 28vw; height: 45vh; }
.ethos-img-10 { top: 370vh; right: 10%; width: 20vw; height: 30vh; }


.ethos-title { 
  font-size: clamp(1.05rem, 2.4vw, 2.4rem); 
}

@media (max-width: 900px) {
  /* REMOVED: .ethos-img-1 rule */
  .ethos-img-2 { right: 5%; width: 35vw; }
  .ethos-img-3 { left: 10%; width: 28vw; }
  .ethos-img-4 { right: 12%; width: 30vw; }
  .ethos-img-5 { left: 8%; width: 38vw; }
  .ethos-img-6 { right: 5%; width: 25vw; }
  /* ADDED: Responsive rules for new images */
  .ethos-img-7 { left: 5%; width: 30vw; }
  .ethos-img-8 { right: 8%; width: 32vw; }
  .ethos-img-9 { left: 10%; width: 35vw; }
  .ethos-img-10 { right: 5%; width: 28vw; }
}

@media (max-width: 767px) {
  .ethos-section {
      height: auto;
      min-height: 100vh;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 4rem 2rem;
  }
  .ethos-scroll-wrapper { display: contents; }
  .ethos-sticky-text-wrapper {
      position: static;
      height: auto;
      z-index: 1;
      mix-blend-mode: normal;
  }
   .ethos-content, .ethos-content * {
        color: inherit !important;
    }
  .ethos-image-grid { display: none; }
}

/* === Generic Service / Principle Card Styles === */
.service-card {
    width: 100%;
    display: flex;
    flex-direction: column;
    cursor: pointer;
    border-radius: var(--border-radius); /* MODIFIED */
}

.service-card h3 {
    margin-bottom: 1.5rem;
    font-size: clamp(1.1rem, 2.5vw, 1.3rem);
}

.service-type {
    display: block;
    font-family: var(--body-font);
    font-style: normal;
    font-weight: 400;
    color: var(--primary);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 0.5rem;
}

.service-includes {
    font-size: clamp(0.65rem, 1vw, 0.75rem);
    color: var(--text-muted); /* MODIFIED */
    margin-top: auto;
    padding-top: 1rem;
}

/* === NEW: Service Card Hover Marquee === */
#service-hover-marquee {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s ease;
  overflow: hidden;
  white-space: nowrap;
  padding: 0.25rem 0;
  font-family: var(--button-font);
  text-transform: uppercase;
  font-size: 0.8rem;
  letter-spacing: 1px;
  color: var(--text-heading);
  background-color: var(--accent-blue-overlay); /* MODIFIED */
}
#service-hover-marquee.visible {
  opacity: 1;
  visibility: visible;
}
#service-hover-marquee span {
  display: inline-block;
  padding-right: 2rem;
  animation: marquee-hover-scroll 5s linear infinite;
}

@keyframes marquee-hover-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* === PREMIUM: Capabilities Section === */
#capabilities .container {
    padding: 0;
}
.capabilities-header {
    padding: 4rem 2rem;
    border-bottom: 1px solid var(--border-color);
    text-align: center;
}

.capabilities-content-wrapper {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 0;
  align-items: stretch; 
}
.capabilities-image-container {
  padding: 1rem;
  border-bottom: 1px solid var(--border-color);
  display: flex;
  align-items: center;
  justify-content: center;
}
#capabilities-image {
  width: 85%;
  height: auto;
  max-height: 85%;
  object-fit: contain;
  transition: opacity 0.4s ease-in-out;
  border-radius: var(--border-radius); /* MODIFIED */
}
.features-list {
    border-right: 1px solid var(--border-color);
}

.feature-card {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 0;
    align-items: stretch; 
    border-bottom: 1px solid var(--border-color);
    position: relative; 
}

.feature-action-btn {
  position: absolute;
  bottom: 0.5rem;
  right: 0.5rem;
  transform: translateX(10px);
  width: 40px;
  height: 40px;
  background: var(--primary);
  color: var(--text-heading);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  text-decoration: none;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
  border-radius: var(--border-radius); /* MODIFIED */
}
.feature-card:hover .feature-action-btn {
  opacity: 1;
  visibility: visible;
  transform: translateX(0);
}

.feature-action-btn:hover {
  background: var(--secondary);
  color: var(--accent-blue-deep); /* MODIFIED: High-contrast text color on hover */
}

.feature-card-title {
    padding: 2.5rem 2rem;
}
.feature-card-title h3 {
    margin-bottom: 0;
}
.feature-card-details {
    padding: 2.5rem 2rem;
    border-left: 1px solid var(--border-color);
}
.feature-card-description {
    margin-bottom: 1rem;
}
.feature-card-tagline {
  font-family: var(--heading-font);
  font-style: italic;
  font-weight: 700;
  font-size: 1rem;
  opacity: 0;
  max-height: 0;
  overflow: hidden;
  transition: all 0.4s ease-in-out;
}
.feature-card:hover .feature-card-tagline {
    opacity: 1;
    max-height: 5em;
    margin-top: 1rem;
}

@media (max-width: 900px) {
  .capabilities-content-wrapper {
    grid-template-columns: 1fr;
  }
  .capabilities-image-container {
    display: none;
  }
  .features-list {
      border-right: none;
  }
  .features-list .feature-card:last-child {
    border-bottom: 1px solid var(--border-color);
}
}

@media (max-width: 767px) {
    .feature-card {
        grid-template-columns: 1fr;
        gap: 1rem;
        padding: 2.5rem 2rem;
        align-items: flex-start;
    }
    .feature-card-details {
        border-left: none;
        padding: 0;
    }
    .feature-card-title {
        padding: 0;
    }
     .feature-action-btn {
        display: none;
    }
}

/* === DEPRECATED PORTFOLIO SECTION === */
#works .container { padding: 0; }
#works .section-title { padding: 1.5rem; }
.portfolio-content-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.project-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 1rem;
  gap: 1rem;
}
.project-title-group {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.project-logo {
  max-height: 40px;
  width: auto;
  max-width: 160px;
  margin-bottom: 0.75rem;
}
.project-title-text {
  font-family: var(--body-font);
  font-size: 1.2rem;
  color: var(--text-light); /* MODIFIED */
  opacity: 0.8;
  margin: 0;
}
.project-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-bottom: 1px solid var(--border-color);
  padding: 2rem;
  min-height: 300px;
  transition: background-color 0.3s ease;
  cursor: pointer;
}
.portfolio-list {
  border-left: 1px solid var(--border-color);
  border-top: 1px solid var(--border-color);
}
.project-card:hover {
  background-color: var(--surface-hover);
}
.portfolio-image-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  position: sticky;
  top: 80px;
  height: calc(100vh - 80px);
  border-top: 1px solid var(--border-color);
  border-bottom: 1px solid var(--border-color);
  gap: 2rem;
}
#portfolio-logo-display {
  max-height: 50px;
  width: auto;
  max-width: 200px;
  object-fit: contain;
  transition: opacity 0.3s ease-in-out;
  filter: brightness(0) invert(1);
}
#portfolio-image-display {
  /* Changed to auto to allow border to hug the image content */
  width: auto;
  height: auto;
  
  /* Constraints to keep it within the container layout */
  max-width: 80%; /* Increased slightly to allow 'auto' room */
  max-height: 60vh;
  
  margin: 0 auto;
  transition: opacity 0.3s ease-in-out;
  
  /* The Border */
  border: 5px solid white;
  border-radius: var(--border-radius);
  
  /* Removed aspect-ratio and object-fit: contain so the box size = image size */
  display: block;
  box-shadow: 0 20px 40px rgba(0,0,0,0.3); /* Optional: adds depth since we have a border */
}

@media (max-width: 767px) {
  .portfolio-content-grid {
    grid-template-columns: 1fr;
  }
  .portfolio-image-container {
    position: static;
    height: auto;
    border-left: none;
    border-right: none;
    border-bottom: 1px solid var(--border-color);
    padding: 1.5rem 1.25rem;
    gap: 1rem;
  }
  #portfolio-logo-display {
    max-width: 60%;
    margin: 0 auto;
  }
  #portfolio-image-display {
    max-width: 100%;
    max-height: none;
  }
  .portfolio-list {
    border-left: none;
  }
  .project-card {
    padding: 1.75rem 1.25rem;
    min-height: auto;
  }
  .project-card-header {
    flex-direction: column;
    align-items: flex-start;
  }
  .visit-site-btn {
    width: 100%;
    text-align: center;
  }
}


/* === Principles Section (MODIFIED) === */
 #principles {
    position: relative;
    overflow: hidden;
    z-index: 1;
 }
 #principles::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: rgba(13, 13, 15, 0.5); /* MODIFIED */
    z-index: -1;
 }
 #principles .container {
    padding-left: 0;
    padding-right: 0;
}
#principles .section-title {
  padding: 4rem 2rem;
    text-align: center;
}
#principles .grid-container {
    background-color: rgba(26, 27, 30, 0.5); /* MODIFIED */
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
}
#principles .grid-item {
    display: flex;
    cursor: default;
}
.principle-card {
    width: 100%;
    display: flex;
    flex-direction: column;
    transition: all 0.3s ease-in-out;
}
.principle-card h3 {
    margin-bottom: 1.5rem;
    font-size: clamp(1.1rem, 2.5vw, 1.3rem);
}
.principle-card > p:first-of-type {
  min-height: 3em;
}
.principle-card .service-includes {
    opacity: 0;
    max-height: 0;
    overflow: hidden;
    margin-top: 0;
    padding: 0 1.5rem;
    transition: all 0.4s ease-in-out;
    background-color: var(--accent-blue-medium-bg); /* MODIFIED */
    color: var(--light);
    font-size: clamp(0.65rem, 1vw, 0.75rem);
    border-radius: var(--border-radius); /* MODIFIED */
}
.principle-card:hover .service-includes {
    opacity: 1;
    max-height: 250px;
    margin-top: 1rem;
    padding: 1.5rem;
}


/* === NEW: Our Space Section === */
#our-space .container {
  padding: 0;
}
#our-space .grid-container {
  border-top: none;
}
#our-space .grid-item {
  border-top: 1px solid var(--border-color);
}
.our-space-image-wrapper {
  padding: 1rem;
}
.our-space-image-wrapper video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--border-radius); /* MODIFIED */
}
.our-space-text-wrapper {
  display: flex;
  flex-direction: column;
  justify-content: left;
  align-items: flex-start;
  position: relative;
  cursor: pointer;
  min-height: 400px;
}
.our-space-hover-reveal {
  opacity: 0;
  transform: translateY(10px);
  transition: all 0.3s ease-in-out;
  margin-top: 1rem;
}
.our-space-text-wrapper:hover .our-space-hover-reveal {
  opacity: 1;
  transform: translateY(0);
}
.our-space-hover-reveal p {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  background-color: var(--accent-blue-strong-bg); /* MODIFIED */
  font-family: var(--body-font);
  font-size: 0.8rem;
  color: var(--text-heading);
  margin-bottom: 0;
  border-radius: var(--border-radius); /* MODIFIED */
}
.our-space-hover-reveal span {
  margin-left: 0.5rem;
}

/* === PREMIUM: Testimonials Section (Slider) === */
#testimonials {
  padding: 0;
  border-bottom: 1px solid var(--border-color);
}
.testimonial-container {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
}
.testimonial-left-col {
  padding: 4rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-right: 1px solid var(--border-color);
}
.testimonial-left-col .section-title {
  text-align: left;
  margin: 0;
}
.testimonial-nav {
    margin-top: 2rem;
}
.testimonial-right-col {
  padding: 0;
  position: relative;
  overflow: hidden;
}
.testimonial-slider-track {
  display: flex;
  transition: transform 0.5s ease-in-out;
  height: 100%;
}
.testimonial-slide {
  flex: 0 0 100%;
  width: 100%;
  box-sizing: border-box;
  display: flex;
  align-items: center;
}
.testimonial-card { 
  height: 100%;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 4rem;
}
.testimonial-rating { display: flex; align-items: center; margin-bottom: 1.5rem; justify-content: space-between; }
.testimonial-rating span { font-weight: 700; font-size: 1.25rem; }
.testimonial-rating .stars { color: #ffd700; }
.testimonial-text { flex-grow: 1; }
.testimonial-author { display: flex; align-items: center; margin-top: auto;}
.testimonial-author-avatar { width: 50px; height: 50px; flex-shrink: 0; overflow: hidden; margin-right: 1rem; border-radius: var(--border-radius); /* MODIFIED */ }
.testimonial-author-avatar img { width: 100%; height: 100%; object-fit: cover; }
.author-name { font-weight: 700; font-family: var(--heading-font); font-style: italic; margin-bottom: 0.25rem; }
.author-position { font-size: 0.7rem; color: var(--text-muted); }

@media (max-width: 1024px) {
  .testimonial-container {
      grid-template-columns: 1fr;
  }
  .testimonial-left-col {
      border-right: none;
      border-bottom: 1px solid var(--border-color);
      text-align: center;
      align-items: center;
  }
  .testimonial-left-col .section-title {
      text-align: center;
  }
}

/* === NZ Partners Section (Marquee) (MODIFIED FOR VIDEO BG) === */
.nz-partners-section {
  position: relative;
  overflow: hidden;
  z-index: 1;
}
.nz-partners-section::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background-color: rgba(13, 13, 15, 0.5); /* MODIFIED */
  z-index: -1;
}
.video-background-wrapper {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  z-index: -2;
  overflow: hidden;
}
.section-video {
  position: absolute;
  top: 50%; left: 50%;
  min-width: 100%;
  min-height: 100%;
  width: auto; height: auto;
  object-fit: cover;
  transform: translate(-50%, -50%);
}
.nz-partners-section .section-title h2, 
.nz-partners-section .section-title p { 
  color: var(--text-heading); 
}
.marquee-container {
  width: 100%;
  overflow: hidden;
  padding: 2rem 0;
  position: relative;
}
.marquee-container::before,
.marquee-container::after {
  content: '';
  position: absolute;
  top: 0;
  width: 100px;
  height: 100%;
  z-index: 2;
}
.marquee-container::before {
  left: 0;
  background: linear-gradient(to right, var(--bg-dark), transparent); /* MODIFIED */
}
.marquee-container::after {
  right: 0;
  background: linear-gradient(to left, var(--bg-dark), transparent); /* MODIFIED */
}
.marquee-content {
  display: flex;
  align-items: center;
  width: fit-content;
  animation: marquee-scroll 40s linear infinite;
}
.marquee-container:hover .marquee-content {
  animation-play-state: paused;
}
.logo-item-wrapper { 
  display: flex; 
  justify-content: center; 
  align-items: center; 
  padding: 0 2.5rem;
  flex-shrink: 0;
}
.logo-item-wrapper img {
  max-width: 150px;
  height: 40px;
  object-fit: contain;
  opacity: 0.7;
  transition: opacity 0.3s ease;
  filter: brightness(0) invert(1);
}
.logo-item-wrapper:hover img {
  opacity: 1;
}
@keyframes marquee-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* === Contact Form === */
#contact .grid-container {
  grid-template-columns: 1fr 1fr;
}
#contact .grid-item {
  grid-column: span 1;
}
.contact-form { padding: 2rem; border-right: 1px solid var(--border-color); }
.contact-info { padding: 2rem; }
@media (max-width: 1024px) {
  #contact .grid-container {
      grid-template-columns: 1fr;
  }
  .contact-form { border-right: none; }
  .grid-item.contact-info { border-top: 1px solid var(--border-color); }
}
.form-group { margin-bottom: 1.5rem; }
.form-group label { display: block; margin-bottom: 0.5rem; font-weight: 400; font-size: 0.7rem; text-transform: uppercase; }
.form-group input, .form-group select, .form-group textarea {
  width: 100%; padding: 0.75rem 1rem; border: 1px solid var(--border-color);
  font-size: 0.8rem; font-family: var(--body-font);
  background-color: transparent; color: var(--text-heading);
  border-radius: var(--border-radius); /* MODIFIED */
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus {
  outline: none; border-color: var(--primary);
}

.info-card {
  border: 1px solid var(--border-color);
  padding: 1.5rem;
  margin-bottom: 1rem;
  border-radius: var(--border-radius); /* MODIFIED */
  background-color: var(--surface-dark);
  transition: background-color 0.3s ease;
}
.info-card:hover {
  background-color: var(--surface-hover);
}
.info-card:last-child { margin-bottom: 0; }
.info-icon { margin-bottom: 1rem; color: var(--primary); }

/* === Footer Callout Section === */
.footer-callout {
    text-align: center;
    border-bottom: none;
    min-height: 60vh;
    display: flex;
    align-items: center;
    justify-content: center;
}
.footer-callout h2 {
    margin-bottom: 1rem;
}
.footer-callout p {
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 2rem;
}

/* === Footer === */
.footer {
    border-bottom: none;
    min-height: 40vh;
    display: flex;
    flex-direction: column;
}
.footer .container {
    padding: 0;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}
.footer-top {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  padding: 4rem 2rem;
  border-bottom: 1px solid var(--border-color);
  flex-grow: 1;
  align-content: center;
}
.footer-title { grid-column: 1 / -1; text-align: center; margin-bottom: 4rem; }
.footer-logo { grid-column: span 3; }
.footer-logo img {
  width: clamp(562px, 62vw, 780px);
  max-width: 100%;
  height: auto;
}
.footer-contact { grid-column: span 3; text-align: right; }

.footer-logo-animated {
  opacity: 0;
  animation-fill-mode: forwards;
}
.footer-logo-animated.visible {
  animation: fadeInFromLeft 1.2s ease-out 0.5s forwards;
}

.footer-bottom {
  display: flex;
  flex-direction: column; /* Stack items vertically */
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 2rem 2rem;
  font-size: 0.7rem;
  gap: 0.5rem; /* Gap between Copyright and Links */
}
.footer-links a { color: var(--text-muted); margin: 0 0.5rem; } /* Adjusted margins for centered look */

@media (max-width: 767px) {
  .footer-top { grid-template-columns: 1fr; text-align: center; }
  .footer-logo, .footer-contact { grid-column: span 1; text-align: center; }
  .footer-logo img { margin: 0 auto; }
  .footer-contact { margin-top: 2rem; }
  .footer-bottom { flex-direction: column; gap: 1rem; }
}

/* === Misc & Overrides === */
.logo-desktop-right { display: none; }
@media (min-width: 768px) { .logo-desktop-right { display: block; } }

.scroll-to-top {
  position: fixed; z-index: 1000; bottom: 25px; right: 25px;
  width: 42px; height: 42px; background: var(--primary); color: var(--text-heading);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.3rem;
  cursor: pointer; transition: all 0.3s ease; transform: translateY(100px);
  opacity: 0; border: none;
  border-radius: var(--border-radius); /* MODIFIED */
}
.scroll-to-top.visible { transform: translateY(0); opacity: 1; }
.scroll-to-top:hover {
  background-color: var(--secondary);
  color: var(--accent-blue-deep); /* MODIFIED: High-contrast text color on hover */
}

/* Lightbox - DEPRECATED for work.html but kept for other pages */
.lightbox { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(13, 13, 15, 0.95); display: flex; align-items: center; justify-content: center; z-index: 9999; opacity: 0; visibility: hidden; transition: all 0.3s ease; }
.lightbox.active { opacity: 1; visibility: visible; }
.lightbox-content { position: relative; width: 90%; max-width: 1200px; max-height: 90vh; overflow: hidden; border-radius: var(--border-radius); /* MODIFIED */ }
.lightbox-image { width: 100%; height: 100%; object-fit: contain; display: block; }
.lightbox-close { position: absolute; top: 20px; right: 20px; width: 50px; height: 50px; background-color: var(--primary); color: var(--text-heading); display: flex; align-items: center; justify-content: center; cursor: pointer; border: none; font-size: 1.5rem; border-radius: var(--border-radius); /* MODIFIED */}
.lightbox-close:hover {
  background-color: var(--secondary);
  color: var(--accent-blue-deep); /* MODIFIED: High-contrast text color on hover */
}
.lightbox-nav-btn { width: 60px; height: 60px; background-color: var(--primary); color: var(--text-heading); display: flex; align-items: center; justify-content: center; cursor: pointer; border: none; font-size: 1.5rem; border-radius: var(--border-radius); /* MODIFIED */}
.lightbox-nav-btn:hover {
  background-color: var(--secondary);
  color: var(--accent-blue-deep); /* MODIFIED: High-contrast text color on hover */
}
.lightbox-nav { position: absolute; top: 50%; width: 100%; display: flex; justify-content: space-between; padding: 0 20px; transform: translateY(-50%); }
.lightbox-counter { position: absolute; top: 20px; left: 20px; background-color: var(--primary); color: var(--text-heading); padding: 5px 15px; font-weight: 400; font-size: 0.7rem; border-radius: var(--border-radius); /* MODIFIED */ }
.lightbox-thumbnails { position: absolute; bottom: 20px; left: 0; right: 0; display: flex; justify-content: center; gap: 10px; }
.lightbox-thumbnail { width: 60px; height: 40px; cursor: pointer; opacity: 0.6; transition: all 0.2s ease; border: 2px solid transparent; border-radius: var(--border-radius); /* MODIFIED */ }
.lightbox-thumbnail.active, .lightbox-thumbnail:hover { opacity: 1; border-color: var(--primary); }

/* ==========================================================================
   START: Index Page Specific Styles & Overrides
   ========================================================================== */

   body.index-page {
    /* Make border lines ~50% thicker (more opaque) for index page only */
    --border-color: rgba(255, 255, 255, 0.33);
  }
  
  .hero-bottom-grid.single-column .hero-cta .btn {
    white-space: nowrap; /* Prevent text wrapping on 'Get a Proposal' button */
    padding: 0.6125rem 2.4rem; /* 30% less vertical, 20% more horizontal */
  }
  
  /* === MODIFIED: Simplified Hero Layout === */
  .hero-bottom-grid.single-column {
    grid-template-columns: 1fr;
    border-top: 1px solid var(--border-color);
  }
  .hero-bottom-grid.single-column .hero-column {
    border-left: none;
    text-align: center;
    align-items: center;
    background-color: rgba(26, 27, 30, 0.5); /* MODIFIED */
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
  }
  .hero-bottom-grid.single-column .hero-title {
    max-width: 650px;
    margin-bottom: 1.5rem;
  }
  .hero-bottom-grid.single-column .hero-cta {
    justify-content: center;
    margin-bottom: 0;
  }
  /* Hide original grid/stats on homepage hero */
  .hero .hero-bottom-grid:not(.single-column),
  .hero .hero-stats {
    display: none;
  }
  
  /* === MODIFIED: Trust Signals Section === */
  #trust-signals {
    background-color: var(--surface-dark); /* CHANGED: Was white, now dark surface */
    border-bottom: 1px solid var(--border-color);
  }
  #trust-signals,
  #trust-signals .stat-number,
  #trust-signals .stat-label {
    color: var(--text-light); /* CHANGED: Was black, now light text */
  }
  
  #trust-signals .container {
    padding: 2.5rem;
  }
  #trust-signals .hero-stats {
    display: flex;
    justify-content: space-around;
    align-items: center;
    flex-wrap: wrap;
    gap: 2rem;
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
  }
  #trust-signals .stat-number {
    transform: scale(1);
    transition: none;
  }
  
 /* === MODIFIED: Logo Wall Section (Infinite Marquee) === */
 #logo-wall {
  height: auto;
  min-height: auto;
  padding: 4rem 0; 
  position: relative;
  display: block;
  border-bottom: 1px solid var(--border-color);
  background-color: var(--bg-dark);
}

#logo-wall .container {
  max-width: 100%;
  padding: 0;
}

#logo-wall .section-title {
  text-align: center;
  margin-bottom: 3rem; 
  padding: 0 2rem;
}

#logo-wall .section-title h2 { color: var(--text-heading); }
#logo-wall .section-title p { color: var(--text-light); }

/* Override ethos generic styles for this specific section */
#logo-wall .ethos-scroll-wrapper,
#logo-wall .ethos-sticky-text-wrapper,
#logo-wall .ethos-image-grid {
  display: contents;
}

/* Marquee Styles */
.marquee-wrapper {
    display: flex;
    flex-direction: column;
    width: 100%;
    overflow: hidden;
}

.logo-marquee-row {
    width: 100%;
    overflow: hidden;
    white-space: nowrap;
    padding: 2rem 0;
    position: relative;
}

/* Background Variations */
.logo-marquee-row.distinct-bg {
    background-color: var(--surface-dark); /* Different from section bg */
}
.logo-marquee-row.default-bg {
    background-color: var(--bg-dark); /* Same as section bg */
}

.logo-marquee-track {
    display: inline-flex;
    align-items: center;
    gap: 4rem; /* Spacing between logos */
    padding-left: 4rem; 
}

.logo-marquee-track img {
    height: 55px;
    width: auto;
    max-width: 180px;
    object-fit: contain;
    filter: grayscale(100%) brightness(0) invert(1);
    opacity: 0.6;
    transition: all 0.3s ease;
}

.logo-marquee-row:hover .logo-marquee-track img {
    opacity: 1;
    filter: grayscale(0%) brightness(100%) invert(0);
}

/* Animations */
.right-scroll .logo-marquee-track {
    animation: scroll-right 40s linear infinite;
}
.left-scroll .logo-marquee-track {
    animation: scroll-left 40s linear infinite;
}

/* Pause on hover */
.logo-marquee-row:hover .logo-marquee-track {
    animation-play-state: paused;
}

@keyframes scroll-left {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

@keyframes scroll-right {
    0% { transform: translateX(-50%); }
    100% { transform: translateX(0); }
}

@media (max-width: 768px) {
    #logo-wall { padding: 3rem 0; }
    .logo-marquee-row { padding: 1.5rem 0; }
    .logo-marquee-track { gap: 2rem; padding-left: 2rem; }
    .logo-marquee-track img { height: 40px; max-width: 140px; }
    /* Speed up slightly on mobile */
    .right-scroll .logo-marquee-track, 
    .left-scroll .logo-marquee-track { animation-duration: 25s; }
}
  
  /* MODIFIED: Capabilities Section Overrides */
  body.index-page #capabilities .feature-card {
      background-color: var(--surface-dark); /* ADDED: Lighter card background */
      display: block; /* Removes the two-column grid layout */
      padding: 2.5rem;
      transition: background-color 0.3s ease;
  }
  body.index-page #capabilities .feature-card:hover {
      background-color: var(--surface-hover);
  }
  body.index-page #capabilities .feature-card h3 {
      transition: color 0.3s ease; /* ADDED: Transition for hover effect */
  }
  body.index-page #capabilities .feature-card:hover h3 {
      color: var(--primary); /* ADDED: Header hover effect */
  }
  body.index-page #capabilities .feature-card-details {
      border-left: none; /* Remove legacy border */
      padding: 0; /* Remove legacy padding */
  }
  
  /* MODIFIED: Portfolio Section Overrides */
  body.index-page #works .project-card {
      background-color: var(--surface-dark); /* ADDED: Lighter card background */
  }
  body.index-page #works .project-title-text {
      font-family: var(--heading-font); /* CHANGED: Font to header font */
      font-style: italic;
      font-weight: 700;
      color: var(--text-heading); /* Made it brighter to stand out */
      font-size: 1.4rem;
      transition: color 0.3s ease; /* ADDED: Transition for hover */
  }
  body.index-page #works .project-card:hover .project-title-text {
      color: var(--primary); /* ADDED: Header hover effect */
  }
  
  /* ADDED: Styling for new static description text (replaces typewriter) */
  body.index-page #works .project-description {
      margin-top: 1rem;
      font-family: var(--body-font);
      font-size: 0.85rem;
      color: var(--text-light);
      opacity: 0.8;
      line-height: 1.6;
      max-width: 600px;
  }
  
  /* NEW: Make principles reveal text always visible */
  #principles .principle-card .service-includes {
      opacity: 1;
      max-height: 250px; /* A large enough value to not clip content */
      margin-top: 1rem;
      padding: 1.5rem;
  }

/* ==========================================================================
   START: Self-Contained Portfolio Component Styles
   ========================================================================== */
   @layer pf-portfolio {
    #pf-portfolio {
      --pf-sticky-top: 80px; 
      --pf-gap: clamp(1rem, 2vw, 2rem);
      /* REMOVED: --pf-rail-w variable */
      
      /* MODIFIED: Integrate site's new design system */
      --pf-radius: var(--border-radius);
      --pf-text: var(--text-light);
      --pf-text-muted: var(--text-muted);
      --pf-heading: var(--text-heading);
      --pf-bg: transparent;
      --pf-surface: var(--surface-dark);
      --pf-border: var(--border-color);
      --pf-primary: var(--primary);
      --pf-secondary: var(--secondary);
      --pf-focus-ring: 2px solid var(--pf-primary);
      --pf-transition: 0.3s ease;
    }
  
    :where(#pf-portfolio *) {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
      font: inherit;
      border-radius: 0;
    }
  
    #pf-portfolio {
      background-color: var(--pf-bg);
      color: var(--pf-text);
      padding: 0;
      font-family: var(--body-font);
      border-bottom: none;
      border-top: 1px solid var(--border-color);
    }
  
    /* REMOVED: Filter specific classes (.pf-filters-title, .pf-filters-list, .pf-filter-btn) */
  
    .pf-content {
      border-left: none; /* Removed border as sidebar is gone */
      width: 100%;
    }
    .pf-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 0;
    }
    .pf-card {
      background-color: transparent;
      overflow: hidden;
      cursor: pointer;
      border-bottom: 1px solid var(--pf-border);
      transition: background-color var(--pf-transition);
    }
    .pf-card:hover,
    .pf-card:focus-within {
       background-color: var(--pf-surface);
    }
    .pf-card:focus-visible {
      outline: var(--pf-focus-ring);
      outline-offset: -1px;
    }
    .pf-card-thumb {
      display: none;
    }
    .pf-card-body {
      padding: 2rem;
    }
    .pf-card-title {
      font-family: var(--heading-font);
      font-style: italic;
      font-weight: 700;
      color: var(--pf-heading);
      font-size: clamp(1.2rem, 3vw, 1.6rem);
      margin-bottom: 0.5rem;
    }
    .pf-card-category {
      font-size: 0.7rem;
      color: var(--pf-text-muted);
      margin-bottom: 1.5rem;
      text-transform: uppercase;
      letter-spacing: 1px;
    }
    
    .pf-card-details,
    .pf-card-brief {
      margin-bottom: 1.5rem;
    }
    .pf-card-details p,
    .pf-card-brief p {
      font-size: 0.8rem;
      line-height: 1.5;
      margin-bottom: 0.5rem;
    }
    .pf-card-details p:last-child,
    .pf-card-brief p:last-child {
        margin-bottom: 0;
    }
    .pf-card-action {
      margin-top: 1rem;
      align-self: flex-start;
      padding: 0.4rem 1rem;
      font-size: 0.6rem;
      border-radius: var(--pf-radius); /* MODIFIED */
    }
  
    .pf-preview {
      display: none;
    }
  
    @media (min-width: 980px) {
      .pf-wrapper {
        display: block; /* Changed from grid to block since sidebar is gone */
        padding: 0;
      }
      
      /* REMOVED: .pf-filters styles */
  
      .pf-content {
        margin-top: 0;
        display: grid;
        grid-template-columns: 1fr 1fr; /* Split 50/50 between Preview and List */
        gap: 0;
      }
      .pf-grid {
          grid-template-columns: 1fr;
          border-left: 1px solid var(--pf-border); /* Added border here to separate from preview */
      }
      
      .pf-card {
          display: flex;
          flex-direction: column;
          justify-content: center;
          align-items: center;
          text-align: center;
          min-height: calc(100vh - var(--pf-sticky-top));
          padding: 1rem;
      }
      .pf-card-body {
          padding: 0;
          max-width: 45ch;
      }
      
      .pf-card-action {
          align-self: center;
      }
  
      .pf-card:hover .pf-card-action {
          background: var(--text-heading);
          color: var(--primary);
          border-color: var(--text-heading);
      }
  
      .pf-preview {
        display: flex;
        align-items: center;
        justify-content: center;
        position: sticky;
        top: var(--pf-sticky-top);
        height: calc(100vh - var(--pf-sticky-top));
        overflow: hidden;
        padding: 4rem;
        /* Removed border-right from here, added border-left to .pf-grid instead for cleaner stacking */
      }
      .pf-preview img {
        width: 90%;
        height: 90%;
        max-height: 70vh;
        object-fit: contain;
        transition: opacity 0.4s ease, transform 0.4s ease;
        transform: scale(0.95);
        opacity: 0;
        border-radius: var(--pf-radius); /* MODIFIED */
      }
      .pf-preview img.pf-active {
          transform: scale(1);
          opacity: 1;
      }
      .pf-preview-caption {
        position: absolute;
        bottom: 4rem;
        left: 4rem;
        right: 4rem;
        padding: 1.5rem 1rem;
        color: var(--text-heading);
        font-size: 1.1rem;
        font-weight: 400;
        font-family: var(--body-font);
        text-align: center;
        min-height: 1.5em;
      }
    }

    @media (max-width: 767px) {
      #pf-portfolio .pf-wrapper {
        padding-left: 0;
        padding-right: 0;
      }
      #pf-portfolio .pf-card {
        border-left: none;
        border-right: none;
        align-items: flex-start;
      }
      #pf-portfolio .pf-card-body {
        padding: 1.5rem 1.25rem;
      }
      #pf-portfolio .pf-card-thumb {
        display: block;
        width: 100%;
        margin-bottom: 1rem;
      }
      #pf-portfolio .pf-card-thumb img {
        width: 100%;
        height: auto;
        border-radius: var(--pf-radius);
        border: 1px solid var(--pf-border);
      }
      #pf-portfolio .pf-card-title {
        font-size: 1.35rem;
        text-align: left;
      }
      #pf-portfolio .pf-card-details p,
      #pf-portfolio .pf-card-brief p {
        font-size: 0.85rem;
      }
      #pf-portfolio .pf-card-action {
        width: 100%;
        display: block;
        text-align: center;
        margin-top: 1.5rem;
      }
    }
  }

/* ==========================================================================
   START: Services Page Specific Styles
   ========================================================================== */
   .services-page .hero-subpage-wrapper {
    height: 50vh;
    min-height: auto;
  }
  .services-intro-banner {
    height: 50vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    border-bottom: 1px solid var(--border-color);
    position: relative;
    overflow: hidden;
  }
  .services-intro-banner .container {
    padding-top: 0;
    padding-bottom: 0;
    position: relative;
    z-index: 2;
  }
  .services-intro-banner p {
    max-width: 600px;
    font-size: clamp(1.1rem, 2.5vw, 1.3rem);
    line-height: 1.7;
    color: var(--light);
    margin-bottom: 0;
    margin-left: auto;
    margin-right: auto;
  }
  
  /* Added: Typewriter cursor effect for Services Page */
  .services-page #services-typewriter::after {
    content: '▋';
    display: inline-block;
    animation: blink 0.7s infinite;
    margin-left: 0.3em;
    opacity: 1;
  }
  .services-page #services-typewriter.finished-typing::after {
    opacity: 0;
  }
  
  #services aside nav ul {
    list-style: none;
    display: flex;
    flex-direction: column;
  }
  #services aside nav ul li {
    border-bottom: 1px solid var(--border-color);
  }
  #services aside nav ul li:first-child {
    border-top: 1px solid var(--border-color);
  }
  #services aside nav ul li a {
    display: block;
    padding: 1rem 0;
    color: var(--text-light);
    opacity: 0.9;
  }
  #services aside nav ul li a:hover {
    color: var(--text-heading);
  }
  
  #services .feature-card {
    min-height: 100vh;
    align-items: center;
  }
  #services .feature-card-description {
    font-size: 1.025rem;
  }
  #services .feature-card ul li {
    font-size: 0.63rem;
  }
  
  #services .feature-action-btn {
    position: static;
    width: auto;
    height: auto;
    background: transparent;
    font-size: 0.8rem;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--primary);
    opacity: 1;
    visibility: visible;
    transform: none;
    margin-top: 2rem;
    padding: 0;
    justify-content: flex-start;
    transition: color 0.3s ease;
  }
  #services .feature-card:hover .feature-action-btn {
    opacity: 1;
    visibility: visible;
    transform: none;
    color: var(--secondary);
  }
  
  .footer-callout .hero-cta {
    display: flex;
    justify-content: center;
    gap: 1rem;
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 0;
  }
  .footer-callout .hero-cta .btn {
    flex: 1;
  }
  
  /* === NEW: Services Page Enhancements (Scoped) === */
  .services-page #services {
    position: relative;
    z-index: 1;
  }
  
  .services-page #services::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: rgba(13, 13, 15, 0.85); /* MODIFIED */
    z-index: -1;
  }
  
  .services-page #services .video-background-wrapper {
    position: absolute;
    top: 0; left: 0;
    width: 100%;
    height: 100%;
    z-index: -2;
    overflow: hidden;
  }
  
  .services-page #services .feature-card-description {
    font-size: 1.13rem;
  }
  .services-page #services .feature-card ul li {
    font-size: 0.8rem;
  }
  
  .services-page #services .feature-card-details {
    position: relative;
    overflow: hidden;
  }
  
  .services-page #services .feature-card-details::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--accent-blue-soft-bg); /* MODIFIED */
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    z-index: 1;
  }
  
  .services-page #services .feature-card-details > * {
    position: relative;
    z-index: 2;
  }
  
  .services-page #services aside {
    position: sticky;
    top: 80px;
    align-self: start;
    height: calc(100vh - 80px);
    overflow: hidden;
  }
  
  .services-page #services aside::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: var(--accent-blue-medium-bg); /* MODIFIED */
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    z-index: 1;
  }
  
  .services-page #services aside > * {
    position: relative;
    z-index: 2;
  }
  /* intro-animated-square removed from here */
  
  @media (max-width: 767px) {
    .services-page #services aside {
      position: static;
      height: auto;
      padding-bottom: 2rem;
    }
    .services-page #services aside nav {
      display: none;
    }
    .services-page #services .feature-card {
      min-height: auto;
      padding: 2rem 1.25rem;
      background-color: var(--surface-dark);
      border: 1px solid var(--border-color);
      border-radius: var(--border-radius);
      margin-bottom: 1.5rem;
      display: flex;
      flex-direction: column;
      gap: 1.25rem;
    }
    .services-page #services .feature-card-details {
      padding: 0;
      border-left: none;
      background: transparent;
    }
    .services-page #services .feature-card-title {
      padding: 0 0 1rem;
      border-bottom: 1px solid var(--border-color);
      margin-bottom: 1.25rem;
      width: 100%;
      position: relative;
      z-index: 2;
      background: transparent;
    }
    .services-page #services .feature-card-title h3 {
      font-size: 1.1rem;
      color: var(--text-heading);
      }
    .services-page #services .feature-card-details::before {
      display: none;
      content: none;
    }
    .services-page #services .video-background-wrapper,
    .services-page #services::before {
      display: none;
    }
    .services-page #services {
      background: none;
    }
  }

/* ==========================================================================
   START: Approach Page Specific Styles
   ========================================================================== */

   #approach-page #intro.section {
    border-bottom: none;
  }
  
  #approach-page #intro .grid-container {
    border: 1px solid var(--border-color);
    border-top: 1px solid var(--border-color);
  }
  #approach-page #intro .grid-item {
    border: none;
    padding: 2rem;
  }
  #approach-page #intro .grid-item:first-child {
    border-right: 1px solid var(--border-color);
  }
  
  #approach-page #intro #typewriter-target::after {
    content: '▋';
    display: inline-block;
    animation: blink 0.7s infinite;
    margin-left: 0.3em;
    opacity: 1;
  }
  #approach-page #intro #typewriter-target.finished-typing::after {
    opacity: 0;
  }
  
  #approach-page #intro .practice-list {
    list-style-type: '• ';
    padding-left: 1.25em;
    font-size: clamp(0.7rem, 1.05vw, 0.7875rem);
  }
  #approach-page #intro .practice-list li {
    margin-bottom: 0.5rem;
  }
  
  #approach-page .intro-actions-container {
      margin-top: 1.5rem;
      width: 100%;
  }
  /* Updated for full width button layout */
  #approach-page .intro-actions-container .btn-block {
      width: 100%;
      display: block;
      text-align: center;
  }
  
  /* === Approach Page - Process Section Layout === */
  #approach-page #process .container {
    padding-top: 0;
    padding-bottom: 0;
  }
  
  #approach-page .approach-kicker {
    font-family: var(--body-font);
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--primary);
    margin-bottom: 1rem;
    display: block;
  }
  
  #approach-page #process .process-wrapper {
    display: grid;
    grid-template-columns: 100px 2fr;
    gap: 3rem;
  }
  #approach-page #process .process-sidebar {
    position: sticky;
    top: 150px;
    height: calc(100vh - 300px);
    display: flex;
    align-items: center;
    justify-content: center;
  }
  #approach-page .process-sidebar-text {
    writing-mode: vertical-rl;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-size: 0.8rem;
    color: var(--text-muted);
    transform: rotate(180deg);
    margin-left: 1rem;
  }
  #approach-page .process-line-svg {
    position: absolute;
    left: 1rem;
    top: 0;
    height: 100%;
    width: 2px;
  }
  #approach-page #process-line-path {
    stroke: var(--primary);
    stroke-width: 1.5;
    fill: none;
    transition: stroke-dashoffset 0.1s linear;
  }
  #approach-page .process-cards-wrapper {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 4rem 0;
  }
  #approach-page .process-cards-wrapper > * {
    border: 1px solid var(--border-color);
    padding: 2rem;
    background-color: rgba(26, 27, 30, 0.5); /* MODIFIED */
    backdrop-filter: blur(5px);
    border-radius: var(--border-radius); /* MODIFIED */
  }
  #approach-page .process-cards-wrapper h3 {
    font-size: clamp(1.1rem, 2.5vw, 1.3rem);
  }
  #approach-page .process-cards-wrapper em {
    display: block;
    margin-bottom: 1.5rem;
    color: var(--primary);
    font-style: normal;
    font-family: var(--body-font);
    font-size: 0.85rem;
  }
  #approach-page .process-cards-wrapper .btn {
      margin-top: 1.5rem;
      align-self: flex-start;
  }
  /* Styles for the new lists inside process cards */
  #approach-page .process-lists-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    margin-bottom: 1.5rem;
    font-size: 0.85rem;
  }
  #approach-page .process-lists-wrapper strong {
    display: block;
    margin-bottom: 0.5rem;
    text-transform: uppercase;
    font-size: 0.7rem;
    color: var(--text-muted);
    letter-spacing: 1px;
  }
  #approach-page .process-detail-list {
    padding-left: 1.2rem;
    margin-bottom: 0;
  }
  #approach-page .process-detail-list li {
    margin-bottom: 0.5rem;
  }
  #approach-page .process-outcome {
    padding-top: 1rem;
    border-top: 1px solid var(--border-color);
    margin-bottom: 0;
  }
  
  #approach-page .proof-list {
    list-style-type: none;
    padding-left: 0;
  }
  #approach-page .proof-list li {
    margin-bottom: 0.5rem;
  }
  
  @media (max-width: 900px) {
    #approach-page #process .process-wrapper {
      grid-template-columns: 1fr;
      gap: 0;
    }
    #approach-page #process .process-sidebar {
      display: none;
    }
    #approach-page .process-lists-wrapper {
      grid-template-columns: 1fr;
      gap: 1.5rem;
    }
  }
  
  /* === Approach Page - Principles Video BG === */
  #approach-page #principles {
    position: relative;
    z-index: 1;
    overflow: hidden;
  }
  #approach-page #principles::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: rgba(13, 13, 15, 0.85); /* MODIFIED */
    z-index: -1;
  }
  #approach-page #principles .grid-item:nth-child(3n + 1) {
      border-left: none;
  }
  #approach-page #principles .service-includes p {
    margin-bottom: 0.5rem;
    position: relative;
    padding-left: 1rem;
  }
  #approach-page #principles .service-includes p::before {
    content: '•';
    position: absolute;
    left: 0;
    color: var(--primary);
  }
  
  /* === Approach Page - FAQ Layout === */
  #approach-page #faq .faq-wrapper {
    display: grid;
    grid-template-columns: 1fr;
  }
  #approach-page #faq .faq-accordion details {
    border: none;
    border-bottom: 1px solid var(--border-color);
    padding: 0;
  }
  #approach-page #faq .faq-accordion details:first-child {
    border-top: 1px solid var(--border-color);
  }
  #approach-page #faq details[open] {
    background-color: var(--surface-soft-bg);
  }
  #approach-page #faq summary {
    cursor: pointer;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 2rem 0;
  }
  #approach-page #faq summary::-webkit-details-marker {
    display: none;
  }
  #approach-page #faq summary h3 {
    margin-bottom: 0;
    font-size: clamp(1.1rem, 2.5vw, 1.3rem);
  }
  #approach-page #faq summary::after {
    content: '+';
    font-family: var(--heading-font);
    font-size: 2rem;
    font-weight: 700;
    color: var(--primary);
    transition: transform 0.3s ease-in-out;
  }
  #approach-page #faq details[open] summary::after {
    content: '−';
    transform: rotate(180deg);
  }
  #approach-page #faq .faq-content {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    padding: 0;
    transition: max-height 0.5s ease-in-out, opacity 0.4s ease-in-out, padding-bottom 0.5s ease-in-out;
  }
  #approach-page #faq details[open] .faq-content {
    max-height: 40rem; /* Increased for longer answers */
    opacity: 1;
    padding-bottom: 2rem;
  }
  #approach-page #faq .faq-content p:last-child {
    margin-bottom: 0;
  }
  #approach-page #faq .faq-content ul {
    padding-left: 1.5rem;
    margin-bottom: 1.5rem;
  }
  #approach-page #faq .faq-content li {
    margin-bottom: 0.5rem;
  }

/* ==========================================================================
   START: About Page Specific Styles
   ========================================================================== */
   .about-page .no-bottom-border {
    border-bottom: none !important;
  }
  
  .about-page .hero-subpage-wrapper {
    height: 40vh;
    min-height: 300px;
  }
  .about-page #about-hero .hero-subpage-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    max-width: 900px;
  }
  .about-page #about-hero .hero-image-content {
    display: none;
  }
  
  .about-page #about-intro {
    height: 60vh;
    min-height: 400px;
  }
  
  .about-page .gapped-grid {
    display: grid;
    gap: 1rem;
    border-top: none;
  }
  .about-page .gapped-grid > .grid-item {
    border: 1px solid var(--border-color);
    padding: 2rem;
    border-radius: var(--border-radius); /* MODIFIED */
  }
  .about-page #about-story .gapped-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .about-page #about-team .gapped-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  
  @media (max-width: 767px) {
    .about-page #about-story .gapped-grid {
      grid-template-columns: 1fr;
    }
     .about-page #about-team .gapped-grid {
      grid-template-columns: 1fr;
    }
  }
  
  .about-page .values-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    border-top: none;
  }
  .about-page .value-card {
    border: 1px solid var(--border-color);
    padding: 2rem;
    aspect-ratio: 1 / 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    transition: background-color 0.3s ease;
    border-radius: var(--border-radius); /* MODIFIED */
  }
  .about-page .value-card:hover {
    background-color: var(--surface-hover);
  }
  .about-page .value-card p {
    margin-bottom: 0;
  }
  .about-page .value-reveal {
    display: block;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.4s ease-in-out, opacity 0.4s ease-in-out, margin-top 0.4s ease-in-out, padding 0.4s ease-in-out;
    background-color: var(--accent-blue-medium-bg); /* MODIFIED */
    padding: 0 1rem;
    font-size: 0.75rem;
    color: var(--light);
    border-radius: var(--border-radius); /* MODIFIED */
  }
  .about-page .value-card:hover .value-reveal {
    opacity: 1;
    max-height: 100px;
    margin-top: 1.5rem;
    padding: 0.75rem 1rem;
  }
  
  @media (max-width: 1024px) {
    .about-page .values-grid {
      grid-template-columns: repeat(2, 1fr);
    }
  }
  @media (max-width: 767px) {
    .about-page .values-grid {
      grid-template-columns: 1fr;
    }
    .about-page .value-card {
      aspect-ratio: auto;
      min-height: 200px;
    }
  }
  
  .about-page #about-story .fact-stack {
    list-style: none;
    padding: 0;
    margin-bottom: 2rem;
  }
  .about-page #about-story .fact-stack li {
    margin-bottom: 1rem;
    padding-left: 1.5rem;
    position: relative;
  }
  .about-page #about-story .fact-stack li::before {
    content: '•';
    position: absolute;
    left: 0;
    color: var(--primary);
    font-weight: 700;
  }
  .about-page #about-story .pull-quote {
    border-left: 3px solid var(--primary);
    padding-left: 1.5rem;
    font-family: var(--heading-font);
    font-style: italic;
    font-size: clamp(1rem, 2vw, 1.3rem);
    color: var(--light);
  }
  
  .about-page .story-detail-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    align-items: center;
  }
  .about-page .story-image-wrapper {
    padding: 1rem;
    border: 1px solid var(--border-color);
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--border-radius); /* MODIFIED */
  }
  .about-page .story-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: var(--border-radius); /* MODIFIED */
  }
  @media (max-width: 992px) {
    .about-page .story-detail-grid {
      grid-template-columns: 1fr;
    }
  }
  
  .about-page #about-team {
    position: relative;
    z-index: 1;
    overflow: hidden;
  }
  .about-page #about-team::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: rgba(13, 13, 15, 0.85); /* MODIFIED */
    z-index: -1;
  }
  .about-page #about-team .grid-item {
    display: flex;
    flex-direction: column;
    background-color: transparent;
    transition: background-color 0.3s ease;
  }
  .about-page #about-team .team-card-image {
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    margin-bottom: 1.5rem;
    border-radius: var(--border-radius); /* MODIFIED */
  }
  .about-page #about-team .team-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(1);
    transition: all 0.3s ease;
  }
  .about-page #about-team .grid-item:hover .team-card-image img {
    filter: grayscale(0);
    transform: scale(1.05);
  }
  .about-page #about-team .team-card-role {
    font-size: 0.7rem;
    text-transform: uppercase;
    color: var(--primary);
    margin-bottom: 0.5rem;
    letter-spacing: 1px;
  }
  .about-page #about-team .bio-toggle {
    background: none;
    border: none;
    color: var(--secondary);
    cursor: pointer;
    text-align: left;
    padding: 0;
    margin-top: auto;
    font-family: var(--body-font);
    font-size: 0.7rem;
  }
  .about-page #about-team .bio-extra {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: all 0.3s ease-in-out;
  }
  .about-page #about-team .grid-item.is-expanded .bio-extra {
    max-height: 10rem;
    opacity: 1;
    margin-top: 1rem;
  }
  
  
  .about-page #about-tools {
    border-bottom: none;
  }
  .about-page .tools-logo-strip {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 3rem;
    padding: 2rem 0;
  }
  .about-page .tool-item {
    position: relative;
  }
  .about-page .tool-item img {
    max-width: 140px;
    height: 35px;
    object-fit: contain;
    filter: grayscale(1) brightness(1.5) contrast(0.8);
    opacity: 0.7;
    transition: all 0.3s ease;
  }
  .about-page .tool-item:hover img {
    filter: none;
    opacity: 1;
  }
  .about-page .tool-item .tooltip {
    position: absolute;
    bottom: 125%;
    left: 50%;
    transform: translateX(-50%);
    background-color: var(--primary);
    color: var(--text-heading);
    padding: 0.5rem 1rem;
    font-size: 0.7rem;
    font-family: var(--body-font);
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    pointer-events: none;
    border-radius: var(--border-radius); /* MODIFIED */
  }
  .about-page .tool-item:hover .tooltip {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(-5px);
  }
  
  .about-page #about-process .process-stepper {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1rem;
    border: none;
  }
  .about-page .process-step {
    border: 1px solid var(--border-color);
    padding: 2rem;
    text-align: center;
    position: relative;
    cursor: default;
    border-radius: var(--border-radius); /* MODIFIED */
    background-color: var(--surface-dark);
  }
  .about-page .process-step .step-detail {
    font-size: 0.75rem;
    color: var(--text-light);
    opacity: 0.9;
    display: block;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.4s ease-in-out, opacity 0.4s ease-in-out, margin-top 0.4s ease-in-out;
  }
  .about-page .process-step:hover .step-detail {
    opacity: 1;
    max-height: 100px;
    margin-top: 1rem;
  }
  
  @media (max-width: 900px) {
    .about-page #about-process .process-stepper {
      grid-template-columns: 1fr;
    }
    .about-page .process-step {
      border-bottom: 1px solid var(--border-color);
    }
    .about-page .process-step:last-child {
      border-bottom: 1px solid var(--border-color);
    }
    .about-page .process-step .step-detail { 
      opacity: 1;
      max-height: 100px;
      margin-top: 1rem;
    }
  }
  
  .about-page #about-cta {
    background-color: var(--background-blue);
    min-height: 50vh;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .about-page #about-cta .container {
    text-align: center;
  }
  .about-page #about-cta .cta-buttons {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-top: 2rem;
  }
  .about-page .footer {
    min-height: 50vh;
  }

/* ==========================================================================
   START: Pricing Page Specific Styles
   ========================================================================== */
   .pricing-page .no-bottom-border {
    border-bottom: none !important;
  }
  .pricing-page main .section:first-child {
    border-bottom: none;
  }
  
  .pricing-page .hero-subpage-wrapper {
    height: 50vh;
    min-height: 300px;
  }
  
  .pricing-page .hero-subpage-content h1 {
      margin-bottom: 0.5rem;
  }
  
  .pricing-page .pricing-intro-kicker {
      font-family: var(--body-font);
      font-size: clamp(1rem, 2vw, 1.2rem);
      color: var(--light);
      opacity: 0.9;
      margin-top: 0.5rem;
  }
  
  .pricing-page #pricing-page-intro-text {
    min-height: 400px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    border-bottom: 1px solid var(--border-color);
    padding: 4rem 0;
  }
  .pricing-page #pricing-page-intro-text .container {
    max-width: 800px;
    margin: 0 auto;
  }
  .pricing-page #pricing-page-intro-text .pricing-intro-subtext {
    font-size: clamp(1rem, 2vw, 1.2rem);
    line-height: 1.7;
    max-width: 750px;
    margin: 0 auto 2.5rem;
    color: var(--text-light);
    opacity: 0.9;
  }
  .pricing-page #pricing-typewriter::after {
    content: '▋';
    display: inline-block;
    animation: blink 0.7s infinite;
    margin-left: 0.3em;
    opacity: 1;
  }
  .pricing-page #pricing-typewriter.finished-typing::after {
    opacity: 0;
  }
  .pricing-page .hero-cta {
    display: flex;
    justify-content: center;
    gap: 1rem;
    flex-wrap: wrap;
  }
  
  /* Pricing Grids */
  .pricing-page .pricing-grid {
    display: grid;
    gap: 1.5rem;
  }
  .pricing-page .pricing-grid.grid-2 { 
      grid-template-columns: repeat(2, 1fr); 
  }
  .pricing-page .pricing-grid.grid-3 { 
      grid-template-columns: repeat(3, 1fr); 
  }
  
  /* Pricing Cards */
  .pricing-page .pricing-card {
    border: 1px solid var(--border-color);
    padding: 2.5rem;
    display: flex;
    flex-direction: column;
    border-radius: var(--border-radius);
    background-color: var(--surface-dark);
    height: 100%; /* Ensure equal heights in grid */
  }
  .pricing-page .pricing-card.popular {
    border-color: var(--primary);
    position: relative;
    z-index: 2;
    box-shadow: 0 0 30px rgba(59, 130, 246, 0.1);
  }
  .pricing-page .pricing-card-header {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 1rem;
  }
  .pricing-page .pricing-card h3 {
    margin-bottom: 0;
    font-size: clamp(1.3rem, 2.5vw, 1.6rem);
    color: var(--text-heading);
  }
  .pricing-page .price-range {
    font-family: var(--body-font);
    font-size: 0.9rem;
    color: var(--text-heading);
    font-weight: 700;
    padding: 0.2rem 0.5rem;
    position: relative;
    z-index: 1;
    display: inline-block;
    align-self: flex-start;
    margin-top: 0.5rem;
  }
  .pricing-page .price-range::before {
    content: '';
    position: absolute;
    top: -0.1em; left: -0.5em; right: -0.5em; bottom: -0.1em;
    background-color: var(--primary);
    z-index: -1;
    transform: skewX(-10deg);
    border-radius: 2px;
  }
  .pricing-page .pricing-card-desc {
    color: var(--text-light);
    font-size: 0.9rem;
    margin-bottom: 1rem;
  }
  .pricing-page .pricing-card-best-for {
      font-size: 0.8rem;
      color: var(--text-muted);
      margin-bottom: 0;
      padding-bottom: 1rem;
      border-bottom: 1px solid var(--border-color);
  }
  .pricing-page .pricing-card h4 {
    font-family: var(--body-font);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--primary);
    margin-top: 1.5rem;
    margin-bottom: 1rem;
  }
  
  /* Lists */
  .pricing-page .feature-list {
    list-style-type: disc;
    padding-left: 1.25em;
    font-size: 0.85rem;
    line-height: 1.6;
    color: var(--text-light);
    margin-bottom: 1.5rem;
  }
  .pricing-page .feature-list li {
    margin-bottom: 0.5rem;
    color: var(--text-light);
  }
  .pricing-page .feature-list li::marker {
      color: var(--primary);
  }
  
  .pricing-page .pricing-card-footer {
    margin-top: auto;
    padding-top: 1.5rem;
    border-top: 1px solid var(--border-color);
  }
  .pricing-page .pricing-footer-note {
      font-style: italic;
      font-size: 0.8rem;
      color: var(--text-muted);
      margin-bottom: 0;
  }
  
  /* Payment Terms Card */
  .pricing-page .pricing-terms-card {
      background-color: var(--surface-dark);
      border: 1px solid var(--border-color);
      border-radius: var(--border-radius);
      padding: 3rem;
  }
  .pricing-page .pricing-terms-card h3 {
      margin-bottom: 2rem;
      text-align: center;
  }
  .pricing-page .terms-content {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 3rem;
  }
  .pricing-page .term-group h4 {
      color: var(--primary);
      font-family: var(--heading-font);
      font-size: 1.2rem;
      margin-bottom: 1rem;
      font-style: italic;
  }
  .pricing-page .term-group p {
      color: var(--text-light);
      margin-bottom: 1rem;
  }
  
  /* Responsive */
  @media (max-width: 1024px) {
    .pricing-page .pricing-grid.grid-3 {
      grid-template-columns: repeat(2, 1fr);
    }
    /* Make the last item in a 3-grid span full width on tablet if odd */
    .pricing-page .pricing-grid.grid-3 .pricing-card:last-child:nth-child(odd) {
        grid-column: span 2;
    }
  }
  @media (max-width: 900px) {
    .pricing-page .terms-content {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
  }
  @media (max-width: 767px) {
    .pricing-page .hero-subpage-wrapper,
    .pricing-page #pricing-page-intro-text {
        height: auto;
        min-height: 0;
    }
    .pricing-page .hero-subpage-wrapper {
      padding-top: 8rem;
      padding-bottom: 4rem;
    }
     .pricing-page #pricing-page-intro-text {
      padding-top: 2rem;
      padding-bottom: 4rem;
    }
    .pricing-page .pricing-grid.grid-2,
    .pricing-page .pricing-grid.grid-3 {
        grid-template-columns: 1fr;
    }
    .pricing-page .pricing-grid.grid-3 .pricing-card:last-child:nth-child(odd) {
        grid-column: span 1;
    }
    .pricing-page .pricing-card {
      padding: 1.5rem;
    }
    .pricing-page .pricing-terms-card {
        padding: 1.5rem;
    }
  }

/* ==========================================================================
   START: Insights Page Specific Styles
   ========================================================================== */
   .insights-page .no-bottom-border {
    border-bottom: none !important;
  }
  .insights-page .hero-subpage-wrapper {
    height: 45vh; 
    min-height: 300px;
  }
  .insights-page #insights-intro {
    height: 55vh;
    min-height: 400px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-bottom: 1px solid var(--border-color);
  }
  .insights-page #insights-intro .container {
      padding-top: 0;
      padding-bottom: 0;
  }
  .insights-page #insights-intro p {
    font-size: clamp(1.1rem, 2.5vw, 1.3rem);
    max-width: 700px;
  }
  .insights-page .insights-intro-ctas {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin: 2rem 0;
  }
  .insights-page .insights-intro-stats {
    margin-top: 3rem;
    justify-content: center;
  }
  
  .insights-page .insights-filters-wrapper {
    border-bottom: none; 
  }
  .insights-page .insights-filters {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    padding: 1.5rem 0;
    flex-wrap: wrap;
  }
  .insights-page .insight-filter-btn {
    display: inline-block;
    padding: 0.5rem 1.25rem;
    border: 1px solid var(--border-color);
    background-color: transparent;
    color: var(--light);
    cursor: pointer;
    transition: all 0.3s ease;
    text-transform: uppercase;
    font-size: 0.75rem;
    letter-spacing: 0.5px;
    font-family: var(--button-font);
    border-radius: var(--border-radius); /* MODIFIED */
  }
  .insights-page .insight-filter-btn:hover {
    background-color: var(--surface-hover);
    border-color: var(--light);
  }
  .insights-page .insight-filter-btn[aria-pressed="true"] {
    background-color: var(--primary);
    border-color: var(--primary);
    color: var(--text-heading);
  }
  
  .insights-page #articles .container {
    padding-top: 6rem;
    padding-bottom: 0;
  }
  .insights-page .insights-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
  }
  .insights-page .article-card {
    border: 1px solid var(--border-color);
    padding: 2.5rem;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    transition: background-color 0.3s ease;
    height: 100%;
    border-radius: var(--border-radius); /* MODIFIED */
    background-color: var(--surface-dark);
  }
  .insights-page .article-card:hover {
    background-color: var(--surface-hover);
  }
  .insights-page .article-card .article-category {
    font-family: var(--body-font);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--primary);
    margin-bottom: 1rem;
  }
  .insights-page .article-card h3 {
    margin-bottom: 1rem;
    font-size: clamp(1rem, 2.2vw, 1.2rem);
  }
  .insights-page .article-card p {
    margin-bottom: 0;
    font-size: 0.8rem;
    color: var(--text-muted);
  }
  
  .insights-page #cornerstone-guides .container {
      padding-top: 6rem;
      padding-bottom: 0;
  }
  .insights-page #cornerstone-guides .grid-container {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
    border-top: none;
  }
  .insights-page .guide-card {
    border: 1px solid var(--border-color);
    grid-column: span 1 !important;
    padding: 2.5rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    border-radius: var(--border-radius); /* MODIFIED */
    background-color: var(--surface-dark);
  }
  .insights-page .guide-label {
    display: inline-block;
    background-color: var(--primary); 
    color: var(--text-heading);
    padding: 0.25rem 0.75rem;
    font-size: 0.7rem;
    font-family: var(--body-font);
    text-transform: uppercase;
    margin-bottom: 1.5rem;
    border-radius: var(--border-radius); /* MODIFIED */
  }
  .insights-page .guide-card p {
    margin-bottom: 2rem;
    color: var(--text-light);
    opacity: 0.9;
  }
  .insights-page .guide-card .btn {
    margin-top: auto;
  }
  
  .insights-page #author-bio .container {
      padding-top: 6rem;
      padding-bottom: 0;
  }
  .insights-page .author-bio-wrapper {
    max-width: 600px;
    margin: 0 auto;
  }
  .insights-page .author-avatar {
    width: 60px;
    height: 60px;
    margin: 0 auto 1.5rem;
    background-color: var(--surface-soft-bg);
    border: 1px solid var(--border-color);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    border-radius: var(--border-radius); /* MODIFIED */
  }
  .insights-page .author-avatar img {
    width: 100%;
    height: auto;
    filter: brightness(0) invert(1);
  }
  .insights-page #author-bio p {
    color: var(--text-light);
    opacity: 0.9;
    margin-bottom: 0;
  }
  
  .insights-page #faq .container {
      padding-top: 6rem;
      padding-left: 1rem;
      padding-right: 1rem;
  }
  .insights-page #faq .faq-accordion {
    max-width: none;
    margin: 0 auto;
  }
  .insights-page #faq details {
    border-bottom: 1px solid var(--border-color);
  }
  .insights-page #faq details:first-child {
    border-top: 1px solid var(--border-color);
  }
  .insights-page #faq details[open] {
    background-color: var(--surface-soft-bg);
  }
  .insights-page #faq summary {
    cursor: pointer;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 1.5rem 0;
  }
  .insights-page #faq summary::-webkit-details-marker {
    display: none;
  }
  .insights-page #faq summary h3 {
    margin-bottom: 0;
    font-size: clamp(1rem, 2vw, 1.2rem);
  }
  .insights-page #faq summary::after {
    content: '+';
    font-family: var(--heading-font);
    font-size: 2rem;
    font-weight: 700;
    color: var(--primary);
    transition: transform 0.3s ease-in-out;
  }
  .insights-page #faq details[open] summary::after {
    content: '−';
    transform: rotate(180deg);
  }
  .insights-page #faq .faq-content {
    padding: 0 0 1.5rem;
    max-width: 90%;
  }
  .insights-page #faq .faq-content p:last-child {
    margin-bottom: 0;
  }
  
  .insights-page .footer-callout {
    min-height: 40vh;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .insights-page .footer {
    min-height: 60vh;
  }
  
  @media (max-width: 992px) {
    .insights-page .insights-grid {
      grid-template-columns: repeat(2, 1fr);
    }
  }
  @media (max-width: 767px) {
    .insights-page .hero-subpage-wrapper,
    .insights-page #insights-intro,
    .insights-page .footer-callout,
    .insights-page .footer {
      height: auto;
      min-height: 0;
    }
    .insights-page .hero-subpage-wrapper {
        padding-top: 8rem;
        padding-bottom: 2rem;
    }
    .insights-page #insights-intro {
        padding: 4rem 2rem;
    }
    .insights-page .footer-callout {
        padding: 4rem 2rem;
    }
    .insights-page .insights-grid,
    .insights-page #cornerstone-guides .grid-container {
      grid-template-columns: 1fr;
    }
    .insights-page .insights-intro-ctas {
      flex-direction: column;
    }
  }

.insights-page .article-card {
  justify-content: space-between;
}
.insights-page .article-card .article-card-content {
  flex-grow: 1;
}
.insights-page .article-card h3 a {
  color: inherit;
  text-decoration: none;
  transition: color 0.3s ease;
}
.insights-page .article-card:hover h3 a {
  color: var(--primary);
}
.insights-page .article-card .article-card-footer {
  margin-top: 1.5rem;
}
.insights-page .article-card .article-cta {
  padding: 0.6rem 1.2rem;
  font-size: 0.7rem;
}

.insights-page .gated-content-form {
  padding-top: 2rem;
  border-top: 1px solid var(--border-color);
  margin-top: 2rem;
}
.insights-page .gated-form-intro {
  font-size: 0.8rem;
  text-align: center;
  margin-bottom: 1rem;
  color: var(--text-light);
  opacity: 0.9;
}
.insights-page .gated-content-form .form-group {
  margin-bottom: 0.75rem;
}
.insights-page .gated-content-form .form-group:last-of-type {
  margin-bottom: 1rem;
}

.insights-page .author-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  max-width: 900px;
  margin: 3rem auto 0;
}
.insights-page .author-card {
  border: 1px solid var(--border-color);
  padding: 2rem;
  text-align: center;
  background-color: var(--surface-soft-bg);
  border-radius: var(--border-radius); /* MODIFIED */
}
.insights-page .author-card-avatar {
  width: 100px;
  height: 100px;
  margin: 0 auto 1.5rem;
  overflow: hidden;
  border-radius: var(--border-radius); /* MODIFIED */
}
.insights-page .author-card-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1);
  transition: filter 0.3s ease;
}
.insights-page .author-card:hover .author-card-avatar img {
  filter: grayscale(0);
}
.insights-page .author-card .author-name {
  margin-bottom: 0.25rem;
  font-size: clamp(1rem, 2.2vw, 1.2rem);
}
.insights-page .author-card .author-title {
  font-family: var(--body-font);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--primary);
  margin-bottom: 1rem;
  display: block;
}
.insights-page .author-card .author-bio-snippet {
  font-size: 0.8rem;
  color: var(--text-muted);
  margin-bottom: 0;
}

@media (max-width: 767px) {
  .insights-page .author-grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   START: Contact Page Specific Styles
   ========================================================================== */
   .contact-page .hero-subpage-wrapper {
    height: 40vh;
    min-height: 300px;
  }
  
  .contact-page #contact-intro {
    height: 30vh;
    min-height: 250px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
  }
  .contact-page #contact-intro p {
    max-width: 650px;
    font-size: clamp(1.1rem, 2.5vw, 1.3rem);
    line-height: 1.7;
    color: var(--light);
    margin: 0 auto;
  }
  .contact-page #contact-typewriter::after {
    content: '▋';
    display: inline-block;
    animation: blink 0.7s infinite;
    margin-left: 0.3em;
    opacity: 1;
  }
  .contact-page #contact-typewriter.finished-typing::after {
    opacity: 0;
  }
  
  .contact-page #contact .container {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
  
  .contact-page #contact .grid-container {
    gap: 1rem;
    border-top: none;
  }
  
  .contact-page #contact .contact-form {
    border: 1px solid var(--border-color);
    background-color: var(--surface-dark);
    border-radius: var(--border-radius); /* MODIFIED */
  }
  
  .contact-page #contact .grid-item {
    border: none;
  }
  
  .contact-page #contact .contact-info {
    padding: 0;
  }
  
  .contact-page .info-card {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    padding: 2rem;
    transition: background-color 0.3s ease;
    border-radius: var(--border-radius); /* MODIFIED */
  }
  .contact-page .info-card:hover {
    background-color: var(--surface-soft-bg);
  }
  .contact-page .info-card .info-icon {
    flex-shrink: 0;
    margin-bottom: 0;
    width: 50px;
    height: 50px;
    background-color: var(--accent-blue-soft-bg); /* MODIFIED */
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--border-radius); /* MODIFIED */
  }
  .contact-page .info-card .info-details h3 {
    margin-bottom: 0.25rem;
  }
  .contact-page .info-card .info-details p,
  .contact-page .info-card .info-details a {
    margin-bottom: 0;
  }
  .contact-page .info-card .info-details,
  .contact-page .info-card .info-details p,
  .contact-page .info-card .info-details a {
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  
  .contact-page .footer-callout {
    min-height: 50vh;
  }
  .contact-page .footer {
    min-height: 50vh;
  }
  
  @media (max-width: 1024px) {
    .contact-page #contact .grid-container {
      gap: 0;
    }
    .contact-page #contact .contact-form {
      border: none;
      border-bottom: 1px solid var(--border-color);
      background-color: transparent;
      border-radius: 0;
    }
    .contact-page #contact .contact-info {
      padding: 2rem;
    }
  }
  
  @media (max-width: 767px) {
    .contact-page .hero-subpage-wrapper,
    .contact-page #contact-intro,
    .contact-page .footer-callout,
    .contact-page .footer {
      height: auto;
      min-height: 0;
    }
    .contact-page .hero-subpage-wrapper {
      padding: 8rem 2rem 2rem;
    }
    .contact-page #contact-intro {
      padding: 4rem 2rem;
    }
    .contact-page .footer-callout {
       padding: 4rem 2rem;
    }
    .contact-page #contact .container {
      /* Allow the contact section to breathe on mobile without forcing horizontal scroll */
      padding-left: clamp(0.35rem, 2vw, 1.25rem);
      padding-right: clamp(0.35rem, 2vw, 1.25rem);
    }
    .contact-page #contact .grid-container {
      grid-template-columns: 1fr;
      border-top: none;
      gap: 1rem;
    }
    .contact-page #contact .grid-item {
      padding: 0;
      grid-column: span 1;
      width: 100%;
      display: block;
      margin: 0;
    }
    .contact-page #contact .grid-container,
    .contact-page #contact .grid-item,
    .contact-page #contact .contact-form,
    .contact-page #contact .contact-info,
    .contact-page .info-card,
    .contact-page .info-card .info-details,
    .contact-page #contact .contact-form .form-group {
      width: 100%;
      max-width: 100%;
      min-width: 0;
      box-sizing: border-box;
    }
    .contact-page #contact .contact-form,
    .contact-page #contact .contact-info {
      padding: 1.25rem;
      padding-left: clamp(0.35rem, 2vw, 1.25rem);
      padding-right: clamp(0.35rem, 2vw, 1.25rem);
      border: 1px solid var(--border-color);
      background: var(--surface-dark);
      border-radius: var(--border-radius);
      margin: 0 auto 1.25rem;
      width: 100%;
    }
    .contact-page #contact .contact-form {
      border-bottom: 1px solid var(--border-color);
    }
    .contact-page #contact .contact-info {
      padding-top: 1.5rem;
    }
    .contact-page .info-card {
      flex-direction: column;
      align-items: flex-start;
      width: 100%;
      padding: 1rem;
      padding-left: clamp(0.5rem, 2.5vw, 1.25rem);
      padding-right: clamp(0.5rem, 2.5vw, 1.25rem);
      gap: clamp(0.75rem, 3vw, 1.25rem);
      border-radius: var(--border-radius);
    }
    .contact-page .info-card .info-icon {
      margin-bottom: 0.75rem;
    }
  }
@media (max-width: 480px) {
  /* Keep the reCAPTCHA widget inside the viewport on very small screens */
  .contact-page .g-recaptcha {
    transform: scale(0.9);
    transform-origin: top left;
    width: calc(304px * 0.9) !important;
    height: calc(78px * 0.9) !important;
  }
}

@media (max-width: 360px) {
  .contact-page .g-recaptcha {
    transform: scale(0.8);
    transform-origin: top left;
    width: calc(304px * 0.8) !important;
    height: calc(78px * 0.8) !important;
  }
}
