@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');
/* @import url('https://fonts.googleapis.com/css2?family=Lobster&display=swap'); */

@font-face {
  font-family: 'Lobster';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/css/fonts/lobsterf.woff2) format('woff2');
}

:root {
	interpolate-size: allow-keywords;
	box-sizing: border-box;
	
	--hh: 68px;
	
	--color-red: #ca1c02;
	--color-gray: #bbb;
	--color-gray-text: #877;			/* #a38989 #aaa; */
	--color-blue: #007b9a;				/* #4e74a5 */
	
	--font: georgia,serif;
	--font-a: arial,tahoma,verdana;
	--font-r: Roboto,arial,tahoma,verdana;
	
	font: 18px var(--font);
	scroll-behavior: smooth;
}

*,
*::before,
*::after {
    box-sizing: inherit;
}
:target {
	scroll-margin-top: calc(20px + var(--hh));
}
a {
	color: currentColor;
	text-underline-offset: clamp(2px, .25em, 10px);
	text-decoration-thickness: 1px;
}
.noselect {
	user-select: none;
}
	
body {
    margin: 0;
    padding: 16px;
    width: 100%;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}
main {
	flex: 1 1 100%;
}
main, header, footer, .menu {
	width: 100%;
	max-width: 988px;
	margin: 0 auto;
    overflow-x: clip;
}
h1 {	
    font: bold 1.7rem / 1.2 var(--font);
	word-spacing: .27ch;
	color: var(--color-blue);
    text-transform: uppercase;
	text-align: center;
    margin: 0;
	padding: 10px;
}
h3 {
    font: 600 1.1em / 1.5 var(--font-r);
    text-transform: uppercase;
    margin: 1em 0 1.5em;
}

header > div {
	display: flex;
	justify-content: space-between;
	gap: 20px;
    color: var(--color-gray);
    /* white-space: nowrap;
	font-size: clamp(12px, 2.5vw, 1.13em); */
    line-height: 1.25;
    text-align: right;
}
  
.logo {
	display: block;
	width: 100%;
	max-width: 437px;
	min-width: 0;
}
.callus {	
	color: var(--color-red);
	font-size: 1.3em;
	font-weight: bold;
}
.screenOverlay, .nav_button {
	display: none;
}
.menu {
    position: sticky;
    top: 0;
    background: #fffe;
	z-index: 999;
}	
nav {
    width: 100%;
    display: flex;
    justify-content: space-between;
	align-items: center;
    gap: 20px;
	margin: 0;
    padding: 15px 0;
    color: var(--color-gray-text);
    text-transform: uppercase;
    font: 600 1rem var(--font-r);
	
/* 	-webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility; */
}
nav a {
	text-decoration: none;
	padding: 5px 0;
	margin: 3px 0;
}
nav a:hover {
	text-decoration: underline;
	color: var(--color-red);
}
.submenu {
	position: relative;
	max-width: 100%;
}
footer .submenu {	
	overflow-x: clip;
}	
.submenu > div {
    height: 0;
    overflow: hidden;
    background: #fff;
    display: flex;
    flex-direction: column;
    padding: 0 20px;
    line-height: 1.5;
	transition: height .3s ease-out .11s, padding .05s linear .1s;
}
.menu .submenu > div {
    position: absolute;
    top: calc(100% + 4px);
    font-size: .9em;
    width: max-content;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}
.menu .submenu:hover > div, 
#show_submenu:checked ~ div, 
.submenu:focus-within > div {
    padding: 10px 20px;
	height: auto;
	transition: height .3s ease-out .01s, padding .05s linear;
}
.submenu > a::after {
    content: '';
    width: 12px;
    height: 12px;
    background-color: var(--color-gray);
    -webkit-mask: url('/img/icons.svg#arrow-b') no-repeat center;
    mask: url("/img/icons.svg#arrow-b") no-repeat center;
    -webkit-mask-size: contain;
    mask-size: contain;
    display: inline-block;
	margin-left: 10px;
    transition: transform 0.3s ease;
}
.menu .submenu:hover > a::after, 
#show_submenu:checked ~ a::after {
	 transform: rotate(180deg) translateY(1px);
}
.submenu > label {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	width: 100%;
	height: 1lh;
	cursor: pointer;
}
#show_submenu:checked + label {
	left: 7ch;
}	
	
.nav_button {
    background: var(--color-red);
    width: 44px;
    height: 44px;
    padding: 3px;
}
.hamburger {
    width: 38px;
    height: 38px;
    padding: 4px 0;
	position: relative;
	transition: all .3s ease-in-out;
	cursor: pointer;
}
.hamburger > div {
	background: #f7f7f7;
	width: 24px;
	height: 3px;
	margin: 5px auto;
	transition: all .3s ease-in-out;
}
#show_menu:checked + header .hamburger {
	transform: rotate(45deg);
}
#show_menu:checked + header .hamburger > div {
	width: 22px;
} 
#show_menu:checked + header .hamburger > div:nth-child(2){
	opacity: 0;
}
#show_menu:checked + header .hamburger > div:nth-child(1){
	transform: translateY(8px);
}
#show_menu:checked + header .hamburger > div:nth-child(3){
	transform: translateY(-8px) rotate(90deg);
}

