:root {
  --cream: #fbece2;
  --ink: #251b17;
  --olive: #62601b;
  --berry: #8e1534;
  --light: #fff4eb;
  --edge: clamp(20px, 4.4vw, 72px);
  color: var(--ink);
  background: var(--cream);
  font: 16px/1.45 "Instrument Sans", system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; }
h1, h2, h3, p { margin: 0; }
a { color: inherit; }
a:focus-visible { outline: 3px solid currentColor; outline-offset: 4px; }
section[id] { scroll-margin-top: 1.5rem; }
.page { max-width: 1150px; margin-inline: auto; }

.sr-only, .skip-link:not(:focus) {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.skip-link {
  position: fixed;
  z-index: 2;
  top: .5rem;
  left: .5rem;
  padding: .75rem 1rem;
  background: var(--light);
}

.sprite {
  background-image: url("assets/predloha.png");
  background-repeat: no-repeat;
}

.site-header {
  min-height: clamp(68px, 4.8vw, 78px);
  padding-inline: var(--edge) clamp(20px, 3.2vw, 52px);
  display: flex;
  align-items: center;
  gap: clamp(18px, 3.4vw, 56px);
}

.brand, .hero-mark, .services-mark {
  mask-image: linear-gradient(90deg, transparent, black 3%, black 97%, transparent),
              linear-gradient(transparent, black 3%, black 97%, transparent);
  mask-composite: intersect;
}

.brand {
  width: clamp(145px, 17.3vw, 276px);
  flex: none;
  aspect-ratio: 251 / 54;
  background-size: 576.892% 2011.111%;
  background-position: 4.678% 1.163%;
}

nav {
  display: flex;
  align-items: center;
  gap: clamp(14px, 3vw, 46px);
  padding-left: clamp(18px, 3.4vw, 54px);
  border-left: 1px solid var(--olive);
}

nav a, .button, .text-link {
  text-decoration: none;
  text-transform: uppercase;
  font-weight: 650;
}

nav a {
  font-size: clamp(.76rem, 1.28vw, 1.24rem);
  letter-spacing: .11em;
  padding-block: .5rem;
}

nav a:hover, .text-link:hover, .site-footer a:hover {
  text-decoration: underline;
  text-underline-offset: .25em;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .7em;
  border-radius: 2rem;
  padding: .66em 1.45em;
  background: var(--berry);
  color: white;
  white-space: nowrap;
}

.button:hover { background: #711029; }
.button:focus-visible { outline-color: var(--berry); }
.partnership { margin-left: auto; font-size: clamp(.78rem, 1.32vw, 1.3rem); }

.hero {
  display: grid;
  grid-template-columns: 44.06% 55.94%;
  align-items: stretch;
}

.hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(26px, 2.7vw, 44px) clamp(12px, 1.2vw, 22px) clamp(20px, 1.75vw, 28px) var(--edge);
}

.eyebrow {
  font-weight: 680;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.hero .eyebrow { font-size: clamp(.72rem, 1.36vw, 1.35rem); }
.hero-mark {
  width: calc(100% + 18px);
  margin: clamp(9px, 1.35vw, 22px) 0 0 -12px;
  aspect-ratio: 572 / 335;
  background-size: 253.147% 324.179%;
  background-position: 5.936% 20.639%;
}

.hero-signature {
  text-align: center;
  text-transform: uppercase;
  letter-spacing: .34em;
  font-size: clamp(.64rem, 1.25vw, 1.2rem);
  font-weight: 700;
}

.hero-description {
  max-width: 34ch;
  margin-top: clamp(14px, 1.55vw, 24px);
  font-size: clamp(1rem, 1.67vw, 1.55rem);
  line-height: 1.42;
}

.text-link { display: inline-flex; align-items: center; gap: .65em; padding-block: .55em; }
.button span, .text-link span { font-size: 1.35em; line-height: 1; }

.hero-photo {
  min-height: 100%;
  aspect-ratio: 810 / 674;
  background-size: 178.765% 161.128%;
  background-position: 100% 16.748%;
  border-top-left-radius: 38% 45%;
}

.services {
  display: grid;
  grid-template-columns: .55fr 1fr 1fr;
  gap: clamp(14px, 1.45vw, 24px);
  padding: clamp(24px, 2.55vw, 42px) clamp(20px, 2.2vw, 36px);
  align-items: center;
}

.services-mark {
  width: 100%;
  aspect-ratio: 305 / 239;
  background-size: 474.754% 454.393%;
  background-position: 2.187% 94.687%;
}

.service-card {
  display: grid;
  grid-template-columns: 45% 55%;
  min-height: clamp(178px, 19.3vw, 310px);
  border-radius: clamp(18px, 2vw, 32px);
  overflow: hidden;
  color: var(--light);
  text-decoration: none;
}

.service-smm { background: var(--olive); }
.service-ugc { background: #7d102b; grid-template-columns: 48.5% 51.5%; }

.smm-photo {
  background-size: 613.559% 389.247%;
  background-position: 28.053% 96.654%;
}

.ugc-photo {
  background-size: 570.079% 389.247%;
  background-position: 74.456% 96.654%;
}

.card-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: clamp(14px, 2.05vw, 34px);
}

.card-copy h3 {
  font-size: clamp(1.8rem, 4.25vw, 4.3rem);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.045em;
}

.card-copy p {
  margin-top: .5em;
  font-size: clamp(.9rem, 1.55vw, 1.5rem);
  line-height: 1.25;
}

.card-arrow {
  display: grid;
  place-items: center;
  width: 1.7em;
  aspect-ratio: 1;
  margin-top: .55em;
  border: 1.5px solid currentColor;
  border-radius: 50%;
  font-size: clamp(1.15rem, 1.9vw, 1.8rem);
  line-height: 1;
}

.service-card:hover .card-arrow { color: var(--berry); background: var(--light); }
.section-pad { margin-inline: var(--edge); padding-block: clamp(32px, 5vw, 80px); }
.about, .service-details, .contact, .company-details, .privacy-policy {
  border-top: 1px solid #b6a199;
}

.section-pad h1 {
  color: var(--berry);
  font-size: clamp(1.8rem, 3.5vw, 3.5rem);
  letter-spacing: -.04em;
  line-height: 1.1;
}

.section-pad p:not(.eyebrow) {
  max-width: 58ch;
  font-size: clamp(1.02rem, 1.55vw, 1.35rem);
  margin-top: .7em;
}

.about, .contact {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(22px, 4vw, 64px);
}

.about { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
.about p:not(.eyebrow) { margin-top: 0; }
.service-details .eyebrow { color: var(--olive); margin-bottom: .65rem; }
.service-details .text-link { margin-top: .75rem; }
.contact { align-items: center; }
.contact .button { justify-self: end; text-transform: none; }

.privacy-policy section { margin-top: 1.8rem; }
.privacy-policy h2 { color: var(--berry); font-size: clamp(1.2rem, 2.3vw, 1.65rem); }
.privacy-policy ul {
  max-width: 58ch;
  margin: .7em 0 0;
  padding-inline-start: 1.25em;
  font-size: clamp(1.02rem, 1.55vw, 1.35rem);
}
.privacy-policy li + li { margin-top: .4em; }

.site-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: .5rem 1rem;
  padding: .8rem var(--edge);
  color: var(--light);
  background: var(--olive);
}

.footer-links { display: flex; flex-wrap: wrap; gap: .35rem 1rem; }
.site-footer a { text-decoration: none; }

@media (min-width: 1051px) {
  .site-header {
    min-height: 49px;
    gap: 30px;
    padding-inline: 50px 36px;
  }

  .brand { width: 198px; }
  nav { gap: 30px; padding-left: 34px; }
  nav a { font-size: .95rem; }
  .partnership { font-size: 1rem; }

  .hero { grid-template-columns: 1fr 1fr; }
  .hero-copy { padding: 16px 14px 14px 50px; }
  .hero .eyebrow { font-size: .98rem; }
  .hero-mark { width: min(90%, 414px); margin-top: 11px; }
  .hero-signature { width: min(90%, 414px); margin-left: -12px; font-size: .88rem; }
  .hero-description { margin-top: 13px; font-size: 1.18rem; }
  .hero-photo { width: 100%; min-height: 0; align-self: start; }

  .services { gap: 17px; padding: 22px 24px; }
  .service-card { min-height: 198px; }
  .service-smm { grid-template-columns: min(40%, 167px) 1fr; }
  .service-ugc { grid-template-columns: min(43%, 180px) 1fr; }
  .smm-photo, .ugc-photo { background-size: auto 389.247%; }
  .card-copy { padding: 13px 22px; }
  .card-copy h3 { font-size: 3rem; }
  .card-copy p { margin-top: .4em; font-size: 1.08rem; }
  .card-arrow { margin-top: .45em; font-size: 1.35rem; }
}

@media (min-width: 1051px) and (max-height: 840px) {
  .hero-mark, .hero-signature { width: min(90%, 390px); }
  .hero-photo {
    width: clamp(75%, calc((100svh - 360px) * 810 / 674), 100%);
    justify-self: end;
  }
}

@media (max-width: 1050px) {
  .services { grid-template-columns: 1fr 1fr; }
  .services-mark { width: clamp(130px, 22vw, 225px); grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .site-header {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .3rem .75rem;
    padding: .6rem var(--edge) .4rem;
  }

  nav {
    grid-row: 2;
    grid-column: 1 / -1;
    justify-content: space-between;
    gap: .4rem;
    padding-left: 0;
    border-left: 0;
  }

  .hero { display: block; }
  .hero-copy { padding: 1.4rem var(--edge) 1.5rem; }
  .hero-mark { max-width: 500px; margin-inline: auto; }
  .hero-signature { font-size: .75rem; }
  .hero-description { max-width: 43ch; }
  .hero-photo {
    margin-left: var(--edge);
    min-height: 0;
    aspect-ratio: auto;
    /* Reserve the portrait height from its available width on mobile Safari. */
    padding-top: calc((100% - var(--edge)) * 674 / 810);
  }
  .services { grid-template-columns: 1fr; padding-inline: var(--edge); }
  .service-card { min-height: clamp(155px, 46vw, 270px); }
  .card-copy p { font-size: clamp(1rem, 3.1vw, 1.25rem); }
  .about, .contact { grid-template-columns: 1fr; }
  .contact .button { justify-self: start; }
}

@media (max-width: 380px) {
  .card-copy { padding: 12px; }
}
