/*
Theme Name: Walker
Version: 1.0
Text Domain: walker
*/

/* =========================
   Fonts — Walker
========================= */
@font-face {
  font-family: "Minion Pro";
  src: url("assets/fonts/MinionPro-Regular.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* =========================
   Variables
========================= */
:root {
  /* Colours (legacy — inherited from base template) */
  --semi:     #414042;
  --light:    #EBEAEA;
  --red:      #D92333;
  --dark-red: #B50626;
  --grey:     #E3E0DB;
  --white:    #FFFFFF;

  /* Colours — Walker brand palette. Overridden by Theme Colours (wp-admin) via wp_head. */
  --color-primary-red: #a14546;
  --color-cream:       #ebeee5;
  --color-peach:       #e0c79f;
  --color-white:       #ffffff;
  --color-black:       #000000;

  /* Typography */
  --heading-font: "halyard-micro", system-ui, sans-serif;
  --body-font:    "halyard-micro", system-ui, sans-serif;
  --accent-font:  "halyard-micro", system-ui, sans-serif;

  /* Layout */
  --container: 1440px;
  --gutter:    120px;
}

/* =========================
   Reset & Base
========================= */
*, *::before, *::after { box-sizing: border-box; }

/* scroll-behavior: smooth removed — Lenis (assets/js/lenis-init.js) now
   owns smooth scrolling sitewide, including anchor-link jumps; leaving the
   native behaviour on would fight its easing. */

body {
  margin: 0;
  font-family: var(--body-font);
  font-size: 17px;
  font-weight: 400;
  line-height: 1.6;
  color: var(--color-primary-red);
  background: var(--color-cream);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { margin: 0; padding: 0; list-style: none; }
button { cursor: pointer; border: none; background: none; padding: 0; font-family: inherit; }
p { margin: 0 0 1.25rem; font-family: var(--body-font); font-weight: 400; }
p:last-child { margin-bottom: 0; }
strong {
  font-weight: 600;
}

/* =========================
   Container
========================= */
.walker-container {
  max-width: var(--container);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}

/* =========================
   Typography
========================= */
h1, h2, h3, h4, h5, h6 { margin: 0; font-family: var(--heading-font); font-weight: 500; }

/* H1 — 56px/59 at 1440px */
h1, .walker-h1 {
  font-size: clamp(2.8rem, 3.89vw, 3.5rem);
  line-height: 1.054;
  font-weight: 400;
}

@media (max-width: 900px) {
  h1, .walker-h1 {
    font-size: clamp(2rem, 8vw, 2.5rem);
  }
}

/* H2 — 36px/40 at 1440px */
h2, .walker-h2 {
  font-size: clamp(2rem, 2.5vw, 2.25rem);
  line-height: 1.111;
}

/* H3 — 26px/34 at 1440px */
h3, .walker-h3 {
  font-size: clamp(1.5rem, 1.806vw, 1.625rem);
  line-height: 1.308;
}

/* H4 — 22px/30 at 1440px */
h4, .walker-h4 {
  font-size: clamp(1.3rem, 1.528vw, 1.375rem);
  line-height: 1.364;
  font-weight: 400;
}

/* H5 — 20px/26 at 1440px */
h5, .walker-h5 {
  font-size: clamp(1.15rem, 1.528vw, 1.275rem);
  line-height: 1.364;
}

/* Display-1 — 72px/74 at 1440px */
.walker-display-1 {
  font-family: var(--heading-font);
  font-size: clamp(2.5rem, 5vw, 4.5rem);
  line-height: 1.028;
  font-weight: 500;
}

/* Body Large — 20px/26 at 1440px */
.walker-body-lg {
  font-size: clamp(1rem, 1.389vw, 1.25rem);
  line-height: 1.3;
}

/* WYSIWYG content */
.walker-wysiwyg h2, .walker-wysiwyg h3, .walker-wysiwyg h4, .walker-wysiwyg h5 { margin-bottom: 0.75em; }
.walker-wysiwyg p  { margin-bottom: 1.25rem; }
.walker-wysiwyg p:last-child { margin-bottom: 0; }
.walker-wysiwyg ul, .walker-wysiwyg ol { padding-left: 1.25em; margin-bottom: 1.25rem; }
.walker-wysiwyg ul { list-style: disc; }
.walker-wysiwyg ol { list-style: decimal; }
.walker-wysiwyg li { margin-bottom: 0.4em; }
.walker-wysiwyg a { text-decoration: underline; text-underline-offset: 3px; transition: opacity 0.2s; }
.walker-wysiwyg a:hover { opacity: 0.65; }

/* =========================
   Utility
========================= */
.walker-sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0;
  margin: -1px; overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}

/* =========================
   Buttons
========================= */
.walker-btn {
  position: relative;
  z-index: 0;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--heading-font);
  font-size: 13px;
  line-height: 1.231;
  font-weight: 400;
  padding: 15px 20px;
  border: 1px solid;
  background: transparent;
  cursor: pointer;
  transition: color 0.2s ease, border-color 0.2s ease, scale 0.2s ease;
  text-decoration: none;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.walker-btn:active { scale: 0.982; }

/* Fill rises from the bottom on hover, with a slightly curved crest as it
   rises; --btn-fill is set per variant */
.walker-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--btn-fill, transparent);
  border-radius: 0;
  translate: 0 102%;
  transition: translate 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.walker-btn:hover::before { translate: 0 0; }

/* Label roll: the current label slides up and out of view while a
   duplicate copy rises in from below to take its place. */
.walker-btn__label {
  position: relative;
  display: inline-block;
  translate: 0 0;
  transition: translate 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.walker-btn:hover .walker-btn__label {
  translate: 0 -220%;
  animation: walker-btn-bounce 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.walker-btn__label-after {
  position: absolute;
  left: 0;
  top: 220%;
  display: inline-block;
  white-space: nowrap;
  color: var(--btn-hover-text, var(--color-cream));
  transform-origin: bottom center;
  scale: 1 0.8;
  transition: scale 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.walker-btn:hover .walker-btn__label-after { scale: 1 1; }

@keyframes walker-btn-bounce {
  0%   { scale: 1 1; }
  40%  { scale: 1.02 1.005; }
  100% { scale: 1 1; }
}

.walker-btn--white { border-color: var(--white); color: var(--white); --btn-fill: var(--white); }
.walker-btn--dark  { border-color: var(--color-black);  color: var(--color-black); --btn-fill: var(--dark-red); }
.walker-btn--outline-red {
  border-radius: 6px;
  border-color: var(--color-primary-red);
  color: var(--color-primary-red);
  --btn-fill: var(--color-primary-red);
}
.walker-btn--outline-cream {
  border-radius: 6px;
  border-color: var(--color-cream);
  color: var(--color-cream);
  --btn-fill: var(--color-cream);
  --btn-hover-text: var(--color-primary-red);
}
.walker-btn--outline-cream:hover { color: var(--color-primary-red); }

.walker-btn--white:hover { color: var(--dark-red); }
.walker-btn--dark:hover  { color: var(--white); }
.walker-btn--outline-red:hover { color: var(--color-cream); }

.walker-btn--orange {
  border: none;
  border-radius: 6px;
  background: var(--color-primary-red);
  color: var(--color-cream);
  --btn-fill: var(--color-black);
}

/* =========================
   Non-clickable menu items
========================= */
li.menu-item-129 > a,
li.menu-item-87  > a {
  pointer-events: none;
  cursor: default;
}

/* =========================
   Header
========================= */
.walker-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 200;
  background: transparent;
  transition: transform 0.3s ease, background-color 0.3s ease;
}

.walker-header.is-hidden { transform: translateY(-100%); }

.search-results .walker-header { background: var(--color-black); }

.walker-header__inner {
  display: flex;
  align-items: flex-start;
  gap: 32px;
  height: 160px;
  /* Matches .walker-container's actual content inset (gutter, plus extra
     centering once the viewport exceeds --container) so the logo/nav align
     with the rest of the page's content instead of sitting flush at a flat
     gutter width on ultra-wide screens. */
  padding: 32px calc(max(0px, (100vw - var(--container)) / 2) + var(--gutter)) 0;
}

/* Logo — shrinks on scroll */
.walker-header__logo { display: flex; align-items: center; }
.walker-header__logo a { display: flex; align-items: center; }

.walker-header__logo img {
  height: 70px;
  width: auto;
  transition: height 0.3s ease;
}

.walker-header.is-scrolled .walker-header__logo img { height: 48px; }

.walker-header__logo-text {
  color: var(--color-peach);
  font-family: var(--heading-font);
  font-size: 22px;
  font-weight: 400;
  text-transform: uppercase;
  transition: font-size 0.3s ease;
}

.walker-header.is-scrolled .walker-header__logo-text { font-size: 16px; }

@media (max-width: 900px) {
  .walker-header__logo img { height: 48px; }
  .walker-header__logo-text { font-size: 16px; }
}

/* Primary nav — right-aligned, frosted glass pill */
.walker-header__nav-wrap {
  display: flex;
  align-items: center;
  margin-left: auto;
  background: rgba(235, 238, 229, 0.55);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-radius: 6px;
  padding: 0 32px;
}

.walker-primary-menu {
  display: flex;
  align-items: center;
  gap: 42px;
  height: 64px;
}

.walker-primary-menu li { position: relative; display: flex; align-items: center; height: 100%; }

.walker-primary-menu li a {
  position: relative;
  display: inline-block;
  padding-top: 10px;
  padding-bottom: 10px;
  font-family: var(--heading-font);
  font-size: 14px;
  line-height: 17px;
  font-weight: 400;
  color: var(--color-primary-red);
  text-transform: uppercase;
  transition: opacity 0.2s;
  white-space: nowrap;
}

.walker-primary-menu li a::before,
.walker-primary-menu li a::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  height: 0.5px;
  background: currentColor;
  transform: scaleX(0);
  transition: transform 0.3s ease;
}

.walker-primary-menu li a::before {
  bottom: 5px;
  transform-origin: right;
}

.walker-primary-menu li a::after {
  bottom: 0;
  transform-origin: left;
}

.walker-primary-menu li a:hover::before,
.walker-primary-menu li a:hover::after,
.walker-primary-menu li.current-menu-item > a::before,
.walker-primary-menu li.current-menu-item > a::after,
.walker-primary-menu li.current-page-ancestor > a::before,
.walker-primary-menu li.current-page-ancestor > a::after {
  transform: scaleX(1);
}


/* Dropdown chevron button */
.walker-nav__chevron {
  display: flex;
  align-items: center;
  padding: 4px 2px;
  color: var(--white);
  background: transparent;
  border: none;
  cursor: pointer;
  transition: transform 0.25s ease;
  flex-shrink: 0;
  margin-left: 3px;
}

.walker-primary-menu .menu-item-has-children:hover > .walker-nav__chevron,
.walker-primary-menu .menu-item-has-children.is-open  > .walker-nav__chevron {
  transform: rotate(180deg);
  opacity: 1;
}

/* Dropdown sub-menu */
.walker-primary-menu .sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  background: var(--color-black);
  min-width: 220px;
  list-style: none;
  padding: 8px 0;
  margin: 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
  z-index: 300;
}

.walker-primary-menu .menu-item-has-children:hover > .sub-menu,
.walker-primary-menu .menu-item-has-children.is-open  > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.walker-primary-menu .sub-menu li {
  display: block;
  height: auto;
  width: 100%;
}

.walker-primary-menu .sub-menu li a {
  display: block;
  padding: 11px 24px;
  color: var(--white);
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
  opacity: 1;
  transition: background 0.15s;
}

.walker-primary-menu .sub-menu li a:hover {
  background: var(--semi);
  opacity: 1;
}

@keyframes walker-nav-underline {
  from { width: 0; }
  to   { width: 100%; }
}

/* Right column */
.walker-header__right {
  display: flex;
  align-items: center;
  gap: 0;
  justify-content: flex-end;
}

/* Hamburger */
.walker-header__hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 32px;
  height: 32px;
  padding: 0;
  flex-shrink: 0;
  background: none;
  border: none;
  cursor: pointer;
}

