/*
Theme Name: JunglerDev
Theme URI: https://junglerdev.com
Author: JunglerDev
Author URI: https://junglerdev.com
Description: A performance-first WordPress barebones theme built on Bootstrap 5.3.3. Designed as a clean, extensible baseline for any project — with built-in structured data, llms.txt generation, and developer-friendly integrations.
Version: 1.0.1
Tested up to: 6.8
Requires at least: 6.4
Requires PHP: 8.1
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: junglerdev
Tags: custom-logo, custom-menu, featured-images, threaded-comments, translation-ready, bootstrap, developer, barebones
*/

/* ============================================================
   DR. GIT — THEME STYLES
   [JDev - JESR 20260530]
   ============================================================ */

/* ──────────────────────────────────────────
   BRAND TOKENS
────────────────────────────────────────── */
:root {
  --dg-crimson:       #520284;
  --dg-crimson-hover: #3f0165;
  --dg-navy:          #2a82fe;
  --dg-pink:          #fd3378;
  --dg-cream:         #FBFAF8;
  --dg-soft-blue:     #EEF5FF;
  --dg-text-dark:     #0F1C38;
  --dg-text-mid:      #4A5568;
  --dg-text-light:    #6B7280; /* [JDev - JESR 20260612] was #8896A4 — darkened to pass WCAG AA 4.5:1 on white */
  --dg-border:        rgba(42,130,254,.12); /* [JDev - JESR 20260802] added for Reto Reinicio landing page */
}

/* ──────────────────────────────────────────
   BASE
────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; } /* [JDev - JESR 20260607] reserve scrollbar lane always — prevents layout shift on modal open */
body {
  font-family: 'Plus Jakarta Sans', sans-serif;
  background-color: var(--dg-crimson); /* [JDev - JESR 20260531] matches footer bg — prevents cream gap on tall viewports (1920px+) */
  color: var(--dg-text-dark);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; }

/* ──────────────────────────────────────────
   TOPBAR
────────────────────────────────────────── */
.dg-topbar {
  background: var(--dg-navy); /* [JDev - JESR 20260614] client preference: blue topbar */
  padding: 9px 0;
  font-size: 12.5px;
  font-weight: 500;
  color: rgba(255,255,255,.90);
}
.dg-topbar a {
  color: rgba(255,255,255,.90);
  text-decoration: none;
  transition: color .2s;
}
.dg-topbar a:hover { color: #fff; }
.dg-topbar-socials {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}
.dg-topbar-socials a {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: rgba(255,255,255,.12);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,.90);
  font-size: 12px;
  line-height: 1;
  margin: 0;
}
.dg-topbar-socials a:hover {
  background: var(--dg-pink);
  color: #fff;
}
.dg-top-divider {
  display: inline-block;
  width: 1px; height: 14px;
  background: rgba(255,255,255,.22);
  vertical-align: middle;
}

/* ──────────────────────────────────────────
   NAVBAR
────────────────────────────────────────── */
.navbar-dg {
  background: #fff;
  border-bottom: 1px solid rgba(42,130,254,.10);
  box-shadow: 0 2px 20px rgba(42,130,254,.06);
}
.navbar-dg .nav-link {
  font-size: 16px; font-weight: 600;
  color: var(--dg-text-mid);
  padding: 6px 14px; border-radius: 8px;
  transition: color .2s, background .2s;
}
.navbar-dg .nav-link:hover {
  color: var(--dg-navy);
  background: rgba(82,2,132,.06);
}
.navbar-dg .navbar-toggler { border: none; box-shadow: none; }
/* [JDev - JESR 20260531] btn-dg-nav is outside the <ul align-items-center>; in collapsed state it renders full-width with left-aligned text. Center and inset it to match the nav items above. */
@media (max-width: 991px) {
  .navbar-collapse .btn-dg-nav {
    display: block;
    text-align: center;
    margin: 6px 1rem 2px;
  }
}

/* ──────────────────────────────────────────
   BUTTONS
────────────────────────────────────────── */
.btn-dg-primary {
  background-image: linear-gradient(to right, var(--dg-crimson-hover) 50%, var(--dg-crimson) 50%);
  background-size: 200% 100%;
  background-position: right center;
  color: #fff;
  border: none; font-family: inherit; font-weight: 700;
  padding: 12px 28px; border-radius: 10px; font-size: 15px;
  letter-spacing: -.01em; cursor: pointer;
  transition: background-position .38s ease, color .2s;
  text-decoration: none; display: inline-flex; align-items: center; gap: 8px;
}
.btn-dg-primary:hover, .btn-dg-primary:focus {
  background-position: left center;
  color: #fff;
}
.btn-dg-outline {
  background-image: linear-gradient(to right, var(--dg-soft-blue) 50%, transparent 50%);
  background-size: 200% 100%;
  background-position: right center;
  color: var(--dg-navy);
  border: 1.5px solid rgba(42,130,254,.22);
  font-family: inherit; font-weight: 600;
  padding: 11px 24px; border-radius: 10px; font-size: 15px;
  letter-spacing: -.01em; cursor: pointer;
  transition: background-position .38s ease, border-color .2s, color .2s;
  text-decoration: none; display: inline-flex; align-items: center; gap: 8px;
}
.btn-dg-outline:hover {
  background-position: left center;
  border-color: var(--dg-navy);
  color: var(--dg-navy);
}
.btn-dg-outline.light {
  background-image: linear-gradient(to right, rgba(255,255,255,.14) 50%, transparent 50%);
  background-size: 200% 100%;
  background-position: right center;
  border-color: rgba(255,255,255,.30); color: #fff;
}
.btn-dg-outline.light:hover {
  background-position: left center;
  border-color: rgba(255,255,255,.55); color: #fff;
}
.btn-dg-nav {
  background-image: linear-gradient(to right, var(--dg-crimson-hover) 50%, var(--dg-crimson) 50%) !important;
  background-size: 200% 100% !important;
  background-position: right center !important;
  color: #fff !important;
  font-weight: 700 !important; padding: 9px 20px !important;
  border-radius: 10px !important; font-size: 14px !important;
  transition: background-position .38s ease !important;
}
.btn-dg-nav:hover { background-position: left center !important; }

/* Navbar cart icon — only rendered when the direct-checkout popup feature
   (dg_wc_popup_enabled) is on; see integrations/woocommerce/woocommerce-nav-cart.php.
   Badge reuses the brand pink accent, matching other small circular badges
   (avatar "+N", accordion checkmarks). [JDev - JESR 20260713] */
.dg-nav-cart {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: 10px; margin-left: 6px; flex-shrink: 0;
  color: var(--dg-text-mid); font-size: 19px;
  transition: color .2s, background .2s;
}
.dg-nav-cart:hover { color: var(--dg-navy); background: rgba(82,2,132,.06); }
.dg-nav-cart-badge {
  position: absolute; top: 1px; right: 1px;
  min-width: 16px; height: 16px; padding: 0 4px;
  border-radius: 50px; background: var(--dg-pink); color: #fff;
  font-size: 10px; font-weight: 800; line-height: 16px; text-align: center;
  box-shadow: 0 0 0 2px #fff;
}
@media (max-width: 991px) {
  .navbar-collapse .dg-nav-cart { display: flex; margin: 4px auto 2px; }
}

/* ──────────────────────────────────────────
   SECTION LABELS / HEADINGS
────────────────────────────────────────── */
.section-label {
  display: inline-block;
  font-size: 11.5px; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase;
  color: var(--dg-crimson); margin-bottom: 10px;
}
.section-label { display: none !important; }
.section-title {
  font-size: clamp(26px, 3vw, 40px);
  font-weight: 800; letter-spacing: -.032em; line-height: 1.12;
  color: var(--dg-text-dark);
}
.section-desc {
  font-size: 16.5px; color: var(--dg-text-mid);
  line-height: 1.68; max-width: 560px;
}
.section-py { padding: 80px 0; }

/* ──────────────────────────────────────────
   HERO
────────────────────────────────────────── */
.dg-hero {
  background: var(--dg-cream);
  position: relative; overflow: hidden;
  min-height: calc(100vh - 104px);
  display: flex; align-items: center;
  padding: 72px 0;
}
.hero-grid {
  position: absolute; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(42,130,254,.032) 1px, transparent 1px),
    linear-gradient(90deg, rgba(42,130,254,.032) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: radial-gradient(ellipse 75% 75% at 65% 40%, black, transparent);
}
.hero-blob {
  position: absolute; border-radius: 50%; pointer-events: none;
}
.hero-blob-1 {
  top: -100px; right: -80px; width: 520px; height: 520px;
  background: radial-gradient(circle, rgba(42,130,254,.055) 0%, transparent 70%);
}
.hero-blob-2 {
  bottom: -60px; left: -60px; width: 340px; height: 340px;
  background: radial-gradient(circle, rgba(82,2,132,.048) 0%, transparent 70%);
}
.hero-title {
  font-size: clamp(36px, 4.6vw, 60px);
  font-weight: 800; line-height: 1.07; letter-spacing: -.038em;
  color: var(--dg-text-dark);
}
.hero-title .hl-navy  { color: var(--dg-navy); }
.hero-title .hl-red   { color: var(--dg-pink); }

/* Stats strip */
.hero-stats {
  background: #fff; border-radius: 16px;
  border: 1px solid rgba(42,130,254,.08);
  box-shadow: 0 4px 24px rgba(42,130,254,.07);
  overflow: hidden;
}
.hstat {
  padding: 18px 22px; position: relative;
}
.hstat + .hstat {
  border-left: 1px solid rgba(42,130,254,.09);
}
.hstat-num {
  font-size: 24px; font-weight: 800; color: var(--dg-navy);
  letter-spacing: -.04em; line-height: 1;
}
.hstat-lbl {
  font-size: 12px; font-weight: 500; color: var(--dg-text-light); margin-top: 3px;
}
.hstat { display: flex; flex-direction: column; justify-content: center; }

/* Doctor image + bubbles */
.doctor-visual {
  position: relative; height: 580px;
  display: flex; align-items: center; justify-content: center;
  overflow: visible;
}
.doctor-photo {
  width: 260px; height: 360px; border-radius: 24px;
  overflow: hidden; position: relative;
  box-shadow: 0 32px 80px rgba(42,130,254,.22), 0 8px 24px rgba(0,0,0,.08);
  border: 3px solid rgba(255,255,255,.85);
  flex-shrink: 0; z-index: 2;
}
.doctor-photo img {
  width: 100%; height: 100%; object-fit: cover; object-position: top center;
}
.doctor-photo::after {
  content: '';
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 5px; background: var(--dg-crimson);
}

/* Floating bubble cards */
.fcard {
  position: absolute; background: #fff;
  border-radius: 13px; padding: 10px 15px;
  box-shadow: 0 8px 32px rgba(42,130,254,.13), 0 1px 4px rgba(0,0,0,.04);
  display: flex; align-items: center; gap: 9px;
  white-space: nowrap; z-index: 3;
}
.fcard-ico {
  width: 32px; height: 32px; border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; font-size: 15px;
}
.fv { font-size: 13px; font-weight: 800; color: var(--dg-navy); line-height: 1.1; }
.fl { font-size: 10.5px; font-weight: 500; color: var(--dg-text-light); margin-top: 1px; }

.fc1 { top: 50px;   left: calc(50% - 310px); animation: fb 4.0s ease-in-out infinite; }
.fc2 { top: 60px;   right: calc(50% - 310px); animation: fb 4.0s ease-in-out infinite; animation-delay: -1.4s; }
.fc3 { top: 230px;  left: calc(50% - 340px); animation: fb 4.2s ease-in-out infinite; animation-delay: -0.8s; }
.fc4 { top: 240px;  right: calc(50% - 330px); animation: fb 3.8s ease-in-out infinite; animation-delay: -2.1s; }
.fc5 { bottom: 80px; left: calc(50% - 320px); animation: fb 4.0s ease-in-out infinite; animation-delay: -1.9s; }
.fc6 { bottom: 65px; right: calc(50% - 315px); animation: fb 4.4s ease-in-out infinite; animation-delay: -0.4s; }

@keyframes fb {
  0%, 100% { transform: translateY(0);    }
  50%       { transform: translateY(-8px); }
}

/* [JDev - JESR 20260531] At lg-only (992-1199px) the col-lg-7 doctor column is ~560px wide,
   so the default 310-340px offsets push bubbles 30-60px outside the column on both sides.
   Reduce offsets so all 6 cards stay within the column boundary at iPad Pro (1024px). */
@media (max-width: 1199px) {
  .fc1 { left:  calc(50% - 225px); }
  .fc2 { right: calc(50% - 225px); }
  .fc3 { left:  calc(50% - 240px); }
  .fc4 { right: calc(50% - 235px); }
  .fc5 { left:  calc(50% - 230px); }
  .fc6 { right: calc(50% - 225px); }
}

/* ──────────────────────────────────────────
   HOW IT WORKS — staggered 4 steps
────────────────────────────────────────── */
.hiw-outer {
  display: flex; align-items: flex-start; gap: 0; position: relative;
}
.hiw-step {
  flex: 1; display: flex; flex-direction: column; align-items: center;
  text-align: center; position: relative;
}
.hiw-step.up   { padding-top: 0; }
.hiw-step.down { padding-top: 90px; }
.hiw-circle-wrap {
  position: relative; display: inline-block;
  margin-bottom: 22px;
}
.hiw-circle {
  width: 158px; height: 158px; border-radius: 50%;
  overflow: hidden; position: relative;
  border: 5px solid #fff;
  box-shadow: 0 8px 30px rgba(42,130,254,.14);
  margin-bottom: 0; flex-shrink: 0;
}
.hiw-circle img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.hiw-badge {
  position: absolute; bottom: 2px; right: 2px;
  width: 34px; height: 34px; border-radius: 50%;
  background: var(--dg-pink); color: #fff;
  font-size: 12px; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
  border: 2.5px solid #fff;
  box-shadow: 0 2px 8px rgba(42,130,254,.30);
  z-index: 4;
}
.hiw-title { font-size: 17px; font-weight: 800; letter-spacing: -.02em; color: var(--dg-text-dark); margin-bottom: 8px; }
.hiw-desc  { font-size: 13.5px; color: var(--dg-text-mid); line-height: 1.65; max-width: 180px; margin: 0 auto; }
.hiw-arrow { width: 78px; flex-shrink: 0; display: flex; align-items: flex-start; justify-content: center; }
.hiw-arrow.da { padding-top: 62px; }
.hiw-arrow.ua { padding-top: 96px; }

/* ──────────────────────────────────────────
   BENEFIT CARDS
────────────────────────────────────────── */
.benefit-card {
  background: #fff; border-radius: 16px;
  padding: 26px 22px; height: 100%;
  border: 1px solid rgba(42,130,254,.08);
  transition: box-shadow .2s;
}
.benefit-card:hover {
  box-shadow: 0 14px 36px rgba(42,130,254,.09);
}
.benefit-icon {
  width: 46px; height: 46px; border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 20px; margin-bottom: 14px;
}

/* ──────────────────────────────────────────
   FOR WHOM LIST
────────────────────────────────────────── */
.fwitem {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 12px 0; border-bottom: 1px solid rgba(42,130,254,.06);
  font-size: 15px; color: var(--dg-text-mid);
}
.fwitem:last-child { border-bottom: none; }
.fwitem i { color: var(--dg-crimson); font-size: 17px; flex-shrink: 0; margin-top: 2px; }

/* ──────────────────────────────────────────
   PLAN CARDS
────────────────────────────────────────── */
.plan-card {
  background: #fff; border-radius: 22px;
  border: 1.5px solid rgba(42,130,254,.10);
  overflow: hidden; height: 100%;
  transition: box-shadow .25s;
  display: flex; flex-direction: column;
}
.plan-card:hover {
  box-shadow: 0 24px 56px rgba(42,130,254,.12);
}
.plan-card.featured {
  border-color: var(--dg-navy);
  box-shadow: 0 12px 40px rgba(42,130,254,.14);
}
.plan-card:not(.featured):hover {
  border-color: var(--dg-pink);
  box-shadow: 0 14px 42px rgba(253,51,120,.18), 0 0 0 3px rgba(253,51,120,.12);
}
.plan-head {
  padding: 32px 32px 24px;
}
.plan-head.ft { background: var(--dg-navy); }
.plan-card:not(.featured) .plan-head {
  background: #fff;
}
.plan-card:not(.featured) .plan-body {
  border-top: 1px solid rgba(15, 28, 56, .10);
}
.plan-name {
  font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
}
.plan-price {
  font-size: 50px; font-weight: 800; letter-spacing: -.04em; line-height: 1;
}
.plan-body { padding: 26px 32px 32px; display:flex; flex-direction:column; flex:1; }
.plan-body .mt-4 { margin-top: auto !important; }
.plan-body .btn-dg-primary,
.plan-body .btn-dg-outline { min-height: 52px; align-items:center; }
.plan-feat {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 0; font-size: 13.5px; font-weight: 500; color: var(--dg-text-mid);
  border-bottom: 1px solid rgba(42,130,254,.055);
}
.plan-body > .plan-feat:nth-last-child(3) { border-bottom: none; }
.plan-feat i { color: var(--dg-crimson); font-size: 15px; flex-shrink: 0; }
.plan-tag-basic {
  background: var(--dg-pink);
  color: #fff;
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .02em;
  text-transform: uppercase;
  white-space: nowrap;
}
.plan-tag {
  background: var(--dg-pink); color: #fff;
  font-size: 10.5px; font-weight: 700; letter-spacing: .04em;
  text-transform: uppercase; padding: 3px 11px; border-radius: 20px;
}
@media (max-width: 481px) {
  .plan-feat {
      gap: 5px;
      font-size: 12.5px;
  }
}
/* ──────────────────────────────────────────
   DOCTOR SECTION
────────────────────────────────────────── */
.doctor-showcase {
  position: relative;
  overflow: hidden;
  border-radius: 28px;
  background: linear-gradient(115deg, #f7f9fc 0%, #f1f4f8 48%, #edf1f6 100%);
  box-shadow: 0 26px 70px rgba(15,30,62,.10);
  border: 1px solid rgba(42,130,254,.06);
}
.doctor-showcase::before,
.doctor-showcase::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
.doctor-showcase::before {
  width: 480px;
  height: 480px;
  left: -220px;
  top: -120px;
  background: radial-gradient(circle, rgba(42,130,254,.14) 0%, rgba(42,130,254,.06) 44%, rgba(42,130,254,0) 72%);
}
.doctor-showcase::after {
  width: 420px;
  height: 420px;
  right: -180px;
  bottom: -150px;
  background: radial-gradient(circle, rgba(82,2,132,.12) 0%, rgba(82,2,132,.05) 44%, rgba(82,2,132,0) 72%);
}
.doctor-showcase-visual {
  position: relative;
  min-height: 560px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 36px 18px 14px 28px;
  background: transparent;
}
.doctor-showcase-visual::before {
  content: "";
  position: absolute;
  width: 340px;
  height: 340px;
  left: 50%;
  transform: translateX(-50%);
  bottom: 84px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(42,130,254,.14) 0%, rgba(42,130,254,0) 70%);
  filter: blur(2px);
}
.doctor-showcase-visual img {
  position: relative;
  z-index: 1;
  max-width: 100%;
  max-height: 560px;
  object-fit: contain;
  display: block;
  transform: translateY(14px);
}
.doctor-showcase-copy {
  position: relative;
  z-index: 1;
  padding: 52px 50px 52px 20px;
  color: var(--dg-text-dark);
}
.doctor-eyebrow {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #6d7890;
  margin-bottom: 12px;
}
.doctor-showcase-copy h2 {
  font-size: clamp(30px, 4vw, 48px);
  line-height: .98;
  font-weight: 800;
  letter-spacing: -.04em;
  margin-bottom: 8px;
  color: var(--dg-navy);
}
.doctor-showcase-role {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--dg-crimson);
  margin-bottom: 20px;
}
.doctor-showcase-copy p {
  font-size: 17px;
  line-height: 1.8;
  color: #445168;
  max-width: 560px;
  margin-bottom: 28px;
}
.doctor-feature-card {
  position: relative;
  background: #f2f5f8;
  color: var(--dg-text-dark);
  border-radius: 24px;
  padding: 28px 30px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 28px;
  max-width: 620px;
  box-shadow: 0 12px 28px rgba(27,42,73,.06);
  border: 1px solid rgba(42,130,254,.07);
}
.doctor-feature-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 14px;
  line-height: 1.6;
  color: #445168;
}
.doctor-feature-item i {
  width: 24px;
  height: 24px;
  min-width: 24px;
  border-radius: 50%;
  background: var(--dg-pink);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  margin-top: 1px;
  flex-shrink: 0;
}

@media (min-width: 992px) and (max-width: 1441px) {
    .doctor-showcase-copy p{
    	font-size:14px;
    	line-height:1.4;
    	margin-bottom:14px;
    }
    .doctor-showcase-visual img{
    	transform: translateY(80px);
    }
}

@media (max-width: 991px) {
  .doctor-showcase-visual {
    min-height: 420px;
    /*padding: 36px 24px 32px;  [JDev - JESR 20260607] bottom pad so image doesn't sit flush against divider */
  }
  .doctor-showcase-visual img {
    max-height: 410px;
  }
  .doctor-showcase-copy {
    padding: 28px 28px 34px;
    border-top: 1px solid rgba(42,130,254,.18); /* [JDev - JESR 20260607] separator below doctor image on mobile */
  }
}
@media (max-width: 767px) {
  .doctor-showcase {
    border-radius: 22px;
  }
  .doctor-showcase-visual {
    min-height: 340px;
    padding: 28px 20px 7px 32px;
  }
  .doctor-showcase-visual::before {
    width: 240px;
    height: 240px;
    bottom: 58px;
  }
  .doctor-showcase-visual img {
    max-height: 330px;
    transform: translateY(8px);
  }
  .doctor-showcase-copy {
    padding: 20px 20px 24px;
  }
  .doctor-showcase-copy p {
    font-size: 15px;
  }
  .doctor-feature-card {
    grid-template-columns: 1fr;
    padding: 20px;
    gap: 10px;
  }
}

/* ──────────────────────────────────────────
   TESTIMONIALS
────────────────────────────────────────── */
.tcard {
  background: #fff; border-radius: 18px;
  padding: 28px; border: 1px solid rgba(42,130,254,.08);
  box-shadow: 0 4px 20px rgba(42,130,254,.06); height: 100%;
  display: flex; flex-direction: column; /* [JDev - JESR 20260607] names aligned to bottom */
}
.tcard-stars { color: #F59E0B; font-size: 13px; letter-spacing: 2px; }
.tcard-text {
  font-size: 14.5px; color: var(--dg-text-mid);
  line-height: 1.7; font-style: italic; margin: 12px 0 18px;
  flex: 1; /* push author block to bottom */
}
.tcard-avatar {
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--dg-soft-blue); color: var(--dg-navy);
  display: flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 15px; flex-shrink: 0;
}

