/* Custom Font */
@font-face {
  font-family: 'ArialNarrow';
  src: url('fonts/ArialNarrow.woff2') format('woff2'),
       url('fonts/ArialNarrow.woff') format('woff'),
       url('fonts/ArialNarrow.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'SuisseWorks-Book';
  src: url('fonts/SuisseWorks-Book.woff2') format('woff2'),
       url('fonts/SuisseWorks-Book.woff') format('woff'),
       url('fonts/SuisseWorks-Book.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

:root {
  --shape-color: #FFF;
  --text-color: #FFF;
  --panel-text-color: #000;
  --hover-color: #0026cb;
  --border-space: 1rem;
  --text-size: 21px;
  --menu-gap: 0.5rem;
  --slide-duration: 5000ms;
  --header-height: 120px;
}

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

html {
  scroll-behavior: smooth;
}

body, html {
  -webkit-overflow-scrolling: touch;
}



body {
  font-family: 'ArialNarrow', 'Helvetica Neue', Arial, sans-serif;
  background-color: #f7e3d3;
  overflow-x: hidden;
}

body.no-scroll {
  overflow: hidden;
}

body.lightbox-open {
  overflow: hidden !important;
}

body.lightbox-open * {
  pointer-events: none;
}

body.lightbox-open .lightbox-modal,
body.lightbox-open .lightbox-modal * {
  pointer-events: auto;
}

a, button {
    cursor: pointer;
}

/* Page Containers */
.page {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s ease-in-out, visibility 0s 0.5s;
  overflow-y: hidden; /* Default to hidden */
  overflow-x: hidden;
  pointer-events: none;
  user-select: none;
}
.page.is-active {
    opacity: 1;
    visibility: visible;
    transition-delay: 0s;
    pointer-events: auto;
}

.page.content-page.is-active {
    overflow-y: auto !important;
    overflow-x: visible !important;
    user-select: text !important;
}

/* Prevent text selection on homepage */
#home-page {
    user-select: none !important;
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
}
.page--scrollable {
    overflow-y: auto;
}

/* Homepage Specifics */
#home-page {
    padding: var(--border-space);
}

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

.slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0;
  transition: opacity 1.5s ease-in-out;
}

.slide.is-visible {
  opacity: 1;
}

.slideshow-overlay {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    background-color: #000; opacity: 0; z-index: 3;
    pointer-events: none; transition: opacity 750ms ease-in-out;
}
.slideshow-overlay.is-transitioning { opacity: 1; }

/* --- Vertical Wipe Transition --- */
.loading-screen {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--hover-color);
    z-index: 2000;
    transform: translateY(-101%);
    pointer-events: none;
}
.loading-screen.is-wiping-down {
    pointer-events: auto;
    animation: transition-wipe-down 1.2s cubic-bezier(0.7, 0, 0.3, 1) forwards;
}
.loading-screen.is-wiping-up {
    pointer-events: auto;
    animation: transition-wipe-up 1.2s cubic-bezier(0.7, 0, 0.3, 1) forwards;
}

@keyframes transition-wipe-down {
    0% { transform: translateY(-101%); }
    50% { transform: translateY(0); }
    100% { transform: translateY(101%); }
}
@keyframes transition-wipe-up {
    0% { transform: translateY(101%); }
    50% { transform: translateY(0); }
    100% { transform: translateY(-101%); }
}

