/* Familjepsykiatri — design tokens mirrored from the Lovable source (src/index.css). */
:root {
    --fp-background: 36 33% 95%;
    --fp-foreground: 160 80% 15%;
    --fp-primary: 160 80% 23%;
    --fp-primary-foreground: 36 33% 95%;
    --fp-muted: 36 20% 88%;
    --fp-muted-foreground: 160 30% 40%;
    --fp-accent: 40 76% 60%;
    --fp-border: 36 20% 85%;
    --fp-destructive: 340 75% 45%;
    --fp-radius: 0.75rem;
}

.fp-contact-page,
.elementor-section:has(.fp-contact-page__intro) {
    background: hsl(var(--fp-background));
    padding: 30px 0 !important;
}
@media (min-width: 768px) {
    .fp-contact-page,
    .elementor-section:has(.fp-contact-page__intro) {
        padding: 60px 0 !important;
    }
}
.fp-contact-page > .elementor-container,
.elementor-section:has(.fp-contact-page__intro) > .elementor-container {
    width: 100%;
    max-width: 1200px !important;
    margin: 0 auto;
    padding: 0 1rem;
    gap: 3rem;
}
@media (min-width: 768px) {
    .fp-contact-page > .elementor-container,
    .elementor-section:has(.fp-contact-page__intro) > .elementor-container {
        padding: 0 1.5rem;
        gap: 5rem;
        align-items: flex-start;
        justify-content: flex-start;
    }
}
.fp-contact-page__form-col .elementor-widget-wrap,
.elementor-column:has(.fp-contact-page__intro) .elementor-widget-wrap {
    display: flex;
    flex-direction: column;
    max-width: 36rem;
    align-content: flex-start;
}
.elementor-section:has(.fp-contact-page__intro) .elementor-column:has(.fp-contact-page__intro) {
    width: 55% !important;
    max-width: 36rem;
    flex: 0 1 36rem;
}
.elementor-section:has(.fp-contact-page__intro) .elementor-column:has(.fp-contact-page__info) {
    width: 45% !important;
    max-width: 22rem;
    flex: 0 0 22rem;
}
.fp-contact-page__intro h2 {
    margin: 0;
    color: #000;
    font-size: 1.5rem;
    line-height: 1.2;
    font-weight: 700;
}
@media (min-width: 768px) { .fp-contact-page__intro h2 { font-size: 1.875rem; } }
.fp-contact-page__intro p {
    margin: 1rem 0 0;
    color: #000;
    font-size: clamp(1rem, 1.5vw, 1.15rem);
    line-height: 1.75;
}
.fp-contact-page .elementor-widget-form,
.elementor-section:has(.fp-contact-page__intro) .elementor-widget-form {
    margin-top: 0.75rem;
}
.fp-contact-page .elementor-form-fields-wrapper,
.elementor-section:has(.fp-contact-page__intro) .elementor-form-fields-wrapper {
    column-gap: 1.25rem;
    row-gap: 1.25rem;
    margin-left: 0 !important;
    margin-right: 0 !important;
}
.fp-contact-page .elementor-field-group,
.elementor-section:has(.fp-contact-page__intro) .elementor-field-group {
    padding: 0 !important;
    margin-bottom: 0 !important;
}
.fp-contact-page .elementor-col-50,
.elementor-section:has(.fp-contact-page__intro) .elementor-col-50 {
    width: calc(50% - 0.625rem) !important;
}
.fp-contact-page .elementor-field-label,
.elementor-section:has(.fp-contact-page__intro) .elementor-field-label {
    display: block;
    margin: 0 0 0.375rem !important;
    color: #000;
    font-size: 0.875rem;
    line-height: 1.4;
    font-weight: 600;
}
.fp-contact-page .elementor-field-required,
.elementor-section:has(.fp-contact-page__intro) .elementor-field-required {
    color: hsl(var(--fp-destructive));
}
.fp-contact-page .elementor-field,
.fp-contact-page textarea.elementor-field-textual,
.fp-contact-page input.elementor-field-textual,
.elementor-section:has(.fp-contact-page__intro) .elementor-field,
.elementor-section:has(.fp-contact-page__intro) textarea.elementor-field-textual,
.elementor-section:has(.fp-contact-page__intro) input.elementor-field-textual {
    width: 100%;
    border: 1px solid hsl(var(--fp-border)) !important;
    border-radius: 0.75rem !important;
    background: #fff !important;
    color: #000 !important;
    padding: 0.85rem 1rem !important;
    font-size: 0.875rem !important;
    line-height: 1.5 !important;
    box-shadow: none !important;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.fp-contact-page .elementor-field::placeholder,
.elementor-section:has(.fp-contact-page__intro) .elementor-field::placeholder {
    color: hsl(var(--fp-muted-foreground)) !important;
}
.fp-contact-page .elementor-field:focus,
.fp-contact-page textarea.elementor-field-textual:focus,
.fp-contact-page input.elementor-field-textual:focus,
.elementor-section:has(.fp-contact-page__intro) .elementor-field:focus,
.elementor-section:has(.fp-contact-page__intro) textarea.elementor-field-textual:focus,
.elementor-section:has(.fp-contact-page__intro) input.elementor-field-textual:focus {
    border-color: hsl(var(--fp-primary)) !important;
    box-shadow: 0 0 0 2px hsl(var(--fp-primary) / 0.3) !important;
    outline: none !important;
}
.fp-contact-page textarea.elementor-field-textual,
.elementor-section:has(.fp-contact-page__intro) textarea.elementor-field-textual {
    min-height: 10.25rem;
    resize: none;
}
.fp-contact-page .elementor-button,
.fp-contact-page button.elementor-button,
.elementor-section:has(.fp-contact-page__intro) .elementor-button,
.elementor-section:has(.fp-contact-page__intro) button.elementor-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: auto;
    margin-top: 0;
    padding: 0.9rem 2rem !important;
    border: 0 !important;
    border-radius: 9999px !important;
    background: hsl(var(--fp-primary)) !important;
    color: hsl(var(--fp-primary-foreground)) !important;
    font-size: 0.875rem !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em;
    box-shadow: 0 4px 20px rgba(12, 106, 74, 0.35) !important;
    transition: transform 0.3s ease-out, box-shadow 0.3s ease-out;
}
.fp-contact-page .elementor-button:hover,
.fp-contact-page button.elementor-button:hover,
.elementor-section:has(.fp-contact-page__intro) .elementor-button:hover,
.elementor-section:has(.fp-contact-page__intro) button.elementor-button:hover {
    color: hsl(var(--fp-primary-foreground)) !important;
    transform: scale(1.01);
    box-shadow: 0 6px 30px rgba(12, 106, 74, 0.5) !important;
}
.fp-contact-page .elementor-button:active,
.fp-contact-page button.elementor-button:active,
.elementor-section:has(.fp-contact-page__intro) .elementor-button:active,
.elementor-section:has(.fp-contact-page__intro) button.elementor-button:active {
    transform: scale(0.98);
}
.fp-contact-page__info-col .elementor-widget-wrap,
.elementor-column:has(.fp-contact-page__info) .elementor-widget-wrap {
    display: flex;
    align-items: flex-start;
    padding-top: 0;
}
@media (min-width: 768px) {
    .fp-contact-page__info-col .elementor-widget-wrap,
    .elementor-column:has(.fp-contact-page__info) .elementor-widget-wrap {
        padding-top: 3rem !important;
    }
}
.fp-contact-page__info h3 {
    margin: 0;
    color: #000;
    font-size: 1.125rem;
    line-height: 1.35;
    font-weight: 700;
}
.fp-contact-page__info p {
    margin: 0.5rem 0 0;
    color: rgba(0,0,0,0.8);
    font-size: 1rem;
    line-height: 1.5;
}
.fp-contact-page__social {
    margin-top: 2.5rem;
}
.fp-contact-page__social > p {
    margin: 0;
    color: hsl(var(--fp-muted-foreground));
    font-size: 0.875rem;
    font-weight: 500;
}
.fp-contact-page__social-links {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-top: 0.75rem;
}
.fp-contact-page__social-links a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 9999px;
    background: hsl(var(--fp-muted));
    color: #000;
    transition: background-color 0.2s, color 0.2s;
}
.fp-contact-page__social-links a:hover {
    background: hsl(var(--fp-muted) / 0.8);
    color: hsl(var(--fp-primary));
}
.fp-contact-page__social-links svg {
    width: 1.25rem;
    height: 1.25rem;
}
@media (max-width: 767px) {
    .elementor-section:has(.fp-contact-page__intro) > .elementor-container {
        flex-direction: column;
    }
    .elementor-section:has(.fp-contact-page__intro) .elementor-column:has(.fp-contact-page__intro),
    .elementor-section:has(.fp-contact-page__intro) .elementor-column:has(.fp-contact-page__info) {
        width: 100% !important;
        max-width: none;
        flex: 0 1 auto;
    }
}

html,
body {
    overflow-x: hidden;
}

