:root{--navy:#09172b;--blue:#1266f1;--cyan:#44c3ff;--ink:#112036;--muted:#617086;--line:#dfe5ec;--bg:#f4f7fa;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font-family:'Noto Sans JP',sans-serif;line-height:1.8}a{color:inherit;text-decoration:none}.header{height:88px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:20;background:#fff}.brand{display:flex;align-items:center;gap:12px;font-weight:700}.brand-mark{display:grid;place-items:center;width:42px;height:42px;background:linear-gradient(135deg,var(--navy),var(--blue));color:#fff;border-radius:4px;font:700 24px Outfit}.brand-name{font-size:18px;letter-spacing:.05em}.nav{display:flex;align-items:center;gap:2vw;font-size:14px;font-weight:600}.nav a{transition:.2s}.nav a:hover{color:var(--blue)}.nav-contact{background:var(--navy);color:#fff!important;padding:16px 22px}.menu-button{display:none}.hero{min-height:calc(100vh - 88px);position:relative;overflow:hidden;display:grid;grid-template-columns:1.02fr .98fr;align-items:center;padding:5vw 5vw 7vw;background:linear-gradient(115deg,#fff 0%,#fff 48%,#edf5ff 48%,#f5f9ff 100%)}.hero-copy{position:relative;z-index:2}.eyebrow,.section-label,.card>span{font:600 12px Outfit;letter-spacing:.18em}.eyebrow{color:var(--blue);margin-bottom:26px}.hero h1{font-size:clamp(42px,5.3vw,78px);line-height:1.24;letter-spacing:-.045em;margin:0 0 28px;font-weight:800}.hero h1 span{color:var(--blue)}.hero-lead{font-size:16px;color:#506079;margin-bottom:38px}.hero-actions{display:flex;gap:12px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:38px;padding:17px 24px;font-weight:700;font-size:14px;min-width:190px;transition:.25s}.button:hover{transform:translateY(-2px)}.primary{color:#fff;background:var(--blue)}.secondary{border:1px solid #cbd5df;background:#fff}.hero-fields{display:flex;flex-wrap:wrap;gap:20px;margin-top:50px;color:#8693a4;font:600 10px Outfit;letter-spacing:.12em}.hero-visual{position:relative;width:min(46vw,620px);aspect-ratio:1/1;margin:auto}.visual-grid{position:absolute;inset:0;background-image:linear-gradient(#b6cce21f 1px,transparent 1px),linear-gradient(90deg,#b6cce21f 1px,transparent 1px);background-size:42px 42px;mask-image:radial-gradient(circle,#000 20%,transparent 70%)}.orb{position:absolute;border-radius:50%;filter:blur(2px)}.orb-a{width:310px;height:310px;left:25%;top:24%;background:#287eff1b}.orb-b{width:180px;height:180px;right:5%;top:5%;background:#45d1ff1f}.hub,.node{position:absolute;background:#fff;box-shadow:0 18px 50px #31577c24;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:2}.hub{width:154px;height:154px;border-radius:50%;left:38%;top:36%;border:1px solid #d8e6f3}.hub-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:50%;background:var(--blue);color:white;font:700 24px Outfit;margin-bottom:8px}.hub strong,.node strong{font:700 13px Outfit;letter-spacing:.08em}.hub small,.node small{font-size:10px;color:#8591a2}.node{width:132px;height:100px;border-radius:10px}.node>span{color:var(--blue);font-size:25px;line-height:1.2;margin-bottom:4px}.node-pc{left:3%;top:11%}.node-cloud{right:0;top:8%}.node-network{right:0;bottom:12%}.node-mobile{left:2%;bottom:7%}.hero-visual svg{position:absolute;inset:0;width:100%;height:100%}.hero-visual path{fill:none;stroke:#7cb2e8;stroke-width:1.2;stroke-dasharray:5 7}.scroll{position:absolute;bottom:28px;left:5vw;font:600 10px Outfit;letter-spacing:.15em;color:#7d8a99;display:flex;align-items:center;gap:12px}.scroll span{width:70px;height:1px;background:#aab4bf}.section{padding:120px 8vw}.section-label{color:#8794a5;display:flex;gap:14px;align-items:center;margin-bottom:65px}.section-label span{color:var(--blue)}.section-label:after{content:'';width:42px;height:1px;background:#c7d0da}.about-layout,.section-head{display:grid;grid-template-columns:1fr 1fr;gap:8vw}.kicker{color:var(--blue);font-weight:700;margin:0 0 14px}.about h2,.section h2{font-size:clamp(34px,4vw,58px);line-height:1.42;letter-spacing:-.03em;margin:0;font-weight:700}.about-layout>div:last-child{padding-top:55px;font-size:16px;color:var(--muted)}.text-link{display:inline-flex;gap:50px;border-bottom:1px solid #9ca9b7;padding:14px 0;margin-top:28px;font-weight:700;font-size:14px}.dark{background:var(--navy);color:#fff}.section-label.light{color:#8596ac}.blue{color:#55baff}.problems h2{margin-bottom:55px}.problem-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #ffffff2b;border-left:1px solid #ffffff2b}.problem-grid article{min-height:240px;border-right:1px solid #ffffff2b;border-bottom:1px solid #ffffff2b;padding:28px;position:relative}.problem-grid b{position:absolute;right:20px;top:15px;color:#718098;font:500 11px Outfit}.problem-grid article>span{font:500 32px Outfit;color:#59baff}.problem-grid h3{font-size:18px;margin:45px 0 0;line-height:1.7}.section-head{align-items:end;margin-bottom:60px}.section-head>p{color:var(--muted);margin-bottom:4px}.service-list{border-top:1px solid var(--line)}.service-list a{display:grid;grid-template-columns:70px 1fr 60px;align-items:center;padding:34px 15px;border-bottom:1px solid var(--line);transition:.25s}.service-list a:hover{background:#f4f8fe;padding-left:28px}.service-list b{font:600 12px Outfit;color:var(--blue)}.service-list div span{font:600 11px Outfit;letter-spacing:.12em;color:#8692a2}.service-list h3{font-size:24px;margin:2px 0 4px}.service-list p{margin:0;color:#778497;font-size:14px}.service-list i{font-style:normal;color:var(--blue);font-size:24px}.pickup{background:var(--bg)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card{min-height:410px;padding:38px;display:flex;flex-direction:column;position:relative;overflow:hidden}.card h3{font:700 clamp(34px,4vw,57px)/1 Outfit;margin:75px 0 25px;letter-spacing:-.03em}.card p{font-size:14px;margin:0}.card a{margin-top:auto;font-weight:700;font-size:13px}.cloud-card{background:linear-gradient(150deg,#dcecff,#fff);color:#0c3c86}.biz-card{background:linear-gradient(145deg,#0872e9,#0e43b7);color:#fff}.giga-card{background:linear-gradient(145deg,#09182b,#173657);color:#fff}.sksone{background:#1122a9;color:#fff;padding-top:100px;padding-bottom:100px}.sks-inner{display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:8vw}.sks-logo{display:flex;flex-direction:column;border-left:4px solid #57d0ff;padding-left:28px}.sks-logo span{font:600 11px Outfit;letter-spacing:.2em;color:#7edcff}.sks-logo strong{font:700 clamp(48px,6vw,82px) Outfit;letter-spacing:-.05em}.sks-logo small{font-weight:500;letter-spacing:.25em}.sks-inner>div:last-child>p:first-child{color:#75dbff;font:600 14px Outfit;letter-spacing:.08em}.sks-text{color:#d6ddff;margin:25px 0 35px}.white{background:white;color:#1223a9}.case-placeholder{margin-top:60px;min-height:250px;background:linear-gradient(120deg,#e8f2fa,#f9fbfd);display:grid;place-items:center;align-content:center;color:#8795a5}.case-placeholder span{font:700 12px Outfit;letter-spacing:.18em}.news{background:#f7f9fb}.news-layout{display:grid;grid-template-columns:.7fr 1.3fr;gap:8vw}.news-list{border-top:1px solid #ccd5de}.news-list a{display:grid;grid-template-columns:120px 90px 1fr 30px;align-items:center;border-bottom:1px solid #ccd5de;padding:25px 0;font-size:14px}.news-list time{font:500 12px Outfit;color:#79879a}.news-list span{font-size:11px;color:var(--blue);border:1px solid #9cc0ee;text-align:center}.news-list p{margin:0}.news-list i{font-style:normal;color:var(--blue)}.contact{text-align:center;background:#eef6ff}.contact h2{margin:12px 0 22px}.contact>p:not(.eyebrow){color:var(--muted)}.contact-actions{display:grid;grid-template-columns:1fr 1fr;max-width:900px;margin:45px auto 0}.contact-actions a{min-height:125px;padding:25px 35px;display:flex;flex-direction:column;justify-content:center}.contact-mail{background:var(--blue);color:#fff}.contact-tel{background:#fff;border:1px solid #ccd8e5}.contact-actions small{font-size:12px}.contact-actions strong{font-size:20px}.contact-tel>span{font-size:11px;color:#8190a1}footer{background:var(--navy);color:#fff;padding:65px 7vw 25px}.footer-top{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:60px}.footer-links{display:grid;grid-template-columns:repeat(3,1fr);gap:22px 55px;font-size:13px}.footer-bottom{border-top:1px solid #ffffff24;padding-top:20px;display:flex;justify-content:space-between;color:#8190a4;font-size:11px}
@media(max-width:900px){.header{height:70px}.nav{display:none;position:absolute;top:70px;left:0;right:0;background:#fff;padding:25px;flex-direction:column;align-items:stretch}.nav.open{display:flex}.menu-button{display:flex;border:0;background:none;flex-direction:column;gap:7px}.menu-button span{display:block;width:28px;height:2px;background:var(--navy)}.hero{min-height:auto;grid-template-columns:1fr;padding:80px 6vw 55px;background:linear-gradient(160deg,#fff 0%,#fff 58%,#edf5ff 58%)}.hero-visual{width:min(90vw,560px);margin-top:40px}.hero-fields{gap:12px}.scroll{display:none}.section{padding:85px 6vw}.section-label{margin-bottom:40px}.about-layout,.section-head,.sks-inner,.news-layout{grid-template-columns:1fr;gap:25px}.about-layout>div:last-child{padding-top:0}.problem-grid{grid-template-columns:repeat(2,1fr)}.cards{grid-template-columns:1fr}.card{min-height:340px}.sks-inner{gap:50px}.footer-top{flex-direction:column;gap:50px}.footer-links{grid-template-columns:repeat(2,1fr)}.contact-actions{grid-template-columns:1fr}.news-list a{grid-template-columns:100px 75px 1fr 20px}}
@media(max-width:560px){.brand-name{font-size:15px}.hero{padding-top:55px}.hero h1{font-size:39px}.hero-lead br{display:none}.hero-actions{flex-direction:column}.button{width:100%}.hero-visual{width:100%;transform:scale(.95)}.node{width:105px;height:82px}.hub{width:125px;height:125px}.section{padding:70px 5vw}.section h2,.about h2{font-size:31px}.problem-grid{grid-template-columns:1fr}.problem-grid article{min-height:190px}.service-list a{grid-template-columns:45px 1fr 28px;padding:25px 5px}.service-list h3{font-size:20px}.service-list p{font-size:12px}.news-list a{grid-template-columns:1fr 70px 20px;gap:8px}.news-list p{grid-column:1/4}.footer-links{gap:18px 28px}}

/* Small-label readability */
.hero-fields,
.hub small,
.node small,
.scroll {
  font-size: 12px;
}

/* Concerns section: brand-blue treatment */
.problems {
  background: linear-gradient(135deg, #1266f1 0%, #0b4fbd 52%, #07377f 100%);
}

.problems .problem-grid,
.problems .problem-grid article {
  border-color: rgba(255, 255, 255, 0.3);
}

.problems .section-label.light,
.problems .problem-grid b {
  color: rgba(255, 255, 255, 0.72);
}

.problems .blue,
.problems .problem-grid article > span {
  color: #8de1ff;
}

/* About: three reasons to choose Wada Shoten */
.about-strengths {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 76px;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.strength-card {
  min-height: 290px;
  padding: 34px 32px 38px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: linear-gradient(145deg, #fff 0%, #f7faff 100%);
  transition: transform .25s, box-shadow .25s, border-color .25s;
}

.strength-card:hover {
  position: relative;
  z-index: 1;
  transform: translateY(-5px);
  border-color: #b6d2fb;
  box-shadow: 0 18px 42px rgba(18, 102, 241, .12);
}

.strength-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 58px;
}

.strength-number,
.strength-word {
  color: var(--blue);
  font: 600 12px Outfit, sans-serif;
  letter-spacing: .14em;
}

.strength-word {
  color: #9aa7b7;
  font-size: 11px;
}

.strength-card h3 {
  margin: 0 0 15px;
  font-size: 23px;
  line-height: 1.5;
}

.strength-card p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.9;
}

@media(max-width:900px) {
  .about-strengths { grid-template-columns: 1fr; margin-top: 52px; }
  .strength-card { min-height: 230px; }
  .strength-top { margin-bottom: 38px; }
}

/* Clickable concern cards */
.problem-grid > a {
  min-height: 240px;
  padding: 28px;
  position: relative;
  overflow: hidden;
  border-right: 1px solid rgba(255, 255, 255, .3);
  border-bottom: 1px solid rgba(255, 255, 255, .3);
  transition: background-color .25s, transform .25s, box-shadow .25s;
}

.problem-grid > a b {
  position: absolute;
  right: 20px;
  top: 15px;
  color: rgba(255, 255, 255, .72);
  font: 500 11px Outfit, sans-serif;
  transform-origin: top right;
  transition: transform .3s ease, color .3s ease, opacity .3s ease;
}

.problem-grid > a > span {
  color: #8de1ff;
  font: 500 32px Outfit, sans-serif;
}

.problem-grid > a h3 {
  margin: 45px 0 0;
  font-size: 18px;
  line-height: 1.7;
  transition: transform .25s;
}

.problem-grid > a em {
  position: absolute;
  left: 28px;
  bottom: 20px;
  color: #fff;
  font-size: 13px;
  font-style: normal;
  font-weight: 700;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .25s, transform .25s;
}

.problem-grid > a:hover,
.problem-grid > a:focus-visible {
  z-index: 1;
  background: rgba(255, 255, 255, .13);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .35), 0 14px 35px rgba(0, 34, 91, .18);
  outline: none;
}

.problem-grid > a:hover h3,
.problem-grid > a:focus-visible h3 {
  transform: translateY(-9px);
}

.problem-grid > a:hover b,
.problem-grid > a:focus-visible b {
  color: #fff;
  opacity: .42;
  transform: scale(3.5);
}

.problem-grid > a:hover em,
.problem-grid > a:focus-visible em {
  opacity: 1;
  transform: translateY(0);
}

.service-list > a {
  scroll-margin-top: 110px;
}

.service-list > a:target {
  background: #eaf3ff;
  box-shadow: inset 4px 0 0 var(--blue);
}

@media(max-width:560px) {
  .problem-grid > a { min-height: 190px; }
}

@media(hover:none) {
  .problem-grid > a em { opacity: .85; transform: none; }
  .problem-grid > a h3 { margin-top: 28px; }
}

/* Service list: richer interactive entries */
.service-list > a {
  grid-template-columns: 70px 74px 1fr auto 60px;
  overflow: hidden;
}

.service-list > a > b {
  position: relative;
  z-index: 1;
  transform-origin: left center;
  transition: transform .3s, opacity .3s;
}

.service-icon {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border: 1px solid #a9cdfa;
  border-radius: 50%;
  color: var(--blue);
  background: #f4f8ff;
  font: 600 18px Outfit, sans-serif;
  transition: transform .3s, color .3s, background-color .3s, box-shadow .3s;
}

.service-content {
  position: relative;
  z-index: 1;
}

.service-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  max-height: 0;
  margin-top: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height .35s, margin-top .35s, opacity .3s;
}

.service-tags small {
  padding: 4px 10px;
  border: 1px solid #c7dcf8;
  border-radius: 100px;
  color: #35618f;
  background: rgba(255, 255, 255, .72);
  font-size: 13px;
  line-height: 1.5;
}

.service-cta {
  color: var(--blue);
  font-size: 13px;
  font-weight: 700;
  opacity: 0;
  transform: translateX(-10px);
  transition: opacity .25s, transform .25s;
}

.service-list > a > i {
  transition: transform .3s;
}

.service-list > a:hover > b,
.service-list > a:focus-visible > b {
  opacity: .16;
  transform: scale(3.1);
}

.service-list > a:hover .service-icon,
.service-list > a:focus-visible .service-icon {
  color: #fff;
  background: var(--blue);
  transform: translateX(6px);
  box-shadow: 0 9px 24px rgba(18, 102, 241, .24);
}

.service-list > a:hover .service-tags,
.service-list > a:focus-visible .service-tags {
  max-height: 56px;
  margin-top: 14px;
  opacity: 1;
}

.service-list > a:hover .service-cta,
.service-list > a:focus-visible .service-cta {
  opacity: 1;
  transform: translateX(0);
}

.service-list > a:hover > i,
.service-list > a:focus-visible > i {
  transform: translateX(9px);
}

.service-list > a:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: -2px;
}

@media(max-width:900px) {
  .service-list > a { grid-template-columns: 52px 62px 1fr 35px; }
  .service-list > a .service-cta { display: none; }
}

@media(max-width:560px) {
  .service-list > a { grid-template-columns: 38px 48px 1fr 26px; padding: 25px 5px; }
  .service-icon { width: 39px; height: 39px; font-size: 14px; }
  .service-tags { max-height: none; margin-top: 10px; opacity: 1; }
  .service-tags small { font-size: 12px; }
}

/* Pick-up service cards */
.cards {
  align-items: stretch;
  gap: 28px;
}

.card {
  min-height: 640px;
  padding: 48px;
  transition: transform .35s ease, box-shadow .35s ease;
}

.card::before {
  content: '';
  position: absolute;
  width: 280px;
  height: 280px;
  right: -120px;
  top: -130px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .22);
  filter: blur(3px);
  transform: translate3d(0, 0, 0) scale(.8);
  transition: transform .7s ease, opacity .7s ease;
}

