/* =========================================================
   PORTAL ANJO AZUL — style.css
   ========================================================= */

/* --- Google Fonts import --------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Sora:wght@500;600;700;800&display=swap');

/* --- CSS Tokens ------------------------------------------ */
:root {
  --blue-deep:   #1e3a8a;
  --blue-main:   #2563eb;
  --blue-soft:   #60a5fa;
  --blue-light:  #dbeafe;
  --blue-accent: #eff6ff;

  --red:         #dc2626;
  --emerald:     #10b981;

  --slate-50:    #f8fafc;
  --slate-100:   #f1f5f9;
  --slate-200:   #e2e8f0;
  --slate-500:   #64748b;
  --slate-600:   #475569;
  --slate-900:   #0f172a;

  --white:       #ffffff;

  --grad-primary: linear-gradient(135deg, #1e3a8a, #2563eb, #60a5fa);
  --grad-hero:    radial-gradient(ellipse at top left, rgba(147,197,253,.55), transparent 60%),
                  radial-gradient(ellipse at bottom right, rgba(96,165,250,.35), transparent 55%),
                  linear-gradient(180deg, #ffffff, #eff6ff);
  --grad-deep:    linear-gradient(135deg, #1e3a8a, #3b82f6);

  --shadow-glow:  0 20px 60px -20px rgba(37,99,235,.45);
  --shadow-soft:  0 10px 40px -15px rgba(30,58,138,.25);
  --shadow-card:  0 4px 24px -8px rgba(30,58,138,.12);

  --radius-sm:   .75rem;
  --radius-md:   1rem;
  --radius-lg:   1.5rem;
  --radius-full: 999px;

  --font-sans:    'Inter', system-ui, sans-serif;
  --font-display: 'Sora', 'Inter', sans-serif;
}

/* --- Reset & Base ---------------------------------------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  font-family: var(--font-sans);
  color: var(--slate-900);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
  line-height: 1.6;
}

h1, h2, h3, h4 {
  font-family: var(--font-display);
  letter-spacing: -.02em;
  line-height: 1.1;
}

img { display: block; max-width: 100%; }
a  { color: inherit; text-decoration: none; }
ul { list-style: none; }

/* --- Utilities ------------------------------------------- */
.container {
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: 1rem;
}
@media (min-width: 640px)  { .container { padding-inline: 1.5rem; } }
@media (min-width: 1024px) { .container { padding-inline: 2rem; } }

.gradient-text {
  background: var(--grad-primary);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  font-family: var(--font-sans);
  font-weight: 600;
  border: none;
  cursor: pointer;
  transition: opacity .2s, transform .15s;
  text-decoration: none;
}
.btn:hover { opacity: .88; transform: translateY(-1px); }

.btn-primary {
  background: var(--grad-primary);
  color: var(--white);
  padding: 1rem 1.75rem;
  border-radius: var(--radius-full);
  box-shadow: var(--shadow-glow);
}

.btn-outline {
  background: var(--white);
  color: var(--blue-deep);
  padding: 1rem 1.75rem;
  border-radius: var(--radius-full);
  border: 1.5px solid var(--slate-200);
}

.btn-sm {
  padding: .65rem 1.25rem;
  font-size: .875rem;
}

.badge {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  background: rgba(255,255,255,.8);
  border: 1px solid rgba(37,99,235,.2);
  padding: .35rem .9rem;
  border-radius: var(--radius-full);
  font-size: .6875rem;
  font-weight: 700;
  color: var(--blue-deep);
  box-shadow: var(--shadow-card);
}

.eyebrow {
  font-size: .75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--blue-main);
}

.section-title {
  font-size: clamp(1.75rem, 4vw, 3rem);
  font-weight: 800;
  color: var(--blue-deep);
  margin-top: .75rem;
}

/* --- Animations ------------------------------------------ */
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-12px); }
}
@keyframes pulseRing {
  0%   { box-shadow: 0 0 0 0 rgba(220,38,38,.6); }
  100% { box-shadow: 0 0 0 24px rgba(220,38,38,0); }
}

