/* 
  JOCKAMO BARNES WEBSITE STYLES
  
  Contents:
  1. Variables & Base Settings
  2. Reset & Base Elements
  3. Typography
  4. Layout & Containers
  5. Components
    5.1 Navigation
    5.2 Section Styles
    5.3 Footer
    5.4 Links & Buttons
    5.5 Social Icons
  6. Page-Specific Styles
    6.1 Home/Manifesto
    6.2 About Page
    6.3 What We Do Page
  7. Animations & Transitions
  8. Media Queries
*/

/* ==========================================================================
   1. Variables & Base Settings
   ========================================================================== */

:root {
  /* Colors */
  --color-primary: #ff5005;
  --color-primary-2: #525eff;
  --color-secondary-1: #b0ff8a;
  --color-secondary-2: #fdf5e2;
  --color-secondary-3: #ffd166;
  --color-accent-1: #0b0b0b;
  --color-accent-2: #e04300;
  --color-neutral-light: #fdf5e2; 
  --color-neutral-dark: #0b0b0b;
  
  /* Spacing - consistent spacing system */
  --space-quarter: 4px;
  --space-half: 8px;
  --space-1: 16px;
  --space-1-5: 24px;
  --space-2: 32px;
  --space-2-5: 40px;  
  --space-3: 48px;
  --space-4: 64px;
  --space-5: 80px;
  --space-6: 96px;
  --space-xl: 150px;
  
  /* Sizes */
  --size-xs: 16px;
  --size-sm: 48px;
  --size-md: 96px;
  --size-lg: 144px;
  --size-xl: 192px;
  --size-xxl: 288px;
  --size-max-width: 1400px;
  
  /* Weights */
  --font-reg: 400;
  --font-bold: 700;    
  
  /* Radius */
  --radius-2: 2px;
  --radius-4: 4px;
  --radius-8: 8px;
  --radius-round: 50%;
  
  /* Transitions - standardized */
  --transition-fast: 0.3s ease;
  --transition-medium: 0.5s ease;
  --transition-slow: 1.0s ease;
  --transition-bounce: 0.4s cubic-bezier(0.19, 1, 0.22, 1);

  /* Animations - standardized */
  --animation-duration-short: 0.8s;
  --animation-duration-medium: 1s;
  --animation-duration-long: 1.2s;
  --animation-easing-standard: ease-out;
  --animation-easing-fancy: cubic-bezier(0.25, 1, 0.5, 1);

  /* Animation performance */
  --will-change-transform: transform, opacity;
  --gpu-acceleration: translateZ(0);
  
  /* Shadows & Effects */
  --shadow-subtle: 0 2px 5px rgba(0, 0, 0, 0.1);
  --shadow-medium: 0 4px 10px rgba(0, 0, 0, 0.15);
  --shadow-text: 0 0 10px rgba(255, 255, 255, 0.4);
  
  /* Common transforms */
  --hover-lift: translateY(-3px);
  --hover-shift: translateX(5px);
}

/* ==========================================================================
   2. Reset & Base Elements
   ========================================================================== */

/* Modern CSS Reset */
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  font-family: "Figtree", sans-serif;
  font-size: 18px;
}

body {
  margin: 0;
  font-weight: var(--font-reg);
  font-style: normal;
  text-decoration: none;
  text-transform: none;
  letter-spacing: 0px;
  line-height: 1.25;
  color: var(--color-neutral-light);
  background: var(--color-neutral-dark);
  fill: var(--color-neutral-light);
  opacity 1;
  transition: opacity 0.5s;
}

* {
  box-sizing: border-box;
  border-width: 0;
  border-style: solid;
  -webkit-font-smoothing: antialiased;
}

p, li, ul, pre, div, h1, h2, h3, h4, h5, h6, figure, blockquote, figcaption {
  margin: 0;
  padding: 0;
}

button {
  background-color: transparent;
  color: inherit;
  cursor: pointer;
  padding: 0;
}

