/* ==========================================================================
   BIGGS DIGITAL — BUILDER ZERO TEST SPECIFICATION & REFERENCE ARCHITECTURE
   Test 03 Stage C1R-C — Morrow & Fern Composition Remediation & Card Upgrade
   css/styles.css
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. GLOBAL DESIGN TOKENS & RESET
   -------------------------------------------------------------------------- */
:root {
  --cream: #F3EFE5;
  --paper: #FAF8F2;
  --paper-card: #FAF7F2;
  --ink: #243127;
  --forest: #34483A;
  --moss: #6C785E;
  --sage: #A7B09A;
  --stone: #D7D0C2;
  --clay: #B97859;
  --wax-red: #A64B38;
  --twine: #C2B29A;
  --lavender: #8A7791;
  --blush: #D5A08A;
  --white: #FFFFFF;

  --font-serif: Georgia, "Times New Roman", serif;
  --font-sans: Arial, Helvetica, sans-serif;

  --wrapper-max-width: 1400px;
  --gutter-desktop: 72px;
  --gutter-tablet: 48px;
  --gutter-mobile: 22px;

  --nav-height-desktop: 84px;
  --nav-height-mobile: 72px;
}

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

html {
  scroll-behavior: smooth;
  background-color: var(--cream);
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  width: 100%;
  overflow-x: hidden;
  background-color: var(--cream);
}

/* --------------------------------------------------------------------------
   2. TYPOGRAPHY SYSTEM (COMPACT EDITORIAL RHYTHM)
   -------------------------------------------------------------------------- */
h1, h2, h3, h4 {
  font-family: var(--font-serif);
  font-weight: 400;
}

h1 {
  font-size: clamp(56px, 5.4vw, 84px);
  line-height: 0.96;
  letter-spacing: -0.03em;
  color: var(--cream);
}

h2 {
  font-size: clamp(42px, 4.2vw, 62px);
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--ink);
}

p {
  font-size: 17px;
  line-height: 1.65;
}

.eyebrow {
  font-family: var(--font-sans);
  font-size: 11px;
  line-height: 1;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 600;
  display: block;
  margin-bottom: 16px;
}

/* --------------------------------------------------------------------------
   3. GLOBAL LAYOUT WRAPPER & UTILITIES
   -------------------------------------------------------------------------- */
.container {
  width: min(var(--wrapper-max-width), calc(100% - (var(--gutter-desktop) * 2)));
  margin-inline: auto;
  position: relative;
}

.raster-asset {
  display: block;
  max-width: 100%;
  height: auto;
  pointer-events: none;
  user-select: none;
}

/* Focus states for accessibility */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--clay);
  outline-offset: 4px;
}

/* --------------------------------------------------------------------------
   4. NAVIGATION HEADER
   -------------------------------------------------------------------------- */
.site-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: var(--nav-height-desktop);
  z-index: 50;
  background-color: transparent;
  transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}

.site-nav.scrolled {
  background-color: rgba(243, 239, 229, 0.96);
  border-bottom: 1px solid rgba(36, 49, 39, 0.12);
}

@supports (backdrop-filter: blur(10px)) {
  .site-nav.scrolled {
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }
}