.fp * { box-sizing: border-box; }
.fp { font-family: 'Plus Jakarta Sans', sans-serif; color: hsl(var(--fp-foreground)); }
.fp-bg-bg { background: hsl(var(--fp-background)); }
.fp-bg-white { background: #fff; }
.fp-text-primary { color: hsl(var(--fp-primary)); }

.fp-container { width: 100%; max-width: 80rem; margin: 0 auto; padding: 0 1rem; }
@media (min-width: 640px) { .fp-container { padding: 0 1.5rem; } }
@media (min-width: 1024px) { .fp-container { padding: 0 2rem; } }

/* ====== Header ====== */
.elementor-widget-fp_header { padding: 0 !important; }
.fp-header-shell {
    font-family: 'Plus Jakarta Sans', sans-serif;
    color: #000;
}
.fp-header-shell *,
.fp-header-shell *::before,
.fp-header-shell *::after { box-sizing: border-box; }
.fp-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 9999;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
    overflow: visible;
}
body.admin-bar .fp-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .fp-header { top: 46px; } }
.fp-header__inner {
    width: 100%;
    max-width: 80rem;
    height: 3.5rem;
    margin: 0 auto;
    padding: 0 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    overflow: visible;
}
@media (min-width: 640px) { .fp-header__inner { padding: 0 1.5rem; } }
@media (min-width: 1024px) { .fp-header__inner { height: 4rem; padding: 0 2rem; } }
.fp-header__brand {
    display: flex;
    align-items: center;
    text-decoration: none;
    line-height: 1;
}
.fp-header__logo {
    display: block;
    height: var(--fp-header-logo-mobile, 32px) !important;
    max-height: var(--fp-header-logo-mobile, 32px) !important;
    width: auto;
    max-width: none;
    object-fit: contain;
}
@media (min-width: 640px) {
    .fp-header__logo {
        height: var(--fp-header-logo-desktop, 36px) !important;
        max-height: var(--fp-header-logo-desktop, 36px) !important;
    }
}
.fp-header__desktop-nav {
    display: none;
    align-items: center;
    gap: 0.5rem;
}
@media (min-width: 1024px) { .fp-header__desktop-nav { display: flex; } }
.fp-header__link,
.fp-header__dropdown-link {
    color: #000;
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.25rem;
    transition: color 0.2s, background-color 0.2s;
}
.fp-header__link {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.5rem 0.75rem;
    white-space: nowrap;
    border-radius: 0.375rem;
}
.fp-header__link:hover,
.fp-header__link:focus-visible,
.fp-header__dropdown-link:hover,
.fp-header__dropdown-link:focus-visible {
    color: hsl(var(--fp-primary));
    background: hsl(var(--fp-muted) / 0.5);
    outline: none;
}
.fp-header__link svg {
    width: 1rem;
    height: 1rem;
    transition: transform 0.2s;
}
.fp-header__dropdown {
    position: relative;
}
.fp-header__dropdown:hover .fp-header__link svg,
.fp-header__dropdown:focus-within .fp-header__link svg { transform: rotate(180deg); }
.fp-header__dropdown-panel {
    position: absolute;
    top: 100%;
    left: 0;
    padding-top: 0.25rem;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-2px);
    transition: opacity 0.2s, visibility 0.2s, transform 0.2s;
}
.fp-header__dropdown:hover .fp-header__dropdown-panel,
.fp-header__dropdown:focus-within .fp-header__dropdown-panel {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.fp-header__dropdown-card {
    min-width: 200px;
    padding: 0.375rem;
    border-radius: 0.5rem;
    border: 1px solid hsl(var(--fp-border));
    background: #fff;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1);
}
.fp-header__dropdown-link {
    display: block;
    padding: 0.625rem 0.75rem;
    border-radius: 0.375rem;
}
.fp-header__trustpilot {
    display: none;
    align-items: center;
    gap: 0.5rem;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    border-radius: 9999px;
    background: #f5f0e8;
    padding: 0.375rem 0.75rem;
}
@media (min-width: 1024px) { .fp-header__trustpilot { display: inline-flex; } }
.fp-header__trustpilot img {
    display: block;
    height: 1rem;
    width: auto;
}
.fp-header__trustpilot span {
    font-size: 0.75rem;
    font-weight: 600;
    color: hsl(var(--fp-foreground));
}
.fp-header__actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    overflow: visible;
}
.fp-header__cta {
    display: none;
    position: relative;
    align-items: center;
    justify-content: center;
    padding: 0.625rem 1.25rem;
    border-radius: 9999px;
    background: hsl(var(--fp-primary));
    color: hsl(var(--fp-primary-foreground));
    font-weight: 700;
    font-size: 0.875rem;
    line-height: 1.25rem;
    letter-spacing: 0.025em;
    text-decoration: none;
    white-space: nowrap;
    box-shadow: 0 4px 20px rgba(12, 106, 74, 0.35) !important;
    transition: transform 0.3s ease-out, box-shadow 0.3s ease-out;
}
@media (min-width: 1024px) { .fp-header__cta { display: inline-flex; } }
.fp-header__cta:hover,
.fp-header__cta:focus-visible {
    color: hsl(var(--fp-primary-foreground));
    transform: scale(1.03);
    box-shadow: 0 6px 30px rgba(12, 106, 74, 0.5) !important;
    outline: none;
}
.fp-header__cta:active { transform: scale(0.98); }
.fp-header__cta svg,
.fp-header__mobile-cta svg {
    margin-left: 0.375rem;
    width: 1.25rem;
    height: 1.25rem;
    transition: transform 0.3s;
}
.fp-header__cta:hover svg,
.fp-header__mobile-cta:hover svg { transform: translateX(4px); }
.fp-header__pulse {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translate(-50%, 50%);
    display: flex;
    align-items: center;
    justify-content: center;
}
.fp-header__pulse span:first-child {
    position: absolute;
    width: 0.75rem;
    height: 0.75rem;
    border-radius: 9999px;
    background: #ffc067;
    opacity: 0.75;
    animation: fp-header-ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
}
.fp-header__pulse span:last-child {
    position: relative;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 9999px;
    background: #ffc067;
}
@keyframes fp-header-ping {
    75%, 100% { transform: scale(2); opacity: 0; }
}
.fp-header__toggle {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    border: 0 !important;
    border-radius: 0.5rem;
    background: transparent !important;
    color: #000 !important;
    cursor: pointer;
    transition: background-color 0.2s;
    -webkit-appearance: none;
    appearance: none;
    box-shadow: none !important;
    outline: none !important;
    -webkit-tap-highlight-color: transparent;
}
.fp-header__toggle:focus,
.fp-header__toggle:active {
    border-color: transparent !important;
    box-shadow: none !important;
    outline: none !important;
    color: #000 !important;
}
.fp-header__toggle:hover,
.fp-header__toggle:focus-visible {
    background: hsl(var(--fp-muted)) !important;
    outline: none !important;
}
@media (min-width: 1024px) { .fp-header__toggle { display: none !important; } }
.fp-header__menu-icon {
    width: 1.5rem;
    height: 1.5rem;
}
.fp-header__menu-icon--close,
.fp-header-shell.is-menu-open .fp-header__menu-icon--open { display: none; }
.fp-header-shell.is-menu-open .fp-header__menu-icon--close { display: block; }
.fp-header__overlay {
    position: fixed;
    inset: 0;
    z-index: 9997;
    border: 0;
    padding: 0;
    background: rgba(0,0,0,0.3);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s;
}
@media (min-width: 1024px) { .fp-header__overlay { display: none; } }
.fp-header-shell.is-menu-open .fp-header__overlay {
    opacity: 1;
    pointer-events: auto;
}
.fp-header__mobile-panel {
    position: fixed;
    top: 3.5rem;
    right: 0;
    bottom: 0;
    z-index: 9998;
    width: 100%;
    display: flex;
    flex-direction: column;
    background: #fff;
    box-shadow: 0 20px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.1);
    transform: translateX(100%);
    transition: transform 0.3s ease-out;
}
body.admin-bar .fp-header__mobile-panel { top: calc(3.5rem + 32px); }
@media (max-width: 782px) { body.admin-bar .fp-header__mobile-panel { top: calc(3.5rem + 46px); } }
@media (min-width: 1024px) { .fp-header__mobile-panel { display: none; } }
.fp-header-shell.is-menu-open .fp-header__mobile-panel { transform: translateX(0); }
body.fp-header-menu-open { overflow: hidden; }
.fp-header__mobile-links {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 2rem 1.5rem 0;
}
.fp-header__mobile-link {
    display: flex;
    align-items: center;
    padding: 1.25rem 0;
    border-bottom: 1px solid hsl(var(--fp-border) / 0.4);
    color: #000;
    text-decoration: none;
    font-size: 1.125rem;
    line-height: 1.75rem;
    font-weight: 600;
    transition: color 0.2s;
}
.fp-header__mobile-link:hover,
.fp-header__mobile-link:focus-visible,
.fp-header__mobile-sub-link:hover,
.fp-header__mobile-sub-link:focus-visible {
    color: hsl(var(--fp-primary));
    outline: none;
}
.fp-header__mobile-group {
    border-bottom: 1px solid hsl(var(--fp-border) / 0.4);
}
.fp-header__mobile-row {
    display: flex;
    align-items: center;
}
.fp-header__mobile-link--parent {
    flex: 1;
    border-bottom: 0;
}
.fp-header__mobile-dropdown-toggle {
    margin-right: -0.75rem;
    padding: 0.75rem;
    border: 0 !important;
    background: transparent !important;
    color: #000 !important;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    box-shadow: none !important;
    outline: none !important;
    -webkit-tap-highlight-color: transparent;
}
.fp-header__mobile-dropdown-toggle:hover,
.fp-header__mobile-dropdown-toggle:focus,
.fp-header__mobile-dropdown-toggle:active {
    background: transparent !important;
    border-color: transparent !important;
    box-shadow: none !important;
    outline: none !important;
    color: #000 !important;
}
.fp-header__mobile-dropdown-toggle svg {
    width: 1.5rem;
    height: 1.5rem;
    transition: transform 0.2s;
}
.fp-header__mobile-group.is-open .fp-header__mobile-dropdown-toggle svg { transform: rotate(180deg); }
.fp-header__mobile-dropdown {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.2s, opacity 0.2s, padding-bottom 0.2s;
}
.fp-header__mobile-group.is-open .fp-header__mobile-dropdown {
    max-height: 15rem;
    opacity: 1;
    padding-bottom: 1rem;
}
.fp-header__mobile-sub-link {
    padding: 1rem 0 1rem 1rem;
    color: rgba(0,0,0,0.7);
    text-decoration: none;
    font-size: 1.125rem;
    line-height: 1.75rem;
    font-weight: 500;
    transition: color 0.2s;
}
.fp-header__mobile-cta-wrap {
    padding: 1rem 1.5rem 2rem;
}
.fp-header__mobile-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 1rem 1.5rem;
    border-radius: 9999px;
    background: hsl(var(--fp-primary));
    color: hsl(var(--fp-primary-foreground));
    text-decoration: none;
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.5rem;
    letter-spacing: 0.025em;
    box-shadow: 0 4px 20px rgba(12, 106, 74, 0.35) !important;
    transition: transform 0.3s ease-out, box-shadow 0.3s ease-out;
}
.fp-header__mobile-cta:hover,
.fp-header__mobile-cta:focus-visible {
    color: hsl(var(--fp-primary-foreground));
    box-shadow: 0 6px 30px rgba(12, 106, 74, 0.5) !important;
    outline: none;
}
.fp-header__mobile-cta:active { transform: scale(0.98); }

/* Primary button — exact match of the React Hero CTA. */
.fp-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 1rem 2.5rem;
    border-radius: 9999px;
    background: hsl(var(--fp-primary));
    color: hsl(var(--fp-primary-foreground));
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: 0.04em;
    text-decoration: none;
    box-shadow: 0 4px 20px rgba(12, 106, 74, 0.35) !important;
    transition: all 0.3s ease-out;
    white-space: nowrap;
}
.fp-btn:hover { transform: scale(1.03); box-shadow: 0 6px 30px rgba(12, 106, 74, 0.5) !important; color: hsl(var(--fp-primary-foreground)); }
.fp-btn:active { transform: scale(0.98); }
.fp-btn svg { margin-left: 0.5rem; width: 1.25rem; height: 1.25rem; transition: transform 0.3s; }
.fp-btn:hover svg { transform: translateX(4px); }

/* ====== Hero ====== */
.fp-hero {
    position: relative;
    overflow: hidden;
    background: hsl(var(--fp-background));
    padding-top: 90px;
    /* Break out of any Elementor section/column padding to mirror the Lovable full-bleed hero. */
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    width: 100vw;
    max-width: 100vw;
}
@media (min-width: 768px) { .fp-hero { padding-top: 214px; } }

/* When the Hello Elementor header is fixed on top, pull the hero up under it. */
.elementor-widget-fp_hero { padding: 0 !important; }
.fp-hero__inner { position: relative; z-index: 10; width: 100%; max-width: 80rem; margin: 0 auto; padding: 0 1rem 3rem; }
@media (min-width: 640px) { .fp-hero__inner { padding: 0 1.5rem 3rem; } }
@media (min-width: 768px) { .fp-hero__inner { padding: 0 1.5rem 150px; } }
@media (min-width: 1024px) { .fp-hero__inner { padding: 0 2rem 150px; } }

.fp-hero__row { display: flex; flex-direction: column-reverse; }
@media (min-width: 768px) { .fp-hero__row { flex-direction: row; align-items: center; gap: 1.5rem; max-width: 1100px; } }

.fp-hero__copy { flex: 1; min-width: 0; }
.fp-hero__title {
    margin-top: 25px;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #000;
    line-height: 1.15;
    font-size: 1.35rem;
}
@media (min-width: 376px) { .fp-hero__title { font-size: clamp(1.55rem, 3vw, 2.2rem); } }
@media (min-width: 768px) { .fp-hero__title { margin-top: 0; } }

.fp-hero__description {
    margin-top: 1.5rem;
    color: #000;
    line-height: 1.6;
    max-width: 36rem;
    font-size: clamp(1rem, 1.5vw, 1.2rem);
}

.fp-hero__cta-wrap { margin-top: 2.5rem; display: flex; flex-direction: column; align-items: center; }
@media (min-width: 768px) { .fp-hero__cta-wrap { align-items: flex-start; width: fit-content; } }
.fp-hero__cta-note { margin-top: 0.75rem; display: flex; align-items: center; justify-content: center; gap: 0.375rem; font-size: 0.875rem; color: hsl(var(--fp-foreground)); width: 100%; }
.fp-hero__cta-note svg { width: 1rem; height: 1rem; color: hsl(var(--fp-primary)); }

.fp-hero__image-wrap { margin-bottom: 1rem; display: flex; justify-content: center; }
@media (min-width: 768px) { .fp-hero__image-wrap { margin-bottom: 0; flex: none; justify-content: flex-end; } }
.fp-hero__image-rel { position: relative; }
.fp-hero__blob-bg {
    position: absolute;
    top: -0.75rem; right: -0.75rem; bottom: -0.75rem; left: -0.75rem;
    border-radius: 60% 40% 50% 50% / 50% 60% 40% 50%;
    background: hsl(var(--fp-accent) / 0.2);
}
@media (min-width: 768px) {
    .fp-hero__blob-bg { top: -3.5rem !important; right: -3.5rem !important; width: 420px !important; height: 540px !important; }
}
.fp-hero__image-frame { height: 220px; overflow: hidden; border-radius: 1rem; }
@media (min-width: 768px) { .fp-hero__image-frame { height: auto !important; width: auto !important; } }
.fp-hero__image {
    position: relative;
    width: 300px;
    height: 440px !important;
    object-fit: cover !important;
    border-radius: 1rem !important;
    box-shadow: 0 20px 50px -10px rgba(0,0,0,0.15) !important;
    margin-top: -35px;
    display: block;
}
@media (min-width: 768px) { .fp-hero__image { width: 340px !important; height: 440px !important; margin-top: 0; } }

/* Blur blobs for the hero backdrop. */
.fp-hero__shape { position: absolute; pointer-events: none; }
.fp-hero__shape--1 {
    top: -5%; right: -10%; width: 45vw; height: 50vh;
    border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%;
    background: hsl(var(--fp-accent) / 0.1); filter: blur(64px);
}
.fp-hero__shape--2 {
    bottom: 10%; left: -15%; width: 40vw; height: 45vh;
    border-radius: 60% 40% 50% 50% / 50% 60% 40% 50%;
    background: hsl(var(--fp-accent) / 0.08); filter: blur(48px);
}
.fp-hero__shape--3 {
    top: 30%; right: 20%; width: 25vw; height: 30vh;
    border-radius: 9999px;
    background: hsl(var(--fp-accent) / 0.06); filter: blur(64px);
}

/* ====== Services ====== */
.fp-services {
    background: #fff;
    padding: 50px 0;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    width: 100vw;
    max-width: 100vw;
}
.elementor-widget-fp_services { padding: 0 !important; }
@media (min-width: 768px) { .fp-services { padding: 80px 0; } }

.fp-services__inner { width: 100%; max-width: 80rem; margin: 0 auto; padding: 0 1rem; }
@media (min-width: 640px) { .fp-services__inner { padding: 0 1.5rem; } }
@media (min-width: 1024px) { .fp-services__inner { padding: 0 2rem; } }

.fp-services__header { text-align: center; max-width: 42rem; margin: 0 auto 30px; }
@media (min-width: 768px) { .fp-services__header { margin-bottom: 50px; } }
.fp-services__title {
    margin: 0;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #000;
    line-height: 1.15;
    font-size: clamp(1.5rem, 2.5vw, 2rem);
}
.fp-services__desc {
    margin: 1rem 0 0;
    color: #000;
    line-height: 1.6;
    font-size: clamp(1rem, 1.5vw, 1.15rem);
}

.fp-services__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
    max-width: 64rem;
    margin: 0 auto;
}
@media (min-width: 768px) { .fp-services__grid { grid-template-columns: repeat(3, 1fr); } }

