@font-face {
    font-family: 'Schibsted Grotesk';
    src: url('../Assets/Brand/SchibstedGrotesk-VariableFont_wght.ttf') format('truetype');
    font-weight: 400 900;
    font-style: normal;
}

@font-face {
    font-family: 'Schibsted Grotesk';
    src: url('../Assets/Brand/SchibstedGrotesk-Italic-VariableFont_wght.ttf') format('truetype');
    font-weight: 400 900;
    font-style: italic;
}

:root {
    --dark: #0B1220;
    --surface: #CCCBC1;
    --white: #F4F3E7;
    --black: #05070C;
    --accent: #CE7C59;
    --sage: #C7CAB1;

    --font-main: 'Schibsted Grotesk', sans-serif;
}

html,
body {
    min-height: 100%;
    overflow-y: auto;
    overflow-x: hidden;
}

body {
    background-color: var(--white);
    color: var(--black);
    font-family: var(--font-main);
    margin: 0;
    padding: 40px;
    /* equal padding on all sides */
    box-sizing: border-box;
    opacity: 1;
    transition: opacity 0.4s ease;
}

body.initial-loading {
    opacity: 0 !important;
}

/* Typography rules specified by user */
h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--sage);
    font-family: var(--font-main);
    font-weight: 500;
    margin-top: 0;
}

p {
    color: var(--black);
    font-family: var(--font-main);
    font-weight: 400;
    font-size: 0.8rem;
    /* decreased paragraph size */
    line-height: 1.6;
    margin: 0;
    /* remove default margins for precise alignment */
}

/* Layout - Left Sidebar (Spis treści) and Right Content */
.layout-container {
    display: flex;
    gap: 80px;
    margin: 0;
    min-height: calc(100vh - 80px);
    box-sizing: border-box;
}

/* Logo Video Animation (Intro once, Loop forever) */
.logo-wrapper {
    position: relative;
    width: 322px;
    transform: translateX(-109px);
    aspect-ratio: 4/1;
    margin-bottom: 20px;
    /* space between logo and paragraph */
}

/* Clickable Area Overlay for Logo Text (Calibrated: size 32%, x 34%, y 41%) */
.logo-click-area {
    position: absolute;
    display: block;
    aspect-ratio: 3.5 / 1;
    z-index: 10;
    cursor: pointer;
    box-sizing: border-box;
    width: 32%;
    left: 34%;
    top: 41%;
}

.logo-video {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    display: block;
}

#logoIntro {
    opacity: 1;
    transition: opacity 0.25s ease;
    z-index: 2;
}

#logoLoop {
    opacity: 0;
    transition: opacity 0.25s ease;
    z-index: 1;
}

.sidebar {
    width: 260px;
    /* expanded to prevent text wrapping on long project names */
    flex-shrink: 0;
    /* No borders, background or explicit boundaries as requested */
    display: flex;
    flex-direction: column;
}



/* Reveal transitions for showreels */
.content-area {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 1s cubic-bezier(0.25, 1, 0.5, 1),
                transform 1s cubic-bezier(0.25, 1, 0.5, 1);
}

.mobile-showreel-container {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.8s cubic-bezier(0.25, 1, 0.5, 1),
                transform 0.8s cubic-bezier(0.25, 1, 0.5, 1);
}

/* Footer Copyright Component */
.footer-copyright {
    margin-top: auto;
    margin-bottom: 0;
    padding-top: 30px;
    user-select: none;
}

.footer-copyright p {
    color: var(--surface);
    font-size: 0.8rem;
    font-family: var(--font-main);
    font-weight: 400;
    letter-spacing: 0.03em;
    margin: 0;
}

.sidebar-section {
    margin-top: 30px;
}

.section-title {
    color: var(--surface);
    font-size: 0.9rem;
    /* slightly larger than paragraph */
    font-weight: 400;
    /* same weight as paragraph */
    margin: 0 0 10px 0;
}