button:focus, a:focus {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

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

a {
  color: inherit;
  text-decoration: inherit;
}

/* ==========================================================================
   3. Typography
   ========================================================================== */

/* Fonts */
@font-face {
  font-family: "Sink";
  font-style: normal;
  font-weight: var(--font-reg);
  font-display: block;
  src: url("../public/fonts/sink.otf") format("opentype");
}

/* Headings - base styles */
h1, h2, h3 {
  font-family: "Sink", sans-serif;
  text-transform: uppercase;
  line-height: 0.9;
  font-weight: var(--font-reg);
}

/* Headline system - base styles */
.headline {
  font-family: "Sink", sans-serif;
  font-weight: var(--font-reg);
  line-height: 0.9;
  text-transform: uppercase;
}

/* General text styles */
.content {
  font-size: clamp(16px, 2vw, 19px);
  font-family: "Figtree";
  font-weight: var(--font-reg);
  line-height: 1.4; /* CHANGED: Increased from 1.25 */
  max-width: 750px; /* ADDED: Optimal reading width */
}

.small-title {
  font-size: clamp(12px, 1.5vw, 14px);
  font-family: "Figtree";
  font-weight: var(--font-bold);
  line-height: 1.1;
}

.small-text {
  font-size: clamp(12px, 1.5vw, 14px);
  font-family: "Figtree";
  font-weight: var(--font-reg);
  line-height: 1.25em;
}

.burger-menu {
  font-size: clamp(60px, 8vw, 75px);
  font-family: "Sink";
  font-weight: var(--font-reg);
  text-transform: uppercase;
  letter-spacing: clamp(-1px, 0.1vw, 1px);  
}

.footer-small {
  font-size: clamp(9px, 1vw, 10px);
  font-family: "Figtree";
  font-weight: var(--font-bold);
  line-height: 1.2;
}

/* ==========================================================================
   4. Layout & Containers
   ========================================================================== */

html {
  scroll-behavior: smooth;
}

.container {
  width: 100%;
  display: flex;
  min-height: 100vh;
  align-items: flex-start;
  flex-direction: column;
	background-color: var(--color-neutral-dark); 
  background-image: 
    url("../public/backgrounds/bg-tile-1000h.webp"),
    url("../public/backgrounds/bg-tile-1000h.jpg");
  background-size: 2120px 1000px; /* Maintain exact dimensions */
  background-position: top center;
  background-repeat: repeat-y;
  background-attachment: local; /* Better mobile performance */

  /* Smooth transition when image loads */
  transition: background-image 0.3s ease;  
}

.max-width {
  width: 100%;
  max-width: var(--size-max-width);
  align-self: center;
  padding: clamp(var(--space-3), 5vh, var(--space-4)) 
           clamp(var(--space-1-5), 4vw, var(--space-3));
}

/* Grid layout for footer */
.grid-layout {
  display: grid;
  grid-template-rows: var(--space-3) auto var(--space-3);
  grid-template-columns: var(--space-3) repeat(20, 1fr) var(--space-3);
}

/* ==========================================================================
   5. Components
   ========================================================================== */

		/* 5.1 Navigation */
		.navbar {
			position: fixed;
			top: 0;
			left: 0;
			width: 100%;
			z-index: 100;
			
		/* Lighter initial background */
		background-color: rgba(11, 11, 11, 0.4);
		backdrop-filter: blur(12px);
		border-bottom: 1px solid rgba(255, 255, 255, 0.03);
		
		/* Smooth transitions */
		transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1);
		
		/* Hardware acceleration */
		will-change: background-color, backdrop-filter, padding;
		backface-visibility: hidden;
		}		

		/* Enhanced background when scrolled */
		.navbar--scrolled {
			background-color: rgba(11, 11, 11, 0.92);
			backdrop-filter: blur(20px);
			border-bottom-color: rgba(255, 255, 255, 0.08);
			box-shadow: 0 1px 20px rgba(0, 0, 0, 0.1);
		}
		
		.navbar-content {
			display: flex;
			align-items: center;
			justify-content: space-between;
			/* Reduced padding for premium feel */
			padding: clamp(var(--space-1), 2.5vh, var(--space-2)) 
							 clamp(var(--space-1-5), 4vw, var(--space-3));
			max-width: var(--size-max-width);
			margin: 0 auto;
			transition: padding 0.4s cubic-bezier(0.25, 1, 0.5, 1);
		}

		/* Even more compact when scrolled */
		.navbar--scrolled .navbar-content {
			padding: clamp(var(--space-half), 1.8vh, var(--space-1-5)) 
							 clamp(var(--space-1-5), 4vw, var(--space-3));
		}
		
		.navbar-logo {
			height: clamp(2.5rem, 4vh, 3.5rem);
			transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1);
		}
		
		/* Slightly smaller logo when scrolled for premium feel */
		.navbar--scrolled .navbar-logo {
			height: clamp(2.2rem, 3.5vh, 3rem);
			filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.05));
		}
		
		.logo-container {
			display: flex;
			align-items: center;
		}
		
		.navbar-logo {
			height: clamp(2.5rem, 4vh, 3.5rem);
			transition: height var(--transition-fast);
		}
		
		/* Burger Button - Works on All Viewports */
		.burger-button {
			display: flex;
			cursor: pointer;
			padding: var(--space-half);
			background: none;
			border: none;
			color: var(--color-neutral-light);
			transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1);
			border-radius: var(--radius-8);
			position: relative;
			overflow: hidden;
		}
		
		/* Subtle hover background */
		.burger-button::before {
			content: '';
			position: absolute;
			top: 0;
			left: 0;
			right: 0;
			bottom: 0;
			background: rgba(255, 255, 255, 0.1);
			border-radius: var(--radius-8);
			opacity: 0;
			transition: opacity 0.3s ease;
		}
		
		.burger-button:hover::before {
			opacity: 1;
		}
		
		.burger-button:hover {
			transform: scale(1.05);
			color: var(--color-primary);
		}
		
		.burger-button:active {
			transform: scale(0.98);
		}
		
		.burger-icon {
			width: clamp(24px, 3.5vw, 32px);
			height: clamp(24px, 3.5vw, 32px);
			transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1);
			fill: currentColor;
			position: relative;
			z-index: 1;
		}
		
		/* Premium glow effect on hover */
		.burger-button:hover .burger-icon {
			filter: drop-shadow(0 0 8px rgba(255, 80, 5, 0.4));
		}
		
		/* Full Screen Menu - Works on All Viewports */
		.mobile-menu {
			position: fixed;
			top: 0;
			left: 0;
			width: 100%;
			height: 100vh;
			min-height: 600px;
			background-color: var(--color-primary);
			z-index: 200;
			display: flex;
			flex-direction: column;
			justify-content: space-between;
			padding: clamp(var(--space-1), 2.5vh, var(--space-2)) 
							 clamp(var(--space-1-5), 4vw, var(--space-3));
			
			/* Hidden by default with smoother animation */
			transform: translateY(-100%);
			visibility: hidden;
			transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1),
									visibility 0s linear 0.6s; /* visibility changes after transform completes */
			overflow: hidden;
			backface-visibility: hidden;
		}
		
		.mobile-menu.show {
			transform: translateY(0);
			visibility: visible;
			transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1),
	    visibility 0s linear 0s; /* visibility changes immediately when opening */			
		}
		
		.mobile-nav {
			display: flex;
			align-items: flex-start;
			flex-direction: column;
		}
		
		.mobile-top {
			width: 100%;
			display: flex;
			align-items: center;
			margin-bottom: var(--space-3);
			justify-content: space-between;
			height: clamp(2.5rem, 4vh, 3.5rem);			
		}
		
		.mobile-logo {
			height: clamp(2.5rem, 4vh, 3.5rem);
			filter: brightness(0) invert(1);
		}
		
		.close-menu {
			display: flex;
			align-items: center;
			justify-content: center;
			cursor: pointer;
			padding: var(--space-half);
			transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1);
			border-radius: var(--radius-8);
			position: relative;
			overflow: hidden;
		}
				
		.close-menu::before {
			content: '';
			position: absolute;
			top: 0;
			left: 0;
			right: 0;
			bottom: 0;
			background: rgba(255, 255, 255, 0.1);
			border-radius: var(--radius-8);
			opacity: 0;
			transition: opacity 0.3s ease;
		}		
		.close-menu:hover {
			transform: scale(1.1) rotate(90deg);
		}
		
		.close-menu:active {
			transform: scale(0.95);
		}
		
		.close-icon {
			width: clamp(24px, 3.5vw, 32px);
			height: clamp(24px, 3.5vw, 32px);
			transition: fill var(--transition-fast);
			fill: white;
		}
		
		.close-menu:hover .close-icon {
			fill: #ffffff;
		}
		
		.mobile-links {
			gap: clamp(var(--space-half), 2vh, var(--space-1));
			display: flex;
			align-self: flex-start;
			align-items: flex-start;
			flex-direction: column;
		}
		
		.burger-menu {
			position: relative;
			display: inline-block;
			padding: 10px 0;
			transition: transform var(--transition-fast), color var(--transition-fast);
			
		}
		
		.burger-menu::after {
			content: '';
			position: absolute;
			bottom: 0;
			left: 0;
			width: 100%;
			height: 3px;
			background-color: var(--color-neutral-light);
			transform: scaleX(0);
			transform-origin: right;
			transition: transform var(--transition-bounce);
		}
		
		.burger-menu:hover {
			transform: translateX(5px);
			color: #ffffff;
			text-shadow: 0 0 10px rgba(255, 255, 255, 0.4);
		}
		
		.burger-menu:active {
			transform: translateX(2px);
		}
		
		.burger-menu:hover::after {
			transform: scaleX(1);
			transform-origin: left;
		}
		
		/* Social Links */
		.social-links {
			gap: clamp(var(--space-1), 3vw, var(--space-1-5));
			display: flex;
		}
		
		.social-btn {
			width: 35px;
			height: auto;
			object-fit: contain;
			transition: transform var(--transition-fast), filter var(--transition-fast);
		}
		
		.social-btn:hover {
			transform: translateY(-3px);
			filter: brightness(1.2);
		}
		
		.social-btn:active {
			transform: translateY(1px);
		}