.anim-float       { animation: float 6s ease-in-out infinite; }
.anim-float-delay { animation: float 6s ease-in-out 1.5s infinite; }
.anim-pulse-ring  { animation: pulseRing 1.8s ease-out infinite; }

@media (prefers-reduced-motion: reduce) {
  .anim-float, .anim-float-delay, .anim-pulse-ring { animation: none; }
}

/* =========================================================
   HEADER
   ========================================================= */
.header {
  position: sticky;
  top: 0;
  z-index: 50;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  background: rgba(255,255,255,.75);
  border-bottom: 1px solid rgba(226,232,240,.6);
}

.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  height: 4rem;
}

.header__brand {
  display: flex;
  align-items: center;
  gap: .5rem;
  min-width: 0;
}

.header__logo { height: 2.25rem; width: 2.25rem; object-fit: contain; flex-shrink: 0; }

.header__brand-name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
@media (min-width: 640px) { .header__brand-name { font-size: 1.125rem; } }

.header__brand-name span { color: var(--blue-main); }

.header__nav {
  display: none;
  align-items: center;
  gap: 1.75rem;
  font-size: .875rem;
  font-weight: 500;
  color: var(--slate-500);
}
@media (min-width: 1024px) { .header__nav { display: flex; } }
.header__nav a:hover { color: var(--blue-main); }

.header__cta { display: none; }
@media (min-width: 640px) { .header__cta { display: inline-flex; padding: .625rem 1.125rem; font-size: .875rem; } }

/* =========================================================
   HERO
   ========================================================= */
.hero {
  background: var(--grad-hero);
  overflow: hidden;
  position: relative;
}

.hero__grid {
  display: grid;
  gap: 3rem;
  padding-block: 4rem;
  align-items: center;
}
@media (min-width: 1024px) {
  .hero__grid { grid-template-columns: 1fr 1fr; gap: 4rem; padding-block: 6rem; }
}

.hero__title {
  font-size: clamp(2rem, 5vw, 3.75rem);
  font-weight: 800;
  color: var(--blue-deep);
}

.hero__subtitle {
  margin-top: 1.5rem;
  font-size: 1.125rem;
  color: var(--slate-600);
  line-height: 1.7;
}

.hero__taglines {
  margin-top: 1.5rem;
  font-size: 1rem;
  font-weight: 600;
  color: var(--blue-deep);
  line-height: 2;
}

.hero__actions {
  margin-top: 2rem;
  display: flex;
  flex-direction: column;
  gap: .75rem;
}
@media (min-width: 640px) { .hero__actions { flex-direction: row; } }

.hero__checks {
  margin-top: 2.5rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .5rem .75rem;
  font-size: .875rem;
  color: var(--slate-600);
}
.hero__checks li { display: flex; align-items: center; gap: .4rem; }

.hero__visual { position: relative; }

.hero__image-wrap {
  position: relative;
  border-radius: 1.5rem;
  overflow: hidden;
  box-shadow: var(--shadow-glow);
  border: 1px solid rgba(255,255,255,.4);
}
.hero__image-wrap::before {
  content: '';
  position: absolute;
  inset: -1rem;
  background: var(--grad-primary);
  opacity: .2;
  filter: blur(2rem);
  border-radius: 50%;
  z-index: -1;
}

.hero__image-wrap img { width: 100%; height: auto; object-fit: cover; }

.hero__badge {
  position: absolute;
  bottom: -1.5rem;
  left: -1.5rem;
  background: var(--white);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  padding: 1rem;
  display: flex;
  align-items: center;
  gap: .75rem;
}
.hero__badge-icon {
  background: rgba(37,99,235,.1);
  padding: .625rem;
  border-radius: var(--radius-sm);
  font-size: 1.25rem;
}
.hero__badge p:first-child { font-size: .7rem; color: var(--slate-500); }
.hero__badge p:last-child  { font-size: .875rem; font-weight: 600; }