.cloud-card::before {
  background: rgba(25, 112, 239, .12);
}

.card > * {
  position: relative;
  z-index: 1;
}

.card:hover,
.card:focus-within {
  transform: translateY(-10px);
  box-shadow: 0 24px 55px rgba(18, 53, 94, .2);
}

.card:hover::before,
.card:focus-within::before {
  opacity: .8;
  transform: translate3d(-85px, 85px, 0) scale(1.35);
}

.card-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font: 600 12px Outfit, sans-serif;
  letter-spacing: .16em;
}

.card-meta b {
  font-weight: 600;
}

.card h3 {
  margin: 78px 0 34px;
  transition: transform .35s ease;
}

.card:hover h3,
.card:focus-within h3 {
  transform: scale(1.045);
  transform-origin: left center;
}

.card-copy {
  font-size: 15px !important;
  line-height: 1.9;
}

.card-copy strong {
  display: inline-block;
  margin-bottom: 10px;
  font-size: 16px;
}

.card-audience {
  margin: 28px 0 0 !important;
  padding-left: 12px;
  border-left: 2px solid currentColor;
  font-weight: 600;
  font-size: 15px !important;
  line-height: 1.7;
}

.pickup-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 30px;
}

.pickup-tags span,
.giga-options span {
  padding: 7px 13px;
  border: 1px solid currentColor;
  border-radius: 100px;
  font-size: 13px;
  line-height: 1.5;
  opacity: .78;
  transform: translateY(7px);
  transition: transform .3s ease, opacity .3s ease, background-color .3s ease;
}

.card:hover .pickup-tags span,
.card:focus-within .pickup-tags span,
.card:hover .giga-options span,
.card:focus-within .giga-options span {
  opacity: 1;
  transform: translateY(0);
}

.pickup-tags span:nth-child(2) { transition-delay: .04s; }
.pickup-tags span:nth-child(3) { transition-delay: .08s; }

.giga-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 28px;
}

.giga-options span {
  border-radius: 3px;
  text-align: center;
  font-weight: 700;
}

.card-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding-top: 24px;
  border-top: 1px solid currentColor;
}

.card-link i {
  font-style: normal;
  transition: transform .3s ease;
}

.card-link:hover i,
.card-link:focus-visible i {
  transform: translateX(9px);
}

@media(max-width:900px) {
  .cards { gap: 22px; }
  .card { min-height: 560px; padding: 42px; }
}

@media(max-width:560px) {
  .cards { gap: 18px; }
  .card { min-height: 560px; padding: 34px 30px; }
  .card h3 { margin: 56px 0 28px; }
  .card-audience { margin-top: 22px !important; }
  .pickup-tags { margin-top: 24px; }
}

/* Pick-up cards: keep content still; animate only the number */
.card,
.card:hover,
.card:focus-within {
  transform: none;
}

.card:hover::before,
.card:focus-within::before {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(.8);
}

.card h3,
.card:hover h3,
.card:focus-within h3 {
  transform: none;
}

.pickup-tags span,
.giga-options span,
.card:hover .pickup-tags span,
.card:focus-within .pickup-tags span,
.card:hover .giga-options span,
.card:focus-within .giga-options span {
  opacity: .9;
  transform: none;
  transition: none;
}

.card-meta b {
  position: relative;
  z-index: 2;
  transform-origin: top left;
  transition: transform .3s ease, opacity .3s ease;
}

.card:hover .card-meta b,
.card:focus-within .card-meta b {
  opacity: .42;
  transform: scale(3.5);
}

/* Slow light motion while keeping card content still */
.card:hover::before,
.card:focus-within::before {
  animation: pickup-glow 6s ease-in-out infinite alternate;
}

@keyframes pickup-glow {
  0% {
    opacity: .55;
    transform: translate3d(0, 0, 0) scale(.8);
  }
  50% {
    opacity: .9;
    transform: translate3d(-48px, 52px, 0) scale(1.08);
  }
  100% {
    opacity: .68;
    transform: translate3d(-96px, 105px, 0) scale(1.3);
  }
}

@media(prefers-reduced-motion:reduce) {
  .card:hover::before,
  .card:focus-within::before {
    animation: none;
  }
}

