/* Shared public surfaces, loaded after the original theme. */
body.modern-theme.folofan-site {
    --modern-ink: #fbf8ff;
    --modern-muted: #dad5eb;
    --modern-bg: #0b1024;
    --modern-surface: #151c36;
    --modern-line: #3d4365;
    --modern-accent: #dfadff;
    --modern-tint: #30234d;
    --bs-body-color: var(--modern-ink);
    --bs-body-color-rgb: 251, 248, 255;
    --bs-body-bg: var(--modern-bg);
    --bs-body-bg-rgb: 11, 16, 36;
    --bs-secondary-color: var(--modern-muted);
    --bs-secondary-bg: #19213d;
    --bs-secondary-bg-rgb: 25, 33, 61;
    --bs-tertiary-bg: #151c36;
    --bs-tertiary-bg-rgb: 21, 28, 54;
    --bs-border-color: var(--modern-line);
    --bs-primary: #d29aff;
    --bs-primary-rgb: 210, 154, 255;
    --bs-link-color: #e1b2ff;
    --bs-link-color-rgb: 225, 178, 255;
    --bs-link-hover-color-rgb: 244, 221, 255;
    color-scheme: dark;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.folofan-site > main { flex: 1 0 auto; min-width: 0; }
.folofan-site > .folofan-header { position: relative; z-index: 10; }
.folofan-site main .header-top,
.folofan-site main .modern-hero:not(.folofan-home .modern-hero) {
    background: radial-gradient(ellipse at 80% 0%, #2d1859, transparent 65%), #111730;
    border-bottom: 1px solid var(--modern-line);
}
.folofan-site main .header-top .img-background { display: none; }
.folofan-site main .header-top h1,
.folofan-site main .header-top h3,
.folofan-site main .post-single h1 {
    color: var(--modern-ink);
    letter-spacing: -.045em;
}
.folofan-site main .header-top p,
.folofan-site main .post-single p { color: var(--modern-muted); }
.folofan-site main .header-top .mt-7 { margin-top: 0 !important; }

.folofan-site main .card,
.folofan-site main .package-list .tab-content .tab-item,
.folofan-site main .why-choose-us .icon-box {
    --bs-card-bg: var(--modern-surface);
    --bs-card-color: var(--modern-ink);
    --bs-card-border-color: var(--modern-line);
    background: var(--modern-surface);
    color: var(--modern-ink);
    border: 1px solid var(--modern-line);
    border-radius: 1rem;
}
.folofan-site main .card-title.bg-light.text-dark {
    background: var(--modern-tint) !important;
    color: var(--modern-ink) !important;
    border-radius: .6rem;
}
.folofan-site main .package-btn-list .buy-package-item {
    background: #202849 !important;
    color: var(--modern-ink);
    border-color: #554777;
}
.folofan-site main .package-btn-list .buy-package-item:hover { background: #342453 !important; }
.folofan-site main .package-btn-list .icon-right { color: var(--modern-accent); }

.folofan-site .btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: #692ac8;
    --bs-btn-border-color: #a46deb;
    --bs-btn-hover-bg: #52229e;
    --bs-btn-hover-border-color: #bb89fa;
    --bs-btn-active-bg: #492184;
    --bs-btn-active-border-color: #bb89fa;
}
.folofan-site .btn-outline-primary,
.folofan-site .btn-outline-dark {
    --bs-btn-color: #edcaff;
    --bs-btn-border-color: #9763d0;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #4b2b72;
    --bs-btn-hover-border-color: #c293ff;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #4b2b72;
    --bs-btn-active-border-color: #c293ff;
    border-radius: .65rem;
}

.folofan-site main .form-control,
.folofan-site main .form-select,
.folofan-site main textarea {
    background-color: #10162d;
    color: var(--modern-ink);
    border-color: #60577a;
}
.folofan-site main .form-control:focus,
.folofan-site main .form-select:focus,
.folofan-site main textarea:focus {
    border-color: #cb96ff;
    box-shadow: 0 0 0 .18rem #b67aff45;
}
.folofan-site main .form-control::placeholder { color: #b9b1cc; }
.folofan-site main .form-check-input:checked { background-color: #7935d4; border-color: #bc8cf3; }
.folofan-site main .item-payment.selected,
.folofan-site main .item-option.selected { border-color: #b684f3; }
.folofan-site main .item-payment .logo { background-color: #fff; border-radius: .4rem; padding: .25rem; }
.folofan-site main .iti__dropdown-content,
.folofan-site main .iti__country-list { background: #1b2342; color: #fff; }

.folofan-site main .table {
    --bs-table-color: var(--modern-ink);
    --bs-table-bg: var(--modern-surface);
    --bs-table-border-color: var(--modern-line);
    --bs-table-striped-color: var(--modern-ink);
    --bs-table-striped-bg: #202849;
    --bs-table-hover-color: var(--modern-ink);
    --bs-table-hover-bg: #282d50;
}
.folofan-site main .accordion {
    --bs-accordion-color: var(--modern-ink);
    --bs-accordion-bg: var(--modern-surface);
    --bs-accordion-border-color: var(--modern-line);
    --bs-accordion-btn-color: var(--modern-ink);
    --bs-accordion-btn-bg: var(--modern-surface);
    --bs-accordion-active-color: #f5ddff;
    --bs-accordion-active-bg: #2e214b;
}
.folofan-site .modal-content {
    --bs-modal-bg: var(--modern-surface);
    --bs-modal-color: var(--modern-ink);
    --bs-modal-border-color: var(--modern-line);
}
.folofan-site main .content-404 p { color: var(--modern-muted); }

body.modern-theme.folofan-site {
    background-color: #0b1024 !important;
    color: #fbf8ff;
}

.folofan-site .modern-landing:not(.folofan-home) .package-list,
.folofan-site .modern-landing:not(.folofan-home) .modern-hero {
    padding-block: clamp(1.5rem, 3vw, 2.75rem) !important;
}

/* Category pages can use either the tab layout or the carousel. */
.folofan-site .modern-landing:not(.folofan-home):has(.package-category-tab, .package-category-carousel) .modern-hero-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
}

.folofan-site .modern-landing:not(.folofan-home):has(.package-category-tab, .package-category-carousel) .modern-hero-art {
    display: none;
}

.folofan-site .modern-landing:not(.folofan-home):has(.package-category-tab, .package-category-carousel) .modern-hero h1 {
    font-size: clamp(2rem, 4.25vw, 3.5rem);
    max-width: none;
}

.folofan-site .package-category-carousel .box-item { margin-top: 1.5rem !important; }

.folofan-site main .folofan-tracking .card {
    background: #151c36 !important;
    border: 1px solid #525376 !important;
}

.folofan-site main .folofan-tracking .form-label { color: #fbf8ff !important; }
.folofan-site main .folofan-tracking .form-control {
    background: #0f152b !important;
    color: #fbf8ff !important;
}

.folofan-site main .folofan-tracking button[type="submit"] {
    background: #692ac8 !important;
    color: #fff !important;
    border-color: #b584ef;
    font-weight: 650;
}

.folofan-site main .folofan-tracking button[type="submit"]:hover {
    background: #52229e !important;
}

/* Folofan form panels and controls */
.folofan-site main :is(.order-form, .folofan-tracking) .card,
.folofan-site main .page-single-content .bg-light:has(> form.sendForm),
.folofan-site #reviewModal .modal-content {
    background: linear-gradient(145deg, #211a40 0%, #151c36 55%, #12192f 100%) !important;
    border: 1px solid #554675 !important;
    color: #fbf8ff !important;
    border-radius: 1rem;
}

.folofan-site :is(.order-form, .folofan-tracking, .page-single-content, #reviewModal) form :is(.form-label, .col-form-label, .form-check-label) {
    color: #fbf8ff;
}

.folofan-site :is(.order-form, .folofan-tracking, .page-single-content, #reviewModal) form :is(.form-control, .form-select) {
    background-color: #0f152b;
    color: #fbf8ff;
    border-color: #6a5c86;
    border-radius: .6rem;
}

.folofan-site :is(.order-form, .folofan-tracking, .page-single-content, #reviewModal) form .form-control::placeholder {
    color: #bdb3d0;
}

.folofan-site :is(.order-form, .folofan-tracking, .page-single-content, #reviewModal) form :is(.form-control, .form-select):focus {
    border-color: #cb96ff;
    box-shadow: 0 0 0 .18rem #b67aff45;
}

.folofan-site form .form-control.is-invalid,
.folofan-site form .form-select.is-invalid {
    border-color: var(--bs-form-invalid-border-color);
}

.folofan-site .order-form .payment-options .item-payment {
    background-color: #171e3a;
    border-color: #595071;
}

.folofan-site .order-form .payment-options .item-payment:is(:hover, .selected, :focus-within) {
    background-color: #2b2149;
    border-color: #b684f3;
}

.folofan-site #reviewModal :is(.modal-header, .modal-footer) { border-color: #554675; }

/* Public offer carousels */
.folofan-site .package-list .owl-carousel {
    padding: .65rem;
    border: 1px solid #3d4265;
    border-radius: 1rem;
    background: linear-gradient(150deg, #20183b, #111932 70%);
}

.folofan-site .package-list .owl-carousel :is(.card, .social-item > div) {
    border: 1px solid #51456f;
    border-radius: .9rem;
    background: #171f3b;
    color: #fbf8ff;
}

.folofan-site .package-list .owl-carousel :is(.card, .social-item > div):hover {
    border-color: #ac7bec;
    transform: none;
}

.folofan-site .owl-carousel :is(.owl-nav, .owl-dots):not(.disabled) {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: .45rem;
    margin-top: .65rem;
}

.folofan-site .owl-carousel .owl-nav :is(.owl-prev, .owl-next) {
    position: static;
    transform: none;
    display: grid;
    place-items: center;
    width: 2.75rem;
    height: 2.75rem;
    margin: 0;
    border: 1px solid #9a70c8;
    border-radius: .65rem;
    background: #30234d;
    color: #fff;
}

.folofan-site .owl-carousel .owl-nav :is(.owl-prev, .owl-next) span {
    display: block;
    height: auto;
    font-size: 1.65rem;
    line-height: 1;
    background: transparent;
}

.folofan-site .owl-carousel .owl-nav button:hover:not(.disabled) { background: #56318c; }
.folofan-site .owl-carousel .owl-nav .disabled { opacity: .55; cursor: default; }

.folofan-site .owl-carousel .owl-dots .owl-dot {
    display: grid;
    place-items: center;
    width: 1.65rem;
    height: 1.65rem;
    border-radius: .4rem;
}

.folofan-site .owl-carousel .owl-dots .owl-dot span {
    display: block;
    width: .5rem;
    height: .5rem;
    margin: 0;
    border-radius: 50%;
    background: #817298;
}

.folofan-site .owl-carousel .owl-dots .owl-dot.active span {
    width: 1rem;
    border-radius: 1rem;
    background: #d9a1ff;
}

.folofan-site .owl-carousel :is(.owl-nav, .owl-dots) button:focus-visible {
    outline: 2px solid #e6c0ff;
    outline-offset: 2px;
}

/* Bootstrap's background utility otherwise overrides the offer card surface. */
.folofan-site .package-category-carousel .owl-carousel .box-item > .card {
    background: #171f3b !important;
    color: #fbf8ff !important;
    border: 1px solid #625080;
}

.folofan-site .package-category-carousel .owl-carousel .box-item > .card:hover {
    border-color: #ac7bec;
}

.folofan-site .package-category-carousel .card :is(.card-title, .card-text) {
    color: #fbf8ff !important;
}

.folofan-site .package-category-carousel .card .item-price .text-info {
    color: #e5b9ff !important;
}

.folofan-site .package-category-carousel .card .btn-outline-primary {
    background: #30234d !important;
    border: 1px solid #9a70c8 !important;
    color: #fff !important;
}

.folofan-site .package-category-carousel .card .btn-outline-primary:is(:hover, :focus-visible) {
    background: #56318c !important;
}

/* The price panel has its own background in the base theme. */
.folofan-site .package-list :is(.package-category-carousel, .package-category-tab) .card > .card-body {
    background: transparent !important;
    color: #fbf8ff !important;
}

.folofan-site .package-list :is(.package-category-carousel, .package-category-tab) .card .card-title .text-primary {
    color: #e5b9ff !important;
}

/* The base theme paints inner card panels independently of the card. */
body.folofan-site main :is(.folofan-tracking, .order-form, #track-order-details) .card > .card-body {
    background: transparent !important;
    color: #fbf8ff !important;
}

body.folofan-site main #track-order-details .card,
body.folofan-site main .page-single-content .bg-light:has(> form.sendForm),
body.folofan-site #reviewModal .modal-dialog > .modal-content {
    background: linear-gradient(145deg, #211a40, #151c36 55%, #12192f) !important;
    border: 1px solid #554675 !important;
    color: #fbf8ff !important;
}

body.folofan-site #reviewModal .modal-content > :is(.modal-header, .modal-body, .modal-footer) {
    background: transparent !important;
    color: #fbf8ff !important;
}

body.folofan-site :is(.folofan-tracking, .order-form, .page-single-content, #reviewModal)
    form :is(.form-label, .col-form-label, .form-check-label) {
    color: #fbf8ff !important;
}

/* Keep FAQ answers and expanded questions readable on the dark theme. */
body.folofan-site main .faq .text-body-emphasis {
    color: #fbf8ff !important;
}

body.folofan-site main .faq .accordion-item {
    background: #171f3b !important;
    border: 1px solid #51456f !important;
    border-radius: .75rem;
}

body.folofan-site main .faq .accordion-button {
    background: #171f3b !important;
    color: #fbf8ff !important;
    border-radius: .7rem;
}

body.folofan-site main .faq .accordion-button:not(.collapsed) {
    background: #30234d !important;
    border-radius: .7rem .7rem 0 0;
}

body.folofan-site main .faq .accordion-button::after {
    filter: grayscale(1) brightness(0) invert(1);
}

body.folofan-site main .faq .accordion-body {
    background: transparent !important;
    color: #e4dbf2 !important;
}

body.folofan-site main .faq .accordion-body a {
    color: #e6bfff;
    text-decoration: underline !important;
}

body.folofan-site main .faq .accordion-button:focus-visible {
    outline: 2px solid #e6bfff;
    outline-offset: -3px;
}

/* Keep step headings and review ratings legible on the home cards. */
body.folofan-site .folofan-home .folofan-steps h3 {
    color: #fbf8ff !important;
}

body.folofan-site .folofan-home #reviews-content :is(.bi-star, .bi-star-fill) {
    color: #ffcf49 !important;
}

/* Reviews use the same Owl Carousel controls as the offers. */
.folofan-site .folofan-review-carousel.owl-loaded {
    padding: 1rem;
    border: 1px solid #3d4265;
    border-radius: 1rem;
    background: linear-gradient(150deg, #20183b, #111932 70%);
}

.folofan-site .folofan-review-carousel .owl-stage {
    display: flex;
}

.folofan-site .folofan-review-carousel .owl-item > div {
    width: 100%;
    height: 100%;
    margin-top: 0 !important;
    overflow-wrap: anywhere;
}

.folofan-site .folofan-home .folofan-review-carousel .owl-item > div > div {
    background: #1b2244 !important;
    border: 1px solid #414566;
    color: #fff;
}
