/* Arch Design leads the page; the original five family modules remain below it. */
.services-page .header .brand-type { filter: none; }
.services-core { padding-top: 62px; padding-bottom: 80px; }
.services-core .services-label { font: inherit; letter-spacing: 0; margin: 0; }
.services-core .eyebrow { margin-bottom: 36px; }
.services-core .core-family-card { border-bottom: 1px solid var(--line); padding-bottom: 30px; }
.services-core .core-family-card > summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: clamp(32px, 5vw, 80px);
  align-items: center;
}
.services-core .core-family-card .family-image { aspect-ratio: 1.25; }
.services-core .core-family-card .family-image img { object-position: center 74%; }
.services-core .core-family-card .family-name { padding-top: 0; }
.services-core .core-family-card .family-prefix { color: #67675f; margin-bottom: 18px; font-size: 12px; }
.services-core .core-family-card .family-title {
  display: block;
  color: var(--black);
  font-size: clamp(60px, 7.4vw, 118px);
  white-space: nowrap;
  line-height: 1.04;
}
.services-core #arch-service-title > em { font-style: italic; font-weight: 400; color: #756b4a; }
.core-family-phrase {
  display: block;
  max-width: 520px;
  margin-top: 25px;
  font: 400 clamp(27px, 3vw, 43px)/1.15 var(--serif);
  letter-spacing: -.035em;
  text-wrap: balance;
}
.services-core .family-kind { color: #67675f; min-height: 0; margin-top: 22px; }
.services-core .family-action { color: var(--black); border-color: var(--line); margin-top: 22px; }
.services-core .family-action .plus { color: var(--black); }
.services-core .core-family-description { padding-top: 32px; max-width: 900px; }
.services-core .core-family-description p { color: #4a4a44; font-size: 16px; margin-bottom: 18px; }
.services-core .core-family-description p:last-of-type { margin-bottom: 0; }
.services-core .core-family-description .text-link { color: var(--black); }
.services-core .core-family-description .text-link .plus { color: var(--yellow); }
.family-section .composition-heading { display: block; }
.family-section .composition-heading .eyebrow { margin-bottom: 30px; }
.complementary-intro { display: grid; grid-template-columns: 1.1fr 1fr; gap: 8vw; align-items: start; }
.complementary-intro h2 { font-size: clamp(38px, 4.6vw, 70px); text-wrap: balance; }
.complementary-intro p { color: #bfc2b5; font-size: 16px; }
.complementary-intro p + p { margin-top: 18px; }
.family-watermark {
  display: grid;
  place-items: center;
  min-width: 0;
  aspect-ratio: 1.2;
  pointer-events: none;
  align-self: start;
}
.family-watermark svg { display: block; width: 78%; height: auto; }
.family-watermark-h { color: #fff; opacity: .055; }
.family-watermark-plus { color: var(--yellow); opacity: .13; }

/* Native details stay open during their closing transition. Visual state follows intent. */
.family-card.service-enhanced .family-description { animation: none; }
.service-motion { display: flow-root; }
.family-card.service-enhanced[data-expanded="false"] .service-motion { opacity: 0; }
.family-card.service-enhanced[data-expanded="true"] .service-motion { opacity: 1; }
.family-card.service-enhanced[data-expanded="false"] .family-image img { filter: saturate(.18); transform: scale(1.01); }
.family-card.service-enhanced[data-expanded="true"] .family-image img { filter: saturate(1); transform: scale(1.045); }
.family-card.service-enhanced[data-expanded="false"] .frame-corner { opacity: 0; }
.family-card.service-enhanced[data-expanded="false"] .image-grid { opacity: 0; }
.family-card.service-enhanced[data-expanded="false"] .family-title { color: inherit; }
.family-card.service-enhanced .family-action .plus::after {
  display: block;
  transform: scaleY(1);
  opacity: 1;
  transition: transform .5s cubic-bezier(.4, 0, .2, 1), opacity .45s ease;
}
.family-card.service-enhanced[data-expanded="true"] .family-action .plus::after { transform: scaleY(0); opacity: 0; }

/* One continuous band: the core leads; five quieter orbits share a single row. */
.route-section { --route-paper: #f3f2ed; }
.route-heading .route-plus { display: none; }
.route-discovery {
  --route-closed-height: clamp(220px, 23vw, 340px);
  --route-core-width: clamp(156px, 18vw, 260px);
  --route-gap: clamp(20px, 2.8vw, 48px);
  display: grid;
  grid-template-columns: var(--route-core-width) minmax(0, 1fr);
  gap: var(--route-gap);
  align-items: center;
  position: relative;
  isolation: isolate;
  margin: 64px calc(-1 * var(--pad)) 0;
  padding: 36px var(--pad);
  border-block: 1px solid #11120f20;
  overflow: clip;
}
.route-discovery::before {
  content: '';
  position: absolute;
  top: 50%;
  left: calc(var(--pad) + var(--route-core-width));
  width: var(--route-gap);
  height: 1px;
  background: var(--yellow);
  pointer-events: none;
  opacity: 1;
  transition: opacity .25s ease;
}
.route-discovery[data-revealed="true"]::before { opacity: 0; }
.route-connections { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.route-connection {
  position: absolute;
  display: block;
  background: var(--yellow);
  transform-origin: top left;
  transform: scaleX(0);
}
.route-discovery .route-node {
  width: 100%;
  min-width: 0;
  border: 0;
  border-radius: 0;
  aspect-ratio: auto;
  padding: 0;
  gap: 0;
  background: transparent;
  transform: none;
  justify-content: flex-start;
}
.route-discovery .route-node:focus-visible { background: transparent; outline: 0; }
.route-orbit {
  width: 100%;
  aspect-ratio: 1;
  border: 1px solid #11120f3d;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--route-paper);
  transition: border-color .5s ease, box-shadow .5s ease;
}
.route-orbit-copy {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, 1.1vw, 16px);
  width: 70%;
}
.route-discovery .route-node strong {
  position: relative;
  display: block;
  max-width: 100%;
  font: 400 clamp(17px, 1.7vw, 28px)/1.08 var(--serif);
  letter-spacing: -.035em;
  text-wrap: balance;
}
.route-node strong::after {
  content: '';
  position: absolute;
  width: 22px;
  height: 2px;
  left: calc(50% - 11px);
  bottom: -8px;
  background: var(--yellow);
  opacity: 1;
}
.route-discovery .route-caption {
  max-width: 100%;
  padding: 0;
  font-size: clamp(10.5px, .85vw, 12px);
  line-height: 1.4;
  color: #55564e;
  text-wrap: balance;
}
.route-core { min-width: 0; position: relative; z-index: 3; }
.route-core .route-orbit { border-color: #11120f85; }
.route-core .route-node strong { font-size: clamp(30px, 3.2vw, 50px); }
.route-core .route-orbit-copy { gap: 18px; }
.route-core .route-caption { font-size: 13px; }
.route-stage { position: relative; min-width: 0; z-index: 1; }
.route-complements {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-items: center;
  gap: clamp(12px, 1.8vw, 30px);
  padding: 36px 0;
  min-height: var(--route-closed-height);
  min-width: 0;
}
.route-complements .route-node { max-width: 200px; justify-self: center; }
.route-discovery .route-node[aria-current="true"] { background: transparent; }
.route-node[aria-current="true"] .route-orbit { border-color: var(--black); box-shadow: inset 0 0 0 .4px var(--black); }
.route-node:focus-visible .route-orbit { outline: 2px solid var(--black); outline-offset: -6px; }
.route-discovery.is-enhanced .route-stage { min-height: var(--route-closed-height); height: var(--route-closed-height); }
.route-discovery.is-enhanced .route-complements .route-node {
  opacity: 0;
  transform: none;
  transition: none;
}
.route-curtain {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--route-closed-height);
  display: flex;
  align-items: center;
  text-align: left;
  padding: 24px 64px 24px 0;
  color: var(--black);
  background: transparent;
  border: 0;
  isolation: isolate;
  z-index: 1;
}
.curtain-copy { display: flex; align-items: center; gap: clamp(20px, 3vw, 52px); width: 100%; background: var(--route-paper); padding-block: 12px; }
.curtain-title { display: block; max-width: 12em; font: italic 400 clamp(30px, 4.2vw, 66px)/1.06 var(--serif); letter-spacing: -.055em; text-wrap: balance; }
.curtain-arrow { width: clamp(35px, 4.5vw, 64px); height: 24px; flex-shrink: 0; }
.route-reveal-toggle {
  position: absolute;
  top: calc(var(--route-closed-height) / 2 - 22px);
  right: 0;
  z-index: 2;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  color: var(--black);
  background: transparent;
  transition: top .9s cubic-bezier(.4, 0, .2, 1);
}
.route-reveal-toggle .plus { width: 25px; height: 25px; }
.route-reveal-toggle:focus-visible { outline-color: var(--black); outline-offset: -2px; }
.route-discovery[data-revealed="true"] .route-reveal-toggle { top: 0; }
.route-reveal-toggle[aria-expanded="true"] .plus { --plus-angle: 45deg; }
.route-discovery:not(.is-enhanced) .route-curtain,
.route-reveal-toggle[hidden], .route-curtain[hidden] { display: none; }
.services-page .visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
@media (max-width: 1100px) {
  .complementary-intro { gap: 45px; }
}
@media (hover: hover) and (pointer: fine) {
  .route-discovery .route-node:hover { background: transparent; border-color: transparent; transform: none; }
  .route-discovery .route-node:hover .route-orbit { border-color: var(--black); }
  .curtain-arrow { transition: transform .6s cubic-bezier(.4, 0, .2, 1); }
}
@media (min-width: 1024px) and (hover: hover) and (pointer: fine) {
  .route-curtain:hover .curtain-arrow { transform: translateX(5px); }
}
@media (max-width: 1023px) {
  .route-discovery {
    --route-closed-height: 160px;
    --route-mobile-core-size: min(68vw - 1.36 * var(--pad), 250px);
    --route-mobile-family-size: min(68vw - 1.36 * var(--pad), 240px);
    grid-template-columns: 1fr;
    gap: 36px;
    margin-top: 42px;
    padding-block: 36px;
  }
  .route-core { width: var(--route-mobile-core-size); margin: 0 auto; }
  .route-core .route-node strong { font-size: clamp(33px, 6vw, 46px); }
  .route-core .route-orbit-copy { gap: 16px; }
  /* Mobile connections are drawn only by the animated segments. */
  .route-discovery::before { display: none; }
  .route-complements { grid-template-columns: 1fr; gap: 32px; padding: 50px 0 16px; }
  .route-complements .route-node { width: var(--route-mobile-family-size); max-width: none; }
  .route-complements .route-node strong { font-size: clamp(26px, 4.5vw, 32px); }
  .route-complements .route-caption { font-size: clamp(12px, 1.7vw, 13px); }
  .route-connection { transform: scaleY(0); }
  .route-curtain { padding: 20px 56px 20px 0; }
  .curtain-copy { align-items: center; gap: 12px; }
  .curtain-title { font-size: clamp(30px, 7.2vw, 48px); max-width: 8em; }
  .curtain-arrow { width: 36px; height: 24px; transform: rotate(90deg); }
  .route-discovery[data-revealed="true"] .route-reveal-toggle { top: -4px; }
}
@media (max-width: 760px) {
  .services-core { padding-top: 45px; padding-bottom: 60px; }
  .services-core .eyebrow { margin-bottom: 28px; }
  .services-core .core-family-card > summary { display: flex; flex-direction: column-reverse; gap: 30px; align-items: stretch; }
  .services-core .core-family-card .family-prefix { margin-bottom: 13px; }
  .services-core .core-family-card .family-title { font-size: clamp(54px, 13.5vw, 88px); }
  .core-family-phrase { font-size: clamp(27px, 7vw, 35px); max-width: 420px; margin-top: 20px; }
  .services-core .core-family-card .family-image { aspect-ratio: 1.3; }
  .services-core .core-family-description { padding-top: 24px; }
  .complementary-intro { grid-template-columns: 1fr; gap: 25px; }
  .complementary-intro h2 { font-size: 42px; }
  .family-watermark { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .family-card.service-enhanced .family-action .plus::after,
  .route-discovery.is-enhanced .route-complements .route-node,
  .route-reveal-toggle, .route-orbit, .route-node strong::after, .curtain-arrow,
  .route-discovery::before { transition: none; transition-delay: 0s; }
}
@media (max-width: 360px) {
  .curtain-copy { gap: 6px; }
  .curtain-title { font-size: 29px; }
  .curtain-arrow { width: 28px; }
}