/* Reviews carousel <LG [JDev - JESR 20260607] */
.tcard-carousel { padding: 0 16px 44px; overflow-x: clip; } /* [JDev - JESR 20260607] clip horizontal bleed without hiding shadows or indicators */
.tcard-carousel .carousel-inner { overflow: visible;padding: 10px 35px; }
.tcard-carousel .carousel-item { padding: 4px 2px; }
.tcard-carousel .carousel-control-prev,
.tcard-carousel .carousel-control-next {
  width: 36px; height: 36px; top: 40%; bottom: auto; transform: translateY(-50%);
  background: var(--dg-navy); border-radius: 50%; opacity: .9;
}
.tcard-carousel .carousel-control-prev { left: 0px; }
.tcard-carousel .carousel-control-next { right: 0px; }
.tcard-carousel .carousel-control-prev-icon,
.tcard-carousel .carousel-control-next-icon { width: 14px; height: 14px; }
.tcard-carousel .carousel-indicators { bottom: 4px; margin: 0; }
.tcard-carousel .carousel-indicators [data-bs-target] {
  width: 8px; height: 8px; border-radius: 50%;
  border-top: none; border-bottom: none;
  background-color: var(--dg-navy); opacity: .28;
  transition: opacity .2s;
}
.tcard-carousel .carousel-indicators .active { opacity: 1; }

