/* Home only: hero, service routes, cases, process, welfare and news/FAQ.
   Shared shell/actions live in components.css; closing CTA in composition.css.
   Original rule order and media conditions are retained within this composition. */
.hero {
  min-height:610px;
  padding-block:82px 74px;
  display:grid;
  grid-template-columns:1fr .98fr;
  align-items:center;
  column-gap:42px;
  position:relative;
}

.hero-copy {
  max-width:550px;
  position:relative;
  z-index:1;
}

.hero .eyebrow {
  display:flex;
  align-items:center;
  gap:10px;
  letter-spacing:.07em;
}

.hero h1 {
  line-height:1.45;
  letter-spacing:.02em;
  margin:14px 0 20px;
  font-weight:600;
}

.hero h1 span {
  font-weight:500;
}

.hero-lead {
  max-width:525px;
  color:#516b7a;
  line-height:2.05;
  margin:0;
}

.hero-note {
  color:#809097;
  margin:17px 0 0;
}

.hero-visual {
  position:relative;
  width:100%;
  max-width:550px;
  justify-self:end;
}

.hero-visual svg {
  display:block;
  width:100%;
  height:auto;
  filter:drop-shadow(0 11px 19px rgba(58,102,111,.055));
}

.visual-caption {
  text-align:center;
  color:#6e858c;
  margin:0;
}

.hero-proof {
  grid-column:1/-1;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:28px;
  margin-top:26px;
  padding-top:21px;
  border-top:1px solid var(--line);
  color:#58747c;
  letter-spacing:.07em;
}

.hero-proof b {
  color:#a1c4c7;
  font-weight:400;
}

.section {
  padding-block:92px;
}

.section-soft {
  background:#f7fafb;
}

.section-pale {
  background:#f1f7f8;
}

.section-heading {
  margin:0 0 36px;
}

.section-heading .eyebrow {
  margin-bottom:10px;
}

.section-heading h2 {
  line-height:1.55;
  letter-spacing:.035em;
  font-weight:500;
  margin:0;
}

.why-intro h2 {
  line-height:1.55;
  letter-spacing:.035em;
  font-weight:500;
  margin:0;
}

.welfare-band h2 {
  line-height:1.55;
  letter-spacing:.035em;
  font-weight:500;
  margin:0;
}

.section-intro {
  color:var(--muted);
  margin:12px 0 0;
}

.issue-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}

.issue {
  position:relative;
  min-height:208px;
  padding:27px 28px 25px;
  background:#fff;
  border:1px solid #e4edef;
  border-radius:var(--radius);
  box-shadow:0 8px 25px rgba(30,75,86,.035);
}

.issue-no {
  position:absolute;
  right:23px;
  top:18px;
  color:#9dbabf;
  letter-spacing:.12em;
}

.issue-icon {
  width:41px;
  height:41px;
  display:grid;
  place-items:center;
  border:1px solid #c4dddf;
  border-radius:50%;
  color:var(--teal);
  margin-bottom:15px;
}

.issue h3 {
  font-weight:600;
  line-height:1.7;
  margin:0 0 7px;
}

.issue p {
  color:var(--muted);
  margin:0;
}

.section-note {
  text-align:center;
  color:#73868d;
  margin:22px 0 0;
}

.service-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:15px;
}

.service-card {
  min-height:272px;
  padding:23px 22px 21px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:#fff;
  display:flex;
  flex-direction:column;
  transition:box-shadow .2s,transform .2s,border-color .2s;
}

.service-card:hover {
  transform:translateY(-3px);
  box-shadow:var(--shadow);
  border-color:#b6d2d5;
}

.service-lead {
  background:#f8fbfb;
}

.service-kicker {
  letter-spacing:.06em;
  color:var(--teal-dark);
}

.service-icon {
  margin-top:20px;
  color:#64a0a5;
  line-height:1;
}

.service-card h3 {
  line-height:1.55;
  margin:13px 0 8px;
  font-weight:600;
}

.service-card p {
  line-height:1.85;
  color:var(--muted);
  margin:0 0 17px;
}

.card-link {
  margin-top:auto;
  color:var(--teal-dark);
  font-weight:600;
}

.card-link b {
  margin-left:8px;
  font-weight:400;
}

.specialty-row {
  margin-top:20px;
  display:grid;
  grid-template-columns:1fr 1.25fr;
  gap:17px;
}

.specialty {
  display:flex;
  align-items:center;
  gap:14px;
  padding:17px 20px;
  border-radius:9px;
  background:#f5f8f9;
  border:1px solid var(--line);
}

.specialty-mark {
  width:52px;
  height:52px;
  border:1px solid #c9dcdf;
  border-radius:50%;
  display:grid;
  place-items:center;
  color:var(--teal-dark);
  font-weight:700;
}

.specialty b {
  display:block;
}

.specialty small {
  display:block;
}

.specialty small {
  color:var(--muted);
  margin-top:2px;
}

.arrow {
  margin-left:auto;
  color:var(--teal-dark);
}

.specialty-products {
  padding:15px 18px;
  border-left:2px solid #c7dfe1;
}

.specialty-products p {
  color:var(--muted);
  margin:0 0 8px;
}

.specialty-products a {
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin-right:20px;
  color:var(--teal-dark);
  font-weight:600;
}

.choice-note {
  color:var(--muted);
  text-align:center;
  margin:22px 0 0;
  padding-top:16px;
  border-top:1px solid var(--line);
}

.section-heading-row {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:20px;
}

.section-heading-row>.text-link {
  margin-bottom:6px;
  flex:none;
}

.case-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}

.case-card {
  background:white;
  border:1px solid #deeaeb;
  border-radius:var(--radius);
  padding:19px 21px 23px;
  box-shadow:0 8px 26px rgba(33,77,87,.04);
}

