@font-face {
  font-family: 'Agipo Bold Condensed';
  src: url('Agipo_Bold_Condensed.woff2') format('woff2'),
       url('Agipo_Bold_Condensed.woff') format('woff'),
       url('Agipo_Bold_Condensed.eot');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

.logo-wordmark {
  font-family: 'Agipo Bold Condensed', serif;
  font-weight: 700;
  letter-spacing: 0.04em;
  font-size: 25px; /* ~10% smaller */
  line-height: 1;
  white-space: nowrap;
  display: inline-block;
  padding-right: 8px; /* ensure space before tagline */
}

@media (min-width: 768px) {
  .logo-wordmark { font-size: 31px; padding-right: 12px; }
}
@media (min-width: 1024px) {
  .logo-wordmark { font-size: 36px; padding-right: 16px; }
}

/* Header nav sizing that stays within the bar */
.nav-wordmark { font-size: 20px; padding-right: 6px; line-height: 1; }
@media (min-width: 768px){ .nav-wordmark{ font-size: 26px; padding-right: 12px; }}
@media (min-width: 1024px){ .nav-wordmark{ font-size: 30px; padding-right: 14px; }}
.nav-tagline { font-size: 14px; line-height: 1.1; }
@media (min-width: 768px){ .nav-tagline{ font-size: 18px; line-height: 1; }}
/* Ensure tagline keeps its own casing and font (not the CAPS of the parent link) */
.header__nav-logo .nav-tagline{
  text-transform: none !important;
  font-family: var(--font-body, inherit);
  font-weight: 400;
  letter-spacing: normal;
}

/* Accent color for LA */
.accent-la{ color: #FF385C; }

/* Footer full-width wordmark */
.full-width-wordmark{
  width: 100%;
  display: block;
  white-space: nowrap;
  line-height: .88;             /* prevent top cropping */
  letter-spacing: -0.06em;      /* tighten a bit more to remove right gap */
  font-family: 'Agipo Bold Condensed', serif;
  font-weight: 700;
  font-size: clamp(64px, 22vw, 360px); /* fill width a bit more */
  padding-top: 0.02em;          /* nudge down to avoid clipping */
  overflow: visible;
  transform-origin: left center;
  transform: scaleX(1.04);      /* slight horizontal stretch to fully meet right edge */
}

/* Nav logo sizing: fit the icon to the menu bar height */
.header__nav-logo img {
  height: clamp(16px, calc(var(--header-height) * 0.6), 38px); /* ~40% smaller */
  width: auto;
  display: block;
}

/* Partners marquee */
.partners-marquee { 
  position: relative; 
  overflow: hidden; 
  /* Mask edges for smoother entrance/exit */
  -webkit-mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
  mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
}

.partners-track { 
  --partners-gap: 80px; /* Increased gap for cleaner look */
  display: flex; 
  align-items: center; 
  gap: var(--partners-gap); 
  width: max-content; 
  /* Using 25% because we now have 4 sets of logos. 
     We move by 1 full set (which is 1/4 of total width) */
  animation: partners-scroll 40s linear infinite; 
}

/* Logos free (no tiles), constrained by max height */
.partners-track .partner-logo { 
  display: flex; 
  align-items: center; 
  justify-content: center; 
  background: transparent; 
  border: 0; 
  width: auto; 
  height: auto; 
  padding: 0; 
  border-radius: 0; 
}

.partners-track .partner-logo img { display: block; height: auto; max-height: 40px; width: auto; }

@keyframes partners-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-25%); } 
}

/* Mobile optimizations */
@media (max-width: 768px) {
  .partners-track { 
    --partners-gap: 48px;
    animation-duration: 20s; /* Faster feel on small screens */
  }
}

/* Spin-in behavior for hero asterisks */
.heading-140 img[data-viewport] {
  opacity: 0;
  transform: rotate(-180deg);
  transition: opacity .6s ease, transform 1.1s cubic-bezier(.25,1,.5,1);
  filter: brightness(0) invert(1); /* make dark SVGs appear white */
}
.heading-140 img[data-viewport].in-view {
  opacity: 1;
  transform: rotate(0deg);
}

/* Remove extra vertical spacing around hero asterisks so headlines don't reflow */
.heading-140 img[data-viewport] {
  display: inline-block;
  vertical-align: baseline;        /* align with text baseline */
  margin: 0 .08em; /* tiny horizontal breathing room */
  padding: 0;
  line-height: 1;
  height: 0.92em !important;      /* slightly smaller for optical alignment */
  width: auto !important;
  max-height: none !important;
  max-width: none !important;
  position: static !important; /* override relative bottom-* utility */
  bottom: auto !important;
  top: auto !important;
}

