
/* ==============================================
   ADGUARDDNS.ORG — PREMIUM FOOTER
   APPROVED FIVE-COLUMN DESIGN
   Desktop / Tablet / Mobile
============================================== */

.adg-footer,
.adg-footer * {
  box-sizing: border-box;
}

.adg-footer {
  --footer-white: #f9f4ff;
  --footer-muted: #e2d3f2;
  --footer-purple: #b85bff;

  position: relative;
  isolation: isolate;
  overflow: hidden;

  width: min(1440px, calc(100% - 32px));
  margin: 0 auto 28px;

  border-radius: 23px;

  background:
    radial-gradient(
      ellipse 48% 85% at 0% 0%,
      rgba(116, 17, 191, 0.48),
      transparent 85%
    ),
    radial-gradient(
      ellipse 52% 85% at 100% 0%,
      rgba(116, 13, 195, 0.46),
      transparent 82%
    ),
    linear-gradient(
      115deg,
      #201038 0%,
      #170B33 48%,
      #210A42 100%
    );

  color: var(--footer-white);

  font-family: "Inter", sans-serif;

  box-shadow:
    0 17px 44px rgba(37, 12, 71, 0.14);
}

/* REMOVE POSSIBLE OLD FOOTER OVERRIDES */

.adg-footer a,
.adg-footer button,
.adg-footer input {
  font-family: inherit;
}

.adg-footer a {
  color: inherit;
  text-decoration: none;
}

.adg-footer p {
  margin-top: 0;
}

/* ==============================================
   DECORATIVE PURPLE WAVES
============================================== */

.adg-footer__waves {
  position: absolute;
  z-index: 0;

  bottom: 55px;
  left: 0;

  width: 100%;
  height: 103px;

  overflow: hidden;
  pointer-events: none;
}

.adg-footer__waves svg {
  display: block;
  width: 100%;
  height: 100%;
}

/* ==============================================
   FIVE-COLUMN GRID
============================================== */

.adg-footer__main {
  position: relative;
  z-index: 1;

  display: grid;

  grid-template-columns:
    minmax(0, 1.4fr)
    minmax(0, 1.05fr)
    minmax(0, 1.11fr)
    minmax(0, 0.94fr)
    minmax(0, 1.19fr);

  align-items: start;

  column-gap: 23px;

  width: 100%;

  padding: 42px 44px 78px;
}

/* ==============================================
   COLUMN 01 — BRAND
============================================== */

.adg-footer__brand {
  min-width: 0;
}

.adg-footer__logo {
  display: inline-block;

  margin: 0;

  color: #ffffff !important;

  font-family:
    "Plus Jakarta Sans",
    "Inter",
    sans-serif !important;

  font-size: clamp(21px, 1.8vw, 27px);
  font-weight: 800;

  letter-spacing: -0.045em;
  line-height: 1.2;

  white-space: nowrap;

  transition: opacity 0.2s ease;
}

.adg-footer__logo span {
  color: #b04cff;
}

.adg-footer__logo:hover {
  opacity: 0.9;
}

.adg-footer__tagline {
  margin: 5px 0 17px;

  color: #ddd0eb;

  font-size: 11.5px;
  font-weight: 400;
  line-height: 1.45;
}

.adg-footer__description {
  max-width: 285px;

  margin: 0 0 20px;

  color: #e9ddf6;

  font-size: 13px;
  line-height: 1.67;

  font-weight: 400;
}

/* ==============================================
   SOCIAL ICONS
============================================== */

.adg-footer__socials {
  display: flex;
  align-items: center;
  flex-wrap: wrap;

  gap: 10px;
}

.adg-footer__social {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: 37px;
  height: 37px;

  flex: 0 0 37px;

  border-radius: 50%;

  background:
    linear-gradient(
      145deg,
      rgba(142, 66, 220, 0.42),
      rgba(92, 37, 148, 0.55)
    );

  border: 1px solid rgba(214, 168, 255, 0.07);

  color: #ffffff;

  transition:
    background 0.25s ease,
    transform 0.25s ease;
}

/* Icon appearance is preserved;
   actual profile URLs are not connected yet. */

.adg-footer__social svg {
  display: block;

  width: 18px;
  height: 18px;

  max-width: 100%;
}

/* When real profile links are available,
   replace span with a using the same class. */

a.adg-footer__social:hover {
  transform: translateY(-3px);
  background: #7e2cbd;
}

a.adg-footer__social:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 4px;
}

/* ==============================================
   COLUMN HEADINGS
============================================== */

.adg-footer__column,
.adg-footer__newsletter {
  min-width: 0;

  border-left:
    1px solid rgba(229, 201, 255, 0.16);

  padding-left: 20px;
}

.adg-footer__title {
  display: flex;
  align-items: center;

  gap: 9px;

  margin: 0 0 19px;

  color: #ffffff;

  font-family:
    "Plus Jakarta Sans",
    "Inter",
    sans-serif;

  font-size: clamp(13px, 1.15vw, 16px);
  font-weight: 800;
  line-height: 1.45;

  letter-spacing: -0.025em;

  white-space: nowrap;
}