/* 5.2 Section Styles */
.content-container {
  width: 100%;
  display: flex;
  flex-direction: column;
}

.content-container p {
  text-align: left;
  max-width: 800px;
}

.headline-container {
  padding-bottom: var(--space-2);
  display: flex;
  flex-direction: column;
}

/****
		* 5.3 Footer Styles *
												*****/
footer {
    width: 100%;
    background-color: var(--color-secondary-2); /* Cream background */
		background-image: 
			url("../public/backgrounds/bg-cremesand-1500w.webp"),
			url("../public/backgrounds/bg-cremesand-1500w.jpg");
		background-size: 1500px 600px; /* Maintain exact dimensions */
		background-position: top center;
		background-repeat: repeat-x;
		background-attachment: local; /* Better mobile performance */    
    color: var(--color-neutral-dark); /* Dark text */
    margin-top: clamp(80px, 12vh, 100px);
}

.footer-content {
    max-width: var(--size-max-width);
    margin: 0 auto;
    padding: 	clamp(var(--space-4), 8vh, var(--space-6)) 
    					clamp(var(--space-2), 4vw, var(--space-3))
							clamp(var(--space-1-5), 3vh, var(--space-2-5));
}

/* Main Content Section */
.footer-main-content {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: clamp(var(--space-4), 6vw, var(--space-6));
    margin-bottom: clamp(var(--space-4), 12vh, var(--space-6));
    align-items: start;
}

/* Left Side - Call to Action */
.footer-cta {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.footer-cta-header {
    display: flex;
    align-items: flex-start;
    gap: var(--space-1-5);
}

.footer-headline {
    font-family: "Sink", sans-serif;
    font-size: clamp(28px, 3.3vw, 48px);
    line-height: 0.9;
    text-transform: uppercase;
    font-weight: var(--font-reg);
    margin: 0;
    color: var(--color-neutral-dark);
}

.footer-emblem {
    width: clamp(60px, 7vw, 100px);
    height: auto;
    object-fit: contain;
    flex-shrink: 0;
}

.footer-description p {
    font-size: clamp(14px, 1.7vw, 18px);
    font-family: "Figtree", sans-serif;
    font-weight: var(--font-reg);
    line-height: 1.25;
    color: var(--color-neutral-dark);
}

.footer-description p:last-child {
    margin-bottom: 0;
}

/* Right Side - Contact Grid */
.footer-contact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-2-5);
}

