/* Shared dropdown navigation. Parent links and disclosure buttons work independently. */
.kv-site .kv-navigation { background: #000; }
.kv-navigation .kv-nav-root { max-width: 1000px; }
.kv-navigation .kv-nav-item { position: relative; display: block; min-width: 0; }
.kv-navigation .kv-nav-home { flex: 0 0 60px; }
.kv-nav-row { position: relative; display: flex; height: 60px; }
.kv-navigation .kv-nav-link { padding: 0 12px; font-weight: 700; font-size: 16px; }
.kv-navigation .kv-nav-parent .kv-nav-link { padding-right: 30px; }
.kv-navigation .kv-nav-item + .kv-nav-item > .kv-nav-row::before { content: ''; position: absolute; left: 0; top: 21px; height: 18px; border-left: 1px solid #777; z-index: 1; }
.kv-navigation li + li a::before { display: none; }
.kv-submenu-toggle { position: absolute; right: 2px; top: 10px; width: 28px; height: 40px; border: 0; background: transparent; color: white; cursor: pointer; }
.kv-submenu-toggle span { display: block; width: 7px; height: 7px; border-right: 1px solid; border-bottom: 1px solid; transform: rotate(45deg); margin: -4px auto 0; transition: transform .2s; }
.kv-submenu-toggle[aria-expanded=true] span { transform: translateY(4px) rotate(225deg); }
.kv-navigation .kv-submenu { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); display: grid; grid-template-columns: 1fr; width: 330px; max-width: calc(100vw - 40px); padding: 16px 0 0 !important; margin: 0 !important; background: transparent; filter: drop-shadow(0 8px 10px #0002); z-index: 2; max-height: calc(100dvh - var(--kv-header-height) - var(--kv-admin-height) - 20px); overflow-y: auto; overscroll-behavior: contain; }
.kv-navigation .kv-submenu[hidden] { display: none !important; }
.kv-navigation .kv-submenu-columns { grid-template-columns: repeat(2, minmax(0,1fr)); width: 400px; }
.kv-navigation .kv-submenu li { display: block; background: #fff; border-bottom: 1px solid #ddd; }
.kv-navigation .kv-submenu-columns li:nth-child(odd) { border-right: 1px solid #ddd; }
.kv-site .kv-navigation .kv-submenu a { display: flex; justify-content: flex-start; min-height: 50px; padding: 13px 18px; color: #293132 !important; font-size: 15px; font-weight: 400; line-height: 1.6; letter-spacing: .03em; border: 0; transition: color .2s, background-color .2s; }
.kv-navigation .kv-nav-link { transition: background-color .2s, color .2s; }
.kv-navigation .kv-nav-link { cursor: pointer; }
@media (min-width: 901px) { .kv-navigation .kv-nav-link:hover { background: transparent; } } /* PC: no hover colour, submenu opens on hover */
.kv-site .kv-navigation .kv-submenu a:hover, .kv-site .kv-navigation .kv-submenu a:focus-visible { color: #276d72 !important; background: #e9f5f5; }
.kv-submenu:not([hidden]) { animation: kv-menu-enter .18s ease-out; }
@keyframes kv-menu-enter { from { opacity: 0; margin-top: -5px; } to { opacity: 1; margin-top: 0; } }
.kv-header-address > div { gap: 7px; margin-top: 9px; }
.kv-header-address span { background: #fff; color: #293132; border: 1px solid #293132; padding: 1px 11px; }
@media (min-width: 901px) and (max-width: 1200px) {
    .kv-navigation .kv-nav-home { flex-basis: 60px; }
    .kv-navigation .kv-nav-link { font-size: 13px; padding-left: 6px; padding-right: 6px; }
    .kv-navigation .kv-submenu-columns { width: 410px; left: 0; transform: none; }
    .kv-header-address span { padding: 1px 5px; }
    .kv-header-inner { gap: 15px; }
}
@media (max-width: 900px) {
    .kv-site .kv-navigation { background: #fff; }
    .kv-navigation .kv-nav-row { height: auto; min-height: 60px; }
    .kv-navigation .kv-nav-link { justify-content: flex-start; padding: 14px 12px; }
    .kv-navigation .kv-nav-parent .kv-nav-link { padding-right: 60px; }
    .kv-navigation .kv-nav-parent .kv-nav-link::after { display: none; }
    .kv-navigation .kv-nav-home .kv-nav-link::after { content: 'ホーム'; margin-left: 12px; }
    .kv-navigation .kv-nav-item + .kv-nav-item > .kv-nav-row::before { display: none; }
    .kv-submenu-toggle { width: 48px; height: 48px; right: 0; top: 6px; color: #37787d; }
    .kv-navigation .kv-submenu { position: static; transform: none; width: 100%; max-width: none; max-height: none; overflow: visible; padding: 0 0 12px !important; filter: none; }
    .kv-navigation .kv-submenu-columns { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .kv-navigation .kv-submenu li { background: #f4f8f8; }
    .kv-site .kv-navigation .kv-submenu a { min-height: 56px; height: 100%; font-size: 13px; padding: 12px; }
    .kv-navigation .kv-submenu a::after { content: none; }
    .kv-navigation .kv-nav-link:hover, .kv-navigation .kv-nav-item.is-expanded > .kv-nav-row { background: #eef6f6; }
}
@media (max-width: 360px) { .kv-navigation .kv-submenu-columns { grid-template-columns: 1fr; } }
/* Mouse-operated PC: hide the disclosure arrow and center labels. Touch screens keep it to open menus; keyboard focus reveals it. */
@media (min-width: 901px) and (hover: hover) and (pointer: fine) {
    .kv-navigation .kv-nav-parent .kv-nav-link { padding-right: 12px; }
    .kv-submenu-toggle:not(:focus-visible) { clip-path: inset(50%); }
}
@media (min-width: 901px) and (max-width: 1200px) and (hover: hover) and (pointer: fine) {
    .kv-navigation .kv-nav-parent .kv-nav-link { padding-right: 6px; }
}
@media (prefers-reduced-motion: reduce) {
    .kv-submenu:not([hidden]) { animation: none; }
    .kv-submenu-toggle span, .kv-navigation a { transition: none !important; }
}
/* Header (design/トップページ.svg): logo on the left; address, phone cards and ENGLISH PAGE form one right-aligned group. */
@media (min-width: 901px) {
    .kv-header-inner { justify-content: flex-start; align-items: flex-end; gap: 23px; padding-top: 21px; padding-bottom: 28px; }
    .kv-logo { align-self: center; margin-right: auto; }
    .kv-header-address { font-size: 12px; font-weight: 700; line-height: 23px; letter-spacing: .1em; color: #293132; }
    .kv-header-address > p { display: flex; flex-wrap: wrap; column-gap: 17px; max-width: 400px; }
    .kv-site .kv-header-address > p > span { display: inline-flex; align-items: center; gap: 6px; padding: 0; border: 0; border-radius: 0; background: none; font-size: inherit; }
    .kv-header-address > p > span:first-child { flex-basis: 100%; }
    .kv-header-icon { width: auto !important; height: 15px !important; display: inline-block !important; }
    .kv-header-address > div { margin-top: 10px; gap: 7px; }
    .kv-header-address > div > span { padding: 0 15px; line-height: 20px; }
    .kv-header-contact > div { gap: 9px; }
    .kv-header-contact .kv-english { margin-bottom: 11px; }
}
@media (min-width: 901px) and (max-width: 1200px) {
    .kv-header-inner { gap: 15px; }
    .kv-header-address { font-size: 10px; letter-spacing: .05em; line-height: 20px; }
    .kv-header-address > div > span { padding: 0 6px; }
}
/* Wide screens (>1600px): header spreads to the screen edges like sasaki-seikei.clinic. The gutter shrinks from the design's 200px at 1600px to 60px at 1740px+, so there is no jump. */
@media (min-width: 1601px) {
    .kv-header-inner { max-width: none; padding-left: max(60px, calc(1800px - 100vw)); padding-right: max(60px, calc(1800px - 100vw)); }
}
