/*
 * Theme 2026: brings the landing page look (colours, type, buttons, cards, icon
 * accents, dotted gradient backgrounds) to the home, features and pricing pages.
 *
 * It is CSS only. Nothing here changes copy or translations, and every rule is
 * scoped under body.lp-theme, which is added only by the pages that include
 * frontend/partials/_theme_2026.blade.php, so the rest of the site is untouched.
 *
 * Typography: Manrope (latin + cyrillic, self-hosted). It replaces Roboto and the
 * Poppins/Lexend glyph subsets, which are missing most letters and fall back unevenly.
 */

@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('/b2b-template/fonts/manrope-cyrillic.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('/b2b-template/fonts/manrope-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

body.lp-theme {
    --lp-brand: #6515b1;
    --lp-brand-dark: #4f0f8c;
    --lp-brand-soft: #f4eefc;
    --lp-pink: #f0627a;
    --lp-ink: #17122b;
    --lp-muted: #5b5670;
    --lp-line: #e7e2f0;
    --lp-bg-alt: #faf8fe;
    --lp-ok: #14804a;
    --lp-radius: 18px;
    --lp-shadow: 0 10px 30px rgba(40, 14, 80, .08);
    --lp-font: 'Manrope', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
    --lp-grad: linear-gradient(90deg, #6515b1 0%, #b832d6 55%, #f0627a 100%);

    font-family: var(--lp-font);
    font-synthesis: none;
    font-weight: 500;
    color: var(--lp-ink);
    background: #fff;
}

/* ---------- Typography ---------- */
body.lp-theme :is(h1, h2, h3, h4, h5, h6, p, li, a, span, small, strong, em, button, label, input, select, td, th, div, summary),
body.lp-theme .btn,
body.lp-theme .roboto-normal,
body.lp-theme .accordion-button,
body.lp-theme nav ul.nav li a.nav-link,
body.lp-theme .main-headline,
body.lp-theme .main-headline-sub,
body.lp-theme .inside-wrap h2 > span,
body.lp-theme .inside-wrap h3 > span {
    font-family: var(--lp-font) !important;
}

body.lp-theme :is(h1, h2) { font-weight: 800 !important; letter-spacing: -.02em; line-height: 1.15; color: var(--lp-ink); }
body.lp-theme :is(h3, h4, h5, h6) { font-weight: 700 !important; letter-spacing: -.01em; line-height: 1.25; color: var(--lp-ink); }
body.lp-theme :is(h2.display-4, h2.display-5, h2.display-6, h2.h1) { font-size: clamp(1.65rem, 3.2vw, 2.5rem); }
body.lp-theme h1.display-4 { font-size: clamp(2rem, 4.4vw, 3.2rem); }
body.lp-theme .h3 { font-size: clamp(1.4rem, 2.4vw, 1.9rem); }
body.lp-theme strong, body.lp-theme b { font-weight: 700; }

/* Gradient accent text */
body.lp-theme #someday,
body.lp-theme .onboarding-title .highlight {
    background: var(--lp-grad);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: var(--lp-brand);
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
}
/* The yellow marker is drawn by a script; the gradient replaces it */
body.lp-theme .rough-annotation { display: none !important; }

/* ---------- Header ---------- */
body.lp-theme header,
body.lp-theme .site-header {
    background: rgba(255, 255, 255, .88) !important;
    -webkit-backdrop-filter: saturate(170%) blur(14px);
    backdrop-filter: saturate(170%) blur(14px);
    border-bottom: 1px solid rgba(231, 226, 240, .9);
}
body.lp-theme nav ul.nav li a.nav-link { color: var(--lp-ink); font-weight: 600; }
body.lp-theme nav ul.nav li a.nav-link:hover,
body.lp-theme nav ul.nav li a.nav-link.active { color: var(--lp-brand); }
body.lp-theme nav ul.nav li a.nav-link::after {
    height: 3px;
    border-radius: 3px;
    background: var(--lp-grad);
    bottom: -4px;
}
body.lp-theme header .pink-fill-cta { min-height: 42px; padding: 0 20px; font-size: .95rem; }
body.lp-theme .header-login-link,
body.lp-theme header a.text-muted { font-weight: 600; }

/* ---------- Buttons ---------- */
body.lp-theme :is(.btn-primary, .btn-outline-primary, .btn-outline-pink, .btn-secondary, .btn-light, .pink-fill-cta) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 0 26px;
    border-radius: 14px;
    border: 2px solid transparent;
    font-weight: 700 !important;
    font-size: 1rem;
    line-height: 1.1;
    letter-spacing: 0;
    text-decoration: none;
    transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease, color .18s ease;
}
body.lp-theme .btn-lg { min-height: 56px; padding: 0 30px; font-size: 1.05rem; }
body.lp-theme :is(.btn-primary, .pink-fill-cta) {
    background: var(--lp-brand) !important;
    border-color: transparent !important;
    color: #fff !important;
    box-shadow: 0 10px 24px -6px rgba(101, 21, 177, .5);
}
body.lp-theme :is(.btn-primary, .pink-fill-cta):hover {
    background: var(--lp-brand-dark) !important;
    color: #fff !important;
    transform: translateY(-2px);
    box-shadow: 0 14px 28px -6px rgba(101, 21, 177, .55);
}
body.lp-theme :is(.btn-outline-primary, .btn-outline-pink, .btn-secondary) {
    background: rgba(255, 255, 255, .85) !important;
    border-color: var(--lp-line) !important;
    color: var(--lp-brand) !important;
    box-shadow: none;
}
body.lp-theme :is(.btn-outline-primary, .btn-outline-pink, .btn-secondary):hover {
    background: #fff !important;
    border-color: var(--lp-brand) !important;
    color: var(--lp-brand) !important;
    transform: translateY(-2px);
}
body.lp-theme .btn-light {
    background: #fff !important;
    color: var(--lp-brand) !important;
    box-shadow: 0 12px 26px rgba(0, 0, 0, .22);
}
body.lp-theme .btn-light:hover { background: var(--lp-brand-soft) !important; transform: translateY(-2px); }
body.lp-theme .btn:focus-visible { outline: 3px solid #b98af0 !important; outline-offset: 2px; }

/* ---------- Dotted gradient backgrounds ---------- */
body.lp-theme main > section:first-of-type,
body.lp-theme .hero-bg,
body.lp-theme .onboarding-section,
body.lp-theme .cta-light {
    position: relative;
    isolation: isolate;
    --dots-fade: 78%;
}
body.lp-theme .hero-bg,
body.lp-theme main > section:first-of-type {
    background:
        radial-gradient(900px 420px at 88% 0%, rgba(168, 85, 247, .18), transparent 60%),
        radial-gradient(700px 380px at 0% 100%, rgba(240, 98, 122, .10), transparent 60%),
        linear-gradient(180deg, #f4eefc 0%, #fff 100%) !important;
}
body.lp-theme .onboarding-section,
body.lp-theme .cta-light {
    background:
        radial-gradient(800px 360px at 100% 0%, rgba(168, 85, 247, .12), transparent 60%),
        linear-gradient(180deg, #faf8fe 0%, #fff 100%) !important;
}

/* Gradient-coloured dots: a gradient layer cut into dots by a mask, faded towards the bottom */
@supports ((mask-image: radial-gradient(#000, transparent)) or (-webkit-mask-image: radial-gradient(#000, transparent))) {
    body.lp-theme main > section:first-of-type::before,
    body.lp-theme .hero-bg::before,
    body.lp-theme .onboarding-section::before,
    body.lp-theme .cta-light::before {
        content: '';
        position: absolute;
        inset: 0;
        z-index: -1;
        pointer-events: none;
        opacity: .55;
        background: linear-gradient(115deg, rgba(101, 21, 177, .85), rgba(184, 50, 214, .75) 48%, rgba(240, 98, 122, .8));
        background-size: 220% 220%;
        animation: lp-drift 18s ease-in-out infinite;
        -webkit-mask-image: radial-gradient(circle, #000 1.3px, transparent 1.9px), linear-gradient(180deg, #000 0%, transparent var(--dots-fade));
        -webkit-mask-size: 24px 24px, 100% 100%;
        -webkit-mask-composite: source-in;
        mask-image: radial-gradient(circle, #000 1.3px, transparent 1.9px), linear-gradient(180deg, #000 0%, transparent var(--dots-fade));
        mask-size: 24px 24px, 100% 100%;
        mask-composite: intersect;
    }
}
@keyframes lp-drift {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}

/* ---------- Home hero ---------- */
body.lp-theme .main-headline {
    font-size: clamp(2.1rem, 4.8vw, 3.5rem);
    font-weight: 800;
    line-height: 1.12;
    letter-spacing: -.025em;
    color: var(--lp-ink);
}
body.lp-theme .main-headline-sub {
    font-size: 1.15rem;
    line-height: 1.6;
    font-weight: 500;
    color: var(--lp-muted);
}
body.lp-theme .hero-bg h3.mt-3 {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: .98rem;
    font-weight: 700 !important;
    color: var(--lp-ok);
}
body.lp-theme .hero-bg h3.mt-3::before {
    content: '\f26a';
    font-family: bootstrap-icons !important;
    font-weight: 400;
    font-size: 1.1rem;
}
body.lp-theme .hero-buttons { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }
body.lp-theme .hero-buttons .btn { margin: 0 !important; }
body.lp-theme .hero-button-demo { margin-left: 0; }
body.lp-theme .hero-bg img[style] { background-color: transparent !important; }
/* The hero image has a solid pale backdrop, so fade its edges into the gradient instead of showing a box */
body.lp-theme .hero-bg .col-lg-6.text-center img {
    -webkit-mask-image: radial-gradient(ellipse closest-side at 50% 50%, #000 62%, transparent 100%);
    mask-image: radial-gradient(ellipse closest-side at 50% 50%, #000 62%, transparent 100%);
    animation: lp-float 7s ease-in-out infinite;
}
@keyframes lp-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}
@media (min-width: 992px) {
    body.lp-theme .hero-buttons { justify-content: flex-start; }
}

body.lp-theme .text-center > h2 + p { margin-top: 12px; }

/* ---------- Onboarding block ---------- */
body.lp-theme .onboarding-title { font-weight: 800; letter-spacing: -.02em; }
body.lp-theme .onboarding-subtitle { color: var(--lp-muted); }
body.lp-theme .onboarding-text { color: var(--lp-muted); }
body.lp-theme .step-card {
    border: 1px solid var(--lp-line);
    border-radius: var(--lp-radius);
    box-shadow: var(--lp-shadow);
    transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
body.lp-theme .step-card:hover { transform: translateY(-3px); border-color: #cfb5ee; box-shadow: 0 18px 40px rgba(40, 14, 80, .12); }
body.lp-theme .step-number {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--lp-brand);
    color: #fff;
    font-size: 1rem;
    font-weight: 800;
    box-shadow: 0 8px 18px -6px rgba(101, 21, 177, .55);
}

/* ---------- Cards ---------- */
body.lp-theme section.bg-light { background: var(--lp-bg-alt) !important; }
body.lp-theme .rounded-4.shadow-sm {
    background: #fff !important;
    border: 1px solid var(--lp-line) !important;
    border-radius: var(--lp-radius) !important;
    box-shadow: var(--lp-shadow) !important;
    transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
body.lp-theme .rounded-4.shadow-sm:hover {
    transform: translateY(-4px);
    border-color: #cfb5ee !important;
    box-shadow: 0 18px 40px rgba(40, 14, 80, .12) !important;
}
body.lp-theme .rounded-4.shadow-sm.border-warning { border: 2px solid #cfb5ee !important; }

/* Icon chip on the "why restaurants choose" cards */
body.lp-theme .rounded-4.shadow-sm > h3.roboto-normal::before {
    content: '\f589';
    font-family: bootstrap-icons !important;
    font-weight: 400;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-bottom: 14px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--lp-brand), #b832d6);
    color: #fff;
    font-size: 1.25rem;
    box-shadow: 0 10px 20px -8px rgba(101, 21, 177, .6);
}

/* ---------- Features page ---------- */
body.lp-theme .feature-item.bg-light { background: var(--lp-bg-alt) !important; }
body.lp-theme .img-cnt {
    position: relative;
    border-radius: 24px;
    overflow: hidden;
    border: 1px solid var(--lp-line);
    box-shadow: 0 30px 60px -24px rgba(40, 14, 80, .35) !important;
    transition: transform .35s ease, box-shadow .35s ease;
}
body.lp-theme .img-cnt:hover { transform: translateY(-6px); box-shadow: 0 40px 70px -24px rgba(40, 14, 80, .42) !important; }
body.lp-theme .img-cnt img { border-radius: inherit; }
body.lp-theme .inside-wrap::before {
    content: '';
    display: block;
    width: 48px;
    height: 5px;
    margin: 0 auto 18px;
    border-radius: 99px;
    background: var(--lp-grad);
}
body.lp-theme .inside-wrap p { font-size: 1.05rem; line-height: 1.7; padding-top: 14px; color: var(--lp-muted); }
@media (min-width: 992px) {
    body.lp-theme .inside-wrap::before { margin-left: 0; }
}

/* ---------- Accordion (FAQ) ---------- */
body.lp-theme .accordion { display: grid; gap: 12px; }
body.lp-theme .accordion-item {
    border: 1px solid var(--lp-line) !important;
    border-radius: 14px !important;
    overflow: hidden;
    background: #fff;
    transition: border-color .2s ease, box-shadow .2s ease;
}
body.lp-theme .accordion-item:has(.accordion-button:not(.collapsed)) { border-color: #cfb5ee !important; box-shadow: var(--lp-shadow); }
body.lp-theme .accordion-button { font-weight: 700 !important; color: var(--lp-ink); background: #fff; box-shadow: none !important; }
body.lp-theme .accordion-button:not(.collapsed) { background: var(--lp-brand-soft); color: var(--lp-brand); }
body.lp-theme .accordion-body p { color: var(--lp-muted); }

/* ---------- CTA banners ---------- */
body.lp-theme :is(.cta-gradient, .cta-blue, .cta-dark) {
    background:
        radial-gradient(700px 320px at 20% 0%, rgba(240, 98, 122, .28), transparent 60%),
        linear-gradient(135deg, #6515b1, #3d0b73) !important;
    color: #fff;
}
body.lp-theme .cta-section img { border-radius: var(--lp-radius); box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .45); }

/* ---------- Pricing ---------- */
body.lp-theme .billing-segment { background: #fff; box-shadow: inset 0 0 0 1px var(--lp-line), var(--lp-shadow); }
body.lp-theme .billing-pill { font-weight: 700; color: var(--lp-muted); }
body.lp-theme .monthly-label.text-primary,
body.lp-theme .annual-label.text-primary { color: var(--lp-brand) !important; background: var(--lp-brand-soft); box-shadow: none; }
body.lp-theme .billing-badge { background: #e3f6ec; color: var(--lp-ok); }
body.lp-theme .form-check-input:checked { background-color: var(--lp-brand); border-color: var(--lp-brand); }
body.lp-theme .form-check-input:focus { border-color: #b98af0; box-shadow: 0 0 0 .25rem rgba(101, 21, 177, .2); }

body.lp-theme .plan-card {
    border: 1px solid var(--lp-line) !important;
    border-radius: var(--lp-radius) !important;
    overflow: hidden;
    box-shadow: var(--lp-shadow) !important;
    transition: transform .25s ease, box-shadow .25s ease;
}
body.lp-theme .plan-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(40, 14, 80, .14) !important; }
body.lp-theme .plan-card.feature-plan { border: 2px solid var(--lp-brand) !important; }
body.lp-theme .plan-card .card-header {
    border-bottom: 1px solid var(--lp-line);
    background: var(--lp-bg-alt) !important;
    color: var(--lp-ink) !important;
    padding: 1.1rem 1rem;
}
body.lp-theme .plan-card .card-header.bg-success {
    background: linear-gradient(135deg, #6515b1, #3d0b73) !important;
    border-bottom: 0;
    color: #fff !important;
}
body.lp-theme .plan-card .card-header.bg-success h4 { color: #fff; }
body.lp-theme .badge.bg-warning {
    background: rgba(255, 255, 255, .2) !important;
    color: #fff !important;
    font-weight: 700;
}
body.lp-theme .plan-price { font-weight: 800 !important; letter-spacing: -.03em; color: var(--lp-ink); }
body.lp-theme .subscription-form { height: 100%; }
body.lp-theme .plan-card .btn-primary { min-height: 50px; }
body.lp-theme .plan-card .feature-item { font-weight: 600; }
/* Only list what the plan includes (enabled features from the DB). The compiled site CSS has no
   .feature-disabled rule, so without this all three plans looked the same. Remove this one rule
   to bring the crossed-out rows back. */
body.lp-theme .plan-card .feature-item.feature-disabled { display: none; }
body.lp-theme .plan-card .bi-check-circle-fill.text-success { color: var(--lp-ok) !important; }
body.lp-theme .pricing-header .lead { color: var(--lp-muted); }

/* ---------- Footer ---------- */
body.lp-theme footer.bg-dark { background: var(--lp-ink) !important; }
body.lp-theme footer a.link-light:hover { color: #d6bdf6 !important; }

@media (prefers-reduced-motion: reduce) {
    body.lp-theme *, body.lp-theme *::before, body.lp-theme *::after { animation: none !important; transition: none !important; }
}
