.page-about{
  --a-surface:var(--white);
  --a-radius:var(--radius-lg);
  --a-rail:172px;
  background:var(--frost);
  color:var(--ink);
  font-family:var(--sans);
  overflow-x:clip;
  padding-bottom:56px;
}

.page-about img{max-width:100%;height:auto;display:block;}
.page-about :where(ul,ol){margin:0;padding:0;}
.page-about :where(a,summary,.about-tl__node){outline:none;}
.page-about :where(a,summary,.about-tl__node):focus-visible{
  outline:3px solid var(--grape);
  outline-offset:3px;
  border-radius:var(--radius-sm);
}

.page-about .about-head{padding-top:18px;}

/* ---------- hero ---------- */
.page-about .about-hero{padding:8px 0 28px;}
.page-about .about-hero__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:28px;
  align-items:center;
}
.page-about .about-hero__title{
  font-size:clamp(32px,7.4vw,60px);
  line-height:1.1;
  letter-spacing:-.02em;
  font-weight:800;
  margin:12px 0 16px;
  color:var(--grape-deep);
}
.page-about .about-hero__lead{
  margin:0;
  max-width:58ch;
  font-size:clamp(15px,2.4vw,18px);
  line-height:1.8;
  color:var(--ink-soft);
}
.page-about .about-stats{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:26px;
  list-style:none;
}
.page-about .about-stats li{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  background:var(--a-surface);
  box-shadow:var(--shadow-1);
}
.page-about .about-stats__num{
  font-family:var(--mono);
  font-size:26px;
  font-weight:700;
  line-height:1.1;
  color:var(--grape-deep);
  letter-spacing:-.02em;
}
.page-about .about-stats li:nth-child(2) .about-stats__num{color:var(--grape);}
.page-about .about-stats li:nth-child(3) .about-stats__num{color:var(--green-deep);}
.page-about .about-stats li:nth-child(4) .about-stats__num{color:var(--amber);}
.page-about .about-stats__k{
  font-size:13px;
  line-height:1.5;
  color:var(--ink-soft);
}
.page-about .about-hero__figure{
  margin:0;
  border-radius:var(--a-radius);
  overflow:hidden;
  background:var(--grad-fresh);
  box-shadow:var(--shadow-2);
}
.page-about .about-hero__figure img{
  width:100%;
  aspect-ratio:4 / 3;
  object-fit:cover;
}
.page-about .about-hero__figure .figure__caption{
  padding:12px 16px;
  font-size:13px;
  line-height:1.6;
  color:var(--ink-soft);
  background:var(--a-surface);
}
.page-about .about-band{
  height:8px;
  margin-top:8px;
  border-radius:var(--radius-pill);
  background:var(--grad-band);
}

/* ---------- index strip ---------- */
.page-about .about-index{padding:20px 0 6px;}
.page-about .about-index__list{
  display:flex;
  gap:10px;
  overflow-x:auto;
  padding-bottom:8px;
  list-style:none;
  scrollbar-width:thin;
}
.page-about .about-index__link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  white-space:nowrap;
  padding:9px 16px;
  border:1px solid var(--line);
  border-radius:var(--radius-pill);
  background:var(--a-surface);
  color:var(--ink);
  font-size:14px;
  font-weight:600;
  text-decoration:none;
  transition:border-color 180ms ease,color 180ms ease,box-shadow 180ms ease,transform 180ms ease;
}
.page-about .about-index__link:hover{
  border-color:var(--grape);
  color:var(--grape-deep);
  box-shadow:var(--shadow-1);
  transform:translateY(-1px);
}
.page-about .about-index__num{
  font-size:12px;
  color:var(--grape);
  letter-spacing:.04em;
}