.fp-services__card {
    background: hsl(var(--fp-background));
    border: 1px solid hsl(var(--fp-border) / 0.6);
    border-radius: 1rem;
    padding: 1.5rem;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
    transition: box-shadow 0.3s;
    display: flex;
    flex-direction: column;
}
.fp-services__card:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
.fp-services__card-title {
    margin: 0;
    font-weight: 700;
    color: #000;
    font-size: 15px;
    line-height: 1.35;
    white-space: nowrap;
}
@media (min-width: 768px) { .fp-services__card-title { font-size: 1rem; } }
.fp-services__card-desc {
    margin: 0.75rem 0 0;
    color: #000;
    font-size: 0.875rem;
    line-height: 1.6;
    flex: 1;
}
.fp-services__card-link {
    margin-top: 1.25rem;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    color: hsl(var(--fp-primary));
    font-weight: 600;
    font-size: 0.875rem;
    text-decoration: none;
    transition: transform 0.3s;
}
.fp-services__card-link svg { width: 1rem; height: 1rem; transition: transform 0.3s; }
.fp-services__card:hover .fp-services__card-link { text-decoration: underline; }
.fp-services__card:hover .fp-services__card-link svg { transform: translateX(4px); }

.fp-services__badge {
    margin-top: 1.25rem;
    display: inline-flex;
    align-items: center;
    font-size: 11px;
    font-weight: 600;
    color: hsl(var(--fp-muted-foreground));
    background: hsl(var(--fp-muted));
    border-radius: 9999px;
    padding: 0.25rem 0.625rem;
    width: fit-content;
}

.fp-services__footer { margin-top: 2.5rem; text-align: center; }
.fp-services__see-all {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    color: hsl(var(--fp-primary));
    font-weight: 600;
    text-decoration: none;
}
.fp-services__see-all:hover { text-decoration: underline; }
.fp-services__see-all svg { width: 1rem; height: 1rem; }

/* ====== Why Us ====== */
.fp-whyus {
    position: relative;
    overflow: hidden;
    background: hsl(var(--fp-background));
    padding: 50px 0;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    width: 100vw;
    max-width: 100vw;
}
.elementor-widget-fp_whyus { padding: 0 !important; }
@media (min-width: 768px) { .fp-whyus { padding: 80px 0; } }

.fp-whyus__shape { position: absolute; pointer-events: none; }
.fp-whyus__shape--1 {
    top: -5%; right: -10%; width: 45vw; height: 50vh;
    border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%;
    background: hsl(var(--fp-accent) / 0.1); filter: blur(64px);
}
.fp-whyus__shape--2 {
    bottom: 10%; left: -15%; width: 40vw; height: 45vh;
    border-radius: 60% 40% 50% 50% / 50% 60% 40% 50%;
    background: hsl(var(--fp-accent) / 0.08); filter: blur(48px);
}

.fp-whyus__inner {
    position: relative; z-index: 10;
    width: 100%; max-width: 64rem; margin: 0 auto;
    padding: 0 1rem;
}
@media (min-width: 640px) { .fp-whyus__inner { padding: 0 1.5rem; } }
@media (min-width: 1024px) { .fp-whyus__inner { padding: 0 2rem; } }

.fp-whyus__row { display: flex; flex-direction: column; }
@media (min-width: 768px) {
    .fp-whyus__row { flex-direction: row; align-items: center; gap: 4rem; }
}

.fp-whyus__copy { flex: 1; margin-bottom: 2rem; }
@media (min-width: 768px) { .fp-whyus__copy { margin-bottom: 0; } }

.fp-whyus__title {
    margin: 0;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #000;
    line-height: 1.15;
    font-size: clamp(1.5rem, 2.5vw, 2rem);
}
.fp-whyus__desc {
    margin: 1rem 0 0;
    color: #000;
    line-height: 1.6;
    max-width: 28rem;
    font-size: clamp(1rem, 1.5vw, 1.15rem);
}

.fp-whyus__list {
    background: #fff;
    border: 1px solid hsl(var(--fp-border) / 0.6);
    border-radius: 1rem;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
    flex: 1;
    max-width: 32rem;
}
.fp-whyus__item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem;
    border-bottom: 1px solid hsl(var(--fp-border) / 0.4);
}
.fp-whyus__item:last-child { border-bottom: none; }
.fp-whyus__check {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 9999px;
    background: hsl(var(--fp-primary) / 0.15);
}
.fp-whyus__check svg { width: 1rem; height: 1rem; color: hsl(var(--fp-primary)); }
.fp-whyus__text { color: hsl(var(--fp-foreground)); font-weight: 500; }

/* Shared fullbleed wrapper for all FP sections. */
.fp-why-inv, .fp-about, .fp-goal, .fp-knowledge, .fp-botcta, .fp-footer {
    position: relative;
    overflow: hidden;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    width: 100vw;
    max-width: 100vw;
}
.elementor-widget-fp_why_investigate, .elementor-widget-fp_about, .elementor-widget-fp_goal,
.elementor-widget-fp_knowledge, .elementor-widget-fp_bottom_cta, .elementor-widget-fp_footer { padding: 0 !important; }