.case-art {
  height:105px;
  border-radius:8px;
  background:linear-gradient(125deg,#f3f8f8,#e9f2f3);
  display:grid;
  place-items:center;
  margin-bottom:20px;
  overflow:hidden;
}

.case-art svg {
  width:76%;
  height:82%;
  fill:none;
  stroke:#6ca2a7;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.case-art circle {
  fill:#fff;
}

.case-art-cloud {
  background:linear-gradient(125deg,#f4f8fa,#e8f1f5);
}

.case-art-merger {
  background:linear-gradient(125deg,#f5f8f8,#edf2f1);
}

.case-type {
  color:var(--teal-dark);
  font-weight:600;
  letter-spacing:.05em;
  margin:0 0 7px;
}

.case-card h3 {
  line-height:1.65;
  margin:0 0 10px;
  font-weight:600;
}

.case-description {
  color:#647984;
  line-height:1.9;
  margin:0;
  min-height:68px;
}

.case-meta {
  border-top:1px solid #e8eff0;
  padding-top:12px;
  margin:14px 0 0;
  color:#6b8087;
}

.case-meta span {
  color:#adc2c5;
  margin-inline:4px;
}

.process-list {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  list-style:none;
  padding:0;
  margin:0;
  position:relative;
}

.process-list:before {
  content:"";
  position:absolute;
  left:8%;
  right:8%;
  top:18px;
  height:1px;
  background:#c9dfe1;
}

.process-list li {
  position:relative;
  padding:51px 14px 0 0;
}

.process-list li>span {
  position:absolute;
  top:0;
  left:0;
  width:37px;
  height:37px;
  border:1px solid #9cc4c7;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:white;
  color:var(--teal-dark);
  z-index:1;
}

.process-list b {
  display:block;
}

.process-list small {
  display:block;
}

.process-list b {
  margin-bottom:5px;
}

.process-list small {
  line-height:1.75;
  color:var(--muted);
}

.why-layout {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:80px;
  align-items:center;
}

.why-intro>p:not(.eyebrow) {
  color:#657b85;
  line-height:2;
  margin:19px 0;
}

.why-points article {
  display:flex;
  gap:19px;
  padding:18px 0;
  border-bottom:1px solid #dce9ea;
}

.why-points article:first-child {
  border-top:1px solid #dce9ea;
}

.why-points article>span {
  color:#8eb7bb;
  letter-spacing:.1em;
  padding-top:4px;
}

.why-points h3 {
  margin:0 0 5px;
  font-weight:600;
}

.why-points p {
  line-height:1.8;
  color:var(--muted);
  margin:0;
}

.welfare-band {
  margin-block:64px 0;
  padding:27px 34px;
  display:grid;
  grid-template-columns:66px 1fr auto;
  align-items:center;
  gap:24px;
  border:1px solid #dce8e9;
  border-radius:12px;
  background:linear-gradient(110deg,#f8fbfb,#f1f7f8);
}

.welfare-symbol svg {
  width:57px;
  height:57px;
  fill:none;
  stroke:#75a8ad;
  stroke-width:1.5;
}

.welfare-band .eyebrow {
  margin-bottom:5px;
}

.welfare-band>div>p:last-child {
  color:var(--muted);
  margin:4px 0 0;
}

.welfare-band>.text-link {
  white-space:nowrap;
}

.news-area {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
}

.news-column {
  padding:4px 0;
}

.news-column+.news-column {
  border-left:1px solid var(--line);
  padding-left:45px;
}

.news-column .section-heading {
  margin-bottom:20px;
}

.news-list {
  list-style:none;
  padding:0;
  margin:0 0 16px;
}

.news-list li {
  display:grid;
  grid-template-columns:82px 1fr;
  gap:12px;
  padding:10px 0;
  border-bottom:1px solid #e5ecee;
}

.news-list li:first-child {
  border-top:1px solid #e5ecee;
}

.news-list time {
  color:#82949a;
  padding-top:2px;
}

.news-list a {
  line-height:1.7;
  color:#425f6e;
}

.news-list a:hover {
  color:var(--teal-dark);
  text-decoration:underline;
  text-underline-offset:3px;
}

.news-external {
  color:var(--teal-dark);
  font-weight:600;
}

.news-external span {
  margin-left:8px;
}

.faq-wrap {
  display:grid;
  grid-template-columns:.65fr 1.35fr;
  gap:55px;
}

.faq-wrap .section-heading {
  margin-bottom:0;
}

.faq-list details {
  border-bottom:1px solid #d7e5e6;
}

.faq-list details:first-child {
  border-top:1px solid #d7e5e6;
}

.faq-list summary {
  cursor:pointer;
  list-style:none;
  position:relative;
  padding:17px 36px 17px 0;
  font-weight:600;
}

.faq-list summary::-webkit-details-marker {
  display:none;
}

.faq-list summary:after {
  content:"＋";
  position:absolute;
  right:4px;
  top:15px;
  color:var(--teal);
  font-weight:400;
}

.faq-list details[open] summary:after {
  content:"−";
}

.faq-list details p {
  color:#617781;
  line-height:1.9;
  margin:0;
  padding:0 30px 18px 0;
}

@media(max-width:1050px) {

.service-grid {
  grid-template-columns:repeat(2,1fr);
}

.service-card {
  min-height:235px;
}

.hero {
  column-gap:20px;
}

.hero h1 {
  letter-spacing:0;
}

.why-layout {
  gap:45px;
}

}

@media(max-width:760px) {

.hero {
  min-height:auto;
  padding-block:49px 36px;
  grid-template-columns:1fr;
  gap:24px;
}

.hero-copy {
  max-width:none;
}

.hero h1 {
  line-height:1.42;
  margin:10px 0 15px;
}

.hero-lead {
  line-height:1.95;
}

.hero-visual {
  max-width:480px;
  justify-self:center;
}

.hero-proof {
  margin-top:6px;
  padding-top:15px;
  gap:13px;
}

.section {
  padding-block:65px;
}

.section-heading {
  margin-bottom:25px;
}

.issue-grid {
  grid-template-columns:1fr;
  gap:10px;
}

.issue {
  min-height:0;
  padding:19px 18px 18px 74px;
}

.issue-icon {
  position:absolute;
  left:18px;
  top:22px;
  width:39px;
  height:39px;
  margin:0;
}

.issue-no {
  right:16px;
  top:13px;
}

.issue h3 {
  margin:0 0 3px;
}

.section-note {
  line-height:1.8;
}

.service-grid {
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.service-card {
  min-height:228px;
  padding:17px 15px 16px;
}

.service-icon {
  margin-top:16px;
}

.service-card h3 {
  min-height:44px;
}

.service-card p {
  line-height:1.8;
}

.specialty-row {
  grid-template-columns:1fr;
  gap:9px;
}

.specialty {
  padding:13px 15px;
}

.specialty-products {
  border-left:0;
  border-top:1px solid var(--line);
  padding:13px 3px;
}

.specialty-products a {
  margin-right:11px;
}

.choice-note {
  margin-top:16px;
  padding-top:12px;
}

.section-heading-row {
  align-items:start;
}

.section-heading-row>.text-link {
  margin-top:8px;
  white-space:nowrap;
}

.case-grid {
  grid-template-columns:1fr;
  gap:12px;
}

.case-card {
  padding:15px 17px 17px;
  display:grid;
  grid-template-columns:102px 1fr;
  column-gap:15px;
}

.case-art {
  height:87px;
  grid-row:1/4;
  margin:0;
}

.case-type {
  align-self:end;
}

.case-card h3 {
  line-height:1.55;
  margin:3px 0 0;
}

.case-description {
  grid-column:1/-1;
  min-height:0;
  margin-top:12px;
}

.case-meta {
  grid-column:1/-1;
  margin-top:11px;
  padding-top:9px;
}

.process-list {
  grid-template-columns:1fr;
  gap:0;
}

.process-list:before {
  left:18px;
  right:auto;
  top:18px;
  bottom:18px;
  width:1px;
  height:auto;
}

.process-list li {
  min-height:74px;
  padding:3px 0 13px 55px;
}

.process-list li>span {
  width:37px;
  height:37px;
}

.why-layout {
  grid-template-columns:1fr;
  gap:24px;
}

.why-intro>p:not(.eyebrow) {
  margin:11px 0;
}

.why-points article {
  gap:14px;
  padding:14px 0;
}

.welfare-band {
  margin-block:38px 0;
  padding:19px;
  grid-template-columns:45px 1fr;
  gap:13px;
}

.welfare-symbol svg {
  width:42px;
  height:42px;
}

.welfare-band h2 {
  line-height:1.55;
}

.welfare-band>div>p:last-child {
  line-height:1.7;
}

.welfare-band>.text-link {
  grid-column:2;
  justify-self:start;
}

.news-area {
  grid-template-columns:1fr;
  gap:28px;
}

.news-column+.news-column {
  border-left:0;
  border-top:1px solid var(--line);
  padding:26px 0 0;
}

.news-list li {
  grid-template-columns:72px 1fr;
  gap:8px;
  padding:9px 0;
}

.faq-wrap {
  grid-template-columns:1fr;
  gap:19px;
}

.faq-list summary {
  padding-block:15px;
}

.issue h3 br {
  display:none;
}

}

@media(max-width:380px) {

.service-grid {
  grid-template-columns:1fr;
}

.service-card {
  min-height:0;
}

.service-card h3 {
  min-height:0;
}

.case-card {
  grid-template-columns:85px 1fr;
  padding-inline:13px;
}

.case-art {
  height:75px;
}

.hero-proof {
  gap:8px;
}

}

.hero {
  min-height:370px;
  padding-block:38px 44px;
  grid-template-columns:1fr 1fr;
  gap:0;
  isolation:isolate;
}

.hero:before {
  content:"";
  position:absolute;
  inset:-70px calc((min(1160px,100vw - 2*var(--gutter)) - 100vw)/2) 0;
  z-index:-2;
  background:linear-gradient(146deg,transparent 55%,#effaff 55.1%,#fff 84%);
}

.hero:after {
  content:"";
  position:absolute;
  inset:0 calc((min(1160px,100vw - 2*var(--gutter)) - 100vw)/2) 0;
  z-index:-1;
  background:linear-gradient(137deg,transparent 89%,#dff4fb 89.1%);
  pointer-events:none;
}

.hero .eyebrow {
  letter-spacing:.02em;
  font-weight:700;
  margin-bottom:12px;
}

.hero h1 {
  font-weight:700;
  line-height:1.3;
  letter-spacing:0;
  margin:0 0 17px;
}

.hero h1 span {
  font-weight:700;
  white-space:nowrap;
}

.hero-lead {
  font-weight:500;
  line-height:1.9;
  max-width:490px;
}

.hero-visual {
  height:350px;
  max-width:none;
  position:relative;
  perspective:900px;
  margin-top:-20px;
}

.glass-card {
  position:absolute;
  width:35%;
  height:260px;
  top:26px;
  border:1px solid;
  transform:skewY(17deg);
  border-radius:5px;
  box-shadow:10px 18px 26px #285d7210;
  text-align:center;
  padding:57px 6px 10px;
  isolation:isolate;
}

.glass-card>* {
  transform:skewY(-17deg);
}

.glass-card svg {
  width:40px;
  height:40px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  filter:none;
  margin:auto;
}

.glass-card h2 {
  margin:14px 0 11px;
  color:#092449;
}

.glass-card p {
  color:#375e85;
  margin:0;
  line-height:1.7;
  font-weight:500;
}

.business {
  left:6%;
  top:59px;
  background:linear-gradient(115deg,#d7f6ffaf,#a2e5f667);
  border-color:#73dcf7;
  color:#009dcc;
  z-index:3;
}

.people {
  left:28%;
  top:23px;
  background:linear-gradient(115deg,#ffdcd4b0,#ffd4b67a);
  border-color:#ffafa2;
  color:#ff655e;
  z-index:2;
}

.system {
  left:61%;
  top:22px;
  background:linear-gradient(115deg,#fff5d8aa,#f4e6b36b);
  border-color:#ffe2a0;
  color:#367c94;
  z-index:1;
}

.visual-caption {
  position:absolute;
  bottom:-4px;
  right:0;
  font-weight:700;
  line-height:1.7;
  letter-spacing:.12em;
  transform:rotate(-9deg);
  color:#45678e;
  padding-left:28px;
}

.visual-caption:before {
  content:"";
  position:absolute;
  width:65px;
  height:1px;
  background:#557f9e;
  top:25px;
  right:100%;
  transform:rotate(-10deg);
}

.section {
  padding-block:28px;
}

.section-heading {
  margin:0 0 18px;
}

.section-heading .eyebrow {
  margin-bottom:3px;
}

.section-heading h2 {
  font-weight:700;
  letter-spacing:-.035em;
  line-height:1.4;
}

.why-intro h2 {
  font-weight:700;
  letter-spacing:-.035em;
  line-height:1.4;
}

.section-intro {
  margin-top:5px;
  color:#42648a;
}

.section-soft {
  background:linear-gradient(110deg,#edf9ff,#f1faff);
}

.section-pale {
  background:linear-gradient(110deg,#edf9ff,#f1faff);
}

.issue-grid {
  gap:14px;
}

.issue {
  border:0;
  box-shadow:none;
  border-radius:5px;
  min-height:130px;
  padding:19px 14px 15px 98px;
}

.issue-icon {
  position:absolute;
  left:18px;
  top:19px;
  width:62px;
  height:62px;
  border:0;
  background:#eaf8ff;
  color:#00a0cb;
}

.issue-icon svg {
  width:42px;
  height:42px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
}

.issue-no {
  display:none;
}

.issue h3 {
  line-height:1.5;
}

.issue p {
  line-height:1.6;
  margin-top:8px;
}

.section-note {
  display:none;
}

#services {
  padding-top:28px;
  padding-bottom:25px;
}

#services>.section-heading {
  display:grid;
  grid-template-columns:1fr 1fr;
  column-gap:24px;
}

#services>.section-heading>.eyebrow {
  grid-column:1;
}

#services>.section-heading>h2 {
  grid-column:1;
}

#services>.section-heading>.section-intro {
  grid-column:2;
  grid-row:1/3;
  align-self:center;
  max-width:420px;
}

.service-grid {
  grid-template-columns:repeat(2,1fr);
  gap:10px 16px;
}

.service-card {
  min-height:112px;
  padding:17px 45px 16px 116px;
  position:relative;
  border-radius:5px;
  box-shadow:none;
  background:linear-gradient(100deg,#fff,#fbfdff);
}

.service-kicker {
  display:none;
}

.service-icon {
  position:absolute;
  left:26px;
  top:28px;
  margin:0;
  color:#00a0c8;
}

.service-icon svg {
  width:55px;
  height:48px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
}

.service-card h3 {
  margin:0 0 5px;
  font-weight:700;
}

.service-card p {
  margin:0;
  line-height:1.7;
  max-width:340px;
}

.card-link {
  position:absolute;
  right:22px;
  top:42%;
}

.card-link b {
  font-weight:400;
  color:#009ccb;
}

.specialty-row {
  display:flex;
  flex-direction:column;
  margin-top:10px;
  gap:20px;
}

.specialty {
  padding:13px 20px;
  background:#edf9fe;
  border:0;
  min-height:69px;
}

.specialty-mark {
  border:0;
  width:73px;
  height:40px;
  border-radius:0;
  color:#009dcb;
}

.specialty>span:nth-child(2) {
  display:flex;
  align-items:center;
  gap:28px;
}

.specialty-products {
  border:0;
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  align-items:center;
  gap:20px;
  padding:0;
}

.specialty-products p {
  font-weight:700;
  color:#0c2652;
  padding-right:20px;
  border-right:1px solid #bddce9;
  margin:0;
}

.specialty-products a {
  border:1px solid #dceef6;
  border-radius:5px;
  padding:19px 18px;
  margin:0;
  color:#132b55;
  justify-content:space-between;
  min-height:78px;
}

.specialty-products a:before {
  content:"";
  width:9px;
  height:30px;
  background:#00a2c8;
  display:block;
  margin-right:8px;
}

.specialty-products a:last-child:before {
  background:linear-gradient(#f35325 0 47%,transparent 47% 53%,#05a6f0 53%);
  width:20px;
  box-shadow:20px 0 0 -1px #81bc06;
  margin-right:30px;
}

.choice-note {
  display:none;
}

#cases {
  padding-block:24px;
}

.section-heading-row {
  align-items:center;
}

.case-grid {
  gap:16px;
}

.case-card {
  box-shadow:none;
  border-radius:5px;
  padding:14px 22px 19px;
  border-color:#dcecf5;
}

.case-art {
  background:transparent!important;
  height:100px;
  margin-bottom:4px;
  border-radius:0;
}

.case-art svg {
  width:92%;
  height:100%;
  stroke:#03a4d2;
  stroke-width:1.8;
}

.case-type {
  font-weight:700;
  color:#008cba;
  margin-bottom:5px;
}

.case-card h3 {
  line-height:1.45;
  font-weight:700;
  margin-bottom:10px;
}

.case-description {
  color:#4a688c;
  min-height:0;
  line-height:1.8;
}

.case-meta {
  border:0;
  padding:0;
  margin-top:12px;
  font-weight:500;
  color:#345c81;
}

.case-more {
  text-align:center;
  margin-top:15px;
}

.process-list {
  gap:27px;
}

.process-list:before {
  display:none;
}

.process-list li {
  padding:58px 0 0;
  min-height:150px;
}

.process-list li>span {
  width:49px;
  height:49px;
  background:#3bcae9;
  border:1px solid #fff;
  box-shadow:inset 0 0 10px #ffffff5a;
  color:white;
}

.process-list li:nth-child(2)>span {
  background:#ff7970;
}

.process-list li:nth-child(3)>span {
  background:#ffc744;
}

.process-list li:nth-child(4)>span {
  background:#65b6b6;
}

.process-list li:nth-child(5)>span {
  background:#78a6e4;
}

.process-list li:not(:last-child):after {
  content:'→';
  position:absolute;
  right:-17px;
  top:60px;
  color:#5e89a5;
}

.process-list small {
  color:#547398;
  line-height:1.75;
}

section[aria-labelledby='why-title'] {
  background:white;
  padding-top:15px;
  padding-bottom:18px;
  border-top:1px solid #eaf3f7;
}

.why-layout {
  display:block;
}

.why-intro {
  display:grid;
  grid-template-columns:1.3fr 1fr;
  column-gap:35px;
}

.why-intro>.eyebrow {
  grid-column:1;
}

.why-intro h2 {
  grid-column:1;
}

.why-intro h2 br {
  display:none;
}

.why-intro>p:not(.eyebrow) {
  grid-column:2;
  grid-row:1/3;
  margin:0;
  align-self:center;
}

.why-intro>.text-link {
  grid-column:2;
  justify-self:end;
  padding-top:5px;
}

.why-points {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-top:12px;
}

.why-points article {
  border:1px solid #dcecf5;
  border-radius:5px;
  padding:15px;
  gap:11px;
  min-height:104px;
}

.why-points article:first-child {
  border:1px solid #dcecf5;
  border-radius:5px;
  padding:15px;
  gap:11px;
  min-height:104px;
}

.why-points article>span {
  border:1px solid #00a2cd;
  border-radius:50%;
  height:30px;
  width:30px;
  flex-shrink:0;
  text-align:center;
  color:#00a0cb;
  padding:3px 0;
}

.why-points h3 {
  font-weight:700;
}

.why-points p {
  line-height:1.7;
}

.welfare-band {
  margin-top:0;
  margin-bottom:0;
  border:0;
  border-radius:5px;
  padding:20px 28px;
  grid-template-columns:60px 1fr auto;
  background:linear-gradient(100deg,#e9f8ff,#f5fbff 68%,#e0f0e5);
  gap:20px;
}

.welfare-band .eyebrow {
  display:none;
}

.welfare-band h2 {
  font-weight:700;
}

.welfare-band>div>p:last-child {
  max-width:530px;
  color:#2d789b;
}

.welfare-symbol svg {
  stroke:#009fca;
}

.welfare-band>.text-link {
  padding:9px 16px;
  border:1px solid #059fcb;
  background:#fff;
  border-radius:5px;
}

.news-area {
  grid-template-columns:1fr 1fr 1fr;
  gap:24px;
  padding-block:25px;
}

.news-column {
  padding:0;
}

.news-column+.news-column {
  padding-left:24px;
}

.news-column .section-heading {
  margin-bottom:9px;
}

.news-column .section-heading>.text-link {
  display:none;
}

.news-list li {
  display:block;
  padding:9px 0;
}

.news-list li:first-child {
  border-top:0;
}

.news-list time {
  display:none;
}

.news-list a {
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.news-external {
  display:block;
  text-align:right;
  margin-top:12px;
}

.faq-column {
  background:#eef9ff;
  border-radius:5px;
  padding:10px 14px;
}

.faq-column .section-heading {
  margin-bottom:8px;
}

.faq-list details {
  border:0;
  margin-bottom:7px;
  background:white;
}

.faq-list details:first-child {
  border:0;
  margin-bottom:7px;
  background:white;
}

.faq-list summary {
  font-weight:400;
  padding:6px 22px 6px 8px;
  color:#4a6c91;
}

.faq-list summary:after {
  content:'›';
  top:0;
  right:6px;
  color:#009eca;
}

.faq-list details p {
  padding:4px 8px 10px;
}

@media(max-width:1050px) {

.hero {
  min-height:350px;
}

.hero-visual {
  height:305px;
}

.glass-card {
  height:220px;
  padding-top:39px;
}

.visual-caption {
  bottom:-5px;
}

.issue {
  padding-left:78px;
}

.issue-icon {
  width:48px;
  height:48px;
  left:16px;
}

.issue-icon svg {
  width:34px;
}

.service-card {
  padding-left:85px;
}

.service-icon {
  left:20px;
}

.service-icon svg {
  width:44px;
}

.case-card {
  padding-inline:17px;
}

}

@media(max-width:760px) {

.hero {
  grid-template-columns:1fr;
  padding-top:25px;
}

.hero-visual {
  margin:15px auto 0;
  width:min(100%,460px);
  height:300px;
}

.glass-card {
  height:215px;
}

.hero h1 span {
  white-space:normal;
}

.section {
  padding-block:25px;
}

.issue-grid {
  grid-template-columns:1fr;
}

.issue {
  min-height:96px;
  padding:16px 15px 16px 83px;
}

.issue h3 br {
  display:none;
}

#services>.section-heading {
  display:block;
}

#services>.section-heading>.section-intro {
  margin-top:9px;
}

.service-grid {
  grid-template-columns:1fr;
}

.service-card {
  min-height:103px;
  padding-top:17px;
}

.service-card h3 {
  min-height:0;
}

.specialty>span:nth-child(2) {
  display:block;
}

.specialty-products {
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.specialty-products p {
  grid-column:1/-1;
  border:0;
  padding:0;
}

.specialty-products a {
  padding:13px 9px;
  min-height:66px;
}

.specialty-products a:last-child:before {
  width:11px;
  height:22px;
  box-shadow:12px 0 0 -1px #81bc06;
  margin-right:15px;
}

.case-grid {
  grid-template-columns:1fr;
}

.case-card {
  display:block;
}

.case-art {
  height:85px;
  float:right;
  width:95px;
  margin-left:10px;
}

.process-list {
  grid-template-columns:1fr;
  gap:13px;
}

.process-list li {
  padding:2px 0 8px 65px;
  min-height:64px;
}

.process-list li:not(:last-child):after {
  display:none;
}

.process-list li>span {
  height:43px;
  width:43px;
}

.why-intro {
  display:block;
}

.why-intro>p:not(.eyebrow) {
  margin:10px 0;
}

.why-points {
  grid-template-columns:1fr;
}

.why-points article {
  min-height:0;
}

.welfare-band {
  grid-template-columns:40px 1fr;
  padding:18px;
  gap:12px;
}

.welfare-band>.text-link {
  grid-column:2;
  justify-self:start;
}

.welfare-symbol svg {
  width:40px;
}

.news-area {
  grid-template-columns:1fr;
}

.news-column+.news-column {
  padding:17px 0 0;
  border-left:0;
  border-top:1px solid var(--line);
}

.news-list time {
  display:block;
}

.news-list a {
  -webkit-line-clamp:3;
}

.faq-column {
  padding:17px;
}

.faq-list summary {
  padding-block:11px;
}

.faq-list summary:after {
  top:7px;
}

}

.specialty-products a:before {
  display:none;
}

.specialty-products a:last-child:before {
  display:none;
}

.product-wordmark {
  display:block;
  position:relative;
  width:190px;
  height:35px;
  overflow:hidden;
}

.product-wordmark img {
  display:block;
  position:absolute;
  width:190px;
  max-width:none;
  left:0;
  top:-65px;
}

.product-microsoft .product-wordmark img {
  top:-24px;
  width:210px;
  left:-13px;
}

.glass-card svg {
  overflow:visible;
}

.hero-visual .business {
  left:4%;
  width:34%;
}

.hero-visual .people {
  left:30%;
  width:34%;
}

.hero-visual .system {
  left:62%;
  width:34%;
}

@media(max-width:760px) {

.product-wordmark {
  width:120px;
  height:26px;
}

.product-wordmark img {
  width:120px;
  top:-41px;
}

.product-microsoft .product-wordmark img {
  width:140px;
  top:-17px;
  left:-9px;
}

.specialty-products a {
  padding-inline:8px;
}

}

.case-art img {
  width:100%;
  height:100%;
  object-fit:contain;
}

.case-art {
  height:120px;
}

.service-icon img {
  width:52px;
  height:48px;
}

.process-icon {
  position:absolute;
  left:65px;
  top:4px;
  width:45px;
  height:45px;
}

.why-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 190px;
  column-gap:24px;
}

.why-intro {
  grid-column:1;
  display:block;
}

.why-intro>p:not(.eyebrow) {
  margin:7px 0 0;
  max-width:650px;
}

.why-points {
  grid-column:1;
}

.why-points article {
  padding:13px 11px;
  gap:9px;
}

.why-points article>span {
  border:0;
  padding:0;
  width:32px;
  height:32px;
}

.why-points article>span img {
  width:32px;
  height:32px;
}

.town-aside {
  grid-column:2;
  grid-row:1/3;
  align-self:center;
  text-align:center;
}

.town-aside img {
  width:100%;
  display:block;
  mix-blend-mode:multiply;
}

.town-aside .text-link {
  display:inline-flex;
  margin-top:10px;
  border:1px solid #40a6c2;
  padding:6px 12px;
  border-radius:4px;
}

.welfare-band {
  position:relative;
  min-height:140px;
  padding-right:30%;
  grid-template-columns:55px 1fr;
  gap:5px 17px;
  background:#eefaff url('assets/03_hands_heart_seedling-768w.webp') right center/auto 100% no-repeat;
}

.welfare-symbol {
  grid-row:1/3;
  align-self:center;
}

.welfare-symbol img {
  width:55px;
  height:55px;
}

.welfare-band>.text-link {
  grid-column:2;
  justify-self:start;
  margin-top:6px;
  padding:6px 14px;
}

.welfare-band>div>p:last-child {
  max-width:490px;
}

.product-google .product-wordmark {
  height:auto;
  overflow:visible;
}

.product-google .product-wordmark img {
  position:static;
  width:100%;
  height:auto;
}

@media(max-width:1050px) {

.why-layout {
  grid-template-columns:minmax(0,1fr) 145px;
  gap:15px;
}

.why-points {
  gap:8px;
}

.why-points article {
  display:block;
}

.why-points article>span {
  display:block;
  margin-bottom:7px;
}

.town-aside .text-link {
  padding-inline:7px;
}

.process-icon {
  left:57px;
  width:37px;
}

.welfare-band {
  padding-right:27%;
}

}

@media(max-width:760px) {

.case-art {
  height:95px;
}

.process-icon {
  left:auto;
  right:0;
  top:5px;
  width:34px;
  height:34px;
}

.process-list li {
  padding-right:42px;
}

.why-layout {
  display:block;
}

.why-points article {
  display:flex;
}

.town-aside {
  display:flex;
  align-items:center;
  justify-content:center;
  margin-top:12px;
  gap:15px;
}

.town-aside img {
  width:145px;
}

.welfare-band {
  padding:18px 22% 18px 16px;
  grid-template-columns:32px 1fr;
  background-position:calc(100% + 70px) center;
}

.welfare-symbol img {
  width:32px;
}

.product-google .product-wordmark {
  width:120px;
}

}

.hero {
  padding-block:46px 52px;
  min-height:430px;
  column-gap:24px;
}

.hero-lead {
  line-height:1.85;
  color:var(--body-copy);
  max-width:510px;
}

.hero h1 {
  margin-bottom:22px;
}

.hero-visual {
  align-self:center;
}

.glass-card p {
  line-height:1.7;
}

.glass-card {
  padding-top:40px;
}

.section {
  padding-block:48px;
}

.section-heading {
  margin-bottom:26px;
}

.section-intro {
  line-height:1.85;
  color:var(--body-copy);
  margin-top:10px;
}

.section-heading h2 {
  line-height:1.5;
}

.issue-grid {
  gap:18px;
}

.issue {
  padding:24px 22px 24px 92px;
  min-height:174px;
}

.issue-icon {
  left:20px;
  top:25px;
  width:52px;
  height:52px;
}

.issue h3 {
  line-height:1.6;
}

.issue p {
  line-height:1.8;
  color:var(--body-copy);
  margin-top:12px;
}

#services {
  padding-block:48px;
}

.service-grid {
  gap:18px;
}

.service-card {
  padding:25px 46px 25px 98px;
  min-height:165px;
}

.service-icon {
  left:23px;
  top:30px;
}

.service-icon svg {
  width:48px;
}

.service-icon img {
  width:48px;
}

.service-card h3 {
  line-height:1.6;
  margin-bottom:9px;
}

.service-card p {
  line-height:1.85;
  color:var(--body-copy);
  max-width:none;
}

.specialty-row {
  margin-top:18px;
  gap:28px;
}

.specialty {
  padding:22px;
}

.specialty small {
  line-height:1.8;
  color:var(--body-copy);
}

.specialty-products p {
  line-height:1.8;
}

.specialty-products a {
  min-height:88px;
}

#cases {
  padding-block:48px;
}

.case-grid {
  gap:22px;
}

.case-card {
  padding:22px 24px 26px;
}

.case-art {
  height:130px;
  margin-bottom:15px;
}

.case-type {
  color:#006a8c;
  margin-bottom:10px;
}

.case-card h3 {
  line-height:1.6;
  margin-bottom:14px;
}

.case-description {
  line-height:1.85;
  color:var(--body-copy);
}

.case-meta {
  line-height:1.8;
  margin-top:20px;
  color:var(--body-copy);
}

.case-more {
  margin-top:26px;
}

.process-list {
  gap:30px;
}

.process-list li {
  padding-top:68px;
  min-height:180px;
}

.process-list b {
  line-height:1.6;
  margin-bottom:8px;
}

.process-list small {
  line-height:1.8;
  color:var(--body-copy);
}

.process-list li:not(:last-child):after {
  top:69px;
}

section[aria-labelledby='why-title'] {
  padding-block:42px;
}

.why-layout {
  grid-template-columns:minmax(0,1fr) 180px;
  gap:20px 28px;
}

.why-intro>p:not(.eyebrow) {
  line-height:1.85;
  color:var(--body-copy);
  margin-top:12px;
  max-width:760px;
}

.why-points {
  gap:16px;
  margin-top:0;
}

.why-points article {
  display:block;
  padding:22px 18px;
}

.why-points article:first-child {
  display:block;
  padding:22px 18px;
}

.why-points article>span {
  display:block;
  margin-bottom:14px;
}

.why-points h3 {
  line-height:1.6;
  margin-bottom:10px;
}

.why-points p {
  line-height:1.85;
  color:var(--body-copy);
}

.town-aside .text-link {
  padding:10px;
}

.welfare-band {
  padding-top:30px;
  padding-bottom:30px;
  min-height:210px;
}

.welfare-band h2 {
  line-height:1.6;
}

.welfare-band>div>p:last-child {
  line-height:1.85;
  color:var(--body-copy);
  margin-top:10px;
}

.welfare-band>.text-link {
  padding:10px 16px;
  margin-top:14px;
  white-space:normal;
}

.news-area {
  padding-block:48px;
  gap:28px;
}

.news-list li {
  padding-block:16px;
}

.news-list a {
  display:block;
  line-height:1.85;
  color:var(--body-copy);
  overflow:visible;
  -webkit-line-clamp:unset;
}

.news-external {
  margin-top:20px;
}

.faq-column {
  padding:22px 18px;
}

.faq-list details {
  margin-bottom:12px;
}

.faq-list summary {
  line-height:1.8;
  padding:12px 28px 12px 12px;
  color:var(--body-copy);
}

.faq-list summary:after {
  top:10px;
  right:9px;
}

.faq-list details p {
  line-height:1.85;
  padding:4px 12px 16px;
  color:var(--body-copy);
}

@media(min-width:761px) and (max-width:1050px) {

.hero {
  column-gap:15px;
}

.glass-card {
  height:240px;
}

.hero-visual {
  height:330px;
}

.issue {
  padding:22px 18px;
}

.issue-icon {
  position:static;
  margin-bottom:14px;
}

.service-card {
  padding-left:80px;
}

.service-icon {
  left:18px;
}

.service-icon svg {
  width:40px;
}

.service-icon img {
  width:40px;
}

.specialty>span:nth-child(2) {
  display:block;
}

.case-card {
  padding-inline:20px;
}

.why-layout {
  grid-template-columns:minmax(0,1fr) 145px;
  gap:18px;
}

.why-points {
  gap:12px;
}

.why-points article {
  padding:18px 15px;
}

.why-points article:first-child {
  padding:18px 15px;
}

.welfare-band {
  padding-right:26%;
}

.news-area {
  gap:20px;
}

.news-column+.news-column {
  padding-left:20px;
}

.faq-column {
  padding:18px 14px;
}

}

@media(max-width:760px) {

.hero {
  padding-block:30px 38px;
}

.hero-visual {
  height:325px;
}

.glass-card {
  height:235px;
}

.section {
  padding-block:36px;
}

#services {
  padding-block:36px;
}

#cases {
  padding-block:36px;
}

.issue {
  padding:22px 20px 22px 83px;
  min-height:0;
}

.issue-icon {
  left:18px;
  top:23px;
  width:46px;
  height:46px;
}

.service-card {
  padding:23px 35px 23px 75px;
  min-height:0;
}

.service-icon {
  left:18px;
  top:25px;
}

.service-icon svg {
  width:38px;
}

.service-icon img {
  width:38px;
}

.card-link {
  right:13px;
}

.specialty {
  padding:18px 12px;
}

.specialty>span:nth-child(2) {
  display:block;
}

.case-card {
  padding:22px;
}

.case-art {
  height:100px;
  margin-bottom:12px;
}

.case-description {
  clear:both;
}

.process-list li {
  min-height:90px;
  padding:0 40px 10px 61px;
}

.why-layout {
  display:block;
}

.why-points {
  margin-top:22px;
}

.why-points article {
  display:flex;
  padding:22px 18px;
}

.why-points article:first-child {
  display:flex;
  padding:22px 18px;
}

.welfare-band {
  padding:26px 20px;
  background-image:none;
  grid-template-columns:32px 1fr;
}

.news-area {
  gap:28px;
}

.news-column+.news-column {
  padding:24px 0 0;
}

.news-list time {
  color:#53677b;
}

.faq-column {
  padding:24px 18px;
}

}

.hero h1 {
  font-size:var(--text-hero);
  line-height:1.3;
}

.hero-lead {
  font-size:var(--text-lead);
  line-height:var(--line-body);
  color:var(--body-copy);
}

.section-intro {
  font-size:var(--text-lead);
  line-height:var(--line-body);
  color:var(--body-copy);
}

.why-intro>p:not(.eyebrow) {
  font-size:var(--text-lead);
  line-height:var(--line-body);
  color:var(--body-copy);
}

.hero-lead {
  max-width:29em;
}

.section-intro {
  max-width:var(--measure-copy);
}

.why-intro>p:not(.eyebrow) {
  max-width:var(--measure-copy);
}

.section-heading h2 {
  font-size:var(--text-section);
  line-height:1.5;
}

.why-intro h2 {
  font-size:var(--text-section);
  line-height:1.5;
}

.issue h3 {
  font-size:var(--text-card);
  line-height:var(--line-heading);
}

.service-card h3 {
  font-size:var(--text-card);
  line-height:var(--line-heading);
}

.case-card h3 {
  font-size:var(--text-card);
  line-height:var(--line-heading);
}

.why-points h3 {
  font-size:var(--text-card);
  line-height:var(--line-heading);
}

.specialty b {
  font-size:var(--text-card);
  line-height:var(--line-heading);
}

.process-list b {
  font-size:var(--text-lead);
  line-height:var(--line-heading);
}

.issue p {
  font-size:var(--text-body);
  line-height:var(--line-body);
  color:var(--body-copy);
}

.service-card p {
  font-size:var(--text-body);
  line-height:var(--line-body);
  color:var(--body-copy);
}

.case-description {
  font-size:var(--text-body);
  line-height:var(--line-body);
  color:var(--body-copy);
}

.process-list small {
  font-size:var(--text-body);
  line-height:var(--line-body);
  color:var(--body-copy);
}

.why-points p {
  font-size:var(--text-body);
  line-height:var(--line-body);
  color:var(--body-copy);
}

.welfare-band>div>p:last-child {
  font-size:var(--text-body);
  line-height:var(--line-body);
  color:var(--body-copy);
}

.news-list a {
  font-size:var(--text-body);
  line-height:var(--line-body);
  color:var(--body-copy);
}

.faq-list summary {
  font-size:var(--text-body);
  line-height:var(--line-body);
  color:var(--body-copy);
}

.faq-list details p {
  font-size:var(--text-body);
  line-height:var(--line-body);
  color:var(--body-copy);
}

.specialty small {
  font-size:var(--text-body);
  line-height:var(--line-body);
  color:var(--body-copy);
}

.specialty-products p {
  font-size:var(--text-body);
  line-height:var(--line-body);
  color:var(--body-copy);
}

.glass-card p {
  font-size:var(--text-body);
  line-height:var(--line-body);
  color:var(--body-copy);
}

.case-more .text-link {
  font-size:var(--text-body);
}

.town-aside .text-link {
  font-size:var(--text-body);
}

.welfare-band>.text-link {
  font-size:var(--text-body);
}

.news-external {
  font-size:var(--text-body);
}

.hero .eyebrow {
  font-size:var(--text-body);
  letter-spacing:.02em;
}

.section-heading .eyebrow {
  font-size:var(--text-label);
  letter-spacing:.12em;
  line-height:1.6;
}

.case-type {
  font-size:var(--text-note);
  line-height:var(--line-body);
}

.case-meta {
  font-size:var(--text-note);
  line-height:var(--line-body);
}

.news-list time {
  font-size:var(--text-note);
  line-height:var(--line-body);
}

.visual-caption {
  font-size:var(--text-note);
  line-height:var(--line-body);
}

.news-column .section-heading h2 {
  font-size:var(--text-compact-heading);
  line-height:1.6;
}

.faq-column .section-heading h2 {
  font-size:var(--text-compact-heading);
  line-height:1.6;
}

.welfare-band h2 {
  font-size:var(--text-compact-heading);
  line-height:1.6;
}

.glass-card h2 {
  font-size:var(--text-card);
}

.specialty-mark {
  font-size:var(--text-lead);
}

.card-link {
  font-size:0;
}

.card-link b {
  font-size:1.25rem;
}

.faq-list summary:after {
  font-size:1.25rem;
}

.process-list li>span {
  font-size:1.375rem;
}

.process-list li:not(:last-child):after {
  font-size:1.375rem;
}

.section {
  padding-block:var(--space-section);
}

#services {
  padding-block:var(--space-section);
}

#cases {
  padding-block:var(--space-section);
}

section[aria-labelledby='why-title'] {
  padding-block:var(--space-related);
}

.news-area {
  padding-block:var(--space-related);
}

.service-grid {
  gap:var(--space-grid);
}

.case-grid {
  gap:var(--space-grid);
}

.case-card {
  padding:var(--space-card);
}

.issue {
  height:auto;
}

.service-card {
  height:auto;
}

.case-card {
  height:auto;
}

.why-points article {
  height:auto;
}

.glass-card {
  height:auto;
  min-height:16.25rem;
  padding-bottom:1.5rem;
}

@media(max-width:1050px) {

.hero-visual {
  min-height:23rem;
}

.glass-card {
  min-height:16.25rem;
}

.why-layout {
  grid-template-columns:minmax(0,1fr) 9rem;
}

.why-points {
  grid-template-columns:1fr;
}

.why-points article {
  display:flex;
  gap:1rem;
  padding:1.25rem;
}

.why-points article:first-child {
  display:flex;
  gap:1rem;
  padding:1.25rem;
}

.why-points article>span {
  flex-shrink:0;
  margin-bottom:0;
}

}

@media(max-width:760px) {

.hero h1 {
  font-size:clamp(2rem,1.2rem + 3.4vw,2.5rem);
}

.hero-visual {
  height:23rem;
  min-height:23rem;
}

.why-layout {
  display:block;
}

.why-points {
  grid-template-columns:1fr;
}

.visual-caption {
  font-size:var(--text-note);
}

}

/* 2026-10-20 — home composition. Keep the approved three-panel composition.
   Static content is always visible; a single connection stroke is the only entrance motion. */
.home-page {
  --home-ink:#00114c;
  --home-wash:#ecf7fc;
  --home-edge:#dcecf4;
}
.home-page .hero {
  min-height:514px;
  padding-block:44px 50px;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  column-gap:32px;
}
.home-page .hero-copy { max-width:550px; }
.home-page .hero .eyebrow { margin-bottom:18px; font-weight:600; }
.home-page .hero h1 {
  color:var(--home-ink);
  font-size:clamp(2rem,1.2rem + 2.2vw,2.9375rem);
  line-height:1.4;
  letter-spacing:-.025em;
  margin-bottom:22px;
}
.home-page .hero-lead { max-width:28em; line-height:1.9; }
.home-page .hero-phrase { white-space:nowrap; }
.home-page .hero .actions { margin-top:28px; gap:28px; }
.home-page .hero-visual {
  height:410px;
  min-height:410px;
  margin-top:0;
  perspective:none;
}
.home-page .glass-card {
  height:264px;
  min-height:264px;
  padding:43px 8px 20px;
  border-radius:5px;
  box-shadow:8px 14px 24px #285d720a;
}
.home-page .glass-card h2 { margin:15px 0 10px; line-height:1.6; }
.home-page .glass-card p { font-size:16px; line-height:1.8; }
.home-page .hero-visual .business { top:62px; }
.home-page .hero-visual .people { top:25px; }
.home-page .hero-visual .system { top:25px; }
.home-page .visual-caption { bottom:-1px; right:6px; font-size:14px; line-height:1.8; transform:rotate(-6deg); }
.home-page .visual-caption:before { display:none; }
.home-page .hero-visual .hero-connection {
  position:absolute;
  left:4%;
  bottom:37px;
  width:92%;
  height:48px;
  filter:none;
  overflow:visible;
  fill:none;
  stroke-width:1.3;
}
.hero-connection .connection-track { stroke:#c5e4ed; }
.hero-connection .connection-trace { stroke:#76b5c5; }
.hero-connection circle { fill:#fff; stroke:#76b5c5; }
.home-page section[aria-labelledby="issues-title"] {
  background:linear-gradient(110deg,var(--home-wash),#f2faff);
  padding-block:44px 46px;
}
.home-page section[aria-labelledby="issues-title"] .section-heading { margin-bottom:24px; }
.home-page section[aria-labelledby="issues-title"] h2 { letter-spacing:-.02em; }
.home-page .issue-grid { gap:18px; }
.home-page .issue { padding:26px 24px 26px 94px; border:1px solid #ffffff; border-radius:6px; }
.home-page .issue-icon { left:22px; top:28px; width:50px; height:50px; }
.home-page .issue h3 { font-size:20px; line-height:1.6; letter-spacing:0; }
.home-page .issue p { margin-top:10px; line-height:1.85; }
.home-page #services { padding-block:54px 58px; }
.home-page #services>.section-heading { grid-template-columns:1fr 1fr; gap:0 32px; margin-bottom:28px; }
.home-page #services>.section-heading>.section-intro { max-width:28em; margin-top:0; }
.home-page .service-grid { gap:16px 20px; }
.home-page .service-card {
  padding:25px 26px 24px 94px;
  min-height:0;
  border-color:var(--home-edge);
  border-radius:6px;
  background:#fff;
  transition:border-color .2s ease,background-color .2s ease;
}
.home-page .service-card:hover,
.home-page .service-card:focus-visible { transform:none; box-shadow:none; border-color:#80bdce; background:#f8fcfe; }
.home-page .service-icon { left:24px; top:31px; }
.home-page .service-icon svg,.home-page .service-icon img { width:46px; height:46px; }
.home-page .service-card h3 { font-size:20px; line-height:1.6; margin-bottom:8px; letter-spacing:-.015em; }
.home-page .service-card p { line-height:1.85; }
.home-page .service-card .card-link {
  position:static;
  margin-top:12px;
  padding-top:0;
  align-self:flex-start;
  font-size:16px;
  line-height:1.8;
  font-weight:500;
}
.home-page .card-link b { display:inline-block; font-size:16px; transition:transform .2s ease; }
.home-page .service-card:hover .card-link b,
.home-page .service-card:focus-visible .card-link b { transform:translateX(4px); }
/* A secondary route for visitors who cannot choose among the four services. */
.home-page #services .selection-link {
  display:flex; align-items:center; justify-content:center; flex-wrap:wrap;
  gap:8px 24px; margin:26px 0 22px; padding:16px 0;
  border-block:1px solid var(--line); background:transparent;
}
.home-page #services .selection-link p { margin:0; font-size:16px; color:var(--body-copy); }
.home-page #services .selection-link .text-link {
  display:inline-flex; align-items:center; gap:12px; min-height:44px;
  margin:0; padding:6px 0; border:0; border-radius:0; background:transparent;
  color:var(--teal-dark); font-size:16px; font-weight:700;
  text-decoration:underline; text-underline-offset:5px;
}
@media(max-width:760px) {
  .home-page #services .selection-link { align-items:flex-start; flex-direction:column; gap:0; }
}
.home-page .specialty-row { margin-top:0; gap:28px; }
.home-page .specialty { padding:20px 24px; }
@media(prefers-reduced-motion:no-preference) {
  .hero-connection .connection-trace {
    animation:home-connect 1.4s cubic-bezier(.25,.1,.25,1) .15s both;
  }
  @keyframes home-connect {
    from { stroke-dasharray:1; stroke-dashoffset:1; opacity:.35; }
    to { stroke-dasharray:1; stroke-dashoffset:0; opacity:1; }
  }
}
@media(min-width:761px) and (max-width:1050px) {
  .home-page .hero { column-gap:20px; min-height:480px; }
  .home-page .hero h1 { font-size:clamp(1.875rem,3.45vw,2.5rem); }
  .home-page .hero-visual { height:370px; min-height:370px; }
  .home-page .glass-card { min-height:235px; height:235px; padding:35px 5px 16px; }
  .home-page .glass-card p { font-size:16px; letter-spacing:-.025em; }
  .home-page .hero-panel-phrase { display:block; }
  .home-page .hero-visual .business { top:48px; }
  .home-page .visual-caption { font-size:13px; }
  .home-page .issue { padding:23px; }
  .home-page .issue-icon { position:static; margin-bottom:14px; }
  .home-page .issue h3 { font-size:18px; }
  .home-page .service-card { padding:24px 22px 24px 76px; }
  .home-page .service-icon { left:19px; }
  .home-page .service-icon svg,.home-page .service-icon img { width:38px; height:42px; }
}
@media(max-width:760px) {
  .home-page .hero { grid-template-columns:1fr; padding-block:34px 30px; gap:18px; min-height:0; }
  .home-page .hero .eyebrow { margin-bottom:14px; }
  .home-page .hero h1 { font-size:clamp(2rem,8.2vw,2.5rem); line-height:1.45; margin-bottom:18px; }
  .home-page .hero-lead { line-height:1.9; }
  .home-page .hero .actions { gap:20px; margin-top:24px; }
  .home-page .hero-visual { width:min(100%,440px); height:380px; min-height:380px; margin-top:4px; }
  .home-page .glass-card { min-height:246px; height:246px; padding:28px 4px 12px; }
  .home-page .glass-card svg { width:32px; height:32px; }
  .home-page .glass-card h2 { font-size:18px; margin:12px 0 8px; }
  .home-page .glass-card p { font-size:16px; line-height:1.75; letter-spacing:-.025em; }
  .home-page .hero-visual .business { left:0; width:38%; }
  .home-page .hero-visual .people { left:31%; width:38%; }
  .home-page .hero-visual .system { left:62%; width:38%; }
  .home-page .hero-panel-phrase { display:block; }
  .home-page .hero-visual .business { top:49px; }
  .home-page .hero-visual .people,.home-page .hero-visual .system { top:20px; }
  .home-page .visual-caption { font-size:12px; bottom:0; right:4px; }
  .home-page .hero-visual .hero-connection { bottom:35px; }
  .home-page section[aria-labelledby="issues-title"] { padding-block:34px 36px; }
  .home-page section[aria-labelledby="issues-title"] .section-heading { margin-bottom:22px; }
  .home-page .issue-grid { gap:12px; }
  .home-page .issue { padding:22px 20px 22px 80px; }
  .home-page .issue-icon { position:absolute; left:18px; top:25px; width:44px; height:44px; }
  .home-page .issue h3 { font-size:18px; }
  .home-page .issue p { margin-top:8px; }
  .home-page #services { padding-block:38px 42px; }
  .home-page #services>.section-heading { display:block; margin-bottom:24px; }
  .home-page #services>.section-heading>.section-intro { margin-top:12px; }
  .home-page .service-grid { grid-template-columns:1fr; gap:12px; }
  .home-page .service-card { padding:24px 21px 22px 76px; min-height:0; }
  .home-page .service-icon { left:18px; top:28px; }
  .home-page .service-icon svg,.home-page .service-icon img { width:38px; height:42px; }
  .home-page .service-card h3 { font-size:18px; }
  .home-page .service-card .card-link { margin-top:12px; }
  .home-page .specialty { padding:18px 12px; }
}
@media(prefers-reduced-motion:reduce) {
  html:has(.home-page) { scroll-behavior:auto; }
  .home-page .service-card,.home-page .card-link b { transition:none; }
}

/* A 2.2px rendered stroke stays readable at every responsive icon size. */
.home-page :is(.glass-card,.issue-icon,.service-icon) svg { stroke-width:2.2; }
.home-page :is(.glass-card,.issue-icon,.service-icon) svg :is(path,circle,rect,line,polyline,polygon,ellipse) { vector-effect:non-scaling-stroke; }
.home-page .issue-icon svg { width:42px; height:42px; }

/* Keep Japanese predicates together in the service overview. */
.home-page .service-card p { text-wrap:pretty; }
.home-page .service-card .home-phrase { display:inline-block; }

/* 2026-10-21 — supporting content: principles, company link and welfare route.
   Keep the copy and destinations; remove decorative photos and card repetition. */
.home-page .why-layout { display:block; }
.home-page .why-intro {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:0 40px;
  align-items:start;
}
.home-page .why-intro>p:not(.eyebrow) {
  grid-column:2;
  grid-row:1/3;
  align-self:center;
  margin:0;
}
.home-page .why-points {
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px;
  margin-top:30px;
}
.home-page .why-points article {
  display:flex;
  gap:14px;
  border:0;
  border-top:1px solid var(--home-edge);
  border-radius:0;
  background:transparent;
  padding:24px 0 0;
  min-height:0;
}
.home-page .why-points article>span { margin:2px 0 0; }
.home-page .why-points h3 { font-size:18px; font-weight:600; margin-bottom:8px; }
.home-page .why-points p { font-weight:400; }
.home-page .why-about { margin-top:20px; text-align:right; }
.home-page .why-about .text-link {
  display:inline-flex;
  align-items:center;
  gap:8px;
  width:max-content;
  min-height:44px;
  border:0;
  border-radius:0;
  background:transparent;
  padding:8px 0;
  font-size:16px;
  font-weight:500;
}
.home-page .welfare-band {
  grid-template-columns:52px minmax(0,1fr) auto;
  gap:24px;
  padding:28px 32px;
  min-height:0;
  background:var(--home-wash);
}
.home-page .welfare-symbol { grid-row:auto; }
.home-page .welfare-symbol img { width:48px; height:48px; }
.home-page .welfare-band>div>p:last-child { max-width:38em; margin-top:8px; }
.home-page .welfare-band>.text-link {
  grid-column:auto;
  margin:0;
  padding:10px 16px;
  font-weight:500;
}
@media(min-width:761px) and (max-width:1050px) {
  .home-page .why-intro { gap:0 28px; }
  .home-page .why-points { gap:22px; }
  .home-page .why-points article { display:block; }
  .home-page .why-points article>span { margin-bottom:12px; }
  .home-page .welfare-band { grid-template-columns:48px minmax(0,1fr); gap:16px 22px; }
  .home-page .welfare-symbol { grid-row:1/3; }
  .home-page .welfare-band>.text-link { grid-column:2; }
}
@media(max-width:760px) {
  .home-page .why-intro { display:block; }
  .home-page .why-intro>p:not(.eyebrow) { margin-top:14px; }
  .home-page .why-points { grid-template-columns:1fr; gap:22px; margin-top:24px; }
  .home-page .why-points article { padding-top:22px; }
  .home-page .why-about { margin-top:16px; text-align:left; }
  .home-page .welfare-band { grid-template-columns:32px minmax(0,1fr); gap:16px; padding:26px 20px; }
  .home-page .welfare-symbol { grid-row:1/3; align-self:start; margin-top:4px; }
  .home-page .welfare-symbol img { width:32px; height:32px; }
  .home-page .welfare-band>.text-link { grid-column:2; justify-self:start; }
}

/* Keep this two-character process term intact at intermediate column widths. */
.home-page .process-list .process-phrase { white-space:nowrap; }

/* Keep short heading phrases intact at narrow widths. */
.home-page :is(.welfare-band,#process-title,#why-title) .home-phrase { display:inline-block; }
