/* kimmorley.html: page-specific rules plus any override of the shared core */

body {
      font-family: var(--font-body);
      font-size: var(--t-base);
      line-height: 1.72;
      color: var(--shadow);
      background: var(--cream);
      -webkit-font-smoothing: antialiased;
      overflow-x: hidden
    }

#nav {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 900;
      height: var(--nav-h);
      transition: background var(--tr), box-shadow var(--tr)
    }

#nav.scrolled {
      background: rgba(250, 248, 245, .94);
      backdrop-filter: blur(14px);
      box-shadow: 0 1px 0 rgba(0, 0, 0, .08)
    }

#nav:not(.scrolled) .nav-logo img {
      filter: brightness(0) invert(1)
    }

#nav:not(.scrolled) .nav-links a {
      color: rgba(255, 255, 255, .88)
    }

#nav:not(.scrolled) .nav-cta {
      background: rgba(255, 255, 255, .15);
      color: #fff !important;
      border-color: rgba(255, 255, 255, .35)
    }

#nav:not(.scrolled) .hamburger span {
      background: #fff
    }

.nav-logo img {
      height: 32px;
      width: auto;
      transition: opacity var(--tr)
    }

.nav-logo:hover img {
      opacity: .75
    }

.nav-dropdown {
      position: absolute;
      top: calc(100% + 18px);
      left: 50%;
      transform: translateX(-50%) translateY(8px);
      background: var(--warm-white);
      border: 1px solid var(--stone);
      border-radius: 10px;
      padding: .75rem 0;
      min-width: 230px;
      box-shadow: 0 20px 60px rgba(0, 0, 0, .12);
      opacity: 0;
      pointer-events: none;
      transition: opacity 220ms var(--ease), transform 220ms var(--ease)
    }

.nav-dropdown a {
      display: block;
      padding: .6rem 1.25rem;
      font-size: 1.01rem;
      color: var(--shadow);
      transition: color var(--tr), padding-left var(--tr)
    }

.nav-dropdown a:hover {
      color: var(--night);
      padding-left: 1.5rem
    }

#nav:not(.scrolled) .nav-links>li>a.nav-active::after {
      background: #A0462A;
    }

.mobile-overlay {
      position: fixed;
      inset: 0;
      z-index: 950;
      background: var(--night-deep);
      display: flex;
      flex-direction: column;
      padding: 0 1.5rem 2rem;
      transform: translateX(100%);
      transition: transform 400ms var(--ease)
    }

.mobile-overlay .nav-logo img {
      filter: brightness(0) invert(1)
    }

.page-hero {
      position: relative;
      height: 80vh;
      min-height: 560px;
      display: flex;
      align-items: flex-end;
      padding-bottom: clamp(4rem, 8vw, 7rem);
      overflow: hidden
    }

.hero-bg {
      position: absolute;
      inset: -15% 0;
      width: 100%;
      height: 130%;
      will-change: transform
    }

.hero-bg img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center 30%
    }

.hero-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(to right, rgba(43, 34, 27, .88) 0%, rgba(43, 34, 27, .7) 50%, rgba(43, 34, 27, .3) 100%)
    }

.hero-inner {
      position: relative;
      z-index: 2;
      max-width: var(--max-w);
      width: 100%;
      margin: 0 auto;
      padding: 0 clamp(1.5rem, 4vw, 3.5rem)
    }

.hero-heading {
      font-family: var(--font-display);
      font-size: var(--t-hero);
      font-weight: 300;
      line-height: 1.05;
      color: #fff;
      margin-bottom: 1rem;
      max-width: 700px
    }

.hero-kicker {
      font-size: 0.78rem;
      letter-spacing: .2em;
      text-transform: uppercase;
      color: rgba(255, 255, 255, .45);
      margin-bottom: 1.25rem;
      display: block
    }

.hero-three {
      display: flex;
      flex-direction: column;
      gap: .25rem;
      margin-top: .25rem
    }

.hero-three span {
      font-family: var(--font-display);
      font-size: clamp(1rem, 1.6vw, 1.25rem);
      font-weight: 300;
      font-style: italic;
      color: rgba(255, 255, 255, .65);
      line-height: 1.4
    }

.section {
      padding: clamp(3rem, 6vw, 5.5rem) 0
    }

.s-warm {
      background: var(--warm-white)
    }

.s-parchment {
      background: var(--parchment)
    }

.s-night {
      background: var(--night-deep);
      color: #fff
    }

.s-cream {
      background: var(--cream)
    }

.sec-heading {
      font-family: var(--font-display);
      font-size: var(--t-3xl);
      font-weight: 300;
      color: var(--night);
      line-height: 1.1;
      margin-bottom: 1.5rem
    }

.sec-heading em {
      font-style: italic
    }

.body-text p {
      font-size: 14px;
      line-height: 1.8;
      color: var(--night);
      font-weight: 300;
      margin-bottom: 1.25rem
    }

.two-col {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: clamp(3rem, 6vw, 7rem);
      align-items: start
    }

.rule {
      width: 40px;
      height: 1px;
      background: var(--moss);
      margin: 2rem 0
    }

.benefit-list {
      display: flex;
      flex-direction: column;
      gap: 2px;
      margin-top: 2rem
    }

.benefit-item {
      background: var(--warm-white);
      padding: 1.5rem 2rem;
      display: flex;
      align-items: start;
      gap: 1rem;
      border-left: 3px solid transparent;
      transition: border-color var(--tr), background var(--tr-slow)
    }

