/* ===== Franquias LifeStars — landing page ===== */
.franquias-page {
    --fr-primary: #EA6E60;
    --fr-primary-dark: #D65B4D;
    --fr-dark: #302B2A;
    --fr-text: #343232;
    --fr-muted: #746F6E;
    --fr-border: #ECE7E6;
    --fr-bg-soft: #FAF7F6;
    font-family: MuseoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif;
    color: var(--fr-text);
    background: #fff;
    -webkit-font-smoothing: antialiased;
}

.franquias-page * { box-sizing: border-box; }

.franquias-page .fr-container {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 24px;
}

.franquias-page a { text-decoration: none; color: inherit; }

.franquias-page .fr-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--fr-primary);
}
.franquias-page .fr-eyebrow::before {
    content: '';
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--fr-primary);
}

.franquias-page h1, .franquias-page h2, .franquias-page h3 {
    font-weight: 700;
    line-height: 1.15;
    margin: 0;
}

.franquias-page .fr-section-head {
    max-width: 640px;
    margin-bottom: 44px;
}
.franquias-page .fr-section-head-center {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
}
.franquias-page .fr-section-head h2 {
    font-size: 34px;
    margin: 14px 0 16px;
}
.franquias-page .fr-section-head p {
    font-size: 17px;
    color: var(--fr-muted);
    line-height: 1.6;
    margin: 0;
}

.franquias-page section { padding: 88px 0; }
@media (max-width: 768px) {
    .franquias-page section { padding: 56px 0; }
    .franquias-page .fr-section-head h2 { font-size: 26px; }
}

