/* Shared navigation: aligned to the page grid, with grouped footer routes. */
.site-header{display:block;padding:0;background:#f6f5ef}
.site-header .header-inner{display:flex;align-items:center;gap:24px;height:100%}
.site-header .brand{min-height:44px}
.site-header .desktop-nav{display:flex;gap:4px;margin-left:auto}
.site-header .desktop-nav a{font-size:14px;min-height:44px;padding:9px 10px;border-radius:5px;transition:background .2s,color .2s}
.site-header .desktop-nav a:after{display:none}
.site-header .desktop-nav a:hover,.site-header .desktop-nav a[aria-current="page"]{background:#e8eedb;color:#36551e}
.site-header .header-cta{margin-left:0;min-height:48px;gap:14px;padding:12px 21px;font-size:13px}
.site-header .header-cta[aria-current="page"]{box-shadow:0 0 0 2px #d2ed6d}
.site-header .cta-label-short{display:none}
.site-header .menu-toggle{display:none;position:relative;width:48px;height:48px;padding:5px;flex:0 0 48px;align-items:center;justify-content:center;flex-direction:column;border-radius:5px}
.site-header .menu-toggle:after{display:none}
.site-header .menu-toggle>span{display:block;width:22px;height:2px;min-height:2px;margin:0;background:#263224}
.site-header .menu-toggle>span+span{margin-top:6px}
.site-header .menu-label{display:block;font-size:11px;line-height:1.2;letter-spacing:0;font-weight:600;margin-top:5px;background:none}
.site-header .menu-toggle:hover{background:#e8eedb}
.site-header .menu-toggle[aria-expanded="true"]>span:first-child{transform:translateY(4px) rotate(45deg)}
.site-header .menu-toggle[aria-expanded="true"]>span:nth-child(2){transform:translateY(-4px) rotate(-45deg)}
.mobile-menu{padding:20px 0 max(28px,env(safe-area-inset-bottom));overscroll-behavior:contain}
.mobile-menu-inner{max-width:900px}
.mobile-menu-label{font-size:13px;line-height:1.8;color:#647354;margin-bottom:12px}
.mobile-menu .mobile-menu-inner>a{font-size:20px;line-height:1.7;padding:18px 14px;min-height:64px;border-radius:3px}
.mobile-menu .mobile-menu-inner>a>span{font-size:23px;font-weight:400;color:#6b8450}
.mobile-menu .mobile-menu-inner>a[aria-current="page"]{background:#e8eedb;color:#36551e}
.mobile-menu .mobile-menu-inner>a:hover{background:#e8eedb}
.mobile-menu .mobile-menu-inner>.mobile-contact{margin-top:24px;background:#d2ed6d;border-radius:5px;padding-inline:20px}
.site-footer{padding-block:60px 24px;background:#eff1e8}
.site-footer .footer-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.78fr) minmax(0,1.05fr);gap:64px;padding-bottom:38px}
.site-footer .footer-brand-row{display:flex;align-items:center;justify-content:space-between;gap:22px}
.site-footer .footer-brand{min-width:0;min-height:44px}
.site-footer .back-top{width:44px;height:44px;min-width:44px;font-size:23px}
.site-footer .footer-tagline{font-size:15px;line-height:1.9;margin-top:24px}
.site-footer .footer-label{font-size:13px;line-height:1.8;font-weight:600;letter-spacing:.025em;color:#596b46;margin-bottom:14px}
.site-footer .footer-sitemap{display:block;padding:0;border:0}
.site-footer .footer-page-links{display:grid;gap:0}
.site-footer .footer-page-links a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding-block:8px;border-bottom:1px solid #d5ddc9;font-size:14px;line-height:1.7;font-weight:600}
.site-footer .footer-page-links a>span{font-size:18px;line-height:1;color:#657e45}
.site-footer .footer-page-links a:hover>span{transform:translateX(3px)}
.site-footer [aria-current="page"]{color:#36551e;text-decoration:underline;text-underline-offset:5px}
.site-footer .footer-operator{margin:0;font-size:14px;line-height:1.9;grid-column:auto;grid-row:auto}
.site-footer .footer-operator a{margin:0;padding:8px 0;border:0;min-height:44px}
.site-footer .footer-operator>.footer-label{font-size:13px;margin-bottom:14px;color:#596b46}
.site-footer .footer-operator .footer-contact{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#e0e9cf;border:1px solid #c8d5b6;border-radius:5px;padding:10px 16px;font-size:14px;font-weight:700;min-height:46px;color:#36551e}
.site-footer .footer-contact:hover{background:#d2ed6d}
.site-footer .footer-contact>span{font-size:20px;font-weight:400}
.site-footer .footer-company{margin-top:21px}
.site-footer .footer-company strong{display:block;font-size:14px;line-height:1.9;font-weight:600}
.site-footer .footer-company .footer-address{font-size:13px;line-height:1.9;color:#59634f;margin-top:8px}
.site-footer .footer-legal-links{display:flex;gap:6px 22px;flex-wrap:wrap;margin-top:10px}
.site-footer .footer-legal-links a{display:inline-flex;align-items:center;gap:8px;font-size:13px;line-height:1.8;font-weight:500}
.site-footer .footer-legal-links a>span{font-size:16px;color:#657e45}
.site-footer .footer-legal-links a:hover{text-decoration:underline;text-underline-offset:5px}
.site-footer .footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px 24px;flex-wrap:wrap;border-top:1px solid #ccd5bf;padding-top:21px;color:#59634f}
.site-footer .footer-bottom p{font-size:12px;line-height:1.8}
.site-footer .footer-bottom p+*{margin-left:0}
.site-footer .creation-credit{font-size:13px;width:auto;line-height:1.8;text-align:right}
@media(max-width:1199px){
 .site-header .desktop-nav{display:none}
 .site-header .header-cta{margin-left:auto}
 .site-header .menu-toggle{display:flex}
 .site-footer .footer-layout{gap:40px;grid-template-columns:minmax(0,1fr) minmax(0,.85fr) minmax(0,1.1fr)}
 .site-footer .footer-brand-row{gap:14px}
 .site-footer .footer-brand .brand-type{font-size:24px}
 .site-footer .footer-brand .brand-icon{width:36px;height:36px}
}
@media(max-width:1023px){
 .site-header .header-inner{gap:18px}
 .site-footer .footer-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px 48px}
 .site-footer .footer-intro{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:36px}
 .site-footer .footer-brand-row{min-width:255px}
 .site-footer .footer-tagline{margin-top:0}
}
@media(max-width:767px){
 .site-header .header-inner{gap:8px}
 .site-header .header-cta{font-size:13px;min-height:44px;padding:10px 12px;gap:0}
 .site-header .cta-label-long{display:none}
 .site-header .cta-label-short{display:inline}
 .site-header .header-cta .arrow{display:none}
 .site-header .menu-toggle{width:44px;height:48px;flex-basis:44px;padding-inline:0}
 .mobile-menu{padding-top:15px}
 .mobile-menu .mobile-menu-inner>a{font-size:18px;min-height:58px;padding:14px 12px}
 .mobile-menu .mobile-menu-inner>.mobile-contact{margin-top:21px}
 .site-footer{padding-block:40px 22px}
 .site-footer .footer-layout{grid-template-columns:minmax(0,1fr);gap:28px;padding-bottom:26px}
 .site-footer .footer-intro{display:block;grid-column:auto}
 .site-footer .footer-brand-row{min-width:0;gap:20px}
 .site-footer .footer-brand .brand-type{font-size:23px}
 .site-footer .footer-brand .brand-icon{width:36px;height:36px}
 .site-footer .footer-tagline{font-size:14px;line-height:1.9;margin-top:18px}
 .site-footer .footer-label{margin-bottom:10px}
 .site-footer .footer-page-links{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 22px}
 .site-footer .footer-page-links a{font-size:14px;gap:8px}
 .site-footer .footer-page-links a>span{font-size:16px}
 .site-footer .footer-operator{padding-top:24px;border-top:1px solid #ccd5bf}
 .site-footer .footer-company{margin-top:20px}
 .site-footer .footer-operator>.footer-label{margin-bottom:12px}
 .site-footer .footer-bottom{display:block;padding-top:17px}
 .site-footer .footer-bottom p{font-size:12px}
 .site-footer .creation-credit{display:inline-flex;margin-top:8px;text-align:left;font-size:13px}
}
@media(max-width:374px){
 .site-header .header-inner{gap:6px}
 .site-header .header-cta{padding-inline:10px}
 .site-footer .footer-page-links{column-gap:18px}
 .site-footer .footer-page-links a{font-size:13px}
 .site-footer .footer-brand .brand-type{font-size:22px}
}
@media(prefers-reduced-motion:reduce){
 .site-header a,.site-header button,.site-footer a,.site-footer a>span{transition:none!important;transform:none!important}
}
@media print{
 .site-footer{padding-block:20px}
 .site-footer .footer-layout{display:block;padding-bottom:0}
 .site-footer .footer-sitemap,.site-footer .footer-contact,.site-footer .footer-legal-links{display:none}
 .site-footer .footer-intro{display:block}
 .site-footer .footer-operator{margin-top:20px}
}
