@use "vars" as *; @use "mixins" as *; * { box-sizing: border-box; } html, body { background: $color-bg; color: $color-text; font-family: $font-main; min-width: 1200px; } body { line-height: 1; } a { color: inherit; text-decoration: none; } img { display: block; max-width: 100%; } .container { @include container; padding: 0 $container-padding; } .site { position: relative; overflow: hidden; } .btn { display: inline-flex; align-items: center; justify-content: center; padding: 18px 24px; border-radius: $radius-sm; background: $color-accent; color: $color-text; font-size: 16px; font-weight: 700; line-height: 24px; box-shadow: $shadow-accent; border: 0; cursor: pointer; } .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); } .btn--ghost { background: rgba(41, 49, 51, 0.6); border: 2px solid rgba(255, 255, 255, 0.2); box-shadow: none; } .header { position: fixed; inset: 0 0 auto; z-index: 20; background: rgba(18, 18, 18, 0.95); border-bottom: 1px solid rgba(207, 23, 23, 0.2); } .header__inner { display: flex; align-items: center; justify-content: space-between; min-height: 72px; } .logo { display: inline-flex; width: 137px; height: 30px; } .logo img { width: 100%; height: 100%; object-fit: cover; } .header__nav { display: flex; align-items: center; gap: 32px; margin-left: auto; margin-right: 32px; } .header__nav a { font-size: 14px; line-height: 20px; font-weight: 600; color: rgba(255, 255, 255, 0.8); } .hero { position: relative; min-height: 852px; padding-top: 72px; } .hero__bg { position: absolute; 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("https://www.figma.com/api/mcp/asset/e5a37fb1-e23a-4258-855e-e6951519202d") 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: 816px; margin-left: 528px; padding-top: 104px; } .hero h1 { max-width: 768px; font-size: 72px; line-height: 90px; font-weight: 800; margin-bottom: 24px; } .hero h1 span { color: $color-accent; } .hero p { max-width: 768px; font-size: 20px; line-height: 32.5px; color: $color-text-soft; margin-bottom: 32px; } .hero__tags { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 28px; } .hero__tags li { padding: 9px 17px; border-radius: 999px; border: 1px solid $color-border-strong; background: rgba(41, 49, 51, 0.6); font-size: 14px; line-height: 20px; font-weight: 600; white-space: nowrap; } .hero__actions { display: flex; gap: 16px; } .highlights { background: $color-surface; padding: 96px 0; } .highlights__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; } .info-card { @include card; min-height: 178px; padding: 33px; } .info-card h3 { font-size: 20px; line-height: 28px; font-weight: 700; margin-bottom: 8px; } .info-card p { color: $color-text-muted; font-size: 16px; line-height: 24px; } .section { position: relative; padding: 96px 0; } .section--pattern { background: #1a2124; } .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 > .container { position: relative; z-index: 1; } .section__head { margin-bottom: 64px; text-align: center; } .section__head h2 { font-size: 48px; line-height: 1; font-weight: 700; margin-bottom: 16px; } .section__head p { font-size: 28px; line-height: 1; color: $color-text-soft; } .advantages__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; } .feature-card { @include card; min-height: 162px; padding: 25px; position: relative; } .feature-card::before { content: ""; width: 48px; height: 48px; border-radius: 14px; background: rgba(207, 23, 23, 0.16); border: 1px solid rgba(207, 23, 23, 0.32); display: block; margin-bottom: 16px; } .feature-card h3 { font-size: 24px; line-height: 1; font-weight: 700; margin-bottom: 8px; } .feature-card p { font-size: 20px; line-height: 1; color: $color-text-muted; } .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: $radius-md; background-size: cover; background-position: center; } .object-card__content { @include card; min-height: 338px; align-self: center; padding: 33px; } .object-card__content h3 { font-size: 36px; line-height: 1; font-weight: 700; margin-bottom: 16px; } .object-card__content p { font-size: 20px; line-height: 28px; color: $color-text-muted; margin-bottom: 24px; } .object-card__content ul { margin-bottom: 24px; } .object-card__content li { position: relative; padding-left: 14px; font-size: 20px; line-height: 28px; color: $color-text-soft; } .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: $color-accent; } .services { background: $color-surface; } .services__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; } .service-card { @include card; padding: 33px; min-height: 260px; display: flex; flex-direction: column; } .service-card h3 { font-size: 28px; line-height: 1.15; font-weight: 700; margin-bottom: 12px; } .service-card p { color: $color-text-muted; font-size: 20px; line-height: 28px; margin-bottom: auto; } .service-card a { display: inline-flex; width: fit-content; margin-top: 20px; font-size: 14px; line-height: 20px; font-weight: 700; padding: 10px 20px; border-radius: $radius-sm; background: $color-accent; } .gallery { background: #1b2225; } .gallery__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; } .gallery__item { aspect-ratio: 16 / 10; border-radius: $radius-md; background-size: cover; background-position: center; border: 1px solid $color-border; } .reviews { background: #1a2023; } .reviews__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; margin-bottom: 64px; } .review-card { @include card; padding: 33px; min-height: 206px; } .review-card p { font-size: 24px; line-height: 1.5; color: $color-text-soft; margin-bottom: 24px; } .review-card strong { display: block; font-size: 24px; line-height: 1; font-weight: 700; margin-bottom: 8px; } .review-card span { font-size: 20px; line-height: 1; color: $color-text-muted; } .stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; } .stats article { @include card; min-height: 144px; padding: 32px; text-align: center; } .stats strong { display: block; font-size: 48px; line-height: 1; font-weight: 700; color: $color-accent; margin-bottom: 8px; } .stats span { font-size: 24px; line-height: 1; } .booking { background: #1b2225; } .booking__wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; } .booking h2 { font-size: 64px; line-height: 1; font-weight: 700; margin-bottom: 24px; } .booking p { font-size: 28px; line-height: 1.4; color: $color-text-soft; margin-bottom: 32px; } .booking form { display: flex; flex-direction: column; gap: 16px; } .booking input { width: 100%; height: 58px; border: 1px solid $color-border; background: rgba(18, 18, 18, 0.35); border-radius: 14px; padding: 0 24px; color: $color-text; font-size: 20px; line-height: 22px; } .booking input::placeholder { color: rgba(255, 255, 255, 0.75); } .booking form .btn { width: 100%; margin-top: 4px; height: 56px; padding: 0 24px; } .contacts-card, .hours-card { @include card; padding: 33px; } .contacts-card { margin-bottom: 32px; } .contacts-card h3 { font-size: 32px; line-height: 1; font-weight: 700; margin-bottom: 24px; } .contacts-card ul { display: flex; flex-direction: column; gap: 16px; } .contacts-card li strong { display: block; font-size: 24px; line-height: 1; margin-bottom: 8px; } .contacts-card li span { font-size: 20px; line-height: 1.5; color: $color-text-soft; } .hours-card h4 { font-size: 24px; line-height: 1; font-weight: 700; margin-bottom: 16px; } .hours-card p { margin: 0; font-size: 24px; line-height: 1; } .footer { background: #12161a; border-top: 1px solid rgba(255, 255, 255, 0.1); padding: 49px 0; } .footer__top { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; margin-bottom: 32px; } .footer__col h4 { font-size: 24px; line-height: 1; font-weight: 700; margin-bottom: 16px; } .footer__col p, .footer__col span, .footer__col a { display: block; font-size: 20px; line-height: 1; color: $color-text-soft; } .footer__col p { margin-top: 16px; line-height: 1.4; } .footer__col a + a, .footer__col span + span { margin-top: 8px; } .footer__socials { display: flex; gap: 12px; } .footer__socials a { width: 40px; height: 40px; border-radius: 10px; border: 1px solid $color-border; display: inline-flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700; } .footer__bottom { border-top: 1px solid rgba(255, 255, 255, 0.08); padding-top: 24px; display: flex; align-items: center; justify-content: space-between; } .footer__bottom span, .footer__bottom a { font-size: 20px; line-height: 1; color: rgba(255, 255, 255, 0.7); } .footer__bottom div { display: flex; gap: 24px; }