@charset "UTF-8";
/* Shared visitor header and footer. Forms and public URLs remain native. */
.site-header { background: #fff; border-bottom: 1px solid #e6ecf5; }
.header-inner {
    display: grid;
    grid-template-columns: 168px minmax(160px, 1fr) auto;
    align-items: center;
    gap: 28px;
    padding-block: 18px;
}
.site-header .brand-logo { width: 168px; min-height: 46px; }
.site-header .brand-logo img { width: 100%; height: auto; max-height: 64px; object-fit: contain; }
.header-search { width: 100%; max-width: 520px; min-width: 0; margin: 0 auto; order: initial; }
.header-search input { min-height: 48px; background: #f5f7fb; border-color: #e3e9f2; border-radius: 12px; padding-right: 52px; }
.header-search input:focus { border-color: #1848cb; background: #fff; }
.header-search button { right: 3px; border-radius: 9px; }
.primary-nav { width: auto; display: flex; flex-wrap: nowrap; gap: 4px; margin: 0; order: initial; justify-content: flex-start; }
.primary-nav a { min-height: 44px; padding: 10px 12px; border: 0; border-radius: 10px; color: #4b5d75; font-size: 14px; font-weight: 700; white-space: nowrap; }
.primary-nav a:hover { color: #1644c0; background: #f3f6fd; }
.primary-nav a[aria-current] { color: #1745bf; background: #edf3ff; border: 0; }
.site-footer { background: #f7f9fc; border-top: 1px solid #e3eaf5; }
.footer-inner { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr); gap: 40px; padding-block: 36px; align-items: start; }
.footer-logo { width: 158px; }
.footer-inner .footer-description { font-size: 14px; line-height: 1.7; color: #4f627d; }
.footer-links { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.footer-links a { min-height: 44px; display: inline-flex; align-items: center; line-height: 1.5; padding-block: 6px; font-size: 14px; }
.footer-inner .footer-note { color: #4f627d; font-size: 13px; line-height: 1.8; }
.footer-bottom { color: #53647c; border-top-color: #e1e8f2; font-size: 12px; padding-block: 18px; }
@media (max-width: 1100px) {
    .header-inner { grid-template-columns: 144px minmax(130px, 1fr) auto; gap: 18px; }
    .site-header .brand-logo { width: 144px; }
    .primary-nav a { padding-inline: 9px; font-size: 13px; }
}
@media (max-width: 760px) {
    .header-inner { grid-template-columns: 128px minmax(0, 1fr); column-gap: 18px; row-gap: 10px; padding-block: 12px 10px; }
    .site-header .brand-logo { width: 128px; min-height: 44px; }
    .header-search { grid-column: 2; grid-row: 1; width: 100%; min-width: 0; max-width: none; margin: 0; flex: initial; }
    .header-search input { min-height: 44px; height: 44px; padding: 10px 44px 10px 12px; font-size: 16px; border-radius: 10px; }
    .header-search button { width: 44px; height: 44px; right: 0; }
    .header-search svg { width: 20px; height: 20px; }
    .primary-nav { grid-column: 1 / -1; grid-row: 2; width: 100%; margin: 0; gap: 4px; justify-content: flex-start; flex-wrap: nowrap; }
    .primary-nav a { padding: 9px 13px; font-size: 13px; min-height: 44px; }
    .footer-inner { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 24px; padding-block: 30px; }
    .footer-note { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
    .header-inner { grid-template-columns: 112px minmax(0,1fr); gap: 8px 14px; }
    .site-header .brand-logo { width: 112px; }
    .primary-nav a { padding-inline: 12px; }
    .footer-inner { grid-template-columns: minmax(0,1fr); gap: 24px; padding-block: 28px; }
    .footer-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); width: 100%; column-gap: 16px; row-gap: 0; }
    .footer-links a { min-width: 0; overflow-wrap: anywhere; font-size: 13px; }
    .footer-note { grid-column: 1; }
    .footer-logo { width: 144px; }
}
@media (max-width: 360px) {
    .header-inner { grid-template-columns: 104px minmax(0,1fr); column-gap: 10px; }
    .site-header .brand-logo { width: 104px; }
    .primary-nav { gap: 2px; }
    .primary-nav a { padding-inline: 6px; font-size: 12px; }
}
