/* VisualEd home redesign. Loaded only by index.html. */
:root {
  --ve-ink: #101820;
  --ve-blue: #003b78;
  --ve-led: #00aeef;
  --ve-sky: #effaff;
  --ve-line: #ccefff;
  --ve-shadow: 0 18px 44px rgba(0, 59, 120, .09);
}

body {
  background: #f7fcff;
  color: var(--ve-ink);
}

header { background: rgba(255, 255, 255, .97); box-shadow: 0 4px 24px rgba(0, 59, 120, .035); }
header nav { max-width: 1560px; }
header .nav-links a { color: var(--ve-blue); font-weight: 600; }
header .nav-links li:first-child a { color: var(--ve-led); }
header .nav-links li:first-child a::after { background: var(--ve-led); transform: scaleX(1); }
header .btn-chat { border-radius: 999px; box-shadow: 0 8px 22px rgba(0, 196, 93, .22); }

/* Light panels and the LED dot pattern tie the seven references together. */
#inicio, #ubicacion, #planes, #servicios, #testimonios, #contacto, #faqs {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
#inicio::before, #ubicacion::before, #planes::before, #servicios::before,
#testimonios::after, #contacto::before, #faqs::before {
  content: '';
  position: absolute;
  z-index: -1;
  width: 160px;
  height: 160px;
  left: 4%;
  top: 8%;
  background-image: radial-gradient(circle, rgba(0, 174, 239, .26) 2px, transparent 2.5px);
  background-size: 20px 20px;
  mask-image: linear-gradient(135deg, #000 35%, transparent 90%);
  pointer-events: none;
}
#planes::before, #testimonios::after, #faqs::before { left: auto; right: 3%; }
#inicio { background: linear-gradient(120deg, #f8fdff 0%, #e9f9ff 65%, #f8fdff 100%); }
#inicio .hero-grid { max-width: 1660px; gap: clamp(22px, 2vw, 40px); }
#inicio .hero-left {
  background: rgba(255,255,255,.88) !important;
  border: 1px solid rgba(255,255,255,.98) !important;
  border-radius: 34px !important;
  box-shadow: 0 20px 55px rgba(0, 109, 168, .075);
}
#inicio .hero-tag { font-size: .82rem; background: #e7f8ff; border-color: var(--ve-line); color: var(--ve-led); }
#inicio h1.hero-title { font-size: clamp(2.75rem, 3.55vw, 4.25rem) !important; line-height: 1 !important; letter-spacing: -.055em !important; color: var(--ve-ink) !important; }
#inicio h1.hero-title .resaltado-localizacion { color: var(--ve-led); }
#inicio .hero-location-badge { color: var(--ve-blue); font-weight: 800; }
#inicio .ve-hero-benefits { display: grid; grid-template-columns: minmax(0, 1.36fr) repeat(2, minmax(0, 1fr)); align-items: center; gap: 0; background: #edfbff; border: 1px solid #d8f2ff; border-radius: 22px; padding: 19px 16px; margin: 18px 0 20px; }
#inicio .hero-feature-screen { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 13px 0 0 !important; margin: 0 !important; min-width: 0; }
#inicio .feature-screen-icon-wrap { background: #e7f8ff; border-radius: 50%; }
#inicio .hero-sub-title { color: var(--ve-blue); }
#inicio .hero-screen-desc { color: #45536b; font-size: clamp(.98rem, 1.2vw, 1.16rem); line-height: 1.5; max-width: 740px; margin: 0 0 16px !important; }
#inicio .info-bloques {
  display: contents !important;
}
#inicio .info-item { min-width: 0; align-self: stretch; border-left: 1px solid #bfeaff; padding: 0 12px 0 16px; }
#inicio .info-item + .info-item { border-left: 1px solid #bfeaff; padding-left: 16px; }
#inicio .info-icono-wrapper { border-radius: 50%; background: #dff5ff; }
#inicio .info-texto-enfasis { color: var(--ve-blue); }
#inicio .btn-principal, #inicio .btn-secundario { min-height: 58px; padding: 14px 30px !important; font-size: 1rem !important; }
#inicio .btn-principal { background: #00cc63; box-shadow: 0 12px 26px rgba(0, 204, 99, .25); }
#inicio .ve-cta-icon { width: 22px; height: 22px; flex-shrink: 0; }
#inicio .btn-secundario { border-color: var(--ve-led); color: var(--ve-led); background: #fff; }
#inicio .hero-right-wrap { height: clamp(520px, calc(100svh - 190px), 690px); }
#inicio .m-card { border-radius: 26px; box-shadow: 0 15px 35px rgba(0, 59, 120, .13); }
#inicio .fc { border-radius: 22px; box-shadow: var(--ve-shadow); }
#inicio .fc1 { top: 10px; left: 10px; }
#inicio .fc-tag { display: flex; align-items: center; gap: 6px; }
#inicio .ve-bars-icon { width: 16px; height: 16px; color: var(--ve-led); }
#inicio .fc-val em, #inicio .metric-number { color: var(--ve-blue); }
#inicio .metrics-floating-card { width: 80%; max-width: 650px; }