.nav-container {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.nav-brand {
  text-decoration: none;
  color: var(--white);
  transition: color 0.3s ease;
  display: flex;
  flex-direction: column;
}

.site-nav.scrolled .nav-brand {
  color: var(--ink);
}

.brand-title {
  font-family: var(--font-serif);
  font-size: 21px;
  line-height: 1;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.brand-subtitle {
  font-family: var(--font-sans);
  font-size: 9px;
  line-height: 1;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin-top: 5px;
  opacity: 0.92;
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 36px;
  list-style: none;
}

.nav-link {
  text-decoration: none;
  font-size: 13px;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: var(--white);
  transition: color 0.3s ease, opacity 0.2s ease;
}

.nav-link:hover {
  opacity: 0.75;
}

.site-nav.scrolled .nav-link {
  color: var(--ink);
}

.mobile-nav-toggle {
  display: none;
  background: none;
  border: none;
  color: var(--white);
  cursor: pointer;
  padding: 8px;
}

.site-nav.scrolled .mobile-nav-toggle {
  color: var(--ink);
}

.mobile-nav-toggle svg {
  width: 24px;
  height: 24px;
  stroke: currentColor;
  stroke-width: 2;
  fill: none;
}

.mobile-drawer {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: var(--forest);
  z-index: 45;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.mobile-drawer.is-open {
  opacity: 1;
  pointer-events: auto;
}

.mobile-drawer-links {
  list-style: none;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 28px;
}

.mobile-drawer-link {
  text-decoration: none;
  font-family: var(--font-serif);
  font-size: 32px;
  color: var(--cream);
  transition: color 0.2s ease;
}

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

/* --------------------------------------------------------------------------
   5. HERO SECTION (REMEDIATED OVERLAPPING TERRITORIES - LEVEL C REFERENCE)
   -------------------------------------------------------------------------- */
.hero-section {
  position: relative;
  min-height: 640px;
  background-color: var(--forest);
  padding-top: calc(var(--nav-height-desktop) + 40px);
  padding-bottom: 0; /* Bottom anchored meadow */
  overflow: hidden;
}

.hero-container {
  position: relative;
  min-height: 560px;
  display: flex;
  align-items: center;
  overflow: visible;
}

/* Copy Territory: Left aligned, z-index 5 */
.hero-copy {
  max-width: 500px;
  position: relative;
  z-index: 5;
  margin-bottom: 80px;
  transform: translate(70px, -42px);
}

.hero-eyebrow {
  color: var(--blush);
}

.hero-title {
  margin-bottom: 20px;
}

.hero-body {
  color: rgba(243, 239, 229, 0.82);
  max-width: 460px;
  margin-bottom: 28px;
}

.hero-cta {
  display: inline-block;
  text-decoration: none;
  font-family: var(--font-sans);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--cream);
  border-bottom: 1px solid var(--cream);
  padding-bottom: 4px;
  transition: opacity 0.2s ease, border-color 0.2s ease;
}

.hero-cta:hover {
  opacity: 0.8;
  border-color: var(--blush);
}

/* Hero Secondary Meadow (Center-Lower Territory, z-index 3) */
.hero-meadow-wrapper {
  position: absolute;
  left: calc(29.5% - 18px);
  bottom: 0;
  width: 700px;
  z-index: 3;
  overflow: visible;
  pointer-events: none;
}

.hero-meadow-img {
  width: 100%;
  height: auto;
  transform: translateY(16px); /* Final optical planting into the section boundary */
}

/* Hero Dominant Botanical (Right Territory, z-index 4) */
.hero-dominant-wrapper {
  position: absolute;
  right: -20px;
  bottom: 0;
  width: 440px;
  z-index: 4;
  overflow: visible;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
}

.hero-backdrop-circle {
  position: absolute;
  width: 460px;
  height: 460px;
  border-radius: 50%;
  border: 1px solid rgba(243, 239, 229, 0.16);
  right: 10px;
  top: -20px;
  pointer-events: none;
  z-index: 1;
}

.hero-dominant-img {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 420px;
  height: auto;
  transform: translateY(16px);
}

/* --------------------------------------------------------------------------
   6. PHILOSOPHY / OUR APPROACH SECTION (#studio - BOTTOM ANCHORED HORIZON)
   -------------------------------------------------------------------------- */
.philosophy-section {
  background-color: var(--cream);
  padding-top: 72px;
  padding-bottom: 0; /* Bottom anchored planted horizon */
  min-height: 520px;
  position: relative;
  overflow: hidden;
}

.philosophy-container {
  position: relative;
  min-height: 445px;
  display: flex;
  align-items: flex-start;
  overflow: visible;
}

.philosophy-copy {
  max-width: 480px;
  position: relative;
  z-index: 4;
  padding-top: 20px;
}

.philosophy-eyebrow {
  color: var(--moss);
}

.philosophy-title {
  margin-bottom: 20px;
  color: var(--ink);
}

.philosophy-body {
  color: var(--ink);
  max-width: 460px;
  margin-bottom: 24px;
}

.philosophy-subnote {
  font-family: var(--font-sans);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--clay);
}

/* Planted Horizon: Broad scale, bottom-anchored */
.philosophy-art-wrapper {
  position: absolute;
  right: 25px;
  bottom: 0;
  width: 880px;
  z-index: 3;
  overflow: visible;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
}

.philosophy-backdrop-circle {
  position: absolute;
  width: 500px;
  height: 500px;
  border-radius: 50%;
  background: rgba(215, 208, 194, 0.4);
  right: 40px;
  top: -115px;
  pointer-events: none;
  z-index: 1;
}

.philosophy-horizon-img {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 840px;
  height: auto;
  transform: translateY(18px);
}

/* --------------------------------------------------------------------------
   7. SERVICES SECTION (#services - ENVIRONMENTAL LEFT EDGE ENTRY)
   -------------------------------------------------------------------------- */
.services-section {
  background-color: var(--paper);
  padding-top: 90px;
  padding-bottom: 56px;
  position: relative;
  overflow: hidden;
}

/* Shared static seam: a soft tonal falloff instead of a hard decorative band. */
.services-section::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 18px;
  background: linear-gradient(to bottom, rgba(36, 49, 39, 0.055), rgba(36, 49, 39, 0));
  box-shadow: inset 0 1px 0 rgba(36, 49, 39, 0.08);
  pointer-events: none;
  z-index: 0;
}

.services-container-wrapper {
  position: relative;
  z-index: 2;
}

/* Airy upper-right botanical counterweight */
.services-corner-branch-img {
  position: absolute;
  top: 0;
  right: 0;
  width: 430px;
  height: auto;
  opacity: 0.9;
  z-index: 1;
  pointer-events: none;
}

/* Left Environmental Garden: Originating beyond viewport boundary */
.services-left-garden-img {
  position: absolute;
  left: -25px;
  bottom: -18px;
  width: 330px;
  height: auto;
  z-index: 3;
  pointer-events: none;
}

.services-header {
  max-width: none;
  margin-bottom: 44px;
  margin-left: 210px; /* Clearance for environmental garden */
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.75fr);
  column-gap: 72px;
  align-items: end;
}

.services-eyebrow {
  color: var(--moss);
}

.services-intro-desc {
  margin-top: 0;
  font-size: 16px;
  color: rgba(36, 49, 39, 0.85);
  max-width: 390px;
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: end;
  padding-bottom: 5px;
}

.services-grid-wrapper {
  margin-left: 210px;
  border-top: 1px solid var(--stone);
  border-bottom: 1px solid var(--stone);
}

.services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.service-cell {
  padding: 30px 26px;
  border-right: 1px solid var(--stone);
  display: flex;
  flex-direction: column;
}

.services-grid .service-cell:nth-child(3n) {
  border-right: none;
}

.services-grid .service-cell:nth-child(n+4) {
  border-top: 1px solid var(--stone);
}

.service-icon {
  width: 28px;
  height: 28px;
  stroke: var(--clay);
  stroke-width: 1.5;
  fill: none;
  margin-bottom: 14px;
}

.service-title {
  font-family: var(--font-serif);
  font-size: 21px;
  line-height: 1.2;
  color: var(--ink);
  margin-bottom: 8px;
}

.service-desc {
  font-size: 14.5px;
  line-height: 1.55;
  color: rgba(36, 49, 39, 0.8);
}

/* --------------------------------------------------------------------------
   8. GROWTH PROCESS SECTION (#process - SUBSTANTIAL NARRATIVE SPINE)
   -------------------------------------------------------------------------- */
.process-section {
  background-color: var(--cream);
  padding-top: 100px;
  padding-bottom: 100px;
  min-height: 680px;
  position: relative;
  overflow: hidden;
}

/* Same transition language as Services: depth without adding a visible band. */
.process-section::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 18px;
  background: linear-gradient(to bottom, rgba(36, 49, 39, 0.055), rgba(36, 49, 39, 0));
  box-shadow: inset 0 1px 0 rgba(36, 49, 39, 0.08);
  pointer-events: none;
  z-index: 0;
}

.process-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.42fr) minmax(0, 0.58fr);
  gap: 50px;
  align-items: center;
}

.process-plant-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  min-height: 548px;
  position: relative;
  overflow: visible;
}

/* One coordinate system for circle + botanical at every viewport.
   564 × 548 is the resolved desktop artwork box: the circle/stem relationship
   is therefore preserved by scaling the box, never by moving the children independently. */
