.box{
	background-color: #eee;
	padding:16px;
	margin-bottom: 16px;
	border: 1px solid;
	min-height: 250px;
	width: 98%;
	margin-left: 1%;
	margin-right: 1%;
}

/* One row's boxes are as tall as the tallest, so a box with more in it than its
   neighbours grows rather than spilling out of its own background. See D60 */
.front-boxes {
	display: flex;
	flex-wrap: wrap;
}

/* The grid's clearfix is a `display: table` pseudo-element and would be a
   column of its own here */
.front-boxes:before,
.front-boxes:after {
	display: none;
}

.front-boxes > div {
	display: flex;
}

/* The photograph in a front page box: 90 of the 218px the box leaves */
.box-photo {
	height: 90px;
	margin-bottom: 8px;
	background-color: #ddd;
	background-size: cover;
	background-position: center;
}

.content .box h2 {
	margin-top: 0 !important;
	margin-bottom: 10px;
}

.content .box hr {
	border: 0;
	height: 1px;
	background: #aaaaff;
	margin-bottom: 12px;
	margin-top: 0;
}
.right {
	float: right;
}

h2 { display: inline-block; }

.content-top-right {
	float: right;
	margin: 30px 50px 0px 0px;
}

a{
	color:#337ab7;
	text-decoration:none;
}
a:hover,a:focus{
	color:#23527c;
	text-decoration:underline
}
a:focus{
	outline:5px auto -webkit-focus-ring-color;
	outline-offset:-2px
}

hr{
	margin-top:20px;
	margin-bottom:20px;
	border:0;
	border-top:1px solid #eee;
}

/* ===== generated ===== */

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}
body {
	font-family: 'Arial', sans-serif;
	background-color: #f9f9f9;
	color: #333;
	line-height: 1.6;
	margin-bottom: 80px; /* Space for the footer */
}
header {
	position: relative;
	background-color: #196eb4; /* Menu background */
	padding: 0 20px; /* Remove top padding */
	display: flex;
	align-items: center;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	height: 60px; /* Fixed height for desktop */
}
.profile-pic {
	width: 150px;
	height: 150px;
	object-fit: cover;
	position: absolute;
	left: 20px;
	top: 0;
	z-index: 10;
}
.profile-pic img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.top-bar {
	margin-left: 170px; /* Leave space for profile picture */
	flex-grow: 1;
	display: flex;
	justify-content: space-between;
	align-items: center;
	color: #ffffff; /* Font color */
}
.top-heading {
	display: flex;
	flex-direction: row;
	align-items: baseline;
}
.top-bar h1 a {
	color: #ffffff;
	text-decoration: none;
}
.top-bar h2 {
	margin-left: 20px;
}
.top-bar h2::before {
	content: '\2192';
	margin-right: 10px;
}
.hamburger {
	display: none;
	cursor: pointer;
	flex-direction: column;
	gap: 5px;
}
.hamburger div {
	width: 25px;
	height: 3px;
	background-color: #ffffff;
}
nav {
	margin-left: 20px;
	display: flex;
	align-items: center;
	height: 100%;
}
nav ul {
	list-style: none;
	display: flex;
	gap: 20px;
	align-items: center;
}
nav ul li {
	margin: 0;
	display: flex;
	align-items: center;
}
nav ul li a {
	text-decoration: none;
	color: #ffffff;
	font-weight: bold;
	font-size: 18px;
	transition: color 0.3s;
}
nav ul li a:hover {
	color: #d9eaf7; /* Hover color */
}
.content {
	max-width: 1200px;
	margin: 20px auto;
	padding: 20px;
	background-color: #ffffff;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	margin-left: 170px; /* Align content to the right of the profile picture */
}
.content h1 {
	font-size: 28px;
	margin-bottom: 10px;
}
.content .date {
	color: #777;
	font-size: 14px;
	margin-bottom: 20px;
}
.content h2 {
	margin-top: 30px;
	font-size: 24px;
	color: #196eb4; /* Subheading color */
}
.content ul, .content ol {
	margin-top: 10px;
	padding-left: 20px;
}
.content ul li, .content ol li {
	margin-bottom: 10px;
}
.content img {
	max-width: 100%;
	height: auto;
	display: block;
	margin: 20px 0;
	border: 2px solid #196eb4; /* Image border */
}
.content .caption {
	text-align: center;
	font-style: italic;
	color: #777;
	margin-top: -10px;
}
.content pre {
	background-color: #d9eaf7; /* Code block background same as blockquote */
	padding: 10px;
	border-left: 3px solid #196eb4; /* Border color */
	margin: 20px 0;
}
.content blockquote {
	font-style: italic;
	background-color: #d9eaf7; /* Blockquote background */
	padding: 20px;
	border-left: 5px solid #196eb4; /* Blockquote border */
	margin: 20px 0;
}
footer {
	text-align: center;
	padding: 20px;
	background-color: #f1f1f1;
	font-size: 14px;
	position: fixed;
	width: 100%;
	bottom: 0px;
}