/* ====== Why Investigate ====== */
.fp-why-inv { background: #fff; padding: 50px 0; }
@media (min-width: 768px) { .fp-why-inv { padding: 80px 0; } }
.fp-why-inv__inner { width: 100%; max-width: 80rem; margin: 0 auto; padding: 0 1rem; }
@media (min-width: 640px) { .fp-why-inv__inner { padding: 0 1.5rem; } }
@media (min-width: 1024px) { .fp-why-inv__inner { padding: 0 2rem; } }
.fp-why-inv__title {
    margin: 0;
    font-weight: 800; letter-spacing: -0.02em; color: #000; line-height: 1.15;
    text-align: center;
    font-size: clamp(1.5rem, 2.5vw, 2rem);
}
.fp-why-inv__grid {
    display: grid; grid-template-columns: 1fr; gap: 1.25rem;
    max-width: 42rem; margin: 30px auto 0;
}
@media (min-width: 640px) { .fp-why-inv__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 768px) { .fp-why-inv__grid { margin-top: 50px; } }
.fp-why-inv__card {
    background: hsl(var(--fp-background));
    border: 1px solid hsl(var(--fp-border) / 0.6);
    border-radius: 1rem;
    padding: 1.25rem;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
    display: flex; align-items: center; gap: 1rem;
}
.fp-why-inv__icon {
    flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    width: 2.5rem; height: 2.5rem;
    border-radius: 0.75rem;
    background: hsl(var(--fp-primary) / 0.1);
}
.fp-why-inv__icon svg { width: 1.25rem; height: 1.25rem; color: hsl(var(--fp-primary)); }
.fp-why-inv__text { font-weight: 500; font-size: 15px; color: hsl(var(--fp-foreground)); }

/* ====== About text block ====== */
.fp-about { background: hsl(var(--fp-background)); padding: 50px 0; }
@media (min-width: 768px) { .fp-about { padding: 80px 0; } }
.fp-about__shape { position: absolute; pointer-events: none; }
.fp-about__shape--1 {
    top: -5%; right: -10%; width: 45vw; height: 50vh;
    border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%;
    background: hsl(var(--fp-accent) / 0.1); filter: blur(64px);
}
.fp-about__shape--2 {
    bottom: 10%; left: -15%; width: 40vw; height: 45vh;
    border-radius: 60% 40% 50% 50% / 50% 60% 40% 50%;
    background: hsl(var(--fp-accent) / 0.08); filter: blur(48px);
}
.fp-about__inner {
    position: relative; z-index: 10;
    max-width: 48rem; margin: 0 auto;
    padding: 0 1rem;
}
@media (min-width: 640px) { .fp-about__inner { padding: 0 1.5rem; } }
@media (min-width: 1024px) { .fp-about__inner { padding: 0 2rem; } }
.fp-about__title {
    margin: 0;
    font-weight: 800; letter-spacing: -0.02em; color: #000; line-height: 1.15;
    font-size: clamp(1.5rem, 2.5vw, 2rem);
}
.fp-about__desc {
    margin: 1.5rem 0 0;
    color: #000; line-height: 1.6;
    font-size: clamp(1rem, 1.5vw, 1.15rem);
}
.fp-about__link {
    margin-top: 1.5rem;
    display: inline-flex; align-items: center; gap: 0.375rem;
    color: hsl(var(--fp-primary)); font-weight: 600; text-decoration: none;
}
.fp-about__link:hover { text-decoration: underline; }
.fp-about__link svg { width: 1rem; height: 1rem; }

/* ====== Goal ====== */
.fp-goal { background: #fff; padding: 50px 0; }
@media (min-width: 768px) { .fp-goal { padding: 80px 0; } }
.fp-goal__shape { position: absolute; pointer-events: none; }
.fp-goal__shape--1 {
    top: -5%; right: -10%; width: 45vw; height: 50vh;
    border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%;
    background: hsl(var(--fp-accent) / 0.1); filter: blur(64px);
}
.fp-goal__shape--2 {
    bottom: 10%; left: -15%; width: 40vw; height: 45vh;
    border-radius: 60% 40% 50% 50% / 50% 60% 40% 50%;
    background: hsl(var(--fp-accent) / 0.08); filter: blur(48px);
}
.fp-goal__shape--3 {
    top: 30%; right: 20%; width: 25vw; height: 30vh;
    border-radius: 9999px;
    background: hsl(var(--fp-accent) / 0.06); filter: blur(64px);
}
.fp-goal__inner {
    position: relative; z-index: 10;
    max-width: 80rem; margin: 0 auto;
    padding: 0 1rem;
}
@media (min-width: 640px) { .fp-goal__inner { padding: 0 1.5rem; } }
@media (min-width: 1024px) { .fp-goal__inner { padding: 0 2rem; } }
.fp-goal__row { display: flex; flex-direction: column; }
@media (min-width: 768px) {
    .fp-goal__row { flex-direction: row; align-items: center; gap: 1.5rem; max-width: 1100px; }
}
.fp-goal__copy { flex: 1; }
.fp-goal__title {
    margin: 0;
    font-weight: 800; letter-spacing: -0.02em; color: #000; line-height: 1.15;
    font-size: clamp(1.5rem, 2.5vw, 2rem);
}
.fp-goal__p {
    margin: 1rem 0 0; max-width: 36rem;
    color: #000; line-height: 1.6;
    font-size: clamp(1rem, 1.5vw, 1.2rem);
}
.fp-goal__p--first { margin-top: 1.875rem; }
.fp-goal__image-wrap { margin-top: 2.5rem; display: flex; justify-content: center; }
@media (min-width: 768px) { .fp-goal__image-wrap { margin-top: 0; flex: none; justify-content: flex-end; } }
.fp-goal__image-rel { position: relative; }
.fp-goal__blob {
    position: absolute;
    top: -1.5rem; right: -2rem; bottom: -1.5rem; left: -1.25rem;
    border-radius: 60% 40% 50% 50% / 50% 60% 40% 50%;
    background: hsl(var(--fp-accent) / 0.2);
}
@media (min-width: 1024px) {
    .fp-goal__blob { top: -3.5rem; right: -3rem; bottom: -3.5rem; left: -2rem; }
}
.fp-goal__image {
    position: relative;
    width: 360px;
    display: block;
    border-radius: var(--fp-goal-image-radius, 16px) !important;
    box-shadow: 0 20px 50px -10px rgba(0,0,0,0.15);
}
@media (min-width: 768px) { .fp-goal__image { width: 340px; } }
@media (min-width: 1024px) { .fp-goal__image { width: 440px; } }

/* ====== Knowledge ====== */
.fp-knowledge { background: hsl(var(--fp-background)); padding: 50px 0; }
@media (min-width: 768px) { .fp-knowledge { padding: 80px 0; } }
.fp-knowledge__shape {
    position: absolute; pointer-events: none;
    top: -5%; right: -10%; width: 45vw; height: 50vh;
    border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%;
    background: hsl(var(--fp-accent) / 0.1); filter: blur(64px);
}
.fp-knowledge__inner {
    position: relative; z-index: 10;
    max-width: 80rem; margin: 0 auto;
    padding: 0 1rem; text-align: center;
}
@media (min-width: 640px) { .fp-knowledge__inner { padding: 0 1.5rem; } }
@media (min-width: 1024px) { .fp-knowledge__inner { padding: 0 2rem; } }
.fp-knowledge__title {
    margin: 0;
    font-weight: 800; letter-spacing: -0.02em; color: #000; line-height: 1.15;
    font-size: clamp(1.5rem, 2.5vw, 2rem);
}
.fp-knowledge__desc {
    margin: 1rem auto 0; max-width: 36rem;
    color: #000; line-height: 1.6;
    font-size: clamp(1rem, 1.5vw, 1.15rem);
}
.fp-knowledge__grid {
    display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.75rem;
    margin: 1.25rem 0;
}
@media (min-width: 640px) {
    .fp-knowledge__grid { display: flex; flex-wrap: wrap; justify-content: center; margin: 2rem 0; }
}
.fp-knowledge__topic {
    display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
    background: #fff;
    border: 1px solid hsl(var(--fp-border) / 0.6);
    border-radius: 1rem;
    padding: 0.875rem 1.5rem;
    font-weight: 600; font-size: 0.875rem; color: #000;
    text-decoration: none;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
    transition: all 0.3s;
}
.fp-knowledge__topic:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    border-color: hsl(var(--fp-primary) / 0.3);
}
.fp-knowledge__topic svg { width: 1rem; height: 1rem; color: hsl(var(--fp-primary)); transition: transform 0.3s; }
.fp-knowledge__topic:hover svg { transform: translateX(4px); }
.fp-knowledge__link {
    display: inline-flex; align-items: center; gap: 0.375rem;
    color: hsl(var(--fp-primary)); font-weight: 600; text-decoration: none;
}
.fp-knowledge__link:hover { text-decoration: underline; }
.fp-knowledge__link svg { width: 1rem; height: 1rem; }

/* ====== Bottom CTA ====== */
.fp-botcta { background: #fff; padding: 50px 0; }
@media (min-width: 768px) { .fp-botcta { padding: 80px 0; } }
.fp-botcta__inner { max-width: 80rem; margin: 0 auto; padding: 0 1rem; }
@media (min-width: 640px) { .fp-botcta__inner { padding: 0 1.5rem; } }
@media (min-width: 1024px) { .fp-botcta__inner { padding: 0 2rem; } }
.fp-botcta__card {
    background: hsl(var(--fp-background));
    border: 1px solid hsl(var(--fp-border) / 0.6);
    border-radius: 1rem;
    padding: 2.5rem 1.5rem;
    max-width: 48rem;
    margin: 0 auto;
    display: flex; flex-direction: column; align-items: center; text-align: center;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}
@media (min-width: 768px) { .fp-botcta__card { padding: 3.5rem 3rem; } }
.fp-botcta__title {
    margin: 0;
    font-weight: 800; letter-spacing: -0.02em; color: #000; line-height: 1.15;
    font-size: clamp(1.4rem, 2.5vw, 1.9rem);
}
.fp-botcta__cta { margin-top: 2rem; }
.fp-botcta__list { margin: 2rem 0 0; padding: 0; list-style: none; text-align: left; }
.fp-botcta__list li { display: flex; align-items: center; gap: 0.75rem; margin-top: 0.75rem; color: hsl(var(--fp-foreground)); font-weight: 500; }
.fp-botcta__list li:first-child { margin-top: 0; }
.fp-botcta__check {
    flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    width: 1.5rem; height: 1.5rem;
    border-radius: 9999px;
    background: hsl(var(--fp-primary) / 0.15);
}
.fp-botcta__check svg { width: 1rem; height: 1rem; color: hsl(var(--fp-primary)); }

/* ====== Footer ====== */
.fp-footer { background: hsl(var(--fp-foreground)); color: hsl(var(--fp-primary-foreground)); }
.fp-footer__inner { max-width: 80rem; margin: 0 auto; padding: 0 1rem; }
@media (min-width: 640px) { .fp-footer__inner { padding: 0 1.5rem; } }
@media (min-width: 1024px) { .fp-footer__inner { padding: 0 2rem; } }
.fp-footer__grid {
    padding: 3rem 0;
    display: grid; grid-template-columns: 1fr; gap: 2.5rem;
}
@media (min-width: 640px) { .fp-footer__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) {
    .fp-footer__grid { grid-template-columns: 1.3fr 0.8fr 0.8fr 1.1fr; gap: 2rem; padding: 4rem 0; }
}
.fp-footer__brand { grid-column: span 1; }
@media (min-width: 640px) and (max-width: 1023px) { .fp-footer__brand { grid-column: span 2; } }
.fp-footer__logo {
    height: var(--fp-footer-logo-height, 32px) !important;
    max-height: var(--fp-footer-logo-height, 32px) !important;
    width: auto;
    max-width: none;
    filter: brightness(0) invert(1);
}
.fp-footer__tagline {
    margin: 1rem 0 0; max-width: 20rem;
    font-size: 0.875rem; line-height: 1.6;
    color: hsl(var(--fp-primary-foreground) / 0.6);
}
.fp-footer__contact { margin-top: 1.5rem; display: flex; flex-direction: column; gap: 0.75rem; }
.fp-footer__contact a, .fp-footer__contact div {
    display: flex; align-items: center; gap: 0.625rem;
    font-size: 0.875rem; color: hsl(var(--fp-primary-foreground) / 0.7);
    text-decoration: none;
}
.fp-footer__contact a:hover { color: hsl(var(--fp-primary-foreground)); }
.fp-footer__contact svg { width: 1rem; height: 1rem; color: hsl(var(--fp-primary)); flex-shrink: 0; }
.fp-footer__col h3 {
    margin: 0 0 1rem;
    font-weight: 700; font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.04em;
    color: hsl(var(--fp-primary-foreground) / 0.9);
}
.fp-footer__col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.75rem; }
.fp-footer__col a { font-size: 0.875rem; color: hsl(var(--fp-primary-foreground) / 0.6); text-decoration: none; transition: color 0.2s; }
.fp-footer__col a:hover { color: hsl(var(--fp-primary-foreground)); }
.fp-footer__cta-desc { margin: 0 0 1.25rem; font-size: 0.875rem; line-height: 1.6; color: hsl(var(--fp-primary-foreground) / 0.6); }
.fp-footer__cta {
    display: inline-flex; align-items: center; gap: 0.5rem;
    background: hsl(var(--fp-primary-foreground));
    color: hsl(var(--fp-foreground));
    padding: 0.625rem 1.25rem;
    border-radius: 9999px;
    font-size: 0.875rem; font-weight: 600;
    text-decoration: none; transition: opacity 0.2s;
}
.fp-footer__col a.fp-footer__cta {
    color: hsl(var(--fp-foreground)) !important;
}
.fp-footer__col a.fp-footer__cta:hover {
    color: hsl(var(--fp-foreground)) !important;
}
.fp-footer__cta:hover { opacity: 0.9; color: hsl(var(--fp-foreground)); }
.fp-footer__cta svg { width: 1rem; height: 1rem; transition: transform 0.3s; }
.fp-footer__cta:hover svg { transform: translateX(2px); }
.fp-footer__social { margin-top: 2rem; display: flex; align-items: center; gap: 0.75rem; }
.fp-footer__social a {
    display: flex; align-items: center; justify-content: center;
    width: 2.25rem; height: 2.25rem;
    border-radius: 9999px;
    background: hsl(var(--fp-primary-foreground) / 0.1);
    color: hsl(var(--fp-primary-foreground) / 0.7);
    transition: all 0.2s;
}
.fp-footer__social a:hover {
    background: hsl(var(--fp-primary) / 0.2);
    color: hsl(var(--fp-primary-foreground));
}
.fp-footer__social svg { width: 1rem; height: 1rem; }
.fp-footer__divider { border-top: 1px solid hsl(var(--fp-primary-foreground) / 0.1); }
.fp-footer__legal { padding: 1.5rem 0; }
.fp-footer__disclaimer {
    font-size: 11px; line-height: 1.6;
    color: hsl(var(--fp-primary-foreground) / 0.4);
    text-align: center; max-width: 48rem; margin: 0 auto;
}
.fp-footer__copy { margin-top: 0.75rem; text-align: center; font-size: 11px; color: hsl(var(--fp-primary-foreground) / 0.3); }

/* ====== FAQ ====== */
.fp-faq { background: #fff; padding: 50px 0; }
@media (min-width: 768px) { .fp-faq { padding: 80px 0; } }
.fp-faq__inner { width: 100%; max-width: 48rem; margin: 0 auto; padding: 0 1rem; }
@media (min-width: 640px) { .fp-faq__inner { padding: 0 1.5rem; } }
@media (min-width: 1024px) { .fp-faq__inner { padding: 0 2rem; } }

.fp-faq__title {
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #000;
    line-height: 1.15;
    text-align: center;
    margin: 0 0 2.5rem;
    font-size: clamp(1.5rem, 2.5vw, 2rem);
}
@media (min-width: 768px) { .fp-faq__title { margin-bottom: 3.5rem; } }

.fp-faq__list { display: flex; flex-direction: column; gap: 0.75rem; }
.fp-faq__item {
    background: hsl(var(--fp-background));
    border: 1px solid hsl(var(--fp-border) / 0.6);
    border-radius: 1rem;
    padding: 0 1.25rem;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
    transition: box-shadow 0.2s;
}
.fp-faq__item[open] { box-shadow: 0 4px 12px rgba(0,0,0,0.06); }
.fp-faq__q {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 0;
    font-weight: 700;
    color: hsl(var(--fp-foreground));
    font-size: 15px;
    text-align: left;
}
@media (min-width: 768px) { .fp-faq__q { font-size: 1rem; } }
.fp-faq__q::-webkit-details-marker { display: none; }
.fp-faq__q .fp-chevron { flex-shrink: 0; width: 1rem; height: 1rem; transition: transform 0.2s; color: hsl(var(--fp-muted-foreground)); }
.fp-faq__item[open] .fp-chevron { transform: rotate(180deg); }
.fp-faq__a {
    color: hsl(var(--fp-muted-foreground));
    font-size: 14px;
    line-height: 1.6;
    padding-bottom: 1.25rem;
}
@media (min-width: 768px) { .fp-faq__a { font-size: 15px; } }

/* ====== Static subpages ====== */
.elementor-widget-fp_page_header,
.elementor-widget-fp_page_vara_tjanster,
.elementor-widget-fp_page_vara_priser,
.elementor-widget-fp_page_om_oss,
.elementor-widget-fp_page_medicinska_granskare,
.elementor-widget-fp_page_legal,
.elementor-widget-fp_page_sjalvtester,
.elementor-widget-fp_page_self_test { padding: 0 !important; }
.elementor-widget-fp_page_header {
    margin-bottom: 0 !important;
    margin-block-end: 0 !important;
}
.elementor-widget-fp_page_header + .elementor-widget-fp_page_vara_priser,
.elementor-widget-fp_page_header + .elementor-widget-fp_page_vara_tjanster,
.elementor-widget-fp_page_header + .elementor-widget-fp_page_om_oss,
.elementor-widget-fp_page_header + .elementor-widget-fp_page_medicinska_granskare,
.elementor-widget-fp_page_header + .elementor-widget-fp_page_legal,
.elementor-widget-fp_page_header + .elementor-widget-fp_page_sjalvtester,
.elementor-widget-fp_page_header + .elementor-widget-fp_page_self_test {
    margin-top: 0 !important;
}
.fp-subpage {
    background: hsl(var(--fp-background));
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    width: 100vw;
    max-width: 100vw;
    overflow-x: hidden;
}
.fp-page-hero {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, hsl(var(--fp-primary)) 0%, hsl(var(--fp-primary)) 58%, hsl(var(--fp-primary) / 0.8) 100%);
    padding: 4.5rem 0 1rem;
}
@media (min-width: 768px) { .fp-page-hero { padding: 5rem 0 1.5rem; } }
.fp-page-hero__shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.1), transparent);
    pointer-events: none;
}
.fp-page-hero__inner,
.fp-page-main__inner {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1rem;
}
@media (min-width: 768px) {
    .fp-page-hero__inner,
    .fp-page-main__inner { padding: 0 1.5rem; }
}
.fp-page-hero__breadcrumbs {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    min-width: 0;
    color: hsl(var(--fp-primary-foreground) / 0.5);
    font-size: 0.75rem;
    line-height: 1rem;
}
@media (min-width: 768px) { .fp-page-hero__breadcrumbs { font-size: 0.875rem; line-height: 1.25rem; } }
.fp-page-hero__breadcrumbs a {
    color: inherit;
    text-decoration: none;
    flex-shrink: 0;
    transition: color 0.2s;
}
.fp-page-hero__breadcrumbs a:hover { color: hsl(var(--fp-primary-foreground)); }
.fp-page-hero__breadcrumbs svg {
    width: 0.75rem;
    height: 0.75rem;
    flex-shrink: 0;
}
@media (min-width: 768px) { .fp-page-hero__breadcrumbs svg { width: 0.875rem; height: 0.875rem; } }
.fp-page-hero__breadcrumbs span { color: hsl(var(--fp-primary-foreground) / 0.8); }

/* ====== Standalone breadcrumbs ====== */
.elementor-widget-fp_breadcrumbs {
    padding: 0 !important;
}
.fp-breadcrumbs-widget {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}
.fp-breadcrumbs__inner {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 1rem;
}
@media (min-width: 768px) {
    .fp-breadcrumbs__inner {
        padding: 1rem 1.5rem;
    }
}
.fp-breadcrumbs {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 0.375rem;
    min-width: 0;
    font-size: 0.75rem;
    line-height: 1rem;
    text-align: left;
}
@media (min-width: 768px) {
    .fp-breadcrumbs {
        font-size: 0.875rem;
        line-height: 1.25rem;
    }
}
.fp-breadcrumbs__link {
    color: #000;
    text-decoration: none;
    flex-shrink: 0;
    transition: color 0.2s;
}
.fp-breadcrumbs__link:hover {
    color: #0c6a4a;
}
.fp-breadcrumbs__current {
    color: #000;
    min-width: 0;
    overflow-wrap: anywhere;
}
.fp-breadcrumbs__separator {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #000;
    flex-shrink: 0;
}
.fp-breadcrumbs__separator svg {
    display: block;
    width: 0.75rem;
    height: 0.75rem;
}
@media (min-width: 768px) {
    .fp-breadcrumbs__separator svg {
        width: 0.875rem;
        height: 0.875rem;
    }
}
.fp-page-hero__title {
    margin: 0;
    padding: 2rem 0;
    color: hsl(var(--fp-primary-foreground));
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0;
    font-size: 1.875rem;
}
@media (min-width: 768px) {
    .fp-page-hero__title {
        padding: 2.5rem 0;
        font-size: 3rem;
    }
}
.fp-page-main {
    background: hsl(var(--fp-background));
    padding: 30px 0;
}
@media (min-width: 768px) { .fp-page-main { padding: 60px 0; } }
.fp-services-page__intro,
.fp-services-page__section-desc {
    color: #000;
    line-height: 1.6;
    max-width: 48rem;
    font-size: clamp(1rem, 1.5vw, 1.15rem);
}
.fp-services-page__intro { margin: 0; }
.fp-services-page__section { margin-top: 40px; }
@media (min-width: 768px) { .fp-services-page__section { margin-top: 60px; } }
.fp-services-page__section-title {
    margin: 0;
    color: #000;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.02em;
    font-size: clamp(1.3rem, 2.5vw, 1.8rem);
}
.fp-services-page__section-desc { margin: 1rem 0 0; }
.fp-services-page__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
    max-width: 64rem;
    margin-top: 20px;
}
@media (min-width: 768px) {
    .fp-services-page__grid {
        grid-template-columns: repeat(3, 1fr);
        margin-top: 30px;
    }
}
.fp-services-page__card {
    display: flex;
    flex-direction: column;
    padding: 1.5rem;
    border-radius: 1rem;
    border: 1px solid hsl(var(--fp-border) / 0.6);
    background: #fff;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
    transition: box-shadow 0.3s;
}
.fp-services-page__card:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
.fp-services-page__card h3 {
    margin: 0;
    color: #000;
    font-weight: 700;
    line-height: 1.35;
    font-size: 15px;
}
@media (min-width: 768px) { .fp-services-page__card h3 { font-size: 1rem; } }
.fp-services-page__card p {
    margin: 0.75rem 0 0;
    color: #000;
    font-size: 0.875rem;
    line-height: 1.6;
    flex: 1;
}
.fp-services-page__card a {
    margin-top: 1.25rem;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    color: hsl(var(--fp-primary));
    font-weight: 600;
    font-size: 0.875rem;
    text-decoration: none;
}
.fp-services-page__card a:hover { text-decoration: underline; }
.fp-services-page__card a svg {
    width: 1rem;
    height: 1rem;
    transition: transform 0.3s;
}
.fp-services-page__card:hover a svg { transform: translateX(4px); }
.fp-services-page__badge {
    margin-top: 1.25rem;
    display: inline-flex;
    align-items: center;
    width: fit-content;
    border-radius: 9999px;
    background: hsl(var(--fp-muted));
    color: hsl(var(--fp-muted-foreground));
    padding: 0.25rem 0.625rem;
    font-size: 11px;
    font-weight: 600;
}

