/* Header: keep the full desktop menu only where it fits beside the logo. */
@media (min-width: 768px) and (max-width: 1279px) {
    .header-left { display: flex !important; align-items: center; }
    .header-center { margin: 0 auto 0 14px !important; }
    .header-right { display: flex !important; }
    .header-left .hamburger, .branch-btn { display: inline-flex !important; align-items: center; justify-content: center; min-width: 40px; min-height: 40px; }
    .hmenu-dropdown {
        top: 68px !important; left: 16px !important; right: auto !important;
        width: min(420px, calc(100vw - 32px)) !important;
        max-width: none !important; height: auto !important;
        max-height: calc(100dvh - 84px) !important;
        display: block !important; padding: 16px 20px 24px !important;
        background: #fff !important; border-radius: 0 0 16px 16px !important;
        box-shadow: 0 12px 32px rgba(3, 67, 139, .18) !important;
        overflow-y: auto !important; visibility: hidden;
        opacity: 0; transform: translateY(-8px) !important;
        pointer-events: none !important;
        transition: opacity .2s ease, transform .2s ease, visibility .2s !important;
    }
    .hmenu-dropdown.open {
        visibility: visible; opacity: 1;
        transform: translateY(0) !important; pointer-events: auto !important;
    }
    .hmenu-phone { display: flex !important; }
    .hmenu-list { display: block !important; height: auto !important; }
    .hmenu-list > li { display: block !important; height: auto !important; border-bottom: 1px solid #f0f0f0 !important; }
    .hmenu-list > li + li:not(.hmenu-tel)::before { display: none; }
    .hmenu-list > li > a {
        display: block !important; height: auto !important;
        padding: 13px 4px !important; font-size: 14px !important;
        white-space: normal; border-bottom: 0 !important;
    }
    .hmenu-parent {
        width: 100%; height: auto !important; justify-content: space-between;
        padding: 13px 4px !important; font-size: 14px !important;
        border-bottom: 0; white-space: normal;
    }
    .hmenu-sub {
        position: static !important; min-width: 0 !important;
        box-shadow: none !important; padding: 4px 0 10px 16px !important;
        border-radius: 0 !important;
    }
    .hmenu-list > li.hmenu-tel { display: none !important; }
    .admin-bar .hmenu-dropdown { top: 100px !important; max-height: calc(100dvh - 116px) !important; }
}

@media (min-width: 1280px) and (max-width: 1439px) {
    .header, .hmenu-dropdown { padding-left: 28px !important; padding-right: 28px !important; }
    .logo img { height: 46px !important; }
    .hmenu-list > li > a, .hmenu-parent { padding-left: 8px !important; padding-right: 8px !important; font-size: 13px !important; }
    .hmenu-tel { margin-left: 8px; padding-left: 8px; }
    .hmenu-tel-label { font-size: 12px; }
    .hmenu-tel-number { font-size: 14px; }
}

/* Intrinsic ratio matches the actual 699x461 image and avoids stretching. */
.about-image-wrapper img { aspect-ratio: 699 / 461; object-fit: cover; }
.hero { background: #113d69 url('../img/hero-poster.webp') center / cover no-repeat; }