.trust-bar { background: #fff; border-top: 1px solid #e2f3fb; border-bottom: 1px solid #e2f3fb; }
.trust-title { color: var(--ve-blue); }
.brand-card { background: #fff; }
.brand-card img { filter: grayscale(0); }

#ubicacion { background: linear-gradient(115deg, #fff 5%, #f1fbff 100%); }
#ubicacion .sec-inner { max-width: 1280px; }
#ubicacion .loc-grid { grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); gap: clamp(30px, 2.5vw, 48px); }
#ubicacion .tag-pill { color: var(--ve-led); background: #e5f8ff; font-size: .9rem; }
#ubicacion .sec-title { font-size: clamp(2.2rem, 2.9vw, 3.25rem); line-height: 1.05; letter-spacing: -.055em; color: var(--ve-ink); }
#ubicacion .sec-title span { color: var(--ve-led); }
#ubicacion .loc-text p { color: #43516a; font-size: clamp(.98rem, 1.15vw, 1.12rem); line-height: 1.62; }
#ubicacion .loc-text p strong { color: var(--ve-blue); }
#ubicacion .stats-quad { margin-top: 1.4rem; }
#ubicacion .stat-tile {
  display: grid;
  grid-template-columns: 68px 1fr;
  grid-template-rows: auto auto;
  column-gap: 14px;
  align-items: center;
  background: #fff;
  border: 1px solid #d7edfa;
  border-radius: 20px;
  padding: 16px;
  box-shadow: 0 8px 24px rgba(0, 59, 120, .045);
}
#ubicacion .ve-stat-icon { grid-row: 1 / 3; width: 58px; height: 58px; padding: 15px; color: var(--ve-blue); border-radius: 50%; background: #e4f7ff; }
#ubicacion .st-num { color: var(--ve-blue); font-size: clamp(1.55rem, 2.2vw, 2.5rem); }
#ubicacion .st-num em { color: var(--ve-led); }
#ubicacion .st-lbl { color: #45536b; margin-top: 0; line-height: 1.25; }
#ubicacion .loc-video-card { height: clamp(420px, calc(100svh - 250px), 560px); border-radius: 28px; border: 0; box-shadow: 0 24px 54px rgba(0, 59, 120, .18); }
#ubicacion .loc-video { object-position: center 55%; }
#ubicacion .loc-video-badge { background: rgba(0, 59, 120, .94); padding: 11px 19px; font-size: .92rem; }
#ubicacion .loc-video-tag { background: var(--ve-led); border-color: var(--ve-led); color: #fff; padding: 11px 20px; font-size: .9rem; }

#planes, #servicios, #testimonios, #faqs { background: linear-gradient(125deg, #f9fdff 0%, #edfbff 52%, #f7fcff 100%) !important; }
#planes, #servicios, #testimonios, #faqs { padding: clamp(54px, 5vw, 76px) clamp(22px, 5vw, 90px) !important; }
#planes .sec-inner, #servicios .sec-inner { max-width: 1280px !important; padding-left: 0 !important; padding-right: 0 !important; }
#planes h2, #servicios h2, #testimonios h2, #faqs h2 {
  font-family: Montserrat, Poppins, sans-serif;
  font-size: clamp(2.1rem, 3vw, 3.2rem) !important;
  font-weight: 900;
  line-height: 1.08;
  letter-spacing: -.055em;
  color: var(--ve-ink) !important;
  max-width: 850px;
  margin-left: auto;
  margin-right: auto;
}
#planes h2 span, #servicios h2 span, #testimonios h2 span { display: block; color: var(--ve-led); }
#planes .sec-inner > div:first-child > p { color: #45536b; font-size: clamp(1rem, 1.3vw, 1.2rem); max-width: 930px !important; margin-left: auto; margin-right: auto; }
#planes .sec-inner > .grid, #servicios .sec-inner > .grid { gap: clamp(16px, 1.6vw, 24px) !important; }
#planes .plan-card, #servicios .sec-inner > .grid > div {
  background: #fff !important;
  border: 1px solid #d9f1fc !important;
  border-radius: 25px !important;
  box-shadow: var(--ve-shadow) !important;
  padding: clamp(22px, 1.7vw, 30px) !important;
}
#planes .plan-card:nth-child(2) { border: 2px solid var(--ve-led) !important; }
#planes .plan-card .plan-icon-container, #servicios .sec-inner > .grid h3 > span:first-child {
  width: 58px !important;
  height: 58px !important;
  border-radius: 50% !important;
  background: #e4f7ff !important;
  color: var(--ve-led) !important;
}
#planes .plan-card .plan-icon-container svg, #servicios .sec-inner > .grid h3 svg { width: 28px !important; height: 28px !important; color: var(--ve-blue) !important; }
#planes .plan-card h3, #servicios .sec-inner > .grid h3 { font-size: clamp(1.15rem, 1.3vw, 1.4rem) !important; font-weight: 800; color: var(--ve-blue) !important; }
#planes .plan-card .text-center > .text-sm { color: #63758d; letter-spacing: .03em; }
#planes .plan-card .text-2xl { font-size: clamp(1.45rem, 1.75vw, 2rem) !important; color: var(--ve-ink); }
#planes .plan-card .text-2xl span { color: var(--ve-led) !important; font-size: 1.35em !important; }
#planes .plan-card ul { border-top: 1px solid #d7effb; padding-top: 20px !important; }
#planes .plan-card li, #servicios .sec-inner > .grid li { color: #43516a; line-height: 1.4; }
#planes .plan-card li > span:first-child, #servicios .sec-inner > .grid li > span:first-child {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  background: #e0f6ff;
  border-radius: 50%;
  color: var(--ve-led) !important;
  font-size: 1.05rem !important;
}
#planes .plan-card a { max-width: 100% !important; border-radius: 999px !important; font-size: .94rem !important; min-height: 56px; }
#planes .plan-card:nth-child(odd) a { background: #fff !important; border: 2px solid var(--ve-led) !important; color: var(--ve-led) !important; box-shadow: none !important; }
#planes .plan-card:nth-child(odd) a svg { fill: var(--ve-led); }
#planes .plan-card:nth-child(2) a { background: #00cc63 !important; box-shadow: 0 10px 26px rgba(0, 204, 99, .22) !important; }
#planes .plan-badge-tag { background: var(--ve-led); color: white; border-radius: 999px; box-shadow: 0 6px 16px rgba(0,174,239,.26); }