/* Specific grid positioning for contact groups */
.contact-group.general {
    grid-column: 1;
    grid-row: 1;
}

.contact-group.careers {
    grid-column: 1;
    grid-row: 2;
}

.contact-group.new-business {
    grid-column: 2;
    grid-row: 1;
}

.contact-group.socials-group {
    grid-column: 2;
    grid-row: 2;
}

.contact-group {
    display: flex;
    flex-direction: column;
    gap: var(--space-half);
    align-items: flex-start;
}

.contact-group h3 {
    font-family: "Figtree", sans-serif;
    font-size: clamp(12px, 1.8vw, 14px);
    font-weight: var(--font-bold);
    margin: 0;
    color: var(--color-neutral-dark);
}

.contact-group .contact-link {
    font-family: "Figtree", sans-serif;
    font-size: clamp(14px, 1.6vw, 16px);
    font-weight: var(--font-reg);
    color: var(--color-neutral-dark);
    text-decoration: none;
    position: relative;
    display: inline-block;
    transition: transform var(--transition-fast);
}

.contact-group .contact-link::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: var(--color-neutral-dark);
    transform: scaleX(0);
    transform-origin: right;
    transition: transform var(--transition-fast);
}

.contact-group .contact-link:hover {
    transform: translateY(-2px);
}

.contact-group .contact-link:hover::after {
    transform: scaleX(1);
    transform-origin: left;
}

.socials-group {
		gap: var(--space-1);
}

.footer-social-links {
    display: flex;
    gap: var(--space-1);
}

.footer-social-links .social-btn {
    width: 28px;
    height: 28px;
    object-fit: contain;
    transition: transform var(--transition-fast), filter var(--transition-fast);
    filter: brightness(0); /* Make icons dark */
}

.footer-social-links .social-btn:hover {
    transform: translateY(-2px) scale(1.1);
    filter: brightness(0) sepia(1) hue-rotate(15deg) saturate(4) brightness(0.8);
}

/* Bottom Section */
.footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding-top: var(--space-half);
    border-top: 1px solid rgba(11, 11, 11, 0.15);
    font-family: "Figtree", sans-serif;
    font-size: clamp(11px, 1.2vw, 13px);
    font-weight: var(--font-bold);
    line-height: 1.3;
    color: var(--color-neutral-dark);    
}

.footer-bottom-left {
    display: flex;
}

.footer-bottom-right {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-half);
    text-align: right;
}

/* Update Tablet Media Query (991px and down) */
@media (max-width: 991px) and (min-width: 768px) {
    
    .footer-contact-grid {
        grid-template-columns: 1fr 1fr;
        gap: var(--space-1-5);
    }
    
    .socials-group {
        grid-column: 1 / -1;
    }
    
}


/* 5.4 Links & Buttons */
.contact-link {
  position: relative;
  display: inline-block;
  transition: transform var(--transition-fast);
}

.contact-link::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform var(--transition-fast);
}

.contact-link:hover {
  transform: var(--hover-lift);
}

.contact-link:active {
  transform: translateY(1px);
}

.contact-link:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}

.footer-hellos .contact-link {
  color: var(--color-neutral-light);
  width: 180px;
}

.footer-hellos .contact-link::after {
  background-color: var(--color-neutral-light);
}

/* 5.5 Social Icons */
.social-links {
  gap: clamp(var(--space-1), 3vw, var(--space-1-5));
  display: flex;
}

.social-btn {
  width: 35px;
  height: auto;
  object-fit: contain;
  transition: transform var(--transition-fast), filter var(--transition-fast);
}

.social-btn:hover {
  transform: var(--hover-lift);
  filter: brightness(1.2);
}

.social-btn:active {
  transform: translateY(1px);
}


/* ==========================================================================
   6. Page-Specific Styles
   ========================================================================== */

	main#home, main#about, main#what, main#fourohfour {
		width: 100%;
		margin-top: clamp(100px, 15vh, 140px);  
	}
	
	#about-us, #contact, #what-we-do, #services, #hero, #fourohfour {
		padding: 0;
		display: flex;
		flex-direction: column;
		align-items: center;
	}
	
	main#home #hero {
		height: 100vh;
		position: relative;
	}

	#about #hero, #what #hero {
		margin-top: clamp(var(--space-1), 4vh, 50px); 
	}

/* 
 * 6.1 Home/Manifesto
 */
 
#home h2 { text-align: center; }
#home h2.headline-1 { font-size: clamp(35px, 11vw, 160px); margin-bottom: var(--space-quarter); }
#home h2.headline-2 { font-size: clamp(45px, 10.4vw, 160px); margin-bottom: var(--space-quarter); }
#home h2.headline-3 { font-size: clamp(46px, 10.8vw, 167px); }
#home h2.headline-accent { color: var(--color-primary); }
#home h2.headline-1, 
#home h2.headline-2, 
#home h2.headline-3 {
  letter-spacing: clamp(-1px, -0.1vw, 0px);
}

