body::before {
      content: "";
      position: fixed;
      inset: 0;
      z-index: -1;
      background:
        radial-gradient(circle at 12% 18%, rgba(47, 93, 44, 0.12), transparent 28%),
        radial-gradient(circle at 88% 12%, rgba(217, 227, 210, 0.72), transparent 30%),
        radial-gradient(circle at 50% 100%, rgba(47, 93, 44, 0.07), transparent 34%),
        linear-gradient(135deg, rgba(255,255,255,0.45), transparent 42%);
      pointer-events: none;
    }

.section {
      padding: 100px 0;
    }

/* Wood texture sections */

/* Abstract backgrounds for quote form and reviews */

@keyframes abstractGridMove {
      from { background-position: 0 0, 0 0; }
      to { background-position: 58px 58px, 58px 58px; }
    }

@keyframes abstractBlob {
      0% { transform: translate3d(0, 0, 0) rotate(0deg) scale(1); border-radius: 42% 58% 55% 45%; }
      50% { transform: translate3d(-18px, 18px, 0) rotate(8deg) scale(1.04); border-radius: 58% 42% 46% 54%; }
      100% { transform: translate3d(16px, -14px, 0) rotate(-7deg) scale(0.98); border-radius: 47% 53% 62% 38%; }
    }

@keyframes abstractOrbit {
      from { transform: rotate(0deg); }
      to { transform: rotate(360deg); }
    }

/* Header */

/* Hero */

@keyframes heroFloat {
      0%, 100% { transform: translateY(0) rotate(0deg); }
      50% { transform: translateY(-10px) rotate(-0.35deg); }
    }

/* Cards */

@keyframes orbitSpin {
      to { transform: rotate(360deg); }
    }

@keyframes featureGlow {
      0%, 100% { transform: translate3d(0, 0, 0) scale(1); opacity: 0.65; }
      50% { transform: translate3d(-10px, 12px, 0) scale(1.08); opacity: 0.95; }
    }

@keyframes connectorPulse {
      0%, 100% { transform: translateY(-50%) scale(1); opacity: 0.75; }
      50% { transform: translateY(-50%) scale(1.28); opacity: 1; }
    }

/* Services */

/* Dark section */

/* Gallery */

/* Gallery modal slider */

/* Quote */

@keyframes stepIn {
      from { opacity: 0; transform: translateY(8px); }
      to { opacity: 1; transform: translateY(0); }
    }

/* Animated cooperation background */

@keyframes processGridDrift {
      from { background-position: 0 0, 0 0; }
      to { background-position: 64px 64px, 64px 64px; }
    }

@keyframes processBlob {
      0% { transform: translate3d(0, 0, 0) rotate(0deg) scale(1); border-radius: 44% 56% 58% 42%; }
      50% { transform: translate3d(-18px, 22px, 0) rotate(8deg) scale(1.035); border-radius: 58% 42% 46% 54%; }
      100% { transform: translate3d(12px, -14px, 0) rotate(-6deg) scale(0.985); border-radius: 48% 52% 63% 37%; }
    }

@keyframes processRingSpin {
      to { transform: rotate(360deg); }
    }

@keyframes processCenterOrbit {
      from { transform: translate(-50%, -46%) rotate(0deg); }
      to { transform: translate(-50%, -46%) rotate(-360deg); }
    }

@keyframes processBottomBlob {
      0% { transform: translate3d(0, 0, 0) rotate(-8deg) scale(1); border-radius: 54% 46% 42% 58%; }
      50% { transform: translate3d(28px, -18px, 0) rotate(4deg) scale(1.05); border-radius: 42% 58% 55% 45%; }
      100% { transform: translate3d(12px, 20px, 0) rotate(9deg) scale(0.98); border-radius: 60% 40% 46% 54%; }
    }

@keyframes processOrbitFloat {
      0%, 100% { transform: translate3d(0, 0, 0) scale(1); opacity: 0.55; }
      50% { transform: translate3d(18px, 12px, 0) scale(1.06); opacity: 0.82; }
    }

/* Process timeline */

@keyframes timelinePulse {
      0%, 100% { transform: scale(0.96); opacity: 0.65; }
      50% { transform: scale(1.08); opacity: 0.25; }
    }

/* Materials showcase */

@keyframes materialFloat {
      0%, 100% { translate: 0 0; }
      50% { translate: 0 -10px; }
    }

/* Before after */

/* Reviews / FAQ */

/* Area / contact */

.final-cta h2 {
      color: #ffffff;
      text-shadow: 0 16px 42px rgba(0, 0, 0, 0.16);
    }

.final-cta p {
      color: rgba(255, 255, 255, 0.86);
    }

/* Privacy policy modal */

@media (max-width: 780px) {
      .privacy-modal {
        padding: 14px;
        align-items: end;
      }

      .privacy-modal__dialog {
        max-height: calc(100vh - 28px);
        border-radius: 26px;
      }

      .privacy-modal__header {
        padding: 24px 20px 18px;
      }

      .privacy-modal__content {
        padding: 24px 20px 28px;
      }
    }

.mobile-actions__link--phone:not([href]) {
      cursor: default;
    }

@media (min-width: 901px) {
      .mobile-actions__link .quick-contact-icon {
        display: none;
      }

      .mobile-actions__link {
        padding: 13px 18px;
        justify-content: center;
      }
    }

@media (max-width: 900px) {
      .phone-label-desktop {
        display: none;
      }

      .phone-label-mobile {
        display: inline;
      }
    }

@media (max-width: 900px) {
      .realization-timeline::before {
        left: 41px;
        top: 58px;
        bottom: 58px;
      }

      .timeline-step,
      .timeline-step:nth-child(even) {
        grid-template-columns: 82px 1fr;
        gap: 18px;
        align-items: start;
      }

      .timeline-marker,
      .timeline-step:nth-child(even) .timeline-marker {
        grid-column: 1;
        grid-row: 1 / span 2;
      }

      .timeline-photo,
      .timeline-step:nth-child(even) .timeline-photo {
        grid-column: 2;
        grid-row: 1;
        min-height: 240px;
        border-radius: 28px 16px 28px 16px;
      }

      .timeline-content,
      .timeline-step:nth-child(even) .timeline-content {
        grid-column: 2;
        grid-row: 2;
        text-align: left;
      }

      .timeline-step:nth-child(even) .timeline-list {
        justify-content: flex-start;
      }
    }

@media (max-width: 560px) {
      .realization-timeline {
        gap: 22px;
      }

      .realization-timeline::before {
        display: none;
      }

      .timeline-step,
      .timeline-step:nth-child(even) {
        grid-template-columns: 1fr;
        gap: 12px;
      }

      .timeline-marker,
      .timeline-step:nth-child(even) .timeline-marker {
        grid-column: 1;
        grid-row: 1;
        width: 62px;
        height: 62px;
      }

      .timeline-photo,
      .timeline-step:nth-child(even) .timeline-photo {
        grid-column: 1;
        grid-row: 2;
        min-height: 230px;
      }

      .timeline-content,
      .timeline-step:nth-child(even) .timeline-content {
        grid-column: 1;
        grid-row: 3;
        padding: 22px;
      }
    }