.project-list {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.project-btn {
    display: inline-block;
    position: relative;
    color: var(--black);
    font-size: 0.8rem;
    /* styled like a paragraph */
    font-weight: 400;
    /* same weight as paragraph */
    text-decoration: none;
    padding: 1px 4px 1px 4px;
    /* tight border box, custom paddings */
    margin-left: 15px;
    /* offset/indented from the left in default state */
    border-radius: 2px;
    background-color: transparent;
    transition: padding-left 0.35s cubic-bezier(0.25, 1, 0.5, 1), background-color 0.35s ease;
}

.project-btn:hover {
    background-color: var(--surface);
    /* background lights up with surface color */
    padding-left: 18px;
    /* text shifts right by 14px, left edge of background remains aligned to the left */
}

/* Arrow styling inside project button */
.project-arrow {
    position: absolute;
    left: 4px;
    /* aligns with default left padding */
    top: 50%;
    transform: translateY(-50%) translateX(-8px);
    /* hidden to the left */
    width: 8px;
    height: 8px;
    opacity: 0;
    transition: transform 0.35s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.25s ease;
    color: var(--black);
}

.project-btn:hover .project-arrow {
    transform: translateY(-50%) translateX(0);
    /* slides into view in the padding space */
    opacity: 1;
}

.info-list {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
}

.info-item {
    position: relative;
    width: 100%;
    display: flex;
    align-items: center;
}

.info-btn {
    display: inline-block;
    color: var(--black);
    font-size: 0.8rem;
    /* styled like a paragraph */
    font-weight: 400;
    /* same weight as paragraph */
    text-decoration: none;
    padding: 1px 4px;
    /* tight border box around text */
    margin-left: 15px;
    /* offset/indented from the left in default state */
    border-radius: 2px;
    background-color: transparent;
    transition: background-color 0.35s ease;
}

.info-btn:hover {
    background-color: var(--surface);
    /* lights up background with surface color, no shifts */
}

.info-desc {
    position: absolute;
    right: 0;
    font-size: 0.8rem;
    color: var(--sage);
    font-family: var(--font-main);
    font-weight: 400;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.6s ease;
}

.info-item:hover .info-desc {
    opacity: 1;
}

.social-list {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.social-link {
    display: inline-block;
    position: relative;
    color: var(--black);
    font-size: 0.8rem;
    /* styled like a paragraph */
    font-weight: 400;
    /* same weight as paragraph */
    text-decoration: none;
    padding: 1px 0;
    /* close underline placement */
    margin-left: 15px;
    /* aligned/indented under header */
    transition: color 0.3s ease;
}

.social-link:hover {
    color: var(--accent);
    /* text color changes to accent on hover */
}

.social-link::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 1px;
    bottom: 0;
    left: 0;
    background-color: var(--accent);
    transform: scaleX(0);
    transform-origin: right;
    /* collapses to the right on mouse leave */
    transition: transform 0.3s ease;
}

.social-link:hover::after {
    transform: scaleX(1);
    transform-origin: left;
    /* expands from the left on hover */
}

.content-area {
    flex-grow: 1;
    padding-left: 40px;
    /* spacing between sidebar and content */
    padding-top: 80px;
    /* aligns right content vertically with sidebar's lorem ipsum paragraph */
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr;
    align-items: start;
}

/* Dynamic Content Sections */
.content-section {
    grid-column: 1;
    grid-row: 1;
    opacity: 1;
    transition: opacity 0.25s ease;
    /* Exit animation: simple simultaneous fade out */
    visibility: hidden;
    pointer-events: none;
    /* prevent click interception while invisible */
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.content-section:not(.visible) {
    display: none !important;
}

.content-section.visible {
    visibility: visible;
    pointer-events: auto;
}

.content-section.fade-out {
    opacity: 0;
}

/* Entrance Animation Initial State (slide left-to-right + blur + opacity) */
.content-section.visible .animate-item {
    opacity: 0;
    transform: translateX(-15px);
    filter: blur(5px);
    transition: none;
}

/* Specialized transform preservation for rotated down arrows during animation setup */
.content-section.visible .animate-item.arrow-down {
    transform: translateX(-15px) rotate(90deg) !important;
}

/* Entrance Animation Active State (staggered reveal) */
.content-section.active .animate-item {
    opacity: 1;
    transform: translateX(0);
    filter: blur(0);
    transition: opacity 0.45s cubic-bezier(0.25, 1, 0.5, 1),
        transform 0.45s cubic-bezier(0.25, 1, 0.5, 1),
        filter 0.45s cubic-bezier(0.25, 1, 0.5, 1);
}

.content-section.active .animate-item.arrow-down {
    transform: translateX(0) rotate(90deg) !important;
}

/* Stagger delays for up to 10 nested animate-items (faster top-to-bottom sequence) */
.content-section.active .animate-item:nth-child(1) {
    transition-delay: 0.04s;
}

.content-section.active .animate-item:nth-child(2) {
    transition-delay: 0.09s;
}

.content-section.active .animate-item:nth-child(3) {
    transition-delay: 0.14s;
}

.content-section.active .animate-item:nth-child(4) {
    transition-delay: 0.19s;
}

.content-section.active .animate-item:nth-child(5) {
    transition-delay: 0.24s;
}

.content-section.active .animate-item:nth-child(6) {
    transition-delay: 0.29s;
}

.content-section.active .animate-item:nth-child(7) {
    transition-delay: 0.34s;
}

.content-section.active .animate-item:nth-child(8) {
    transition-delay: 0.39s;
}

.content-section.active .animate-item:nth-child(9) {
    transition-delay: 0.44s;
}

.content-section.active .animate-item:nth-child(10) {
    transition-delay: 0.49s;
}

/* Process Roadmap Styling */
.process-step {
    margin-bottom: 25px;
}

.step-title {
    font-size: 0.9rem;
    font-weight: 400;
    color: var(--sage);
    margin: 0 0 6px 0;
    font-family: var(--font-main);
}

.step-text {
    font-size: 0.8rem;
    color: var(--black);
    line-height: 1.5;
    margin: 0;
}

/* Custom Down Arrow positioning inside Process Roadmap */
.arrow-down {
    transform: rotate(90deg) !important;
    display: inline-block;
    position: static !important;
    /* overrides absolute project-arrow */
    opacity: 1 !important;
    /* overrides project-btn hover opacity rules */
    margin: 10px 0 25px 0;
    /* vertical spacing, no shift */
    width: 8px;
    height: 8px;
    color: var(--surface);
    /* elegant muted color matching design tokens */
}

/* Testimonials / Trust Styling */
.testimonial-item {
    margin-bottom: 30px;
}

.testimonial-text {
    font-size: 0.8rem;
    font-style: italic;
    color: var(--black);
    line-height: 1.55;
    margin: 0 0 8px 0;
}

.testimonial-author {
    display: block;
    font-size: 0.8rem;
    /* paragraph size */
    color: var(--surface);
    /* matches label hierarchy */
    font-weight: 400;
}

/* FAQ Accordion Styling */
.faq-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: 20px;
    width: 100%;
}

.faq-item {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.faq-trigger {
    display: flex;
    width: 100%;
    max-width: 290px;
    justify-content: space-between;
    align-items: center;
    background: transparent;
    border: none;
    padding: 1px 4px;
    /* match thin padding of project buttons */
    margin-left: -4px;
    /* offset padding to align text perfectly with left margin */
    border-radius: 2px;
    text-align: left;
    cursor: pointer;
    transition: background-color 0.25s ease;
    gap: 20px;
    box-sizing: border-box;
}

/* Hover background highlight only when NOT open */
.faq-item:not(.open) .faq-trigger:hover {
    background-color: var(--surface);
}

.faq-item.open .faq-trigger {
    background-color: var(--surface);
}

.faq-question {
    font-size: 0.8rem;
    color: var(--black);
    font-weight: 400;
    font-family: var(--font-main);
}

/* Rotated SVG Arrow - always 90deg (pointing down) */
.faq-arrow {
    display: inline-block;
    width: 8px;
    height: 8px;
    color: var(--sage);
    transform: rotate(90deg);
    transition: transform 0.25s cubic-bezier(0.25, 1, 0.5, 1), color 0.25s ease;
    margin-left: 5px;
    flex-shrink: 0;
}

/* Hover effect on arrow: moves down and turns black, ONLY when NOT open */
.faq-item:not(.open) .faq-trigger:hover .faq-arrow {
    transform: rotate(90deg) translate(1.5px, 0);
    color: var(--black);
}

/* When open, arrow stays black and stays at 90deg */
.faq-item.open .faq-arrow {
    color: var(--black);
}

/* Hover effect on arrow when open: moves up */
.faq-item.open .faq-trigger:hover .faq-arrow {
    transform: rotate(90deg) translate(-1.5px, 0);
}

/* Kinetic folding arrow wings */
.wing-right-upper,
.wing-right-lower {
    transform-origin: 10px 5px;
    transform-box: view-box;
    transition: transform 0.35s cubic-bezier(0.25, 1, 0.5, 1);
}

.wing-left-upper,
.wing-left-lower {
    transform-origin: 0.34px 5px;
    transform-box: view-box;
    transition: transform 0.35s cubic-bezier(0.25, 1, 0.5, 1);
}

/* CLOSED STATE (default): right wings open, left wings folded */
.faq-item:not(.open) .wing-right-upper,
#large-arrow-toggle:not(.open) .wing-right-upper {
    transform: rotate(0deg);
}

.faq-item:not(.open) .wing-right-lower,
#large-arrow-toggle:not(.open) .wing-right-lower {
    transform: rotate(0deg);
}