.hero__badge--top {
  bottom: auto;
  left: auto;
  top: -1rem;
  right: -1rem;
}
.hero__badge-icon--green {
  background: rgba(16,185,129,.1);
  color: var(--emerald);
}

/* =========================================================
   PROBLEM SECTION
   ========================================================= */
.section-problem {
  padding-block: 5rem;
}
@media (min-width: 1024px) { .section-problem { padding-block: 7rem; } }

.problem__center { max-width: 56rem; margin-inline: auto; text-align: center; }

.problem__cards {
  margin-top: 2.5rem;
  display: grid;
  gap: 1rem;
}
@media (min-width: 640px) { .problem__cards { grid-template-columns: repeat(3, 1fr); } }

.problem-card {
  background: var(--white);
  border: 1px solid var(--slate-200);
  border-radius: var(--radius-lg);
  padding: 1.5rem;
  box-shadow: var(--shadow-card);
}
.problem-card__icon { font-size: 1.5rem; color: var(--blue-main); }
.problem-card__title { font-weight: 600; color: var(--blue-deep); margin-top: .75rem; }
.problem-card__text  { margin-top: .5rem; font-size: .875rem; color: var(--slate-600); }

.problem__cta {
  margin-top: 2.5rem;
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--blue-deep);
  text-align: center;
}
.problem__cta span { color: var(--blue-main); }

/* =========================================================
   HOW IT WORKS
   ========================================================= */
.section-how { padding-block: 5rem; background: var(--slate-50); }
@media (min-width: 1024px) { .section-how { padding-block: 7rem; } }

.how__center { max-width: 42rem; margin-inline: auto; text-align: center; }
.how__sub { margin-top: 1rem; color: var(--slate-600); }

