/*
 * Landings de Ubitec: bloques que no existen en la portada (prosa, pasos, comparación, herramientas, enlaces).
 * Los bloques compartidos (héroe, agenda, finanzas, torneos, precios, faq) están en ubitec_home_v2.css.
 */
.ubl-section { background: #fff; color: #050505; font-family: "DM Sans", "Inter", sans-serif; padding: 112px 0; }
.ubl-section * { box-sizing: border-box; }
.ubl-section.ubl-cloud { background: #f3f4f6; }
.ubl-section h2, .ubl-section h3 { color: inherit; margin: 0; }
.ubl-section h2 { font-family: "Barlow Condensed", "Arial Narrow", sans-serif; font-size: clamp(40px, 4.15vw, 58px); font-weight: 800; letter-spacing: -.025em; line-height: .99; }
.ubl-eyebrow, .ubl-prose-head > span { display: block; font-size: 12px; font-weight: 900; letter-spacing: .12em; margin-bottom: 19px; text-transform: uppercase; }
.ub-landing #agenda, .ub-landing #modulos, .ub-landing #generador, .ub-landing #calculadora, .ub-landing #descargar, .ub-landing #modelo, .ub-landing #guia, .ub-landing #como-funciona { scroll-margin-top: 60px; }

/* héroe de landing */
.ubl-hero h1 { font-size: clamp(42px, 4.2vw, 58px); }
.ubl-hero-visual { min-width: 0; position: relative; z-index: 2; }
.ubl-hero-visual .ubv-calendar-ui, .ubl-hero-visual .ubv-finance-ui, .ubl-hero-visual .ubl-booking, .ubl-hero-visual .ubl-standings { box-shadow: 0 30px 80px rgba(0,0,0,.45); color: #050505; }
.ubl-hero-visual .ubv-calendar-grid { min-height: 350px; }
.ubl-hero-visual .ubv-tournament-media { min-height: 420px; }
.ubl-hero-visual .ubv-cloud-visual { margin: 0; }
.ubl-split-visual { min-width: 0; }
.ubv-finance .ubl-split-visual .ubv-calendar-ui, .ubv-finance .ubl-split-visual .ubl-standings { color: #050505; }
.ubv-finance .ubl-split-visual .ubv-calendar-grid { min-height: 340px; }
.ubv-tournaments .ubl-split-visual .ubl-booking { margin: 0 auto; }

/* maqueta: página de reservas en línea */
.ubl-booking { background: #fff; border-radius: 18px; margin-left: auto; max-width: 430px; overflow: hidden; }
.ubl-booking > header { align-items: center; background: #f3f4f6; border-bottom: 1px solid #e3e3e7; display: flex; gap: 10px; padding: 12px 16px; }
.ubl-booking > header i { background: #ff5b48; border-radius: 50%; box-shadow: 14px 0 0 #ffd84d, 28px 0 0 #18a865; height: 8px; margin-right: 28px; width: 8px; }
.ubl-booking > header span { background: #fff; border-radius: 999px; color: #555; flex: 1; font-size: 10px; font-weight: 700; padding: 6px 12px; }
.ubl-booking-body { display: flex; flex-direction: column; padding: 22px; }
.ubl-booking-body > b { font-family: "Barlow Condensed", sans-serif; font-size: 30px; line-height: 1; }
.ubl-booking-body > small { color: #77777d; font-size: 11px; margin-top: 6px; }
.ubl-booking-courts { display: flex; gap: 6px; margin: 18px 0 12px; }
.ubl-booking-courts span { border: 1px solid #dcdce1; border-radius: 999px; font-size: 10px; font-weight: 800; padding: 7px 12px; }
.ubl-booking-courts span.is-on { background: #050505; border-color: #050505; color: #fff; }
.ubl-booking-slots { display: grid; gap: 7px; grid-template-columns: repeat(3, 1fr); }
.ubl-booking-slots span { background: #eef9f3; border-radius: 9px; color: #0c6b3f; font-size: 11px; font-weight: 800; padding: 11px 0; text-align: center; }
.ubl-booking-slots span.is-busy { background: #f1f1f4; color: #a5a5ab; text-decoration: line-through; }
.ubl-booking-slots span.is-picked { background: #fffc00; color: #000; outline: 2px solid #050505; }
.ubl-booking-form { border-top: 1px solid #e3e3e7; display: grid; gap: 12px; grid-template-columns: 1fr 1fr; margin-top: 18px; padding-top: 16px; }
.ubl-booking-form p { display: flex; flex-direction: column; margin: 0; }
.ubl-booking-form span { color: #88888e; font-size: 9px; font-weight: 700; }
.ubl-booking-form b { font-size: 12px; margin-top: 3px; }
.ubl-booking-body > em { background: #3157ff; border-radius: 999px; color: #fff; font-size: 12px; font-style: normal; font-weight: 800; margin-top: 18px; padding: 12px; text-align: center; }
.ubl-booking > footer { align-items: center; background: #050505; color: #fff; display: flex; gap: 12px; padding: 14px 18px; }
.ubl-booking > footer > i { align-items: center; background: #fffc00; border-radius: 50%; color: #000; display: flex; flex: 0 0 30px; font-size: 13px; height: 30px; justify-content: center; }
.ubl-booking > footer p { display: flex; flex-direction: column; margin: 0; }
.ubl-booking > footer b { font-size: 11px; }
.ubl-booking > footer span { color: #a9aab0; font-size: 9px; margin-top: 2px; }

/* maqueta: tabla de posiciones */
.ubl-standings { background: #fff; border-radius: 18px; overflow: hidden; }
.ubl-standings > header { align-items: center; display: flex; font-size: 10px; font-weight: 900; justify-content: space-between; letter-spacing: .08em; padding: 20px 22px 14px; }
.ubl-standings > header b { background: #fffc00; border-radius: 999px; padding: 5px 10px; }
.ubl-standings table { border-collapse: collapse; font-size: 13px; width: 100%; }
.ubl-standings th { color: #8a8a91; font-size: 9px; font-weight: 800; letter-spacing: .08em; padding: 8px 10px; text-align: center; text-transform: uppercase; }
.ubl-standings th:nth-child(2), .ubl-standings td:nth-child(2) { text-align: left; }
.ubl-standings td { border-top: 1px solid #ececef; font-weight: 700; padding: 13px 10px; text-align: center; }
.ubl-standings td:first-child, .ubl-standings th:first-child { padding-left: 22px; width: 44px; }
.ubl-standings td:last-child { font-family: "Barlow Condensed", sans-serif; font-size: 22px; line-height: 1; padding-right: 22px; }
.ubl-standings tr.is-top td:first-child { box-shadow: inset 4px 0 0 #18a865; }
.ubl-standings > footer { background: #050505; color: #fff; display: flex; flex-direction: column; padding: 15px 22px; }
.ubl-standings > footer span { color: #fffc00; font-size: 9px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.ubl-standings > footer b { font-size: 12px; margin-top: 4px; }

/* pasos */
.ubl-steps { counter-reset: paso; display: grid; gap: 16px; grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); margin-top: 60px; }
.ubl-steps article { background: #fff; border-radius: 18px; min-height: 210px; padding: 28px 26px; }
.ubl-section:not(.ubl-cloud) .ubl-steps article { background: #f3f4f6; }
.ubl-steps article > b { align-items: center; background: #fffc00; border-radius: 50%; display: flex; font-size: 12px; font-weight: 900; height: 38px; justify-content: center; width: 38px; }
.ubl-steps h3 { font-family: "DM Sans", sans-serif; font-size: 18px; font-weight: 800; letter-spacing: 0; margin-top: 26px; }
.ubl-steps p { color: #66666d; font-size: 14px; line-height: 1.55; margin: 9px 0 0; }

/* comparación */
.ubl-compare { border: 1px solid #d8d8dc; border-radius: 18px; margin-top: 60px; overflow: hidden; }
.ubl-compare-row { display: grid; grid-template-columns: 1fr 1fr 1fr; }
.ubl-compare-row > div { align-items: center; border-top: 1px solid #e3e3e7; display: flex; font-size: 14px; gap: 10px; padding: 18px 24px; }
.ubl-compare-row > div:first-child { font-weight: 800; }
.ubl-compare-row > div:nth-child(2) { color: #66666d; }
.ubl-compare-row > div:nth-child(2) i { color: #ff5b48; }
.ubl-compare-row > div:nth-child(3) { background: #fffee0; font-weight: 700; }
.ubl-compare-row > div:nth-child(3) i { color: #18a865; font-size: 18px; }
.ubl-compare-row.is-head > div { background: #050505; border-top: 0; color: #fff; font-size: 11px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.ubl-compare-row.is-head > div:nth-child(3) { background: #fffc00; color: #000; }

/* prosa de las guías */
.ubl-prose-layout { display: grid; gap: 90px; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); }
.ubl-prose-head { align-self: start; position: sticky; top: 110px; }
.ubl-prose-head h2 { font-size: clamp(36px, 3.5vw, 50px); }
.ubl-prose { font-size: 17px; line-height: 1.68; max-width: 760px; }
.ubl-prose > * + * { margin-top: 20px; }
.ubl-prose p, .ubl-prose li { color: #2f2f36; margin-bottom: 0; }
.ubl-prose h3 { font-family: "DM Sans", sans-serif; font-size: 22px; font-weight: 800; letter-spacing: -.01em; line-height: 1.25; margin-top: 44px; }
.ubl-prose h3:first-child { margin-top: 0; }
.ubl-prose ul, .ubl-prose ol { display: grid; gap: 11px; margin-bottom: 0; padding-left: 22px; }
.ubl-prose li::marker { color: #3157ff; font-weight: 800; }
.ubl-prose strong { color: #050505; font-weight: 800; }
.ubl-prose a { color: #050505; font-weight: 700; text-decoration: underline; text-decoration-color: #3157ff; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.ubl-prose a:hover { background: #fffc00; }
.ubl-prose blockquote { background: #fff; border-left: 4px solid #fffc00; border-radius: 0 12px 12px 0; box-shadow: 0 0 0 1px #e3e3e7; font-size: 15.5px; line-height: 1.6; margin-bottom: 0; padding: 16px 20px; }
.ubl-prose blockquote + blockquote { margin-top: 10px; }
.ubl-prose-note { align-items: flex-start; background: rgba(49,87,255,.08); border-radius: 14px; display: flex; font-size: 14.5px; gap: 12px; line-height: 1.55; padding: 16px 18px; }
.ubl-prose-note i { color: #3157ff; font-size: 17px; line-height: 1.4; }
.ubl-prose-table { border: 1px solid #d8d8dc; border-radius: 14px; overflow-x: auto; }
.ubl-prose-table table { background: #fff; border-collapse: collapse; font-size: 14.5px; min-width: 100%; }
.ubl-prose-table th, .ubl-prose-table td { border-top: 1px solid #e3e3e7; padding: 13px 16px; text-align: left; }
.ubl-prose-table th { background: #050505; border-top: 0; color: #fff; font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.ubl-prose-table td:first-child { font-weight: 800; }
.ubv-faq-list details p a { color: #050505; font-weight: 700; text-decoration: underline; text-decoration-color: #3157ff; text-decoration-thickness: 2px; text-underline-offset: 3px; }

/* herramientas: generador de fixture y calculadora */
.ubl-tool { align-items: start; display: grid; gap: 22px; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); margin-top: 60px; }
.ubl-tool-form, .ubl-tool-result { background: #fff; border-radius: 18px; padding: 28px; }
.ubl-tool-form { display: flex; flex-direction: column; gap: 14px; }
.ubl-tool-form label { font-size: 12px; font-weight: 800; margin: 0; }
.ubl-tool-form textarea, .ubl-tool-form input[type="number"] { background: #f6f7fa; border: 1px solid #dcdce1; border-radius: 12px; color: #050505; font: inherit; font-size: 15px; font-weight: 600; padding: 13px 15px; width: 100%; }
.ubl-tool-form textarea { line-height: 1.6; resize: vertical; }
.ubl-tool-form textarea:focus, .ubl-tool-form input[type="number"]:focus { background: #fff; border-color: #3157ff; box-shadow: 0 0 0 4px rgba(49,87,255,.14); outline: none; }
.ubl-tool-form small { color: #77777d; font-size: 11px; line-height: 1.4; }
.ubl-tool-form .ubv-btn { cursor: pointer; }
.ubl-tool-options { display: grid; gap: 8px; grid-template-columns: 1fr 1fr; }
.ubl-tool-options label { position: relative; }
.ubl-tool-options input { height: 1px; left: 0; opacity: 0; position: absolute; top: 0; width: 1px; }
.ubl-tool-options span { align-items: center; background: #f6f7fa; border: 1px solid #dcdce1; border-radius: 12px; cursor: pointer; display: flex; font-size: 13px; font-weight: 800; height: 46px; justify-content: center; }
.ubl-tool-options input:checked + span { background: #050505; border-color: #050505; color: #fff; }
.ubl-tool-options input:focus-visible + span { box-shadow: 0 0 0 3px rgba(49,87,255,.3); }
.ubl-tool-check { align-items: center; cursor: pointer; display: flex; font-weight: 600 !important; gap: 9px; }
.ubl-tool-grid { display: grid; gap: 16px; grid-template-columns: 1fr 1fr; }
.ubl-tool-grid > div { display: flex; flex-direction: column; gap: 7px; }
.ubl-tool-result > header { align-items: center; border-bottom: 1px solid #e3e3e7; display: flex; justify-content: space-between; margin-bottom: 20px; padding-bottom: 16px; }
.ubl-tool-result > header b { font-size: 14px; }
.ubl-tool-result > header button { background: none; border: 0; cursor: pointer; padding: 0; }
.ubl-tool-result > footer { align-items: center; border-top: 1px solid #e3e3e7; display: flex; gap: 20px; justify-content: space-between; margin-top: 24px; padding-top: 22px; }
.ubl-tool-result > footer p { color: #66666d; font-size: 13px; line-height: 1.5; margin: 0; max-width: 360px; }
.ubl-tool-result > footer .ubv-btn { flex-shrink: 0; }
.ubl-fixture-rounds { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 560px; overflow-y: auto; padding-right: 4px; }
.ubl-fixture-round { border: 1px solid #e3e3e7; border-radius: 14px; overflow: hidden; }
.ubl-fixture-round > b { background: #050505; color: #fff; display: block; font-size: 10px; font-weight: 900; letter-spacing: .1em; padding: 9px 14px; text-transform: uppercase; }
.ubl-fixture-round p { align-items: center; border-top: 1px solid #ececef; display: grid; font-size: 13px; font-weight: 700; gap: 8px; grid-template-columns: 1fr auto 1fr; margin: 0; padding: 10px 14px; }
.ubl-fixture-round p:first-of-type { border-top: 0; }
.ubl-fixture-round p i { color: #8a8a91; font-size: 10px; font-style: normal; font-weight: 800; }
.ubl-fixture-round p span:last-child { text-align: right; }
.ubl-fixture-round p.is-bye { color: #8a8a91; display: block; font-weight: 600; }
.ubl-kpis { display: grid; gap: 12px; grid-template-columns: 1fr 1fr; }
.ubl-kpis > div { background: #f3f4f6; border-radius: 14px; display: flex; flex-direction: column; padding: 20px; }
.ubl-kpis > div:nth-child(2) { background: #fffc00; }
.ubl-kpis span { font-size: 11px; font-weight: 800; }
.ubl-kpis b { font-family: "Barlow Condensed", sans-serif; font-size: 42px; line-height: 1; margin-top: 12px; }
.ubl-kpis b.is-negative { color: #d92d20; }
.ubl-tool-hint { color: #2f2f36; font-size: 14px; line-height: 1.55; margin: 20px 0 0; }

/* descarga */
.ubl-download { align-items: center; background: #fffc00; border-radius: 24px; display: grid; gap: 60px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); padding: 64px; }
.ubl-download p { font-size: 17px; line-height: 1.6; margin: 24px 0 30px; max-width: 480px; }
.ubl-download ul { list-style: none; margin: 0; padding: 0; }
.ubl-download li { align-items: flex-start; border-bottom: 1px solid rgba(0,0,0,.2); display: flex; font-size: 15px; font-weight: 700; gap: 12px; padding: 14px 0; }
.ubl-download li:last-child { border-bottom: 0; }
.ubl-download li i { font-size: 18px; line-height: 1.25; }

/* enlaces internos por grupo */
.ubl-links-section { padding: 96px 0; }
.ubl-links-section h2.ubl-links-title { font-size: clamp(34px, 3.4vw, 46px); margin-bottom: 40px; }
.ubl-links-group + .ubl-links-group { margin-top: 30px; }
.ubl-links-group h3 { color: #66666d; font-family: "DM Sans", "Inter", sans-serif; font-size: 12px; font-weight: 900; letter-spacing: .12em; margin: 0 0 14px; text-transform: uppercase; }
.ubl-links { display: flex; flex-wrap: wrap; gap: 10px; }
.ubl-links a { align-items: center; background: #fff; border: 1px solid #d8d8dc; border-radius: 999px; color: #050505 !important; display: inline-flex; font-size: 14px; font-weight: 700; gap: 9px; padding: 12px 20px; text-decoration: none; transition: background-color .2s ease, border-color .2s ease, color .2s ease; }
.ubl-links a:hover { background: #050505; border-color: #050505; color: #fff !important; }
.ubl-links a i { font-size: 12px; }

@media (max-width: 1199px) {
  .ubl-prose-layout { gap: 60px; }
  .ubl-tool { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 991px) {
  .ubl-section { padding: 88px 0; }
  .ubl-prose-layout { gap: 30px; grid-template-columns: minmax(0, 1fr); }
  .ubl-prose-head { position: static; }
  .ubl-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ubl-download { gap: 36px; grid-template-columns: minmax(0, 1fr); padding: 48px; }
  .ubl-hero-visual { margin-top: 20px; }
  .ubl-booking { margin: 0 auto; }
}
@media (max-width: 767px) {
  .ubl-section { padding: 72px 0; }
  .ubl-section h2 { font-size: clamp(34px, 9.5vw, 45px); }
  .ubl-steps { grid-template-columns: minmax(0, 1fr); margin-top: 40px; }
  .ubl-steps article { min-height: 0; }
  .ubl-compare { margin-top: 40px; }
  .ubl-compare-row { grid-template-columns: minmax(0, 1fr); }
  .ubl-compare-row.is-head { display: none; }
  .ubl-compare-row > div { padding: 12px 18px; }
  .ubl-compare-row > div:first-child { background: #050505; color: #fff; }
  .ubl-compare-row > div:nth-child(2), .ubl-compare-row > div:nth-child(3) { border-top: 0; }
  .ubl-tool { margin-top: 40px; }
  .ubl-tool-form, .ubl-tool-result { padding: 22px 18px; }
  .ubl-tool-grid, .ubl-fixture-rounds, .ubl-kpis { grid-template-columns: minmax(0, 1fr); }
  .ubl-fixture-rounds { max-height: none; overflow: visible; padding-right: 0; }
  .ubl-tool-result > footer { align-items: stretch; flex-direction: column; }
  .ubl-kpis b { font-size: 36px; }
  .ubl-download { border-radius: 18px; padding: 32px 22px; }
  .ubl-download .ubv-btn { width: 100%; }
  .ubl-links-section { padding: 64px 0; }
  .ubl-links a { font-size: 13px; padding: 10px 15px; }
  .ubl-prose { font-size: 16px; }
  .ubl-prose h3 { font-size: 20px; margin-top: 36px; }
}

/* el tema base pinta los <p> de gris: en las maquetas y bloques propios el color lo define el bloque */
.ubl-booking > footer p, .ubl-booking-form p, .ubl-download p, .ubl-fixture-round p { color: inherit; }
.ubl-booking-form b { color: #050505; }