.fp-prices-page__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
    max-width: 64rem;
}
@media (min-width: 768px) {
    .fp-prices-page__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.fp-prices-page__card {
    display: flex;
    flex-direction: column;
    padding: 1.5rem;
    border-radius: 1rem;
    border: 1px solid hsl(var(--fp-border) / 0.6);
    background: #fff;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
    transition: box-shadow 0.3s;
}
.fp-prices-page__card:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
.fp-prices-page__card h3 {
    margin: 0;
    color: #000;
    font-weight: 700;
    line-height: 1.35;
    font-size: 15px;
}
@media (min-width: 768px) { .fp-prices-page__card h3 { font-size: 1rem; } }
.fp-prices-page__card p {
    margin: 0.75rem 0 0;
    color: #000;
    font-size: 0.875rem;
    line-height: 1.6;
    flex: 1;
}
.fp-prices-page__price {
    margin-top: 1.25rem;
    color: hsl(var(--fp-primary));
    font-weight: 800;
    font-size: 1.5rem;
    line-height: 2rem;
}
.fp-prices-page__card a {
    margin-top: 1rem;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    color: hsl(var(--fp-primary));
    font-weight: 600;
    font-size: 0.875rem;
    text-decoration: none;
}
.fp-prices-page__card a:hover { text-decoration: underline; }
.fp-prices-page__card a svg {
    width: 1rem;
    height: 1rem;
    transition: transform 0.3s;
}
.fp-prices-page__card:hover a svg { transform: translateX(4px); }
.fp-prices-page__badge {
    margin-top: 1.25rem;
    display: inline-flex;
    align-items: center;
    width: fit-content;
    border-radius: 9999px;
    background: hsl(var(--fp-muted));
    color: hsl(var(--fp-muted-foreground));
    padding: 0.25rem 0.625rem;
    font-size: 11px;
    font-weight: 600;
}

.fp-about-page__wrap {
    width: 100%;
    max-width: 56rem;
}
.fp-about-page__intro {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}
@media (min-width: 768px) {
    .fp-about-page__intro {
        flex-direction: row;
        align-items: flex-start;
        gap: 2.5rem;
    }
}
.fp-about-page__intro-copy,
.fp-about-page__why {
    flex: 1;
}
.fp-about-page__intro-copy p,
.fp-about-page__why p {
    margin: 0;
    color: #000;
    line-height: 1.6;
    font-size: clamp(1rem, 1.5vw, 1.15rem);
}
.fp-about-page__intro-copy p + p,
.fp-about-page__why p + p {
    margin-top: 1.5rem;
}
.fp-about-page__illustration {
    width: 100%;
    max-width: 200px;
    max-height: 260px;
    height: auto;
    margin: 0 auto;
    flex-shrink: 0;
    align-self: center;
}
@media (min-width: 768px) {
    .fp-about-page__illustration {
        width: auto;
        max-width: none;
        margin: 0;
        align-self: flex-start;
    }
}
.fp-about-page__why {
    margin-top: 3rem;
}
.fp-about-page__why h2 {
    margin: 0;
    color: #000;
    font-weight: 700;
    line-height: 1.2;
    font-size: 1.5rem;
}
@media (min-width: 768px) {
    .fp-about-page__why h2 { font-size: 1.875rem; }
}
.fp-about-page__contact {
    margin-top: 3rem;
    padding-top: 3rem;
    border-top: 1px solid hsl(var(--fp-border) / 0.6);
}
.fp-about-page__contact h3 {
    margin: 0;
    color: #000;
    font-size: 1.125rem;
    line-height: 1.75rem;
    font-weight: 700;
}
.fp-about-page__contact p {
    margin: 0.5rem 0 0;
    color: rgba(0,0,0,0.8);
    line-height: 1.6;
}
.fp-about-page__cta-wrap {
    margin-top: 2rem;
}
.fp-about-page__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 1.5rem;
    border-radius: 9999px;
    background: hsl(var(--fp-primary));
    color: hsl(var(--fp-primary-foreground));
    font-weight: 600;
    font-size: 0.875rem;
    text-decoration: none;
    box-shadow: 0 4px 20px rgba(12, 106, 74, 0.35);
    transition: transform 0.3s ease-out, box-shadow 0.3s ease-out;
}
.fp-about-page__cta:hover,
.fp-about-page__cta:focus-visible {
    color: hsl(var(--fp-primary-foreground));
    box-shadow: 0 6px 30px rgba(12, 106, 74, 0.5);
    transform: scale(1.03);
    outline: none;
}
.fp-about-page__cta:active { transform: scale(0.98); }
.fp-about-page__social {
    margin-top: 2.5rem;
}
.fp-about-page__social > p {
    margin: 0;
    color: hsl(var(--fp-muted-foreground));
    font-size: 0.875rem;
    font-weight: 500;
}
.fp-about-page__social-links {
    margin-top: 0.75rem;
    display: flex;
    align-items: center;
    gap: 1rem;
}
.fp-about-page__social-links a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 9999px;
    background: hsl(var(--fp-muted));
    color: hsl(var(--fp-foreground));
    transition: background-color 0.2s;
}
.fp-about-page__social-links a:hover,
.fp-about-page__social-links a:focus-visible {
    background: hsl(var(--fp-muted) / 0.8);
    color: hsl(var(--fp-foreground));
    outline: none;
}
.fp-about-page__social-links svg {
    width: 1.25rem;
    height: 1.25rem;
}

.fp-reviewers-page__intro {
    width: 100%;
    max-width: 48rem;
}
.fp-reviewers-page__intro p {
    margin: 0;
    color: #000;
    line-height: 1.6;
    font-size: clamp(1rem, 1.5vw, 1.15rem);
}
.fp-reviewers-page__grid {
    margin-top: 2.5rem;
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}
@media (min-width: 768px) {
    .fp-reviewers-page__grid {
        margin-top: 3.5rem;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 2rem;
    }
}
.fp-reviewers-page__card {
    position: relative;
    background: #fff;
    border: 1px solid hsl(var(--fp-border) / 0.6);
    border-radius: 1rem;
    padding: 1.75rem;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
    transition: box-shadow 0.3s, border-color 0.3s;
}
@media (min-width: 768px) { .fp-reviewers-page__card { padding: 2rem; } }
.fp-reviewers-page__card:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    border-color: hsl(var(--fp-primary) / 0.3);
}
.fp-reviewers-page__top {
    display: flex;
    align-items: flex-start;
    gap: 1.25rem;
}
.fp-reviewers-page__avatar-wrap {
    position: relative;
    flex-shrink: 0;
}
.fp-reviewers-page__avatar {
    width: 4rem;
    height: 4rem;
    border-radius: 9999px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: hsl(var(--fp-primary-foreground));
    font-weight: 700;
    font-size: 1.25rem;
    background: linear-gradient(135deg, hsl(var(--fp-primary)), hsl(var(--fp-primary) / 0.7));
    box-shadow: 0 4px 10px rgba(0,0,0,0.12);
}
@media (min-width: 768px) {
    .fp-reviewers-page__avatar {
        width: 5rem;
        height: 5rem;
        font-size: 1.5rem;
    }
}
.fp-reviewers-page__badge {
    position: absolute;
    right: -0.25rem;
    bottom: -0.25rem;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 9999px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 1px solid hsl(var(--fp-border) / 0.6);
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}
.fp-reviewers-page__badge svg {
    width: 1rem;
    height: 1rem;
    color: hsl(var(--fp-primary));
}
.fp-reviewers-page__identity {
    flex: 1;
    min-width: 0;
}
.fp-reviewers-page__identity h2 {
    margin: 0;
    font-size: 1.25rem;
    line-height: 1.2;
    font-weight: 700;
}
@media (min-width: 768px) { .fp-reviewers-page__identity h2 { font-size: 1.5rem; } }
.fp-reviewers-page__identity h2 a {
    color: hsl(var(--fp-primary));
    text-decoration: none;
}
.fp-reviewers-page__identity h2 a:hover { text-decoration: underline; }
.fp-reviewers-page__role {
    margin: 0.25rem 0 0;
    color: #000;
    font-size: 0.875rem;
    font-weight: 600;
}
.fp-reviewers-page__education {
    margin-top: 1.25rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: rgba(0,0,0,0.6);
    font-size: 0.75rem;
}
@media (min-width: 768px) { .fp-reviewers-page__education { font-size: 0.875rem; } }
.fp-reviewers-page__education svg {
    width: 1rem;
    height: 1rem;
    color: hsl(var(--fp-primary) / 0.7);
}
.fp-reviewers-page__bio {
    margin: 1rem 0 0;
    color: rgba(0,0,0,0.8);
    line-height: 1.6;
    font-size: 0.95rem;
}
@media (min-width: 768px) { .fp-reviewers-page__bio { font-size: 1rem; } }

.fp-legal-page__content {
    width: 100%;
    max-width: 48rem;
}
.fp-legal-page__intro,
.fp-legal-page__body,
.fp-legal-page__footer {
    color: #000;
    line-height: 1.6;
    font-size: clamp(1rem, 1.5vw, 1.15rem);
}
.fp-legal-page__intro > *:first-child,
.fp-legal-page__body > *:first-child,
.fp-legal-page__footer > *:first-child {
    margin-top: 0;
}
.fp-legal-page__intro > *:last-child,
.fp-legal-page__body > *:last-child,
.fp-legal-page__footer > *:last-child {
    margin-bottom: 0;
}
.fp-legal-page__section {
    margin-top: 2.5rem;
}
.fp-legal-page__section h2 {
    margin: 0 0 1rem;
    color: #000;
    font-size: 1.25rem;
    line-height: 1.3;
    font-weight: 700;
}
@media (min-width: 768px) { .fp-legal-page__section h2 { font-size: 1.5rem; } }
.fp-legal-page__body ul {
    margin: 1rem 0 0;
    padding-left: 1.5rem;
}
.fp-legal-page__body li + li {
    margin-top: 0.5rem;
}
.fp-legal-page__body a,
.fp-legal-page__footer a,
.fp-legal-page__intro a {
    color: hsl(var(--fp-primary));
    font-weight: 600;
    text-decoration: none;
}
.fp-legal-page__body a:hover,
.fp-legal-page__footer a:hover,
.fp-legal-page__intro a:hover {
    text-decoration: underline;
}
.fp-legal-page__footer {
    margin-top: 2rem;
    color: hsl(var(--fp-muted-foreground));
    font-size: 0.875rem;
}

.fp-tests-page__intro {
    margin: 0;
    max-width: 48rem;
    color: #000;
    line-height: 1.6;
    font-size: clamp(1rem, 1.5vw, 1.15rem);
}
.fp-tests-page__list {
    margin-top: 2.5rem;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    max-width: 64rem;
}
@media (min-width: 768px) { .fp-tests-page__list { margin-top: 3.75rem; } }
.fp-tests-page__card {
    background: #fff;
    border: 1px solid hsl(var(--fp-border) / 0.6);
    border-radius: 1rem;
    padding: 1.5rem;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
    transition: box-shadow 0.3s;
}
.fp-tests-page__card:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
.fp-tests-page__card h3 {
    margin: 0;
    color: #000;
    font-size: 15px;
    line-height: 1.35;
    font-weight: 700;
}
@media (min-width: 768px) { .fp-tests-page__card h3 { font-size: 1rem; } }
.fp-tests-page__card p {
    margin: 0.75rem 0 0;
    color: #000;
    font-size: 0.875rem;
    line-height: 1.6;
}
.fp-tests-page__card a {
    margin-top: 1.25rem;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    color: hsl(var(--fp-primary));
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
}
.fp-tests-page__card a:hover { text-decoration: underline; }
.fp-tests-page__card a svg {
    width: 1rem;
    height: 1rem;
    transition: transform 0.3s;
}
.fp-tests-page__card:hover a svg { transform: translateX(4px); }