/* Animations */
@keyframes wipeInLeft { to { clip-path: inset(0 0 0 0); } }
@keyframes wipeInRight { to { clip-path: inset(0 0 0 0); } }
@keyframes slideUp {
  from { transform: translateY(20px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

/* Shape containers */
.shape {
  position: absolute;
  overflow: hidden;
  z-index: 4;
  mix-blend-mode: difference;
}
.shape svg {
  display: block;
  height: 100%;
  width: auto;
  fill: var(--shape-color);
}
.shape-left { clip-path: inset(0 100% 0 0); }
.shape-right { clip-path: inset(0 0 0 100%); }

/* Desktop shapes animations */
.shape-left.desktop-only, .shape-right.desktop-only { height: calc(50vh - var(--border-space)); }
.page-loaded .shape-left.desktop-only { top: var(--border-space); left: var(--border-space); animation: wipeInLeft 1s ease-out forwards 0.2s; }
.page-loaded .shape-right.desktop-only { top: var(--border-space); right: var(--border-space); animation: wipeInRight 1s ease-out forwards 0.5s; }

/* Mobile shapes animations */
.shape-left.mobile-only, .shape-right.mobile-only { height: 45vh; max-height: 350px; }
.shape-left.mobile-only { bottom: var(--border-space); left: var(--border-space); }
.shape-right.mobile-only { top: var(--border-space); right: var(--border-space); }
.page-loaded .shape-left.mobile-only { animation: wipeInLeft 1s ease-out forwards 0.2s; }
.page-loaded .shape-right.mobile-only { animation: wipeInRight 1s ease-out forwards 0.5s; }

.desktop-only { display: block; }
.mobile-only { display: none; }

/* Header styling (now a persistent footer on desktop) */
.main-header {
  position: fixed;
  width: 100%;
  z-index: 12;
  padding: var(--border-space);
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  transition: background-color 0.8s ease;
  bottom: 0;
  left: 0;
  mix-blend-mode: difference;
  color: var(--text-color);
}

.main-header h1, .main-header h2, .main-header .desktop-nav a {
  color: inherit;
  transition: color 0.8s ease, opacity 0.4s ease;
}

body.page-active .main-header h1,
body.page-active .main-header h2,
body.page-active .main-header .desktop-nav a {
  color: var(--text-color);
}

/* Base Typography for Header Elements */
.main-header h1, .main-header h2, .main-header .desktop-nav a {
  font-size: var(--text-size);
  font-weight: normal;
  margin-bottom: 0.1rem;
  white-space: nowrap;
  text-decoration: none;
}
.main-header h2 {
    margin-top: -0.25rem;
}

/* Initial Animation State & Trigger */
.main-header h1, .main-header h2, .main-header .desktop-nav ul li a {
    opacity: 0;
}
.page-loaded .main-header h1, .page-loaded .main-header h2, .page-loaded .main-header .desktop-nav ul li a {
  animation: slideUp 0.8s ease-out forwards;
}

.page-loaded .main-header h1 { animation-delay: 1.5s; }
.page-loaded .main-header h2 { animation-delay: 1.6s; }
.page-loaded .main-header .desktop-nav ul li:nth-child(1) a { animation-delay: 1.7s; }
.page-loaded .main-header .desktop-nav ul li:nth-child(2) a { animation-delay: 1.8s; }
.page-loaded .main-header .desktop-nav ul li:nth-child(3) a { animation-delay: 1.9s; }
.page-loaded .main-header .desktop-nav ul li:nth-child(4) a { animation-delay: 2.0s; }
.page-loaded .main-header .desktop-nav ul li:nth-child(5) a { animation-delay: 2.1s; }
.page-loaded .main-header .desktop-nav ul li:nth-child(6) a { animation-delay: 2.2s; }

body.page-active .main-header h1, body.page-active .main-header h2, body.page-active .main-header .desktop-nav ul li a {
    opacity: 1;
    animation: none;
}

.desktop-nav ul { list-style: none; display: flex; gap: var(--menu-gap); justify-content: center; margin-top: 0.1rem; padding: 0; }
.desktop-nav ul li a { position: relative; padding-bottom: 5px; cursor: pointer; }
.desktop-nav ul li a::after {
    content: ''; position: absolute; width: 0; height: 1px; display: block;
    margin-top: 2px; right: 0; transition: width 0.3s ease, background-color 0.3s ease;
    background-color: var(--text-color);
}

.desktop-nav ul li a:hover, .desktop-nav ul li a.is-active-link { color: var(--hover-color) !important; }
.desktop-nav ul li a:hover::after, .desktop-nav ul li a.is-active-link::after { width: 100%; left: 0; background-color: var(--hover-color); }

.content-page {
    padding-top: calc(var(--border-space) + 4rem);
    padding-bottom: calc(var(--header-height) + 2rem);
    display: flex;
    flex-direction: column; 
    align-items: center;
    overflow-y: auto !important;
    overflow-x: visible !important;
    user-select: text !important;
}
.content-wrapper { width: 100%; padding: 0 var(--border-space); text-align: center; }

.content-page p { font-size: var(--text-size); color: var(--panel-text-color); line-height: 1.5; text-align: justify; text-align-last: left; max-width: 800px; margin: 0 auto;}
.contact-link { color: var(--panel-text-color); text-decoration: underline; transition: color 0.3s ease; }
.contact-link:hover { color: var(--hover-color); }

/* --- Gallery Filter Styles --- */
/* Removed as requested - no longer needed */

/* --- Adaptive Gallery Grid  --- */
#client-work-page .content-wrapper {
    padding: 0;
    width: 100vw;
    max-width: 100vw;
}
.gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(4rem, 1fr));
    gap: 2.5rem;
    padding: 0 0rem 0rem;
    width: 100vw;
    max-width: 100vw;
    margin: 0 auto;
    box-sizing: border-box;
}
.gallery-item {
    pointer-events: none;
    background: none;
    border-radius: 0;
    box-shadow: none;
    overflow: hidden;
    padding: 0;
}
.gallery-item img {
    width: 100%;
    height: auto;
    display: block;
    cursor: pointer;
    pointer-events: auto;
    object-fit: contain;
    opacity: 0;
    transition: opacity 0.4s ease;
    user-select: none;
}
.gallery-item img.loaded {
    opacity: 1;
}
.project-overlay { display: none !important; }

