:root {
    --brand-red: #CF1B24;
    --brand-red-dark: #9f1419;
    --brand-orange: #ff7a00;
    --brand-ink: #141414;
    --brand-muted: #5e646d;
    --brand-bg: #f4f4f4;
    --brand-surface: #ffffff;
    --brand-line: rgba(20, 20, 20, 0.08);
    --brand-shadow: 0 16px 50px rgba(18, 24, 40, 0.12);
    --brand-background: #0B0B0B;

    --font-system: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    --font-head: "Rajdhani", var(--font-system);
    --font-body: "Rajdhani", var(--font-system);

    --red: #E30613;
    --red-dark: #b0040f;
    --black: #111111;
    --white: #ffffff;
    --gray-light: #f5f5f5;
    --gray-mid: #cccccc;
    --gray-text: #555555;
    --section-py: 60px;
    --size-title-main: 96px;
    --size-body-lg: 40px;
    --size-body-md: 32px;
}

/* =========================
    Definiciones de tamaños de tipografías
========================= */
h1, h2, .promo-main-title, .brands-title, .franchise-title, .benefits-title, .differentiators-title {
    font-size: var(--size-title-main) !important;
    line-height: 1 !important;
}

body, p, .text-franquciasP, .brands-intro-card p, .info-card-box p {
    font-size: var(--size-body-md);
    line-height: 1.5;
}

.text-body-lg {
    font-size: var(--size-body-lg);
}

/* =========================
    Fin de definiciones de tamaños de tipografías
========================= */
* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: var(--font-body);
    color: var(--brand-ink);
    background: var(--brand-surface);
}

a {
    color: inherit;
    text-decoration: none;
}

img {
    max-width: 100%;
}

.section-pad {
    padding: 88px 0;
}

.section-alt {
    background: rgba(255, 255, 255, 0.6);
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 1030;
    backdrop-filter: blur(16px);
    background: var(--brand-background);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.site-header .navbar {
    padding: 1rem 0;
}

.site-header .navbar-brand {
    display: inline-flex;
    align-items: center;
    gap: 0.85rem;
}

.Logo {
    width: 100%;
    height: 100%;
}

.footer-logo {
    width: auto;
    max-width: 170px;
    height: auto;
}

.brand-mark {
    display: inline-grid;
    place-items: center;
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 0.8rem;
    background: linear-gradient(135deg, var(--brand-red) 0%, var(--brand-orange) 100%);
    color: #fff;
    font-size: 1rem;
    font-weight: 700;
}

.site-header .nav-link {
    color: rgba(255, 255, 255, 255);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.site-header .nav-link:hover,
.site-header .nav-link.active {
    color: #fff;
    border-radius: 6px;
    background: #CF1B24;
}

.site-header .navbar-toggler {
    border-color: rgba(255, 255, 255, 0.0);
}

.hero-panel,
.section-shell,
.form-shell,
.catalog-card,
.blog-featured,
.filters-shell,
.timeline-card,
.search-shell {
    background: var(--brand-surface);
    border: 1px solid var(--brand-line);
    border-radius: 28px;
    box-shadow: var(--brand-shadow);
}

.hero-panel,
.section-shell,
.catalog-card,
.blog-featured {
    padding: 2rem;
}

.form-shell,
.filters-shell,
.search-shell {
    padding: 1.5rem;
}

.section-shell {
    border-radius: 0;
    width: 490px;
    box-shadow: none;
    border: none;
}
.store-map-shell {
    min-height: 680px;
    overflow: hidden;
    background: var(--brand-surface);
    border: 1px solid var(--brand-line);
    box-shadow: var(--brand-shadow);
}

.store-map-frame {
    width: 100%;
    min-height: 680px;
    border: 0;
}

.store-locations {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.store-locations-title {
    margin: 0;
    font-size: 1.3rem;
    line-height: 1.35;
}

.store-location-list {
    display: grid;
    gap: 0.85rem;
}

.store-location-item {
    width: 100%;
    padding: 1rem 1.15rem;
    border: 1px solid rgba(20, 20, 20, 0.08);
    background: #fff;
    color: var(--brand-ink);
    font-weight: 700;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}

.store-location-item:hover,
.store-location-item.active {
    border-color: var(--brand-red);
    background: rgba(255, 122, 0, 0.08);
}

.store-location-item.active {
    color: var(--brand-red);
}

.store-locations p {
    margin: 0;
    color: var(--brand-muted);
}
.page-hero {
    padding-bottom: 0;
    background: #00000033;
}

.display-title,
.page-title,
.section-title,
.section-heading h2,
.promo-copy h3,
.blog-card h3,
.cta-card h3,
.info-card h2,
.info-card h3,
.catalog-card h2 {
    font-family: var(--font-head);
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.display-title {
    margin-top: 0.6rem;
    margin-bottom: 1rem;
    font-size: clamp(3rem, 6vw, 5rem);
    line-height: 0.95;
    color: #fff;
}

.hero-panel {
    background: linear-gradient(130deg, rgba(210, 31, 38, 0.94), rgba(20, 20, 20, 0.92)),
    var(--brand-surface);
    color: #fff;
}

.page-title {
    font-size: clamp(2.7rem, 5vw, 4.2rem);
    line-height: 0.96;
    margin: 0.5rem 0 1rem;
}

.section-title,
.section-heading h2,
.catalog-card h2 {
    margin-bottom: 0.85rem;
}

.lead-copy,
.section-heading p,
.section-shell p,
.catalog-card p,
.article-content p,
.article-content li,
.cta-card p {
    color: var(--brand-muted);
    line-height: 1.75;
}

.hero-panel .lead-copy,
.hero-panel .stat-card span {
    color: rgba(255, 255, 255, 0.78);
}

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.text-brand {
    color: var(--brand-red);
}

/* =========================================
   BOTONES GLOBALES (UNIFICADOS)
========================================= */
.btn {
    border-radius: 7px !important;
    font-size: var(--size-body-md) !important;
    font-weight: 700;
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: all 0.3s ease;
    padding: 16px 32px;
    line-height: 1;
}

.btn-brand {
    background: var(--brand-red);
    border: none;
    color: #fff;
}

.btn-brand:hover {
    color: #fff;
    background: linear-gradient(135deg, var(--brand-red-dark), #e96800);
    transform: translateY(-2px);
}

.btn-ghost {
    border-color: rgba(255, 255, 255, 0.32);
    background: transparent;
    color: inherit;
}

.btn-sm {
    font-size: 16px !important;
    padding: 10px 22px;
}

.stats-grid {
    margin-top: 2rem;
}

.stat-card,
.brand-tile,
.info-card,
.chip,
.blog-card,
.cta-card {
    border-radius: 24px;
}

.stat-card {
    height: 100%;
    padding: 1rem;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.14);
}

.stat-card strong {
    display: block;
    font-size: 1.25rem;
}

.brand-tile {
    display: grid;
    place-items: center;
    min-height: 110px;
    background: rgba(255, 255, 255, 0.8);
    border: 1px solid var(--brand-line);
    box-shadow: var(--brand-shadow);
    font-family: var(--font-head);
    font-size: 1.8rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.image-placeholder {
    display: grid;
    place-items: center;
    text-align: center;
    padding: 3.5rem;
    font-weight: 600;
}

.hero-panel .image-placeholder {
    min-height: 420px;
    border-color: rgba(255, 255, 255, 0.26);
    color: rgba(255, 255, 255, 0.8);
    background: linear-gradient(150deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0.06)),
    radial-gradient(circle at top right, rgba(255, 122, 0, 0.35), transparent 42%);
}

.image-placeholder-wide {
    min-height: 260px;
}

.image-placeholder-card {
    min-height: 220px;
}

.image-placeholder-large {
    min-height: 320px;
}

.image-placeholder-tall {
    min-height: 380px;
}

.image-placeholder-hero {
    min-height: 100%;
}

.section-heading {
    max-width: 760px;
    margin-bottom: 2rem;
}

.promo-card {
    position: relative;
    background: var(--gray-light);
    border: 1px solid #eee;
    overflow: hidden;
}

.promo-copy {
    padding: 20px;
}

.promo-copy h3 {
    font-family: var(--font-head);
    font-weight: 700;
}

.promo-badge {
    position: absolute;
    top: 15px;
    right: 15px;
    background: #e10613;
    color: #fff;
    padding: 8px 15px;
    font-weight: 700;
}

.image-placeholder {
    text-align: center;
    padding: 30px;
}

.image-placeholder img {
    max-width: 100%;
    height: auto;
}

.price-old {
    display: block;
    color: #bdbdbd;
    text-decoration: line-through;
}

.price-new {
    display: inline-block;
    background: #000;
    color: #fff;
    padding: 8px 18px;
    font-size: 32px;
    font-weight: 700;
    margin-top: 10px;
}

.custom-dots {
    position: relative;
    margin-top: 20px;
}

.custom-dots button {
    width: 10px !important;
    height: 10px !important;
    border-radius: 50%;
    background: #ccc !important;
    border: none !important;
}

.custom-dots .active {
    background: #e10613 !important;
}

.promo-card,
.blog-card,
.info-card {
    height: 100%;
    overflow: hidden;
    background: var(--brand-surface);
    border: 1px solid var(--brand-line);
    box-shadow: var(--brand-shadow);
}

.promo-copy,
.blog-card-copy,
.info-card {
    padding: 1.5rem;
}

.promo-copy h3 {
    font-family: var(--font-head);
    font-weight: 700;
    line-height: 1;
    letter-spacing: normal;
    padding-top: 10px;
}

.promo-card {
    position: relative;
}

.promo-badge {
    position: absolute;
    top: 1rem;
    right: 1rem;
    padding: 0.4rem 1.5rem;
    background: var(--brand-red);
    color: #fff;
    font-weight: 700;
}

.promo-category,
.blog-meta,
.blog-meta-large {
    display: inline-block;
    margin-bottom: 0.55rem;
    color: var(--brand-red);
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.price-wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1rem;
    width: 140px;
    left: 10px;
}

.price-old {
    color: #BCBABA;
    text-decoration: line-through;
}

.price-new {
    color: #ffffff;
    font-size: 1.75rem;
    font-weight: 700;
    background: #000000;
    padding: 0.2rem;
    width: 140px;
}

.card-link {
    text-decoration: none;
    color: inherit;
}

.custom-card {
    border: 1px solid #ccc;
    background: var(--gray-light);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.custom-card img {
    width: 100%;
    height: 220px;
    object-fit: cover;
}

.card-text {
    padding: 15px;
    font-weight: 600;
}

.custom-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

.feature-list {
    padding-left: 1.1rem;
    color: var(--brand-muted);
    line-height: 1.8;
}

.cta-card {
    display: flex;
    justify-content: space-between;
    gap: 1.5rem;
    align-items: center;
    padding: 1.6rem 1.8rem;
    background: linear-gradient(135deg, rgba(255, 122, 0, 0.14), rgba(210, 31, 38, 0.1)),
    var(--brand-surface);
    border: 1px solid var(--brand-line);
    box-shadow: var(--brand-shadow);
}

.cta-card-wide {
    padding: 2rem;
}

.timeline-shell {
    position: relative;
    display: grid;
    gap: 1.5rem;
}

.timeline-shell::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 4.2rem;
    width: 2px;
    background: linear-gradient(180deg, var(--brand-red), rgba(255, 122, 0, 0.4));
}

.timeline-item {
    position: relative;
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 1.5rem;
    align-items: start;
}

.timeline-year {
    position: relative;
    z-index: 1;
    display: inline-grid;
    place-items: center;
    width: 82px;
    height: 82px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--brand-red), var(--brand-orange));
    color: #fff;
    font-family: var(--font-head);
    font-size: 1.6rem;
    font-weight: 700;
}

.chip-group {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
    margin-top: 2rem;
}

.chip {
    padding: 0.8rem 1.1rem;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid var(--brand-line);
    box-shadow: var(--brand-shadow);
    font-weight: 700;
}

.faq-accordion .accordion-item {
    margin-bottom: 1rem;
    border: 1px solid var(--brand-line);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: var(--brand-shadow);
}

.faq-accordion .accordion-button {
    font-weight: 700;
    padding: 1.2rem 1.4rem;
}

.faq-accordion .accordion-button:not(.collapsed) {
    color: var(--brand-red);
    background: rgba(210, 31, 38, 0.06);
    box-shadow: none;
}

.faq-accordion .accordion-body {
    color: var(--brand-muted);
    line-height: 1.75;
}

.form-label {
    font-weight: 700;
    color: var(--brand-ink);
}

.form-control,
.form-select {
    min-height: 54px;
    border-radius: 16px;
    border-color: rgba(20, 20, 20, 0.14);
}

.form-control:focus,
.form-select:focus {
    border-color: rgba(210, 31, 38, 0.45);
    box-shadow: 0 0 0 0.25rem rgba(210, 31, 38, 0.12);
}

.narrow-container {
    max-width: 880px;
}

.article-content h2 {
    margin-top: 2rem;
    margin-bottom: 0.75rem;
    font-family: var(--font-head);
    font-size: 2.1rem;
    text-transform: uppercase;
}

.article-quote {
    margin: 2rem 0;
    padding: 1.5rem 1.75rem;
    border-left: 4px solid var(--brand-red);
    border-radius: 0 20px 20px 0;
    background: rgba(255, 255, 255, 0.8);
    color: var(--brand-ink);
    font-size: 1.15rem;
    font-weight: 600;
}

.site-footer {
    padding: 72px 0 28px;
    color: rgba(255, 255, 255, 0.82);
    background: #272626;
}

.footer-grid {
    display: grid;
    gap: 2rem;
    justify-items: center;
}

.footer-bars {
    border-left: #CF1B24 2px solid;
    border-right: #CF1B24 2px solid;
}

.footer-brand {
    max-width: 240px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

.footer-brand-logo {
    display: inline-flex;
}

.site-footer .navbar-brand {
    display: inline-flex;
    align-items: center;
    gap: 0.85rem;
    color: #fff;
    font-family: var(--font-head);
    font-size: 1.7rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.footer-brand p,
.footer-list a,
.footer-contact a {
    color: rgba(255, 255, 255, 0.72);
}

.footer-social {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    margin-top: 1rem;
}

.footer-social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    color: #fff;
    font-size: 1.1rem;
    transition: transform 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}

.footer-social-link:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.08);
    transform: translateY(-2px);
}

.footer-title {
    margin-bottom: 1rem;
    font-family: var(--font-head);
    font-weight: 600;
    font-size: 18px;
    text-transform: uppercase;
    color: #fff;
}

.footer-copyright {
    font-weight: 700;
    text-transform: uppercase;
    font-size: 14px;
}

.footer-list, .footer-contact {
    display: grid;
    gap: 0.7rem;
    font-weight: 400;
    font-size: 18px;
    text-transform: uppercase;
}

.footer-contact {
    font-weight: 600;
    text-align: center;
}

.footer-bottom {
    margin-top: 2rem;
    padding-top: 1.4rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    font-size: 0.92rem;
}

.home-hero-section,
.home-hero-section .container-fluid,
.home-hero-shell {
    position: relative !important;
    overflow: visible !important; /* ¡Esto libera a la moto para que pueda pisar la sección de abajo! */
}

.home-hero-section {
    z-index: 50 !important; /* Prioridad máxima */
    background: #1d1d1d
}

.home-hero-shell {
    background: #d9d9d9;
    min-height: 668px;
    position: relative;
}

.home-hero-control {
    width: 44px;
    height: 44px;
    top: 50%;
    opacity: 1;
    transform: translateY(-50%);
}

.home-hero-control.carousel-control-prev {
    left: 18px;
}

.home-hero-control.carousel-control-next {
    right: 18px;
}

.home-hero-control-icon {
    width: 44px;
    height: 44px;
    border: 2px solid #e10613;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #e10613;
    font-size: 18px;
    background: rgba(255, 255, 255, 0.6);
}

.home-hero-cta {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 10;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    padding: 0 20px;
}

#homeHeroCarousel .carousel-inner,
#homeHeroCarousel .carousel-item {
    overflow: visible !important;
}