footer {
	padding: 20px 0 0;
	margin-top: 20px;
	line-height: 1.3;
}
footer a {
	text-decoration: none;
}
footer a:hover {
	text-decoration: underline;
}
footer strong {	
    font-family: var(--font-r);
    font-weight: 600;
}	
footer > div {
	color: var(--color-gray);
	background: var(--color-gray);
	display: flex;
	gap: 1px;
}
footer > div > div {
	padding: 0 20px;
	background: #fff;
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
footer > div > div:first-child {
	padding-left: 0;
}	
footer > div > div:last-child {
	padding-right: 0;
}	
.social {
	line-height: 2;
}	
.social img {
    vertical-align: middle;
    border-radius: 4px;
}	
.blogbtn > a {
    font: 1.2rem 'Lobster',serif;
    background: var(--color-blue);
    color: #fff;
    width: fit-content;
    padding: 10px 20px;
    border-radius: 8px;
	text-align: center;
}
.blogbtn > a:hover {	
	text-decoration: none;
	background: var(--color-red);
}
.blogbtn > span {
	flex: 1 1 50%;
}
.copy {
    font-family: var(--font-r);
    font-weight: 300;
    font-size: .9rem;
    background: #fff;
    display: block;
    width: fit-content;
    margin: 30px auto 0;
	text-align: center;
}	

.txt, content {
	color: var(--color-gray-text);
	line-height: 1.45;
}	
.txt strong {
	color: #999;
}


.banner {
	width: 100%;
	min-height: 250px;
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}
.banner picture {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: #bbb;
}
.banner:not(:has(> picture)) {
	min-height: clamp(2em, 9vh, 4em);
}	
picture + h1 {
	font-size: 2rem;
    color: #fff;
    /* text-shadow: 0 2px 10px rgba(0,0,0,0.5); */
    text-shadow: 0 1px 3px #0009;
}
.banner img {
	width: 100%;
	min-height: 100%;
	object-fit: cover;       /* обрезка без искажения */
	object-position: center;  /* центрирование */
	display: block;
}


.color-r {
	color: var(--color-red);
}
.color-b {
	color: var(--color-blue);
}


@media (max-width: 700px) {
	nav {
		font: .9rem var(--font-a);
	}	
}
@media (max-width: 650px) {
	:root {
		--hh: 0px;
	}	
	header > div {
		flex-direction: column;
		text-align: left;
		/* font-size: clamp(8px, 5.5vw, 1em); */
		font-size: clamp(13px, 4vmin, 1rem);
		margin-bottom: 20px;
	}
	.logo {
		max-width: none;
	}
	.panel {
		display: flex;
		flex-flow: row wrap-reverse;
		justify-content: space-between;
		align-items: center;
		gap: 10px;
	}
	.nav_button {
		display: block;
	}
	.menu {
	    overflow-y: auto;
		position: fixed;
		top: 0;
		left: -100%;
		height: 100%;
		width: fit-content;
		max-width: calc(100% - 65px);
		transition: left .3s linear;
	}
	nav {
		flex-direction: column;
		justify-content: center;
		align-items: start;
		width: fit-content;
		max-width: 100%;
		min-height: 100dvh;
		padding: 20px;
		color: #eee;
		background: var(--color-red);
	}
	nav a:hover {
		color: #fff;
		text-decoration: none; 
	}
	.screenOverlay {
		display: block;
		position: fixed;
		top: 0;
		left: -100%;
		width: 100%;
		height: 100%;
		background-color: #fff0;
		transition: left 0s linear .3s, background-color .3s;
		z-index: 998;
	}
	#show_menu:checked ~ .screenOverlay {
		transition: left 0s, background-color .3s;
		background-color: #fff9;
		left: 0;
	}
	#show_menu:checked ~ .menu {
		left: 0;
	}
	.menu .submenu > div {
		height: auto;
	}
	.menu .submenu > div,
	footer .submenu > div {
		gap: 5px;
		position: static;
		background: transparent;
		box-shadow: none;
		max-width: 100%;
	}
	.menu .submenu > div,
	.menu .submenu:hover > div {
		padding: 10px 10px 0 20px;
	}
	.menu .submenu a::after {
		display: none;
	}	
	
	footer > div {
		flex-direction: column-reverse;
	}	
	footer > div > div {
		padding: 30px 0;
	}
	.blogbtn {
	    flex-flow: row wrap;
		align-items: center;
		gap: 20px;
	}
	.blogbtn > a {
		margin: 0 auto;
	}
}
@media (max-width: 450px) {
	h1 {
		font-size: 1.5rem;
	}
	picture + h1 {
		font-size: 1.6rem;
	}	
}

/* ********************************************************* */

.btn {
	/* width: calc-size(auto, round(up, size, 1px)); */
    width: fit-content;
    align-self: center;
	display: inline-block;
	padding: 10px 20px;
	font: .9rem var(--font-a);
	text-decoration: none;
    text-transform: uppercase;
	background-color: var(--color-red);
	color: #fff;
	user-select: none;
	transition: box-shadow .3s;
}
.btn:hover {
	box-shadow: 0 4px 4px rgba(0, 0, 0, 0.3);
}
.pane:hover .btn.shake {
    animation: shake 3s infinite .5s;
}
.btn:active {
    transform: translateY(2px);
    filter: brightness(.95);
}
@media (max-width: 450px) and (prefers-reduced-motion: no-preference) {
	.pane .btn.shake {
		animation: shake 3s infinite .5s;
	}
}
@keyframes shake {
    0%  { transform: translate(-2px, 1px) rotate(-1deg); }
    2%  { transform: translate(2px, -1px) rotate(1deg); }
    4%  { transform: translate(-2px, 0) rotate(-1deg); }
    6%  { transform: translate(2px, 1px) rotate(1deg); }
    8%  { transform: translate(-1px, -1px) rotate(-0.5deg); }
    10% { transform: translate(1px, 0) rotate(0.5deg); }
    12%, 100% {
        transform: translate(0, 0) rotate(0deg);
    }
}
.btns {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
}

img[loading] {
	background: url(/img/loading.gif) center / clamp(10px, 50%, 50px) no-repeat;
}