/* Positive Perception Free Livery Showcase */
.pp-fls-section { margin: 34px 0; color: inherit; }
.pp-fls-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:20px; }
.pp-fls-heading h2 { margin:4px 0 6px; font-size:clamp(24px,3vw,34px); line-height:1.15; }
.pp-fls-heading p { margin:0; opacity:.78; }
.pp-fls-eyebrow { color:#55A6F2; font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.pp-fls-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.pp-fls-card { min-width:0; overflow:hidden; border:1px solid rgba(127,143,160,.24); border-radius:8px; background:rgba(127,143,160,.06); display:flex; flex-direction:column; }
.pp-fls-card-image { display:block; position:relative; aspect-ratio:16/10; overflow:hidden; background:#202b3b; }
.pp-fls-card-image img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.pp-fls-card-image:hover img { transform:scale(1.035); }
.pp-fls-free-label { position:absolute; top:10px; left:10px; display:inline-block; padding:5px 8px; border-radius:3px; background:#FF9900; color:#17202b; font-size:10px; font-weight:800; letter-spacing:.04em; }
.pp-fls-no-image { display:flex; height:100%; align-items:center; justify-content:center; color:#fff; opacity:.7; }
.pp-fls-card-content { display:flex; flex:1; flex-direction:column; padding:13px; }
.pp-fls-card-content h3 { margin:0 0 5px; font-size:16px; line-height:1.3; }
.pp-fls-card-content h3 a { color:inherit; text-decoration:none; }
.pp-fls-card-content h3 a:hover { color:#55A6F2; }
.pp-fls-car { margin:0 0 4px; font-size:13px; font-weight:700; }
.pp-fls-meta { margin:0 0 9px; font-size:11px; opacity:.7; }
.pp-fls-description { margin:0 0 12px; font-size:12px; line-height:1.5; opacity:.82; }
.pp-fls-card-bottom { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; margin-top:auto; padding-top:9px; border-top:1px solid rgba(127,143,160,.22); }
.pp-fls-stats { font-size:10px; opacity:.7; }
.pp-fls-download { color:#55A6F2; font-size:12px; font-weight:800; text-decoration:none; }
.pp-fls-download:hover { color:#FF9900; }
.pp-fls-view-all-wrap { margin-top:20px; text-align:center; }
.pp-fls-view-all { display:inline-flex; align-items:center; gap:12px; padding:11px 19px; border-radius:4px; background:#55A6F2; color:#10243a !important; font-weight:800; text-decoration:none !important; transition:background .2s ease; }
.pp-fls-view-all:hover { background:#FF9900; color:#17202b !important; }
.pp-fls-filters { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:0 0 22px; }
.pp-fls-filters select { min-width:190px; padding:10px 34px 10px 12px; border:1px solid rgba(127,143,160,.45); border-radius:4px; background:transparent; color:inherit; }
.pp-fls-filters button { padding:10px 16px; border:0; border-radius:4px; background:#55A6F2; color:#10243a; font-weight:800; cursor:pointer; }
.pp-fls-filters button:hover { background:#FF9900; }
.pp-fls-clear { font-size:12px; color:inherit; }
.pp-fls-pagination { margin-top:26px; }
.pp-fls-pagination ul { display:flex; flex-wrap:wrap; justify-content:center; gap:7px; padding:0; margin:0; list-style:none; }
.pp-fls-pagination a,.pp-fls-pagination span { display:block; padding:8px 12px; border:1px solid rgba(127,143,160,.35); border-radius:4px; text-decoration:none; color:inherit; }
.pp-fls-pagination .current { background:#FF9900; border-color:#FF9900; color:#17202b; font-weight:800; }
.pp-fls-empty { padding:30px; text-align:center; opacity:.7; }
@media (max-width:1050px) { .pp-fls-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:700px) { .pp-fls-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } .pp-fls-card-content { padding:10px; } .pp-fls-card-content h3 { font-size:14px; } }
@media (max-width:420px) { .pp-fls-grid { grid-template-columns:1fr; } }


/* 1.0.1: explicitly set readable text colours on dark site backgrounds */
.pp-fls-card-content,
.pp-fls-card-content p,
.pp-fls-card-content .pp-fls-car,
.pp-fls-card-content .pp-fls-meta,
.pp-fls-card-content .pp-fls-description,
.pp-fls-card-content .pp-fls-stats {
    color: #e8edf4 !important;
}
.pp-fls-card-content .pp-fls-meta,
.pp-fls-card-content .pp-fls-description,
.pp-fls-card-content .pp-fls-stats {
    opacity: .82;
}
.pp-fls-filters select {
    color: #e8edf4 !important;
    background-color: #15191f !important;
}
.pp-fls-filters select option {
    color: #e8edf4;
    background: #15191f;
}
.pp-fls-pagination a,
.pp-fls-pagination span {
    color: #e8edf4;
}
.pp-fls-pagination .current {
    color: #17202b;
}
.pp-fls-clear {
    color: #e8edf4;
}


/* 1.0.2: simulator filters use the same pill/button treatment as the main portfolio */
.pp-fls-simulator-filters {
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    margin:0 0 24px;
}
.pp-fls-simulator-filters .pp-fls-filter-button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:40px;
    padding:9px 16px;
    border:1px solid #55A6F2;
    border-radius:4px;
    background:transparent;
    color:#55A6F2 !important;
    font-size:13px;
    font-weight:700;
    line-height:1.2;
    text-decoration:none !important;
    transition:background .18s ease, border-color .18s ease, color .18s ease;
}
.pp-fls-simulator-filters .pp-fls-filter-button:hover,
.pp-fls-simulator-filters .pp-fls-filter-button.is-active {
    border-color:#FF9900;
    background:#FF9900;
    color:#17202b !important;
}


/* 1.0.4: simulator-first, dependent class filters */
.pp-fls-filter-groups { display:flex; flex-direction:column; gap:13px; margin:0 0 24px; }
.pp-fls-filter-group { display:flex; flex-direction:column; gap:7px; }
.pp-fls-filter-label { color:#e8edf4; font-size:10px; font-weight:800; letter-spacing:.12em; opacity:.72; }
.pp-fls-simulator-filters, .pp-fls-class-filters { display:flex; flex-wrap:wrap; gap:9px; }
.pp-fls-simulator-filters .pp-fls-filter-button,
.pp-fls-class-filters .pp-fls-filter-button {
    display:inline-flex; align-items:center; justify-content:center;
    min-height:38px; padding:8px 14px; border:1px solid #55A6F2;
    border-radius:4px; background:transparent; color:#55A6F2 !important;
    font-size:12px; font-weight:700; line-height:1.2; text-decoration:none !important;
    transition:background .18s ease, border-color .18s ease, color .18s ease;
}
.pp-fls-simulator-filters .pp-fls-filter-button:hover,
.pp-fls-simulator-filters .pp-fls-filter-button.is-active,
.pp-fls-class-filters .pp-fls-filter-button:hover,
.pp-fls-class-filters .pp-fls-filter-button.is-active {
    border-color:#FF9900; background:#FF9900; color:#17202b !important;
}

/* Gallery sorting control – compact, aligned and readable on dark backgrounds */
.pp-fls-sort-wrap{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:12px;
    width:100%;
    margin:0 0 22px;
    color:#c5d0dd;
}
.pp-fls-sort-wrap label{
    display:block;
    flex:0 0 auto;
    width:auto;
    margin:0;
    white-space:nowrap;
    font-size:11px;
    font-weight:700;
    letter-spacing:1.2px;
    line-height:1.2;
    color:#c5d0dd !important;
}
.pp-fls-sort-wrap select{
    display:block;
    flex:0 0 220px;
    width:220px !important;
    min-width:0;
    max-width:100%;
    height:42px;
    margin:0;
    padding:9px 34px 9px 12px;
    border:1px solid #55A6F2;
    border-radius:5px;
    background-color:#1d2734 !important;
    color:#ffffff !important;
    font:inherit;
    cursor:pointer;
    box-sizing:border-box;
}
.pp-fls-sort-wrap select option{
    background-color:#1d2734 !important;
    color:#ffffff !important;
}
.pp-fls-sort-wrap select:focus{outline:2px solid #55a6f2;outline-offset:2px}
@media(max-width:480px){
    .pp-fls-sort-wrap{justify-content:flex-start;}
    .pp-fls-sort-wrap select{flex-basis:190px;width:190px !important;}
}