/* --- NEW: Project Page Styles --- */
.project-header {
  width: 100%;
  text-align: center;
  margin-bottom: 2rem;
}
.project-header h1 {
  font-size: 2rem;
  color: var(--panel-text-color);
  margin-bottom: 0.5rem;
}
.project-description {
  max-width: 800px;
  margin: 0 auto 2rem;
}
.project-gallery {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}
.project-gallery img {
  width: 100%;
  height: auto;
}
.back-to-work-link {
    display: inline-block;
    margin-top: 2rem;
    color: var(--panel-text-color);
    text-decoration: none;
    position: relative;
}
 .back-to-work-link::after {
    content: ''; position: absolute; width: 0; height: 1px; display: block;
    margin-top: 2px; right: 0; transition: width 0.3s ease;
    background-color: var(--hover-color);
}
 .back-to-work-link:hover::after {
     width: 100%;
     left: 0;
 }

/* Mobile Navigation */
.mobile-ui, .mobile-slogan, .mobile-brand, .mobile-footer-link { display: none; }
@media (max-width: 768px) {
  .desktop-only, .main-header, .gallery-filters-container { display: none; }
  .mobile-only, .mobile-ui, .mobile-slogan, .mobile-brand { display: block; }
  
  .content-page {
    padding-top: calc(var(--border-space) + 5rem); /* Increased padding */
  }
  
  .gallery-grid {
    grid-template-columns: repeat(auto-fit,minmax(3.5rem,1fr));
    gap: 2.5rem;
    padding: 2.5rem var(--base-spacing);
  }
  
  /* Mobile magazine layout */
  .gallery-item.featured {
    grid-column: span 6;
    grid-row: span 2;
  }
  .gallery-item.large {
    grid-column: span 3;
  }
  .gallery-item.medium {
    grid-column: span 2;
  }
  .gallery-item.small {
    grid-column: span 2;
  }
  
  /* Mobile overlay adjustments */
  .project-overlay {
    padding: 1rem;
  }
  .project-overlay h3 {
    font-size: 1rem;
  }
  .project-overlay p {
    font-size: 0.8rem;
  }
  .project-overlay .category {
    font-size: 0.7rem;
  }
  
  .mobile-slogan {
    position: absolute; top: 50%; transform: translateY(-50%);
    left: var(--border-space); right: var(--border-space);
    font-size: 18px; color: var(--text-color); mix-blend-mode: difference;
    width: auto; z-index: 4; display: flex; justify-content: space-between;
    transition: opacity 750ms ease-in-out; opacity: 0;
  }
  .page-loaded .mobile-slogan { opacity: 1; }
  .mobile-slogan span { display: inline-block; opacity: 0; }
  .page-loaded .mobile-slogan.animate-in span { animation: slideUp 0.8s ease-out forwards; }
  .page-loaded .mobile-slogan.animate-in span:nth-child(1) { animation-delay: 1.0s; }
  .page-loaded .mobile-slogan.animate-in span:nth-child(2) { animation-delay: 1.1s; }
  .page-loaded .mobile-slogan.animate-in span:nth-child(3) { animation-delay: 1.2s; }
  .page-loaded .mobile-slogan.animate-in span:nth-child(4) { animation-delay: 1.3s; }
  .page-loaded .mobile-slogan.animate-in span:nth-child(5) { animation-delay: 1.4s; }
  
  .mobile-brand {
    position: absolute; bottom: var(--border-space); right: var(--border-space);
    font-size: 18px; text-align: right; mix-blend-mode: difference; color: var(--text-color); z-index: 4;
    opacity: 0; /* Start hidden */
  }
   .page-loaded .mobile-brand { animation: slideUp 0.8s ease-out 1.4s forwards; }

   /* Hide slogan and brand on content pages */
   body.page-active .mobile-slogan,
   body.page-active .mobile-brand {
     display: none;
   }

  .mobile-header-ui {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    padding: var(--border-space);
    z-index: 1001;
    display: flex;
    justify-content: space-between;
    align-items: center; 
    mix-blend-mode: difference !important;
  }
  
  .mobile-header-left {
    display: flex;
    gap: 0.75rem;
    align-items: center;
  }

  .mobile-menu-toggle {
    font-family: inherit; /* Ensure font consistency */
    font-size: 18px; color: var(--text-color); background: none; border: none;
    cursor: pointer; z-index: 1001; padding: 0; transition: color 0.3s ease;
    opacity: 0; /* Start hidden */
  }
  
  body:not(.page-active) .mobile-menu-toggle,
  body.page-active:not(.mobile-menu-open) .mobile-menu-toggle {
    color: var(--text-color);
  }

  .page-loaded .mobile-menu-toggle { animation: slideUp 0.8s ease-out 1.2s forwards; }
  
  .mobile-page-title {
  font-family: 'ArialNarrow', 'Helvetica Neue', Arial, sans-serif;
  font-size: 18px;
  font-style: italic;
  color: #fff;
  opacity: 0;
  transition: opacity 0.4s ease, visibility 0.4s;
  cursor: default; /* Ensure it doesn't look clickable */
}
  
  body.page-active .mobile-page-title {
    opacity: 1;
    transition-delay: 0.2s;
  }
  
  /* --- Mobile Filters in Header --- */
  .mobile-header-ui .gallery-filters {
      display: none; /* Hidden by default */
      gap: 0.75rem;
      transition: opacity 0.4s, visibility 0.4s;
  }
  #client-work-page.is-active ~ .mobile-ui .mobile-header-ui .gallery-filters {
      display: flex; /* Shown only on client work page */
  }
   .mobile-header-ui .filter-btn {
       font-size: 18px;
       padding: 0;
       opacity: 0.7;
       color: var(--text-color);
   }
    .mobile-header-ui .filter-btn.is-active {
        opacity: 1;
        text-decoration: underline;
    }
   .mobile-header-ui .filter-btn::after {
       display: none; /* No underline on mobile header filters */
   }

  /* --- FIX for mobile menu visibility --- */
  body.page-active.mobile-menu-open .mobile-menu-toggle,
  body.page-active.mobile-menu-open .mobile-page-title,
  body.page-active.mobile-menu-open .filter-btn {
      color: var(--panel-text-color);
  }
  
  body.mobile-menu-open .mobile-page-title,
  body.mobile-menu-open .gallery-filters {
      opacity: 0;
      visibility: hidden;
  }

  body .mobile-menu-toggle:hover,
  body .mobile-header-ui .filter-btn:hover {
      color: var(--hover-color) !important;
  }
  
  .mobile-footer-link {
    display: block;
    position: fixed;
    bottom: var(--border-space);
    right: var(--border-space);
    font-size: 18px;
    z-index: 4;
    mix-blend-mode: difference;
    color: var(--text-color);
    text-decoration: none;
    opacity: 0;
    transition: opacity 0.4s ease;
    pointer-events: none;
  }

  body.page-active .mobile-footer-link {
    opacity: 1;
    transition-delay: 0.3s;
    pointer-events: auto;
  }

  .mobile-footer-link:hover {
    color: var(--hover-color);
  }

  .mobile-nav-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background-color: transparent;
    mix-blend-mode: difference;
    display: flex; flex-direction: column;
    justify-content: flex-start; align-items: flex-start;
    opacity: 0; pointer-events: none; transition: opacity 0.5s ease;
    z-index: 1000; padding: var(--border-space);
  }
  body.page-active.mobile-menu-open .mobile-nav-overlay {
      mix-blend-mode: normal;
      background-color: #f7e3d3;
  }
  
  body.mobile-menu-open .mobile-nav-overlay { opacity: 1; pointer-events: auto; }
  
  .mobile-nav-overlay ul { list-style: none; padding: 0; margin: calc(18px + 1rem) 0 0 0; }
  .mobile-nav-overlay li { margin: 0.2rem 0; opacity: 0; transform: translateY(10px); transition: opacity 0.4s ease, transform 0.4s ease; }
  body.mobile-menu-open .mobile-nav-overlay li { opacity: 1; transform: translateY(0); }
  body.mobile-menu-open .mobile-nav-overlay li:nth-child(1) { transition-delay: 0.1s; }
  body.mobile-menu-open .mobile-nav-overlay li:nth-child(2) { transition-delay: 0.15s; }
  body.mobile-menu-open .mobile-nav-overlay li:nth-child(3) { transition-delay: 0.2s; }
  body.mobile-menu-open .mobile-nav-overlay li:nth-child(4) { transition-delay: 0.25s; }
  body.mobile-menu-open .mobile-nav-overlay li:nth-child(5) { transition-delay: 0.3s; }
  body.mobile-menu-open .mobile-nav-overlay li:nth-child(6) { transition-delay: 0.35s; }
  
  .mobile-nav-overlay a {
    font-size: 18px;
    text-decoration: none;
    transition: color 0.3s ease;
    color: var(--text-color);
  }
  
  body.page-active.mobile-menu-open .mobile-nav-overlay a {
    color: var(--panel-text-color);
  }
  
  body.page-active.mobile-menu-open .mobile-nav-overlay a.is-active-link {
    color: var(--hover-color) !important;
  }

  .mobile-nav-overlay a:hover {
    color: var(--hover-color) !important;
  }
  
  .content-page { padding-bottom: 2rem; }
} 

