.wro-section {
  background-color: #5a2d82; }

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

.main-nav {
  background-color: #de2910 !important; }
  .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"); }
  .main-nav.main-nav--wro {
    background-color: #5a2d82 !important; }

.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; }

.service-card {
  border-color: #dee2e6; }
  .service-card:hover {
    -webkit-transform: translateY(-3px);
            transform: translateY(-3px);
    -webkit-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    border-color: #003d7a; }
    .service-card:hover .bi {
      color: #003d7a; }
  .service-card .bi {
    color: #6c757d; }
  .service-card .card-body {
    min-width: 100px; }

: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 (max-width: 575.98px) {
  .service-card .card-body {
    padding: 0.75rem !important; }
    .service-card .card-body .bi {
      font-size: 2rem !important; }
    .service-card .card-body p {
      font-size: 0.75rem !important; } }

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