.fp-self-test {
    width: 100%;
    max-width: 900px;
}
.fp-self-test__intro {
    margin-bottom: 2rem;
}
@media (min-width: 768px) { .fp-self-test__intro { margin-bottom: 2.5rem; } }
.fp-self-test__intro-copy {
    color: #000;
    font-size: clamp(1rem, 1.4vw, 1.1rem);
    line-height: 1.6;
}
.fp-self-test__intro-copy > *:first-child { margin-top: 0; }
.fp-self-test__intro-copy > *:last-child { margin-bottom: 0; }
.fp-self-test__intro-copy p + p { margin-top: 1rem; }
.fp-self-test__tip {
    margin-top: 1.5rem;
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    border-radius: 1rem;
    border: 1px solid hsl(var(--fp-primary) / 0.15);
    background: hsl(var(--fp-primary) / 0.06);
    padding: 0.875rem 1rem;
}
@media (min-width: 768px) { .fp-self-test__tip { padding: 1rem 1.25rem; } }
.fp-self-test__tip-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 9999px;
    background: hsl(var(--fp-primary) / 0.15);
    color: hsl(var(--fp-primary));
    flex-shrink: 0;
}
.fp-self-test__tip-icon svg {
    width: 1rem;
    height: 1rem;
}
.fp-self-test__tip-text {
    color: #000;
    line-height: 1.6;
    font-size: 0.875rem;
}
@media (min-width: 768px) { .fp-self-test__tip-text { font-size: 0.9375rem; } }

.fp-self-test__card {
    background: #fff;
    border: 1px solid hsl(var(--fp-border) / 0.6);
    border-radius: 1.5rem;
    overflow: hidden;
    box-shadow: 0 8px 30px -12px rgba(0,0,0,0.12);
}
.fp-self-test__card-top {
    padding: 2rem 1.5rem 0;
}
@media (min-width: 768px) { .fp-self-test__card-top { padding: 2.5rem 2.5rem 0; } }
.fp-self-test__progress-track {
    position: relative;
    width: 100%;
    height: 0.5rem;
    overflow: hidden;
    border-radius: 9999px;
    background: hsl(var(--fp-muted));
}
.fp-self-test__progress-bar {
    position: absolute;
    inset: 0 auto 0 0;
    width: 0;
    border-radius: 9999px;
    background: hsl(var(--fp-primary));
    transition: width 0.5s ease-out;
}
.fp-self-test__progress-meta {
    margin-top: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    color: hsl(var(--fp-muted-foreground));
    font-size: 0.75rem;
    font-weight: 500;
}
@media (min-width: 768px) { .fp-self-test__progress-meta { font-size: 0.875rem; } }
.fp-self-test__time {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
}
.fp-self-test__time svg {
    width: 0.875rem;
    height: 0.875rem;
}
.fp-self-test__question-view {
    padding: 2.5rem 1.5rem;
}
@media (min-width: 768px) { .fp-self-test__question-view { padding: 3.5rem 2.5rem; } }
.fp-self-test__question-kicker {
    margin-bottom: 0.75rem;
    color: hsl(var(--fp-primary));
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-align: center;
}
.fp-self-test__question-title {
    margin: 0 auto;
    max-width: 42rem;
    color: #000;
    font-size: 1.5rem;
    line-height: 1.2;
    font-weight: 700;
    text-align: center;
}
@media (min-width: 768px) { .fp-self-test__question-title { font-size: 2rem; } }
.fp-self-test__answers {
    margin-top: 2.5rem;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}