/* Lightbox Modal Styles - Felicity Ingram style */
.lightbox-modal {
  position: fixed;
  z-index: 10000;
  left: 0; top: 0; right: 0; bottom: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(247, 227, 211, 0.92) !important;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s;
}
.lightbox-modal[style*="display:flex"] {
  opacity: 1;
  pointer-events: auto;
}
.lightbox-modal[style*="display:flex"] .lightbox-content {
  pointer-events: auto;
}
.lightbox-modal[style*="display:flex"] .lightbox-image {
  pointer-events: auto;
}
.lightbox-modal[style*="display:flex"] .lightbox-hover-zone {
  pointer-events: auto;
}
.lightbox-modal[style*="display:flex"] .lightbox-count {
  pointer-events: auto;
}
.lightbox-modal[style*="display:flex"] .lightbox-close-link {
  pointer-events: auto;
}
.lightbox-content {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100vw;
  height: 100vh;
}
.lightbox-image {
  display: block;
  max-width: 90vw;
  max-height: 80vh;
  transition: opacity 0.35s;
  opacity: 1;
}
.lightbox-image.fading-out {
  opacity: 0;
}
.lightbox-image.fading-in {
  opacity: 0;
  animation: fadeInLightbox 0.35s forwards;
}
@keyframes fadeInLightbox {
  to { opacity: 1; }
}
.lightbox-image.sliding-left {
  transform: translateX(-100%);
}
.lightbox-image.sliding-right {
  transform: translateX(100%);
}
.lightbox-bottom-bar {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  width: 100vw;
  max-width: none;
  margin: 0 auto;
  padding: 0 0 2.5rem 0;
  box-sizing: border-box;
  font-size: 18px;
  color: var(--text-color);
  background: none !important;
  pointer-events: none;
  font-family: 'ArialNarrow', 'Helvetica Neue', Arial, sans-serif;
  font-weight: 400;
  text-align: justify;
  mix-blend-mode: normal !important;
}
@media (max-width: 1200px) {
  .lightbox-bottom-bar {
    max-width: 100vw;
    padding-left: 2rem;
    padding-right: 2rem;
  }
}
@media (max-width: 700px) {
  .lightbox-bottom-bar {
    max-width: 100vw;
    padding-left: 1rem;
    padding-right: 1rem;
  }
}
@media (max-width: 600px) {
  .lightbox-bottom-bar {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    max-width: 100vw !important;
    padding: 1rem !important;
    font-size: 0.95rem !important;
    background: rgba(255,255,255,0.9) !important;
    z-index: 10001 !important;
  }
}
.lightbox-count {
  pointer-events: auto;
  color: var(--text-color);
  font-size: 18px;
  font-family: inherit;
  font-weight: 400;
  margin: 0 0.5em;
}
.lightbox-close-link {
  pointer-events: auto;
  text-decoration: none;
  text-transform: lowercase;
  transition: color 0.2s;
  color: var(--text-color);
  font-size: 18px;
  font-weight: 400;
}
.lightbox-close-link:hover {
  color: #ff5252;
}
@media (max-width: 600px) {
  .lightbox-modal {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    z-index: 10000 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }
  .lightbox-content {
    position: relative !important;
    width: 100% !important;
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    padding-bottom: 70px !important; /* Reserve space for bottom bar */
    box-sizing: border-box !important;
  }
  .lightbox-center-wrapper {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 1rem !important;
    position: static !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
  }
  .lightbox-image {
    display: block !important;
    margin: 0 auto !important;
    max-width: 98vw !important;
    max-height: 60vh !important;
    object-fit: contain !important;
  }
  .lightbox-bottom-bar {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    padding: 1rem !important;
    font-size: 0.95rem !important;
    background: rgba(255,255,255,0.9) !important;
    z-index: 10001 !important;
  }
} 

