:root {
	--blue:#49acd9;
    --blue-dark:#0d6f9f;
	--blue-soft: #e7f7ff;
	--mint: #edfdf9;
	--dark: #17394e;
	--line: #bfe5f6;
	--white: #fff
}
* {
	box-sizing: border-box
}
body {
	margin: 0;
	font-family: Arial, Helvetica, sans-serif;
	color: #17394e;
	background: #e4f7ff;
	min-height: 100vh;
	position: relative
}
body:before {
	content: "";
	position: fixed;
	inset: -12px;
	background:
	linear-gradient(
		rgba(232,247,255,.55),
		rgba(249,253,255,.60)
	),
	url('assets/brillovka1.jpg') center center/cover no-repeat;

	filter: none;
	transform: scale(1.02);

	pointer-events: none;
	z-index: -2;
}
body:after {
	content: "";
	position: fixed;
	inset: 0;
	background: rgba(255,255,255,.28);
	pointer-events: none;
	z-index: -1
}
.hero {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: linear-gradient(120deg,rgba(202,239,255,.94), rgba(255,255,255,.96));
	border-bottom: 1px solid var(--line);
	box-shadow: 0 6px 24px rgba(20,90,125,.11)
}
.topbar {
	max-width: 1180px;
	margin: auto;
	padding: 18px 20px 10px;
	display: flex;
	align-items: center;
	gap: 22px;
	justify-content: space-between;
	flex-wrap: wrap
}
.brand {
	display: flex;
	align-items: center;
	gap: 16px;
	text-decoration: none;
	color: var(--dark);
	font-size: 31px;
	font-weight: 800
}
.brand img {
	width: 74px;
	height: 74px;
	object-fit: contain;
	border-radius: 50%;
	background: #fff;
	padding: 5px;
	box-shadow: 0 8px 20px rgba(13,143,211,.18)
}
nav {
	display: flex;
	gap: 8px;
	flex-wrap: wrap
}
nav a, .button-light, .map-button {
	padding: 10px 14px;
	border-radius: 999px;
	text-decoration: none;
	color: #12516e;
	background: #fff;
	border: 1px solid #cbe8f5;
	font-weight: 700;
	display: inline-block
}
nav a:hover, nav a.active, .map-button {
	background: var(--blue);
	color: #fff
}
.hero-text {
	max-width: 1180px;
	margin: auto;
	padding: 0 20px 18px;
	color: #2c718f;
	display: flex;
	gap: 12px;
	flex-wrap: wrap
}
.hero-text strong {
	color: var(--blue-dark)
}
.wrap {
	position: relative;
	max-width: 1180px;
	margin: 30px auto;
	padding: 0 20px
}
.card {
	background: rgba(255,255,255,.93);
	border: 1px solid var(--line);
	border-radius: 28px;
	box-shadow: 0 20px 50px rgba(30,90,120,.13);
	padding: 32px;
	backdrop-filter: blur(4px)
}
.home-layout {
	display: grid;
	grid-template-columns: minmax(0,1fr) 350px;
	gap: 28px
}
.main-content {
	min-width: 0
}
h1 {
	margin: 0 0 20px;
	color: #0b6da3;
	font-size: 32px
}
h2 {
	color: #0b6da3;
	margin: 26px 0 12px
}
.text {
	font-size: 18px;
	line-height: 1.62
}
.lead {
	background: #eefaff;
	border-left: 5px solid var(--blue);
	padding: 16px;
	border-radius: 14px
}
.map-img {
	display: block;
	width: 100%;
	max-width: 760px;
	margin: 25px auto 0;
	border-radius: 18px;
	border: 1px solid var(--line);
	box-shadow: 0 8px 24px rgba(0,0,0,.08)
}
.map-img.small {
	max-width: 520px
}
.side-column {
	display: flex;
	flex-direction: column;
	gap: 18px;
	align-self: start
}
.news-panel {
background: linear-gradient(180deg,
#eaf8ff,
	#ffffff);
	border: 1px solid var(--line);
	border-radius: 22px;
	padding: 20px;
	box-shadow: 0 10px 24px rgba(20,90,125,.08)
}
.news-panel h2 {
	margin-top: 0
}
.news-item {
	background: #fff;
	border: 1px solid #d5edf8;
	border-radius: 16px;
	padding: 14px;
	margin-bottom: 14px
}
.news-item time {
	display: inline-block;
	color: #fff;
	background: var(--blue);
	border-radius: 999px;
	padding: 5px 10px;
	font-size: 14px;
	font-weight: 800
}
.news-item p {
	margin: 10px 0 0;
	line-height: 1.5
}
.panel-note {
	margin-top: -6px;
	color: #557386;
	font-size: 14px;
	line-height: 1.45
}
.news-item.big {
	font-size: 18px
}
.more-news, .admin-link a {
	color: #0b6da3;
	font-weight: 800
}
.table-scroll {
	overflow-x: auto;
	margin-bottom: 25px
}
table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
	border-radius: 16px;
	overflow: hidden
}
th {
	background: #0d8fd3;
	color: #fff
}
th, td {
	padding: 13px;
	border: 1px solid #d5edf8;
	text-align: left;
	vertical-align: top
}
td.day {
	font-weight: 800;
	color: #0b6da3;
	background: #f0fbff
}
.price-table {
	margin-top: 20px
}
.price-table td:last-child {
	white-space: nowrap;
	text-align: right;
	font-weight: 800;
	color: #0b6da3
}
.logos {
	display: grid;
	grid-template-columns: repeat(auto-fit,minmax(280px,1fr));
	gap: 22px
}
.logos img {
	width: 100%;
	height: 120px;
	object-fit: contain;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 18px;
	padding: 18px;
	box-shadow: 0 8px 18px rgba(20,90,125,.06)
}
.contact-grid {
	display: grid;
	grid-template-columns: 1fr 1.25fr;
	gap: 24px
}
.contact-grid iframe {
	width: 100%;
	min-height: 440px;
	border: 1px solid var(--line);
	border-radius: 18px
}
footer {
	text-align: center;
	padding: 30px;
	color: #4c7185
}
footer a {
	color: #0b6da3
}
.admin textarea,
.admin input {
	width: 100%;
	padding: 12px;
	border: 1px solid #bddfed;
	border-radius: 12px;
	margin: 8px 0 18px;
	font: inherit;
	background: #fff;
}
.admin textarea{
    height:auto;
    min-height:45px;
    resize:vertical;
    overflow:hidden;
    max-width:100%;
}
.admin label {
	font-weight: 800;
	color: #17415d
}
.admin button {
	background: #0d8fd3;
	color: #fff;
	border: 0;
	border-radius: 12px;
	padding: 12px 20px;
	font-weight: 800;
	cursor: pointer
}
.saved {
	color: #087d38;
	font-weight: 800
}
.error {
	color: #b00020;
	font-weight: 800
}
.hint {
	color: #557386;
	font-size: 14px
}
.admin-actions {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	margin-bottom: 20px
}
.edit-row {
	display: grid;
	grid-template-columns: 170px 1fr;
	gap: 12px;
	align-items: start
}
.price-admin div {
	display: grid;
	grid-template-columns: 1fr 160px;
	gap: 12px
}
@media(max-width:900px) {
.home-layout, .contact-grid {
	grid-template-columns: 1fr
}
.side-column {
	order: -1
}
}
@media(max-width:760px) {
.brand {
	font-size: 24px
}
.card {
	padding: 20px
}
h1 {
	font-size: 26px
}
.edit-row, .price-admin div {
	grid-template-columns: 1fr
}
}
.contact-card, .calendar-box {
	background: rgba(255,255,255,.96);
	border: 1px solid var(--line);
	border-radius: 22px;
	padding: 20px;
	box-shadow: 0 10px 24px rgba(20,90,125,.08)
}
.contact-card h2, .calendar-box h2 {
	margin-top: 0
}
.contact-card p {
	line-height: 1.55
}
.phone {
	font-size: 20px;
	font-weight: 800;
	color: #0b6da3
}
.calendar-title {
	text-align: center;
	font-size: 20px;
	font-weight: 800;
	color: #0b6da3;
	margin-bottom: 12px;
	text-transform: capitalize
}
.mini-calendar {
	width: 100%;
	border-collapse: separate;
	border-spacing: 5px;
	background: transparent
}
.mini-calendar th {
	background: #dff4ff;
	color: #0b6da3;
	border: 0;
	border-radius: 9px;
	padding: 7px;
	font-size: 13px;
	text-align: center
}
.mini-calendar td {
	background: #fff;
	border: 1px solid #d5edf8;
	border-radius: 10px;
	text-align: center;
	padding: 8px;
	font-weight: 700;
	color: #17415d
}
.mini-calendar td.today {
	background: #0d8fd3;
	color: #fff;
	border-color: #0d8fd3;
	box-shadow: 0 5px 12px rgba(13,143,211,.24)
}
.toolbar {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin: 4px 0 10px;
}