.adg-footer__title svg {
  display: block;

  flex: 0 0 19px;

  width: 19px;
  height: 19px;

  fill: none;
  stroke: #d8a7ff;

  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* ==============================================
   FOOTER NAVIGATION LINKS
============================================== */

.adg-footer__links {
  display: grid;
  gap: 10px;

  margin: 0;
  padding: 0;

  list-style: none;
}

.adg-footer__links li {
  min-width: 0;
  margin: 0;
  padding: 0;

  line-height: 1.45;
}

.adg-footer__links a,
.adg-footer__pending {
  display: inline-block;
  position: relative;

  max-width: 100%;

  color: #f0e8fa;

  font-size: 13px;
  font-weight: 400;

  line-height: 1.55;

  text-decoration: none;

  overflow-wrap: break-word;
}

.adg-footer__links a {
  transition:
    color 0.2s ease,
    transform 0.2s ease;
}

.adg-footer__links a::after {
  content: "";

  position: absolute;

  left: 0;
  bottom: -2px;

  width: 100%;
  height: 1px;

  background: #dca5ff;

  transform: scaleX(0);
  transform-origin: left;

  transition: transform 0.24s ease;
}

.adg-footer__links a:hover {
  color: #e0acff;
}

.adg-footer__links a:hover::after {
  transform: scaleX(1);
}

.adg-footer__links a:focus-visible {
  outline: 2px solid #dca5ff;
  outline-offset: 4px;
}

/* Future links look identical visually,
   but do not lead to nonexistent pages. */

.adg-footer__pending {
  cursor: default;
}

/* ==============================================
   COLUMN 05 — NEWSLETTER
============================================== */

.adg-footer__newsletter-text {
  max-width: 270px;

  margin: 0 0 20px;

  color: #e9ddf6;

  font-size: 13px;
  line-height: 1.65;
}

.adg-footer__form {
  position: relative;

  display: flex;
  align-items: center;

  width: 100%;
  min-width: 0;
  height: 49px;

  padding: 4px;

  border-radius: 100px;

  border:
    1px solid rgba(227, 197, 255, 0.43);

  background: rgba(255, 255, 255, 0.075);

  transition:
    border-color 0.25s ease,
    background 0.25s ease;
}

.adg-footer__form:focus-within {
  border-color: #d69cff;
  background: rgba(255, 255, 255, 0.11);
}

.adg-footer__form input {
  display: block;

  width: 100%;
  min-width: 0;
  height: 100%;

  flex: 1 1 auto;

  padding: 0 12px;

  border: 0;
  outline: 0;

  background: transparent;

  color: #ffffff;

  font-size: 12.5px;
  font-weight: 400;
}

.adg-footer__form input::placeholder {
  color: #d5c3e5;
  opacity: 1;
}

.adg-footer__form input:-webkit-autofill {
  -webkit-text-fill-color: #ffffff;
  transition:
    background-color 9999s ease-in-out 0s;
}

/* PURPLE SEND BUTTON */

.adg-footer__form button {
  display: flex;
  align-items: center;
  justify-content: center;

  flex: 0 0 41px;

  width: 41px;
  height: 41px;

  padding: 0;

  border: 0;
  border-radius: 50%;

  background:
    linear-gradient(
      140deg,
      #d27aff 0%,
      #9c31e3 100%
    );

  color: #ffffff;

  cursor: pointer;

  box-shadow:
    0 5px 15px rgba(139, 44, 211, 0.26);

  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease;
}

.adg-footer__form button:hover {
  transform: scale(1.055);

  box-shadow:
    0 6px 18px rgba(177, 71, 240, 0.32);
}

.adg-footer__form button:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 3px;
}

.adg-footer__form button:disabled {
  opacity: 0.65;
  cursor: wait;
}

.adg-footer__form button svg {
  display: block;

  width: 20px;
  height: 20px;

  fill: none;
  stroke: currentColor;
  stroke-width: 2;

  stroke-linecap: round;
  stroke-linejoin: round;
}

.adg-footer__form-status {
  margin: 9px 0 0;

  color: #edceff;

  font-size: 11px;
  line-height: 1.5;
}

.adg-footer__form-status:empty {
  display: none;
}

/* ACCESSIBLE HIDDEN LABEL */

.adg-footer__sr-only {
  position: absolute !important;

  width: 1px !important;
  height: 1px !important;

  padding: 0 !important;
  margin: -1px !important;

  overflow: hidden !important;

  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;

  border: 0 !important;
}

/* ==============================================
   BOTTOM COPYRIGHT BAR
============================================== */

.adg-footer__bottom {
  position: relative;
  z-index: 2;

  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 20px;

  min-height: 61px;

  padding: 17px 44px;

  border-top:
    1px solid rgba(233, 207, 255, 0.18);

  background:
    rgba(25, 6, 50, 0.48);
}

.adg-footer__bottom p {
  margin: 0;

  color: #f3ebff;

  font-size: 12px;
  line-height: 1.5;
  font-weight: 400;
}

.adg-footer__independent {
  display: flex;
  align-items: center;

  gap: 9px;
  text-align: right;
}