.process-art-lock {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 564px;
  height: 548px;
  flex: 0 0 564px;
  overflow: visible;
}

.process-backdrop-circle {
  position: absolute;
  width: 69.148936%; /* 390 / 564 */
  height: auto;
  aspect-ratio: 1;
  border-radius: 50%;
  background: rgba(215, 208, 194, 0.35);
  left: -1.77305%; /* -10 / 564 */
  bottom: 0;
  pointer-events: none;
  z-index: 1;
}

.process-spine-img {
  position: relative;
  z-index: 2;
  width: 64.716312%; /* 365 / 564 */
  max-width: none;
  height: auto;
  transform: translateY(-1.461988%); /* -8 / 548 */
  /* Keep the stems visible; only the very end is trimmed so the artwork meets the circle cleanly. */
  -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 58% 100%, 56% 99%, 54% 98%, 52% 97%, 50% 96%, 48% 97%, 46% 98%, 44% 99%, 42% 100%, 0 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 58% 100%, 56% 99%, 54% 98%, 52% 97%, 50% 96%, 48% 97%, 46% 98%, 44% 99%, 42% 100%, 0 100%);
}

.process-content {
  display: flex;
  flex-direction: column;
  max-width: 780px;
}

.process-header {
  margin-bottom: 36px;
}

.process-eyebrow {
  color: var(--clay);
}

.process-sub-desc {
  margin-top: 10px;
  font-size: 16px;
  color: rgba(36, 49, 39, 0.8);
}

.process-steps-list {
  border-top: 1px solid rgba(36, 49, 39, 0.15);
}

.process-step-row {
  padding: 22px 0;
  border-bottom: 1px solid rgba(36, 49, 39, 0.15);
  display: grid;
  grid-template-columns: 48px 1fr;
  align-items: baseline;
}

.step-num {
  font-family: var(--font-sans);
  font-size: 11px;
  letter-spacing: 0.15em;
  font-weight: 600;
  color: var(--clay);
}

.step-info {
  display: flex;
  flex-direction: column;
}

.step-title {
  font-family: var(--font-serif);
  font-size: 26px;
  line-height: 1.1;
  color: var(--ink);
  margin-bottom: 6px;
}

.step-text {
  font-size: 15px;
  line-height: 1.55;
  color: rgba(36, 49, 39, 0.8);
  max-width: 520px;
}

/* --------------------------------------------------------------------------
   9. CONTACT FINALE SECTION (#contact - UPGRADED LEVEL B CARD & DEPTH)
   -------------------------------------------------------------------------- */
.contact-section {
  background-color: var(--ink);
  color: var(--cream);
  padding-top: 95px;
  padding-bottom: 95px;
  min-height: 660px;
  position: relative;
  overflow: hidden;
}

/* Landscape edging course: one restrained built transition language across section boundaries.
   It sits over the seam so botanical assets read as planted behind hardscape rather than abruptly cut. */
.hero-section::after,
.services-section::before,
.process-section::before,
.contact-section::before {
  content: "";
  position: absolute;
  inset: auto;
  left: 0;
  right: 0;
  height: 18px;
  background:
    linear-gradient(to bottom, rgba(255, 255, 255, 0.22), rgba(82, 75, 65, 0.10)),
    repeating-linear-gradient(
      90deg,
      #d2cabd 0 112px,
      #aaa193 112px 114px,
      #c5bdae 114px 226px,
      #aaa193 226px 228px,
      #ddd6ca 228px 340px,
      #aaa193 340px 342px
    );
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.34),
    inset 0 -1px 0 rgba(88, 80, 69, 0.18),
    0 2px 5px rgba(36, 49, 39, 0.10);
  pointer-events: none;
  z-index: 8;
}

.hero-section::after {
  bottom: 0;
}

.services-section::before,
.process-section::before,
.contact-section::before {
  top: 0;
}

.contact-grid {
  display: grid;
  grid-template-columns: 45% 55%;
  gap: 50px;
  align-items: center;
  transform: translateX(48px);
}

.contact-left {
  max-width: 480px;
  position: relative;
  z-index: 5;
}

.contact-eyebrow {
  color: var(--blush);
}

.contact-title {
  color: var(--cream);
  margin-bottom: 16px;
}

.contact-body {
  color: rgba(243, 239, 229, 0.8);
  margin-bottom: 26px;
}

/* Form Styling */
.demo-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.form-group {
  display: flex;
  flex-direction: column;
}

.form-input,
.form-textarea {
  width: 100%;
  background-color: transparent;
  border: 1px solid rgba(243, 239, 229, 0.4);
  color: var(--cream);
  font-family: var(--font-sans);
  font-size: 14.5px;
  padding: 12px 16px;
  border-radius: 0;
  transition: border-color 0.2s ease;
}

.form-input {
  height: 48px;
}

.form-textarea {
  min-height: 95px;
  resize: vertical;
}

.form-input::placeholder,
.form-textarea::placeholder {
  color: rgba(243, 239, 229, 0.5);
}

.form-input:focus,
.form-textarea:focus {
  border-color: var(--blush);
  outline: none;
}

.form-submit-btn {
  height: 48px;
  background-color: var(--clay);
  color: var(--white);
  border: none;
  border-radius: 0;
  font-family: var(--font-sans);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 0.2s ease;
  margin-top: 4px;
}

.form-submit-btn:hover {
  background-color: #a36548;
}

.demo-form-note {
  font-size: 12px;
  color: rgba(243, 239, 229, 0.6);
  margin-top: 4px;
}

.form-notice {
  margin-top: 14px;
  padding: 12px 16px;
  background-color: rgba(185, 120, 89, 0.2);
  border: 1px solid var(--clay);
  color: var(--cream);
  font-size: 14px;
  display: none;
}

.form-notice.is-visible {
  display: block;
}

/* Contact 3-Layer Depth Stacking */
.contact-right {
  position: relative;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  width: 100%;
}

.contact-depth-container {
  position: relative;
  width: 100%;
  max-width: 600px;
  height: 480px;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: visible;
}

/* Layer 1: Background Garden Bed (z-index 1) */
.contact-bg-img {
  position: absolute;
  width: 534px;
  height: auto;
  bottom: -40px;
  right: -10px;
  z-index: 1;
}