.walker-header__hamburger span {
  display: block;
  width: 100%;
  height: 1px;
  border-radius: 2px;
  background: var(--white);
  transition: transform 0.3s ease, opacity 0.3s ease, background-color 0.3s ease;
  transform-origin: center;
}

.walker-header__hamburger.is-active span:nth-child(1) { transform: translateY(9px) rotate(45deg); }
.walker-header__hamburger.is-active span:nth-child(2) { opacity: 0; }
.walker-header__hamburger.is-active span:nth-child(3) { transform: translateY(-9px) rotate(-45deg); }

/* Set by assets/js/header-logo-swap.js — whatever's rendered directly
   underneath the button is a cream-background section, so switch to red
   to stay visible against it. */
.walker-header__hamburger.is-over-cream span { background: var(--color-primary-red); }

/* While open, the button is the close (X) icon sitting over the menu's own
   red background — always white, regardless of whatever is-over-cream last
   detected before it opened. Two classes outweighs is-over-cream's one. */
.walker-header__hamburger.is-active.is-over-cream span { background: var(--white); }

.walker-main {
  position: relative;
  z-index: 1;
  display: flow-root;
  margin-bottom: calc(-1 * var(--footer-height, 0px));
  padding-bottom: var(--footer-height, 0px);
  /* The bottom padding above is empty space reserved so the sticky footer
     (behind, in z-index terms) can be seen through it — but as .walker-main's
     own box, that empty region still captured clicks meant for the footer.
     Disable hit-testing on the wrapper itself, then re-enable it on the
     actual content (which never extends into the padding anyway), so real
     page content stays fully clickable while the reveal gap lets clicks
     pass through to the footer underneath. */
  pointer-events: none;
}

.walker-main > * {
  pointer-events: auto;
}

.walker-main > *:last-child {
  box-shadow: 0 16px 16px rgba(0, 0, 0, 0.05);
}

/* =========================
   Mobile Menu
========================= */
.walker-mobile-menu {
  position: fixed;
  inset: 0;
  background: var(--color-primary-red);
  z-index: 190;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 100px var(--gutter) 60px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.35s ease;
  overflow-y: auto;
}

.walker-mobile-menu.is-open { opacity: 1; pointer-events: all; }

/* Right-aligned, sitting just above the divider. Same fade+blur-in as the
   nav items below, but triggered off .is-open rather than walker-animate's
   scroll observer, for the same reason as the divider above. */
.walker-mobile-menu__contact {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  margin-bottom: clamp(24px, 4vw, 40px);
  opacity: 0;
  filter: blur(14px);
  transform: translateY(24px);
  transition: opacity 0.6s ease, filter 1s ease, transform 0.6s ease;
}

.walker-mobile-menu.is-open .walker-mobile-menu__contact {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0);
}

.walker-mobile-menu__contact-link {
  margin: 0;
  color: var(--color-cream);
  font-family: var(--heading-font);
  font-weight: 400;
  font-size: 13px;
  line-height: 1.6;
  text-transform: uppercase;
  transition: opacity 0.2s;
}

.walker-mobile-menu__contact-link:hover { opacity: 0.7; }

.walker-mobile-menu__social-label {
  display: block;
  margin-top: 4px;
  color: var(--color-cream);
  font-family: var(--heading-font);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 13px;
}

.walker-mobile-menu__social {
  display: flex;
  gap: 12px;
  margin-top: 4px;
}

.walker-mobile-menu__social-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--color-cream);
  transition: opacity 0.2s;
}

.walker-mobile-menu__social-icon:hover { opacity: 0.7; }

/* Same double-line grow-in as .walker-three-col-cta__divider, but
   triggered off .is-open directly rather than walker-animate's scroll
   observer — this element is always geometrically in the viewport
   (position:fixed inset:0) even while hidden, so the observer would fire
   the instant the page loads and the lines would already be grown in by
   the time the menu is actually opened. */
.walker-mobile-menu__divider {
  margin: 0 0 clamp(24px, 4vw, 40px);
}

.walker-mobile-menu__divider-line {
  border-top: 0.5px solid var(--color-cream);
  transform: scaleX(0);
  transition: transform 2s ease;
}

.walker-mobile-menu__divider-line--1 { transform-origin: right; }

.walker-mobile-menu__divider-line--2 {
  transform-origin: left;
  margin-top: 8px;
}

.walker-mobile-menu.is-open .walker-mobile-menu__divider-line {
  transform: scaleX(1);
}