/* ---------- sections ---------- */
.page-about .about-sec{
  padding:40px 0;
  scroll-margin-top:88px;
}
.page-about .about-sec + .about-sec{border-top:1px solid var(--line);}
.page-about .about-sec--fresh{
  background:linear-gradient(180deg,var(--frost) 0%,#EFF3EA 100%);
}
.page-about .about-sec__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:18px;
}
.page-about .about-sec__rail{
  display:flex;
  align-items:baseline;
  gap:12px;
}
.page-about .about-sec__num{
  font-family:var(--mono);
  font-size:clamp(28px,5vw,44px);
  font-weight:700;
  line-height:1;
  letter-spacing:-.03em;
  color:var(--grape-soft);
}
.page-about .about-sec__label{
  font-size:13px;
  font-weight:700;
  letter-spacing:.08em;
  color:var(--grape-deep);
}
.page-about .about-sec__body{min-width:0;}
.page-about .about-sec__title{
  margin:0 0 16px;
  font-size:clamp(24px,3.8vw,36px);
  line-height:1.18;
  letter-spacing:-.01em;
  font-weight:800;
  color:var(--grape-deep);
}
.page-about .about-sec__p{
  margin:0 0 14px;
  max-width:66ch;
  font-size:16px;
  line-height:1.8;
  color:var(--ink-soft);
}
.page-about .about-sec__p--tail{
  margin-top:18px;
  padding-top:16px;
  border-top:1px dashed var(--line);
  color:var(--ink);
}

.page-about .about-quote{
  margin:0 0 18px;
  padding:16px 20px;
  border-left:6px solid var(--green);
  border-radius:0 var(--radius-md) var(--radius-md) 0;
  background:var(--green-soft);
  color:var(--green-deep);
  font-size:clamp(16px,2.6vw,20px);
  font-weight:700;
  line-height:1.55;
}

.page-about .about-cards{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:12px;
  margin-top:20px;
}
.page-about .about-card{
  padding:16px 18px;
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  background:var(--a-surface);
  transition:transform 180ms ease,border-color 180ms ease,box-shadow 180ms ease;
}
.page-about .about-card:hover{
  transform:translateY(-3px);
  border-color:var(--grape-soft);
  box-shadow:var(--shadow-2);
}
.page-about .about-card__title{
  margin:0 0 8px;
  font-size:17px;
  font-weight:700;
  color:var(--grape-deep);
}
.page-about .about-card__text{
  margin:0;
  font-size:15px;
  line-height:1.75;
  color:var(--ink-soft);
}

.page-about .about-figure{
  margin:22px 0 0;
  border-radius:var(--a-radius);
  overflow:hidden;
  background:var(--grad-fresh);
  box-shadow:var(--shadow-1);
}
.page-about .about-figure img{
  width:100%;
  aspect-ratio:3 / 2;
  object-fit:cover;
}
.page-about .about-figure .figure__caption{
  padding:12px 16px;
  font-size:13px;
  line-height:1.6;
  color:var(--ink-soft);
  background:var(--a-surface);
}

.page-about .about-links{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:22px;
}

/* ---------- timeline ---------- */
.page-about .about-tl{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:20px;
  list-style:none;
  counter-reset:none;
}
.page-about .about-tl__node{
  position:relative;
  padding:16px 14px 12px 18px;
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  background:var(--a-surface);
  overflow:hidden;
  transition:transform 180ms ease,box-shadow 180ms ease,border-color 180ms ease;
}
.page-about .about-tl__node::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:0;
  width:5px;
  background:var(--tl,var(--grape-soft));
}
.page-about .about-tl__node:nth-child(1){--tl:var(--grape-soft);}
.page-about .about-tl__node:nth-child(2){--tl:#8E5BB8;}
.page-about .about-tl__node:nth-child(3){--tl:var(--grape);}
.page-about .about-tl__node:nth-child(4){--tl:var(--green);}
.page-about .about-tl__node:nth-child(5){--tl:var(--green-deep);}
.page-about .about-tl__node:nth-child(6){--tl:var(--amber);}
.page-about .about-tl__node:hover,
.page-about .about-tl__node:focus-visible{
  transform:translateY(-3px);
  border-color:var(--tl);
  box-shadow:var(--shadow-2);
}
.page-about .about-tl__step{
  display:block;
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.04em;
  color:var(--grape);
}
.page-about .about-tl__name{
  display:block;
  margin-top:4px;
  font-size:15px;
  font-weight:700;
  color:var(--ink);
}
.page-about .about-tl__more{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows 200ms ease;
}
.page-about .about-tl__node:hover .about-tl__more,
.page-about .about-tl__node:focus-visible .about-tl__more{
  grid-template-rows:1fr;
}
.page-about .about-tl__more > span{
  overflow:hidden;
  display:block;
  padding-top:8px;
  font-size:13px;
  line-height:1.65;
  color:var(--ink-soft);
}

.page-about .about-note{
  margin-top:20px;
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  background:var(--grad-fresh);
  overflow:hidden;
}
.page-about .about-note summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:16px 18px;
  cursor:pointer;
  font-size:15px;
  font-weight:700;
  color:var(--grape-deep);
  list-style:none;
}
.page-about .about-note summary::-webkit-details-marker{display:none;}
.page-about .about-note summary::after{
  content:"+";
  font-family:var(--mono);
  font-size:18px;
  line-height:1;
  color:var(--grape);
}
.page-about .about-note[open] summary::after{content:"–";}
.page-about .about-note p{
  margin:0;
  padding:0 18px 18px;
  font-size:15px;
  line-height:1.75;
  color:var(--ink-soft);
  max-width:64ch;
}