/* ---- Nav ---- */
.franquias-page .fr-nav {
    position: sticky;
    top: 0;
    z-index: 50;
    background: linear-gradient(100deg, #F2ECEA 0%, #FAF7F6 45%, #FFFFFF 100%);
    border-bottom: 1px solid var(--fr-border);
}
.franquias-page .fr-nav-inner {
    max-width: 1180px;
    margin: 0 auto;
    padding: 16px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.franquias-page .fr-logo img { height: 30px; display: block; }
.franquias-page .fr-nav-links {
    display: flex;
    gap: 32px;
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 15px;
    font-weight: 600;
}
.franquias-page .fr-nav-links a:hover { color: var(--fr-primary); }
.franquias-page .fr-nav-cta { flex-shrink: 0; }
.franquias-page a.fr-nav-cta-mobile { display: none; }
.franquias-page .fr-nav-toggle {
    display: none;
    background: none;
    border: none;
    font-size: 24px;
    cursor: pointer;
    flex-shrink: 0;
}
@media (max-width: 900px) {
    .franquias-page .fr-nav-cta { display: none; }
    .franquias-page .fr-nav-links { display: none; }
    .franquias-page .fr-nav-links.is-open {
        display: flex;
        flex-direction: column;
        gap: 0;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: #fff;
        border-bottom: 1px solid var(--fr-border);
        padding: 8px 24px 16px;
    }
    .franquias-page .fr-nav-links.is-open li { padding: 10px 0; border-top: 1px solid var(--fr-border); }
    .franquias-page .fr-nav-links.is-open .fr-nav-cta-mobile {
        display: inline-flex;
        margin: 4px 0 2px;
    }
    .franquias-page .fr-nav-toggle { display: block; }
}
@media (max-width: 420px) {
    .franquias-page .fr-nav-inner { padding: 14px 16px; }
    .franquias-page .fr-logo img { height: 24px; }
}

/* ---- Buttons ---- */
.franquias-page .fr-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 26px;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 700;
    border: none;
    cursor: pointer;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
    white-space: nowrap;
}
.franquias-page .fr-btn-primary {
    background: var(--fr-primary);
    color: #fff;
    box-shadow: 0 10px 24px -8px rgba(234,110,96,.6);
}
.franquias-page .fr-btn-primary:hover {
    background: var(--fr-primary-dark);
    transform: translateY(-2px);
    box-shadow: 0 16px 30px -8px rgba(234,110,96,.75);
}
.franquias-page .fr-btn-primary:active { transform: translateY(0); }
.franquias-page .fr-btn-block { width: 100%; }
.franquias-page .fr-btn-arrow {
    display: inline-flex;
    transition: transform .2s ease;
}
.franquias-page .fr-btn-primary:hover .fr-btn-arrow { transform: translateX(4px); }

/* ---- Hero ---- */
.franquias-page .fr-hero {
    position: relative;
    background: var(--fr-dark);
    color: #fff;
    padding: 64px 0 96px;
    overflow: hidden;
}
.franquias-page .fr-hero::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(42,32,30,.93), rgba(58,39,36,.78) 31%, rgba(191,81,68,.28) 56%, rgba(234,110,96,.15), rgba(30,26,25,.14)),
                linear-gradient(0deg, rgba(28,23,22,.36) 0%, transparent 46%);
    z-index: 1;
}
.franquias-page .fr-hero-media { position: absolute; inset: 0; }
.franquias-page .fr-hero-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 34%;
    opacity: 0;
    transition: opacity 1s ease;
}
.franquias-page .fr-hero-bg.is-active { opacity: 1; }
.franquias-page .fr-hero-photo-controls {
    position: absolute;
    z-index: 2;
    bottom: 42px;
    right: 32px;
    display: flex;
    gap: 8px;
}
.franquias-page .fr-hero-photo-controls button {
    width: 8px; height: 8px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(255,255,255,.55);
    cursor: pointer;
    transition: .25s;
}
.franquias-page .fr-hero-photo-controls button.is-active { width: 28px; background: #fff; }
@media (max-width: 700px) { .franquias-page .fr-hero-photo-controls { right: 20px; bottom: 20px; } }
.franquias-page .fr-hero-inner {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 1.15fr .95fr;
    gap: 48px;
    align-items: center;
}
@media (max-width: 960px) {
    .franquias-page .fr-hero-inner { grid-template-columns: 1fr; }
}
.franquias-page .fr-hero h1 {
    font-size: 44px;
    margin: 16px 0 20px;
}
.franquias-page .fr-hero p.fr-hero-lead {
    font-size: 18px;
    color: rgba(255,255,255,.82);
    max-width: 480px;
    line-height: 1.6;
}
@media (max-width: 600px) {
    .franquias-page .fr-hero h1 { font-size: 30px; }
}

/* ---- Lead form ---- */
.franquias-page .fr-form-card {
    background: #fff;
    color: var(--fr-text);
    border-radius: 18px;
    padding: 30px;
    box-shadow: 0 30px 60px -20px rgba(0,0,0,.45);
}
.franquias-page .fr-form-card h3 {
    font-size: 20px;
    margin-bottom: 18px;
}
.franquias-page .fr-hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    opacity: 0;
}
.franquias-page .fr-field { margin-bottom: 14px; }
.franquias-page .fr-form-error {
    display: none;
    color: #C0392B;
    background: #FDECEA;
    border: 1px solid #F5C6C0;
    border-radius: 8px;
    padding: 10px 14px;
    font-size: 13px;
    margin-bottom: 14px;
}
.franquias-page .fr-form-error.is-visible { display: block; }
.franquias-page .fr-field-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}
@media (max-width: 480px) {
    .franquias-page .fr-field-row { grid-template-columns: 1fr; }
}
.franquias-page .fr-field label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    margin-bottom: 6px;
    color: var(--fr-muted);
}
.franquias-page .fr-field input,
.franquias-page .fr-field select {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--fr-border);
    border-radius: 8px;
    font-size: 14px;
    font-family: inherit;
    background: var(--fr-bg-soft);
    color: var(--fr-text);
}
.franquias-page .fr-field input:focus,
.franquias-page .fr-field select:focus {
    outline: none;
    border-color: var(--fr-primary);
    background: #fff;
}
.franquias-page .fr-checkbox {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 13px;
    color: var(--fr-muted);
    margin: 4px 0 18px;
    line-height: 1.5;
}
.franquias-page .fr-checkbox input { margin-top: 3px; }
.franquias-page .fr-form-success {
    display: none;
    text-align: center;
    padding: 20px 6px;
}
.franquias-page .fr-form-success.is-visible { display: block; }
.franquias-page .fr-form-success .fr-check {
    width: 52px; height: 52px;
    border-radius: 50%;
    background: #E9F7EF;
    color: #2E9E5B;
    display: flex; align-items: center; justify-content: center;
    font-size: 26px;
    margin: 0 auto 14px;
}
.franquias-page form.fr-form.is-submitted { display: none; }

