/* Civic precision, blueprints and restrained playful detail. */
:root{--civic-shadow:0 8px 24px rgba(25,62,99,.055);--civic-ease:cubic-bezier(.2,.7,.2,1)}
body{background-color:#f4f7fb;background-image:radial-gradient(rgba(22,102,176,.075) .7px,transparent .7px);background-size:20px 20px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #e4a527;outline-offset:4px}
::selection{color:#fff;background:#1666b0}
header.site{border-bottom-width:2px;box-shadow:0 3px 18px rgba(10,61,122,.045)}
header.site .wrap{padding-top:18px;padding-bottom:18px}
.brand .name{letter-spacing:.04em}.anniv{box-shadow:0 0 0 3px #e8f1fa}
aside.left nav,.side-box,.content,.quick-contact{box-shadow:var(--civic-shadow)}
aside.left .nav-head,.side-box .box-head{letter-spacing:.08em}
aside.left nav a{transition:background .18s,color .18s,padding-left .18s}
.content{border-color:#d8e3ec}.content p{line-height:1.9}.content h2{letter-spacing:.025em}
.sec-head{position:relative;flex-wrap:wrap;gap:3px 12px;padding-bottom:11px}
.sec-head::after{content:"";position:absolute;left:0;bottom:-2px;width:42px;height:2px;background:var(--blue)}
.sec-head .en{font-size:10px;letter-spacing:.16em;color:#4f7695}
.hero,.page-head{position:relative;isolation:isolate;overflow:hidden;box-shadow:0 10px 28px rgba(10,61,122,.12)}
.hero::before,.page-head::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:24px 24px}
.hero::after,.page-head::after{content:"";position:absolute;right:0;bottom:0;width:42%;height:78%;z-index:-1;pointer-events:none;opacity:.14;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 220' fill='none' stroke='%23fff' stroke-width='1.4'%3E%3Cpath d='M0 210h300M24 210V112h63v98M103 210V47h74v163M193 210V90h78v120M117 47V30h46v17M204 90V72h56v18M36 128h12v17H36zm27 0h12v17H63zM36 162h12v17H36zm27 0h12v17H63zM119 65h13v16h-13zm26 0h13v16h-13zM119 98h13v16h-13zm26 0h13v16h-13zM119 131h13v16h-13zm26 0h13v16h-13zM119 164h13v16h-13zm26 0h13v16h-13zM207 107h15v19h-15zm29 0h15v19h-15zM207 143h15v19h-15zm29 0h15v19h-15zM274 210v-35m0 7c-22 0-16-28 0-37 16 9 22 37 0 37z'/%3E%3Ccircle cx='247' cy='30' r='13'/%3E%3C/svg%3E") bottom right/contain no-repeat}
.hero h1{font-size:clamp(22px,2vw,28px);text-wrap:balance;line-height:1.55}
.hero .catch{letter-spacing:.14em;line-height:1.8}
.hero h1 .hero-h1-main{display:block;color:#fff;font-size:clamp(15px,4.3vw,24px);line-height:1.55}
.hero h1 .hero-h1-name{display:block;font-size:clamp(22px,2vw,30px);color:#ffd873;line-height:1.55}
.page-head{padding:29px 28px 31px;border-left:4px solid #89b9dd}
.page-head::after{width:33%;height:95%;opacity:.11}
.page-head h1{text-wrap:balance}.page-head .en{letter-spacing:.19em}
.svc-card,.svc-branch,.feat,.reason,.pillar,.stat,.photo-card,.work-card,.institution-card,.btn-contact,.hero-cta a,.quick-contact a{transition:transform .22s var(--civic-ease),box-shadow .22s var(--civic-ease),border-color .22s,background .22s}
.svc-branch{border-top:3px solid #b4cfdf}.svc-branch:nth-child(2n){border-top-color:#8fbfc3}.svc-branch-head .ico{border-radius:10px}.svc-item{background:#f8fafc}
.stat{position:relative;background:linear-gradient(145deg,#f5f9fd,#e8f1fa)}
.stat::after{content:"";position:absolute;right:8px;bottom:8px;width:13px;height:13px;border-right:1px solid #9bbcd4;border-bottom:1px solid #9bbcd4;pointer-events:none}
.stat .n{font-variant-numeric:tabular-nums;letter-spacing:-.025em}
.content a:not([class]),footer a{text-underline-offset:4px}table.info th{background:#edf4fa}.cta-band{border-top:3px solid #8db8d8}
.institution-links{max-width:1148px;margin:32px auto 0;padding:24px 10px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--navy);border-radius:var(--radius);box-shadow:var(--civic-shadow);color:var(--ink)}
.institution-links .sec-head{margin:0 0 14px}.institution-links h2{font-size:20px;color:var(--navy);line-height:1.5;margin:0 0 7px}
.institution-links .institution-intro{font-size:13px;color:var(--gray);line-height:1.8;margin:0 0 16px}
.institution-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.institution-card{display:block;position:relative;padding:17px 40px 17px 17px;color:var(--navy);border:1px solid #d8e3ec;border-radius:6px;background:#f9fbfd;text-decoration:none;min-width:0;overflow-wrap:anywhere}
.institution-kicker{display:block;font-size:10px;letter-spacing:.08em;color:#52728b;margin-bottom:5px}
.institution-card strong{display:block;font-size:14px;line-height:1.6;color:var(--navy)}
.institution-desc{display:block;margin-top:5px;font-size:12px;line-height:1.75;color:var(--gray)}
.institution-arrow{position:absolute;right:16px;top:16px;color:#477b9d}
.institution-links .institution-note{font-size:11.5px;line-height:1.8;margin:13px 0 0;color:#617384}
footer.site{border-top:4px solid #7da8c8}
.civic-progress{position:fixed;left:0;top:0;z-index:990;width:100%;height:3px;background:var(--blue-mid);transform:scaleX(0);transform-origin:left;pointer-events:none}
.civic-top{position:fixed;right:22px;bottom:24px;z-index:900;width:46px;height:46px;border:1px solid #b8cfdf;border-radius:10px;background:#fff;color:var(--navy);display:grid;place-items:center;box-shadow:0 4px 18px rgba(16,54,83,.14);cursor:pointer}
.civic-top[hidden]{display:none}.civic-top svg{width:21px;height:21px}
body.menu-open .civic-top,body.menu-open .civic-progress{visibility:hidden}
.yuyu-skip-link{position:fixed;top:10px;left:10px;z-index:1200;padding:12px 18px;background:#fff;color:var(--navy);border:2px solid var(--navy);border-radius:5px;transform:translateY(-180%)}
.yuyu-skip-link:focus{transform:translateY(0)}
@media(hover:hover){.svc-card:hover,.svc-branch:hover,.feat:hover,.reason:hover,.pillar:hover,.photo-card:hover,.work-card:hover{transform:translateY(-3px);border-color:#a3bfd5;box-shadow:0 9px 22px rgba(16,54,83,.085)}.btn-contact:hover,.hero-cta a:hover,.quick-contact a:hover{transform:translateY(-2px)}.institution-card:hover{background:#edf5fa;border-color:#9cbdd4;transform:translateY(-2px);text-decoration:none}.civic-top:hover{background:#e8f1fa}}
@media(max-width:1180px){.institution-links{margin-left:16px;margin-right:16px}}
@media(max-width:980px){header.site .wrap{padding-top:14px;padding-bottom:14px}}
@media(max-width:640px){.institution-links{padding:20px 2px}.institution-grid{grid-template-columns:minmax(0,1fr)}.institution-links h2{font-size:18px}.hero::after{width:57%;opacity:.11}.page-head{padding:25px 20px 27px}.civic-top{right:14px;bottom:18px;width:44px;height:44px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.svc-card,.svc-branch,.feat,.reason,.pillar,.stat,.photo-card,.work-card,.institution-card,.btn-contact,.hero-cta a,.quick-contact a{transition:none!important;transform:none!important}}
@media print{body{background:#fff}.civic-top,.civic-progress,.yuyu-skip-link{display:none!important}.hero,.page-head,.content,.institution-links{box-shadow:none}}
