/* Top-page refinements only: hero, loading and detail pages are unchanged. */
#about .philosophy-content h2 { font-size:clamp(38px,4.35vw,68px); line-height:1.45; }
#about .about-period { color:var(--brand-lime); }
#approach .scene-copy h3[lang="en"] { font-family:Inter,sans-serif; font-size:clamp(46px,5.5vw,88px); font-weight:600; letter-spacing:-.06em; line-height:1.08; }

/* Service index: functional diagram, promise, details, destination. */
#services .section-heading { margin-bottom:40px; }
#services .service-grid { display:block; }
#services .service-card { display:grid; grid-template-columns:clamp(168px,16vw,224px) minmax(260px,.9fr) minmax(300px,1.1fr) 32px; grid-template-rows:auto; align-items:center; gap:28px; padding:26px 0!important; background:transparent; }
#services .service-card:hover { background:transparent; }
#services .service-diagram { grid-area:auto; margin:0; width:100%; align-self:center; background:#edf0e8; color:#293229; }
#services .service-diagram-caption { display:flex; justify-content:space-between; align-items:center; gap:8px; padding:14px 16px 0; font-family:Inter,sans-serif; font-size:9px; font-weight:600; letter-spacing:.075em; }
#services .service-diagram-caption>span:first-child { color:#697364; }
#services .service-diagram svg { display:block; width:100%; height:auto; }
#services .service-diagram--operations { background:#253126; color:#f4f6ef; }
#services .service-diagram--operations .service-diagram-caption>span:first-child { color:var(--brand-lime); }
#services .service-diagram--ai { background:var(--brand-lime); }
#services .service-heading,#services .service-details { min-width:0; }
#services .service-card h3 { margin:0; font-size:clamp(27px,2.25vw,36px); line-height:1.55; font-weight:650; letter-spacing:-.055em; }
#services .service-card:hover h3 { color:#526b37; }
#services .service-jp { margin:12px 0 0; font-size:12px; line-height:1.7; color:#697165; }
#services .service-body { margin:0; font-size:15px; line-height:1.95; color:#696d67; }
#services .service-tags { margin:15px 0 0; gap:5px 8px; }
#services .service-tags li { padding:0; font-size:10px; line-height:1.6; color:#7a8076; background:none; }
#services .service-tags li+li::before { margin-right:8px; color:#c1c7ba; }
#services .service-link { grid-area:auto; align-self:center; margin:0; padding:0; width:auto; min-width:0; font-size:0; }
#services .service-link>span { color:#526b37; font-size:30px; }
#services .service-card:focus-visible { outline:2px solid #526b37; outline-offset:5px; }
#services .section-end-link { margin-top:26px; }

/* Two disciplines, one answer, without an alternate brand mark. */
#why .why-perspective { display:grid; grid-template-columns:max-content 1fr; gap:5px 22px; width:fit-content; margin-top:42px; color:#293229; font-family:Inter,sans-serif; font-size:clamp(32px,3.25vw,52px); font-weight:550; letter-spacing:-.055em; line-height:1.05; }
#why .why-perspective-join { justify-self:end; align-self:center; color:var(--brand-lime); font-size:1.2em; font-weight:400; }
#why .why-perspective>span:nth-child(3) { grid-column:1/-1; }
#why .why-perspective small { grid-column:1/-1; margin-top:14px; font-family:var(--font); color:#7b8376; font-size:11px; font-weight:400; letter-spacing:.03em; line-height:1.7; }
#contact .contact-word { right:.035em; bottom:.26em; font-family:Inter,sans-serif; font-size:clamp(180px,39vw,650px); font-weight:600; letter-spacing:-.065em; line-height:.9; writing-mode:horizontal-tb; white-space:nowrap; -webkit-text-stroke:1px #ffffff24; }

@media(max-width:1100px) {
  #services .service-card { grid-template-columns:172px minmax(0,1fr) 28px; gap:18px 26px; }
  #services .service-diagram { grid-column:1; grid-row:1/3; }
  #services .service-heading { grid-column:2; grid-row:1; }
  #services .service-details { grid-column:2; grid-row:2; }
  #services .service-link { grid-column:3; grid-row:1/3; }
  #services .service-card h3 { font-size:29px; line-height:1.45; }
  #services .service-card h3 br { display:none; }
  #services .service-jp { margin-top:7px; }
  #services .service-body { font-size:14px; }
  #services .service-tags { margin-top:12px; }
}
@media(max-width:850px) {
  #about .philosophy-content h2 { font-size:clamp(38px,7vw,56px); }
  #approach .scene-copy h3[lang="en"] { font-size:clamp(44px,9vw,74px); }
  #services .service-card { grid-template-columns:152px minmax(0,1fr) 24px; gap:15px 22px; }
  #services .service-card h3 { font-size:27px; }
  #why .why-perspective { margin-top:30px; font-size:40px; }
}
@media(max-width:600px) {
  #about .philosophy-content h2 { font-size:clamp(33px,8.8vw,50px); }
  #services .section-heading { margin-bottom:28px; }
  #services .service-card { grid-template-columns:108px minmax(0,1fr) 20px; gap:20px 14px; padding:25px 0!important; }
  #services .service-diagram { grid-column:1; grid-row:1; align-self:start; }
  #services .service-diagram-caption { padding:9px 9px 0; font-size:6px; letter-spacing:.04em; gap:4px; }
  #services .service-heading { grid-column:2/-1; grid-row:1; align-self:center; }
  #services .service-card h3 { font-size:clamp(20px,5vw,27px); line-height:1.6; }
  #services .service-card h3 br { display:initial; }
  #services .service-jp { font-size:10px; line-height:1.5; margin-top:8px; }
  #services .service-details { grid-column:1/3; grid-row:2; }
  #services .service-body { font-size:14px; line-height:1.95; }
  #services .service-tags { margin-top:12px; }
  #services .service-tags li { font-size:10px; }
  #services .service-link { grid-column:3; grid-row:2; align-self:start; }
  #services .service-link>span { font-size:25px; }
  #why .why-perspective { font-size:36px; margin-top:28px; }
  #contact .contact-word { font-size:42vw; right:.09em; bottom:1.05em; }
}
@media(max-width:360px) {
  #services .service-card { grid-template-columns:88px minmax(0,1fr) 18px; column-gap:11px; }
  #services .service-diagram-caption { padding:8px 7px 0; font-size:5px; }
  #services .service-card h3 { font-size:18px; }
  #services .service-jp { font-size:9px; }
}
/* Keep introductory headings readable at tablet widths. */
@media(min-width:701px) and (max-width:1000px){#services .section-heading,#process .section-heading{display:grid;grid-template-columns:1fr;gap:24px}#services .section-heading h2,#process .section-heading h2{font-size:44px}#services .section-heading>p,#process .section-heading>p{max-width:42em;width:auto}}