.faq-item:not(.open) .wing-left-upper,
#large-arrow-toggle:not(.open) .wing-left-upper {
    transform: rotate(45deg);
}

.faq-item:not(.open) .wing-left-lower,
#large-arrow-toggle:not(.open) .wing-left-lower {
    transform: rotate(-45deg);
}

/* OPEN STATE: right wings folded, left wings open */
.faq-item.open .wing-right-upper,
#large-arrow-toggle.open .wing-right-upper {
    transform: rotate(-45deg);
}

.faq-item.open .wing-right-lower,
#large-arrow-toggle.open .wing-right-lower {
    transform: rotate(45deg);
}

.faq-item.open .wing-left-upper,
#large-arrow-toggle.open .wing-left-upper {
    transform: rotate(0deg);
}

.faq-item.open .wing-left-lower,
#large-arrow-toggle.open .wing-left-lower {
    transform: rotate(0deg);
}

/* FAQ Answer container transition */
.faq-answer {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.3s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.25s ease;
    width: 0;
    min-width: 100%;
}

.faq-item.open .faq-answer {
    opacity: 1;
}

.faq-answer-text {
    font-size: 0.8rem;
    color: var(--black);
    line-height: 1.6;
    margin: 0;
    padding: 8px 10px 12px 0;
    /* padding-top replaces container's margin-top to keep text static during collapse */
}