.walker-mobile-nav {
  display: flex;
  flex-direction: column;
  padding-bottom: 20px;
}

/* Fade + blur in one by one as the menu opens — same reasoning as the
   divider above for not using walker-animate's scroll observer: this
   element is always geometrically in the viewport (position:fixed
   inset:0) even while hidden, so it would fire immediately on page load
   rather than when the menu actually opens. */
.walker-mobile-nav > li {
  opacity: 0;
  filter: blur(14px);
  transform: translateY(24px);
  transition: opacity 0.6s ease, filter 1s ease, transform 0.6s ease;
}

.walker-mobile-menu.is-open .walker-mobile-nav > li {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0);
}

.walker-mobile-nav > li:nth-child(1) { transition-delay: 0ms; }
.walker-mobile-nav > li:nth-child(2) { transition-delay: 60ms; }
.walker-mobile-nav > li:nth-child(3) { transition-delay: 120ms; }
.walker-mobile-nav > li:nth-child(4) { transition-delay: 180ms; }
.walker-mobile-nav > li:nth-child(5) { transition-delay: 240ms; }
.walker-mobile-nav > li:nth-child(6) { transition-delay: 300ms; }
.walker-mobile-nav > li:nth-child(7) { transition-delay: 360ms; }
.walker-mobile-nav > li:nth-child(8) { transition-delay: 420ms; }

.walker-mobile-nav li a {
  display: block;
  padding: 5px 0;
  font-family: var(--heading-font);
  font-size: clamp(1.5rem, 2.2vw, 1.875rem);
  font-weight: 300;
  color: var(--color-cream);
  transition: opacity 0.2s;
}
.walker-mobile-nav li a:hover { opacity: 0.65; }

/* Mobile: parent items with children */
.walker-mobile-nav .menu-item-has-children {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}

.walker-mobile-nav .menu-item-has-children > a {
  flex: 1;
}

.walker-mobile-chevron {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  color: var(--white);
  background: transparent;
  border: none;
  cursor: pointer;
  transition: transform 0.25s ease;
  flex-shrink: 0;
}

.walker-mobile-nav .menu-item-has-children.is-open > .walker-mobile-chevron {
  transform: rotate(180deg);
}

/* Mobile sub-menu */
.walker-mobile-nav .sub-menu {
  display: none;
  width: 100%;
  flex-direction: column;
  padding: 4px 0 8px 16px;
}

.walker-mobile-nav .menu-item-has-children.is-open > .sub-menu {
  display: flex;
}

.walker-mobile-nav .sub-menu li { display: block; }

.walker-mobile-nav .sub-menu li a {
  font-size: clamp(1rem, 3.5vw, 1.25rem);
  padding: 12px 0;
}

/* =========================
   Footer
========================= */
.walker-footer {
  position: sticky;
  bottom: 0;
  background: var(--color-black);
  padding: clamp(60px, 8vw, 100px) 0 32px;
}

.walker-footer__partners {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(40px, 6vw, 96px);
  margin-bottom: clamp(60px, 10vw, 140px);
}

.walker-footer__partner img {
  display: block;
  height: 48px;
  width: auto;
}

.walker-footer__main {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: end;
  gap: 40px;
  margin-bottom: clamp(60px, 10vw, 140px);
}

.walker-footer__col--left {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.walker-footer__col--right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
}

.walker-footer__tagline {
  margin: 0;
  color: var(--color-cream);
  font-family: var(--heading-font);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 15px;
  font-weight: 400;
}

.walker-footer__addresses {
  display: flex;
  gap: 64px;
  margin-top: 32px;
}

.walker-footer__address {
  margin: 0;
  color: var(--color-cream);
  font-family: var(--heading-font);
  font-weight: 400;
  font-size: 15px;
  line-height: 1.5;
}

.walker-footer__contact {
  margin: 24px 0 0;
}

.walker-footer__contact a {
  position: relative;
  display: inline-block;
  padding-bottom: 10px;
  color: var(--color-cream);
  font-family: var(--heading-font);
  font-weight: 400;
  font-size: 15px;
}

.walker-footer__contact a::before,
.walker-footer__contact a::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  height: 0.5px;
  background: var(--color-cream);
  transform: scaleX(0);
  transition: transform 0.3s ease;
}

.walker-footer__contact a::before {
  bottom: 5px;
  transform-origin: right;
}

.walker-footer__contact a::after {
  bottom: 0;
  transform-origin: left;
}

.walker-footer__contact a:hover::before,
.walker-footer__contact a:hover::after {
  transform: scaleX(1);
}

.walker-footer__social-list {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 12px;
}

.walker-footer__social-label {
  display: block;
  color: var(--color-cream);
  font-family: var(--heading-font);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 13px;
  font-weight: 400;
}

.walker-footer__social-icons {
  display: flex;
  gap: 12px;
}

.walker-footer__social-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  transition: opacity 0.2s;
}

.walker-footer__social-icon:hover { opacity: 0.7; }

.walker-footer__logo {
  margin-top: 48px;
}

.walker-footer__logo a { display: inline-block; }
.walker-footer__logo img {
  width: auto;
  height: 50px;
}

.walker-footer__notes {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 24px;
}

.walker-footer__note {
  margin: 0;
  max-width: 900px;
  color: var(--color-cream);
  font-family: var(--body-font);
  font-weight: 400;
  font-size: 12px;
  line-height: 1.5;
  opacity: 0.6;
}

.walker-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 24px;
}

.walker-footer__credit {
  margin: 0;
  color: var(--color-cream);
  font-family: var(--body-font);
  font-weight: 400;
  font-size: 12px;
  opacity: 0.6;
}

.walker-footer__credit a {
  color: inherit;
  text-decoration: none;
}

.walker-footer__credit a:hover {
  text-decoration: underline;
}

.walker-footer__copyright {
  margin: 0;
  color: var(--color-cream);
  font-family: var(--body-font);
  font-weight: 400;
  font-size: 12px;
  opacity: 0.6;
}

/* =========================
   Scroll Animations
========================= */
.walker-animate {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease, transform 0.6s ease !important;
  transition-delay: calc(var(--walker-delay, 0) * 1ms) !important;
}

/* Blur-in variant: fades/rises in as usual, but also starts out of focus
   and sharpens into place. */
.walker-animate--blur {
  filter: blur(14px);
  transition: opacity 0.6s ease, transform 0.6s ease, filter 1s ease !important;
  transition-delay: calc(var(--walker-delay, 0) * 1ms) !important;
}

.walker-animate--blur.is-visible {
  filter: blur(0);
}

.walker-btn.walker-animate--blur {
  transition-duration: 0.8s !important;
}

.walker-animate.is-visible { opacity: 1; transform: translateY(0); }

.walker-animate--grow {
  transform: scale(0.4) translateY(50px);
  transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
  transition-delay: calc(var(--walker-delay, 0) * 1ms) !important;
}
.walker-animate--grow.is-visible { transform: scale(1) translateY(0); }

/* Typewriter reveal: wrapper stays static, each letter carries its own transition-delay (set inline) */
.walker-typewriter.walker-animate {
  opacity: 1;
  transform: none;
}

.walker-typewriter__word {
  display: inline-block;
}

.walker-typewriter__char {
  display: inline-block;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 0.15s ease, transform 0.15s ease;
}

.walker-typewriter.is-visible .walker-typewriter__char {
  opacity: 1;
  transform: translateY(0);
}

/* Blur-in variant: each letter starts out of focus, sharpening into place
   on its own staggered delay (inherited from .walker-typewriter__char). */
.walker-typewriter--blur .walker-typewriter__char {
  filter: blur(14px);
  transition: opacity 0.5s ease, transform 0.5s ease, filter 0.5s ease;
}

.walker-typewriter--blur.is-visible .walker-typewriter__char {
  filter: blur(0);
}

/* Subtle looping drift, started (via inline animation-delay) once the entrance grow-in has finished */
@keyframes walker-icon-wiggle {
  0%, 100% { transform: translate(0, 0); }
  10% { transform: translate(-1px, -1px); }
  20% { transform: translate(1px, -1px); }
  30% { transform: translate(-1px, 1px); }
  40% { transform: translate(1px, 1px); }
  50% { transform: translate(-1px, -1px); }
  60% { transform: translate(1px, -1px); }
  70% { transform: translate(-1px, 1px); }
  80% { transform: translate(1px, 1px); }
  90% { transform: translate(-1px, -1px); }
}