/* Layer 2: UPGRADED Level B Business Card (z-index 2, matching contact-business-card-reference.png) */
.business-card-upgraded {
  position: relative;
  top: 10px;
  left: -28px;
  z-index: 2;
  width: 382px;
  height: 238px;
  background-color: var(--paper-card);
  color: var(--ink);
  padding: 28px 30px;
  transform: rotate(5deg); /* Gentle clockwise tilt (5deg) */
  border: 1px solid #EAE3D5;
  border-radius: 2px;
  box-shadow: 0 25px 50px rgba(0, 0, 0, 0.5), 0 5px 15px rgba(0, 0, 0, 0.3);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  margin-right: 18px;
  background-image: radial-gradient(rgba(36, 49, 39, 0.03) 1px, transparent 0);
  background-size: 12px 12px;
}

.card-header-block {
  text-align: center;
}

.card-emblem-svg {
  width: 24px;
  height: 24px;
  margin: 0 auto 6px auto;
  display: block;
}

.card-brand-title {
  font-family: var(--font-serif);
  font-size: 20px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink);
  line-height: 1;
}

.card-brand-subtitle {
  font-family: var(--font-sans);
  font-size: 8px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--moss);
  margin-top: 4px;
}

/* Wrapped Twine & Wax Seal Decor */
.card-twine-decor {
  position: relative;
  margin-top: 18px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.twine-line {
  position: absolute;
  left: -30px;
  right: -30px;
  height: 2px;
  background: var(--twine);
  box-shadow: 0 1px 2px rgba(0,0,0,0.15);
}

.twine-knot-flower {
  position: relative;
  z-index: 2;
  left: 20px;
  display: flex;
  align-items: center;
  gap: 4px;
}

.twine-bow {
  width: 14px;
  height: 14px;
  border: 1.5px solid var(--twine);
  border-radius: 50%;
}

.twine-accent-flower {
  width: 12px;
  height: 12px;
  background: var(--blush);
  border-radius: 50%;
}

.wax-seal-container {
  position: absolute;
  right: -10px;
  bottom: -10px;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
}

.wax-seal-circle {
  width: 38px;
  height: 38px;
  background-color: var(--wax-red);
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255,255,255,0.2);
}

.wax-seal-motif {
  width: 16px;
  height: 16px;
  stroke: #F4E2D8;
  stroke-width: 1.5;
  fill: none;
}

.wax-seal-leaf {
  position: absolute;
  width: 18px;
  height: 18px;
  fill: var(--moss);
  left: -8px;
  bottom: 4px;
}

/* Layer 3: Foreground Garden Overlap (z-index 4) */
.contact-fg-img {
  position: absolute;
  width: 432px;
  height: auto;
  bottom: -46px;
  right: -20px;
  z-index: 4;
  pointer-events: none;
}

/* --------------------------------------------------------------------------
   10. FOOTER (SECTION FRAME 06)
   -------------------------------------------------------------------------- */
.site-footer {
  min-height: 85px;
  background-color: var(--ink);
  border-top: 1px solid rgba(243, 239, 229, 0.16);
  display: flex;
  align-items: center;
}

.footer-container {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 56px;
  width: 100%;
}

.footer-left,
.footer-right {
  font-family: var(--font-sans);
  font-size: 11px;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: rgba(243, 239, 229, 0.76);
}

/* --------------------------------------------------------------------------
   11. RESPONSIVE COMPOSITION SYSTEM — FINAL FORENSIC LOCK
   Desktop reference composition remains unchanged. Responsive rules scale
   approved artwork groups as units and bridge the former 1050px cliff.
   -------------------------------------------------------------------------- */
@media (max-width: 1200px) {
  :root {
    --gutter-desktop: var(--gutter-tablet);
  }

  .services-header,
  .services-grid-wrapper {
    margin-left: 180px;
  }
}

/* Approach: bridge 1051px → desktop instead of reinstating the 880px artwork abruptly. */
@media (min-width: 1051px) and (max-width: 1535px) {
  .philosophy-copy {
    max-width: clamp(430px, calc(10.31vw + 321.6px), 480px);
  }

  .philosophy-art-wrapper {
    width: clamp(650px, calc(47.62vw + 149.5px), 880px);
    right: clamp(-70px, calc(19.59vw - 275.9px), 25px);
  }

  .philosophy-backdrop-circle {
    width: clamp(410px, calc(18.56vw + 214.9px), 500px);
    height: auto;
    aspect-ratio: 1;
    right: clamp(35px, calc(1.03vw + 24.2px), 40px);
    top: clamp(-115px, calc(-13vw + 84.6px), -52px);
  }

  .philosophy-horizon-img {
    max-width: clamp(635px, calc(42.27vw + 190.8px), 840px);
  }
}

/* Services: keep the branch edge-anchored while its safe scale grows toward desktop. */
@media (min-width: 1051px) and (max-width: 1449px) {
  .services-corner-branch-img {
    display: block;
    width: clamp(300px, calc(32.58vw - 42.5px), 430px);
    top: 0;
    right: 0;
    opacity: 0.9;
  }

  .services-header {
    display: block;
    padding-right: clamp(185px, 18vw, 260px);
  }

  .services-intro-desc {
    margin-top: 12px;
    max-width: 520px;
    padding-bottom: 0;
  }
}

/* Process: the 564 × 548 art lock shrinks as one object through laptop/tablet widths. */
@media (min-width: 901px) and (max-width: 1450px) {
  .process-plant-wrapper {
    min-height: clamp(482px, calc(16.52vw + 308.5px), 548px);
  }

  .process-art-lock {
    width: clamp(496px, calc(17vw + 317.5px), 564px);
    height: auto;
    aspect-ratio: 564 / 548;
    flex-basis: auto;
  }
}

/* Contact: prevent the 45% + 55% + 50px desktop equation overflowing laptop widths. */
@media (min-width: 901px) and (max-width: 1299px) {
  .contact-grid {
    grid-template-columns: minmax(0, 0.47fr) minmax(0, 0.53fr);
    gap: 28px;
    transform: translateX(clamp(16px, 3vw, 32px));
  }

  .contact-left {
    max-width: 430px;
  }

  .contact-right {
    min-height: 430px;
    justify-content: center;
    position: relative;
  }

  .contact-depth-container {
    position: absolute;
    width: 600px;
    max-width: none;
    height: 480px;
    left: 50%;
    top: 50%;
    transform-origin: center;
  }
}

