/* ============================================================
   TILT SHIFT STUDIO — HOMEPAGE CUSTOM CSS
   Salient Theme Options > Design Settings > Custom CSS

   Brand colours:
     Purple:     #4000f5
     Teal:       #9cf0e3
     Lime:       #cff563
     Near black: #121213
     White:      #ffffff

   Fonts:
     Headlines: Space Grotesk
     Body copy: Work Sans

   Sections in this file, top to bottom:
     1. Fonts
     2. Hero (marbled image + "Science Told Beautifully" overlay)
     3. Intro copy row (black bg, two columns)
     4. Buttons (shared pill-style button used across sections)
     5. About / "Science of Telling Stories" (white bg, two columns)
     6. Stories section (black bg, blue grid pattern)
     7. What We Do (purple bg, accordion + craft icons)
     8. Stats strip (teal bg, sits below What We Do)
     9. Case studies (carousel styling)
     10. Stories section reworked (interactive JS-driven grid) +
         decorative bars animation
     11. Homepage anchor navigation (scroll-to-section nav)
     12. Nav — remove hover box around menu items
   ============================================================ */

/* 1. Fonts — loaded via Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=Work+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400;1,600;1,700&display=swap');

/* ============================================================
   2. HERO — marbled image with "SCIENCE TOLD BEAUTIFULLY" overlay
   ============================================================ */

.hero-marble-block {
  position: relative;
}

.hero-marble-block img {
  width: 100%;
  max-height: 55vh; /* Limits the image to 65% of the screen height */
  object-fit: cover; /* Ensures the image crops nicely instead of squishing */
  display: block;
}

/* ============================================================
   HERO TEXT ANIMATION KEYFRAMES
   ============================================================ */
@keyframes heroTextReveal {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.8);
    letter-spacing: -2px; 
  }
  100% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
    letter-spacing: 4px;
  }
}

@keyframes heroLineGrow {
  0% {
    transform: scaleX(0);
  }
  100% {
    transform: scaleX(1);
  }
}

/* ============================================================
   HERO TEXT & LINE ANIMATION KEYFRAMES
   ============================================================ */
@keyframes heroTextReveal {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.95);
    letter-spacing: 0px;
  }
  100% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
    letter-spacing: 4px;
  }
}

@keyframes heroLinePush {
  0% {
    flex-grow: 0;
    width: 0px;
    margin: 0 8px;
    opacity: 0;
  }
  5% {
    opacity: 1;
  }
  100% {
    flex-grow: 1;
    width: clamp(40px, 8vw, 120px);
    margin: 0 30px;
    opacity: 1;
  }
}

/* ============================================================
   UPDATED HERO TEXT CLASSES
   ============================================================ */