.walker-intro-banner__icon-float {
  animation: walker-icon-wiggle 6s ease-in-out infinite;
}


/* =========================
   Partial: Intro Banner
========================= */
.walker-intro-banner {
  position: relative;
  display: flex;
  width: 100%;
  height: 100vh;
  background: var(--color-primary-red);
}

.walker-intro-banner--short {
  height: 60vh;
}

.walker-intro-banner__left {
  position: relative;
  z-index: 2;
  flex: 0 0 38%;
  min-width: 0;
  display: flex;
  align-items: center;
  /* Matches .walker-container's actual content inset, same as the header,
     so the heading starts at the same left edge as the rest of the page's
     content instead of a flat gutter on ultra-wide screens. */
  padding: 0 0 0 calc(max(0px, (100vw - var(--container)) / 2) + var(--gutter));
}

.walker-intro-banner__heading {
  width: max-content;
  color: var(--color-cream);
  margin: 0;
  font-size: 80px;
  font-weight: 400;
  white-space: nowrap;
}

.walker-intro-banner__slider {
  position: relative;
  flex: 1;
  overflow: hidden;
  display: flex;
}

/* Plain single-image fill for the right column — no hover-expand, cursor,
   or link, used when Disable Slider is toggled on. */
.walker-intro-banner__single-image {
  position: relative;
  flex: 1;
  overflow: hidden;
}

.walker-intro-banner__single-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.walker-intro-banner__slider.is-hovering { cursor: none; }

.walker-intro-banner__cursor {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 130px;
  height: 44px;
  clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px);
  background: rgba(235, 238, 229, 0.55);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  color: var(--color-primary-red);
  text-align: center;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -50%) scale(0.8);
  transition: opacity 0.35s ease, transform 0.35s ease;
}

.walker-intro-banner__cursor span {
  font-family: var(--heading-font);
  font-weight: 400;
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.walker-intro-banner__slider.is-hovering ~ .walker-intro-banner__cursor,
.walker-intro-text-media__media.is-hovering .walker-intro-banner__cursor,
.walker-two-media-columns__media.is-hovering .walker-intro-banner__cursor,
.walker-landscape-image__media.is-hovering .walker-intro-banner__cursor,
.walker-projects-feed__item.is-hovering .walker-intro-banner__cursor {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

/* =========================
   Post Media Lightbox
========================= */
.walker-media-lightbox {
  position: fixed;
  inset: 0;
  z-index: 300;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #000;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.walker-media-lightbox.is-open {
  opacity: 1;
  pointer-events: all;
}

.walker-media-lightbox-inner {
  position: relative;
  width: 100%;
  height: 100%;
}

.walker-media-lightbox-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #000;
}

.walker-media-lightbox-close {
  position: absolute;
  top: 24px;
  right: 24px;
  z-index: 1;
  color: var(--white);
  opacity: 0.8;
  transition: opacity 0.2s ease;
}

.walker-media-lightbox-close:hover { opacity: 1; }

.walker-intro-banner__slide {
  position: relative;
  /* flex-basis stays 64px in every state — only flex-grow ever changes, since
     that's a plain number and always animates smoothly. Transitioning
     flex-basis between a fixed length and `auto` can't be interpolated, so
     it used to snap instantly and open a gap mid-transition. */
  flex: 0 0 64px;
  height: 100%;
  overflow: hidden;
  cursor: pointer;
  display: block;
  text-decoration: none;
  color: inherit;
  /* Heavier, "glass door" feel — starts slow and picks up speed, rather
     than the snappier ease-out used elsewhere on the site. */
  transition: flex-grow 0.8s cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

/* Distinct transition used only while the page-load entrance sequence is
   running (assets/js/intro-banner-slider.js) — same heavy, ease-in feel as
   the hover transition above, just a touch slower. */
.walker-intro-banner__slider.is-playing-entrance .walker-intro-banner__slide {
  transition-duration: 0.9s;
  transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

.walker-intro-banner__slide.is-active {
  flex: 1 0 64px;
  cursor: default;
}

.walker-intro-banner__slide-media {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  /* Width is set in px by JS, to the slider's expanded (active) width —
     a fixed size that never changes as the slide's own flex width
     animates, so object-fit: cover never has to recompute its crop/scale.
     The slide's overflow: hidden is what reveals more or less of it. */
}

.walker-intro-banner__slide-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

@media (max-width: 900px) {
  .walker-intro-banner {
    flex-direction: column;
    height: auto;
  }

  .walker-intro-banner__left {
    flex: none;
    height: 50vh;
    padding: 140px var(--gutter) 48px;
  }

  .walker-intro-banner--single-image .walker-intro-banner__left {
    height: 25vh;
  }

  .walker-intro-banner__slider,
  .walker-intro-banner__single-image {
    flex: none;
    height: 50vh;
  }

  /* The desktop overlap trick (max-content + nowrap at a fixed 80px) lets
     the heading deliberately bleed into the right column — on mobile there
     is no right column to bleed into, just viewport edges, so it needs to
     wrap and scale down like normal text instead. */
  .walker-intro-banner__heading {
    width: auto;
    max-width: 100%;
    white-space: normal;
    font-size: clamp(2rem, 8vw, 2.5rem);
  }

  /* No hover on touch — the cursor bubble would otherwise never disappear
     since it can only ever be revealed by a hover that will never come.
     The slides still auto-rotate (assets/js/intro-banner-slider.js). */
  .walker-intro-banner__cursor {
    display: none;
  }
}

.walker-intro-banner__icon-texture {
  position: absolute;
  inset: 0;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  mix-blend-mode: multiply;
  pointer-events: none;
}

/* =========================
   Single Post
========================= */
/* Identical layout to .walker-intro-banner (red left column + single image
   right column, full height) — this is that same design for single posts,
   just with its own content (title, categories, credits) on the left. */
.walker-post-header {
  display: flex;
  width: 100%;
  height: 100vh;
  background: var(--color-primary-red);
}

.walker-post-header__left {
  position: relative;
  z-index: 2;
  flex: 0 0 38%;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0 0 0 calc(max(0px, (100vw - var(--container)) / 2) + var(--gutter));
}

.walker-post-header__title {
  width: max-content;
  max-width: 50vw;
  white-space: nowrap;
  font-size: 80px;
  line-height: 1.028;
  color: var(--color-cream);
  margin: 0 0 clamp(24px, 4vw, 40px);
}

.walker-post-header__categories {
  margin: 0 0 clamp(32px, 5vw, 56px);
}

.walker-post-header__category {
  margin: 0;
  color: var(--color-cream);
  font-family: var(--heading-font);
  font-weight: 400;
  font-size: 13px;
  line-height: 1.6;
  text-transform: uppercase;
}

.walker-post-header__credits {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.walker-post-header__credit {
  font-family: var(--heading-font);
  font-weight: 400;
  font-size: 13px;
  line-height: 1.6;
  text-transform: uppercase;
  color: var(--color-cream);
  margin: 0;
  max-width: 640px;
}

.walker-post-header__credit a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: opacity 0.2s;
}

.walker-post-header__credit a:hover { opacity: 0.65; }

@media (max-width: 900px) {
  .walker-post-header {
    flex-direction: column;
    height: auto;
  }

  .walker-post-header__left {
    flex: none;
    padding: calc(clamp(30px, 4vw, 60px) + 80px) var(--gutter) clamp(30px, 4vw, 60px);
  }

  /* Show the title plainly instead of the per-letter typewriter reveal. */
  .walker-post-header__title .walker-typewriter__char {
    opacity: 1;
    transform: none;
    transition: none;
  }

  /* Same desktop overlap trick (max-content + nowrap at a fixed 80px) and
     same mobile fix as .walker-intro-banner__heading — no right column to
     bleed into here either, just viewport edges. */
  .walker-post-header__title {
    width: auto;
    max-width: 100%;
    white-space: normal;
    font-size: clamp(2rem, 8vw, 2.5rem);
  }
}

.walker-post-body {
  background: var(--color-cream);
  padding: clamp(30px, 4vw, 60px) 0;
}

/* =========================
   Partial: Intro (Text Left, Media Right)
========================= */
.walker-intro-text-media {
  position: relative;
  background: var(--color-cream);
  padding: clamp(30px, 4vw, 60px) 0;
}

.walker-intro-text-media__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: clamp(56px, 9vw, 140px);
}

.walker-intro-text-media__text {
  color: var(--color-primary-red);
}

.walker-intro-text-media__text p {
  font-family: var(--body-font);
  font-size: 20px;
  line-height: 1.35;
  font-weight: 400;
}

.walker-intro-text-media__media {
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  cursor: pointer;
}

.walker-intro-text-media__media.is-hovering { cursor: none; }

.walker-intro-text-media__media img,
.walker-intro-text-media__media video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 900px) {
  .walker-intro-text-media__grid { grid-template-columns: 1fr; }
}

/* =========================
   Partial: Two Paragraphs
========================= */
.walker-two-paragraphs {
  position: relative;
  background: var(--color-cream);
  padding: clamp(30px, 4vw, 60px) 0;
}

.walker-two-paragraphs__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(56px, 9vw, 140px);
}

