.text-japan {
  color: #b71c0c !important; }

.bg-japan {
  background-color: #b71c0c !important; }

.border-japan {
  border-color: #b71c0c !important; }

.btn-japan {
  --bs-btn-color: #fff;
  --bs-btn-bg: #b71c0c;
  --bs-btn-border-color: #b71c0c;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #911609;
  --bs-btn-hover-border-color: #911609;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #7e1308;
  --bs-btn-active-border-color: #7e1308;
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #b71c0c;
  --bs-btn-disabled-border-color: #b71c0c;
  --bs-btn-focus-shadow-rgb: 183, 28, 12; }

.btn-outline-japan {
  --bs-btn-color: #b71c0c;
  --bs-btn-border-color: #b71c0c;
  --bs-btn-bg: transparent;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #b71c0c;
  --bs-btn-hover-border-color: #b71c0c;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #7e1308;
  --bs-btn-active-border-color: #7e1308;
  --bs-btn-disabled-color: #b71c0c;
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: #b71c0c;
  --bs-btn-focus-shadow-rgb: 183, 28, 12; }

.hero-japan,
.hero-section.hero-japan {
  background: linear-gradient(135deg, #b71c0c 0%, #7e1308 100%);
  color: #fff; }

.text-ryukyu {
  color: #1a5fb4 !important; }

.bg-ryukyu {
  background-color: #1a5fb4 !important; }

.border-ryukyu {
  border-color: #1a5fb4 !important; }

.btn-ryukyu {
  --bs-btn-color: #fff;
  --bs-btn-bg: #1a5fb4;
  --bs-btn-border-color: #1a5fb4;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #154c90;
  --bs-btn-hover-border-color: #154c90;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #12437f;
  --bs-btn-active-border-color: #12437f;
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #1a5fb4;
  --bs-btn-disabled-border-color: #1a5fb4;
  --bs-btn-focus-shadow-rgb: 26, 95, 180; }

.btn-outline-ryukyu {
  --bs-btn-color: #1a5fb4;
  --bs-btn-border-color: #1a5fb4;
  --bs-btn-bg: transparent;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #1a5fb4;
  --bs-btn-hover-border-color: #1a5fb4;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #12437f;
  --bs-btn-active-border-color: #12437f;
  --bs-btn-disabled-color: #1a5fb4;
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: #1a5fb4;
  --bs-btn-focus-shadow-rgb: 26, 95, 180; }

.hero-ryukyu,
.hero-section.hero-ryukyu {
  background: linear-gradient(135deg, #1a5fb4 0%, #12437f 100%);
  color: #fff; }

.text-taiwan {
  color: #146c43 !important; }

.bg-taiwan {
  background-color: #146c43 !important; }

.border-taiwan {
  border-color: #146c43 !important; }

.btn-taiwan {
  --bs-btn-color: #fff;
  --bs-btn-bg: #146c43;
  --bs-btn-border-color: #146c43;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #0e4a2e;
  --bs-btn-hover-border-color: #0e4a2e;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #0a3823;
  --bs-btn-active-border-color: #0a3823;
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #146c43;
  --bs-btn-disabled-border-color: #146c43;
  --bs-btn-focus-shadow-rgb: 20, 108, 67; }

.btn-outline-taiwan {
  --bs-btn-color: #146c43;
  --bs-btn-border-color: #146c43;
  --bs-btn-bg: transparent;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #146c43;
  --bs-btn-hover-border-color: #146c43;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #0a3823;
  --bs-btn-active-border-color: #0a3823;
  --bs-btn-disabled-color: #146c43;
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: #146c43;
  --bs-btn-focus-shadow-rgb: 20, 108, 67; }

.hero-taiwan,
.hero-section.hero-taiwan {
  background: linear-gradient(135deg, #146c43 0%, #0a3823 100%);
  color: #fff; }

.wro-section {
  background-color: #b71c0c; }

body {
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", "Yu Gothic", "Meiryo", sans-serif; }

.main-nav {
  background-color: #b71c0c; }
  .main-nav .navbar-brand {
    font-size: 1.1rem;
    color: #fff !important; }
    .main-nav .navbar-brand .brand-text {
      line-height: 1.2; }
    .main-nav .navbar-brand:hover {
      color: rgba(255, 255, 255, 0.9) !important; }
  .main-nav .nav-link {
    font-size: 0.9rem;
    padding: 0.5rem 0.8rem;
    color: #fff !important; }
    .main-nav .nav-link:hover {
      background-color: rgba(255, 255, 255, 0.15);
      color: #fff !important; }
    .main-nav .nav-link.active {
      background-color: rgba(255, 255, 255, 0.2);
      color: #fff !important; }
  .main-nav .dropdown-toggle::after {
    color: #fff; }
  .main-nav .navbar-toggler {
    border-color: rgba(255, 255, 255, 0.5); }
    .main-nav .navbar-toggler:focus {
      -webkit-box-shadow: 0 0 0 0.25rem rgba(255, 255, 255, 0.25);
              box-shadow: 0 0 0 0.25rem rgba(255, 255, 255, 0.25); }
  .main-nav .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 1%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }

.hero-section {
  background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); }
  .hero-section .hero-icon {
    -webkit-animation: pulse 3s ease-in-out infinite;
            animation: pulse 3s ease-in-out infinite; }

.hero-logo {
  width: 100%;
  max-width: 240px;
  height: auto;
  -webkit-filter: drop-shadow(0 12px 24px rgba(0, 0, 0, 0.18));
          filter: drop-shadow(0 12px 24px rgba(0, 0, 0, 0.18)); }

.hero-logo--xl {
  max-width: 300px; }

@-webkit-keyframes pulse {
  0%, 100% {
    opacity: 0.2; }
  50% {
    opacity: 0.4; } }

@keyframes pulse {
  0%, 100% {
    opacity: 0.2; }
  50% {
    opacity: 0.4; } }

.alert-bar .alert {
  border-radius: 0;
  font-size: 0.9rem; }

.alert-bar marquee {
  font-weight: 500; }

:root {
  --bs-primary: #003d7a;
  --bs-primary-rgb: 0, 61, 122; }

.footer h6 {
  font-size: 0.95rem;
  letter-spacing: 0.02em; }

.footer a:hover {
  color: #fff !important; }

@media (max-width: 991.98px) {
  .top-bar .row {
    flex-wrap: wrap; }
  .top-bar .col-auto:first-child {
    display: none; }
  .top-bar .col {
    flex: 0 0 100%;
    max-width: 100%;
    margin-bottom: 0.5rem; }
    .top-bar .col .input-group {
      max-width: 100% !important; }
  .main-nav .navbar-brand {
    font-size: 0.95rem; }
  .hero-section h1 {
    font-size: 1.5rem; }
  .hero-section .btn-lg {
    font-size: 0.9rem;
    padding: 0.5rem 1rem; } }

@media print {
  .top-bar,
  .alert-bar,
  .main-nav {
    display: none !important; }
  .footer {
    background-color: #fff !important;
    color: #000 !important; } }