/* Coming soon */
.coming-soon-page { background: var(--paper); }
.coming-soon-main { min-height: calc(100vh - 180px); display: grid; place-items: center; padding: 150px 6vw 90px; }
.coming-soon-panel { position: relative; width: min(1100px, 100%); overflow: hidden; padding: clamp(60px, 8vw, 110px); background: linear-gradient(135deg, #071a33 0%, #0d3971 58%, #1467db 100%); color: #fff; }
.coming-soon-label { margin: 0 0 42px; color: #77d9ff; font-family: var(--latin); font-size: 15px; font-weight: 700; letter-spacing: .22em; }
.coming-soon-number { position: absolute; right: 4%; top: 50%; transform: translateY(-53%); color: rgba(255,255,255,.07); font-family: var(--latin); font-size: clamp(260px, 42vw, 570px); font-weight: 700; line-height: .8; pointer-events: none; }
.coming-soon-panel h1 { position: relative; margin: 0; font-size: clamp(48px, 7vw, 92px); line-height: 1.18; letter-spacing: -.04em; }
.coming-soon-panel > p:not(.coming-soon-label) { position: relative; margin: 38px 0 0; color: rgba(255,255,255,.78); font-size: 18px; line-height: 2; }
.coming-soon-actions { position: relative; display: flex; align-items: center; gap: 34px; margin-top: 50px; }
.coming-soon-actions .button { background: #fff; color: var(--blue); }
.coming-soon-actions .text-link { color: #fff; border-color: rgba(255,255,255,.42); }
@media(max-width:600px) {
  .coming-soon-main { min-height: auto; padding: 105px 0 0; }
  .coming-soon-panel { padding: 65px 7vw 75px; }
  .coming-soon-label { margin-bottom: 30px; }
  .coming-soon-panel h1 { font-size: 48px; }
  .coming-soon-panel > p:not(.coming-soon-label) { font-size: 16px; }
  .coming-soon-actions { align-items: flex-start; flex-direction: column; gap: 24px; }
}

.case-page-hero{min-height:700px;display:grid;grid-template-columns:1fr 1fr;align-items:stretch;background:linear-gradient(115deg,#fff 0%,#fff 50%,#edf5ff 50%,#f5f9ff 100%)}
.case-page-hero>div:first-child{padding:110px 6vw 90px 8vw;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.case-page-hero h1{margin:10px 0 28px;font-size:clamp(42px,5vw,72px);line-height:1.28;letter-spacing:-.04em}.case-page-hero h1 span{color:var(--blue)}
.case-page-hero .case-heading-line{display:block;white-space:nowrap}
.case-page-hero>div:first-child>p:not(.solution-number){max-width:620px;margin:0 0 34px;color:var(--muted);font-size:16px}
.case-page-photo{position:relative;min-height:600px;overflow:hidden}.case-page-photo img{width:100%;height:100%;object-fit:cover}
.case-page-photo>div{position:absolute;right:28px;bottom:28px;padding:16px 20px;background:#0b2f63e8;color:#fff}.case-page-photo span{display:block;color:#72d6ff;font:700 11px Outfit;letter-spacing:.16em}.case-page-photo strong{font-size:15px}
.case-archive{background:#f7f9fc}.case-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.case-filters button{padding:12px 18px;border:1px solid #cfd9e5;background:#fff;color:var(--ink);font:700 13px 'Noto Sans JP';cursor:pointer;transition:.2s}.case-filters button:hover,.case-filters button.active{border-color:var(--blue);background:var(--blue);color:#fff}
.case-count{margin:0 0 22px;color:var(--muted);font-size:14px}.case-count span{color:var(--blue);font:700 28px Outfit;margin-right:5px}
.case-archive-grid [hidden]{display:none}.case-products{margin-top:26px;padding-top:18px;border-top:1px solid #1a4e9e2e;display:flex;align-items:center;justify-content:space-between;gap:20px}.case-products span{color:var(--muted);font-size:13px}.case-products strong{color:var(--blue);font-size:14px}
.case-empty{padding:80px 25px;text-align:center;background:#fff;border:1px solid var(--line)}.case-empty[hidden]{display:none}.case-empty>span{color:var(--blue);font:700 11px Outfit;letter-spacing:.16em}.case-empty h3{margin:12px 0 10px;font-size:26px}.case-empty p{max-width:620px;margin:0 auto 26px;color:var(--muted)}
@media(max-width:900px){.case-page-hero{grid-template-columns:1fr}.case-page-photo{min-height:480px}.case-page-hero>div:first-child{padding:85px 8vw 70px}}
@media(max-width:600px){.case-page-hero{min-height:0}.case-page-hero .case-heading-line{white-space:normal}.case-page-photo{min-height:350px}.case-filters{display:grid;grid-template-columns:1fr 1fr}.case-filters button{padding:11px 8px;font-size:12px}.case-products{align-items:flex-start;flex-direction:column;gap:4px}}
.news-page-hero{padding:120px 8vw 100px;background:linear-gradient(125deg,#fff 0%,#fff 56%,#edf5ff 56%,#dcecff 100%)}.news-page-hero h1{margin:10px 0 24px;font-size:clamp(42px,5vw,72px);line-height:1.28;letter-spacing:-.04em}.news-page-hero h1 span{color:var(--blue)}.news-page-hero>p:last-child{max-width:650px;color:var(--muted);font-size:16px}
.news-archive{background:#f7f9fc}.news-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.news-filters button{padding:12px 22px;border:1px solid #cfd9e5;background:#fff;color:var(--ink);font:700 13px 'Noto Sans JP';cursor:pointer}.news-filters button:hover,.news-filters button.active{border-color:var(--blue);background:var(--blue);color:#fff}.news-count{margin:0 0 20px;color:var(--muted);font-size:14px}.news-count span{margin-right:5px;color:var(--blue);font:700 28px Outfit}
.news-archive-list{border-top:1px solid #ccd5de}.news-archive-list>a{display:grid;grid-template-columns:120px 100px 1fr 35px;align-items:center;gap:22px;padding:30px 12px;border-bottom:1px solid #ccd5de;transition:.2s}.news-archive-list>a:hover{padding-left:24px;background:#fff}.news-archive-list>a[hidden]{display:none}.news-archive-list time{color:#718096;font:600 12px Outfit}.news-archive-list h3{margin:0 0 5px;font-size:19px}.news-archive-list p{margin:0;color:var(--muted);font-size:14px}.news-archive-list i{color:var(--blue);font-style:normal;font-size:22px}.news-empty{padding:70px 25px;text-align:center;background:#fff}.news-empty[hidden]{display:none}.news-empty h3{margin:0 0 8px;font-size:24px}.news-empty p{margin:0;color:var(--muted)}
.news-article{max-width:1050px;margin:0 auto;padding-top:85px}.news-back{display:inline-block;margin-bottom:60px;color:var(--blue);font-size:14px;font-weight:700}.news-article-meta{display:flex;align-items:center;gap:18px;margin-bottom:24px}.news-article-meta time{color:var(--muted);font:600 13px Outfit}.news-article h1{margin:0;padding-bottom:48px;border-bottom:1px solid var(--line);font-size:clamp(34px,4.5vw,58px);line-height:1.45;letter-spacing:-.035em}.news-article-body{max-width:760px;margin:55px auto 0}.news-article-body p{margin:0 0 24px;font-size:16px;line-height:2}.news-article-body .button{margin-top:18px}.news-pending-detail{margin:35px 0;padding:25px 28px;background:#f1f6fb;border-left:4px solid var(--blue)}.news-pending-detail span{color:var(--blue);font-size:13px;font-weight:800}.news-pending-detail p{margin:8px 0 0}
@media(max-width:700px){.news-page-hero{padding:80px 7vw 70px}.news-archive-list>a{grid-template-columns:1fr 34px;gap:8px 14px}.news-archive-list time,.news-archive-list .news-category{grid-column:1}.news-archive-list div{grid-column:1}.news-archive-list i{grid-column:2;grid-row:1 / span 3}.news-filters{display:grid;grid-template-columns:1fr 1fr}.news-article{padding-top:60px}.news-article h1 br{display:none}}

/* IT / OA solution */
.solution-hero { min-height: calc(100vh - 88px); display: grid; grid-template-columns: 1fr 1fr; background: linear-gradient(120deg,#fff 0%,#fff 50%,#eaf3ff 50%,#f4f9ff 100%); }
.solution-hero-copy { padding: 9vw 5vw 8vw; display: flex; flex-direction: column; justify-content: center; }
.solution-number { margin: 0 0 10px; color: var(--blue); font: 700 18px Outfit; letter-spacing: .16em; }
.solution-category { margin: 0 0 28px; color: #8492a5; font: 700 13px Outfit; letter-spacing: .18em; }
.solution-hero h1 { margin: 0; font-size: clamp(45px,5.1vw,74px); line-height: 1.28; letter-spacing: -.05em; }
.solution-hero h1 span { color: var(--blue); }
.solution-lead { max-width: 650px; margin: 30px 0 38px; color: var(--muted); font-size: 16px; }
.solution-hero-copy .button { width: 240px; }
.solution-hero-photo { min-height: 620px; position: relative; overflow: hidden; background: #dceafa; }
.solution-hero-photo:after { content: ''; position: absolute; inset: 0; background: linear-gradient(145deg,#0754af0d 15%,#063d8c42 100%); pointer-events: none; }
.solution-hero-photo img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; object-position: 57% center; }
.solution-photo-label { position: absolute; left: 42px; bottom: 42px; z-index: 2; min-width: 245px; padding: 20px 24px; display: flex; flex-direction: column; color: #fff; background: #0b4aa6e8; backdrop-filter: blur(7px); border-left: 3px solid #77d8ff; }
.solution-photo-label span { color: #8ee3ff; font: 700 12px Outfit; letter-spacing: .16em; }
.solution-photo-label strong { margin-top: 5px; font-size: 17px; }
.solution-hero-visual { min-height: 620px; position: relative; overflow: hidden; background: linear-gradient(145deg,#082d69,#0d51b4); }
.oa-grid { position: absolute; inset: 0; background-image: linear-gradient(#ffffff0d 1px,transparent 1px),linear-gradient(90deg,#ffffff0d 1px,transparent 1px); background-size: 46px 46px; mask-image: radial-gradient(circle,#000 30%,transparent 78%); }
.oa-center { width: 190px; height: 190px; padding: 24px; position: absolute; left: 50%; top: 50%; z-index: 2; transform: translate(-50%,-50%); display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 50%; background: #fff; box-shadow: 0 28px 80px #001b4390,0 0 0 14px #ffffff14; }
.oa-center:before { content: ''; width: 410px; height: 410px; position: absolute; z-index: -1; border-radius: 50%; background: radial-gradient(circle,#54c7ff2b,transparent 68%); }
.oa-center img { width: 100px; height: 100px; object-fit: contain; }
.oa-center span { color: var(--ink); font: 700 12px Outfit; letter-spacing: .14em; }
.oa-device { width: 175px; min-height: 115px; padding: 20px; position: absolute; z-index: 2; display: flex; flex-direction: column; justify-content: space-between; border: 1px solid #ffffff45; color: #fff; background: #ffffff0d; }
.oa-device b { color: #71d8ff; font: 700 25px Outfit; }
.oa-device span { font-size: 13px; font-weight: 700; }
.oa-pc { left: 9%; top: 13%; }.oa-print { right: 9%; top: 13%; }.oa-cloud { left: 9%; bottom: 13%; }.oa-work { right: 9%; bottom: 13%; }
.solution-challenges .section-label,.solution-offerings .section-label,.product-categories .section-label,.support-scope .section-label,.solution-flow .section-label { font-size: 17px; letter-spacing: .16em; }
.solution-challenges .section-label span,.solution-offerings .section-label span,.product-categories .section-label span,.support-scope .section-label span,.solution-flow .section-label span { font-size: 19px; }
.solution-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; align-items: end; margin-bottom: 58px; }
.solution-heading h2 { margin: 0; font-size: clamp(34px,4vw,58px); line-height: 1.42; }
.heading-line { display: block; }
.two-line-heading { white-space: nowrap; }
.hero h1.two-line-heading .heading-line:first-child{color:var(--ink)}
@media(min-width:601px){
  h1:has(> br),
  h2:has(> br),
  .solution-hero h1 .heading-line,
  .solution-heading h2 .heading-line,
  .case-page-hero h1 .case-heading-line,
  .two-line-heading .heading-line { white-space: nowrap; }
}
@media(max-width:600px){h1:has(> br),h2:has(> br),.two-line-heading{white-space:normal}.two-line-heading .heading-line{white-space:normal}}
.solution-challenges .solution-heading { grid-template-columns: 1.25fr .75fr; }
.solution-challenges .solution-heading h2 { font-size: clamp(34px,3.2vw,50px); }
.solution-challenges .heading-line { white-space: nowrap; }
.solution-heading>p { color: var(--muted); }
.challenge-grid { display: grid; grid-template-columns: repeat(2,1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.challenge-grid article { min-height: 230px; padding: 32px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: background-color .3s ease; }
.challenge-grid article:hover { background: #edf5ff; }
.challenge-grid b { color: var(--blue); font: 700 25px Outfit; }
.challenge-grid h3 { margin: 58px 0 0; font-size: 20px; line-height: 1.75; }
.solution-offerings { color: #fff; background: linear-gradient(135deg,#072c67 0%,#0b3e8c 52%,#082c66 100%); }
.solution-heading-light>p { color: #b4c8de; }
.offering-grid { display: grid; grid-template-columns: repeat(2,1fr); border-top: 1px solid #ffffff3b; border-left: 1px solid #ffffff3b; }
.offering-grid article { min-height: 420px; padding: 38px; position: relative; overflow: hidden; border-right: 1px solid #ffffff3b; border-bottom: 1px solid #ffffff3b; transition: background-color .3s ease; }
.offering-grid article:hover { background: #ffffff0b; }
.offering-top { display: flex; justify-content: space-between; align-items: center; }
.offering-top b { color: #70d7ff; font: 700 32px Outfit; }
.offering-top span { color: #9ebbd9; font: 700 12px Outfit; letter-spacing: .14em; }
.offering-grid h3 { margin: 60px 0 17px; font-size: 28px; }
.offering-grid p { color: #d2e0ef; font-size: 15px; }
.offering-grid ul { margin: 24px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }
.offering-grid li { padding: 6px 12px; border: 1px solid #ffffff55; border-radius: 99px; color: #edf7ff; font-size: 13px; }
.product-categories { background: #f3f8ff; }
.product-category-list { display: grid; gap: 28px; }
.product-category-list>article { display: grid; grid-template-columns: .72fr 1.28fr; border: 1px solid #cfdceb; background: #fff; }
.product-category-head { padding: 40px; color: #fff; background: linear-gradient(145deg,#0753b2,#0b3d86); }
.product-category-head>div { display: flex; justify-content: space-between; align-items: center; }
.product-category-head b { color: #76dcff; font: 700 36px Outfit; }
.product-category-head span { color: #a8dff8; font: 700 11px Outfit; letter-spacing: .13em; }
.product-category-head h3 { margin: 82px 0 16px; font-size: 29px; }
.product-category-head p { margin: 0; color: #d4e6f7; font-size: 15px; }
.product-items { display: grid; grid-template-columns: repeat(2,1fr); }
.product-items>div { min-height: 178px; padding: 28px; border-left: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: background-color .25s ease; }
.product-items>div:hover { background: #edf5ff; }
.product-items span { color: var(--blue); font: 700 12px Outfit; letter-spacing: .12em; }
.product-items h4 { margin: 20px 0 8px; font-size: 18px; }
.product-items p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.scope-line { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.scope-line article { min-height: 270px; padding: 28px; position: relative; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.scope-line article:not(:last-child):after { content: '→'; position: absolute; right: -13px; top: 48%; z-index: 2; width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--blue); font-size: 13px; }
.scope-line b { color: var(--blue); font: 700 26px Outfit; }
.scope-line span { display: block; color: #8a98aa; font: 700 11px Outfit; letter-spacing: .12em; }
.scope-line h3 { margin: 66px 0 8px; font-size: 20px; }
.scope-line p { margin: 0; color: var(--muted); font-size: 14px; }
.solution-flow { color: #fff; background: linear-gradient(135deg,#072c67 0%,#0b3e8c 52%,#082c66 100%); }
.process-list { margin: 0; padding: 0; border-top: 1px solid #ffffff35; list-style: none; }
.process-list li { min-height: 135px; padding: 26px 20px; display: grid; grid-template-columns: 180px 1fr; align-items: center; border-bottom: 1px solid #ffffff35; }
.process-list b { color: #70d7ff; font: 700 16px Outfit; letter-spacing: .12em; }
.process-list h3 { margin: 0 0 5px; font-size: 22px; }
.process-list p { margin: 0; color: #b8c8da; font-size: 15px; }

@media(max-width:900px) {
  .solution-hero { min-height: auto; grid-template-columns: 1fr; }
  .solution-hero-copy { padding: 85px 6vw 75px; }
  .solution-heading { grid-template-columns: 1fr; gap: 20px; }
  .solution-challenges .solution-heading { grid-template-columns: 1fr; }
  .scope-line { grid-template-columns: repeat(2,1fr); }
  .product-category-list>article { grid-template-columns: 1fr; }
  .product-category-head h3 { margin-top: 45px; }
  .scope-line article:nth-child(2):after { display: none; }
}
@media(max-width:600px) {
  .solution-hero h1 { font-size: 42px; }
  .solution-challenges .heading-line { white-space: normal; }
  .solution-hero-visual { min-height: 520px; }
  .solution-hero-photo { min-height: 470px; }
  .solution-photo-label { left: 24px; right: 24px; bottom: 24px; min-width: 0; }
  .oa-center { width: 145px; height: 145px; }
  .oa-center img { width: 74px; height: 74px; }
  .oa-device { width: 128px; min-height: 92px; padding: 14px; }
  .oa-device b { font-size: 20px; }.oa-device span { font-size: 11px; }
  .oa-pc,.oa-cloud { left: 4%; }.oa-print,.oa-work { right: 4%; }
  .challenge-grid,.offering-grid,.scope-line { grid-template-columns: 1fr; }
  .product-items { grid-template-columns: 1fr; }
  .scope-line article:after { display: none!important; }
  .process-list li { grid-template-columns: 1fr; gap: 15px; }
}
@media(prefers-reduced-motion:reduce) {
  .challenge-grid article,.offering-grid article { transition: none; }
}

/* Network solution */
.network-hero-map { min-height: 620px; position: relative; overflow: hidden; background: linear-gradient(145deg,#0753b2,#0b3d86); }
.network-hero-photo img { object-position: 52% center; }
.network-page .solution-offerings .heading-line,.network-page .product-categories .heading-line,.network-page .solution-flow .heading-line { white-space: nowrap; }
.network-hero-map:before { content: ''; position: absolute; inset: 0; background-image: linear-gradient(#ffffff0d 1px,transparent 1px),linear-gradient(90deg,#ffffff0d 1px,transparent 1px); background-size: 46px 46px; mask-image: radial-gradient(circle,#000 28%,transparent 78%); }
.network-hero-map:after { content: ''; width: 500px; height: 500px; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); border-radius: 50%; background: radial-gradient(circle,#52d1ff2b,transparent 68%); }
.network-hero-map svg { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; }
.network-base line { stroke: #83dfff; stroke-width: .25; stroke-dasharray: 1.2 1.4; vector-effect: non-scaling-stroke; opacity: .8; }
.network-light line { stroke: #fff; stroke-width: .8; stroke-linecap: round; stroke-dasharray: 1 20; vector-effect: non-scaling-stroke; filter: drop-shadow(0 0 4px #b9f2ff) drop-shadow(0 0 9px #51d4ff); animation: network-flow 3.4s linear infinite; }
.network-light line:nth-child(2){animation-delay:-.8s}.network-light line:nth-child(3){animation-delay:-1.6s}.network-light line:nth-child(4){animation-delay:-2.4s}
@keyframes network-flow { to { stroke-dashoffset: -42; } }
.network-hub { width: 180px; height: 180px; padding: 22px; position: absolute; left: 50%; top: 50%; z-index: 3; transform: translate(-50%,-50%); display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 50%; background: #fff; box-shadow: 0 25px 70px #00275f99,0 0 0 13px #ffffff16; }
.network-hub img { width: 98px; height: 98px; object-fit: contain; }.network-hub span { font: 700 11px Outfit; letter-spacing: .15em; }
.network-node { width: 155px; min-height: 102px; padding: 18px; position: absolute; z-index: 3; display: flex; flex-direction: column; justify-content: space-between; border: 1px solid #ffffff50; color: #fff; background: #ffffff0d; }
.network-node b { color: #78dcff; font: 700 20px Outfit; }.network-node span { font-size: 12px; font-weight: 700; }
.nn-1{left:10%;top:14%}.nn-2{right:10%;top:14%}.nn-3{left:10%;bottom:14%}.nn-4{right:10%;bottom:14%}
.network-product-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid #cfdceb; border-left: 1px solid #cfdceb; background: #fff; }
.network-product-grid article { min-height: 230px; padding: 30px; border-right: 1px solid #cfdceb; border-bottom: 1px solid #cfdceb; transition: background-color .25s ease; }
.network-product-grid article:hover { background: #eaf4ff; }.network-product-grid span { color: var(--blue); font: 700 12px Outfit; letter-spacing: .14em; }.network-product-grid h3 { margin: 50px 0 10px; font-size: 20px; }.network-product-grid p { margin: 0; color: var(--muted); font-size: 14px; }
@media(max-width:900px){.network-hero-map{min-height:600px}.network-product-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.network-hero-map{min-height:520px}.network-hub{width:145px;height:145px}.network-hub img{width:74px;height:74px}.network-node{width:112px;min-height:84px;padding:13px}.network-node b{font-size:15px}.nn-1,.nn-3{left:4%}.nn-2,.nn-4{right:4%}.network-product-grid{grid-template-columns:1fr}.network-page .solution-offerings .heading-line,.network-page .product-categories .heading-line,.network-page .solution-flow .heading-line{white-space:normal}}
@media(prefers-reduced-motion:reduce){.network-light line{animation:none;opacity:.5}.network-product-grid article{transition:none}}

/* Cloud solution */
.cloud-hero-photo img { object-position: 51% center; }
.cloud-page .solution-offerings .heading-line,.cloud-page .product-categories .heading-line,.cloud-page .solution-flow .heading-line { white-space: nowrap; }
.mobile-page .solution-hero h1 .heading-line,
.mobile-page .solution-offerings .heading-line,
.mobile-page .product-categories .heading-line,
.mobile-page .support-scope .heading-line,
.mobile-page .solution-flow .heading-line { white-space: nowrap; }
.cloud-service-grid span { color: #0d64d9; }
.cloud-software-section { background: #fff; }
.cloud-software-section.is-opening { animation: cloud-details-open .45s ease both; }
@keyframes cloud-details-open { from { opacity: 0; transform: translateY(-18px); } to { opacity: 1; transform: translateY(0); } }
.software-toggle { width: 100%; margin-top: 28px; padding: 17px 0; display: flex; justify-content: space-between; align-items: center; border: 0; border-top: 1px solid #ffffff55; color: #fff; background: transparent; font: 700 14px 'Noto Sans JP',sans-serif; cursor: pointer; }
.software-toggle i { width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid #ffffff70; border-radius: 50%; color: #80dfff; font: 400 21px/1 Outfit; transition: transform .3s ease,background-color .3s ease; }
.software-toggle:hover i,.software-toggle:focus-visible i { background: #ffffff16; }
.software-toggle[aria-expanded="true"] i { transform: rotate(45deg); }
.cloud-software-section .section-label { font-size: 17px; letter-spacing: .16em; }
.cloud-software-section .section-label span { font-size: 19px; }
.software-groups { display: grid; grid-template-columns: repeat(2,1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.software-groups>article { min-height: 340px; padding: 34px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.software-groups>article>div { display: flex; align-items: baseline; gap: 22px; }
.software-groups b { color: var(--blue); font: 700 26px Outfit; }
.software-groups h3 { margin: 0; font-size: 22px; }
.software-groups p { margin: 25px 0 20px; color: var(--muted); font-size: 14px; }
.software-groups ul { margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }
.software-groups li { padding: 6px 11px; border: 1px solid #b9cde4; border-radius: 99px; color: #174e91; background: #f4f8fd; font-size: 12px; }
.license-management { margin-top: 28px; display: grid; grid-template-columns: .72fr 1.28fr; color: #fff; background: linear-gradient(145deg,#0753b2,#0b3d86); }
.license-intro { padding: 42px; }
.license-intro span { color: #79deff; font: 700 12px Outfit; letter-spacing: .16em; }
.license-intro h3 { margin: 65px 0 18px; font-size: 30px; line-height: 1.5; }
.license-intro p { color: #d2e4f5; font-size: 14px; }
.license-actions { display: grid; grid-template-columns: repeat(3,1fr); border-left: 1px solid #ffffff38; }
.license-actions article { padding: 32px 24px; border-right: 1px solid #ffffff38; }
.license-actions b { color: #77dcff; font: 700 29px Outfit; }
.license-actions h4 { margin: 82px 0 14px; font-size: 19px; }
.license-actions p { margin: 0; color: #c9dcee; font-size: 13px; }
@media(max-width:900px){.license-management{grid-template-columns:1fr}.license-actions{border-left:0;border-top:1px solid #ffffff38}}
@media(max-width:600px){.cloud-page .solution-offerings .heading-line,.cloud-page .product-categories .heading-line,.cloud-page .solution-flow .heading-line{white-space:normal}}
@media(max-width:600px){.mobile-page .solution-hero h1 .heading-line,.mobile-page .solution-offerings .heading-line,.mobile-page .product-categories .heading-line,.mobile-page .support-scope .heading-line,.mobile-page .solution-flow .heading-line{white-space:normal}}
.office-page .solution-hero h1 .heading-line,
.office-page .solution-offerings .heading-line,
.office-page .product-categories .heading-line,
.office-page .support-scope .heading-line,
.office-page .solution-flow .heading-line { white-space: nowrap; }
@media(max-width:600px){.office-page .solution-hero h1 .heading-line,.office-page .solution-offerings .heading-line,.office-page .product-categories .heading-line,.office-page .support-scope .heading-line,.office-page .solution-flow .heading-line{white-space:normal}}
.security-support-page .solution-hero h1 .heading-line,
.security-support-page .solution-offerings .heading-line,
.security-support-page .product-categories .heading-line,
.security-support-page .support-scope .heading-line,
.security-support-page .solution-flow .heading-line { white-space: nowrap; }
@media(max-width:600px){.security-support-page .solution-hero h1 .heading-line,.security-support-page .solution-offerings .heading-line,.security-support-page .product-categories .heading-line,.security-support-page .support-scope .heading-line,.security-support-page .solution-flow .heading-line{white-space:normal}}
@media(max-width:600px){.software-groups,.license-actions{grid-template-columns:1fr}.license-actions article{min-height:220px;border-bottom:1px solid #ffffff38}.license-actions h4{margin-top:45px}.cloud-page .support-scope .heading-line,.cloud-software-section .heading-line{white-space:normal}}
@media(prefers-reduced-motion:reduce){.cloud-software-section.is-opening{animation:none}.software-toggle i{transition:none}}

/* Contact page */
.contact-page{background:#f5f8fc}.contact-page-hero{min-height:520px;padding:105px 8vw 90px;background:linear-gradient(125deg,#fff 0%,#fff 58%,#e7f2ff 58%,#f4f9ff 100%);display:flex;flex-direction:column;justify-content:center}.contact-page-hero h1{font-size:clamp(46px,6vw,82px);line-height:1.22;letter-spacing:-.045em;margin:12px 0 26px}.contact-page-hero h1 span{color:var(--blue)}.contact-page-hero>p:last-child{color:var(--muted);margin:0}.contact-form-section{background:#fff}.contact-form-heading{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:end;margin-bottom:65px}.contact-form-heading>p{color:var(--muted);margin:0}.contact-form-section form,.contact-confirm{max-width:980px;margin:0 auto}.form-row{display:grid;grid-template-columns:260px 1fr;gap:28px;padding:28px 0;border-top:1px solid var(--line)}.form-row label{font-weight:700;padding-top:13px}.required-mark{display:inline-block;margin-left:8px;padding:3px 8px;background:#eaf3ff;color:var(--blue);font-size:11px;font-weight:700;line-height:1.4}.form-row input,.form-row select,.form-row textarea{width:100%;border:1px solid #cdd8e4;background:#f8fafc;color:var(--ink);font:inherit;border-radius:0;padding:14px 16px}.form-row textarea{resize:vertical;min-height:210px}.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:3px solid #1266f126;border-color:var(--blue);background:#fff}.form-row input:user-invalid,.form-row select:user-invalid,.form-row textarea:user-invalid{border-color:#c63d50}.privacy-agreement{display:flex;justify-content:center;gap:12px;align-items:flex-start;padding:35px 20px;border-top:1px solid var(--line);font-size:14px}.privacy-agreement input{width:20px;height:20px;margin-top:3px;accent-color:var(--blue)}.privacy-agreement a{color:var(--blue);text-decoration:underline}.form-error{text-align:center;color:#b42336;font-weight:700}.contact-confirm-button,.confirm-send{width:min(100%,420px);margin:12px auto 0;border:0;background:var(--blue);color:#fff;padding:20px 25px;display:flex;justify-content:space-between;align-items:center;font:700 15px 'Noto Sans JP',sans-serif;cursor:pointer}.contact-confirm{padding:55px;background:#f5f8fc}.contact-confirm h2{font-size:clamp(32px,4vw,50px);margin-bottom:38px}.confirm-list{margin:0;border-top:1px solid #cdd8e4}.confirm-list>div{display:grid;grid-template-columns:210px 1fr;gap:25px;padding:20px 0;border-bottom:1px solid #cdd8e4}.confirm-list dt{font-weight:700}.confirm-list dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.confirm-note{color:var(--muted);font-size:14px;margin:28px 0}.confirm-actions{display:flex;gap:14px;align-items:stretch}.confirm-actions button,.confirm-actions a{margin:0;flex:1}.confirm-back{border:1px solid #b9c7d6;background:#fff;color:var(--ink);padding:18px 20px;font-weight:700;cursor:pointer}.contact-phone{background:var(--navy);color:#fff;display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}.contact-phone h2{margin:0 0 22px}.contact-phone>div>p:last-child{color:#aebed0}.contact-phone>a{min-height:245px;background:#fff;color:var(--ink);padding:38px;display:flex;flex-direction:column;justify-content:center}.contact-phone small{color:var(--blue);font:700 12px Outfit;letter-spacing:.15em}.contact-phone strong{font:700 clamp(34px,5vw,58px) Outfit;margin:14px 0 4px;letter-spacing:-.02em}.contact-phone span{color:var(--muted);font-size:14px}
@media(max-width:800px){.contact-form-heading,.contact-phone{grid-template-columns:1fr;gap:28px}.form-row{grid-template-columns:1fr;gap:10px}.form-row label{padding-top:0}.contact-confirm{padding:35px 25px}.confirm-list>div{grid-template-columns:1fr;gap:6px}.confirm-actions{flex-direction:column}.contact-page-hero{min-height:430px;padding:80px 7vw 70px}}
@media(max-width:560px){.contact-page-hero h1{font-size:42px}.contact-page-hero br{display:none}.contact-phone>a{min-height:210px;padding:28px 22px}.contact-confirm-button{width:100%}}
.wada-contact-form .wpcf7-form-control-wrap{display:block;width:100%}.wada-contact-form .wpcf7-not-valid-tip{margin-top:8px;color:#b42336;font-size:13px}.wada-contact-form .wpcf7-response-output{margin:28px 0 0!important;padding:16px 18px!important;border:1px solid #cdd8e4!important;background:#f5f8fc}.wada-contact-form form.sent .wpcf7-response-output{border-color:#2f8a5b!important;background:#eef9f2}.wada-contact-form .wpcf7-spinner{display:block;margin:16px auto 0}.wada-contact-form input[type=submit]{border-radius:0}
@media(min-width:801px){.wada-contact-form{max-width:980px;margin:0 auto}.wada-contact-form .form-row{display:block;width:min(100%,720px);margin:0 auto;padding:34px 0}.wada-contact-form .form-row label{display:block;margin:0 0 14px;padding:0}.wada-contact-form .form-row .wpcf7-form-control-wrap{width:100%}.wada-contact-form .form-row input,.wada-contact-form .form-row select,.wada-contact-form .form-row textarea{display:block;width:100%;box-sizing:border-box}.wada-contact-form .privacy-agreement{width:min(100%,720px);margin:0 auto;box-sizing:border-box}.wada-contact-form .contact-confirm-button{margin-left:auto;margin-right:auto}}

/* Case studies */
.case-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}

.case-card {
  min-height: 590px;
  padding: 42px;
  color: var(--ink);
  background: #eef5ff;
  border-top: 4px solid var(--blue);
}

.case-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding-bottom: 25px;
  border-bottom: 1px solid #1a4e9e2e;
}

.case-card-head b { color: var(--blue); font: 700 32px Outfit; }
.case-card-head span { font-size: 14px; font-weight: 700; }
.case-service { margin: 34px 0 8px; color: var(--blue); font: 700 19px Outfit; letter-spacing: .08em; }
.case-card h3 { margin: 0 0 34px; font-size: clamp(24px, 2.2vw, 34px); line-height: 1.5; letter-spacing: -.025em; }
.case-card dl { margin: 0; }
.case-card dl div { display: grid; grid-template-columns: 58px 1fr; gap: 14px; padding: 18px 0; border-top: 1px solid #1a4e9e2e; }
.case-card dt { color: var(--blue); font-size: 14px; font-weight: 800; }
.case-card dd { margin: 0; font-size: 15px; line-height: 1.85; }
.case-card .case-result { margin-top: 4px; padding: 20px 18px; background: #fff; border: 0; }
.case-cta { display: flex; align-items: center; justify-content: flex-end; gap: 36px; margin-top: 34px; }
.case-cta p { margin: 0; color: var(--muted); font-size: 14px; }
.case-cta .text-link { margin-top: 0; color: var(--blue); }

@media(max-width:900px) {
  .case-grid { grid-template-columns: 1fr; }
  .case-card { min-height: auto; }
}

@media(max-width:560px) {
  .case-card { padding: 28px 24px; }
  .case-card-head { align-items: flex-end; }
  .case-card-head span { font-size: 13px; }
  .case-card dl div { grid-template-columns: 48px 1fr; }
  .case-cta { align-items: flex-start; flex-direction: column; gap: 8px; }
}

/* News: latest feature plus compact list */
.news-head { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 54px; }
.news-head .text-link { margin-top: 0; }
.news-feature-grid { display: grid; grid-template-columns: 1.08fr .92fr; gap: 22px; }
.news-feature,
.news-side-list a { position: relative; background: #fff; border-top: 3px solid var(--blue); transition: background-color .25s ease; }
.news-feature { min-height: 390px; padding: 38px 40px; display: flex; flex-direction: column; }
.news-meta { display: flex; align-items: center; gap: 15px; }
.news-meta time { color: #718096; font: 600 13px Outfit; letter-spacing: .05em; }
.news-category { min-width: 78px; padding: 4px 10px; border-radius: 99px; text-align: center; font-size: 12px; font-weight: 700; }
.category-info { color: #145fc7; background: #e7f1ff; }
.category-service { color: #08779f; background: #e1f7ff; }
.category-closed { color: #5f6977; background: #e9edf2; }
.news-feature-copy { margin: auto 0; }
.news-feature-copy small { color: var(--blue); font: 700 12px Outfit; letter-spacing: .16em; }
.news-feature h3 { margin: 11px 0 16px; font-size: clamp(24px, 2.3vw, 34px); line-height: 1.5; }
.news-feature p { max-width: 570px; margin: 0; color: var(--muted); font-size: 15px; }
.news-more { display: flex; align-items: center; justify-content: space-between; padding-top: 22px; border-top: 1px solid var(--line); color: var(--blue); font-size: 14px; font-weight: 700; }
.news-feature i,
.news-side-list i { display: inline-block; font-style: normal; transition: transform .25s ease; }
.news-side-list { display: grid; grid-template-rows: repeat(2, 1fr); gap: 22px; }
.news-side-list a { min-height: 184px; padding: 31px 34px; }
.news-side-list h3 { max-width: 80%; margin: 30px 0 0; font-size: 19px; line-height: 1.7; transition: color .25s ease; }
.news-side-list>a>i { position: absolute; right: 34px; bottom: 31px; color: var(--blue); font-size: 20px; }
.news-feature:hover,
.news-feature:focus-visible,
.news-side-list a:hover,
.news-side-list a:focus-visible { background: #edf5ff; }
.news-feature:hover h3,
.news-feature:focus-visible h3,
.news-side-list a:hover h3,
.news-side-list a:focus-visible h3 { color: var(--blue); }
.news-feature:hover i,
.news-feature:focus-visible i,
.news-side-list a:hover i,
.news-side-list a:focus-visible i { transform: translateX(7px); }

@media(max-width:900px) {
  .news-feature-grid { grid-template-columns: 1fr; }
  .news-feature { min-height: 350px; }
}

@media(max-width:560px) {
  .news-head { align-items: flex-start; flex-direction: column; gap: 22px; }
  .news-feature { min-height: 380px; padding: 28px 24px; }
  .news-side-list a { padding: 26px 24px; }
  .news-side-list>a>i { right: 24px; bottom: 26px; }
}

/* Contact */
.contact { text-align: left; background: linear-gradient(135deg, #eaf4ff 0%, #f7fbff 58%, #e7f2ff 100%); }
.contact-inner { display: grid; grid-template-columns: .85fr 1.15fr; gap: 7vw; align-items: start; }
.contact .eyebrow { margin-bottom: 24px; font-size: 18px; letter-spacing: .2em; }
.contact h2 { margin: 12px 0 24px; font-size: clamp(32px, 3vw, 46px); }
.contact-intro>p:not(.eyebrow) { color: var(--muted); font-size: 15px; }
.contact-topics { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 35px; }
.contact-topics span { padding: 7px 13px; color: #285079; background: #fff; border: 1px solid #cbddec; border-radius: 99px; font-size: 13px; font-weight: 700; }
.contact-actions { display: grid; grid-template-columns: 1fr 1fr; max-width: none; margin: 0; gap: 16px; }
.contact-actions>a,
.contact-actions>div { min-height: 405px; padding: 34px; display: flex; flex-direction: column; justify-content: flex-start; position: relative; overflow: hidden; }
.contact-mail { background: linear-gradient(145deg, #1266f1, #1046b7); color: #fff; transition: background-color .25s ease; }
.contact-tel { background: #fff; color: var(--ink); border: 1px solid #ccdcea; }
.contact-actions .contact-no { margin-bottom: 52px; color: #8bdcff; font: 700 28px/1 Outfit; }
.contact-actions .contact-tel .contact-no { color: var(--blue); font-size: 28px; }
.contact-actions small { color: #8bdcff; font: 700 15px/1.4 Outfit; letter-spacing: .14em; }
.contact-tel small { color: var(--blue); }
.contact-actions strong { margin-top: 7px; font-size: 21px; line-height: 1.5; }
.contact-actions p { margin: 22px 0 0; color: #dceaff; font-size: 14px; line-height: 1.9; }
.contact-tel p { color: var(--muted); }
.contact-arrow,
.contact-pending { margin-top: auto; padding-top: 20px; border-top: 1px solid #ffffff3d; font-size: 13px; font-weight: 700; }
.contact-arrow { display: flex; justify-content: space-between; align-items: center; }
.contact-arrow i { display: inline-block; font-style: normal; font-size: 20px; transition: transform .25s ease; }
.contact-pending { color: #7a899b; border-top-color: var(--line); }
.contact-mail:hover .contact-arrow i,
.contact-mail:focus-visible .contact-arrow i { transform: translateX(7px); }
.contact .contact-actions { grid-template-columns: minmax(0, 1fr); }
.contact .contact-mail { min-height: 405px; }

@media(max-width:1050px) {
  .contact-inner { grid-template-columns: 1fr; }
}

@media(max-width:680px) {
  .contact-actions { grid-template-columns: 1fr; }
  .contact-actions>a,
  .contact-actions>div { min-height: 350px; padding: 28px 24px; }
  .contact-no { margin-bottom: 38px; }
}

/* Footer */
.footer { padding: 0 7vw 28px; background: #071426; color: #fff; }
.footer-main { display: grid; grid-template-columns: 1.35fr .65fr .9fr 1.1fr; gap: 5vw; padding: 78px 0 66px; }
.footer-identity { min-width: 0; }
.footer-logo { display: inline-flex; align-items: center; gap: 15px; }
.footer-logo>span { width: 58px; height: 58px; padding: 7px; display: grid; place-items: center; background: #fff; }
.footer-logo img { display: block; width: 100%; height: 100%; object-fit: contain; }
.footer-logo strong { font-size: 19px; letter-spacing: .04em; white-space: nowrap; }
.footer-identity p { margin: 36px 0 7px; font-size: 17px; font-weight: 700; }
.footer-identity>small { color: #71839b; font: 600 10px Outfit; letter-spacing: .12em; }
.footer-nav-group { display: flex; flex-direction: column; align-items: flex-start; gap: 13px; }
.footer-nav-group p { margin: 3px 0 15px; color: #51c4ff; font: 700 12px Outfit; letter-spacing: .16em; }
.footer-nav-group a { color: #c8d2df; font-size: 13px; transition: color .2s ease; }
.footer-nav-group a:hover,
.footer-nav-group a:focus-visible { color: #fff; }
.footer-action-group { display: grid; gap: 13px; }
.footer-sks,
.footer-contact { padding: 24px 26px; display: flex; flex-direction: column; position: relative; }
.footer-sks { min-height: 168px; background: #142bc0; }
.footer-sks small,
.footer-contact small { color: #7ddcff; font: 700 10px Outfit; letter-spacing: .17em; }
.footer-sks strong { margin-top: 5px; font: 700 31px Outfit; letter-spacing: -.02em; }
.footer-sks span { margin-top: auto; padding-top: 15px; border-top: 1px solid #ffffff38; display: flex; justify-content: space-between; font-size: 12px; font-weight: 700; }
.footer-action-group i { display: inline-block; font-style: normal; transition: transform .25s ease; }
.footer-contact { min-height: 98px; justify-content: center; background: #fff; color: var(--ink); }
.footer-contact small { color: var(--blue); }
.footer-contact strong { margin-top: 5px; font-size: 16px; }
.footer-contact>i { position: absolute; right: 25px; bottom: 32px; color: var(--blue); }
.footer-sks:hover i,
.footer-sks:focus-visible i,
.footer-contact:hover i,
.footer-contact:focus-visible i { transform: translateX(6px); }
.footer .footer-bottom { padding-top: 24px; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid #ffffff20; color: #71839b; font-size: 11px; }
.footer .footer-bottom>div { display: flex; gap: 20px; flex-wrap: wrap; }
.footer .footer-bottom { gap: 24px; }
.footer-legal-links { flex: 1; }
.footer-to-top { white-space: nowrap; }
.footer .footer-bottom a:hover,
.footer .footer-bottom a:focus-visible { color: #fff; }

@media(max-width:1050px) {
  .footer-main { grid-template-columns: 1fr 1fr; }
}

@media(max-width:620px) {
  .footer { padding-left: 6vw; padding-right: 6vw; }
  .footer-main { grid-template-columns: 1fr 1fr; gap: 45px 25px; padding: 60px 0 50px; }
  .footer-identity,
  .footer-action-group { grid-column: 1 / -1; }
  .footer-logo strong { white-space: normal; }
  .footer .footer-bottom { align-items: flex-start; flex-direction: column; gap: 22px; }
  .footer .footer-bottom>div { flex-direction: column; gap: 10px; }
}

/* Brand logos */
.brand-logo-mark { padding: 3px; background: transparent; border-radius: 0; }
.brand-logo-mark img { display: block; width: 100%; height: 100%; object-fit: contain; }
.hub .hub-icon { width: 58px; height: 58px; margin-bottom: 7px; background: transparent; }
.hub .hub-icon img { display: block; width: 100%; height: 100%; object-fit: contain; border-radius: 50%; }

/* Privacy policy */
.privacy-page { background: #f5f8fc; }
.privacy-home-link { display: inline-flex; align-items: center; gap: 30px; color: var(--blue); font: 700 13px Outfit; letter-spacing: .12em; }
.privacy-hero { padding: 100px 8vw 82px; background: linear-gradient(125deg, #e9f3ff, #fff); }
.privacy-hero p { margin: 0 0 12px; color: var(--blue); font: 700 14px Outfit; letter-spacing: .18em; }
.privacy-hero h1 { margin: 0; font-size: clamp(36px, 5vw, 66px); line-height: 1.35; letter-spacing: -.04em; }
.privacy-content { width: min(980px, 84vw); margin: 0 auto; padding: 90px 0 120px; }
.privacy-lead { margin: 0 0 72px; padding: 32px 36px; background: #fff; border-left: 4px solid var(--blue); }
.privacy-content section { padding: 42px 0; border-top: 1px solid #d7e0ea; }
.privacy-content h2 { margin: 0 0 24px; font-size: 22px; line-height: 1.55; }
.privacy-content p,
.privacy-content li { color: #4f5f73; font-size: 16px; line-height: 2; }
.privacy-content ol { padding-left: 1.55em; }
.privacy-content ol ol { margin: 12px 0; }
.privacy-content li+li { margin-top: 10px; }
.privacy-content address { padding: 25px 28px; background: #eaf3ff; color: #42556d; font-style: normal; line-height: 2; }
.privacy-content address a { color: var(--blue); font-weight: 700; }
.privacy-footer { padding: 32px 8vw; display: flex; align-items: center; justify-content: space-between; background: var(--navy); color: #fff; }
.privacy-footer a { color: #79d3ff; font-size: 14px; font-weight: 700; }
.privacy-footer small { color: #75869b; }
.policy-table { border-top: 1px solid #d7e0ea; }
.policy-row { display: grid; grid-template-columns: 220px 1fr; gap: 40px; padding: 24px 0; border-bottom: 1px solid #d7e0ea; }
.policy-row dt { font-weight: 700; }
.policy-row dd { margin: 0; color: #4f5f73; line-height: 2; }
.policy-row dd ul { margin: 0; padding-left: 1.3em; }
.company-values { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-bottom: 70px; }
.company-value { padding: 32px; background: #fff; border-top: 3px solid var(--blue); }
.company-value h2 { color: var(--blue); font-size: 27px; }
.company-history { display: grid; grid-template-columns: 150px 1fr; gap: 16px 30px; }
.company-history dt { color: var(--blue); font-weight: 700; }
.company-history dd { margin: 0 0 12px; color: #4f5f73; }

@media(max-width:620px) {
  .privacy-hero { padding-top: 75px; padding-bottom: 62px; }
  .privacy-content { width: 88vw; padding-top: 65px; }
  .privacy-lead { padding: 25px 22px; }
  .privacy-content section { padding: 34px 0; }
  .privacy-content h2 { font-size: 19px; }
  .privacy-content p,
  .privacy-content li { font-size: 15px; }
  .privacy-footer { align-items: flex-start; flex-direction: column; gap: 18px; }
  .policy-row { grid-template-columns: 1fr; gap: 8px; }
  .company-values { grid-template-columns: 1fr; }
  .company-history { grid-template-columns: 1fr; gap: 3px; }
}

/* Company page */
.company-page { background: #fff; }
.company-hero { min-height: calc(100vh - 88px); display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; }
.company-hero-copy { padding: 9vw 5vw 8vw 8vw; display: flex; flex-direction: column; justify-content: center; }
.company-hero-copy h1 { margin: 0; font-size: clamp(46px, 5.4vw, 78px); line-height: 1.28; letter-spacing: -.045em; }
.company-hero-copy h1 span { color: var(--blue); }
.company-hero-copy>p:not(.eyebrow) { margin: 28px 0 0; color: var(--muted); font-size: 17px; }
.company-title-label { margin-bottom: 32px; font-size: 22px; letter-spacing: .2em; }
.company-hero-links { display: flex; gap: 12px; margin-top: 45px; }
.company-hero-links a { min-width: 165px; padding: 15px 18px; display: flex; justify-content: space-between; border: 1px solid #ced9e4; color: #34475e; font-size: 13px; font-weight: 700; }
.company-hero-visual { min-height: 620px; position: relative; overflow: hidden; background: #edf5ff; }
.company-grid-bg { position: absolute; inset: 0; background-image: linear-gradient(#92b7df20 1px,transparent 1px),linear-gradient(90deg,#92b7df20 1px,transparent 1px); background-size: 48px 48px; mask-image: radial-gradient(circle,#000 25%,transparent 78%); }
.company-glow { position: absolute; width: 62%; aspect-ratio: 1; left: 18%; top: 20%; border-radius: 50%; background: #1c74ee1b; filter: blur(2px); }
.company-logo-orbit { width: 190px; height: 190px; padding: 28px; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); display: grid; place-items: center; border-radius: 50%; background: #fff; box-shadow: 0 25px 70px #24599125; z-index: 2; }
.company-logo-orbit img { width: 100%; height: 100%; object-fit: contain; }
.company-logo-orbit:before,.company-logo-orbit:after { content: ''; position: absolute; border: 1px solid #80b8f065; border-radius: 50%; }
.company-logo-orbit:before { inset: -75px; }
.company-logo-orbit:after { inset: -155px; }
.orbit-word { position: absolute; z-index: 3; color: var(--blue); font: 700 12px Outfit; letter-spacing: .16em; }
.orbit-a { left: 12%; top: 25%; }.orbit-b { right: 12%; top: 30%; }.orbit-c { right: 18%; bottom: 20%; }
.heritage-visual { background: linear-gradient(145deg,#e8f3ff,#f8fbff); }
.heritage-glow { width: 420px; height: 420px; position: absolute; right: -90px; top: -80px; border-radius: 50%; background: #51c5ff24; filter: blur(3px); }
.heritage-since { position: absolute; left: 9%; top: 10%; z-index: 2; display: flex; flex-direction: column; color: var(--blue); }
.heritage-since small { margin-left: 8px; font: 700 13px Outfit; letter-spacing: .24em; }
.heritage-since strong { font: 700 clamp(100px,12vw,180px)/.95 Outfit; letter-spacing: -.075em; opacity: .14; }
.heritage-logo { width: 190px; height: 225px; padding: 29px; position: absolute; right: 12%; top: 34%; z-index: 3; display: flex; flex-direction: column; align-items: center; justify-content: center; background: #fff; box-shadow: 0 25px 70px #24599124; }
.heritage-logo img { width: 120px; height: 120px; object-fit: contain; }
.heritage-logo span { margin-top: 12px; color: var(--ink); font: 700 12px Outfit; letter-spacing: .14em; }
.heritage-place { position: absolute; left: 11%; bottom: 12%; z-index: 3; display: grid; color: var(--ink); }
.heritage-place span { font: 700 25px/1.1 Outfit; letter-spacing: .08em; }
.heritage-place b { margin-top: 12px; color: var(--blue); font: 600 11px Outfit; letter-spacing: .16em; }
.heritage-line { position: absolute; left: 11%; right: 10%; top: 58%; height: 1px; background: #6da9e672; }
.heritage-line i { width: 9px; height: 9px; position: absolute; top: -4px; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 6px #f0f7ff; }
.heritage-line i:nth-child(1) { left: 0; }.heritage-line i:nth-child(2) { left: 48%; }.heritage-line i:nth-child(3) { right: 0; }
.company-intro .section-label,
.company-philosophy .section-label,
.company-history-section .section-label,
.company-business .section-label,
.company-profile .section-label,
.company-access .section-label { font-size: 17px; letter-spacing: .16em; }
.company-intro .section-label span,
.company-philosophy .section-label span,
.company-history-section .section-label span,
.company-business .section-label span,
.company-profile .section-label span,
.company-access .section-label span { font-size: 18px; }
.company-intro-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; }
.company-intro-layout h2,.company-section-head h2 { font-size: clamp(34px,4vw,58px); line-height: 1.42; }
.company-intro-layout>div:last-child { padding-top: 42px; color: var(--muted); }
.company-fields { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 40px; color: #8997a9; font: 700 14px Outfit; letter-spacing: .09em; }
.company-philosophy,.company-business,.company-access { background: var(--navy); color: #fff; }
.company-section-head { display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; align-items: end; margin-bottom: 60px; }
.company-section-head h2 { margin: 0; }
.company-section-head>p { color: #8fa0b6; }
.company-section-head.dark-text>p { color: var(--muted); }
.value-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid #ffffff30; border-left: 1px solid #ffffff30; }
.value-grid article { min-height: 380px; padding: 34px; position: relative; border-right: 1px solid #ffffff30; border-bottom: 1px solid #ffffff30; overflow: hidden; }
.value-grid b { display: block; color: #68d2ff; font: 700 27px Outfit; position: relative; z-index: 2; }
.value-grid span { position: absolute; right: 28px; top: 30px; z-index: 2; color: #99b9dc; font: 700 15px Outfit; letter-spacing: .14em; }
.value-grid h3 { margin: 105px 0 18px; font-size: 40px; }
.value-grid p { color: #c5d0dd; }
.company-philosophy { background: linear-gradient(135deg,#072c67 0%,#0b3e8c 52%,#082c66 100%); }
.value-grid article:before { content: ''; width: 145%; aspect-ratio: 1; position: absolute; left: 50%; top: 55%; z-index: 0; border-radius: 50%; background: radial-gradient(circle,rgba(104,210,255,.28) 0%,rgba(70,153,255,.14) 34%,rgba(52,126,229,0) 70%); filter: blur(7px); opacity: 0; transform: translate(-50%,-50%) scale(.72); transition: opacity .65s ease,transform 1.1s ease; pointer-events: none; }
.value-grid article>h3,.value-grid article>p,.value-grid article>b { position: relative; z-index: 2; }
.value-grid article:hover:before,.value-grid article:focus-within:before { opacity: 1; transform: translate(-50%,-50%) scale(1); animation: philosophy-glow 5.5s ease-in-out infinite alternate; }
@keyframes philosophy-glow { from { opacity: .72; transform: translate(-50%,-50%) scale(.9); } to { opacity: 1; transform: translate(-50%,-50%) scale(1.08); } }
.timeline { position: relative; margin-top: 15px; padding-left: 22%; }
.timeline:before { content: ''; position: absolute; left: calc(22% + 11px); top: 8px; bottom: 20px; width: 1px; background: #cbd9e7; }
.timeline article { min-height: 150px; display: grid; grid-template-columns: 120px 1fr; gap: 55px; position: relative; }
.timeline article:before { content: ''; width: 11px; height: 11px; position: absolute; left: 125px; top: 9px; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 7px #eaf3ff; }
.timeline time { color: var(--blue); font: 700 32px Outfit; }
.timeline small { color: var(--blue); font: 700 17px/1.5 'Noto Sans JP',sans-serif; letter-spacing: .04em; }
.timeline h3 { margin: 4px 0 7px; font-size: 20px; }
.timeline p { margin: 0; color: var(--muted); font-size: 14px; }
.timeline-emphasis>div { margin: -18px 0 24px; padding: 24px 28px; background: #edf5ff; border-left: 3px solid var(--blue); }
.business-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid #ffffff2b; border-left: 1px solid #ffffff2b; }
.company-business { background: linear-gradient(135deg,#072c67 0%,#0b3e8c 52%,#082c66 100%); }
.business-grid a { min-height: 290px; padding: 32px; position: relative; border-right: 1px solid #ffffff38; border-bottom: 1px solid #ffffff38; transition: background-color .35s ease,box-shadow .35s ease; }
.business-grid a:hover,.business-grid a:focus-visible { background: #1554aa; box-shadow: inset 0 0 70px #60c8ff20; }
.business-grid b { color: #72d5ff; font: 700 24px Outfit; }
.business-grid>a>span { display: block; margin-top: 42px; color: #a8c7e7; font: 700 14px Outfit; letter-spacing: .14em; }
.business-grid h3 { margin: 8px 0 12px; font-size: 25px; }
.business-grid p { margin: 0; color: #d0deed; font-size: 15px; line-height: 1.8; }
.business-grid i { position: absolute; right: 30px; bottom: 26px; color: #72d5ff; font-size: 22px; font-style: normal; transition: transform .25s ease; }
.business-grid a:hover i { transform: translateX(7px); }
.company-profile-table { border-top: 1px solid var(--line); }
.company-profile-table>div { display: grid; grid-template-columns: 230px 1fr; padding: 25px 15px; border-bottom: 1px solid var(--line); }
.company-profile-table dt { color: var(--blue); font-weight: 700; }
.company-profile-table dd { margin: 0; }
.access-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; }
.access-layout h2 { font-size: clamp(32px,3.7vw,52px); line-height: 1.45; }
.access-layout address { margin-top: 42px; color: #a7b6c8; font-style: normal; line-height: 2; }
.access-panel { padding: 40px; background: #10263f; }
.access-panel>span { color: #59c5ff; font: 700 12px Outfit; letter-spacing: .15em; }
.access-panel p { display: grid; grid-template-columns: 95px 1fr; padding: 18px 0; margin: 0; border-bottom: 1px solid #ffffff20; color: #cbd5e1; font-size: 14px; }
.access-panel b { color: #59c5ff; font: 700 11px Outfit; letter-spacing: .1em; }
.access-map { display: block; width: 100%; height: 260px; margin-top: 28px; border: 0; background: #e8f2ff; }
@media(max-width:620px){.access-map{height:320px}}
.company-contact { text-align: center; background: #142bc0; color: #fff; }
.company-contact .eyebrow { color: #7bdcff; font-size: 16px; }
.company-contact h2 { margin: 14px 0 22px; font-size: clamp(34px,4vw,56px); }
.company-contact>p:not(.eyebrow) { color: #c8d2ff; }
.company-contact .button { margin-top: 35px; }
.company-simple-footer { gap: 45px; }
.company-simple-footer>div { display: flex; gap: 25px; }
.company-simple-footer>div a { color: #91a0b2; font-size: 11px; }

@media(max-width:900px) {
  .company-hero { grid-template-columns: 1fr; }
  .company-hero-visual { min-height: 520px; }
  .company-intro-layout,.company-section-head,.access-layout { grid-template-columns: 1fr; }
  .company-intro-layout>div:last-child { padding-top: 0; }
  .value-grid,.business-grid { grid-template-columns: 1fr 1fr; }
  .timeline { padding-left: 8%; }
  .timeline:before { left: calc(8% + 131px); }
}

@media(max-width:620px) {
  .company-hero-copy { padding: 80px 6vw 70px; }
  .company-hero-copy h1 { font-size: 42px; }
  .company-hero-links { flex-direction: column; }
  .company-hero-visual { min-height: 430px; }
  .company-logo-orbit { width: 145px; height: 145px; padding: 22px; }
  .heritage-logo { width: 155px; height: 185px; right: 7%; padding: 22px; }
  .heritage-logo img { width: 95px; height: 95px; }
  .heritage-since strong { font-size: 95px; }
  .heritage-place { left: 7%; }
  .value-grid,.business-grid { grid-template-columns: 1fr; }
  .value-grid article { min-height: 300px; }
  .timeline { padding-left: 0; }
  .timeline:before { left: 92px; }
  .timeline article { grid-template-columns: 75px 1fr; gap: 42px; }
  .timeline article:before { left: 87px; }
  .timeline time { font-size: 24px; }
  .company-profile-table>div { grid-template-columns: 1fr; gap: 6px; }
  .access-panel { padding: 28px 22px; }
  .access-panel p { grid-template-columns: 1fr; gap: 6px; }
  .company-simple-footer>div { flex-direction: column; gap: 8px; }
}

@media(prefers-reduced-motion:reduce) {
  .value-grid b,.business-grid i { transition: none; }
  .value-grid article:hover b { transform: none; }
  .value-grid article:hover:before,.value-grid article:focus-within:before { animation: none; }
}

/* Services page */
.services-page { background: #fff; }
.services-hero { min-height: calc(100vh - 88px); display: grid; grid-template-columns: 1fr 1fr; }
.services-hero-copy { padding: 8vw 5vw 8vw 8vw; display: flex; flex-direction: column; justify-content: center; }
.services-title-label { margin: 0 0 34px; color: var(--blue); font: 700 22px Outfit; letter-spacing: .2em; }
.services-hero h1 { margin: 0; font-size: clamp(46px,5.3vw,76px); line-height: 1.28; letter-spacing: -.045em; }
.services-hero h1 span { color: var(--blue); }
.services-hero-copy>p:not(.services-title-label) { max-width: 640px; margin: 30px 0 38px; color: var(--muted); font-size: 16px; }
.services-hero-copy .button { width: 210px; }
.services-hero-map { min-height: 620px; position: relative; overflow: hidden; background: linear-gradient(145deg,#082d69,#0b4aa6); }
.services-hero-map:before { content: ''; position: absolute; inset: 0; background-image: linear-gradient(#ffffff0d 1px,transparent 1px),linear-gradient(90deg,#ffffff0d 1px,transparent 1px); background-size: 46px 46px; mask-image: radial-gradient(circle,#000 30%,transparent 78%); }
.services-hero-map:after { content: ''; width: 500px; height: 500px; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); border-radius: 50%; background: radial-gradient(circle,#57caff28,transparent 68%); }
.service-map-lines { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; overflow: visible; }
.service-map-lines>line { stroke: #7fd8ff; stroke-width: .22; stroke-dasharray: 1.2 1.3; vector-effect: non-scaling-stroke; opacity: .72; }
.service-map-energy line { stroke: #fff; stroke-width: .75; stroke-linecap: round; stroke-dasharray: 1 18; vector-effect: non-scaling-stroke; opacity: .95; filter: drop-shadow(0 0 3px #c8f4ff) drop-shadow(0 0 8px #45c8ff); animation: service-energy-flow 3.4s linear infinite; }
.service-map-energy line:nth-child(2) { animation-delay: -.55s; }
.service-map-energy line:nth-child(3) { animation-delay: -1.1s; }
.service-map-energy line:nth-child(4) { animation-delay: -1.65s; }
.service-map-energy line:nth-child(5) { animation-delay: -2.2s; }
.service-map-energy line:nth-child(6) { animation-delay: -2.75s; }
@keyframes service-energy-flow { to { stroke-dashoffset: -38; } }
.service-map-center { width: 180px; height: 180px; padding: 25px; position: absolute; left: 50%; top: 50%; z-index: 3; transform: translate(-50%,-50%); display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 50%; background: #fff; box-shadow: 0 28px 80px #001b4390,0 0 0 12px #ffffff14; }
.service-map-center img { width: 94px; height: 94px; object-fit: contain; }
.service-map-center span { margin-top: 9px; color: var(--ink); text-align: center; font: 700 10px/1.35 Outfit; letter-spacing: .1em; }
.service-map-item { width: 135px; min-height: 96px; padding: 18px; position: absolute; z-index: 3; display: flex; flex-direction: column; justify-content: space-between; border: 1px solid #ffffff45; color: #fff; background: #ffffff0b; }
.service-map-item b { color: #70d6ff; font: 700 22px Outfit; }
.service-map-item span { font: 700 12px Outfit; letter-spacing: .09em; }
.map-01 { left: 10%; top: 13%; }.map-02 { right: 10%; top: 13%; }.map-03 { left: 7%; top: 43%; }.map-04 { right: 7%; top: 43%; }.map-05 { left: 16%; bottom: 10%; }.map-06 { right: 16%; bottom: 10%; }
.service-page-head { display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; align-items: end; margin-bottom: 58px; }
.service-problem-nav .section-label,.service-lineup .section-label { font-size: 17px; letter-spacing: .16em; }
.service-problem-nav .section-label span,.service-lineup .section-label span { font-size: 19px; }
.service-page-head h2 { margin: 0; font-size: clamp(34px,4vw,58px); line-height: 1.42; }
.service-page-head>p { color: var(--muted); }
.issue-link-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.issue-link-grid a { min-height: 250px; padding: 30px; position: relative; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: background-color .25s ease; }
.issue-link-grid a:hover,.issue-link-grid a:focus-visible { background: #edf5ff; }
.issue-link-grid b { color: var(--blue); font: 700 23px Outfit; }
.issue-link-grid h3 { margin: 55px 0 0; font-size: 19px; line-height: 1.7; }
.issue-link-grid span { position: absolute; left: 30px; bottom: 25px; color: var(--blue); font-size: 13px; font-weight: 700; }
.service-lineup { background: linear-gradient(135deg,#072c67 0%,#0b3e8c 52%,#082c66 100%); color: #fff; }
.service-page-head-light>p { color: #afc2d8; }
.service-detail-list { border-top: 1px solid #ffffff38; }
.service-detail-list article { scroll-margin-top: 30px; display: grid; grid-template-columns: 150px 1.25fr .75fr; gap: 35px; min-height: 390px; padding: 44px 25px; border-bottom: 1px solid #ffffff38; position: relative; overflow: hidden; transition: background-color .3s ease; }
.service-detail-list article:hover { background: #ffffff0a; }
.service-detail-number b { display: block; color: #72d6ff; font: 700 42px Outfit; }
.service-detail-number span { display: block; margin-top: 9px; color: #9cb9d8; font: 700 12px/1.5 Outfit; letter-spacing: .12em; }
.service-symbol { margin: 0 0 20px!important; color: #73d8ff!important; font: 700 29px Outfit!important; }
.service-detail-main h3 { margin: 0 0 15px; font-size: 30px; }
.service-detail-main>p { max-width: 650px; margin: 0; color: #cfdeed; font-size: 15px; line-height: 1.9; }
.service-detail-tags { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 27px; }
.service-detail-tags span { padding: 6px 12px; border: 1px solid #ffffff55; border-radius: 99px; color: #e8f3ff; font-size: 13px; }
.service-detail-side { padding-left: 28px; border-left: 1px solid #ffffff30; display: flex; flex-direction: column; }
.service-detail-side p { margin: 64px 0 20px; color: #afc2d8; font-size: 14px; }
.service-detail-side a { margin-top: auto; padding: 17px 0; display: flex; justify-content: space-between; border-top: 1px solid #ffffff38; color: #72d6ff; font-size: 13px; font-weight: 700; }
.service-detail-side i { font-style: normal; transition: transform .25s ease; }
.service-detail-side a:hover i { transform: translateX(7px); }
.services-contact { text-align: center; background: #eef6ff; }
.services-contact .eyebrow { font-size: 17px; }
.services-contact h2 { margin: 14px 0 22px; font-size: clamp(34px,4vw,56px); }
.services-contact>p:not(.eyebrow) { color: var(--muted); }
.services-contact .button { margin-top: 35px; background: var(--blue); color: #fff; }

@media(max-width:1050px) {
  .services-hero { grid-template-columns: 1fr; }
  .services-hero-map { min-height: 600px; }
  .service-detail-list article { grid-template-columns: 110px 1fr; }
  .service-detail-side { grid-column: 2; padding-left: 0; border-left: 0; }
  .service-detail-side p { margin-top: 10px; }
}

@media(max-width:760px) {
  .service-page-head { grid-template-columns: 1fr; gap: 20px; }
  .issue-link-grid { grid-template-columns: 1fr 1fr; }
  .service-detail-list article { grid-template-columns: 1fr; gap: 20px; }
  .service-detail-side { grid-column: auto; }
}

@media(max-width:560px) {
  .services-hero-copy { padding: 78px 6vw 68px; }
  .services-hero h1 { font-size: 42px; }
  .services-hero-map { min-height: 520px; }
  .service-map-center { width: 145px; height: 145px; padding: 18px; }
  .service-map-center img { width: 74px; height: 74px; }
  .service-map-item { width: 105px; min-height: 82px; padding: 13px; }
  .service-map-item b { font-size: 18px; }
  .service-map-item span { font-size: 10px; }
  .map-01 { left: 5%; }.map-02 { right: 5%; }.map-03 { left: 2%; }.map-04 { right: 2%; }.map-05 { left: 8%; }.map-06 { right: 8%; }
  .issue-link-grid { grid-template-columns: 1fr; }
  .issue-link-grid a { min-height: 220px; }
  .service-detail-list article { padding: 35px 5px; }
  .service-detail-main h3 { font-size: 25px; }
}

@media(prefers-reduced-motion:reduce) {
  .issue-link-grid a,.service-detail-list article,.service-detail-side i { transition: none; }
  .service-map-energy line { animation: none; opacity: .45; }
}

/* More visible travelling glow */
.card::before {
  width: 150%;
  height: 95%;
  right: -75%;
  top: -32%;
  border-radius: 50%;
  background: radial-gradient(circle at center, rgba(255, 255, 255, .5) 0%, rgba(255, 255, 255, .22) 32%, rgba(255, 255, 255, 0) 69%);
  filter: blur(5px);
  opacity: .72;
  will-change: transform, opacity;
}

.cloud-card::before {
  background: radial-gradient(circle at center, rgba(54, 135, 255, .36) 0%, rgba(54, 135, 255, .16) 34%, rgba(54, 135, 255, 0) 70%);
}

.card:hover::before,
.card:focus-within::before {
  animation: pickup-glow-visible 4.5s ease-in-out infinite alternate;
}

@keyframes pickup-glow-visible {
  0% {
    opacity: .55;
    transform: translate3d(18%, -8%, 0) scale(.92);
  }
  50% {
    opacity: 1;
    transform: translate3d(-8%, 18%, 0) scale(1.12);
  }
  100% {
    opacity: .68;
    transform: translate3d(-35%, 4%, 0) scale(.98);
  }
}

@media(prefers-reduced-motion:reduce) {
  .card:hover::before,
  .card:focus-within::before {
    animation: none;
  }
}