#servicios .sec-inner > div:first-child > span { background: #e4f7ff !important; color: var(--ve-led) !important; }
#servicios .sec-inner > .grid h3 { border-bottom: 1px solid #cfeefa !important; padding-bottom: 16px !important; gap: 13px !important; }
#servicios .sec-inner > .grid h3 > span:first-child { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
#servicios .sec-inner > .grid ul { display: grid; gap: 12px; font-size: .95rem; }
#servicios .sec-inner > .grid li { align-items: center; }

#testimonios .sec-inner { max-width: 1280px; }
#testimonios .testim-hdr { margin-bottom: 2rem; }
#testimonios .testim-grid { gap: clamp(16px, 1.6vw, 24px); }
#testimonios .t-card { padding: clamp(22px, 1.7vw, 30px); border-radius: 22px; box-shadow: var(--ve-shadow); border-color: #d9f1fc; }
#testimonios .t-logo { width: 60px; height: 60px; flex: 0 0 60px; background: #e4f7ff; border-color: #b8eaff; }
#testimonios .t-name { color: var(--ve-blue); font-size: clamp(1rem, 1.2vw, 1.25rem); }
#testimonios .t-category { color: #718099; }
#testimonios .t-content { position: relative; padding-left: 36px; }
#testimonios .t-content::before { content: '“'; position: absolute; top: -18px; left: 0; font: 900 4.3rem Georgia, serif; color: #a7e5ff; }
#testimonios .t-content p { color: #45536b; font-size: .98rem; }
#testimonios .t-rating { border-top: 1px solid #d7effb; padding-top: 16px; }

