
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

    
        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
            color: #20414f;
            line-height: 1.6;
            background: #F7F9FB;
        }

        .container {
            max-width: 900px;
            margin: 0 auto;
            padding: 60px 20px;
        }

        header {
            text-align: center;
            margin-bottom: 60px;
        }
        
        h1, h2, h3 { color: #20414f; }

        h1 {
            font-size: 42px;
            font-weight: 700;
            margin-bottom: 12px;
            display: inline-flex;
            align-items: center;
            gap: 8px;
        }

        h1 a {
            text-decoration: none;
            color: inherit;
        }
        h1 svg { 
            color: #92a2b5;
            flex-shrink: 0;
            transform: translateY(3px);
        }
        .subtitle {
            font-size: 16px;
            color: #666;
            margin-bottom: 32px;
        }

        .search-box {
            max-width: 500px;
            margin: 0 auto;
            position: relative;
        }

        .search-box input {
            width: 100%;
            padding: 14px 48px 14px 40px;
            font-size: 15px;
            border: 2px solid #C3CFDE;;
            border-radius: 8px;
            background: white;
        }

        .search-box input:focus {
            outline: none;
            border-color: #0066cc;
        }

        .search-icon {
            position: absolute;
            left: 10px;
            top: 55%;
            transform: translateY(-50%);
            color: #999;
        }

        .clear-icon {
            position: absolute;
            right: 10px;
            top: 58%;
            transform: translateY(-50%);
            color: #999;
            font-size: 20px;
            cursor: pointer;
            user-select: none;
        }

        .clear-icon:hover {
            color: #333;
        }


        h2 {
            font-size: 23px;
            font-weight: 600;
            line-height: 1.2;
            margin-bottom: 12px;
        }

        .perks-table {
            background: white;
            border-radius: 12px;
            overflow: hidden;
            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
            margin-bottom: 80px;
            padding: 20px;
        }

        table {
            width: 100%;
            border-collapse: collapse;
        }

        thead {}

        th {
            padding: 5px 15px;
            text-align: left;
            font-size: 13px;
            font-weight: 600;
            color: #637995;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        td {
            padding: 15px 15px;
            border-top: 1px solid #f0f0f0;
            font-size: 15px;
            vertical-align: top;
            line-height: 1.2;
        }

        tbody tr:hover {
            background: #fafbfc;
        }

        td:nth-child(2) {
            font-weight: 600;
        }

        .featured-row {
            background: #f1f1f1;
            border-left: 2px solid #92a2b5;
        }

        .featured-row:hover {
            background: #edeeee;
        }
        .featured-row span {
            color: #637995 !important;
            font-size: 14px;
        }

        td:nth-child(4) {
            font-size: 14px;
        }
        .city-link {
            color: #0066cc;
            text-decoration: none;
            font-weight: 500;
            margin-right: 5px;
        }

        .city-link:hover {
            text-decoration: underline;
        }

        .cities-wrapper {
            display: flex;
            flex-wrap: wrap;
            gap: 0.5em;
            /* spacing between links */
            align-items: center;
        }

        .cities-wrapper .city-link {
            display: inline-block;
            /* ensures all links stay inline */
        }

        .perk-link {
            color: #0066cc;
            text-decoration: none;
        }

        .perk-link:hover {
            text-decoration: underline;
        }

        .browse-section {
            margin-top: 60px;
        }

        .countries-grid {
            display: grid;
            gap: 48px;
        }

        .country-group h3 {
            font-size: 20px;
            font-weight: 600;
            margin-bottom: 16px;
            color: #1a1a1a;
        }

        .cities-list {
            display: flex;
            flex-wrap: wrap;
            gap: 8px 16px;
        }

        .cities-list a {
            color: #0066cc;
            text-decoration: none;
            font-size: 15px;
        }

        .cities-list a:hover {
            text-decoration: underline;
        }

        .loading {
            text-align: center;
            padding: 60px;
            color: #666;
        }

        .error {
            text-align: center;
            padding: 60px;
            color: #d73a49;
        }

        .no-results {
            text-align: center;
            padding: 40px;
            color: #666;
        }
        footer {
            margin-top: 1rem;
            padding-top: 1rem;
            border-top: 1px solid #ccc;
            font-size: 12px;
        }

        /* Expiry color coding */
        .expiry-soon {
            color: #d9534f;
        }

        .expiry-mid {
            color: #f79000;
        }


        .search-suggestions {
            position: absolute;
            background: #fff;
            border: 1px solid #ddd;
            max-height: 200px;
            overflow-y: auto;
            width: 100%;
            z-index: 10;
        }

        .search-suggestions div {
            padding: 8px;
            cursor: pointer;
        }

        .search-suggestions div:hover {
            background-color: #f0f0f0;
        }

          /* Desktop specific */
        @media (min-width: 600px) {
            .featured-row:not(:first-child) td {
                border-top: 1px solid #fff;
            }
            td:nth-child(4) {
                width: 15%;
                border-top: 1px solid #f0f0f0;
            }
            td:nth-child(2),  td:nth-child(1) {
                width: 20%;
            }
        }
/* Mobile  */
@media (max-width: 600px) {

    h1 {
            font-size: 30px;
            line-height: 1.2;
        }

    table,
    thead,
    tbody,
    th,
    td,
    tr {
        display: block;
        width: 100%;
    }

    thead {
        display: none;
        /* hide table header */
    }

    tr {
        margin-bottom: 16px;
        border-radius: 12px;
        background: white;
        padding: 12px;
        border: 1px solid #eee;
    }

    td {
        padding: 6px 0;
        border: none;
        display: block;
        /* stack the cells */
        text-align: left;
        font-size: 14px;
    }

    td a.city-link {
        display: inline-block;
        margin-bottom: 4px;
    }

    td span {
        margin-right: 4px;
    }

    .featured-row {
        border: 1px solid #92a2b5;
    }

    td:nth-child(2) {
        font-size: 18px;
    }

}