/* ---------- service ---------- */
.page-about .about-service{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:12px;
  margin-top:18px;
}
.page-about .about-service__item{
  padding:16px 18px;
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  background:var(--a-surface);
  transition:border-color 180ms ease,box-shadow 180ms ease;
}
.page-about .about-service__item:hover{
  border-color:var(--green);
  box-shadow:var(--shadow-1);
}
.page-about .about-service__label{
  display:block;
  font-size:12px;
  font-weight:700;
  letter-spacing:.1em;
  color:var(--grape);
}
.page-about .about-service__value{
  display:block;
  margin-top:6px;
  font-size:15px;
  font-weight:600;
  line-height:1.6;
  color:var(--ink);
  overflow-wrap:anywhere;
}
.page-about .about-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:24px;
}

/* ---------- responsive ---------- */
@media (min-width:600px){
  .page-about .about-cards{grid-template-columns:repeat(2,minmax(0,1fr));}
  .page-about .about-service{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;}
  .page-about .about-tl{grid-template-columns:repeat(3,minmax(0,1fr));}
}

@media (min-width:900px){
  .page-about{padding-bottom:80px;}
  .page-about .about-hero{padding:24px 0 36px;}
  .page-about .about-hero__grid{
    grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
    gap:52px;
    align-items:center;
  }
  .page-about .about-hero__figure{
    clip-path:polygon(0 0,100% 0,100% 90%,0 100%);
    border-radius:var(--a-radius);
  }
  .page-about .about-hero__figure img{aspect-ratio:4 / 3;}
  .page-about .about-sec{padding:60px 0;}
  .page-about .about-sec__grid{
    grid-template-columns:var(--a-rail) minmax(0,1fr);
    gap:56px;
    align-items:start;
  }
  .page-about .about-sec__rail{
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
    position:sticky;
    top:96px;
  }
  .page-about .about-sec__rail::after{
    content:"";
    width:48px;
    height:5px;
    border-radius:var(--radius-pill);
    background:var(--grad-band);
  }
  .page-about .about-figure{margin-top:26px;}
  .page-about .about-figure--slant{
    clip-path:polygon(0 0,100% 0,100% 100%,0 92%);
  }
}

@media (min-width:1080px){
  .page-about .about-tl{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;}
  .page-about .about-tl__node{padding:16px 12px 12px 16px;}
  .page-about .about-tl__name{font-size:14px;}
}

@media (prefers-reduced-motion: reduce){
  .page-about .about-card,
  .page-about .about-index__link,
  .page-about .about-tl__node,
  .page-about .about-tl__more,
  .page-about .about-service__item{
    transition:none;
  }
  .page-about .about-card:hover,
  .page-about .about-index__link:hover,
  .page-about .about-tl__node:hover,
  .page-about .about-tl__node:focus-visible{
    transform:none;
  }
}