#contacto { background: linear-gradient(125deg, #effaff 0%, #e0f7ff 100%); }
#contacto { padding: clamp(54px, 5vw, 76px) clamp(22px, 5vw, 90px); }
#contacto .ct-inner { max-width: 1280px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(36px, 5vw, 80px); align-items: center; text-align: left; }
#contacto .ve-contact-copy { min-width: 0; }
#contacto .ve-contact-tag { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; margin-bottom: 20px; border-radius: 999px; background: #e0f7ff; color: var(--ve-led); font-size: .75rem; font-weight: 800; letter-spacing: .06em; }
#contacto .ve-contact-tag svg { width: 17px; height: 17px; }
#contacto .ct-title { font-size: clamp(2.1rem, 3vw, 3.3rem); line-height: 1.08; letter-spacing: -.045em; color: var(--ve-ink); max-width: 640px; }
#contacto .ct-title span { color: var(--ve-led); }
#contacto .ct-sub { margin: 12px 0 22px; max-width: 570px; color: #45536b; font-size: clamp(.98rem, 1.15vw, 1.1rem); line-height: 1.5; }
#contacto .ve-contact-benefits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 22px 0 28px; }
#contacto .ve-contact-benefit { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 0 10px; border-right: 1px solid #bde7f8; }
#contacto .ve-contact-benefit:first-child { padding-left: 0; }
#contacto .ve-contact-benefit:last-child { border-right: 0; }
#contacto .ve-contact-benefit-icon, #contacto .ve-contact-stat-icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 42px; width: 42px; height: 42px; border-radius: 50%; background: #daf5ff; color: var(--ve-led); }
#contacto .ve-contact-benefit-icon svg, #contacto .ve-contact-stat-icon svg { width: 24px; height: 24px; }
#contacto .ve-contact-benefit strong, #contacto .ve-contact-benefit small { display: block; }
#contacto .ve-contact-benefit strong { font-size: .87rem; line-height: 1.2; color: var(--ve-ink); }
#contacto .ve-contact-benefit small { margin-top: 4px; font-size: .76rem; line-height: 1.25; color: #64748b; }
#contacto .btn-wa-big { display: flex; width: min(100%, 390px); justify-content: center; background: #00cc63; font-size: clamp(1rem, 1.35vw, 1.2rem); }
#contacto .ve-contact-note { display: flex; align-items: center; gap: 8px; margin: 18px 0 0; color: #64748b; font-size: .88rem; }
#contacto .ve-contact-note svg { width: 16px; height: 16px; flex: 0 0 16px; color: var(--ve-led); }
#contacto .ve-contact-visual { position: relative; height: clamp(400px, 36vw, 540px); min-width: 0; overflow: visible; border-radius: 28px; background: radial-gradient(ellipse at center, #bcefff 0%, #d8f6ff 52%, transparent 75%); box-shadow: none; }
#contacto .ve-contact-visual img { position: relative; z-index: 2; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 45%; border-radius: 26px; box-shadow: 0 24px 50px rgba(0, 91, 155, .15); mask-image: linear-gradient(to bottom, #000 0%, #000 78%, transparent 100%); }
#contacto .ve-contact-visual::after { display: none; }
#contacto .ve-contact-shape { position: absolute; z-index: 1; border-radius: 24px; pointer-events: none; }
#contacto .ve-contact-shape-one { width: 44%; height: 25%; top: -5%; left: 5%; background: rgba(0,174,239,.22); transform: rotate(-5deg); }
#contacto .ve-contact-shape-two { width: 48%; height: 28%; right: -4%; bottom: -7%; border: 2px solid rgba(0,174,239,.42); transform: rotate(7deg); }
#contacto .ve-contact-stat { position: absolute; z-index: 3; display: flex; align-items: center; gap: 10px; padding: 13px 16px; border-radius: 18px; background: rgba(255,255,255,.97); box-shadow: 0 12px 28px rgba(0, 59, 120, .1); }
#contacto .ve-contact-stat strong, #contacto .ve-contact-stat small { display: block; }
#contacto .ve-contact-stat strong { color: var(--ve-led); font-size: 1.35rem; line-height: 1.1; }
#contacto .ve-contact-stat small { color: #45536b; font-size: .75rem; line-height: 1.25; margin-top: 3px; }
#contacto .ve-contact-stat-views { top: 6%; right: -6%; }
#contacto .ve-contact-stat-hours { bottom: 10%; left: -7%; }
#contacto .ve-contact-stat-place { bottom: 1%; right: -5%; }
#contacto .ve-contact-stat-place strong { font-size: 1rem; }