.how__steps {
  margin-top: 3.5rem;
  display: grid;
  gap: 1.5rem;
}
@media (min-width: 768px)  { .how__steps { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .how__steps { grid-template-columns: repeat(4, 1fr); } }

.step-card {
  position: relative;
  background: var(--white);
  border-radius: var(--radius-lg);
  padding: 1.5rem;
  border: 1px solid var(--slate-200);
  box-shadow: var(--shadow-card);
  padding-top: 2.5rem;
}
.step-card__label {
  position: absolute;
  top: -1rem;
  left: 1.5rem;
  background: var(--grad-primary);
  color: var(--white);
  font-size: .625rem;
  font-weight: 700;
  letter-spacing: .12em;
  padding: .35rem .75rem;
  border-radius: var(--radius-full);
}
.step-card__icon {
  display: inline-flex;
  padding: .75rem;
  border-radius: var(--radius-md);
  background: rgba(37,99,235,.1);
  color: var(--blue-main);
  font-size: 1.5rem;
  margin-top: .5rem;
}
.step-card__title { margin-top: 1rem; font-size: 1.125rem; font-weight: 700; color: var(--blue-deep); }
.step-card__text  { margin-top: .5rem; font-size: .875rem; color: var(--slate-600); }

.how__feature {
  margin-top: 4rem;
  display: grid;
  gap: 2.5rem;
  align-items: center;
  background: var(--white);
  border-radius: var(--radius-lg);
  padding: 1.5rem;
  box-shadow: var(--shadow-card);
  border: 1px solid var(--slate-200);
}
@media (min-width: 640px)  { .how__feature { padding: 2.5rem; } }
@media (min-width: 1024px) { .how__feature { grid-template-columns: 1fr 1fr; } }

.how__feature img {
  border-radius: var(--radius-md);
  width: 100%;
  object-fit: cover;
}
.how__feature-title { font-size: 1.5rem; font-weight: 800; color: var(--blue-deep); }
@media (min-width: 640px) { .how__feature-title { font-size: 1.875rem; } }
.how__feature-text { margin-top: 1rem; color: var(--slate-600); }
.how__feature-list {
  margin-top: 1.5rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .75rem;
  font-size: .875rem;
}
.how__feature-list li { display: flex; align-items: center; gap: .4rem; }

/* =========================================================
   FOR WHOM
   ========================================================= */
.section-audience { padding-block: 5rem; }
@media (min-width: 1024px) { .section-audience { padding-block: 7rem; } }

.audience__center { max-width: 42rem; margin-inline: auto; text-align: center; }

.audience__grid {
  margin-top: 3rem;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}
@media (min-width: 640px)  { .audience__grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .audience__grid { grid-template-columns: repeat(4, 1fr); } }

.audience-card {
  background: var(--white);
  border: 1px solid var(--slate-200);
  border-radius: var(--radius-lg);
  padding: 1.25rem 1rem;
  text-align: center;
  box-shadow: var(--shadow-card);
}
.audience-card__icon {
  margin-inline: auto;
  display: inline-flex;
  padding: .75rem;
  border-radius: var(--radius-md);
  background: var(--grad-primary);
  color: var(--white);
  font-size: 1.5rem;
}
.audience-card__title { margin-top: 1rem; font-weight: 600; color: var(--blue-deep); font-size: .9375rem; }

/* =========================================================
   INSTITUTIONS
   ========================================================= */
.section-institutions {
  padding-block: 5rem;
  background: var(--grad-deep);
  color: var(--white);
  position: relative;
  overflow: hidden;
}
@media (min-width: 1024px) { .section-institutions { padding-block: 7rem; } }

.institutions__center { max-width: 42rem; margin-inline: auto; text-align: center; }
.institutions__eyebrow { color: rgba(147,197,253,.9); }
.institutions__subtitle { margin-top: 1rem; color: rgba(255,255,255,.75); }

.institutions__cards {
  margin-top: 3.5rem;
  display: grid;
  gap: 1.5rem;
}
@media (min-width: 1024px) { .institutions__cards { grid-template-columns: 1fr 1fr; } }

.inst-card {
  background: var(--white);
  color: var(--slate-900);
  border-radius: var(--radius-lg);
  padding: 2rem;
  box-shadow: var(--shadow-glow);
  display: flex;
  flex-direction: column;
}
.inst-card__tag {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  background: rgba(37,99,235,.1);
  color: var(--blue-main);
  padding: .35rem .85rem;
  border-radius: var(--radius-full);
  font-size: .75rem;
  font-weight: 700;
  width: fit-content;
}
.inst-card__title { margin-top: 1rem; font-size: 1.5rem; font-weight: 700; color: var(--blue-deep); }
.inst-card__text  { margin-top: .5rem; font-size: .875rem; color: var(--slate-600); }
.inst-card__list  { margin-top: 1.5rem; display: flex; flex-direction: column; gap: .75rem; font-size: .875rem; }
.inst-card__list li { display: flex; align-items: center; gap: .5rem; }
.inst-card .btn   { margin-top: auto; padding-top: 1.75rem; }
.inst-card .btn a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: .875rem 1.5rem;
  border-radius: var(--radius-full);
  font-weight: 600;
  font-size: .9375rem;
  transition: opacity .2s;
}
.inst-card .btn a:hover { opacity: .88; }
.inst-card .btn a.primary { background: var(--grad-primary); color: var(--white); box-shadow: var(--shadow-glow); }
.inst-card .btn a.dark    { background: var(--blue-deep); color: var(--white); }

/* =========================================================
   ALERT / MISSING MODE
   ========================================================= */
.section-alert { padding-block: 5rem; }
@media (min-width: 1024px) { .section-alert { padding-block: 7rem; } }

.alert__grid {
  display: grid;
  gap: 3rem;
  align-items: center;
}
@media (min-width: 1024px) { .alert__grid { grid-template-columns: 1fr 1fr; } }