/* ---- Proof / stats bar ---- */
.franquias-page .fr-proof {
    background: var(--fr-primary);
    color: #fff;
    padding: 40px 0;
}
.franquias-page .fr-proof-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    text-align: center;
}
.franquias-page .fr-proof-grid > div {
    border-left: 1px solid rgba(255,255,255,.3);
    padding: 0 12px;
}
.franquias-page .fr-proof-grid > div:first-child { border-left: none; }
.franquias-page .fr-proof-number { display: block; font-size: 40px; font-weight: 700; margin-bottom: 4px; font-variant-numeric: tabular-nums; }
.franquias-page .fr-proof-number.fr-proof-text { font-size: 26px; line-height: 1.25; }
.franquias-page .fr-proof-label { font-size: 15px; font-weight: 500; color: rgba(255,255,255,.9); }
@media (max-width: 700px) {
    .franquias-page .fr-proof-grid { grid-template-columns: repeat(2, 1fr); row-gap: 24px; }
    .franquias-page .fr-proof-grid > div:nth-child(3) { border-left: none; }
}

/* ---- Market / stat cards ---- */
.franquias-page .market-layout {
    display: grid;
    grid-template-columns: .9fr 1fr;
    gap: 48px;
    align-items: center;
}
@media (max-width: 900px) { .franquias-page .market-layout { grid-template-columns: 1fr; gap: 32px; } }
.franquias-page .fr-market-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 22px;
}
@media (max-width: 560px) { .franquias-page .fr-market-grid { grid-template-columns: 1fr; } }
.franquias-page .market-card {
    border-radius: 20px;
    padding: 24px 22px 20px;
}
.franquias-page .market-card.mc-primary {
    background: var(--fr-primary);
    color: #fff;
    box-shadow: 0 8px 28px rgba(234,110,96,.28);
}
.franquias-page .market-card.mc-secondary {
    background: #FFF7F5;
    color: var(--fr-text);
    box-shadow: 0 4px 18px rgba(0,0,0,.04);
}
.franquias-page .mc-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}
.franquias-page .mc-tag {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.franquias-page .mc-primary .mc-tag { color: rgba(255,255,255,.88); }
.franquias-page .mc-secondary .mc-tag { color: var(--fr-primary); }
.franquias-page .mc-icon { flex-shrink: 0; }
.franquias-page .mc-primary .mc-icon { color: #fff; }
.franquias-page .mc-secondary .mc-icon { color: var(--fr-text); }
.franquias-page .mc-num {
    display: block;
    font-size: 46px;
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 1.1;
}
.franquias-page .mc-secondary .mc-num { font-size: 34px; color: var(--fr-primary); }
.franquias-page .mc-desc {
    font-size: 20px;
    font-weight: 700;
    letter-spacing: -0.01em;
    margin: 4px 0 0;
    line-height: 1.25;
}
.franquias-page .mc-footer {
    margin-top: 18px;
    padding-top: 12px;
    border-top: 1px solid rgba(255,255,255,.18);
}
.franquias-page .mc-secondary .mc-footer { border-top-color: rgba(234,110,96,.14); }
.franquias-page .mc-obs {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
    color: rgba(255,255,255,.75);
}
.franquias-page .mc-secondary .mc-obs { color: var(--fr-muted); }

/* ---- Process / selection funnel ---- */
.franquias-page .quality-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: center;
}
@media (max-width: 900px) {
    .franquias-page .quality-grid { grid-template-columns: 1fr; gap: 32px; }
    .franquias-page .quality-copy { order: 1; }
    .franquias-page .quality-visual { order: 2; }
}
.franquias-page .quality-visual {
    background: var(--fr-dark);
    border-radius: 28px;
    padding: 40px 36px 36px;
    position: relative;
    overflow: hidden;
}
.franquias-page .quality-visual::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(at 80% 20%, rgba(234,110,96,.16) 0%, transparent 60%);
    pointer-events: none;
}
.franquias-page .quality-visual > * { position: relative; z-index: 1; }
.franquias-page .quality-title span {
    display: block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--fr-primary);
    margin-bottom: 8px;
}
.franquias-page .quality-title strong {
    display: block;
    font-size: 64px;
    font-weight: 600;
    color: #fff;
    line-height: 1;
}
.franquias-page .quality-title small { display: block; font-size: 13px; color: rgba(255,255,255,.45); margin-top: 6px; }
.franquias-page .selection-track { display: flex; flex-direction: column; gap: 10px; margin-top: 30px; }
.franquias-page .fr-track-row { display: grid; grid-template-columns: 26px 1fr; align-items: center; gap: 12px; }
.franquias-page .fr-track-row i {
    font-style: normal;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .04em;
    text-align: right;
    color: rgba(255,255,255,.35);
    transition: color .3s ease;
}
.franquias-page .fr-track-bar {
    display: block;
    height: 5px;
    border-radius: 100px;
    background: rgba(255,255,255,.12);
    position: relative;
    overflow: hidden;
}
.franquias-page .fr-track-fill {
    display: block;
    position: absolute;
    left: 0; top: 0; height: 100%;
    border-radius: 100px;
    background: rgba(255,255,255,.55);
    transition: width 1s cubic-bezier(.4,0,.2,1);
}
.franquias-page .fr-track-fill-2 { background: rgba(255,255,255,.48); }
.franquias-page .fr-track-fill-3 { background: rgba(255,255,255,.4); }
.franquias-page .fr-track-fill-4 { background: rgba(255,255,255,.33); }
.franquias-page .fr-track-fill-5 { background: rgba(255,255,255,.26); }
.franquias-page .fr-track-fill-6 { background: rgba(234,110,96,.55); }
.franquias-page .fr-track-fill-7 { background: var(--fr-primary); }
.franquias-page .fr-track-row:hover i { color: rgba(255,255,255,.7); }
.franquias-page .fr-track-row:hover .fr-track-bar { background: rgba(255,255,255,.2); }
.franquias-page .selection-result {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 28px;
    padding: 20px;
    background: rgba(234,110,96,.08);
    border: 1px solid rgba(234,110,96,.2);
    border-radius: 14px;
}
.franquias-page .selection-result strong { flex-shrink: 0; font-size: 38px; font-weight: 600; letter-spacing: -.04em; line-height: 1; color: var(--fr-primary); }
.franquias-page .selection-result span { font-size: 12px; line-height: 1.45; color: rgba(255,255,255,.55); }
.franquias-page .quality-copy h2 { margin: 14px 0 0; font-size: 34px; }
.franquias-page .fr-check-list {
    list-style: none;
    margin: 28px 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 24px;
}
@media (max-width: 700px) { .franquias-page .fr-check-list { grid-template-columns: 1fr; } }
.franquias-page .fr-check-list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 15px;
    color: var(--fr-text);
}
.franquias-page .fr-check-list li::before {
    content: '✓';
    flex-shrink: 0;
    width: 22px; height: 22px;
    border-radius: 50%;
    background: var(--fr-primary);
    color: #fff;
    font-size: 12px;
    display: flex; align-items: center; justify-content: center;
}