.walker-two-paragraphs__text {
  color: var(--color-primary-red);
}

.walker-two-paragraphs__text p {
  font-size: 16px;
}

@media (max-width: 900px) {
  .walker-two-paragraphs__grid { grid-template-columns: 1fr; }
}

/* =========================
   Partial: 2 Media Columns
========================= */
.walker-two-media-columns {
  position: relative;
  background: var(--color-cream);
  padding: clamp(30px, 4vw, 60px) 0;
}

.walker-two-media-columns__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(56px, 9vw, 140px);
}

.walker-two-media-columns__media {
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  cursor: pointer;
}

.walker-two-media-columns__media.is-hovering { cursor: none; }

.walker-two-media-columns__media img,
.walker-two-media-columns__media video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 900px) {
  .walker-two-media-columns__grid { grid-template-columns: 1fr; }
}

/* =========================
   Partial: Landscape Image
========================= */
.walker-landscape-image {
  position: relative;
  padding: clamp(30px, 4vw, 60px) 0;
}

.walker-landscape-image__media {
  position: relative;
  overflow: hidden;
  cursor: pointer;
}

.walker-landscape-image__media.is-hovering { cursor: none; }

.walker-landscape-image__media img {
  display: block;
  width: 100%;
  height: auto;
}

/* =========================
   Partial: Post Testimonials
========================= */
.walker-post-testimonials {
  position: relative;
  background: var(--color-cream);
  padding: clamp(30px, 4vw, 60px) 0;
}

.walker-post-testimonials__list {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(56px, 8vw, 100px);
  text-align: left;
}

.walker-post-testimonials__item {
  margin: 0 auto;
  max-width: 900px;
}

.walker-post-testimonials__quote {
  margin: 0;
  color: var(--color-primary-red);
  font-family: var(--heading-font);
  font-weight: 400;
  font-size: clamp(1.1rem, 1.6vw, 1.375rem);
  line-height: 1.6;
}

.walker-post-testimonials__name {
  margin: 24px 0 0;
  color: var(--color-primary-red);
  font-family: var(--heading-font);
  font-weight: 400;
  font-size: 13px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* =========================
   Partial: Gallery
========================= */
.walker-gallery {
  background: var(--color-cream);
  padding: clamp(30px, 4vw, 60px) 0;
}

.walker-gallery__track {
  position: relative;
  display: grid;
}

.walker-gallery__page {
  display: grid;
  grid-column: 1;
  grid-row: 1;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(16px, 2vw, 24px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.5s ease;
}

.walker-gallery__page.is-active {
  opacity: 1;
  pointer-events: auto;
}

.walker-gallery__slide {
  aspect-ratio: 4 / 5;
  overflow: hidden;
  cursor: pointer;
}

.walker-gallery__slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.walker-gallery__dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: clamp(24px, 3vw, 32px);
}

.walker-gallery__dot {
  width: 8px;
  height: 8px;
  padding: 0;
  border: 1px solid var(--color-primary-red);
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.walker-gallery__dot.is-active {
  background: var(--color-primary-red);
}

@media (max-width: 700px) {
  .walker-gallery__page {
    grid-template-columns: 1fr;
  }
}

/* =========================
   Partial: Post Pagination
========================= */
.walker-post-pagination {
  padding: clamp(30px, 4vw, 60px) 0 0;
}

.walker-post-pagination__row {
  display: flex;
  align-items: center;
}

.walker-post-pagination__prev,
.walker-post-pagination__next {
  flex-shrink: 0;
}

.walker-post-pagination__prev { margin-right: auto; }
.walker-post-pagination__next { margin-left: auto; }

/* =========================
   Partial: Projects Feed
========================= */
.walker-projects-feed {
  background: var(--color-peach);
  padding: clamp(60px, 8vw, 120px) 0;
}

.walker-projects-feed__eyebrow {
  margin: 0 0 clamp(56px, 8vw, 100px);
  color: var(--color-primary-red);
  font-family: var(--heading-font);
  font-weight: 400;
  font-size: 13px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.walker-projects-feed__filter {
  position: relative;
  display: inline-block;
  margin: 0;
  padding: 0 0 10px;
  border: none;
  background: none;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  cursor: pointer;
}

.walker-projects-feed__filter::before,
.walker-projects-feed__filter::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  height: 0.5px;
  background: currentColor;
  transform: scaleX(0);
  transition: transform 0.3s ease;
}

.walker-projects-feed__filter::before {
  bottom: 5px;
  transform-origin: right;
}

.walker-projects-feed__filter::after {
  bottom: 0;
  transform-origin: left;
}

.walker-projects-feed__filter:hover::before,
.walker-projects-feed__filter:hover::after,
.walker-projects-feed__filter.is-active::before,
.walker-projects-feed__filter.is-active::after {
  transform: scaleX(1);
}

.walker-projects-feed__sep {
  margin: 0 4px;
}

.walker-projects-feed__list {
  display: flex;
  flex-direction: column;
  gap: clamp(56px, 8vw, 100px);
}

.walker-projects-feed__item {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 2fr;
  align-items: start;
  gap: clamp(24px, 3vw, 48px);
  color: inherit;
  text-decoration: none;
}

.walker-projects-feed__item.is-hovering { cursor: none; }

.walker-projects-feed__item.is-hidden,
.walker-projects-feed__item.is-limited {
  display: none;
}

.walker-projects-feed__load-more-wrap {
  display: flex;
  justify-content: flex-end;
  margin-top: clamp(40px, 6vw, 64px);
}

.walker-projects-feed__load-more-wrap[hidden] {
  display: none;
}

.walker-projects-feed__title {
  margin: 0 0 12px;
  color: var(--color-primary-red);
  font-family: var(--accent-font);
  font-weight: 400;
  font-size: clamp(1.5rem, 2.5vw, 2rem);
}

.walker-projects-feed__meta {
  display: flex;
  flex-direction: column;
}

.walker-projects-feed__meta-item {
  margin: 0;
  color: var(--color-primary-red);
  font-family: var(--heading-font);
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0.04em;
  line-height: 1.6;
  text-transform: uppercase;
}

.walker-projects-feed__images {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(20px, 3vw, 32px);
}

.walker-projects-feed__image {
  aspect-ratio: 9 / 16;
  overflow: hidden;
}

.walker-projects-feed__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 900px) {
  .walker-projects-feed__item {
    grid-template-columns: 1fr;
    padding-bottom: 30px;
  }

  /* No hover on touch — the "View Project" cursor bubble would otherwise
     just sit there permanently, and cursor:none would hide the real
     pointer on hybrid touch+mouse devices with nothing shown in its place. */
  .walker-projects-feed__item.is-hovering { cursor: auto; }

  .walker-projects-feed__item .walker-intro-banner__cursor {
    display: none;
  }
}

/* =========================
   Search Page
========================= */
.walker-search-header {
  background: var(--color-black);
  color: var(--white);
  padding: 140px 0 60px;
}

.walker-search-header__label {
  font-size: 13px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.5);
  margin-bottom: 12px;
}

.walker-search-header__term {
  font-size: clamp(2rem, 4vw, 3.5rem);
  font-weight: 500;
  margin-bottom: 12px;
}

.walker-search-header__count {
  font-size: 14px;
  color: rgba(255,255,255,0.5);
  margin: 0;
}