@media (min-width: 901px) and (max-width: 1050px) {
  .philosophy-section {
    min-height: 560px;
  }

  .philosophy-container {
    min-height: 485px;
  }

  .philosophy-copy {
    max-width: 430px;
  }

  .philosophy-art-wrapper {
    right: -70px;
    width: 650px;
  }

  .philosophy-backdrop-circle {
    width: 410px;
    height: 410px;
    right: 35px;
    top: -52px;
  }

  .philosophy-horizon-img {
    max-width: 635px;
  }

  .services-corner-branch-img {
    display: block;
    width: 300px;
    top: 0;
    right: 0;
    opacity: 0.88;
  }

  .services-header {
    display: block;
    padding-right: 185px;
  }

  .services-intro-desc {
    margin-top: 12px;
    max-width: 520px;
    padding-bottom: 0;
  }

  .contact-depth-container {
    transform: translate(-50%, -50%) scale(0.74);
  }
}

@media (min-width: 1051px) and (max-width: 1150px) {
  .contact-depth-container {
    transform: translate(-50%, -50%) scale(0.80);
  }
}

@media (min-width: 1151px) and (max-width: 1220px) {
  .contact-depth-container {
    transform: translate(-50%, -50%) scale(0.84);
  }
}

@media (min-width: 1221px) and (max-width: 1299px) {
  .contact-depth-container {
    transform: translate(-50%, -50%) scale(0.90);
  }
}

@media (max-width: 900px) {
  .site-nav {
    height: var(--nav-height-mobile);
  }

  .nav-links {
    display: none;
  }

  .mobile-nav-toggle {
    display: block;
  }

  #studio,
  #services,
  #process,
  #contact {
    scroll-margin-top: calc(var(--nav-height-mobile) + 10px);
  }

  .hero-section::after,
  .services-section::before,
  .process-section::before,
  .contact-section::before {
    height: 14px;
  }

  .services-header,
  .services-grid-wrapper {
    margin-left: 0;
  }
}

/* 768-class tablets: preserve overlap and two-column relationships where they fit. */
@media (min-width: 641px) and (max-width: 900px) {
  .hero-section {
    min-height: 640px;
    padding-top: calc(var(--nav-height-mobile) + 38px);
  }

  .hero-container {
    display: block;
    min-height: 530px;
  }

  .hero-copy {
    max-width: 510px;
    margin: 30px 0 0;
    transform: none;
  }

  .hero-meadow-wrapper {
    position: absolute;
    left: -5%;
    bottom: 0;
    width: 72%;
  }

  .hero-dominant-wrapper {
    position: absolute;
    right: -3%;
    bottom: 0;
    width: 39%;
  }

  .hero-backdrop-circle {
    width: 340px;
    height: 340px;
    right: -18px;
    top: -12px;
  }

  .hero-dominant-img {
    max-width: 270px;
  }

  .philosophy-section {
    min-height: 580px;
    padding-top: 60px;
  }

  .philosophy-container {
    display: block;
    min-height: 520px;
  }

  .philosophy-copy {
    max-width: 590px;
    padding-top: 0;
  }

  .philosophy-art-wrapper {
    position: absolute;
    right: -4%;
    bottom: 0;
    width: 74%;
  }

  .philosophy-backdrop-circle {
    width: 340px;
    height: 340px;
    right: 1%;
    top: -48px;
  }

  .philosophy-horizon-img {
    max-width: 560px;
  }

  .services-section {
    padding-top: 72px;
    padding-bottom: 90px;
  }

  .services-corner-branch-img {
    display: block;
    width: 250px;
    top: 0;
    right: 0;
    opacity: 0.82;
  }

  .services-left-garden-img {
    display: block;
    width: 160px;
    left: -10px;
    bottom: -14px;
  }

  .services-header {
    display: block;
    padding-right: 165px;
    margin-bottom: 32px;
  }

  .services-intro-desc {
    margin-top: 12px;
    max-width: 500px;
    padding-bottom: 0;
  }

  .services-grid {
    grid-template-columns: 1fr 1fr;
  }

  .services-grid .service-cell:nth-child(3n) {
    border-right: 1px solid var(--stone);
  }

  .services-grid .service-cell:nth-child(2n) {
    border-right: none;
  }

  .services-grid .service-cell:nth-child(n+3) {
    border-top: 1px solid var(--stone);
  }

  .service-cell {
    padding: 24px 22px;
  }

  .process-section {
    min-height: 620px;
    padding-top: 72px;
    padding-bottom: 72px;
  }

  .process-grid {
    grid-template-columns: minmax(220px, 0.38fr) minmax(0, 0.62fr);
    gap: 26px;
    align-items: center;
  }

  .process-plant-wrapper {
    min-height: 373px;
  }

  .process-art-lock {
    width: 384px;
    height: auto;
    aspect-ratio: 564 / 548;
    flex-basis: auto;
  }

  .process-header {
    margin-bottom: 22px;
  }

  .process-step-row {
    padding: 16px 0;
    grid-template-columns: 40px 1fr;
  }

  .contact-section {
    min-height: 600px;
    padding-top: 72px;
    padding-bottom: 66px;
  }

  .contact-grid {
    grid-template-columns: minmax(0, 0.47fr) minmax(0, 0.53fr);
    gap: 20px;
    transform: none;
  }

  .contact-left {
    max-width: 340px;
  }

  .contact-title {
    font-size: clamp(38px, 5.2vw, 46px);
  }

  .contact-body {
    margin-bottom: 20px;
  }

  .demo-form {
    gap: 10px;
  }

  .form-input {
    height: 44px;
  }

  .form-textarea {
    min-height: 82px;
  }

  .contact-right {
    min-height: 340px;
    justify-content: center;
    position: relative;
  }

  .contact-depth-container {
    position: absolute;
    width: 600px;
    max-width: none;
    height: 480px;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%) scale(0.64);
    transform-origin: center;
  }
}