/* Reviews slider — replaces desktop grid + mobile carousel [JDev - JESR 20260612] */
.dg-reviews-slider {
  display: flex;
  align-items: center;
  gap: 16px;
}
.dg-reviews-track {
  flex: 1;
  min-width: 0;
  display: flex;
  gap: 24px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding-bottom: 8px;
}
.dg-reviews-track::-webkit-scrollbar { display: none; }
.dg-reviews-track .tcard {
  flex: 0 0 calc(33.333% - 16px);
  scroll-snap-align: start;
  min-width: 0;
  height: auto; /* [JDev - JESR 20260613] override base height:100% — flex stretch handles equalization */
  align-self: stretch;
}
.dg-reviews-nav {
  flex-shrink: 0;
  width: 40px; height: 40px;
  border-radius: 50%;
  border: 2px solid rgba(42,130,254,.30);
  background: #fff;
  color: var(--dg-navy);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: background .2s, color .2s, border-color .2s;
  padding: 0;
}
.dg-reviews-nav:hover { background: var(--dg-navy); color: #fff; border-color: var(--dg-navy); }
.dg-reviews-nav:focus-visible { outline: 2px solid var(--dg-navy); outline-offset: 2px; }
@media (max-width: 991.98px) {
  .dg-reviews-slider { gap: 10px; }
  .dg-reviews-nav { width: 34px; height: 34px; }
  .dg-reviews-track .tcard { flex: 0 0 100%; }
}

/* Plan tier badges for Beneficios section [JDev - JESR 20260613] */
.dg-tier-badge {
  display: inline-block; vertical-align: middle;
  font-size: 10px; font-weight: 700; letter-spacing: .2px;
  padding: 2px 8px; border-radius: 20px; white-space: nowrap; line-height: 1.6;
}
.dg-tier-badge.tier-both    { background: rgba(42,130,254,.12); color: var(--dg-navy); }
.dg-tier-badge.tier-premium { background: var(--dg-navy); color: #fff; }

/* Stats row */
.stat-row {
  background: #fff; border-radius: 20px;
  border: 1px solid rgba(42,130,254,.08);
  box-shadow: 0 4px 24px rgba(42,130,254,.06);
  overflow: hidden;
}
.stat-item {
  padding: 36px 24px; text-align: center;
  border-right: 1px solid rgba(42,130,254,.08);
}
.stat-item:last-child { border-right: none; }
.stat-big { font-size: 44px; font-weight: 800; color: var(--dg-navy); letter-spacing: -.04em; line-height: 1; }
.stat-lbl { font-size: 13px; font-weight: 500; color: var(--dg-text-light); margin-top: 6px; }

/* ──────────────────────────────────────────
   FAQ ACCORDION
────────────────────────────────────────── */
.acc-dg .accordion-item {
  border: 0 !important;
  border-radius: 16px !important;
  overflow: hidden;
  margin-bottom: 22px;
  background: #f7f7f8;
  box-shadow: none;
}
.acc-dg .accordion-header {
  margin: 0;
}
.acc-dg .accordion-button {
  position: relative;
  font-family: inherit;
  font-weight: 700;
  font-size: 18px;
  line-height: 1.35;
  color: var(--dg-navy);
  background: #f7f7f8;
  padding: 26px 70px 26px 28px;
  border-radius: 16px !important;
  box-shadow: none;
  align-items: flex-start;
}
.acc-dg .accordion-button::after {
  position: absolute;
  top: 20px;
  right: 24px;
  background-image: none !important;
  content: "+";
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-size: 26px;
  line-height: 1;
  font-weight: 500;
  color: var(--dg-crimson);
  transform: none !important;
  margin-left: 0;
}
.acc-dg .accordion-button:focus {
  box-shadow: none;
  border-color: transparent;
}
.acc-dg .accordion-button:not(.collapsed) {
  color: #fff;
  background: var(--dg-navy);
  box-shadow: none;
  border-radius: 16px 16px 0 0 !important;
}
.acc-dg .accordion-button:not(.collapsed)::after {
  content: "–";
  color: #fff;
}
.acc-dg .accordion-collapse.show {
  background: var(--dg-navy);
}
.acc-dg .accordion-body {
  font-size: 15px;
  color: rgba(255,255,255,.92);
  line-height: 1.75;
  padding: 0 28px 26px;
  background: var(--dg-navy);
}
@media (max-width: 767px) {
  .acc-dg .accordion-item {
    margin-bottom: 14px;
    border-radius: 14px !important;
  }
  .acc-dg .accordion-button {
    font-size: 16px;
    padding: 20px 58px 20px 20px;
  }
  .acc-dg .accordion-button::after {
    top: 15px;
    right: 18px;
  }
  .acc-dg .accordion-body {
    font-size: 14px;
    padding: 0 20px 22px;
  }
}

/* ──────────────────────────────────────────
   CTA STRIP
   Background is gradient-only (no external photo).
────────────────────────────────────────── */
.cta-strip {
  position: relative;
  overflow: hidden;
  padding: 96px 0;
  background:
    linear-gradient(90deg, rgba(10,34,84,.96) 0%, rgba(42,130,254,.78) 46%, rgba(82,2,132,.62) 78%, rgba(253,51,120,.28) 100%),
    url('/wp-content/themes/junglerdev/images/webp/clinica.webp') center/cover no-repeat; /* [JDev - JESR 20260612] WebP: 26 KB vs 103 KB */
}
.cta-strip::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at right center, rgba(253,51,120,.26) 0%, rgba(253,51,120,0) 34%);
  pointer-events: none;
}
.cta-strip .container {
  position: relative;
  z-index: 1;
}
.cta-final-grid {
  display: block;
  max-width: 720px;
  text-align: left;
}
.cta-final-copy p {
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.cta-strip .cta-white-btn {
  background-image: none !important;
  background: #fff !important;
  color: var(--dg-crimson) !important;
  box-shadow: 0 14px 30px rgba(0,0,0,.12);
}
.cta-strip .cta-white-btn:hover,
.cta-strip .cta-white-btn:focus {
  color: var(--dg-crimson) !important;
  background: #fff !important;
}
.cta-final-actions {
  justify-content: flex-start !important;
}
.cta-final-img { display: none; }
@media (max-width: 991px) {
  .cta-strip {
    background:
      linear-gradient(180deg, rgba(10,34,84,.96) 0%, rgba(42,130,254,.76) 55%, rgba(82,2,132,.58) 88%, rgba(253,51,120,.22) 100%),
      url('/wp-content/themes/junglerdev/images/webp/clinica.webp') center/cover no-repeat; /* [JDev - JESR 20260612] WebP */
  }
  .cta-final-grid {
    text-align: center;
    margin: 0 auto;
  }
  .cta-final-copy p {
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .cta-final-actions {
    justify-content: center !important;
  }
}

/* ──────────────────────────────────────────
   FOOTER
────────────────────────────────────────── */
.dg-footer { background: var(--dg-crimson); color: rgba(255,255,255,.78); }
.dg-footer .footer-brand p { max-width: none !important; }
.dg-footer .footer-col { display:flex; flex-direction:column; height:100%; }
.dg-footer .footer-logo { height: 44px; width: auto; max-width: 170px; display:block; object-fit:contain; }
.dg-footer .footer-brand-lockup {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}
.dg-footer .footer-logo-mark {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 46px;
  overflow: hidden;
  box-shadow: 0 10px 24px rgba(0,0,0,.16);
}
.dg-footer .footer-logo-mark img {
  width: 34px;
  height: 34px;
  object-fit: contain;
  display: block;
  filter: none !important;
}
@media (min-width: 992px) {
  .dg-footer .footer-wide { flex: 0 0 42%; max-width: 42%; }
  .dg-footer .footer-narrow { flex: 0 0 29%; max-width: 29%; }
}
.dg-footer h6 {
  color: #fff; font-weight: 700; font-size: 12px;
  letter-spacing: .06em; text-transform: uppercase; margin-bottom: 16px;
}
.dg-footer a {
  display: block; font-size: 13.5px; margin-bottom: 9px;
  color: rgba(255,255,255,.60); text-decoration: none; transition: color .2s;
}
.dg-footer a:hover { color: #fff; }
.dg-footer-bottom {
  border-top: 1px solid rgba(255,255,255,.08);
  padding: 20px 0; font-size: 12px; color: rgba(255,255,255,.38);
}
.dg-footer .soc-row {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 18px;
}
.dg-footer .soc-btn {
  width: 38px; height: 38px; border-radius: 10px;
  background: rgba(255,255,255,.08);
  display: inline-flex !important; align-items: center; justify-content: center;
  color: rgba(255,255,255,.78) !important; font-size: 16px;
  margin: 0 !important; text-decoration: none !important;
  transition: background .2s, color .2s, transform .2s;
}
.dg-footer .soc-btn:hover {
  background: var(--dg-pink);
  color: #fff !important;
  transform: translateY(-2px);
}

/* WhatsApp float */
.wa-fab {
  position: fixed; bottom: 10px; right: 10px; z-index: 9999;
  width: 54px; height: 54px; border-radius: 50%;
  background: #25D366; color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 24px; text-decoration: none;
  box-shadow: 0 8px 24px rgba(37,211,102,.42);
  transition: transform .2s, box-shadow .2s;
}
.wa-fab:hover { transform: scale(1.1); color: #fff; box-shadow: 0 12px 32px rgba(37,211,102,.54); }

/* ──────────────────────────────────────────
   MODAL
────────────────────────────────────────── */
.modal-dg .modal-content { border-radius: 22px; border: none; overflow: hidden; }
.modal-dg .modal-header {
  background: var(--dg-navy); border: none;
  padding: 52px 28px 24px 28px; /* [JDev - JESR 20260607] top clears absolute X; rows: [X] / title / subtitle */
  position: relative;
  display: block;
}
.modal-dg .modal-title { color: #fff; font-weight: 800; font-size: 22px; letter-spacing: -.02em; line-height: 1.22; margin-bottom: 6px; }
.modal-dg .modal-subtitle { color: rgba(255,255,255,.62); font-size: 13.5px; line-height: 1.55; margin: 0; }
.modal-dg .btn-close {
  filter: invert(1); opacity: .65;
  position: absolute; top: 16px; right: 16px; margin: 0;
}
.modal-dg .modal-body  { padding: 28px 32px; }
.modal-dg .modal-footer { border: none; padding: 0 32px 26px; }
.form-dg .form-label {
  font-weight: 600; font-size: 13.5px; color: var(--dg-text-dark); margin-bottom: 6px;
}
.form-dg .form-control,
.form-dg .form-select {
  font-family: inherit; font-size: 14px;
  border: 1.5px solid rgba(42,130,254,.15);
  border-radius: 10px; padding: 11px 15px;
  background: #fff; transition: border-color .2s, box-shadow .2s;
}
.form-dg .form-control:focus,
.form-dg .form-select:focus {
  border-color: var(--dg-navy);
  box-shadow: 0 0 0 3px rgba(42,130,254,.10); outline: none;
}

/* ──────────────────────────────────────────
   PRODUCT POPUP MODAL — direct checkout
   [JDev - JESR 20260706] Final design supplied by dev/design team
   (customer-approved) — accordion benefit list + header-embedded price
   + social proof, replacing the earlier includes-grid layout. Two
   dedicated modals: #modalBasico / #modalPremium (see footer.php).
────────────────────────────────────────── */
.dgp-modal .modal-dialog { max-width: 980px; }
.dgp-test-badge {
  display: inline-block; position: absolute; top: 16px; left: 28px;
  background: var(--dg-pink); color: #fff;
  font-size: 11px; font-weight: 700; letter-spacing: .02em;
  border-radius: 50px; padding: 4px 12px;
}
.dgp-section-heading {
  font-size: 13px; font-weight: 700; color: var(--dg-navy);
  text-transform: uppercase; letter-spacing: .04em; margin-bottom: 10px;
}
.dgp-disclaimer {
  font-size: 11.5px; color: var(--dg-text-light); text-align: center; margin: 0;
}
.dgp-disclaimer a { color: var(--dg-navy); }

/* Header — tight eyebrow-less title + price on the right */
.dgp-header-tight { padding: 44px 28px 22px 28px !important; }
/* Title+desc column must be allowed to shrink below its text's natural
   width, or the flex row wraps the price block onto its own line once the
   HNL sub-line ("$X USD/mes · Precio fundador") makes the price column a
   little wider than the USD stack — most visible on #modalBasico, which
   (unlike #modalPremium) never got a wider desktop dialog. [JDev - JESR 20260706] */
.dgp-header-tight > .d-flex > div:first-child { flex: 1 1 0%; min-width: 0; }
.dgp-header-price { text-align: left; flex-shrink: 0; line-height: 1.1; }
.dgp-header-price-old { font-size: 13px; color: rgba(255,255,255,.38); text-decoration: line-through; display: block; }
.dgp-header-price-now { font-size: 34px; font-weight: 800; color: #fff; letter-spacing: -.03em; }
.dgp-header-price-period { font-size: 13px; color: rgba(255,255,255,.50); font-weight: 500; }
.dgp-header-founder {
  display: inline-block; margin-top: 4px;
  font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  color: #fff; background: var(--dg-pink); border-radius: 50px; padding: 2px 10px;
}
/* HNL mode reuses the shared .dg-price-hnl-big/.dg-price-hnl-sub classes
   (see plan-card rules below) with a header-scoped white-text override —
   see integrations/currency-display.php for the toggle this depends on. */
.dgp-header-price .dg-price-hnl-big { font-size: 30px; color: #fff; }
.dgp-header-price .dg-price-hnl-big span { color: rgba(255,255,255,.55); }
.dgp-header-price .dg-price-hnl-sub { color: rgba(255,255,255,.55); }

/* Urgency strip — white bg, animated gradient border */
@keyframes dgpGlowSpin {
  0%   { background-position: 0% 50%; }
  100% { background-position: 200% 50%; }
}
.dgp-urgency-glow {
  position: relative; border-radius: 12px; padding: 2px; margin-bottom: 20px;
  background: linear-gradient(90deg, var(--dg-navy), var(--dg-pink), var(--dg-crimson), var(--dg-navy), var(--dg-pink), var(--dg-crimson));
  background-size: 200% 100%;
  animation: dgpGlowSpin 3s linear infinite;
}
.dgp-urgency-glow-inner {
  background: #fff; border-radius: 10px; padding: 11px 18px;
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 700; color: var(--dg-text-dark); letter-spacing: .01em;
}
.dgp-urgency-glow-inner i { font-size: 15px; color: var(--dg-crimson); }

/* Equal-height 2-column layout, no forced heights */
.dgp-modal .modal-body { overflow: visible; }
.dgp-equal-row { align-items: stretch; }
.dgp-equal-col { display: flex; }
.dgp-left-panel, .dgp-right-panel { width: 100%; height: 100%; box-sizing: border-box; display: flex; flex-direction: column; }
.dgp-left-panel .dgp-left-img {
  display: block; width: 100%; flex: 1 1 auto; min-height: 220px; margin-bottom: 16px;
  object-fit: cover; aspect-ratio: 4/3; border-radius: 14px; background: var(--dg-soft-blue);
  transition: opacity .3s ease;
}
.dgp-left-img.is-fading { opacity: 0; }
.dgp-left-panel .dgp-social-proof { flex: 0 0 auto; margin-top: auto; }
.dgp-right-panel { overflow: visible; background: transparent; border: none; border-radius: 0; padding: 8px 0 0; }
.dgp-right-panel .dgp-section-heading { flex: 0 0 auto; margin-bottom: 8px; }
.dgp-right-panel .dgp-acc-list { flex: 0 0 auto; overflow: visible; padding-right: 0; }
.dgp-right-panel .dgp-acc-trigger { padding: 10px 0; }
.dgp-right-panel .dgp-acc-body p { margin: 0 0 10px 26px; padding: 8px 12px; font-size: 12.2px; line-height: 1.48; }

/* Social proof with real member photos */
.dgp-social-proof {
  background: var(--dg-soft-blue); border-radius: 14px; padding: 16px 18px;
  display: flex; align-items: center; gap: 14px;
}
.dgp-avatar-stack { display: flex; flex-shrink: 0; }
.dgp-avatar-photo {
  width: 38px; height: 38px; border-radius: 50%; border: 2.5px solid #fff; overflow: hidden;
  box-shadow: 0 1px 4px rgba(0,0,0,.12); margin-left: -10px; flex-shrink: 0;
}
.dgp-avatar-photo:first-child { margin-left: 0; }
.dgp-avatar-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dgp-avatar-plus {
  width: 38px; height: 38px; border-radius: 50%; background: var(--dg-pink); color: #fff;
  display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700;
  border: 2.5px solid #fff; margin-left: -10px; flex-shrink: 0; box-shadow: 0 1px 4px rgba(0,0,0,.12);
}
.dgp-social-proof-text { font-size: 13.5px; font-weight: 700; color: var(--dg-text-dark); line-height: 1.35; }
.dgp-social-proof-text span { color: var(--dg-crimson); }

/* Accordion benefit list */
.dgp-acc-list { display: flex; flex-direction: column; gap: 0; }
.dgp-acc-item { border-bottom: 1px solid rgba(42,130,254,.08); }
.dgp-acc-item:last-child { border-bottom: none; }
.dgp-acc-trigger {
  display: flex; align-items: center; gap: 10px; padding: 12px 0; cursor: pointer;
  -webkit-tap-highlight-color: transparent; user-select: none;
}
.dgp-acc-check { color: var(--dg-pink); font-size: 16px; flex-shrink: 0; }
.dgp-acc-label { flex: 1; font-size: 14px; font-weight: 600; color: var(--dg-text-dark); line-height: 1.35; }
.dgp-acc-chevron { font-size: 14px; color: var(--dg-text-light); flex-shrink: 0; transition: transform .25s cubic-bezier(.4,0,.2,1); }
.dgp-acc-item.open .dgp-acc-chevron { transform: rotate(180deg); }
.dgp-acc-body { overflow: hidden; max-height: 0; transition: max-height .3s cubic-bezier(.4,0,.2,1); }
.dgp-acc-item.open .dgp-acc-body { max-height: 200px; }
.dgp-acc-body p { margin: 0 0 12px 26px; padding: 8px 14px; font-size: 12.5px; line-height: 1.55; color: var(--dg-text-mid); }

.dgp-modal .modal-footer { border-top: 1px solid rgba(42,130,254,.10); padding: 20px 32px 16px; }

/* Club Básico included — compact grid + hover/click detail (inside Premium modal only) */
.dgp-basico-section { margin-top: 16px; padding-top: 12px; border-top: 1px dashed rgba(42,130,254,.15); }
.dgp-basico-heading { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--dg-navy); margin-bottom: 12px; }
.dgp-basico-layout { display: flex; gap: 16px; align-items: flex-start; }
.dgp-basico-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; flex-shrink: 0; width: 52%; }
.dgp-basico-item {
  display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 8px;
  background: rgba(42,130,254,.04); border: 1.5px solid transparent;
  cursor: pointer; transition: border-color .2s, background .2s; -webkit-tap-highlight-color: transparent;
}
.dgp-basico-item i { font-size: 15px; color: var(--dg-navy); flex-shrink: 0; }
.dgp-basico-item span { font-size: 11.5px; font-weight: 600; color: var(--dg-text-dark); line-height: 1.25; }
.dgp-basico-item:hover, .dgp-basico-item.active { border-color: var(--dg-navy); background: var(--dg-soft-blue); }
.dgp-basico-detail {
  flex: 1; min-width: 0; background: rgba(42,130,254,.05); border-left: 3px solid var(--dg-navy);
  border-radius: 0 10px 10px 0; padding: 12px 14px; min-height: 80px; display: flex; align-items: center;
}
.dgp-basico-detail p { margin: 0; font-size: 12px; line-height: 1.55; color: var(--dg-text-mid); transition: opacity .2s; }

@media (max-width: 767.98px) {
  .dgp-basico-layout { flex-direction: column; }
  .dgp-basico-grid { width: 100%; }
  .dgp-basico-detail { border-left: none; border-top: 3px solid var(--dg-navy); border-radius: 0 0 10px 10px; }
}
@media (max-width: 991.98px) {
  .dgp-equal-col { display: block; }
  .dgp-left-panel, .dgp-right-panel { height: auto; }
  .dgp-left-panel .dgp-left-img { height: auto; aspect-ratio: 4 / 3; min-height: 0; }
}
@media (max-width: 575.98px) {
  .dgp-header-price-now { font-size: 28px; }
  .dgp-header-price { text-align: left; }
  .dgp-header-tight { padding: 40px 20px 18px 20px !important; }
}

/* Premium popup — wider desktop viewport fit + Básico grid in 5 columns
   [JDev - JESR 20260706] Only #modalPremium is widened; #modalBasico keeps
   the standard .dgp-modal max-width since it has no Básico-included section. */
@media (min-width: 992px) {
  /* Basico's own image never got a height cap, unlike Premium's — since
     .dgp-left-img is flex:1 1 auto inside an equal-height stretched
     column, its rendered height (and therefore its object-fit:cover crop)
     could drift with the accordion's open-item height as benefits are
     clicked, reading as a "zoom" that Premium never shows because its
     image is already pinned. Capping it here locks it to its current
     natural size regardless of accordion state. */
  #modalBasico .dgp-left-panel .dgp-left-img { min-height: 220px; max-height: 280px; }
  #modalPremium .modal-dialog { width: calc(100vw - 48px); max-width: 1180px; margin: 18px auto; }
  #modalPremium .modal-header.dgp-header-tight { padding: 38px 38px 20px 38px !important; }
  #modalPremium .modal-body { padding: 24px 38px; }
  #modalPremium .modal-footer { padding: 18px 38px 14px; }
  #modalPremium .dgp-equal-row > .col-lg-5 { flex: 0 0 34%; max-width: 34%; }
  #modalPremium .dgp-equal-row > .col-lg-7 { flex: 0 0 66%; max-width: 66%; }
  #modalPremium .dgp-left-panel .dgp-left-img { min-height: 210px; max-height: 310px; }
  #modalPremium .dgp-left-panel, #modalPremium .dgp-right-panel { height: auto; }
  #modalPremium .dgp-left-panel { justify-content: flex-start; }
  #modalPremium .dgp-left-panel .dgp-social-proof { margin-top: 0; }
  #modalPremium .dgp-basico-layout { flex-direction: column; align-items: stretch; gap: 10px; }
  #modalPremium .dgp-basico-grid { width: 100%; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
  #modalPremium .dgp-basico-item {
    min-height: 58px; padding: 9px 10px; align-items: center; justify-content: center;
    flex-direction: column; text-align: center; gap: 6px;
  }
  #modalPremium .dgp-basico-item i { font-size: 16px; }
  #modalPremium .dgp-basico-item span { width: 100%; text-align: center; font-size: 11px; line-height: 1.22; }
  #modalPremium .dgp-basico-detail {
    width: 100%; min-height: 48px; background: transparent; border: none !important; border-radius: 0;
    padding: 8px 0 0; display: flex; align-items: flex-start; gap: 9px;
  }
  #modalPremium .dgp-basico-detail::before {
    content: "✓"; width: 18px; height: 18px; border-radius: 50%; flex: 0 0 18px;
    display: inline-flex; align-items: center; justify-content: center; margin-top: 1px;
    background: var(--dg-pink); color: #fff; font-size: 11px; font-weight: 800; line-height: 1;
  }
  #modalPremium .dgp-basico-detail p { margin: 0; padding: 0; font-size: 12px; line-height: 1.5; color: var(--dg-text-mid); }
}
@media (min-width: 992px) and (max-height: 760px) {
  #modalPremium .modal-dialog { margin: 10px auto; }
  #modalPremium .modal-header.dgp-header-tight { padding: 30px 38px 16px 38px !important; }
  #modalPremium .modal-title { font-size: 21px; }
  #modalPremium .modal-body { padding: 18px 38px; }
  #modalPremium .dgp-urgency-glow { margin-bottom: 14px; }
  #modalPremium .dgp-urgency-glow-inner { padding: 9px 16px; }
  #modalPremium .dgp-right-panel { padding-top: 2px; }
  #modalPremium .dgp-right-panel .dgp-acc-trigger { padding: 8px 0; }
  #modalPremium .dgp-right-panel .dgp-acc-body p { margin: 0 0 8px 26px; padding: 6px 12px; font-size: 12px; line-height: 1.42; }
  #modalPremium .dgp-left-panel .dgp-left-img { max-height: 280px; margin-bottom: 14px; }
  #modalPremium .dgp-basico-item { gap: 5px; }
  #modalPremium .dgp-basico-section { margin-top: 10px; padding-top: 10px; }
  #modalPremium .dgp-basico-heading { margin-bottom: 8px; }
  #modalPremium .modal-footer { padding: 14px 38px 12px; }
  #modalPremium #dgpCheckoutBtn { min-height: 48px !important; }
  #modalPremium .dgp-disclaimer { margin-top: 10px !important; }
}

/* USD → HNL price display — Addendum No. 1, Punto 2 [JDev - JESR 20260704].
   Two mutually-exclusive blocks per price (.dg-price-usd-mode /
   .dg-price-hnl-mode) toggled via JS in footer.php based on the
   dg_usd_hnl_enabled Customizer toggle + configured rate. HNL mode is
   deliberately simpler than USD mode — no strikethrough/offer treatment,
   just a big Lempiras number and a plain USD line underneath. Shared
   between plan cards and the popup modals. Swap-out plan: see
   integrations/currency-display.php header comment. */
.dg-price-hnl-big { font-size: 40px; font-weight: 800; letter-spacing: -.03em; line-height: 1; color: var(--dg-navy); }
.dg-price-hnl-big span { font-size: 15px; font-weight: 500; letter-spacing: normal; color: var(--dg-text-light); margin-left: 4px; }
.dg-price-hnl-sub { margin-top: 6px; font-size: 12.5px; color: var(--dg-text-mid); }
.plan-card.featured .dg-price-hnl-big { color: #fff; }
.plan-card.featured .dg-price-hnl-big span { color: rgba(255,255,255,.55); }
.plan-card.featured .dg-price-hnl-sub { color: rgba(255,255,255,.68); }

/* ──────────────────────────────────────────
   GALLERY STRIP
────────────────────────────────────────── */
.gallery-strip-wrap {
  overflow: hidden; position: relative;
}
.gallery-strip-wrap::before,
.gallery-strip-wrap::after {
  content: ''; position: absolute; top: 0; bottom: 0; width: 110px;
  z-index: 2; pointer-events: none;
}
.gallery-strip-wrap::before { left: 0; background: linear-gradient(to right, #fff, transparent); }
.gallery-strip-wrap::after  { right: 0; background: linear-gradient(to left, #fff, transparent); }
.gallery-strip {
  display: flex; gap: 18px;
  animation: gscroll 140s linear infinite;
  width: max-content; padding: 10px 0;
}
.gallery-strip:hover { animation-play-state: paused; }
.gallery-item {
  width: clamp(250px, 24vw, 340px);
  aspect-ratio: 1031 / 1023;
  flex: 0 0 auto;
  border-radius: 22px;
  overflow: hidden;
  background: #f4f7fb;
  box-shadow: 0 16px 42px rgba(42,130,254,.10);
}
.gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

@keyframes gscroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ──────────────────────────────────────────
   BENEFIT TABS v2
────────────────────────────────────────── */
.btabs2-wrap {
  display: flex; gap: 20px; align-items: stretch; min-height: 520px;
}
.btabs2-imgcol {
  flex: 0 0 32%; position: relative;
  border-radius: 20px; overflow: hidden;
  box-shadow: 0 8px 32px rgba(42,130,254,.13);
}
.btabs2-imgcol img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover; object-position: center top;
}
.btabs2-box {
  flex: 1; background: #fff; border-radius: 20px;
  border: 1px solid rgba(42,130,254,.09);
  display: flex; flex-direction: column; overflow: hidden;
  box-shadow: 0 4px 24px rgba(42,130,254,.06);
}
.btabs2-nav { display: flex; border-bottom: 1px solid rgba(42,130,254,.09); }
.btabs2-tab {
  flex: 1; padding: 20px 16px;
  display: flex; flex-direction: column; align-items: center; gap: 9px;
  cursor: pointer; text-align: center;
  border-bottom: 3px solid transparent;
  transition: background .22s, border-color .22s;
}
.btabs2-tab + .btabs2-tab { border-left: 1px solid rgba(42,130,254,.07); }
.btabs2-tab:hover:not(.active) { background: var(--dg-soft-blue); }
.btabs2-tab.active { background: var(--dg-crimson); border-bottom-color: var(--dg-navy); }
.btabs2-ico {
  width: 38px; height: 38px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; flex-shrink: 0;
  background: #fff; color: var(--dg-pink);
  box-shadow: inset 0 0 0 1px rgba(82,2,132,.08);
  transition: background .22s, color .22s;
}
.btabs2-tab.active .btabs2-ico { background: rgba(255,255,255,.14); color: #fff; box-shadow:none; }
.btabs2-name {
  font-size: 12px; font-weight: 700; color: var(--dg-text-mid);
  letter-spacing: .01em; line-height: 1.3; transition: color .22s;
}
.btabs2-tab.active .btabs2-name { color: rgba(255,255,255,.82); }
.btabs2-content { flex: 1; padding: 32px 36px; display: flex; flex-direction: column; }
.btabs2-panel { display: none; flex-direction: column; }
.btabs2-panel.bp2-active { display: flex; }
.btabs2-desc {
  font-size: 14.5px; color: var(--dg-text-mid); line-height: 1.72;
  padding-bottom: 22px; margin-bottom: 22px; margin-top: 0;
  border-bottom: 1px solid rgba(42,130,254,.07);
}
.btabs2-item {
  display: flex; align-items: flex-start; gap: 16px;
  padding: 14px 0; border-bottom: 1px solid rgba(42,130,254,.06);
}
.btabs2-item:last-child { border-bottom: none; padding-bottom: 0; }
.btabs2-item-ico {
  width: 40px; height: 40px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px; flex-shrink: 0;
}
.btabs2-item-title {
  font-size: 14.5px; font-weight: 800; color: var(--dg-text-dark);
  letter-spacing: -.01em; margin-bottom: 3px;
  display: flex; align-items: center; flex-wrap: wrap; gap: 6px;
}
.btabs2-item-desc { font-size: 13px; color: var(--dg-text-mid); line-height: 1.62; margin: 0; }
@media (max-width: 767px) {
  .btabs2-wrap { flex-direction: column-reverse; min-height: auto; }
  .btabs2-imgcol { height: 220px; flex: none; }
  .btabs2-imgcol img { object-position: center center !important; } /* [JDev - JESR 20260607] override data-pos JS on small screens */
  .btabs2-tab { padding: 12px 6px; } /* [JDev - JESR 20260531] tighten to fit 3 tabs + visible labels */
  .btabs2-name { font-size: 10px; line-height: 1.25; } /* show labels — hide was removing context on mobile */
  .btabs2-content { padding: 24px 20px; }
}

/* ──────────────────────────────────────────
   BENEFICIOS COMPARATIVOS
────────────────────────────────────────── */
.dg-compare-section {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #fbfbfd 0%, #f3f5f8 100%) !important;
}
.dg-compare-section::before,
.dg-compare-section::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
.dg-compare-section::before {
  width: 420px;
  height: 420px;
  left: -180px;
  top: 70px;
  background: radial-gradient(circle, rgba(42,130,254,.08) 0%, rgba(42,130,254,.035) 45%, rgba(42,130,254,0) 72%);
}
.dg-compare-section::after {
  width: 320px;
  height: 320px;
  right: -120px;
  bottom: 55px;
  background: radial-gradient(circle, rgba(82,2,132,.08) 0%, rgba(82,2,132,.035) 45%, rgba(82,2,132,0) 72%);
}
.dg-compare-section .container {
  position: relative;
  z-index: 1;
}
.dg-compare-wrap {
  display: grid;
  grid-template-columns: minmax(220px, 30%) minmax(320px, 58%);
  gap: 58px;
  align-items: start;
  justify-content: center;
}
.dg-compare-left {
  position: relative;
  padding: 24px;
  background: #fff;
  border-radius: 18px;
  border: 1px solid rgba(42,130,254,.08);
}
.dg-compare-head {
  min-height: 96px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding-top: 0;
}
.dg-compare-brand {
  font-size: 28px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: -.04em;
  color: var(--dg-text-dark);
  margin-bottom: 10px;
  max-width: none;
  white-space: nowrap;
}
.dg-compare-intro {
  font-size: 14px;
  line-height: 1.55;
  color: var(--dg-text-mid);
  margin: 0;
  max-width: 280px;
}
.dg-compare-list,
.dg-compare-side-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.dg-compare-row,
.dg-compare-side-row {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: center;
  column-gap: 16px;
  min-height: 66px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(42,130,254,.10);
}
.dg-compare-row:last-child,
.dg-compare-side-row:last-child {
  border-bottom: none;
}
.dg-compare-icon,
.dg-compare-side-icon {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
}
.dg-compare-icon {
  background: var(--dg-pink);
  color: #fff;
  box-shadow: 0 0 0 1px rgba(253,51,120,.12);
}
.dg-compare-side-icon {
  background: #F4F5F7;
  color: #B7BDC7;
}
.dg-compare-text {
  font-size: 15px;
  line-height: 1.45;
  font-weight: 600;
  color: var(--dg-text-dark);
  letter-spacing: -.01em;
  margin: 0;
}
.dg-compare-side-text {
  font-size: 15px;
  line-height: 1.45;
  color: #7F8998;
  margin: 0;
}
.dg-compare-cta {
  margin-top: 24px;
  display: flex;
  justify-content: center;
}
.dg-compare-right {
  min-width: 0;
  padding-top: 24px;
}
.dg-compare-tabs {
  display: flex;
  align-items: stretch;
  justify-content: stretch;
  gap: 0;
  margin-bottom: 0;
  padding-left: 0;
  min-height: 96px;
  border-bottom: 1px solid rgba(42,130,254,.10);
}
.dg-compare-tab {
  flex: 1 1 50%;
  border: 0;
  background: transparent;
  padding: 0 16px 14px;
  margin: 0;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #A9B1BD;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -.01em;
  cursor: pointer;
  transition: color .2s ease;
}
.dg-compare-tab + .dg-compare-tab {
  border-left: 1px solid rgba(42,130,254,.08);
}
.dg-compare-tab::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 2px;
  background: transparent;
  transition: background .2s ease;
}
.dg-compare-tab-dot { display:none; }
.dg-compare-tab.active {
  color: var(--dg-crimson);
  font-weight: 800;
}
.dg-compare-tab.active::after {
  background: var(--dg-navy);
}
.dg-compare-panel {
  display: none;
  padding-top: 0;
  animation: dgFade .22s ease;
}
.dg-compare-panel.is-active {
  display: block;
}
.dg-compare-label {
  display: none;
}
@keyframes dgFade {
  from { opacity: 0; transform: translateY(3px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (max-width: 991px) {
  .dg-compare-wrap {
    grid-template-columns: 1fr;
    gap: 34px;
  }
  .dg-compare-brand {
    max-width: none;
  }
  .dg-compare-intro {
    max-width: none;
  }
}
@media (max-width: 767px) {
  .dg-compare-section::before {
    width: 260px;
    height: 260px;
    left: -130px;
    top: 46px;
  }
  .dg-compare-section::after {
    width: 220px;
    height: 220px;
    right: -110px;
    bottom: 30px;
  }
  .dg-compare-left {
    padding: 22px;
  }
  .dg-compare-head {
    min-height: auto;
    margin-bottom: 18px;
  }
  .dg-compare-brand {
    font-size: 26px;
    min-height: auto;
    margin-bottom: 10px;
    white-space: nowrap;
  }
  .dg-compare-tabs {
    overflow-x: hidden;
    white-space: normal;
    min-height: 62px;
  }
  .dg-compare-row,
  .dg-compare-side-row {
    min-height: auto;
    align-items: flex-start;
  }
  .dg-compare-text,
  .dg-compare-side-text {
    font-size: 14px;
  }
  .dg-compare-cta .btn-dg-primary {
    width: 100%;
    justify-content: center;
  }
}

/* ──────────────────────────────────────────
   COMPARE MOBILE ACCORDION [JDev - JESR 20260607]
────────────────────────────────────────── */
.dg-compare-mobile { }
.dg-cmp-legend {
  display: flex;
  gap: 14px;
  padding: 9px 0;
  border-top: 1px solid rgba(0,0,0,.08);
  border-bottom: 1px solid rgba(0,0,0,.08);
  background: #f7f7fb;
  margin-bottom: 0;
}
.dg-cmp-leg {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 10.5px;
  font-weight: 600;
  color: var(--dg-text-mid);
}
.dg-cmp-leg-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.dg-cmp-leg-dot.drgit { background: var(--dg-navy); }
.dg-cmp-leg-dot.other { background: #c5c5d3; }
.dg-cmp-item { border-bottom: 1px solid rgba(0,0,0,.08); }
.dg-cmp-item:last-child { border-bottom: none; }
.dg-cmp-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 14px 0;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.dg-cmp-trig-left {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 0;
}
.dg-cmp-ico {
  width: 32px;
  height: 32px;
  border-radius: 9px;
  background: rgba(42,130,254,.09);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.dg-cmp-ico svg {
  width: 15px;
  height: 15px;
  stroke: var(--dg-navy);
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.dg-cmp-label {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--dg-text-dark);
  line-height: 1.3;
}
.dg-cmp-badges {
  display: flex;
  gap: 4px;
  flex-shrink: 0;
}
.dg-cmp-bdg {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.dg-cmp-bdg svg {
  width: 10px;
  height: 10px;
  fill: none;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.dg-cmp-bdg.yes { background: var(--dg-navy); }
.dg-cmp-bdg.yes svg { stroke: #fff; }
.dg-cmp-bdg.no,
.dg-cmp-bdg.part { background: #e3e3ee; }
.dg-cmp-bdg.no svg,
.dg-cmp-bdg.part svg { stroke: #aaa; }
.dg-cmp-chevron {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  stroke: #9292a0;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  transition: transform .25s cubic-bezier(.4,0,.2,1);
}
.dg-cmp-item.open .dg-cmp-chevron { transform: rotate(180deg); }
.dg-cmp-body {
  overflow: hidden;
  max-height: 0;
  transition: max-height .32s cubic-bezier(.4,0,.2,1);
}
.dg-cmp-item.open .dg-cmp-body { max-height: 520px; }
.dg-cmp-inner {
  padding: 0 0 14px;
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.dg-cmp-rcard {
  border-radius: 9px;
  padding: 10px 12px;
  display: flex;
  align-items: flex-start;
  gap: 8px;
}
.dg-cmp-rcard.drgit {
  background: rgba(42,130,254,.09);
  border: 1px solid rgba(42,130,254,.22);
  border-left: 3px solid var(--dg-navy);
}
.dg-cmp-rcard.other {
  background: #f7f7fb;
  border: 1px solid rgba(0,0,0,.08);
  border-left: 3px solid #d0d0df;
}
.dg-cmp-pill {
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: .04em;
  padding: 2px 7px;
  border-radius: 10px;
  flex-shrink: 0;
  margin-top: 1px;
  white-space: nowrap;
}
.dg-cmp-pill.drgit { background: var(--dg-pink); color: #fff; }
.dg-cmp-pill.other { background: #e3e3ee; color: #666; }
.dg-cmp-rcard-text {
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--dg-text-mid);
  flex: 1;
  margin: 0;
}
.dg-cmp-rcard.drgit .dg-cmp-rcard-text {
  color: #1E3366;
  font-weight: 500;
}
.dg-cmp-mobile-cta {
  padding: 18px 0 6px;
  border-top: 1px solid rgba(0,0,0,.08);
}
.dg-cmp-mobile-cta .btn-dg-primary {
  width: 100%;
  justify-content: center;
}
.dg-cmp-cta-note {
  text-align: center;
  font-size: 11px;
  color: #9292a0;
  margin-top: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
}
.dg-cmp-cta-note svg {
  width: 11px;
  height: 11px;
  stroke: var(--dg-pink);
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
}

/* ──────────────────────────────────────────
   RESPONSIVE
────────────────────────────────────────── */
@media (max-width: 991px) {
  .dg-hero { min-height: auto; } /* [JDev - JESR 20260531] hero was 100vh-tall on tablet due to calc(); auto collapses to content */
  .section-py { padding: 72px 0; } /* [JDev - JESR 20260612] Change 9 — reduce section breathing room at tablet */
  .doctor-visual { display: none; }

  /* How It Works — left-rail vertical timeline [JDev - JESR 20260531]
     Replaces center-stacked circles with a numbered rail + text-right grid.
     Applies to all viewports where the horizontal staggered layout is hidden (≤991px). */
  .hiw-outer {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    position: relative;
  }
  /* Continuous gradient rail line running through all steps */
  .hiw-outer::before {
    content: '';
    position: absolute;
    left: 39px;
    top: 40px;
    bottom: 40px;
    width: 2px;
    background: linear-gradient(to bottom, var(--dg-pink), var(--dg-navy));
    opacity: 0.15;
    border-radius: 2px;
    z-index: 0;
  }
  /* Each step: 2-col grid — 80px circle rail | 1fr text */
  .hiw-step {
    display: grid;
    grid-template-columns: 80px 1fr;
    grid-template-rows: auto auto;
    column-gap: 18px;
    text-align: left;
    padding: 0 0 32px 0;
    position: relative;
  }
  .hiw-step.up,
  .hiw-step.down { padding-top: 0; }
  /* Circle spans both text rows on the left */
  .hiw-circle-wrap {
    grid-row: 1 / 3;
    width: 80px;
    margin: 0;
    position: relative;
    z-index: 2;
  }
  .hiw-circle { width: 80px; height: 80px; }
  .hiw-badge  { width: 26px; height: 26px; font-size: 10px; bottom: 0; right: 0; }
  .hiw-title  { font-size: 16px; margin-bottom: 4px; padding-top: 10px; }
  .hiw-desc   { max-width: 100%; font-size: 13.5px; text-align: left; }
  /* Arrows become invisible spacers — rail line passes through them */
  .hiw-arrow {
    display: block;
    height: 8px;
    overflow: hidden;
  }
  .hiw-arrow svg { display: none; }
}
@media (max-width: 1025px) {
    .hero-stats { flex-direction: column !important; }
}

@media (max-width: 767px) {
  .dg-hero { padding: 56px 0; min-height: auto; }
  .section-py { padding: 56px 0; }
  
  .hstat + .hstat { border-left: none; border-top: 1px solid rgba(42,130,254,.09); }
  .stat-item { border-right: none; border-bottom: 1px solid rgba(42,130,254,.08); }
  .stat-item:last-child { border-bottom: none; }
}
@media (max-width: 576px) {
  .hero-title { font-size: 34px; }
  .plan-price { font-size: 40px; }
}

/* ══════════════════════════════════════════
   PHASE 13 — PLANES SECTION COMPONENTS
   [JDev - JESR 20260612]
══════════════════════════════════════════ */

/* ── Trust strip ── */
.dg-trust-strip {
  background: rgba(42, 130, 254, 0.07);
  border: 1px solid rgba(42, 130, 254, 0.15);
  border-radius: 50px;
  padding: 10px 20px;
  font-size: 14px;
  color: var(--dg-navy);
}
.dg-trust-strip i {
  font-size: 18px;
  color: var(--dg-navy);
}

/* ── Urgency banner ── */
.dg-urgency {
  background: linear-gradient(135deg, var(--dg-navy) 0%, #003d7a 100%);
  color: #fff;
  border-radius: 12px;
}
.dg-urgency-icon {
  font-size: 24px;
  flex-shrink: 0;
  line-height: 1;
}
.dg-urgency strong {
  font-size: 15px;
}

/* ── Bridge urgency strip [JDev - JESR 20260613] ── */
.dg-bridge-urgency {
  background: var(--dg-navy);
  padding: 18px 0;
  color: #fff;
}
.dg-bridge-lock { font-size: 20px; flex-shrink: 0; line-height: 1; }
.dg-bridge-title { font-size: 15px; font-weight: 700; letter-spacing: -.01em; }
.dg-bridge-sub   { font-size: 12.5px; opacity: .65; margin-top: 3px; }
.dg-bridge-urgency .dg-bridge-btn {
  background: #fff; color: var(--dg-navy); border-color: rgba(255,255,255,.8);
}
.dg-bridge-urgency .dg-bridge-btn:hover {
  background: var(--dg-soft-blue); border-color: var(--dg-soft-blue);
}
@media (max-width: 575.98px) {
  .dg-bridge-urgency { text-align: center; }
  .dg-bridge-sub { display: none; }
}

/* ── Patient switcher buttons ── */
.dg-sw-btn {
  border-radius: 50px !important;
  padding: 12px 28px;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.dg-sw-btn.btn-dg-outline { background-color: #fff; }

/* ── Founder pricing ── */
.dg-price-original {
  display: block;
  text-decoration: line-through;
  color: var(--dg-text-light);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.2;
  margin-bottom: 2px;
}
.dg-price-founder-lbl {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #fff;
  background: var(--dg-crimson);
  border-radius: 50px;
  padding: 3px 10px;
  margin-top: 4px;
}

/* ── Plan badges ── */
.dg-tag-esencial {
  background: var(--dg-pink);
  color: #fff;
  border-radius: 50px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: 4px 12px;
  display: inline-block;
}
.dg-tag-popular {
  background: var(--dg-pink);
  color: #fff;
  border-radius: 50px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: 4px 12px;
  display: inline-block;
}

/* ── Benefit info button ── */
.dg-info-btn {
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--dg-navy);
  padding: 0 4px;
  min-width: 28px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  flex-shrink: 0;
  transition: color 0.15s ease, background 0.15s ease;
}
.dg-info-btn:hover,
.dg-info-btn:focus-visible {
  color: var(--dg-crimson);
  background: rgba(82, 2, 132, 0.07);
  outline: none;
}
.dg-info-btn i {
  font-size: 15px;
}

/* ── Benefit detail reveal panel ── */
.dg-benefit-detail {
  width: 100%;
  padding: 8px 12px;
  background: rgba(42, 130, 254, 0.07);
  border-left: 3px solid var(--dg-navy);
  border-radius: 0 4px 4px 0;
  font-size: 0.75rem;
  color: var(--dg-text-mid);
  line-height: 1.55;
}

/* ── Coming soon / dietary section ── */
.dg-cs-section {
  max-width: 580px;
  border: 1px solid var(--dg-navy);
  border-radius: 16px;
  padding: 36px 32px;
  text-align: center;
  background: #fff;
}
.dg-cs-badge {
  display: inline-block;
  background: var(--dg-pink);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  border-radius: 50px;
  padding: 4px 14px;
  margin-bottom: 16px;
}
.dg-cs-title {
  font-size: 22px;
  font-weight: 800;
  color: var(--dg-text-dark);
  margin-bottom: 10px;
}
.dg-cs-desc {
  font-size: 14.5px;
  color: var(--dg-text-mid);
  line-height: 1.65;
  margin-bottom: 24px;
}
.dg-cs-note {
  font-size: 11.5px;
  color: var(--dg-text-light);
  margin-top: 12px;
  margin-bottom: 0;
}

@media (max-width: 576px) {
  .dg-cs-section {
    padding: 28px 20px;
  }
  .dg-sw-btn {
    padding: 11px 20px;
    font-size: 14px;
  }
}

/* ──────────────────────────────────────────
   LEGAL PAGES [JDev - JESR 20260613]
────────────────────────────────────────── */
.dg-legal-banner {
  background: var(--dg-navy);
  padding: 52px 0 44px;
}
.dg-legal-breadcrumb-nav {
  font-size: 12.5px;
  color: rgba(255,255,255,.52);
  margin-bottom: 14px;
}
.dg-legal-breadcrumb-nav a {
  color: rgba(255,255,255,.65);
  text-decoration: none;
  transition: color .2s;
}
.dg-legal-breadcrumb-nav a:hover { color: #fff; }
.dg-legal-title {
  font-size: clamp(28px, 3.5vw, 44px);
  font-weight: 800; letter-spacing: -.03em; line-height: 1.1;
  color: #fff; margin-bottom: 12px;
}
.dg-legal-meta {
  font-size: 13px; color: rgba(255,255,255,.48); margin: 0;
}
.dg-legal-body {
  background: var(--dg-cream);
  padding: 56px 0 88px;
}
.dg-legal-content {
  max-width: 820px;
  margin: 0 auto;
  font-size: 15.5px;
  line-height: 1.78;
  color: var(--dg-text-dark);
}
.dg-legal-content h2 {
  font-size: clamp(18px, 2.2vw, 24px);
  font-weight: 800; letter-spacing: -.022em;
  color: var(--dg-text-dark);
  margin: 48px 0 14px;
  padding-bottom: 11px;
  border-bottom: 2px solid rgba(42,130,254,.12);
}
.dg-legal-content h2:first-child { margin-top: 0; }
.dg-legal-content h3 {
  font-size: 16px; font-weight: 700;
  color: var(--dg-navy); margin: 26px 0 9px;
}
.dg-legal-content p { margin-bottom: 14px; color: var(--dg-text-mid); }
.dg-legal-content p strong { color: var(--dg-text-dark); }
.dg-legal-content ul,
.dg-legal-content ol { padding-left: 22px; margin-bottom: 18px; }
.dg-legal-content li { margin-bottom: 7px; color: var(--dg-text-mid); }
.dg-legal-content a { color: var(--dg-navy); text-underline-offset: 3px; }
.dg-legal-content a:hover { color: var(--dg-crimson); }
.dg-legal-alert {
  background: rgba(42,130,254,.07);
  border-left: 4px solid var(--dg-navy);
  padding: 16px 20px; border-radius: 0 10px 10px 0;
  margin: 24px 0; font-size: 14.5px;
  color: var(--dg-text-dark);
}
.dg-legal-alert.warning {
  background: rgba(253,51,120,.07);
  border-left-color: var(--dg-pink);
}
.dg-legal-contact-card {
  background: #fff;
  border: 1px solid rgba(42,130,254,.12);
  border-radius: 18px; padding: 28px 32px;
  margin-top: 44px;
  box-shadow: 0 4px 22px rgba(42,130,254,.07);
}
.dg-legal-contact-card h3 { margin-top: 0; }
@media (max-width: 575.98px) {
  .dg-legal-banner { padding: 38px 0 32px; }
  .dg-legal-body { padding: 40px 0 64px; }
  .dg-legal-content { font-size: 15px; }
  .dg-legal-contact-card { padding: 22px 20px; }
}

/* ──────────────────────────────────────────
   WOOCOMMERCE — CART, CHECKOUT & ACCOUNT
   [JDev - JESR 20260702]
   Native WooCommerce Blocks (wp:woocommerce/cart, wp:woocommerce/checkout)
   restyled entirely via CSS against wc-block-* classes — no block markup
   or WC template files touched. Same technique used on prior projects.
────────────────────────────────────────── */

/* Page shell — mirrors .dg-legal-banner/.dg-legal-body/.dg-legal-content,
   wider container since cart/checkout need room for a 2-column layout. */
.dg-shop-banner {
  background: var(--dg-navy);
  padding: 44px 0 38px;
}
.dg-shop-breadcrumb-nav {
  font-size: 12.5px;
  color: rgba(255,255,255,.52);
  margin-bottom: 12px;
}
.dg-shop-breadcrumb-nav a { color: rgba(255,255,255,.65); text-decoration: none; transition: color .2s; }
.dg-shop-breadcrumb-nav a:hover { color: #fff; }
.dg-shop-title {
  font-size: clamp(24px, 3vw, 36px);
  font-weight: 800; letter-spacing: -.03em; line-height: 1.1;
  color: #fff; margin: 0;
}
.dg-shop-body { background: var(--dg-cream); padding: 48px 0 80px; }
.dg-shop-content { max-width: 1280px; margin: 0 auto; }

/* Shared card treatment — matches .plan-card/.tcard radius + border language */
.wc-block-components-sidebar,
.wc-block-components-checkout-step,
.wc-block-cart-items,
.wc-block-checkout__actions,
.wp-block-woocommerce-checkout-express-payment-block,
.wp-block-woocommerce-cart-express-payment-block,
.woocommerce-order-overview,
.woocommerce-order-downloads,
.woocommerce-order-details,
.woocommerce-customer-details,
.woocommerce-MyAccount-content {
  background: #fff !important;
  border: 1px solid rgba(42,130,254,.14) !important;
  border-radius: 16px !important;
  padding: 24px !important;
  margin-bottom: 20px !important;
  box-shadow: 0 4px 22px rgba(42,130,254,.07); /* [JDev - JESR 20260702] white-on-cream needs depth, not just a border — matches .dg-legal-contact-card */
}
/* [JDev - JESR 20260702] .wc-block-cart-items is a <table> — Bootstrap's reboot.css
   forces `table { border-collapse: collapse }` sitewide, which stops a table's own
   border-radius/background from rendering (cells paint square to the collapsed
   border grid instead of clipping to the table's rounded box). Restoring
   `separate` is what makes the card radius/white-fill actually show up. */
.wc-block-cart-items {
  padding: 0 !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
}
/* [JDev - JESR 20260702] WC's own cart.css ships
   `table.wc-block-cart-items, table.wc-block-cart-items td, table.wc-block-cart-items th
   { background: none !important }` — that element+class selector beats our plain
   `.wc-block-cart-items` class selector on specificity even though ours loads first
   in <head>, so the white card fill above was silently losing. Repeating the class
   (.wc-block-cart-items.wc-block-cart-items) bumps our specificity past theirs. */
table.wc-block-cart-items.wc-block-cart-items,
table.wc-block-cart-items.wc-block-cart-items td,
table.wc-block-cart-items.wc-block-cart-items th {
  background: #fff !important;
}
.wc-block-cart-items__header-image,
.wc-block-cart-items__header-product,
.wc-block-cart-items__header-total,
.wc-block-cart-item__image,
.wc-block-cart-item__product,
.wc-block-cart-item__total {
  padding: 20px 24px !important;
}

/* Headings inside blocks — Dr. Git text tokens, not the default WC greys */
.wc-block-cart h1, .wc-block-cart h2, .wc-block-cart h3,
.wc-block-checkout h1, .wc-block-checkout h2, .wc-block-checkout h3,
.woocommerce-order h2, .woocommerce-order h3,
.wc-block-components-checkout-step__title,
.wc-block-components-checkout-order-summary__title-text,
.wc-block-cart__totals-title,
.woocommerce-order-details__title,
.woocommerce-column__title,
.woocommerce-order-downloads__title {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  color: var(--dg-text-dark) !important;
  font-weight: 800 !important;
}

/* Body copy / labels — Dr. Git text-mid, not WC default greys */
.wc-block-components-totals-item__label,
.wc-block-components-product-price__value,
.wc-block-components-address-card,
.woocommerce-customer-details address,
.wc-block-components-radio-control-accordion-content p {
  color: var(--dg-text-mid) !important;
}

/* Cart item rows */
.wc-block-cart-items__row { border-bottom: 1px solid rgba(42,130,254,.10); }
.wc-block-cart-item__image img { border-radius: 10px; }
/* [JDev - JESR 20260702] .wc-block-cart-item__wrap (name/price/description) and
   .wc-block-cart-item__quantity (qty stepper + remove link) are plain sibling
   divs inside the product <td> — by default they just stack, so "Eliminar"
   fell on its own trailing line under the description. Tried `display:flex`
   on the <td> first, but that strips its `table-cell` display and breaks the
   table's column model — the sibling totals <td> collapsed onto its own line.
   Absolute-positioning the quantity/remove block instead leaves the <td> a
   normal table-cell and just floats the remove control to the row's right
   edge, vertically centered. Desktop-only — the .is-small mobile grid below
   already places these via its own grid-column/row rules. */
@media (min-width: 768px) {
  .wc-block-cart-item__product {
    position: relative;
    padding-right: 44px !important;
  }
  .wc-block-cart-item__quantity {
    position: absolute;
    top: 50%;
    right: 24px;
    transform: translateY(-50%);
  }
}
.wc-block-components-product-name { color: var(--dg-text-dark) !important; font-weight: 700 !important; text-decoration: none !important; }
.wc-block-components-product-name:hover { color: var(--dg-crimson) !important; }
.wc-block-components-quantity-selector {
  border: 1.5px solid rgba(42,130,254,.18) !important;
  border-radius: 10px !important;
  overflow: hidden;
}
.wc-block-components-quantity-selector__input { color: var(--dg-text-dark) !important; font-weight: 600; }
.wc-block-components-quantity-selector__button { color: var(--dg-navy) !important; }
.wc-block-components-quantity-selector__button:hover:not(:disabled) { background: rgba(42,130,254,.08) !important; }
.wc-block-cart-item__remove-link { color: var(--dg-pink) !important; text-decoration: underline; }
.wc-block-cart-item__remove-link:hover { color: var(--dg-crimson) !important; }

/* Order summary / totals */
.wc-block-components-order-summary-item {
  background: var(--dg-soft-blue) !important;
  border-radius: 12px !important;
  padding: 12px !important;
  margin-bottom: 10px !important;
}
/* [JDev - JESR 20260702] WC's own CSS puts a default border-bottom on the
   *whole* .wp-block-woocommerce-cart/checkout-order-summary-block wrapper
   (and on nested totals-block containers) — stacked on top of our own
   per-row borders below, that read as "too many lines" around a single
   total. Strip WC's wrapper-level borders; we draw our own, once. */
.wp-block-woocommerce-cart-order-summary-block,
.wp-block-woocommerce-checkout-order-summary-block,
.wp-block-woocommerce-cart-order-summary-totals-block,
.wp-block-woocommerce-checkout-order-summary-totals-block,
.wc-block-components-totals-wrapper {
  border: none !important;
}
/* [JDev - JESR 20260712] Dropped the separator border under Subtotal —
   with only Subtotal/Total showing (no shipping/tax rows on a virtual-only
   cart), it read as a stray faint line rather than a useful divider between
   rows. Revisit with a border here if shipping/tax rows are ever added. */
.wc-block-components-totals-item:not(.wc-block-components-totals-footer-item) {
  border-bottom: none !important;
}
/* [JDev - JESR 20260712] The Total row's OUTER .wc-block-components-totals-wrapper
   (not the .wc-block-components-totals-item below) carries its own 16px
   top padding by default — stacked on top of our item-level margin/padding
   below, Subtotal and the Total's blue top-border ended up ~32-36px apart
   (measured via getBoundingClientRect, not eyeballed). Zeroing the wrapper's
   own padding-top lets our item-level spacing alone define the gap, so
   Subtotal sits right above the blue line instead of floating far above it. */
.wc-block-components-totals-wrapper:has(.wc-block-components-totals-footer-item) {
  padding-top: 0 !important;
}
/* [JDev - JESR 20260713] Eduardo found the remaining gap's real source via
   DevTools: .wp-block-woocommerce-checkout-order-summary-totals-block (the
   block wrapping Subtotal/discount/fee, a sibling of Total's own wrapper)
   carries its own 16px padding-BOTTOM by default — i.e. space AFTER
   Subtotal, before Total. Moving that same 16px to padding-TOP instead
   relocates the gap to above Subtotal (separating it from the cart items
   list) so Subtotal sits flush above Total's blue line, as asked. */
.wp-block-woocommerce-checkout-order-summary-totals-block {
  padding-top: 16px !important;
  padding-bottom: 0 !important;
}
.wc-block-components-totals-footer-item {
  border-top: 2px solid var(--dg-navy) !important;
  border-bottom: none !important;
  margin-top: 4px !important;
  padding-top: 12px !important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-checkout-order-summary__title-price {
  color: var(--dg-crimson) !important;
  font-weight: 800 !important;
}

/* [JDev - JESR 20260713] Field validation error text (e.g. the checkbox
   error below) rendered with line-height equal to its own font-size (13px
   line-height on 13px text — effectively no leading at all), so wrapped
   lines ran together. Matches the site's usual body-copy line-height
   (~1.5) instead. align-items switched to flex-start so the warning icon
   sits at the top of the text instead of vertically centered against the
   whole multi-line block. */
.wc-block-components-validation-error {
  margin-top: 6px !important;
}
.wc-block-components-validation-error p {
  align-items: flex-start !important;
  line-height: 1.5 !important;
}
.wc-block-components-validation-error p span {
  line-height: 1.5 !important;
}

/* Coupon form + notices */
.wc-block-components-notice-banner {
  background: var(--dg-soft-blue) !important;
  border-left: 4px solid var(--dg-navy) !important;
  border-radius: 8px !important;
  color: var(--dg-text-dark) !important;
}
.wc-block-components-notice-banner.is-error { background: rgba(253,51,120,.08) !important; border-left-color: var(--dg-pink) !important; }
.wc-block-components-notice-banner.is-success { background: rgba(42,130,254,.08) !important; border-left-color: var(--dg-navy) !important; }

/* Form inputs — reuse the .form-dg treatment already used in the registration modal */
.wc-block-components-text-input input,
.wc-blocks-components-select__select,
.wc-block-checkout textarea {
  font-family: inherit !important;
  border: 1.5px solid rgba(42,130,254,.15) !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: var(--dg-text-dark) !important;
  transition: border-color .2s, box-shadow .2s;
}
/* [JDev - JESR 20260713] Fields felt cramped — taller boxes, more internal
   padding. WC's own rule sets an explicit `height:50px` (box-sizing:
   border-box) in the SAME declaration as its default padding — increasing
   padding alone doesn't grow the box at all, it just shrinks the available
   content area inside the same fixed height (confirmed by measuring the
   real rendered height before/after — it hadn't moved). `height` has to be
   overridden explicitly alongside padding.
   WC's floating label is centered via `top:25px` hardcoded to its OLD fixed
   height; switching to `top:50%` (keeping WC's own `translateY(-50%)`)
   keeps it centered at any height instead of needing to recalculate a pixel
   value every time the box height changes.
   Specificity note (confirmed against the real rendered DOM, not guessed —
   the first attempt at this silently did nothing): WC's own compiled CSS
   targets `input[type=text]` etc. (an attribute selector, weighted like an
   extra class) for padding/height, and `.wc-block-components-form
   .wc-block-components-text-input label` (two classes) for the label's
   `top`/`.is-active` state — both out-specify a plain `.wc-block-components-
   text-input input`/`label` selector even with `!important` on both sides.
   Repeating our own class is the same fix already used elsewhere in this
   file for the `.contained` button and `.wc-block-cart-items` cases. */
.wc-block-components-text-input.wc-block-components-text-input.wc-block-components-text-input input[type] {
  height: 64px !important;
  padding: 32px 9px 14px !important;
}
.wc-blocks-components-select__select {
  height: 64px !important;
  padding: 32px 9px 14px !important;
  line-height: 16px !important;
}
.wc-block-components-text-input.wc-block-components-text-input.wc-block-components-text-input label {
  top: 50% !important;
}
.wc-block-components-text-input.wc-block-components-text-input.wc-block-components-text-input.is-active label {
  top: 10px !important;
}
.wc-block-components-text-input input:focus,
.wc-blocks-components-select__select:focus {
  border-color: var(--dg-navy) !important;
  box-shadow: 0 0 0 3px rgba(42,130,254,.10) !important;
  outline: none !important;
}
.wc-block-components-text-input label,
.wc-blocks-components-select__label { color: var(--dg-text-light) !important; }
.wc-block-components-text-input.is-active label { color: var(--dg-navy) !important; }
.wc-blocks-components-select__select option { background: #fff; color: var(--dg-text-dark); }
/* [JDev - JESR 20260712] Country/Region select's "País/Región" caption label
   sits inset at the top of the same bordered box as the select text — WC's
   own rule already wins the cascade on a plain class selector (loads after
   this stylesheet), so !important is needed here same as elsewhere in this
   file. Small gap only — just enough to separate the caption from the
   selected-value text below it, not full field-sized spacing. */
.wc-blocks-components-select__label {
  display: inline-block !important;
  margin-bottom: 4px !important;
}

/* [JDev - JESR 20260712] Guest-checkout notice ("En este momento estás
   realizando la compra como invitado.") directly follows the email field
   with no gap — Bootstrap's reboot zeroes <p> margin-top sitewide. */
.wc-block-checkout__guest-checkout-notice {
  margin-top: 12px !important;
}

/* Address card (saved address summary) */
.wc-block-components-address-card { background: var(--dg-soft-blue) !important; border-radius: 10px !important; padding: 14px !important; }
.wc-block-components-address-card__edit { color: var(--dg-navy) !important; font-weight: 700; }
.wc-block-components-address-card__edit:hover { color: var(--dg-crimson) !important; }

/* Currency transparency notice — Addendum No. 1, Punto 3 [JDev - JESR 20260704] */
.dg-currency-notice {
  display: flex; align-items: flex-start; gap: 10px;
  background: var(--dg-soft-blue);
  border-left: 3px solid var(--dg-navy);
  border-radius: 0 10px 10px 0;
  padding: 12px 16px;
  margin: 4px 0 22px;
  font-size: 13px; line-height: 1.55; color: var(--dg-text-mid);
}
.dg-currency-notice i { color: var(--dg-navy); font-size: 16px; margin-top: 1px; flex-shrink: 0; }

/* Payment method options
   [JDev - JESR 20260712] Rebuilt selection styling as shadow-only, no
   border. Previously: a 2px border here PLUS WC's own default connector
   pseudo-element (.wc-block-components-radio-control-accordion-option::after
   — a 1px divider line WC draws between grouped/"highlight-checked" payment
   options, with its own border-radius on first/last child) rendered as a
   visible double line with mismatched corners around the selected option.
   Killing WC's ::after and the border entirely, and indicating "selected"
   with a box-shadow ring instead, removes both the doubling and the radius
   mismatch in one fix — confirmed against the real rendered DOM, not guessed. */
.wc-block-components-radio-control-accordion-option {
  background: var(--dg-soft-blue) !important;
  border: none !important;
  border-radius: 12px !important;
  margin-bottom: 12px !important;
  box-shadow: 0 1px 4px rgba(15,28,56,.06) !important;
}
.wc-block-components-radio-control-accordion-option::after {
  content: none !important;
}
/* [JDev - JESR 20260713] A SECOND, separate divider pseudo-element — this one
   on the label itself (.wc-block-components-radio-control__option::after,
   not the accordion-option wrapper above) — was drawing a 1px line between
   the "PayPal" row and the "Al continuar..." text below it, i.e. a border
   crossing through the middle of our own outer shadow-ringed box. Found via
   getComputedStyle(el, '::after') on every candidate ancestor, not guessed.
   Needed the same 3x-repeated-class specificity bump as the text-input
   fixes below — WC's actual winning rule here is
   `.wc-block-components-radio-control--highlight-checked
   .wc-block-components-radio-control__option:after` (2 classes), which
   beats a plain 1-class override even with `!important` on both sides. */
.wc-block-components-radio-control__option.wc-block-components-radio-control__option.wc-block-components-radio-control__option::after {
  content: none !important;
}
.wc-block-components-radio-control-accordion-option:hover {
  box-shadow: 0 1px 8px rgba(15,28,56,.12) !important;
}
/* [JDev - JESR 20260713] Real bug (not a specificity fight): the ring must
   only ever go on the OUTER .wc-block-components-radio-control-accordion-option
   box (both rows). It was ALSO being applied to the inner <label> alone
   (.wc-block-components-radio-control__option-checked and the
   ...--checked-option-highlighted label variant) — a label-sized ring is
   shorter than the full box, so its own bottom edge rendered as exactly the
   "line crossing through the middle" being reported. Scoped to the outer
   container only. */
.wc-block-components-radio-control-accordion-option--checked-option-highlighted {
  box-shadow: 0 0 0 2px var(--dg-navy) !important;
}
.wc-block-components-radio-control__label { color: var(--dg-text-dark) !important; font-weight: 600 !important; }
.wc-block-components-radio-control__input[type="radio"]:checked { border-color: var(--dg-navy) !important; }
.wc-block-components-radio-control__input[type="radio"]:checked::before { background-color: var(--dg-navy) !important; }

/* [JDev - JESR 20260712] Terms text — center on the available width instead
   of default left-align (this variant has no checkbox, just a statement). */
.wc-block-checkout__terms {
  text-align: center !important;
}

/* [JDev - JESR 20260712] Info-icon trigger appended via JS (footer.php) after
   the "ya asistí..." checkbox label — opens #dgPatientInfoModal. */
.dg-checkbox-info-icon {
  color: var(--dg-navy);
  margin-left: 5px;
  cursor: pointer;
  font-size: 15px;
  vertical-align: -1px;
}
.dg-checkbox-info-icon:hover { color: var(--dg-crimson); }

/* Primary actions — reuse .btn-dg-primary visual language (pink, rounded-10).
   [JDev - JESR 20260702] WC Blocks ships its own .wc-block-components-button.contained
   rule (also !important) at equal-or-higher specificity that loads AFTER this
   stylesheet, so a bare single-class selector loses the tie. Matching the
   ".contained" compound class here is what actually wins. */
.wc-block-cart__submit-button.contained,
.wc-block-components-checkout-place-order-button.contained,
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
  background-color: var(--dg-pink) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 10px !important;
  padding: 14px 32px !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  transition: background-color .2s, transform .15s !important;
}
.wc-block-cart__submit-button.contained:hover,
.wc-block-components-checkout-place-order-button.contained:hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
  background-color: var(--dg-crimson) !important;
  transform: translateY(-1px);
}
/* Empty cart state — [JDev - JESR 20260702] class names verified against
   claude-related/cart-content.html: wc-block-cart__empty-cart__title (not
   -empty__title) and wp-block-woocommerce-empty-cart-block (not
   wc-block-empty-cart-block). .wp-block-button__link scoped to .dg-shop-content
   only — unscoped it would style every core WP Button block sitewide. */
.wc-block-cart__empty-cart__title,
.wp-block-woocommerce-empty-cart-block .wp-block-heading { color: var(--dg-text-dark) !important; }
.dg-shop-content .wp-block-button__link {
  background-color: var(--dg-pink) !important;
  border-radius: 10px !important;
}

/* Order-received (Thank You) page */
.woocommerce-order { padding: 20px 0 60px; }
.woocommerce-notice--success,
.woocommerce-thankyou-order-received {
  background: var(--dg-soft-blue) !important;
  border: 2px solid var(--dg-navy) !important;
  border-radius: 14px !important;
  padding: 20px 24px !important;
  color: var(--dg-text-dark) !important;
  font-weight: 600;
}
.woocommerce-order-overview {
  list-style: none; display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 16px;
}
.woocommerce-order-overview li { color: var(--dg-text-light); font-size: 12.5px; text-transform: uppercase; letter-spacing: .04em; min-width: 0; }
/* [JDev - JESR 20260702] Payment method value can be "PayPal (name@example.com)" —
   the email has no spaces/hyphens for the browser to break on, so it was
   overflowing past the li's grid column instead of wrapping. break-word alone
   still forces an ugly mid-word split (e.g. a lone "m" orphaned on its own
   line) whenever the column is only just barely too narrow. Rather than
   fight the auto-fit column math, give this one field — the only one prone
   to being long — the FULL row width every time, so it rarely needs to break
   at all; break-word stays only as a safety net for pathological cases. */
.woocommerce-order-overview li strong { display: block; color: var(--dg-text-dark); font-size: 16px; text-transform: none; letter-spacing: normal; margin-top: 4px; overflow-wrap: break-word; word-break: break-word; }
/* [JDev - JESR 20260702] Total is dropped from this summary row entirely —
   it's already shown in the order-details table's tfoot right below, so
   showing it twice just ate the column space "Método de pago" needed.
   Removing it (rather than spanning payment-method to its own row) keeps
   this overview a single tidy row of 4 fields instead of 4-then-1. */
.woocommerce-order-overview__total { display: none; }
.woocommerce-order-overview .total strong { color: var(--dg-crimson); }
.woocommerce-table--order-details, .woocommerce-table--order-downloads { width: 100%; border-collapse: collapse; }
.woocommerce-table--order-details th, .woocommerce-table--order-details td,
.woocommerce-table--order-downloads th, .woocommerce-table--order-downloads td {
  padding: 10px 8px; border-bottom: 1px solid rgba(42,130,254,.10); color: var(--dg-text-mid);
}
.woocommerce-table--order-details tfoot tr:last-child th,
.woocommerce-table--order-details tfoot tr:last-child td { color: var(--dg-crimson); font-weight: 800; font-size: 16px; }

/* My Account */
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0 0 20px; }
.woocommerce-MyAccount-navigation li { border-bottom: 1px solid rgba(42,130,254,.10); }
.woocommerce-MyAccount-navigation a { display: block; padding: 10px 4px; color: var(--dg-text-mid); text-decoration: none; font-weight: 600; }
.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation a:hover { color: var(--dg-crimson); }
.woocommerce-MyAccount-content table { width: 100%; }

/* Sticky-footer fix — [JDev - JESR 20260702]
   body has a sitewide `background-color: var(--dg-crimson)` (see BASE section)
   so the below-footer area matches the footer on very tall viewports instead
   of showing a white gap. That's fine on the homepage, where content is long
   enough to always reach the fold. Cart/Checkout/My Account are short pages
   (a form and a card), so the crimson body shows through as a large purple
   void below the footer on any normal-height screen. Fix: make these pages'
   body a flex column so .dg-shop-body always grows to fill the viewport,
   pushing the footer to the bottom instead of leaving a gap below it.
   Scoped to .page-template-page-woocommerce so it never touches the
   homepage/legal pages. */
body.page-template-page-woocommerce {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
body.page-template-page-woocommerce .dg-shop-body {
  flex: 1 0 auto;
}
body.page-template-page-woocommerce .dg-footer {
  flex-shrink: 0;
}

/* ──────────────────────────────────────────
   ORDER-RECEIVED / THANK-YOU PAGE
   [JDev - JESR 20260712]
   woocommerce/checkout/thankyou.php override. Design source:
   claude-related/V2/Final-order.html. Reuses existing brand tokens
   (--dg-crimson/navy/pink/cream/soft-blue/text-*) — the mockup already
   used the same variable names. `dg-shop-body--order-received` strips the
   generic shop page's padding/background so this page's own hero band can
   run edge-to-edge right under the header (page-woocommerce.php skips its
   .dg-shop-banner + centered .container for this endpoint specifically).
────────────────────────────────────────── */
/* [JDev - JESR 20260713] `background: transparent` was wrong — it let the
   sitewide `body { background-color: var(--dg-crimson) }` (the sticky-footer
   trick documented in woocommerce-functions.php/CLAUDE.md's Cart/Checkout
   section) show through everywhere on this page that isn't a card or the
   hero band, reading as a purple page background instead of the mockup's
   light one. `--dg-cream` matches this site's existing shop-page background
   convention (closest brand token to the mockup's `#f4f6fb`). */
.dg-shop-body--order-received { padding: 0; background: var(--dg-cream); }

.dgo-hero {
  background: linear-gradient(120deg, var(--dg-navy) 0%, var(--dg-pink) 55%, var(--dg-crimson) 100%);
  padding: 44px 24px 100px;
  text-align: center;
  color: #fff;
  position: relative;
}
.dgo-hero .crumb { font-size: 12px; opacity: .72; margin-bottom: 14px; font-weight: 600; }
.dgo-check {
  width: 64px; height: 64px; border-radius: 50%;
  background: #fff; color: var(--dg-navy);
  display: flex; align-items: center; justify-content: center;
  font-size: 30px; margin: 0 auto 18px;
  box-shadow: 0 10px 30px rgba(0,0,0,.15);
}
.dgo-hero h1 { font-size: 28px; font-weight: 800; letter-spacing: -.02em; margin-bottom: 8px; }
.dgo-hero p { font-size: 14.5px; opacity: .88; max-width: 440px; margin: 0 auto; line-height: 1.55; }

.dgo-wrap {
  max-width: 920px; margin: -64px auto 60px; padding: 0 20px;
  display: flex; flex-direction: column; gap: 18px;
  position: relative; z-index: 2;
}

.dgo-meta {
  background: #fff; border-radius: 18px;
  box-shadow: 0 14px 40px rgba(15,28,56,.08);
  padding: 22px 26px;
  display: grid; grid-template-columns: repeat(3,1fr); gap: 18px;
}
.dgo-meta .chip .lbl { font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--dg-text-light); margin-bottom: 5px; }
.dgo-meta .chip .val { font-size: 14.5px; font-weight: 700; color: var(--dg-text-dark); }
.dgo-meta .chip .val i { color: var(--dg-pink); margin-right: 5px; }

.dgo-card {
  background: #fff; border-radius: 18px;
  border: 1px solid rgba(42,130,254,.12);
  padding: 26px;
}
.dgo-card h2 {
  font-size: 15px; font-weight: 800; color: var(--dg-crimson);
  text-transform: uppercase; letter-spacing: .04em;
  margin-bottom: 16px;
  display: flex; align-items: center; gap: 8px;
}
/* [JDev - JESR 20260713] Original mockup (Final-order.html) markup carries an
   <i> icon inside every .dgo-card h2 but explicitly hides it via this exact
   rule — a design choice, not leftover markup. Missed carrying this rule
   over when the design was ported to real PHP; icons were rendering visible
   here even though the approved design never shows them. */
.dgo-card h2 i {
  display: none;
}

.dgo-product-row {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 0; border-bottom: 1px solid rgba(42,130,254,.08);
}
.dgo-product-ico {
  width: 46px; height: 46px; border-radius: 12px; flex-shrink: 0;
  background: var(--dg-soft-blue); color: var(--dg-navy);
  display: flex; align-items: center; justify-content: center; font-size: 19px;
}
.dgo-product-name { font-weight: 700; font-size: 14.5px; color: var(--dg-text-dark); }
.dgo-product-qty { font-size: 12px; color: var(--dg-text-light); margin-top: 2px; }
.dgo-product-price { margin-left: auto; font-weight: 700; font-size: 14.5px; }

/* [JDev - JESR 20260713] Renamed from a bare `.row` (matched the mockup's own
   markup verbatim) to `.dgo-total-row` — `.row` collides with Bootstrap 5's
   own grid class, which forces `width:100%` on every direct child of any
   `.row` regardless of whether it's a real `.col-*`. That's what was making
   Subtotal/Total's two spans each claim the full row width and wrap onto
   separate lines instead of sitting side-by-side — confirmed by measuring
   both spans' rendered width (815px each, matching the full row) via
   getBoundingClientRect, not guessed. The mockup was a standalone file with
   no Bootstrap loaded, so this collision never showed up there. */
.dgo-totals { padding-top: 14px; }
.dgo-totals .dgo-total-row { display: flex; justify-content: space-between; font-size: 13.5px; color: var(--dg-text-mid); padding: 6px 0; }
.dgo-totals .dgo-total-row.total {
  font-size: 16px; font-weight: 800; color: var(--dg-text-dark);
  border-top: 1px dashed rgba(42,130,254,.12); margin-top: 6px; padding-top: 12px;
}
.dgo-totals .dgo-total-row.total span:last-child { color: var(--dg-crimson); }

.dgo-pay-method {
  margin-top: 16px; display: flex; align-items: center; gap: 10px;
  background: var(--dg-soft-blue); border-radius: 12px; padding: 12px 16px;
  font-size: 13px; font-weight: 600; color: var(--dg-text-dark);
}
.dgo-pay-method i { color: var(--dg-navy); font-size: 16px; }

.dgo-bill-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 24px; }
.dgo-bill-field .lbl { font-size: 10.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--dg-text-light); margin-bottom: 3px; }
.dgo-bill-field .val { font-size: 13px; font-weight: 600; color: var(--dg-text-dark); line-height: 1.4; }
.dgo-bill-field.full { grid-column: 1 / -1; }

.dgo-id-badge {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--dg-cream); border: 1px solid rgba(42,130,254,.12);
  border-radius: 10px; padding: 10px 14px; font-weight: 700; font-size: 14.5px;
  letter-spacing: .02em; color: var(--dg-text-dark); margin-bottom: 16px;
}
.dgo-id-badge i { color: var(--dg-navy); }
.dgo-confirm-list { list-style: none; display: flex; flex-direction: column; gap: 10px; padding: 0; margin: 0; }
.dgo-confirm-list li {
  display: flex; align-items: flex-start; gap: 10px;
  font-size: 13px; color: var(--dg-text-mid); line-height: 1.5;
}
.dgo-confirm-list li i {
  color: #fff; background: var(--dg-pink);
  width: 19px; height: 19px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 10px; flex-shrink: 0; margin-top: 1px;
}

.dgo-next {
  background: linear-gradient(135deg, #e8edf8 0%, #f0f4fc 60%, #eef2fa 100%);
  border-radius: 18px; padding: 30px 26px;
  position: relative; overflow: hidden;
  border: 1px solid rgba(42,130,254,.12);
}
.dgo-next::before {
  content: ""; position: absolute; top: -40px; right: -40px; width: 180px; height: 180px;
  border-radius: 50%; background: rgba(253,51,120,.07);
}
.dgo-next-head { position: relative; margin-bottom: 22px; }
.dgo-next-head .eyebrow { font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--dg-navy); opacity: .7; margin-bottom: 4px; }
.dgo-next-head h2 { font-size: 19px; font-weight: 800; color: var(--dg-crimson); letter-spacing: -.01em; }
.dgo-next-head p { font-size: 13px; color: var(--dg-text-mid); margin-top: 4px; max-width: 520px; line-height: 1.5; }

.dgo-steps { position: relative; display: flex; gap: 0; }
.dgo-step.last .num::after { display: none; }
.dgo-steps::after {
  content: ""; position: absolute; right: 17px; top: 13px;
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--dg-navy); z-index: 1;
}
.dgo-steps::before {
  content: ""; position: absolute; top: 17px; left: 17px; right: 17px;
  height: 2px; background: rgba(42,130,254,.2); z-index: 0;
}
.dgo-step { flex: 1; position: relative; padding-right: 18px; }
.dgo-step:last-child { padding-right: 0; }
.dgo-step .num {
  width: 34px; height: 34px; border-radius: 50%;
  background: #fff; border: 1.5px solid rgba(42,130,254,.25);
  color: var(--dg-navy);
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; margin-bottom: 12px; position: relative; z-index: 1;
}
.dgo-step.active .num { background: var(--dg-pink); border-color: var(--dg-pink); color: #fff; }
.dgo-step .t { font-size: 13.5px; font-weight: 700; margin-bottom: 4px; color: var(--dg-text-dark); }
.dgo-step .d { font-size: 12px; color: var(--dg-text-mid); line-height: 1.5; }

.dgo-cta-row { display: flex; gap: 12px; flex-wrap: wrap; }
.dgo-btn {
  flex: 1; min-width: 220px;
  display: flex; align-items: center; justify-content: center; gap: 9px;
  padding: 15px 20px; border-radius: 12px; font-weight: 700; font-size: 14px;
  border: none; text-decoration: none;
}
.dgo-btn.primary {
  background-image: linear-gradient(to right, var(--dg-crimson-hover) 50%, var(--dg-crimson) 50%);
  background-size: 200% 100%; background-position: right center; color: #fff;
  transition: background-position .38s ease;
}
.dgo-btn.primary:hover { background-position: left center; color: #fff; }
.dgo-btn.whatsapp {
  background: #fff; color: #128C4A; border: 1.5px solid rgba(18,140,74,.25);
  transition: background .22s ease, color .22s ease, border-color .22s ease;
}
.dgo-btn.whatsapp:hover { background: #16a34a; color: #fff; border-color: #16a34a; }
.dgo-btn.whatsapp i { font-size: 17px; }

@media (max-width: 767px) {
  .dgo-meta { grid-template-columns: 1fr; }
  .dgo-bill-grid { grid-template-columns: 1fr; }
  .dgo-steps { flex-direction: column; gap: 18px; }
  .dgo-steps::before, .dgo-steps::after { display: none; }
  .dgo-hero h1 { font-size: 23px; }
  .dgo-cta-row { flex-direction: column; }
  .dgo-cta-row .dgo-btn { min-height: 52px; height: 52px; }
}

/* Responsive — desktop-first max-width, matching theme convention */
@media (max-width: 991px) {
  .dg-shop-banner { padding: 32px 0 28px; }
  .dg-shop-body { padding: 32px 0 56px; }
}
@media (max-width: 767px) {
  .wc-block-components-sidebar,
  .wc-block-components-checkout-step,
  .woocommerce-order-overview,
  .woocommerce-order-details,
  .woocommerce-customer-details { padding: 18px !important; }
  /* WC's own .is-small grid (80px image column) is tight — the 20/24px desktop
     cell padding above would crowd it, so ease back on mobile. */
  .wc-block-cart-items__header-image,
  .wc-block-cart-items__header-product,
  .wc-block-cart-items__header-total,
  .wc-block-cart-item__image,
  .wc-block-cart-item__product,
  .wc-block-cart-item__total { padding: 16px !important; }
  .wc-block-checkout__actions_row { flex-direction: column-reverse; gap: 12px; }
  .wc-block-cart__submit-button,
  .wc-block-components-checkout-place-order-button,
  .wc-block-components-checkout-return-to-cart-button { width: 100%; justify-content: center; text-align: center; }
}
@media (max-width: 575.98px) {
  .dg-shop-title { font-size: 22px; }
  .woocommerce-order-overview { grid-template-columns: repeat(2, 1fr); }
  /* [JDev - JESR 20260702] At a true 2-column mobile width, each column is
     only ~150px — too narrow for "eduardo@junglerdev.com" or "PayPal
     (name@example.com)" to sit next to another field without wrapping into
     several lines (and occasionally leaving a lone "m)" orphaned). Give
     these two fields the full row so they at least get the whole card width
     to wrap within, instead of half of it. Order/date stay paired — they're
     short enough to never need it. */
  .woocommerce-order-overview__email,
  .woocommerce-order-overview__payment-method { grid-column: 1 / -1; }
}

/* ══════════════════════════════════════════
   RETO REINICIO — AGOSTO 2026 LANDING PAGE
   [JDev - JESR 20260802]
   Ported from claude-related/Final+Content.html.
   Reuses existing brand tokens / .btn-dg-primary / .btn-dg-outline /
   .section-title / .section-desc / .section-py — not redefined here.
   ══════════════════════════════════════════ */
.hero a,.trust-strip a,.enroll-section a,.testimonial-section a,
.incl-textured a,#panel-reto a,.faq-section a,.meal-strip-section a,
.cta-section a{text-decoration:none;}
/* [JDev - JESR 20260802] the sitewide .wa-fab (footer.php) occupies the same
   fixed bottom-right corner as this page's own richer #waBubble widget and
   was intercepting all clicks on it (confirmed via elementFromPoint — .wa-fab
   painted on top, real bug, not guessed). Hide the generic one wherever the
   richer widget is present instead of running both in the same spot. */
body:has(#waBubble) .wa-fab{display:none;}
/* [JDev - JESR 20260802] /gracias/ page — reuses the .dgo-* thank-you page
   language (originally built for woocommerce/checkout/thankyou.php) on a
   plain page.php template, which (unlike page-woocommerce.php's order-received
   branch) has no wrapper background override, so the sitewide
   body{background:var(--dg-crimson)} sticky-footer trick would bleed through
   in the gaps around .dgo-wrap. Same fix as .dg-shop-body--order-received. */
.dg-gracias-page{
  background:var(--dg-cream);
  /* [JDev - JESR 20260803] .dgo-wrap's own bottom margin (60px) was
     collapsing through this wrapper since it was its last child with
     nothing below to stop it — the CTA buttons ended up sitting flush
     against the footer instead of leaving the intended gap. padding
     (not margin) on the wrapper itself can't collapse the same way. */
  padding-bottom:1px;
}
.dg-disclaimer{font-size:12.5px;color:var(--dg-text-mid);display:flex;align-items:flex-start;gap:7px;line-height:1.5;}
.dg-disclaimer i{color:var(--dg-pink);font-size:14px;margin-top:1px;flex-shrink:0;}
/* [JDev - JESR 20260803] .enroll-center has a solid crimson background —
   the default dg-text-mid (dark gray) disclaimer text was unreadable there. */
.enroll-center .dg-disclaimer{color:#fff;margin-top:14px;}
.enroll-center .dg-disclaimer i{color:#fff;}

/* Reveal on scroll */
.rv{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.22,.8,.3,1);}
.rv.in{opacity:1;transform:none;}
.rv-d1{transition-delay:.08s;}.rv-d2{transition-delay:.16s;}.rv-d3{transition-delay:.24s;}
.rv-d4{transition-delay:.32s;}.rv-d5{transition-delay:.4s;}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none;}.plate-float,.plate-float-2,.plate-float-3{animation:none!important;}}

/* ══════════════════════════════════════════
   HERO
══════════════════════════════════════════ */
.hero{
  position:relative;overflow:hidden;
  background:
    radial-gradient(640px 420px at 88% 8%,rgba(42,130,254,.10),transparent 62%),
    radial-gradient(520px 380px at 4% 92%,rgba(253,51,120,.07),transparent 60%),
    linear-gradient(180deg,#ffffff 0%,#f4f6fb 100%);
  padding:76px 0 70px;
}
.hero h1{
  font-size:clamp(30px,4.6vw,50px);font-weight:800;letter-spacing:-.03em;
  line-height:1.1;margin-bottom:18px;color:var(--dg-text-dark);
}
.hero h1 em{
  font-style:normal;
  background:linear-gradient(100deg,var(--dg-navy),var(--dg-pink) 60%,var(--dg-crimson));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero-date{font-size:13.5px;font-weight:700;color:var(--dg-text-mid);margin-bottom:16px;letter-spacing:.01em;}
.hero-bullets{list-style:none;padding:0;margin:0 0 28px;}
.hero-bullets li{
  display:flex;align-items:flex-start;gap:10px;padding:6px 0;
  font-size:15px;color:var(--dg-text-mid);line-height:1.5;
}
.hero-bullets li i{color:var(--dg-navy);font-size:16px;margin-top:2px;flex-shrink:0;}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px;}

/* Collage de platos */
.plates{position:relative;min-height:460px;}
.plate{
  position:absolute;border-radius:24px;overflow:hidden;background:#fff;
  border:5px solid #fff;box-shadow:0 22px 55px rgba(15,28,56,.16);
}
.plate img{width:100%;height:100%;object-fit:cover;display:block;}
.plate-a{width:62%;aspect-ratio:1/1;top:0;right:6%;}
.plate-b{width:44%;aspect-ratio:1/1;bottom:6%;left:0;}
.plate-c{width:34%;aspect-ratio:1/1;bottom:0;right:0;}
@keyframes floatA{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}
@keyframes floatB{0%,100%{transform:translateY(0);}50%{transform:translateY(9px);}}
.plate-float{animation:floatA 7s ease-in-out infinite;}
.plate-float-2{animation:floatB 8.5s ease-in-out infinite;}
.plate-float-3{animation:floatA 9.5s ease-in-out infinite reverse;}
.plate-chip{
  position:absolute;z-index:3;background:#fff;border:1px solid var(--dg-border);
  font-size:11.5px;font-weight:700;color:var(--dg-text-dark);
  padding:7px 13px;border-radius:30px;display:inline-flex;align-items:center;gap:6px;
  box-shadow:0 8px 22px rgba(15,28,56,.12);
}
.plate-chip i{color:var(--dg-navy);}
.plate-chip.chip-1{top:10%;left:27%;}
.plate-chip.chip-2{top:50%;right:2%;}
.plate-chip.chip-3{bottom:3%;left:29%;}
.plate-chip.chip-2 i{color:var(--dg-pink);}
.plate-chip.chip-3 i{color:var(--dg-crimson);}
@media(max-width:991.98px){.plates{min-height:380px;margin-top:14px;}}
@media(max-width:575.98px){
  .plates{min-height:300px;}
  .plate{border-radius:18px;border-width:4px;}
  .plate-chip{font-size:9.5px;padding:6px 9px;gap:5px;}
  .plate-chip.chip-1{top:9%;left:24%;}
  .plate-chip.chip-2{top:49%;right:0;}
  .plate-chip.chip-3{bottom:2%;left:24%;}
}

/* ══════════════════════════════════════════
   TRUST STRIP — fondo sólido
══════════════════════════════════════════ */
.trust-strip{
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(90deg,rgba(10,34,84,.94) 0%,rgba(42,130,254,.82) 48%,rgba(82,2,132,.72) 100%),
    url('https://images.unsplash.com/photo-1540420773420-3366772f4999?w=1800&h=700&fit=crop&q=86') center/cover no-repeat;
  padding:30px 0;
}
.trust-item{text-align:center;padding:10px 0;position:relative;}
.trust-item b{display:block;font-size:26px;font-weight:800;letter-spacing:-.02em;color:#fff;line-height:1.1;}
.trust-item span{font-size:12.5px;font-weight:600;color:rgba(255,255,255,.72);}
@media(min-width:768px){
  .trust-item+.trust-item::before{
    content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
    width:1px;height:38px;background:rgba(255,255,255,.2);
  }
}

/* ══════════════════════════════════════════
   INSCRIPCIÓN — 3 columnas
══════════════════════════════════════════ */
.enroll-section{
  position:relative;
  padding:84px 0;
  background:var(--dg-soft-blue);
}
.enroll-section::before{display:none;}
.enroll-section>.container{position:relative;z-index:1;}
.enroll-section .section-title{
  color:var(--dg-text-dark) !important;
  -webkit-text-fill-color:var(--dg-text-dark);
  text-shadow:none;
}
@media(max-width:767.98px){.enroll-section{padding:54px 0;}}
.enroll-grid{
  display:grid;
  grid-template-columns:30fr 38fr 32fr;
  gap:20px;
  align-items:stretch;
}
@media(max-width:991.98px){.enroll-grid{grid-template-columns:1fr;max-width:580px;margin:0 auto;}}

/* Side cards — white */
.enroll-side{
  background:#fff;border-radius:24px;border:1px solid var(--dg-border);
  padding:28px 24px;display:flex;flex-direction:column;justify-content:space-between;
}

/* Steps column */
.step-block{padding:14px 0;position:relative;}
.step-block+.step-block{border-top:1px solid var(--dg-border);}
.step-num{
  font-size:24px;font-weight:800;letter-spacing:-.03em;color:var(--dg-navy);
  line-height:1;margin-bottom:5px;
}
.step-title{font-size:14px;font-weight:800;color:var(--dg-text-dark);margin-bottom:4px;}
.step-desc{font-size:12.5px;color:var(--dg-text-mid);line-height:1.5;margin:0;}

/* Center card — hero card */
.enroll-center{
  background:var(--dg-crimson);border-radius:28px;
  padding:34px 30px;color:#fff;
  display:flex;flex-direction:column;
  position:relative;overflow:hidden;
  box-shadow:0 24px 60px rgba(82,2,132,.22);
}
.enroll-center::before{
  content:"";position:absolute;top:-80px;right:-60px;width:280px;height:280px;border-radius:50%;
  background:radial-gradient(circle,rgba(253,51,120,.22),transparent 60%);pointer-events:none;
}
.enroll-center::after{
  content:"";position:absolute;bottom:-60px;left:-40px;width:220px;height:220px;border-radius:50%;
  background:radial-gradient(circle,rgba(42,130,254,.18),transparent 60%);pointer-events:none;
}
.enroll-center>*{position:relative;}
.ec-eyebrow{
  font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
  color:var(--dg-pink);margin-bottom:14px;
}
.ec-title{font-size:clamp(22px,2.4vw,28px);font-weight:800;letter-spacing:-.02em;line-height:1.15;margin-bottom:10px;}
.ec-desc{font-size:13px;color:rgba(255,255,255,.72);line-height:1.5;margin-bottom:18px;}
.ec-price-row{display:flex;align-items:baseline;gap:10px;margin-bottom:18px;}
.ec-price{font-size:54px;font-weight:800;letter-spacing:-.04em;line-height:1;}
.ec-price-label{font-size:14px;font-weight:600;color:rgba(255,255,255,.65);}
.ec-feats{list-style:none;padding:0;margin:0 0 20px;}
.ec-feats li{
  display:flex;align-items:flex-start;gap:10px;padding:6px 0;
  font-size:13px;color:rgba(255,255,255,.88);line-height:1.45;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.ec-feats li:last-child{border-bottom:none;}
.ec-feats li i{color:var(--dg-navy);font-size:15px;margin-top:2px;flex-shrink:0;}
.ec-btn{
  display:flex;align-items:center;justify-content:center;gap:9px;
  width:100%;padding:14px 16px;border-radius:13px;border:none;
  background:#fff;color:var(--dg-crimson);font-family:inherit;
  font-size:16px;font-weight:800;cursor:pointer;
  transition:background .2s,transform .15s;min-height:56px;
}
.ec-btn .btn-check-icon{background:var(--dg-soft-blue);box-shadow:inset 0 0 0 1px rgba(82,2,132,.10);}
.ec-btn:hover{background:#f4f0f8;transform:translateY(-1px);}
.ec-btn:focus-visible{outline:3px solid var(--dg-navy);outline-offset:3px;}
.ec-actions{display:grid;gap:10px;margin-top:auto;}
.ec-btn-secondary{
  display:flex;align-items:center;justify-content:center;gap:9px;
  width:100%;min-height:56px;padding:14px 16px;border-radius:13px;
  border:1.5px solid rgba(255,255,255,.46);background:rgba(255,255,255,.08);
  color:#fff;font-size:14px;font-weight:700;
  transition:background .2s,border-color .2s,transform .15s;
}
.ec-btn-secondary:hover{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.72);color:#fff;transform:translateY(-1px);}
.ec-btn-secondary:focus-visible{outline:3px solid rgba(255,255,255,.52);outline-offset:3px;}
.ec-bottom-note{font-size:12px;color:rgba(255,255,255,.55);text-align:center;margin-top:12px;}

/* Right card — before enrolling */
.right-eyebrow{
  font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--dg-pink);margin-bottom:10px;
}
.right-title{font-size:18px;font-weight:800;letter-spacing:-.01em;margin-bottom:8px;}
.right-desc{font-size:12.5px;color:var(--dg-text-mid);line-height:1.5;margin-bottom:16px;}
.right-list{list-style:none;padding:0;margin:0;}
.right-list li{
  display:flex;align-items:flex-start;gap:10px;padding:10px 0;
  font-size:12.5px;color:var(--dg-text-mid);line-height:1.5;
  border-bottom:1px solid var(--dg-border);
}
.right-list li:last-child{border-bottom:none;}
.right-check{
  width:22px;height:22px;border-radius:50%;background:var(--dg-pink);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:10px;flex-shrink:0;margin-top:1px;
}
.right-terms-btn{
  display:inline-flex;align-items:center;gap:8px;
  font-size:13.5px;font-weight:700;color:var(--dg-navy);
  padding:12px 22px;border-radius:12px;border:1.5px solid rgba(42,130,254,.35);
  background:#fff;transition:background .2s,border-color .2s,color .2s;
}
.right-terms-btn:hover{background:var(--dg-soft-blue);border-color:var(--dg-navy);color:var(--dg-navy);}
.right-condition{
  padding-top:12px;border-top:1px solid var(--dg-border);
  display:flex;align-items:flex-start;gap:10px;
}
.right-condition-ico{
  width:36px;height:36px;border-radius:10px;background:var(--dg-soft-blue);color:var(--dg-navy);
  display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;
}
.right-condition p{font-size:12.5px;color:var(--dg-text-mid);line-height:1.5;margin:0;}
.right-condition a{color:var(--dg-navy);font-weight:700;}

/* ══════════════════════════════════════════
   QUÉ INCLUYE — orbital interactivo
══════════════════════════════════════════ */
.incl-textured{
  position:relative;overflow:hidden;
  background:url('https://images.unsplash.com/photo-1540420773420-3366772f4999?w=1800&h=1100&fit=crop&q=86') center/cover no-repeat;
}
.incl-textured::before{
  content:"";position:absolute;inset:0;z-index:0;
  background:linear-gradient(180deg,rgba(15,28,56,.28) 0%,rgba(15,28,56,.14) 22%,rgba(15,28,56,.08) 42%,rgba(15,28,56,.16) 100%);
  pointer-events:none;
}
.incl-textured > .container{position:relative;z-index:2;}
.incl-textured h2.section-title{
  position:relative;z-index:3;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  opacity:1!important;
  text-shadow:0 3px 18px rgba(15,28,56,.58);
  filter:none!important;
}
.orbit-stage{
  display:grid;grid-template-columns:minmax(380px,.96fr) minmax(340px,1.04fr);
  align-items:center;gap:clamp(36px,6vw,80px);
  background:#fff;
  border:1px solid rgba(255,255,255,.94);border-radius:28px;
  padding:clamp(26px,4vw,52px);box-shadow:0 24px 70px rgba(32,31,55,.12);
  position:relative;overflow:hidden;
}
@media(max-width:900px){.orbit-stage{grid-template-columns:1fr;padding:28px 22px 34px;border-radius:22px;}}

.orbit-visual{position:relative;width:min(460px,100%);aspect-ratio:1;margin:0 auto;}
.orbit-track{position:absolute;inset:15%;border:2px dashed rgba(82,2,132,.2);border-radius:50%;pointer-events:none;}
.orbit-track::after{content:"";position:absolute;inset:15%;border-radius:50%;background:radial-gradient(circle,rgba(82,2,132,.04),transparent 70%);}
.orbit-center{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;
  width:min(140px,30%);min-height:52px;padding:10px 14px;
  border:1px solid rgba(82,2,132,.12);border-radius:999px;
  display:flex;align-items:center;justify-content:center;text-align:center;
  background:rgba(255,255,255,.92);box-shadow:0 12px 32px rgba(15,28,56,.10);
  color:var(--dg-crimson);font-size:11px;font-weight:800;line-height:1.35;
  letter-spacing:.05em;text-transform:uppercase;pointer-events:none;
  transition:color .25s;
}
.orbit-center::before{content:"";width:7px;height:7px;margin-right:8px;border-radius:2px;background:var(--dg-navy);box-shadow:0 0 0 4px rgba(42,130,254,.10);flex:0 0 auto;}

.orbit-node{
  position:absolute;left:50%;top:50%;
  width:clamp(72px,9vw,104px);aspect-ratio:1;border:0;border-radius:50%;
  display:grid;place-items:center;cursor:pointer;z-index:2;overflow:hidden;
  box-shadow:0 13px 34px rgba(15,28,56,.09);
  background-size:cover;background-position:center;background-repeat:no-repeat;
  transition:left .72s cubic-bezier(.22,.8,.3,1),top .72s cubic-bezier(.22,.8,.3,1),
    transform .72s cubic-bezier(.22,.8,.3,1),background .25s,color .25s,opacity .25s,box-shadow .25s;
}
.orbit-node::after{content:"";position:absolute;inset:0;border-radius:50%;opacity:0;pointer-events:none;background:linear-gradient(180deg,rgba(15,28,56,.08) 0%,rgba(15,28,56,.20) 100%);transition:opacity .25s ease;}
.orbit-node i{font-size:clamp(26px,3.6vw,38px);pointer-events:none;position:relative;z-index:1;transition:opacity .2s ease,transform .2s ease;}
.orbit-node:hover{box-shadow:0 16px 38px rgba(15,28,56,.15);}
.orbit-node:focus-visible{outline:4px solid rgba(42,130,254,.24);outline-offset:5px;}
.orbit-node--purple{color:var(--dg-crimson);background-color:#f1eaf6;}
.orbit-node--blue{color:var(--dg-navy);background-color:var(--dg-soft-blue);}
.orbit-node--pink{color:var(--dg-pink);background-color:#fff0f6;}
.orbit-node.is-active{color:#fff;transform:translate(-50%,-50%) scale(1.14);z-index:4;opacity:1;box-shadow:0 20px 44px rgba(15,28,56,.22),inset 0 0 0 4px rgba(255,255,255,.88);}
.orbit-node.is-active::after{opacity:1;}
.orbit-node.is-active i{opacity:0;transform:scale(.84);}
.orbit-node:not(.is-active){transform:translate(-50%,-50%) scale(1);opacity:.92;background-image:none !important;}
@media(max-width:520px){.orbit-node{width:68px;}.orbit-node i{font-size:26px;}.orbit-track{inset:18%;}.orbit-center{width:120px;min-height:48px;font-size:10px;}}

.orbit-copy{min-height:280px;display:flex;flex-direction:column;justify-content:center;}
@media(max-width:900px){.orbit-copy{min-height:0;padding:20px 4px 0;}}
.orbit-swap{animation:orbitIn .5s cubic-bezier(.22,.8,.3,1);}
@keyframes orbitIn{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
.orbit-copy-title{margin:0 0 12px;font-size:clamp(20px,2.6vw,28px);font-weight:800;letter-spacing:-.03em;line-height:1.12;}
.orbit-copy-text{max-width:540px;margin:0;color:var(--dg-text-mid);font-size:clamp(13px,1.2vw,15px);font-weight:300;line-height:1.7;}
.orbit-meta{display:flex;align-items:center;gap:12px;margin-top:24px;color:var(--dg-text-light);font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;}
.orbit-current{color:var(--dg-crimson);font-size:20px;letter-spacing:0;}
.orbit-progress{width:112px;height:4px;overflow:hidden;border-radius:999px;background:#e6e8ee;}
.orbit-bar{width:16.66%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--dg-navy),var(--dg-pink));transition:width .4s ease;}
.orbit-controls{display:flex;gap:10px;margin-top:20px;align-items:center;}
.orbit-cta{
  margin-left:auto;
  background-image:linear-gradient(to right,var(--dg-crimson-hover) 50%,var(--dg-crimson) 50%);
  background-size:200% 100%;background-position:right center;
  color:#fff;border:none;font-family:inherit;font-weight:700;
  padding:12px 24px;border-radius:12px;font-size:14px;letter-spacing:-.01em;
  cursor:pointer;transition:background-position .38s ease;
  display:inline-flex;align-items:center;gap:8px;
}
.orbit-cta:hover{background-position:left center;color:#fff;}
.orbit-btn{
  width:44px;height:44px;border:1.5px solid rgba(82,2,132,.22);border-radius:50%;
  display:grid;place-items:center;background:#fff;color:var(--dg-crimson);cursor:pointer;
  transition:transform .2s,background .2s,color .2s;font-size:16px;
}
.orbit-btn:hover{transform:translateY(-2px);background:var(--dg-crimson);color:#fff;}
.orbit-btn:focus-visible{outline:3px solid rgba(42,130,254,.24);outline-offset:3px;}

/* ══════════════════════════════════════════
   TESTIMONIOS — galería flotante full width
══════════════════════════════════════════ */
.testimonial-section{
  position:relative;
  overflow:hidden;
  background:#fff;
}
.testimonial-section::before{display:none;}
.testimonial-heading{
  position:relative;
  z-index:2;
  width:min(760px,calc(100% - 40px));
  margin:0 auto 46px;
  text-align:center;
}
.testimonial-gallery{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:.82fr 1fr 1.12fr 1fr .82fr;
  align-items:center;
  gap:clamp(14px,1.7vw,28px);
  width:100%;
  padding:18px clamp(16px,2.7vw,44px) 14px;
}
.testimonial-float-card{
  position:relative;
  min-width:0;
  overflow:hidden;
  border:5px solid #fff;
  border-radius:26px;
  background:#fff;
  box-shadow:0 24px 58px rgba(15,28,56,.15);
  isolation:isolate;
  transform:translateZ(0);
  aspect-ratio:1 / 1;
  height:auto;
}
.testimonial-float-card img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  object-position:center;
  background:#fff;
  transition:transform .5s ease;
}
.testimonial-float-card:hover img{transform:scale(1.025);}
.testimonial-float-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 70%,rgba(15,28,56,.25));
  pointer-events:none;
}
.testimonial-float-card:nth-child(1){animation:reviewFloatA 8.2s ease-in-out infinite;margin-top:34px;}
.testimonial-float-card:nth-child(2){animation:reviewFloatB 9.4s ease-in-out infinite;}
.testimonial-float-card:nth-child(3){animation:reviewFloatC 10.2s ease-in-out infinite;margin-top:18px;}
.testimonial-float-card:nth-child(4){animation:reviewFloatA 9s ease-in-out infinite reverse;}
.testimonial-float-card:nth-child(5){animation:reviewFloatB 10.6s ease-in-out infinite reverse;margin-top:34px;}
.testimonial-patient-badge{
  position:absolute;
  left:14px;
  bottom:13px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:7px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.93);
  color:var(--dg-text-dark);
  box-shadow:0 8px 22px rgba(15,28,56,.12);
  font-size:10.5px;
  font-weight:700;
}
.testimonial-patient-badge i{color:var(--dg-pink);}
@keyframes reviewFloatA{
  0%,100%{transform:translateY(0) rotate(-.25deg);}
  50%{transform:translateY(-12px) rotate(.25deg);}
}
@keyframes reviewFloatB{
  0%,100%{transform:translateY(-5px) rotate(.2deg);}
  50%{transform:translateY(10px) rotate(-.2deg);}
}
@keyframes reviewFloatC{
  0%,100%{transform:translateY(3px);}
  50%{transform:translateY(-10px);}
}
.testimonial-gallery-note{
  position:relative;
  z-index:2;
  margin:12px auto 0;
  padding:0 20px;
  color:var(--dg-text-light);
  font-size:10.5px;
  line-height:1.5;
  text-align:center;
}
.testimonial-summary{
  position:relative;
  z-index:2;
  width:min(1180px,calc(100% - 36px));
  margin:8px auto 0;
  padding:20px 22px;
  border:1px solid rgba(42,130,254,.14);
  border-radius:20px;
  background:rgba(255,255,255,.78);
  box-shadow:0 16px 42px rgba(15,28,56,.08);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.testimonial-trust-signal{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}
.testimonial-trust-icon{
  width:46px;
  height:46px;
  border-radius:14px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  background:linear-gradient(135deg,var(--dg-navy),var(--dg-crimson),var(--dg-pink));
  color:#fff;
  font-size:20px;
  box-shadow:0 10px 24px rgba(82,2,132,.16);
}
.testimonial-trust-copy strong{
  display:block;
  color:var(--dg-text-dark);
  font-size:20px;
  line-height:1.1;
  letter-spacing:-.025em;
}
.testimonial-trust-copy span{
  display:block;
  margin-top:4px;
  color:var(--dg-text-mid);
  font-size:12.5px;
  line-height:1.45;
}
.testimonial-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:10px;
}
.testimonial-secondary-btn{
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  padding:14px 22px;
  border:1.5px solid rgba(42,130,254,.32);
  border-radius:9px;
  background:#fff;
  color:var(--dg-navy);
  font-size:14px;
  font-weight:700;
  transition:background .2s,border-color .2s,transform .2s;
}
.testimonial-secondary-btn:hover{
  background:var(--dg-soft-blue);
  border-color:var(--dg-navy);
  color:var(--dg-navy);
  transform:translateY(-1px);
}
@media(max-width:767.98px){
  .testimonial-summary{
    margin-top:8px;
    padding:18px;
    align-items:stretch;
    flex-direction:column;
  }
  .testimonial-actions{
    justify-content:stretch;
  }
  .testimonial-actions a{
    flex:1 1 180px;
  }
}
@media(max-width:1100px){
  .testimonial-gallery{
    grid-template-columns:.85fr 1fr 1.05fr 1fr;
  }
  .testimonial-float-card:nth-child(5){display:none;}
  .testimonial-float-card:nth-child(1),
  .testimonial-float-card:nth-child(3),
  .testimonial-float-card:nth-child(5){margin-top:18px;}
}
@media(max-width:767.98px){
  .testimonial-heading{margin-bottom:30px;}
  .testimonial-gallery{
    display:flex;
    align-items:center;
    gap:16px;
    overflow-x:auto;
    padding:12px 18px 34px;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
  }
  .testimonial-gallery::-webkit-scrollbar{display:none;}
  .testimonial-float-card,
  .testimonial-float-card:nth-child(n){
    display:block;
    flex:0 0 min(78vw,330px);
    aspect-ratio:1 / 1;
    height:auto;
    margin-top:0;
    scroll-snap-align:center;
    animation-duration:9.5s;
  }
}
@media(max-width:480px){
  .testimonial-float-card,
  .testimonial-float-card:nth-child(n){
    flex-basis:82vw;
    aspect-ratio:1 / 1;
    height:auto;
    border-radius:22px;
  }
}
@media(prefers-reduced-motion:reduce){
  .testimonial-float-card{animation:none!important;}
  .testimonial-float-card img{transition:none;}
}

/* ══════════════════════════════════════════
   FAQ — estilo de marca Dr. GIT
══════════════════════════════════════════ */
.faq-section{background:#fff!important;}
.faq-wrap{background:transparent;border:0;border-radius:0;padding:0;}
.acc-item{
  overflow:hidden;margin-bottom:22px;border:0;border-radius:16px;
  background:#f7f7f8;box-shadow:none;
  transition:background .24s ease;
}
.acc-item:last-child{margin-bottom:0;}
.acc-trigger{
  position:relative;display:flex;align-items:flex-start;gap:0;
  min-height:80px;padding:26px 70px 26px 28px;
  cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;
  background:#f7f7f8;transition:background .24s ease,color .24s ease;
}
.acc-check,.acc-chevron{display:none!important;}
.acc-label{
  flex:1;font-size:18px;font-weight:700;line-height:1.35;
  color:var(--dg-navy);transition:color .24s ease;
}
.acc-trigger::after{
  content:"+";position:absolute;top:20px;right:24px;
  width:28px;height:28px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:var(--dg-crimson);font-size:26px;font-weight:500;line-height:1;
}
.acc-item.open{background:var(--dg-navy);}
.acc-item.open .acc-trigger{background:var(--dg-navy);}
.acc-item.open .acc-label{color:#fff;}
.acc-item.open .acc-trigger::after{content:"–";color:#fff;}
.acc-body{overflow:hidden;max-height:0;background:var(--dg-navy);transition:max-height .34s cubic-bezier(.4,0,.2,1);}
.acc-item.open .acc-body{max-height:360px;}
.acc-body p{
  margin:0;padding:0 28px 26px;
  color:rgba(255,255,255,.92);background:transparent;border:0;border-radius:0;
  font-size:15px;line-height:1.75;
}
@media(max-width:767px){
  .acc-item{margin-bottom:14px;border-radius:14px;}
  .acc-trigger{min-height:68px;padding:20px 58px 20px 20px;}
  .acc-label{font-size:16px;}
  .acc-trigger::after{top:15px;right:18px;}
  .acc-body p{padding:0 20px 22px;font-size:14px;}
}


/* ══════════════════════════════════════════
   FILA DE PLATILLOS
══════════════════════════════════════════ */
.meal-strip-section{
  background:#fff;
  padding:12px 0 0;
}
.meal-strip-wrap{
  width:100%;
  margin:0;
  padding:0 10px;
}
.meal-strip-grid{
  display:grid;
  grid-template-columns:repeat(8, minmax(0,1fr));
  gap:10px;
}
.meal-tile{
  position:relative;
  aspect-ratio:1/1;
  border-radius:22px;
  overflow:hidden;
  background:#eef2f7;
  box-shadow:0 12px 28px rgba(15,28,56,.08);
}
.meal-tile img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .35s ease;
}
.meal-tile:hover img{transform:scale(1.04);}
@media(max-width:1199.98px){
  .meal-strip-grid{grid-template-columns:repeat(4, minmax(0,1fr));gap:10px;}
}
@media(max-width:767.98px){
  .meal-strip-section{padding:4px 0 0;}
  .meal-strip-wrap{padding:0 8px;}
  .meal-strip-grid{grid-template-columns:repeat(2, minmax(0,1fr));gap:8px;}
  .meal-tile{border-radius:18px;}
}

/* ══════════════════════════════════════════
   CTA FINAL
══════════════════════════════════════════ */
.cta-section{
  position:relative;
  overflow:hidden;
  padding:96px 0;
  background:
    linear-gradient(90deg,rgba(10,34,84,.96) 0%,rgba(42,130,254,.82) 46%,rgba(82,2,132,.72) 78%,rgba(253,51,120,.46) 100%),
    url('https://images.unsplash.com/photo-1490645935967-10de6ba17061?w=1800&h=1100&fit=crop&q=86') center/cover no-repeat;
}
.cta-section::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at right center,rgba(253,51,120,.22) 0%,rgba(253,51,120,0) 36%);
  pointer-events:none;
}
.cta-section .container{position:relative;z-index:1;}
.cta-final{
  width:100%;
  max-width:none;
  padding:0;
  text-align:left;
  position:relative;
  overflow:visible;
}
.cta-final::before{display:none;}
.cta-final>*{position:relative;z-index:1;}
.cta-final h2{color:#fff;font-size:clamp(28px,3.35vw,42px);font-weight:800;letter-spacing:-.032em;line-height:1.08;margin-bottom:34px;}
.cta-final p{color:rgba(255,255,255,.85);font-size:15px;max-width:540px;margin:0 0 36px;}
.cta-benefits{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  flex-wrap:wrap;
  gap:clamp(12px,1.5vw,22px);
  width:100%;
  margin:0 0 36px;
  color:#fff;
}
.cta-benefit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-width:0;
  color:rgba(255,255,255,.94);
  font-size:clamp(11px,1vw,13.5px);
  font-weight:600;
  line-height:1.35;
  white-space:nowrap;
}
.cta-benefit i{
  display:grid;
  place-items:center;
  width:27px;
  height:27px;
  flex:0 0 27px;
  border-radius:50%;
  background:rgba(255,255,255,.17);
  color:#fff;
  font-size:13px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);
}
@media(min-width:992px){
  .cta-section .container{max-width:1320px;}
  .cta-final h2{white-space:nowrap;}
  .cta-benefits{
    flex-wrap:nowrap;
    gap:clamp(10px,1.2vw,18px);
  }
  .cta-benefit{
    font-size:clamp(10.5px,.88vw,12.5px);
    gap:6px;
  }
  .cta-benefit i{
    width:25px;
    height:25px;
    flex-basis:25px;
    font-size:12px;
  }
}
@media(max-width:991.98px){
  .cta-benefits{flex-wrap:wrap;max-width:760px;}
}
@media(max-width:575.98px){
  .cta-benefits{display:grid;grid-template-columns:1fr 1fr;text-align:left;gap:12px 14px;}
  .cta-benefit{justify-content:flex-start;white-space:normal;font-size:12px;}
}
.cta-final .dg-disclaimer{color:rgba(255,255,255,.75);justify-content:center;margin-top:20px;}
.cta-final .dg-disclaimer i{color:#fff;}
.cta-final .btn-dg-primary{background-image:none;background:#fff;color:var(--dg-crimson);}
.cta-final .btn-dg-primary:hover{background:#f4f0f8;color:var(--dg-crimson-hover);}
.cta-final .cta-whatsapp-btn i{color:#25D366;font-size:18px;}
.cta-actions{
  display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:16px;
}
.cta-actions .btn-dg-primary,
.cta-actions .btn-dg-outline.light{
  min-width:260px;
  min-height:54px;
  padding:14px 30px;
  border-radius:11px;
  font-size:15px;
  font-weight:700;
}
.cta-actions .btn-dg-primary{
  background:#fff;
  color:var(--dg-crimson);
  box-shadow:0 12px 28px rgba(15,28,56,.14);
}
.cta-actions .btn-dg-primary:hover{background:#f7f4fa;color:var(--dg-crimson-hover);}
.cta-final .btn-check-icon{
  width:16px;
  height:16px;
  flex:0 0 16px;
  background:var(--dg-crimson);
  color:#fff;
  box-shadow:none;
}
.cta-final .btn-check-icon i{font-size:8px;}
.cta-contact-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  border:1.5px solid rgba(255,255,255,.46);
  background:transparent;
  color:#fff;
  transition:background .2s,border-color .2s,transform .2s;
}
.cta-contact-btn:hover{background:rgba(255,255,255,.10);border-color:#fff;color:#fff;transform:translateY(-1px);}
.cta-actions .btn-dg-outline.light i{color:#25D366;font-size:18px;}
@media(max-width:575.98px){
  .cta-actions{display:grid;grid-template-columns:1fr;}
  .cta-actions a{width:100%;}
}
@media(max-width:991.98px){
  .cta-section{
    background:
      linear-gradient(180deg,rgba(10,34,84,.96) 0%,rgba(42,130,254,.80) 55%,rgba(82,2,132,.68) 88%,rgba(253,51,120,.38) 100%),
      url('https://images.unsplash.com/photo-1490645935967-10de6ba17061?w=1800&h=1100&fit=crop&q=86') center/cover no-repeat;
  }
  .cta-final{margin:0 auto;text-align:center;}
  .cta-benefits,.cta-actions{justify-content:center;}
}
@media(max-width:575.98px){
  .cta-section{padding:72px 0;}
  .cta-final{padding:0 4px;}
}

/* ══════════════════════════════════════════
   DASHBOARD DEL RETO
══════════════════════════════════════════ */
.reinicio-dashboard-section{
  position:relative;
  overflow:hidden;
  padding:88px 0;
  background:#eef5ff;
}
.reinicio-dashboard-section::before,
.reinicio-dashboard-section::after{
  content:"";
  position:absolute;
  border-radius:50%;
  pointer-events:none;
}
.reinicio-dashboard-section::before{
  width:420px;
  height:420px;
  left:-210px;
  top:-180px;
  background:radial-gradient(circle,rgba(42,130,254,.12),rgba(42,130,254,0) 70%);
}
.reinicio-dashboard-section::after{
  width:360px;
  height:360px;
  right:-180px;
  bottom:-170px;
  background:radial-gradient(circle,rgba(253,51,120,.10),rgba(253,51,120,0) 70%);
}
.reinicio-dashboard-wrap{
  position:relative;
  z-index:1;
  max-width:1180px;
}
.rd-dashboard-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:28px;
  margin-bottom:28px;
}
.rd-dashboard-eyebrow{
  display:block;
  margin:0 0 8px;
  color:var(--dg-crimson);
  font-size:10.5px;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.rd-dashboard-title{
  margin:0;
  color:var(--dg-text-dark);
  font-size:clamp(28px,3.2vw,42px);
  font-weight:800;
  line-height:1.08;
  letter-spacing:-.035em;
}
.rd-dashboard-desc{
  max-width:520px;
  margin:10px 0 0;
  color:var(--dg-text-mid);
  font-size:14px;
  line-height:1.7;
}
.rd-dashboard-live{
  display:inline-flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  padding:9px 13px;
  border-radius:999px;
  background:#fff;
  color:var(--dg-navy);
  font-size:10.5px;
  font-weight:800;
  box-shadow:0 10px 25px rgba(42,130,254,.08);
}
.rd-dashboard-live::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:50%;
  background:#22c55e;
  box-shadow:0 0 0 5px rgba(34,197,94,.12);
  animation:rdLivePulse 1.8s ease-in-out infinite;
}
@keyframes rdLivePulse{
  0%,100%{transform:scale(.86);opacity:.75;}
  50%{transform:scale(1);opacity:1;}
}

.rd-dashboard-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);
  grid-template-areas:
    "progress checklist"
    "events calendar";
  gap:22px;
  align-items:stretch;
}
.rd-card{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(42,130,254,.08);
  border-radius:22px;
  background:#fff;
  box-shadow:0 18px 42px rgba(42,130,254,.08);
}
.rd-card-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:22px;
}
.rd-card-title{
  margin:0;
  color:var(--dg-text-dark);
  font-size:17px;
  font-weight:800;
  letter-spacing:-.02em;
}
.rd-card-kicker{
  color:var(--dg-text-light);
  font-size:9.5px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

/* Progress and countdown */
.rd-progress-card{
  grid-area:progress;
  padding:28px 30px 30px;
}
.rd-progress-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:30px;
}
.rd-status-block,
.rd-countdown-block{
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
}
.rd-meta-label{
  color:var(--dg-text-light);
  font-size:9px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.rd-status-value{
  color:var(--dg-pink);
  font-size:12px;
  font-weight:800;
}
.rd-countdown-value{
  color:var(--dg-crimson);
  font-size:12px;
  font-weight:800;
  white-space:nowrap;
}
.rd-stage-track{
  position:relative;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  align-items:start;
  gap:0;
}
.rd-stage-track::before,
.rd-stage-fill{
  content:"";
  position:absolute;
  left:10%;
  right:10%;
  top:13px;
  height:3px;
  border-radius:999px;
}
.rd-stage-track::before{
  background:#e7eaf1;
}
.rd-stage-fill{
  right:auto;
  width:0;
  background:linear-gradient(90deg,var(--dg-navy),var(--dg-crimson),var(--dg-pink));
  transition:width .7s cubic-bezier(.22,.8,.3,1);
}
.rd-stage{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  text-align:center;
}
.rd-stage-dot{
  width:28px;
  height:28px;
  border:3px solid #e7eaf1;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 0 5px #fff;
  transition:background .25s,border-color .25s,transform .25s;
}
.rd-stage-label{
  color:#9aa3b2;
  font-size:9px;
  font-weight:800;
  letter-spacing:.025em;
  text-transform:uppercase;
}
.rd-stage.is-complete .rd-stage-dot{
  border-color:var(--dg-navy);
  background:var(--dg-navy);
}
.rd-stage.is-complete .rd-stage-label{
  color:var(--dg-navy);
}
.rd-stage.is-active .rd-stage-dot{
  border-color:var(--dg-crimson);
  background:#fff;
  box-shadow:0 0 0 6px rgba(82,2,132,.10);
  transform:scale(1.08);
}
.rd-stage.is-active .rd-stage-label{
  color:var(--dg-crimson);
}
.rd-countdown-digits{
  display:flex;
  align-items:center;
  gap:7px;
  margin-top:28px;
}
.rd-countdown-unit{
  min-width:62px;
  padding:10px 9px;
  border-radius:12px;
  background:#f7f8fb;
  text-align:center;
}
.rd-countdown-number{
  display:block;
  color:var(--dg-text-dark);
  font-size:18px;
  font-weight:800;
  line-height:1;
}
.rd-countdown-name{
  display:block;
  margin-top:4px;
  color:var(--dg-text-light);
  font-size:8px;
  font-weight:800;
  letter-spacing:.07em;
  text-transform:uppercase;
}

/* Checklist */
.rd-checklist-card{
  grid-area:checklist;
  padding:28px;
}
.rd-checklist-summary{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:18px;
}
.rd-checklist-count{
  color:var(--dg-crimson);
  font-size:12px;
  font-weight:800;
}
.rd-checklist-bar{
  flex:1;
  height:5px;
  overflow:hidden;
  border-radius:999px;
  background:#eef0f5;
}
.rd-checklist-fill{
  width:0;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,var(--dg-navy),var(--dg-pink));
  transition:width .35s ease;
}
.rd-checklist{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.rd-check-item{
  display:grid;
  grid-template-columns:24px minmax(0,1fr);
  align-items:start;
  gap:10px;
  padding:11px 0;
  border-bottom:1px solid rgba(42,130,254,.07);
  cursor:pointer;
}
.rd-check-item:last-child{
  border-bottom:0;
}
.rd-check-item input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.rd-check-box{
  width:20px;
  height:20px;
  border:1.5px solid #ccd3df;
  border-radius:6px;
  display:grid;
  place-items:center;
  color:transparent;
  font-size:11px;
  transition:background .2s,border-color .2s,color .2s;
}
.rd-check-copy{
  color:var(--dg-text-mid);
  font-size:12px;
  font-weight:600;
  line-height:1.45;
  transition:color .2s,opacity .2s;
}
.rd-check-item input:checked + .rd-check-box{
  border-color:var(--dg-navy);
  background:var(--dg-navy);
  color:#fff;
}
.rd-check-item input:checked ~ .rd-check-copy{
  color:#9aa3b2;
  text-decoration:line-through;
  opacity:.8;
}

/* Upcoming events */
.rd-events-card{
  grid-area:events;
  padding:28px 30px;
}
.rd-events-list{
  display:flex;
  flex-direction:column;
}
.rd-event-row{
  display:grid;
  grid-template-columns:52px 12px minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  min-height:66px;
  border-bottom:1px solid rgba(42,130,254,.07);
}
.rd-event-row:last-child{
  border-bottom:0;
}
.rd-event-date{
  text-align:center;
}
.rd-event-day{
  display:block;
  color:var(--dg-text-dark);
  font-size:17px;
  font-weight:800;
  line-height:1;
}
.rd-event-month{
  display:block;
  margin-top:4px;
  color:var(--dg-text-light);
  font-size:8px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.rd-event-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  background:var(--rd-event-color,var(--dg-navy));
  box-shadow:0 0 0 4px color-mix(in srgb,var(--rd-event-color,var(--dg-navy)) 15%,transparent);
}
.rd-event-title{
  margin:0;
  color:var(--dg-text-dark);
  font-size:12.5px;
  font-weight:800;
}
.rd-event-sub{
  margin:3px 0 0;
  color:var(--dg-text-light);
  font-size:10px;
}
.rd-event-badge{
  padding:6px 8px;
  border-radius:999px;
  background:#f6f7fa;
  color:var(--dg-text-mid);
  font-size:8.5px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.rd-events-empty{
  padding:28px 0 12px;
  color:var(--dg-text-mid);
  font-size:13px;
  text-align:center;
}

/* Small calendar */
.rd-calendar-card{
  grid-area:calendar;
  padding:26px;
}
.rd-mini-calendar-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:17px;
}
.rd-mini-month{
  color:var(--dg-text-dark);
  font-size:16px;
  font-weight:800;
}
.rd-mini-year{
  color:var(--dg-text-light);
  font-size:10px;
  font-weight:800;
}
.rd-mini-weekdays,
.rd-mini-calendar{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:5px;
}
.rd-mini-weekdays{
  margin-bottom:7px;
}
.rd-mini-weekday{
  color:#a1a9b7;
  font-size:8px;
  font-weight:800;
  text-align:center;
}
.rd-mini-day{
  position:relative;
  width:100%;
  aspect-ratio:1;
  border:0;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:transparent;
  color:#707b8d;
  font-family:inherit;
  font-size:10px;
  font-weight:700;
}
button.rd-mini-day{
  cursor:pointer;
}
.rd-mini-day.is-empty{
  pointer-events:none;
}
.rd-mini-day.is-today:not(.has-event){
  color:var(--dg-crimson);
  box-shadow:inset 0 0 0 1.5px rgba(82,2,132,.45);
}
.rd-mini-day.has-event{
  color:#fff;
  background:var(--rd-day-color,var(--dg-navy));
  box-shadow:0 5px 12px color-mix(in srgb,var(--rd-day-color,var(--dg-navy)) 24%,transparent);
}
.rd-mini-day.has-event::after{
  content:"";
  position:absolute;
  inset:-3px;
  border:1.5px solid var(--rd-day-color,var(--dg-navy));
  border-radius:50%;
  opacity:.6;
  animation:rdCalendarPulse 2.1s ease-out infinite;
}
.rd-mini-day.is-menu{
  --rd-day-color:var(--dg-navy);
}
.rd-mini-day.is-live{
  --rd-day-color:var(--dg-pink);
}
.rd-mini-day.is-start-live{
  --rd-day-color:var(--dg-crimson);
  background:linear-gradient(145deg,var(--dg-crimson),var(--dg-pink));
}
@keyframes rdCalendarPulse{
  0%{transform:scale(.88);opacity:.65;}
  72%,100%{transform:scale(1.28);opacity:0;}
}
.rd-mini-legend{
  display:flex;
  flex-wrap:wrap;
  gap:8px 12px;
  margin-top:18px;
}
.rd-mini-legend-item{
  display:inline-flex;
  align-items:center;
  gap:5px;
  color:var(--dg-text-light);
  font-size:8.5px;
  font-weight:700;
}
.rd-mini-legend-dot{
  width:7px;
  height:7px;
  border-radius:50%;
}
.rd-mini-calendar-note{
  min-height:36px;
  margin-top:14px;
  padding:9px 10px;
  border-radius:10px;
  background:#f7f8fb;
  color:var(--dg-text-mid);
  font-size:9.5px;
  line-height:1.45;
}

@media(max-width:991px){
  .rd-dashboard-grid{
    grid-template-columns:1fr;
    grid-template-areas:
      "progress"
      "calendar"
      "events"
      "checklist";
  }
}
@media(max-width:767px){
  .reinicio-dashboard-section{
    padding:64px 0;
  }
  .rd-dashboard-head{
    display:block;
  }
  .rd-dashboard-live{
    margin-top:16px;
  }
  .rd-progress-card,
  .rd-events-card,
  .rd-checklist-card,
  .rd-calendar-card{
    padding:22px 18px;
    border-radius:18px;
  }
  .rd-progress-meta{
    display:block;
  }
  .rd-countdown-block{
    margin-top:10px;
  }
  .rd-stage-label{
    font-size:7.5px;
  }
  .rd-countdown-digits{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:6px;
  }
  .rd-countdown-unit{
    min-width:0;
  }
}
@media(max-width:480px){
  .rd-stage-track{
    grid-template-columns:repeat(5,68px);
    width:max-content;
  }
  .rd-stage-scroll{
    overflow-x:auto;
    padding:7px 4px 12px;
  }
  .rd-event-row{
    grid-template-columns:44px 10px minmax(0,1fr);
  }
  .rd-event-badge{
    display:none;
  }
}


/* ══════════════════════════════════════════
   DASHBOARD BENTO · AJUSTES CORREGIDOS
══════════════════════════════════════════ */
.rd-dashboard-head{
  display:block;
}
.rd-dashboard-eyebrow{
  color:var(--dg-pink);
}
.rd-dashboard-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(310px,.65fr);
  grid-template-areas:
    "progress progress"
    "events checklist"
    "events calendar";
  grid-template-rows:auto auto auto;
  gap:22px;
  align-items:stretch;
}
.rd-progress-card{
  grid-area:progress;
}
.rd-events-card{
  grid-area:events;
  min-height:540px;
}
.rd-checklist-card{
  grid-area:checklist;
}
.rd-calendar-card{
  grid-area:calendar;
}

/* El estado y la cuenta regresiva usan azul y peso regular. */
.rd-status-value,
.rd-countdown-value{
  color:var(--dg-navy);
  font-weight:500;
}

/* El rosa reemplaza el morado dentro del dashboard. */
.rd-stage-fill,
.rd-checklist-fill{
  background:linear-gradient(90deg,var(--dg-navy),var(--dg-pink));
}
.rd-stage.is-active .rd-stage-dot{
  border-color:var(--dg-pink);
  box-shadow:0 0 0 6px rgba(253,51,120,.12);
}
.rd-stage.is-active .rd-stage-label,
.rd-checklist-count{
  color:var(--dg-pink);
}
.rd-mini-day.is-today:not(.has-event){
  color:var(--dg-pink);
  box-shadow:inset 0 0 0 1.5px rgba(253,51,120,.50);
}
.rd-mini-day.is-start-live{
  --rd-day-color:var(--dg-pink);
  background:var(--dg-pink);
}

/* El contador ocupa el ancho completo del card. */
.rd-countdown-digits{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  width:100%;
  margin:32px 0 0;
}
.rd-countdown-unit{
  min-width:0;
  padding:18px 14px;
  border-radius:14px;
}
.rd-countdown-number{
  font-size:clamp(24px,2.7vw,32px);
}

/* Más aire vertical para la lista de próximos eventos. */
.rd-event-row{
  min-height:82px;
}

@media(max-width:991px){
  .rd-dashboard-grid{
    grid-template-columns:1fr;
    grid-template-areas:
      "progress"
      "calendar"
      "events"
      "checklist";
    grid-template-rows:auto;
  }
  .rd-events-card{
    min-height:0;
  }
}
@media(max-width:575px){
  .rd-countdown-digits{
    gap:7px;
  }
  .rd-countdown-unit{
    padding:14px 7px;
  }
  .rd-countdown-number{
    font-size:21px;
  }
}


/* ══════════════════════════════════════════
   CHECKLIST + TIPS DEL CALENDARIO
══════════════════════════════════════════ */
.rd-checklist-reason{
  margin:-10px 0 18px;
  color:var(--dg-text-mid);
  font-size:11px;
  line-height:1.55;
}
.rd-mini-day.is-next-month{
  background:#f1f3f6;
  color:#b4bbc6;
}
.rd-mini-day.is-next-month.has-event{
  color:#7f8998;
  background:#edf0f4;
  box-shadow:inset 0 0 0 1.5px var(--rd-day-color,var(--dg-navy));
}
.rd-mini-day.is-next-month.has-event::after{
  border-color:var(--rd-day-color,var(--dg-navy));
}
.rd-mini-day.is-end{
  --rd-day-color:var(--dg-pink);
}
.rd-mini-day.is-selected{
  transform:scale(1.08);
  box-shadow:0 0 0 3px #fff,0 0 0 5px rgba(42,130,254,.18);
}
.rd-mini-day.is-start-live.is-selected,
.rd-mini-day.is-live.is-selected,
.rd-mini-day.is-end.is-selected{
  box-shadow:0 0 0 3px #fff,0 0 0 5px rgba(253,51,120,.18);
}
.rd-mini-calendar-note{
  min-height:0;
  margin-top:14px;
  padding:10px 11px;
  border-radius:11px;
  background:#f7f8fb;
  color:var(--dg-text-dark);
  font-size:10px;
  font-weight:800;
  line-height:1.45;
}
.rd-mini-calendar-tip{
  display:flex;
  align-items:flex-start;
  gap:9px;
  margin-top:9px;
  padding:11px;
  border-radius:11px;
  background:#eef5ff;
  color:var(--dg-text-mid);
  font-size:9.5px;
  line-height:1.5;
}
.rd-mini-calendar-tip i{
  color:var(--dg-navy);
  font-size:13px;
  margin-top:1px;
  flex:0 0 auto;
}


/* ══════════════════════════════════════════
   CHECKLIST DEMO + EVENTOS PASADOS
══════════════════════════════════════════ */
.rd-check-item.is-demo .rd-check-box{
  animation:rdChecklistDemo 1.35s ease both;
}
.rd-check-item.is-demo .rd-check-box i{
  animation:rdChecklistIconDemo 1.35s ease both;
}
@keyframes rdChecklistDemo{
  0%,100%{
    border-color:#ccd3df;
    background:#fff;
    color:transparent;
    transform:scale(1);
  }
  18%{
    transform:scale(.88);
  }
  38%,70%{
    border-color:var(--dg-pink);
    background:var(--dg-pink);
    color:#fff;
    transform:scale(1.08);
    box-shadow:0 0 0 6px rgba(253,51,120,.12);
  }
}
@keyframes rdChecklistIconDemo{
  0%,24%,100%{
    opacity:0;
    transform:scale(.45) rotate(-18deg);
  }
  42%,70%{
    opacity:1;
    transform:scale(1) rotate(0);
  }
}
.rd-event-row.is-past{
  opacity:.48;
  filter:grayscale(1);
}
.rd-event-row.is-past .rd-event-title{
  text-decoration:line-through;
}
.rd-event-row.is-past .rd-event-badge{
  background:#eef0f3;
  color:#8d96a5;
}


/* Acceso directo desde el primer paso del checklist */
.rd-check-item.has-check-link{
  grid-template-columns:24px minmax(0,1fr) 34px;
  align-items:center;
}
.rd-check-link{
  width:32px;
  height:32px;
  border-radius:50%;
  display:grid;
  place-items:center;
  justify-self:end;
  background:#eef5ff;
  color:var(--dg-navy);
  text-decoration:none;
  font-size:14px;
  box-shadow:inset 0 0 0 1px rgba(42,130,254,.12);
  transition:background .2s,color .2s,transform .2s,box-shadow .2s;
}
.rd-check-link:hover,
.rd-check-link:focus-visible{
  background:var(--dg-navy);
  color:#fff;
  transform:translateX(3px);
  box-shadow:0 8px 18px rgba(42,130,254,.20);
}
.rd-check-link:focus-visible{
  outline:3px solid rgba(42,130,254,.20);
  outline-offset:3px;
}



/* CHATBOT TELEWORKS ORIGINAL */
.wa-bubble-btn {
      position: fixed;
      right: 24px;
      bottom: 24px;
      z-index: 2000;
      width: 58px;
      height: 58px;
      padding: 0;
      border: 0;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      background: var(--tw-green);
      color: #fff;
      font-size: 27px;
      cursor: pointer;
      box-shadow: 0 12px 28px rgba(37, 211, 102, 0.36);
      transition: transform 0.2s ease, box-shadow 0.2s ease;
    }

    .wa-bubble-btn:hover {
      transform: scale(1.06);
      box-shadow: 0 16px 34px rgba(37, 211, 102, 0.44);
    }

    .wa-badge {
      position: absolute;
      top: -5px;
      right: -4px;
      width: 20px;
      height: 20px;
      border-radius: 50%;
      display: none;
      align-items: center;
      justify-content: center;
      background: #e53e3e;
      color: #fff;
      font-size: 10px;
      font-weight: 700;
    }

    .wa-badge.show {
      display: flex;
      animation: waBadgeIn 0.45s ease;
    }

    @keyframes waBadgeIn {
      0% { opacity: 0; transform: scale(0.5); }
      65% { opacity: 1; transform: scale(1.2); }
      100% { opacity: 1; transform: scale(1); }
    }

    .wa-panel {
      position: fixed;
      right: 24px;
      bottom: 94px;
      z-index: 1999;
      width: min(360px, calc(100vw - 28px));
      border-radius: 26px;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      background: #fff;
      box-shadow: 0 24px 68px rgba(5, 18, 32, 0.25);
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transform: translateY(16px) scale(0.985);
      transform-origin: bottom right;
      transition:
        opacity 0.25s ease,
        visibility 0.25s ease,
        transform 0.25s cubic-bezier(0.22, 1, 0.36, 1);
    }

    .wa-panel.open {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
      transform: none;
    }

    .wa-panel-header {
      min-height: 76px;
      padding: 15px 17px;
      display: flex;
      align-items: center;
      gap: 12px;
      background: linear-gradient(135deg, var(--tw-dark), var(--tw-blue));
      color: #fff;
    }

    .wa-avatar {
      width: 42px;
      height: 42px;
      flex: 0 0 42px;
      padding: 5px;
      border-radius: 50%;
      display: grid;
      place-items: center;
      overflow: hidden;
      background: #fff;
    }

    .wa-avatar img {
      width: 100%;
      height: 100%;
      object-fit: contain;
    }

    .wa-header-copy {
      flex: 1;
      min-width: 0;
    }

    .wa-name {
      font-family: var(--tw-display);
      font-size: 14px;
      font-weight: 800;
      line-height: 1.2;
    }

    .wa-status {
      margin-top: 3px;
      color: rgba(255, 255, 255, 0.74);
      font-size: 10.5px;
    }

    .wa-close {
      width: 31px;
      height: 31px;
      flex: 0 0 31px;
      border: 1px solid rgba(255, 255, 255, 0.28);
      border-radius: 50%;
      display: grid;
      place-items: center;
      background: rgba(255, 255, 255, 0.1);
      color: #fff;
      cursor: pointer;
      transition: background 0.2s ease;
    }

    .wa-close:hover {
      background: rgba(255, 255, 255, 0.2);
    }

    .wa-body {
      padding: 20px;
      display: flex;
      flex-direction: column;
      gap: 10px;
      background: var(--tw-bg);
    }

    .wa-bubble-msg {
      align-self: flex-start;
      max-width: 82%;
      padding: 11px 14px;
      border-radius: 4px 17px 17px 17px;
      background: #fff;
      color: var(--tw-dark);
      font-size: 12px;
      line-height: 1.5;
      box-shadow: 0 8px 20px rgba(13, 47, 79, 0.08);
    }

    .wa-selector-row {
      display: flex;
      align-items: center;
      gap: 9px;
    }

    .wa-back-bubble {
      display: none;
      width: 38px;
      height: 38px;
      flex: 0 0 38px;
      border: 0;
      border-radius: 50%;
      place-items: center;
      background: #fff;
      color: var(--tw-dark);
      cursor: pointer;
      box-shadow: 0 8px 18px rgba(5, 18, 32, 0.08);
    }

    .wa-panel.wa-topic-selected .wa-back-bubble {
      display: grid;
    }

    .wa-quick {
      position: relative;
      width: min(86%, 268px);
      margin-left: auto;
      padding: 7px;
      border-radius: 18px 18px 4px 18px;
      background: var(--tw-chat-green);
      box-shadow: 0 8px 18px rgba(5, 18, 32, 0.08);
    }

    .wa-panel.wa-topic-selected .wa-quick {
      width: auto;
      flex: 1;
      margin: 0;
      padding: 0;
      background: transparent;
      box-shadow: none;
    }

    .wa-quick::after {
      content: "";
      position: absolute;
      right: -5px;
      top: 16px;
      width: 10px;
      height: 10px;
      border-radius: 2px;
      background: var(--tw-chat-green);
      transform: rotate(45deg);
    }

    .wa-panel.wa-topic-selected .wa-quick::after {
      display: none;
    }

    .wa-quick-trigger {
      width: 100%;
      min-height: 40px;
      padding: 6px 7px;
      border: 0;
      border-radius: 13px;
      display: flex;
      align-items: center;
      gap: 8px;
      background: transparent;
      color: #075e54;
      text-align: left;
      cursor: pointer;
    }

    .wa-quick-trigger:hover,
    .wa-quick.is-open .wa-quick-trigger {
      background: rgba(255, 255, 255, 0.27);
    }

    .wa-panel.wa-topic-selected .wa-quick-trigger {
      min-height: 42px;
      padding: 7px 10px 7px 7px;
      border-radius: 18px 18px 4px 18px;
      background: var(--tw-chat-green);
      box-shadow: 0 8px 18px rgba(5, 18, 32, 0.08);
      cursor: default;
      pointer-events: none;
    }

    .wa-quick-trigger-icon {
      width: 28px;
      height: 28px;
      flex: 0 0 28px;
      border-radius: 50%;
      display: grid;
      place-items: center;
      background: var(--tw-green);
      color: #fff;
      font-size: 11px;
    }

    .wa-quick-trigger-text {
      flex: 1;
      min-width: 0;
      color: #075e54;
      font-size: 11px;
      font-weight: 500;
      line-height: 1.25;
    }

    .wa-quick-trigger-arrow {
      color: #77998b;
      font-size: 10px;
      transition: transform 0.2s ease;
    }

    .wa-quick.is-open .wa-quick-trigger-arrow {
      transform: rotate(180deg);
    }

    .wa-panel.wa-topic-selected .wa-quick-trigger-arrow {
      display: none;
    }

    .wa-quick-menu {
      display: grid;
      gap: 5px;
      max-height: 0;
      padding: 0;
      overflow: hidden;
      opacity: 0;
      pointer-events: none;
      transition: max-height 0.25s ease, opacity 0.2s ease, padding 0.2s ease;
    }

    .wa-quick.is-open .wa-quick-menu {
      max-height: 190px;
      padding-top: 5px;
      opacity: 1;
      pointer-events: auto;
    }

    .wa-panel.wa-topic-selected .wa-quick-menu {
      display: none;
    }

    .wa-quick-btn {
      width: 100%;
      min-height: 36px;
      padding: 5px 8px;
      border: 0;
      border-radius: 11px;
      display: flex;
      align-items: center;
      gap: 8px;
      background: #fff;
      color: var(--tw-text);
      text-align: left;
      cursor: pointer;
      transition: transform 0.18s ease, background 0.18s ease;
    }

    .wa-quick-btn:hover {
      transform: translateX(2px);
      background: #f5fff7;
    }

    .wa-quick-btn i {
      width: 24px;
      height: 24px;
      flex: 0 0 24px;
      border-radius: 50%;
      display: grid;
      place-items: center;
      background: rgba(37, 211, 102, 0.13);
      color: #0c7a43;
      font-size: 10px;
    }

    .wa-quick-label {
      font-size: 10.5px;
      font-weight: 500;
      line-height: 1.2;
    }

    .wa-form {
      display: none;
      padding: 15px 19px 18px;
      background: #fff;
      border-top: 1px solid rgba(13, 47, 79, 0.07);
    }

    .wa-panel.wa-topic-selected .wa-form {
      display: grid;
      gap: 9px;
      animation: waFormIn 0.24s ease;
    }

    @keyframes waFormIn {
      from { opacity: 0; transform: translateY(-5px); }
      to { opacity: 1; transform: none; }
    }

    .wa-form input,
    .wa-form textarea {
      width: 100%;
      border: 1px solid #dce3ea;
      border-radius: 11px;
      background: #f4f6f8;
      color: var(--tw-dark);
      outline: none;
      font-size: 11px;
      transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
    }

    .wa-form input {
      height: 39px;
      padding: 0 11px;
    }

    .wa-form textarea {
      min-height: 66px;
      padding: 10px 11px;
      resize: vertical;
      line-height: 1.45;
    }

    .wa-form input:focus,
    .wa-form textarea:focus {
      border-color: var(--tw-blue);
      background: #fff;
      box-shadow: 0 0 0 3px rgba(30, 111, 174, 0.1);
    }

    .wa-submit {
      min-height: 43px;
      border: 0;
      border-radius: 999px;
      background: var(--tw-green);
      color: #fff;
      font-family: var(--tw-display);
      font-size: 11px;
      font-weight: 700;
      cursor: pointer;
      transition: background 0.2s ease;
    }

    .wa-submit:hover {
      background: #1ebe5d;
    }

    @media (max-width: 560px) {
      .wa-bubble-btn {
        right: 16px;
        bottom: 16px;
      }

      .wa-panel {
        right: 12px;
        bottom: 84px;
        width: calc(100vw - 24px);
        border-radius: 22px;
      }
    }

    @media (prefers-reduced-motion: reduce) {
      .wa-bubble-btn,
      .wa-panel,
      .wa-badge,
      .wa-form {
        animation: none !important;
        transition: none !important;
      }
    }

/* ══════════════════════════════════════════
   CHATBOT DR. GIT · BRAND OVERRIDES
══════════════════════════════════════════ */
.wa-bubble-btn{
  background:#25D366 !important;
  background-image:none !important;
  opacity:1 !important;
  filter:none !important;
  mix-blend-mode:normal !important;
  isolation:isolate;
}
.wa-bubble-btn::before,
.wa-bubble-btn::after{
  content:none !important;
  display:none !important;
}
.wa-bubble-btn i{
  position:relative;
  z-index:2;
  color:#fff !important;
  opacity:1 !important;
  filter:none !important;
}
.wa-panel-header{
  background:linear-gradient(135deg,#520284 0%,#2a82fe 100%) !important;
}
.wa-avatar{
  padding:4px !important;
  background:#fff !important;
}
.wa-avatar img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
}
.wa-quick{
  background:#eaf3ff !important;
}
.wa-quick::after{
  background:#eaf3ff !important;
}
.wa-quick-trigger{
  color:#520284 !important;
}
.wa-quick-trigger-icon{
  background:#520284 !important;
  color:#fff !important;
}
.wa-quick-trigger-text{
  color:#520284 !important;
}
.wa-quick-btn{
  color:#0f1c38 !important;
}
.wa-quick-btn:hover{
  background:#f7f1fb !important;
}
.wa-quick-btn:nth-child(1) i,
.wa-quick-btn:nth-child(4) i{
  background:rgba(42,130,254,.13) !important;
  color:#2a82fe !important;
}
.wa-quick-btn:nth-child(2) i,
.wa-quick-btn:nth-child(5) i{
  background:rgba(82,2,132,.11) !important;
  color:#520284 !important;
}
.wa-quick-btn:nth-child(3) i{
  background:rgba(253,51,120,.12) !important;
  color:#fd3378 !important;
}
.wa-submit{
  background:#25D366 !important;
  color:#fff !important;
}
.wa-submit:hover{
  background:#1ebe5d !important;
}
.wa-form input:focus,
.wa-form textarea:focus{
  border-color:#2a82fe !important;
  box-shadow:0 0 0 3px rgba(42,130,254,.10) !important;
}


/* ══════════════════════════════════════════
   CHATBOT DR. GIT · AJUSTES V2
══════════════════════════════════════════ */
.wa-panel{
  max-height:min(690px,calc(100vh - 118px)) !important;
}
.wa-avatar{
  padding:3px !important;
}
.wa-avatar img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
}
.wa-quick{
  background:#dcf8c6 !important;
}
.wa-quick::after{
  background:#dcf8c6 !important;
}
.wa-quick-trigger{
  color:#075e54 !important;
}
.wa-quick-trigger-icon{
  background:#25D366 !important;
  color:#fff !important;
}
.wa-quick-trigger-text{
  color:#075e54 !important;
}
.wa-quick.is-open .wa-quick-trigger{
  background:rgba(255,255,255,.28) !important;
}
.wa-quick-menu{
  max-height:0 !important;
}
.wa-quick.is-open .wa-quick-menu{
  max-height:260px !important;
}
.wa-quick-btn i{
  font-weight:900 !important;
}
.wa-bubble-btn{
  background:#25D366 !important;
  background-color:#25D366 !important;
  background-image:none !important;
  opacity:1 !important;
  filter:none !important;
  box-shadow:0 12px 28px rgba(37,211,102,.36) !important;
}
.wa-bubble-btn:hover{
  background:#20c45d !important;
}


/* ══════════════════════════════════════════
   ÍCONOS SÓLIDOS · HERO + QUÉ INCLUYE
══════════════════════════════════════════ */
.hero .hero-bullets i,
.hero .plate-chip i,
#incluye .orbit-node i{
  font-style:normal;
  line-height:1;
}
.hero .hero-bullets i{
  width:20px;
  text-align:center;
}
#incluye .orbit-node i{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}


/* ══════════════════════════════════════════
   RESULTADO REPORTADO · PARTICIPANTES ANTERIORES
══════════════════════════════════════════ */
.reported-result{
  width:min(920px,100%);
  margin:30px auto 0;
  padding:18px 22px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:18px;
  display:grid;
  grid-template-columns:46px auto 1px minmax(260px,1fr);
  align-items:center;
  gap:18px;
  color:#fff;
  background:rgba(15,28,56,.32);
  box-shadow:0 16px 38px rgba(15,28,56,.16);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
}
.reported-result-icon{
  width:46px;
  height:46px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.14);
  color:#fff;
  font-size:18px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);
}
.reported-result-number{
  display:flex;
  flex-direction:column;
  min-width:180px;
}
.reported-result-number strong{
  color:#fff;
  font-size:clamp(23px,3vw,34px);
  font-weight:800;
  line-height:1;
  letter-spacing:-.04em;
}
.reported-result-number span{
  margin-top:5px;
  color:rgba(255,255,255,.82);
  font-size:10px;
  font-weight:700;
  line-height:1.35;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.reported-result-divider{
  width:1px;
  height:54px;
  background:rgba(255,255,255,.26);
}
.reported-result-copy p{
  margin:0;
  color:#fff;
  font-size:12px;
  font-weight:500;
  line-height:1.55;
}
.reported-result-copy small{
  display:block;
  margin-top:4px;
  color:rgba(255,255,255,.72);
  font-size:9.5px;
  line-height:1.45;
}
@media(max-width:720px){
  .reported-result{
    grid-template-columns:42px minmax(0,1fr);
    gap:12px 14px;
    padding:17px;
  }
  .reported-result-icon{
    width:42px;
    height:42px;
  }
  .reported-result-number{
    min-width:0;
  }
  .reported-result-divider{
    display:none;
  }
  .reported-result-copy{
    grid-column:1 / -1;
    padding-top:2px;
  }
}


/* ══════════════════════════════════════════
   TIPOGRAFÍA GLOBAL · PLUS JAKARTA SANS
══════════════════════════════════════════ */
:root{
  --font-family-sans-serif:"Plus Jakarta Sans",sans-serif;
  --dg-font:"Plus Jakarta Sans",sans-serif;
  --tw-font:"Plus Jakarta Sans",sans-serif;
  --tw-display:"Plus Jakarta Sans",sans-serif;
}
html,
body,
button,
input,
textarea,
select,
option,
label,
a,
span,
p,
small,
strong,
em,
b,
h1,
h2,
h3,
h4,
h5,
h6,
li,
div{
  font-family:"Plus Jakarta Sans",sans-serif !important;
}


/* ══════════════════════════════════════════
   CONTENIDO FINAL · AJUSTES DE PRESENTACIÓN
══════════════════════════════════════════ */
.step-inline-link,
.payment-shake-trigger{
  color:var(--dg-navy);
  font-weight:800;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}
.payment-shake-trigger{
  cursor:pointer;
}
.payment-shake-trigger:focus-visible{
  outline:3px solid rgba(42,130,254,.20);
  outline-offset:3px;
  border-radius:4px;
}
.ec-btn.is-shaking{
  animation:enrollButtonShake .58s cubic-bezier(.36,.07,.19,.97);
}
@keyframes enrollButtonShake{
  0%,100%{transform:translateX(0);}
  15%{transform:translateX(-8px) rotate(-.5deg);}
  30%{transform:translateX(7px) rotate(.5deg);}
  45%{transform:translateX(-5px);}
  60%{transform:translateX(4px);}
  75%{transform:translateX(-2px);}
}
.orbit-detail-list{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:9px;
}
.orbit-detail-list li{
  position:relative;
  padding-left:20px;
  color:var(--dg-text-mid);
  font-size:clamp(12.5px,1.15vw,14px);
  font-weight:400;
  line-height:1.52;
}
.orbit-detail-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:.55em;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--dg-navy);
  box-shadow:0 0 0 4px rgba(42,130,254,.10);
}
.orbit-detail-list a{
  color:var(--dg-crimson);
  font-weight:700;
  text-decoration:underline;
  text-underline-offset:3px;
}
.reported-result-number{
  min-width:230px;
}
.reported-result-number strong{
  font-size:clamp(19px,2.5vw,29px);
  line-height:1.08;
}
.acc-body a{
  color:#fff;
  font-weight:800;
  text-decoration:underline;
  text-underline-offset:3px;
}
@media(max-width:720px){
  .reported-result-number{
    min-width:0;
  }
}

/* AJUSTES SOLICITADOS */
.right-list{gap:10px;}
.rd-mini-wa-btn{
  margin-top:12px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  padding:11px 16px;
}
.rd-mini-wa-btn i{color:#25D366;font-size:15px;}
.reported-result-number{min-width:250px;}
.reported-result-copy p{max-width:560px;}

/* AJUSTES FINALES DE COPY, CHECKLIST Y CALENDARIO */
.reported-result-number{
  justify-content:center;
}
.reported-result-number strong{
  margin:0;
}
.rd-mini-calendar-tip{
  margin-bottom:0;
}
.rd-calendar-card > .rd-mini-wa-btn{
  margin:14px 0 0;
  width:100%;
  justify-content:center;
  border-color:#25D366 !important;
  color:#075e54 !important;
  background:#fff !important;
}
.rd-calendar-card > .rd-mini-wa-btn:hover{
  background:#f1fff6 !important;
}
.rd-calendar-card > .rd-mini-wa-btn i{
  color:#25D366 !important;
}

/* AJUSTES DE ENCABEZADO DEL DASHBOARD */
#panel-reto .rd-dashboard-eyebrow,
#panel-reto .rd-dashboard-title,
#panel-reto .rd-dashboard-desc{
  text-align:center !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
#panel-reto .rd-dashboard-desc{
  max-width:760px;
}