.walker-search-results {
  padding-top: 60px;
  padding-bottom: 80px;
}

.walker-search-results__list {
  display: flex;
  flex-direction: column;
}

.walker-search-result {
  padding: 36px 0;
  border-bottom: 1px solid var(--grey);
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

.walker-search-result__meta { display: flex; align-items: center; gap: 12px; }

.walker-search-result__type {
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--semi);
  font-weight: 500;
}

.walker-search-result__title {
  font-size: clamp(1.125rem, 1.806vw, 1.625rem);
  font-weight: 500;
}

.walker-search-result__title a { transition: opacity 0.2s; }
.walker-search-result__title a:hover { opacity: 0.65; }

.walker-search-result__excerpt {
  font-size: 15px;
  color: var(--semi);
  line-height: 1.6;
  margin: 0;
}

.walker-search-result__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-black);
  transition: opacity 0.2s;
  margin-top: 4px;
}

.walker-search-result__link:hover { opacity: 0.65; }

.walker-search-results__empty { max-width: 560px; padding: 60px 0; }
.walker-search-results__empty p { font-size: 18px; margin-bottom: 32px; }
.walker-search-results__empty .search-form { display: flex; gap: 0; border-bottom: 1px solid var(--color-black); }
.walker-search-results__empty .search-field { flex: 1; border: none; outline: none; font-family: var(--body-font); font-size: 18px; padding: 12px 0; background: none; }
.walker-search-results__empty .search-submit { display: none; }

.walker-search-results__pagination { margin-top: 60px; }
.walker-search-results__pagination .nav-links { display: flex; gap: 8px; align-items: center; }
.walker-search-results__pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 40px; height: 40px; padding: 0 12px;
  border: 1px solid var(--grey); font-size: 13px; font-weight: 500;
  transition: background 0.2s, color 0.2s;
}
.walker-search-results__pagination .page-numbers.current { background: var(--color-black); color: var(--white); border-color: var(--color-black); }
.walker-search-results__pagination .page-numbers:hover:not(.current) { background: var(--light); }

/* =========================
   Responsive
========================= */
@media (max-width: 1200px) {
  :root { --gutter: 80px; }
}

@media (max-width: 1024px) {
  .walker-primary-menu { gap: 24px; }
}

/* =========================
   Partial: Testimonial Slider
========================= */
.walker-testimonial-slider {
  position: relative;
  background: var(--color-cream);
  padding: clamp(60px, 8vw, 120px) 0;
  overflow: hidden;
}

/* All slides stack in the same grid cell (rather than display:none/grid
   swapping) so every one — including inactive ones — contributes to the
   row's height. The container then sizes to the tallest slide, and no
   longer jumps in height when switching between shorter/longer quotes. */
[data-walker-testimonial-slider] {
  display: grid;
  align-items: start;
}

.walker-testimonial-slider__slide {
  display: grid;
  grid-column: 1;
  grid-row: 1;
  grid-template-columns: minmax(0, 360px) 1fr;
  gap: clamp(32px, 5vw, 64px);
  align-items: start;
  pointer-events: none;
}

.walker-testimonial-slider__slide.is-active {
  pointer-events: auto;
}

.walker-testimonial-slider__image {
  aspect-ratio: 4 / 5;
  overflow: hidden;
}

.walker-testimonial-slider__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.walker-testimonial-slider__slide.is-active .walker-testimonial-slider__image img {
  opacity: 1;
}

.walker-testimonial-slider__content {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.walker-testimonial-slider__slide.is-active .walker-testimonial-slider__content {
  opacity: 1;
}

.walker-testimonial-slider__quote {
  margin: 0;
  color: var(--color-primary-red);
  font-family: var(--heading-font);
  font-weight: 400;
  font-size: clamp(0.9rem, 1.6vw, 1.375rem);
  line-height: 1.6;
}

.walker-testimonial-slider__quote p { margin: 0 0 1.25em; }
.walker-testimonial-slider__quote p:last-child { margin-bottom: 0; }

.walker-testimonial-slider__person {
  margin: 24px 0 0;
  color: var(--color-primary-red);
  font-family: var(--heading-font);
  font-weight: 400;
  font-size: 13px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.walker-testimonial-slider__nav {
  display: flex;
  justify-content: flex-end;
  gap: 16px;
  margin-top: clamp(24px, 4vw, 40px);
}

/* .walker-btn's own display:inline-flex would otherwise override the
   browser's default [hidden]{display:none} — author CSS always wins over
   the UA stylesheet regardless of specificity, so without this the
   Previous/Next buttons never actually disappear at either end. */
.walker-testimonial-slider__nav [hidden] {
  display: none;
}

@media (max-width: 900px) {
  .walker-testimonial-slider__nav {
    justify-content: flex-start;
  }
}

@media (max-width: 900px) {
  .walker-testimonial-slider__slide {
    grid-template-columns: 1fr;
  }

  .walker-testimonial-slider__image {
    width: 50%;
  }
}

@media (max-width: 700px) {
  .walker-testimonial-slider__image {
    width: 100%;
  }
}

.walker-project-feed__lightbox {
  position: fixed;
  inset: 0;
  z-index: 300;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #000;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.walker-project-feed__lightbox.is-open {
  opacity: 1;
  pointer-events: all;
}

.walker-project-feed__lightbox-inner {
  position: relative;
  width: 100%;
  height: 100%;
}

.walker-project-feed__lightbox-video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #000;
}

.walker-project-feed__lightbox-close {
  position: absolute;
  top: 24px;
  right: 24px;
  z-index: 1;
  color: var(--white);
  opacity: 0.8;
  transition: opacity 0.2s ease;
}

.walker-project-feed__lightbox-close:hover { opacity: 1; }

/* =========================
   Partial: Contact
========================= */
.walker-contact {
  position: relative;
  min-height: 100vh;
  background: var(--color-black);
  overflow: hidden;
  padding: calc(clamp(80px, 10vw, 160px) + 80px) 0 clamp(80px, 10vw, 160px);
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--white);
}

.walker-contact--no-padding-top {
  padding-top: 0;
}

.walker-contact__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  display: grid;
  grid-template-columns: minmax(240px, 420px) 1fr;
  gap: clamp(40px, 6vw, 100px);
}

.walker-contact__eyebrow {
  margin: 0 0 16px;
  color: var(--color-cream);
  font-family: var(--heading-font);
  font-weight: 400;
  font-size: 13px;
  letter-spacing: -0.05em;
  text-transform: uppercase;
}

.walker-contact__tagline {
  margin: 0 0 32px;
  color: var(--color-cream);
  font-family: var(--heading-font);
  font-weight: 400;
  font-size: 20px;
  text-transform: uppercase;
}

.walker-contact__addresses {
  display: flex;
  gap: 32px;
  margin: 0 0 24px;
}

.walker-contact__address {
  margin: 0;
  color: var(--color-cream);
  font-family: var(--heading-font);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.5;
}

.walker-contact__detail { margin: 0 0 8px; }
.walker-contact__detail:last-of-type { margin-bottom: 24px; }

.walker-contact__detail a {
  position: relative;
  display: inline-block;
  padding-bottom: 10px;
  color: var(--color-cream);
  font-family: var(--heading-font);
  font-weight: 400;
  font-size: 16px;
}

.walker-contact__detail a::before,
.walker-contact__detail a::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  height: 0.5px;
  background: currentColor;
  transform: scaleX(0);
  transition: transform 0.3s ease;
}

.walker-contact__detail a::before {
  bottom: 5px;
  transform-origin: right;
}

.walker-contact__detail a::after {
  bottom: 0;
  transform-origin: left;
}

.walker-contact__detail a:hover::before,
.walker-contact__detail a:hover::after {
  transform: scaleX(1);
}

.walker-contact__social {
  display: flex;
  gap: 12px;
}

.walker-contact__social-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  transition: opacity 0.2s;
}

.walker-contact__social-icon:hover { opacity: 0.7; }

.walker-contact__col--right {
  color: var(--color-cream);
}

.walker-contact--cream {
  background: var(--color-cream);
}