/* Phones: keep the editorial hierarchy and only decorations that fit cleanly. */
@media (max-width: 640px) {
  :root {
    --gutter-desktop: var(--gutter-mobile);
  }

  .hero-section {
    min-height: 620px;
    padding-top: calc(var(--nav-height-mobile) + 28px);
  }

  .hero-container {
    display: block;
    min-height: 520px;
  }

  .hero-copy {
    max-width: 100%;
    margin: 20px 0 0;
    transform: none;
  }

  .hero-title {
    font-size: clamp(46px, 13.5vw, 58px);
    line-height: 0.98;
  }

  .hero-body {
    margin-bottom: 20px;
  }

  .hero-meadow-wrapper {
    position: absolute;
    left: -10%;
    bottom: 0;
    width: 98%;
  }

  .hero-meadow-img {
    transform: translateY(12px);
  }

  .hero-dominant-wrapper {
    position: absolute;
    right: -12%;
    bottom: 0;
    width: 52%;
  }

  .hero-backdrop-circle {
    width: 250px;
    height: 250px;
    right: -28px;
    top: -4px;
  }

  .hero-dominant-img {
    max-width: 205px;
    transform: translateY(12px);
  }

  .philosophy-section {
    min-height: 575px;
    padding-top: 54px;
  }

  .philosophy-container {
    display: block;
    min-height: 520px;
  }

  .philosophy-copy {
    max-width: 100%;
    padding-top: 0;
  }

  .philosophy-title {
    font-size: clamp(40px, 11.5vw, 50px);
  }

  .philosophy-body {
    margin-bottom: 20px;
  }

  .philosophy-art-wrapper {
    position: absolute;
    width: 112%;
    right: -7%;
    bottom: 0;
  }

  .philosophy-backdrop-circle {
    width: 270px;
    height: 270px;
    right: -28px;
    top: -34px;
  }

  .philosophy-horizon-img {
    max-width: none;
  }

  .services-section {
    padding-top: 64px;
    padding-bottom: 72px;
  }

  .services-corner-branch-img {
    display: none;
  }

  .services-left-garden-img {
    display: block;
    width: 150px;
    left: -36px;
    bottom: -14px;
  }

  .services-header {
    display: block;
    padding-right: 0;
    margin-bottom: 24px;
  }

  .services-title {
    font-size: clamp(38px, 10.8vw, 47px);
  }

  .services-intro-desc {
    margin-top: 10px;
    max-width: 100%;
    padding-bottom: 0;
    font-size: 15px;
  }

  .services-grid {
    grid-template-columns: 1fr;
  }

  .services-grid .service-cell {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 12px;
    row-gap: 3px;
    padding: 16px 8px;
    border-right: none !important;
    border-top: 1px solid var(--stone);
  }

  .services-grid .service-cell:first-child {
    border-top: none;
  }

  .service-icon {
    grid-column: 1;
    grid-row: 1 / span 2;
    width: 24px;
    height: 24px;
    margin: 2px 0 0;
  }

  .service-title {
    grid-column: 2;
    grid-row: 1;
    font-size: 19px;
    margin-bottom: 0;
  }

  .service-desc {
    grid-column: 2;
    grid-row: 2;
    font-size: 13.5px;
    line-height: 1.45;
  }

  .process-section {
    min-height: 0;
    padding-top: 62px;
    padding-bottom: 54px;
  }

  .process-grid {
    display: flex;
    flex-direction: column;
    gap: 20px;
  }

  .process-content {
    order: 1;
  }

  .process-plant-wrapper {
    order: 2;
    min-height: 307px;
  }

  .process-art-lock {
    width: 316px;
    height: auto;
    aspect-ratio: 564 / 548;
    flex-basis: auto;
  }

  .process-title {
    font-size: clamp(40px, 11vw, 48px);
  }

  .process-header {
    margin-bottom: 22px;
  }

  .process-step-row {
    padding: 16px 0;
    grid-template-columns: 36px 1fr;
  }

  .step-title {
    font-size: 24px;
  }

  .step-text {
    font-size: 14px;
  }

  .contact-section {
    min-height: 0;
    padding-top: 64px;
    padding-bottom: 48px;
  }

  .contact-grid {
    grid-template-columns: 1fr;
    gap: 24px;
    transform: none;
  }

  .contact-left {
    max-width: 100%;
  }

  .contact-title {
    font-size: clamp(40px, 11.5vw, 50px);
  }

  .contact-body {
    margin-bottom: 20px;
  }

  .demo-form {
    gap: 10px;
  }

  .form-input {
    height: 44px;
  }

  .form-textarea {
    min-height: 82px;
  }

  .contact-right {
    height: 310px;
    justify-content: center;
    position: relative;
  }

  .contact-depth-container {
    position: absolute;
    width: 600px;
    max-width: none;
    height: 480px;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%) scale(0.60);
    transform-origin: center;
  }

  .footer-container {
    flex-direction: column;
    gap: 10px;
    text-align: center;
  }
}

/* MF-ANIM-01: progressive enhancement; static state is the default. */
html.motion-enabled { --motion-ease-organic: cubic-bezier(.22, .61, .36, 1); }

html.motion-enabled .hero-copy > *,
html.motion-enabled .philosophy-copy > *,
html.motion-enabled .services-header > *,
html.motion-enabled .service-cell {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 680ms var(--motion-ease-organic) var(--motion-delay, 0ms), transform 760ms var(--motion-ease-organic) var(--motion-delay, 0ms);
}
html.motion-enabled .hero-copy > :nth-child(1) { --motion-delay: 650ms; }
html.motion-enabled .hero-copy > :nth-child(2) { --motion-delay: 800ms; }
html.motion-enabled .hero-copy > :nth-child(3) { --motion-delay: 950ms; }
html.motion-enabled .hero-copy > :nth-child(4) { --motion-delay: 1550ms; }
html.motion-enabled .philosophy-copy > :nth-child(1), html.motion-enabled .services-header > :nth-child(1) { --motion-delay: 100ms; }
html.motion-enabled .philosophy-copy > :nth-child(2), html.motion-enabled .services-header > :nth-child(2) { --motion-delay: 210ms; }
html.motion-enabled .philosophy-copy > :nth-child(3), html.motion-enabled .services-header > :nth-child(3) { --motion-delay: 320ms; }
html.motion-enabled .philosophy-copy > :nth-child(4) { --motion-delay: 430ms; }
html.motion-enabled .service-cell:nth-child(1) { --motion-delay: 420ms; }
html.motion-enabled .service-cell:nth-child(2) { --motion-delay: 520ms; }
html.motion-enabled .service-cell:nth-child(3) { --motion-delay: 620ms; }
html.motion-enabled .service-cell:nth-child(4) { --motion-delay: 720ms; }
html.motion-enabled .service-cell:nth-child(5) { --motion-delay: 820ms; }
html.motion-enabled .service-cell:nth-child(6) { --motion-delay: 920ms; }

