/* Corporate site ("/") - separate from the Billing app's own CSS files,
   reusing only base.css's --sf-* tokens/reset so both sites share one
   visual identity without duplicating the whole design system. */

body { display: flex; flex-direction: column; min-height: 100vh; }

#mktHeader {
  border-bottom: 1px solid var(--sf-border);
  background: #fff;
  position: sticky;
  top: 0;
  z-index: 20;
}
#mktHeaderInner {
  /* Edge-to-edge, not capped/centered like #mktMain's content container -
     the logo and login button need to sit at the actual viewport edges
     (see base_marketing.html/marketing.css comments on the grid columns
     below), not the edges of a centered 1120px box that leaves visible
     gaps on a wide screen. */
  width: 100%;
  box-sizing: border-box;
  padding: 14px 32px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 12px;
}
#mktHeaderLeft {
  grid-column: 1;
  justify-self: start;
  display: flex;
  align-items: center;
  gap: 14px;
}
#mktLogoGroup {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: var(--sf-navy);
}
#mktLogo { width: 32px; height: 32px; border-radius: 6px; object-fit: cover; }
#mktLogoText { font-size: 1.15rem; font-weight: 700; }

#mktNavToggle {
  display: none;
  background: none;
  border: 1px solid var(--sf-border);
  border-radius: 6px;
  width: 36px;
  height: 36px;
  align-items: center;
  justify-content: center;
  color: var(--sf-navy);
  cursor: pointer;
}
#mktNavToggle svg { width: 20px; height: 20px; flex-shrink: 0; }

#mktNav { grid-column: 2; display: flex; align-items: center; gap: 4px; }
.mkt-nav-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 8px 12px;
  border-radius: 6px;
  color: var(--sf-text);
  text-decoration: none;
  font-size: 0.92rem;
  font-weight: 500;
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--font-family);
}
.mkt-nav-link:hover { background: var(--sf-bg); }
.mkt-nav-link.active { color: var(--sf-blue); font-weight: 600; }

.mkt-nav-dropdown { position: relative; }
.mkt-nav-dropdown-menu {
  display: none;
  position: absolute;
  /* Flush against the trigger (no gap) rather than offset - a gap here
     would create a dead zone where moving the mouse down from the link to
     the menu loses :hover partway through and the menu disappears. */
  top: 100%;
  left: 0;
  min-width: 160px;
  background: #fff;
  border: 1px solid var(--sf-border);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  padding: 6px;
}
/* Pure CSS reveal - the trigger is a real link to /productos (see
   base_marketing.html), so clicking it always navigates; hovering or
   keyboard-focusing it (:focus-within covers Tab navigation too) is what
   additionally previews "Billing" without a JS click-toggle. */
.mkt-nav-dropdown:hover .mkt-nav-dropdown-menu,
.mkt-nav-dropdown:focus-within .mkt-nav-dropdown-menu { display: block; }
.mkt-nav-dropdown-menu a {
  display: block;
  padding: 8px 10px;
  border-radius: 6px;
  color: var(--sf-text);
  text-decoration: none;
  font-size: 0.9rem;
}
.mkt-nav-dropdown-menu a:hover { background: var(--sf-bg); }

#mktLoginButton {
  grid-column: 3;
  justify-self: end;
  padding: 8px 16px;
  border-radius: 6px;
  background: var(--sf-blue);
  color: #fff;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.9rem;
  white-space: nowrap;
}
#mktLoginButton:hover { background: var(--sf-blue-dark); }

#mktMain { max-width: 1120px; margin: 0 auto; padding: 0 24px; flex: 1; width: 100%; }

