@font-face {
  font-family: "Poppins";
  src: url("/assets/fonts/Poppins-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Poppins";
  src: url("/assets/fonts/Poppins-SemiBold.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Playfair Display";
  src: url("/assets/fonts/PlayfairDisplay-Italic.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

:root {
  --sky: #9ddad3;
  --green: #afce5d;
  --green-dark: #4f6e08;
  --text: #393939;
  --muted: #5b5b5b;
  --card: rgba(255, 255, 255, 0.92);
  --city-h: 370px;
  --s: 1; /* vehicle scale, follows city height */
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow-x: hidden;
  background: var(--sky);
  color: var(--text);
  font: 400 15px/1.6 "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

a { color: inherit; }
a:hover { color: var(--green-dark); }
a:focus-visible { outline: 3px solid var(--green-dark); outline-offset: 2px; border-radius: 3px; }

/* ---------- animated background ---------- */
.sky {
  position: absolute;
  inset: 0 0 auto 0;
  height: 100%;
  pointer-events: none;
  z-index: 0;
}
.clouds {
  position: absolute;
  top: 70px;
  left: 0;
  width: 100%;
  height: 312px;
  background: url("/assets/clouds.webp") repeat-x 0 0;
  animation: clouds 200s linear infinite;
}

.city {
  position: relative;
  flex: none;
  height: var(--city-h);
  margin-top: calc(var(--city-h) * -0.3); /* top ~30% is faint skyline silhouette; let it sit under the footer text */
  background-color: var(--sky);
  background-image: url("/assets/city.jpg");
  background-image: image-set(url("/assets/city.webp") type("image/webp"), url("/assets/city.jpg") type("image/jpeg"));
  background-repeat: repeat-x;
  background-position: left bottom;
  background-size: auto var(--city-h);
  overflow: hidden;
  z-index: 0;
}
.car, .truck {
  position: absolute;
  left: 0;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  will-change: transform;
}
.car {
  width: calc(152px * var(--s));
  height: calc(46px * var(--s));
  bottom: calc(6px * var(--s));
  background-image: url("/assets/car2.svg");
  animation: drive-right 8s linear infinite;
  z-index: 2;
}
.truck {
  width: calc(189px * var(--s));
  height: calc(118px * var(--s));
  bottom: calc(34px * var(--s));
  background-image: url("/assets/car3.svg");
  animation: drive-left 20s linear infinite;
  z-index: 1;
}

@keyframes clouds { from { background-position: 0 0; } to { background-position: -3000px 0; } }
@keyframes drive-right { from { transform: translateX(-200px); } to { transform: translateX(calc(100vw + 50px)); } }
@keyframes drive-left { from { transform: translateX(calc(100vw + 50px)); } to { transform: translateX(-250px); } }

@media (prefers-reduced-motion: reduce) {
  .clouds, .car, .truck { animation: none; }
  .car { transform: translateX(18vw); }
  .truck { transform: translateX(62vw); }
}

/* ---------- content ---------- */
.content {
  position: relative;
  z-index: 1;
  flex: 1 0 auto;
  width: 100%;
  max-width: 1120px;
  margin: 0 auto;
  padding: 48px 20px 64px;
}

.brand { text-align: center; color: #fff; }
.logo { display: block; width: 150px; height: auto; margin: 0 auto 18px; }
.tagline {
  margin: 0;
  font-weight: 600;
  font-size: 30px;
  line-height: 1.2;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  text-shadow: 0 1px 3px rgba(30, 70, 66, 0.45);
}
.subtitle {
  margin: 6px 0 0;
  font: italic 400 21px/1.35 "Playfair Display", Georgia, serif;
  text-shadow: 0 1px 3px rgba(30, 70, 66, 0.45);
}

.notice {
  max-width: 640px;
  margin: 36px auto 0;
  background: var(--card);
  border-radius: 14px;
  padding: 30px 34px 28px;
  box-shadow: 0 10px 30px rgba(40, 90, 85, 0.12);
  border-top: 4px solid var(--green);
  text-align: center;
}
.notice h1 {
  margin: 0 0 10px;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.3;
  text-transform: uppercase;
}
.notice p { margin: 0; color: var(--muted); font-size: 16px; }

.contacts {
  max-width: 900px;
  margin: 20px auto 0;
  padding: 22px 26px;
  background: var(--card);
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(40, 90, 85, 0.12);
}
.contacts ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px 20px;
}
.contacts li { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.contacts .label {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--green-dark);
}
.contacts a { text-decoration: none; overflow-wrap: anywhere; }
.contacts a:hover { text-decoration: underline; }

/* ---------- language switcher ---------- */
.lang-switch {
  position: absolute;
  top: 16px;
  right: 20px;
  z-index: 2;
  display: flex;
  gap: 4px;
  padding: 4px;
  background: rgba(255, 255, 255, 0.6);
  border-radius: 999px;
}
.lang-switch a {
  display: block;
  min-width: 40px;
  padding: 5px 10px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-align: center;
  text-decoration: none;
  color: var(--text);
}
.lang-switch a:hover { background: rgba(255, 255, 255, 0.8); color: var(--green-dark); }
.lang-switch a[aria-current="page"] { background: var(--green-dark); color: #fff; }

.legal {
  margin-top: 22px;
  text-align: center;
  font-size: 13px;
  color: #2f4f4b;
}
.legal p { margin: 2px 0; }

/* ---------- responsive ---------- */
/* keep the city in view on shorter desktop screens; --s = city height / 370 */
@media (min-width: 601px) and (max-height: 1000px) {
  :root { --city-h: 240px; --s: 0.649; }
  .content { padding-top: 32px; padding-bottom: 24px; }
  .notice { margin-top: 26px; }
}
@media (min-width: 601px) and (max-height: 820px) {
  :root { --city-h: 200px; --s: 0.541; }
  .logo { width: 120px; margin-bottom: 12px; }
}
@media (max-width: 760px) {
  .contacts ul { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  :root { --city-h: 240px; --s: 0.65; }
  .content { padding: 32px 16px 56px; }
  .logo { width: 116px; }
  .tagline { font-size: 23px; }
  .subtitle { font-size: 18px; }
  .content { padding-top: 64px; }
  .notice { padding: 22px 20px; margin-top: 28px; }
  .notice h1 { font-size: 20px; }
  .lang-switch { top: 12px; right: 12px; }
  .contacts { padding: 20px; }
  .clouds { top: 40px; }
}
