*{box-sizing:border-box;margin:0;padding:0}
html{font-size:62.5%;scroll-behavior:smooth}
body{font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Yu Gothic",Meiryo,sans-serif;color:#111827;background:#fff;line-height:1.75;overflow-x:hidden}
img{max-width:100%;display:block}a{text-decoration:none;color:inherit}ul{list-style:none}
.container{width:min(1640px,88%);margin:0 auto}

/* Header */
.header{height:76px;background:rgba(255,255,255,.96);backdrop-filter:blur(18px);border-bottom:1px solid rgba(15,23,42,.07);position:sticky;top:0;z-index:999}
.header-inner{height:76px;display:flex;align-items:center;justify-content:space-between}
.logo img{height:48px;width:auto}
.nav ul{display:flex;align-items:center;gap:44px}
.nav a{font-size:1.35rem;font-weight:700;color:#0f172a;position:relative}
.nav a.active:after{content:"";position:absolute;left:0;right:0;bottom:-24px;height:2px;background:#073b7a}
.contact-btn{background:#061d3a;color:#fff!important;padding:12px 26px;border-radius:9px}.contact-btn:after{display:none!important}
.menu-toggle{display:none;background:none;border:0;width:44px}.menu-toggle span{display:block;height:3px;background:#061d3a;margin:6px 0;border-radius:99px}

/* Hero */
.hero{background:linear-gradient(90deg,#fff 0%,#fff 42%,#eef6ff 100%);overflow:hidden}
.hero-inner{min-height:430px;display:grid;grid-template-columns:40% 60%;align-items:center;gap:0}
.hero-copy{position:relative;z-index:2;padding-right:32px}
.label{color:#0b4d9c;font-size:1.12rem;letter-spacing:.22em;font-weight:800;margin-bottom:10px}
.hero .label{margin-bottom:24px}
.hero h1{font-family:Georgia,"Times New Roman",serif;color:#061d3a;font-weight:500;font-size:clamp(4rem,4.1vw,6.2rem);line-height:1.24;margin-bottom:24px}
.hero p{font-size:1.5rem;color:#334155;margin-bottom:30px}
.hero-buttons{display:flex;gap:20px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-width:176px;padding:14px 28px;border-radius:8px;font-weight:800;font-size:1.35rem;transition:.25s}
.btn:hover{transform:translateY(-2px)}
.btn.dark{background:#061d3a;color:#fff;box-shadow:0 18px 42px rgba(6,29,58,.18)}
.btn.light{background:rgba(255,255,255,.86);border:1px solid #9aa8bb;color:#061d3a}
.hero-image{height:360px;position:relative;overflow:hidden}
.hero-image:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.62) 28%,rgba(255,255,255,0) 64%)}
.hero-image img{width:100%;height:100%;object-fit:cover;object-position:center;position:relative;z-index:0}

/* About */
.about{background:#f8fbff;padding:0;overflow:hidden}
.about-inner{min-height:270px;display:grid;grid-template-columns:38% 62%;align-items:center;gap:0}
.about-copy{padding:56px 44px 56px 0;position:relative;z-index:2}
.about h2,.section-title h2,.news h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(3rem,3vw,4.4rem);font-weight:500;color:#111827;line-height:1.25}
.about-copy p:not(.label){font-size:1.35rem;color:#475569;margin:20px 0 22px}
.text-link,.news-more{display:inline-flex;align-items:center;gap:10px;color:#073b7a;font-size:1.35rem;font-weight:800}
.text-link:after,.news-more:after{content:"→"}
.about-image{height:250px;position:relative;overflow:hidden}
.about-image:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(248,251,255,.98) 0%,rgba(248,251,255,.45) 33%,rgba(248,251,255,0) 70%)}
.about-image img{width:100%;height:100%;object-fit:cover;object-position:center;position:relative;z-index:0}

/* Service */
.services{padding:54px 0 72px;background:#fff}
.section-title{text-align:center;margin-bottom:30px}
.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.service-card{background:#fff;border:1px solid #e2e8f0;box-shadow:0 14px 44px rgba(15,23,42,.06);overflow:hidden}
.service-card img{width:100%;aspect-ratio:16/6;object-fit:cover}
.service-card div{padding:20px 22px 22px}
.service-card h3{font-size:1.7rem;color:#0a2d57;margin-bottom:8px}
.service-card p{font-size:1.32rem;color:#475569;margin-bottom:14px}
.service-card a{font-size:1.32rem;color:#073b7a;font-weight:800}

/* News */
.news{padding:0 0 48px;background:#fff}
.news-inner{display:grid;grid-template-columns:230px 1fr 170px;gap:48px;align-items:start}
.news-list{border-top:1px solid #e2e8f0}
.news-list li{border-bottom:1px solid #e2e8f0}
.news-list a{display:grid;grid-template-columns:140px 1fr 20px;gap:24px;padding:14px 0;font-size:1.42rem}
.news-list a:after{content:"›";font-size:2.2rem;color:#073b7a;line-height:1}
.news-date{font-weight:800;color:#0b4d9c}

/* Company */
.company{padding:82px 0;background:#f8fbff}
.company-table{width:100%;border-collapse:collapse;background:#fff}
.company-table th,.company-table td{padding:20px 24px;border-bottom:1px solid #e2e8f0;text-align:left;font-size:1.45rem}
.company-table th{width:200px;color:#073b7a;background:#f1f7ff}

/* CTA / Footer */
.cta{padding:36px 0;background:linear-gradient(180deg,#f8fbff,#eaf4ff)}
.cta-inner{display:flex;align-items:center;justify-content:space-between;text-align:center;gap:48px}
.mail{color:#073b7a;font-size:2.8rem}
.cta h2{font-family:Georgia,"Times New Roman",serif;color:#061d3a;font-size:3rem;font-weight:500}
.cta p{font-size:1.35rem;color:#475569}
.footer{background:#061d3a;color:#fff;padding:46px 0 18px}
.footer-inner{display:grid;grid-template-columns:1.4fr 1fr 1.2fr;gap:56px}
.footer-brand img{height:45px;width:auto;filter:none;background:#fff;padding:4px;border-radius:2px;margin-bottom:18px}
.footer p,.footer a{font-size:1.3rem;color:rgba(255,255,255,.78)}
.footer nav{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 24px}
.footer strong{display:block;font-size:1.4rem;margin-bottom:10px}
.copy{text-align:center;color:rgba(255,255,255,.55)!important;margin-top:32px;font-size:1.2rem!important}

@media(max-width:980px){
.container{width:min(100% - 34px,1640px)}
.nav{display:none;position:absolute;top:76px;left:0;right:0;background:#fff;border-bottom:1px solid #e2e8f0}
.nav.open{display:block}.nav ul{display:block;padding:16px 6%}.nav li{border-bottom:1px solid #f1f5f9}.nav a{display:block;padding:14px 0}.nav a.active:after{display:none}.menu-toggle{display:block}
.hero-inner,.about-inner,.news-inner{grid-template-columns:1fr}.hero{padding-top:46px}.hero-image{height:300px;margin-top:30px}.about-image{height:260px}.service-grid{grid-template-columns:repeat(2,1fr)}.cta-inner,.footer-inner{display:block}.cta-inner .btn{margin-top:24px}
}
@media(max-width:640px){
html{font-size:56.25%}.logo img{height:38px}.hero h1{font-size:3.7rem}.hero-buttons{display:grid;grid-template-columns:1fr}.btn{width:100%}.service-grid{grid-template-columns:1fr}.news-list a{grid-template-columns:1fr 20px}.news-list a:after{grid-column:2;grid-row:1/3}.company-table,.company-table tbody,.company-table tr,.company-table th,.company-table td{display:block;width:100%}.company-table th{border-bottom:0;padding-bottom:6px}.company-table td{padding-top:0}.footer nav{grid-template-columns:1fr}
}
.service-card a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 18px;
  padding: 12px 16px;
  background: #061d3a;
  color: #fff !important;
  border-radius: 6px;
  font-size: 1.35rem;
  font-weight: 800;
}

.service-card a::after {
  content: "→";
  font-size: 1.6rem;
}

.service-card a:hover {
  opacity: 0.9;
  transform: translateY(-1px);
  
/* ===== CTAのみ修正（ヘッダー完全無傷） ===== */
.cta {
  padding: 40px 0 !important;
}

.cta-inner {
  max-width: 900px !important;
  margin: 0 auto !important;
  text-align: center !important;
  padding: 30px 20px !important;
  border-radius: 20px !important;
  background: rgba(255,255,255,0.7) !important;
  box-shadow: 0 20px 60px rgba(0,0,0,0.08) !important;
}

.mail {
  width: 42px !important;
  height: 42px !important;
  margin: 0 auto 10px !important;
}

.cta h2 {
  font-size: 2.6rem !important;
  margin-bottom: 8px !important;
}

.cta p {
  font-size: 1.3rem !important;
}

.cta .btn {
  margin-top: 12px !important;
  padding: 12px 26px !important;
}

/* ===== CTA 完全中央固定（確実に効く） ===== */
.cta-inner {
  display: block !important;
  text-align: center !important;
}

.cta-inner > div {
  margin: 0 auto !important;
  text-align: center !important;
}

.cta .btn {
  display: inline-block !important;
  margin: 20px auto 0 !important;
}

/* アイコン中央 */
.mail {
  display: block !important;
  margin: 0 auto 10px !important;
}

/* フッターキャッチコピー拡大 */
.footer .footer-brand p {
  font-size: 18px !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em !important;
  line-height: 1.8 !important;
  color: rgba(255,255,255,0.95) !important;
}