:root {
  --green: #009739;
  --green-2: #057f35;
  --yellow: #ffdf00;
  --yellow-2: #f7bd00;
  --blue: #002776;
  --blue-2: #064e9b;
  --ink: #0c1b36;
  --muted: #627089;
  --line: #dbe3ef;
  --soft: #f4f8fd;
  --white: #fff;
  --danger: #d6293e;
  --shadow: 0 18px 44px rgba(0, 39, 118, .12);
  --shadow-soft: 0 10px 26px rgba(0, 39, 118, .10);
  --radius: 28px;
  --radius-sm: 16px;
  --container: 1680px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, "Segoe UI", Roboto, Arial, sans-serif;
  color: var(--ink);
  background:
    radial-gradient(circle at top left, rgba(255, 223, 0, .13), transparent 28rem),
    radial-gradient(circle at 94% 16rem, rgba(0, 151, 57, .10), transparent 22rem),
    linear-gradient(180deg, #fff 0%, #f3f7fc 48%, #fff 100%);
  min-width: 320px;
}

a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
img { max-width: 100%; display: block; }

.container {
  width: min(calc(100% - 32px), var(--container));
  margin-inline: auto;
}

.skip-link {
  position: fixed;
  left: 1rem;
  top: -4rem;
  z-index: 1000;
  padding: .8rem 1rem;
  border-radius: .8rem;
  color: #fff;
  background: var(--blue);
  transition: top .2s;
}
.skip-link:focus { top: 1rem; }

body:not(.admin-page) > .topbar {
  display: none;
}

.topbar {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255,255,255,.93);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(0, 39, 118, .09);
  box-shadow: 0 10px 22px rgba(0, 39, 118, .05);
}
.nav-wrap {
  min-height: 103px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: clamp(1rem, 2vw, 2.5rem);
}
.brand img { width: clamp(220px, 18vw, 310px); }
.nav {
  justify-self: center;
  display: flex;
  align-items: center;
  gap: clamp(.4rem, 1.2vw, 1.2rem);
}
.nav-link {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  padding: .9rem 1.15rem;
  border-radius: 16px;
  font-weight: 800;
  color: #16264a;
  transition: transform .2s, background .2s, color .2s, box-shadow .2s;
}
.nav-link:hover { transform: translateY(-1px); background: #f4f8fd; }
.nav-link.active {
  color: var(--green);
  background: #fff;
  box-shadow: var(--shadow-soft);
  position: relative;
}
.nav-link.active::after {
  content: "";
  position: absolute;
  left: 22%;
  right: 22%;
  bottom: .28rem;
  height: 3px;
  border-radius: 99px;
  background: var(--green);
}
.ico { font-size: 1.15rem; }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  min-height: 48px;
  padding: .9rem 1.35rem;
  border: 0;
  border-radius: 14px;
  font-weight: 900;
  letter-spacing: .01em;
  text-transform: none;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
  user-select: none;
}
.btn:hover { transform: translateY(-2px); }
.btn-green, .btn-submit {
  color: #fff;
  background: linear-gradient(180deg, #0db54c 0%, #007e31 100%);
  box-shadow: 0 12px 22px rgba(0, 151, 57, .25);
}
.btn-yellow {
  color: #102650;
  background: linear-gradient(180deg, #ffe660 0%, #ffc400 100%);
  box-shadow: 0 15px 30px rgba(255, 199, 0, .30);
  text-transform: uppercase;
}
.btn-ghost {
  color: #fff;
  border: 1px solid rgba(255,255,255,.32);
  background: rgba(255,255,255,.10);
}
.btn-light {
  color: var(--blue);
  background: #edf4ff;
}
.nav-cta { white-space: nowrap; }

.menu-toggle {
  display: none;
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 14px;
  background: #edf4ff;
  cursor: pointer;
}
.menu-toggle span {
  display: block;
  width: 24px;
  height: 3px;
  margin: 4px auto;
  border-radius: 99px;
  background: var(--blue);
}

.hero {
  position: relative;
  overflow: hidden;
  min-height: 430px;
  color: #fff;
  background:
    linear-gradient(90deg, rgba(0, 39, 118, .98) 0%, rgba(0, 39, 118, .92) 36%, rgba(0, 39, 118, .50) 66%, rgba(0, 39, 118, .78) 100%),
    radial-gradient(circle at 60% 25%, rgba(255,255,255,.22), transparent 21rem),
    linear-gradient(135deg, #002776 0%, #064e9b 58%, #00418d 100%);
}
.hero::before,
.hero::after {
  content: "";
  position: absolute;
  pointer-events: none;
}
.hero::before {
  inset: 0;
  background-image:
    radial-gradient(circle, rgba(255,223,0,.75) 0 2px, transparent 2.8px),
    radial-gradient(circle, rgba(0,151,57,.70) 0 2px, transparent 2.8px),
    linear-gradient(115deg, transparent 0 15%, rgba(255,255,255,.05) 15% 16%, transparent 16% 100%);
  background-size: 80px 80px, 110px 110px, 100% 100%;
  background-position: 20px 40px, 80px 12px, 0 0;
  opacity: .32;
}
.hero::after {
  left: -50px;
  bottom: -155px;
  width: 420px;
  height: 420px;
  border: 2px solid rgba(255,255,255,.08);
  border-radius: 50%;
}
.hero-ribbon {
  position: absolute;
  top: -10px;
  z-index: 1;
  width: min(24vw, 330px);
  height: 115%;
  pointer-events: none;
  background:
    linear-gradient(135deg, transparent 0 22%, var(--green) 22% 32%, var(--yellow) 32% 40%, var(--blue-2) 40% 50%, transparent 50% 100%);
  opacity: .95;
}
.hero-ribbon-left { left: -70px; transform: skewX(-16deg); }
.hero-ribbon-right { right: -70px; transform: scaleX(-1) skewX(-16deg); }
.hero-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(320px, 560px) minmax(420px, 1fr);
  gap: clamp(1.2rem, 2.6vw, 3rem);
  align-items: center;
  min-height: 430px;
  padding-block: clamp(2rem, 4vw, 4rem);
}
.hero-copy { padding-left: clamp(0rem, 3vw, 5rem); }
.eyebrow {
  display: inline-flex;
  align-items: center;
  padding: .45rem .75rem;
  border-radius: 999px;
  color: #fff;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.20);
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  font-size: .82rem;
}
.hero h1 {
  margin: .8rem 0 .5rem;
  font-size: clamp(3rem, 5.6vw, 6.1rem);
  line-height: .92;
  text-transform: uppercase;
  letter-spacing: -.05em;
  text-wrap: balance;
}
.hero h1 strong {
  display: block;
  color: var(--yellow);
  font-family: "Segoe Script", "Brush Script MT", cursive;
  font-style: italic;
  font-weight: 900;
  text-transform: none;
  letter-spacing: -.06em;
  text-shadow: 0 4px 0 rgba(0,0,0,.10);
}
.hero p {
  max-width: 520px;
  margin: 0 0 1.4rem;
  color: rgba(255,255,255,.92);
  font-size: clamp(1.05rem, 1.45vw, 1.35rem);
  line-height: 1.55;
  font-weight: 650;
}
.hero-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .85rem;
}
.hero-visual {
  align-self: stretch;
  min-height: 320px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hero-visual img {
  width: min(100%, 850px);
  max-height: 420px;
  object-fit: contain;
  filter: drop-shadow(0 30px 32px rgba(0, 20, 70, .30));
}

.page-content {
  padding: 28px 0 10px;
}
.content-grid {
  display: grid;
  grid-template-columns: minmax(260px, 310px) minmax(0, 1fr) minmax(280px, 360px);
  gap: clamp(1rem, 2vw, 2rem);
  align-items: start;
  margin-top: -58px;
  position: relative;
  z-index: 4;
}
.info-card,
.form-card,
.benefits-card {
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(0, 39, 118, .10);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.info-card,
.benefits-card { padding: clamp(1.1rem, 1.7vw, 1.6rem); }
.form-card { padding: clamp(1.2rem, 2vw, 2rem); }

.info-card h2,
.benefits-card h2 {
  margin: 0 0 1.15rem;
  color: var(--green);
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: .02em;
}
.info-card h2 {
  padding-bottom: .7rem;
  border-bottom: 1px solid var(--line);
}
.info-item {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: .8rem;
  padding: .9rem 0;
  border-bottom: 1px solid rgba(219,227,239,.80);
}
.info-item:last-of-type { border-bottom: 0; }
.info-icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  color: var(--blue);
  background: #edf4ff;
  font-size: 1.18rem;
}
.info-item h3,
.benefit h3 {
  margin: 0 0 .32rem;
  color: var(--green);
  font-size: .88rem;
  text-transform: uppercase;
}
.info-item p,
.info-item ul,
.benefit p {
  margin: 0;
  color: #22304b;
  font-size: .91rem;
  line-height: 1.45;
  font-weight: 580;
}
.info-item ul { padding-left: 1.05rem; }
.doubt-box {
  margin-top: 1rem;
  padding: 1rem;
  border-radius: 16px;
  background: linear-gradient(135deg, #e8f8ed, #f5fbf7);
  color: #133d2a;
}
.doubt-box strong { color: var(--green); text-transform: uppercase; }
.doubt-box p { margin: .35rem 0 0; line-height: 1.4; }

.section-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .7rem;
  margin-bottom: 1.25rem;
  color: var(--yellow-2);
}
.section-heading h2 {
  margin: 0;
  color: var(--blue);
  font-size: clamp(1.15rem, 2vw, 1.55rem);
  text-align: center;
  text-transform: uppercase;
}
.section-heading::before,
.section-heading::after {
  content: "";
  width: min(12vw, 150px);
  height: 1px;
  background: var(--line);
}
.form-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: .9rem 1rem;
}
.field {
  grid-column: span 2;
  display: grid;
  gap: .35rem;
}
.field-wide-sm { grid-column: span 2; }
.field-full { grid-column: 1 / -1; }
.field span,
.form-note {
  color: #142444;
  font-size: .86rem;
  font-weight: 850;
}
em { color: var(--danger); font-style: normal; }
input, select, textarea {
  width: 100%;
  border: 1px solid #ccd7e7;
  border-radius: 10px;
  padding: .82rem .9rem;
  color: #13213d;
  background: #fff;
  outline: none;
  transition: border .2s ease, box-shadow .2s ease, background .2s ease;
}
select {
  appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, #53627a 50%),
    linear-gradient(135deg, #53627a 50%, transparent 50%);
  background-position: calc(100% - 18px) 55%, calc(100% - 13px) 55%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  padding-right: 2.5rem;
}
textarea { resize: vertical; min-height: 74px; }
input:focus, select:focus, textarea:focus {
  border-color: var(--blue-2);
  box-shadow: 0 0 0 4px rgba(6, 78, 155, .12);
}
input::placeholder, textarea::placeholder { color: #8c9aaf; }
.field.invalid input,
.field.invalid select,
.field.invalid textarea,
.check-card.invalid {
  border-color: var(--danger);
  box-shadow: 0 0 0 4px rgba(214, 41, 62, .09);
}
.check-card {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: .85rem;
  align-items: start;
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid #cbd8eb;
  border-radius: 13px;
  background: linear-gradient(180deg, #f1f7ff, #eaf2fc);
  cursor: pointer;
}
.check-card input {
  width: 24px;
  height: 24px;
  margin: .1rem 0 0;
  accent-color: var(--green);
}
.check-card span {
  color: #142444;
  font-weight: 850;
  line-height: 1.35;
}
.check-card small {
  display: block;
  margin-top: .25rem;
  color: var(--blue-2);
  font-weight: 850;
}
.form-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .8rem;
  flex-wrap: wrap;
  margin-top: 1rem;
}
.btn-submit {
  min-width: min(100%, 360px);
  text-transform: uppercase;
  font-size: 1.08rem;
}
.form-note {
  margin: .8rem 0 0;
  text-align: center;
  color: var(--muted);
}
.form-status {
  min-height: 1.35rem;
  margin: .45rem 0 0;
  color: var(--green);
  text-align: center;
  font-weight: 850;
}
.form-status.error {
  color: var(--danger);
}
.btn:disabled {
  cursor: wait;
  opacity: .68;
  transform: none;
}

.benefits-card h2 {
  color: var(--blue);
  text-align: center;
}
.benefit {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 1rem;
  align-items: center;
  margin-block: 1rem;
}
.benefit-icon {
  width: 64px;
  height: 64px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  font-size: 1.7rem;
  box-shadow: 0 10px 20px rgba(0,0,0,.12);
}
.benefit-icon.green { background: linear-gradient(180deg, #4abe63, #008c36); }
.benefit-icon.yellow { background: linear-gradient(180deg, #ffe45a, #f4b900); color: #fff; }
.benefit-icon.blue { background: linear-gradient(180deg, #0a69c4, #002776); }
.slogan {
  margin: 1.3rem 0 0;
  color: var(--blue-2);
  font-family: "Segoe Script", "Brush Script MT", cursive;
  font-size: clamp(1.15rem, 1.8vw, 1.55rem);
  font-weight: 900;
  line-height: 1.2;
  text-align: center;
}
.slogan span { color: var(--green); }

.footer {
  position: relative;
  overflow: hidden;
  margin-top: 40px;
  color: #fff;
  background:
    radial-gradient(circle at 85% 10%, rgba(255, 223, 0, .18), transparent 18rem),
    linear-gradient(135deg, #002776 0%, #053f8e 70%, #002776 100%);
}
.footer::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,.13) 0 1px, transparent 2px);
  background-size: 36px 36px;
  opacity: .22;
}
.footer-ribbon {
  position: absolute;
  width: 240px;
  height: 240px;
  bottom: -130px;
  border-radius: 50%;
  border: 23px solid var(--green);
  box-shadow: 0 0 0 20px var(--yellow), 0 0 0 40px var(--blue-2);
  opacity: .88;
}
.footer-left { left: -95px; }
.footer-right { right: -95px; }
.footer-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 280px minmax(280px, 1.4fr) 260px;
  gap: 2rem;
  align-items: center;
  min-height: 150px;
  padding-block: 1.5rem;
}
.footer-brand img {
  width: 260px;
  filter: drop-shadow(0 7px 10px rgba(0,0,0,.25));
}
.footer-block {
  min-height: 92px;
  border-left: 1px solid rgba(255,255,255,.18);
  padding-left: 1.5rem;
}
.footer-block h2 {
  margin: 0 0 .7rem;
  color: #fff;
  font-size: .92rem;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.footer-block p {
  margin: .25rem 0;
  color: rgba(255,255,255,.88);
  line-height: 1.38;
  font-weight: 620;
}
.footer .footer-block + .footer-block {
  display: none;
}
.socials { display: flex; gap: .65rem; margin: .5rem 0; }
.socials a {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(255,255,255,.12);
  color: #fff;
  font-weight: 900;
  border: 1px solid rgba(255,255,255,.18);
}
.footer-script {
  font-family: "Segoe Script", "Brush Script MT", cursive;
  font-size: 1.38rem;
  line-height: 1.18;
  text-align: center;
}
.footer-script strong { display: block; font-size: 1.55rem; color: #fff; }
.footer-script span { color: #ffe58d; }

.modal {
  width: min(92vw, 460px);
  border: 0;
  border-radius: 26px;
  padding: 0;
  box-shadow: 0 30px 90px rgba(0, 26, 79, .35);
}
.modal::backdrop { background: rgba(5, 16, 35, .58); backdrop-filter: blur(4px); }
.modal-content { position: relative; padding: 2rem; text-align: center; }
.modal-close {
  position: absolute;
  top: .8rem;
  right: .8rem;
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: 50%;
  background: #eef4ff;
  color: var(--blue);
  font-size: 1.5rem;
  cursor: pointer;
}
.modal-icon {
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  margin: 0 auto 1rem;
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(180deg, #14b85a, #008138);
  font-size: 2.2rem;
  font-weight: 900;
}
.modal h2 { margin: 0 0 .5rem; color: var(--blue); }
.modal p { margin: 0 0 1rem; color: var(--muted); line-height: 1.5; }
.protocol {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 190px;
  margin-bottom: 1rem;
  padding: .8rem 1rem;
  border-radius: 12px;
  color: var(--blue);
  background: #edf4ff;
  border: 1px dashed #98acd0;
  font-weight: 900;
  letter-spacing: .08em;
}

@media (max-width: 1340px) {
  .nav-wrap { grid-template-columns: auto auto; }
  .brand { grid-column: 1; }
  .menu-toggle { display: inline-grid; align-content: center; justify-self: end; }
  .nav-cta { display: none; }
  .nav {
    grid-column: 1 / -1;
    display: none;
    justify-self: stretch;
    flex-wrap: wrap;
    padding-bottom: 1rem;
  }
  .nav.open { display: flex; }
  .nav-link { flex: 1 1 170px; justify-content: center; }
  .content-grid { grid-template-columns: minmax(230px, 310px) minmax(0, 1fr); }
  .benefits-card { grid-column: 1 / -1; }
  .benefits-card { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
  .benefits-card h2, .benefits-card .slogan { grid-column: 1 / -1; }
  .benefit { grid-template-columns: 54px 1fr; margin: 0; }
  .benefit-icon { width: 54px; height: 54px; font-size: 1.35rem; }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-brand img { width: 240px; }
  .footer-script { text-align: left; }
}

@media (max-width: 980px) {
  .hero-grid { grid-template-columns: 1fr; text-align: center; }
  .hero-copy { padding-left: 0; }
  .hero p { margin-inline: auto; }
  .hero-actions { justify-content: center; }
  .hero-visual { min-height: 250px; }
  .hero-visual img { max-height: 330px; }
  .hero-ribbon { opacity: .45; width: 190px; }
  .content-grid { grid-template-columns: 1fr; margin-top: -36px; }
  .info-card { order: 2; }
  .form-card { order: 1; }
  .benefits-card { order: 3; grid-template-columns: repeat(2, 1fr); }
  .form-grid { grid-template-columns: repeat(2, 1fr); }
  .field, .field-wide-sm { grid-column: span 1; }
  .field-full { grid-column: 1 / -1; }
}

@media (max-width: 680px) {
  .container { width: min(calc(100% - 20px), var(--container)); }
  .topbar { position: sticky; }
  .nav-wrap { min-height: 80px; gap: .6rem; }
  .brand img { width: 210px; }
  .nav-link { flex-basis: 100%; justify-content: flex-start; }
  .hero { min-height: unset; }
  .hero-grid { min-height: unset; padding: 1.5rem 0 2.4rem; }
  .eyebrow { font-size: .72rem; }
  .hero h1 { font-size: clamp(2.65rem, 14vw, 4.4rem); }
  .hero p { font-size: 1rem; }
  .hero-actions .btn { width: 100%; }
  .hero-visual { min-height: 180px; }
  .hero-visual img { max-height: 245px; }
  .content-grid { margin-top: -24px; gap: .9rem; }
  .info-card, .form-card, .benefits-card { border-radius: 22px; }
  .form-grid { grid-template-columns: 1fr; gap: .8rem; }
  .field, .field-wide-sm, .field-full { grid-column: 1 / -1; }
  .section-heading::before, .section-heading::after { width: 26px; }
  .check-card { grid-template-columns: 24px 1fr; padding: .85rem; }
  .form-actions .btn { width: 100%; }
  .benefits-card { grid-template-columns: 1fr; }
  .benefit { grid-template-columns: 58px 1fr; }
  .footer { margin-top: 24px; }
  .footer-grid { grid-template-columns: 1fr; gap: 1.1rem; text-align: left; }
  .footer-block { min-height: unset; padding-left: 1rem; }
  .footer-script { text-align: center; }
}

@media (max-width: 430px) {
  .brand img { width: 178px; }
  .menu-toggle { width: 44px; height: 44px; }
  .hero h1 { letter-spacing: -.06em; }
  .info-item { grid-template-columns: 38px 1fr; }
  .info-icon { width: 38px; height: 38px; }
  input, select, textarea { padding: .76rem .78rem; }
}

@media print {
  .topbar, .hero, .footer, .info-card, .benefits-card, .form-actions, .modal-close, #printButton { display: none !important; }
  body { background: #fff; }
  .content-grid { display: block; margin-top: 0; }
  .form-card { box-shadow: none; border: 1px solid #ddd; }
  .modal[open] { position: static; display: block; box-shadow: none; width: 100%; }
}
