/* Will Smart lower pages — TOP-aligned art direction */
.ws-subpage-latest{
  --sp-navy:#061d2c;
  --sp-navy-2:#0a3046;
  --sp-cyan:#42c6f2;
  --sp-blue:#158fc5;
  --sp-ice:#eef9fd;
  --sp-line:#d8e8ef;
  --sp-shadow:0 24px 70px rgba(9,48,70,.12);
  background:#fff;
}

/* Immersive lower-page first view */
.ws-subpage-latest:not(.ws-detail-page) .subhero{
  position:relative;
  min-height:clamp(510px,66svh,690px);
  padding:clamp(118px,13vh,170px) 0 80px;
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(circle at 78% 25%,rgba(66,198,242,.24),transparent 27%),
    radial-gradient(circle at 100% 100%,rgba(21,143,197,.28),transparent 38%),
    linear-gradient(132deg,#041925 0%,#082b3f 55%,#0c4562 100%);
}
.ws-subpage-latest:not(.ws-detail-page) .subhero::before,
.ws-detail-page .ws-detail-hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  opacity:.16;
  background-image:
    linear-gradient(rgba(255,255,255,.18) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.18) 1px,transparent 1px);
  background-size:56px 56px;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 45%,#000 100%);
  mask-image:linear-gradient(90deg,transparent 0%,#000 45%,#000 100%);
}
.ws-subpage-latest:not(.ws-detail-page) .subhero::after,
.ws-detail-page .ws-detail-hero::after{
  content:"WILL SMART";
  position:absolute;
  z-index:-1;
  right:-.04em;
  bottom:-.28em;
  color:rgba(255,255,255,.035);
  font-family:var(--ws-font-en,"Lato",sans-serif);
  font-size:clamp(105px,17vw,270px);
  font-weight:900;
  letter-spacing:-.07em;
  line-height:1;
  white-space:nowrap;
}
.ws-subpage-latest:not(.ws-detail-page) .subhero>.wrap{
  position:relative;
  z-index:2;
  width:100%;
  max-width:none;
  padding-left:clamp(34px,6vw,92px);
  padding-right:clamp(34px,6vw,92px);
}
.ws-subpage-latest .subhero-inner{
  grid-template-columns:minmax(0,1.25fr) minmax(290px,.75fr);
  gap:clamp(52px,8vw,130px);
}
.ws-subpage-latest .subhero .eyebrow{
  display:inline-flex;
  align-items:center;
  gap:12px;
  margin-bottom:24px;
  color:#73d8f7;
  font-family:var(--ws-font-en,"Lato",sans-serif);
  font-size:11px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.ws-subpage-latest .subhero .eyebrow::before{
  content:"";
  width:34px;
  height:1px;
  background:currentColor;
}
.ws-subpage-latest .subhero h1{
  max-width:900px;
  margin-bottom:28px;
  color:#fff;
  font-size:clamp(48px,6.4vw,92px);
  line-height:1.12;
  letter-spacing:-.045em;
  text-wrap:balance;
}
.ws-subpage-latest .subhero p{
  max-width:720px;
  color:rgba(255,255,255,.68);
  font-size:clamp(13px,1.15vw,16px);
  line-height:2.05;
}
.ws-subpage-latest .subhero> .subhero-inner>div:first-child{
  animation:spHeroCopyIn .85s cubic-bezier(.16,1,.3,1) both;
}

/* Branded glass icon composition */
.ws-subpage-latest .subhero-visual{
  min-height:330px;
  animation:spHeroVisualIn 1s cubic-bezier(.16,1,.3,1) .15s both;
}
.ws-subpage-latest .glyph-card{
  width:min(270px,80%);
  border:1px solid rgba(255,255,255,.24);
  border-radius:34px;
  background:linear-gradient(145deg,rgba(255,255,255,.16),rgba(255,255,255,.055));
  box-shadow:0 35px 80px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.22);
  backdrop-filter:blur(14px);
}
.ws-subpage-latest .glyph-card .glyph-icon{
  width:92px;
  height:92px;
  border-radius:26px;
  background:linear-gradient(145deg,#6edbfa,#199aca);
  box-shadow:0 22px 48px rgba(43,183,227,.38);
}
.ws-subpage-latest .glyph-card .glyph-label{color:#fff;font-size:13px;line-height:1.7;}
.ws-subpage-latest .glyph-ring{
  inset:-25px;
  border-color:rgba(102,218,250,.55);
  border-radius:44px;
  transform:rotate(7deg);
}
.ws-subpage-latest .glyph-ring::after{
  content:"";
  position:absolute;
  width:8px;
  height:8px;
  right:20%;
  top:-4px;
  border-radius:50%;
  background:#77defb;
  box-shadow:0 0 22px #77defb;
}
.ws-subpage-latest .glyph-chip{
  border-color:rgba(255,255,255,.18);
  background:rgba(6,29,44,.75);
  color:#fff;
  box-shadow:0 18px 36px rgba(0,0,0,.24);
  backdrop-filter:blur(10px);
}
.ws-subpage-latest .glyph-chip svg{color:#67d4f6;}

/* Editorial section rhythm */
.ws-subpage-latest:not(.ws-detail-page) .section-pad{
  position:relative;
  padding:clamp(86px,9vw,138px) 0;
}
.ws-subpage-latest:not(.ws-detail-page) .section-pad>.wrap{
  width:100%;
  max-width:1320px;
  padding-left:clamp(28px,5vw,76px);
  padding-right:clamp(28px,5vw,76px);
}
.ws-subpage-latest .bg-soft{
  background:
    radial-gradient(circle at 100% 0,rgba(66,198,242,.1),transparent 32%),
    linear-gradient(180deg,#f4fafc,#eef7fa);
}
.ws-subpage-latest .sec-head{max-width:920px;margin-bottom:clamp(44px,6vw,78px);}
.ws-subpage-latest .sec-tag{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:18px;
  color:var(--sp-blue);
  font-family:var(--ws-font-en,"Lato",sans-serif);
  font-size:11px;
  letter-spacing:.16em;
}
.ws-subpage-latest .sec-tag::before{
  content:"";
  width:26px;
  height:2px;
  background:var(--sp-cyan);
}
.ws-subpage-latest .sec-title{
  max-width:980px;
  font-size:clamp(35px,4.4vw,64px);
  line-height:1.28;
  letter-spacing:-.04em;
  text-wrap:balance;
}
.ws-subpage-latest .sec-desc{max-width:920px;color:#526c7b;font-size:14px;line-height:2;}

/* High-end cards shared by services, strengths, cases and company pages */
.ws-subpage-latest :is(.strength-card,.teaser-card,.sol-card,.product-card,.achieve-card,.mvv-card,.photo-card,.cert-badge,.ir-card,.partners-card){
  border-color:var(--sp-line);
  border-radius:22px;
  box-shadow:0 12px 38px rgba(8,48,70,.065);
  transition:transform .42s cubic-bezier(.16,1,.3,1),box-shadow .42s,border-color .42s;
}
.ws-subpage-latest .achieve-card{overflow:hidden;background:#fff;}
.ws-subpage-latest .achieve-thumb{height:220px;}
.ws-subpage-latest .achieve-thumb::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 48%,rgba(4,25,38,.45));
  pointer-events:none;
}
.ws-subpage-latest .achieve-thumb.noimg{
  background:
    linear-gradient(135deg,rgba(255,255,255,.08),transparent 60%),
    linear-gradient(145deg,#0a3650,#137da8);
}
.ws-subpage-latest .achieve-body{padding:26px 26px 30px;}
.ws-subpage-latest .achieve-body h4{font-size:17px;line-height:1.65;}
.ws-subpage-latest .achieve-body p{margin-top:9px;line-height:1.75;}
.ws-subpage-latest .mvv-card{position:relative;overflow:hidden;padding:34px;}
.ws-subpage-latest .mvv-card::after{
  content:"";
  position:absolute;
  width:110px;
  height:110px;
  right:-55px;
  top:-55px;
  border-radius:50%;
  background:rgba(66,198,242,.12);
}

/* Company data and IR */
.ws-subpage-latest .data-table{
  overflow:hidden;
  border:1px solid var(--sp-line);
  border-radius:20px;
  background:#fff;
  box-shadow:0 18px 55px rgba(9,48,70,.07);
  border-collapse:separate;
  border-spacing:0;
}
.ws-subpage-latest .data-table th{
  width:230px;
  padding:22px 26px;
  background:#f2f9fc;
  border-bottom:1px solid var(--sp-line);
  color:var(--sp-navy);
}
.ws-subpage-latest .data-table td{padding:22px 28px;border-bottom:1px solid var(--sp-line);line-height:1.8;}
.ws-subpage-latest .data-table tr:last-child :is(th,td){border-bottom:0;}
.ws-subpage-latest .ir-news li{padding:24px 18px;border-color:var(--sp-line);transition:background .25s,padding-left .25s;}
.ws-subpage-latest .ir-news li:hover{padding-left:26px;background:var(--sp-ice);}

/* Contact becomes a premium conversion surface */
.ws-subpage-latest .form-card{
  max-width:900px;
  padding:clamp(32px,6vw,68px);
  border:1px solid var(--sp-line);
  border-radius:28px;
  background:linear-gradient(145deg,#fff,#f8fcfd);
  box-shadow:0 30px 90px rgba(9,48,70,.12);
}
.ws-subpage-latest .form-row{margin-bottom:26px;}
.ws-subpage-latest .form-row label{margin-bottom:10px;font-size:13px;}
.ws-subpage-latest .form-row :is(input,select,textarea){
  border:1px solid #cfdee5;
  border-radius:13px;
  padding:15px 17px;
  background:#fff;
  transition:border-color .2s,box-shadow .2s,background .2s;
}
.ws-subpage-latest .form-row :is(input,select,textarea):focus{
  border-color:var(--sp-cyan);
  background:#fcfeff;
  box-shadow:0 0 0 4px rgba(66,198,242,.13);
}
.ws-subpage-latest .form-submit{
  min-height:58px;
  border-radius:999px;
  background:linear-gradient(100deg,#0d7faf,#36bde9);
  box-shadow:0 16px 36px rgba(21,143,197,.24);
  transition:transform .25s,box-shadow .25s;
}
.ws-subpage-latest .form-submit:hover{transform:translateY(-2px);box-shadow:0 22px 44px rgba(21,143,197,.32);}

/* The newer strategy pages use the same visual language */

/* Old footer pages receive the TOP-page finish */
.ws-subpage-latest:not(.ws-detail-page)>footer{
  padding-top:86px;
  background:linear-gradient(145deg,#041823,#082e42);
}
.ws-subpage-latest:not(.ws-detail-page)>footer::before{color:rgba(255,255,255,.03);}
.ws-subpage-latest:not(.ws-detail-page)>footer .wrap{max-width:1280px;padding-left:clamp(28px,5vw,70px);padding-right:clamp(28px,5vw,70px);}

@keyframes spHeroCopyIn{
  from{opacity:0;transform:translate3d(0,28px,0);}
  to{opacity:1;transform:translate3d(0,0,0);}
}
@keyframes spHeroVisualIn{
  from{opacity:0;transform:translate3d(35px,0,0) scale(.96);}
  to{opacity:1;transform:translate3d(0,0,0) scale(1);}
}

@media(max-width:900px){
  .ws-subpage-latest:not(.ws-detail-page) .subhero{min-height:auto;padding:110px 0 70px;}
  .ws-subpage-latest .subhero-inner{grid-template-columns:1fr;gap:36px;}
  .ws-subpage-latest .subhero-visual{min-height:245px;margin-top:10px;}
  .ws-subpage-latest .glyph-card{width:210px;}
  }
@media(max-width:600px){
  .ws-subpage-latest:not(.ws-detail-page) .subhero>.wrap{padding-left:20px;padding-right:20px;}
  .ws-subpage-latest .subhero h1{font-size:43px;}
  .ws-subpage-latest .subhero p br{display:none;}
  .ws-subpage-latest:not(.ws-detail-page) .section-pad>.wrap{padding-left:20px;padding-right:20px;}
  .ws-subpage-latest .subhero-visual{display:none;}
  .ws-subpage-latest .data-table{display:block;overflow-x:auto;}
  .ws-subpage-latest .data-table th{min-width:145px;width:145px;padding:18px;}
  .ws-subpage-latest .data-table td{min-width:290px;padding:18px;}
      }

/* v3: restrained motion system */
.ws-subpage-latest:not(.ws-detail-page) .subhero> .subhero-inner>div:first-child{animation:none;}
.ws-subpage-latest .subhero :is(.eyebrow,h1,p),
.ws-detail-page .ws-detail-hero :is(.ws-en-label,h1),
.ws-detail-page .ws-detail-hero>p:last-child{
  opacity:0;
  animation:spTextEnter .76s cubic-bezier(.16,1,.3,1) both;
}
.ws-subpage-latest .subhero .eyebrow,
.ws-detail-page .ws-detail-hero .ws-en-label{animation-delay:.08s;}
.ws-subpage-latest .subhero h1,
.ws-detail-page .ws-detail-hero h1{animation-delay:.17s;}
.ws-subpage-latest .subhero p,
.ws-detail-page .ws-detail-hero>p:last-child{animation-delay:.34s;}
.ws-subpage-latest .subhero-visual{
  animation:spPhotoReveal 1.05s cubic-bezier(.16,1,.3,1) .12s both;
  transition:background-position .18s ease-out,filter .45s ease,box-shadow .45s ease;
}
.ws-subpage-latest .subhero-visual:hover{
  filter:saturate(1.06) contrast(1.02);
  box-shadow:0 42px 95px rgba(0,0,0,.34);
}
.ws-subpage-latest .subhero-visual::before{
  transform-origin:top right;
  animation:spFrameEnter .9s cubic-bezier(.16,1,.3,1) .62s both;
}
.ws-subpage-latest .subhero-visual::after{
  animation:spMetaEnter .65s ease .78s both;
}
.ws-subpage-latest .subhero-visual .glyph-card{
  animation:spCaptionEnter .72s cubic-bezier(.16,1,.3,1) .72s both;
}
.ws-subpage-latest .subhero-visual .glyph-card::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  width:42%;
  left:-52%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.13),transparent);
  transform:skewX(-18deg);
  animation:spCaptionShine 1.05s ease 1.2s both;
  pointer-events:none;
}
.ws-subpage-latest:not(.ws-detail-page) .subhero::before,
.ws-detail-page .ws-detail-hero::before{
  animation:spGridDrift 24s linear infinite;
}
.sp-scroll-progress{
  position:fixed;
  z-index:1001;
  top:0;
  left:var(--side-w);
  right:0;
  height:3px;
  pointer-events:none;
  background:linear-gradient(90deg,#4ed0f6,#168fbe);
  box-shadow:0 0 16px rgba(66,198,242,.45);
  transform:scaleX(var(--sp-progress,0));
  transform-origin:left center;
}

@keyframes spTextEnter{
  from{opacity:0;transform:translate3d(0,24px,0);}
  to{opacity:1;transform:translate3d(0,0,0);}
}
@keyframes spPhotoReveal{
  0%{opacity:0;clip-path:polygon(100% 0,100% 0,100% 86%,100% 100%,100% 100%,100% 14%);}
  100%{opacity:1;clip-path:polygon(8% 0,100% 0,100% 86%,92% 100%,0 100%,0 14%);}
}
@keyframes spFrameEnter{
  from{opacity:0;transform:scaleX(.55);}
  to{opacity:1;transform:scaleX(1);}
}
@keyframes spMetaEnter{
  from{opacity:0;transform:translateX(14px);}
  to{opacity:1;transform:translateX(0);}
}
@keyframes spCaptionEnter{
  from{opacity:0;transform:translate3d(0,22px,0);}
  to{opacity:1;transform:translate3d(0,0,0);}
}
@keyframes spCaptionShine{
  from{left:-52%;}
  to{left:112%;}
}
@keyframes spGridDrift{
  from{background-position:0 0,0 0;}
  to{background-position:56px 56px,56px 56px;}
}

@media(max-width:900px){
  .sp-scroll-progress{left:0;}
}
@media(prefers-reduced-motion:reduce){
  .ws-subpage-latest .subhero :is(.eyebrow,h1,p),
  .ws-detail-page .ws-detail-hero :is(.ws-en-label,h1),
  .ws-detail-page .ws-detail-hero>p:last-child,
  .ws-subpage-latest .subhero-visual,
  .ws-subpage-latest .subhero-visual::before,
  .ws-subpage-latest .subhero-visual::after,
  .ws-subpage-latest .subhero-visual .glyph-card,
  .ws-subpage-latest .subhero-visual .glyph-card::before,
  .ws-subpage-latest:not(.ws-detail-page) .subhero::before,
  .ws-detail-page .ws-detail-hero::before{
    animation:none;
    opacity:1;
    transform:none;
  }
  .sp-scroll-progress{display:none;}
}

/* Case finder */
.page-case .case-catalog-section,.page-news .case-catalog-section{padding-top:clamp(54px,6vw,82px);}
.case-filter-panel{
  display:grid;
  grid-template-columns:minmax(220px,.72fr) minmax(520px,1.55fr) auto;
  gap:28px;
  align-items:center;
  margin-bottom:42px;
  padding:0 0 30px;
  border-bottom:1px solid var(--sp-line);
}
.case-filter-heading span{
  display:block;
  margin-bottom:7px;
  color:var(--sp-blue);
  font-family:var(--ws-font-en);
  font-size:9px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.case-filter-heading h2{
  color:var(--sp-navy);
  font-size:clamp(20px,2vw,28px);
  font-weight:700;
  letter-spacing:-.025em;
}
.case-filter-controls{display:flex;flex-wrap:wrap;gap:9px;}
.case-filter-controls button{
  min-height:40px;
  padding:9px 17px;
  border:1px solid #cbdde5;
  border-radius:999px;
  background:#fff;
  color:#385769;
  font-family:var(--ws-font-jp);
  font-size:11px;
  font-weight:600;
  line-height:1;
  cursor:pointer;
  transition:color .22s,background .22s,border-color .22s,transform .22s,box-shadow .22s;
}
.case-filter-controls button:hover{
  transform:translateY(-2px);
  border-color:var(--sp-cyan);
  color:var(--sp-blue);
  box-shadow:0 8px 20px rgba(15,126,170,.1);
}
.case-filter-controls button.is-active{
  border-color:var(--sp-navy);
  background:var(--sp-navy);
  color:#fff;
  box-shadow:0 9px 24px rgba(6,29,44,.18);
}
.case-filter-count{
  min-width:72px;
  color:#69818e;
  font-size:10px;
  text-align:right;
  white-space:nowrap;
}
.case-filter-count strong{
  margin-right:3px;
  color:var(--sp-blue);
  font-family:var(--ws-font-en);
  font-size:24px;
}
.page-case .achieve-card[hidden],.page-news .achieve-card[hidden]{display:none!important;}
.page-case .achieve-card.case-filtered-in,.page-news .achieve-card.case-filtered-in{animation:caseCardIn .46s cubic-bezier(.16,1,.3,1) both;}
@keyframes caseCardIn{
  from{opacity:0;transform:translate3d(0,18px,0) scale(.985);}
  to{opacity:1;transform:translate3d(0,0,0) scale(1);}
}
@media(max-width:1050px){
  .case-filter-panel{grid-template-columns:1fr;gap:20px;}
  .case-filter-count{text-align:left;}
}
@media(max-width:600px){
  .case-filter-controls{flex-wrap:nowrap;overflow-x:auto;padding:3px 0 10px;scrollbar-width:none;}
  .case-filter-controls::-webkit-scrollbar{display:none;}
  .case-filter-controls button{flex:0 0 auto;}
}
@media(prefers-reduced-motion:reduce){
  .ws-subpage-latest .subhero> .subhero-inner>div:first-child,
  .ws-subpage-latest .subhero-visual,
  .ws-detail-page .ws-detail-hero h1{animation:none;}
  }

/* v2: follow the TOP typography system and replace icon illustrations
   with editorial, photography-led hero compositions. */
.ws-subpage-latest .subhero h1,
.ws-detail-page .ws-detail-hero h1,
.ws-subpage-latest .sec-title,
.ws-detail-page .ws-detail-heading h2{
  font-family:var(--ws-font-jp)!important;
  font-size:clamp(34px,3.7vw,60px);
  font-weight:700!important;
  line-height:1.28;
  letter-spacing:-.035em!important;
  font-synthesis:none;
  text-rendering:geometricPrecision;
}
.ws-subpage-latest:not(.ws-detail-page) .subhero{
  min-height:clamp(500px,61svh,610px);
  padding-top:clamp(108px,12vh,146px);
  padding-bottom:64px;
}
.ws-subpage-latest .subhero-inner{
  grid-template-columns:minmax(0,.92fr) minmax(390px,1.08fr);
  gap:clamp(48px,6vw,96px);
}
.ws-subpage-latest .subhero-visual{
  position:relative;
  min-height:360px;
  overflow:hidden;
  isolation:isolate;
  background:
    linear-gradient(115deg,rgba(4,25,37,.08),rgba(4,25,37,.02) 52%,rgba(4,25,37,.42)),
    var(--sp-visual-image,url("hero-bg-v4.png")) var(--sp-photo-x,50%) calc(var(--sp-visual-y,50%) + var(--sp-parallax,0px))/cover no-repeat;
  box-shadow:0 35px 80px rgba(0,0,0,.28);
  clip-path:polygon(8% 0,100% 0,100% 86%,92% 100%,0 100%,0 14%);
}
.ws-subpage-latest .subhero-visual::before{
  content:"";
  position:absolute;
  z-index:1;
  inset:18px;
  border-top:1px solid rgba(255,255,255,.55);
  border-right:1px solid rgba(255,255,255,.28);
  pointer-events:none;
}
.ws-subpage-latest .subhero-visual::after{
  content:"MOBILITY  /  DIGITAL  /  FUTURE";
  position:absolute;
  z-index:2;
  top:34px;
  right:36px;
  color:rgba(255,255,255,.88);
  font-family:var(--ws-font-en);
  font-size:9px;
  font-weight:700;
  letter-spacing:.18em;
  text-shadow:0 2px 12px rgba(0,0,0,.35);
}
.ws-subpage-latest .subhero-visual :is(.glyph-ring,.glyph-chip){display:none;}
.ws-subpage-latest .subhero-visual .glyph-card{
  position:absolute;
  z-index:3;
  left:0;
  bottom:0;
  width:auto;
  max-width:72%;
  min-width:210px;
  height:auto;
  aspect-ratio:auto;
  align-items:flex-start;
  justify-content:center;
  gap:0;
  padding:18px 25px 19px 31px;
  border:0;
  border-left:3px solid var(--sp-cyan);
  border-radius:0;
  background:rgba(4,25,37,.86);
  box-shadow:none;
  backdrop-filter:blur(10px);
}
.ws-subpage-latest .subhero-visual .glyph-card .glyph-icon{display:none;}
.ws-subpage-latest .subhero-visual .glyph-card .glyph-label{
  color:#fff;
  font-size:12px;
  font-weight:600;
  line-height:1.65;
  text-align:left;
  letter-spacing:.04em;
}
.page-case{--sp-visual-image:url("img/city-isometric.jpg");--sp-visual-y:50%;}
.page-service{--sp-visual-image:url("expo-booth.jpg");--sp-visual-y:50%;}
.page-solution{--sp-visual-image:url("shizuoka-model.jpg");--sp-visual-y:50%;}
.page-company-about{--sp-visual-image:url("koryukai.jpg");--sp-visual-y:50%;}
.page-ir{--sp-visual-image:url("panel-discussion.jpg");--sp-visual-y:50%;}
.page-news{--sp-visual-image:url("ishii-podium.jpg");--sp-visual-y:30%;}
.page-contact{--sp-visual-image:url("koryukai.jpg");--sp-visual-y:50%;}
.page-solution-transport{--sp-visual-image:url("img/station-platform-train.jpg");--sp-visual-y:50%;}
.page-solution-municipality{--sp-visual-image:url("shizuoka-model.jpg");--sp-visual-y:50%;}
.page-solution-logistics{--sp-visual-image:url("hero-bg-v3.png");--sp-visual-y:50%;}
.page-solution-developer{--sp-visual-image:url("outline-visual.png");--sp-visual-y:50%;}
.page-service-will-fleet{--sp-visual-image:url("hero-bg-v3.png");--sp-visual-y:50%;}
.page-service-will-sign{--sp-visual-image:url("img/will-sign-console.png");--sp-visual-y:50%;}
.page-service-carsharing{--sp-visual-image:url("hero-bg-v4.png");--sp-visual-y:50%;}
.page-service-public-rideshare{--sp-visual-image:url("cases/kasama-public-rideshare.png");--sp-visual-y:50%;}
.page-service-community-bus{--sp-visual-image:url("cases/minamiashigara-hybrid-operation-01.jpg");--sp-visual-y:50%;}
.page-service-bus-core{--sp-visual-image:url("img/bus-core-planning-analysis.jpg");--sp-visual-y:50%;}
.page-service-mobility{--sp-visual-image:url("img/car-digital-ui.jpg");--sp-visual-y:50%;}
.page-service-information{--sp-visual-image:url("img/cloud-server-network.jpg");--sp-visual-y:50%;}
.page-service-solution-development{--sp-visual-image:url("img/tsuzuki-conference-mosaic.jpg");--sp-visual-y:50%;}
.page-service-data-science{--sp-visual-image:url("img/network-diagram.jpg");--sp-visual-y:50%;}
.page-service-cloud{--sp-visual-image:url("img/keyboard-typing.jpg");--sp-visual-y:50%;}
.page-recruit{--sp-visual-image:url("ishii-podium.jpg");--sp-visual-y:26%;}
.page-techblog{--sp-visual-image:url("tsuzuki-conference.jpg");--sp-visual-y:50%;}
.page-recruit-interview-hlioui{--sp-visual-image:url("recruit/hlioui-main.jpg");--sp-visual-y:14%;}
.page-recruit-interview-manager{--sp-visual-image:url("recruit/manager-main.jpg");--sp-visual-y:10%;}
.page-recruit-interview-hagiwara{--sp-visual-image:url("recruit/hagiwara-main.jpg");--sp-visual-y:14%;}

@media(max-width:900px){
  .ws-subpage-latest .subhero-inner{grid-template-columns:1fr;gap:38px;}
  .ws-subpage-latest .subhero-visual{min-height:320px;}
}
@media(max-width:600px){
  .ws-subpage-latest .subhero h1,
  .ws-detail-page .ws-detail-hero h1,
  .ws-subpage-latest .sec-title,
  .ws-detail-page .ws-detail-heading h2{font-size:clamp(32px,9vw,43px);}
}
/* ===== Extended lower-page catalog ===== */
.ws-catalog-page{background:#f7fafc;color:#082b3c}
.ws-catalog-page .ws-catalog-hero{min-height:560px;overflow:hidden}
.ws-catalog-page .ws-catalog-hero .subhero-inner{align-items:center;min-height:0}
.ws-catalog-page .ws-catalog-hero-copy{position:relative;z-index:3;max-width:650px}
.ws-catalog-page .ws-catalog-hero h1{font-size:clamp(44px,5vw,68px);line-height:1.18;letter-spacing:-.045em}
.ws-catalog-page .ws-catalog-hero p{max-width:590px}
.ws-catalog-page .ws-catalog-visual{position:relative;display:block;min-height:430px;overflow:hidden;border-radius:40px 6px 40px 6px;background-image:linear-gradient(135deg,rgba(0,29,43,.08),rgba(0,81,111,.18)),var(--catalog-image);background-position:center;background-size:cover;box-shadow:0 32px 80px rgba(0,16,29,.32);transform:rotate(2.2deg)}
.ws-catalog-page .ws-catalog-visual::before{content:"";position:absolute;inset:0;border:1px solid rgba(126,222,255,.42);border-radius:inherit;background:linear-gradient(115deg,rgba(255,255,255,.16),transparent 38%)}
.ws-catalog-page .ws-catalog-visual::after{content:"";position:absolute;inset:-35%;background:linear-gradient(90deg,transparent 43%,rgba(255,255,255,.24) 50%,transparent 57%);animation:catalogShine 6.8s 1.4s ease-in-out infinite}
.ws-catalog-visual-no{position:absolute;z-index:2;top:25px;right:28px;color:rgba(255,255,255,.72);font:700 11px/1 Lato,sans-serif;letter-spacing:.18em}
.ws-catalog-visual-label{position:absolute;z-index:2;left:28px;bottom:25px;max-width:75%;padding:13px 18px;border:1px solid rgba(255,255,255,.36);border-radius:999px;background:rgba(0,32,48,.66);backdrop-filter:blur(12px);color:#fff;font-size:12px;letter-spacing:.08em}
@keyframes catalogShine{0%,66%{transform:translateX(-45%)}92%,100%{transform:translateX(45%)}}
.ws-catalog-page .ws-sidebar{z-index:20}
.ws-catalog-page .ws-catalog-sidebar nav a .ws-nav-icon{font:700 9px/1 Lato,sans-serif;letter-spacing:.08em}
.ws-catalog-content,.ws-catalog-intro{background:linear-gradient(180deg,#fff,#f6fafc)}
.ws-catalog-page .ws-catalog-intro .wrap,.ws-catalog-page .ws-catalog-content .wrap{max-width:1240px}
.ws-catalog-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.ws-catalog-card{position:relative;min-height:290px;padding:29px 25px 25px;overflow:hidden;border:1px solid #dbe8ed;border-radius:5px 24px 5px 24px;background:#fff;color:#082b3c;box-shadow:0 16px 45px rgba(12,55,73,.07);transition:.35s ease}
.ws-catalog-card::after{content:"";position:absolute;right:-28px;bottom:-36px;width:115px;height:115px;border:1px solid #b7e8f6;border-radius:50%;transition:.4s}
.ws-catalog-card:hover{transform:translateY(-8px);border-color:#74d6f2;box-shadow:0 25px 65px rgba(12,83,111,.14)}
.ws-catalog-card:hover::after{transform:scale(1.5);background:#effbfe}
.ws-catalog-card>span{font:900 12px/1 Lato,sans-serif;color:#19b7e6;letter-spacing:.14em}
.ws-catalog-card h3{position:relative;z-index:1;margin:65px 0 14px;font-size:19px;line-height:1.55}
.ws-catalog-card p{position:relative;z-index:1;color:#67808d;font-size:12px;line-height:1.75}
.ws-catalog-card b{position:absolute;z-index:2;right:22px;bottom:20px;color:#0a9ed2;font:700 10px/1 Lato,sans-serif;letter-spacing:.1em}
.ws-catalog-cta{display:flex;align-items:center;justify-content:space-between;gap:40px;margin-left:var(--side-w);padding:72px clamp(40px,7vw,110px);background:linear-gradient(120deg,#042636,#075777);color:#fff}
.ws-catalog-cta span{color:#67d4f6;font:700 11px/1 Lato,sans-serif;letter-spacing:.18em;text-transform:uppercase}
.ws-catalog-cta h2{margin-top:16px;font-size:clamp(27px,3vw,43px);line-height:1.35}
.ws-catalog-cta>a{display:flex;align-items:center;justify-content:space-between;width:min(260px,100%);padding:20px 22px;border:1px solid rgba(255,255,255,.32);border-radius:999px;color:#fff;font-size:13px;font-weight:700;transition:.3s}
.ws-catalog-cta>a:hover{border-color:#67d4f6;background:#0ca9d8;transform:translateX(5px)}
.ws-catalog-filter{display:flex;gap:9px;margin-bottom:46px;overflow-x:auto;padding-bottom:6px}
.ws-catalog-filter button{flex:none;padding:12px 18px;border:1px solid #d9e7ed;border-radius:999px;background:#fff;color:#56707d;font-size:12px;font-weight:700}
.ws-catalog-filter button.is-active{border-color:#079dce;background:#07354b;color:#fff}
.ws-news-list{border-top:1px solid #dce8ed}
.ws-news-row{display:grid;grid-template-columns:150px 1fr 64px;align-items:center;gap:26px;padding:27px 12px;border-bottom:1px solid #dce8ed;color:#123d50;transition:.25s}
.ws-news-row:hover{padding-left:23px;background:#f0f9fc}
.ws-news-row span{color:#718894;font:700 11px/1 Lato,sans-serif}
.ws-news-row strong{font-size:14px;line-height:1.7}
.ws-news-row b{text-align:right;color:#11addd;font:700 11px/1 Lato,sans-serif}
.ws-catalog-footer{margin-left:var(--side-w);padding:64px clamp(40px,7vw,110px) 28px;background:#031d2a;color:#fff}
.ws-catalog-footer .wrap{max-width:1180px;margin:0}
.ws-catalog-foot-top{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.12)}
.ws-catalog-foot-top img{width:160px;filter:brightness(0) invert(1)}
.ws-catalog-foot-top p{color:#a9c3ce;font-size:12px}
.ws-catalog-foot-links{display:flex;flex-wrap:wrap;gap:22px 36px;padding:29px 0}
.ws-catalog-foot-links a{color:#d7e7ed;font-size:11px;font-weight:700}
.ws-catalog-foot-bottom{display:flex;justify-content:space-between;color:#668692;font:400 10px/1.6 Lato,sans-serif}
@media(max-width:1120px){.ws-catalog-grid{grid-template-columns:repeat(2,1fr)}.ws-catalog-page .ws-catalog-visual{min-height:350px}}
@media(max-width:900px){.ws-catalog-page .ws-catalog-hero,.ws-catalog-page .ws-catalog-hero .subhero-inner{min-height:auto}.ws-catalog-page .ws-catalog-visual{display:block;min-height:300px;transform:none}.ws-catalog-cta,.ws-catalog-footer{margin-left:0}.ws-catalog-cta{align-items:flex-start;flex-direction:column}.ws-news-row{grid-template-columns:1fr 45px}.ws-news-row span{grid-column:1/-1}.ws-catalog-foot-top{align-items:flex-start;flex-direction:column}}
@media(max-width:600px){.ws-catalog-page .ws-catalog-hero h1{font-size:40px}.ws-catalog-grid{grid-template-columns:1fr}.ws-catalog-card{min-height:250px}.ws-catalog-card h3{margin-top:45px}.ws-catalog-cta{padding:56px 22px}.ws-catalog-footer{padding:50px 22px 25px}.ws-catalog-foot-bottom{gap:12px;flex-direction:column}.ws-news-row{gap:12px;padding:22px 4px}}

/* Unified lower-page hero: 420px / white / 40:60 editorial split */
@media(min-width:901px){
  .ws-subpage-latest:not(.ws-detail-page) .subhero{
    min-height:420px;
    height:420px;
    padding:0;
    overflow:hidden;
    background:#fff;
  }
  .ws-subpage-latest:not(.ws-detail-page) .subhero::before,
  .ws-subpage-latest:not(.ws-detail-page) .subhero::after{content:none;display:none}
  .ws-subpage-latest:not(.ws-detail-page) .subhero>.subhero-inner{
    width:calc(100% - var(--side-w));
    max-width:none;
    min-height:420px;
    height:420px;
    margin:0 0 0 var(--side-w);
    padding:0;
    grid-template-columns:minmax(0,40%) minmax(0,60%);
    gap:0;
    align-items:stretch;
  }
  .ws-subpage-latest:not(.ws-detail-page) .subhero>.subhero-inner>div:first-child{
    position:relative;
    z-index:4;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:30px clamp(42px,5vw,82px);
    background:#fff;
  }
  .ws-subpage-latest:not(.ws-detail-page) .subhero .eyebrow{
    margin:0 0 20px;
    padding:0;
    color:#168ec9;
    font-size:11px;
    letter-spacing:.13em;
  }
  .ws-subpage-latest:not(.ws-detail-page) .subhero .eyebrow::before{display:none}
  .ws-subpage-latest:not(.ws-detail-page) .subhero h1{
    max-width:680px;
    margin:0 0 24px;
    color:#09283c;
    font-size:clamp(40px,3.8vw,56px);
    line-height:1.3;
    letter-spacing:-.035em;
  }
  .ws-subpage-latest:not(.ws-detail-page) .subhero p{
    max-width:620px;
    margin:0;
    color:#496778;
    font-size:13px;
    line-height:1.9;
  }
  .ws-subpage-latest:not(.ws-detail-page) .subhero-visual,
  .ws-catalog-page .ws-catalog-visual{
    display:block;
    min-height:420px!important;
    height:420px;
    margin:0;
    overflow:hidden;
    border-radius:0;
    clip-path:none;
    transform:none;
    box-shadow:none;
    filter:none;
  }
  .ws-subpage-latest:not(.ws-detail-page):not(.ws-catalog-page) .subhero-visual{
    background-image:linear-gradient(90deg,#fff 0,rgba(255,255,255,.9) 5%,rgba(255,255,255,.34) 20%,rgba(255,255,255,0) 43%),var(--sp-visual-image)!important;
    background-position:center!important;
    background-size:cover!important;
  }
  .ws-catalog-page .ws-catalog-visual{
    background-image:linear-gradient(90deg,#fff 0,rgba(255,255,255,.9) 5%,rgba(255,255,255,.34) 20%,rgba(255,255,255,0) 43%),var(--catalog-image)!important;
    background-position:center!important;
    background-size:cover!important;
  }
  .ws-subpage-latest:not(.ws-detail-page) .subhero-visual::before,
  .ws-subpage-latest:not(.ws-detail-page) .subhero-visual::after,
  .ws-subpage-latest:not(.ws-detail-page) .subhero-visual>*{display:none!important}
}
.page-case{--sp-visual-image:url('img/city-isometric.jpg');--sp-visual-y:50%;}
@media(max-width:900px){
  .ws-subpage-latest:not(.ws-detail-page) .subhero{min-height:auto;padding:0;background:#fff}
  .ws-subpage-latest:not(.ws-detail-page) .subhero>.subhero-inner{width:100%;max-width:none;margin:0;padding:0;grid-template-columns:1fr;gap:0}
  .ws-subpage-latest:not(.ws-detail-page) .subhero>.subhero-inner>div:first-child{padding:64px 24px 48px;background:#fff}
  .ws-subpage-latest:not(.ws-detail-page) .subhero .eyebrow{color:#168ec9}
  .ws-subpage-latest:not(.ws-detail-page) .subhero h1{color:#09283c;font-size:clamp(34px,9vw,46px)}
  .ws-subpage-latest:not(.ws-detail-page) .subhero p{color:#496778}
  .ws-subpage-latest:not(.ws-detail-page) .subhero-visual{display:block!important;min-height:260px;height:260px;margin:0;border-radius:0;clip-path:none;box-shadow:none;background-image:var(--sp-visual-image)!important;background-position:center!important;background-size:cover!important}
  .ws-subpage-latest:not(.ws-detail-page) .subhero-visual::before,
  .ws-subpage-latest:not(.ws-detail-page) .subhero-visual::after,
  .ws-subpage-latest:not(.ws-detail-page) .subhero-visual>*{display:none!important}
}
.ws-hub-directory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ws-hub-directory-card{position:relative;min-height:190px;padding:24px;border:1px solid #d9e8ed;border-radius:5px 22px 5px 22px;background:#fff;color:#0b3446;transition:.3s}
.ws-hub-directory-card:hover{transform:translateY(-6px);border-color:#61cfee;box-shadow:0 20px 50px rgba(7,74,102,.13)}
.ws-hub-directory-card>span{color:#14b3e1;font:900 11px/1 Lato,sans-serif}
.ws-hub-directory-card small{display:block;margin-top:35px;color:#73909c;font:700 10px/1.4 Lato,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.ws-hub-directory-card h3{margin-top:10px;font-size:17px;line-height:1.5}
.ws-hub-directory-card b{position:absolute;right:22px;bottom:18px;color:#0a9ed2;font:700 10px/1 Lato,sans-serif}
@media(max-width:800px){.ws-hub-directory-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.ws-hub-directory-grid{grid-template-columns:1fr}}

/* Compact, consistent first view across all lower pages */
@media(min-width:901px){
  .ws-subpage-latest:not(.ws-detail-page) .subhero{
    min-height:560px;
    padding-top:82px;
    padding-bottom:46px;
  }
  .ws-subpage-latest .subhero-visual{min-height:320px;}
  .ws-catalog-page .ws-catalog-visual{min-height:320px;}
}

/* Final authority: shared lower-page header rule */
@media(min-width:901px){
  body.ws-subpage-latest:not(.ws-detail-page) section.subhero{
    min-height:420px!important;
    height:420px!important;
    padding:0!important;
    background:#fff!important;
  }
  body.ws-subpage-latest:not(.ws-detail-page) section.subhero>.subhero-inner{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    min-height:420px!important;
    height:420px!important;
  }
  body.ws-subpage-latest:not(.ws-detail-page) section.subhero>.subhero-inner>div:first-child{
    padding:38px 22px 36px clamp(42px,4.2vw,68px)!important;
  }
  body.ws-subpage-latest:not(.ws-detail-page) section.subhero h1{
    color:#09283c!important;
    font-size:clamp(32px,2.7vw,42px)!important;
    line-height:1.25!important;
  }
  body.ws-subpage-latest:not(.ws-detail-page) section.subhero p{color:#496778!important}
  body.ws-subpage-latest:not(.ws-detail-page) section.subhero .eyebrow{color:#168ec9!important}
  body.ws-subpage-latest:not(.ws-detail-page) section.subhero .subhero-visual,
  body.ws-catalog-page section.subhero .ws-catalog-visual{
    min-height:420px!important;
    height:420px!important;
  }
}

/* mobile hero visual: catalog pages define --catalog-image, not --sp-visual-image */
@media(max-width:900px){
  body.ws-catalog-page section.subhero .ws-catalog-visual{
    background-image:var(--catalog-image)!important;
    background-position:center!important;
    background-size:cover!important;
    min-height:260px!important;
    height:260px!important;
  }
}

/* B-06（全下層ページ）：上部バナーを本文と揃える（表示倍率67〜100%、幅を狭めた場合も）
   ・バナーの最大幅を本文セクションと同じ1320pxに（左メニュー分はmarginで確保済み）
   ・見出しの左端を本文（.section-pad>.wrap）の余白に合わせる */
.ws-subpage-latest:not(.ws-detail-page) .subhero{max-width:1320px}
body.ws-subpage-latest:not(.ws-detail-page) section.subhero>.subhero-inner>div:first-child{padding-left:clamp(28px,5vw,76px)!important}
@media(max-width:600px){body.ws-subpage-latest:not(.ws-detail-page) section.subhero>.subhero-inner>div:first-child{padding-left:20px!important}}

/* B-06（一覧系ページ）：本文の枠を他ページと同じ左揃え・余白・最大幅にする（背景はこれまでどおり画面端まで） */
body.ws-subpage-latest:not(.ws-detail-page) .ws-detail-section,
body.ws-subpage-latest.page-solution .business-domain-map-section,
body.ws-subpage-latest.page-solution .service-lineup-feature{padding-left:clamp(28px,5vw,76px)!important;padding-right:clamp(28px,5vw,76px)!important}
body.ws-subpage-latest:not(.ws-detail-page) .ws-detail-section>*,
body.ws-subpage-latest.page-solution .business-domain-map-section>.domain-map-shell,
body.ws-subpage-latest.page-solution .service-lineup-feature>.service-lineup-grid{max-width:calc(1320px - 2 * clamp(28px,5vw,76px))!important;margin-left:0!important;margin-right:auto!important}
body.ws-subpage-latest:not(.ws-detail-page) .ws-detail-section>.ws-detail-heading{max-width:min(900px,calc(1320px - 2 * clamp(28px,5vw,76px)))!important}
body.ws-subpage-latest.page-service .service-final-inner{box-sizing:border-box;max-width:1320px!important;margin-left:0!important;margin-right:0!important;padding-left:clamp(28px,5vw,76px)!important;padding-right:clamp(28px,5vw,76px)!important}
@media(max-width:600px){
  body.ws-subpage-latest:not(.ws-detail-page) .ws-detail-section,
  body.ws-subpage-latest.page-solution .business-domain-map-section,
  body.ws-subpage-latest.page-solution .service-lineup-feature,
  body.ws-subpage-latest.page-service .service-final-inner{padding-left:20px!important;padding-right:20px!important}
  body.ws-subpage-latest:not(.ws-detail-page) .ws-detail-section>*,
  body.ws-subpage-latest.page-solution .business-domain-map-section>.domain-map-shell,
  body.ws-subpage-latest.page-solution .service-lineup-feature>.service-lineup-grid{max-width:none!important}
}

/* B-06（会社概要・記事ページ）：会社概要のバナー見出し、開発者ブログ・社員インタビューの記事列を、本文の左端（左メニュー＋.section-pad>.wrap の余白）に揃える */
body.ws-subpage-latest.page-company-combined section.subhero .subhero-inner>div:first-child{padding-left:clamp(28px,5vw,76px)!important}
@media(max-width:600px){body.ws-subpage-latest.page-company-combined section.subhero .subhero-inner>div:first-child{padding-left:20px!important}}
@media(min-width:901px){body.ws-subpage-latest :is(main.ws-blog-main,main.ws-int-main){margin-left:calc(var(--side-w) + clamp(28px,5vw,76px) - 24px)!important;margin-right:auto!important}}
/* B-06（記事ページ・スマホ）：記事列の左右余白を他ページと同じ20pxに */
@media(max-width:600px){body.ws-subpage-latest :is(main.ws-blog-main,main.ws-int-main){padding-left:20px!important;padding-right:20px!important}}

/* 2026-10-11 修正指示書D：構成図・画面の図は文字が切れないよう、トリミングせず枠に収める */
.ws-subpage-latest .case-placement-visual img.is-diagram{object-fit:contain!important;background:#fff;padding:10px;box-sizing:border-box}
/* D-01：Will-Fleetの機能は4枚。導入事例詳細と同じく3+1ではなく2×2で並べる */
.ws-subpage-latest.page-service-will-fleet #features + .case-placement-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
@media(max-width:680px){.ws-subpage-latest.page-service-will-fleet #features + .case-placement-grid{grid-template-columns:minmax(0,1fr)!important}}