#faqs .sec-inner { max-width: 1280px; }
#faqs .sec-title { margin-bottom: 2rem !important; }
#faqs .ve-faq-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, .9fr); gap: 24px; align-items: start; }
#faqs .faq-container { max-width: none !important; margin: 0 !important; gap: 8px !important; }
#faqs details { background: #fff !important; border: 1px solid #d7effb !important; border-radius: 18px !important; padding: 12px 16px !important; box-shadow: 0 8px 24px rgba(0, 59, 120, .045); }
#faqs summary { color: var(--ve-blue) !important; font-family: Montserrat, sans-serif; font-size: clamp(.9rem, 1vw, 1.02rem) !important; line-height: 1.35; gap: 12px; }
#faqs .ve-faq-icon { width: 42px; height: 42px; flex: 0 0 42px; padding: 10px; border-radius: 13px; color: var(--ve-led); background: #e7f8ff; }
#faqs summary span { color: var(--ve-led); flex-shrink: 0; }
#faqs details[open] summary span { transform: rotate(45deg); }
#faqs details p { color: #45536b !important; padding-left: 54px; }
#faqs .ve-faq-visual { height: 440px; min-height: 0; border-radius: 24px; overflow: hidden; background: #e4f7ff; border: 8px solid #fff; box-shadow: var(--ve-shadow); }
#faqs .ve-faq-visual img { display: block; width: 100%; height: 100%; min-height: 0; object-fit: cover; object-position: center; }