.mobile-global-footer {
    display: none;
}

@media (max-width: 768px) {
    html,
    body {
        overflow-y: auto !important;
        overflow-x: hidden !important;
        height: auto !important;
    }

    body {
        padding: 24px;
    }

    .layout-container {
        flex-direction: column;
        gap: 40px;
        height: auto !important;
        margin-top: 0;
    }

    .sidebar {
        width: 100%;
        height: auto !important;
        transition: opacity 0.25s ease; /* No transform shift on sidebar itself */
    }

    .sidebar.sidebar-fade-out {
        opacity: 0 !important;
        pointer-events: none;
    }

    /* Pre-position items for staggered slide-in from left when returning to home */
    .sidebar.sidebar-entering .sidebar-animate-item {
        opacity: 0 !important;
        transform: translateX(-15px) !important;
        transition: none !important;
    }

    /* Transition and stagger delays for sidebar items on mobile */
    .sidebar-animate-item {
        opacity: 1;
        transform: translateX(0);
        transition: opacity 0.4s cubic-bezier(0.25, 1, 0.5, 1),
                    transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
    }

    .sidebar-animate-item:nth-child(2) { transition-delay: 0.05s; }
    .sidebar-animate-item:nth-child(3) { transition-delay: 0.10s; }
    .sidebar-animate-item:nth-child(4) { transition-delay: 0.15s; }
    .sidebar-animate-item:nth-child(5) { transition-delay: 0.20s; }
    .sidebar-animate-item:nth-child(6) { transition-delay: 0.25s; }
    .sidebar-animate-item:nth-child(7) { transition-delay: 0.30s; }
    .sidebar-animate-item:nth-child(8) { transition-delay: 0.35s; }
    .sidebar-animate-item:nth-child(9) { transition-delay: 0.40s; }
    .sidebar-animate-item:nth-child(10) { transition-delay: 0.45s; }

    .mobile-back-container {
        display: block !important;
        margin-bottom: 20px !important;
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
    }

    .mobile-showreel-container {
        display: block !important;
        width: 100% !important;
        margin-top: 5px !important;
        margin-bottom: 20px !important;
    }

    .sidebar-separator {
        margin-top: 0 !important;
        margin-bottom: 20px !important;
    }

    #section-showreel {
        display: none !important;
    }

    .logo-wrapper {
        width: 280px !important;
        transform: translateX(-95px) !important;
        margin-bottom: 20px;
    }

    .content-area {
        padding-left: 0;
        padding-top: 0;
        height: auto !important;
        overflow: visible !important;
    }

    .content-section {
        height: auto !important;
        min-height: auto !important;
        overflow: visible !important;
    }

    .video-container {
        max-height: 30vh !important;
    }

    #section-showreel .video-container {
        max-height: 50vh !important;
    }

    /* Hide sidebar copyright and show global mobile footer */
    .sidebar .footer-copyright {
        display: none !important;
    }

    .mobile-global-footer {
        display: block !important;
        text-align: left !important; /* Left-aligned */
        padding: 40px 0 20px 0 !important;
        width: 100% !important;
        box-sizing: border-box !important;
        clear: both !important;
    }

    .mobile-global-footer p {
        font-size: 0.75rem !important;
        color: var(--surface) !important;
        margin: 0 !important;
    }

    /* Premium mobile-friendly Touch Buttons */
    .project-btn {
        display: flex !important;
        flex-direction: row-reverse !important;
        justify-content: space-between !important;
        align-items: center !important;
        padding: 11px 13px !important;
        background-color: transparent !important;
        border: 1px solid var(--surface) !important;
        border-radius: 4px !important;
        margin-bottom: 8px !important;
        font-size: 0.8rem !important;
        color: var(--black) !important;
        text-decoration: none !important;
        width: 100% !important;
        box-sizing: border-box !important;
        margin-left: 0 !important; /* Reset desktop indent */
        transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease !important;
    }

    .project-btn:active {
        background-color: var(--black) !important;
        border-color: var(--black) !important;
        color: var(--white) !important;
    }

    .project-btn .project-arrow {
        position: static !important;
        opacity: 1 !important;
        transform: none !important;
        color: var(--black) !important;
        width: 8px !important;
        height: 8px !important;
        transition: color 0.2s ease !important;
    }

    .project-btn:active .project-arrow {
        color: var(--white) !important;
    }

    .info-list {
        gap: 0 !important;
    }

    .info-item {
        position: relative !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        padding: 11px 13px !important;
        background-color: transparent !important;
        border: 1px solid var(--surface) !important;
        border-radius: 4px !important;
        margin-bottom: 8px !important;
        width: 100% !important;
        box-sizing: border-box !important;
        transition: background-color 0.2s ease, border-color 0.2s ease !important;
        gap: 4px !important;
    }

    .info-item:active {
        background-color: var(--black) !important;
        border-color: var(--black) !important;
    }

    .info-btn {
        font-size: 0.8rem !important;
        font-weight: 500 !important;
        margin-left: 0 !important; /* Reset desktop indent */
        padding: 0 !important;
        transition: color 0.2s ease !important;
    }

    .info-desc {
        position: static !important;
        opacity: 1 !important;
        font-size: 0.72rem !important;
        color: var(--black) !important;
        transition: color 0.2s ease !important;
    }

    .info-item:active .info-btn {
        color: var(--white) !important;
    }

    .info-item:active .info-desc {
        color: var(--surface) !important; /* elegant contrast on black bg */
    }

    /* Stretch the clickable anchor over the entire item container */
    .info-item a.info-btn::after {
        content: '' !important;
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        z-index: 2 !important;
    }

    /* Mobile-friendly Social Links matching PC design but with larger spacing */
    .social-list {
        display: flex !important;
        flex-direction: column !important;
        gap: 16px !important; /* larger spacing between links for touch friendliness */
        width: auto !important;
        margin-top: 10px !important;
    }

    .social-link {
        display: inline-block !important;
        position: relative !important;
        color: var(--black) !important;
        font-size: 0.8rem !important;
        font-weight: 400 !important;
        text-decoration: none !important;
        padding: 4px 0 !important; /* vertical padding to enlarge touch target */
        margin-left: 15px !important; /* match desktop indent */
        background-color: transparent !important;
        border-radius: 0 !important;
        text-align: left !important;
        flex: none !important;
        transition: color 0.3s ease !important;
    }

    .social-link:active {
        background-color: transparent !important;
        color: var(--accent) !important;
    }

    /* Disable desktop hover underline animations on mobile */
    .social-link::after {
        display: none !important;
    }
}
/* Custom Autoplay Video Container with Audio Toggle */
.video-container {
    position: relative;
    align-self: flex-start;
    max-height: 44vh;
    aspect-ratio: 16/9;
    border-radius: 6px;
    overflow: hidden;
    background-color: var(--surface);
    margin-bottom: 1.5rem;
}