.walker-contact--cream .walker-contact__eyebrow,
.walker-contact--cream .walker-contact__tagline,
.walker-contact--cream .walker-contact__address,
.walker-contact--cream .walker-contact__detail a,
.walker-contact--cream .walker-contact__social-icon,
.walker-contact--cream .walker-contact__col--right {
  color: var(--color-primary-red);
}

/* Light-touch Ninja Forms overrides to match the theme — the field's own
   <label> is hidden entirely; its placeholder text (set per-field in the
   Ninja Forms builder) is styled to look identical to how the label used
   to, sitting naturally inside the field instead of positioned over it. */
.walker-contact__form .nf-field-container {
  margin-bottom: 24px;
}

.walker-contact__form .nf-field-label {
  display: none;
}

.walker-contact__form .nf-field-description {
  font-size: 14px;
  padding-bottom: 20px;
}

.walker-contact__form input[type="text"],
.walker-contact__form input[type="email"],
.walker-contact__form input[type="tel"],
.walker-contact__form textarea {
  width: 100%;
  background: var(--color-cream);
  border: none;
  border-radius: 6px;
  color: var(--color-black);
  font-family: var(--body-font);
  padding: 16px;
}

.walker-contact__form input[type="text"]::placeholder,
.walker-contact__form input[type="email"]::placeholder,
.walker-contact__form input[type="tel"]::placeholder,
.walker-contact__form textarea::placeholder {
  color: var(--color-black);
  font-family: var(--heading-font);
  font-weight: 400;
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 1;
}

.walker-contact--cream .walker-contact__form input[type="text"]::placeholder,
.walker-contact--cream .walker-contact__form input[type="email"]::placeholder,
.walker-contact--cream .walker-contact__form input[type="tel"]::placeholder,
.walker-contact--cream .walker-contact__form textarea::placeholder {
  color: var(--color-primary-red);
}

.walker-contact__form textarea { min-height: 160px; resize: vertical; }

.walker-contact__form .nf-form-fields-required,
.walker-contact__form .nf-error-msg,
.walker-contact__form .nf-error-required-error,
.walker-contact__form .ninja-forms-req-symbol {
  display: none;
}

/* Ninja Forms only ever renders this as a plain <input type="submit">
   (confirmed in its own field template). Inputs are void elements — they
   can't hold child spans, and browsers never render ::before/::after
   generated content on them either — so the real .walker-btn's label-roll
   (nested spans) is fundamentally impossible directly on the input.
   assets/js/ninja-form-btn-label.js instead wraps it in a real
   .walker-btn/.walker-btn--outline-* span at runtime, with real label
   spans inserted for the visible text, and turns the input itself into an
   invisible full-cover overlay so it stays the actual clickable/submitting
   element. This makes it reuse 100% of the same .walker-btn CSS. */
/* Black-bg contact form only (JS applies --outline-cream there) — the
   revealed hover label should read black, not --outline-cream's default
   red. Scoped to this specific button, not the shared --outline-cream
   variant used elsewhere. */
.walker-contact__submit-wrap.walker-btn--outline-cream {
  --btn-hover-text: var(--color-black);
}

/* --outline-cream:hover normally reddens the whole button's text, which
   the outgoing first label briefly shows as it slides away — scoped back
   to its resting cream here since this button doesn't want that. */
.walker-contact__submit-wrap.walker-btn--outline-cream:hover {
  color: var(--color-cream);
}

.walker-contact__submit-wrap input[type="submit"] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: none;
  background: none;
  opacity: 0;
  cursor: pointer;
}

.walker-contact--cream .walker-contact__form input[type="text"],
.walker-contact--cream .walker-contact__form input[type="email"],
.walker-contact--cream .walker-contact__form input[type="tel"],
.walker-contact--cream .walker-contact__form textarea {
  border: 1px solid var(--color-primary-red);
  color: var(--color-primary-red);
}

/* =========================
   Partial: Behind The Scenes Columns
========================= */
.walker-behind-the-scenes {
  position: relative;
  background: var(--color-cream);
  padding: clamp(60px, 8vw, 120px) 0;
}

.walker-behind-the-scenes__heading {
  font-size: clamp(2.25rem, 5vw, 4rem);
  color: var(--color-peach);
  text-transform: uppercase;
  margin-bottom: clamp(32px, 5vw, 56px);
}

.walker-behind-the-scenes__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(20px, 3vw, 32px);
}

.walker-behind-the-scenes__col {
  display: block;
  color: inherit;
}

.walker-behind-the-scenes__media {
  position: relative;
  aspect-ratio: 9 / 16;
  overflow: hidden;
  margin-bottom: 12px;
}

.walker-behind-the-scenes__media img,
.walker-behind-the-scenes__media video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.walker-behind-the-scenes__col:hover .walker-behind-the-scenes__media img,
.walker-behind-the-scenes__col:hover .walker-behind-the-scenes__media video {
  transform: scale(1.04);
}

/* Hover: the other columns dim under an overlay while one is hovered */
.walker-behind-the-scenes__media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0);
  transition: background 0.3s ease;
  pointer-events: none;
}

.walker-behind-the-scenes__media.is-dimmed::after {
  background: rgba(0, 0, 0, 0.55);
}

.walker-behind-the-scenes__project-name {
  font-family: var(--accent-font);
  font-size: 14px;
  letter-spacing: 0.02em;
  font-weight: 700;
  color: var(--color-peach);
  line-height: 1.4;
  margin: 0;
}

.walker-behind-the-scenes__cta {
  display: flex;
  justify-content: flex-end;
  margin-top: clamp(32px, 5vw, 56px);
}

@media (max-width: 900px) {
  .walker-behind-the-scenes__grid { grid-template-columns: 1fr; }
  .walker-behind-the-scenes__cta  { justify-content: flex-start; }
}

/* =========================
   Partial: Team Feed
========================= */
.walker-team-feed {
  position: relative;
  background: var(--color-primary-red);
  padding: clamp(60px, 8vw, 120px) 0;
}

.walker-team-feed--cream {
  background: var(--color-cream);
}

.walker-team-feed--cream .walker-team-feed__eyebrow,
.walker-team-feed--cream .walker-team-feed__heading,
.walker-team-feed--cream .walker-team-feed__name,
.walker-team-feed--cream .walker-team-feed__position {
  color: var(--color-primary-red);
}

.walker-team-feed__eyebrow {
  margin: 0 0 16px;
  color: var(--color-cream);
  font-family: var(--heading-font);
  font-weight: 400;
  font-size: 13px;
  letter-spacing: -0.05em;
  text-transform: uppercase;
}

.walker-team-feed__heading {
  font-size: clamp(1.5rem, 2.2vw, 1.875rem);
  font-weight: 300;
  color: var(--color-cream);
  margin-bottom: clamp(32px, 5vw, 56px);
}

/* Same entrance treatment as .walker-three-col-cta__column-heading's
   walker-animate/is-visible pairing — bigger rise, slower ease-out. */
.walker-team-feed__heading.walker-animate {
  transform: translateY(56px);
  transition-duration: 0.9s !important;
  transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.walker-team-feed__heading.walker-animate.is-visible {
  transform: translateY(0);
}

.walker-team-feed__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(24px, 3vw, 32px) clamp(20px, 3vw, 32px);
}

.walker-team-feed__member {
  padding-bottom: clamp(32px, 4vw, 48px);
}

.walker-team-feed__photo {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  margin-bottom: 12px;
}

.walker-team-feed__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: opacity 0.35s ease, filter 0.35s ease;
}

.walker-team-feed__member:hover .walker-team-feed__photo img {
  opacity: 1;
  filter: blur(8px);
}

.walker-team-feed__fill {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(255, 255, 255, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.4);
  box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  opacity: 0;
  transition: opacity 0.35s ease;
}

