/*
 * Vrediteli.com — full-bleed layout concept v1
 * Header, hero, primary navigation and footer span the viewport.
 * Their content remains aligned to a readable centered container.
 */

:root {
  --full-bleed-container: 1160px;
}

body {
  background:
    radial-gradient(circle at 12% 4%, rgba(99, 146, 4, .09), transparent 28%),
    #f6f8f1;
}

.site-shell {
  width: 100%;
  max-width: none;
  margin: 0;
  overflow: clip;
  border: 0;
  border-radius: 0;
  background: var(--paper);
  box-shadow: none;
}

.inner {
  width: min(calc(100% - 64px), var(--full-bleed-container));
}

.desktop-header {
  min-height: 92px;
  border-top: 4px solid var(--green-700);
  border-bottom: 1px solid rgba(54, 83, 0, .12);
  background:
    linear-gradient(90deg, rgba(99, 146, 4, .05), transparent 28%),
    rgba(255, 254, 251, .98);
  box-shadow: 0 7px 22px rgba(54, 83, 0, .08);
}

.desktop-header .inner {
  min-height: 88px;
}

.desktop-header .logo {
  width: 266px;
}

.hero,
.hero .inner {
  min-height: clamp(330px, 21vw, 390px);
}

.hero {
  isolation: isolate;
  box-shadow:
    inset 0 -30px 45px rgba(34, 54, 0, .18),
    0 15px 38px rgba(54, 83, 0, .12);
}

.hero::after {
  background:
    linear-gradient(90deg, rgba(38, 60, 0, .64) 0%, rgba(46, 73, 0, .28) 36%, rgba(54, 83, 0, .03) 72%),
    linear-gradient(0deg, rgba(29, 46, 0, .14), transparent 52%);
}

.hero-image {
  object-position: center center;
  transform: scale(1.002);
}

.hero-caption {
  bottom: 42px;
  width: min(470px, 90%);
  padding: 22px 25px 23px;
  border-left-width: 5px;
  border-radius: 0 14px 14px 0;
  background: linear-gradient(135deg, rgba(65, 107, 0, .94), rgba(78, 117, 0, .88));
  box-shadow:
    0 20px 45px rgba(19, 35, 0, .28),
    inset 0 1px 0 rgba(255, 255, 255, .15);
  backdrop-filter: blur(4px);
}

.hero-caption strong {
  font-size: 29px;
}

.hero-caption span {
  font-size: 14px;
}

.main-nav {
  border-bottom: 1px solid rgba(43, 69, 0, .34);
  background:
    linear-gradient(180deg, rgba(99, 146, 4, .18), transparent 34%),
    linear-gradient(180deg, #4e7500 0%, #365600 100%);
  box-shadow:
    0 8px 22px rgba(54, 83, 0, .19),
    inset 0 1px 0 rgba(255, 255, 255, .10);
}

.main-nav > ul {
  width: min(calc(100% - 64px), var(--full-bleed-container));
  min-height: 56px;
}

.main-nav > ul > li > a,
.nav-dropdown-toggle {
  min-height: 56px;
  font-size: 14px;
}

.page-layout {
  padding-block: 42px 70px;
}

.site-footer {
  position: relative;
  margin-top: 0;
  background:
    radial-gradient(circle at 14% 0%, rgba(118, 165, 22, .26), transparent 30%),
    linear-gradient(125deg, #263f00 0%, #365800 52%, #2c4700 100%);
  box-shadow: 0 -18px 44px rgba(40, 64, 0, .14);
}

.site-footer::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: linear-gradient(90deg, #416b00, #82aa1f 42%, #639204 72%, #416b00);
  box-shadow: 0 2px 12px rgba(99, 146, 4, .32);
}

.site-footer .footer-main {
  min-height: 154px;
  padding-block: 34px 26px;
  font-size: 12px;
}

.footer-brand strong {
  font-size: 18px;
  letter-spacing: .01em;
}

.footer-navigation {
  gap: 16px;
}

.footer-links,
.footer-pest-links {
  gap: 10px 18px;
}

.footer-meta {
  min-height: 54px;
  padding-block: 15px 20px;
}

@media (min-width: 1600px) {
  :root {
    --full-bleed-container: 1240px;
  }

  .hero,
  .hero .inner {
    min-height: 400px;
  }
}

@media (max-width: 900px) {
  .site-shell {
    width: 100%;
    margin: 0;
    border-radius: 0;
  }

  .inner {
    width: min(calc(100% - 30px), 760px);
  }

  .desktop-header,
  .desktop-header .inner {
    min-height: 72px;
  }

  .desktop-header .logo {
    width: 184px;
  }

  .hero,
  .hero .inner {
    min-height: 235px;
  }

  .hero-caption {
    bottom: 20px;
    padding: 15px 17px 16px;
  }

  .hero-caption strong {
    font-size: 22px;
  }

  .main-nav > ul {
    width: 100%;
    min-height: 0;
  }

  .page-layout {
    padding-block: 25px 45px;
  }
}

@media (max-width: 620px) {
  .inner {
    width: calc(100% - 28px);
  }

  .desktop-header {
    border-top-width: 3px;
  }

  .desktop-header .logo {
    width: min(158px, 46vw);
  }

  .hero,
  .hero .inner {
    min-height: 188px;
  }

  .hero-image {
    object-position: 43% center;
  }

  .hero-caption {
    bottom: 14px;
    width: min(330px, 92%);
    padding: 13px 15px 14px;
    border-radius: 0 12px 12px 0;
  }

  .hero-caption strong {
    font-size: 20px;
  }

  .hero-caption span {
    font-size: 11px;
  }

  .site-footer .footer-main {
    padding-block: 30px 22px;
  }
}