/* ---- Systems / laptop mockup ---- */
.franquias-page .systems-product {
    background: linear-gradient(180deg, #FFF8F6, #FFFFFF 90%);
    overflow: hidden;
}
.franquias-page .systems-product-grid {
    display: grid;
    grid-template-columns: minmax(320px, .92fr) minmax(0, 1.08fr);
    gap: 56px;
    align-items: center;
}
@media (max-width: 900px) { .franquias-page .systems-product-grid { grid-template-columns: 1fr; gap: 40px; } }
.franquias-page .systems-copy h2 { margin: 14px 0 0; font-size: 34px; }
.franquias-page .product-tabs {
    display: flex;
    justify-content: center;
    gap: 7px;
    margin: 0 0 18px;
}
.franquias-page .product-tabs button {
    background: #fff;
    border: 1px solid var(--fr-border);
    border-radius: 999px;
    color: var(--fr-muted);
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
    padding: 9px 16px;
    transition: .2s;
}
.franquias-page .product-tabs button.active {
    background: var(--fr-dark);
    border-color: var(--fr-dark);
    color: #fff;
}
.franquias-page .macbook {
    filter: drop-shadow(0 30px 40px rgba(82,58,54,.16));
    position: relative;
}
.franquias-page .mac-screen {
    background: #f4f5f7;
    border: 10px solid #252525;
    border-bottom-width: 14px;
    border-radius: 18px 18px 9px 9px;
    aspect-ratio: 10 / 7;
    margin: 0 auto;
    overflow: hidden;
    position: relative;
    width: 92%;
}
.franquias-page .mac-screen::before {
    content: '';
    position: absolute;
    top: 0; left: 50%;
    transform: translateX(-50%);
    width: 46px; height: 5px;
    background: #0b0b0b;
    border-radius: 0 0 5px 5px;
    z-index: 2;
}
.franquias-page .mac-screen img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: fill;
}
.franquias-page .mac-base {
    background: linear-gradient(#c7c5c4, #eeeeee 44%, #b9b7b6);
    border-radius: 2px 2px 10px 10px;
    height: 18px;
    margin: -2px auto 0;
    position: relative;
    width: 100%;
}
.franquias-page .mac-base::after {
    content: '';
    position: absolute;
    left: 5%; right: 5%; bottom: -5px;
    height: 5px;
    background: #a7a5a5;
    border-radius: 0 0 30px 30px;
}
.franquias-page .mac-base i {
    position: absolute;
    top: 0; left: 50%;
    transform: translateX(-50%);
    width: 95px; height: 5px;
    background: #999;
    border-radius: 0 0 7px 7px;
}
@media (max-width: 700px) { .franquias-page .mac-screen { width: 100%; } }

/* ---- App section ---- */
.franquias-page .app-product { background: #fff; overflow: visible; padding: 40px 0 30px; }
.franquias-page .app-showcase {
    display: grid;
    grid-template-columns: .68fr 1.32fr;
    align-items: center;
    gap: 48px;
    min-height: 320px;
    background: var(--fr-primary);
    color: #fff;
    border-radius: 28px;
    padding: 32px 56px 32px 32px;
    box-shadow: 0 16px 36px rgba(234,110,96,.18);
}
@media (max-width: 800px) {
    .franquias-page .app-showcase { grid-template-columns: 1fr; padding: 32px 28px; text-align: center; }
    .franquias-page .app-product-visual { min-height: 260px; order: 2; }
    .franquias-page .app-product-copy { order: 1; }
    .franquias-page .app-audiences { justify-content: center; }
}
.franquias-page .app-product-visual {
    position: relative;
    min-height: 300px;
}
.franquias-page .phone-halo {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 420px;
    height: 420px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,255,.36) 0%, rgba(255,255,255,.14) 42%, rgba(255,255,255,0) 72%);
}
.franquias-page .app-real-phone-img {
    position: absolute;
    top: 50%; left: 50%;
    width: 260px;
    height: auto;
    transform: translate(-50%, -50%) rotate(-2deg);
    filter: drop-shadow(0 22px 36px rgba(0,0,0,.28));
}
@media (max-width: 800px) { .franquias-page .app-real-phone-img { width: 210px; } }
.franquias-page .app-product-copy { max-width: 600px; }
.franquias-page .app-product-copy .fr-eyebrow { color: rgba(255,255,255,.9); }
.franquias-page .app-product-copy .fr-eyebrow::before { background: #fff; }
.franquias-page .app-product-copy h2 { margin: 14px 0 0; font-size: 34px; color: #fff; }
.franquias-page .app-product-copy > p { color: rgba(255,255,255,.92); font-size: 16px; line-height: 1.6; margin: 16px 0 0; }
.franquias-page .app-audiences {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 22px;
    margin-top: 24px;
    padding-top: 18px;
    border-top: 1px solid rgba(255,255,255,.3);
}
.franquias-page .app-audiences span {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 12px;
    font-weight: 700;
}
.franquias-page .app-audiences svg { stroke: #fff; flex-shrink: 0; }

/* ---- Testimonial videos ---- */
.franquias-page .video-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}
@media (max-width: 800px) { .franquias-page .video-grid { grid-template-columns: 1fr; } }
.franquias-page .video-card {
    display: block;
    width: 100%;
    background: #fff;
    border: 1px solid var(--fr-border);
    border-radius: 22px;
    box-shadow: 0 12px 30px rgba(70,55,52,.06);
    overflow: hidden;
    padding: 16px 16px 4px;
    text-align: left;
    font: inherit;
    color: inherit;
    cursor: pointer;
    transition: .22s;
}
.franquias-page .video-card:hover {
    box-shadow: 0 20px 40px rgba(70,55,52,.14);
    transform: translateY(-4px);
}
.franquias-page .video-cover {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 200px;
    background-color: #E7A198;
    background-position: center;
    background-size: 112% auto;
    position: relative;
    overflow: hidden;
    border-radius: 14px;
}
.franquias-page .video-cover::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(rgba(28,22,21,.03), rgba(28,22,21,.34));
}
.franquias-page .video-cover span {
    position: absolute;
    top: 17px; left: 17px;
    z-index: 2;
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
    text-shadow: 0 1px 8px rgba(0,0,0,.6);
}
.franquias-page .video-cover i {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 2;
    width: 50px; height: 50px;
    padding-left: 3px;
    border-radius: 50%;
    background: #fff;
    color: var(--fr-primary);
    font-size: 14px;
    font-style: normal;
    box-shadow: 0 8px 20px rgba(0,0,0,.2);
    transition: transform .25s ease;
}
.franquias-page .video-card:hover .video-cover i { transform: scale(1.12); }
.franquias-page .video-quote {
    margin: 0;
    padding: 18px 6px 22px;
    font-size: 14px;
    line-height: 1.6;
    color: var(--fr-text);
}
.franquias-page .video-quote cite {
    display: block;
    margin-top: 10px;
    font-style: normal;
    font-weight: 700;
    font-size: 13px;
    color: var(--fr-muted);
    box-shadow: 0 8px 20px rgba(0,0,0,.2);
}

/* ---- Investment ---- */
.franquias-page .investment-section { background: var(--fr-primary); color: #fff; }
.franquias-page .investment-header .fr-eyebrow { color: rgba(255,255,255,.9); }
.franquias-page .investment-header .fr-eyebrow::before { background: #fff; }
.franquias-page .investment-header h2 { color: #fff; }
.franquias-page .investment-header { max-width: 760px; }
@media (min-width: 900px) { .franquias-page .investment-header h2 { white-space: nowrap; } }
.franquias-page .inv-two-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
    align-items: stretch;
}
@media (max-width: 800px) { .franquias-page .inv-two-cols { grid-template-columns: 1fr; } }
.franquias-page .inv-col-card {
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.25);
    border-radius: 20px;
    padding: 28px 30px;
    display: flex;
    flex-direction: column;
    transition: background .25s ease, transform .25s ease;
}
.franquias-page .inv-col-card:hover { background: rgba(255,255,255,.17); transform: translateY(-3px); }
.franquias-page .inv-col-title {
    color: #fff;
    font-size: 19px;
    font-weight: 700;
    margin: 0 0 20px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(255,255,255,.2);
}
.franquias-page .inv-clean-list { display: flex; flex-direction: column; gap: 14px; flex: 1; }
.franquias-page .inv-clean-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid rgba(255,255,255,.12);
}
.franquias-page .inv-name-group { display: flex; flex-direction: column; gap: 2px; }
.franquias-page .inv-clean-name { font-size: 15px; font-weight: 600; }
.franquias-page .inv-clean-sub { font-size: 11.5px; color: rgba(255,255,255,.75); }
.franquias-page .inv-clean-val { font-size: 16px; font-weight: 700; text-align: right; white-space: nowrap; }
.franquias-page .inv-clean-val-main { font-size: 18px; font-weight: 800; }
.franquias-page .inv-clean-total {
    margin-top: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: rgba(255,255,255,.15);
    padding: 16px 20px;
    border-radius: 14px;
}
.franquias-page .inv-clean-total span { font-size: 13.5px; font-weight: 600; color: rgba(255,255,255,.9); }
.franquias-page .inv-clean-total strong { font-size: 21px; font-weight: 800; }
.franquias-page .inv-perf-strip {
    margin-top: auto;
    padding-top: 14px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}
.franquias-page .inv-perf-item {
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 12px;
    padding: 10px 8px;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 4px;
    transition: background .2s ease;
}
.franquias-page .inv-perf-item:hover { background: rgba(255,255,255,.22); }
.franquias-page .inv-perf-item small { font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: rgba(255,255,255,.8); }
.franquias-page .inv-perf-item strong { font-size: 13px; font-weight: 700; }

/* ---- Territory / map ---- */
.franquias-page .territory-clean-grid {
    display: grid;
    grid-template-columns: .88fr 1.12fr;
    gap: 56px;
    align-items: center;
}
@media (max-width: 900px) { .franquias-page .territory-clean-grid { grid-template-columns: 1fr; gap: 32px; } }
.franquias-page .territory-clean-copy { max-width: 480px; }
.franquias-page .territory-clean-copy h2 { margin: 14px 0 0; font-size: 34px; }
.franquias-page .territory-clean-copy > p { color: var(--fr-muted); font-size: 16px; line-height: 1.7; margin: 20px 0 0; }
.franquias-page .territory-clean-copy .fr-btn { margin-top: 26px; }
.franquias-page .territory-clean-map {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 360px;
    position: relative;
}
.franquias-page .br-state:not(.is-active) {
    cursor: pointer;
    transition: fill .15s ease, stroke .15s ease;
}
.franquias-page .br-state:not(.is-active):hover {
    fill: rgba(234,110,96,.35);
    stroke: var(--fr-primary);
}
.franquias-page .fr-map-tooltip {
    position: absolute;
    z-index: 5;
    top: 0; left: 0;
    background: var(--fr-dark);
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    padding: 8px 12px;
    border-radius: 8px;
    white-space: nowrap;
    pointer-events: none;
    opacity: 0;
    transition: opacity .15s ease;
    box-shadow: 0 8px 20px rgba(0,0,0,.2);
}
.franquias-page .fr-map-tooltip.is-visible { opacity: 1; }
.franquias-page .fr-brazil-map-wrap .brazil-map {
    display: block;
    width: 100%;
    max-width: 460px;
    height: auto;
    margin: 0 auto;
}
.franquias-page .br-state {
    fill: #FAFAFA;
    stroke: #DED9D7;
    stroke-linejoin: round;
    stroke-width: 1.35;
    transition: fill .22s ease, stroke .22s ease;
}
.franquias-page .br-state.is-active { fill: var(--fr-primary); stroke: #D85C50; stroke-width: 1.8; }
@media (max-width: 900px) { .franquias-page .territory-clean-map { min-height: 280px; } }

.franquias-page .fr-faq-section { background: linear-gradient(180deg, #FFF8F6, #FFFFFF 90%); }
.franquias-page .fr-faq-section .fr-section-head h2 { margin-bottom: 40px; }
.franquias-page .fr-faq-section .fr-section-head { max-width: 720px; }
@media (min-width: 900px) { .franquias-page .fr-faq-section .fr-section-head h2 { white-space: nowrap; } }

.franquias-page .fr-faq-item {
    background: #fff;
    border: 1px solid var(--fr-border);
    box-shadow: 0 4px 18px rgba(70,55,52,.05);
    border-radius: 18px;
    padding: 8px 32px;
    margin-bottom: 16px;
    transition: background .2s ease, box-shadow .2s ease;
}
.franquias-page .fr-faq-item:hover { box-shadow: 0 8px 24px rgba(70,55,52,.09); }
/* O navegador desenha o proprio anel de foco no botao, e ele ficava visivel ao
   clicar com o mouse para abrir a pergunta. Tirar o outline de todo foco
   deixaria quem navega por teclado sem saber onde esta — por isso ele some
   apenas no :focus e volta no :focus-visible, que o navegador so aplica quando
   o foco veio do teclado. */
.franquias-page .fr-faq-question:focus {
    outline: none;
}

.franquias-page .fr-faq-question:focus-visible {
    outline: 2px solid var(--fr-primary);
    outline-offset: 6px;
    border-radius: 4px;
}

.franquias-page .fr-faq-question {
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    padding: 30px 0;
    font-size: 26px;
    font-weight: 600;
    letter-spacing: -.01em;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    cursor: pointer;
    color: var(--fr-text);
    line-height: 1.3;
}
.franquias-page .fr-faq-icon {
    flex-shrink: 0;
    width: 44px; height: 44px;
    border-radius: 50%;
    background: var(--fr-primary);
    display: flex; align-items: center; justify-content: center;
    font-size: 20px;
    font-weight: 400;
    color: #fff;
    transition: transform .25s ease, background .2s ease;
}
.franquias-page .fr-faq-item:hover .fr-faq-icon { background: var(--fr-primary-dark); }
.franquias-page .fr-faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height .3s ease;
}
.franquias-page .fr-faq-answer p {
    margin: 0 0 28px;
    color: var(--fr-muted);
    font-size: 16px;
    line-height: 1.7;
    max-width: 720px;
}
.franquias-page .fr-faq-item.is-open .fr-faq-answer { max-height: 260px; }
.franquias-page .fr-faq-item.is-open .fr-faq-icon { transform: rotate(45deg); }
@media (max-width: 700px) {
    .franquias-page .fr-faq-item { padding: 4px 20px; }
    .franquias-page .fr-faq-question { font-size: 19px; padding: 22px 0; }
    .franquias-page .fr-faq-icon { width: 36px; height: 36px; font-size: 17px; }
}

/* ---- Footer (padrão do site institucional) ---- */
.franquias-page .fr-footer-logo-banner {
    background: #fff;
    text-align: center;
    padding: 30px 20px 40px;
}
.franquias-page .fr-footer-divider {
    display: block;
    max-width: 1100px;
    height: 1px;
    margin: 0 auto 40px;
    background: #D5D5D5;
}
.franquias-page .fr-footer-logo-banner img { max-width: 320px; width: 100%; height: auto; }

.franquias-page .fr-footer { background: #F9F9F9; color: #333; }
.franquias-page .fr-footer-main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
    padding: 35px 24px;
}
.franquias-page .fr-footer-main nav { display: flex; gap: 24px; flex-wrap: wrap; }
.franquias-page .fr-footer-main nav a { color: #333; font-size: 14px; transition: color .2s ease; }
.franquias-page .fr-footer-main nav a:hover { color: var(--fr-primary); }
.franquias-page .fr-footer-phone { margin: 0; color: #333; font-size: 14px; }
.franquias-page .fr-footer-bottom {
    padding: 30px 24px;
    border-top: 1px solid rgba(0,0,0,.08);
}
.franquias-page .fr-footer-bottom p { margin: 0; color: #ccc; font-size: 12px; }
@media (max-width: 600px) {
    .franquias-page .fr-footer-main { flex-direction: column; align-items: flex-start; }
}

/* ---- Back to top ---- */
.franquias-page .fr-back-to-top {
    position: fixed;
    z-index: 60;
    right: 24px;
    bottom: 24px;
    width: 44px;
    height: 44px;
    border: none;
    border-radius: 10px;
    background: var(--fr-primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 10px 24px -8px rgba(234,110,96,.6);
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: opacity .25s ease, transform .25s ease, background .2s ease, visibility .25s;
}
.franquias-page .fr-back-to-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.franquias-page .fr-back-to-top:hover { background: var(--fr-primary-dark); transform: translateY(-2px); }
@media (max-width: 600px) { .franquias-page .fr-back-to-top { right: 16px; bottom: 16px; width: 40px; height: 40px; } }

/* ---- Video lightbox ---- */
.franquias-page .fr-video-modal {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.franquias-page .fr-video-modal.is-open { display: flex; }
.franquias-page .fr-video-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(20,16,15,.86);
    animation: fr-modal-fade .2s ease;
}
.franquias-page .fr-video-modal-body {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 920px;
    animation: fr-modal-pop .25s cubic-bezier(.2,.8,.2,1);
}
.franquias-page .fr-video-modal-frame {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: #000;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 30px 60px rgba(0,0,0,.4);
}
.franquias-page .fr-video-modal-frame iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}
.franquias-page .fr-video-modal-close {
    position: absolute;
    top: -44px;
    right: 0;
    width: 36px; height: 36px;
    border: none;
    border-radius: 50%;
    background: rgba(255,255,255,.15);
    color: #fff;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    transition: background .2s ease;
}
.franquias-page .fr-video-modal-close:hover { background: rgba(255,255,255,.3); }
@keyframes fr-modal-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes fr-modal-pop { from { opacity: 0; transform: scale(.94); } to { opacity: 1; transform: scale(1); } }

