.hslide{position:absolute;inset:0;width:100%;height:var(--h,100%);object-fit:cover;object-position:var(--pos,50% 50%);opacity:0;transform:scale(1);transition:opacity 1.8s var(--ease);will-change:transform,opacity}
.hero__copy{position:relative;z-index:3;width:min(60%,1000px);padding:clamp(24px,3vw,44px) clamp(20px,2.4vw,44px) clamp(24px,3vw,44px) calc(var(--edge) + clamp(14px,2.4vw,52px))}
/* ============================================================
   MOBILE — one coherent pass (<=900px)
   ============================================================ */
@media (max-width:900px){
  .sp-br{display:inline}
  .pc-only{display:none}

  /* --- hero: copy overlaid on the photo (light) --- */
  .hero{padding-top:0}
  .hero__stage{position:relative;min-height:min(84vh,740px);flex-direction:row;align-items:flex-end;overflow:hidden}
  .hero__photo{position:absolute;inset:0;width:auto;height:auto;order:0;overflow:hidden}
  .hslide{height:var(--h,100%);object-position:center center;filter:saturate(1.15) contrast(1.02)}
  .hero__veil{display:block;inset:-1px;background:linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(255,255,255,0) 40%,rgba(255,255,255,.5) 56%,rgba(255,255,255,.9) 70%,#fff 82%,#fff 100%)}
  .hero__copy{position:relative;z-index:3;order:0;width:100%;padding:0 var(--gutter) clamp(30px,8vw,48px)}
  .hero__title{color:#0A0A0A;font-size:clamp(23px,6.5vw,34px);line-height:1.52;letter-spacing:.04em;margin-bottom:clamp(20px,5.5vw,30px)}
  .hero__title .accent{color:var(--brand);background:none;-webkit-text-fill-color:var(--brand)}
  .hero__text{display:none}
  .hero__btns{flex-direction:column;gap:10px;align-items:stretch}
  .hero__btns .btn{flex:0 0 auto;min-width:0;width:100%;padding:13px 18px;font-size:clamp(11.5px,3vw,13.5px);gap:10px;justify-content:space-between}
  .hero .btn--fill{background:linear-gradient(135deg,#00266A 0%,#00368E 55%,#0A4CB0 100%);color:#fff;box-shadow:0 12px 28px rgba(0,10,30,.4)}
  .hero .btn--fill:hover{background:linear-gradient(135deg,#001D55 0%,#002C79 55%,#0741A0 100%)}
  .hero .btn--line{background:#fff;color:var(--brand);border:1.5px solid var(--brand);box-shadow:none}
  .hero .btn--line:hover{background:#F2F6FC}

  /* --- partner chips: horizontal loop --- */
  .partner__inner{flex-direction:column;align-items:stretch;gap:16px}
  .partner__head{justify-content:flex-start}
  .partner__title{white-space:normal;font-size:clamp(15px,4vw,19px)}
  .chips-mq{overflow:hidden;width:100vw;margin-left:calc(-1 * var(--gutter))}
  .chips{display:flex;width:max-content;grid-template-columns:none;gap:0;margin:0;max-width:none;
         animation:chipflow 26s linear infinite}
  .chips:hover{animation-play-state:paused}
  .chip{margin-right:9px;font-size:12px;padding:9px 15px;opacity:1!important;transform:none!important}
  .chip.is-dup{display:block}
  @keyframes chipflow{from{transform:translateX(0)}to{transform:translateX(-50%)}}

  /* --- problems: 2 x 2 --- */
  .problems{padding-block:clamp(30px,7vw,44px)}
  .problems .shead{margin-bottom:clamp(18px,4.5vw,26px)}
  .problems .shead__title{font-size:clamp(19px,5.1vw,26px);line-height:1.6}
  .pgrid{grid-template-columns:repeat(2,1fr);gap:10px}
  .pcard{min-height:0;padding:14px 10px 16px;gap:10px;flex-direction:column;align-items:stretch}
  .pcard__no{font-size:clamp(19px,5vw,24px);padding:0;align-self:flex-start}
  .pcard__body{align-items:center;gap:10px}
  .pcard__txt{font-size:clamp(11px,2.9vw,13px);line-height:1.75;text-align:center}
  .pcard__txt br{display:none}
  .pcard__icon svg{width:44px;height:44px}
  .pnote{margin-top:18px}
  .pnote span{font-size:12.5px;padding:0;line-height:1.85}

  /* --- technology --- */
  .tech{padding-block:clamp(28px,6.5vw,42px)}
  .tech__grid{grid-template-columns:1fr;grid-template-rows:none;gap:16px}
  .tech__intro{grid-column:1;grid-row:auto;text-align:center;order:0}
  .tech__title{white-space:normal;font-size:clamp(19px,5.1vw,26px);text-align:center}
  .tech__sub{text-align:center;margin-bottom:0}
  .tech__cards{grid-column:1;grid-row:auto;order:1;grid-template-columns:1fr;gap:9px}
  .tech__link{grid-column:1;grid-row:auto;order:2;justify-self:center;margin-top:4px}
  .tcard{aspect-ratio:16/7}
  .tcard__desc{max-width:19em}
  .tcard__veil{background:linear-gradient(90deg,#fff 0%,#fff 36%,rgba(255,255,255,.88) 48%,rgba(255,255,255,.4) 64%,rgba(255,255,255,.06) 82%,rgba(255,255,255,0) 94%)}

  /* --- mechanism --- */
  .mech{padding-block:clamp(30px,7vw,46px)}
  .mech .shead{row-gap:12px}
  .mech__grid{grid-template-columns:1fr;gap:20px}
  .mech__intro{font-size:12.5px;line-height:1.95}

  /* --- credentials: no sub copy on mobile --- */
  .creds__inner{grid-template-columns:1fr;gap:0;padding-block:6px}
  .cred{border-top:1px solid var(--line);padding:14px 0}
  .cred:first-child{border-top:0}
  .cred+.cred{border-top:1px solid var(--line);padding-top:14px}
  .cred+.cred::before{display:none}
  .cred__desc{display:none}
  .cred__icon svg{width:38px;height:38px}
  .cred__title{font-size:clamp(14px,3.7vw,17px);margin:0}
  .cred__tag{margin-bottom:3px}

  /* --- stats: 2 x 2 tiles --- */
  .stats__box{padding:clamp(20px,5vw,30px) 0}
  .stats__row{flex-direction:column;gap:clamp(16px,4vw,24px)}
  .stats__title{text-align:center;padding:0;font-size:clamp(18px,4.8vw,24px);line-height:1.6}
  .sgrid{grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(255,255,255,.22);width:100%}
  .sitem{background:linear-gradient(120deg,#012A6C,#003B8F);flex-direction:column;gap:6px;padding:clamp(14px,3.6vw,20px) 8px;text-align:center}
  .sitem::before{display:none!important}
  .sitem__icon svg{width:32px;height:32px}
  .sitem__label{font-size:10.5px;margin-bottom:2px}
  .sitem__num{font-size:clamp(26px,7.4vw,36px)}
  .sitem__unit{font-size:10px}
  .stats__note{margin-top:14px;padding-inline:var(--gutter);font-size:9.5px;line-height:1.7}

  /* --- scenes --- */
  .scenes{padding-block:clamp(28px,6.5vw,42px)}
  .sc-head{font-size:clamp(19px,5.1vw,26px);margin-bottom:18px}
  .scmarquee{--cw:clamp(210px,58vw,260px)}

  /* --- support --- */
  .support{padding-block:clamp(28px,6.5vw,42px)}
  .sup__grid{grid-template-columns:1fr;gap:18px}
  .sup__title{white-space:normal;text-align:left;font-size:clamp(19px,5.1vw,26px)}
  .sup__desc{font-size:12.5px}
  .supgrid{grid-template-columns:1fr;gap:9px}
  .supcard{padding:15px 16px;align-items:center;column-gap:14px}
  .supcard__icon svg{width:40px;height:40px}
  .supcard__title{white-space:normal;font-size:14.5px;margin-bottom:2px}
  .supcard__desc{font-size:12px}

  /* --- flow --- */
  .flow{padding-block:clamp(30px,7vw,46px)}
  .flow .shead__title{font-size:clamp(19px,5.1vw,26px)}
  .flow__lead{font-size:12.5px}
  .flow__grid{grid-template-columns:1fr;gap:10px;margin-bottom:26px}
  .fstep{padding:16px 16px 18px}
  .fstep::before{left:0;right:0;top:0;bottom:auto;width:auto;height:3px}
  .fstep::after{display:none}
  .fstep__no{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}
  .fstep__no b{display:inline;font-size:24px;margin:0}
  .fstep h3{font-size:15px}
  .fstep p{font-size:12.5px}
  .faq summary{font-size:13px;padding:14px 16px;gap:11px}
  .faq__a{padding:0 16px 16px;font-size:12.5px}

  /* --- about + blog --- */
  .about{padding-block:clamp(28px,6.5vw,42px)}
  .ab__grid{grid-template-columns:1fr;gap:20px}
  .ab__blog{border-left:0;padding-left:0;border-top:1px solid #E1E7EF;padding-top:20px}
  .ab__list{grid-template-columns:1fr;gap:9px}
  .ab__title{font-size:clamp(19px,5.1vw,26px)}
  .ab__text{font-size:12.5px}
  .bcard{display:grid;grid-template-columns:minmax(0,1fr) 34%;align-items:stretch}
  .bcard__top{grid-column:1;padding:12px 12px 0}
  .bcard p{grid-column:1;padding:6px 12px 12px;font-size:12.5px}
  .bcard__fig{grid-column:2;grid-row:1 / span 2;aspect-ratio:auto}

  /* --- merged CTA --- */
  .cta__inner{grid-template-columns:1fr;gap:20px;padding-block:clamp(26px,6vw,38px)}
  .cta__head{flex-direction:column;text-align:center;gap:14px}
  .cta__icon svg{width:74px;height:54px}
  .cta__title{font-size:clamp(20px,5.4vw,28px);line-height:1.55}
  .cta__sub{font-size:12.5px}
  .cta__actions{width:100%}
  .btn--gold,.cta__mail,.cta__telbox{width:100%;min-width:0;justify-content:center}
  .cta__telbox b{font-size:21px}

  /* --- footer --- */
  .footer__grid{grid-template-columns:repeat(2,1fr);gap:20px}
  .fbox{grid-column:1 / -1}
}
/* ---- top page: CTA + contact merged into one block ---- */
.cta{background:linear-gradient(118deg,#013077 0%,#0140A0 46%,#0B55BE 100%)}
.cta__inner{padding-bottom:clamp(20px,2vw,32px)}
.cta__info{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,1.6vw,32px);align-items:center;
  padding-block:clamp(16px,1.7vw,26px);border-top:1px solid rgba(255,255,255,.22)}
.cta__info-i{display:flex;align-items:center;gap:clamp(11px,1.1vw,18px);justify-content:center}
.cta__info-i+.cta__info-i{border-left:1px solid rgba(255,255,255,.18)}
.cta__info-ic{flex:none;color:rgba(255,255,255,.9);line-height:0}
.cta__info-ic svg{width:clamp(20px,1.7vw,26px);height:clamp(20px,1.7vw,26px)}
.cta__info-t{display:block;font-size:clamp(9.5px,.76vw,11.5px);color:rgba(255,255,255,.72);margin-bottom:4px;letter-spacing:.05em}
.cta__info-v{display:block;font-size:clamp(16px,1.5vw,23px);font-weight:700;color:#fff;letter-spacing:.01em;line-height:1.2}
.cta__info-v--m{font-size:clamp(12.5px,1.08vw,16px)}
.cta__info-s{display:block;font-size:clamp(9px,.72vw,11px);color:rgba(255,255,255,.62);margin-top:4px}
.cta__info-btn{display:inline-flex;align-items:center;justify-content:space-between;gap:14px;min-width:clamp(165px,14vw,225px);
  border:1px solid rgba(255,255,255,.6);color:#fff;border-radius:3px;padding:clamp(8px,.8vw,12px) clamp(11px,1vw,17px);
  font-size:clamp(10px,.8vw,12.5px);font-weight:700;transition:background .3s,color .3s}
.cta__info-btn:hover{background:#fff;color:var(--brand)}
.sfoot{border-top:4px solid rgba(255,255,255,.14)}
@media (max-width:900px){
  .cta__info{grid-template-columns:1fr;gap:0}
  .cta__info-i{justify-content:flex-start;padding-block:14px}
  .cta__info-i+.cta__info-i{border-left:0;border-top:1px solid rgba(255,255,255,.18)}
}
/* ---- top: 4-product technology section ---- */
.tech{background:#fff;padding-block:clamp(32px,3vw,54px)}
.chead4{text-align:center;margin-bottom:clamp(22px,2.4vw,38px)}
.chead4__t{font-family:var(--serif-jp);font-weight:600;font-size:clamp(19px,2vw,31px);letter-spacing:.06em;line-height:1.55;color:#0D1A33;margin:0;font-feature-settings:"palt" 0}
.chead4__t em{font-style:normal;color:#7A2E2E}
.chead4__s{font-size:clamp(11.5px,.94vw,14px);line-height:2;color:#5B6172;margin:clamp(10px,1vw,16px) 0 0;letter-spacing:.03em}
.pgrid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(9px,1vw,18px)}
.pcard4{display:block;background:#fff;border:1px solid #E4EAF2;border-radius:6px;overflow:hidden;transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .3s}
.pcard4:hover{transform:translateY(-5px);box-shadow:0 22px 46px -22px rgba(0,47,121,.3);border-color:#C3D5EE}
.pcard4 figure{margin:0;aspect-ratio:16/10;overflow:hidden}
.pcard4 img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.pcard4:hover img{transform:scale(1.06)}
.pcard4__b{padding:clamp(14px,1.4vw,24px) clamp(13px,1.3vw,21px) clamp(16px,1.6vw,26px)}
.pcard4__cat{display:inline-block;font-size:clamp(9px,.72vw,11px);font-weight:700;letter-spacing:.14em;color:#8A96A8;margin-bottom:8px}
.pcard4__n{display:block;font-size:clamp(14px,1.28vw,20px);line-height:1.2;margin-bottom:clamp(9px,.9vw,14px)}
.tn-pet{color:#B8703C;font-weight:600}
.pcard4 p{font-size:clamp(10px,.82vw,12.5px);line-height:1.9;color:#5B6172;margin:0 0 clamp(11px,1.1vw,17px);word-break:auto-phrase;min-height:3.8em}
.pcard4__go{display:inline-flex;align-items:center;gap:8px;font-size:clamp(10px,.8vw,12.5px);font-weight:700;color:var(--brand);transition:gap .3s}
.pcard4:hover .pcard4__go{gap:12px}
.tech__more{display:flex;justify-content:center;margin-top:clamp(20px,2vw,34px)}
@media (max-width:1240px){.pgrid4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.pgrid4{grid-template-columns:1fr}.pcard4 p{min-height:0}}
@media (min-width:901px){.hero__title .line i{white-space:nowrap}}
.ab__empty{grid-column:1 / -1;margin:0;padding:clamp(26px,3vw,46px) 0;text-align:center;font-size:clamp(10.5px,.86vw,13px);line-height:1.9;color:#8A96A8;border:1px dashed #DCE5F0;border-radius:5px}

/* ---- mobile hero: lift the whole block (image + copy) ---- */
@media (max-width:900px){
  .hero__stage{min-height:min(72vh,610px)}
  .hslide{height:84% !important;object-position:50% 68%}
  .hero__copy{padding-bottom:clamp(22px,6vw,34px)}
}

.ab__about p,.ab__lead,.ab p{text-wrap:pretty;word-break:auto-phrase}
