/* First Ride public-site design system: loaded after the legacy theme. */
:root {
    --fr-ink: #172036;
    --fr-ink-soft: #526077;
    --fr-canvas: #f7f8fb;
    --fr-white: #ffffff;
    --fr-line: #e3e8f0;
    --fr-mint: #0f9c7a;
    --fr-mint-dark: #08745a;
    --fr-gold: #ffbe3d;
    --fr-gold-dark: #dc8d07;
    --fr-navy: #172036;
    --fr-radius: 20px;
    --fr-shadow: 0 18px 50px rgba(23, 32, 54, .10);
}

.fr-public-site {
    color: var(--fr-ink);
    background: var(--fr-canvas);
    font-family: Inter, Arial, sans-serif;
    line-height: 1.6;
}

.fr-public-site :focus-visible {
    outline: 3px solid rgba(255, 190, 61, .9);
    outline-offset: 3px;
}

.fr-public-site a {
    transition: color .2s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.fr-public-site img {
    image-rendering: auto;
}

/* Header */
.fr-public-site .fr-site-header {
    position: relative;
    z-index: 99;
    background: var(--fr-white);
    box-shadow: 0 1px 0 rgba(23, 32, 54, .06);
}

.fr-public-site .fr-site-strip {
    min-height: 36px;
    color: rgba(255,255,255,.82);
    background: var(--fr-navy);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .01em;
}

.fr-public-site .fr-site-strip-inner,
.fr-public-site .fr-site-header .header-lower .outer-box,
.fr-public-site .fr-site-header .sticky-header .outer-box {
    width: min(1280px, calc(100% - 40px));
    margin: 0 auto;
}

.fr-public-site .fr-site-strip-inner {
    display: flex;
    min-height: 36px;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.fr-public-site .fr-site-strip a,
.fr-public-site .fr-site-strip span {
    color: rgba(255,255,255,.88);
}

.fr-public-site .fr-site-strip a:hover { color: var(--fr-gold); }
.fr-public-site .fr-site-strip i { margin-right: 6px; color: var(--fr-gold); }
.fr-public-site .fr-site-strip .fr-strip-left,
.fr-public-site .fr-site-strip .fr-strip-right { display: flex; align-items: center; gap: 20px; }

.fr-public-site .fr-site-header .header-lower {
    min-height: 80px;
    padding: 0 !important;
    background: var(--fr-white);
}

.fr-public-site .fr-site-header .header-lower .main-box,
.fr-public-site .fr-site-header .sticky-header .outer-box {
    display: flex;
    min-height: 80px;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.fr-public-site .fr-site-header .logo-box,
.fr-public-site .fr-site-header .logo-box .logo {
    margin: 0 !important;
    padding: 0 !important;
}

.fr-public-site .fr-site-header .logo-box .logo img {
    display: block;
    width: auto;
    max-width: 154px;
    max-height: 54px;
}

.fr-public-site .fr-site-header .menu-area {
    display: flex;
    flex: 1;
    align-items: center;
    justify-content: flex-end;
    gap: 18px;
}

.fr-public-site .fr-site-header .main-menu { display: block; }
.fr-public-site .fr-site-header .main-menu .navigation {
    display: flex !important;
    align-items: center;
    gap: 3px;
    margin: 0 !important;
}

.fr-public-site .fr-site-header .main-menu .navigation > li {
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.fr-public-site .fr-site-header .main-menu .navigation > li > a {
    position: relative;
    display: block;
    padding: 10px 9px !important;
    color: #455168 !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
    text-transform: none !important;
}

.fr-public-site .fr-site-header .main-menu .navigation > li > a::after {
    position: absolute;
    right: 9px;
    bottom: 3px;
    left: 9px;
    height: 2px;
    content: "";
    background: var(--fr-mint);
    opacity: 0;
    transform: scaleX(.3);
    transition: .2s ease;
}

.fr-public-site .fr-site-header .main-menu .navigation > li.current > a,
.fr-public-site .fr-site-header .main-menu .navigation > li > a:hover { color: var(--fr-navy) !important; }
.fr-public-site .fr-site-header .main-menu .navigation > li.current > a::after,
.fr-public-site .fr-site-header .main-menu .navigation > li > a:hover::after { opacity: 1; transform: scaleX(1); }

.fr-public-site .fr-site-header .menu-right { gap: 8px; }
.fr-public-site .fr-site-header .menu-right .btn-box { margin: 0 !important; }
.fr-public-site .fr-site-header .theme-btn.btn-one,
.fr-public-site .fr-compact-portal {
    display: inline-flex !important;
    min-height: 43px;
    align-items: center;
    justify-content: center;
    padding: 0 16px !important;
    border: 1px solid var(--fr-mint) !important;
    border-radius: 10px !important;
    color: #fff !important;
    background: var(--fr-mint) !important;
    box-shadow: none !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    text-transform: none !important;
}

.fr-public-site .fr-site-header .theme-btn.btn-one::before,
.fr-public-site .fr-site-header .theme-btn.btn-one::after { display: none !important; }
.fr-public-site .fr-site-header .theme-btn.btn-one:hover { color: var(--fr-navy) !important; background: var(--fr-gold) !important; border-color: var(--fr-gold) !important; transform: translateY(-1px); }
.fr-public-site .fr-compact-portal { min-width: 43px; padding: 0 12px !important; color: var(--fr-mint) !important; background: #f3fbf8 !important; }
.fr-public-site .fr-compact-portal:hover { color: var(--fr-navy) !important; background: #e7f7f1 !important; }

.fr-public-site .fr-site-header .sticky-header {
    min-height: 68px;
    background: rgba(255,255,255,.98) !important;
    box-shadow: 0 10px 30px rgba(23,32,54,.10);
}
.fr-public-site .fr-site-header .sticky-header .outer-box { min-height: 68px; }
.fr-public-site .fr-site-header .sticky-header .logo-box .logo img { max-height: 44px; }

/* Shared public-page rhythm */
.fr-public-site .auto-container,
.fr-public-site .auto-container-full { width: min(1180px, calc(100% - 40px)); margin-right: auto; margin-left: auto; }
.fr-public-site .fr-wrap { width: min(1180px, calc(100% - 40px)); }
.fr-public-site .fr-section,
.fr-public-site .instructors-page,
.fr-public-site .location-page,
.fr-public-site .book-page,
.fr-public-site .contact-cards-section,
.fr-public-site .contact-lead-section,
.fr-public-site .contact-faq-section,
.fr-public-site .pricing-section-v2,
.fr-public-site .integrity-section-v2,
.fr-public-site .about-premium-intro,
.fr-public-site .about-promise-section,
.fr-public-site .about-pathway-section,
.fr-public-site .about-cta-section,
.fr-public-site .lsp-section { padding-top: 92px; padding-bottom: 92px; }

.fr-public-site .fr-section.fr-soft,
.fr-public-site .instructors-page,
.fr-public-site .location-page,
.fr-public-site .contact-lead-section,
.fr-public-site .about-promise-section,
.fr-public-site .lsp-section:nth-of-type(even) { background: #f1f5f7; }

.fr-public-site :is(.fr-title,.section-title h2,.section-title-center h2,.contact-faq-head h2,.pricing-title-premium h2,.about-section-title h2,.lsp-section h2) {
    color: var(--fr-navy) !important;
    font-weight: 900 !important;
    letter-spacing: -.045em;
    line-height: 1.12 !important;
}

.fr-public-site :is(.fr-lead,.section-title p,.section-title-center p,.pricing-title-premium p,.about-section-title p,.lsp-section p) { color: var(--fr-ink-soft); }

.fr-public-site .fr-eyebrow,
.fr-public-site .pricing-eyebrow,
.fr-public-site .contact-eyebrow,
.fr-public-site .about-premium-eyebrow,
.fr-public-site .lsp-eyebrow {
    color: var(--fr-mint-dark) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    letter-spacing: .08em;
    text-transform: uppercase;
}

/* Inner-page heroes retain page content but receive one visual language. */
.fr-public-site :is(.contact-hero-v2,.instructors-hero,.location-hero,.lsp-hero,.book-hero,.privacy-hero-v2,.terms-hero-v2) {
    position: relative;
    overflow: hidden;
    min-height: 315px;
    padding: 82px 0 74px;
    background: linear-gradient(120deg, #172036 0%, #193b4a 58%, #0f9c7a 150%) !important;
}

.fr-public-site :is(.contact-hero-v2,.instructors-hero,.location-hero,.lsp-hero,.book-hero,.privacy-hero-v2,.terms-hero-v2)::before {
    position: absolute;
    inset: 0;
    content: "";
    pointer-events: none;
    background: radial-gradient(circle at 85% 14%, rgba(255,190,61,.28), transparent 28%), radial-gradient(circle at 13% 115%, rgba(15,156,122,.45), transparent 37%);
}

.fr-public-site :is(.contact-hero-v2,.instructors-hero,.location-hero,.lsp-hero,.book-hero,.privacy-hero-v2,.terms-hero-v2) .auto-container,
.fr-public-site :is(.contact-hero-v2,.instructors-hero,.location-hero,.lsp-hero,.book-hero,.privacy-hero-v2,.terms-hero-v2) .fr-wrap { position: relative; z-index: 1; }

.fr-public-site :is(.contact-hero-v2,.instructors-hero,.location-hero,.lsp-hero,.book-hero,.privacy-hero-v2,.terms-hero-v2) h1 {
    max-width: 800px;
    color: #fff !important;
    font-size: clamp(34px, 5vw, 58px) !important;
    font-weight: 900 !important;
    letter-spacing: -.055em;
    line-height: 1.04 !important;
}

.fr-public-site :is(.contact-hero-v2,.instructors-hero,.location-hero,.lsp-hero,.book-hero,.privacy-hero-v2,.terms-hero-v2) h1 span { color: var(--fr-gold) !important; }
.fr-public-site :is(.contact-hero-v2,.instructors-hero,.location-hero,.lsp-hero,.book-hero,.privacy-hero-v2,.terms-hero-v2) p { max-width: 680px; color: rgba(255,255,255,.86) !important; font-size: 17px; }
.fr-public-site :is(.hero-pill-badge,.instructors-eyebrow,.location-eyebrow,.lsp-eyebrow,.book-eyebrow) { display: inline-flex; align-items: center; gap: 7px; padding: 7px 11px; border: 1px solid rgba(255,255,255,.26); border-radius: 999px; background: rgba(255,255,255,.10); color: #fff !important; }
.fr-public-site :is(.hero-breadcrumbs,.hero-breadcrumbs a) { color: rgba(255,255,255,.74) !important; }

/* Home keeps its strong existing content but lifts the conversion hierarchy. */
.fr-public-site .fr-hero { background: radial-gradient(circle at 84% 13%, rgba(255,190,61,.17), transparent 26%), linear-gradient(120deg, #172036, #1d4852) !important; }
.fr-public-site .fr-hero h1 { max-width: 670px; font-size: clamp(39px, 5.2vw, 66px) !important; line-height: 1.02 !important; letter-spacing: -.055em; }
.fr-public-site .fr-hero-copy > p { max-width: 620px; font-size: 18px !important; }
.fr-public-site .fr-hero-card { border-radius: 24px !important; box-shadow: 0 28px 60px rgba(0,0,0,.25) !important; }
.fr-public-site .fr-hero-card img { min-height: 380px; object-fit: cover; }
.fr-public-site .fr-quick { background: #fff !important; border-bottom: 1px solid var(--fr-line); }
.fr-public-site .fr-quick-item { border-radius: 0 !important; }
.fr-public-site .fr-quick-item i { color: var(--fr-mint) !important; }

.fr-public-site .fr-btn,
.fr-public-site .btn-add-cart-v2,
.fr-public-site .footer-head-btn,
.fr-public-site .footer-cta-btn,
.fr-public-site .contact-submit-btn,
.fr-public-site .lsp-submit-btn,
.fr-public-site .book-submit-btn {
    border-radius: 10px !important;
    background: var(--fr-mint) !important;
    box-shadow: 0 10px 18px rgba(15,156,122,.16) !important;
    font-weight: 900 !important;
}
.fr-public-site .fr-btn:hover,
.fr-public-site .btn-add-cart-v2:hover,
.fr-public-site .footer-head-btn:hover,
.fr-public-site .footer-cta-btn:hover,
.fr-public-site .contact-submit-btn:hover,
.fr-public-site .lsp-submit-btn:hover,
.fr-public-site .book-submit-btn:hover { color: var(--fr-navy) !important; background: var(--fr-gold) !important; transform: translateY(-2px); }
.fr-public-site .fr-btn-ghost { border-radius: 10px !important; font-weight: 900 !important; }

.fr-public-site .fr-package,
.fr-public-site .pricing-card-v2,
.fr-public-site .instructor-card,
.fr-public-site .location-card,
.fr-public-site .contact-card,
.fr-public-site .faq-card-v2,
.fr-public-site .pricing-faq-item,
.fr-public-site .book-section,
.fr-public-site .lsp-card,
.fr-public-site .about-value-card { border-radius: var(--fr-radius) !important; box-shadow: var(--fr-shadow); }
.fr-public-site .fr-package.featured,
.fr-public-site .pricing-card-v2.featured-card { border-color: var(--fr-mint) !important; box-shadow: 0 20px 60px rgba(15,156,122,.18) !important; }

.fr-public-site .fr-proof,
.fr-public-site .fr-cta,
.fr-public-site .about-cta-card,
.fr-public-site .services-bottom-cta { background: linear-gradient(120deg, #172036, #225465) !important; }

/* Cards, forms and information pages */
.fr-public-site :is(.contact-card,.pricing-card-v2,.faq-card-v2,.pricing-faq-item,.instructor-card,.location-card,.book-section,.book-result-panel,.lsp-form-card) { border-color: var(--fr-line) !important; }
.fr-public-site .contact-card:hover,
.fr-public-site .pricing-card-v2:hover,
.fr-public-site .instructor-card:hover,
.fr-public-site .location-card:hover { border-color: rgba(15,156,122,.38) !important; transform: translateY(-4px); }
.fr-public-site .pricing-card-icon,
.fr-public-site .contact-card-icon { color: var(--fr-mint) !important; background: #e8f8f2 !important; }
.fr-public-site .integrity-card-v2 { border-radius: 22px !important; background: #fff !important; box-shadow: var(--fr-shadow) !important; }
.fr-public-site .integrity-card-v2 h2 { color: var(--fr-navy) !important; }
.fr-public-site .integrity-card-v2 p { color: var(--fr-ink-soft) !important; }
.fr-public-site .integrity-item { background: #f1f8f5 !important; }
.fr-public-site .integrity-item i { color: var(--fr-mint) !important; }

.fr-public-site :is(input,select,textarea,.nice-select) { border-color: #d8e0e9 !important; border-radius: 10px !important; color: var(--fr-ink) !important; }
.fr-public-site :is(input,select,textarea,.nice-select):focus { border-color: var(--fr-mint) !important; box-shadow: 0 0 0 4px rgba(15,156,122,.12) !important; }
.fr-public-site .book-page { background: #f4f7f8 !important; }
.fr-public-site .book-section.is-active { border-color: rgba(15,156,122,.55) !important; }
.fr-public-site .book-progress-step.is-active .book-progress-number,
.fr-public-site .book-progress-step.is-complete .book-progress-number { background: var(--fr-mint) !important; }

/* Footer */
.fr-public-site .footer-style-two {
    color: rgba(255,255,255,.70) !important;
    background: #111a2e !important;
}
.fr-public-site .footer-style-two .footer-top { padding-top: 60px !important; padding-bottom: 46px !important; background: transparent !important; }
.fr-public-site .footer-premium-head { margin-bottom: 48px !important; padding: 30px 34px !important; border: 1px solid rgba(255,255,255,.13); border-radius: 18px; background: linear-gradient(110deg, rgba(15,156,122,.27), rgba(255,190,61,.10)) !important; }
.fr-public-site .footer-premium-head h3,
.fr-public-site .footer-style-two h3,
.fr-public-site .footer-style-two h4 { color: #fff !important; }
.fr-public-site .footer-kicker,
.fr-public-site .footer-cta-label { color: var(--fr-gold) !important; }
.fr-public-site .footer-style-two .footer-logo img { max-width: 154px; max-height: 60px; width: auto; object-fit: contain; }
.fr-public-site .footer-style-two a { color: rgba(255,255,255,.78) !important; }
.fr-public-site .footer-style-two a:hover { color: var(--fr-gold) !important; }
.fr-public-site .footer-style-two .contact-info-item .icon-box { color: var(--fr-gold) !important; }
.fr-public-site .footer-style-two .footer-bottom { border-color: rgba(255,255,255,.10) !important; background: rgba(0,0,0,.12) !important; }

.fr-public-site .fr-mobile-bottom-bar {
    grid-template-columns: 1fr 1.3fr;
    padding: 9px max(12px, env(safe-area-inset-right)) calc(9px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
    border-top: 1px solid var(--fr-line);
    background: rgba(255,255,255,.97);
    box-shadow: 0 -10px 26px rgba(23,32,54,.10);
}
.fr-public-site .fr-mobile-bottom-action { color: var(--fr-navy); font-weight: 900; }
.fr-public-site .fr-mobile-bottom-action-primary { border-radius: 9px; color: #fff !important; background: var(--fr-mint) !important; }

@media (max-width: 1199px) {
    .fr-public-site .fr-site-header .main-menu .navigation > li > a { padding-right: 6px !important; padding-left: 6px !important; font-size: 11px !important; }
    .fr-public-site .fr-site-header .menu-area { gap: 10px; }
}

@media (max-width: 991px) {
    .fr-public-site .fr-site-header .header-lower,
    .fr-public-site .fr-site-header .header-lower .main-box { min-height: 70px; }
    .fr-public-site .fr-site-header .main-menu,
    .fr-public-site .fr-site-header .menu-right { display: none !important; }
    .fr-public-site .fr-site-header .mobile-nav-toggler { display: flex !important; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid var(--fr-line); border-radius: 9px; background: #f4faf8; }
    .fr-public-site .fr-site-header .mobile-nav-toggler .icon-bar { background: var(--fr-mint) !important; }
    .fr-public-site .fr-site-header .sticky-header .main-menu { display: none !important; }
}

@media (max-width: 767px) {
    .fr-public-site .fr-site-strip { font-size: 10px; }
    .fr-public-site .fr-site-strip-inner { justify-content: center; min-height: 34px; }
    .fr-public-site .fr-site-strip .fr-strip-left { display: none; }
    .fr-public-site .fr-site-strip .fr-strip-right { gap: 0; }
    .fr-public-site .fr-site-strip .fr-strip-right a { padding: 2px 8px; }
    .fr-public-site .fr-site-header .header-lower .outer-box,
    .fr-public-site .fr-site-header .sticky-header .outer-box,
    .fr-public-site .auto-container,
    .fr-public-site .auto-container-full,
    .fr-public-site .fr-wrap { width: min(100% - 28px, 1180px); }
    .fr-public-site .fr-site-header .logo-box .logo img { max-width: 133px; max-height: 47px; }
    .fr-public-site :is(.contact-hero-v2,.instructors-hero,.location-hero,.lsp-hero,.book-hero,.privacy-hero-v2,.terms-hero-v2) { min-height: 270px; padding-top: 58px; padding-bottom: 54px; }
    .fr-public-site :is(.contact-hero-v2,.instructors-hero,.location-hero,.lsp-hero,.book-hero,.privacy-hero-v2,.terms-hero-v2) h1 { font-size: 36px !important; }
    .fr-public-site :is(.contact-hero-v2,.instructors-hero,.location-hero,.lsp-hero,.book-hero,.privacy-hero-v2,.terms-hero-v2) p { font-size: 15px; }
    .fr-public-site .fr-section,
    .fr-public-site .instructors-page,
    .fr-public-site .location-page,
    .fr-public-site .book-page,
    .fr-public-site .contact-cards-section,
    .fr-public-site .contact-lead-section,
    .fr-public-site .contact-faq-section,
    .fr-public-site .pricing-section-v2,
    .fr-public-site .integrity-section-v2,
    .fr-public-site .about-premium-intro,
    .fr-public-site .about-promise-section,
    .fr-public-site .about-pathway-section,
    .fr-public-site .about-cta-section,
    .fr-public-site .lsp-section { padding-top: 62px; padding-bottom: 62px; }
    .fr-public-site .fr-hero h1 { font-size: 42px !important; }
    .fr-public-site .fr-hero-card img { min-height: 275px; }
    .fr-public-site .footer-premium-head { display: block !important; padding: 25px 22px !important; }
    .fr-public-site .footer-premium-head .footer-head-btn { margin-top: 20px; }
    .fr-public-site .footer-style-two { padding-bottom: 76px; }
}