@media (min-width: 640px) { .fp-self-test__answers { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .fp-self-test__answers { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.fp-self-test .fp-self-test__answer,
.fp-self-test button.fp-self-test__answer,
.fp-self-test button[type="button"].fp-self-test__answer {
    position: relative;
    display: inline-block !important;
    width: 100% !important;
    border: 2px solid hsl(var(--fp-border) / 0.6) !important;
    background: #fff !important;
    color: #000 !important;
    border-radius: 1rem !important;
    padding: 1.25rem 1rem !important;
    font-size: 0.9375rem !important;
    font-weight: 600 !important;
    line-height: 1.4;
    text-align: center;
    cursor: pointer;
    transition: border-color 0.2s, background-color 0.2s, color 0.2s;
    -webkit-appearance: none !important;
    appearance: none !important;
    font-family: inherit !important;
    box-shadow: none !important;
    outline: none !important;
    text-decoration: none !important;
    white-space: normal !important;
}
@media (hover: hover) and (pointer: fine) {
    .fp-self-test .fp-self-test__answer:hover,
    .fp-self-test button.fp-self-test__answer:hover,
    .fp-self-test button[type="button"].fp-self-test__answer:hover {
        border-color: hsl(var(--fp-primary) / 0.4) !important;
        background: hsl(var(--fp-primary) / 0.03) !important;
        color: #000 !important;
        text-decoration: none !important;
    }
}
.fp-self-test .fp-self-test__answer:focus,
.fp-self-test .fp-self-test__answer:active,
.fp-self-test button.fp-self-test__answer:focus,
.fp-self-test button.fp-self-test__answer:active,
.fp-self-test button[type="button"].fp-self-test__answer:focus,
.fp-self-test button[type="button"].fp-self-test__answer:active {
    background: #fff !important;
    color: #000 !important;
    border-color: hsl(var(--fp-border) / 0.6) !important;
    box-shadow: none !important;
    outline: none !important;
    text-decoration: none !important;
}
.fp-self-test .fp-self-test__answer:focus-visible,
.fp-self-test button.fp-self-test__answer:focus-visible,
.fp-self-test button[type="button"].fp-self-test__answer:focus-visible {
    background: #fff !important;
    color: #000 !important;
    border-color: hsl(var(--fp-primary)) !important;
    box-shadow: 0 0 0 3px rgba(12, 106, 74, 0.14) !important;
    outline: none !important;
    text-decoration: none !important;
}
.fp-self-test .fp-self-test__answer.is-selected,
.fp-self-test button.fp-self-test__answer.is-selected,
.fp-self-test button[type="button"].fp-self-test__answer.is-selected {
    border-color: hsl(var(--fp-primary)) !important;
    background: hsl(var(--fp-primary) / 0.05) !important;
    color: hsl(var(--fp-primary)) !important;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important;
}
.fp-self-test__answer-check {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    width: 1rem;
    height: 1rem;
    color: hsl(var(--fp-primary));
}
.fp-self-test__answer-check svg {
    width: 1rem;
    height: 1rem;
}
.fp-self-test__nav {
    margin-top: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}
.fp-self-test .fp-self-test__back,
.fp-self-test button.fp-self-test__back,
.fp-self-test button[type="button"].fp-self-test__back {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    border: 1px solid hsl(var(--fp-border) / 0.6) !important;
    background: #fff !important;
    color: #000 !important;
    border-radius: 9999px !important;
    padding: 0.625rem 1.25rem !important;
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    cursor: pointer;
    transition: background-color 0.2s, opacity 0.2s;
    -webkit-appearance: none !important;
    appearance: none !important;
    font-family: inherit !important;
    box-shadow: none !important;
    outline: none !important;
    text-decoration: none !important;
}
.fp-self-test .fp-self-test__back:hover,
.fp-self-test button.fp-self-test__back:hover,
.fp-self-test button[type="button"].fp-self-test__back:hover {
    background: hsl(var(--fp-muted) / 0.6) !important;
    color: #000 !important;
}
.fp-self-test .fp-self-test__back:focus,
.fp-self-test .fp-self-test__back:active,
.fp-self-test button.fp-self-test__back:focus,
.fp-self-test button.fp-self-test__back:active,
.fp-self-test button[type="button"].fp-self-test__back:focus,
.fp-self-test button[type="button"].fp-self-test__back:active {
    background: #fff !important;
    color: #000 !important;
    border-color: hsl(var(--fp-border) / 0.6) !important;
    box-shadow: none !important;
    outline: none !important;
    text-decoration: none !important;
}
.fp-self-test .fp-self-test__back:focus-visible,
.fp-self-test button.fp-self-test__back:focus-visible,
.fp-self-test button[type="button"].fp-self-test__back:focus-visible {
    background: #fff !important;
    color: #000 !important;
    border-color: hsl(var(--fp-primary)) !important;
    box-shadow: 0 0 0 3px rgba(12, 106, 74, 0.14) !important;
    outline: none !important;
}
.fp-self-test .fp-self-test__back:disabled,
.fp-self-test button.fp-self-test__back:disabled,
.fp-self-test button[type="button"].fp-self-test__back:disabled {
    background: #fff !important;
    color: #000 !important;
    border-color: hsl(var(--fp-border) / 0.6) !important;
    opacity: 0.4;
    cursor: not-allowed;
}
.fp-self-test__back svg {
    width: 1rem;
    height: 1rem;
}
.fp-self-test__count {
    color: hsl(var(--fp-muted-foreground));
    font-size: 0.75rem;
}

.fp-self-test__result-view {
    padding: 2rem 1.25rem 2.5rem;
}
@media (min-width: 768px) { .fp-self-test__result-view { padding: 2.5rem 2.5rem 3rem; } }
.fp-self-test__result-title {
    margin: 0;
    color: #000;
    font-size: 1.5rem;
    line-height: 1.2;
    font-weight: 800;
}
@media (min-width: 768px) { .fp-self-test__result-title { font-size: 1.875rem; } }
.fp-self-test__desktop-scale {
    position: relative;
    margin-top: 2rem;
    display: none;
}
@media (min-width: 640px) { .fp-self-test__desktop-scale { display: block; } }
.fp-self-test__indicator {
    position: absolute;
    top: -0.75rem;
    transform: translateX(-50%);
    transition: left 0.7s ease-out;
    z-index: 2;
}
.fp-self-test__indicator-triangle {
    width: 0;
    height: 0;
    margin: 0 auto;
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-top: 10px solid hsl(var(--fp-foreground));
}
.fp-self-test__indicator-stem {
    width: 2px;
    height: 0.75rem;
    margin: 0 auto;
    background: hsl(var(--fp-foreground));
}
.fp-self-test__scale-bars {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.25rem;
    border-radius: 0.75rem;
    overflow: hidden;
    min-height: 3rem;
}
.fp-self-test__scale-bar {
    min-height: 3rem;
}
.fp-self-test__scale-bar.is-active {
    box-shadow: inset 0 0 0 2px rgba(17,24,39,0.85);
}
.fp-self-test__scale-labels {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.25rem;
    margin-top: 0.75rem;
}
.fp-self-test__scale-label {
    padding: 0.5rem 0.25rem;
    border-radius: 0.5rem;
    color: hsl(var(--fp-muted-foreground));
    font-size: 0.75rem;
    line-height: 1.2;
    font-weight: 600;
    text-align: center;
}
.fp-self-test__scale-label.is-active {
    background: hsl(var(--fp-muted) / 0.6);
    color: #000;
}
.fp-self-test__mobile-scale {
    margin-top: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
@media (min-width: 640px) { .fp-self-test__mobile-scale { display: none; } }
.fp-self-test__mobile-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    border: 2px solid hsl(var(--fp-border) / 0.5);
    background: #fff;
    border-radius: 0.75rem;
    padding: 0.75rem;
}
.fp-self-test__mobile-item.is-active {
    border-color: hsl(var(--fp-foreground));
    background: hsl(var(--fp-muted) / 0.4);
}
.fp-self-test__mobile-color {
    width: 0.625rem;
    height: 2.5rem;
    border-radius: 9999px;
    flex-shrink: 0;
}
.fp-self-test__mobile-text {
    color: hsl(var(--fp-muted-foreground));
    font-size: 0.875rem;
    line-height: 1.3;
    font-weight: 600;
}
.fp-self-test__mobile-item.is-active .fp-self-test__mobile-text { color: #000; }
.fp-self-test__mobile-badge {
    margin-left: auto;
    border-radius: 9999px;
    background: hsl(var(--fp-primary) / 0.1);
    color: hsl(var(--fp-primary));
    padding: 0.25rem 0.5rem;
    font-size: 10px;
    line-height: 1;
    font-weight: 700;
    text-transform: uppercase;
}
.fp-self-test__summary {
    margin-top: 2rem;
}
.fp-self-test__summary-label {
    color: hsl(var(--fp-muted-foreground));
    font-size: 0.75rem;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
.fp-self-test__summary h3 {
    margin: 0.5rem 0 0;
    color: #000;
    font-size: 1.25rem;
    line-height: 1.2;
    font-weight: 800;
}
@media (min-width: 768px) { .fp-self-test__summary h3 { font-size: 1.875rem; } }
.fp-self-test__summary p {
    margin: 1rem 0 0;
    color: #000;
    font-size: 0.9375rem;
    line-height: 1.6;
}
@media (min-width: 768px) { .fp-self-test__summary p { font-size: 1rem; } }
.fp-self-test__cta {
    margin-top: 2.5rem;
    border-radius: 1rem;
    border: 1px solid hsl(var(--fp-primary) / 0.15);
    background: hsl(var(--fp-primary) / 0.06);
    padding: 1.5rem;
}
@media (min-width: 768px) { .fp-self-test__cta { padding: 2rem; } }
.fp-self-test__cta h4 {
    margin: 0;
    color: #000;
    font-size: 1.125rem;
    line-height: 1.4;
    font-weight: 700;
}
@media (min-width: 768px) { .fp-self-test__cta h4 { font-size: 1.25rem; } }
.fp-self-test__cta p {
    margin: 0.5rem 0 0;
    color: rgba(0,0,0,0.8);
    font-size: 0.9375rem;
    line-height: 1.6;
}
@media (min-width: 768px) { .fp-self-test__cta p { font-size: 1rem; } }
.fp-self-test__cta-actions {
    margin-top: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
@media (min-width: 640px) { .fp-self-test__cta-actions { flex-direction: row; } }
.fp-self-test .fp-self-test__cta-primary,
.fp-self-test .fp-self-test__cta-secondary,
.fp-self-test a.fp-self-test__cta-primary,
.fp-self-test button.fp-self-test__cta-secondary,
.fp-self-test button[type="button"].fp-self-test__cta-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    border-radius: 9999px !important;
    padding: 0.75rem 1.5rem !important;
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    font-family: inherit !important;
    box-shadow: none !important;
    outline: none !important;
}
.fp-self-test .fp-self-test__cta-primary,
.fp-self-test a.fp-self-test__cta-primary {
    background: hsl(var(--fp-primary)) !important;
    color: hsl(var(--fp-primary-foreground)) !important;
}
.fp-self-test .fp-self-test__cta-primary:hover,
.fp-self-test a.fp-self-test__cta-primary:hover {
    background: hsl(var(--fp-primary)) !important;
    color: hsl(var(--fp-primary-foreground)) !important;
    opacity: 0.9;
    text-decoration: none !important;
}
.fp-self-test__cta-primary:focus,
.fp-self-test__cta-primary:active {
    color: hsl(var(--fp-primary-foreground)) !important;
    box-shadow: none !important;
    outline: none !important;
}
.fp-self-test__cta-primary:focus-visible {
    color: hsl(var(--fp-primary-foreground)) !important;
    box-shadow: 0 0 0 3px rgba(12, 106, 74, 0.18) !important;
    outline: none !important;
}
.fp-self-test__cta-primary svg,
.fp-self-test__cta-secondary svg {
    width: 1rem;
    height: 1rem;
}
.fp-self-test .fp-self-test__cta-secondary,
.fp-self-test button.fp-self-test__cta-secondary,
.fp-self-test button[type="button"].fp-self-test__cta-secondary {
    border: 1px solid hsl(var(--fp-border) / 0.6) !important;
    background: #fff !important;
    color: #000 !important;
    cursor: pointer;
    -webkit-appearance: none !important;
    appearance: none !important;
}
.fp-self-test .fp-self-test__cta-secondary:hover,
.fp-self-test button.fp-self-test__cta-secondary:hover,
.fp-self-test button[type="button"].fp-self-test__cta-secondary:hover {
    background: hsl(var(--fp-muted) / 0.6) !important;
    color: #000 !important;
}
.fp-self-test .fp-self-test__cta-secondary:focus,
.fp-self-test .fp-self-test__cta-secondary:active,
.fp-self-test button.fp-self-test__cta-secondary:focus,
.fp-self-test button.fp-self-test__cta-secondary:active,
.fp-self-test button[type="button"].fp-self-test__cta-secondary:focus,
.fp-self-test button[type="button"].fp-self-test__cta-secondary:active {
    background: #fff !important;
    border-color: hsl(var(--fp-border) / 0.6) !important;
    color: #000 !important;
    box-shadow: none !important;
    outline: none !important;
}
.fp-self-test .fp-self-test__cta-secondary:focus-visible,
.fp-self-test button.fp-self-test__cta-secondary:focus-visible,
.fp-self-test button[type="button"].fp-self-test__cta-secondary:focus-visible {
    background: #fff !important;
    border-color: hsl(var(--fp-primary)) !important;
    color: #000 !important;
    box-shadow: 0 0 0 3px rgba(12, 106, 74, 0.14) !important;
    outline: none !important;
}
.fp-self-test__info {
    margin-top: 3rem;
}
@media (min-width: 768px) { .fp-self-test__info { margin-top: 4rem; } }
.fp-self-test__info h2 {
    margin: 0;
    color: #000;
    font-size: 1.5rem;
    line-height: 1.2;
    font-weight: 800;
}
@media (min-width: 768px) { .fp-self-test__info h2 { font-size: 1.875rem; } }
.fp-self-test__info p {
    margin: 1.25rem 0 0;
    color: #000;
    font-size: clamp(1rem, 1.4vw, 1.1rem);
    line-height: 1.6;
}

.elementor-widget-fp_page_post_archive .elementor-widget-container,
.elementor-widget-fp_post_template .elementor-widget-container {
    margin: 0 !important;
    padding: 0 !important;
}

.elementor-widget-fp_page_header + .elementor-widget-fp_page_post_archive,
.elementor-widget-fp_page_header + .elementor-widget-fp_post_template {
    margin-top: 0 !important;
}

.fp-post-archive {
    padding: 2rem 0 3.5rem;
}
@media (min-width: 768px) { .fp-post-archive { padding: 2rem 0 4.5rem; } }
.fp-post-archive__intro {
    max-width: 48rem;
    margin: 0 0 2rem;
    color: #000;
    font-size: clamp(1rem, 1.5vw, 1.15rem);
    line-height: 1.7;
}
.fp-post-archive__groups {
    max-width: 50rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.fp-post-archive__group {
    background: #fff;
    border: 1px solid hsl(var(--fp-border));
    border-radius: 0.75rem;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
    overflow: hidden;
}
.fp-post-archive__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    list-style: none;
    cursor: pointer;
    padding: 1.1rem 1.25rem;
}
@media (min-width: 768px) { .fp-post-archive__summary { padding: 1.25rem 1.5rem; } }
.fp-post-archive__summary::-webkit-details-marker { display: none; }
.fp-post-archive__summary-title {
    color: hsl(var(--fp-foreground));
    font-size: 1.125rem;
    line-height: 1.3;
    font-weight: 700;
    transition: color 0.2s;
}
@media (min-width: 768px) { .fp-post-archive__summary-title { font-size: 1.25rem; } }
.fp-post-archive__group:hover .fp-post-archive__summary-title {
    color: hsl(var(--fp-primary));
}
.fp-post-archive__summary-meta {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}
.fp-post-archive__count {
    color: hsl(var(--fp-muted-foreground));
    font-size: 0.75rem;
    line-height: 1;
    font-weight: 500;
}
.fp-post-archive__chevron {
    color: hsl(var(--fp-muted-foreground));
    transition: transform 0.2s ease;
}
.fp-post-archive__chevron svg {
    width: 1.25rem;
    height: 1.25rem;
}
.fp-post-archive__group[open] .fp-post-archive__chevron {
    transform: rotate(180deg);
}
.fp-post-archive__panel {
    border-top: 1px solid hsl(var(--fp-border) / 0.6);
    padding: 0.5rem 1.25rem;
}
@media (min-width: 768px) { .fp-post-archive__panel { padding: 0.65rem 1.5rem; } }
.fp-post-archive__item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.9rem 0;
    color: hsl(var(--fp-foreground));
    text-decoration: none;
    border-bottom: 1px solid hsl(var(--fp-border) / 0.3);
    transition: color 0.2s, transform 0.2s;
}
.fp-post-archive__item:last-child {
    border-bottom: 0;
}
.fp-post-archive__item:hover {
    color: hsl(var(--fp-primary));
}
.fp-post-archive__item-icon {
    color: hsl(var(--fp-primary) / 0.5);
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.fp-post-archive__item-icon svg,
.fp-post-archive__item-arrow svg {
    width: 1rem;
    height: 1rem;
}
.fp-post-archive__item-title {
    font-size: 0.9375rem;
    line-height: 1.5;
}
@media (min-width: 768px) { .fp-post-archive__item-title { font-size: 1rem; } }
.fp-post-archive__item-arrow {
    margin-left: auto;
    color: hsl(var(--fp-muted-foreground) / 0.7);
    transition: transform 0.2s, color 0.2s;
    flex-shrink: 0;
}
.fp-post-archive__item:hover .fp-post-archive__item-arrow {
    color: hsl(var(--fp-primary));
    transform: translateX(2px);
}

.fp-post-template__placeholder {
    padding: 2rem;
    border: 1px dashed hsl(var(--fp-border));
    border-radius: 1rem;
    background: #fff;
    color: hsl(var(--fp-muted-foreground));
}
.fp-post-template {
    background: hsl(var(--fp-background));
}
.fp-post-template__hero {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, hsl(var(--fp-primary)) 0%, hsl(var(--fp-primary)) 58%, rgba(12, 106, 74, 0.82) 100%);
}
.fp-post-template__hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.1), transparent);
    pointer-events: none;
}
.fp-post-template__hero-inner {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 75rem;
    margin: 0 auto;
    padding: 4.5rem 1rem 1.5rem;
}
@media (min-width: 768px) { .fp-post-template__hero-inner { padding: 5rem 1.5rem 1.75rem; } }
.fp-post-template__breadcrumbs {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    min-width: 0;
    color: rgba(247,242,235,0.5);
    font-size: 0.75rem;
    line-height: 1.2;
}
@media (min-width: 768px) { .fp-post-template__breadcrumbs { font-size: 0.875rem; } }
.fp-post-template__breadcrumbs a,
.fp-post-template__breadcrumbs span {
    color: inherit;
    white-space: nowrap;
}
.fp-post-template__breadcrumbs a:hover {
    color: hsl(var(--fp-primary-foreground));
    text-decoration: none;
}
.fp-post-template__breadcrumbs svg {
    width: 0.875rem;
    height: 0.875rem;
}
.fp-post-template__breadcrumbs > span:last-child {
    color: rgba(247,242,235,0.8);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.fp-post-template__title {
    margin: 0;
    padding: 2rem 0;
    color: hsl(var(--fp-primary-foreground));
    font-size: 2.2rem;
    line-height: 1.05;
    font-weight: 800;
}
@media (min-width: 768px) { .fp-post-template__title { font-size: 3.2rem; padding: 2.25rem 0; } }
.fp-post-template__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.75rem;
    color: hsl(var(--fp-primary-foreground));
    font-size: 0.875rem;
    line-height: 1.25;
}
.fp-post-template__meta-label {
    display: inline-flex;
    align-items: center;
    color: rgba(247,242,235,0.6);
    font-size: 0.75rem;
    line-height: 1.25;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.fp-post-template__meta-author {
    display: inline-flex;
    align-items: center;
    font-weight: 700;
    line-height: 1.25;
}
.fp-post-template__meta-divider {
    align-self: center;
    color: rgba(247,242,235,0.3);
    display: none;
    line-height: 1.25;
}
@media (min-width: 768px) { .fp-post-template__meta-divider { display: inline; } }
.fp-post-template__review-link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: rgba(247,242,235,0.7);
    text-decoration: none;
    line-height: 1.25;
}
.fp-post-template__review-link:hover {
    color: rgba(247,242,235,0.7);
}
.fp-post-template__review-link svg {
    display: block;
    width: 0.875rem;
    height: 0.875rem;
    flex: 0 0 0.875rem;
}
.fp-post-template__updated-row {
    width: 100%;
    max-width: 75rem;
    margin: 0 auto;
    padding: 0 1rem;
}
@media (min-width: 768px) { .fp-post-template__updated-row { padding: 0 1.5rem; } }
.fp-post-template__updated-inner {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 1rem 0;
    color: hsl(var(--fp-muted-foreground));
    font-size: 0.75rem;
    line-height: 1.5;
}
.fp-post-template__updated-inner svg {
    display: block;
    width: 0.875rem;
    height: 0.875rem;
    flex: 0 0 0.875rem;
    overflow: visible;
}
.fp-post-template__mobile-toc-shell {
    width: 100%;
    max-width: 75rem;
    margin: 0 auto;
    padding: 0 1rem 1rem;
}
@media (min-width: 1024px) { .fp-post-template__mobile-toc-shell { display: none; } }
.fp-post-template button.fp-post-template__mobile-toggle,
.fp-post-template button[type="button"].fp-post-template__mobile-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 0.75rem 1rem !important;
    border: 1px solid hsl(var(--fp-border)) !important;
    border-radius: 0.75rem !important;
    background: #fff !important;
    color: hsl(var(--fp-foreground)) !important;
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    font-family: inherit !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    box-shadow: none !important;
    outline: none !important;
    text-decoration: none !important;
}
.fp-post-template__mobile-toggle-label {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}
.fp-post-template__mobile-toggle-label svg,
.fp-post-template__mobile-toggle-icon svg,
.fp-post-template__sidebar-title svg {
    width: 1rem;
    height: 1rem;
    color: hsl(var(--fp-primary));
}
.fp-post-template__mobile-toggle-icon {
    color: hsl(var(--fp-muted-foreground));
    transition: transform 0.2s ease;
}
.fp-post-template__mobile-toggle[aria-expanded="true"] .fp-post-template__mobile-toggle-icon {
    transform: rotate(180deg);
}
.fp-post-template__mobile-nav {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    margin-top: 0.25rem;
    padding: 0.5rem;
    border: 1px solid hsl(var(--fp-border));
    border-radius: 0.75rem;
    background: #fff;
}
.fp-post-template__content-shell {
    width: 100%;
    max-width: 84rem;
    margin: 0 auto;
    padding: 0 0 3rem;
    background: hsl(var(--fp-background));
}
.fp-post-template__content-inner {
    padding: 0 0;
}
@media (min-width: 768px) { .fp-post-template__content-inner { padding: 0 1.5rem 4rem; } }
@media (min-width: 1024px) {
    .fp-post-template__content-shell {
        max-width: none;
    }

    .fp-post-template__content-inner {
        padding-left: max(1.5rem, calc((100vw - 75rem) / 2 + 1.5rem));
        padding-right: max(1.5rem, calc((100vw - 84rem) / 2 + 1.5rem));
    }
}
.fp-post-template__layout {
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
}
@media (min-width: 1024px) {
    .fp-post-template__layout {
        flex-direction: row;
        gap: 3.5rem;
        align-items: flex-start;
    }
}
.fp-post-template__main {
    flex: 1 1 auto;
    min-width: 0;
    max-width: none;
}
@media (min-width: 768px) { .fp-post-template__main { max-width: 50rem; } }
.fp-post-template__content-card {
    background: #fff;
    border-radius: 1rem;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
    padding: 1.75rem 1.25rem 2rem;
}
@media (min-width: 768px) {
    .fp-post-template__content-card {
        padding: 3.5rem 3.25rem;
    }
}
.fp-post-template__article {
    background: transparent;
    padding: 0;
}
.fp-post-template__article .alignfull,
.fp-post-template__article .alignwide,
.fp-post-template__article [class*="wp-block-uagb-container"],
.fp-post-template__article [class*="uagb-block-"] {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}
.fp-post-template__article h2 {
    margin: 0 0 1.25rem;
    padding-left: 1rem;
    border-left: 4px solid hsl(var(--fp-primary));
    color: #1a1a1a;
    font-size: 1.5rem;
    line-height: 1.25;
    font-weight: 700;
    scroll-margin-top: 8.5rem;
}
@media (min-width: 768px) { .fp-post-template__article h2 { font-size: 1.875rem; } }
.fp-post-template__article h3 {
    margin: 1.5rem 0 0.75rem;
    color: #1a1a1a;
    font-size: 1.125rem;
    line-height: 1.35;
    font-weight: 600;
}
@media (min-width: 768px) { .fp-post-template__article h3 { font-size: 1.25rem; } }
.fp-post-template__article p {
    margin: 0 0 1rem;
    color: #2d2d2d;
    font-size: 1rem;
    line-height: 1.75;
}
@media (min-width: 768px) { .fp-post-template__article p { font-size: 1.125rem; } }
.fp-post-template__article ul {
    margin: 0 0 1.25rem;
    padding-left: 1.5rem;
}
.fp-post-template__article li {
    margin-bottom: 0.5rem;
    color: #2d2d2d;
    font-size: 1rem;
    line-height: 1.75;
}
@media (min-width: 768px) { .fp-post-template__article li { font-size: 1.125rem; } }
.fp-post-template__article strong {
    color: #1a1a1a;
    font-weight: 600;
}
.fp-post-template__article a {
    color: #2563eb;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.fp-post-template__article a:hover {
    color: #1d4ed8;
}
.fp-post-template__article img {
    max-width: 100%;
    height: auto;
}
.fp-post-template__article .wp-block-uagb-image__figure {
    margin: 2rem 0;
    text-align: center;
}
.fp-post-template__article .wp-block-uagb-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin: 1.5rem 0;
}
.fp-post-template__article .uagb-buttons-repeater {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
    padding: 0.8rem 1.5rem;
    border-radius: 9999px;
    background: hsl(var(--fp-primary));
    color: hsl(var(--fp-primary-foreground)) !important;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none !important;
    box-shadow: 0 4px 20px hsl(var(--fp-primary) / 0.28);
}
.fp-post-template__article .uagb-button__link {
    color: inherit;
}
.fp-post-template__article .plan-wrap {
    margin: 1.5rem 0;
    color: #2d2d2d;
}
.fp-post-template__article .plan-section {
    margin: 0 0 1rem;
    padding: 1rem 1.25rem;
    border: 1px solid hsl(var(--fp-border));
    border-radius: 0.75rem;
    background: hsl(var(--fp-muted) / 0.55);
}
.fp-post-template__article .plan-checklist {
    list-style: none;
    margin: 0;
    padding: 0;
}
.fp-post-template__article .plan-checklist li {
    display: flex;
    gap: 0.6rem;
    align-items: flex-start;
}
.fp-post-template__article .plan-checklist input[type="checkbox"] {
    width: 1.1rem;
    height: 1.1rem;
    margin-top: 0.35rem;
    accent-color: hsl(var(--fp-primary));
}
.fp-post-template__image-wrap {
    display: flex;
    justify-content: center;
    margin: 2rem 0;
}
.fp-post-template__inline-image {
    display: block;
    width: 100% !important;
    max-width: 20rem !important;
    height: auto !important;
    border-radius: 0.75rem;
}
.fp-blog-inline-cta {
    position: relative;
    overflow: hidden;
    margin: 2.5rem 0;
    border-radius: 1rem;
    background: linear-gradient(135deg, hsl(var(--fp-primary)) 0%, hsl(var(--fp-primary)) 58%, rgba(12, 106, 74, 0.82) 100%);
    box-shadow: 0 8px 40px rgba(12, 106, 74, 0.3);
}
.fp-blog-inline-cta::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at top right, rgba(255,255,255,0.12), transparent 60%);
    pointer-events: none;
}
.fp-blog-inline-cta__inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    align-items: flex-start;
    padding: 2rem;
}
.fp-blog-inline-cta__header {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
}
@media (min-width: 768px) {
    .fp-blog-inline-cta__header {
        flex-direction: row;
        align-items: center;
    }
}
.fp-blog-inline-cta__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    min-width: 2.5rem;
    border-radius: 9999px;
    background: rgba(255,255,255,0.15);
    color: hsl(var(--fp-primary-foreground));
}
.fp-blog-inline-cta__icon svg {
    width: 1.25rem;
    height: 1.25rem;
}
.fp-blog-inline-cta__title {
    margin: 0;
    color: hsl(var(--fp-primary-foreground));
    font-size: 1.5rem;
    line-height: 1.2;
    font-weight: 700;
}
.fp-blog-inline-cta__copy {
    margin: 0;
    color: hsl(var(--fp-primary-foreground)) !important;
    font-size: 1rem !important;
    line-height: 1.75 !important;
    max-width: 34rem;
}
.fp-blog-inline-cta__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 0.25rem;
    padding: 0.875rem 1.75rem;
    border-radius: 9999px;
    background: #fff;
    color: hsl(var(--fp-primary)) !important;
    font-size: 0.9375rem;
    font-weight: 700;
    text-decoration: none !important;
    box-shadow: 0 10px 24px rgba(0,0,0,0.15);
}
.fp-blog-inline-cta__link svg {
    width: 1.25rem;
    height: 1.25rem;
    transition: transform 0.3s ease;
}
.fp-blog-inline-cta__link:hover svg {
    transform: translateX(4px);
}
.fp-post-template__faq {
    margin-top: 3rem;
    padding-top: 2.5rem;
    border-top: 1px solid hsl(var(--fp-border) / 0.6);
}
.fp-post-template__faq h2 {
    margin: 0 0 1.25rem;
    padding-left: 1rem;
    border-left: 4px solid hsl(var(--fp-primary));
    color: #1a1a1a;
    font-size: 1.5rem;
    line-height: 1.25;
    font-weight: 700;
}
@media (min-width: 768px) { .fp-post-template__faq h2 { font-size: 1.875rem; } }
.fp-post-template__faq-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.fp-post-template__faq-item {
    border: 1px solid hsl(var(--fp-border) / 0.6);
    border-radius: 1rem;
    background: hsl(var(--fp-background));
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
    overflow: hidden;
}
.fp-post-template__faq-item summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    list-style: none;
    cursor: pointer;
    padding: 1rem 1.25rem;
}
.fp-post-template__faq-item summary::-webkit-details-marker { display: none; }
.fp-post-template__faq-item h3 {
    margin: 0;
    color: #1a1a1a;
    font-size: 0.95rem;
    line-height: 1.6;
    font-weight: 700;
}
.fp-post-template__faq-item summary span {
    transition: transform 0.2s ease;
    flex-shrink: 0;
}
.fp-post-template__faq-item[open] summary span {
    transform: rotate(180deg);
}
.fp-post-template__faq-item summary svg {
    width: 1rem;
    height: 1rem;
}
.fp-post-template__faq-answer {
    padding: 0 1.25rem 1rem;
}
.fp-post-template__faq-answer p {
    margin: 0;
    color: #1a1a1a;
    font-size: 0.9375rem;
    line-height: 1.7;
}
.fp-post-template__bottom-cta {
    margin-top: 3rem;
    max-width: 50rem;
}
.fp-post-template__bottom-cta-card {
    background: #fff;
    border-radius: 1rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 2.5rem 1.5rem;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
    text-align: center;
}
@media (min-width: 768px) { .fp-post-template__bottom-cta-card { padding: 3.5rem 3rem; } }
.fp-post-template__bottom-cta-card h2 {
    margin: 0;
    color: #000;
    font-size: clamp(1.4rem, 2.5vw, 1.9rem);
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: 0;
}
.fp-post-template__bottom-cta-card h2 span {
    color: hsl(var(--fp-primary));
}
.fp-post-template__bottom-cta-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    max-width: 100%;
    margin-top: 2rem;
    padding: 1rem 2.5rem;
    border-radius: 9999px;
    background: hsl(var(--fp-primary));
    color: hsl(var(--fp-primary-foreground));
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-decoration: none;
    box-shadow: 0 4px 20px rgba(12, 106, 74, 0.35);
    transition: transform 0.3s ease-out, box-shadow 0.3s ease-out;
}
@media (min-width: 640px) {
    .fp-post-template__bottom-cta-link {
        width: auto;
    }
}
.fp-post-template__bottom-cta-link:hover {
    color: hsl(var(--fp-primary-foreground));
    transform: scale(1.03);
    box-shadow: 0 6px 30px rgba(12, 106, 74, 0.5);
}
.fp-post-template__bottom-cta-link svg {
    width: 1.25rem;
    height: 1.25rem;
    transition: transform 0.3s ease;
}
.fp-post-template__bottom-cta-link:hover svg {
    transform: translateX(4px);
}
.fp-post-template__bottom-cta-list {
    display: inline-flex;
    flex-direction: column;
    gap: 0.75rem;
    margin: 2rem auto 0;
    padding: 0;
    text-align: left;
    list-style: none;
}
.fp-post-template__bottom-cta-list li:last-child {
    margin-bottom: 0;
}
.fp-post-template__bottom-cta-list li {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: hsl(var(--fp-foreground));
    font-weight: 500;
}
.fp-post-template__bottom-cta-list li > span:first-child {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 9999px;
    background: hsl(var(--fp-primary) / 0.15);
    color: hsl(var(--fp-primary));
    flex-shrink: 0;
}
.fp-post-template__bottom-cta-list svg {
    width: 0.875rem;
    height: 0.875rem;
}
.fp-post-template__sidebar {
    display: none;
    width: 22rem;
    flex: 0 0 22rem;
    align-self: stretch;
    position: relative;
}
@media (min-width: 1024px) { .fp-post-template__sidebar { display: block; } }
.fp-post-template__sidebar-sticky {
    position: sticky;
    top: 7rem;
    align-self: flex-start;
    max-height: calc(100vh - 8rem);
    overflow-y: auto;
    overflow-x: hidden;
}
.fp-post-template__sidebar-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0 0 1rem;
    color: hsl(var(--fp-foreground));
    font-size: 0.875rem;
    line-height: 1;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.fp-post-template__sidebar-nav,