.toolbar button {
    background: #ffffff;
    color: #12516e;
    border: 1px solid #cbe8f5;
    border-radius: 999px;
    padding: 8px 13px;
    font-weight: 800;
    cursor: pointer;
}

.toolbar button:hover {
    background: var(--blue);
    color: #fff;
}

.news-item h3,
.news-item h2 {
    margin: 12px 0 6px;
    color: #0b6da3;
}

.news-item h3 a,
.news-item h2 a {
    color: #0b6da3;
    text-decoration: none;
}

.news-item h3 a:hover,
.news-item h2 a:hover {
    text-decoration: underline;
}

.read-more {
    display: inline-block;
    margin-top: 10px;
    color: #0b6da3;
    font-weight: 800;
    text-decoration: none;
}

.read-more:hover {
    text-decoration: underline;
}

.news-detail {
    background: #fff;
    border: 1px solid #d5edf8;
    border-radius: 20px;
    padding: 22px;
}

.news-detail time {
    display: inline-block;
    color: #fff;
    background: var(--blue);
    border-radius: 999px;
    padding: 6px 12px;
    font-size: 14px;
    font-weight: 800;
}

.news-detail h2 {
    margin-top: 16px;
    font-size: 28px;
}

.news-edit-row {
    grid-template-columns: 170px 1fr;
    background: #f6fcff;
    border: 1px solid #d5edf8;
    border-radius: 16px;
    padding: 14px;
    margin-bottom: 14px;
}