footer { position: relative; isolation: isolate; overflow: hidden; padding: clamp(44px, 4vw, 60px) 5% 22px; border-top: 3px solid #006bb8; background: radial-gradient(ellipse at 50% -8%, rgba(0,137,255,.34), transparent 48%), radial-gradient(ellipse at 88% 74%, rgba(0,106,210,.2), transparent 32%), linear-gradient(135deg, #03172f 0%, #062957 53%, #031b38 100%); }
footer::before, footer::after { content: ''; position: absolute; z-index: -1; pointer-events: none; transform: none; border-radius: 0; }
footer::before { width: 360px; height: 460px; top: -60px; left: -150px; background: linear-gradient(135deg, transparent 22%, rgba(0,174,239,.8) 24%, rgba(0,127,235,.2) 25%, transparent 38%), linear-gradient(33deg, transparent 50%, rgba(0,174,239,.55) 51%, rgba(0,112,218,.2) 55%, transparent 76%); filter: drop-shadow(0 0 18px rgba(0,174,239,.5)); }
footer::after { width: 360px; height: 390px; right: -130px; bottom: -140px; background: linear-gradient(130deg, transparent 30%, rgba(0,174,239,.45) 31%, rgba(0,105,212,.2) 34%, transparent 55%), linear-gradient(148deg, transparent 57%, rgba(0,174,239,.45) 58%, transparent 60%); filter: drop-shadow(0 0 20px rgba(0,174,239,.35)); }
footer .foot-grid { max-width: 1300px; grid-template-columns: 1.18fr .92fr .92fr; gap: 0; padding: 0 0 28px; border-bottom: 1px solid rgba(0,174,239,.65); }
footer .foot-grid::before { content: ''; position: absolute; top: -36px; right: 0; width: 150px; height: 105px; background-image: radial-gradient(circle, rgba(0,174,239,.5) 2px, transparent 3px); background-size: 22px 22px; opacity: .7; pointer-events: none; }
footer .foot-grid > div { min-width: 0; padding: 0 clamp(24px, 3.4vw, 58px); border-left: 1px solid rgba(0,174,239,.25); }
footer .foot-grid > div:first-child { padding-left: 0; border-left: 0; }
footer .foot-logo-svg-wrap { position: relative; display: block; width: 164px; height: 120px; margin: -17px 0 5px; filter: drop-shadow(0 0 13px rgba(0,174,239,.25)); }
footer .foot-logo-svg-wrap img { display: block; width: 100%; height: 100%; object-fit: contain; filter: brightness(0) invert(1); }
@supports (mask-image: url('../imagenes/visualed_logo.png')) {
  footer .foot-logo-svg-wrap::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to bottom, #00aeef 0 64%, #fff 67% 88%, #41d5ff 91% 100%); mask: url('../imagenes/visualed_logo.png') center / contain no-repeat; -webkit-mask: url('../imagenes/visualed_logo.png') center / contain no-repeat; }
}
footer .foot-contact-list { gap: 7px; margin: 0; padding: 0; }
footer .foot-contact-item { gap: 10px; color: #e2effb; font-size: clamp(.86rem, .95vw, .98rem); }
footer .foot-contact-item svg { width: 32px; height: 32px; padding: 7px; border: 1px solid rgba(0,174,239,.55); border-radius: 9px; background: rgba(0,174,239,.11); stroke: #1fcaff; box-shadow: 0 0 12px rgba(0,174,239,.14); }
footer a.foot-contact-item:hover, footer .foot-col a:hover { color: #fff; }
footer .foot-col { gap: 10px; padding-top: 10px !important; }
footer .foot-col-title { position: relative; margin-bottom: 17px; color: #a8c8ee; font-size: .72rem; letter-spacing: .22em; }
footer .foot-col-title::after { content: ''; position: absolute; left: 0; bottom: -13px; width: 36px; height: 3px; border-radius: 999px; background: #00baf5; box-shadow: 0 0 13px rgba(0,174,239,.7); }
footer .foot-col a { color: #e2effb; font-size: clamp(.88rem, 1vw, 1rem); }
footer .socials { gap: 13px; margin-top: 2px; }
footer .soc-btn { width: 46px; height: 46px; border-radius: 12px; background: rgba(0,174,239,.07); box-shadow: 0 0 16px rgba(0,174,239,.25); }
footer .soc-btn svg { width: 42px; height: 42px; }
footer .foot-copy { max-width: 1300px; margin: 18px auto 0; color: #b0c9e4; font-size: .76rem; }
footer .foot-copy::before { content: ''; position: absolute; top: -19px; left: 50%; width: 95px; height: 2px; transform: translateX(-50%); background: #27c8ff; box-shadow: 0 0 14px 4px rgba(0,174,239,.56); }
footer .foot-contact-item:focus-visible, footer .foot-col a:focus-visible, footer .soc-btn:focus-visible { outline: 2px solid #55d9ff; outline-offset: 4px; }
@media (max-width: 900px) {
  footer .foot-grid { grid-template-columns: 1.2fr 1fr; gap: 26px 0; }
  footer .foot-grid > div:last-child { grid-column: 1 / -1; padding: 20px 0 0; border-left: 0; border-top: 1px solid rgba(0,174,239,.25); }
}
@media (max-width: 600px) {
  footer { padding: 40px 7% 24px; }
  footer .foot-grid { grid-template-columns: 1fr; gap: 21px; padding-bottom: 24px; text-align: left; }
  footer .foot-grid > div, footer .foot-grid > div:first-child, footer .foot-grid > div:last-child { grid-column: 1; padding: 0; border: 0; }
  footer .foot-grid > div + div { padding-top: 18px; border-top: 1px solid rgba(0,174,239,.25); }
  footer .foot-logo-svg-wrap { margin-left: 0; }
  footer .foot-contact-list, footer .foot-col { align-items: flex-start; }
  footer .socials { justify-content: flex-start; }
  footer .foot-copy { line-height: 1.5; }
}
body .ticket-modal.active { filter: drop-shadow(0 9px 18px rgba(0, 59, 120, .14)); }

@media (min-width: 1024px) {
  #inicio { display: block; min-height: 0 !important; padding: 16px 3% 52px !important; }
  #inicio .hero-grid { min-height: 0 !important; grid-template-columns: 1.12fr 1fr; align-items: center; padding: 0 !important; }
  #inicio .hero-left { min-height: min(620px, calc(100svh - 235px)); padding: clamp(26px, 2.2vw, 42px) !important; }
  #inicio .feature-screen-icon-wrap { width: 52px !important; height: 52px !important; border-radius: 50% !important; }
  #inicio .hero-sub-title { font-size: .94rem !important; }
  #inicio .hero-screen-desc { font-size: clamp(1rem, 1.14vw, 1.15rem) !important; line-height: 1.48 !important; }
  #inicio .info-texto-enfasis { font-size: .9rem !important; }
}

@media (max-width: 1100px) {
  #ubicacion .loc-grid { grid-template-columns: 1fr; }
  #ubicacion .loc-video-card { height: 520px; }
  #planes .sec-inner > .grid, #servicios .sec-inner > .grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  #planes .plan-card:last-child, #servicios .sec-inner > .grid > div:last-child { grid-column: 1 / -1; }
}
@media (max-width: 960px) {
  #inicio .hero-right-wrap { height: clamp(350px, 75vw, 520px); }
  #inicio h1.hero-title { font-size: clamp(2.7rem, 7vw, 4.4rem) !important; }
  #contacto .ct-inner { grid-template-columns: 1fr; }
  #contacto .ve-contact-visual { width: min(100%, 620px); height: clamp(320px, 60vw, 460px); margin: 0 auto; }
  #faqs .ve-faq-layout { grid-template-columns: 1fr; }
  #faqs .ve-faq-visual, #faqs .ve-faq-visual img { min-height: 390px; max-height: 440px; }
}
@media (max-width: 700px) {
  #inicio .hero-left { padding: 23px; }
  #inicio h1.hero-title { font-size: clamp(2.3rem, 10vw, 3.6rem) !important; }
  #inicio .ve-hero-benefits { grid-template-columns: 1fr; gap: 13px; padding: 17px; }
  #inicio .hero-feature-screen { padding: 0 0 13px !important; border-bottom: 1px solid #bfeaff !important; }
  #inicio .info-item, #inicio .info-item + .info-item { border-left: 0; padding: 0; }
  #inicio .hero-right-wrap { height: clamp(300px, 88vw, 420px); }
  #ubicacion .stat-tile { grid-template-columns: 1fr; text-align: center; justify-items: center; gap: 4px; }
  #ubicacion .ve-stat-icon { grid-row: auto; width: 50px; height: 50px; padding: 12px; }
  #ubicacion .loc-video-card { height: 350px; min-height: 0; }
  #planes .sec-inner > .grid, #servicios .sec-inner > .grid { grid-template-columns: 1fr !important; }
  #planes .plan-card:last-child, #servicios .sec-inner > .grid > div:last-child { grid-column: auto; }
  #planes h2, #servicios h2, #testimonios h2, #faqs h2 { font-size: clamp(2.1rem, 8vw, 3rem) !important; }
  #testimonios .testim-grid { margin-top: 0; }
  #contacto .ct-title { font-size: clamp(2rem, 7.5vw, 2.7rem); }
  #contacto .ct-inner { gap: 36px; }
  #contacto .ve-contact-benefits { margin: 20px 0; }
  #contacto .ve-contact-benefit { gap: 8px; padding: 0 5px; }
  #contacto .ve-contact-benefit-icon { flex-basis: 36px; width: 36px; height: 36px; }
  #contacto .ve-contact-benefit-icon svg { width: 20px; height: 20px; }
  #contacto .ve-contact-visual { width: calc(100% - 26px); height: clamp(290px, 78vw, 390px); }
  #contacto .ve-contact-stat { padding: 8px 10px; gap: 6px; }
  #contacto .ve-contact-stat-icon { flex-basis: 32px; width: 32px; height: 32px; }
  #contacto .ve-contact-stat-icon svg { width: 19px; height: 19px; }
  #contacto .ve-contact-stat strong { font-size: 1rem; }
  #contacto .ve-contact-stat small { font-size: .6rem; }
  #contacto .ve-contact-stat-place strong { font-size: .76rem; }
  #faqs details { padding: 13px 15px !important; }
  #faqs .ve-faq-icon { width: 42px; height: 42px; flex-basis: 42px; padding: 10px; }
  #faqs details p { padding-left: 0; }
  #faqs .ve-faq-visual, #faqs .ve-faq-visual img { min-height: 280px; max-height: 320px; }
}
@media (max-width: 480px) {
  #contacto .ve-contact-benefits { grid-template-columns: 1fr; gap: 12px; }
  #contacto .ve-contact-benefit { border-right: 0; padding: 0; }
  #contacto .ve-contact-benefit strong, #contacto .ve-contact-benefit small { display: inline; }
  #contacto .ve-contact-benefit small { margin-left: 5px; }
  #contacto .ve-contact-stat-views { right: -3%; }
  #contacto .ve-contact-stat-hours { left: -3%; bottom: 2%; }
  #contacto .ve-contact-stat-place { right: -3%; bottom: 2%; }
}
@media (prefers-reduced-motion: reduce) {
  #inicio .fc1, #ubicacion .live-dot { animation: none; }
  #testimonios .star-icon { animation-duration: .01ms !important; }
}
