/* 共通部品。旧HTMLのクラスを保ち、重複したライブラリ依存を取り除く。 */
[hidden] { display: none !important; }
main { display: block; }
button { font: inherit; cursor: pointer; }
button:focus-visible, a:focus-visible, select:focus-visible, input:focus-visible, textarea:focus-visible {
    outline: 3px solid #006a96;
    outline-offset: 4px;
}
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.screen-reader-text:focus { position: fixed; top: 1rem; left: 1rem; z-index: 10001; width: auto; height: auto; padding: 1rem; margin: 0; clip-path: none; background: #fff; color: #111; }
.logo { margin: 0; line-height: 1; }
.logo img { display: block; width: 100%; height: auto; max-width: 450px; }
.jc-mobile-header { display: none; }
.jc-noscript-nav { padding: 7rem 1.5rem 1.5rem; background: #fff; }
.jc-noscript-nav ul { display: flex; flex-wrap: wrap; gap: 1rem 2rem; list-style: none; }
.jc-submenu-toggle { border: 0; padding: 0; background: transparent; color: #000; font-weight: 700; font-family: 'Renner*', sans-serif; }
.jc-has-submenu:focus-within .megamenu, .jc-has-submenu.is-open .megamenu { max-height: 9999px; opacity: 1; padding: 20px 0; }
.megamenu-inner { flex-wrap: wrap; }
#nav-open { position: relative; border: 0; padding: 0; background: transparent; flex: 0 0 30px; }
#nav-open span { top: 2px; left: 0; }
#nav-open.active span::before, #nav-open.active span::after { background: #fff; }
body.oitajc-menu-open { overflow: hidden; }
/* 見出し：横移動による一時的な横スクロールを防ぎ、フェード表示へ変更する。 */
@keyframes oitajc-fade-in { from { opacity: 0; } to { opacity: 1; } }
.gnav, .page_header_inner h2, .single_header_inner h2, p.single_date { animation-name: oitajc-fade-in; }
#nav-content.open { overflow-y: auto; }
.fadein { opacity: 1; transform: none; }
.oitajc-motion .fadein { opacity: 0; transform: translateY(24px); transition: opacity 500ms, transform 500ms; }
.oitajc-motion .fadein.scrollin { opacity: 1; transform: none; }
.jc-hero { position: relative; overflow: hidden; }
.jc-hero .swiper-wrapper { position: relative; min-height: 100vh; }
.jc-hero .swiper-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 4s ease; }
.jc-hero .swiper-slide.is-current { opacity: 1; }
.jc-hero .swiper-slide.is-current .slide-img { animation: zoomUp 10s linear both; }
.jc-hero .slide-img { height: 100vh; background-position: center; background-size: cover; }
.jc-hero .slide-img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.jc-hero-toggle { position: absolute; right: 1rem; bottom: 1rem; z-index: 2; border: 1px solid #fff; border-radius: 3px; padding: .45rem .8rem; background: #0009; color: #fff; font-size: 1.2rem; }
.single-item { display: flex; gap: 1.5rem; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-inline: contain; padding-bottom: 1rem; }
.single-item .card { flex: 0 0 min(320px, 75vw); width: auto; min-width: 0; scroll-snap-align: center; }
.single-item .new_img { width: 100%; }
.single-item img { max-width: 100%; height: auto; }
.jc-card-controls { display: flex; justify-content: center; flex-wrap: wrap; gap: .8rem; margin: 1rem 0; }
.jc-card-controls button { border: 1px solid #006a96; border-radius: 3px; padding: .5rem .9rem; background: #fff; color: #005477; font-size: 1.3rem; }
.jc-form-confirm-intro { display: none; }
.snow-monkey-form[data-screen="confirm"] .jc-form-input-intro { display: none; }
.snow-monkey-form[data-screen="confirm"] .jc-form-confirm-intro { display: block; }
/* 移行フォーム：旧表形式の役割を保ち、メール欄を含む入力幅と余白を統一する。 */
.jc-managed-form .smf-item { display: grid; grid-template-columns: 24% minmax(0, 1fr); gap: 2rem; padding: 1.8rem 0; border-bottom: 1px solid #b7c6c9; }
.jc-managed-form .smf-item__label { font-size: 1.6rem; font-weight: 700; line-height: 1.6; }
.jc-managed-form .smf-item__controls { min-width: 0; font-size: 1.6rem; line-height: 1.8; }
.jc-managed-form input[type="text"], .jc-managed-form input[type="email"], .jc-managed-form textarea { display: block; box-sizing: border-box; width: 100%; max-width: 100%; min-height: 48px; padding: .8rem 1rem; border: 1px solid #b7c6c9; border-radius: 3px; background: #fff; color: #111; font: inherit; }
.jc-managed-form textarea { min-height: 12rem; resize: vertical; }
.jc-managed-form .smf-action { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; margin: 2.4rem 0; }
.jc-managed-form .smf-action button { padding: 1rem 2.4rem; border: 1px solid #006a96; border-radius: 3px; background: #006a96; color: #fff; font-size: 1.6rem; }
.jc-managed-form .smf-error-messages { color: #9d1725; margin-top: .5rem; }
.fa-external-link-alt::before, .fa-circle-arrow-right::before { content: '↗'; font-style: normal; }
.fa-key::before { content: '🔑'; font-style: normal; }
@media (max-width: 896px) {
    .jc-desktop-header { display: none; }
    .jc-mobile-header { display: block; }
    .jc-mobile-header .nav_flex_box { gap: 1.4rem; }
    .jc-mobile-header .logo { padding-left: 10px; }
}
@media (max-width: 768px) {
    .jc-managed-form .smf-item { grid-template-columns: minmax(0, 1fr); gap: .8rem; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
    .oitajc-motion .fadein { opacity: 1; transform: none; }
}
