.visuals{gap:.75rem}
.visual{border-radius:var(--radius-sm)}
.visual figcaption{left:.75rem;bottom:.75rem;background:rgb(14 54 41 / .8);font-size:.72rem}
.about .prose p:first-child{font-size:clamp(1.3rem,2.1vw,1.8rem);line-height:1.3;letter-spacing:-.02em}
.services-list--stack .service{position:relative}
.services-list--stack .service-title a::after{content:"";position:absolute;inset:0}
.services-list--stack .service-title{transition:color .4s var(--ease),transform .7s var(--ease)}
.services-list--stack .service:hover .service-title{color:var(--accent);transform:translateX(.6rem)}
.services-list--stack .service-desc{transition:color .4s var(--ease)}
.services-list--stack .service:hover .service-desc{color:var(--ink)}
.services-list--page .service{padding:2rem 0 2.2rem}
.services-list--page .service-title{font-size:clamp(2rem,4.4vw,3.6rem);line-height:1;letter-spacing:-.045em}
.services-list--page .service-desc{max-width:34rem;font-size:1.05rem}
.xp--service .xp-body{max-width:none}
.xp--service .service-visual{margin:0 0 3rem}
.xp--service .service-visual .visual img{aspect-ratio:16/9}
.xp--service .xp-body h2{margin:2.5rem 0 0;padding-top:1rem;border-top:1px solid var(--ink);font-size:clamp(1.35rem,2vw,1.75rem);letter-spacing:-.03em}
.xp--service .xp-list{list-style:none;padding:0;margin:.5rem 0 0}
.xp--service .xp-list li{padding:.95rem 0;border-bottom:1px solid var(--line);font-size:clamp(1.02rem,1.25vw,1.15rem)}
.xp--service .xp-list li+li{margin-top:0}
.xp--service .xp-list li:last-child{border-bottom:0}
.xp--service .xp-body>p{max-width:38rem;margin-top:3rem;font-size:1.12rem;color:var(--muted)}
.xp--service .service-visual .visual img{object-position:50% 72%}
.xp--service~.section .areas-block .section-title{font-size:clamp(1.15rem,1.6vw,1.35rem);letter-spacing:-.02em;color:var(--muted)}
.xp--service~.section .areas{display:grid;gap:0;margin-top:1rem;border-top:1px solid var(--ink)}
.xp--service~.section .areas li{background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:0}
.xp--service~.section .areas li:has(a):hover{background:none;color:var(--accent)}
.xp--service~.section .areas a{margin:0;padding:1.3rem 0;min-height:0;font-size:clamp(1.5rem,2.6vw,2.2rem);font-weight:500;letter-spacing:-.04em;color:var(--ink);transition:color .4s var(--ease),transform .7s var(--ease)}
.xp--service~.section .areas a:hover{color:var(--accent);transform:translateX(.6rem)}
@media (max-width:47.99rem){
  .visuals{grid-template-columns:1fr 1fr}
  .visual:first-child{grid-column:1/-1}
  .visual:not(:first-child) img{aspect-ratio:1}
}
@media (min-width:48rem){
  .visuals{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr)}
  .visual img{aspect-ratio:auto;height:clamp(16rem,28vw,26rem)}
  .foot{grid-template-areas:"id call call" "nav nav nav"}
  .foot-call{justify-items:end;align-self:end;padding-bottom:0;border-bottom:0}
  .services-list--page .service-body{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);column-gap:3rem;align-items:baseline}
  .services-list--page .service-desc{margin-top:0}
  .xp--service .xp-body{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(2rem,6vw,6rem);align-items:start}
  .xp--service .service-visual,.xp--service .xp-body>p{grid-column:1/-1}
  .xp--service .service-visual{margin-bottom:4.5rem}
  .xp--service .service-visual .visual img{aspect-ratio:21/9}
  .xp--service .xp-body h2{grid-column:1;margin:0 0 3.5rem;padding-top:1.1rem}
  .xp--service .xp-list{grid-column:2;margin:0 0 3.5rem;border-top:1px solid var(--ink)}
  .xp--service .xp-list li{padding:1.1rem 0}
  .xp--service .xp-body>p{margin-top:.5rem}
  .xp--service~.section .areas{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:2rem}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