.alert__eyebrow { color: var(--red); }
.alert__text    { margin-top: 1.5rem; color: var(--slate-600); line-height: 1.7; }
.alert__list    { margin-top: 1.5rem; display: flex; flex-direction: column; gap: .75rem; font-size: .9rem; color: var(--slate-600); }
.alert__list li { display: flex; align-items: flex-start; gap: .5rem; }

/* mock alert card */
.alert-mock {
  background: var(--white);
  border: 1px solid var(--slate-200);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  overflow: hidden;
}
.alert-mock__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .75rem 1.25rem;
  background: var(--blue-deep);
  color: var(--white);
}
.alert-mock__dot  { color: var(--red); animation: pulseRing 1.8s ease-out infinite; border-radius: 50%; }
.alert-mock__label { font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; margin-left: .5rem; }
.alert-mock__time { font-size: .7rem; opacity: .7; }

.alert-mock__body { display: flex; gap: 1rem; padding: 1.25rem; }
.alert-mock__photo { height: 5rem; width: 5rem; border-radius: var(--radius-sm); object-fit: cover; flex-shrink: 0; }
@media (min-width: 640px) { .alert-mock__photo { height: 6rem; width: 6rem; } }
.alert-mock__info p:first-child { font-size: .7rem; color: var(--slate-500); }
.alert-mock__name  { font-weight: 700; color: var(--blue-deep); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.alert-mock__sub   { font-size: .7rem; color: var(--slate-500); margin-top: .25rem; }
.alert-mock__loc   { margin-top: .75rem; display: flex; align-items: center; gap: .4rem; font-size: .75rem; color: var(--slate-500); }

.alert-mock__map {
  margin: 0 1.25rem 1.25rem;
  height: 11rem;
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1px solid var(--slate-200);
  background: linear-gradient(135deg, var(--blue-light), #93c5fd);
  display: flex;
  align-items: center;
  justify-content: center;
}
.alert-mock__pin {
  background: var(--red);
  color: var(--white);
  padding: .5rem;
  border-radius: 50%;
  font-size: 1.25rem;
  box-shadow: var(--shadow-glow);
}

.alert-mock__action { padding: 0 1.25rem 1.25rem; }
.alert-mock__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  width: 100%;
  background: var(--red);
  color: var(--white);
  font-weight: 700;
  padding: .875rem;
  border-radius: var(--radius-md);
  font-size: .9375rem;
  border: none;
  cursor: default;
}

/* =========================================================
   BENEFITS
   ========================================================= */
.section-benefits { padding-block: 5rem; background: var(--slate-50); }
@media (min-width: 1024px) { .section-benefits { padding-block: 7rem; } }

.benefits__center { max-width: 42rem; margin-inline: auto; text-align: center; }

.benefits__grid {
  margin-top: 3rem;
  display: grid;
  gap: 1rem;
}
@media (min-width: 640px)  { .benefits__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .benefits__grid { grid-template-columns: repeat(3, 1fr); } }

.benefit-item {
  display: flex;
  align-items: center;
  gap: .75rem;
  background: var(--white);
  border: 1px solid var(--slate-200);
  border-radius: var(--radius-lg);
  padding: 1rem 1.25rem;
  box-shadow: var(--shadow-card);
}
.benefit-item__icon {
  background: rgba(37,99,235,.1);
  padding: .5rem;
  border-radius: var(--radius-sm);
  color: var(--blue-main);
  font-size: 1rem;
  flex-shrink: 0;
}
.benefit-item__text { font-weight: 500; color: var(--blue-deep); font-size: .9375rem; }

/* =========================================================
   IMPACT + ABOUT
   ========================================================= */
.section-impact { padding-block: 5rem; }
@media (min-width: 1024px) { .section-impact { padding-block: 7rem; } }

.impact__cards {
  display: grid;
  gap: 1.5rem;
}
@media (min-width: 1024px) { .impact__cards { grid-template-columns: 1fr 1fr; } }

.impact-card {
  background: var(--grad-primary);
  color: var(--white);
  border-radius: var(--radius-lg);
  padding: 2rem;
  box-shadow: var(--shadow-glow);
  position: relative;
  overflow: hidden;
}
@media (min-width: 640px) { .impact-card { padding: 3rem; } }
.impact-card__eyebrow { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; opacity: .75; }
.impact-card__title   { margin-top: .75rem; font-size: 1.625rem; font-weight: 800; }
@media (min-width: 640px) { .impact-card__title { font-size: 2rem; } }
.impact-card__text    { margin-top: 1.25rem; line-height: 1.7; opacity: .95; }
.impact-card__tagline { margin-top: 1rem; font-weight: 600; }

.about-card {
  background: var(--white);
  border: 1px solid var(--slate-200);
  border-radius: var(--radius-lg);
  padding: 2rem;
  box-shadow: var(--shadow-card);
}
@media (min-width: 640px) { .about-card { padding: 3rem; } }
.about-card__eyebrow { color: var(--blue-main); font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; }
.about-card__title   { margin-top: .75rem; font-size: 1.625rem; font-weight: 800; color: var(--blue-deep); }
@media (min-width: 640px) { .about-card__title { font-size: 2rem; } }
.about-card__text    { margin-top: 1.25rem; color: var(--slate-600); line-height: 1.7; }
.about-card__tagline { margin-top: 1rem; font-weight: 600; color: var(--blue-deep); }

.about-card__brand {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--slate-200);
  display: flex;
  align-items: center;
  gap: 1rem;
}
.about-card__brand-logo {
  background: var(--white);
  border: 1px solid var(--slate-200);
  border-radius: var(--radius-md);
  padding: .75rem;
  box-shadow: var(--shadow-card);
}
.about-card__brand-logo img { height: 2.5rem; width: auto; }
.about-card__brand-name { font-size: .9375rem; font-weight: 700; color: var(--blue-deep); }
.about-card__brand-sub  { font-size: .75rem; color: var(--slate-500); margin-top: .15rem; }

