/* 2026-09 mobile visual polish */
.stance-photo{display:none}

@media(max-width:760px){
  :root{--mobile-gutter:22px}
  body{font-size:14px;line-height:1.85}
  .container{width:calc(100% - (var(--mobile-gutter) * 2))}
  .header-inner{height:76px}
  .brand img{width:166px}
  .menu-button{width:44px;height:44px;padding:11px 7px;gap:7px}
  .menu-button i{height:1.5px}
  .site-nav{top:76px;padding:18px var(--mobile-gutter) 24px}
  .eyebrow,.section-kicker{margin-bottom:21px;font-size:15px;letter-spacing:.15em}
  .eyebrow::after,.section-kicker::after{width:36px;margin-left:12px}
  .hero{display:block;min-height:0;background:#fff}
  .hero-inner{width:100%;padding:0}
  .hero-copy{max-width:none;padding:42px var(--mobile-gutter) 338px}
  .hero-photo{inset:auto 0 0;height:302px;background:#dce5ea}
  .hero-photo img{object-position:61% center;filter:saturate(.72) contrast(.96)}
  .hero-photo::before{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(180deg,#fff 0,rgba(255,255,255,.26) 18%,rgba(255,255,255,0) 42%);pointer-events:none}
  .hero-photo>span{z-index:2;right:16px;bottom:16px;padding:5px 10px}
  .hero-shade{display:none}
  .hero h1{font-size:clamp(33px,9.3vw,42px);line-height:1.38;letter-spacing:-.035em}
  .hero h1 span{display:inline-block}
  .hero-lead{max-width:none;margin-top:27px;color:#485463;font-size:14px;line-height:2.05}
  .hero-actions{margin-top:28px}
  .hero-actions .button{min-height:68px;padding:20px 18px;font-size:16px;font-weight:700;box-shadow:0 11px 24px rgba(232,88,32,.16)}
  .hero-actions .hero-note{margin:12px 0 0;padding:11px 12px;border-left:2px solid var(--orange);background:#f5f6f7;color:#596675;font-size:12px;line-height:1.65}
  .experience-grid{display:grid;gap:0;padding:38px var(--mobile-gutter) 42px}
  .experience-number{position:relative;display:block;min-height:145px;padding:0 0 27px;border-bottom:1px solid rgba(255,255,255,.18)}
  .experience-number small{display:block;margin:0;color:#aebbc8;font-size:13px;letter-spacing:.13em}
  .experience-number strong{display:block;margin-top:18px;font-size:104px;line-height:.68;letter-spacing:-.045em}
  .experience-number strong span{font-size:27px}
  .experience-grid>div:nth-child(2){padding-top:28px}
  .experience-band .section-kicker{margin-bottom:16px}
  .experience-band h2{font-size:25px;line-height:1.62;letter-spacing:-.025em}
  .experience-band p:last-child{margin-top:24px;font-size:13px;line-height:2;color:#cbd4dd}
  .section{padding:88px 0}
  .two-col,.flow-layout,.about-layout,.case-card{gap:40px}
  .section-intro h2,.section-head h2,.stance h2,.contact h2{font-size:clamp(31px,8.3vw,38px);line-height:1.5;letter-spacing:-.035em}
  .section-intro>p:not(.section-kicker),.section-head>p:last-child{margin-top:26px;color:#53606d;font-size:14px;line-height:2.05}
  .trouble{background:#f4f6f7}
  .trouble .section-intro h2{font-size:38px;line-height:1.48}
  .trouble-list{gap:11px}
  .trouble-list li{min-height:72px;display:flex;align-items:center;padding:16px 16px 16px 58px;border:0;border-radius:5px;box-shadow:0 7px 22px rgba(28,48,66,.045);font-size:14px;line-height:1.65}
  .trouble-list li::before{left:20px;top:50%;transform:translateY(-50%);font-size:22px}
  .trouble-list li::after{content:"";position:absolute;left:47px;top:18px;bottom:18px;width:1px;background:#dbe3e8}
  .support .section-head{max-width:none;margin:0 0 38px;text-align:left}
  .support .section-head h2{font-size:37px;line-height:1.48}
  .support .section-head h2 br{display:none}
  .support .section-head>p:last-child{margin-left:0;text-align:left}
  .solution-options{display:grid;gap:9px;margin-bottom:42px}
  .solution-options .option-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}
  .solution-options .option-row:last-child{grid-template-columns:1.15fr 1fr .64fr}
  .solution-options span{display:grid;place-items:center;min-height:54px;padding:9px 8px;border:0;border-radius:5px;background:#fff3ed;color:#d94f1d;font-size:11px;font-weight:600;line-height:1.5;text-align:center;white-space:normal}
  .support-grid{grid-template-columns:1fr 1fr;border:0;gap:10px}
  .support-card{padding:25px 16px 28px;border:1px solid #dde3e7;min-width:0}
  .support-card .line-icon{display:none}
  .support-card>p{position:relative;margin:0 0 49px;font-size:19px}
  .support-card>p::after{content:"";position:absolute;left:0;top:34px;width:34px;height:1px;background:var(--orange)}
  .support-card h3{font-size:16px;line-height:1.65;letter-spacing:-.02em}
  .support-card span{margin-top:19px;color:#54616e;font-size:11px;line-height:2}
  .stance{padding:88px 0;background:#edf4f7;text-align:left}
  .stance-inner{width:100%;max-width:none;padding:0 var(--mobile-gutter)}
  .stance h2{font-size:37px;line-height:1.48}
  .stance-photo{display:block;height:220px;margin:35px 0 30px;border-radius:3px;background:#d8e1e6}
  .stance-photo img{object-position:center 45%;filter:saturate(.72) contrast(.95)}
  .stance-photo>span{right:10px;bottom:10px}
  .stance p:last-child{max-width:none;margin:0;color:#465564;font-size:14px;line-height:2.05}
  .features{padding-top:88px}
  .features .section-head{max-width:none;margin:0 0 42px;text-align:left}
  .features .section-head h2{font-size:37px;line-height:1.52}
  .about-layout{display:flex;flex-direction:column}
  .about-content{order:1}
  .about-photo{order:2;width:100%;height:260px;margin-top:4px}
  .about-content>p{margin-bottom:20px;color:#4e5b67;font-size:14px;line-height:2.05}
  .team-note{margin-top:34px;padding:25px 0 0}
  .team-experience strong{font-size:64px}
  .feature-grid{gap:12px;margin-top:48px}
}


/* FV composition correction */
@media(max-width:760px){
  .hero{
    display:grid;
    grid-template-columns:var(--mobile-gutter) minmax(0,1fr) var(--mobile-gutter);
    min-height:0;
    align-items:start;
  }
  .hero-inner,.hero-copy{display:contents}
  .hero .eyebrow{
    grid-column:2;
    grid-row:1;
    margin:42px 0 22px;
  }
  .hero h1{
    grid-column:2;
    grid-row:2;
    margin:0 0 32px;
    font-size:clamp(29px,8.15vw,32px);
    line-height:1.48;
    letter-spacing:-.04em;
  }
  .hero h1 span{display:inline}
  .hero-photo{
    position:relative!important;
    inset:auto;
    grid-column:1/-1;
    grid-row:3;
    height:300px;
  }
  .hero-photo::before{
    background:linear-gradient(180deg,rgba(255,255,255,.2),rgba(255,255,255,0) 30%);
  }
  .hero-lead{
    grid-column:2;
    grid-row:4;
    margin:28px 0 0;
  }
  .hero-actions{
    grid-column:2;
    grid-row:5;
    margin:27px 0 42px;
  }
}


/* Case study, flow and contact polish */
@media(max-width:760px){
  .hero .eyebrow,.hero h1,.hero-lead,.hero-actions{min-width:0}
  .hero h1{
    font-size:clamp(29px,7.8vw,31px);
    line-height:1.48;
    letter-spacing:-.045em;
  }

  .cases{padding-top:88px;background:#f4f6f7}
  .cases .section-head{
    max-width:none;
    margin:0 0 38px;
    text-align:left;
  }
  .cases .section-head h2{
    font-size:clamp(32px,8.5vw,36px);
    line-height:1.5;
    letter-spacing:-.04em;
  }
  .cases .section-head h2 span{color:var(--orange)}
  .case-card{
    gap:0;
    overflow:hidden;
    border:0;
    border-radius:4px;
    background:#fff;
    box-shadow:0 12px 34px rgba(30,47,62,.07);
  }
  .case-photo{
    min-height:0;
    height:330px;
  }
  .case-photo img{object-position:center}
  .case-photo>span{
    right:14px;
    bottom:14px;
    padding:5px 10px;
  }
  .case-body{
    position:relative;
    padding:38px 24px 28px;
  }
  .case-body::before{
    content:"";
    display:block;
    width:42px;
    height:2px;
    margin-bottom:27px;
    background:var(--orange);
  }
  .case-label{margin:0}
  .case-body h3{
    margin:17px 0 30px;
    font-size:27px;
    line-height:1.55;
    letter-spacing:-.035em;
  }
  .case-body h3 span{color:var(--orange)}
  .case-body dl>div{
    display:block;
    padding:24px 0;
    border-top:1px solid #dce3e8;
  }
  .case-body dt{
    display:block;
    margin-bottom:12px;
    color:var(--orange);
    font-size:16px;
    font-weight:800;
  }
  .case-body dd{
    color:#485664;
    font-size:13px;
    line-height:2;
  }
  .case-body dl>div:last-child{
    margin-top:8px;
    padding:20px 18px 20px 20px;
    border-top:0;
    border-left:3px solid var(--orange);
    border-radius:4px;
    background:#fff3ed;
  }

  .flow{padding:88px 0;background:#fff}
  .flow-layout{gap:47px}
  .flow .section-intro h2{
    font-size:clamp(37px,10vw,43px);
    line-height:1.5;
  }
  .flow .section-intro>p:not(.section-kicker){
    max-width:none;
    margin-top:27px;
  }
  .flow-list{
    position:relative;
    border-top:0;
  }
  .flow-list::before{
    content:"";
    position:absolute;
    top:30px;
    bottom:30px;
    left:27px;
    width:1px;
    background:#d3dde4;
  }
  .flow-list li{
    position:relative;
    z-index:1;
    grid-template-columns:56px minmax(0,1fr);
    gap:18px;
    padding:0 0 30px;
    border-bottom:0;
  }
  .flow-list li+li{padding-top:1px}
  .flow-list li>div{
    padding:3px 0 27px;
    border-bottom:1px solid #d9e1e6;
  }
  .flow-list b{
    width:56px;
    height:56px;
    border-radius:50%;
    background:var(--orange);
    font-size:17px;
    box-shadow:0 5px 14px rgba(232,88,32,.16);
  }
  .flow-list h3{
    font-size:19px;
    line-height:1.55;
  }
  .flow-list p{
    margin-top:9px;
    color:#52606d;
    font-size:12px;
    line-height:1.9;
  }

  .contact{
    padding:82px 0 72px;
    text-align:left;
  }
  .contact-inner{width:calc(100% - (var(--mobile-gutter) * 2))}
  .contact .section-kicker{margin-bottom:29px}
  .contact h2{
    font-size:clamp(38px,10.2vw,44px);
    line-height:1.42;
    letter-spacing:-.045em;
  }
  .contact h2 span{color:#ff9865}
  .contact-copy{margin-top:35px}
  .contact-needs{display:grid}
  .contact-needs span{
    padding:13px 3px;
    border-bottom:1px solid rgba(255,255,255,.22);
    color:#f7f9fa;
    font-size:13px;
    line-height:1.65;
  }
  .contact-copy>p{
    margin:27px 0 0;
    color:#dbe2e7;
    font-size:13px;
    line-height:2;
  }
  .contact-links{
    display:grid;
    gap:23px;
    margin-top:34px;
    padding-top:32px;
    border-top:1px solid rgba(255,255,255,.24);
    text-align:center;
  }
  .contact-links>a:first-child{
    display:grid;
    justify-items:center;
    gap:6px;
  }
  .contact-links small{font-size:15px}
  .contact-links b{font-size:42px;line-height:1.15}
  .contact-links span{font-size:12px}
  .contact-links .button-light{
    min-height:70px;
    display:flex;
    justify-content:center;
    width:100%;
    font-size:16px;
    font-weight:700;
  }
}


/* Mobile line-break correction */
.sp-break{display:none}
.hero-title-line{white-space:nowrap;color:var(--ink)!important}
.hero-title-line em{color:var(--orange);font-style:normal}

/* SPの視覚設計をPCにも共通化 */
@media(min-width:761px){
  .support .section-head{max-width:none;text-align:left}
  .support .section-head>p:last-child{margin-left:0;text-align:left}
  .solution-options span{border:0;border-radius:5px;background:#fff3ed;color:#d94f1d;font-weight:600}
  .support-grid{border:0;gap:10px}
  .support-card{min-height:0;padding:25px 20px 28px;border:1px solid #dde3e7}
  .support-card .line-icon{display:none}
  .support-card>p{position:relative;margin:0 0 49px;font-size:19px}
  .support-card>p::after{content:"";position:absolute;left:0;top:34px;width:34px;height:1px;background:var(--orange)}
  .support-card h3{line-height:1.65;letter-spacing:-.02em}
  .support-card span{margin-top:19px;color:#54616e;line-height:2}
  .flow-list{position:relative;border-top:0}
  .flow-list::before{content:"";position:absolute;top:28px;bottom:30px;left:27px;width:1px;background:#d3dde4}
  .flow-list li{position:relative;z-index:1;grid-template-columns:56px minmax(0,1fr);gap:18px;padding:0 0 30px;border-bottom:0}
  .flow-list li>div{padding:3px 0 27px;border-bottom:1px solid #d9e1e6}
  .flow-list b{width:56px;height:56px;border-radius:50%;background:var(--orange);font-size:17px;box-shadow:0 5px 14px rgba(232,88,32,.16)}
  .flow-list h3{font-size:19px;line-height:1.55}
  .flow-list p{margin-top:9px;color:#52606d;line-height:1.9}
}

@media(max-width:760px){
  .sp-break{display:block}
  .hero h1,.section-intro h2,.section-head h2,.stance h2,.contact h2{
    line-break:strict;
    text-wrap:pretty;
  }
  .hero h1{font-size:clamp(22px,6.9vw,30px)}
  .experience-band h2{font-size:24px}
  .support .section-head h2{font-size:32px;line-height:1.55}
  .support .section-head h2 br{display:block}
  .stance h2{font-size:34px;line-height:1.55}
  .features .section-head h2{font-size:33px;line-height:1.58}
  .cases .section-head h2{font-size:33px;line-height:1.55}
}
