/* Homepage-specific interaction and accessibility additions. */
html { scroll-behavior: smooth; }
body { margin: 0; }
img { height: auto; }
button { font: inherit; cursor: pointer; }
:focus-visible { outline: 3px solid #f9be00; outline-offset: 4px; }
.menu-btn:focus-visible { outline-offset: -4px; }
html.menu-open, body.menu-open { overflow: hidden; }
.menu-content[inert] { visibility: hidden; }
.menu-content:not([inert]) { visibility: visible; }
.menu-content { width: 100%; box-sizing: border-box; overflow-y: auto; }
.site-menu-links { width: min(760px, calc(100% - 40px)); margin: 110px auto 40px; padding: 0; list-style: none; }
.site-menu-links li { margin-bottom: 14px; }
.site-menu-links a { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px 28px; border: 2px solid #c7d4ed; border-radius: 14px; background: #fff; color: #445cab; font-size: 20px; line-height: 1.5; text-decoration: none; }
.site-menu-links a:hover { background: #fffcd5; }
.site-menu-links i { flex-shrink: 0; font-size: 16px; }
@media (max-width: 768px) {
  .site-menu-links { margin-top: 76px; }
  .site-menu-links a { padding: 16px 18px; font-size: 16px; }
}
.swiper-controller button { border: 0; padding: 0; }
body[data-route="/"] .top_btn_03 { margin-bottom: 0; }
.f_section_01 > div:only-child { margin-bottom: 0; }
.preview-dialog { width: min(440px, calc(100vw - 40px)); padding: 38px 30px 30px; color: #333; background: white; border: 3px solid #c7d4ed; border-radius: 20px; text-align: center; box-sizing: border-box; }
.preview-dialog::backdrop { background: rgb(24 40 84 / 55%); }
.preview-logo { width: 170px; margin: 0 auto 24px; }
.preview-dialog h2 { color: #445cab; font-size: 23px; margin: 0 0 20px; line-height: 1.4; }
.preview-dialog p { font-size: 15px; line-height: 1.8; margin-bottom: 6px; }
.preview-close { position: absolute; right: 12px; top: 7px; border: 0; color: #445cab; font-size: 30px; background: none; padding: 0 8px; }
.preview-return { border: 2px solid #445cab; border-radius: 9px; background: #fcf150; color: #445cab; padding: 12px 20px; font-size: 16px; margin-top: 24px; }
@media (min-width: 769px) and (max-width: 1279px) {
  .top_main_img_section, .top_news_section, .top_main_section_02, .archive_link_01 { width: 90%; max-width: 1240px; }
  .top_btn_01 { width: 86%; }
  .h_navi li:nth-of-type(4) { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

/* 所有内页共用的最小交互补充，原站页面样式在前加载。 */
[hidden] { display: none !important; }
.form-message { color: #b72d37; border-left: 4px solid #b72d37; padding: 12px 16px; margin: 16px 0; background: #fff5f5; font-size: 15px; line-height: 1.7; }
.demo-notice { padding: 12px 16px; margin: 18px auto; border: 1px solid #c7d4ed; background: #f4f7fd; color: #445cab; font-size: 14px; line-height: 1.8; text-align: left; }
.application-review { padding: 25px 0; font-size: 16px; scroll-margin-top: 120px; }
.review-list { display: grid; grid-template-columns: minmax(160px, 35%) 1fr; border-top: 1px solid #c7d4ed; margin-top: 24px; }
.review-list dt, .review-list dd { padding: 15px; margin: 0; border-bottom: 1px solid #c7d4ed; line-height: 1.7; overflow-wrap: anywhere; }
.review-list dt { background: #f1f4fb; color: #445cab; }
.review-controls { display: flex; justify-content: center; gap: 20px; flex-wrap: wrap; }
.application-review .preview-return { display: inline-block; margin-right: 16px; text-decoration: none; }
.preview-return.secondary { background: white; }
.video-preview, .video-frame { display: block; width: 100%; aspect-ratio: 560 / 315; border: 0; }
.video-preview { position: relative; padding: 0; background: #111; color: white; overflow: hidden; }
.video-preview img { width: 100%; height: 100%; object-fit: cover; }
.video-preview span { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); background: #f00; color: #fff; border-radius: 12px; padding: 5px 20px; font-size: 30px; }
.video-preview.unavailable { color: white; cursor: default; }
.video-preview.unavailable span { background: none; padding: 0; font-size: 16px; width: 80%; }
#overlay, #overlay2 { z-index: 1000002; }
.legacy-page .demo-notice { max-width: 90%; box-sizing: border-box; }
.legacy-page .preview-dialog { font-family: sans-serif; }
@media (min-width: 769px) and (max-width: 1279px) {
  .modern-page .page_main_section { width: 94%; max-width: 1200px; }
  .modern-page .r_content { min-width: 0; }
}
@media (max-width: 768px) {
  .review-list { grid-template-columns: 1fr; }
  .review-list dt { padding-bottom: 6px; border: 0; }
  .review-list dd { padding-top: 8px; }
  .review-controls { gap: 0; }
  .application-review { scroll-margin-top: 85px; }
  .demo-notice { font-size: 12px; }
}
body[data-route="/internetcashing-form"] .application-review,
body[data-route="/internetcashing-form"] .page_main_section > .demo-notice { width: 80%; margin-left: auto; margin-right: auto; }
@media (max-width: 768px) {
  body[data-route="/internetcashing-form"] .application-review { width: 95%; }
}
.ifnradio { display: block !important; position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; }
.ifnradio:focus-visible + label { outline: 3px solid #f9be00; outline-offset: 2px; }
@media (max-width: 1279px) {
  .modern-page .r_content img { max-width: 100%; height: auto !important; }
  .modern-page .privacy-frame_03 { width: 100%; box-sizing: border-box; }
}
@media (max-width: 919px) {
  body[data-route="/loan/kantan"] #container { min-width: 0; }
  body[data-route="/loan/kantan"] #main_box { width: 98%; margin: 0 auto; }
  body[data-route="/loan/kantan"] .midashi02 { max-width: 100%; box-sizing: border-box; }
}
.preview-dialog { position: fixed; inset: 0; margin: auto; max-height: 90vh; overflow-y: auto; }
@media (max-width: 919px) {
  body[data-route="/loan/kantan"] { min-width: 0; }
}
@media (max-width: 1279px) {
  .basic_page { overflow-wrap: anywhere; }
}
@media (max-width: 919px) {
  body[data-route="/loan/kantan"] .main-p img { max-width: 100%; height: auto; }
}
@media (max-width: 1279px) {
  .basic_page h1 > img, .basic_page h2 > img { display: block; }
}
