:root{--navy:#062f52;--navy-deep:#042b4a;--blue:#1169ad;--ink:#142233;--line:#d9e1e8;--soft:#f7fafc;--max:1080px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"Noto Sans JP",sans-serif;color:var(--ink);background:#fff;line-height:1.8;overflow-x:hidden}a{color:inherit;text-decoration:none}.site-header{position:absolute;inset:0 0 auto 0;z-index:10;color:#fff;background:transparent}.announcement{margin:0;padding:.55rem 1rem;text-align:center;background:#d94a3a;color:#fff;font-weight:700;letter-spacing:.03em}.announcement:empty{display:none;padding:0}.header-inner{width:min(100% - 80px,1120px);margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:22px 0 0;gap:24px}.brand{font-weight:900;font-size:clamp(1.35rem,2.2vw,1.95rem);letter-spacing:.04em;text-shadow:0 2px 14px rgba(0,0,0,.32);line-height:1.2}.desktop-nav{display:flex;gap:34px;align-items:center;font-weight:700;font-size:.98rem;text-shadow:0 2px 10px rgba(0,0,0,.3)}.desktop-nav a{position:relative;padding:.25rem 0;line-height:1.4}.desktop-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:2px;background:#fff;transition:right .2s ease}.desktop-nav a:hover::after{right:0}.mobile-menu{display:none;position:relative}.mobile-menu summary{list-style:none;cursor:pointer;border:1px solid rgba(255,255,255,.9);border-radius:999px;padding:.42rem .9rem;font-weight:700;background:rgba(6,47,82,.34)}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu nav{position:absolute;right:0;top:calc(100% + 10px);width:min(76vw,260px);display:grid;background:rgba(6,47,82,.96);border:1px solid rgba(255,255,255,.25);border-radius:12px;overflow:hidden;box-shadow:0 15px 30px rgba(0,0,0,.25)}.mobile-menu nav a{padding:.85rem 1rem;border-bottom:1px solid rgba(255,255,255,.12);font-weight:700}.mobile-menu nav a:last-child{border-bottom:0}@media (max-width:900px){.desktop-nav{display:none}.mobile-menu{display:block}.header-inner,.hero-content{width:min(100% - 36px,1120px)}}@media (max-width:600px){.header-inner{width:min(100% - 28px,1120px);padding-top:18px}.brand{font-size:1.3rem}}