      :root {
        --primary-color: #005F73;
        --secondary-color: #0A9396;
        --accent-color: #EE9B00;
        --light-color: #E9E9E9;
        --dark-color: #001219;
        --background-color: #F8F9FA;
        --card-color: #FFFFFF;
        --shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
        --transition: all 0.3s ease;
      }

      body {
          font-family: 'Open Sans', Arial, sans-serif;
          font-size: 18px;
          background-color: var(--background-color);
          color: var(--dark-color);
          line-height: 1.6;
      }

      h1, h2, h3, h4, h5, h6 {
          font-family: 'Montserrat', Arial, sans-serif;
          font-weight: 600;
          color: var(--primary-color);
      }

      .navbar {
          background-color: var(--card-color) !important;
          box-shadow: var(--shadow);
          padding: 15px 20px;
          transition: var(--transition);
      }

      .navbar-brand {
          color: var(--primary-color) !important;
          font-size: 24px;
          font-weight: bold;
          font-family: 'Montserrat', Arial, sans-serif;
      }

      .navbar-nav .nav-link {
          color: var(--dark-color) !important;
          font-weight: 500;
          padding: 10px 15px;
          transition: var(--transition);
          position: relative;
      }

      .navbar-nav .nav-link:after {
          content: '';
          position: absolute;
          bottom: 0;
          left: 50%;
          width: 0;
          height: 2px;
          background: var(--accent-color);
          transition: var(--transition);
          transform: translateX(-50%);
      }

      .navbar-nav .nav-link:hover:after {
          width: 80%;
      }

      .navbar-toggler {
          border: none;
          padding: 10px;
          outline: none !important;
      }

      .navbar-toggler-icon {
          width: 30px;
          height: 30px;
      }

      .strikethrough {
          text-decoration: line-through;
      }

      .alert-custom {
          background-color: #f8d7da;
          color: #721c24;
          border-color: #f5c6cb;
      }

      .hidden {
          display: none;
      }

      .sticky-button {
          position: sticky;
          top: 10px;
          right: 20px;
          background-color: var(--accent-color);
          color: var(--dark-color);
          padding: 10px 20px;
          border: none;
          border-radius: 50px;
          font-weight: 600;
          z-index: 1000;
          touch-action: manipulation;
          transition: var(--transition);
          box-shadow: var(--shadow);
      }

      .sticky-button:hover {
          background-color: #d78c00;
          transform: translateY(-2px);
      }

      @media (max-width: 768px) {
          .sticky-button {
              right: 70px;
          }
      }

      @media (max-width: 576px) {
          .sticky-button {
              right: 50px;
              top: 10px;
              transform: none;
          }

          .container {
              padding-left: 5px;
              padding-right: 5px;
          }

          .table-responsive {
              width: calc(100% + 10px);
              margin-left: -5px;
              margin-right: -5px;
          }

          .table {
              width: 100%;
              margin-left: 0;
              margin-right: 0;
          }

          .navbar-nav .nav-item {
              float: none;
              display: block;
              text-align: left;
          }

          .navbar-toggler-icon {
              width: 35px;
              height: 35px;
          }

          .navbar-nav .nav-link {
              padding: 10px 0;
          }

          .navbar-collapse {
              text-align: center;
          }

          .form-group {
              margin-bottom: 20px;
          }

          .form-control {
              padding: 10px;
              font-size: 16px;
          }

          .cta-button {
              padding: 10px 15px;
              font-size: 16px;
          }
      }

      .header {
          background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
          color: #ffffff;
          padding: 40px 20px;
          text-align: left;
          border-radius: 0 0 30px 30px;
          display: flex;
          align-items: center;
          justify-content: center;
          margin-bottom: 40px;
          box-shadow: var(--shadow);
      }

      .header img {
          margin-right: 20px;
          border-radius: 15px;
          box-shadow: var(--shadow);
          transition: var(--transition);
      }
      
      .header img:hover {
          transform: scale(1.02);
      }

      .header h1 {
          font-family: 'Montserrat', Arial, sans-serif;
          font-size: 80px;
          font-weight: bold;
          color: white;
          margin-bottom: 20px;
      }

      .header p {
          font-size: 18px;
      }

      @media (max-width: 768px) {
          .header img {
              display: none;
          }

          .header {
              text-align: center;
              padding: 20px 10px;
          }

          .header h1 {
              font-size: 40px;
          }

          .header p {
              font-size: 14px;
          }
      }

      .argument-container {
          display: flex;
          flex-wrap: wrap;
          justify-content: space-between;
          margin-bottom: 30px;
      }

      .argument-bar {
          background-color: var(--card-color);
          padding: 25px;
          margin-bottom: 20px;
          border-radius: 15px;
          display: flex;
          align-items: center;
          box-shadow: var(--shadow);
          flex: 1 1 calc(33.333% - 20px);
          margin: 10px;
          text-decoration: none;
          color: inherit;
          touch-action: manipulation;
          transition: var(--transition);
          border-bottom: 3px solid transparent;
      }

      .argument-bar:hover {
          text-decoration: none;
          color: inherit;
          transform: translateY(-5px);
          border-bottom: 3px solid var(--accent-color);
      }

      .argument-bar .icon {
          margin-right: 15px;
          font-size: 32px;
          color: var(--accent-color);
      }

      .argument-bar p {
          margin: 0;
          font-weight: 500;
      }

      .content {
          padding: 30px 20px;
      }

      .content h2 {
          color: var(--primary-color);
          margin-bottom: 25px;
          position: relative;
          padding-bottom: 10px;
      }

      .content h2:after {
          content: '';
          position: absolute;
          left: 0;
          bottom: 0;
          width: 60px;
          height: 3px;
          background: var(--accent-color);
      }

      a:focus, button:focus {
          outline: 2px solid var(--accent-color);
          outline-offset: 2px;
      }

      .cta-button {
          background-color: var(--accent-color);
          color: var(--dark-color);
          padding: 12px 30px;
          border: none;
          border-radius: 50px;
          text-transform: uppercase;
          font-weight: bold;
          font-size: 18px;
          margin-top: 10px;
          box-shadow: var(--shadow);
          transition: var(--transition);
      }

      .cta-button:hover {
          background-color: #d78c00;
          transform: translateY(-2px);
          cursor: pointer;
      }

      .table-responsive {
          overflow-x: auto;
          background-color: var(--card-color);
          border-radius: 15px;
          box-shadow: var(--shadow);
          padding: 20px;
          margin-bottom: 30px;
      }

      table {
          width: 100%;
          margin-top: 20px;
          border-collapse: separate;
          border-spacing: 0;
      }

      .table th {
          text-align: center;
          vertical-align: middle;
          padding: 15px;
          background-color: var(--primary-color);
          color: white;
          font-weight: 600;
      }
      
      .table th:first-child {
          border-top-left-radius: 10px;
      }
      
      .table th:last-child {
          border-top-right-radius: 10px;
      }

      .table td {
          text-align: center;
          vertical-align: middle;
          padding: 15px;
          border-top: 1px solid rgba(0, 0, 0, 0.05);
          transition: var(--transition);
      }
      
      .table tr:hover td {
          background-color: rgba(10, 147, 150, 0.05);
      }
      
      .table a {
          color: var(--primary-color);
          text-decoration: none;
          font-weight: 500;
          transition: var(--transition);
      }
      
      .table a:hover {
          color: var(--secondary-color);
      }

      .back-to-top {
          position: fixed;
          bottom: 20px;
          right: 20px;
          display: none;
          background-color: var(--primary-color);
          color: #ffffff;
          width: 50px;
          height: 50px;
          line-height: 50px;
          text-align: center;
          border-radius: 50%;
          cursor: pointer;
          z-index: 1000;
          touch-action: manipulation;
          box-shadow: var(--shadow);
          transition: var(--transition);
      }
      
      .back-to-top:hover {
          background-color: var(--secondary-color);
          transform: translateY(-3px);
      }

      @media (max-width: 768px) {
          .argument-bar {
              flex: 1 1 100%;
          }
      }

      @media (max-width: 500px) {
          .hide-on-small {
              display: none;
          }

          .header h1 {
              font-family: Arial, sans-serif;
              font-size: 40px;
              font-weight: bold;
          }

          .text-content p:nth-of-type(n+1) {
              display: none;
          }

          .argument-bar {
              display: none;
          }

          .sticky-button {
              display: none;
          }
      }

      .rounded-image {
          display: block;
          margin: 20px auto;
          border-radius: 15px;
          width: 100%;
          max-width: 1200px;
          box-shadow: var(--shadow);
      }

      .flex-container {
          display: flex;
          flex-wrap: wrap;
      }

      .text-content {
          flex: 1 1 50%;
          padding: 20px;
      }

      .text-content a {
          color: var(--primary-color);
          text-decoration: none;
          font-weight: 500;
          transition: var(--transition);
          padding: 2px 4px;
          border-bottom: 1px dotted var(--secondary-color);
      }

      .text-content a:hover {
          color: var(--secondary-color);
          background-color: rgba(10, 147, 150, 0.05);
          border-bottom: 1px solid var(--secondary-color);
      }

      .image-content {
          flex: 1 1 50%;
          display: flex;
          align-items: center;
          justify-content: center;
      }

      .image-content img {
          width: 100%;
          height: auto;
          max-width: 100%;
          border-radius: 15px;
          box-shadow: var(--shadow);
      }

      @media (max-width: 768px) {
          .header {
              flex-direction: row;
          }

          .text-content,
          .image-content {
              flex: 1 1 100%;
              text-align: center;
          }

          .text-content {
              padding-bottom: 0;
          }

          .image-content {
              padding-top: 0;
          }
      }

      a {
          color: var(--primary-color);
          transition: var(--transition);
      }
      
      a:hover {
          color: var(--secondary-color);
      }

      .faq-section {
          background-color: var(--card-color);
          padding: 40px 20px;
          border-radius: 15px;
          margin-top: 40px;
          box-shadow: var(--shadow);
      }

      .faq-section h2 {
          color: var(--primary-color);
          margin-bottom: 30px;
          position: relative;
          padding-bottom: 10px;
      }
      
      .faq-section h2:after {
          content: '';
          position: absolute;
          left: 0;
          bottom: 0;
          width: 60px;
          height: 3px;
          background: var(--accent-color);
      }

      .faq {
          margin-bottom: 20px;
          border-bottom: 1px solid rgba(0, 0, 0, 0.05);
          padding-bottom: 15px;
      }

      .faq-summary {
          font-size: 18px;
          font-weight: 600;
          cursor: pointer;
          color: var(--primary-color);
          transition: var(--transition);
      }

      .faq-summary:hover {
          color: var(--secondary-color);
      }

      .faq-content {
          margin-top: 10px;
          padding-left: 20px;
      }

      .datepicker {
          z-index: 1600 !important;
      }

      .form-inline {
          display: flex;
          flex-wrap: wrap;
          align-items: flex-start;
          background-color: var(--card-color);
          padding: 30px;
          border-radius: 15px;
          box-shadow: var(--shadow);
          margin-bottom: 30px;
          gap: 20px;
      }

      .form-inline .form-group {
          display: flex;
          flex-direction: column;
          margin-bottom: 0;
          width: 100%;
      }

      .form-inline label {
          margin-bottom: 8px;
          font-weight: 600;
          color: var(--primary-color);
          font-size: 1rem;
      }

      /* FIXED DROPDOWN STYLES */
      .form-inline input,
      .form-inline select {
          width: 100%;
          padding: 12px 15px;
          border: 1px solid rgba(0, 0, 0, 0.1);
          border-radius: 8px;
          transition: var(--transition);
          font-size: 0.95rem;
          background-color: white;
          cursor: pointer;
          line-height: 1.5; /* Ensure proper line height */
          min-height: 48px; /* Minimum height for better touch targets */
      }
      
      .form-inline select {
          padding-right: 40px;
          appearance: none;
          background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
          background-repeat: no-repeat;
          background-position: right 12px center;
          background-size: 20px;
          padding-top: 14px; /* Increased top padding */
          padding-bottom: 14px; /* Increased bottom padding */
      }
      
      /* Style for optgroup labels */
      .form-inline select optgroup {
          font-weight: 700;
          font-size: 0.9rem;
          color: var(--primary-color);
          padding: 10px 0;
      }
      
      /* Style for options */
      .form-inline select option {
          padding: 15px 20px; /* Increased padding for better visibility */
          line-height: 1.6;
          font-size: 0.95rem;
          color: var(--dark-color);
      }
      
      /* Mobile specific fixes for select elements */
      @media (max-width: 768px) {
          .form-inline select {
              font-size: 16px; /* Prevents zoom on iOS */
              min-height: 52px; /* Larger touch target on mobile */
          }
      }
      
      .form-inline input:focus,
      .form-inline select:focus {
          border-color: var(--secondary-color);
          box-shadow: 0 0 0 2px rgba(10, 147, 150, 0.2);
          outline: none;
      }

      .form-inline button {
          align-self: flex-end;
          white-space: nowrap;
      }
      
      /* Spezielle Styles für die Route-Auswahl */
      #route {
          min-width: 100%;
      }

      @media (min-width: 768px) {
          .form-inline {
              flex-direction: row;
              align-items: flex-end;
          }
          
          .form-inline .form-group {
              flex: 1;
              min-width: 0;
          }
          
          .form-inline .form-group:first-child {
              flex: 2;
          }
          
          .form-inline button {
              flex: 0 0 auto;
              margin-bottom: 0;
          }
      }
      
      @media (min-width: 992px) {
          .form-inline {
              gap: 25px;
          }
          
          .form-inline select {
              font-size: 1rem;
          }
      }

      /* CSS für die Ladeanimation */
      .loader {
          border: 8px solid rgba(0, 95, 115, 0.1);
          border-radius: 50%;
          border-top: 8px solid var(--secondary-color);
          width: 80px;
          height: 80px;
          animation: spin 1.5s linear infinite;
          margin: 30px auto;
      }

      @keyframes spin {
          0% { transform: rotate(0deg); }
          100% { transform: rotate(360deg); }
      }

      .loading-text {
          text-align: center;
          font-size: 18px;
          margin-top: 20px;
          color: var(--primary-color);
      }
      
      #schwedenticket {
          background-color: var(--card-color);
          border-radius: 15px;
          box-shadow: var(--shadow);
          padding: 30px;
          margin-bottom: 30px;
      }
      
      #schwedenticket h3 {
          color: var(--secondary-color);
          margin-top: 25px;
          margin-bottom: 15px;
      }
      
      #schwedenticket ul {
          padding-left: 20px;
      }
      
      #schwedenticket li {
          margin-bottom: 10px;
          position: relative;
      }
      
      #schwedenticket li::before {
          content: "→";
          color: var(--accent-color);
          font-weight: bold;
          position: absolute;
          left: -20px;
      }
      
      .route-comparison {
          background-color: rgba(10, 147, 150, 0.05);
          border-radius: 15px;
          padding: 30px;
          margin: 30px 0;
      }
      
      .route-card {
          background-color: var(--card-color);
          border-radius: 10px;
          padding: 25px;
          margin-bottom: 20px;
          box-shadow: var(--shadow);
          border-left: 5px solid var(--accent-color);
          transition: var(--transition);
      }
      
      .route-card:hover {
          transform: translateX(5px);
      }
      
      .route-card h4 {
          color: var(--primary-color);
          margin-bottom: 15px;
      }
      
      .route-pros {
          color: var(--secondary-color);
          font-weight: 600;
          margin-top: 15px;
      }
      
      .insider-tip {
          background-color: rgba(238, 155, 0, 0.1);
          border-left: 4px solid var(--accent-color);
          padding: 20px;
          margin: 20px 0;
          border-radius: 0 10px 10px 0;
      }
      
      .insider-tip h4 {
          color: var(--accent-color);
          margin-top: 0;
      }
      
      .departure-ports {
          display: grid;
          grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
          gap: 30px;
          margin: 30px 0;
      }
      
      .port-info {
          background-color: var(--card-color);
          border-radius: 15px;
          padding: 25px;
          box-shadow: var(--shadow);
          border-top: 4px solid var(--primary-color);
      }
      
      .port-info h3 {
          color: var(--primary-color);
          margin-bottom: 15px;
          font-size: 1.5rem;
      }
      
      .port-badge {
          display: inline-block;
          background-color: var(--secondary-color);
          color: white;
          padding: 5px 15px;
          border-radius: 20px;
          font-size: 0.9rem;
          margin-bottom: 15px;
      }
      
      .footer {
          background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
          color: white;
          padding: 40px 0 20px;
          position: relative;
          width: 100%;
          border-radius: 30px 30px 0 0;
          margin-top: 60px;
      }
      
      .footer a {
          color: white;
          text-decoration: underline;
          transition: var(--transition);
      }
      
      .footer a:hover {
          color: var(--accent-color);
      }
      
      .language-switcher .btn {
          color: white;
          text-decoration: none;
          margin: 0 10px;
      }
      
      .language-switcher .btn:hover {
          text-decoration: underline;
      }
      
      .footer-info p {
          font-size: 0.9rem;
          margin-bottom: 10px;
          line-height: 1.5;
      }
      
      .footer-info a {
          text-decoration: underline;
      }