.fp-post-template__mobile-nav {
    display: flex;
    flex-direction: column;
}
.fp-post-template button.fp-post-template__toc-button,
.fp-post-template button[type="button"].fp-post-template__toc-button {
    border: 0 !important;
    background: transparent !important;
    color: hsl(var(--fp-muted-foreground)) !important;
    text-align: left;
    padding: 0.4rem 0.75rem !important;
    font-size: 0.875rem !important;
    line-height: 1.4;
    border-radius: 0.5rem !important;
    transition: background-color 0.2s, color 0.2s, border-color 0.2s;
    font-family: inherit !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    box-shadow: none !important;
    outline: none !important;
    text-decoration: none !important;
    width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
}
.fp-post-template button.fp-post-template__toc-button:hover,
.fp-post-template button[type="button"].fp-post-template__toc-button:hover {
    background: hsl(var(--fp-muted) / 0.5) !important;
    color: hsl(var(--fp-foreground)) !important;
}
.fp-post-template button.fp-post-template__toc-button.is-active,
.fp-post-template button[type="button"].fp-post-template__toc-button.is-active {
    background: hsl(var(--fp-primary) / 0.1) !important;
    color: hsl(var(--fp-primary)) !important;
    font-weight: 500;
}
@media (min-width: 1024px) {
    .fp-post-template__toc-button.is-active {
        border-left: 2px solid hsl(var(--fp-primary));
        border-top-left-radius: 0;
        border-bottom-left-radius: 0;
    }
}

.blog-table-wrapper {
    margin: 1.5rem 0;
    max-width: 100%;
    overflow: visible;
    border: none;
    border-radius: 0;
    background: transparent;
}
.blog-table-wrapper::after {
    display: none !important;
}
.blog-table {
    width: 100%;
    min-width: 0;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.9rem;
    line-height: 1.6;
}
.blog-table thead {
    display: none;
}
.blog-table tbody {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}
.blog-table tbody tr,
.blog-table tbody tr:nth-child(even),
.blog-table tbody tr:hover,
.blog-table tbody tr:nth-child(even):hover {
    display: block;
    background: #FFFFFF !important;
    border: 1px solid hsl(var(--fp-border));
    border-radius: 0.75rem;
    overflow: hidden;
}
.blog-table td {
    display: block;
    width: 100% !important;
    min-width: 0 !important;
    padding: 0.625rem 1rem;
    color: #000000;
    background: #FFFFFF !important;
    border: 0;
    border-bottom: 1px solid hsl(var(--fp-border) / 0.5);
    font-size: 0.9rem;
    vertical-align: top;
}
.blog-table td:hover {
    background: #FFFFFF !important;
}
.blog-table td:last-child {
    border-bottom: none;
}
.blog-table td:first-child,
.blog-table td:first-child:hover {
    background: #f3f3f3 !important;
    color: #000000;
    padding: 0.75rem 1rem;
    font-weight: 600;
    border-bottom: none;
}
.blog-table td:first-child strong {
    color: #000000;
}
.blog-table td::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 0.2rem;
    color: hsl(var(--fp-muted-foreground));
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
.blog-table td:first-child::before {
    color: #000000;
    opacity: 0.7;
}
.blog-table td[data-label=""]::before,
.blog-table td:not([data-label])::before {
    display: none;
}