.adg-footer__independent svg {
  display: block;

  flex: 0 0 19px;

  width: 19px;
  height: 19px;

  fill: none;
  stroke: #ffffff;

  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* ==============================================
   MEDIUM DESKTOP
============================================== */

@media (min-width: 1181px) and (max-width: 1320px) {

  .adg-footer__main {
    column-gap: 15px;
    padding-inline: 31px;
  }

  .adg-footer__column,
  .adg-footer__newsletter {
    padding-left: 14px;
  }

  .adg-footer__title {
    gap: 7px;
    font-size: 13.5px;
  }

  .adg-footer__links a,
  .adg-footer__pending {
    font-size: 12px;
  }

  .adg-footer__bottom {
    padding-inline: 31px;
  }
}

/* ==============================================
   TABLET / SMALL LAPTOP
============================================== */

@media (max-width: 1180px) {

  .adg-footer__main {
    grid-template-columns:
      repeat(3, minmax(0, 1fr));

    gap: 35px 24px;

    padding: 39px 35px 85px;
  }

  .adg-footer__brand {
    grid-column: auto;
  }

  .adg-footer__column,
  .adg-footer__newsletter {
    padding-left: 18px;
  }

  .adg-footer__title {
    font-size: 15px;
  }

  .adg-footer__newsletter {
    grid-column: span 2;
  }

  .adg-footer__newsletter-text {
    max-width: 390px;
  }

  .adg-footer__form {
    max-width: 380px;
  }

  .adg-footer__bottom {
    padding-inline: 35px;
  }
}

/* ==============================================
   TABLET PORTRAIT
============================================== */

@media (max-width: 760px) {

  .adg-footer {
    width: calc(100% - 24px);
    border-radius: 19px;
    margin-bottom: 20px;
  }

  .adg-footer__main {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));

    gap: 30px 22px;

    padding: 34px 28px 85px;
  }

  .adg-footer__brand {
    grid-column: 1 / -1;
  }

  .adg-footer__logo {
    font-size: 25px;
  }

  .adg-footer__description {
    max-width: 470px;
  }

  .adg-footer__column,
  .adg-footer__newsletter {
    border-left: 0;
    padding-left: 0;
  }

  .adg-footer__newsletter {
    grid-column: 1 / -1;
  }

  .adg-footer__newsletter-text {
    max-width: 400px;
  }

  .adg-footer__bottom {
    padding: 18px 28px;

    flex-direction: column;
    align-items: flex-start;

    gap: 10px;
  }

  .adg-footer__independent {
    text-align: left;
  }
}

/* ==============================================
   MOBILE
============================================== */

@media (max-width: 480px) {

  .adg-footer {
    width: calc(100% - 20px);

    border-radius: 18px;

    margin: 0 auto 16px;
  }

  .adg-footer__main {
    grid-template-columns:
      minmax(0, 1fr);

    gap: 25px;

    padding: 31px 25px 80px;
  }

  .adg-footer__brand,
  .adg-footer__newsletter {
    grid-column: auto;
  }

  .adg-footer__logo {
    font-size: 25px;
  }

  .adg-footer__tagline {
    font-size: 11px;
    margin-bottom: 14px;
  }

  .adg-footer__description {
    max-width: 340px;

    margin-bottom: 17px;

    font-size: 12.5px;
    line-height: 1.65;
  }

  .adg-footer__socials {
    gap: 9px;
  }

  .adg-footer__social {
    flex-basis: 36px;
    width: 36px;
    height: 36px;
  }

  .adg-footer__column,
  .adg-footer__newsletter {
    border-left: 0;
    padding-left: 0;
  }

  .adg-footer__title {
    font-size: 15px;
    margin-bottom: 12px;
  }

  .adg-footer__links {
    gap: 9px;
  }

  .adg-footer__links a,
  .adg-footer__pending {
    font-size: 13px;
  }

  .adg-footer__newsletter-text {
    font-size: 12.5px;
    margin-bottom: 15px;
  }

  .adg-footer__form {
    width: 100%;
    max-width: 100%;
  }

  .adg-footer__waves {
    bottom: 87px;
    height: 85px;
  }

  .adg-footer__bottom {
    min-height: auto;

    gap: 11px;

    padding: 18px 25px 20px;
  }

  .adg-footer__bottom p {
    font-size: 11px;
  }

  .adg-footer__independent {
    align-items: flex-start;
  }

  .adg-footer__independent svg {
    margin-top: 1px;
  }
}

/* ==============================================
   SMALL MOBILE
============================================== */

@media (max-width: 350px) {

  .adg-footer__main {
    padding-inline: 18px;
  }

  .adg-footer__bottom {
    padding-inline: 18px;
  }

  .adg-footer__logo {
    font-size: 23px;
  }

  .adg-footer__form input {
    padding-inline: 9px;
    font-size: 12px;
  }
}

/* ==============================================
   REDUCED MOTION
============================================== */

@media (prefers-reduced-motion: reduce) {

  .adg-footer *,
  .adg-footer *::before,
  .adg-footer *::after {
    animation: none !important;
    transition: none !important;
  }
}