.impact__gallery {
  margin-top: 4rem;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}
@media (min-width: 1024px) { .impact__gallery { grid-template-columns: repeat(4, 1fr); } }

.gallery-item {
  position: relative;
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-card);
  aspect-ratio: 1;
}
.gallery-item img { width: 100%; height: 100%; object-fit: cover; }
.gallery-item__label {
  position: absolute;
  inset: 0;
  bottom: 0;
  top: auto;
  background: linear-gradient(to top, rgba(30,58,138,.9), transparent);
  padding: 1rem;
}
.gallery-item__label p { color: var(--white); font-weight: 600; font-size: .9375rem; }

/* =========================================================
   PARTNER BAND
   ========================================================= */
.section-partner {
  padding-block: 3.5rem;
  border-block: 1px solid var(--slate-200);
  background: var(--white);
}

.partner__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  text-align: center;
}
@media (min-width: 1024px) {
  .partner__inner { flex-direction: row; text-align: left; gap: 3rem; }
}

.partner__text { flex: 1; }
.partner__label { font-size: .625rem; font-weight: 700; text-transform: uppercase; letter-spacing: .2em; color: var(--blue-main); margin-bottom: .5rem; }
.partner__name  { font-size: 1.5rem; font-weight: 800; color: var(--blue-deep); }
@media (min-width: 640px) { .partner__name { font-size: 1.875rem; } }
.partner__desc  { margin-top: .75rem; font-size: .9375rem; color: var(--slate-600); max-width: 38rem; }

.partner__logos {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-shrink: 0;
}
@media (min-width: 640px) { .partner__logos { gap: 2.5rem; } }
.partner__logos img:first-child { height: 5rem; }
@media (min-width: 640px) { .partner__logos img:first-child { height: 6rem; } }
.partner__divider { width: 1px; height: 4rem; background: var(--slate-200); }
.partner__logos img:last-child { height: 2.5rem; }
@media (min-width: 640px) { .partner__logos img:last-child { height: 3rem; } }