/* Scroll indicator styling */
.scroll-indicator {
    bottom: clamp(15vh, 20vh, 25vh);
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px; /* Space between text and arrow */
    opacity: 0;
    animation: fadeIn 1s ease forwards 4s;
    z-index: 5;
    cursor: pointer;
}

.scroll-text {
    font-family: "Figtree", sans-serif;
    font-size: clamp(12px, 1.5vw, 14px);
    font-weight: var(--font-bold);
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--color-neutral-light);
    transition: color 0.3s ease, transform 0.3s ease;
    user-select: none;
}

.scroll-indicator:hover .scroll-text {
    color: var(--color-primary);
    transform: translateY(-2px);
}

.arrow-down {
    width: clamp(20px, 3vw, 28px); /* Made smaller */
    height: auto;
    transition: transform 0.3s ease;
    animation: bounceArrow 2s ease-in-out infinite;
}

.arrow-down img {
    width: 100%;
    height: auto;
    display: block;
    filter: brightness(0) invert(1); /* Keep it white always */
}

.scroll-indicator:hover .arrow-down {
    transform: translateY(5px) scale(1.1);
}

.scroll-indicator:active .arrow-down {
    transform: translateY(8px);
}

@keyframes bounceArrow {
    0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
    40% { transform: translateY(-10px); }
    60% { transform: translateY(-5px); }
}

/* Base manifesto styling */
.manifesto-block {
  display: flex;
  flex-direction: column;
  justify-content: center;
	margin-bottom: clamp(80px, 15vw, 120px);
  width: 100%;
  align-items: center;
  position: relative;
}

.manifesto-block .max-width {
	width: min(1000px, 90vw);
	max-width: 1000px;
  padding: clamp(48px, 8vw, 96px) clamp(24px, 4vw, 48px);
  display: flex;
  flex-direction: column;
  justify-content: center; 
  align-items: start;
}

.manifesto-block p {
  position: relative;
  font-family: "Figtree", sans-serif;
  font-size: clamp(26px, 4.5vw, 60px);
  font-weight: var(--font-reg);
	line-height: clamp(1.0, 1.1, 1.25);
  margin-bottom: clamp(var(--space-3), 6vh, var(--space-6)); 
  text-align: left;
  text-wrap: pretty;
  transform: translateZ(0); /* Hardware acceleration */
}

.manifesto-block .highlight {
  color: inherit; /* Start with the parent's color */
  position: relative;
  display: inline-block;
  transition: color var(--transition-medium);
}

.manifesto-block.block-visible .highlight {
  color: var(--color-primary); /* Change to highlight color when visible */
  font-weight: var(--font-bold);
  transition-delay: 0.5s;
}

.manifesto-block .underline-text { 
  position: relative;
  display: inline-block; 
  overflow: visible; 
}

.manifesto-block .underline-text::after {
  content: "";
  position: absolute;
  bottom: -5px;
  left: 0;
  width: 100%;
  height: 6px;
  background-image: url("data:image/svg+xml,%3Csvg width='100' height='6' viewBox='0 0 100 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 6L12.5 0L25 6L37.5 0L50 6L62.5 0L75 6L87.5 0L100 6' stroke='%23ffd166' stroke-width='2' fill='none'/%3E%3C/svg%3E");
  background-repeat: repeat-x;
  background-size: 100px 6px;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

.underline-text.animate-underline::after {
  transform: scaleX(1);
}

/* Add emphasis class for important words */
.manifesto-block .emphasis {
  font-style: italic;
  font-weight: var(--font-reg);
}

.manifesto-block p:last-of-type {
  margin-bottom: 0;
}

/* Enhanced color for primary accent */
.manifesto-block .orange, 
.headline-accent,
.primary-emphasis.orange {
  color: var(--color-primary);
  text-shadow: 0 0 20px rgba(255, 80, 5, 0.3);
}

/* Add hover effect to increase visibility */
.manifesto-block .orange:hover, 
.headline-accent:hover {
  text-shadow: 0 0 30px rgba(255, 80, 5, 0.5);
}

/* Enhanced Manifesto Animations - Add after existing manifesto-block styles */

/* Staggered Text Reveal Animation */
.manifesto-block p {
  opacity: 0;
  transform: translateY(30px) scale(0.98);
  transition: opacity 0.8s cubic-bezier(0.25, 1, 0.5, 1), 
              transform 0.8s cubic-bezier(0.25, 1, 0.5, 1);
  will-change: opacity, transform;
}

/* Enhanced Highlight Animation */
.manifesto-block .highlight {
  position: relative;
  display: inline-block;
  color: inherit;
  transition: color 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

.manifesto-block .highlight::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 100%;
  transition: width 0.8s cubic-bezier(0.25, 1, 0.5, 1);
  z-index: -1;
  border-radius: 2px;
}

/* For GSAP version - paragraphs animate individually via JavaScript */
/* For CSS fallback version - paragraphs animate when they get .paragraph-visible class */
.manifesto-block p.paragraph-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.manifesto-block p.paragraph-visible .highlight::before,
.manifesto-block.block-visible .highlight::before {
  width: 100%;
  transition-delay: 0.4s;
}

.manifesto-block p.paragraph-visible .highlight,
.manifesto-block.block-visible .highlight {
  color: var(--color-primary);
  transition-delay: 0.8s;
}

/* Breathing Animation for Emphasis Text */
.manifesto-block .loud {
  animation: breathe 4s ease-in-out infinite;
  animation-delay: 2s; /* Start after initial reveal */
}

@keyframes breathe {
  0%, 100% { 
    transform: scale(1); 
  }
  50% { 
    transform: scale(1.015);
    text-shadow: 0 0 12px rgba(255, 255, 255, 0.15);
  }
}

/* Only animate when section is visible and user doesn't prefer reduced motion */
.manifesto-block:not(.block-visible) .loud,
.reduced-motion .loud {
  animation: none;
}

/* Enhanced Underline Animation */
.manifesto-block .underline-text::after {
  background-image: url("data:image/svg+xml,%3Csvg width='100' height='6' viewBox='0 0 100 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 6L12.5 0L25 6L37.5 0L50 6L62.5 0L75 6L87.5 0L100 6' stroke='%23ffd166' stroke-width='2' fill='none'/%3E%3C/svg%3E");
  background-repeat: repeat-x;
  background-size: 100px 6px;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1);
  animation: shimmer 3s ease-in-out infinite;
  animation-delay: 2s;
}

