.wl-results {
    width: 100%;
}

.wl-card {
    padding: 28px 0;
    border-bottom: 1px solid #e5e7eb;
}

.wl-title {
    margin: 0 0 16px;
    font-size: clamp(1.25rem, 2vw, 1.55rem);
    line-height: 1.35;
    color: #1a0dab;
}

.wl-card-body {
    display: grid;
    grid-template-columns: minmax(220px, 300px) minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}

.wl-image-wrap {
    width: 100%;
}

.wl-image {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
}

.wl-description {
    margin: 0 0 18px;
    line-height: 1.75;
}

.wl-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.wl-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 16px;
    border-radius: 6px;
    text-decoration: none;
    font-weight: 600;
}

.wl-button-primary,
.wl-button-primary:visited {
    background: #dbeafe;
    border: 1px solid #93c5fd;
    color: #075985 !important;
}

.wl-button-primary:hover,
.wl-button-primary:focus {
    background: #bfdbfe;
    border-color: #60a5fa;
    color: #075985 !important;
    text-decoration: none;
}

.wl-button-primary:focus-visible {
    outline: 3px solid rgba(59, 130, 246, 0.25);
    outline-offset: 2px;
}

.wl-download-count {
    margin-left: 5px;
    font-weight: 700;
    opacity: 0.9;
}

.wl-button-secondary,
.wl-button-secondary:visited,
.wl-button-tpt,
.wl-button-tpt:visited {
    border: 1px solid #86d29a;
    color: #17643a !important;
    background: #dcf5e3;
}

.wl-button-secondary:hover,
.wl-button-secondary:focus,
.wl-button-tpt:hover,
.wl-button-tpt:focus {
    border-color: #62bf7a;
    color: #124f2e !important;
    background: #c8efd3;
    text-decoration: none;
}

.wl-button-tpt:focus-visible {
    outline: 3px solid rgba(78, 180, 105, 0.24);
    outline-offset: 2px;
}

@media (max-width: 768px) {
    .wl-card {
        padding: 24px 0;
    }

    .wl-card-body {
        display: flex;
        flex-direction: column;
        gap: 16px;
    }

    .wl-image-wrap,
    .wl-content {
        width: 100%;
    }

    .wl-actions {
        flex-direction: column;
    }

    .wl-button {
        width: 100%;
    }
}

/* Worksheet rating */
.wl-rating {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 4px 0 18px;
    white-space: nowrap;
    color: #4b5563;
}

.wl-rating-average {
    flex: 0 0 auto;
    font-size: 1.08rem;
    line-height: 1;
    font-weight: 600;
    color: #374151;
}

.wl-stars {
    display: inline-flex;
    align-items: center;
    gap: 1px;
    flex: 0 0 auto;
}

.wl-star {
    appearance: none;
    -webkit-appearance: none;
    border: 0;
    background: linear-gradient(
        90deg,
        #f5b301 0%,
        #f5b301 var(--wl-star-fill, 0%),
        #d1d5db var(--wl-star-fill, 0%),
        #d1d5db 100%
    );
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
    cursor: pointer;
    font-size: 34px;
    line-height: 1;
    padding: 0 1px;
    margin: 0;
    transition: transform 120ms ease;
}

.wl-star:hover,
.wl-star:focus-visible {
    transform: translateY(-1px) scale(1.04);
}

.wl-star:focus-visible {
    outline: 2px solid #1d4ed8;
    outline-offset: 2px;
    border-radius: 3px;
}

.wl-rating.is-rated .wl-star {
    cursor: default;
}

.wl-rating.is-rated .wl-star:disabled {
    opacity: 1;
}

.wl-rating-count {
    flex: 0 0 auto;
    font-size: 1rem;
    line-height: 1;
    color: #4b5563;
}