#section-showreel .video-container {
    max-height: 75vh;
    width: fit-content;
    aspect-ratio: auto;
    background-color: transparent;
}

#section-showreel .video-container video {
    max-height: 75vh;
    width: auto;
    max-width: 100%;
    object-fit: contain;
}

.video-container video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.video-audio-toggle {
    position: absolute;
    bottom: 15px;
    right: 15px;
    background: rgba(204, 203, 193, 0.4);
    border: none;
    border-radius: 2px;
    color: var(--black);
    font-family: var(--font-main);
    font-size: 0.8rem;
    font-weight: 400;
    padding: 2px 6px;
    cursor: pointer;
    transition: opacity 0.25s ease, background-color 0.2s ease, width 0.3s cubic-bezier(0.25, 1, 0.5, 1);
    z-index: 10;
    user-select: none;
    opacity: 0;
    pointer-events: none;
    overflow: hidden;
    white-space: nowrap;
}

.video-container:hover .video-audio-toggle {
    opacity: 1;
    pointer-events: auto;
}

.video-audio-toggle:hover {
    background: rgba(204, 203, 193, 0.75);
}

.video-audio-toggle .toggle-text {
    display: inline-block;
    transition: opacity 0.12s ease;
}

.video-audio-toggle.text-faded .toggle-text {
    opacity: 0;
}

