/* =============================================
   Partners Carousel — Infinite Marquee + Arrows
   Keskkond & Partnerid: navy #032e68, oranž #e95e23
   ============================================= */

:root {
    --pc-navy:        #032e68;
    --pc-orange:      #e95e23;
    --pc-orange-dark: #c44d18;
    --pc-navy-pale:   #eef2f9;
    --pc-gap:         36px;
    --pc-slide-width: 200px;
    --pc-logo-height: 96px;
    --pc-radius:      10px;
}

/* ── Keyframes ── */
@keyframes pc-marquee {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}
/* "jätka sealt kust jäid" — start offset seatakse JS-ist inline style'ga */
@keyframes pc-marquee-from {
    0%   { transform: translateX(var(--pc-from, 0px)); }
    100% { transform: translateX(-50%); }
}

/* ── Section ── */
.pc-section {
    padding: 72px 0 60px;
    background: #fff;
    overflow: hidden;
    position: relative;
}
/* ── Header ── */
.pc-header {
    text-align: center;
    margin-bottom: 48px;
    padding: 0 24px;
}
.pc-title {
    font-size: clamp(1.25rem, 2.8vw, 1.75rem);
    font-weight: 700;
    line-height: 1.35;
    margin: 0 auto;
    max-width: 620px;
    color: var(--pc-navy);
}

/* ── Carousel wrapper ── */
.pc-carousel-wrapper {
    display: flex;
    align-items: center;
    gap: 0;
    position: relative;
}

/* ── Edge fades (sees nuppude kõrval) ── */
.pc-track-outer {
    flex: 1;
    overflow: hidden;
    min-width: 0;
    position: relative;
}
.pc-track-outer::before,
.pc-track-outer::after {
    content: '';
    position: absolute;
    top: 0; bottom: 0;
    width: 80px;
    z-index: 2;
    pointer-events: none;
}
.pc-track-outer::before {
    left: 0;
    background: linear-gradient(to right, #fff 0%, transparent 100%);
}
.pc-track-outer::after {
    right: 0;
    background: linear-gradient(to left, #fff 0%, transparent 100%);
}

/* ── Track ── */
.pc-track {
    display: flex;
    align-items: center;
    gap: var(--pc-gap);
    width: max-content;
    padding: 10px 0;
    will-change: transform;
}

/* ── Slide ── */
.pc-slide {
    flex: 0 0 var(--pc-slide-width);
    width: var(--pc-slide-width);
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ── Logo link ── */
.pc-logo-link {
    display: block;
    width: 100%;
    text-decoration: none;
}
.pc-logo-link:focus-visible {
    outline: 2px solid var(--pc-orange);
    outline-offset: 4px;
    border-radius: var(--pc-radius);
}

/* ── Logo wrap ── */
.pc-logo-wrap {
    width: 100%;
    height: var(--pc-logo-height);
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border-radius: var(--pc-radius);
    border: 1.5px solid #e4eaf2;
    padding: 18px 24px;
    box-sizing: border-box;
    transition: border-color 0.3s, box-shadow 0.3s, transform 0.3s;
}
.pc-logo-link:hover .pc-logo-wrap,
.pc-logo-wrap:hover {
    border-color: var(--pc-orange);
    box-shadow: 0 6px 24px rgba(3, 46, 104, 0.10);
    transform: translateY(-3px);
}

.pc-logo {
    display: block;
    max-width: 100%;
    max-height: 58px;
    width: auto;
    height: auto;
    object-fit: contain;
    filter: grayscale(0.3) opacity(0.8);
    transition: filter 0.3s;
}
.pc-logo-link:hover .pc-logo {
    filter: grayscale(0) opacity(1);
}

/* ── Placeholder ── */
.pc-logo-placeholder {
    width: 100%;
    height: var(--pc-logo-height);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--pc-navy-pale);
    border-radius: var(--pc-radius);
    border: 1.5px solid #d0daf0;
    padding: 0 16px;
    box-sizing: border-box;
}
.pc-logo-placeholder span {
    font-size: 13px;
    font-weight: 700;
    color: var(--pc-navy);
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.07em;
}

/* ── Nav nooled ── */
.pc-btn {
    flex-shrink: 0;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    border: 2px solid var(--pc-navy);
    background: transparent;
    color: var(--pc-navy);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.25s, color 0.25s, border-color 0.25s,
                transform 0.2s, box-shadow 0.25s;
    position: relative;
    z-index: 3;
}
.pc-btn:hover {
    background: var(--pc-orange);
    border-color: var(--pc-orange);
    color: #fff;
    transform: scale(1.07);
    box-shadow: 0 4px 18px rgba(233, 94, 35, 0.32);
}
.pc-btn:active { transform: scale(0.95); }
.pc-btn-prev { margin-right: 14px; }
.pc-btn-next { margin-left: 14px; }

/* ── Dots peidus (marquee mode) ── */
.pc-dots { display: none; }

/* ── No partners ── */
.pc-no-partners {
    text-align: center;
    color: #999;
    font-style: italic;
    padding: 32px;
}

/* ── Responsive ── */
@media (max-width: 768px) {
    :root {
        --pc-slide-width: 150px;
        --pc-logo-height: 78px;
        --pc-gap: 20px;
    }
    .pc-section { padding: 48px 0 38px; }
    .pc-btn { width: 38px; height: 38px; }
    .pc-btn-prev { margin-right: 8px; }
    .pc-btn-next { margin-left: 8px; }
    .pc-track-outer::before,
    .pc-track-outer::after { width: 40px; }
    .pc-logo { max-height: 46px; }
}
@media (max-width: 480px) {
    :root {
        --pc-slide-width: 130px;
        --pc-logo-height: 68px;
        --pc-gap: 14px;
    }
}

/* ── Tume variant ── */
.pc-section.pc-dark { background: var(--pc-navy); }
.pc-section.pc-dark .pc-title { color: #fff; }
.pc-section.pc-dark::before { background: var(--pc-orange); }
.pc-section.pc-dark .pc-track-outer::before {
    background: linear-gradient(to right, var(--pc-navy), transparent);
}
.pc-section.pc-dark .pc-track-outer::after {
    background: linear-gradient(to left, var(--pc-navy), transparent);
}
.pc-section.pc-dark .pc-logo-wrap {
    background: rgba(255,255,255,0.05);
    border-color: rgba(255,255,255,0.10);
}

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
    .pc-track { animation: none !important; }
}