.science-told-overlay {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  align-items: center;
  width: 80%; 
  justify-content: center;
  color: #ffffff;
  font-size: clamp(16px, 2.5vw, 32px);
  text-transform: uppercase;
  font-weight: 500;
  font-family: 'Space Grotesk', sans-serif;
  z-index: 10;
  white-space: nowrap; 
  animation: heroTextReveal 2.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.science-told-overlay .line {
  height: 3px;
  background-color: #ffffff;
  flex-grow: 0;
  width: 0px;
  margin: 0 8px;
  opacity: 0;
  animation: heroLinePush 2.5s cubic-bezier(0.16, 1, 0.3, 1) 1.2s forwards;
}

.hero-marble-block .img-with-aniamtion-wrap,
.hero-marble-block .inner,
.hero-marble-block .hover-wrap,
.hero-marble-block .hover-wrap-inner {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  background: none !important;
}

.hero-marble-block,
.hero-marble-block * {
  border-width: 0 !important;
}

/* ============================================================
   3. INTRO COPY ROW — black bg, two-column headline pair + copy
   ============================================================ */

.intro-headline-pair {
  display: flex;
  justify-content: space-between;
  gap: 20px;
}

.intro-headline,
.intro-subhead {
  color: #ffffff;
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 500;
  font-size: clamp(18px, 2vw, 28px);
  letter-spacing: 4px;
  line-height: 1.3;
  text-transform: uppercase;
  flex: 1;
}

.intro-headline {
  text-align: left;
}

.intro-subhead {
  text-align: right;
}

@media (max-width: 600px) {
  .intro-headline-pair {
    flex-direction: column;
    gap: 24px;
  }

  .intro-subhead {
    text-align: left;
  }
}

.intro-copy {
  color: #ffffff;
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 400;
  font-size: clamp(14px, 1vw, 16px);
  line-height: 1.6;
}

.intro-copy p {
  margin-bottom: 16px;
}

/* ============================================================
   4. BUTTONS — shared pill button style
   ============================================================ */

.nectar-button,
a.nectar-button {
  display: inline-block;
  background: transparent !important;
  border: 1px solid var(--btn-color, #9cf0e3) !important;
  color: var(--btn-color, #9cf0e3) !important;
  border-radius: 30px !important;
  padding: 6px 32px !important;
  font-size: 13px;
  letter-spacing: 1px;
  text-transform: uppercase;
  font-family: 'Space Grotesk', sans-serif;
  text-decoration: none;
  transition: all 0.3s ease;
}

.nectar-button:hover,
a.nectar-button:hover {
  background: var(--btn-color, #9cf0e3) !important;
  color: #000000 !important;
}

/* ============================================================
   5. ABOUT — "The Science of Telling Stories"
   ============================================================ */

.about-left-col .wpb_text_column h2 {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 500;
  font-size: clamp(24px, 3vw, 28px);
  line-height: 1.2;
  text-transform: uppercase;
  color: #4000f5;
  letter-spacing: 3px;
  padding-bottom: 30px;
}

.about-right-col .wpb_text_column p {
  color: #121213;
  font-family: 'Work Sans', sans-serif;
  font-size: clamp(14px, 1vw, 16px);
  line-height: 1.4;
  margin-bottom: 0px;
}

.about-right-col .wpb_text_column p strong {
  font-weight: 500;
  color: #121213;
  font-family: 'Work Sans', sans-serif;
}

.about-right-col .wpb_text_column p:last-child strong {
  color: #4000f5;
  font-style: normal !important;
  font-weight: 500;
  font-family: 'Space Grotesk', sans-serif;
  font-size: clamp(16px, 1vw, 20px);
}

/* ============================================================
   6. STORIES SECTION — "The Most Important Stories"
   ============================================================ */

.stories-section {
  background-color: #000000 !important;
  background-image: 
    linear-gradient(rgba(64, 0, 245, 0.5) 1px, transparent 1px),
    linear-gradient(90deg, rgba(64, 0, 245, 0.5) 1px, transparent 1px) !important;
  background-size: 300px 60px !important;
}

.stories-section .nectar-text-inline-media,
.stories-section .nectar-text-inline-media p,
.stories-section h2,
.stories-section p {
  color: #ffffff !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  font-size: clamp(40px, 6vw, 90px) !important;
  line-height: 1.1 !important;
  letter-spacing: -1px !important;
}

.stories-section .nectar-text-inline-images,
.stories-section .nectar-text-inline-images-inner,
.stories-section .nectar-text-inline-images p,
.stories-section .nectar-text-inline-images h2 {
  color: #ffffff !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  font-size: 4vw !important;
  line-height: 1.1 !important;
  letter-spacing: -1px !important;
}

.stories-section .row-bg-wrap,
.stories-section .row_col_wrap_12,
.stories-section .vc_column-inner,
.stories-section .wpb_wrapper {
  max-width: 100% !important;
  padding-left: 40px !important;
  padding-right: 40px !important;
}

.stories-section .nectar-text-inline-media {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}

.stories-section p,
.stories-section .nectar-text-inline-media p,
.stories-section .wpb_wrapper p,
.stories-section .vc_column-inner p {
  margin: 0 !important;
  padding: 0 !important;
}

/* ============================================================
   7. WHAT WE DO — purple bg, accordion + craft icon row
   ============================================================ */

.what-we-do-section {
  background-color: #4000f5 !important;
}

.what-we-do-heading {
  color: #9cf0e3 !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 700 !important;
  font-size: clamp(24px, 2.5vw, 36px) !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  margin-bottom: 24px !important;
}

.what-we-do-right {
  padding-right: 10% !important;
}

.what-we-do-intro {
  color: #ffffff !important;
  font-family: 'Work Sans', sans-serif !important;
  font-size: clamp(13px, 1vw, 15px) !important;
  line-height: 1.6 !important;
  margin-bottom: 40px !important;
  padding-right: 200px;
}

/* --- Accordion (Salient "toggles" element) --- */

.toggles.accordion a.toggle-heading {
  position: relative !important;
  display: block !important;
  padding-left: 36px !important;
  padding-right: 0 !important;
  color: #ffffff !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 600 !important;
  font-size: clamp(14px, 1.2vw, 18px) !important;
  text-transform: none !important;
}

.toggles.accordion .toggle-title {
  border-bottom: none !important;
  padding: 6px 0 !important;
}

.toggles.accordion .toggle.default {
  border-bottom: 1px solid #9cf0e3 !important;
  padding-bottom: 6px !important;
}

.toggles.accordion a.toggle-heading i.fa {
  position: absolute !important;
  left: 0 !important;
  right: auto !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  color: #9cf0e3 !important;
  border: none !important;
  background: none !important;
  border-radius: 0 !important;
  width: auto !important;
  height: auto !important;
  line-height: normal !important;
  flex-shrink: 0 !important;
}

.toggles.accordion .inner-toggle-wrap .wpb_text_column p {
  color: #ffffff !important;
  font-family: 'Work Sans', sans-serif !important;
  font-size: clamp(13px, 1vw, 15px) !important;
  line-height: 1.6 !important;
  padding-left: 36px;
}

.what-we-do-btn {
  padding-top: 20px;
}

/* --- Craft icon row --- */

.craft-block {
  display: flex;
  align-items: center;
  gap: 30px !important;
  margin-top: 0 !important;
}

.craft-icon-svg {
  width: 80px !important;
  height: 80px !important;
  flex-shrink: 0 !important;
  transition: transform 0.4s ease-in-out !important;
  transform-origin: center center !important;
}

.craft-block:hover .craft-icon-svg {
  transform: rotate(45deg) !important;
}

.craft-heading {
  color: #9cf0e3 !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 500 !important;
  font-size: clamp(20px, 2vw, 28px) !important;
  text-transform: uppercase !important;
  line-height: 1.1 !important;
  letter-spacing: 1px !important;
  margin: 0 !important;
}

.craft-icon {
  position: relative;
  width: 40px;
  height: 40px;
  flex-shrink: 0;
}

.craft-icon-vertical {
  position: absolute;
  left: 50%;
  top: 0;
  width: 2px;
  height: 100%;
  background-color: #9cf0e3;
  transform: translateX(-50%);
}

.craft-icon-horizontal {
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: #9cf0e3;
  transform: translateY(-50%);
}

.craft-heading {
  color: #9cf0e3 !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 500 !important;
  font-size: clamp(18px, 1.5vw, 24px) !important;
  text-transform: uppercase !important;
  line-height: 1.3 !important;
  margin: 0 !important;
}

@media (max-width: 768px) {
  .what-we-do-left,
  .what-we-do-right {
    width: 100% !important;
  }

  .what-we-do-right {
    margin-top: 40px;
  }
}

div[data-style="minimal"] .toggle > .toggle-title i::before,
div[data-style="minimal"] .toggle > .toggle-title i::after {
  background-color: #9cf0e3 !important;
}

@media (min-width: 769px) {
  .what-we-do-section .row_col_wrap_12 {
    display: flex !important;
    flex-wrap: nowrap !important;
  }

  .what-we-do-section .what-we-do-left {
    flex: 0 0 41.6666% !important;
    max-width: 41.6666% !important;
  }

  .what-we-do-section .what-we-do-right {
    flex: 0 0 58.3333% !important;
    max-width: 58.3333% !important;
  }
}

.craft-icon-svg {
  width: 80px !important;
  height: 80px !important;
  flex-shrink: 0 !important;
  min-width: 10px !important;
}

.craft-icon-svg line {
  stroke-width: 3 !important;
}

/* ============================================================
   8. STATS STRIP
   ============================================================ */

.stats-strip {
  background-color: #9cf0e3 !important;
  border-top: 1px solid rgba(255,255,255,0.15);
}

.stats-intro-text {
  color: #9cf0e3 !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: clamp(15px, 1vw, 17px) !important;
  line-height: 1.4 !important;
  padding-right: 20px;
}

.stats-number {
  display: block;
  color: #9cf0e3 !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 400 !important;
  font-size: clamp(28px, 2.5vw, 42px) !important;
  line-height: 1 !important;
  margin-bottom: 6px !important;
  padding-left: 10px;
}

.stats-item {
  position: relative !important;
  padding-left: 24px !important;
}

.stats-item::before {
  content: '' !important;
  position: absolute !important;
  left: 0 !important;
  top: -100px !important;
  bottom: -100px !important;
  width: 1px !important;
  background-color: #9cf0e3 !important;
}

.stats-description {
  color: #ffffff !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: clamp(15px, 1vw, 17px) !important;
  line-height: 1.4 !important;
  margin: 0 !important;
  padding-right: 40px;
  padding-left: 10px;
}

@media (max-width: 768px) {
  .stats-intro,
  .stats-item {
    width: 50% !important;
    margin-bottom: 40px !important;
  }

  .stats-intro {
    width: 100% !important;
  }
}

/* ============================================================
   9. CASE STUDIES
   ============================================================ */

.passion-heading h2,
.passion-heading p {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 500 !important;
  font-size: clamp(20px, 3vw, 28px) !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  line-height: 1.2 !important;
  color: #121213 !important;
}

.passion-arrow {
  display: block !important;
  margin-left: auto !important;
}

.arrow-col {
  padding-bottom: 20px !important;
  padding-right: 80px !important;
}

.case-study-number {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 300 !important;
  font-size: clamp(80px, 5vw, 100px) !important;
  line-height: 1 !important;
  color: #cff563 !important;
  letter-spacing: -2px !important;
  display: block !important;
  font-feature-settings: "zero" 1 !important;
}

.nectar-sticky-media-section .nectar-responsive-text.nectar-link-underline-effect h2 {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 400 !important;
  font-size: clamp(18px, 2vw, 28px) !important;
  line-height: 1.2 !important;
  color: #cff563 !important;
  letter-spacing: 0px !important;
}

.nectar-sticky-media-section .nectar-responsive-text.nectar-link-underline-effect p {
  font-family: 'Work Sans', sans-serif !important;
  font-weight: 400 !important;
  font-size: clamp(13px, 1vw, 15px) !important;
  color: #ffffff !important;
  line-height: 1.6 !important;
}

.case-study-label {
  display: block !important;
  color: #ffffff !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 600 !important;
  font-size: 16px !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
  margin-bottom: 16px !important;
  opacity: 0.8 !important;
}

.full-project-btn,
a.full-project-btn {
  display: inline-block;
  background: transparent !important;
  border: 1px solid var(--btn-color, #ffffff) !important;
  color: var(--btn-color, #ffffff) !important;
  border-radius: 30px !important;
  padding: 6px 32px !important;
  font-size: 13px;
  letter-spacing: 1px;
  text-transform: uppercase;
  font-family: 'Space Grotesk', sans-serif;
  text-decoration: none !important;
  transition: all 0.3s ease;
  margin-top: 100px;
}

.full-project-btn:hover,
a.full-project-btn:hover {
  background: var(--btn-color, #9cf0e3) !important;
  color: #ffffff !important;
}

/* test */
/* ============================================================
   10. STORIES SECTION — Interactive Grid + Decorative Bars
   ============================================================ */

.stories-section {
  background-color: #000000 !important;
  background-image: none !important;
  position: relative !important;
}

.stories-section .container,
.stories-section .row-bg-wrap,
.stories-section .wpb_wrapper {
  position: relative;
  z-index: 2;
}

.interactive-line {
  position: absolute;
  background-color: rgba(64, 0, 245, 0.5);
  z-index: 1;
  pointer-events: none;
  transition: background-color 1s ease-out, box-shadow 1s ease-out; 
}

.interactive-line.vertical {
  top: 0;
  bottom: 0;
  width: 1px;
}

.interactive-line.horizontal {
  left: 0;
  right: 0;
  height: 1px;
}

.interactive-line.lit {
  background-color: rgba(156, 240, 227, 0.4) !important; 
  box-shadow: none !important; 
  transition: background-color 0.2s ease-in !important; 
}

/* ============================================
   DECORATIVE BARS ANIMATION STATES
   ============================================ */
.ps-bar {
  transform: translateX(100px);
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.ps-bars.is-animated .ps-bar {
  transform: translateX(0);
}

/* ============================================================
   11. HOMEPAGE ANCHOR NAVIGATION
   Nav items scroll to sections on this page instead of linking
   to separate pages (about / services / work / contact).

   HOW TO WIRE THIS UP:
   1. In WPBakery, give each target section's ROW an ID (usually
      an "El ID"/"Row ID" field on the row's General tab):
        about     -> "The Science of Telling Stories" row
        services  -> "What We Do" (purple) row
        work      -> the case studies slider row
        contact   -> "Looking For A Different Perspective" row
   2. In Appearance > Menus, rebuild About/Services/Work/Contact
      as Custom Links pointing to /#about, /#services, /#work,
      /#contact instead of Page links.
   ============================================================ */

html {
  scroll-behavior: smooth;
}

#about,
#services,
#work,
#contact {
  /* Adjust this if a section still lands slightly hidden behind
     a fixed/sticky header once you test it live. */
  scroll-margin-top: 100px;
}

/* ============================================================
   12. NAV — remove hover box around menu items
   BEST-GUESS RESET targeting Salient/Superfish nav classes.
   If the box is still there after this, it's more likely coming
   from a Theme Options setting than CSS — check Salient >
   Header Navigation for a "Link Hover Effect" style dropdown
   and switch it from "Box" to "None"/"Fade" there instead.
   ============================================================ */

.sf-menu > li > a,
.sf-menu > li > a:hover,
.sf-menu > li > a:focus,
.sf-menu > li.current-menu-item > a {
  border: none !important;
  box-shadow: none !important;
  background: none !important;
}

.sf-menu > li > a::before,
.sf-menu > li > a::after {
  display: none !important;
  content: none !important;
}

/* Removes the highlight "bubble" background around whichever nav
   item is currently active/selected. Confirmed via DevTools that
   Salient targets the nested .menu-title-text span (not the 
   itself) using this exact selector pattern for its own dynamic
   styling — matching it here so this override actually reaches
   the right element instead of missing it entirely. */
#top .sf-menu > li[class*="current"] > a,
#top .sf-menu > li[class*="current"] > a .menu-title-text {
  background: none !important;
  background-color: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: #9cf0e3 !important; /* matches the hover state color */
}

/* The pill background survived the rule above even though it was
   confirmed winning on every property — meaning it isn't coming
   from the  or .menu-title-text's own background/border at all.
   It must be a ::before/::after pseudo-element drawn on top, which
   needs separate targeting since pseudo-elements don't inherit
   their host's overridden background. */
#top .sf-menu > li[class*="current"] > a::before,
#top .sf-menu > li[class*="current"] > a::after,
#top .sf-menu > li[class*="current"] > a .menu-title-text::before,
#top .sf-menu > li[class*="current"] > a .menu-title-text::after {
  display: none !important;
  content: none !important;
}

/* Forces the header to always stay visible/pinned, in case
   Salient's built-in hide-on-scroll-down behavior is still active.
   header#top is confirmed from your actual page markup, not a
   guess, so this should reliably target the real element. */
header#top {
  transform: none !important;
  opacity: 1 !important;
  visibility: visible !important;
}


/* ============================================================
   13. INNER PAGES — About, Services, Work, Contact
   ADD THIS AT THE VERY BOTTOM of the existing Custom CSS.
   It does not edit or override anything above: every selector
   starts with .tss- and sits inside .tss-page, so it only
   affects the four inner-page Raw HTML blocks.

   Colours (Tilt Shift Studio Brand Book 2026):
     Electric Blue #4000f5 · Red #ff4733 · Lime #cff563
     Aqua #9cf0e3 · Lilac #d6a3ff · Black #000000

   Sections:
     0. Tokens          5. CTA band (white card on marble)
     1. Split hero      6. Work: case study cards (dark)
     2. Section + type  7. Contact + Contact Form 7 styling
     3. Services cards  8. Responsive
     4. "What you'll get" (red)

   The :is(#ajax-content-wrap,body) prefix only raises
   specificity so Salient's own heading/paragraph styles can't
   win; it still works if that wrapper ID is ever missing.
   ============================================================ */

/* ---------- 0. TOKENS ---------- */
:is(#ajax-content-wrap,body) .tss-page{
  --blue:#4000f5; --red:#ff4733; --lime:#cff563; --aqua:#9cf0e3; --lilac:#d6a3ff;
  --black:#000; --grey:#e6e6e6;
  --gut:clamp(20px,5.4vw,104px);          /* page gutter */
  --sec:clamp(56px,7vw,128px);            /* section rhythm */
  font-family:'Work Sans',sans-serif; color:#000; background:#fff;
  width:100%; overflow:hidden;
}
:is(#ajax-content-wrap,body) .tss-page *{box-sizing:border-box}
:is(#ajax-content-wrap,body) .tss-page img{max-width:100%;display:block}
:is(#ajax-content-wrap,body) .tss-page p{color:inherit;font-family:'Work Sans',sans-serif;padding:0;letter-spacing:0}  /* stops theme paragraph styles leaking in */
:is(#ajax-content-wrap,body) .tss-page h1,
:is(#ajax-content-wrap,body) .tss-page h2,
:is(#ajax-content-wrap,body) .tss-page h3{
  font-family:'Space Grotesk',sans-serif; text-transform:uppercase;
  font-weight:500; margin:0; color:inherit;
}
:is(#ajax-content-wrap,body) .tss-page--dark{background:#000;color:#fff}

/* ---------- 1. SPLIT HERO (colour block + image) ---------- */
:is(#ajax-content-wrap,body) .tss-hero{display:grid;grid-template-columns:1fr 1fr;min-height:clamp(240px,22.7vw,436px)}
:is(#ajax-content-wrap,body) .tss-hero__text{display:flex;align-items:center;padding:40px var(--gut)}
:is(#ajax-content-wrap,body) .tss-hero h1{font-size:clamp(30px,3.5vw,68px);letter-spacing:.07em;line-height:1.25}
:is(#ajax-content-wrap,body) .tss-hero__img{background:linear-gradient(135deg,var(--blue),var(--lilac)) center/cover no-repeat}
:is(#ajax-content-wrap,body) .tss-hero--red  .tss-hero__text{background:var(--red);color:#000}
:is(#ajax-content-wrap,body) .tss-hero--blue .tss-hero__text{background:var(--blue);color:#fff}
:is(#ajax-content-wrap,body) .tss-hero--black{border-top:1px solid #fff;border-bottom:1px solid #fff}
:is(#ajax-content-wrap,body) .tss-hero--black .tss-hero__text{background:#000;color:var(--aqua)}

/* ---------- 2. SECTION + TYPE ---------- */
:is(#ajax-content-wrap,body) .tss-sec{padding:var(--sec) var(--gut)}
:is(#ajax-content-wrap,body) .tss-label{font-size:clamp(20px,1.9vw,34px);letter-spacing:.08em;line-height:1.2;margin-bottom:clamp(28px,4vw,72px)!important}
:is(#ajax-content-wrap,body) .tss-page .tss-lead{font-family:'Space Grotesk',sans-serif;text-transform:uppercase;font-weight:500;
  font-size:clamp(17px,1.5vw,28px);letter-spacing:.06em;line-height:1.4;max-width:34em;margin:0}
:is(#ajax-content-wrap,body) .tss-body p{font-size:clamp(14px,1.05vw,19px);line-height:1.4;letter-spacing:0;padding:0;margin:0 0 .8em}
:is(#ajax-content-wrap,body) .tss-body p:last-child{margin-bottom:0}
:is(#ajax-content-wrap,body) .tss-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,96px);align-items:start}
:is(#ajax-content-wrap,body) .tss-rule{border:0;border-top:1px solid #000;margin:0}

/* crosshair motif (set --c to change colour; --s for size) */
:is(#ajax-content-wrap,body) .tss-cross{--c:#000;--s:clamp(48px,4.8vw,84px);display:block;width:var(--s);height:var(--s);flex:none;
  background:
   linear-gradient(var(--c),var(--c)) 50% 0/2px 38% no-repeat,
   linear-gradient(var(--c),var(--c)) 50% 100%/2px 38% no-repeat,
   linear-gradient(var(--c),var(--c)) 0 50%/38% 2px no-repeat,
   linear-gradient(var(--c),var(--c)) 100% 50%/38% 2px no-repeat}
:is(#ajax-content-wrap,body) .tss-cross--aqua{--c:var(--aqua)}

/* outline pill buttons */
:is(#ajax-content-wrap,body) .tss-page a.tss-pill{display:inline-block;font-family:'Space Grotesk',sans-serif;text-transform:uppercase;
  font-size:13px;letter-spacing:1px;line-height:1.6;padding:6px 32px;
  border:1px solid currentColor;border-radius:30px;text-decoration:none;color:var(--blue);transition:all .3s ease}
:is(#ajax-content-wrap,body) .tss-page a.tss-pill:hover{background:var(--blue);border-color:var(--blue);color:#fff}
:is(#ajax-content-wrap,body) .tss-page a.tss-pill--red{color:var(--red)}
:is(#ajax-content-wrap,body) .tss-page a.tss-pill--red:hover{background:var(--red);border-color:var(--red);color:#fff}
:is(#ajax-content-wrap,body) .tss-page a.tss-pill--white{color:#fff}
:is(#ajax-content-wrap,body) .tss-page a.tss-pill--white:hover{background:#fff;border-color:#fff;color:#000}

/* ---------- 3. SERVICES: colour cards ---------- */
:is(#ajax-content-wrap,body) .tss-svc-head{display:flex;justify-content:space-between;align-items:center;gap:24px}
:is(#ajax-content-wrap,body) .tss-svc-head .tss-label{margin-bottom:0!important}
:is(#ajax-content-wrap,body) .tss-svc-list{display:grid;gap:18px;padding:clamp(28px,4vw,72px) var(--gut) var(--sec)}
:is(#ajax-content-wrap,body) .tss-svc{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,56px);
  padding:clamp(20px,2.7vw,52px);background:var(--c)}
:is(#ajax-content-wrap,body) .tss-svc--aqua{--c:var(--aqua)} :is(#ajax-content-wrap,body) .tss-svc--lime{--c:var(--lime)}
:is(#ajax-content-wrap,body) .tss-svc--lilac{--c:var(--lilac)} :is(#ajax-content-wrap,body) .tss-svc--grey{--c:var(--grey)}
:is(#ajax-content-wrap,body) .tss-svc__txt{display:flex;flex-direction:column;justify-content:space-between;gap:clamp(40px,7vw,130px)}
:is(#ajax-content-wrap,body) .tss-svc__icon{width:clamp(56px,5.6vw,108px);height:clamp(56px,5.6vw,108px)}
:is(#ajax-content-wrap,body) .tss-svc__icon img{width:100%;height:100%;object-fit:contain;object-position:left top}
:is(#ajax-content-wrap,body) .tss-svc h3{font-size:clamp(18px,1.6vw,30px);letter-spacing:.1em;line-height:1.35;margin-bottom:1.1em}
:is(#ajax-content-wrap,body) .tss-svc p{font-size:clamp(14px,1vw,18px);line-height:1.6;max-width:30em;margin:0}
:is(#ajax-content-wrap,body) .tss-svc__media{aspect-ratio:5/4;background:#616161;overflow:hidden}
:is(#ajax-content-wrap,body) .tss-svc__media img,
:is(#ajax-content-wrap,body) .tss-svc__media video{width:100%;height:100%;object-fit:cover;display:block}

/* ---------- 4. SERVICES: red "what you'll get" ---------- */
:is(#ajax-content-wrap,body) .tss-get{display:grid;grid-template-columns:1fr 1fr;background:var(--red);color:#fff}
:is(#ajax-content-wrap,body) .tss-get__left{padding:var(--sec) var(--gut) 0;display:flex;flex-direction:column}
:is(#ajax-content-wrap,body) .tss-get__left .tss-body{max-width:30em}
:is(#ajax-content-wrap,body) .tss-get__left .tss-pill{align-self:flex-start;margin-top:8px;margin-bottom:clamp(40px,6vw,110px)}
:is(#ajax-content-wrap,body) .tss-get__photo{position:relative;margin:clamp(40px,6vw,110px) 0 0 calc(-1*var(--gut));
  aspect-ratio:1/.85;background:#444 center/cover no-repeat;margin-top:auto}
:is(#ajax-content-wrap,body) .tss-get__photo::before{content:"";position:absolute;left:0;top:0;bottom:0;width:15%;
  background:url("data:image/svg+xml;utf8,") left top/100% auto repeat-y}
:is(#ajax-content-wrap,body) .tss-get__list{padding:var(--sec) var(--gut) var(--sec) 0;display:flex;flex-direction:column;justify-content:center}
:is(#ajax-content-wrap,body) .tss-get__item{display:grid;grid-template-columns:clamp(70px,7vw,132px) 1fr;align-items:center;
  padding:clamp(24px,2.8vw,52px) 0;border-bottom:1px solid rgba(255,255,255,.55)}
:is(#ajax-content-wrap,body) .tss-get__item:last-child{border-bottom:0}
:is(#ajax-content-wrap,body) .tss-get__item p{font-family:'Space Grotesk',sans-serif;font-size:clamp(16px,1.3vw,24px);line-height:1.4;margin:0}

/* ---------- 5. CTA band (white card on marble) ---------- */
:is(#ajax-content-wrap,body) .tss-cta{padding:clamp(60px,9vw,170px) clamp(20px,8.5vw,180px);
  background:var(--blue) center/cover no-repeat}
:is(#ajax-content-wrap,body) .tss-cta__card{position:relative;background:#fff;color:#000;
  padding:clamp(32px,5.6vw,108px) clamp(28px,16vw,320px) clamp(32px,5.6vw,108px) clamp(24px,5.6vw,108px)}
:is(#ajax-content-wrap,body) .tss-cta__card h2{color:var(--blue);font-size:clamp(22px,2.3vw,44px);letter-spacing:.08em;line-height:1.2;margin-bottom:clamp(20px,2.4vw,44px)}
:is(#ajax-content-wrap,body) .tss-cta__card p{font-size:clamp(16px,1.35vw,26px);line-height:1.45;max-width:30em;margin:0 0 clamp(28px,4vw,76px)}
:is(#ajax-content-wrap,body) .tss-cta__card::after{content:"";position:absolute;right:0;top:0;bottom:0;width:min(12%,110px);
  --bar:clamp(12px,1.5vw,28px);
  background:
   linear-gradient(var(--blue) 0 50%,transparent 50%) right top/100% calc(var(--bar)*2) repeat-y,
   linear-gradient(transparent 0 50%,var(--blue) 50%) right top/62% calc(var(--bar)*2) repeat-y}
:is(#ajax-content-wrap,body) .tss-cta__card.tss-nostripes::after{display:none}

/* ---------- 6. WORK: case study cards (dark page) ---------- */
:is(#ajax-content-wrap,body) .tss-cs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));
  gap:24px;padding:0 var(--gut) var(--sec)}
:is(#ajax-content-wrap,body) .tss-page a.tss-cs{display:block;color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.28);transition:.25s}
:is(#ajax-content-wrap,body) .tss-page a.tss-cs:hover{border-color:var(--aqua)}
:is(#ajax-content-wrap,body) .tss-cs__img{aspect-ratio:4/3;background:linear-gradient(135deg,var(--blue),var(--aqua)) center/cover no-repeat}
:is(#ajax-content-wrap,body) .tss-cs__body{padding:clamp(20px,2vw,32px)}
:is(#ajax-content-wrap,body) .tss-cs__tag{display:inline-block;font-family:'Space Grotesk',sans-serif;font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--aqua);border:1px solid var(--aqua);border-radius:999px;padding:6px 14px}
:is(#ajax-content-wrap,body) .tss-cs h3{font-size:clamp(20px,1.8vw,32px);letter-spacing:.06em;margin:16px 0 10px;color:#fff}
:is(#ajax-content-wrap,body) .tss-cs p{font-size:clamp(14px,1vw,17px);line-height:1.55;margin:0 0 18px;color:rgba(255,255,255,.82)}
:is(#ajax-content-wrap,body) .tss-cs__more{font-family:'Space Grotesk',sans-serif;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--aqua)}

/* ---------- 7. CONTACT ---------- */
:is(#ajax-content-wrap,body) .tss-contact-row{padding:var(--sec) var(--gut)!important}
:is(#ajax-content-wrap,body) .tss-contact-info h2{margin-bottom:clamp(28px,4vw,72px)!important}
:is(#ajax-content-wrap,body) .tss-contact-info .tss-lead{font-size:clamp(17px,1.4vw,26px);margin-bottom:1.4em}
:is(#ajax-content-wrap,body) .tss-contact-info .tss-body{max-width:28em;margin-bottom:2.2em}
:is(#ajax-content-wrap,body) .tss-contact-info .tss-details{font-size:clamp(14px,1.05vw,19px);line-height:1.7}
:is(#ajax-content-wrap,body) .tss-contact-info .tss-details a{color:#000;text-decoration:none}
:is(#ajax-content-wrap,body) .tss-contact-info .tss-details a:hover{color:var(--red)}
:is(#ajax-content-wrap,body) .tss-soc{display:flex;gap:14px;margin-top:24px}
:is(#ajax-content-wrap,body) .tss-soc a{width:36px;height:36px;border-radius:50%;background:#000;color:#fff;display:flex;align-items:center;
  justify-content:center;font-family:'Space Grotesk',sans-serif;font-size:13px;text-decoration:none;transition:.25s}
:is(#ajax-content-wrap,body) .tss-soc a:hover{background:var(--red)}

/* Contact Form 7 on a light background — put class "tss-form" on the column that holds the form */
:is(#ajax-content-wrap,body) .tss-form .wpcf7 label{display:block;font-family:'Space Grotesk',sans-serif;text-transform:uppercase;
  font-size:12px;letter-spacing:.14em;margin-bottom:18px;color:#000}
:is(#ajax-content-wrap,body) .tss-form .wpcf7 input[type=text],
:is(#ajax-content-wrap,body) .tss-form .wpcf7 input[type=email],
:is(#ajax-content-wrap,body) .tss-form .wpcf7 input[type=tel],
:is(#ajax-content-wrap,body) .tss-form .wpcf7 select,
:is(#ajax-content-wrap,body) .tss-form .wpcf7 textarea{
  width:100%;background:#fff!important;color:#000!important;border:1px solid #000!important;border-radius:0!important;
  padding:15px 16px!important;margin-top:8px;font-family:'Work Sans',sans-serif;font-size:16px;box-shadow:none!important}
:is(#ajax-content-wrap,body) .tss-form .wpcf7 input:focus,
:is(#ajax-content-wrap,body) .tss-form .wpcf7 textarea:focus,
:is(#ajax-content-wrap,body) .tss-form .wpcf7 select:focus{
  border-color:var(--red)!important;outline:none}
:is(#ajax-content-wrap,body) .tss-form .wpcf7 input[type=submit]{background:transparent!important;color:var(--red)!important;
  border:1px solid var(--red)!important;border-radius:999px!important;padding:15px 32px!important;
  font-family:'Space Grotesk',sans-serif;font-size:12px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:.25s}
:is(#ajax-content-wrap,body) .tss-form .wpcf7 input[type=submit]:hover{background:var(--red)!important;color:#fff!important}
:is(#ajax-content-wrap,body) .tss-form .wpcf7-not-valid-tip{color:var(--red);font-size:13px}
:is(#ajax-content-wrap,body) .tss-form .wpcf7-response-output{border-color:var(--red)!important;font-size:14px}

/* ---------- 8. RESPONSIVE ---------- */
@media (max-width:999px){

  :is(#ajax-content-wrap,body) .tss-hero{grid-template-columns:1fr}
  :is(#ajax-content-wrap,body) .tss-hero__img{aspect-ratio:16/9}
  :is(#ajax-content-wrap,body) .tss-hero__text{padding:56px var(--gut)}
  :is(#ajax-content-wrap,body) .tss-split{grid-template-columns:1fr}
  :is(#ajax-content-wrap,body) .tss-svc{grid-template-columns:1fr}
  :is(#ajax-content-wrap,body) .tss-svc__txt{gap:36px}
  :is(#ajax-content-wrap,body) .tss-get{grid-template-columns:1fr}
  :is(#ajax-content-wrap,body) .tss-get__list{padding:0 var(--gut) var(--sec)}
  :is(#ajax-content-wrap,body) .tss-get__photo{order:2;margin:40px 0 0 calc(-1*var(--gut));width:calc(100% + var(--gut))}
  :is(#ajax-content-wrap,body) .tss-cta__card{padding-right:clamp(28px,16vw,140px)}

}
@media (max-width:690px){

  :is(#ajax-content-wrap,body) .tss-cta{padding-left:0;padding-right:0}
  :is(#ajax-content-wrap,body) .tss-cta__card{padding:40px 24px 40px 24px}
  :is(#ajax-content-wrap,body) .tss-cta__card::after{width:14px;--bar:10px}
  :is(#ajax-content-wrap,body) .tss-page a.tss-pill{width:100%;text-align:center}

}