/* Focused layout variations within the existing pastel visual system. */
.contact-page .contact-grid { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); grid-template-areas: "intro form" "tips form"; gap: 1.5rem clamp(2rem, 5vw, 4.5rem); }
.contact-page .contact-copy { grid-area: intro; padding-top: 0; }
.contact-page .contact-copy h1 { max-width: 12ch; margin-bottom: 1.25rem; }
.contact-page .contact-copy p:not(.eyebrow) { font-size: 1rem; line-height: 1.65; margin-top: 1rem; color: #e1e8ee; }
.contact-page .contact-copy .company-email { display: block; width: fit-content; margin-top: 0.375rem; font-weight: 700; }
.contact-page .contact-form { grid-area: form; padding: clamp(1.5rem, 3vw, 2.25rem); box-shadow: 0 1.25rem 3.125rem -1.5rem #0008; border-top: 0.1875rem solid var(--violet); }
.contact-page .contact-form label { margin-bottom: 1.125rem; }
.contact-page .contact-form label small { font-size: .8rem; font-weight: 500; text-transform: none; letter-spacing: normal; }
.contact-page .form-status:empty { margin: 0; }
.contact-tips { grid-area: tips; padding: 1.375rem 1.5rem; border-radius: 1.375rem; background: #1b3345; border: 1px solid #506577; }
.contact-tips .eyebrow { margin: 0 0 1rem; font-size: .72rem; }
.contact-tips > div + div { border-top: 1px solid #506577; margin-top: 0.875rem; padding-top: 0.875rem; }
.contact-tips h2 { font-family: inherit; font-weight: 700; font-size: 1rem; line-height: 1.4; margin: 0 0 0.375rem; letter-spacing: normal; }
.contact-tips p:not(.eyebrow) { color: #e1e8ee; font-size: .92rem; line-height: 1.6; margin: 0; }
.contact-tips .contact-privacy { margin-top: 1rem !important; color: #bdcbd6 !important; font-size: .85rem !important; }
#consultation-form.contact-page .contact-form { border-top-color: var(--violet); }
@media (max-width: 980px) {
  .contact-page .contact-grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "intro" "form" "tips"; }
  .contact-page .contact-copy h1 { max-width: none; }
  .contact-page .contact-tips { padding: 1.25rem; }
}
.approach-photo { margin: 1.75rem 0 0; }
.approach-photo img { display: block; width: 100%; aspect-ratio: 5 / 3; object-fit: cover; border-radius: 1.5rem; }
.approach-photo figcaption { margin-top: 0.625rem; color: var(--ink-soft); font-size: .85rem; line-height: 1.6; }
.approach-photo-calm { max-width: 47.5rem; margin: 2.25rem auto 0; }
.approach-photo-calm figcaption { color: #ddd4e8; }
main > .contact:first-child { padding-top: calc(var(--header-height, 6.5rem) + 2.25rem); padding-bottom: 2.5rem; }
.contact-copy h1 { font-size: clamp(2.2rem, 4vw, 3.5rem); line-height: 1.1; text-wrap: balance; }
@media (max-width: 980px) {
  main > .contact:first-child .contact-grid { gap: 1.75rem; }
  main > .contact:first-child { padding-top: calc(var(--header-height, 6.5rem) + 1.5rem); }
}
.planning-layout,
.editorial-feature-grid,
.compact-editorial-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: clamp(2.25rem, 5vw, 4.75rem);
  align-items: center;
}

:is(.planning-intro, .editorial-feature-copy, .compact-editorial-grid) h2,
.comparison-heading h2 {
  max-width: 18ch;
  font-size: clamp(2.35rem, 4.2vw, 3.9rem);
  line-height: 1.1;
  text-wrap: balance;
}

:is(.planning-intro, .editorial-feature-copy, .compact-editorial-grid) p:not(.eyebrow),
.comparison-heading > p:not(.eyebrow) {
  margin-top: 1.5rem;
  color: var(--ink-soft);
  font-size: 1.04rem;
  line-height: 1.8;
}

.planning-intro .text-link,
.editorial-feature-copy .text-link,
.editorial-aside .text-link { margin-top: 1.75rem; }

.planning-list {
  list-style: none;
  margin: 0;
  padding: 0.75rem 2.125rem;
  border: 1px solid rgba(16, 38, 56, 0.08);
  border-radius: 1.875rem;
  background: rgba(255, 253, 249, 0.85);
  box-shadow: 0 1rem 2.75rem -1.75rem rgba(16, 38, 56, 0.2);
}

.planning-list li {
  display: grid;
  grid-template-columns: 2.75rem minmax(0, 1fr);
  gap: 1.375rem;
  padding: 1.75rem 0;
}
.planning-list li + li { border-top: 1px solid var(--line); }
.planning-list li > span {
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  color: var(--teal-dark);
  background: var(--green-soft);
  font-size: 0.78rem;
  font-weight: 800;
}
.planning-list li:nth-child(2) > span { color: var(--violet-deep); background: var(--violet-soft); }
.planning-list li:nth-child(3) > span { color: var(--orange-deep); background: var(--orange-soft); }
.planning-list h3 { margin: 0 0 0.625rem; font-size: 1.5rem; line-height: 1.2; }
.planning-list p { margin: 0; color: var(--ink-soft); line-height: 1.75; }
.practice-section .planning-list { padding: 0; background: transparent; border: 0; box-shadow: none; }

.editorial-feature-grid { grid-template-columns: minmax(0, 1.04fr) minmax(0, 0.96fr); }
.editorial-feature-photo { margin: 0; overflow: hidden; border-radius: 1.875rem; background: var(--paper); }
.editorial-feature-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.editorial-feature-photo figcaption { padding: 1.1875rem 1.5rem; color: var(--ink-soft); font-size: 0.84rem; }
.editorial-facts { margin: 1.625rem 0 0; }
.editorial-facts > div { padding: 1.125rem 0; border-top: 1px solid var(--line); }
.editorial-facts dt { color: var(--ink); font-weight: 800; }
.editorial-facts dd { margin: 0.4375rem 0 0; color: var(--ink-soft); line-height: 1.7; }

.compact-editorial { padding-block: clamp(4rem, 7vw, 6.5rem); }
.compact-editorial-grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); }
.editorial-aside {
  padding: clamp(1.625rem, 3vw, 2.625rem);
  border: 1px solid rgba(16, 38, 56, 0.08);
  border-radius: 1.75rem;
  background: linear-gradient(135deg, var(--green-soft), var(--violet-soft));
}
.editorial-aside h3 { margin: 0; font-size: 1.65rem; line-height: 1.2; text-wrap: balance; }
.editorial-aside p:not(.eyebrow) { margin: 1.125rem 0 0; color: var(--ink-soft); line-height: 1.75; }

.comparison-heading { max-width: 53.125rem; margin: 0 auto 2.875rem; text-align: center; }
.comparison-heading .eyebrow { justify-content: center; }
.comparison-heading h2 { max-width: 24ch; margin-inline: auto; }
.comparison-heading > p:not(.eyebrow) { max-width: 43.75rem; margin-inline: auto; }
.equipment-comparison {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 2.25rem;
  margin: 0;
  padding: 1rem 2.25rem;
  border: 1px solid rgba(16, 38, 56, 0.08);
  border-radius: 1.875rem;
  background: rgba(255, 253, 249, 0.88);
}
.equipment-comparison > div { padding: 1.5625rem 0; border-bottom: 1px solid var(--line); }
.equipment-comparison > div:nth-last-child(-n + 2) { border-bottom: 0; }
.equipment-comparison dt { color: var(--ink); font-size: 1.15rem; font-weight: 800; }
.equipment-comparison dd { margin: 0.625rem 0 0; color: var(--ink-soft); line-height: 1.75; }
.editorial-footnote { max-width: 43.75rem; margin: 1.5rem auto 0; color: var(--ink-soft); font-size: 0.86rem; text-align: center; }
.inquiry-guide-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.inquiry-guide-grid .editorial-aside:first-child { background: linear-gradient(135deg, var(--green-soft), var(--teal-soft)); }
.inquiry-guide-grid .editorial-aside .eyebrow { margin-bottom: 1.25rem; }

/* Small background accents stay independent of the quiet dividers. */
.has-ambient-shapes { position: relative; isolation: isolate; }
.ambient-shapes {
  position: absolute;
  inset: 4rem 1.125rem;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
}
.ambient-shape {
  position: absolute;
  left: var(--shape-x);
  top: var(--shape-y);
  display: block;
  width: 0.8125rem;
  height: 0.8125rem;
  background: var(--shape-color);
  opacity: 0.48;
  animation: ambient-drift var(--shape-duration) ease-in-out var(--shape-delay) infinite alternate;
  animation-play-state: paused;
}
.ambient-active > .ambient-shapes > .ambient-shape { animation-play-state: running; }
.ambient-shape[hidden] { display: none; }
.ambient-dot { width: 0.625rem; height: 0.625rem; border-radius: 50%; }
.ambient-bar { width: 1.8125rem; height: 0.375rem; border-radius: 62.4375rem; }
.ambient-square { border-radius: 2px; }
.ambient-triangle { width: 1.0625rem; height: 1rem; clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.ambient-hexagon { width: 1.0625rem; height: 1rem; clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%); }
@keyframes ambient-drift {
  from { transform: translate3d(-0.4375rem, 0.625rem, 0) rotate(-12deg); }
  to { transform: translate3d(0.625rem, -0.875rem, 0) rotate(14deg); }
}
@media (max-width: 700px) {
  .ambient-shapes { inset: 3.5rem 0.5rem; }
  .ambient-shape { opacity: 0.32; scale: 0.8; }
}
@media (prefers-reduced-motion: reduce) {
  .ambient-shape { animation: none; }
}
.section-bridge::before,
.equipment::after,
.story-section::after,
.flow-transition::before,
.flow-transition::after {
  animation: none !important;
  transform: none;
  will-change: auto;
}
/* Consistent alignment and readable photograph labels. */
.intro-copy { margin-inline: auto; text-align: center; }
.intro-copy .eyebrow { justify-content: center; }
.intro-copy h2, .intro-copy .large-copy { margin-inline: auto; }
.review-grid { align-items: stretch; grid-auto-rows: 1fr; }
.review-grid .review-card { margin-top: 0; height: 100%; }
.first-visit-feature .eyebrow-light {
  width: fit-content;
  padding: 0.625rem 1rem;
  color: #fff;
  background: #102638;
  border-radius: 62.4375rem;
}
.first-visit-feature .eyebrow-light span { background: var(--yellow); }
.inner-hero.work-hero::before {
  top: 2.75rem;
  right: 1.5rem;
  width: clamp(13.75rem, 30vw, 26.875rem);
}
@media (max-width: 980px) {
  .inner-hero.work-hero::before { top: 2rem; right: 1.25rem; width: 13.75rem; }
}
.eyebrow > span { background: #f55f18; }
.nav-dropdown-menu a + a { margin-top: 0.375rem; }
body:has(.service-hero) a.text-link[href="contact.html"] {
  padding: 0.875rem 1.375rem;
  border: 0;
  border-radius: 62.4375rem;
  background: var(--violet);
  color: var(--ink);
  text-decoration: none;
  transition: background 180ms ease, box-shadow 180ms ease;
}
body:has(.service-hero) a.text-link[href="contact.html"]:hover {
  background: var(--yellow);
  box-shadow: 0 0.5rem 1.25rem rgba(16, 38, 56, 0.1);
}
body:has(.service-hero) a.text-link[href="contact.html"]:focus-visible {
  outline: 0.1875rem solid var(--violet-deep);
  outline-offset: 0.25rem;
}
/* Height-aware desktop composition: keep the action row inside the viewport. */
@media (min-width: 981px) {
  .inner-hero, .inner-hero.approach-hero {
    min-height: 100svh;
    padding: calc(var(--header-height, 6.5rem) + clamp(1rem, 3vh, 2.5rem)) 0 clamp(1rem, 3vh, 2.5rem);
  }
  .inner-hero .inner-hero-copy h1 { font-size: clamp(2rem, min(5.2vw, 7.7vh), 4.85rem); }
  .inner-hero .inner-hero-copy > p:not(.eyebrow) { margin-top: clamp(0.75rem, 2vh, 1.5rem); font-size: clamp(.92rem, 1.8vh, 1.06rem); line-height: 1.6; }
  .inner-hero-actions { margin-top: clamp(0.875rem, 2.5vh, 1.875rem); gap: 1.125rem; flex-wrap: wrap; }
  .inner-hero .inner-hero-visual { max-height: calc(100svh - var(--header-height, 6.5rem) - 4rem); }
  .hero { min-height: 100svh; height: auto; }
  .hero-inner { min-height: 100svh; padding-block: calc(var(--header-height, 6.5rem) + 1.25rem) 2rem; }
  .hero-copy h1 { font-size: clamp(2.3rem, min(6vw, 9vh), 6rem); }
  .hero-copy > p:not(.eyebrow) { font-size: clamp(1rem, 2vh, 1.2rem); margin-top: 1.125rem; }
  .equipment-explorer { height: calc(100svh - var(--header-height, 6.5rem) - 2rem); min-height: 26.25rem; scroll-margin-top: calc(var(--header-height, 6.5rem) + 1rem); }
  .equipment-stage { top: 0; transform: translateX(-50%); height: 100%; width: 52%; padding-top: 1.875rem; }
  .equipment-main-image { width: 100%; height: calc(100% - 12.5rem); min-height: 11.25rem; margin-top: 0; }
  .equipment-info { margin: 0; padding: 0.5rem 0.75rem 0; }
  .equipment-info h3 { font-size: clamp(1.7rem, 4.5vh, 3rem); }
  .equipment-info > p:last-child { margin-top: 0.625rem; font-size: .95rem; }
  .equipment-count { top: 0.25rem; }
  .equipment-arrows { top: 1.5rem; }
  .equipment-choice span { width: clamp(4rem, 12vh, 6.875rem); height: clamp(4rem, 12vh, 6.875rem); }
  .equipment-orbit, .equipment-glow { max-height: 90%; }
}
@media (min-width: 981px) and (max-height: 700px) {
  .inner-hero .inner-hero-copy h1 { font-size: clamp(1.9rem, 6.4vh, 2.8rem); max-width: 18ch; }
  .inner-hero .inner-hero-grid { gap: 2rem; }
  .inner-hero .inner-hero-copy > p:not(.eyebrow) { line-height: 1.5; }
  .inner-hero-actions .button, .inner-hero-actions .text-link { padding: 0.75rem 1.125rem; font-size: .85rem; }
}
.equipment-comparison { padding: 0; gap: 1.125rem; border: 0; background: none; }
.equipment-comparison > div { padding: 1.625rem; border: 1px solid rgba(16,38,56,.08); border-radius: 1.375rem; background: var(--teal-soft); }
.equipment-comparison > div:nth-child(3n + 2) { background: var(--violet-soft); }
.equipment-comparison > div:nth-child(3n) { background: #fff1b5; }
.site-footer { padding-bottom: max(1.5rem, env(safe-area-inset-bottom)); }
.site-footer::before { display: none; }
@media (max-width: 600px) {
  .footer-bottom { align-items: flex-start; text-align: left; }
}

/* Solid surfaces keep the contact fields readable over decorative shapes. */
#consultation-form .contact-form { background: #233c50; border-color: #7890a3; backdrop-filter: none; }
#consultation-form .contact-form label > span { color: #fff; font-size: .85rem; }
#consultation-form .contact-form :is(input, select, textarea) { background: #324d63; color: #fff; border-color: #a5b6c4; font-size: 1rem; }
#consultation-form .contact-form :is(input, textarea)::placeholder { color: #e1e8ee; opacity: 1; }
#consultation-form .contact-form select option { background: #324d63; color: #fff; }
#consultation-form .contact-form :is(input, select, textarea):focus-visible { outline: 0.1875rem solid #ffe589; outline-offset: 0.1875rem; }
#consultation-form :is(.form-note, .form-status) { color: #e1e8ee; font-size: .9rem; }
.faq-list details[data-faq-closing] summary span::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

html[data-motion="paused"],
html[data-motion="paused"] *,
html[data-motion="paused"] *::before,
html[data-motion="paused"] *::after {
  animation-play-state: paused !important;
  transition: none !important;
  scroll-behavior: auto !important;
}
html[data-motion="paused"] .reveal { opacity: 1 !important; transform: none !important; }
html[data-motion="paused"] .equipment-explorer.is-changing .equipment-main-image { opacity: 1; transform: none; }

@media (max-width: 980px) {
  .planning-layout, .editorial-feature-grid, .compact-editorial-grid { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .planning-intro, .editorial-feature-copy, .compact-editorial-grid > div { max-width: 46.25rem; }
  .editorial-feature-photo img { aspect-ratio: 16 / 9; }
  .editorial-feature-photo { max-width: 46.25rem; }
}

@media (max-width: 700px) {
  .planning-list { padding: 0.25rem 1.375rem; border-radius: 1.5rem; }
  .planning-list li { grid-template-columns: 2.125rem minmax(0, 1fr); gap: 1rem; padding-block: 1.5rem; }
  .planning-list li > span { width: 2.125rem; height: 2.125rem; }
  .planning-list h3 { font-size: 1.3rem; }
  .equipment-comparison { grid-template-columns: minmax(0, 1fr); padding: 0.25rem 1.5rem; border-radius: 1.5rem; }
  .equipment-comparison > div:nth-last-child(2) { border-bottom: 1px solid var(--line); }
  .inquiry-guide-grid { grid-template-columns: minmax(0, 1fr); }
  .editorial-feature-photo img { aspect-ratio: 4 / 3; }
}