.benefit-item:hover {
      border-left-color: var(--night);
      background: var(--parchment)
    }

.benefit-dash {
      font-family: var(--font-display);
      font-size: 1.03rem;
      color: var(--moss);
      flex-shrink: 0;
      padding-top: .05em
    }

.benefit-text {
      font-size: 1.03rem;
      line-height: 1.6;
      color: var(--night)
    }

.client-box {
      background: var(--night);
      padding: 3.5rem;
      border-radius: 8px
    }

.client-box h3 {
      font-family: var(--font-display);
      font-size: var(--t-2xl);
      font-weight: 300;
      color: #fff;
      margin-bottom: 2rem;
      line-height: 1.2
    }

.client-list {
      display: flex;
      flex-direction: column;
      gap: 1rem
    }

.client-list li {
      font-size: 1.03rem;
      color: rgba(255, 255, 255, .65);
      line-height: 1.6;
      padding-left: 1.5rem;
      position: relative
    }

.client-list li::before {
      content: '—';
      position: absolute;
      left: 0;
      color: rgba(255, 255, 255, .3)
    }

.client-note {
      font-family: var(--font-display);
      font-style: italic;
      font-size: 14px;
      color: rgba(255, 255, 255, .45);
      margin-top: 2rem;
      line-height: 1.65;
      border-top: 1px solid rgba(255, 255, 255, .1);
      padding-top: 1.5rem
    }

.cta-night {
      background: var(--night-deep);
      padding: clamp(3rem, 6vw, 5.5rem) 0
    }

.cta-inner {
      max-width: 640px
    }

.cta-heading {
      font-family: var(--font-display);
      font-size: var(--t-4xl);
      font-weight: 300;
      color: #fff;
      line-height: 1.1;
      margin-bottom: 1rem
    }

.cta-heading em {
      font-style: italic;
      color: var(--sky)
    }

.cta-sub {
      font-size: 14px;
      color: rgba(255, 255, 255, .5);
      line-height: 1.7;
      margin-bottom: 2rem
    }

.cta-btns {
      display: flex;
      gap: 1rem;
      flex-wrap: wrap
    }

.btn-gl {
      background: transparent;
      color: rgba(255, 255, 255, .75);
      border: 1px solid rgba(255, 255, 255, .25)
    }

.btn-gl:hover {
      background: rgba(255, 255, 255, .1);
      color: #fff
    }

.footer-top {
      display: grid;
      grid-template-columns: 2fr 1fr 1fr;
      gap: 3rem;
      padding-bottom: 3rem;
      padding-bottom: 2.5rem
    }

.footer-col-label {
      font-size: 0.67rem;
      letter-spacing: .22em;
      text-transform: uppercase;
      color: rgba(255, 255, 255, .3);
      margin-bottom: 1rem
    }

.footer-links a {
      font-size: 0.94rem;
      color: rgba(255, 255, 255, .55);
      transition: color var(--tr)
    }

.d1 {
      transition-delay: 80ms
    }

.d2 {
      transition-delay: 160ms
    }

.d3 {
      transition-delay: 240ms
    }

@media(max-width:900px) {
      .nav-links {
        display: none
      }

      .hamburger {
        display: flex
      }

      .two-col {
        grid-template-columns: 1fr
      }
    }

@media(max-width:600px) {
      .footer-top {
        grid-template-columns: 1fr
      }
    }

.t-two-col {
      font-size: var(--t-2xl)
    }

body,
    a,
    button {
      cursor: none !important;
    }

#custom-cursor {
      position: fixed;
      top: 0;
      left: 0;
      width: 44px;
      height: 44px;
      pointer-events: none;
      z-index: 99999;
      transform: translate(-50%, -50%) scale(0.7);
      opacity: 0;
      transition: opacity 200ms ease, transform 280ms cubic-bezier(.34, 1.56, .64, 1);
      filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.5));
    }

.nav-logo-img {
      height: 30px;
      width: auto;
      filter: brightness(0) invert(0);
      transition: opacity var(--tr);
    }

#nav:not(.scrolled) .nav-logo-img {
      filter: brightness(0) invert(1);
    }

#nav .nav-tagline {
      display: none;
    }

#nav .nav-dropdown a {
      color: var(--shadow) !important;
    }

#nav .nav-dropdown a:hover {
      color: var(--night) !important;
    }

.nav-dropdown::before {
      content: '';
      position: absolute;
      top: -24px;
      left: 0;
      right: 0;
      height: 24px;
    }

p {
      line-height: 1.72;
    }

.eyebrow {
      font-size: 0.8rem !important;
    }

.intro-label,
    .section-sub-label,
    .practice-sub-label {
      font-size: 0.8rem !important;
    }

.intro-body,
    .body-lg {
      font-size: var(--t-lg) !important;
      line-height: 1.72;
    }

.practice-heading {
      font-size: clamp(2.4rem, 4vw, 4rem) !important;
    }

.practice-row p {
      font-size: 1.1rem !important;
      line-height: 1.72;
    }

.section-heading {
      font-size: var(--t-3xl) !important;
    }

.hero-bg {
      z-index: 0 !important;
    }

.hero-overlay,
    .hero-overlay-bottom {
      z-index: 1 !important;
    }

.hero-inner {
      z-index: 2 !important;
    }