.underline-text.animate-underline::after {
  transform: scaleX(1);
}

@keyframes shimmer {
  0%, 100% { filter: brightness(1); }
  50% { filter: brightness(1.2) drop-shadow(0 0 2px rgba(255, 209, 102, 0.3)); }
}

	/* 6.2 ABOUT PAGE */
	
	#about #hero h2 {text-align: center; }
	#about span.headline-1 { font-size: clamp(35px, 9vw, 130px);}
	#about span.headline-2 { font-size: clamp(39px, 8vw, 116px);}

	.about-content-wrapper {
		display: grid;
		grid-template-columns: 1.2fr 1fr;
		gap: clamp(var(--space-3), 5vw, var(--space-6));		
		align-items: center;
	}
	
	.about-text-container .content-container {
	  padding: clamp(var(--space-3), 5vh, var(--space-5)) 0;
		gap: clamp(var(--space-1-5), 3vh, var(--space-2-5));
	}
	
	/* Image container styling */
	.about-image-container .about-us-image {
		width: 100%;
		height: auto;
		border-radius: var(--radius-8);
		box-shadow: 0 12px 40px rgba(0, 0, 0, 0.4);
		object-fit: cover;	
	}
	
	#about p.content { 
		line-height: 1.25;
		max-width: clamp(300px, 60vw, 700px);
		text-wrap: pretty;
	}
	
	#about p.content:first-of-type {
		font-size: clamp(19px, 2.8vw, 22px);
		color: var(--color-primary);
		font-weight: var(--font-bold);
	}

/* 6.3 WHAT WE DO PAGE */
	#what span.headline-1 { font-size: clamp(36px, 9vw, 120px);}
	#what span.headline-2 { font-size: clamp(35px, 8.8vw, 118px);}
	#what span.headline-3 { font-size: clamp(33px, 8.2vw, 110px);}
	#what .headline-container h2 { text-align: center; }
	
	#what .content-container {
		padding-top: 0;
  	margin-bottom: clamp(var(--space-3), 5vh, var(--space-5)); 		
	}
	
	#what .content-container p {
		max-width: 650px;		
		text-align: center;
		margin: 0 auto;
	}
	
	h3.services-heading {
		font-size: clamp(35px, 3.8vw, 48px); 
		font-weight: var(--font-reg);
		font-family: "Sink", sans-serif;
		text-transform: uppercase;
		line-height: 0.9;
		margin-bottom: clamp(var(--space-2), 3vh, var(--space-3)); /* CHANGED: Increased from var(--space-2) */
		transition: color var(--transition-fast);
	}
	
	.services-row {
		display: flex;
		flex-direction: row;
		justify-content: space-between;
		gap: clamp(var(--space-4), 6vw, var(--space-6)); /* CHANGED: Increased from var(--space-3) */
		padding-top: clamp(var(--space-3), 5vh, var(--space-5)); /* CHANGED: Increased from var(--space-2) */
	}
	
	.service-category {
		flex: 1;
		padding: clamp(var(--space-1-5), 3vw, var(--space-2-5)); /* CHANGED: Increased from var(--space-1) */
		border-top: 2px solid transparent;
		transition: border-color var(--transition-slow), transform var(--transition-slow);
		align-self: flex-start; 
		background: rgba(255, 255, 255, 0.02);
		border-radius: var(--radius-8);
	}
	
	.service-category:hover {
		border-top-color: var(--color-primary-2);
		transform: translateY(-8px); 
		box-shadow: 0 8px 24px rgba(82, 94, 255, 0.1);
		background: rgba(255, 255, 255, 0.04); 
	}
	
	.service-category:active {
		transform: translateY(-2px);
	}
	
	.service-category:hover .services-heading {
		color: var(--color-primary-2);
	}
	
	.service-list {
		margin: 0;
		padding-left: var(--space-1-5);
		list-style-type: disc;
		display: flex;
		flex-direction: column;
		gap: clamp(var(--space-quarter), 0.8vh, var(--space-half));
	}

	/* Colored bullet points for service lists */
	.service-list li::marker {
		color: var(--color-primary-2);
	}
	
	.service-item {
		font-size: clamp(15px, 2vw, 17px); 
		line-height: 1.5; 
		margin-bottom: clamp(var(--space-1), 2vh, var(--space-1-5)); 
		text-wrap: pretty;
	}

	#fourohfour h2 {text-align: center; }
	#fourohfour span.headline-1 { font-size: clamp(35px, 9vw, 130px);}
	#fourohfour span.headline-2 { font-size: clamp(39px, 8vw, 116px);}
	#fourohfour .content-container p { text-align: center; margin-bottom: var(--space-1);}