/* Lightbox navigation hover zones with text */
.lightbox-hover-zone {
  position: absolute;
  top: 0;
  width: 50%;
  height: 100%;
  z-index: 10;
  cursor: pointer;
  opacity: 1;
  pointer-events: auto;
  transition: background 0.2s;
  /* Remove flex centering */
}
.lightbox-nav-text.lightbox-nav-follow {
  position: absolute;
  left: 0;
  top: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s;
  mix-blend-mode: difference;
}
.lightbox-hover-zone:hover .lightbox-nav-follow {
  opacity: 1;
}
.lightbox-hover-left {
  left: 0;
  right: auto;
}
.lightbox-hover-right {
  right: 0;
  left: auto;
}
.lightbox-nav-text {
  opacity: 0;
  transition: opacity 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
  mix-blend-mode: difference;
  /* No absolute positioning */
}
.lightbox-nav-text img {
  width: 56px;
  height: auto;
  pointer-events: none;
  display: block;
}
.lightbox-hover-zone:hover .lightbox-nav-text {
  opacity: 1;
}
/* Typography fix for lightbox bottom bar */
.lightbox-bottom-bar, .lightbox-count, .lightbox-close-link {
  font-family: 'ArialNarrow', 'Helvetica Neue', Arial, sans-serif;
  font-size: 18px;
  color: #222;
  font-weight: 400;
}
@media (max-width: 600px) {
  .lightbox-bottom-bar, .lightbox-count, .lightbox-close-link {
    font-size: 18px;
  }
} 

