/* 3D main visual (replaces the former static MV image; rest of the site is unchanged) */
.l-index-visual--3d{
  background:linear-gradient(135deg,#e6f4fd 0%,#f3f9ff 55%,#eaf6fb 100%) !important;
  overflow:hidden;
}
.l-index-visual--3d #mv3d{position:absolute;inset:0;width:100%;height:100%;display:block}
.l-index-visual--3d .l-index-visual__inner{position:relative;z-index:2;pointer-events:none}
.mv3d-copy{margin-right:auto;width:min(500px,50%);color:#002742}
.mv3d-title{font-size:clamp(24px,3vw,40px);line-height:1.4;font-weight:900;letter-spacing:.03em;margin-bottom:20px;white-space:nowrap;text-shadow:0 0 10px rgba(255,255,255,.7)}
.mv3d-text{font-size:clamp(13px,1.25vw,16px);line-height:2;letter-spacing:.06em;font-weight:700;text-shadow:0 0 8px rgba(255,255,255,.85),0 0 2px rgba(255,255,255,.9)}
@media screen and (max-width:599px){
  .l-index-visual--3d .l-index-visual__inner{justify-content:flex-end;padding-bottom:36px;min-height:130vw}
  .mv3d-copy{width:100%;margin:0}
  .mv3d-title{font-size:clamp(20px,6.4vw,32px);letter-spacing:0;margin-bottom:12px}
  .mv3d-text{font-size:12px;line-height:1.85}
}
@media screen and (min-width:600px) and (max-width:959px){
  .mv3d-copy{width:min(380px,48%)}
  .mv3d-title{font-size:clamp(18px,3.4vw,30px);letter-spacing:0}
}

/* typeface aligned with www.e-infonet.jp body text: Montserrat (Latin/numerals) + Noto Sans JP (Japanese) */
:root{--font-sans:"Montserrat","Noto Sans JP","Helvetica Neue",arial,verdana,"Hiragino Kaku Gothic ProN","Hiragino Sans",meiryo,sans-serif}
html body,html body button,html body input,html body textarea{font-family:var(--font-sans)}

/* achievements strip (100+ / 600+ / 0) */
.p-index-stats{background:#fff;padding:44px 30px 48px;border-bottom:1px solid #e5e5e5}
.p-index-stats__inner{max-width:1120px;margin:0 auto}
.p-index-stats__title{font-size:clamp(20px,2.4vw,28px);font-weight:700;color:#002742;text-align:center;margin-bottom:28px;letter-spacing:.04em}
.p-index-stats__title::after{content:"";display:block;width:48px;height:3px;background:#0099cc;margin:12px auto 0}
.p-index-stats__list{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);margin:0;padding:0}
.p-index-stats__item{text-align:center;padding:4px 24px;border-left:1px solid #dcdcdc}
.p-index-stats__item:first-child{border-left:0}
.p-index-stats__label{font-size:14px;font-weight:700;color:#002742;letter-spacing:.08em}
.p-index-stats__num{display:flex;justify-content:center;align-items:baseline;gap:2px;color:#0099cc;font-weight:700;line-height:1.2;margin:4px 0 8px;font-variant-numeric:tabular-nums}
.p-index-stats__num span{font-size:clamp(44px,5vw,64px);letter-spacing:-.02em}
.p-index-stats__num i{font-style:normal;font-size:clamp(24px,2.6vw,34px)}
.p-index-stats__num small{font-size:clamp(14px,1.3vw,16px);font-weight:700;color:#002742;margin-left:8px}
.p-index-stats__item--zero .p-index-stats__num{color:#f08300}
.p-index-stats__text{font-size:12.5px;line-height:1.8;color:#555}
@media screen and (max-width:767px){
  .p-index-stats{padding:36px 20px 36px}
  .p-index-stats__list{grid-template-columns:1fr}
  .p-index-stats__item{border-left:0;border-top:1px solid #dcdcdc;padding:16px 8px}
  .p-index-stats__item:first-child{border-top:0}
}

/* case studies: 3-column cards (replaces the carousel; all copy is plain HTML text) */
.p-case-grid{list-style:none;margin:56px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.p-case-card article{height:100%}
.p-case-card__link{display:flex;flex-direction:column;height:100%;background:#fff;border:1px solid #e3e3e3;color:#002742;text-decoration:none;transition:transform .25s,box-shadow .25s,border-color .25s}
.p-case-card__link:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(0,39,66,.12);border-color:#0099cc}
.p-case-card__img{aspect-ratio:16/10;overflow:hidden;background:#f3f6f8}
.p-case-card__img img{width:100%;height:100%;object-fit:cover;object-position:top;display:block;transition:transform .5s}
.p-case-card__link:hover .p-case-card__img img{transform:scale(1.04)}
.p-case-card__body{display:flex;flex-direction:column;flex:1;padding:22px 24px 24px}
.p-case-card__badge{align-self:flex-start;background:#0099cc;color:#fff;font-size:13px;font-weight:700;letter-spacing:.06em;padding:2px 12px;margin:0 0 12px}
.p-case-card__name{font-size:19px;font-weight:700;line-height:1.5;margin:0 0 6px}
.p-case-card__head{font-size:15px;font-weight:700;line-height:1.7;color:#0099cc;margin:0 0 14px}
.p-case-card__points{list-style:none;margin:0 0 18px;padding:0;font-size:13px;line-height:1.8;color:#444}
.p-case-card__points li{position:relative;padding-left:1.1em;margin-top:6px}
.p-case-card__points li::before{content:"";position:absolute;left:0;top:.75em;width:6px;height:6px;border-radius:50%;background:#0099cc}
.p-case-card__more{margin-top:auto;font-size:14px;font-weight:700;letter-spacing:.06em;padding-top:12px;border-top:1px solid #e3e3e3}
.p-case-card__more::after{content:" →";color:#0099cc}
@media screen and (max-width:959px){.p-case-grid{grid-template-columns:1fr;gap:20px;margin-top:36px}}