html.motion-enabled .hero-meadow-wrapper {
  opacity: 0;
  -webkit-clip-path: inset(100% 0 0 0);
  clip-path: inset(100% 0 0 0);
  transition: opacity 760ms var(--motion-ease-organic) 300ms, -webkit-clip-path 1150ms var(--motion-ease-organic) 300ms, clip-path 1150ms var(--motion-ease-organic) 300ms;
}
html.motion-enabled .hero-backdrop-circle {
  opacity: 0;
  transition: opacity 1050ms var(--motion-ease-organic) 100ms;
}
html.motion-enabled .hero-dominant-img {
  opacity: 0;
  transition: opacity 1150ms var(--motion-ease-organic) 500ms;
}
html.motion-enabled .philosophy-horizon-img {
  opacity: 0;
  -webkit-clip-path: inset(100% 0 0 0);
  clip-path: inset(100% 0 0 0);
  transition: opacity 760ms var(--motion-ease-organic) 260ms, -webkit-clip-path 1100ms var(--motion-ease-organic) 260ms, clip-path 1100ms var(--motion-ease-organic) 260ms;
}

html.motion-enabled .services-left-garden-img,
html.motion-enabled .services-corner-branch-img {
  transition: opacity 760ms var(--motion-ease-organic) var(--services-art-delay), -webkit-clip-path 900ms var(--motion-ease-organic) var(--services-art-delay), clip-path 900ms var(--motion-ease-organic) var(--services-art-delay);
}
html.motion-enabled .services-left-garden-img { opacity: 0; -webkit-clip-path: inset(100% 0 0 0); clip-path: inset(100% 0 0 0); --services-art-delay: 1120ms; }
html.motion-enabled .services-corner-branch-img { opacity: 0; -webkit-clip-path: inset(0 0 100% 100%); clip-path: inset(0 0 100% 100%); --services-art-delay: 1220ms; }

html.motion-enabled .is-motion-revealed .hero-copy > *,
html.motion-enabled .is-motion-revealed .philosophy-copy > *,
html.motion-enabled .is-motion-revealed .services-header > *,
html.motion-enabled .is-motion-revealed .service-cell { opacity: 1; transform: translateY(0); }
html.motion-enabled .is-motion-revealed .hero-meadow-wrapper { opacity: 1; -webkit-clip-path: inset(0); clip-path: inset(0); }
html.motion-enabled .is-motion-revealed .hero-backdrop-circle,
html.motion-enabled .is-motion-revealed .hero-dominant-img { opacity: 1; }
html.motion-enabled .is-motion-revealed .philosophy-horizon-img { opacity: 1; -webkit-clip-path: inset(0); clip-path: inset(0); }

@keyframes mf-hero-rise-fade {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes mf-hero-circle-form {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes mf-hero-meadow-grow {
  from { opacity: 0; -webkit-clip-path: inset(100% 0 0 0); clip-path: inset(100% 0 0 0); }
  to { opacity: 1; -webkit-clip-path: inset(0); clip-path: inset(0); }
}
html.motion-enabled #hero[data-motion-state="revealing"] .hero-backdrop-circle {
  animation: mf-hero-circle-form 1050ms var(--motion-ease-organic) 100ms both;
}
html.motion-enabled #hero[data-motion-state="revealing"] .hero-meadow-wrapper {
  animation: mf-hero-meadow-grow 1150ms var(--motion-ease-organic) 300ms both;
}
html.motion-enabled #hero[data-motion-state="revealing"] .hero-dominant-img {
  animation: mf-hero-circle-form 1150ms var(--motion-ease-organic) 500ms both;
}
html.motion-enabled #hero[data-motion-state="revealing"] .hero-copy > :nth-child(1) {
  animation: mf-hero-rise-fade 700ms var(--motion-ease-organic) 650ms both;
}
html.motion-enabled #hero[data-motion-state="revealing"] .hero-copy > :nth-child(2) {
  animation: mf-hero-rise-fade 760ms var(--motion-ease-organic) 800ms both;
}
html.motion-enabled #hero[data-motion-state="revealing"] .hero-copy > :nth-child(3) {
  animation: mf-hero-rise-fade 800ms var(--motion-ease-organic) 950ms both;
}
html.motion-enabled #hero[data-motion-state="revealing"] .hero-cta {
  animation: mf-hero-rise-fade 750ms var(--motion-ease-organic) 1550ms both;
}
html.motion-enabled .is-motion-revealed .services-left-garden-img,
html.motion-enabled .is-motion-revealed .services-corner-branch-img { opacity: 1; -webkit-clip-path: inset(0); clip-path: inset(0); }

/* MF-ANIM-02: Process growth and restrained Contact finale. */
html.motion-enabled .process-header > *,
html.motion-enabled .process-step-row,
html.motion-enabled .contact-left > .contact-eyebrow,
html.motion-enabled .contact-left > .contact-title,
html.motion-enabled .contact-left > .contact-body,
html.motion-enabled .contact-left > .demo-form {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 680ms var(--motion-ease-organic) var(--motion-delay, 0ms), transform 760ms var(--motion-ease-organic) var(--motion-delay, 0ms);
}
html.motion-enabled .process-header > :nth-child(1) { --motion-delay: 80ms; }
html.motion-enabled .process-header > :nth-child(2) { --motion-delay: 180ms; }
html.motion-enabled .process-header > :nth-child(3) { --motion-delay: 280ms; }
html.motion-enabled .process-step-row:nth-child(1) { --motion-delay: 650ms; }
html.motion-enabled .process-step-row:nth-child(2) { --motion-delay: 760ms; }
html.motion-enabled .process-step-row:nth-child(3) { --motion-delay: 870ms; }
html.motion-enabled .process-step-row:nth-child(4) { --motion-delay: 980ms; }
html.motion-enabled .contact-left > .contact-eyebrow { --motion-delay: 420ms; }
html.motion-enabled .contact-left > .contact-title { --motion-delay: 520ms; }
html.motion-enabled .contact-left > .contact-body { --motion-delay: 620ms; }
html.motion-enabled .contact-left > .demo-form { --motion-delay: 720ms; }