/* Mobile: keep each word+icon group inline and aligned on the text baseline */
@media (max-width: 767px){
  /* Keep original layout; only neutralize slide translations so icons don't push text */
  .heading-140 .-translate-x-6,
  .heading-140 .translate-x-6{ transform:none !important; }
  /* Hide select inline icons on mobile to prevent headline breaks */
  .hero-mobile-hide{ display: none !important; }
}

/* Services grid cards (fallback styling to match case study tiles) */
.services-grid .service-card {
  border-color: #ffffff; /* White border as requested */
  display: flex;
  flex-direction: column;
  justify-content: flex-start; 
  align-items: flex-start; /* Ensure content aligns left, overriding button-huge centering */
  text-align: left; /* Ensure text aligns left */
  gap: 24px; /* Increased gap */
  transition: transform .28s ease, background-color .28s ease, border-color .28s ease;
  min-height: auto; /* Remove fixed height to reduce whitespace */
  position: relative;
  overflow: hidden;
  width: 100%; /* Ensure full width within grid */
}

.services-grid .service-card:hover {
  background: #0a0a0a;
  transform: translateY(-4px);
  border-color: #ffffff;
}

.service-card__number {
  font-family: 'Agipo Bold Condensed', serif;
  font-size: 18px;
  color: #fff; /* Make number white by default to match border/theme */
  margin-bottom: 0; /* Handled by parent gap */
  transition: color 0.3s ease;
}

.services-grid .service-card:hover .service-card__number {
  color: #fff;
}

.services-grid .service-card h3 {
  font-family: 'Agipo Bold Condensed', serif;
  text-transform: uppercase;
  font-size: 32px;
  line-height: 0.95;
  margin-bottom: 0; /* Handled by parent gap */
}

.services-grid .service-card p {
  font-size: 17px;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.85); /* Increased contrast */
  max-width: 100%;
}

.services-section .service-card .service-card__content {
  padding: 0;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  gap: 12px; /* Gap between title and text */
}

@media (min-width: 768px) {
  .services-grid .service-card h3 { font-size: 38px; }
}

@media (min-width: 1024px) {
  .services-grid .service-card h3 { font-size: 42px; }
}
.services-grid .service-cta {
  border-color: #ffffff;
}

.services-grid .service-card__arrow {
  align-self: flex-end;
  color: rgba(255, 255, 255, .9);
  font-size: 20px;
  line-height: 1;
  margin-top: auto; /* Push to bottom */
  transition: color .28s ease; /* removed transform from container */
}

.services-grid .service-card:hover .service-card__arrow {
  color: #ffffff;
}

.services-grid .service-card:hover .service-card__arrow svg {
  transform: translateX(4px);
  transition: transform .28s ease;
}

/* Force Services CTA to use brand pink on hover via theme vars */
.services-section .service-cta.button-huge,
.services-section .service-cta.button-huge:hover,
.services-section .service-cta.button-huge:focus{
  --hover-color-2: #FF385C !important;
}

/* Subtle gold border utility (used for hero image) */
.border-gold{
  border: 1px solid rgba(212, 175, 55, 0.45); /* #D4AF37 at ~45% */
  box-shadow: 0 0 0 0.5px rgba(212, 175, 55, 0.25) inset; /* soften */
}