.walker-team-feed__bio {
  position: absolute;
  inset: 0;
  z-index: 2;
  padding: 20px;
  overflow-y: auto;
  color: var(--color-black);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.walker-team-feed__member:hover .walker-team-feed__fill { opacity: 1; }
.walker-team-feed__member:hover .walker-team-feed__bio  { opacity: 1; transition-delay: 0.1s; }

.walker-team-feed__name,
.walker-team-feed__position {
  font-family: var(--accent-font);
  text-transform: uppercase;
  font-weight: 400;
  color: var(--color-cream);
  line-height: 1.4;
  font-size: 14px;
}

.walker-team-feed__name {
  margin: 0;
}

.walker-team-feed__position {
  font-size: 12px;
  opacity: 0.7;
}

.walker-team-feed__cta-wrap {
  display: flex;
  justify-content: flex-end;
  margin-top: clamp(32px, 5vw, 56px);
}

@media (max-width: 900px) {
  .walker-team-feed__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 560px) {
  .walker-team-feed__grid { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .walker-contact__inner { grid-template-columns: 1fr; }
  .walker-contact__addresses { flex-wrap: wrap; gap: 20px; }
}

@media (max-width: 900px) {
  .walker-footer__main  { grid-template-columns: 1fr; gap: 40px; }
  .walker-footer__col--right { align-items: flex-start; text-align: left; }
  .walker-footer__social-list { align-items: flex-start; }
  .walker-footer__addresses { flex-wrap: wrap; gap: 32px; }
  .walker-footer__logo { display: none; }
}

@media (max-width: 768px) {
  :root { --gutter: 24px; }

  .walker-header__nav-wrap   { display: none; }
  .walker-header__right      { margin-left: auto; }

  .walker-footer__partners {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    align-items: center;
    justify-items: center;
    gap: 16px;
  }

  .walker-footer__partner img {
    height: 28px;
  }

  .walker-header__logo img,
  .walker-header.is-scrolled .walker-header__logo img {
    height: 30px;
  }

  .walker-header__hamburger {
    display: flex;
    width: 44px;
    height: 30px;
    border: none;
    padding: 0 11px;
    gap: 6px;
    background: none;
  }

  /* Recalculated for this breakpoint's own geometry (1px lines, 6px gap) —
     the base 9px offset is tuned for the desktop hamburger's 3px lines and
     5px gap, so reusing it here put the two diagonal bars off-centre. */
  .walker-header__hamburger.is-active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .walker-header__hamburger.is-active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
}

/* =========================
   Back To Top
========================= */
.walker-back-to-top {
  position: fixed;
  right: clamp(20px, 3vw, 40px);
  bottom: clamp(20px, 3vw, 40px);
  z-index: 250;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--color-primary-red);
  color: var(--color-cream);
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s, background-color 0.3s ease, color 0.3s ease;
}

/* Toggled by back-to-top.js when the button is currently sitting over a
   red-background section, so it doesn't blend into it. */
.walker-back-to-top.is-over-red {
  background: var(--color-peach);
  color: var(--color-primary-red);
}

.walker-back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.walker-back-to-top:hover { opacity: 0.85; }

/* =========================
   Partial: 3 Columns + CTA
========================= */
.walker-three-col-cta {
  background: var(--color-cream);
  padding: clamp(60px, 8vw, 100px) 0;
}

.walker-three-col-cta__top {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
}

.walker-three-col-cta__top-text {
  flex: 0 0 33.333%;
}

.walker-three-col-cta__top-text--wide {
  flex-basis: 66.666%;
}

.walker-three-col-cta__eyebrow {
  margin: 0 0 16px;
  color: var(--color-primary-red);
  font-family: var(--heading-font);
  font-weight: 400;
  font-size: 13px;
  letter-spacing: -0.05em;
  text-transform: uppercase;
}

.walker-three-col-cta__heading {
  margin: 0;
  color: var(--color-primary-red);
  font-family: var(--heading-font);
  font-weight: 400;
  font-size: clamp(1.25rem, 2vw, 1.625rem);
  line-height: 1.4;
}

.walker-three-col-cta__cta {
  flex-shrink: 0;
}

.walker-three-col-cta__divider {
  margin: clamp(40px, 6vw, 64px) 0;
}

.walker-three-col-cta__divider-line {
  border-top: 0.5px solid var(--color-primary-red);
  transform: scaleX(0);
  transition: opacity 2s ease, transform 2s ease !important;
}

.walker-three-col-cta__divider-line--1 {
  transform-origin: right;
}

.walker-three-col-cta__divider-line--2 {
  transform-origin: left;
  margin-top: 8px;
}

.walker-three-col-cta__divider-line.is-visible {
  transform: scaleX(1);
}

.walker-three-col-cta__columns {
  display: flex;
  justify-content: space-between;
  gap: 48px;
  margin-top: clamp(32px, 5vw, 56px);
}

.walker-three-col-cta__column {
  flex: 0 1 calc(33.333% - 32px);
}

.walker-three-col-cta__icon-wrap {
  display: flex;
  align-items: flex-end;
  height: 48px;
  margin-bottom: 24px;
}

.walker-three-col-cta__icon {
  display: block;
  height: 20px;
  width: auto;
}

.walker-three-col-cta__column-heading {
  margin: 0 0 16px;
  color: var(--color-primary-red);
  font-family: var(--heading-font);
  font-weight: 300;
  font-size: clamp(1.5rem, 2.2vw, 1.875rem);
}

.walker-three-col-cta__column-description {
  color: var(--color-primary-red);
  font-family: var(--body-font);
  font-size: 15px;
  line-height: 1.6;
}

/* More dramatic, longer entrance for this section specifically — a bigger
   rise distance and slower duration than the sitewide .walker-animate
   default, still staggered per column via the shared data-delay system. */
.walker-three-col-cta__column .walker-animate {
  transform: translateY(56px);
  transition-duration: 0.5s !important;
  transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.walker-three-col-cta__column .walker-animate.is-visible {
  transform: translateY(0);
}

.walker-three-col-cta__cta-wrap {
  display: flex;
  justify-content: flex-end;
  margin-top: clamp(40px, 6vw, 64px);
}

@media (max-width: 900px) {
  .walker-three-col-cta__top {
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
  }

  .walker-three-col-cta__top-text {
    flex-basis: auto;
  }

  .walker-three-col-cta__columns {
    flex-direction: column;
    gap: 40px;
  }

  .walker-three-col-cta__column {
    flex-basis: auto;
  }

  .walker-three-col-cta__cta-wrap {
    justify-content: flex-start;
  }
}

/* =========================
   Partial: Large Text 2 Columns
========================= */
.walker-large-text-2col {
  background: var(--color-cream);
  padding: clamp(60px, 8vw, 120px) 0;
}

.walker-large-text-2col--no-padding-top {
  padding-top: 0;
}

.walker-large-text-2col__eyebrow {
  margin: 0 0 clamp(32px, 5vw, 56px);
  color: var(--color-primary-red);
  font-family: var(--heading-font);
  font-weight: 400;
  font-size: 13px;
  letter-spacing: -0.05em;
  text-transform: uppercase;
}

.walker-large-text-2col__columns {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(32px, 5vw, 64px);
}

/* Same text treatment as .walker-three-col-cta__heading */
.walker-large-text-2col__column {
  color: var(--color-primary-red);
  font-family: var(--heading-font);
  font-weight: 400;
  font-size: clamp(1.25rem, 2vw, 1.625rem);
  line-height: 1.4;
}

.walker-large-text-2col__column p { margin: 0 0 1.5em; }
.walker-large-text-2col__column p:last-child { margin-bottom: 0; }

@media (max-width: 700px) {
  .walker-large-text-2col__columns {
    grid-template-columns: 1fr;
  }
}

/* =========================
   Partial: Simple Paragraph
========================= */
.walker-simple-paragraph {
  background: var(--color-cream);
  padding: 120px 0 clamp(60px, 8vw, 120px);
}

@media (max-width: 900px) {
  .walker-simple-paragraph {
    padding-top: 0;
  }
}

.walker-simple-paragraph--no-padding-bottom {
  padding-bottom: 0;
}

/* Same double-line grow-in as .walker-three-col-cta__divider */
.walker-simple-paragraph__divider {
  margin: 0 0 clamp(40px, 6vw, 64px);
}

.walker-simple-paragraph__divider-line {
  border-top: 0.5px solid var(--color-primary-red);
  transform: scaleX(0);
  transition: opacity 2s ease, transform 2s ease !important;
}

.walker-simple-paragraph__divider-line--1 {
  transform-origin: right;
}

.walker-simple-paragraph__divider-line--2 {
  transform-origin: left;
  margin-top: 8px;
}

.walker-simple-paragraph__divider-line.is-visible {
  transform: scaleX(1);
}

.walker-simple-paragraph__content p {
  margin: 0 0 1.5em;
}

.walker-simple-paragraph__content p:last-child { margin-bottom: 0; }
