/* =========================================================RYU-TEC 共通パーツCSS 再整理版対象：ヘッダー / SPメニュー / CONTACT / フッターのみ方針：重複上書きなし・1系統で管理========================================================= */

body .entry-content .rt-top,body .site-content .rt-top,body .ast-container .rt-top,body .rt-top {width: 100vw !important;max-width: 100vw !important;margin-left: calc(50% - 50vw) !important;margin-right: calc(50% - 50vw) !important;margin-top: 0 !important;margin-bottom: 0 !important;padding: 0 !important;overflow-x: clip !important;overflow-y: visible !important;background: #ffffff !important;color: #333333 !important;font-family: "Noto Sans JP", "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif !important;--rt-blue: #006bd6;--rt-sky: #1db8e8;--rt-navy: #003b78;--rt-line: #d9e5f2;--rt-inner-max: 1280px;--rt-side: clamp(42px, 10vw, 220px);--rt-inner: min(calc(100vw - var(--rt-side) * 2), var(--rt-inner-max));--rt-header-h: clamp(86px, 5.4vw, 104px);--rt-header-side: clamp(54px, 6.4vw, 128px);--rt-header-inner: min(calc(100vw - var(--rt-header-side) * 2), 1680px);}

body .rt-top,body .rt-top * {box-sizing: border-box !important;}

body .rt-top img {display: block !important;max-width: 100% !important;border: 0 !important;}

body .rt-top a {color: inherit !important;text-decoration: none !important;}

/* =========================================================Header / Navigation========================================================= */body .rt-top .rt-header {position: sticky !important;top: 0 !important;z-index: 9999 !important;width: 100% !important;height: var(--rt-header-h) !important;margin: 0 !important;padding: 0 !important;background: #ffffff !important;border: 0 !important;box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08) !important;}

body.admin-bar .rt-top .rt-header {top: 32px !important;}

body .rt-top .rt-header__inner,body .rt-top .rt-inner--header {width: var(--rt-header-inner) !important;max-width: 1680px !important;height: 100% !important;margin-left: auto !important;margin-right: auto !important;display: flex !important;align-items: center !important;justify-content: space-between !important;gap: 24px !important;}

body .rt-top .rt-header__logo {width: clamp(190px, 12vw, 250px) !important;max-width: 250px !important;flex: 0 0 auto !important;display: block !important;}

body .rt-top .rt-header__logo img {width: 100% !important;height: auto !important;}

body .rt-top .rt-header__nav {display: flex !important;align-items: center !important;justify-content: flex-end !important;gap: clamp(16px, 1.35vw, 28px) !important;color: #333333 !important;font-size: clamp(12px, 0.72vw, 14px) !important;line-height: 1 !important;font-weight: 700 !important;letter-spacing: 0.02em !important;white-space: nowrap !important;}

body .rt-top .rt-menu-btn {display: none !important;width: 44px !important;height: 34px !important;margin: 0 !important;padding: 0 !important;border: 0 !important;border-radius: 0 !important;background: transparent !important;background-color: transparent !important;background-image: none !important;box-shadow: none !important;outline: 0 !important;filter: none !important;cursor: pointer !important;-webkit-appearance: none !important;appearance: none !important;-webkit-tap-highlight-color: transparent !important;}

body .rt-top .rt-menu-close {display: none !important;}

body .rt-top .rt-menu-btn:not(.rt-menu-close) span {display: block !important;width: 100% !important;height: 2px !important;margin: 8px 0 !important;padding: 0 !important;background: #333333 !important;background-image: none !important;border: 0 !important;border-radius: 0 !important;box-shadow: none !important;outline: 0 !important;filter: none !important;}

body .rt-top .rt-header__contact,body .rt-top .rt-header__nav a.rt-header__contact {width: clamp(138px, 8.4vw, 168px) !important;height: clamp(48px, 3.5vw, 58px) !important;display: inline-flex !important;align-items: center !important;justify-content: center !important;position: relative !important;overflow: hidden !important;isolation: isolate !important;background: #ffffff !important;color: var(--rt-blue) !important;font-size: clamp(14px, 0.9vw, 17px) !important;font-weight: 700 !important;letter-spacing: 0.04em !important;line-height: 1 !important;border: 1px solid var(--rt-blue) !important;border-radius: 0 !important;box-shadow: none !important;transform: none !important;filter: none !important;transition: color 0.5s ease, border-color 0.5s ease !important;}

body .rt-top .rt-header__contact::before,body .rt-top .rt-header__nav a.rt-header__contact::before {content: "" !important;position: absolute !important;left: 0 !important;top: 0 !important;width: 100% !important;height: 100% !important;z-index: -1 !important;background: linear-gradient(90deg, var(--rt-blue) 0%, var(--rt-sky) 100%) !important;transform: scaleX(0) !important;transform-origin: right center !important;transition: transform 0.5s ease !important;}

body .rt-top .rt-header__contact:hover,body .rt-top .rt-header__contact:focus-visible,body .rt-top .rt-header__nav a.rt-header__contact:hover,body .rt-top .rt-header__nav a.rt-header__contact:focus-visible {color: #ffffff !important;border-color: transparent !important;box-shadow: none !important;transform: none !important;filter: none !important;}

body .rt-top .rt-header__contact:hover::before,body .rt-top .rt-header__contact:focus-visible::before,body .rt-top .rt-header__nav a.rt-header__contact:hover::before,body .rt-top .rt-header__nav a.rt-header__contact:focus-visible::before {transform: scaleX(1) !important;transform-origin: left center !important;}

@media (min-width: 961px) {body .rt-top .rt-header,body .rt-top .rt-header__inner,body .rt-top .rt-header__nav {overflow: visible !important;}

body .rt-top .rt-header__nav .rt-sp-menu-head,body .rt-top .rt-header__nav .rt-sp-menu-brand {display: none !important;}

body .rt-top .rt-menu-close,body .rt-top .rt-menu-close:hover,body .rt-top .rt-menu-close:focus,body .rt-top .rt-menu-close:focus-visible,body .rt-top .rt-menu-close:active,body .rt-top .rt-menu-close span {display: none !important;}

body .rt-top .rt-header__nav-item {position: relative !important;display: flex !important;align-items: center !important;height: 100% !important;flex: 0 0 auto !important;}

body .rt-top .rt-header__nav-item--has-child {position: static !important;}

body .rt-top .rt-header__nav-link {position: relative !important;display: inline-flex !important;align-items: center !important;height: 100% !important;padding: 0 !important;border: 0 !important;color: #333333 !important;background: transparent !important;font-size: inherit !important;line-height: 1 !important;font-weight: 700 !important;letter-spacing: inherit !important;white-space: nowrap !important;}

body .rt-top .rt-header__nav-link::before {content: "" !important;position: absolute !important;left: 0 !important;right: 0 !important;bottom: calc(50% - 22px) !important;height: 2px !important;background: var(--rt-blue) !important;transform: scaleX(0) !important;transform-origin: left center !important;transition: transform 0.22s ease !important;}

body .rt-top .rt-header__nav-item--has-child.is-mega-open > .rt-header__nav-link,body .rt-top .rt-header__nav-item--has-child.is-mega-current > .rt-header__nav-link {color: var(--rt-blue) !important;}

body .rt-top .rt-header__nav-item--has-child.is-mega-open > .rt-header__nav-link::before,body .rt-top .rt-header__nav-item--has-child.is-mega-current > .rt-header__nav-link::before {transform: scaleX(1) !important;}

body .rt-top .rt-header__nav-item--has-child > .rt-header__nav-link::after {content: "" !important;width: 6px !important;height: 6px !important;margin-left: 8px !important;border-right: 1px solid currentColor !important;border-bottom: 1px solid currentColor !important;transform: translateY(-2px) rotate(45deg) !important;transition: transform 0.22s ease !important;flex: 0 0 auto !important;}

body .rt-top .rt-header__nav-item--has-child.is-mega-open > .rt-header__nav-link::after,body .rt-top .rt-header__nav-item--has-child.is-mega-current > .rt-header__nav-link::after {transform: translateY(1px) rotate(225deg) !important;}

body .rt-top .rt-header__dropdown {position: absolute !important;left: 50% !important;top: 100% !important;z-index: 10000 !important;width: 100vw !important;min-width: 100vw !important;max-width: 100vw !important;padding: 42px max(72px, calc((100vw - 1280px) / 2)) !important;display: flex !important;align-items: center !important;justify-content: center !important;gap: clamp(72px, 9vw, 150px) !important;margin: 0 !important;background: #ffffff !important;border-top: 1px solid rgba(0, 107, 214, 0.16) !important;box-shadow: 0 18px 42px rgba(0, 39, 84, 0.10) !important;transform: translate(-50%, 0) !important;opacity: 0 !important;visibility: hidden !important;pointer-events: none !important;transition: opacity 0.18s ease, visibility 0.18s ease !important;}

body .rt-top .rt-header__dropdown::before {content: "" !important;position: absolute !important;left: 0 !important;right: 0 !important;top: -32px !important;height: 32px !important;background: transparent !important;}

body .rt-top .rt-header__nav-item--has-child.is-mega-open .rt-header__dropdown,body .rt-top .rt-header__nav-item--has-child.is-mega-current .rt-header__dropdown {opacity: 1 !important;visibility: visible !important;pointer-events: auto !important;}

body .rt-top .rt-header__dropdown a {position: relative !important;display: flex !important;align-items: center !important;justify-content: flex-start !important;min-width: 150px !important;padding: 0 28px 0 0 !important;margin: 0 !important;border: 0 !important;background: transparent !important;color: #222222 !important;font-size: 15px !important;line-height: 1.5 !important;font-weight: 700 !important;letter-spacing: 0.04em !important;white-space: nowrap !important;}

body .rt-top .rt-header__dropdown a::after {content: "" !important;position: absolute !important;right: 0 !important;top: 50% !important;width: 7px !important;height: 7px !important;border-top: 1px solid var(--rt-blue) !important;border-right: 1px solid var(--rt-blue) !important;transform: translateY(-50%) rotate(45deg) !important;transition: transform 0.28s ease !important;}

body .rt-top .rt-header__dropdown a:hover::after,body .rt-top .rt-header__dropdown a:focus-visible::after {transform: translate(6px, -50%) rotate(45deg) !important;}}
@media (max-width: 960px) {
  body .rt-top .rt-header {
    height: 76px !important;
  }

  body .rt-top .rt-header__inner,
  body .rt-top .rt-inner--header {
    width: calc(100vw - 40px) !important;
    max-width: none !important;
    gap: 18px !important;
  }

  body .rt-top .rt-header__logo {
    width: 188px !important;
    max-width: 188px !important;
  }

  body .rt-top .rt-menu-btn:not(.rt-menu-close),
  body .rt-top .rt-menu-btn:not(.rt-menu-close):hover,
  body .rt-top .rt-menu-btn:not(.rt-menu-close):focus,
  body .rt-top .rt-menu-btn:not(.rt-menu-close):focus-visible,
  body .rt-top .rt-menu-btn:not(.rt-menu-close):active {
    all: unset !important;
    box-sizing: border-box !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    display: block !important;
    flex: 0 0 auto !important;
    width: 44px !important;
    height: 34px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    -webkit-border-radius: 0 !important;
    box-shadow: none !important;
    -webkit-box-shadow: none !important;
    outline: 0 !important;
    outline-offset: 0 !important;
    filter: none !important;
    -webkit-filter: none !important;
    text-shadow: none !important;
    transform: none !important;
    opacity: 1 !important;
    cursor: pointer !important;
    -webkit-tap-highlight-color: transparent !important;
    -webkit-touch-callout: none !important;
    -webkit-user-select: none !important;
    user-select: none !important;
    touch-action: manipulation !important;
  }

  body .rt-top .rt-menu-btn:not(.rt-menu-close)::before,
  body .rt-top .rt-menu-btn:not(.rt-menu-close)::after {
    content: none !important;
    display: none !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    -webkit-border-radius: 0 !important;
    box-shadow: none !important;
    -webkit-box-shadow: none !important;
    outline: 0 !important;
    filter: none !important;
    -webkit-filter: none !important;
  }

  body .rt-top .rt-menu-btn:not(.rt-menu-close) span {
    all: unset !important;
    box-sizing: border-box !important;
    display: block !important;
    width: 100% !important;
    height: 2px !important;
    margin: 8px 0 !important;
    padding: 0 !important;
    background: #333333 !important;
    background-color: #333333 !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    -webkit-border-radius: 0 !important;
    box-shadow: none !important;
    -webkit-box-shadow: none !important;
    outline: 0 !important;
    filter: none !important;
    -webkit-filter: none !important;
    text-shadow: none !important;
  }

  body .rt-top .rt-menu-btn:not(.rt-menu-close) span::before,
  body .rt-top .rt-menu-btn:not(.rt-menu-close) span::after {
    content: none !important;
    display: none !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    -webkit-border-radius: 0 !important;
    box-shadow: none !important;
    -webkit-box-shadow: none !important;
    outline: 0 !important;
    filter: none !important;
    -webkit-filter: none !important;
    text-shadow: none !important;
  }

  body .rt-top .rt-header__nav {
    position: fixed !important;
    inset: 0 !important;
    z-index: 10000 !important;
    width: 100vw !important;
    height: 100dvh !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 24px 34px !important;
    display: none !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    overflow-y: auto !important;
    background: #ffffff !important;
    color: #333333 !important;
    font-size: 15px !important;
    line-height: 1.5 !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
    white-space: normal !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
    transition: none !important;
  }

  body .rt-top.is-menu-open .rt-header__nav {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
  }

  body .rt-top .rt-sp-menu-head {
    position: relative !important;
    min-height: 76px !important;
    margin: 0 -4px 10px !important;
    padding: 0 72px 0 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 18px !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08) !important;
  }

  body .rt-top .rt-sp-menu-head__logo {
    width: 188px !important;
    max-width: 188px !important;
    display: block !important;
  }

  body .rt-top .rt-menu-close,
  body .rt-top .rt-menu-close:hover,
  body .rt-top .rt-menu-close:focus,
  body .rt-top .rt-menu-close:focus-visible,
  body .rt-top .rt-menu-close:active {
    -webkit-appearance: none !important;
    appearance: none !important;
    position: fixed !important;
    top: 20px !important;
    right: 20px !important;
    z-index: 10050 !important;
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: none !important;
    align-items: center !important;
    justify-content: center !important;
    color: var(--rt-blue) !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: 0 !important;
    text-decoration: none !important;
    text-shadow: none !important;
    filter: none !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    cursor: pointer !important;
    -webkit-tap-highlight-color: transparent !important;
  }

  body .rt-top.is-menu-open .rt-menu-close,
  body .rt-top.is-menu-open .rt-menu-close:hover,
  body .rt-top.is-menu-open .rt-menu-close:focus,
  body .rt-top.is-menu-open .rt-menu-close:focus-visible,
  body .rt-top.is-menu-open .rt-menu-close:active {
    display: inline-flex !important;
  }

  body .rt-top .rt-menu-close::before,
  body .rt-top .rt-menu-close::after,
  body .rt-top .rt-menu-close span::before,
  body .rt-top .rt-menu-close span::after {
    content: none !important;
    display: none !important;
  }

  body .rt-top .rt-menu-close span {
    display: block !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    color: var(--rt-blue) !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    font-size: 20px !important;
    line-height: 1 !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
  }

  body .rt-top .rt-header__nav-item {
    width: 100% !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.10) !important;
  }

  body .rt-top .rt-header__nav-link {
    position: relative !important;
    width: 100% !important;
    min-height: 58px !important;
    padding: 0 30px 0 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    color: #333333 !important;
    background: transparent !important;
    border: 0 !important;
    font-size: 15px !important;
    line-height: 1.5 !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
  }

  body .rt-top .rt-header__nav-item--has-child > .rt-header__nav-link::after {
    content: "" !important;
    position: absolute !important;
    right: 4px !important;
    top: 50% !important;
    width: 8px !important;
    height: 8px !important;
    border-right: 1.5px solid currentColor !important;
    border-bottom: 1.5px solid currentColor !important;
    transform: translateY(-65%) rotate(45deg) !important;
    transition: transform 0.24s ease !important;
  }

  body .rt-top .rt-header__nav-item--has-child.is-open > .rt-header__nav-link::after {
    transform: translateY(-30%) rotate(225deg) !important;
  }

  body .rt-top .rt-header__dropdown {
    position: static !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    overflow: hidden !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
    transition: max-height 0.28s ease !important;
  }

  body .rt-top .rt-header__nav-item--has-child.is-open .rt-header__dropdown {
    max-height: 240px !important;
    padding: 0 0 12px !important;
  }

  body .rt-top .rt-header__dropdown::before {
    content: none !important;
  }

  body .rt-top .rt-header__dropdown a {
    position: relative !important;
    min-width: 0 !important;
    min-height: 42px !important;
    padding: 0 24px 0 18px !important;
    display: flex !important;
    align-items: center !important;
    color: #333333 !important;
    background: transparent !important;
    border: 0 !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
    font-weight: 600 !important;
    letter-spacing: 0.04em !important;
  }

  body .rt-top .rt-header__dropdown a::after {
    content: "" !important;
    position: absolute !important;
    right: 6px !important;
    top: 50% !important;
    width: 6px !important;
    height: 6px !important;
    border-top: 1px solid var(--rt-blue) !important;
    border-right: 1px solid var(--rt-blue) !important;
    transform: translateY(-50%) rotate(45deg) !important;
  }

  body .rt-top .rt-header__contact,
  body .rt-top .rt-header__nav a.rt-header__contact {
    width: 100% !important;
    height: 56px !important;
    min-height: 56px !important;
    margin: 24px 0 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: var(--rt-blue) !important;
    background: #ffffff !important;
    border: 1px solid var(--rt-blue) !important;
    font-size: 15px !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em !important;
  }

  body .rt-top .rt-sp-menu-brand {
    margin-top: auto !important;
    padding-top: 34px !important;
    display: block !important;
    text-align: left !important;
  }

  body .rt-top .rt-sp-menu-brand img {
    width: 180px !important;
    max-width: 180px !important;
    height: auto !important;
    margin: 0 0 14px !important;
  }

  body .rt-top .rt-sp-menu-brand p {
    margin: 0 !important;
    color: #666666 !important;
    font-size: 12px !important;
    line-height: 1.8 !important;
    font-weight: 500 !important;
    letter-spacing: 0.06em !important;
  }
}

@media (max-width: 640px) {
  body .rt-top .rt-header {
    height: 68px !important;
  }

  body .rt-top .rt-header__inner,
  body .rt-top .rt-inner--header {
    width: calc(100vw - 32px) !important;
  }

  body .rt-top .rt-header__logo,
  body .rt-top .rt-sp-menu-head__logo {
    width: 165px !important;
    max-width: 165px !important;
  }

  body .rt-top .rt-header__nav {
    padding: 0 20px 30px !important;
  }

  body .rt-top .rt-sp-menu-head {
    min-height: 68px !important;
  }

  body .rt-top .rt-header__nav-link {
    min-height: 56px !important;
    font-size: 14px !important;
  }
}