.mkt-hero { text-align: center; padding: 72px 0 56px; }
.mkt-hero h1 { font-size: 2.4rem; color: var(--sf-navy); margin: 0 0 16px; }
.mkt-hero-sub {
  max-width: 640px;
  margin: 0 auto 28px;
  color: var(--sf-text);
  font-size: 1.05rem;
  line-height: 1.6;
}
.mkt-cta {
  display: inline-block;
  padding: 12px 24px;
  border-radius: 8px;
  background: var(--sf-blue);
  color: #fff;
  text-decoration: none;
  font-weight: 600;
}
.mkt-cta:hover { background: var(--sf-blue-dark); }

.mkt-page-header { padding: 56px 0 32px; text-align: center; }
.mkt-page-header h1 { font-size: 2rem; color: var(--sf-navy); margin: 0 0 12px; }

.mkt-section { padding: 32px 0; }
.mkt-section h2 { font-size: 1.5rem; color: var(--sf-navy); margin: 0 0 24px; text-align: center; }
.mkt-section-cta { text-align: center; padding-bottom: 72px; }
.mkt-section-cta p { color: var(--sf-text); margin: 0 0 20px; }

.mkt-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 800px) { .mkt-cards { grid-template-columns: 1fr; } }
.mkt-card {
  background: #fff;
  border: 1px solid var(--sf-border);
  border-radius: 10px;
  padding: 24px;
}
.mkt-card h3 { margin: 0 0 10px; color: var(--sf-navy); font-size: 1.05rem; }
.mkt-card p { margin: 0; color: var(--sf-text); line-height: 1.55; font-size: 0.92rem; }

.mkt-product-logo { width: 48px; height: 48px; border-radius: 8px; object-fit: cover; flex-shrink: 0; }
.mkt-product-tagline { margin: 2px 0 0; color: var(--sf-blue); font-size: 0.9rem; font-weight: 600; }

/* /productos: a summary card per product, linking through to its own
   detail page - today just Billing, built to take more products as rows
   without changing the pattern. */
