:root{
  --color-text:#222;
  --color-bg:#fff;
  --color-light:#f5f5f5;
  --color-border:#ddd;
  --color-primary:#111;
  --content-width:1200px;
  --content-width-narrow:800px;
  --side-space:20px;
  --section-space:100px;
}

html{scroll-behavior:smooth}
body{margin:0;color:var(--color-text);background:var(--color-bg);font-family: "Noto Serif JP", serif;font-size:16px;line-height:1.8;}
img{width: 100%;}
.pc{display:block}.sp{display:none}
.block{width:min(calc(100% - (var(--side-space) * 2)),var(--content-width));margin-inline:auto}
.block800{width:min(calc(100% - (var(--side-space) * 2)),var(--content-width-narrow));margin-inline:auto}
.center{text-align:center}.tl{text-align:left}.tr{text-align:right}
.flex{display:flex;flex-wrap:wrap}
.section{padding:var(--section-space) 0}.bg-light{background:var(--color-light)}
.mt20{margin-top:20px}.mt30{margin-top:30px}.mt40{margin-top:40px}.mt60{margin-top:60px}

.site-header{position:relative;z-index:100;background:#fff;position: fixed;width: calc(100% - 60px);margin:30px;box-shadow: 0 0 10px rgba(0,0,0,0.2)}
.header-inner{min-height:80px;display:flex;align-items:center;justify-content:space-between;width: 100%;}
.site-logo{}
.site-logo a{display: block;width: 195px;margin-left: 30px}
.global-nav ul{display:flex;align-items:center;gap:45px}
.global-nav a{display:block;padding:10px 0;font-size:15px;color:rgba(2,34,99,1)}
.global-nav .nav-contact a{background:rgba(0,163,216,1);color:#fff;height: 80px;display: flex;justify-content: center;align-items: center;text-align: center;line-height: 140%;width: 155px}
.global-nav .nav-tel{font-size: 27px;line-height: 100%;border-left: solid 1px #000;padding: 0 0 0 45px }
.global-nav .nav-tel span{font-size: 50%;display: block;line-height: 100%;padding: 5px 0 0 ;text-align: right;}

.mainvisual{min-height:50vw;display:grid;align-items:center;background: url(../img/mainview.png) no-repeat center center;background-size: cover;}
.mainvisual-inner{padding: 0 0 0 2.5vw}
.mainvisual h2{font-size:2.2vw;line-height:1.35;letter-spacing:.02em}
.mainvisual h2+p{margin-top:24px;font-size:1.6vw;letter-spacing:.2em }

.section-heading{margin-bottom:50px}
.section-heading h2{margin-top:8px;font-size:36px;line-height:1.4}

.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.card{background:#fff;border:1px solid var(--color-border);padding:24px}
.card-image{aspect-ratio:16/10;display:grid;place-items:center;margin:-24px -24px 24px;background:#ddd;color:#777;font-size:13px;letter-spacing:.1em}
.card h3{font-size:22px}.card p{margin-top:12px}.card .btn{margin-top:22px}

.btn{display:inline-flex;min-width:220px;min-height:54px;align-items:center;justify-content:center;padding:12px 28px;background:var(--color-primary);color:#fff;border:1px solid var(--color-primary);transition:.2s}
.btn:hover{opacity:.75}.btn-white{background:#fff;color:var(--color-primary);border-color:#fff}

.news-list{border-top:1px solid var(--color-border)}
.news-list a{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:22px 0;border-bottom:1px solid var(--color-border)}
.news-list time{font-size:14px}

.contact-cta{padding:80px 0;background:var(--color-primary);color:#fff}
.contact-cta-sub{font-size:13px;letter-spacing:.2em}.contact-cta h2{margin-top:8px;font-size:36px}.contact-cta h2+p{margin-top:12px}.contact-cta .btn{margin-top:28px}

.site-footer{padding:70px 0 20px;background:#111;color:#fff}
.footer-inner{display:flex;justify-content:space-between;gap:50px}
.footer-logo{font-size:24px;font-weight:700;margin-bottom:18px}.footer-info p+p{margin-top:4px}
.footer-nav ul{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:10px 30px}.footer-nav a{font-size:14px}
.copyright{margin-top:50px;text-align:center;font-size:12px;color:#aaa}

.subvisual{padding:100px 0;background:#eee}.subvisual h1{margin-top:8px;font-size:44px}.breadcrumb{padding:15px 0;border-bottom:1px solid var(--color-border);font-size:13px}.breadcrumb span{margin-left:8px}
.content-title{font-size:32px;margin-bottom:30px}.content-subtitle{font-size:24px;margin:55px 0 20px;padding-bottom:12px;border-bottom:1px solid var(--color-border)}

/* client-specific styles below */