/* The compact header: a fixed bar with the menu behind a hamburger */
@media (max-width: 1100px) {
	body {
		padding-top: 70px; /* Space for the top slice */
	}
	body > header {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		z-index: 100;
		background-color: #196eb4;
		display: flex;
		align-items: center;
	}
	.profile-pic {
		width: 70px;
		height: 70px;
		left: 20px;
		top: 0;
	}
	.top-bar {
		flex-grow: 1;
		margin-left: 90px;
		display: flex;
		justify-content: space-between;
		align-items: center;
		color: #ffffff;
		position: relative;
		z-index: 101;
	}
	.top-bar h2 {
		display: none;
	}
	.hamburger {
		display: flex;
		margin-right: 20px;
	}
	.content {
		margin-left: 0;
		padding: 20px;
		box-shadow: none;
	}
	nav ul {
		display: none;
		flex-direction: column;
		text-align: left;
		background-color: #196eb4;
		padding: 10px;
		position: absolute;
		top: 70px; /* Expand menu under "Jombik.sk" and hamburger */
		left: 0; /* Fix to avoid cut off on the right */
		width: 100%;
		z-index: 100;
	}
	.menu-opened nav ul {
		display: flex;
	}

	/* !important: bootstrap-grid.min.css shows .d-md-block from 768 up */
	.lang-separator {
		display: none !important;
	}
}

/* The corner links are content, not header, and keep their own breakpoint */
@media (max-width: 768px) {
	.content-top-right, .right {
		display: none;
	}
}

/* Language switcher styles */
.lang-separator {
    color: rgba(255, 255, 255, 0.6);
    margin: 0 1px;
}

.lang-switcher {
    margin-left: 1px;
    margin-right: 10px;
    display: flex;
    gap: 12px;
}

.lang-icon {
    display: inline-block;
    transition: transform 0.2s, box-shadow 0.2s;
    width: 24px;
    height: 18px;
    border-radius: 3px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.lang-switcher a:hover .lang-icon {
    transform: scale(1.3);
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);
}

/* Flag styles */
.flag-sk {
    background-image: url('/assets/images/language/sk.svg');
    background-size: cover;
    background-position: center;
}

.flag-us {
    background-image: url('/assets/images/language/us.svg');
    background-size: cover;
    background-position: center;
}

/* Utility class for responsive display */
.d-none {
    display: none;
}

@media (min-width: 768px) {
    .d-md-block {
        display: block;
    }
}

/* The switcher is a row of the dropdown from here down */
@media (max-width: 1100px) {
    .lang-switcher {
        margin: 15px 0;
        justify-content: center;
        gap: 25px;
    }
    
    .lang-icon {
        width: 32px;
        height: 24px;
    }
    
    .lang-switcher a:hover .lang-icon {
        transform: scale(1.3);
        box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5);
    }
}

.photos-background {
	position: fixed;
	left: -50px;
	top: -50px;
	width: calc(100vw + 100px);
	height: calc(100vh + 100px);
	background-color: black;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	filter: brightness(0.5) blur(16px);
	z-index: 0;
}

.item-header {
	display: flex;
	align-items: flex-start;
	margin-bottom: 5px;
}

.item-title {
	margin-left: 5px;
}

