/* Extracted from resources/views/front/pages/city_route_page.blade.php
 * Block #4. Content is verbatim - no rules were added,
 * removed or reordered, so rendering is unchanged.
 */

:root {
          --bg: #f4f2ef;
          --card-bg: #ffffff;
          --accent: #9b1c1c;
          --accent-light: #c0392b;
          --text-primary: #1a1a1a;
          --text-secondary: #555;
          --border: #e0dbd4;
          --link: #155fbf;
          --link-hover: #c0392b;
        }
        
        .section {
          background-color: var(--bg);
          font-family: 'DM Sans', sans-serif;
          color: var(--text-primary);
          padding: 48px 24px 64px;
        }
        
        .section .container h3 {
          font-family: 'Playfair Display', serif;
          font-size: clamp(1.6rem, 3vw, 2.4rem);
          font-weight: 700;
          color: var(--text-primary);
          line-height: 1.2;
          margin-bottom: 12px;
        }
        
        .section .container > p {
          font-size: 0.95rem;
          color: var(--text-secondary);
          line-height: 1.6;
          margin-bottom: 32px;
        }
        
        .divider {
          width: 56px;
          height: 3px;
          background: #185dce;
          margin: 16px 0 32px;
          border-radius: 2px;
        }
        
        .routes-grid {
          display: grid;
          grid-template-columns: repeat(4, 1fr);
          gap: 0;
          border: 1px solid var(--border);
          border-radius: 8px;
          overflow: hidden;
          background: var(--card-bg);
          box-shadow: 0 2px 16px rgba(0, 0, 0, 0.06);
        }
        
        .column {
          padding: 0;
          border-right: 1px solid var(--border);
        }
        
        .column:last-child {
          border-right: none;
        }
        
        .route-item {
          display: block;
          padding: 13px 20px;
          font-size: 0.875rem;
          color: var(--link);
          text-decoration: none;
          font-weight: 500;
          border-bottom: 1px solid var(--border);
          transition: background 0.15s ease, color 0.15s ease, padding-left 0.15s ease;
          position: relative;
        }
        
        .route-item::before {
          content: '';
          display: inline-block;
          width: 6px;
          height: 6px;
          border-radius: 50%;
          background: var(--border);
          margin-right: 10px;
          vertical-align: middle;
          transition: background 0.15s ease;
          flex-shrink: 0;
        }
        
        .route-item:last-child {
          border-bottom: none;
        }
        
        .route-item:hover {
          background: #fdf4f4;
          color: var(--link-hover);
          padding-left: 26px;
        }
        
        .route-item:hover::before {
          background: var(--accent);
        }
        
        @media (max-width: 900px) {
          .routes-grid {
            grid-template-columns: repeat(2, 1fr);
          }
          .column:nth-child(2) {
            border-right: none;
          }
          .column:nth-child(3) {
            border-right: 1px solid var(--border);
          }
        }
        
        @media (max-width: 560px) {
          .routes-grid {
            grid-template-columns: 1fr;
          }
          .column {
            border-right: none;
            border-bottom: 1px solid var(--border);
          }
          .column:last-child {
            border-bottom: none;
          }
        }
