@import url("https://fonts.googleapis.com/css2?family=Instrument+Serif:wght@400&display=swap");

:root {
    --forest-bg: #f3f0e8;
    --forest-surface: rgba(251, 248, 241, 0.95);
    --forest-surface-strong: #fbf8f1;
    --forest-surface-soft: #ece5d9;
    --forest-border: #d7d0c2;
    --forest-text: #16211f;
    --forest-muted: #526560;
    --forest-soft-text: #61706d;
    --forest-quiet: #8b8a7b;
    --forest-primary: #173a36;
    --forest-primary-2: #21504b;
    --forest-accent: #d7a64a;
    --forest-accent-2: #e0b767;
    --forest-light: #f7f3ea;
    --forest-sweep-duration: 1.9s;
    --forest-sweep-ease: cubic-bezier(.25,.1,.25,1);
}

body.site-forest {
    background:
        radial-gradient(circle at top left, rgba(215, 166, 74, 0.14), transparent 24%),
        radial-gradient(circle at bottom right, rgba(23, 58, 54, 0.09), transparent 24%),
        var(--forest-bg);
    color: var(--forest-text);
}

body.site-forest a {
    color: var(--forest-primary);
}

body.site-forest a:hover {
    color: var(--forest-primary-2);
}

body.site-forest nav {
    background: rgba(23, 58, 54, 0.92);
    backdrop-filter: blur(24px) saturate(1.2);
    border-bottom: 1px solid rgba(215, 166, 74, 0.22);
    box-shadow: 0 16px 40px rgba(23, 58, 54, 0.12);
}

body.site-forest .nav-logo {
    color: var(--forest-light) !important;
}

body.site-forest .nav-logo span {
    color: var(--forest-accent) !important;
}

body.site-forest .nav-links a {
    color: rgba(247, 243, 234, 0.78);
}

body.site-forest .nav-links a:hover {
    color: var(--forest-accent);
}

body.site-forest .nav-links a.btn-nav,
body.site-forest .btn-nav {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: linear-gradient(135deg, var(--forest-primary), var(--forest-primary-2)) !important;
    color: var(--forest-light) !important;
    box-shadow: 0 14px 28px rgba(23, 58, 54, 0.18);
    border: 1px solid rgba(255, 244, 219, 0.35);
    transition: box-shadow 0.35s, transform 0.25s;
}

body.site-forest .nav-links a.btn-nav:hover,
body.site-forest .btn-nav:hover {
    box-shadow: 0 18px 38px rgba(23, 58, 54, 0.24);
    color: var(--forest-light) !important;
}

body.site-forest .nav-links a.btn-nav::before,
body.site-forest .btn-nav::before {
    content: "";
    position: absolute;
    inset: -1px;
    background: linear-gradient(115deg, transparent 22%, rgba(247, 243, 234, 0.06) 35%, rgba(215, 166, 74, 0.78) 49%, rgba(247, 243, 234, 0.08) 62%, transparent 76%);
    transform: translateX(130%) skewX(-24deg);
    transform-origin: center;
    transition: transform var(--forest-sweep-duration) var(--forest-sweep-ease);
    pointer-events: none;
    z-index: -1;
}

body.site-forest .nav-links a.btn-nav:hover::before,
body.site-forest .btn-nav:hover::before {
    transform: translateX(-135%) skewX(-24deg);
}

body.site-forest .nav-links a.btn-logout {
    background: rgba(247, 243, 234, 0.08);
    color: rgba(247, 243, 234, 0.8) !important;
    border-color: rgba(247, 243, 234, 0.18);
}

body.site-forest .nav-links a.btn-logout:hover {
    color: var(--forest-light) !important;
    border-color: var(--forest-accent);
}

body.site-forest footer {
    background: transparent;
    border-top: 1px solid rgba(23, 58, 54, 0.08);
}

body.site-forest footer p {
    color: var(--forest-quiet);
}

body.site-forest footer a {
    color: var(--forest-soft-text) !important;
}

body.site-forest footer a:hover {
    color: var(--forest-primary) !important;
}