html.motion-enabled .process-backdrop-circle {
  opacity: 0;
  transition: opacity 760ms var(--motion-ease-organic) 420ms;
}
html.motion-enabled .process-spine-img {
  opacity: 0;
  -webkit-clip-path: polygon(0 100%, 100% 100%, 100% 100%, 58% 100%, 56% 100%, 54% 100%, 52% 100%, 50% 100%, 48% 100%, 46% 100%, 44% 100%, 42% 100%, 0 100%);
  clip-path: polygon(0 100%, 100% 100%, 100% 100%, 58% 100%, 56% 100%, 54% 100%, 52% 100%, 50% 100%, 48% 100%, 46% 100%, 44% 100%, 42% 100%, 0 100%);
  transition: opacity 760ms var(--motion-ease-organic) 480ms, -webkit-clip-path 1280ms var(--motion-ease-organic) 480ms, clip-path 1280ms var(--motion-ease-organic) 480ms;
}

html.motion-enabled .contact-bg-img,
html.motion-enabled .contact-fg-img {
  opacity: 0;
  -webkit-clip-path: inset(100% 0 0 0);
  clip-path: inset(100% 0 0 0);
  transition: opacity 760ms var(--motion-ease-organic) var(--contact-art-delay), -webkit-clip-path 1180ms var(--motion-ease-organic) var(--contact-art-delay), clip-path 1180ms var(--motion-ease-organic) var(--contact-art-delay);
}
html.motion-enabled .contact-bg-img { --contact-art-delay: 80ms; }
html.motion-enabled .contact-fg-img { --contact-art-delay: 1120ms; }
html.motion-enabled .business-card-upgraded {
  opacity: 0;
  transition: opacity 820ms var(--motion-ease-organic) 920ms;
}

html.motion-enabled .is-motion-revealed .process-header > *,
html.motion-enabled .is-motion-revealed .process-step-row,
html.motion-enabled .is-motion-revealed .contact-left > .contact-eyebrow,
html.motion-enabled .is-motion-revealed .contact-left > .contact-title,
html.motion-enabled .is-motion-revealed .contact-left > .contact-body,
html.motion-enabled .is-motion-revealed .contact-left > .demo-form { opacity: 1; transform: translateY(0); }
html.motion-enabled .is-motion-revealed .process-backdrop-circle,
html.motion-enabled .is-motion-revealed .business-card-upgraded { opacity: 1; }
html.motion-enabled .is-motion-revealed .process-spine-img {
  opacity: 1;
  -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 58% 100%, 56% 99%, 54% 98%, 52% 97%, 50% 96%, 48% 97%, 46% 98%, 44% 99%, 42% 100%, 0 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 58% 100%, 56% 99%, 54% 98%, 52% 97%, 50% 96%, 48% 97%, 46% 98%, 44% 99%, 42% 100%, 0 100%);
}
html.motion-enabled .is-motion-revealed .contact-bg-img,
html.motion-enabled .is-motion-revealed .contact-fg-img { opacity: 1; -webkit-clip-path: inset(0); clip-path: inset(0); }

/* MF-ANIM-03: restrained, functional micro-interactions. */
.nav-brand {
  transition: color 300ms cubic-bezier(.22, .61, .36, 1), opacity 180ms cubic-bezier(.22, .61, .36, 1);
}

.nav-brand:hover { opacity: 0.82; }
.nav-brand:active { opacity: 0.64; }

.nav-link { position: relative; }

.nav-link::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -6px;
  left: 0;
  height: 1px;
  background-color: currentColor;
  opacity: 0.72;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform 220ms cubic-bezier(.22, .61, .36, 1);
}

.nav-link:hover::after,
.nav-link:focus-visible::after {
  transform: scaleX(1);
  transform-origin: left center;
}

.nav-link:active { opacity: 0.58; }

.mobile-nav-toggle {
  transition: color 200ms cubic-bezier(.22, .61, .36, 1), opacity 160ms cubic-bezier(.22, .61, .36, 1);
}

.mobile-nav-toggle:hover { opacity: 0.78; }
.mobile-nav-toggle:active { opacity: 0.58; }

.mobile-drawer-link {
  transition: color 200ms cubic-bezier(.22, .61, .36, 1), opacity 160ms cubic-bezier(.22, .61, .36, 1);
}

.mobile-drawer-link:focus-visible { color: var(--blush); }
.mobile-drawer-link:active { opacity: 0.62; }

.hero-cta {
  transition: color 200ms cubic-bezier(.22, .61, .36, 1), opacity 180ms cubic-bezier(.22, .61, .36, 1), border-color 200ms cubic-bezier(.22, .61, .36, 1);
}

html[data-motion-mode]:not([data-motion-mode="animated"]) .hero-cta {
  transition: color 200ms cubic-bezier(.22, .61, .36, 1), border-color 200ms cubic-bezier(.22, .61, .36, 1);
}

.hero-cta:focus-visible { border-color: var(--blush); }
.hero-cta:active { opacity: 0.62; }

.form-input,
.form-textarea {
  transition: border-color 200ms cubic-bezier(.22, .61, .36, 1), background-color 200ms cubic-bezier(.22, .61, .36, 1);
}

.form-input::placeholder,
.form-textarea::placeholder {
  transition: color 200ms cubic-bezier(.22, .61, .36, 1);
}

.form-input:hover,
.form-textarea:hover { border-color: rgba(243, 239, 229, 0.66); }

.form-input:focus,
.form-textarea:focus { background-color: rgba(243, 239, 229, 0.045); }

.form-input:focus::placeholder,
.form-textarea:focus::placeholder { color: rgba(243, 239, 229, 0.68); }

.form-input:focus-visible,
.form-textarea:focus-visible {
  outline: 2px solid var(--clay);
  outline-offset: 3px;
}

.form-submit-btn {
  transition: background-color 200ms cubic-bezier(.22, .61, .36, 1), opacity 160ms cubic-bezier(.22, .61, .36, 1);
}

.form-submit-btn:focus-visible { background-color: #a36548; }
.form-submit-btn:active { opacity: 0.76; }

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