/* Case Study Typography */
.case-study-title {
    font-size: 1.25rem;
    font-weight: 500;
    color: var(--black);
    line-height: 1.2;
    margin: 15px 0 8px 0;
}

.case-study-subtitle {
    font-size: 0.8rem;
    color: var(--black);
    font-weight: 400;
    line-height: 1.6;
    opacity: 1;
    margin: 0 0 15px 0;
}

.case-study-separator {
    width: 100%;
    height: 1px;
    background-color: var(--sage);
    margin: 18px 0;
}

.case-study-header {
    font-size: 0.9rem;
    font-weight: 400;
    color: var(--surface);
    margin: 15px 0 8px 0;
}

.case-study-text {
    font-size: 0.8rem;
    color: var(--black);
    line-height: 1.6;
    margin: 0 0 15px 0;
}

/* FAQ Content Links (Slide-in Underline from Left to Right, Italic Sage by default) */
.faq-link {
    position: relative;
    color: var(--black);
    font-weight: inherit;
    font-style: italic;
    text-decoration: none;
    display: inline-block;
    transition: color 0.3s ease;
}

.faq-link::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 1.5px;
    bottom: -1px;
    left: 0;
    background-color: var(--black);
    transform: scaleX(0);
    transform-origin: bottom left;
    transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

.faq-link:hover::after {
    transform: scaleX(1);
}

/* Sidebar Call to Action (CTA) Button styling */
.sidebar-cta {
    margin-top: 0;
    margin-bottom: 15px;
}

/* Equalize space below CTA: override top margin of the next sidebar section */
.sidebar-cta+.sidebar-section {
    margin-top: 0;
}

.btn-cta {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    position: relative;
    overflow: hidden;
    background-color: var(--accent);
    color: var(--white);
    border: none;
    padding: 1px 4px;
    margin-left: 0;
    font-family: var(--font-main);
    font-weight: 500;
    font-size: 0.8rem;
    text-decoration: none;
    cursor: pointer;
    border-radius: 2px;
    box-sizing: border-box;
    transition: padding-right 0.35s cubic-bezier(0.6, 0.01, 0, 1);
}