.mkt-product-list { max-width: 720px; margin: 0 auto; display: flex; flex-direction: column; gap: 16px; }
.mkt-product-summary-card {
  display: flex;
  gap: 18px;
  background: #fff;
  border: 1px solid var(--sf-border);
  border-radius: 12px;
  padding: 28px;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.mkt-product-summary-card:hover { border-color: var(--sf-blue); box-shadow: 0 4px 16px rgba(1, 118, 211, 0.1); }
.mkt-product-summary-body h2 { margin: 0; color: var(--sf-navy); }
.mkt-product-summary-body p { color: var(--sf-text); line-height: 1.55; margin: 10px 0 0; font-size: 0.92rem; }
.mkt-product-summary-link { display: inline-block; margin-top: 12px; color: var(--sf-blue); font-weight: 600; font-size: 0.88rem; }

/* /productos/billing (and future product detail pages) */
.mkt-section-narrow { max-width: 760px; margin: 0 auto; padding: 24px 0; }
.mkt-section-narrow h2 { color: var(--sf-navy); font-size: 1.3rem; margin: 0 0 14px; }
.mkt-section-narrow > p { color: var(--sf-text); line-height: 1.65; margin: 0; }

/* /products/billing "Cómo funciona": a genuine sequential pipeline (upload
   -> extraction -> classification -> review -> export), so - unlike
   .mkt-usecase-list below, which is 3 independent scenarios with no order -
   numbering here actually encodes real information. */
.mkt-flow-list { display: flex; flex-direction: column; gap: 0; border: 1px solid var(--sf-border); border-radius: 10px; background: #fff; overflow: hidden; max-width: 760px; margin: 0 auto; }
.mkt-flow-step { display: grid; grid-template-columns: 40px 1fr; gap: 16px; padding: 20px 24px; border-bottom: 1px solid var(--sf-border); }
.mkt-flow-step:last-child { border-bottom: none; }
.mkt-flow-num {
  font-weight: 800; font-size: 0.95rem; color: var(--sf-blue); background: #EAF4FD;
  border-radius: 50%; width: 30px; height: 30px; display: flex; align-items: center; justify-content: center;
}
.mkt-flow-step h3 { margin: 0 0 6px; color: var(--sf-navy); font-size: 1rem; }
.mkt-flow-step p { margin: 0; color: var(--sf-text); font-size: 0.9rem; line-height: 1.55; }
.mkt-flow-shot { margin-top: 14px; border: 1px solid var(--sf-border); border-radius: 8px; padding: 8px; overflow-x: auto; }
.mkt-flow-shot img { display: block; max-width: 100%; border-radius: 4px; margin: 0 auto; }
.mkt-flow-note {
  max-width: 760px; margin: 20px auto 0; background: var(--sf-bg); border-radius: 8px;
  padding: 14px 20px; font-size: 0.86rem; color: var(--sf-text);
}
.mkt-flow-note strong { color: var(--sf-navy); }

.mkt-usecase-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
@media (max-width: 760px) { .mkt-usecase-list { grid-template-columns: 1fr; } }
.mkt-usecase-card { background: var(--sf-bg); border-radius: 10px; padding: 18px; }
.mkt-usecase-card h3 { margin: 0 0 8px; color: var(--sf-navy); font-size: 0.95rem; }
.mkt-usecase-card p { margin: 0; color: var(--sf-text); font-size: 0.85rem; line-height: 1.5; }

.mkt-features-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
@media (max-width: 760px) { .mkt-features-columns { grid-template-columns: 1fr; } }
.mkt-features-heading { font-size: 0.95rem; margin: 0 0 14px; }
.mkt-features-heading-good { color: #2E844A; }
.mkt-features-heading-limit { color: #706E6B; }
.mkt-limitations-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.mkt-limitations-list li {
  font-size: 0.88rem;
  color: var(--sf-text);
  line-height: 1.5;
  padding-left: 22px;
  position: relative;
}
.mkt-limitations-list li::before {
  content: "–";
  position: absolute;
  left: 2px;
  color: #706E6B;
  font-weight: 700;
}

.mkt-cta-outline {
  background: #fff;
  color: var(--sf-blue);
  border: 1px solid var(--sf-blue);
}
.mkt-cta-outline:hover { background: var(--sf-bg); }

/* 2 plans (Standard/Premium) since Stripe replaced the old 3-tier mockup -
   capped width + centered so 2 cards don't stretch across a wide screen
   the way 3 evenly-filled columns used to. */
.mkt-pricing-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; align-items: stretch; max-width: 760px; margin: 0 auto; }
@media (max-width: 800px) { .mkt-pricing-grid { grid-template-columns: 1fr; max-width: 420px; } }
.mkt-pricing-card {
  position: relative;
  background: #fff;
  border: 1px solid var(--sf-border);
  border-radius: 12px;
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
}
.mkt-pricing-card.featured { border: 2px solid var(--sf-blue); box-shadow: 0 8px 20px rgba(1, 118, 211, 0.12); }
.mkt-pricing-badge {
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--sf-blue);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 999px;
  white-space: nowrap;
}
.mkt-pricing-card h3 { margin: 0 0 6px; color: var(--sf-navy); font-size: 1.15rem; }
.mkt-pricing-price { margin: 0 0 10px; font-size: 1.6rem; font-weight: 700; color: var(--sf-navy); }
.mkt-pricing-price span { font-size: 0.8rem; font-weight: 500; color: #706E6B; }
.mkt-pricing-desc { margin: 0 0 18px; color: var(--sf-text); font-size: 0.85rem; line-height: 1.5; min-height: 42px; }
.mkt-pricing-features { list-style: none; margin: 0 0 24px; padding: 0; flex: 1; display: flex; flex-direction: column; gap: 10px; }
.mkt-pricing-features li {
  font-size: 0.88rem;
  color: var(--sf-text);
  padding-left: 22px;
  position: relative;
}
.mkt-pricing-features li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--sf-blue);
  font-weight: 700;
}
.mkt-pricing-card .mkt-cta { text-align: center; }
.mkt-pricing-note { text-align: center; color: #706E6B; font-size: 0.82rem; margin: 28px 0 0; }
.mkt-pricing-note a { color: var(--sf-blue); }

/* /pricing: prices are per-product, not one flat list for all of Silad -
   this labels which product a plan grid belongs to (today just Billing,
   linking through to its own detail page) so a second product's pricing
   can get its own labeled section later without restructuring the page. */
.mkt-pricing-product-header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-bottom: 28px;
  text-decoration: none;
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}
.mkt-pricing-product-header:hover h2 { color: var(--sf-blue); }
.mkt-pricing-product-header h2 { margin: 0; color: var(--sf-navy); font-size: 1.3rem; transition: color 0.15s; }

/* A visibly "not here yet" placeholder (dashed, muted) rather than just a
   sentence - makes the "more products" promise concrete instead of an
   afterthought, without inventing product names we don't have yet. */
.mkt-pricing-more {
  max-width: 760px;
  margin: 8px auto 0;
  padding: 22px 24px;
  border: 1.5px dashed var(--sf-border);
  border-radius: 12px;
  display: flex;
  align-items: center;
  gap: 16px;
}
.mkt-pricing-more-icon {
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  border: 1.5px dashed var(--sf-blue);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--sf-blue);
  font-weight: 700;
  font-size: 1.2rem;
}
.mkt-pricing-more p { margin: 0; color: #706E6B; font-size: 0.86rem; line-height: 1.5; }
.mkt-pricing-more strong { color: var(--sf-navy); }

.mkt-faq-list { max-width: 720px; margin: 0 auto; display: flex; flex-direction: column; gap: 10px; }
.mkt-faq-item {
  background: #fff;
  border: 1px solid var(--sf-border);
  border-radius: 8px;
  padding: 14px 18px;
}
.mkt-faq-item summary {
  cursor: pointer;
  font-weight: 600;
  color: var(--sf-navy);
  list-style: none;
}
.mkt-faq-item summary::-webkit-details-marker { display: none; }
.mkt-faq-item summary::before { content: "+"; display: inline-block; width: 16px; color: var(--sf-blue); font-weight: 700; }
.mkt-faq-item[open] summary::before { content: "–"; }
.mkt-faq-item p { margin: 10px 0 0 16px; color: var(--sf-text); line-height: 1.55; font-size: 0.92rem; }
.mkt-faq-item a { color: var(--sf-blue); }

.mkt-contact-card {
  max-width: 480px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid var(--sf-border);
  border-radius: 12px;
  padding: 28px;
  text-align: center;
}
.mkt-contact-row {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--sf-navy);
  font-size: 1.05rem;
  font-weight: 600;
}
.mkt-contact-row a { color: var(--sf-blue); text-decoration: none; }
.mkt-contact-row a:hover { text-decoration: underline; }
.mkt-contact-note { margin: 14px 0 0; color: #706E6B; font-size: 0.85rem; }

#mktFooter {
  border-top: 1px solid var(--sf-border);
  padding: 20px 24px;
  text-align: center;
  color: #706E6B;
  font-size: 0.8rem;
}

@media (max-width: 760px) {
  #mktNavToggle { display: inline-flex; }
  #mktNav {
    display: none;
    /* Without this, an absolutely-positioned grid item's containing block
       for left/right is still just its own grid area (column 2), not the
       whole header - so left:0/right:0 below would only stretch across the
       centered nav column instead of the full header width. */
    grid-column: 1 / -1;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border-bottom: 1px solid var(--sf-border);
    flex-direction: column;
    align-items: stretch;
    padding: 8px 16px 16px;
    gap: 2px;
  }
  #mktNav.open { display: flex; }
  /* No :hover on touch, so the "Billing" preview never appears here -
     tapping "Nuestros Productos" just navigates straight to /productos,
     which is now the full listing anyway (see marketing/products.html). */
  #mktHeaderInner { position: relative; }
}