.home-hero-stage {
    min-height: 668px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #d7d7d7;
}

.home-hero-bike {
    position: absolute;
    width: 100%;
    max-width: 1027px !important;
    height: 918px !important;
    right: 0;
    bottom: -240px;
    z-index: 15;
    pointer-events: none;
}

.home-hero-bike img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.home-about-overlap {
    background: linear-gradient(#1d1d1d 50%, #ebebeb 50%);
    position: relative;
    margin-top: -100px;
    z-index: 4;
    padding: 50px 0;

}

.home-about-row {
    flex-wrap: nowrap;
}

.home-about-shell {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 40px;
    flex-wrap: wrap;
}

.home-about-visual {
    flex: 1 1 42%;
    min-width: 280px;
    max-width: 600px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.home-about-visual img {
    width: 100%;
    height: auto;
    display: block;

}

.home-about-card {
    background: #f4f4f4;
    padding: 35px;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.home-about-card .eyebrow {
    display: flex;
    margin-bottom: 1rem;
    flex-direction: column;
    align-items: flex-start;
    font-weight: 700;
    line-height: 127%;

}

.home-about-card h2 {
    margin: 0;
    text-transform: none;
}

.home-about-card h2 span {
    color: var(--brand-red);
}

.home-about-card p {
    margin: 0;
    margin-top: 1rem;
    color: var(--brand-muted);
    line-height: 1.75;
}

.home-about-action {
    margin-top: 2.25rem;
    display: flex;
    justify-content: center;
}

.home-about-btn {
    min-width: 150px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* ========================================= */
/* NUEVAS TARJETAS DE BLOGS (DISEÑO FIGMA)   */
/* ========================================= */

.blogs-section-wrapper {
    min-height: 1229px;
    background-color: #ffffff;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 80px 0;
}

.blog-card-pro {
    width: 100%;
    max-width: 581px;
    min-height: 791px;
    background-color: #f4f4f4;
    display: flex;
    flex-direction: column;
    margin: 0 auto;
}

.blog-card-pro-img {
    width: 100%;
    max-width: 580px;
    height: 390px;
    overflow: hidden;
}

.blog-card-pro-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.blog-card-pro-body {
    padding: 30px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.blog-card-pro-title {
    font-family: var(--font-head);
    font-weight: 800;
    color: #000000;
    text-transform: uppercase;
    margin-bottom: 15px;
    line-height: 1.2;
}

.blog-card-pro-title span {
    color: var(--brand-red);
}

.blog-card-pro-desc {
    color: #333333;
    line-height: 1.5;
    margin-bottom: auto;
}

.home-brands-section {
    padding: 26px 0 44px;
    background: var(--brand-bg);
}

.home-brands-heading {
    margin-bottom: 14px;
}

.home-brands-heading h2 {
    font-family: var(--font-head);
    font-weight: 700;
    letter-spacing: normal;
    text-transform: uppercase;
    line-height: 0.95;
}

.home-brands-heading p {
    font-family: var(--font-head);
    font-weight: 700;
    line-height: 1;
    letter-spacing: normal;

}

.home-brands-grid .col-6,
.home-brands-grid .col-md-3 {
    display: flex;
}

.home-brand-card {
    display: grid;
    width: 100%;
    color: inherit;
}

.home-brand-piece {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 18px 12px;
    background: #fff;
    transition: background-color 0.2s ease;
}

.home-brand-logo {
    min-height: 148px;
}

.home-brand-bike-card {
    min-height: 118px;
}

.home-brand-piece img {
    max-width: 100%;
    max-height: 371px;
    object-fit: contain;
    transition: transform 0.2s ease;
}

.home-brand-bike-card img {
    height: 371px;
}

.home-brand-card:hover .home-brand-piece,
.home-brand-card:focus-visible .home-brand-piece {
    background: #eaa2aa;
}

.home-brand-card:hover img,
.home-brand-card:focus-visible img {
    transform: scale(1.04);
}

/* ========================================= */
/* SECCIÓN OBTÉN UNA FRANQUICIA (HOME)       */
/* ========================================= */
.home-franchise-section {
    background-color: var(--gray-light); /* Fondo gris claro de Figma */
    padding: 80px 0;
}

.home-franchise-img {
    width: 100%;
    max-width: 580px;
    height: auto;
    object-fit: cover;
}

.home-franchise-content {
    max-width: 540px;
}

.home-franchise-title {
    font-weight: 800;
    line-height: 1.1;
    text-transform: uppercase;
    color: #000000;
    margin-bottom: 25px;
}

.home-franchise-title span {
    color: #e10613; /* Rojo Elektra */
}

.home-franchise-desc {
    color: #111111;
    line-height: 1.5;
    margin-bottom: 20px;
    font-weight: 500;
}

.form-container {
    background: #eee;
    padding: 40px;
    border: 1px solid #ccc;
}

.motos-img {
    max-height: 350px;
    object-fit: contain;
}

/* Texto */
.title {
    font-weight: 800;
    font-size: 28px;
}

.title span {
    color: #d62828;
}

.subtitle {
    font-size: 12px;
    letter-spacing: 1px;
    margin-bottom: 20px;
}

/* Inputs estilo línea */
.custom-input {
    width: 100%;
    border: none;
    border-bottom: 2px solid #d62828;
    margin-bottom: 20px;
    padding: 8px 5px;
    background: transparent;
    outline: none;
}

/* Pregunta */
.question {
    font-size: 12px;
    font-weight: 600;
    margin-top: 10px;
}

/* Radios */
.radio-group {
    display: flex;
    gap: 20px;
    margin-bottom: 20px;
}

.radio-group label {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
}

/* Logos */
.logos {
    display: flex;
    gap: 40px;
    align-items: center;
    flex-wrap: wrap;
}

.logos img {
    height: 20px;
    opacity: 0.8;
}

@media (max-width: 1199.98px) {
    .home-hero-bike {
        height: auto !important;
        bottom: -70px;
    }

    .home-hero-bike img {
        height: auto;
    }
}

@media (max-width: 767.98px) {
    /* Redefinimos las variables maestras solo para pantallas pequeñas */
    :root {
        --size-title-main: 24px; /* Antes 96px */
        --size-body-md: 18px;    /* Antes 32px */
    }
    h1, h2, .promo-main-title, .brands-title, .franchise-title, .benefits-title, .differentiators-title {
        line-height: 1.2 !important;
    }
    .btn {
        width: 126px !important;
        height: 30px !important;
        border-radius: 3px !important;

        padding: 0 !important;
        /*font-size: 12px !important;*/
        letter-spacing: 0 !important;
    }
    /* CONTENEDORES Y TARJETAS GLOBALES
   Controla el aspecto general de la mayoria de las cajas de contenido (formularios, tarjetas de blog, filtros, linea de tiempo). 
   - Suaviza los bordes (22px).
   - Reduce el "respiro" interno (padding).
   - Fuerza un ancho estricto de 290px para garantizar que no se desborden en pantallas de celulares muy pequeños. */
    .hero-panel,
    .section-shell,
    .form-shell,
    .catalog-card,
    .blog-featured,
    .filters-shell,
    .timeline-card,
    .search-shell {
        border-radius: 22px;
        padding: 1.35rem;
        width: 290px;
    }

    /* TARJETAS DE MARCAS
   Modifica las cajas donde se presentan las marcas. Disminuye la altura mínima a 90px y ajusta la fuente 
   para que los logos/textos se vean proporcionales en el espacio reducido. */
    .brand-tile {
        min-height: 90px;
    }
    /* MARCOS DE IMAGENES GENÉRICOS
   Establece una altura base de 210px para las areas destinadas a cargar imagenes en diferentes tipos de tarjetas.
   Esto evita que la estructura de la tarjeta colapse o "brinque" mientras la imagen se esta descargando. */
    .image-placeholder-wide,
    .image-placeholder-card,
    .image-placeholder-large,
    .image-placeholder-tall {
        min-height: 210px;
    }
    /* MARCO DE IMAGEN DEL BANNER PRINCIPAL
   Le da un trato exclusivo al espacio de imagen dentro del panel principal (hero), haciendolo un poco mas alto (280px)
   que las imagenes secundarias del bloque anterior. */
    .hero-panel .image-placeholder {
        min-height: 280px;
    }
    /* FLECHA IZQUIERDA DEL CARRUSEL
   Empuja la flecha de navegacion izquierda del banner principal casi contra el borde de la pantalla, dejando solo 10px de margen.*/
    .home-hero-control.carousel-control-prev {
        left: 10px;
    }
    /* FLECHA DERECHA DEL CARRUSEL
   Empuja la flecha de navegacion derecha del banner principal casi contra el borde de la pantalla, dejando solo 10px de margen. */
    .home-hero-control.carousel-control-next {
        right: 10px;
    }
    /* POSICIÓN DEL TEXTO Y BOToN EN EL BANNER
   Ajusta la altura del bloque central que contiene el titulo, el texto y el boton del carrusel principal. 
   Al ponerlo en 48%, lo situa casi en el medio exacto, elevandolo un par de pixeles hacia arriba para dejarle 
   mas espacio visual a la moto en la parte inferior. */
    .home-hero-cta {
        top: 48%;
    }

    .home-hero-bike {
        right: auto !important;
        left: 7% !important;
        bottom: -20% !important;
        width: 95% !important;
        height: auto !important;
        max-height: 60vh;
    }

    .home-hero-bike img {
        width: 100% !important;
        height: 100% !important;
        object-fit: contain !important;
        object-position: bottom left !important;
        /*transform: scale(1.25);*/
        transform-origin: bottom left;
    }

    .home-hero-cta {
        top: 57% !important;
        width: 83% !important;
    }

    .home-hero-cta > div {
        transform: none !important;
        margin-bottom: 20px;
    }

    .home-hero-cta h2 {
        line-height: 1.1 !important;
    }

    .home-hero-cta p {
        margin-top: 10px !important;
        /*Forzamos a que la descripción máximo tenga 3 líneas, si es más larga, pone "..." */
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    /* Achicamos la imagen de la tienda para que no toque los bordes */
    .about-image {
        max-width: 75% !important;
        margin: 0 auto 15px auto;
        display: block;
    }
    /* Reducimos el ancho y el relleno de la caja gris de texto */
    .about-section .franchise-card {
        width: 88%;
        margin: 0 auto;
        padding: 30px 20px !important;
    }
    /* Anulamos los 96px globales del título y lo adaptamos a movil */
    .about-section .promo-main-title {
        margin-bottom: 15px;
        text-align: justify !important;
    }

    /* Ajustamos los parrafos para mejorar la lectura */
    .about-section p {
        line-height: 1.5 !important;
        margin-bottom: 10px !important;
        text-align: justify !important;
    }
    .text-franquciasP{
        text-align: justify !important;
    }

    /* Acercamos el boton de "Conoce Mas" a la tarjeta */
    .about-section .text-center {
        margin-top: 20px !important;
    }
    .home-about-overlap {
        margin-top: -100px;
        padding: 16px 16px 24px;
    }

    .home-about-shell {
        gap: 1.5rem;
    }

    .home-about-card {
        padding: 1.4rem;
    }

    .home-about-card h2 {
        font-size: 1.75rem;
    }

    .home-about-card p,
    .home-brands-heading p {
        font-size: 0.92rem;
    }
    /* Alineación a la izquierda y ajuste del texto (quitar bold) */
    .home-brands-heading {
        text-align: left !important;
        padding: 0 15px;
    }

    .home-brands-heading h2 {
        font-size: 24px !important;
        margin-bottom: 10px;
    }

    .home-brands-heading p {
        font-weight: 400 !important;
        font-size: 16px !important;
        line-height: 1.4 !important;
        color: #111111 !important;
    }

    .home-brands-grid .col-6 {
        width: 100% !important;
    }

    .home-brand-card {
        display: flex !important;
        flex-direction: row !important;
        align-items: center;
        justify-content: space-between;
        padding: 15px 0;
    }

    .home-brand-piece {
        background: transparent !important;
        width: 50% !important;
        min-height: auto !important;
        padding: 10px !important;
    }

    .home-brand-piece img {
        width: 100%;
        object-fit: contain;
        max-height: 170px;
    }
    .home-about-action {
        margin-top: 1.2rem;
    }

    .home-brands-section {
        padding: 18px 0 34px;
    }

    .home-brand-logo {
        min-height: 102px;
    }

    .home-brand-bike-card {
        min-height: 88px;
    }
    .store-map-shell,
    .store-map-frame {
        height: 220px !important;
        min-height: 220px !important;
    }
    /* TARJETAS DE BLOGS*/
    .blog-card-pro {
        width: 80% !important;
        min-height: 751px !important;
    }

    .blog-card-pro-img {
        height: 370px !important;
    }
    .home.franchise-section{
        padding: 5px !important;
    }
    /* OBTEN UNA FRANQUICIA*/
    .home-franchise-section .row {
        display: grid !important;
        grid-template-columns: 60% 40%;
        margin-left: 0 !important;
        margin-right: 0 !important;
        align-items: center;
    }

    /* Ubicamos la imagen en la celda izquierda */
    .home-franchise-section .row > div:first-child {
        grid-column: 1 / 2;
        padding: 0 !important;
    }
    .home-franchise-img{
        max-width: 100% !important;
        height: auto;
    }
    /* Volvemos "invisibles" a los contenedores padre del texto 
          para poder posicionar al título y los párrafos por separado */
    .home-franchise-section .row > div:last-child,
    .home-franchise-content {
        display: contents !important;
    }

    /* Anclamos el título a la celda derecha y reducimos su tamaño */
    .home-franchise-title {
        grid-column: 2 / 3;
        text-align: left !important;
        margin: 0 !important;
        padding-left: 10px;
        align-self: center;
    }

    /* Forzamos los párrafos a ocupar todo el ancho debajo de la imagen y los justificamos */
    .home-franchise-desc {
        grid-column: 1 / 3;
        text-align: justify !important;
        margin-bottom: 0 !important;
    }

    /* Espaciado extra antes del botón */
    .home-franchise-desc.mb-4 {
        margin-bottom: 25px !important;
    }

    /* Centramos el contenedor del botón al final */
    .home-franchise-content > div {
        grid-column: 1 / 3;
        text-align: center;
    }
    /* UNETE AHORA */    
    .section-pad.bg-white .container .row {
        display: flex !important;
        flex-direction: column !important;
        padding: 30px 20px !important;
        border: 1px solid #d4d4d4 !important;
        border-radius: 4px;
    }    
    .section-pad.bg-white .col-md-6,
    .section-pad.bg-white .form-box {
        display: contents !important;
    }    
    .section-pad.bg-white .title {
        order: 1 !important;
        text-align: center !important;
        font-size: 28px !important;
        margin-bottom: 10px !important;
        width: 100%;
    }    
    .motos-img {
        order: 2 !important;
        width: 100% !important;
        max-width: 349px !important;
        height: 349px !important;
        object-fit: contain !important; 
        margin: 0 auto 20px auto !important;
    }    
    .section-pad.bg-white .subtitle {
        order: 3 !important;
        text-align: center !important;
        width: 100%;
        margin-bottom: 25px !important;
        font-size: 20px !important;
    }    
    .section-pad.bg-white form {
        order: 4 !important;
        width: 100%;
    }    
    .section-pad.bg-white form button[type="submit"] {
        display: block !important;
        margin-left: auto !important;
        margin-right: 0 !important;
    }    
    .section-pad.bg-white .alert {
        order: 5 !important;
        width: 100%;
    }    
    .section-pad.bg-white .col-12 {
        order: 6 !important;
        width: 100%;
        margin-top: 25px !important;
        padding-top: 25px !important;
    }    
    .section-pad.bg-white .col-12 img {
        height: 18px !important;
    }
    /* RESPONSIVE PAGINA NOSOTROS*/
    .history-title{
        font-size: 48px !important;        
    }    
    .timeline-intro{
        padding : 30px !important;
        background: #272626 !important;
    }
    
    .timeline-desktop.d-none {
        display: block !important;
    }

    .mobile-values {
        display: none !important;
    }
    
    .timeline-row {
        display: flex !important;
        flex-direction: column !important;
        height: auto !important;
        min-height: auto !important;
    }
    
    .timeline-row:nth-child(even) {
        flex-direction: column-reverse !important;
    }
    
    .white-box, .black-box {
        width: 100% !important;
        padding: 40px 25px !important;
    }

    .black-box {
        min-height: 250px !important
    }
    
    .white-box h3 {
        font-size: 42px !important;
        margin-bottom: 15px !important;
        text-align: left !important;
    }

    .white-box p {
        font-size: 16px !important;
        line-height: 1.5 !important;
        margin: 0 !important;
        text-align: left !important;
    }
    
    .timeline-intro {
        padding: 40px 20px !important;
        font-size: 14px !important;
        line-height: 1.6 !important;
    }
    /*RRESPONSIVE PAGINA MARCAS*/
    .brands-logo-carousel .brands-logo-item.bg-dark {
        background-color: #ffffff !important;
        min-height: 300px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .brands-logo-carousel .brands-logo-item img {
        max-height: 140px !important;
        width: auto !important;
    }

    .home-gallery .text-center.mb-5 {
        display: none !important;
    }
    
    .home-gallery .gallery-row {
        overflow-x: hidden !important;
        flex-wrap: nowrap !important;
    }
    
    .home-gallery .col-10 {
        width: 20% !important;
        flex: 0 0 20% !important;
    }
    
    .home-gallery .gallery-item {
        padding: 0 !important;
        height: 150px !important;
    }
    
    .home-gallery .gallery-item img {
        border-radius: 0 !important;
        height: 100% !important;
        width: 100% !important;
        object-fit: cover !important;
    }
    .brands-bike-panel.d-md-none {
        text-align: left !important;
        padding: 35px 15px 30px !important;
        background: linear-gradient(to bottom, #242424 0%, #242424 65%, #f2f2f2 65%, #f2f2f2 100%) !important;
    }

    .brands-bike-panel.d-md-none h5 {
        font-family: var(--font-head);
        font-size: 36px !important;
        font-weight: 800 !important;
        text-transform: uppercase !important;
        margin-bottom: 0 !important;
        color: #ffffff !important;
        line-height: 1.1 !important;
    }

    .brands-bike-panel.d-md-none h6 {
        font-family: var(--font-head);
        font-size: 28px !important;
        font-weight: 800 !important;
        text-transform: uppercase !important;
        margin-bottom: 15px !important;
    }

    .brands-bike-panel.d-md-none img.img-fluid {
        height: 310px !important;
        max-height: 310px !important;
        width: 100% !important;
        object-fit: contain !important;
        margin-bottom: 0 !important;
    }

    .brands-bike-panel.d-md-none .bg-light {
        background-color: #ffffff !important;
        border-radius: 0 !important;
        padding: 25px 20px !important;
        box-shadow: none !important;
        width: 90% !important;
        margin: 0 auto !important;
    }

    .brands-bike-panel.d-md-none .bg-light p {
        font-size: 16px !important;
        color: #111111 !important;
        line-height: 1.5 !important;
        text-align: left !important;
    }

    .brands-bike-panel.d-md-none .brands-bike-action {
        margin-top: 35px !important;
    }
    /*RESPONSIVE PAGINA PTOS. VENTA*/
    .info-section .info-row {
        display: flex !important;
        flex-direction: column !important;
    }

    .info-section .info-row > .col-lg-6 {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .info-card-box {
        margin-bottom: 20px !important;
    }
    /* RESPONSIVE PAGINA FRANQUICIAS */
    
    .franquicias-hero {
        height: 300px !important;
    }

    .d-none.d-md-block {
        display: block !important;
    }
    
    .articlemarcas {
        margin: 10px !important;
        padding: 20px !important;
    }

    .articlemarcas h1 {
        font-size: 28px !important;
        margin-bottom: 20px !important;
    }
    
    .franchise-section .row {
        display: flex !important;
        flex-direction: column !important;
    }

    .franchise-section .col-md-6 {
        width: 100% !important;
    }

    .franchise-img img {
        max-height: 250px !important;
        margin-bottom: 20px;
    }

    .promo-main-title {
        font-size: 28px !important;
        margin-bottom: 20px !important;
    }
    
    .custom-faq .accordion-button {
        font-size: 16px !important;
        padding: 10px 0 !important;
    }
    
    .info-section .info-row {
        display: flex !important;
        flex-direction: column !important;
    }

    .info-section .col-6 {
        width: 100% !important;
    }
    /* RESPONSIVE DE FRANQUICIAS */
    
    .franchise-section .franchise-img img {
        width: 240px !important;
        height: 240px !important;
        object-fit: cover !important;
        margin: 0 auto 30px auto !important;
    }
    
    .franchise-section .franchise-card {
        width: 349px !important;
        height: 253px !important;
        margin: 0 auto !important;
        padding: 30px 25px !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
    }
    
    .franchise-section .franchise-card .promo-main-title {
        text-align: left !important;
        font-size: 36px !important;
        line-height: 1.1 !important;
        margin-bottom: 15px !important;
    }
    
    .franchise-section .franchise-card .text-franquciasP {
        text-align: justify !important;
        font-size: 18px !important;
        line-height: 1.4 !important;
        margin-bottom: 0 !important;
    }
    /* FRANQUICIA */
    
    .benefits-title {
        font-size: 36px !important;
        text-align: left !important;
        line-height: 1.1 !important;
    }
    
    .benefits-table-wrapper {
        display: grid !important;
        grid-template-columns: repeat(6, 1fr) !important;
    }
    
    .benefits-table-wrapper .row {
        display: contents !important;
    }
    
    .benefits-table-wrapper [class*="col"] {
        grid-column: span 2 !important;
        display: flex !important;
    }
    
    .benefit-box {
        width: 100% !important;
        padding: 12px 5px !important;
        font-size: 11px !important;
        min-height: 90px !important;
    }

    /* ORDENAMIENTO  Y ÚLTIMA FILA A 2 COLUMNAS */

    /* FILA 1*/
    .benefits-table-wrapper .row:nth-child(2) .col:nth-child(1) { order: 1; }
    .benefits-table-wrapper .row:nth-child(2) .col:nth-child(2) { order: 2; }
    .benefits-table-wrapper .row:nth-child(2) .col:nth-child(4) { order: 3; }

    /* FILA 2*/
    .benefits-table-wrapper .row:nth-child(2) .col:nth-child(3) { order: 4; }
    .benefits-table-wrapper .row:nth-child(2) .col:nth-child(5) { order: 5; }
    .benefits-table-wrapper .row:nth-child(3) .col:nth-child(3) { order: 6; }

    /* FILA 3*/
    .benefits-table-wrapper .row:nth-child(3) .col:nth-child(1) { order: 7; }
    .benefits-table-wrapper .row:nth-child(3) .col:nth-child(2) { order: 8; }
    .benefits-table-wrapper .row:nth-child(3) .col:nth-child(5) { order: 9; }

    /* FILA 4*/
    .benefits-table-wrapper .row:nth-child(3) .col:nth-child(4) { order: 10; }
    .benefits-table-wrapper .row:nth-child(4) .col:nth-child(1) { order: 11; }
    .benefits-table-wrapper .row:nth-child(4) .col:nth-child(4) { order: 12; }

    /* FILA 5*/
    .benefits-table-wrapper .row:nth-child(4) .col-3:nth-child(2) {
        order: 13;
        grid-column: 2 / span 2 !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    .benefits-table-wrapper .row:nth-child(4) .col-3:nth-child(3) {
        order: 14;
        grid-column: 4 / span 2 !important;
        width: 100% !important;
        max-width: 100% !important;
    }
}

.history-title {
    font-family: var(--font-head);
    font-size: 96px;
    font-weight: 800;
    line-height: 1;
    color: #111;
}

.history-title span {
    color: #e30613;
}

.title-icon {
    width: 60px;
    border-radius: 50%;
    box-shadow: 0 0 15px rgba(0, 0, 0, .25);
}

/* INTRO */
.timeline-intro {
    background: #111;
    color: #fff;
    padding: 100px;
    font-family: var(--font-head);
    font-weight: 600;
    line-height: 1;
    letter-spacing: normal;

}

/* FILAS DE LA LINEA DE TIEMPO PAGINA NOSOTROS*/
@media (min-width: 768px) {
    .timeline-row {
        height: 573px;
    }
}

.white-box {
    background: #fff;
    padding: 60px 12%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.white-box h3 {
    color: var(--brand-red);
    font-size: 96px;
    font-weight: 800;
    margin-bottom: 20px;
}

.white-box h3.text-dark {
    color: #111 !important;
}

.white-box p {
    margin: 0;
    color: #444;
    line-height: 1.6;
}

.black-box {
    background: #000;
}

.center-box {
    display: flex;
    align-items: center;
    justify-content: center;
}

.circle-img {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    object-fit: cover;
}

/* MOBILE */
.mobile-values {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.value-card {
    background: #111;
    color: #fff;
    padding: 30px;
    text-align: center;
}

.value-card img {
    width: 70px;
    height: 70px;
    object-fit: cover;
    border-radius: 50%;
    margin-bottom: 15px;
}

.value-card h3 {
    color: #e30613;
    font-weight: 800;
}

.value-card p {
    margin: 0;
}

/* RESPONSIVE */
@media (max-width: 768px) {

    .history-title {
        font-size: 42px;
    }

}


/* ========================================= */
/* SECCIÓN QUIÉNES SOMOS */
/* ========================================= */

.about-section {
    position: relative;
    z-index: 10 !important;
    background-color: transparent !important;
    padding: 100px 0 50px 0;
}

.about-section::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 50%;
    background-color: #272626;
    z-index: -1;
}

/* Imagen de la izquierda exacta */
.about-image {
    width: 100%;
    max-width: 582px;
    height: auto;
    object-fit: cover;
}

/* Contenedor de texto de la derecha exacta */
.about-text-wrapper {
    background-color: #ffffff;
    width: 100%;
    max-width: 816px;
    min-height: 580px;
    padding: 60px 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
}

.about-wrapper {
    max-width: 1200px;
    margin: auto;
    gap: 40px;
    flex-wrap: nowrap;
}


/* Texto */
.about-text {
    flex: 1;
    background: #e9e9e9;
    padding: 30px;
}

.about-text h2 {
    font-weight: 700;
    color: #333;
}

.about-text h2 span {
    color: var(--red);
}

.about-text p {
    font-size: 14px;
    color: #555;
}

.about-text .btn {
    margin-top: 10px;
    padding: 6px 14px;
}

/* 📱 Responsive SIN apilar */
@media (max-width: 768px) {
    .about-wrapper {
        gap: 15px;
    }

    .about-text {
        padding: 15px;
    }

    .about-text h2 {
        font-size: 18px;
    }

    .about-text p {
        font-size: 12px;
    }

    .about-text .btn {
        padding: 4px 10px;
    }
}

.brands-page {
    background: var(--brand-bg);
}

.brands-hero {
    padding: 34px 0 0;
    background: var(--brand-background);

}

.brands-title-shell {
    margin-bottom: 1.25rem;

}

.brands-title {
    margin: 0;
    color: #fff;
    font-size: clamp(2.9rem, 5vw, 4.8rem);
    font-weight: 700;
    line-height: 0.95;
    text-transform: uppercase;
}

.brands-title span,
.brands-bike-copy h2 span,
.brands-buy-shell h2 span {
    color: var(--brand-red);
}

.brands-logo-strip,
.brands-logo-carousel,
.brands-intro-card,
.brands-bike-panel,
.brands-buy-shell,
.brands-gallery-shell {
    background: var(--brand-bg);
}

.brands-logo-strip {
    background-color: #ffffff !important;
}

.brands-logo-item {
    position: relative;
}

.brands-logo-item.is-active::after {
    content: "";
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    border-left: 35px solid transparent;
    border-right: 35px solid transparent;
    border-bottom: 35px solid #f2f2f2;
    z-index: 10;
}

.brands-logo-item {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 124px;
    padding: 1rem;
    transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.brands-logo-item img {
    width: 100%;
    max-width: 250px;
    max-height: 350px;
    object-fit: contain;
}

.brands-logo-trigger {
    cursor: pointer;
}

.brands-logo-trigger:hover,
.brands-logo-trigger:focus-visible,
.brands-logo-trigger.is-active {
    background: rgba(207, 27, 36, 0.16);
    box-shadow: inset 0 0 0 2px rgba(207, 27, 36, 0.55);
}

.brands-logo-trigger:hover img,
.brands-logo-trigger:focus-visible img,
.brands-logo-trigger.is-active img {
    transform: scale(1.03);
}

.brands-logo-carousel .brands-logo-item {
    min-height: 148px;
}

.brands-carousel-indicators {
    position: static;
    margin: 0;
    padding: 0.8rem 0 0;
    gap: 0.45rem;
}

.brands-carousel-indicators [data-bs-target] {
    width: 10px;
    height: 10px;
    margin: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(207, 27, 36, 0.35);
    opacity: 1;
}

.brands-carousel-indicators .active {
    background: #cf1b24;
}

.brands-intro-card {
    padding: 1.8rem 2rem 2rem;
}

.brands-intro-logo {
    height: 130px;
    display: flex;
    justify-content: center;
    margin-bottom: 1rem;
}

.brands-intro-logo img {
    height: 130px !important;
    max-height: 130px !important;
    width: auto !important;
    max-width: 100% !important;
    object-fit: contain;
}

.brands-intro-card p {
    margin-bottom: 1rem;
    color: #242424;
    font-size: 0.95rem;
    line-height: 1.55;
    text-align: center;
}

.brands-intro-card p:last-child {
    margin-bottom: 0;
}

.brands-bikes-section {
    padding: 0 0 1.5rem;
    background: #f1f1f1;
}

.brands-bike-panel {
    margin-bottom: 1.5rem;
    background: linear-gradient(#1f1f1f 0 50%, #f2f2f2 50%);
}

.brands-bike-media {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 290px;
    padding: 1.5rem;
}

.brands-bike-media img {
    width: 100%;
    max-width: 330px;
    max-height: 230px;
    object-fit: contain;
}

.brands-bike-copy {
    padding: 1.8rem 1.7rem;
    background: var(--brand-bg);
}

.brands-bike-copy h2 {
    margin: 0 0 0.85rem;
    color: #1a1a1a;
    font-size: clamp(1.9rem, 3vw, 2.7rem);
    font-weight: 700;
    line-height: 0.95;
    text-transform: uppercase;
}

.brands-bike-copy p {
    margin: 0;
    color: #222;
    font-size: 0.92rem;
    line-height: 1.55;
}

.producto-destacado {
    overflow: hidden;
}

/* Imagen desktop */
.moto-desktop {
    max-height: 400px;
    object-fit: contain;
    margin: 20px 0;
}


.brands-bike-action {
    margin-top: 1rem;
    text-align: center;
}

.brands-buy-section {
    padding: 0 0 1.5rem;
    background: #1f1f1f;
}

.brands-buy-shell {
    padding: 1.5rem 1rem;
}

.brands-buy-shell h2,
.brands-gallery-shell h2 {
    margin: 0 0 0.9rem;
    color: #111;
    font-size: clamp(1.9rem, 3vw, 2.5rem);
    font-weight: 700;
    line-height: 0.95;
    text-transform: uppercase;
}

.brands-buy-logos {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
}

.brands-buy-logos img {
    width: auto;
    max-width: 138px;
    max-height: 48px;
    object-fit: contain;
}

.brands-gallery-section {
    padding: 0 0 2.5rem;
    background: #1f1f1f;
}

.brands-gallery-shell {
    padding: 1.1rem 1.1rem 1.2rem;
}

.brands-gallery-shell h2 {
    margin-bottom: 0.8rem;
    text-align: center;
}

.brands-gallery-item {
    height: 100%;
    overflow: hidden;
}

.brands-gallery-item img {
    display: block;
    width: 100%;
    height: 110px;
    object-fit: cover;
}

.home-gallery {
    background: #dcdcdc;
}

.gallery-title {
    font-family: var(--font-head);
    font-weight: 800;
    font-size: 32px;
    letter-spacing: 2px;
}

/* fila horizontal fija */
.gallery-row {
    overflow: hidden;
}

/* cada item */
.gallery-item {
    width: 100%;
    height: 220px;
    overflow: hidden;
}

/* imagen */
.gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: 0.4s ease;
}

/* hover pro */
.gallery-item:hover img {
    transform: scale(1.08);
}

.info-box {
    width: 450px;
}

/* ========================================= */
/* CONTENIDO DINÁMICO DEL BLOG (UMBRACO)     */
/* ========================================= */
.cms-dark-content {
    background-color: #0b0b0b;
    color: #ffffff;
    padding: 80px 0;
    font-size: 16px;
    line-height: 1.7;
}

.cms-dark-content h1,
.cms-dark-content h2,
.cms-dark-content h3 {
    font-family: var(--font-head);
    font-weight: 800;
    color: #ffffff;
    margin-bottom: 20px;
}

.cms-dark-content strong,
.cms-dark-content span.text-brand {
    color: #e10613;
}

.cms-dark-content img {
    max-width: 100%;
    height: auto;
    margin: 20px 0;
    border-radius: 4px;
}

/* =========================
Dibujamos un circulo Rojo
========================= */
.diff-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: 1px solid #d21f26;
    border-radius: 50%;
    color: #d21f26;
    font-weight: 700;
    margin-right: 10px;
    font-size: 16px;
    flex-shrink: 0;
}

/* =========================
RESPONSIVE
========================= */

@media (max-width: 992px) {
    .gallery-item {
        height: 180px;
    }
}

@media (max-width: 768px) {
    .gallery-item {
        height: 140px;
    }

    .gallery-title {
        font-size: 24px;
    }
}

@media (max-width: 480px) {
    .gallery-item {
        height: 110px;
    }
}

@media (max-width: 767.98px) {
    .brands-hero {
        padding: 16px 0 18px;
    }

    .brands-title {
        font-size: 36px !important;
    }

    .brands-logo-carousel .brands-logo-item {
        background-color: var(--brand-surface) !important;
        min-height: 112px;
        padding: 0.75rem;
    }
    .brands-logo-carousel .custom-dots {
        position: absolute !important;
        bottom: 50px !important;
        margin-top: 0 !important;
        z-index: 15;
    }
    .brands-intro-card {
        position: relative !important;
    }

    .brands-intro-card::before {
        content: "" !important;
        position: absolute !important;
        top: -30px !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        border-left: 30px solid transparent !important;
        border-right: 30px solid transparent !important;
        border-bottom: 30px solid #f2f2f2 !important;
        z-index: 20 !important;
    }
    .brands-carousel-indicators {
        padding-top: 0.55rem;
    }

    .brands-logo-carousel .brands-logo-item img {
        max-width: 200px;
        max-height: 200px;
    }

    .brands-intro-card {
        padding: 1rem 0.9rem 1.1rem;
        background-color: var(--brand-bg) !important;
    }

    .brands-intro-logo {
        height: 90px;
    }

    .brands-intro-logo img {
        height: 90px !important;
        max-height: 90px !important;
    }

    .brands-intro-card p {
        font-size: 0.68rem;
        line-height: 1.45;
        text-align: left;
    }

    .brands-bikes-section {
        padding-bottom: 1rem;
    }

    .brands-bike-panel {
        margin-bottom: 1rem;
    }

    .info-box {
        margin-right: 40px;
        font-size: 0.775em;
    }

    .brands-bike-media {
        min-height: 160px;
        padding: 0.35rem 1rem 0.7rem;
    }

    .brands-bike-media img {
        max-width: 170px;
        max-height: 120px;
    }

    .brands-bike-copy {
        padding: 0.95rem 0.95rem 1rem;
    }

    .brands-bike-copy h2 {
        margin-bottom: 0.65rem;
        font-size: 1.2rem;
        text-align: right;
    }

    .brands-bike-copy p {
        font-size: 0.68rem;
        line-height: 1.45;
    }

    .brands-bike-action {
        margin-top: 0.7rem;
    }

    .brands-buy-shell {
        padding: 1rem 0.8rem;
    }

    .brands-buy-shell h2,
    .brands-gallery-shell h2 {
        font-size: 1.25rem;
    }

    .brands-buy-logos {
        gap: 1rem;
    }

    .brands-buy-logos img {
        max-width: 92px;
        max-height: 30px;
    }

    .brands-gallery-shell {
        padding: 0.75rem;
    }

    .brands-gallery-item img {
        height: 72px;
    }
}

/* =========================================
   TARJETAS DE INFORMACIÓN (PUNTOS DE VENTA)
========================================= */
.info-section {
    background: #e9e9e9;
    padding: 80px 0;
}

/* mantiene en fila siempre */
.info-row {
    flex-wrap: nowrap;
}

/* tarjeta */
.info-card-box {
    background: #dcdcdc;
    padding: 50px 60px;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.info-card-box p {
    font-size: var(--size-body-md);
    color: #555;
    line-height: 1.6;
    margin: 0;
}

/* header */
.info-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}

.info-header h4 {
    font-size: var(--size-body-lg) !important;
    font-weight: 800;
    color: #111;
    margin: 0;
    text-transform: uppercase;
}

.info-header i {
    font-size: var(--size-body-lg);
    color: var(--brand-red);
}

/* icono */
.info-icon {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #e10613;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 700;
}

/* =========================
RESPONSIVE
========================= */

@media (max-width: 768px) {

    .info-card-box {
        padding: 18px;
    }

    .info-header h4 {
        font-size: 14px;
    }

    .info-card-box p {
        font-size: 11px;
        line-height: 1.4;
    }

    .info-icon {
        width: 18px;
        height: 18px;
        font-size: 11px;
    }

}

@media (max-width: 480px) {

    .info-card-box {
        padding: 14px;
    }

    .info-card-box p {
        font-size: 10px;
    }

}

.franchise-section {
    background: linear-gradient(#1d1d1d 50%, #e9e9e9 50%);
    padding: 60px 0;
}

/* imagen */
.franchise-img img {
    width: 100%;
    max-width: 520px;
    height: auto;
}

/* tarjeta */
.franchise-card {
    background: #dcdcdc;
    padding: 40px;
}

/* título */
.franchise-title {
    font-weight: 800;
    font-size: 40px;
    line-height: 1.2;

}

.franchise-title span {
    color: #e10613;
}

/* texto */
.franchise-card p {
    font-size: 14px;
    line-height: 1.6;

}

/* =========================
RESPONSIVE
========================= */
@media (max-width: 991.98px) {
    /* =========================================
        HEADER RESPONSIVE
    ========================================= */
    ./* 1. Fondo negro puro y limpio */
    .site-header {
        background-color: #000000 !important;
        backdrop-filter: none !important;
        border-bottom: none !important;
    }
    
    .site-header .navbar {
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding: 0 !important;
        width: 100%; !important
    }
    .site-header .navbar-nav {
        gap: 60px !important; /* Modifica este valor (ej. 30px, 40px) para separar más los botones entre sí */
    }
    .site-header .nav-item {
        width: 100%;
        display: flex;
        justify-content: center;
    }

    .site-header .nav-link {
        font-size: 30px !important;
        padding: 8px 15px !important;
    }

    .site-header .nav-link.active,
    .site-header .navbar-nav .nav-item .nav-link.active,
    .site-header .navbar-nav .nav-item .nav-link:hover,
    .site-header .navbar-nav .nav-item .nav-link:focus {
        background-color: #CF1B24 !important;
        color: #ffffff !important;
        transition: background-color 0.3s ease;
    }

    .site-header .navbar-brand {
        height: 40px;
        margin: 0;
        padding: 0;
    }

    .site-header .navbar-brand img,
    .site-header .navbar-brand .Logo {
        height: 100%;
        width: auto;
        object-fit: contain;
    }

    .site-header .navbar-toggler {
        border: none !important;
        box-shadow: none !important;
        padding: 0;
        margin-right: 15px;
    }

    .site-header .navbar-toggler-icon {
        background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 1%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='4' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
        width: 32px;
        height: 32px;
    }

    .site-header .navbar-collapse,
    .site-header .collapsing {
        position: fixed !important;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        background-color: var(--brand-background) !important;
        z-index: 1050;
        padding: 20px;
        overflow-y: auto;
    }

    .btn-close-menu {
        position: absolute;
        top: 0;
        right: 0;
        background-color: #CF1B24; /* Rojo Elektra */
        border: none;
        width: 38px;
        height: 38px;
        border-radius: 6px;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
    }

    .btn-close-menu svg {
        width: 20px;
        height: 20px;
    }

    /* Logo dentro del menú */
    .mobile-menu-logo {
        height: 75px;
        object-fit: contain;
        margin-top: 30px;
        margin-bottom: 25px;
    }

    /* Línea roja separadora */
    .mobile-menu-separator {
        width: 70%; /* Ajusta el ancho de la línea según tu Figma */
        border: none;
        border-top: 2px solid #CF1B24;
        opacity: 1;
        margin: 0;
    }

    /* =========================================
        FIN HEADER RESPONSIVE
    ========================================= */
    .info-card-box {
        padding: 30px;
    }

    .info-header h4, .info-header i {
        font-size: 28px !important;
    }

    .info-card-box p {
        font-size: 20px;
    }
    .articlemarcas h1 {
        font-size: 28px !important;
        font-weight: 700;
    }

    .articlemarcas p {
        font-size: 18px;
        font-weight: 400;
    }

    .home-franchise-title {
        font-size: 42px;
    }

    .home-franchise-content {
        margin: 30px auto 0;
        text-align: center;
    }

    .home-franchise-img {
        margin: 0 auto;
        display: block;
    }

    .timeline-intro {
        font-size: 13px !important;
        font-weight: 400 !important;
    }

    .cta-card {
        flex-direction: column;
        align-items: flex-start;
    }

    .home-hero-bike img {
        width: 360px;
    }

    .home-about-card {
        max-width: 100%;
        padding: 22px;

    }

    .home.home-about-card h2 {
        font-size: 20px;
    }

    .home-about-card p {
        font-size: 14px;
        line-height: 1.45;
    }

    .home-about-shell {
        flex-direction: column;
        align-items: stretch;
    }

    .home-about-visual {
        max-width: 100%;
    }

    .home-brands-heading h2 {

        font-size: 38px;

    }

    .brands-bike-panel {
        background: linear-gradient(#1f1f1f 0 50%, #f2f2f2 50%);
    }

    .brands-bike-copy {
        padding: 1.4rem 1.2rem;
    }

    .brands-bike-copy h2 {
        font-size: 2rem;
    }

    .info-box {
        font-size: 0.775em;
    }
}

@media (max-width: 768px) {


    .franchise-title {
        font-size: 30px;
    }

    .franchise-card p {
        font-size: 12px;
    }

}

.articlemarcas h1 {
    font-weight: 700;
    font-size: 65px;
    line-height: 1.1;
    margin-bottom: 30px;
}

.articlemarcas p {
    font-size: var(--size-body-md);
    font-weight: 500;
    line-height: 1.5;
    color: #111;
}

.blog-banner {
    width: 100%;
    height: 60vh;
    background-size: cover;
    background-position: center;
    position: relative;
}

.blog-bannerinterno {
    position: relative;
    width: 100%;
    height: 40vh;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.blog-bannerinterno img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.banner-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
}

/* 📱 móvil → MISMO DISEÑO solo más pequeño */
@media (max-width: 768px) {
    .blog-banner {
        height: 40vh;
    }

    .blog-banner .btn {
        font-size: 14px;
        padding: 10px 25px;
    }
}

.blog-search {
    background: #f2f2f2;
}

/* Caja */
.search-box {
    max-width: 600px;
    background: #e9e9e9;
}

/* Header rojo */
.search-header {
    background: #d71920;
    color: white;
    font-weight: 700;
    padding: 8px 15px;
}

/* Input estilo línea */
.search-box input {
    background: transparent;
    border-bottom: 2px solid #d71920 !important;
    border-radius: 0;
    padding: 10px 15px;
}

/* Desktop ajuste */
@media (min-width: 768px) {
    .search-box {
        max-width: 500px;
    }
}

.blog-card {
    background: #e9e9e9;
    padding-bottom: 10px;
    border-radius: 0;
}

.blog-card img {
    width: 100%;
    height: 140px;
    object-fit: cover;
}

.blog-card p {
    margin: 8px;
    font-size: 23px;
    font-weight: 700;
}

/* Desktop mejora proporción */
@media (min-width: 768px) {
    .blog-card img {
        height: 160px;
    }
}

.section-pad-fecha {
    padding: 20px;
    background-color: #000000;
    color: #fff;
    font-size: 23px;
    font-weight: 800;
}


/* ========================= REGISTER*/

.hero-section {
    position: relative;
    width: 100%;
    height: 480px;
    background-image: url('img/UNETEAHORA.png');
    background-size: cover;
    background-position: center top;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.franquicias-hero {
    background-image: url('img/Franquicia.png');
}

/* Degradado oscuro sobre la foto */
.hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
            to top,
            rgba(0, 0, 0, 0.72) 0%,
            rgba(0, 0, 0, 0.25) 55%,
            rgba(0, 0, 0, 0.10) 100%
    );
}

.hero-content {
    position: relative;
    z-index: 2;

}

.hero-title {
    font-family: var(--font-head);
    font-size: clamp(2.8rem, 7vw, 5.5rem);
    font-weight: 700;
    color: var(--white);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    line-height: 1;
    margin: 0;
    text-shadow: 0 3px 14px rgba(0, 0, 0, 0.5);
}

.hero-title span {
    color: var(--red);
}

/* Responsive hero */
@media (max-width: 767.98px) {
    .hero-section {
        height: 300px;
        align-items: center;
        justify-content: center;
    }

    .hero-content {
        padding: 1.5rem;
        text-align: center;
    }
}


/* ============================================
   SECCIÓN 2 — INTRO / DESCRIPCIÓN
============================================ */
.intro-section {
    background: var(--white);
    border-bottom: 1px solid #ebebeb;
}

.intro-text {
    font-family: var(--font-head);
    font-size: 12px;
    font-weight: 700;
    text-align: justify;

}


/* ============================================
   SECCIÓN 4 — FORMULARIO (estilos existentes)
   Se complementan aquí para mantener consistencia
============================================ */

/* Wrapper general */
.form-container {
    max-width: 900px;
}

/* Caja del formulario */
.form-box {
    padding: 1.5rem 1rem;
}

/* Títulos del form */
.form-box .title {
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--black);
    margin-bottom: 0.25rem;
}

.form-box .title span {
    color: var(--red);
}

.form-box .subtitle {
    font-family: var(--font-body);
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    color: var(--gray-text);
    text-transform: uppercase;
    margin-bottom: 1.4rem;
}

/* Inputs */
.custom-input {
    display: block;
    width: 100%;
    background: transparent;
    border: none;
    border-bottom: 2px solid var(--red);
    padding: 0.55rem 0.1rem;
    margin-bottom: 1.1rem;
    font-family: var(--font-body);
    font-size: 0.9rem;
    font-weight: 600;
    letter-spacing: 0.07em;
    color: var(--black);
    outline: none;
    transition: border-color 0.2s;
}

.custom-input::placeholder {
    color: #999;
    font-size: 0.82rem;
    letter-spacing: 0.1em;
}

.custom-input:focus {
    border-bottom-color: var(--black);
}

/* Pregunta radio */
.form-box .question {
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--black);
    margin-bottom: 0.6rem;
}

/* Radio group */
.radio-group {
    display: flex;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
}

.radio-group label {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    letter-spacing: 0.05em;
}

.radio-group input[type="radio"] {
    width: 18px;
    height: 18px;
    accent-color: var(--red);
    cursor: pointer;
}

/* Imagen de motos */
.motos-img {
    max-height: 340px;
    object-fit: contain;
}

@media (max-width: 767.98px) {
    .form-box {
        padding: 1rem 0;
    }
}


/* =========================================
SECCION
========================================= */

.promotions-section {
    background: #efefef;
}

/* TITULO */
.promo-main-title {
    font-family: var(--font-head);
    font-size: 60px;
    font-weight: 800;
    text-transform: uppercase;
}

.promo-main-title span {
    color: #e10613;
}

/* =========================================
FILTRO
========================================= */

.promo-filter {
    background: #dedede;
}

.promo-filter-header {
    background: #c8102e;
    color: #fff;
    padding: 10px 12px;
    font-size: 12px;
    font-weight: 700;
    width: 100%;
}

.promo-filter-btn {
    width: 100%;
    border: none;
    border-bottom: 2px solid #ff0000;
    background: transparent;
    text-align: left;
    padding: 15px;
    font-size: 12px;
    color: #666;
    transition: .3s;
}

.promo-filter-btn:hover {
    background: var(--gray-light);
}

.promo-filter-btn.active {
    color: #000;
    font-weight: 700;
    border-bottom: 2px solid #e10613;
}

/* =========================================
CARD
========================================= */

.promo-card {
    position: relative;
    background: #f4f4f4;
    height: 100%;
}

.image-placeholder {
    padding: 20px;
    text-align: center;
}

.image-placeholder img {
    width: 100%;
    height: auto;
    object-fit: contain;
}

.promo-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    background: #e10613;
    color: #fff;
    padding: 5px 12px;
    font-size: 12px;
    font-weight: 700;
}

.promo-copy {
    padding: 15px;
}

.price-wrap {
    margin-bottom: 12px;
}

.price-old {
    display: block;
    color: #b5b5b5;
    text-decoration: line-through;
    font-size: 11px;
}

.price-new {
    display: inline-block;
    background: #000;
    color: #fff;
    padding: 6px 14px;
    font-size: 18px;
    font-weight: 700;
}

.promo-copy h3 {
    font-family: var(--font-head);
    font-size: 15px;
    font-weight: normal;
    line-height: 1.2;
    text-transform: uppercase;
}

/* ========================================================
   COMPONENTE: TARJETA DE PRODUCTO CON PRECIO SUPERPUESTO
======================================================== */
.overlap-card {
    background-color: #ffffff;
    border: none;
    display: block;
    position: relative;
}

.overlap-card-media {
    position: relative;
    background-color: var(--gray-light);
    height: 280px;
    padding: 20px;
}

.overlap-card-media img {
    object-fit: contain;
    width: 100%;
    height: 100%;
}

.overlap-card-badge {
    position: absolute;
    top: 15px;
    right: 15px;
    background: #e10613; /* Rojo estándar, cámbialo en otros proyectos */
    color: #ffffff;
    padding: 5px 12px;
    font-weight: bold;
    font-size: 16px;
}

.overlap-card-price-old {
    position: absolute;
    bottom: 30px;
    left: 20px;
    color: #a9a9a9;
    font-size: 15px;
    font-weight: bold;
    text-decoration: line-through;
}

.overlap-card-body {
    background-color: #ffffff;
    padding: 0 20px 20px 20px;
    text-align: left;
}

.overlap-card-price-wrap {
    margin-top: -22px;
    text-align: left;
    position: relative;
    z-index: 2;
}

.overlap-card-price-new {
    background-color: #000000;
    color: #ffffff;
    padding: 8px 16px;
    font-size: 22px;
    font-weight: 700;
    display: inline-block;
}

.overlap-card-title {
    margin-top: 25px;
    font-size: 18px;
    font-weight: 800;
    color: #000000;
    text-transform: capitalize;
}

/* ========================================================
   FIN DE COMPONENTE: TARJETA DE PRODUCTO CON PRECIO SUPERPUESTO
======================================================== */
/* =========================================
RESPONSIVE
========================================= */

@media (max-width: 992px) {

    .promo-main-title {
        font-size: 42px;
    }

}

@media (max-width: 768px) {

    .promotions-section {
        overflow: hidden;
    }

    /* filtro angosto */
    .promo-filter {
        position: sticky;
        top: 20px;
    }

    .promo-filter-header {
        font-size: 10px;
        padding: 8px;
    }

    .promo-filter-btn {
        font-size: 10px;
        padding: 10px 6px;
    }

    /* cards */
    .promo-copy {
        padding: 10px;
    }

    .promo-copy h3 {
        font-size: 10px;
    }

    .price-old {
        font-size: 8px;
    }

    .price-new {
        font-size: 12px;
        padding: 5px 10px;
    }

    .promo-badge {
        font-size: 8px;
        padding: 4px 8px;
    }

    .promo-main-title {
        font-size: 30px;
    }

}

@media (max-width: 480px) {

    .promo-copy h3 {
        font-size: 8px;
    }

    .price-new {
        font-size: 10px;
    }

}

/* =====================================
SECTION
===================================== */

.faq-section {
    background: #efefef;
}

/* =====================================
ACCORDION
===================================== */

.custom-faq .accordion-item {
    border: none;
    background: transparent;
    margin-bottom: 28px;
}

/* botón */
.custom-faq .accordion-button {
    background: transparent;
    box-shadow: none;
    border: none;
    border-bottom: 2px solid #e10613;

    font-family: var(--font-head);
    font-size: 28px;
    font-weight: 700;
    color: #111;

    padding: 0 0 12px 0;
}

/* quita azul bootstrap */
.custom-faq .accordion-button:not(.collapsed) {
    color: #111;
    background: transparent;
    box-shadow: none;
}

/* flecha */
.custom-faq .accordion-button::after {
    width: 18px;
    height: 18px;
    background-size: 18px;
}

/* contenido */
.custom-faq .accordion-body {
    background: #e3e3e3;
    padding: 18px 22px;
    margin-top: 12px;

    font-size: 18px;
    color: #555;
    line-height: 1.6;
}

/* =====================================
LOGOS
===================================== */

.faq-brands {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 40px;
    flex-wrap: wrap;
}

.faq-brands img {
    height: 32px;
    width: auto;
    object-fit: contain;
}

/* =====================================
RESPONSIVE
===================================== */

@media (max-width: 992px) {

    .custom-faq .accordion-button {
        font-size: 24px;
    }

    .custom-faq .accordion-body {
        font-size: 15px;
    }

}

@media (max-width: 768px) {

    .faq-section {
        padding: 40px 0;
    }

    .custom-faq .accordion-button {
        padding-bottom: 8px;
    }

    .custom-faq .accordion-button::after {
        width: 12px;
        height: 12px;
        background-size: 12px;
    }

    .custom-faq .accordion-body {
        line-height: 1.45;
        padding: 12px 14px;
        margin-top: 8px;
    }

    .faq-brands {
        gap: 18px;
        margin-top: 35px !important;
    }

    .faq-brands img {
        height: 18px;
    }

    .logos-faq img {
        height: 22px !important;
    }

}

@media (max-width: 480px) {

    .logos-faq img {
        height: 10px !important;
    }
}

.logos-faq img {
    height: 40px;
}

.text-franquciasP span {
    font-weight: 800;
}

.franquicias-systems-body span {
    font-weight: 800;
}

/* =====================================
SECTION
===================================== */

.franchise-benefits-section {
    background: #efefef;
    padding: 80px 0;
    position: relative;
}

/* =====================================
TITLE
===================================== */

.benefits-title {
    font-family: var(--font-head);
    font-size: 64px;
    font-weight: 800;
    text-transform: uppercase;
    color: #111;
}

.benefits-title span {
    color: #e10613;
}

/* =====================================
TABLE
===================================== */

.benefits-table-wrapper {
    position: relative;
    overflow: hidden;
}

/* marca de agua */
.benefits-watermark {
    position: absolute;
    inset: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    pointer-events: none;
    z-index: 1;
}

.benefits-watermark img {
    width: 500px;
}

/* =====================================
BOXES
===================================== */

.benefit-box {
    position: relative;
    z-index: 2;

    background: transparent;
    border: 1px solid #d4d4d4;

    min-height: 150px;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    text-align: center;

    padding: 20px;

    font-family: var(--font-head);
    font-size: 22px;
    font-weight: 700;
    line-height: 1.25;

    color: #111;
}

.benefit-box span {
    color: #e10613;
}

/* =====================================
HOVER
===================================== */

.benefit-box {
    transition: .3s ease;
}

.benefit-box:hover {
    background: rgba(255, 255, 255, .4);
}

/* =====================================
RESPONSIVE LARGE
===================================== */

@media (max-width: 1400px) {

    .benefits-title {
        font-size: 52px;
    }

    .benefit-box {
        font-size: 18px;
        min-height: 130px;
    }

}

@media (max-width: 1200px) {

    .benefit-box {
        font-size: 16px;
        padding: 15px;
    }

}

/* ===================================
SECTION
=================================== */

.differentiators-section {
    background: #efefef;
}

/* ===================================
TITLE
=================================== */

.differentiators-title {
    font-family: var(--font-head);
    font-size: 58px;
    font-weight: 800;
    line-height: 1.1;
    text-transform: uppercase;
    color: #111;
}

.differentiators-title span {
    color: #e10613;
}

/* ===================================
CARD
=================================== */

.diff-card {
    background: #e7e7e7;
    padding: 35px;
    height: 100%;
}

.diff-header {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-bottom: 20px;
}

.diff-icon {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 2px solid #e10613;

    color: #e10613;

    display: flex;
    align-items: center;
    justify-content: center;

    font-size: 13px;
    font-weight: 700;

    flex-shrink: 0;
}

.diff-header h3 {
    font-family: var(--font-head);
    font-size: 32px;
    font-weight: 700;
    line-height: 1.1;
    margin: 0;
    text-transform: uppercase;
}

.diff-card p {
    font-size: 18px;
    line-height: 1.7;
    color: #555;
    margin: 0;
}

/* ===================================
HOVER
=================================== */

.diff-card {
    transition: .3s ease;
}

.diff-card:hover {
    transform: translateY(-5px);
}

/* ===================================
MOBILE
=================================== */

@media (max-width: 768px) {

    .diff-card {
        padding: 25px;
        max-width: 320px;
        margin: auto;
        min-height: 250px;
    }

    .diff-header {
        gap: 10px;
        margin-bottom: 15px;
    }

    .diff-header h3 {
        font-size: 18px;
    }

    .diff-card p {
        font-size: 12px;
        line-height: 1.5;
    }

    .diff-icon {
        width: 18px;
        height: 18px;
        font-size: 10px;
    }

}

/* ===================================
DOTS
=================================== */

.custom-diff-dots {
    position: relative;
    margin-top: 25px;
}

.custom-diff-dots button {
    width: 10px !important;
    height: 10px !important;
    border-radius: 50%;
    border: none !important;
    background: #c5c5c5 !important;
}

.custom-diff-dots .active {
    background: #e10613 !important;
}