/* 共通ヘッダー。末尾では共通主要メニューのフッター配置だけを整える。 */
.shared-header { --color-brand:#345d48; color:#303c37; font-size:16px; line-height:1.95; padding:25px 0; }
.shared-header .home-wrap { width:min(1200px,calc(100% - 80px)); margin-inline:auto; }
.shared-header .header-row { display:flex; flex-direction:row; flex-wrap:nowrap; align-items:center; justify-content:space-between; gap:30px; }
.shared-header .home-brand { display:inline-block; flex-shrink:0; max-width:100%; font-size:25px; font-weight:700; text-decoration:none; color:#304c3c; white-space:nowrap; }
.shared-header .home-brand .home-logo { display:block; width:260px; max-width:100%; height:auto; }
.shared-header .home-brand span { display:block; font-size:12px; font-weight:400; letter-spacing:.07em; }
.shared-header nav { display:flex; flex-wrap:nowrap; justify-content:flex-end; gap:12px 22px; align-items:center; font-size:14px; }
.shared-header nav a { color:inherit; text-decoration:none; white-space:nowrap; }
.shared-header .nav-contact { background:#edf2ed; padding:8px 16px; border-radius:3px; }
@media(max-width:1200px) {
 .shared-header .header-row { flex-wrap:wrap; gap:18px; }
 .shared-header nav { flex-basis:100%; flex-wrap:wrap; justify-content:flex-start; }
}
@media(max-width:1050px) {
 .shared-header .home-wrap { width:calc(100% - 64px); }
}
@media(max-width:700px) {
 .shared-header { padding:20px 0; }
 .shared-header .home-wrap { width:calc(100% - 40px); }
 .shared-header nav { gap:8px 16px; font-size:13px; }
 .shared-header .home-brand { font-size:24px; }
 .shared-header .home-brand .home-logo { width:230px; }
}

.shared-header a:focus-visible { outline:3px solid #345d48; outline-offset:4px; }

@media(max-width:700px) {
 :is(.home-footer,.site-footer) nav[aria-label="フッターナビゲーション"] { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 20px; width:100%; min-width:0; }
 :is(.home-footer,.site-footer) nav[aria-label="フッターナビゲーション"] a { display:flex; align-items:center; min-height:44px; padding-block:8px; overflow-wrap:anywhere; }
}