/* =========================================================
   FAQ
   ========================================================= */
.section-faq { padding-block: 5rem; background: var(--slate-50); }
@media (min-width: 1024px) { .section-faq { padding-block: 7rem; } }

.faq__center { max-width: 42rem; margin-inline: auto; text-align: center; }

.faq__list {
  margin-top: 2.5rem;
  display: flex;
  flex-direction: column;
  gap: .75rem;
  max-width: 48rem;
  margin-inline: auto;
}

.faq-item {
  background: var(--white);
  border: 1px solid var(--slate-200);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
}
.faq-item summary {
  font-weight: 600;
  color: var(--blue-deep);
  cursor: pointer;
  padding: 1rem 1.25rem;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
  content: '+';
  font-size: 1.25rem;
  color: var(--blue-main);
  flex-shrink: 0;
  transition: transform .2s;
}
.faq-item[open] summary::after { transform: rotate(45deg); }
.faq-item p {
  padding: 0 1.25rem 1rem;
  font-size: .9375rem;
  color: var(--slate-600);
  line-height: 1.65;
}

/* =========================================================
   CTA FINAL
   ========================================================= */
.section-cta {
  padding-block: 6rem;
  background: var(--grad-hero);
  position: relative;
  overflow: hidden;
}
@media (min-width: 1024px) { .section-cta { padding-block: 8rem; } }

.cta__center { max-width: 48rem; margin-inline: auto; text-align: center; }
.cta__icon { font-size: 3.75rem; margin-bottom: 1.5rem; }
.cta__title {
  font-size: clamp(2rem, 5vw, 3.75rem);
  font-weight: 800;
  color: var(--blue-deep);
  line-height: 1.1;
}
.cta__sub   { margin-top: 1.25rem; font-size: 1.125rem; color: var(--slate-600); }
.cta__btn   { margin-top: 2.5rem; padding: 1.25rem 2.5rem; font-size: 1.125rem; font-weight: 700; }
.cta__taglines { margin-top: 2rem; font-weight: 600; color: var(--blue-deep); line-height: 2; }

/* =========================================================
   FOOTER
   ========================================================= */
.footer {
  background: var(--blue-deep);
  color: var(--white);
  padding-block: 3.5rem;
}

.footer__grid {
  display: grid;
  gap: 2.5rem;
}
@media (min-width: 768px) { .footer__grid { grid-template-columns: repeat(3, 1fr); } }

.footer__brand { display: flex; align-items: center; gap: .5rem; }
.footer__brand img { height: 2.5rem; width: 2.5rem; background: rgba(255,255,255,.1); border-radius: .75rem; padding: .25rem; object-fit: contain; }
.footer__brand-name { font-family: var(--font-display); font-weight: 700; font-size: 1.125rem; }
.footer__tagline { margin-top: 1rem; font-size: .875rem; color: rgba(255,255,255,.65); line-height: 1.6; }

.footer__col h4 {
  font-weight: 600;
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: rgba(255,255,255,.85);
  margin-bottom: .75rem;
}
.footer__col ul { display: flex; flex-direction: column; gap: .5rem; }
.footer__col ul li { font-size: .875rem; color: rgba(255,255,255,.65); }

.footer__schneider {
  background: var(--white);
  border-radius: var(--radius-md);
  padding: 1.25rem;
}
.footer__schneider img { height: 2.5rem; width: auto; }
.footer__schneider p   { font-size: .75rem; color: rgba(30,58,138,.65); margin-top: .75rem; font-weight: 500; line-height: 1.5; }

.footer__bottom {
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255,255,255,.1);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .5rem;
  font-size: .75rem;
  color: rgba(255,255,255,.5);
  text-align: center;
}
@media (min-width: 640px) {
  .footer__bottom { flex-direction: row; justify-content: space-between; text-align: left; }
}
