Responsive table markup

<style>
table {
border: 1px solid #ccc;
border-collapse: collapse;
margin: 0;
padding: 0;
width: 100%;
table-layout: fixed;
}

table caption {
font-size: 1.5em;
margin: .5em 0 .75em;
}

table tr {
background-color: #f8f8f8;
border: 1px solid #ddd;
padding: .35em;
}

table th,
table td {
padding: .625em;
text-align: center;
}

table th {
font-size: .85em;
letter-spacing: .1em;
text-transform: uppercase;
}

@media screen and (max-width: 600px) {
table {
border: 0;
}

table caption {
font-size: 1.3em;
}

table thead {
border: none;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}

table tr {
border-bottom: 3px solid #ddd;
display: block;
margin-bottom: .625em;
}

table td {
border-bottom: 1px solid #ddd;
display: block;
font-size: .8em;
text-align: right;
}

table td::before {
/*
* aria-label has no advantage, it won't be read inside a table
content: attr(aria-label);
*/
content: attr(data-label);
float: left;
font-weight: bold;
text-transform: uppercase;
}

table td:last-child {
border-bottom: 0;
}
}
</style>

<table>
<caption>Doprava po SR</caption>
<thead>
<tr>
<th scope="col">Způsob dopravy</th>
<th scope="col">do 2000 Kč</th>
<th scope="col">nad 2000 Kč</th>
</tr>
</thead>
<tbody>
<tr>
<td data-label="Způsob dopravy">PPL</td>
<td data-label="do 2000 Kč">6 €</td>
<td data-label="nad 200 Kč">$1,190</td>
</tr>
<tr>
<td data-label="Způsob dopravy">Záslikovna</td>
<td data-label="do 2000 Kč">6 €</td>
<td data-label="nad 2000 Kč">ZDARMA</td>
</tr>
</tbody>
</table>