body.site-forest.landing-page .bg-mesh {
    background:
        radial-gradient(ellipse 620px 420px at 8% 8%, rgba(215, 166, 74, 0.13) 0%, transparent 70%),
        radial-gradient(ellipse 520px 360px at 84% 62%, rgba(23, 58, 54, 0.1) 0%, transparent 70%),
        radial-gradient(ellipse 420px 280px at 52% 92%, rgba(215, 166, 74, 0.08) 0%, transparent 70%);
}

body.site-forest.landing-page .hero {
    max-width: 1180px;
    min-height: auto;
    margin: 124px auto 56px;
    padding: 56px 36px 44px;
    border-radius: 36px;
    background: linear-gradient(145deg, #173a36, #204744 62%, #315b55);
    border: 1px solid rgba(215, 166, 74, 0.28);
    box-shadow: 0 28px 70px rgba(23, 58, 54, 0.2);
}

body.site-forest.landing-page .badge {
    background: rgba(247, 243, 234, 0.1);
    border: 1px solid rgba(247, 243, 234, 0.14);
    color: var(--forest-light);
}

body.site-forest.landing-page .badge i {
    color: var(--forest-accent);
}

body.site-forest.landing-page h1 {
    font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif !important;
    font-weight: 800 !important;
    letter-spacing: -0.04em !important;
    color: var(--forest-light);
}

body.site-forest.landing-page h1 span {
    background: linear-gradient(135deg, var(--forest-light) 0%, var(--forest-accent) 88%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

body.site-forest.landing-page .hero p {
    max-width: 640px;
    color: rgba(247, 243, 234, 0.8);
}

body.site-forest.landing-page .btn-primary {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: linear-gradient(135deg, var(--forest-accent), var(--forest-accent-2));
    color: #18312d;
    box-shadow: 0 16px 36px rgba(23, 58, 54, 0.18);
    transition: box-shadow 0.35s, transform 0.25s;
}

body.site-forest.landing-page .btn-primary:hover {
    color: #18312d;
    box-shadow: 0 22px 42px rgba(23, 58, 54, 0.24);
}

body.site-forest.landing-page .btn-primary::before {
    content: "";
    position: absolute;
    inset: -1px;
    background: linear-gradient(115deg, transparent 22%, rgba(247, 243, 234, 0.04) 35%, rgba(23, 58, 54, 0.42) 49%, rgba(247, 243, 234, 0.05) 62%, transparent 76%);
    transform: translateX(130%) skewX(-24deg);
    transform-origin: center;
    transition: transform var(--forest-sweep-duration) var(--forest-sweep-ease);
    pointer-events: none;
    z-index: -1;
}

body.site-forest.landing-page .btn-primary:hover::before {
    transform: translateX(-135%) skewX(-24deg);
}

body.site-forest.landing-page .btn-secondary {
    background: rgba(247, 243, 234, 0.08);
    color: var(--forest-light);
    border: 1px solid rgba(247, 243, 234, 0.18);
}

body.site-forest.landing-page .btn-secondary:hover {
    background: rgba(247, 243, 234, 0.12);
    color: var(--forest-light);
    border-color: rgba(247, 243, 234, 0.24);
}

body.site-forest.landing-page .stats-bar {
    margin-top: 52px;
}

body.site-forest.landing-page .stat,
body.site-forest.landing-page .feature-card,
body.site-forest.landing-page .step,
body.site-forest.landing-page .testimonial-card,
body.site-forest.landing-page .pricing-card {
    background: var(--forest-surface);
    border: 1px solid var(--forest-border);
    box-shadow: 0 8px 24px rgba(23, 58, 54, 0.06);
}

body.site-forest.landing-page .stat-number {
    background: none;
    -webkit-text-fill-color: initial;
    color: var(--forest-primary);
}

body.site-forest.landing-page .stat-label,
body.site-forest.landing-page .pricing-card .period,
body.site-forest.landing-page .pricing-card .price-note,
body.site-forest.landing-page .footer-tagline {
    color: var(--forest-quiet);
}

body.site-forest.landing-page .section-alt {
    background: rgba(236, 229, 217, 0.8);
}

body.site-forest.landing-page .section-testimonials {
    background: linear-gradient(180deg, #e8dfd0, #ece5d9);
}

body.site-forest.landing-page .section-title h2,
body.site-forest.landing-page .cta-section h2,
body.site-forest.landing-page .pricing-card .price,
body.site-forest.landing-page .feature-card h3,
body.site-forest.landing-page .step-content h3,
body.site-forest.landing-page .testimonial-author {
    color: var(--forest-primary);
}

body.site-forest.landing-page .section-title h2::after,
body.site-forest.landing-page .pricing-badge-annual {
    background: linear-gradient(90deg, var(--forest-accent), var(--forest-accent-2));
}

body.site-forest.landing-page .section-title p,
body.site-forest.landing-page .feature-card p,
body.site-forest.landing-page .step-content p,
body.site-forest.landing-page .testimonial-role,
body.site-forest.landing-page .pricing-card li,
body.site-forest.landing-page .cta-section p {
    color: var(--forest-soft-text);
}

body.site-forest.landing-page .feature-card:hover,
body.site-forest.landing-page .step:hover,
body.site-forest.landing-page .pricing-card:hover,
body.site-forest.landing-page .stat:hover {
    border-color: rgba(215, 166, 74, 0.24);
    box-shadow: 0 16px 36px rgba(23, 58, 54, 0.1);
}

body.site-forest.landing-page .feature-icon,
body.site-forest.landing-page .quote-icon,
body.site-forest.landing-page .testimonial-avatar {
    border-color: rgba(23, 58, 54, 0.08);
}

body.site-forest.landing-page .quote-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    border-radius: 18px;
    margin-bottom: 20px;
    background: linear-gradient(145deg, rgba(23, 58, 54, 0.14), rgba(215, 166, 74, 0.22));
    box-shadow: inset 0 0 0 1px rgba(215, 166, 74, 0.18);
}

body.site-forest.landing-page .fi-blue,
body.site-forest.landing-page .fi-indigo,
body.site-forest.landing-page .fi-teal,
body.site-forest.landing-page .fi-rose,
body.site-forest.landing-page .fi-emerald {
    background: linear-gradient(135deg, rgba(23, 58, 54, 0.12), rgba(33, 80, 75, 0.05));
}

body.site-forest.landing-page .fi-blue i,
body.site-forest.landing-page .fi-indigo i,
body.site-forest.landing-page .fi-teal i,
body.site-forest.landing-page .fi-rose i,
body.site-forest.landing-page .fi-emerald i {
    color: var(--forest-primary);
}

body.site-forest.landing-page .fi-gold {
    background: linear-gradient(135deg, rgba(215, 166, 74, 0.18), rgba(224, 183, 103, 0.08));
}

body.site-forest.landing-page .fi-gold i,
body.site-forest.landing-page .quote-icon i,
body.site-forest.landing-page .testimonial-badge i,
body.site-forest.landing-page .pricing-card li i {
    color: var(--forest-accent);
}

body.site-forest.landing-page .step-number,
body.site-forest.landing-page .testimonial-avatar,
body.site-forest.landing-page .quote-icon {
    background: linear-gradient(180deg, var(--forest-primary), var(--forest-accent));
}

body.site-forest.landing-page .testimonial-badge {
    background: #e7d4a8;
    color: #654817;
}

body.site-forest.landing-page .pricing-toggle {
    background: #e3dacb;
}

body.site-forest.landing-page .pricing-toggle button {
    color: var(--forest-soft-text);
}

body.site-forest.landing-page .pricing-toggle button.active {
    background: var(--forest-surface-strong);
    color: var(--forest-primary);
}

body.site-forest.landing-page .pricing-card.featured {
    background: linear-gradient(145deg, #173a36, #204744 62%, #315b55);
    border: 1px solid rgba(215, 166, 74, 0.3);
    box-shadow: 0 24px 48px rgba(23, 58, 54, 0.18);
}

body.site-forest.landing-page .pricing-card.featured .period,
body.site-forest.landing-page .pricing-card.featured .price,
body.site-forest.landing-page .pricing-card.featured .price-note,
body.site-forest.landing-page .pricing-card.featured li {
    color: var(--forest-light);
}

body.site-forest.landing-page .pricing-card.featured li i {
    color: var(--forest-accent);
}

body.site-forest.landing-page .btn-pricing.primary {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: linear-gradient(135deg, var(--forest-accent), var(--forest-accent-2));
    color: #18312d;
    transition: box-shadow 0.35s, transform 0.25s;
}

body.site-forest.landing-page .btn-pricing.primary::before {
    content: "";
    position: absolute;
    inset: -1px;
    background: linear-gradient(115deg, transparent 22%, rgba(247, 243, 234, 0.04) 35%, rgba(23, 58, 54, 0.42) 49%, rgba(247, 243, 234, 0.05) 62%, transparent 76%);
    transform: translateX(130%) skewX(-24deg);
    transform-origin: center;
    transition: transform var(--forest-sweep-duration) var(--forest-sweep-ease);
    pointer-events: none;
    z-index: -1;
}

body.site-forest.landing-page .btn-pricing.primary:hover::before {
    transform: translateX(-135%) skewX(-24deg);
}

body.site-forest.landing-page .btn-pricing.outline {
    color: var(--forest-primary);
    border-color: rgba(23, 58, 54, 0.14);
}

body.site-forest.landing-page .btn-pricing.outline:hover {
    border-color: rgba(215, 166, 74, 0.28);
    background: rgba(215, 166, 74, 0.08);
}

body.site-forest.landing-page .cta-section {
    max-width: 1180px;
    margin: 0 auto 56px;
    border-radius: 36px;
    background: linear-gradient(145deg, #173a36, #204744 62%, #315b55);
    box-shadow: 0 28px 70px rgba(23, 58, 54, 0.14);
}

body.site-forest.landing-page .cta-section h2,
body.site-forest.landing-page .cta-section p {
    color: var(--forest-light);
}

body.site-forest.landing-page .cta-section .btn-primary {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: linear-gradient(135deg, var(--forest-primary), var(--forest-primary-2));
    color: var(--forest-light);
    border: 1px solid rgba(255, 244, 219, 0.16);
    box-shadow: 0 18px 38px rgba(8, 22, 20, 0.22);
    transition: box-shadow 0.35s, transform 0.25s;
}

body.site-forest.landing-page .cta-section .btn-primary:hover {
    color: var(--forest-light);
    box-shadow: 0 22px 44px rgba(8, 22, 20, 0.28);
}

body.site-forest.landing-page .cta-section .btn-primary::before {
    content: "";
    position: absolute;
    inset: -1px;
    background: linear-gradient(115deg, transparent 22%, rgba(247, 243, 234, 0.06) 35%, rgba(215, 166, 74, 0.78) 49%, rgba(247, 243, 234, 0.08) 62%, transparent 76%);
    transform: translateX(130%) skewX(-24deg);
    transform-origin: center;
    transition: transform var(--forest-sweep-duration) var(--forest-sweep-ease);
    pointer-events: none;
    z-index: -1;
}

body.site-forest.landing-page .cta-section .btn-primary:hover::before {
    transform: translateX(-135%) skewX(-24deg);
}

body.site-forest.landing-page .cta-section .btn-primary i {
    color: var(--forest-accent);
}

body.site-forest.landing-page .brand-inline {
    display: inline-flex;
    align-items: baseline;
    gap: 0;
    color: var(--forest-light);
    font-weight: 800;
    letter-spacing: -0.02em;
}

body.site-forest.landing-page .brand-inline span {
    color: var(--forest-accent);
}

body.site-forest.legal-page .legal-container,
body.site-forest.contact-page .contact-wrapper {
    position: relative;
}

body.site-forest.legal-page .legal-header h1,
body.site-forest.contact-page .contact-wrapper h1 {
    color: var(--forest-text);
}

body.site-forest.legal-page .legal-header h1 span,
body.site-forest.contact-page .contact-wrapper h1 span {
    background: linear-gradient(135deg, var(--forest-primary), var(--forest-accent));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

body.site-forest.legal-page .last-updated,
body.site-forest.contact-page .contact-subtitle,
body.site-forest.contact-page .helper-note,
body.site-forest.contact-page .info-card p,
body.site-forest.contact-page .form-group label,
body.site-forest.legal-page .legal-container p,
body.site-forest.legal-page .legal-container li {
    color: var(--forest-soft-text);
}

body.site-forest.contact-page .contact-form-wrapper,
body.site-forest.contact-page .info-card,
body.site-forest.legal-page .card,
body.site-forest.legal-page .data-table {
    background: var(--forest-surface);
    border: 1px solid var(--forest-border);
    box-shadow: 0 10px 24px rgba(23, 58, 54, 0.06);
}

body.site-forest.legal-page .card:hover,
body.site-forest.contact-page .info-card:hover {
    border-color: rgba(215, 166, 74, 0.24);
    box-shadow: 0 16px 32px rgba(23, 58, 54, 0.1);
}

body.site-forest.legal-page .legal-container h2,
body.site-forest.contact-page .contact-info h2,
body.site-forest.contact-page .contact-form-wrapper h2,
body.site-forest.contact-page .info-card h3 {
    color: var(--forest-primary);
}

body.site-forest.legal-page .legal-container h2 i,
body.site-forest.contact-page .info-icon.ic-gold i,
body.site-forest.contact-page .info-icon.ic-blue i,
body.site-forest.contact-page .info-icon.ic-teal i,
body.site-forest.contact-page .info-icon.ic-indigo i,
body.site-forest.contact-page .info-icon.ic-rose i {
    color: var(--forest-accent);
}

body.site-forest.contact-page .info-icon.ic-blue,
body.site-forest.contact-page .info-icon.ic-gold,
body.site-forest.contact-page .info-icon.ic-teal,
body.site-forest.contact-page .info-icon.ic-indigo,
body.site-forest.contact-page .info-icon.ic-rose {
    background: linear-gradient(135deg, rgba(23, 58, 54, 0.12), rgba(215, 166, 74, 0.08));
}

body.site-forest.contact-page .helper-note,
body.site-forest.legal-page .data-table th {
    background: linear-gradient(135deg, rgba(23, 58, 54, 0.06), rgba(215, 166, 74, 0.08));
    border-color: rgba(23, 58, 54, 0.08);
}

body.site-forest.contact-page .form-group input,
body.site-forest.contact-page .form-group textarea,
body.site-forest.contact-page .form-group select {
    background: #f6f1e5;
    border-color: rgba(23, 58, 54, 0.12);
    color: var(--forest-text);
}

body.site-forest.contact-page .form-group input:focus,
body.site-forest.contact-page .form-group textarea:focus,
body.site-forest.contact-page .form-group select:focus {
    border-color: var(--forest-primary);
    box-shadow: 0 0 0 3px rgba(23, 58, 54, 0.12);
    background: var(--forest-surface-strong);
}

body.site-forest.contact-page .btn-submit {
    background: linear-gradient(135deg, var(--forest-accent), var(--forest-accent-2));
    color: #18312d;
    box-shadow: 0 16px 34px rgba(23, 58, 54, 0.18);
}

body.site-forest.contact-page .btn-submit:hover {
    box-shadow: 0 20px 40px rgba(23, 58, 54, 0.24);
}

body.site-forest.legal-page .data-table th {
    color: var(--forest-primary);
    border-bottom-color: rgba(23, 58, 54, 0.08);
}

body.site-forest.legal-page .data-table td {
    color: var(--forest-soft-text);
    border-bottom-color: rgba(23, 58, 54, 0.05);
}

@media (max-width: 768px) {
    body.site-forest.landing-page .hero {
        margin: 100px 16px 40px;
        padding: 42px 22px 32px;
        border-radius: 28px;
    }

    body.site-forest.landing-page .cta-section {
        margin: 0 16px 40px;
        border-radius: 28px;
    }
}

@media (max-width: 1024px) {
    body.site-forest nav {
        padding: 12px 18px;
    }

    body.site-forest .nav-logo {
        font-size: 19px;
    }

    body.site-forest .nav-links {
        gap: 10px;
    }

    body.site-forest .nav-links a:not(.btn-nav):not(.btn-logout) {
        display: none !important;
    }

    body.site-forest .btn-nav,
    body.site-forest .btn-primary,
    body.site-forest .btn-secondary,
    body.site-forest .btn-pricing,
    body.site-forest.contact-page .btn-submit {
        min-height: 52px;
        border-radius: 16px;
        justify-content: center;
    }

    body.site-forest.landing-page .hero {
        margin: 108px 20px 40px;
        padding: 42px 26px 34px;
    }

    body.site-forest.landing-page .hero p {
        max-width: 100%;
        font-size: 16px;
    }

    body.site-forest.landing-page .hero-buttons {
        width: 100%;
        align-items: stretch;
    }

    body.site-forest.landing-page .hero-buttons .btn-primary,
    body.site-forest.landing-page .hero-buttons .btn-secondary,
    body.site-forest.landing-page .cta-section .btn-primary {
        width: 100%;
    }

    body.site-forest.landing-page .features-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px;
    }

    body.site-forest.landing-page .testimonials-grid,
    body.site-forest.landing-page .pricing-cards,
    body.site-forest.contact-page .contact-grid {
        grid-template-columns: 1fr;
    }

    body.site-forest.landing-page .pricing-card,
    body.site-forest.landing-page .testimonial-card,
    body.site-forest.contact-page .contact-form-wrapper {
        border-radius: 24px;
    }

    body.site-forest.contact-page .contact-wrapper {
        padding: 104px 20px 48px;
    }
}

@media (max-width: 640px) {
    body.site-forest .nav-logo {
        font-size: 18px;
    }

    body.site-forest .nav-links {
        width: auto;
    }

    body.site-forest .nav-links .btn-nav,
    body.site-forest .nav-links .btn-logout {
        padding: 10px 14px;
        font-size: 13px;
        border-radius: 14px;
    }

    body.site-forest.landing-page .hero {
        margin: 96px 14px 28px;
        padding: 34px 18px 26px;
        border-radius: 24px;
    }

    body.site-forest.landing-page h1 {
        font-size: clamp(32px, 10vw, 44px);
        line-height: 1.05;
    }

    body.site-forest.landing-page .hero p,
    body.site-forest.landing-page .cta-section p,
    body.site-forest.contact-page .contact-subtitle {
        font-size: 15px;
    }

    body.site-forest.landing-page .stats-bar {
        gap: 12px;
    }

    body.site-forest.landing-page .stat {
        width: 100%;
        padding: 18px 16px;
        border-radius: 16px;
    }

    body.site-forest.landing-page .features-grid,
    body.site-forest.landing-page .pricing-cards {
        grid-template-columns: 1fr;
    }

    body.site-forest.landing-page .feature-card,
    body.site-forest.landing-page .step,
    body.site-forest.landing-page .testimonial-card,
    body.site-forest.landing-page .pricing-card {
        padding: 22px 18px;
        border-radius: 20px;
    }

    body.site-forest.landing-page .section-alt,
    body.site-forest.landing-page .section-testimonials {
        padding-left: 0;
        padding-right: 0;
    }

    body.site-forest.landing-page .pricing-card .price {
        font-size: 40px;
    }

    body.site-forest.landing-page .cta-section {
        margin: 0 14px 28px;
        padding: 32px 18px;
        border-radius: 24px;
    }

    body.site-forest.contact-page .contact-wrapper {
        padding: 96px 14px 36px;
    }

    body.site-forest.contact-page .contact-form-wrapper {
        padding: 24px 16px;
        border-radius: 20px;
    }

    body.site-forest.contact-page .info-card {
        padding: 16px;
        border-radius: 16px;
    }

    body.site-forest.legal-page .data-table {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }
}