/* Editorial About page layout */
.about-outer {
  padding: 4rem var(--border-space) 2rem;
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  min-height: 100vh;
}
.about-main {
  font-family: 'ArialNarrow', 'Helvetica Neue', Arial, sans-serif;
  color: #181818;
  text-align: left;
  position: relative;
  z-index: 2;
}
.about-h1 {
  font-family: 'SuisseWorks-Book', 'Times New Roman', Times, serif;
  font-size: 3.5rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin-bottom: 3rem;
  line-height: 1.1;
  color: #181818;
}
.about-content {
  max-width: 800px;
  margin-top: 0.7rem;
}
.about-section {
  margin-bottom: 3rem;
}
.about-section h2 {
  font-size: 1.8rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
  color: #181818;
  letter-spacing: 0.01em;
  text-transform: uppercase;
}
.about-logo {
  position: absolute;
  bottom: var(--border-space);
  right: var(--border-space);
  height: calc(50vh - var(--border-space));
  z-index: 1;
  mix-blend-mode: difference;
  opacity: 1;
  clip-path: inset(0 0 0 100%);
}

body.page-active .about-logo {
  animation: wipeInRight 1s ease-out forwards 0.5s;
}
.about-logo svg {
  display: block;
  height: 100%;
  width: auto;
  fill: var(--text-color);
  transform: scaleX(-1) rotate(180deg);
}
.about-intro {
  font-size: 1.3rem;
  font-weight: 400;
  line-height: 1.6;
  margin-bottom: 2rem;
  color: #222;
  max-width: 800px;
}
.about-list {
  font-size: 1.1rem;
  font-weight: 400;
  color: #222;
  line-height: 1.8;
  margin-bottom: 2rem;
  list-style: none;
  padding: 0;
}
.about-list li {
  margin-bottom: 0.5rem;
  padding-left: 0;
}
.about-contact {
  margin: 4rem 0 2rem;
  padding: 2rem 0;
  border-top: 1px solid #ddd;
  display: flex;
  gap: 3rem;
  flex-wrap: wrap;
}
.about-contact-block a {
  color: #181818;
  text-decoration: underline;
  font-weight: 600;
  font-size: 1.1rem;
  transition: color 0.2s;
}
.about-contact-block a:hover {
  color: var(--hover-color);
}
.about-credits {
  font-size: 0.9rem;
  color: #888;
  margin-top: 3rem;
  font-weight: 400;
  line-height: 1.7;
  padding-top: 2rem;
  border-top: 1px solid #eee;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

@media (max-width: 900px) {
  .about-outer {
    padding: 3rem var(--border-space) 2rem;
  }
  .about-h1 {
    font-size: 2.8rem;
  }
  .about-section h2 {
    font-size: 1.5rem;
  }
  .about-intro {
    font-size: 1.1rem;
  }
  .about-list {
    font-size: 1rem;
  }
  .about-logo {
    height: 45vh;
    max-height: 350px;
    bottom: var(--border-space);
    right: var(--border-space);
  }
  
  .about-photo {
    height: 45vh;
    max-height: 350px;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: calc(100vw - var(--border-space));
  }
  .about-contact {
    flex-direction: column;
    gap: 1rem;
  }
  .about-credits {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
}

@media (min-width: 769px) {
  .about-logo {
    display: none;
  }
  
  .about-photo {
    width: calc(100vw - var(--border-space));
    height: calc(60vh - var(--border-space));
    left: 50%;
    transform: translateX(-50%);
  }
}

@media (min-width: 769px) {
  .about-content, .about-content p, .about-content .about-intro {
    font-size: 21px;
  }
}

@media (max-width: 600px) {
  .about-outer {
    padding: 2rem var(--border-space) 1rem;
  }
  .about-h1 {
    font-size: 2rem;
  }
  .about-rep {
    font-size: 1rem;
  }
  .about-section h2 {
    font-size: 1.3rem;
  }
  .about-intro {
    font-size: 1rem;
  }
  .about-list {
    font-size: 0.9rem;
  }
  .about-contact-block a {
    font-size: 1rem;
  }
  .about-credits {
    font-size: 0.8rem;
  }
} 

/* Editorial typography for About page */
.about-page, .about-wrapper, .about-outer, .about-main {
  font-family: 'Inter', Helvetica, Arial, sans-serif;
  color: #181818;
  text-align: left;
}
.about-h1, .about-page h1 {
  font-family: 'SuisseWorks-Book', 'Times New Roman', Times, serif;
  font-size: 2.6rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  margin-bottom: 1.5rem;
  line-height: 1.1;
}
.about-rep {
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 1.5rem;
  margin-top: 0.5rem;
}
.about-intro {
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1.6;
  margin-bottom: 2.2rem;
  color: #222;
}
.about-section h2 {
  font-size: 1.12rem;
  font-weight: 700;
  margin-bottom: 0.8rem;
  color: #222;
  letter-spacing: 0.01em;
}
.about-list {
  font-size: 1.05rem;
  font-weight: 400;
  color: #222;
  line-height: 1.7;
  margin-bottom: 2.2rem;
}
.about-list li {
  margin-bottom: 0.18em;
}
.about-credits {
  font-size: 1rem;
  color: #888;
  margin-top: 2.8rem;
  font-weight: 400;
  line-height: 1.7;
}
.about-top-row {
  display: flex;
  gap: 2.5rem;
  margin-bottom: 2.5rem;
  font-size: 1.05rem;
  font-weight: 600;
}
.about-contact-block a {
  color: #181818;
  text-decoration: underline;
  font-weight: 600;
  transition: color 0.2s;
}
.about-contact-block a:hover {
  color: #ff5252;
}
@media (max-width: 600px) {
  .about-h1, .about-page h1 {
    font-size: 1.45rem;
  }
  .about-rep {
    font-size: 1.01rem;
  }
  .about-intro {
    font-size: 1.05rem;
  }
  .about-section h2 {
    font-size: 0.99rem;
  }
  .about-list {
    font-size: 0.97rem;
  }
  .about-credits {
    font-size: 0.91rem;
  }
  .about-top-row {
    flex-direction: column;
    gap: 0.7rem;
    font-size: 0.97rem;
  }
} 



/* Center and constrain client work grid */
.gallery-grid {
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 2rem;
  padding-right: 2rem;
}
@media (max-width: 700px) {
  .gallery-grid {
    padding-left: 1rem;
    padding-right: 1rem;
  }
} 

/* Bring client work grid closer to the top */
.gallery-grid {
  padding-top: 1rem;
}
.content-wrapper, .content-page, .page--scrollable {
  margin-top: 0;
  padding-top: 0;
} 

.lightbox-nav-text img {
  width: 56px;
  height: auto;
  display: block;
  mix-blend-mode: difference;
  pointer-events: none;
} 

/* Remove all lightbox image transition/animation classes */
.slide-in-left, .slide-in-right, .slide-out-left, .slide-out-right, .lightbox-image-animator {
  animation: none !important;
  transition: none !important;
  opacity: 1 !important;
  transform: none !important;
  display: none !important;
} 

.lightbox-bottom-bar {
  background: none !important;
} 

@media (max-width: 900px) {
  .lightbox-hover-zone,
  .lightbox-nav-text {
    display: none !important;
  }
} 

.about-content, .about-content p, .about-content .about-intro {
  font-family: 'ArialNarrow', 'Helvetica Neue', Arial, sans-serif;
  font-size: 18px;
  line-height: 20px;
  color: #000000;
  isolation: isolate;
  position: relative;
  z-index: 3;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
} 

.about-content p {
  text-indent: 2rem;
  margin-bottom: 1.5rem;
}

.about-quote {
  font-family: 'SuisseWorks-Book', 'Times New Roman', Times, serif;
  font-size: 16px;
  line-height: 18px;
  color: #000000;
  font-style: italic;
  text-align: center;
  margin-top: 2rem;
  margin-bottom: 2rem;
  text-indent: 0 !important;
  max-width: 100%;
  display: block;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  box-sizing: border-box;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.about-photo {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: calc(100vw - var(--border-space));
  height: calc(50vh - var(--border-space));
  z-index: 1;
  overflow: hidden;
}

.about-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.photo-overlay {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 30%;
  height: 30%;
  background: linear-gradient(135deg, rgba(173, 216, 230, 0.8) 0%, rgba(105, 105, 105, 0.6) 100%);
  z-index: 2;
} 

.about-page {
  position: relative;
}



.about-main {
  position: relative;
  z-index: 2;
}

/* Contact Page Styles */
.contact-outer {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  height: 100%;
  padding: 2rem;
}

.contact-content {
  max-width: 800px;
  width: 100%;
}

.contact-h1 {
  font-family: 'ArialNarrow', 'Helvetica Neue', Arial, sans-serif;
  font-size: 2rem;
  font-weight: normal;
  color: #000;
  margin-bottom: 2rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.contact-text {
  font-family: 'ArialNarrow', 'Helvetica Neue', Arial, sans-serif;
  font-size: 18px;
  line-height: 20px;
  color: #000000;
  text-align: justify;
  text-align-last: left;
}

.contact-text p {
  margin-bottom: 1.5rem;
  text-indent: 2rem;
}

.contact-text a {
  color: #000;
  text-decoration: underline;
  transition: color 0.3s ease;
}

.contact-text a:hover {
  color: #0026cb;
}

@media (min-width: 769px) {
  .contact-text {
    font-size: 21px;
    line-height: 24px;
  }
}

@media (max-width: 600px) {
  .contact-outer {
    padding: 1rem;
  }
  
  .contact-h1 {
    font-size: 1.5rem;
    margin-bottom: 1.5rem;
  }
  
  .contact-text {
    font-size: 16px;
    line-height: 18px;
  }
  
  .contact-text p {
    margin-bottom: 1rem;
    text-indent: 1.5rem;
  }
} 

 