/* ==========================================================================
   7. Animations & Transitions
   ========================================================================== */

/* Hero Animations */
[data-gsap="fade-in"] {
  opacity: 0;
  transform: translateY(30px);
}

.gsap-failed [data-gsap="fade-in"] {
  opacity: 1 !important;
  transform: translateY(0) !important;
  transition: none !important;
}

/* Manifesto Animations */
@keyframes fadeIn {
  from { 
    opacity: 0; 
    transform: translateY(20px); 
  }
  to { 
    opacity: 1; 
    transform: translateY(0); 
  }
}

@keyframes highlightReveal {
  from { color: var(--color-neutral-light); }
  to { color: var(--color-primary); }
}

@keyframes lineReveal {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }	  
}  

/* Smoother transition styles - fixed version */
.fade-in-element {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease, transform 0.8s ease;
  will-change: opacity, transform;
}

.fade-in-element.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Apply to specific elements */
.manifesto-item {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.manifesto-block.block-visible .manifesto-item {
  opacity: 1;
  transform: translateY(0);
}


/* Page transition animations */
@keyframes logoReveal {
  0% {
    opacity: 0;
    transform: scale(0.8);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes pulseLogo {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(0.95);
    opacity: 0.8;
  }
}

/* Navigation pulse animation */
@keyframes navPulse {
  0% {
    text-shadow: 0 0 0px rgba(255, 255, 255, 0);
  }
  50% {
    text-shadow: 0 0 10px rgba(255, 255, 255, 0.4);
  }
  100% {
    text-shadow: 0 0 0px rgba(255, 255, 255, 0);
  }
}

/* Page Transition Elements */
.page-transition {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--color-neutral-dark);
  z-index: 9999;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--transition-medium), visibility var(--transition-medium);
  transform: translateZ(0); /* Hardware acceleration */
}

.page-transition.active {
  pointer-events: all;
  opacity: 1;
  visibility: visible;
}

.transition-content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
}

.transition-logo {
  width: 80px;
  height: 80px;
  opacity: 0;
  transform: scale(0.8);
}

.page-transition.active .transition-logo {
  animation: logoReveal var(--transition-slow) ease forwards 0.2s;
}

/* Initial Page Load Animation */
.initial-load {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--color-neutral-dark);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 10000;
  transition: opacity var(--transition-slow), visibility var(--transition-slow);
  transform: translateZ(0); /* Hardware acceleration */
}

.initial-load.loaded {
  opacity: 0;
  visibility: hidden;
}

.load-content {
  text-align: center;
}

.load-logo {
  width: 120px;
  height: 120px;
  animation: pulseLogo 2s infinite ease-in-out;
}

.load-text {
  margin-top: 20px;
  font-family: "Sink", sans-serif;
  color: var(--color-neutral-light);
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 16px;
  opacity: 0;
  animation: fadeIn 1s ease forwards 0.5s;
}

/* Section Fade-in Animations */
.fade-in-section {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
  will-change: opacity, transform;
}

.fade-in-section.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Footer specific animation */
footer {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 1s ease-out, transform 1s ease-out;
  will-change: opacity, transform;
}

footer.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Respect reduced motion preference */
.reduced-motion .fade-in-section,
.reduced-motion footer {
  opacity: 1 !important;
  transform: translateY(0) !important;
  transition: none !important;
}


/* ==========================================================================
   8. Media Queries
   ========================================================================== */

/* Large screens (1600px and down) */
@media (max-width: 1600px) {
}

/* Tablets (991px and down) */
@media (max-width: 991px) {
  
  .footer-headline {
  	font-size: clamp(25px, 3vw, 40px);
  }
  	  	
	.footer-headline br {
		display: none;
	}

  .footer-headline .line-1::after {
        content: " ";
  }  
  
  /* About tablet adjustments */  
  .about-content-wrapper {
    grid-template-columns: 1fr;
    gap: var(--space-3);
  }
  
  .about-image-container {
    order: 1; 
  }
  
  .about-text-container {
    order: 2; 
    display: flex;
    justify-content: center;
  }
  
  .about-text-container .content-container {
    max-width: clamp(300px, 80vw, 600px); 
    margin: 0 auto; 
  }

  #about .content-container p {
  	max-width: 100%;
  }
  
  .about-us-image {
    max-width: 600px;
    margin: 0 auto;
  }  
  
  /* Services section tablet adjustments */
  .services-row {
    gap: var(--space-2);
  }
    
}

