/* base styles */
:root { --navy:#0a1f3d; --teal-deep:#0f3d4d; --teal:#15808a; --lime:#7dba3b; --lime-soft:#b6d98a; --mist:#e6e9ed; --ink:var(--navy); --muted:#526275; --brand:var(--teal); --brand-dark:var(--teal-deep); --action:var(--navy); --action-hover:var(--teal-deep); --soft:#f1f7f6; --line:#d9e1e6; --surface:#fff; --page:#f5f7f8; --content:72rem; --radius:.75rem; }

* { box-sizing:border-box; }

html { scroll-behavior:smooth; }

body { margin:0; background:var(--page); color:var(--ink); font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; font-size:16px; font-weight:500; line-height:1.75; text-align:justify; text-justify:inter-character; }

body.home { font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; }

a { color:var(--brand-dark); text-underline-offset:.16em; }

a:hover { color:var(--brand); }

a:focus-visible, button:focus-visible { outline:3px solid var(--lime); outline-offset:3px; }

img { height:auto; max-width:100%; }

.screen-reader-text { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

.screen-reader-text:focus { position:fixed; top:1rem; left:1rem; z-index:100; width:auto; height:auto; margin:0; padding:.6rem .9rem; clip:auto; background:#fff; color:#000; }

.site-header { background:linear-gradient(180deg,#fff 0%,#fff 82%,#f7faf9 100%); border-bottom:1px solid var(--line); box-shadow:0 6px 18px rgba(10,31,61,.05); }

.mobile-navigation-enabled body { padding-top:var(--site-header-height,213px); }

.mobile-navigation-enabled .site-header { position:fixed; z-index:100; top:0; right:0; left:0; }

/* Keep the home header in flow so initial navigation setup cannot move the content. */
.mobile-navigation-enabled body.home { padding-top:0; }

.mobile-navigation-enabled body.home .site-header { position:sticky; }

.mobile-navigation-enabled .admin-bar .site-header { top:32px; }

.header-inner, .site-main, .footer-inner { width:min(calc(100% - 2rem), var(--content)); margin:0 auto; }

.header-inner { padding:0; }

.site-branding { display:flex; align-items:center; justify-content:space-between; gap:clamp(1rem,4vw,4rem); min-width:0; min-height:120px; padding:.9rem 0; }

.brand-copy { display:block; width:min(34rem,50vw); min-width:0; color:var(--navy); text-align:left; text-decoration:none; }

.brand-copy:hover { color:var(--navy); }

.brand-main-title { width:100%; margin:0; padding:0 0 .32rem; border-bottom:1px solid var(--teal); color:var(--navy); font-size:clamp(1.05rem,1.9vw,1.35rem); font-weight:800; letter-spacing:.04em; line-height:1.45; text-align:left; }

.brand-tagline { margin:.32rem 0 0; color:var(--teal); font-size:clamp(.72rem,1.4vw,.9rem); font-weight:650; letter-spacing:.04em; line-height:1.5; text-align:left; }

.header-search { width:min(28rem,42vw); }

.header-search--mobile { display:none; }

.search-form { display:flex; align-items:stretch; width:100%; height:2.85rem; }

.search-form label { display:flex; flex:1; min-width:0; height:100%; }

.search-form input { display:block; width:100%; height:100%; padding:.55rem .8rem; border:1px solid #93a1ae; border-right:0; border-radius:.4rem 0 0 .4rem; background:#fff; color:var(--ink); font:inherit; appearance:none; }

.search-form input:focus-visible { position:relative; z-index:1; outline:3px solid var(--lime); outline-offset:-3px; }

.search-form button { display:block; min-width:4.5rem; height:100%; padding:.55rem .9rem; border:1px solid var(--teal-deep); border-radius:0 .4rem .4rem 0; background:var(--teal-deep); color:#fff; font:inherit; font-weight:750; cursor:pointer; appearance:none; }

.search-form button:hover, .search-form button:focus-visible { background:var(--teal); }

.mobile-menu-toggle { display:none; }

.primary-navigation { display:grid; gap:.42rem; padding:.7rem 0 1rem; border-top:1px solid var(--line); }

.primary-menu { display:flex; flex-wrap:wrap; gap:.42rem .6rem; align-items:center; justify-content:center; list-style:none; padding:0; margin:0; text-align:left; }

.primary-menu .menu-item { flex:0 0 11rem; }

.primary-menu a { display:block; width:100%; min-width:0; padding:.38rem .8rem; border:1px solid #bfd4d6; border-radius:.35rem; background:#fff; color:var(--ink); font-size:.88rem; font-weight:750; line-height:1.4; text-align:center; text-decoration:none; transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease; }

.primary-menu a:hover, .primary-menu a:focus-visible { border-color:var(--teal); background:var(--teal); color:#fff; transform:translateY(-1px); }

.footer-menu { display:flex; flex-wrap:wrap; gap:.25rem 1.25rem; align-items:center; list-style:none; padding:0; margin:0; text-align:left; }

.footer-menu a { display:block; padding:.35rem 0; color:var(--ink); font-weight:650; text-decoration:none; }

.site-main { padding:3rem 0 4rem; }

.site-footer { border-top:1px solid var(--line); background:#fff; color:var(--muted); }

.footer-inner { padding:2rem 0; }

.footer-menu { margin-bottom:1rem; }

.site-info { font-size:.85rem; }