.item-title a {
	font-weight: bold;
}

/* Keep the original classes for backward compatibility */
.activity-header {
	display: flex;
	align-items: flex-start;
	margin-bottom: 5px;
}

.activity-title {
	margin-left: 5px;
}

.activity-title a {
	font-weight: bold;
}

.season-name {
	font-weight: bold;
}

.nowrap {
	white-space: nowrap;
}

/* Workout tags: an icon and a number. The icon comes from Parameter::getAll() */
.tag-badges {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	margin-top: 8px;
}

.tag-badge {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	background-color: rgba(51, 122, 183, 0.12);
	border: 1px solid #aaaaff;
	border-radius: 3px;
	padding: 2px 4px;
	font-size: 13px;
	/* Not the page's 1.6: the room above and below the figure is this padding
	   and nothing else. See D61 */
	line-height: 1;
	white-space: nowrap;
}

/* The symbol is what a glance lands on, so it sits a size above its number.
   Every shape a parameter can draw as, because the registry chooses. See D61 */
.tag-badge > .fa,
.tag-badge > .tag-glyph,
.tag-badge > .tag-svg {
	font-size: 1.2em;
}

.tag-badge .tag-value {
	font-weight: bold;
}

/* A letter in a ring, where the icon font has no symbol. See Parameter::getAll() */
.tag-glyph {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 1em;
	height: 1em;
	/* 0.16em = the measured rim of the icon font's football; the floor keeps it
	   a whole device pixel at calendar size */
	border: max(1px, 0.16em) solid currentColor;
	border-radius: 50%;
	line-height: 1;
}

.tag-glyph > span {
	/* a capital in the square inscribed in the ring's 0.68em opening */
	font-size: 0.52em;
	font-weight: 700;
}

/* A shape drawn by Parameter::svgMarkHTML(), sized to stand in a row of glyphs */
.tag-svg {
	display: block;
	width: 1em;
	height: 1em;
}

/* The symbol in a front page box: a drawn shape for some parameters, a glyph for
   others, so the size is set here */
.event-glyph {
	display: inline-block;
	width: 1em;
	font-size: 20px;
	line-height: 1;
}

/* One attempt's label on a route. Route::labelHTML() writes the ground colour
   inline; here and not in route.css, which most pages do not load */
.route-label {
	color: #ffffff;
	display: inline-block;
	padding: 1px 6px;
	border-radius: 3px;
	font-size: 12px;
	font-weight: bold;
	line-height: 1.5;
	white-space: nowrap;
	vertical-align: 1px;
}

.route-label-link,
.route-label-link:hover,
.route-label-link:visited {
	text-decoration: none;
	color: inherit;
}

.route-label-link:hover .route-label {
	filter: brightness(1.12);
}

/* A route as one chip: the attempt's label in its colour, then the name */
.route-tag,
.route-tag:hover,
.route-tag:visited {
	display: inline-flex;
	align-items: stretch;
	text-decoration: none;
	color: inherit;
}

.route-tag:hover .route-name {
	background: #b9b9b9;
}

.route-tag:hover .route-label {
	filter: brightness(0.88);
}

/* Metrics identical to .route-label: the two halves sit side by side */
.route-name {
	display: inline-block;
	padding: 1px 6px;
	border-radius: 3px;
	background: #d8d8d8;
	color: #1a1a1a;
	font-size: 12px;
	font-weight: bold;
	line-height: 1.5;
	white-space: nowrap;
	vertical-align: 1px;
	transition: background-color 0.15s ease;
}

.route-tag .route-label {
	border-radius: 3px 0 0 3px;
}

.route-tag .route-name {
	border-radius: 0 3px 3px 0;
}

/* An unlabelled route is one half, and keeps its corners */
.route-tag .route-name:only-child {
	border-radius: 3px;
}

/* The route at the foot of a front page box */
.box-route {
	font-size: 14px;
}

/* Fluid, against the fixed width Bootstrap 3 gives .container: inside the
   indented .content that width overflows the window. See D49 */
.content .container,
.content .container-fluid {
	width: auto;
	max-width: 100%;
}