/* Mobile (767px and down) */
@media (max-width: 767px) {

  /* Nav Adjustments for Mobile */
  .burger-button {
    align-items: center;
    justify-content: center;
  }
  
	.mobile-menu {
		/* Match mobile navbar padding exactly */
		padding: clamp(var(--space-half), 2vh, var(--space-1-5)) 
						 clamp(var(--space-1-5), 4vw, var(--space-2));
	}
	
	.mobile-top {
		/* Match mobile navbar logo height */
		height: clamp(2rem, 3.5vh, 2.8rem);
	}
	
	.navbar-logo, .mobile-logo {
		height: clamp(2rem, 3.5vh, 2.8rem);
	}
	  
  .navbar-content {
		padding: clamp(var(--space-half), 2vh, var(--space-1-5)) 
						 clamp(var(--space-1-5), 4vw, var(--space-2));
	}
	
	.navbar--scrolled .navbar-content {
		padding: clamp(var(--space-quarter), 1.5vh, var(--space-1)) 
						 clamp(var(--space-1-5), 4vw, var(--space-2));
	}
	
	.navbar-logo {
		height: clamp(2rem, 3.5vh, 2.8rem);
	}
	
	.navbar--scrolled .navbar-logo {
		height: clamp(1.8rem, 3vh, 2.5rem);
	}
  
  
  
  /* Footer Adjustments for Mobile */
	.footer-main-content {
			grid-template-columns: 1fr;
			gap: var(--space-3);
			margin-bottom: clamp(var(--space-3), 6vh, var(--space-6));
	}
	
	.footer-contact-grid {
			grid-template-columns: 1fr;
			gap: var(--space-2);
	}

    .contact-group {
        align-items: center;
    }
	
	.socials-group {
			grid-column: 1;
			margin-top: var(--space-1-5);
	}
	
	.footer-bottom {
			flex-direction: column;
			align-items: center;
			gap: var(--space-1-5);
			text-align: center;
			padding-top: var(--space-1);
	}
	
	.footer-bottom-right {
			align-items: center;
			text-align: center;
	}
	
	.footer-emblem {
			width: 75px;
	}
	.footer-headline {
			font-size: clamp(36px, 5vw, 40px);
			text-align: center;
	}
	
	.footer-headline br {
			display: initial;
	}
	
	.footer-description {
			text-align: center;
			font-size: clamp(15px, 1.7vw, 18px);			
	}
		
	.footer-cta-header {
			flex-direction: column;
			align-items: center;
			gap: var(--space-1);
	}
	
	.footer-emblem {
			order: -1;
			margin-bottom: var(--space-1);
	}

	.footer-contact-grid {
		text-align: center;
	}

	.contact-group h3 {
			font-size: clamp(14px, 1.8vw, 16px);
	}
	
	.contact-group .contact-link {
			font-size: clamp(16px, 1.6vw, 18px);
	}
	
	.footer-bottom {
			flex-direction: column;
			align-items: center;
			gap: var(--space-1-5);
			text-align: center;
			width: 100%;
	}
	
	.footer-bottom-right {
			order: -1;
			align-items: center;
			text-align: center;
			width: 100%;
	}
	
	/* Reset any contact grid positioning on mobile */
	.contact-group.general,
	.contact-group.careers,
	.contact-group.new-business,
	.contact-group.socials-group {
			grid-column: 1;
			grid-row: auto;
	}
	
	.footer-social-links { 
		  justify-content: center;
	}
	
  /* HOME PAGE MOBILE ADJUSTMENTS */
	main#home #hero {
			height: 80vh;
			justify-content: center;
		}
		
	#home #hero .headline-container {
			padding-top: 0;
		}
  
  .manifesto-block .loud {
    animation-duration: 5s; /* Slower breathing on mobile */
  }
  
  /* Faster stagger on mobile for better UX */
  .manifesto-block.block-visible p:nth-child(1) { transition-delay: 0.05s; }
  .manifesto-block.block-visible p:nth-child(2) { transition-delay: 0.15s; }
  .manifesto-block.block-visible p:nth-child(3) { transition-delay: 0.25s; }
  .manifesto-block.block-visible p:nth-child(4) { transition-delay: 0.35s; }
  .manifesto-block.block-visible p:nth-child(5) { transition-delay: 0.45s; }
  .manifesto-block.block-visible p:nth-child(6) { transition-delay: 0.55s; }
  .manifesto-block.block-visible p:nth-child(7) { transition-delay: 0.65s; }
  .manifesto-block.block-visible p:nth-child(8) { transition-delay: 0.75s; }
  
  /* Reduce highlight delays on mobile */
  .manifesto-block.block-visible .highlight::before {
    transition-delay: 0.8s;
  }
  
  .manifesto-block.block-visible .highlight {
    transition-delay: 1s;
  }
  
  /* INTERIOR PAGE MOBILE MODIFICATIONS */
		#about p.content,
		#what .content-container p {
		font-size: clamp(17px, 3.5vw, 19px); 
		line-height: 1.4; 
		margin-bottom: var(--space-1); 
	} 
	  
	.about-us-image {
    max-width: 500px;
  }  
  
  .about-content-wrapper {
    gap: var(--space-2);
  }
	  
	/* Services section mobile adjustments */
  .services-row {
   	justify-content: center;
   	max-width: 430px;
   	margin: 0 auto;
    flex-direction: column;
    gap: clamp(var(--space-4), 6vh, var(--space-5)); 
  }
  
  .service-category {
    padding: clamp(var(--space-1-5), 4vw, var(--space-2-5)); 
    background: rgba(255, 255, 255, 0.03); 
  }

  .service-category h3 {
  	font-size: 31px; 
}
  
	.service-item {
		font-size: clamp(16px, 3vw, 18px); 
		line-height: 1.6; 
		margin-bottom: var(--space-1); 
	} 
	
}

/* Small Mobile (500px and down) */
@media (max-width: 500px) {
	#about #hero, #what #hero {
  	margin-top: 0;
  }
  
    
	#hero .headline-container h2 {
		text-wrap: balance;
	}
	
	#hero .headline-container span {
		font-size: clamp(24px, 10vw, 49px);
	}
	
	#hero .headline-container br {
		display: none;
	}

	#hero .headline-container .headline-1::after,
	#hero .headline-container .headline-2::after {
    content: " ";
  }  
}