.btn-cta .btn-content {
    display: block;
    position: relative;
    transition: transform 0.35s cubic-bezier(0.6, 0.01, 0, 1);
}

.btn-cta .btn-text-main {
    display: block;
    white-space: nowrap;
    text-align: left;
}

.btn-cta .btn-text-hover {
    position: absolute;
    top: 150%;
    left: 0;
    width: 100%;
    display: block;
    white-space: nowrap;
    text-align: left;
    color: var(--white);
}

.btn-cta .btn-text-aligner {
    display: inline-block;
}

.btn-cta .btn-arrow {
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%) translateX(-8px);
    width: 8px;
    height: 8px;
    stroke: var(--white);
    stroke-width: 1.2;
    opacity: 0;
    transition: opacity 0.35s ease, transform 0.35s cubic-bezier(0.25, 1, 0.5, 1);
    pointer-events: none;
}

.btn-cta:hover {
    padding-right: 18px;
}

.btn-cta:hover .btn-content {
    transform: translateY(-150%);
}

.btn-cta:hover .btn-arrow {
    opacity: 1;
    transform: translateY(-50%) translateX(0);
    transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

/* Telegram link inside FAQ: styles matching socials link but keeping italic */
.faq-telegram-link {
    font-style: italic;
    transition: color 0.3s ease;
}

.faq-telegram-link:hover {
    color: var(--accent) !important;
}

.faq-telegram-link::after {
    height: 1px !important;
    bottom: 0 !important;
    background-color: var(--accent) !important;
    transform-origin: right !important;
    transition: transform 0.3s ease !important;
}

.faq-telegram-link:hover::after {
    transform-origin: left !important;
}

/* Sidebar Name & Status Underline style */
.sidebar-name-underline,
.status-underline {
    text-decoration: underline;
    text-underline-offset: 2.5px;
    text-decoration-thickness: 1px;
    text-decoration-color: var(--sage);
}

/* Availability Status Text style */
.availability-status {
    color: var(--black);
    font-size: 0.8rem;
    font-family: var(--font-main);
    font-weight: 400;
    margin-top: 12px;
    margin-bottom: 12px;
}

/* Solutions Section Styling */
.solutions-accent-header {
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--accent);
    margin: 25px 0 12px 0;
    font-family: var(--font-main);
}

.solutions-list {
    list-style: none;
    padding: 0;
    margin: 0 0 25px 0;
}

.solutions-list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 12px;
    font-size: 0.8rem;
    color: var(--black);
    line-height: 1.5;
}

.solutions-list .list-arrow {
    width: 8px;
    height: 8px;
    margin-top: 5px;
    color: var(--surface);
    flex-shrink: 0;
}

.solutions-cta {
    margin-top: 25px;
    margin-bottom: 25px;
}

/* Testimonials Styling */
.testimonial-item {
    margin-bottom: 25px;
}

.testimonial-text {
    font-size: 0.8rem;
    color: var(--black);
    line-height: 1.6;
    margin: 0 0 8px 0;
    font-style: italic;
}

.testimonial-author {
    font-size: 0.75rem;
    color: var(--sage);
    font-family: var(--font-main);
    font-weight: 400;
    display: block;
}

/* Sidebar Separator styling */
.sidebar-separator {
    width: 100%;
    height: 1px;
    background-color: var(--sage);
    margin-top: 10px;
    margin-bottom: 25px;
}

.sidebar-separator + .sidebar-section {
    margin-top: 0;
}

.mobile-showreel-container {
    display: none;
}

/* Mobile Back Button Styles */
.mobile-back-container {
    display: none;
}

.btn-back {
    display: inline-flex;
    align-items: center;
    position: relative;
    color: var(--black);
    font-size: 0.8rem;
    font-weight: 400;
    text-decoration: none;
    padding: 1px 4px 1px 18px;
    margin-left: -4px;
    border-radius: 2px;
    background-color: transparent;
}

.btn-back .back-arrow {
    position: absolute;
    left: 4px;
    top: 50%;
    transform: translateY(-50%);
    width: 8px;
    height: 8px;
    opacity: 1;
    color: var(--black);
}