/* Imagery for the home, services and approach pages. */
.service-grid--visual{grid-template-columns:repeat(6,minmax(0,1fr));gap:38px 24px;border:0}
.service-grid--visual .service-card--image{grid-column:span 2;padding:0;border:0;background:transparent;min-width:0}
.service-grid--visual .service-card--image:nth-child(-n+2){grid-column:span 3}
.service-image{position:relative;overflow:hidden;background:var(--soft);aspect-ratio:3/2}
.service-image img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.service-card--image:nth-child(2) .service-image img{object-position:center}
.service-card--image:hover .service-image img{transform:scale(1.025)}
.service-image-number{position:absolute;left:16px;top:16px;background:var(--paper);color:var(--ink);padding:7px 11px;font-size:.75rem;line-height:1}
.service-summary{display:flex;flex:1;flex-direction:column;padding:23px 0 0}
.service-summary h3{font-size:clamp(1.4rem,2vw,1.9rem);line-height:1.2;margin-bottom:12px}
.service-summary p{font-size:1rem;line-height:1.65;color:var(--muted);margin-bottom:23px;max-width:480px}
.service-summary .service-link{padding-top:16px}

.service-detail--visual{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
.service-detail--visual .service-detail-image{margin:0;min-width:0}
.service-detail-image img{width:100%;height:auto;aspect-ratio:6/5;object-fit:cover;background:var(--soft)}
.service-detail-image figcaption{font-size:.6875rem;letter-spacing:.11em;color:var(--muted);margin-top:13px}
.service-detail--visual:nth-of-type(even) .service-detail-image{order:2}
.service-detail-body{min-width:0}
.service-detail-body>.detail-number{display:block;font-size:.75rem;letter-spacing:.12em;color:var(--red);margin-bottom:19px}
.service-detail-body .detail-copy .text-link{margin:0 0 20px;padding-top:0}
.service-deliverables{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.service-deliverables summary{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 0;font-size:.875rem;font-weight:600;cursor:pointer;list-style:none}
.service-deliverables summary::-webkit-details-marker{display:none}
.service-deliverables summary::after{content:'+';color:var(--red);font-size:1.35rem;font-weight:400}
.service-deliverables[open] summary::after{content:'−'}
.service-deliverables summary:focus-visible{outline:3px solid var(--red);outline-offset:5px}
.service-deliverables .detail-points{border:0;padding:5px 0 23px}
.visual-disclosure{color:var(--muted);font-size:.75rem;margin:24px 0 0}
.method-photo{margin:0;min-width:0}
.method-photo img{width:100%;height:auto;aspect-ratio:6/5;object-fit:cover}
.method-photo figcaption{color:#b8b8b3;font-size:.8125rem;margin-top:15px}
.method-strip{display:grid;grid-template-columns:repeat(4,1fr);padding-bottom:36px;gap:24px}
.method-strip a{display:flex;gap:17px;align-items:center;border-top:1px solid #484844;padding-top:20px;font-size:1rem}
.method-strip a span:first-child{color:#fa6458;font-size:.75rem}
.method-strip a span:last-child{margin-left:auto;color:#b8b8b3}
.method-strip a:hover{color:#fa6458}
.principle-grid .simple-card{padding:0 0 28px;overflow:hidden}
.principle-image{aspect-ratio:3/2;margin-bottom:26px}
.principle-image img{width:100%;height:100%;object-fit:cover}
.principle-grid .simple-card>span,.principle-grid .simple-card>h3,.principle-grid .simple-card>p{margin-left:24px;margin-right:24px}
@media(max-width:1100px){

  .service-grid--visual{gap:32px 20px}
}
@media(max-width:900px){
  .service-grid--visual{grid-template-columns:repeat(2,minmax(0,1fr))}
  .service-grid--visual .service-card--image,.service-grid--visual .service-card--image:nth-child(-n+2){grid-column:span 1}
  .service-grid--visual .service-card--image:last-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:center}
  .service-grid--visual .service-card--image:last-child .service-summary{padding-top:0}

  .service-detail--visual{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px}
}
@media(max-width:700px){
  .service-grid--visual{grid-template-columns:1fr;gap:38px}
  .service-grid--visual .service-card--image:last-child{display:flex;gap:0;align-items:stretch;grid-column:auto}
  .service-grid--visual .service-card--image:last-child .service-summary{padding-top:23px}
  .service-summary h3{font-size:1.65rem}
  .service-detail--visual{grid-template-columns:1fr;gap:27px}
  .service-detail--visual:nth-of-type(even) .service-detail-image{order:0}
  .service-detail-image img{aspect-ratio:3/2}
  .service-detail-body .detail-copy .text-link{white-space:normal;align-items:flex-start;gap:12px}
  .service-detail-body .detail-copy .text-link svg{flex-shrink:0}
  .method-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
  .method-strip a{padding-top:16px;gap:12px}
  .method-photo img{aspect-ratio:3/2}
}
@media(prefers-reduced-motion:reduce){.service-image img{transition:none}.service-card--image:hover .service-image img{transform:none}}

/* Image-led process and touch galleries. */
.gallery-controls{display:none}
.process-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.process-tile{min-width:0;display:block}
.process-tile-image,.process-card-image{position:relative;overflow:hidden;background:#e9e6df;aspect-ratio:3/2}
.process-tile-image img,.process-card-image img{width:100%;height:100%;object-fit:cover}
.process-tile-image>span,.process-card-image>span{position:absolute;top:14px;left:14px;background:var(--red);color:white;padding:8px 11px;font-size:.75rem;line-height:1}
.process-tile-copy{padding-top:22px}
.process-tile h3{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:1.8rem;line-height:1.2;margin:0 0 10px}
.process-tile h3>span{font-size:1.3rem;color:#fa6458}
.process-tile p{color:#b8b8b3;line-height:1.6;margin:0}
.process-tile:hover h3{color:#fa6458}
.process-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 32px;align-items:start}
.process-card{min-width:0;border:1px solid var(--line);scroll-margin-top:110px}
.process-card-copy{padding:26px}
.process-card-copy h3{font-size:1.7rem;line-height:1.2;margin-bottom:12px}
.process-card-copy>p{margin-bottom:23px;color:var(--muted)}
.process-card .service-deliverables{border-bottom:0}
.process-description{padding:4px 0 8px}
.process-description p{font-size:.9375rem;line-height:1.7;color:var(--muted)}
.process-description h4{font-size:.6875rem;letter-spacing:.12em;margin:22px 0 10px}
.mobile-gallery:focus-visible{outline:3px solid var(--red);outline-offset:6px}
@media(max-width:700px){
  .visual-home .hero-grid{gap:20px}
  .visual-home .hero-copy{display:contents}
  .visual-home .hero-copy h1{grid-row:1;margin:0}
  .visual-home .hero-visual{grid-row:2;aspect-ratio:1.4;max-height:300px;width:100%}
  .visual-home .hero-copy>p{grid-row:3;margin:0;max-width:100%;font-size:1rem}
  .visual-home .hero-buttons{grid-row:4;gap:12px}
  .visual-home .hero-note{display:none}
  .visual-home .hero-bottom>span{display:none}
  .visual-home .hero-bottom{margin-top:24px}
  .visual-home .hero-buttons .text-link{font-size:.8125rem}
  .visual-home .section-heading{gap:16px;margin-bottom:24px}
  .visual-home .section-heading>p{line-height:1.5}
  .gallery-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px;color:var(--muted);font-size:.75rem}
  .gallery-controls>div{display:none;align-items:center;gap:10px}
  .gallery-controls.is-ready>div{display:flex}
  .gallery-controls button{width:44px;height:44px;border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:50%;font-size:1.1rem;line-height:1}
  .gallery-controls button:disabled{opacity:.3;cursor:default}
  .gallery-position{font-size:.75rem;min-width:34px;text-align:center;font-variant-numeric:tabular-nums}
  .visual-home .mobile-gallery{position:relative;display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc(100% - 28px);gap:16px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding:0;scrollbar-width:thin;scrollbar-color:var(--red) var(--line);padding-bottom:16px}
  .visual-home .service-grid--visual .service-card--image,.visual-home .service-grid--visual .service-card--image:nth-child(-n+2),.visual-home .service-grid--visual .service-card--image:last-child{grid-column:auto;display:flex;gap:0;align-items:stretch;scroll-snap-align:start;scroll-snap-stop:always}
  .visual-home .service-image{aspect-ratio:4/3}
  .visual-home .service-summary,.visual-home .service-grid--visual .service-card--image:last-child .service-summary{padding-top:19px}
  .visual-home .service-summary h3{font-size:1.5rem;min-height:2.4em;line-height:1.2;margin-bottom:9px}
  .visual-home .service-summary p{font-size:.9375rem;line-height:1.5;margin-bottom:19px}
  .visual-home .service-summary .service-link{padding-top:14px;min-height:44px}
  .visual-home .work-card{scroll-snap-align:start;scroll-snap-stop:always;min-width:0}
  .visual-home .work-image{display:block}
  .visual-home .section-route{margin-top:18px;gap:0}
  .visual-home .section-route>p{display:none}
  .process-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:27px 14px}
  .process-tile:first-child{grid-column:1/-1}
  .process-tile:first-child .process-tile-image{aspect-ratio:2/1}
  .process-tile-image{aspect-ratio:1/1}
  .process-tile-copy{padding-top:15px}
  .process-tile h3{font-size:1.45rem;gap:8px}
  .process-tile p{font-size:.875rem;line-height:1.5}
  .process-cards{grid-template-columns:1fr;gap:28px}
  .process-card-copy{padding:23px}
  .process-card-copy h3{font-size:1.5rem}
  .approach-hero .intro-grid{gap:20px}
  .approach-hero .intro-grid>div{display:contents}
  .approach-hero .intro-grid .eyebrow{grid-row:1;margin:0}
  .approach-hero .intro-grid h1{grid-row:2;margin:0}
  .approach-hero .method-photo{grid-row:3}
  .approach-hero .intro-lead{grid-row:4;margin:0}
  .approach-hero .intro-grid .button{grid-row:5;justify-self:start;white-space:normal}
  .method-photo figcaption{font-size:.75rem}
}
