Files
olimparena/assets/css/main.css
2026-06-15 11:09:51 +03:00

2029 lines
41 KiB
CSS

@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;700&family=Montserrat:wght@100;300;400;500;600;700&display=swap");
/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: "";
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
:root {
color-scheme: dark;
}
* {
box-sizing: border-box;
}
html,
body {
background: #121212;
color: #ffffff;
font-family: "Inter", "Segoe UI", "Segoe UI Variable", "Helvetica Neue", Arial, sans-serif;
}
body {
line-height: 1;
font-weight: 400;
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: "Montserrat", "Inter", "Segoe UI", "Segoe UI Variable", "Helvetica Neue", Arial, sans-serif;
font-weight: 700;
}
p,
li,
a,
input,
select,
textarea,
button,
span {
font-family: "Inter", "Segoe UI", "Segoe UI Variable", "Helvetica Neue", Arial, sans-serif;
}
strong,
b {
font-weight: 500;
}
a {
color: inherit;
text-decoration: none;
}
img {
display: block;
max-width: 100%;
}
@keyframes fade-up {
from {
opacity: 0;
transform: translateY(24px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes slide-down {
from {
opacity: 0;
transform: translateY(-16px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.container {
width: 100%;
max-width: 1400px;
margin: 0 auto;
padding: 0 24px;
}
.site {
position: relative;
overflow: hidden;
}
.scroll-reveal {
opacity: 0;
transform: translateY(26px);
transition: opacity 0.7s ease, transform 0.7s ease;
transition-delay: var(--reveal-delay, 0ms);
will-change: opacity, transform;
}
.scroll-reveal.is-visible {
opacity: 1;
transform: translateY(0);
}
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 18px 24px;
border-radius: 14px;
border: 0;
background: #cf1717;
color: #ffffff;
font-size: 16px;
font-weight: 500;
line-height: 24px;
box-shadow: 0 25px 50px rgba(231, 0, 11, 0.5);
cursor: pointer;
transition: transform 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease;
}
.btn:hover {
transform: translateY(-2px);
}
.btn:active {
transform: translateY(0);
}
.btn--small {
padding: 10px 24px;
font-size: 14px;
line-height: 20px;
/*box-shadow: 0 10px 15px rgba(231, 0, 11, 0.4), 0 4px 6px rgba(231, 0, 11, 0.4);*/
font-weight: 400;
text-transform: uppercase;
}
.btn--ghost {
border: 2px solid rgba(255, 255, 255, 0.2);
background: rgba(41, 49, 51, 0.6);
box-shadow: none;
}
.header {
position: fixed;
inset: 0 0 auto;
z-index: 20;
border-bottom: 2px solid rgba(207, 23, 23, 0.3);
background: rgba(18, 18, 18, 0.95);
animation: slide-down 0.65s ease both;
}
.header__inner {
display: flex;
align-items: center;
justify-content: space-between;
min-height: 72px;
}
.header__nav {
display: flex;
align-items: center;
gap: 32px;
margin-left: auto;
margin-right: 32px;
}
.header__nav a {
color: rgba(255, 255, 255, 0.8);
font-size: 14px;
font-weight: 500;
line-height: 20px;
transition: color 0.2s ease;
}
.header__nav a:hover {
color: #ffffff;
}
.logo {
display: inline-flex;
/*width: 137px;*/
/*height: 30px;*/
width: 172px;
height: auto;
margin-top: 5px;
}
.logo img {
width: 100%;
height: 100%;
object-fit: cover;
}
.hero {
position: relative;
/*min-height: 852px;*/
min-height: 750px;
padding-top: 72px;
}
.hero__bg {
position: absolute;
filter: blur(3px);
inset: 0;
background: linear-gradient(90deg, rgba(18, 18, 18, 0.9) 0%, rgba(18, 18, 18, 0.7) 50%, rgba(0, 0, 0, 0) 100%), url("../images/renders/led.jpg") center/cover no-repeat;
}
.hero__bg::after {
content: "";
position: absolute;
inset: 0;
background-image: repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.045) 0 1px, transparent 1px 8px), repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.045) 0 1px, transparent 1px 8px);
mix-blend-mode: soft-light;
}
.hero__content {
position: relative;
z-index: 1;
max-width: 1000px;
margin-left: 528px;
padding-top: 104px;
padding-bottom: 100px;
}
.hero__content > * {
opacity: 0;
animation: fade-up 0.7s ease forwards;
}
.hero__content h1 {
animation-delay: 0.15s;
}
.hero__content p {
animation-delay: 0.28s;
}
.hero__content .hero__tags {
animation-delay: 0.4s;
}
.hero__content .hero__actions {
animation-delay: 0.52s;
}
.hero h1 {
max-width: 1000px;
/*margin-bottom: 24px;*/
margin-bottom: 45px;
font-size: 72px;
font-weight: 700;
line-height: 90px;
}
.hero h1 span {
color: #cf1717;
font-family: Montserrat, Inter, Segoe UI, Segoe UI Variable, Helvetica Neue, Arial, sans-serif;
font-weight: 700;
}
.hero p {
max-width: 768px;
margin-bottom: 32px;
color: rgba(255, 255, 255, 0.8);
font-size: 23px;
line-height: 1.5;
font-weight: 300;
}
.hero__tags {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-bottom: 15px;
}
.hero__tags li {
padding: 20px 20px;
border: 1px solid rgba(207, 23, 23, 0.3);
/*background: rgba(41, 49, 51, 0.6);*/
font-size: 14px;
font-weight: 300;
line-height: 20px;
white-space: nowrap;
transition: border-color 0.25s ease, background-color 0.25s ease, transform 0.25s ease;
background-color: rgba(255, 255, 255, 0.2);
backdrop-filter: blur(53px);
-webkit-backdrop-filter: blur(10px);
border: 0px solid rgba(255, 255, 255, 0.3);
border-radius: 12px;
}
.hero__tags li:hover {
transform: translateY(-1px);
border-color: rgba(207, 23, 23, 0.55);
background: rgba(41, 49, 51, 0.9);
}
.hero__actions {
display: flex;
gap: 16px;
}
.hero__actions .btn {
font-size: 14px;
font-weight: 600;
text-transform: uppercase;
}
.highlights {
background: linear-gradient(90deg, #293133, #20272a);
padding: 96px 0;
}
.highlights__grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 24px;
}
.info-card {
background: rgba(18, 18, 18, 0.4);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 16px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.1);
min-height: 178px;
padding: 40px;
transition: transform 0.3s ease, border-color 0.3s ease, background-color 0.3s ease;
}
.info-card:hover {
transform: translateY(-6px);
border-color: rgba(207, 23, 23, 0.45);
background: rgba(18, 18, 18, 0.62);
}
.info-card h3 {
margin-bottom: 8px;
font-size: 20px;
font-weight: 500;
line-height: 28px;
}
.info-card p {
color: rgba(255, 255, 255, 0.7);
font-size: 16px;
line-height: 1.5;
font-weight: 200;
}
.section {
position: relative;
padding: 96px 0;
}
.section > .container {
position: relative;
z-index: 1;
}
.section--pattern {
background: #121212;
}
.section--pattern::before {
content: "";
position: absolute;
inset: 0;
background-image: radial-gradient(circle at 80px 80px, rgba(207, 23, 23, 0.25) 0 2px, transparent 2px 70px), radial-gradient(circle at 120px 120px, rgba(255, 255, 255, 0.06) 0 1px, transparent 1px 48px);
background-size: 320px 320px;
opacity: 0.4;
pointer-events: none;
}
.section__head {
margin-bottom: 64px;
text-align: center;
}
.section__head h2 {
margin-bottom: 16px;
font-size: 48px;
font-weight: 700;
line-height: 1;
}
.section__head p {
color: rgba(255, 255, 255, 0.8);
font-size: 22px;
line-height: 1.15;
font-weight: 200;
}
.infrastructure {
background: linear-gradient(90deg, #293133 0%, #2f3b40 100%);
}
.infrastructure .section__head {
margin-bottom: 56px;
}
.infrastructure .section__head h2 {
font-size: 48px;
font-weight: 700;
line-height: 1.05;
}
.infrastructure .section__head p {
font-size: 22px;
font-weight: 200;
line-height: 1.2;
}
.infrastructure__grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 24px;
}
.feature-card {
background: rgba(18, 18, 18, 0.4);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 16px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.1);
display: flex;
flex-direction: column;
align-items: center;
justify-content: flex-start;
min-height: 238px;
padding: 32px 26px 30px;
text-align: center;
transition: transform 0.3s ease, border-color 0.3s ease, background-color 0.3s ease;
}
.feature-card:hover {
transform: translateY(-5px);
border-color: rgba(207, 23, 23, 0.55);
background: rgba(18, 18, 18, 0.6);
}
.feature-card__icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 64px;
height: 64px;
margin-bottom: 18px;
border-radius: 18px;
background: #cf1717;
color: #ffffff;
box-shadow: 0 12px 24px rgba(231, 0, 11, 0.5);
}
.feature-card__icon svg {
width: 32px;
height: 32px;
display: block;
}
.feature-card h3 {
margin-bottom: 7px;
font-size: 18px;
/*font-weight: 700;*/
line-height: 1.2;
font-weight: 600;
}
.feature-card p {
color: rgba(255, 255, 255, 0.7);
font-size: 16px;
line-height: 1.3;
font-weight: 300;
}
.objects {
background-image: url(../images/bg-pattern.svg);
background-position: center;
}
.objects .section__head {
margin-bottom: 64px;
}
.object-card {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 32px;
margin-bottom: 48px;
}
.object-card:last-child {
margin-bottom: 0;
}
.object-card--reverse .object-card__image {
order: 2;
}
.object-card--reverse .object-card__content {
order: 1;
}
.object-card__image {
min-height: 400px;
border-radius: 16px;
background-size: cover;
background-position: center;
transition: transform 0.5s ease;
}
.object-card__content {
background: rgba(18, 18, 18, 0.4);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 16px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.1);
align-self: center;
min-height: 338px;
padding: 33px;
transition: transform 0.3s ease, border-color 0.3s ease;
display: flex;
flex-direction: column;
justify-content: center;
}
.object-card__content h3 {
margin-bottom: 16px;
font-size: 34px;
font-weight: 700;
line-height: 1.1;
font-weight: 600;
}
.object-card__content p {
margin-bottom: 24px;
color: rgba(255, 255, 255, 0.7);
font-size: 18px;
line-height: 28px;
font-weight: 300;
}
.object-card__content a.btn {
min-width: 200px;
width: 40%;
padding: 10px 24px;
border-radius: 10px;
font-size: 14px;
text-transform: uppercase;
font-weight: 400;
}
.object-card__content ul {
margin-bottom: 24px;
}
.object-card__content li {
position: relative;
padding-left: 14px;
color: rgba(255, 255, 255, 0.8);
font-size: 16px;
line-height: 28px;
}
.object-card__content li + li {
margin-top: 8px;
}
.object-card__content li::before {
content: "";
position: absolute;
left: 0;
top: 12px;
width: 6px;
height: 6px;
border-radius: 50%;
background: #cf1717;
}
.object-card:hover .object-card__image {
transform: scale(1.02);
}
.object-card:hover .object-card__content {
transform: translateY(-4px);
border-color: rgba(207, 23, 23, 0.4);
}
.services {
background: #121212;
background-image: url(../images/bg-pattern.svg);
background-position: center;
}
.services .section__head {
margin-bottom: 52px;
}
.services .section__head h2 {
font-size: 48px;
line-height: 1.05;
}
.services .section__head p {
font-size: 22px;
line-height: 1.2;
}
.services__grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 18px;
width: 100%;
max-width: 896px;
margin: 0 auto;
}
.services__cta {
margin-top: 48px;
text-align: center;
}
.services__cta-btn {
width: min(100%, 560px);
min-height: 60px;
padding: 16px 26px;
font-size: 18px;
line-height: 1.2;
box-shadow: 0 18px 34px rgba(231, 0, 11, 0.45);
}
.service-card {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 10px;
position: relative;
overflow: hidden;
min-height: 152px;
padding: 20px;
border: 1px solid rgba(207, 23, 23, 0.45);
border-radius: 16px;
background: #1d252b;
color: #ffffff;
text-align: center;
transition: transform 0.25s ease, border-color 0.25s ease, background-color 0.25s ease, box-shadow 0.25s ease;
}
.service-card__title {
display: block;
font-family: "Montserrat", "Inter", "Segoe UI", "Segoe UI Variable", "Helvetica Neue", Arial, sans-serif;
font-size: 21px;
font-weight: 500;
line-height: 1.15;
position: relative;
z-index: 1;
transition: opacity 0.25s ease, transform 0.25s ease;
}
.service-card__description {
position: absolute;
inset: 0;
z-index: 2;
display: flex;
align-items: center;
justify-content: center;
padding: 16px 18px;
text-align: center;
background: rgb(7, 10, 12);
opacity: 0;
transform: translateY(10px);
color: rgba(255, 255, 255, 0.7);
font-size: 16px;
font-weight: 400;
line-height: 1.45;
pointer-events: none;
transition: opacity 0.25s ease, transform 0.25s ease;
}
.service-card:hover, .service-card:focus-visible {
transform: translateY(-3px);
border-color: rgba(207, 23, 23, 0.75);
background: #222c33;
box-shadow: 0 14px 30px rgba(0, 0, 0, 0.3);
}
.service-card:hover .service-card__title, .service-card:focus-visible .service-card__title {
opacity: 0.25;
transform: scale(0.98);
}
.service-card:hover .service-card__description, .service-card:focus-visible .service-card__description {
opacity: 1;
transform: translateY(0);
}
.pricing {
background: linear-gradient(90deg, #293133, #20272a);
}
.pricing .section__head {
margin-bottom: 44px;
}
.pricing__list {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 18px;
margin-bottom: 28px;
}
@media (max-width: 768px) {
.pricing__list {
grid-template-columns: repeat(1, minmax(0, 1fr));
}
}
.pricing__note {
margin-bottom: 30px;
color: rgba(255, 255, 255, 0.8);
font-size: 14px;
line-height: 1.45;
text-align: center;
font-weight: 200;
}
.pricing__cta {
text-align: center;
}
.pricing__cta-btn {
width: min(100%, 420px);
min-height: 60px;
padding: 16px 26px;
font-size: 18px;
line-height: 1.2;
}
.pricing-item {
background: rgba(18, 18, 18, 0.4);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 16px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.1);
min-height: 144px;
padding: 40px;
}
.pricing-item h3 {
margin-bottom: 10px;
font-size: 22px;
font-weight: 700;
line-height: 1.25;
}
.pricing-item p {
color: #cf1717;
font-size: 24px;
font-weight: 700;
line-height: 1.2;
}
@media (max-width: 600px) {
.pricing-item {
padding: 40px;
min-height: auto;
text-align: center;
}
.pricing-item h3 {
font-size: 16px;
}
.pricing-item p {
font-size: 16px;
color: #dfdfdf;
}
}
.gallery {
background: linear-gradient(90deg, #293133, #20272a);
}
.gallery__grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 24px;
}
.gallery__item {
aspect-ratio: 16/10;
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 16px;
background-size: cover;
background-position: center;
transition: transform 0.45s ease, border-color 0.3s ease, filter 0.3s ease;
}
.gallery__item:hover {
transform: scale(1.03);
border-color: rgba(207, 23, 23, 0.55);
filter: saturate(1.08);
}
.facts {
background: #121212;
background-image: url(../images/bg-pattern.svg);
background-position: center;
}
.reviews {
--reviews-visible: 3;
--reviews-gap: 24px;
background: linear-gradient(90deg, #293133, #20272a);
}
.reviews .section__head {
margin-bottom: 44px;
}
.reviews__slider {
display: grid;
grid-template-columns: auto 1fr auto;
align-items: center;
gap: 16px;
}
.reviews__viewport {
overflow: hidden;
}
.reviews__track {
display: flex;
gap: var(--reviews-gap);
transition: transform 0.45s ease;
will-change: transform;
}
.reviews__nav {
width: 48px;
height: 48px;
border: 1px solid rgba(255, 255, 255, 0.22);
border-radius: 12px;
background: rgba(255, 255, 255, 0.03);
color: rgba(255, 255, 255, 0.88);
font-size: 24px;
line-height: 1;
cursor: pointer;
transition: transform 0.2s ease, border-color 0.2s ease, background-color 0.2s ease, opacity 0.2s ease;
}
.reviews__nav:hover:not(:disabled) {
transform: translateY(-1px);
border-color: rgba(207, 23, 23, 0.75);
background: rgba(207, 23, 23, 0.18);
}
.reviews__nav:disabled {
opacity: 0.35;
cursor: default;
}
.reviews__dots {
display: flex;
justify-content: center;
gap: 12px;
margin-top: 18px;
}
.reviews__dot {
width: 16px;
height: 16px;
border: 0;
border-radius: 999px;
background: rgba(255, 255, 255, 0.17);
cursor: pointer;
transition: width 0.2s ease, background-color 0.2s ease;
}
.reviews__dot.is-active {
width: 16px;
background: #cf1717;
}
.review-card {
background: rgba(18, 18, 18, 0.4);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 16px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.1);
flex: 0 0 calc((100% - (var(--reviews-visible) - 1) * var(--reviews-gap)) / var(--reviews-visible));
min-height: 250px;
padding: 30px 28px;
display: flex;
flex-direction: column;
justify-content: space-between;
transition: transform 0.3s ease, border-color 0.3s ease;
margin-top: 5px;
}
.review-card:hover {
transform: translateY(-5px);
border-color: rgba(207, 23, 23, 0.4);
}
.review-card p {
margin-bottom: 24px;
color: rgba(255, 255, 255, 0.8);
font-size: 16px;
line-height: 1.5;
font-weight: 200;
font-style: italic;
}
.review-card strong {
display: block;
margin-bottom: 10px;
font-size: 16px;
font-weight: 400;
line-height: 1.2;
}
.review-card__meta {
padding-top: 14px;
border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.review-card__meta a {
/*color: #ffd2d2;*/
color: rgba(223, 223, 223, 0.2901960784);
font-size: 14px;
font-weight: 500;
line-height: 1.4;
text-decoration: underline;
text-underline-offset: 2px;
text-decoration-thickness: 1px;
/*text-decoration-color: rgba(255, 210, 210, 0.75);*/
text-decoration-color: rgba(169, 169, 169, 0.28);
transition: color 0.2s ease, text-decoration-color 0.2s ease;
}
.review-card__meta a:hover {
color: #ffe4e4;
text-decoration-color: #ffe4e4;
}
.stats {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 32px;
}
.stats__item {
background: rgba(18, 18, 18, 0.4);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 16px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.1);
border: 0;
background: #cf1717;
min-height: 248px;
padding: 34px 24px;
text-align: center;
transition: transform 0.3s ease;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.stats__item:hover {
transform: translateY(-5px);
}
.stats strong {
display: block;
margin-bottom: 14px;
color: #ffffff;
font-size: clamp(80px, 9vw, 120px);
font-weight: 700;
line-height: 0.9;
letter-spacing: 0.01em;
}
.stats span {
color: #ffffff;
font-size: 19px;
font-weight: 500;
line-height: 1.25;
max-width: 320px;
}
.booking {
background: linear-gradient(90deg, #293133, #20272a);
}
.booking__wrap {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 48px;
}
.booking h2 {
margin-bottom: 24px;
font-size: 48px;
font-weight: 700;
line-height: 1.02;
}
.booking p {
margin-bottom: 32px;
color: rgba(255, 255, 255, 0.8);
font-size: 19px;
font-weight: 200;
line-height: 1.4;
}
.booking form {
display: flex;
flex-direction: column;
gap: 14px;
}
.booking__field {
display: flex;
flex-direction: column;
gap: 8px;
}
.booking__field label {
color: rgba(255, 255, 255, 0.88);
font-size: 14px;
font-weight: 500;
line-height: 1.25;
display: none;
}
.booking__field .required-mark {
color: #cf1717;
}
.booking__submit {
width: 100%;
height: 64px;
margin-top: 10px;
padding: 0 24px;
font-size: 19px;
font-weight: 500;
line-height: 1.2;
}
.booking__consent {
display: flex;
align-items: flex-start;
gap: 10px;
margin-top: 2px;
color: rgba(255, 255, 255, 0.8);
font-size: 14px;
font-weight: 400;
line-height: 1.45;
}
.booking__consent input[type=checkbox] {
width: 18px;
height: 18px;
margin-top: 2px;
accent-color: #cf1717;
flex: 0 0 18px;
}
.booking__consent a {
color: #ffd2d2;
text-decoration: underline;
text-underline-offset: 2px;
}
.booking input,
.booking select,
.booking textarea {
width: 100%;
padding: 0 20px;
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 14px;
background: rgba(18, 18, 18, 0.35);
color: #ffffff;
font-size: 16px;
font-weight: 400;
line-height: 1.35;
outline: none;
transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.booking input:focus,
.booking select:focus,
.booking textarea:focus {
border-color: rgba(207, 23, 23, 0.85);
box-shadow: 0 0 0 3px rgba(207, 23, 23, 0.25);
}
.booking input::placeholder,
.booking select::placeholder,
.booking textarea::placeholder {
color: rgba(255, 255, 255, 0.45);
}
.booking input,
.booking select {
height: 56px;
}
.booking select {
/* 1. Сбрасываем стандартный стиль браузера (стрелка исчезнет) */
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
background-color: #1f2325;
}
.booking textarea {
min-height: 130px;
padding: 16px 20px;
resize: vertical;
}
.contacts-card,
.hours-card {
background: rgba(18, 18, 18, 0.4);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 16px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.1);
padding: 33px;
transition: transform 0.3s ease, border-color 0.3s ease;
}
.contacts-card:hover,
.hours-card:hover {
transform: translateY(-4px);
border-color: rgba(207, 23, 23, 0.4);
}
.contacts-card {
margin-bottom: 32px;
}
.contacts-card h3 {
margin-bottom: 30px;
font-size: 24px;
font-weight: 700;
line-height: 1.05;
}
.contacts-card ul {
display: flex;
flex-direction: column;
gap: 18px;
}
.contacts-card li {
display: flex;
align-items: flex-start;
gap: 16px;
}
.contacts-card__icon {
flex: 0 0 24px;
width: 24px;
height: 24px;
margin-top: 2px;
}
.contacts-card__icon svg {
width: 24px;
height: 24px;
display: block;
}
.contacts-card__item-content strong {
display: block;
margin-bottom: 8px;
font-size: 16px;
font-weight: 500;
line-height: 1.1;
}
.contacts-card__item-content a {
color: rgba(255, 255, 255, 0.9);
font-size: 16px;
line-height: 1.8;
text-decoration: underline;
text-underline-offset: 2px;
}
.contacts-card__item-content span {
color: rgba(255, 255, 255, 0.8);
font-size: 16px;
line-height: 1.45;
font-weight: 300;
}
.contacts-card__item-content small {
display: block;
margin-top: 6px;
color: rgba(255, 255, 255, 0.6);
font-size: 13px;
line-height: 1.35;
}
.contacts-card__links {
margin-top: 24px;
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.contacts-card__messenger {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 44px;
width: 44px;
height: 44px;
padding: 0;
border: 1px solid rgba(255, 255, 255, 0.2);
border-radius: 12px;
background: rgba(255, 255, 255, 0.04);
color: rgba(255, 255, 255, 0.92);
text-decoration: none;
transition: transform 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}
.contacts-card__messenger:hover {
transform: translateY(-1px);
border-color: rgba(207, 23, 23, 0.7);
background: rgba(207, 23, 23, 0.18);
}
.contacts-card__messenger--secondary {
background: rgba(255, 255, 255, 0.02);
}
.contacts-card__action-icon {
width: 20px;
height: 20px;
display: inline-flex;
align-items: center;
justify-content: center;
}
.contacts-card__action-icon svg {
width: 20px;
height: 20px;
display: block;
color: currentColor;
opacity: 0.9;
}
.contacts-card__links--social {
margin-top: 14px;
}
.contacts-card__links--social a {
display: inline-flex;
align-items: center;
justify-content: center;
width: 44px;
height: 44px;
border-radius: 12px;
border: 1px solid rgba(255, 255, 255, 0.2);
color: rgba(255, 255, 255, 0.85);
background: rgba(255, 255, 255, 0.03);
transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
text-decoration: none;
}
.contacts-card__links--social a:hover {
border-color: rgba(207, 23, 23, 0.8);
color: #ffffff;
background: rgba(207, 23, 23, 0.2);
}
.hours-card h4 {
margin-bottom: 16px;
font-size: 16px;
font-weight: 700;
line-height: 1.2;
}
.hours-card p {
margin: 0;
font-size: 16px;
line-height: 1.25;
}
.map-card__embed {
width: 100%;
margin-top: 18px;
margin-bottom: 16px;
overflow: hidden;
border-radius: 14px;
border: 1px solid rgba(255, 255, 255, 0.15);
}
.map-card__embed iframe {
width: 100%;
min-height: 260px;
border: 0;
display: block;
}
.map-card__actions {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.map-card__actions a {
display: inline-flex;
align-items: center;
justify-content: center;
width: 44px;
height: 44px;
border: 1px solid rgba(255, 255, 255, 0.2);
border-radius: 12px;
background: rgba(255, 255, 255, 0.03);
color: rgba(255, 255, 255, 0.8);
text-decoration: none;
transition: border-color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}
.map-card__actions a:hover {
transform: translateY(-1px);
border-color: rgba(207, 23, 23, 0.75);
background: rgba(207, 23, 23, 0.18);
}
.map-card__action-icon {
width: 20px;
height: 20px;
display: inline-flex;
align-items: center;
justify-content: center;
color: #ffd5d5;
}
.map-card__action-icon svg {
width: 20px;
height: 20px;
display: block;
}
.map-card__route {
min-width: 44px;
width: 44px;
height: 44px;
padding: 0;
box-shadow: none;
}
.booking-modal {
position: fixed;
inset: 0;
z-index: 60;
display: grid;
place-items: center;
padding: 20px;
opacity: 0;
visibility: hidden;
pointer-events: none;
transition: opacity 0.25s ease, visibility 0.25s ease;
}
.booking-modal.is-open {
opacity: 1;
visibility: visible;
pointer-events: auto;
}
.booking-modal__overlay {
position: absolute;
inset: 0;
background: radial-gradient(circle at 30% 10%, rgba(207, 23, 23, 0.2), transparent 55%), rgba(0, 0, 0, 0.72);
backdrop-filter: blur(4px);
}
.booking-modal__content {
position: relative;
width: min(100%, 620px);
padding: 36px 30px 30px;
border: 1px solid rgba(207, 23, 23, 0.52);
border-radius: 24px;
background: linear-gradient(140deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0)), linear-gradient(165deg, #202a30, #181f24 62%);
box-shadow: 0 26px 58px rgba(0, 0, 0, 0.52);
}
.booking-modal__status {
display: inline-flex;
align-items: center;
justify-content: center;
width: 56px;
height: 56px;
margin-bottom: 18px;
border-radius: 16px;
background: rgba(207, 23, 23, 0.18);
border: 1px solid rgba(207, 23, 23, 0.45);
color: #ffd9d9;
font-size: 28px;
font-weight: 700;
line-height: 1;
}
.booking-modal__title {
margin-bottom: 12px;
padding-right: 42px;
font-size: 32px;
font-weight: 700;
line-height: 1.1;
}
.booking-modal__text {
margin-bottom: 24px;
color: rgba(255, 255, 255, 0.8);
font-size: 18px;
font-weight: 500;
line-height: 1.45;
}
.booking-modal__actions {
display: flex;
}
.booking-modal__btn {
min-width: 220px;
}
.booking-modal__close {
position: absolute;
top: 14px;
right: 14px;
width: 36px;
height: 36px;
border: 0;
border-radius: 50%;
background: rgba(255, 255, 255, 0.12);
color: rgba(255, 255, 255, 0.92);
font-size: 22px;
line-height: 1;
cursor: pointer;
transition: background-color 0.2s ease, transform 0.2s ease;
}
.booking-modal__close:hover {
background: rgba(207, 23, 23, 0.34);
transform: rotate(90deg);
}
.legal-page-body {
background: #121212;
}
.legal-site {
min-height: 100vh;
}
.legal-page {
position: relative;
min-height: 100vh;
padding: 136px 0 88px;
overflow: hidden;
background: linear-gradient(180deg, rgba(18, 18, 18, 0.2), rgba(18, 18, 18, 0.92) 42%, rgb(18, 18, 18)), #121212;
}
.legal-page__bg {
position: absolute;
inset: 0;
background: linear-gradient(90deg, rgba(18, 18, 18, 0.92), rgba(18, 18, 18, 0.72)), url("../images/renders/led.jpg") center/cover no-repeat;
filter: blur(1px);
transform: scale(1.01);
opacity: 0.42;
}
.legal-page__bg::after {
content: "";
position: absolute;
inset: 0;
background-image: repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.035) 0 1px, transparent 1px 8px), repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.035) 0 1px, transparent 1px 8px);
mix-blend-mode: soft-light;
}
.legal-page__inner {
position: relative;
z-index: 1;
}
.legal-page__back {
display: inline-flex;
margin-bottom: 28px;
color: rgba(255, 255, 255, 0.68);
font-size: 14px;
line-height: 1.4;
text-decoration: underline;
text-underline-offset: 3px;
transition: color 0.2s ease;
}
.legal-page__back:hover {
color: #ffffff;
}
.legal-page__head {
max-width: 980px;
margin: 0 auto;
margin-bottom: 36px;
}
.legal-page__head p {
margin-bottom: 12px;
color: #ffd2d2;
font-size: 15px;
font-weight: 500;
line-height: 1.4;
text-transform: uppercase;
}
.legal-page__head h1 {
font-size: clamp(34px, 5vw, 64px);
font-weight: 700;
line-height: 1.08;
}
.legal-document {
max-width: 1040px;
padding: 48px;
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: 20px;
background: rgba(18, 18, 18, 0.82);
box-shadow: 0 28px 80px rgba(0, 0, 0, 0.36);
backdrop-filter: blur(10px);
margin: 0 auto;
}
.legal-document h2 {
margin: 42px 0 18px;
color: #ffffff;
font-size: clamp(24px, 3vw, 34px);
font-weight: 700;
line-height: 1.18;
}
.legal-document h2:first-child {
margin-top: 0;
}
.legal-document p {
color: rgba(255, 255, 255, 0.78);
font-size: 17px;
font-weight: 300;
line-height: 1.72;
}
.legal-document p + p {
margin-top: 14px;
}
.legal-document__meta-line {
color: rgba(255, 255, 255, 0.9) !important;
font-weight: 500 !important;
line-height: 1.45 !important;
}
.legal-document__table-wrap {
margin: 28px 0;
overflow-x: auto;
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: 14px;
}
.legal-document table {
width: 100%;
min-width: 640px;
border-collapse: collapse;
background: rgba(255, 255, 255, 0.03);
}
.legal-document td {
padding: 16px;
border: 1px solid rgba(255, 255, 255, 0.12);
color: rgba(255, 255, 255, 0.78);
font-size: 15px;
font-weight: 300;
line-height: 1.55;
vertical-align: top;
}
.legal-document td:first-child {
width: 104px;
color: #ffd2d2;
font-weight: 500;
}
.footer {
border-top: 1px solid rgba(207, 23, 23, 0.1);
background: #090a0f;
padding: 64px 0 20px;
}
.footer__top {
display: grid;
grid-template-columns: 1.45fr 1fr 1.15fr 1fr;
gap: 36px;
margin-bottom: 48px;
}
.footer__brand p {
max-width: 286px;
margin-top: 16px;
color: rgba(255, 255, 255, 0.65);
font-size: 14px;
line-height: 1.5;
font-weight: 300;
}
.footer__nav h4, .footer__contacts h4 {
margin-bottom: 16px;
font-size: 16px;
font-weight: 600;
line-height: 1.1;
}
.footer__nav a, .footer__contacts a {
display: block;
color: rgba(255, 255, 255, 0.65);
font-size: 14px;
line-height: 1.5;
font-weight: 300;
}
.footer__nav span, .footer__contacts span {
display: block;
color: rgba(255, 255, 255, 0.65);
font-size: 14px;
line-height: 1.35;
}
.footer__nav a + a,
.footer__nav span + span, .footer__contacts a + a,
.footer__contacts span + span {
margin-top: 10px;
}
.footer__socials {
display: flex;
flex-wrap: wrap;
gap: 12px;
}
.footer__socials a {
display: inline-flex;
align-items: center;
justify-content: center;
width: 46px;
height: 46px;
border: 1px solid rgba(255, 255, 255, 0.22);
border-radius: 12px;
background: rgba(255, 255, 255, 0.03);
color: rgba(255, 255, 255, 0.92);
transition: transform 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
margin-top: 0 !important;
}
.footer__socials a svg {
width: 22px;
height: 22px;
display: block;
}
.footer__socials a:hover {
transform: translateY(-2px);
border-color: rgba(207, 23, 23, 0.75);
background: rgba(207, 23, 23, 0.18);
}
.footer__bottom {
display: flex;
align-items: center;
justify-content: space-between;
gap: 24px;
border-top: 1px solid rgba(207, 23, 23, 0.35);
padding-top: 30px;
}
.footer__bottom span,
.footer__bottom a {
color: rgba(255, 255, 255, 0.4);
font-size: 14px;
line-height: 1.3;
}
.footer__legal {
display: flex;
flex-wrap: wrap;
gap: 10px 24px;
}
.footer__messengers {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 12px;
}
.footer__messengers a {
display: inline-flex !important;
align-items: center;
justify-content: center;
width: 40px;
height: 40px;
padding: 0;
border: 1px solid rgba(255, 255, 255, 0.22);
border-radius: 12px;
color: rgba(255, 255, 255, 0.85) !important;
background: rgba(255, 255, 255, 0.03);
margin-top: 0 !important;
text-decoration: none !important;
transition: border-color 0.2s ease, background-color 0.2s ease;
}
.footer__messengers a:hover {
border-color: rgba(207, 23, 23, 0.72);
background: rgba(207, 23, 23, 0.16);
}
.footer__messenger-icon {
width: 16px;
height: 16px;
display: inline-flex;
align-items: center;
justify-content: center;
}
.footer__messenger-icon svg {
width: 16px;
height: 16px;
display: block;
color: currentColor;
}
@media only screen and (max-width: 1600px) {
.hero__content {
margin-left: auto;
}
.hero h1 {
font-size: 64px;
line-height: 1.15;
}
}
@media only screen and (max-width: 1280px) {
.container {
/*padding: 0 20px;*/
}
.header__nav {
gap: 20px;
margin-right: 20px;
}
.hero__content {
margin-left: 280px;
max-width: 700px;
}
.hero h1 {
font-size: 56px;
}
.hero p {
font-size: 18px;
line-height: 1.6;
}
.section__head h2 {
font-size: 40px;
}
.section__head p {
font-size: 24px;
}
.object-card__content h3 {
font-size: 30px;
}
.booking h2 {
font-size: 48px;
}
.contacts-card h3 {
font-size: 24px;
}
.contacts-card__item-content strong {
font-size: 16px;
}
.hours-card h4 {
font-size: 16px;
}
.hours-card p {
font-size: 16px;
}
.footer__brand p {
font-size: 16px;
}
.footer__nav h4, .footer__contacts h4 {
font-size: 16px;
}
.footer__nav a,
.footer__nav span, .footer__contacts a,
.footer__contacts span {
font-size: 14px;
}
.footer__bottom span,
.footer__bottom a {
font-size: 14px;
}
.footer__nav h4, .footer__contacts h4 {
margin-top: 15px;
}
}
@media only screen and (max-width: 1024px) {
.header__inner {
min-height: 64px;
}
.header__nav {
display: none;
}
.hero {
min-height: auto;
padding: 120px 0 80px;
}
.hero__content {
margin-left: 0;
max-width: 100%;
padding-top: 0;
}
.hero h1 {
max-width: 640px;
font-size: 48px;
line-height: 1.15;
}
.hero p {
max-width: 640px;
}
.hero__actions {
flex-wrap: wrap;
}
.reviews {
--reviews-visible: 2;
}
.highlights__grid,
.gallery__grid,
.reviews__grid,
.stats,
.footer__top,
.infrastructure__grid,
.services__grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.services__grid {
max-width: none;
}
.object-card,
.booking__wrap {
grid-template-columns: 1fr;
gap: 24px;
}
.object-card--reverse .object-card__image,
.object-card--reverse .object-card__content {
order: initial;
}
.section {
padding: 72px 0;
}
.section__head {
margin-bottom: 40px;
}
.booking__contacts {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 24px;
}
.contacts-card {
margin-bottom: 0;
}
.footer__bottom {
flex-direction: column;
align-items: flex-start;
}
.footer__top {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 28px;
}
.footer__brand p {
font-size: 16px;
margin-top: 18px;
}
.footer__nav h4, .footer__contacts h4 {
font-size: 18px;
margin-bottom: 16px;
}
.footer__nav a,
.footer__nav span, .footer__contacts a,
.footer__contacts span {
font-size: 15px;
line-height: 1.4;
}
.footer__bottom span,
.footer__bottom a {
font-size: 14px;
}
}
@media only screen and (max-width: 768px) {
.legal-page {
padding: 112px 0 64px;
}
.legal-page__head {
margin-bottom: 28px;
}
.legal-document {
padding: 30px 22px;
border-radius: 16px;
}
.legal-document p {
font-size: 15px;
line-height: 1.65;
}
.legal-document td {
padding: 12px;
font-size: 14px;
}
.reviews {
--reviews-visible: 1;
}
.reviews__slider {
grid-template-columns: 1fr;
gap: 12px;
}
.reviews__nav {
display: none;
}
.container {
padding: 0 16px;
}
.btn {
width: 100%;
}
.btn--small {
width: auto;
}
.hero {
padding-top: 108px;
}
.hero h1 {
max-width: 100%;
font-size: 40px;
}
.hero p {
max-width: 100%;
font-size: 16px;
line-height: 1.5;
}
.hero__tags li {
white-space: normal;
padding: 14px 20px;
}
.hero__actions .btn--ghost {
width: 100%;
}
.section__head h2 {
font-size: 34px;
}
.section__head p {
font-size: 20px;
line-height: 1.3;
}
.highlights__grid,
.gallery__grid,
.reviews__grid,
.stats,
.footer__top,
.booking__contacts,
.infrastructure__grid,
.services__grid {
grid-template-columns: 1fr;
}
.feature-card h3,
.object-card__content h3 {
font-size: 24px;
}
.booking h2 {
font-size: 32px;
}
.booking input,
.booking select {
height: 52px;
}
.contacts-card h3 {
font-size: 34px;
margin-bottom: 18px;
}
.contacts-card__item-content strong {
font-size: 16px;
}
.contacts-card__item-content span {
font-size: 16px;
}
.hours-card h4 {
font-size: 16px;
margin-bottom: 12px;
}
.hours-card p {
font-size: 16px;
}
.infrastructure .section__head h2,
.services .section__head h2 {
font-size: 38px;
}
.infrastructure .section__head p,
.services .section__head p {
font-size: 20px;
}
.service-card__title {
font-size: 19px;
}
.footer__brand p {
font-size: 16px;
max-width: 100%;
}
.footer__nav h4, .footer__contacts h4 {
font-size: 16px;
}
.footer__nav a,
.footer__nav span, .footer__contacts a,
.footer__contacts span {
font-size: 16px;
}
.footer__bottom span,
.footer__bottom a {
font-size: 14px;
}
.stats strong {
font-size: clamp(66px, 17vw, 96px);
}
.booking-modal__content {
padding: 28px 18px 22px;
}
.booking-modal__status {
width: 48px;
height: 48px;
border-radius: 14px;
font-size: 24px;
margin-bottom: 14px;
}
.booking-modal__title {
font-size: 26px;
}
.booking-modal__text {
font-size: 16px;
margin-bottom: 18px;
}
.booking-modal__btn {
min-width: 100%;
}
}
@media only screen and (max-width: 520px) {
.header__inner {
gap: 12px;
}
.logo {
/*width: 110px;*/
/*height: 24px;*/
height: auto;
width: 150px;
margin-top: 12px;
}
.btn--small {
padding: 6px 20px;
font-size: 12px;
}
.hero {
padding-top: 100px;
}
.hero h1 {
/*font-size: 34px;*/
font-size: 24px;
margin-top: 20px;
margin-bottom: 40px;
}
.hero__actions {
gap: 12px;
}
.section {
padding: 64px 0;
}
.section__head h2 {
font-size: 32px;
}
.section__head p {
font-size: 18px;
}
.info-card,
.review-card,
.stats__item,
.hours-card,
.object-card__content {
padding: 24px;
}
.feature-card {
padding: 34px 24px;
background: hsla(0, 0%, 7%, 0.18);
}
.contacts-card {
padding: 33px;
}
.object-card__image {
min-height: 260px;
}
.service-card {
min-height: 142px;
padding: 16px;
}
.service-card__title {
font-size: 18px;
}
.service-card__description {
inset: 0;
padding: 14px;
opacity: 1;
font-size: 14px;
transform: translateY(0);
}
.services__cta-btn {
width: 100%;
font-size: 16px;
}
.footer__bottom .footer__legal {
flex-direction: column;
gap: 12px;
}
.footer__top {
gap: 20px;
}
.footer__socials a {
width: 44px;
height: 44px;
}
}
@media (hover: none) {
.service-card {
justify-content: center;
}
.service-card__description {
position: absolute;
opacity: 1;
transform: translateY(0);
pointer-events: auto;
}
}
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation: none !important;
transition: none !important;
scroll-behavior: auto !important;
}
.hero__content > * {
opacity: 1 !important;
}
.scroll-reveal {
opacity: 1 !important;
transform: none !important;
}
}