:root {
  --blue:#075bc4; --blue2:#1689df; --navy:#102d61; --pale:#eef8ff;
  --line:#cfe7fb; --text:#17345f; --muted:#4b668a; --white:#fff;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; font-family: "Noto Sans JP", "Yu Gothic", Meiryo, sans-serif; color:var(--text); line-height:1.75; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; display:block; }
  .wrap { width:min(1180px, calc(100% - 48px)); margin-inline:auto; }
  .logo-slot{display:flex;align-items:center;min-width:190px;color:var(--blue);font:bold 23px Georgia,serif;line-height:1.05}
  .logo-slot span{display:inline-block;border:2px dashed #7ab7e8;padding:7px 10px;font:12px sans-serif;color:#5078a1;margin-right:8px}
  .logo-slot small{display:block;font-size:20px}
  .site-header { background:#fff; border-bottom:1px solid #e3effa; position:relative; z-index:2; }
  .header-inner { min-height:76px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
  .brand { display:flex; align-items:center; flex-shrink:0; }
  .brand-logo { width:250px; height:auto; object-fit:contain; }
  .brand-placeholder { color:var(--blue); font-weight:800; line-height:1.1; font-family:Georgia,serif; }
  .nav { display:flex; align-items:center; justify-content:center; gap:clamp(12px,2vw,28px); font-size:13px; font-weight:700; }
  .nav a:hover { color:var(--blue); }
  .header-contact { display:flex; align-items:center; gap:16px; white-space:nowrap; }
  .phone { font-size:19px; font-weight:800; color:var(--blue); line-height:1.25; }
  .phone small { display:block; font-size:10px; text-align:center; color:var(--muted); font-weight:500; }
  .btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:12px 12px; min-height:44px; border-radius:5px; background:var(--blue); color:white; border:1px solid var(--blue); font-size:14px; font-weight:700; transition:.2s; }
  .btn:hover { background:#03499f; transform:translateY(-1px); }
  .btn-outline { color:var(--blue); background:#fff; }
  .btn-outline:hover { color:#fff; }
  .hero { min-height:350px; display:flex; align-items:center; background:linear-gradient(90deg,rgba(239,249,255,.98) 0%,rgba(239,249,255,.91) 39%,rgba(239,249,255,.12) 100%), url("https://images.unsplash.com/photo-1497366754035-f200968a6e72?auto=format&fit=crop&w=2000&q=85") center/cover no-repeat; }
  .hero-content { padding:52px 0; max-width:620px; }
  .eyebrow { color:var(--blue); font-size:12px; letter-spacing:.12em; font-weight:800; text-transform:uppercase; margin:0 0 8px; }
  .hero h1 { color:var(--navy); font-size:clamp(30px,4vw,46px); line-height:1.42; margin:0 0 14px; letter-spacing:.02em; }
  .hero p { max-width:530px; margin:0 0 22px; font-size:15px; }
  .actions { display:flex; flex-wrap:wrap; gap:12px; }
  .section { padding:48px 0; }
  .section-soft { background:linear-gradient(135deg,#f5fbff,#eaf6ff); }
  .section-title { text-align:center; margin:0 0 28px; }
  .section-title .eyebrow { margin-bottom:2px; }
  .section-title h2 { margin:0; color:var(--navy); font-size:clamp(25px,3vw,32px); line-height:1.35; }
  .section-title p { color:var(--muted); margin:8px auto 0; max-width:760px; font-size:14px; }
  .service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
  .service-card { overflow:hidden; border:1px solid var(--line); border-radius:7px; background:#fff; box-shadow:0 5px 18px rgba(28,91,147,.06); }
  .card-visual { height:120px; display:flex; align-items:center; justify-content:center; gap:20px; background:linear-gradient(115deg,#f8fcff,#e3f4ff); color:var(--blue); }
  .card-visual .symbol { font-size:44px; font-weight:300; line-height:1; }
  .card-visual img { width:42%; height:90px; object-fit:cover; border-radius:5px; }
  .card-body { padding:20px; }
  .card-body h3 { color:var(--navy); font-size:19px; margin:0 0 8px; line-height:1.45; }
  .card-body p { font-size:13px; color:var(--muted); margin:0 0 12px; }
  .checks { list-style:none; padding:0; margin:12px 0 18px; font-size:13px; }
  .checks li { margin:4px 0; }
  .checks li::before { content:"✓"; color:var(--blue); font-weight:900; margin-right:9px; }
  .card-body .btn { padding:9px 16px; min-height:38px; font-size:13px; }
  .industry-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
  .industry { background:#fff; border:1px solid #d8eaf8; border-radius:6px; overflow:hidden; }
  .industry img { width:100%; height:112px; object-fit:cover; }
  .industry-text { padding:14px 16px 17px; }
  .industry-text h3 { margin:0 0 5px; font-size:16px; color:var(--navy); }
  .industry-text p { margin:0; color:var(--muted); font-size:13px; }
  .section-heading-row { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:22px; }
  .section-heading-row .section-title { text-align:left; margin:0; }
  .text-link { color:var(--blue); font-size:13px; font-weight:800; white-space:nowrap; }
  .text-link:hover { text-decoration:underline; }
  .reason-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
  .reason { background:#fff; border:1px solid var(--line); border-radius:7px; text-align:center; padding:22px 14px; }
  .reason .icon { font-size:32px; color:var(--blue); margin-bottom:8px; }
  .reason h3 { font-size:15px; margin:0 0 8px; color:var(--navy); }
  .reason p { font-size:12px; margin:0; color:var(--muted); }
  .cta { color:white; background:linear-gradient(110deg,#0752b4,#087bd3); padding:30px 0; }
  .cta-inner { display:grid; grid-template-columns:1fr 1.55fr; gap:30px; align-items:center; }
  .cta h2 { font-size:25px; line-height:1.4; margin:0 0 8px; }
  .cta p { font-size:13px; margin:0; color:#eaf5ff; }
  .cta-actions { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
  .cta-box { background:#fff; color:var(--blue); border-radius:6px; padding:16px 18px; display:flex; align-items:center; gap:14px; }
  .cta-box .big-icon { font-size:30px; }
  .cta-box small { display:block; color:var(--muted); font-size:10px; }
  .cta-box strong { display:block; font-size:21px; line-height:1.4; }
  .cta-box .btn { margin-left:auto; padding:8px 12px; min-height:36px; font-size:12px; }
  .site-footer { background:#fff; }
  .footer-main { min-height:74px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
  .footer-main .brand-logo { width:205px; }
  .footer-nav { display:flex; gap:20px; flex-wrap:wrap; font-size:12px; font-weight:700; }
  .footer-bottom { background:#153f72; color:#e9f3ff; font-size:11px; padding:15px 0; }
  .footer-bottom .wrap { display:flex; justify-content:space-between; gap:16px; }
@media (max-width:1000px) {
  .header-inner { flex-wrap:wrap; padding:14px 0; }
  .nav { order:3; width:100%; justify-content:flex-start; flex-wrap:wrap; }
  .header-contact { margin-left:auto; }
  .industry-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .reason-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .cta-inner { grid-template-columns:1fr; }
}
@media (max-width:680px) {
  .wrap { width:min(100% - 28px,1180px); }
  .header-inner { gap:12px; }
  .brand-logo { width:210px; }
  .header-contact { width:100%; justify-content:space-between; }
  .nav { gap:12px 18px; font-size:12px; }
  .hero { min-height:0; background-position:60% center; }
  .hero-content { padding:42px 0; }
  .hero h1 { font-size:31px; }
  .hero p { font-size:14px; }
  .section { padding:36px 0; }
  .service-grid { grid-template-columns:1fr; }
  .industry-grid { grid-template-columns:1fr 1fr; gap:10px; }
  .industry img { height:90px; }
  .industry-text { padding:10px; }
  .industry-text h3 { font-size:14px; }
  .industry-text p { font-size:12px; }
  .section-heading-row { align-items:start; flex-direction:column; gap:8px; }
  .reason-grid { grid-template-columns:1fr 1fr; }
  .cta-actions { grid-template-columns:1fr; }
  .cta-box strong { font-size:18px; }
  .footer-main { padding:18px 0; align-items:flex-start; flex-direction:column; }
  .footer-nav { gap:10px 16px; }
  .footer-bottom .wrap { flex-direction:column; }
}

.news-list { max-width:940px; margin:0 auto; border-top:1px solid var(--line); background:#fff; border-radius:7px; overflow:hidden; }
.news-item { display:grid; grid-template-columns:110px 100px 1fr; align-items:start; gap:14px; padding:17px 22px; border-bottom:1px solid var(--line); font-size:14px; }
.news-item time { color:var(--muted); font-variant-numeric:tabular-nums; }
.news-label { display:inline-block; width:max-content; border:1px solid #b8daf8; border-radius:3px; padding:1px 8px; color:var(--blue); background:#f5fbff; font-size:11px; font-weight:700; }
.news-item a { color:var(--blue); font-weight:700; }
.news-item a:hover { text-decoration:underline; }
.news-more { text-align:right; margin:16px auto 0; max-width:940px; }
@media (max-width:680px) { 
  .news-item { grid-template-columns:1fr auto; gap:5px 10px; padding:14px; font-size:13px; } 
  .news-item time { grid-column:1; } 
  .news-label { grid-column:2; grid-row:1; } 
  .news-item a,.news-item > span:last-child { grid-column:1 / -1; }
 }


/* Layout safeguards: prevent header and card overflow across screen sizes */
html { overflow-x: hidden; }
body { min-width: 320px; }
  .header-inner { flex-wrap: wrap; }
  .brand-logo { display:block; max-width:100%; height:auto; }
  .nav { flex-wrap: wrap; }
  .service-grid, .industry-grid, .reason-grid { min-width: 0; }
  .service-card, .industry, .reason { min-width: 0; }
  .service-card img, .industry img { width:100%; object-fit:cover; }
  @media (max-width: 1000px) { .header-inner { align-items:center; } .header-contact { flex-wrap:wrap; } }
  @media (max-width: 680px) { .brand-logo { width:min(210px, 65vw); } .header-contact { gap:10px; } .phone { font-size:17px; } .nav { row-gap:8px; } .news-item { overflow-wrap:anywhere; } }

  /* Compact news rows so more announcements fit in the same space */
  .news-list{max-width:760px;margin:0 auto;border-radius:5px}
  .news-item{grid-template-columns:100px 86px minmax(0,1fr);gap:9px;padding:9px 14px;font-size:13px;line-height:1.55}
  .news-more{max-width:760px}
  @media(max-width:680px){.news-item{grid-template-columns:1fr auto;gap:4px 8px;padding:10px 12px;font-size:12px}}

/* Emphasize the main-industry and development-achievements area */
#industries .section-heading-row { margin-bottom: 30px; }
#industries .section-title h2 { font-size: clamp(29px, 3.4vw, 38px); }
#industries .section-title p { font-size: 16px; }
#industries .text-link { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:14px 22px; border:2px solid var(--blue); border-radius:6px; background:#fff; font-size:16px; box-shadow:0 4px 12px rgba(7,91,196,.10); }
#industries .text-link:hover { background:var(--blue); color:#fff; text-decoration:none; }
#industries .industry-grid { gap:22px; }
#industries .industry img { height:155px; }
#industries .industry-text { padding:18px 19px 20px; }
#industries .industry-text h3 { font-size:19px; margin-bottom:7px; }
#industries .industry-text p { font-size:14px; line-height:1.65; }
@media (max-width:680px) {
  #industries .section-heading-row { gap:14px; }
  #industries .section-title h2 { font-size:28px; }
  #industries .section-title p { font-size:14px; }
  #industries .text-link { width:100%; padding:12px 14px; font-size:15px; white-space:normal; }
  #industries .industry-grid { gap:12px; }
  #industries .industry img { height:115px; }
  #industries .industry-text { padding:12px; }
  #industries .industry-text h3 { font-size:16px; }
  #industries .industry-text p { font-size:12px; }
}