/* Mobilní hamburger menu */
.menu-toggle {
    display: none;
    background: var(--blue);
    color: #fff;
    border: 0;
    border-radius: 999px;
    padding: 10px 16px;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 6px 16px rgba(13,143,211,.20);
}

@media(max-width:760px) {
    .topbar {
        align-items: center;
    }

    .menu-toggle {
        display: inline-block;
        margin-left: auto;
    }

    #main-menu {
        display: none;
        width: 100%;
        flex-direction: column;
        gap: 8px;
        padding-top: 12px;
    }

    body.menu-open #main-menu {
        display: flex;
    }

    #main-menu a {
        width: 100%;
        text-align: center;
        padding: 12px 14px;
    }

    .brand img {
        width: 56px;
        height: 56px;
    }

    .hero-text {
        display: none;
    }

    .hero {
        position: sticky;
        top: 0;
        z-index: 1000;
    }
}


.news-buttons {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 10px;
}

.news-buttons button {
    min-width: 120px;
}
.cookie-info{
    margin-top:10px;
    font-size:13px;
    color:#567;
    opacity:.9;
}

.footer-links{
    margin-bottom:8px;
}
.brand{
    display:flex;
    align-items:center;
    gap:18px;
    text-decoration:none;
    color:var(--dark);
}

.brand img{
    width:74px;
    height:74px;
    object-fit:contain;
    border-radius:50%;
    background:#fff;
    padding:5px;
    box-shadow:0 8px 20px rgba(13,143,211,.18);
}

.brand-text{
    display:flex;
    flex-direction:column;
    justify-content:center;
    line-height:1.1;
}

.brand-text strong{
    font-size:31px;
    font-weight:800;
    color:var(--dark);
}

.brand-text span{
    margin-top:4px;
    font-size:18px;
    font-weight:700;
    color:#1d6d93;
}
@media(max-width:760px){

    .brand{
        gap:12px;
    }

    .brand img{
        width:56px;
        height:56px;
    }
.brand-text strong{
    font-size:24px;
}

.brand-text span{
    font-size:14px;
}

    .brand-text strong{
        font-size:28px;
    }

    .brand-text span{
        font-size:15px;
        margin-top:4px;
    }
}


/* Přepínání měsíců v kalendáři */
.calendar-nav{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:12px;
}

.calendar-nav a{
    width:34px;
    height:34px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:var(--blue);
    color:#fff;
    text-decoration:none;
    font-size:24px;
    font-weight:800;
    transition:.2s;
}

.calendar-nav a:hover{
    background:var(--blue-dark);
    transform:scale(1.05);
}

.calendar-nav .calendar-title{
    margin-bottom:0;
    flex:1;
}






/* Velikost editačních polí v administraci */
.admin textarea{
    height:auto;
    min-height:45px;
    resize:vertical;
    overflow:auto;
    max-width:100%;
}

/* Textarea v prohlížeči nepůjde menší než cca jeden řádek textu.
   Výšku si můžete ručně zvětšit i zase zmenšit zpět. */


.back-to-top{
    position:fixed;
    right:20px;
    bottom:20px;
    width:52px;
    height:52px;
    border:none;
    border-radius:50%;
    background:#1b84c6;
    color:#fff;
    font-size:28px;
    font-weight:700;
    cursor:pointer;
    box-shadow:0 4px 14px rgba(0,0,0,.2);
    opacity:0;
    visibility:hidden;
    transform:translateY(20px);
    transition:.25s;
    z-index:9999;
}

.back-to-top.show{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
}

.back-to-top:hover{
    background:#12679c;
}






/* Kalendář: den s novinkou má zelené pouze číslo */
.mini-calendar td.has-news{
    background:#fff;
    border-color:#d5edf8;
}

.mini-calendar td.has-news a{
    color:#159447;
    font-weight:900;
    text-decoration:none;
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
    line-height:1;
}

.mini-calendar td.has-news a:hover{
    text-decoration:underline;
}

.mini-calendar td.today.has-news{
    background:#0d8fd3;
    border-color:#0d8fd3;
}

.mini-calendar td.today.has-news a{
    color:#fff;
}