/* Status remains available to screen readers without taking visual space. */
.wl-rating-status {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.wl-rating.is-submitting {
    opacity: 0.72;
    pointer-events: none;
}

@media (max-width: 420px) {
    .wl-rating {
        gap: 5px;
    }

    .wl-star {
        font-size: 30px;
        padding: 0;
    }

    .wl-rating-average,
    .wl-rating-count {
        font-size: 0.98rem;
    }
}

/* v0.3.1: compact branded social icons */
.wl-share {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
    font-size: 0.9rem;
    line-height: 1;
}

.wl-share-label {
    color: #6b7280;
    font-weight: 600;
    margin-right: 1px;
}

.wl-share-icon,
.wl-share-icon:visited {
    width: 31px;
    height: 31px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    text-decoration: none !important;
    transition: transform 120ms ease, opacity 120ms ease;
}

.wl-share-icon svg {
    width: 31px;
    height: 31px;
    display: block;
}

.wl-share-icon svg circle {
    fill: currentColor;
}

.wl-share-icon svg path {
    fill: #fff;
}

.wl-share-pinterest { color: #e60023 !important; }
.wl-share-facebook { color: #1877f2 !important; }
.wl-share-whatsapp { color: #25d366 !important; }
.wl-share-telegram { color: #229ed9 !important; }

.wl-share-icon:hover,
.wl-share-icon:focus-visible {
    transform: translateY(-1px) scale(1.06);
    opacity: 0.92;
}

.wl-share-icon:focus-visible {
    outline: 2px solid #1d4ed8;
    outline-offset: 2px;
}

@media (max-width: 520px) {
    .wl-share {
        gap: 7px;
    }

    .wl-share-icon,
    .wl-share-icon svg {
        width: 30px;
        height: 30px;
    }
}

/* v0.4.1: compact worksheet metadata */
.wl-resource-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px 16px;
    margin: 0 0 14px;
    color: #4b5563;
    font-size: 0.92rem;
    line-height: 1.35;
}

.wl-resource-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-width: 0;
}

.wl-resource-meta-item strong {
    color: #1f2937;
    font-weight: 700;
}

.wl-resource-meta-item > span {
    color: #4b5563;
}

.wl-resource-meta-icon {
    width: 19px;
    height: 19px;
    flex: 0 0 19px;
    color: #374151;
}

.wl-resource-meta-item:not(:last-child)::after {
    content: "";
    width: 3px;
    height: 3px;
    margin-left: 9px;
    border-radius: 50%;
    background: #cbd5e1;
}

@media (max-width: 620px) {
    .wl-resource-meta {
        gap: 7px 12px;
        font-size: 0.88rem;
    }

    .wl-resource-meta-item:not(:last-child)::after {
        margin-left: 5px;
    }
}


/* v0.4.4: homepage worksheet search */
.wl-search-section {
    width: 100%;
    margin: 0 0 26px;
}

.wl-search-form {
    margin: 0;
}

.wl-search-box {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 54px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: border-color 140ms ease, box-shadow 140ms ease;
}

.wl-search-box:focus-within {
    border-color: #60a5fa;
    box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.18);
}

.wl-search-icon {
    flex: 0 0 auto;
    margin-left: 16px;
    color: #6b7280;
}

.wl-search-input {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 52px;
    padding: 0 14px;
    border: 0 !important;
    outline: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    font-size: 1rem;
    color: #111827;
}

.wl-search-input::placeholder {
    color: #9ca3af;
}

.wl-search-submit {
    align-self: stretch;
    flex: 0 0 auto;
    border: 0;
    border-left: 1px solid #bfdbfe;
    padding: 0 22px;
    background: #dbeafe;
    color: #075985;
    font-weight: 700;
    cursor: pointer;
}

.wl-search-submit:hover,
.wl-search-submit:focus-visible {
    background: #bfdbfe;
}

.wl-search-submit:focus-visible {
    outline: 3px solid rgba(59, 130, 246, 0.28);
    outline-offset: -3px;
}

.wl-search-summary {
    margin: 18px 0 4px;
    font-size: 0.96rem;
    font-weight: 600;
    color: #4b5563;
}

@media (max-width: 560px) {
    .wl-search-box {
        min-height: 50px;
    }

    .wl-search-input {
        min-height: 48px;
        padding: 0 10px;
    }

    .wl-search-submit {
        padding: 0 14px;
    }
}


/* v0.4.6: shared dynamic homepage worksheet section */
.wl-home-worksheet-section {
    width: 100%;
}

.wl-section-title {
    margin: 0 0 20px;
    font-size: clamp(1.5rem, 2.2vw, 2rem);
    line-height: 1.25;
    font-weight: 750;
    color: #111827;
}

.wl-home-worksheet-section .wl-search-summary {
    margin: -8px 0 20px;
}

@media (max-width: 560px) {
    .wl-section-title {
        margin-bottom: 16px;
        font-size: 1.45rem;
    }
}

/* v0.4.8: compact search-result layout */
@media (min-width: 769px) {
    .wl-card {
        padding: 18px 0;
    }

    .wl-title {
        margin: 0 0 9px;
        font-size: 21px;
        line-height: 1.3;
        font-weight: 650;
    }

    .wl-card-body {
        grid-template-columns: 160px minmax(0, 1fr);
        gap: 18px;
    }

    .wl-image-wrap {
        max-width: 160px;
    }

    .wl-image {
        width: 160px;
        max-width: 100%;
        border-radius: 5px;
    }

    .wl-rating {
        gap: 6px;
        margin: 1px 0 10px;
    }

    .wl-rating-average {
        font-size: 15px;
        font-weight: 600;
    }

    .wl-star {
        font-size: 26px;
        padding: 0;
    }

    .wl-rating-count {
        font-size: 14px;
    }

    .wl-description {
        margin: 0 0 10px;
        font-size: 15.5px;
        line-height: 1.55;
    }

    .wl-resource-meta {
        gap: 5px 11px;
        margin: 0 0 10px;
        font-size: 13.5px;
        line-height: 1.3;
    }

    .wl-resource-meta-item {
        gap: 4px;
    }

    .wl-resource-meta-icon {
        width: 16px;
        height: 16px;
        flex-basis: 16px;
    }

    .wl-resource-meta-item:not(:last-child)::after {
        margin-left: 5px;
    }

    .wl-actions {
        gap: 8px;
    }

    .wl-button {
        min-height: 36px;
        padding: 7px 12px;
        border-radius: 5px;
        font-size: 14px;
        line-height: 1.2;
    }

    .wl-share {
        gap: 6px;
        margin-top: 9px;
        font-size: 13px;
    }

    .wl-share-icon,
    .wl-share-icon svg {
        width: 27px;
        height: 27px;
    }

    .wl-section-title {
        margin-bottom: 14px;
        font-size: clamp(1.35rem, 1.8vw, 1.7rem);
    }
}

/* Keep mobile readable while reducing unnecessary vertical bulk. */
@media (max-width: 768px) {
    .wl-card {
        padding: 20px 0;
    }

    .wl-title {
        margin-bottom: 10px;
        font-size: 19px;
        line-height: 1.35;
    }

    .wl-card-body {
        gap: 12px;
    }

    .wl-image-wrap {
        display: flex;
        justify-content: center;
    }

    .wl-image {
        width: 100%;
        max-height: 460px;
        object-fit: contain;
        border-radius: 5px;
    }

    .wl-rating {
        margin: 0 0 10px;
    }

    .wl-star {
        font-size: 28px;
    }

    .wl-description {
        margin-bottom: 10px;
        font-size: 15px;
        line-height: 1.55;
    }

    .wl-resource-meta {
        margin-bottom: 10px;
        font-size: 13px;
    }

    .wl-button {
        min-height: 40px;
        padding: 9px 12px;
        font-size: 14px;
    }

    .wl-share {
        margin-top: 10px;
    }
}


/* Visual pagination for article worksheets. All cards remain server-rendered in the same article HTML/URL. */
.wl-article-results .wl-page-hidden {
    display: none;
}

.wl-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
    margin: 24px 0 10px;
}

.wl-page-numbers {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    flex-wrap: wrap;
}

.wl-page-button {
    min-width: 38px;
    min-height: 38px;
    padding: 7px 11px;
    border: 1px solid #cbd5e1;
    border-radius: 7px;
    background: #fff;
    color: #334155;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
}

.wl-page-button:hover:not(:disabled),
.wl-page-button:focus-visible {
    border-color: #2563eb;
    color: #1d4ed8;
}

.wl-page-button.is-active {
    background: #2563eb;
    border-color: #2563eb;
    color: #fff;
}

.wl-page-button:disabled {
    opacity: .45;
    cursor: not-allowed;
}

@media (max-width: 600px) {
    .wl-pagination {
        gap: 6px;
        margin-top: 18px;
    }
    .wl-page-button {
        min-width: 36px;
        min-height: 36px;
        padding: 7px 9px;
        font-size: 13px;
    }
}


/* v0.6.1: performance/accessibility safety fixes.
 * Keep the visual star size unchanged while enlarging its touch target. */
.wl-star {
    width: 40px;
    min-width: 40px;
    height: 40px;
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}
.wl-stars {
    gap: 2px;
}
@media (max-width: 420px) {
    .wl-stars { gap: 0; }
    .wl-star {
        width: 38px;
        min-width: 38px;
        height: 40px;
        min-height: 40px;
    }
}


/* =========================================================
   v0.6.2 UX + pagination + perceived image-loading refinements
   ========================================================= */

/* Desktop grid: image stays left, content and share remain on the right. */
.wl-card-body {
    grid-template-areas:
        "image content"
        "image share";
}
.wl-image-wrap { grid-area: image; }
.wl-content { grid-area: content; }
.wl-share {
    grid-area: share;
    align-self: start;
}

/* Larger star glyphs with tighter spacing.
   The clickable box is compact but still comfortably tappable. */
.wl-rating {
    gap: 5px;
}
.wl-stars {
    gap: 0;
}
.wl-star {
    width: 34px;
    min-width: 34px;
    height: 36px;
    min-height: 36px;
    padding: 0;
    font-size: 30px;
    line-height: 1;
}
@media (min-width: 769px) {
    .wl-star {
        width: 32px;
        min-width: 32px;
        height: 34px;
        min-height: 34px;
        font-size: 29px;
    }
}
@media (max-width: 420px) {
    .wl-rating {
        gap: 4px;
    }
    .wl-star {
        width: 34px;
        min-width: 34px;
        height: 36px;
        min-height: 36px;
        font-size: 31px;
    }
}

/* Mobile order: image -> share -> rating/description/meta/actions.
   Desktop appearance stays essentially unchanged. */
@media (max-width: 768px) {
    .wl-card-body {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
    .wl-image-wrap {
        order: 1;
    }
    .wl-share {
        order: 2;
        width: 100%;
        margin: 2px 0 2px;
        justify-content: flex-start;
    }
    .wl-content {
        order: 3;
    }
}

/* Pagination adopts the same light-blue visual language as Download Free. */
.wl-page-button,
.wl-page-button:visited {
    background: #dbeafe !important;
    border: 1px solid #93c5fd !important;
    color: #075985 !important;
    box-shadow: none;
}
.wl-page-button:hover:not(:disabled),
.wl-page-button:focus-visible {
    background: #bfdbfe !important;
    border-color: #60a5fa !important;
    color: #075985 !important;
    text-decoration: none;
}
.wl-page-button.is-active,
.wl-page-button.is-active:hover,
.wl-page-button.is-active:focus-visible {
    background: #93c5fd !important;
    border-color: #60a5fa !important;
    color: #075985 !important;
}
.wl-page-button:focus-visible {
    outline: 3px solid rgba(59,130,246,.25);
    outline-offset: 2px;
}
.wl-page-button:disabled {
    background: #eff6ff !important;
    border-color: #dbeafe !important;
    color: #64748b !important;
    opacity: 1;
}

/* v0.7 creator attribution */
.wl-designer{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:2px 0 8px;font-size:13px;line-height:1.4;color:#64748b}
.wl-designer-label{font-weight:600}.wl-designer a,.wl-designer-name{font-weight:700;color:#2563eb;text-decoration:none}.wl-designer a:hover{text-decoration:underline}


/* v0.7.1 compact information rows */
.wl-card-topline,.wl-card-bottomline{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.wl-card-topline{margin:0 0 8px}.wl-card-topline .wl-rating,.wl-card-topline .wl-designer{margin:0}
.wl-card-topline .wl-designer{margin-left:auto;justify-content:flex-end;text-align:right}
.wl-card-bottomline{margin-top:10px}.wl-card-bottomline .wl-actions{margin:0;display:flex;gap:8px;flex-wrap:wrap}
.wl-card-bottomline .wl-share{margin:0 0 0 auto;justify-content:flex-end;align-self:center;width:auto}
@media (max-width:768px){
 .wl-card-topline{gap:8px}.wl-card-topline .wl-designer{font-size:12.5px}
 .wl-card-bottomline{align-items:center;gap:8px}
 .wl-card-bottomline .wl-actions{flex:1 1 auto}
 .wl-card-bottomline .wl-share{flex:0 0 auto;margin-left:auto;width:auto;order:initial}
}
@media (max-width:520px){
 .wl-card-topline{flex-wrap:nowrap}.wl-card-topline .wl-rating{min-width:0}.wl-card-topline .wl-designer{max-width:42%;line-height:1.25}
 .wl-card-bottomline{flex-wrap:wrap}.wl-card-bottomline .wl-actions{flex:1 1 100%}.wl-card-bottomline .wl-share{margin-left:0;justify-content:flex-start}
}

/* v0.7.2 responsive compact card alignment */
.wl-card-topline{display:flex;align-items:center;justify-content:space-between;gap:16px}
.wl-card-topline .wl-designer{order:1;margin:0}
.wl-card-topline .wl-rating{order:2;margin-left:auto}
.wl-card-bottomline{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:12px;margin-top:10px}
.wl-download-group{justify-self:start}.wl-share-desktop{justify-self:start;margin:0}.wl-buy-group{justify-self:end}.wl-share-mobile{display:none}
@media (max-width:768px){
 .wl-share-desktop{display:none!important}
 .wl-share-mobile{display:flex;order:2;width:100%;justify-content:flex-start;margin:2px 0 4px}
 .wl-card-body{display:flex;flex-direction:column;gap:10px}
 .wl-image-wrap{order:1}.wl-content{order:3}
 .wl-card-topline{display:flex;flex-direction:column;align-items:stretch;gap:4px}
 .wl-card-topline .wl-rating{order:1;margin:0;justify-content:flex-start}
 .wl-card-topline .wl-designer{order:2;margin:0 0 6px;justify-content:flex-start}
 .wl-card-bottomline{display:flex;flex-direction:column;align-items:stretch;gap:8px}
 .wl-download-group,.wl-buy-group{width:100%}
 .wl-download-group .wl-button,.wl-buy-group .wl-button{width:100%;justify-content:center;box-sizing:border-box}
}


/* =========================================================
   v0.7.3 compact search-result spacing + safe interaction inset
   ========================================================= */

/* Keep the desktop rating comfortably away from the card edge. */
@media (min-width: 769px) {
    .wl-card-topline .wl-rating {
        margin-left: auto;
        margin-right: 18px;
    }

    /* Share stays on the same line as Download, with breathing room. */
    .wl-share-desktop {
        justify-self: start;
        margin-left: 8px;
        margin-right: 18px;
    }
}

/* One compact vertical rhythm between consecutive worksheet results.
   The divider is the visual separator; no extra outer gap is added. */
.wl-card {
    padding-top: 14px;
    padding-bottom: 14px;
    margin-top: 0;
    margin-bottom: 0;
}
.wl-card + .wl-card {
    margin-top: 0;
}
.wl-title {
    margin-top: 0;
    margin-bottom: 8px;
}

@media (max-width: 768px) {
    .wl-card {
        padding-top: 16px;
        padding-bottom: 16px;
    }
}

/* Automatic related-search internal links */
.wl-related-searches {
    margin: 22px 0 8px;
    padding-top: 16px;
    border-top: 1px solid #e5e7eb;
}
.wl-related-searches-label {
    display: block;
    margin-bottom: 9px;
    font-size: 14px;
    font-weight: 700;
    color: #334155;
}
.wl-related-searches-links {
    column-count: 3;
    column-gap: 28px;
}
.wl-related-searches-links .wl-related-search-link {
    display: flex;
    width: 100%;
    margin: 0 0 8px;
    break-inside: avoid;
    box-sizing: border-box;
}
@media (max-width: 768px) {
    .wl-related-searches-links {
        column-count: 1;
    }
    .wl-related-searches-links .wl-related-search-link:nth-child(n+7) {
        display: none;
    }
}
.wl-related-search-link,
.wl-related-search-link:visited {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 6px 12px;
    border: 1px solid #bfdbfe;
    border-radius: 999px;
    background: #eff6ff;
    color: #1d4ed8;
    font-size: 13.5px;
    line-height: 1.35;
    font-weight: 600;
    text-decoration: none;
}
.wl-related-search-link:hover,
.wl-related-search-link:focus-visible {
    background: #dbeafe;
    border-color: #93c5fd;
    color: #1e40af;
    text-decoration: none;
}
.wl-related-search-link:focus-visible {
    outline: 3px solid rgba(59,130,246,.2);
    outline-offset: 2px;
}


/* =========================================================
   v0.7.4 centered desktop controls + dynamic topic intro
   ========================================================= */
.wl-topic-intro{
    margin:0 0 14px;
    padding:0;
}
.wl-topic-intro p{
    margin:0;
    font-size:16px;
    line-height:1.6;
    color:#475569;
}

/* Desktop: keep Designed by + Rating together near the visual center. */
@media (min-width:769px){
    .wl-card-topline{
        justify-content:center !important;
        gap:28px !important;
    }
    .wl-card-topline .wl-designer{
        margin:0 !important;
    }
    .wl-card-topline .wl-rating{
        margin:0 !important;
    }

    /* Center Download + Share + Buy Full Resource as one compact row. */
    .wl-card-bottomline{
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        gap:16px !important;
        flex-wrap:wrap;
    }
    .wl-download-group,
    .wl-share-desktop,
    .wl-buy-group{
        justify-self:auto !important;
        margin:0 !important;
    }
}

/* Mobile keeps the existing stacked layout. */
@media (max-width:768px){
    .wl-topic-intro p{
        font-size:15px;
        line-height:1.6;
    }
}

/* v0.8.0 public contribution form */
.wl-contribute{max-width:860px;margin:0 auto 32px}.wl-contribute-intro{margin-bottom:22px}.wl-contribute-intro h2{margin-bottom:8px}.wl-contribute-steps{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.wl-contribute-steps span{padding:7px 12px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;color:#1e40af;font-size:14px}.wl-current-topic{padding:12px 14px;background:#f8fafc;border-left:4px solid #2563eb}.wl-contribute-form fieldset{border:1px solid #e2e8f0;border-radius:10px;padding:18px;margin:0 0 18px;background:#fff}.wl-contribute-form legend{padding:0 8px;font-weight:700;color:#0f172a}.wl-contribute-form label{display:block;margin:0 0 14px;font-weight:600;color:#334155}.wl-contribute-form label>span{color:#b91c1c}.wl-contribute-form input[type=text],.wl-contribute-form input[type=url],.wl-contribute-form input[type=email],.wl-contribute-form textarea,.wl-contribute-form select{width:100%;margin-top:6px;padding:10px 12px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;box-sizing:border-box;font:inherit}.wl-contribute-form textarea{resize:vertical}.wl-contribute-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.wl-form-help{margin:-4px 0 14px;color:#64748b;font-size:13px}.wl-rights-confirm{display:flex!important;gap:10px;align-items:flex-start;font-weight:500!important}.wl-rights-confirm input{margin-top:4px}.wl-contribute-submit{border:0;border-radius:7px;background:#2563eb;color:#fff;padding:12px 20px;font-weight:700;cursor:pointer}.wl-contribute-submit:hover{background:#1d4ed8}.wl-contribute-message{padding:14px 16px;margin:0 0 18px;border-radius:8px}.wl-contribute-message.is-success{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}.wl-contribute-message.is-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.wl-honeypot{position:absolute!important;left:-9999px!important;opacity:0!important;height:1px!important;width:1px!important}.wl-contribute-form small{display:block;margin-top:5px;color:#64748b;font-weight:400}@media(max-width:700px){.wl-contribute-grid{grid-template-columns:1fr}.wl-contribute-form fieldset{padding:14px}.wl-contribute-steps{gap:6px}}

/* v0.9.1 compact public contribution form */
.wl-contribute-compact{max-width:720px}.wl-contribute-compact .wl-contribute-form fieldset{padding:22px}.wl-choice-section{margin:0 0 18px}.wl-choice-title{font-weight:700;color:#334155;margin-bottom:6px}.wl-choice-title>span{color:#b91c1c}.wl-choice-list{display:flex;flex-wrap:wrap;gap:8px}.wl-choice-pill{display:inline-block!important;margin:0!important;cursor:pointer;font-weight:600!important}.wl-choice-pill input{position:absolute;opacity:0;pointer-events:none}.wl-choice-pill span{display:inline-flex;align-items:center;min-height:40px;padding:7px 12px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#334155;box-sizing:border-box}.wl-choice-pill input:checked+span{background:#eff6ff;border-color:#2563eb;color:#1d4ed8}.wl-choice-pill input:focus+span{box-shadow:0 0 0 3px rgba(37,99,235,.12)}.wl-inline-optional{display:inline!important;margin-left:6px!important;font-size:12px!important;color:#64748b!important;font-weight:500!important}.wl-submission-terms{margin:0 0 14px;color:#64748b;font-size:12.5px;line-height:1.55}.wl-contribute-compact .wl-contribute-submit{width:100%;min-height:50px;font-size:15px}@media(max-width:700px){.wl-contribute-compact .wl-contribute-form fieldset{padding:16px}.wl-choice-pill span{min-height:38px;font-size:13px}}


/* Contribution form clarity refinements - v0.9.2 */
.wl-contribute-compact .wl-contribute-form fieldset{
    border:2px solid #94a3b8;
    border-radius:12px;
    background:#ffffff;
    box-shadow:0 1px 3px rgba(15,23,42,.06);
}
.wl-contribute-compact .wl-choice-pill input:checked + span{
    background:#ffffff !important;
    border-color:#0f172a !important;
    color:#0f172a !important;
    box-shadow:inset 0 0 0 1px #0f172a;
}
.wl-contribute-compact .wl-choice-pill input:focus + span{
    border-color:#0f172a !important;
    box-shadow:0 0 0 3px rgba(15,23,42,.10);
}
.wl-contribute-compact .wl-contribute-form input[type=text],
.wl-contribute-compact .wl-contribute-form input[type=url],
.wl-contribute-compact .wl-contribute-form input[type=email],
.wl-contribute-compact .wl-contribute-form textarea,
.wl-contribute-compact .wl-contribute-form select{
    border-color:#94a3b8;
}


/* Contribution choice text color correction - v0.9.3 */
.wl-contribute-compact .wl-choice-pill,
.wl-contribute-compact .wl-choice-pill span,
.wl-contribute-compact .wl-choice-pill input + span,
.wl-contribute-compact .wl-choice-pill input:checked + span,
.wl-contribute-compact .wl-choice-pill input:hover + span,
.wl-contribute-compact .wl-choice-pill:hover span,
.wl-contribute-compact fieldset label,
.wl-contribute-compact fieldset label span{
    color:#0f172a !important;
    text-decoration:none !important;
}
.wl-contribute-compact .wl-choice-pill input + span{
    background:#ffffff !important;
    border-color:#cbd5e1 !important;
}
.wl-contribute-compact .wl-choice-pill input:checked + span{
    background:#f8fafc !important;
    border-color:#0f172a !important;
    color:#0f172a !important;
}


/* =========================================================
   v1.2.1 card spacing + prominent rating refinements
   ========================================================= */
/* Desktop: give the creator/rating row and the three action zones breathing room. */
@media (min-width: 769px) {
    .wl-card-topline {
        padding-inline: 18px;
        gap: 28px;
        flex-wrap: nowrap;
    }
    .wl-card-topline .wl-designer {
        flex: 1 1 auto;
        justify-content: flex-start;
        text-align: left;
        min-width: 0;
    }
    .wl-card-topline .wl-rating {
        flex: 0 0 auto;
        margin-left: auto;
        justify-content: flex-end;
    }

    .wl-card-bottomline {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
        column-gap: 24px;
        padding-inline: 18px;
    }
    .wl-download-group { justify-self: start; }
    .wl-share-desktop { justify-self: center; }
    .wl-buy-group { justify-self: end; }
}

/* Rating: bold, familiar gold stars with readable score/count beside them. */
.wl-rating {
    gap: 8px;
}
.wl-stars {
    gap: 2px;
}
.wl-star {
    width: 38px;
    min-width: 38px;
    height: 40px;
    min-height: 40px;
    font-size: 35px;
    line-height: 1;
}
.wl-rating-average {
    font-size: 1.08rem;
    font-weight: 700;
    color: #374151;
}
.wl-rating-count {
    font-size: 1rem;
    color: #4b5563;
}

@media (min-width: 769px) {
    .wl-star {
        width: 39px;
        min-width: 39px;
        height: 41px;
        min-height: 41px;
        font-size: 36px;
    }
}

/* Mobile: keep "Designed by + name" together whenever it fits; wrap only when needed. */
@media (max-width: 768px) {
    .wl-card-topline {
        gap: 6px;
    }
    .wl-card-topline .wl-designer {
        display: flex;
        flex-direction: row;
        align-items: baseline;
        justify-content: flex-start;
        flex-wrap: wrap;
        width: 100%;
        max-width: none;
        gap: 5px;
        white-space: normal;
    }
    .wl-designer-label,
    .wl-designer a,
    .wl-designer-name {
        white-space: nowrap;
    }
    .wl-card-topline .wl-rating {
        width: 100%;
        flex-wrap: nowrap;
        gap: 6px;
    }
    .wl-stars { gap: 1px; }
    .wl-star {
        width: 35px;
        min-width: 35px;
        height: 38px;
        min-height: 38px;
        font-size: 33px;
    }
}

@media (max-width: 390px) {
    .wl-card-topline .wl-rating { gap: 4px; }
    .wl-stars { gap: 0; }
    .wl-star {
        width: 32px;
        min-width: 32px;
        height: 36px;
        min-height: 36px;
        font-size: 31px;
    }
    .wl-rating-average,
    .wl-rating-count { font-size: .94rem; }
}

/* =========================================================
   v1.2.2 action-row spacing refinements
   ========================================================= */
/* Desktop: mirror the generous visual separation used by the rating row. */
@media (min-width: 769px) {
    .wl-card-bottomline {
        grid-template-columns: minmax(180px, 1fr) minmax(190px, .9fr) minmax(180px, 1fr);
        column-gap: 36px;
        padding-inline: 26px;
        align-items: center;
    }
    .wl-download-group,
    .wl-share-desktop,
    .wl-buy-group {
        min-width: 0;
    }
    .wl-download-group {
        justify-self: start;
        padding-right: 8px;
    }
    .wl-share-desktop {
        justify-self: center;
        padding-inline: 8px;
        gap: 8px;
    }
    .wl-share-desktop .wl-share-label {
        margin-right: 3px;
    }
    .wl-share-desktop .wl-share-icon + .wl-share-icon {
        margin-left: 3px;
    }
    .wl-buy-group {
        justify-self: end;
        padding-left: 8px;
    }
    .wl-download-group .wl-button,
    .wl-buy-group .wl-button {
        margin: 0;
    }
}


/* =========================================================
   v1.2.3 explicit rating CTA
   ========================================================= */
.wl-rating-cta {
    flex: 0 1 auto;
    font-size: .92rem;
    line-height: 1.2;
    font-weight: 600;
    color: #4b5563;
    white-space: nowrap;
}
.wl-rating-cta-mobile { display: none; }
.wl-rating:not(.is-rated) .wl-rating-cta { color: #374151; }
.wl-rating:not(.is-rated) .wl-star { cursor: pointer; }
.wl-rating:not(.is-rated) .wl-stars:hover .wl-star { filter: saturate(1.08); }

@media (min-width: 769px) {
    .wl-card-topline .wl-rating {
        flex-wrap: nowrap;
        justify-content: flex-end;
    }
}

@media (max-width: 768px) {
    .wl-rating-cta-desktop { display: none; }
    .wl-rating-cta-mobile { display: inline; }
    .wl-rating-cta { font-size: .88rem; }
    .wl-card-topline .wl-rating {
        overflow: visible;
    }
}

@media (max-width: 390px) {
    .wl-rating-cta { font-size: .82rem; }
}

/* =========================================================
   v1.2.9 ultra-compact FAQ + unified compact headings
   ========================================================= */
.wl-faq {
    margin: 18px 0 6px;
    padding-top: 12px;
    border-top: 1px solid #e5e7eb;
}
.wl-faq-heading {
    margin: 0 0 6px;
    font-size: 13.5px !important;
    line-height: 1.35 !important;
    font-weight: 700 !important;
    color: #334155;
}
.wl-faq-list {
    display: grid;
    gap: 2px;
}
.wl-faq-item {
    border: 0;
    border-radius: 0;
    background: transparent;
    overflow: visible;
}
.wl-faq-question-heading {
    margin: 0 !important;
    padding: 0 !important;
    font-size: 13.5px !important;
    line-height: 1.35 !important;
}
.wl-faq-question {
    display: flex;
    width: 100%;
    min-height: 30px;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 5px 9px;
    border: 0;
    border-radius: 5px;
    background: #eff6ff;
    color: #1e40af;
    cursor: pointer;
    text-align: left;
    font: inherit;
    font-size: 13.5px !important;
    line-height: 1.35 !important;
    font-weight: 600;
}
.wl-faq-question:hover { background: #dbeafe; }
.wl-faq-question:focus-visible {
    outline: 2px solid rgba(59,130,246,.22);
    outline-offset: -2px;
}
.wl-faq-toggle {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    position: relative;
    margin-left: auto;
}
.wl-faq-toggle::before,
.wl-faq-toggle::after {
    content: '';
    position: absolute;
    left: 3px;
    right: 3px;
    top: 7px;
    height: 2px;
    background: currentColor;
}
.wl-faq-toggle::after {
    transform: rotate(90deg);
    transition: transform .18s ease;
}
.wl-faq-question[aria-expanded="true"] .wl-faq-toggle::after { transform: rotate(0deg); }
.wl-faq-answer {
    padding: 5px 9px 7px;
    border: 0;
    color: #334155;
    font-size: 13.5px;
    line-height: 1.45;
}
.wl-faq-answer[hidden] { display: none; }
.wl-faq-answer p { margin: 0; }

/* Keep section labels visually aligned with the FAQ question scale. */
.wl-related-searches-label {
    font-size: 13.5px !important;
    line-height: 1.35 !important;
}

/* SearchISO post title: compact visual size while retaining the semantic H1 element. */
.single-post .entry-title {
    font-size: 13.5px !important;
    line-height: 1.35 !important;
}

@media (max-width: 768px) {
    .wl-faq { margin: 18px 0 6px; }
    .wl-faq-question { padding: 5px 8px; }
    .wl-faq-answer { padding: 5px 8px 7px; }
}