/* Desktop: trigger CTA color transition when fully in view */
@media (min-width: 1024px){
  .services-section .service-cta.button-huge{
    transition: background-color .45s ease, color .45s ease, border-color .45s ease;
  }
  .services-section .service-cta.button-huge.in-view{
    background-color: var(--hover-color-2, #FF385C);
    border-color: var(--hover-color-2, #FF385C);
  }
  /* Title black, other text white when fully in view (desktop) */
  .services-section .service-cta.button-huge.in-view h3{ color:#000000; }
  .services-section .service-cta.button-huge.in-view p,
  .services-section .service-cta.button-huge.in-view .service-card__number,
  .services-section .service-cta.button-huge.in-view .service-card__arrow{ color:#ffffff; }
}

/* Mobile Interaction: Permanently apply the hover style on small screens */
@media (max-width: 767px) {
  .services-section .service-cta.button-huge {
    background-color: #FF385C !important;
    border-color: #ffffff !important; /* Keep border white as requested */
    color: #ffffff !important;
  }

  .services-section .service-cta.button-huge h3,
  .services-section .service-cta.button-huge p,
  .services-section .service-cta.button-huge .service-card__number,
  .services-section .service-cta.button-huge .service-card__arrow {
    color: #ffffff !important;
  }

  .services-section .service-cta.button-huge .service-card__arrow svg {
    stroke: #ffffff !important;
  }
}

/* Vault cards – premium gallery styling */
.vault-card{
  position: relative;
  display: flex;
  flex-direction: column;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,0.12);
  background:
    radial-gradient(circle at 0% 0%, rgba(255,255,255,0.06), transparent 55%),
    radial-gradient(circle at 100% 120%, rgba(255,255,255,0.06), transparent 55%),
    #050505;
  padding: 0;
  overflow: hidden;
  box-shadow: 0 18px 38px rgba(0,0,0,0.7);
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    border-color .22s ease,
    background-color .22s ease;
}

.vault-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 26px 55px rgba(0,0,0,0.9);
  border-color: rgba(255,255,255,0.32);
  background-color: #050505;
}

.vault-card__visual{
  position: relative;
  padding: 18px 22px 44px;
  border-bottom: 1px solid rgba(255,255,255,0.14);
  overflow: hidden;
}

@media (min-width: 768px){
  .vault-card__visual{
    padding: 20px 26px 52px;
  }
}

.vault-card__visual-orbit{
  position: absolute;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.14);
  opacity: .7;
}

.vault-card__visual-orbit--primary{
  width: 120px;
  height: 120px;
  left: -56px;
  top: -40px;
}

.vault-card__visual-orbit--secondary{
  width: 160px;
  height: 160px;
  right: -90px;
  bottom: -110px;
  border-color: rgba(255,255,255,0.1);
}

.vault-card__badge{
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 11px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.38);
  background: rgba(5,5,5,0.9);
  font-family: 'Agipo Bold Condensed', serif;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #ffffff;
}

.vault-card__body{
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding: 18px 22px 22px;
}

@media (min-width: 768px){
  .vault-card__body{
    gap: 20px;
    padding: 20px 26px 24px;
  }
}

.vault-card__title{
  font-family: 'Agipo Bold Condensed', serif;
  text-transform: uppercase;
  font-size: 24px;
  line-height: 1.02;
  margin: 0 0 6px;
}

@media (min-width: 768px){
  .vault-card__title{
    font-size: 28px;
  }
}

.vault-card__desc{
  font-size: 15px;
  line-height: 1.5;
  color: rgba(255,255,255,0.88);
  margin: 0 0 10px;
}

.vault-card__tags{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.vault-card__tag{
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 4px 9px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.22);
  background: rgba(255,255,255,0.06);
  color: rgba(255,255,255,0.88);
}

.vault-card__meta{
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 4px;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,0.16);
  font-size: 13px;
  color: rgba(255,255,255,0.88);
}

.vault-card__meta-label{
  opacity: .8;
}

.vault-card__arrow{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.55);
  font-size: 18px;
  line-height: 1;
  transition:
    transform .2s ease,
    background-color .2s ease,
    border-color .2s ease;
}

.vault-card:hover .vault-card__arrow{
  transform: translateX(3px);
  background-color: rgba(255,255,255,0.08);
  border-color: #ffffff;
}

/* Services: disable any scroll fade-in under 'What We Do' */
.services-section [data-viewport]{
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

/* 
   --------------------------------------------------------------
   Free AI Audit CTA (Navigation)
   --------------------------------------------------------------
*/

.nav-cta-button {
  background-color: #FF385C !important;
  color: #ffffff !important;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border-radius: 9999px; /* Pill shape */
  padding: 9px 22px;
  font-size: 15px;
  border: 1px solid #FF385C;
  transition: background-color 0.45s ease, color 0.45s ease, border-color 0.45s ease, transform 0.2s ease;
  display: inline-block;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}

.nav-cta-button:hover {
  transform: scale(1.03);
  background-color: #DEFC52 !important;
  border-color: #DEFC52 !important;
  color: #000000 !important;
}

.nav-cta-button:active {
  transform: scale(0.98);
}

.nav-cta-button:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px black, 0 0 0 4px #FF385C;
}

/* Desktop spacing */
@media (min-width: 1024px) {
  .nav-item-cta {
    margin-left: 24px;
  }
}

/* Mobile full width override (optional if inline doesn't look good) */
.header__mobile-nav-list .nav-cta-button {
  display: block;
  width: 100%;
  max-width: 100%; 
}
