/* ==========================================================================
   ANAZ — Portfolio showcase ("Portfolio Showcase" Elementor widget)
   Adapted from html/css/portfolio-showcase.css. Requires assets/css/base.css
   (font, reset, --anaz-ease, .anaz-visually-hidden).

   Class map: .anaz-portfolio-showcase → .monks-portfolio-showcase;
   .portfolio-container, -heading, -heading-content, -label, -title,
   -title-accent, -description, -empty, -cta → .monks-portfolio-showcase__
   (same suffix); .portfolio-filters / .portfolio-filter →
   .monks-portfolio-showcase-filters / -filter; .portfolio-grid →
   .monks-portfolio-showcase-grid; .portfolio-card, -card-media, -card-body,
   -card-title, -card-category → .monks-portfolio-showcase-card, __media,
   __body, __title, __category; .portfolio-cta-button →
   .monks-portfolio-showcase-button; --pf-NAME → --monks-portfolio-showcase-NAME.

   Values and breakpoints are unchanged. Child rules are scoped under the
   section class so Elementor's `.elementor img` / `.elementor a` resets and
   kit typography / button styles never override the design. Values the
   style controls change are section-scoped custom properties; Elementor sets
   them with `{{WRAPPER}} .monks-portfolio-showcase`, which is always more
   specific, so they apply to every state without fighting the rules below.

   Layout
     heading: two columns ≥1200px, stacked below
     filters: one row; scrolls horizontally when it cannot fit
              (optional "wrap" layout: .monks-portfolio-showcase--filters-wrap)
     cards:   4 columns ≥1200px · 2 columns 600–1199px · 1 column <600px
              (each count is a custom property set by the Columns controls)
   Background shapes are pseudo-elements on the section (behind content).

   WordPress additions (not in the source): card link (stretched over the
   card), "no decor" / "no image accents" / "single heading column"
   modifiers, image aspect-ratio mode, CTA custom icon wrapper.
   ========================================================================== */

.monks-portfolio-showcase {
    --monks-portfolio-showcase-navy: #092F60;
    --monks-portfolio-showcase-navy-2: #173B68;
    --monks-portfolio-showcase-orange: #FF5908;
    --monks-portfolio-showcase-orange-dark: #E84D02;
    --monks-portfolio-showcase-orange-light: #FF8A3D;
    --monks-portfolio-showcase-blue-soft: #EEF5FC;
    --monks-portfolio-showcase-bg: #F9FBFE;
    --monks-portfolio-showcase-text: #536789;
    --monks-portfolio-showcase-white: #FFFFFF;
    --monks-portfolio-showcase-border: #E6EDF5;
    --monks-portfolio-showcase-container: 1660px;
    --monks-portfolio-showcase-gutter: clamp(20px, 5vw, 120px);
    --monks-portfolio-showcase-radius-card: 20px;
    --monks-portfolio-showcase-media-h: clamp(180px, 13vw, 250px);
    --monks-portfolio-showcase-ease: var(--anaz-ease, cubic-bezier(0.22, 1, 0.36, 1));

    /* Grid */
    --monks-portfolio-showcase-cols-desktop: 4;
    --monks-portfolio-showcase-cols-tablet: 2;
    --monks-portfolio-showcase-cols-mobile: 1;
    --monks-portfolio-showcase-gap: clamp(16px, 1.6vw, 28px);
    --monks-portfolio-showcase-row-gap: var(--monks-portfolio-showcase-gap);

    /* Filters (normal / hover / active) */
    --monks-portfolio-showcase-filter-bg: var(--monks-portfolio-showcase-blue-soft);
    --monks-portfolio-showcase-filter-color: var(--monks-portfolio-showcase-navy-2);
    --monks-portfolio-showcase-filter-border: transparent;
    --monks-portfolio-showcase-filter-hover-bg: var(--monks-portfolio-showcase-white);
    --monks-portfolio-showcase-filter-hover-color: var(--monks-portfolio-showcase-filter-color);
    --monks-portfolio-showcase-filter-hover-border: #D3E0EE;
    --monks-portfolio-showcase-filter-active-bg: var(--monks-portfolio-showcase-orange);
    --monks-portfolio-showcase-filter-active-color: var(--monks-portfolio-showcase-white);
    --monks-portfolio-showcase-filter-active-shadow: 0 10px 22px rgba(255, 89, 8, 0.25);
    --monks-portfolio-showcase-filter-radius: 999px;
    --monks-portfolio-showcase-filter-h: 48px;
    --monks-portfolio-showcase-filter-px: 24px;
    --monks-portfolio-showcase-filter-gap: 12px;

    /* Cards */
    --monks-portfolio-showcase-card-lift: 4px;
    --monks-portfolio-showcase-img-scale: 1.04;
    --monks-portfolio-showcase-accent-blue: rgba(214, 228, 245, 0.85);

    /* CTA button */
    --monks-portfolio-showcase-btn-bg: var(--monks-portfolio-showcase-orange);
    --monks-portfolio-showcase-btn-color: var(--monks-portfolio-showcase-white);
    --monks-portfolio-showcase-btn-hover-bg: var(--monks-portfolio-showcase-orange-dark);
    --monks-portfolio-showcase-btn-hover-color: var(--monks-portfolio-showcase-btn-color);

    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(56px, 6vw, 88px) 0 clamp(64px, 7vw, 96px);
    background:
        radial-gradient(60% 50% at 50% 62%, rgba(226, 236, 248, 0.7) 0%, rgba(226, 236, 248, 0) 70%),
        linear-gradient(180deg, var(--monks-portfolio-showcase-bg) 0%, #F3F7FC 100%);
    font-family: var(--anaz-font, "Manrope", "Inter", "Segoe UI", Arial, sans-serif);
    color: var(--monks-portfolio-showcase-text);
}

.monks-portfolio-showcase *,
.monks-portfolio-showcase *::before,
.monks-portfolio-showcase *::after {
    box-sizing: border-box;
}

/* ---- Background geometry (decorative) -------------------------------------- */

.monks-portfolio-showcase::before,
.monks-portfolio-showcase::after {
    content: "";
    position: absolute;
    z-index: -1;
    pointer-events: none;
}

/* Large pale-blue diagonals: one upper-right, one lower-left */
.monks-portfolio-showcase::before {
    inset: 0;
    background:
        linear-gradient(115deg, transparent 0 62%, rgba(220, 232, 246, 0.55) 62% 70%, transparent 70% 100%),
        linear-gradient(115deg, rgba(225, 236, 248, 0.6) 0 6%, transparent 6% 100%);
}

/* Small orange wedges near the lower-left and lower-right edges */
.monks-portfolio-showcase::after {
    inset: auto 0 0 0;
    height: 220px;
    background:
        linear-gradient(115deg, transparent 0 calc(100% - 90px), rgba(255, 89, 8, 0.12) calc(100% - 90px) calc(100% - 50px), transparent calc(100% - 50px) 100%),
        linear-gradient(115deg, rgba(255, 89, 8, 0.1) 0 36px, transparent 36px 100%);
}

.monks-portfolio-showcase.monks-portfolio-showcase--no-decor::before,
.monks-portfolio-showcase.monks-portfolio-showcase--no-decor::after {
    display: none;
}

.monks-portfolio-showcase .monks-portfolio-showcase__container {
    max-width: calc(var(--monks-portfolio-showcase-container) + 2 * var(--monks-portfolio-showcase-gutter));
    margin: 0 auto;
    padding: 0 var(--monks-portfolio-showcase-gutter);
}

/* ---- Heading ---------------------------------------------------------------- */

.monks-portfolio-showcase .monks-portfolio-showcase__heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    margin-bottom: clamp(28px, 3vw, 44px);
}

.monks-portfolio-showcase .monks-portfolio-showcase__label {
    display: flex;
    align-items: center;
    gap: 18px;
    margin: 0 0 18px;
    color: var(--monks-portfolio-showcase-navy-2);
    font-size: clamp(13px, 0.95vw, 16px);
    font-weight: 600;
    letter-spacing: 0.2em;
    line-height: 1.2;
}

.monks-portfolio-showcase .monks-portfolio-showcase__label::before {
    content: "";
    flex: 0 0 auto;
    width: 56px;
    height: 2px;
    background: var(--monks-portfolio-showcase-orange);
}

.monks-portfolio-showcase .monks-portfolio-showcase__title {
    margin: 0;
    color: var(--monks-portfolio-showcase-navy);
    font-family: inherit;
    font-size: clamp(2.2rem, 0.8rem + 3.6vw, 5rem);
    font-weight: 800;
    line-height: 1.02;
    letter-spacing: -0.035em;
}

.monks-portfolio-showcase .monks-portfolio-showcase__title-accent {
    color: var(--monks-portfolio-showcase-orange);
}

.monks-portfolio-showcase .monks-portfolio-showcase__description p {
    max-width: 720px;
    margin: 0;
    font-size: clamp(16px, 1.15vw, 20px);
    line-height: 1.6;
}

/* ---- Filters ---------------------------------------------------------------- */

/* Scrolls sideways when it cannot fit; negative margin lets it reach the edge */
.monks-portfolio-showcase .monks-portfolio-showcase-filters {
    display: flex;
    gap: var(--monks-portfolio-showcase-filter-gap);
    margin: 0 calc(-1 * var(--monks-portfolio-showcase-gutter)) clamp(28px, 3vw, 40px);
    padding: 4px var(--monks-portfolio-showcase-gutter);
    overflow-x: auto;
    scroll-padding-inline: var(--monks-portfolio-showcase-gutter);
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.monks-portfolio-showcase .monks-portfolio-showcase-filters::-webkit-scrollbar {
    display: none;
}

/* Optional layout: pills wrap onto several lines inside the container */
.monks-portfolio-showcase.monks-portfolio-showcase--filters-wrap .monks-portfolio-showcase-filters {
    flex-wrap: wrap;
    margin-left: 0;
    margin-right: 0;
    padding: 4px 0;
    overflow: visible;
}

/* Also resets Elementor kit / browser button styles in every state */
.monks-portfolio-showcase .monks-portfolio-showcase-filter,
.monks-portfolio-showcase .monks-portfolio-showcase-filter:focus {
    flex: 0 0 auto;
    min-height: var(--monks-portfolio-showcase-filter-h);
    margin: 0;
    padding: 0 var(--monks-portfolio-showcase-filter-px);
    border: 1px solid var(--monks-portfolio-showcase-filter-border);
    border-radius: var(--monks-portfolio-showcase-filter-radius);
    background: var(--monks-portfolio-showcase-filter-bg);
    color: var(--monks-portfolio-showcase-filter-color);
    font: inherit;
    font-size: clamp(15px, 1.05vw, 18px);
    font-weight: 500;
    letter-spacing: normal;
    text-transform: none;
    white-space: nowrap;
    box-shadow: none;
    cursor: pointer;
    transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.monks-portfolio-showcase .monks-portfolio-showcase-filter:hover {
    border-color: var(--monks-portfolio-showcase-filter-hover-border);
    background: var(--monks-portfolio-showcase-filter-hover-bg);
    color: var(--monks-portfolio-showcase-filter-hover-color);
}

.monks-portfolio-showcase .monks-portfolio-showcase-filter.is-active {
    background: var(--monks-portfolio-showcase-filter-active-bg);
    color: var(--monks-portfolio-showcase-filter-active-color);
    font-weight: 600;
    box-shadow: var(--monks-portfolio-showcase-filter-active-shadow);
}

.monks-portfolio-showcase .monks-portfolio-showcase-filter:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--monks-portfolio-showcase-white), 0 0 0 5px var(--monks-portfolio-showcase-orange);
}

/* ---- Cards ---------------------------------------------------------------- */

.monks-portfolio-showcase .monks-portfolio-showcase-grid {
    display: grid;
    grid-template-columns: repeat(var(--monks-portfolio-showcase-cols-mobile), minmax(0, 1fr));
    column-gap: var(--monks-portfolio-showcase-gap);
    row-gap: var(--monks-portfolio-showcase-row-gap);
}

.monks-portfolio-showcase .monks-portfolio-showcase-card {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--monks-portfolio-showcase-border);
    border-radius: var(--monks-portfolio-showcase-radius-card);
    background: var(--monks-portfolio-showcase-white);
    box-shadow: 0 14px 34px rgba(9, 47, 96, 0.06);
    transition: transform 0.35s var(--monks-portfolio-showcase-ease), box-shadow 0.35s ease, border-color 0.35s ease;
}

.monks-portfolio-showcase .monks-portfolio-showcase-card[hidden] {
    display: none;
}

.monks-portfolio-showcase .monks-portfolio-showcase-card:hover {
    transform: translateY(calc(-1 * var(--monks-portfolio-showcase-card-lift)));
    box-shadow: 0 22px 44px rgba(9, 47, 96, 0.11);
}

.monks-portfolio-showcase .monks-portfolio-showcase-card__media {
    position: relative;
    height: var(--monks-portfolio-showcase-media-h);
    overflow: hidden;
    background: linear-gradient(135deg, #DCE6F1, #F2F6FA); /* shown if the image fails */
}

.monks-portfolio-showcase .monks-portfolio-showcase-card__img {
    display: block;
    width: 100%;
    max-width: none;
    height: 100%;
    margin: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    object-fit: cover;
    object-position: center;
    transition: transform 0.6s var(--monks-portfolio-showcase-ease);
}

.monks-portfolio-showcase .monks-portfolio-showcase-card:hover .monks-portfolio-showcase-card__img {
    transform: scale(var(--monks-portfolio-showcase-img-scale));
}

/* Diagonal accents at the lower-right of the image: pale blue + orange */
.monks-portfolio-showcase .monks-portfolio-showcase-card__media::before,
.monks-portfolio-showcase .monks-portfolio-showcase-card__media::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    height: 46%;
    pointer-events: none;
}

.monks-portfolio-showcase .monks-portfolio-showcase-card__media::before {
    width: 34%;
    background: var(--monks-portfolio-showcase-accent-blue);
    clip-path: polygon(78% 0, 82% 0, 38% 100%, 34% 100%);
}

.monks-portfolio-showcase .monks-portfolio-showcase-card__media::after {
    width: 22%;
    background: linear-gradient(180deg, var(--monks-portfolio-showcase-orange-light) 0%, var(--monks-portfolio-showcase-orange) 100%);
    clip-path: polygon(100% 0, 100% 100%, 46% 100%);
}

.monks-portfolio-showcase.monks-portfolio-showcase--no-accents .monks-portfolio-showcase-card__media::before,
.monks-portfolio-showcase.monks-portfolio-showcase--no-accents .monks-portfolio-showcase-card__media::after {
    display: none;
}

.monks-portfolio-showcase .monks-portfolio-showcase-card__body {
    padding: clamp(16px, 1.4vw, 22px) clamp(18px, 1.6vw, 26px) clamp(18px, 1.6vw, 24px);
}

.monks-portfolio-showcase .monks-portfolio-showcase-card__title {
    margin: 0 0 4px;
    color: var(--monks-portfolio-showcase-navy);
    font-family: inherit;
    font-size: clamp(18px, 1.25vw, 22px);
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: normal;
}

.monks-portfolio-showcase .monks-portfolio-showcase-card__category {
    margin: 0;
    font-size: clamp(14px, 0.95vw, 16px);
    line-height: 1.4;
}

/* Linked cards: the title link stretches over the whole card */
.monks-portfolio-showcase .monks-portfolio-showcase-card__link,
.monks-portfolio-showcase .monks-portfolio-showcase-card__link:hover,
.monks-portfolio-showcase .monks-portfolio-showcase-card__link:focus {
    color: inherit;
    text-decoration: none;
    box-shadow: none;
    outline: none;
}

.monks-portfolio-showcase .monks-portfolio-showcase-card__link::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    border-radius: inherit;
}

.monks-portfolio-showcase .monks-portfolio-showcase-card__link:focus-visible::after {
    box-shadow: inset 0 0 0 3px var(--monks-portfolio-showcase-orange);
}

.monks-portfolio-showcase .monks-portfolio-showcase__empty {
    margin: 8px 0 0;
    padding: 28px;
    border: 1px dashed #D3E0EE;
    border-radius: var(--monks-portfolio-showcase-radius-card);
    background: rgba(255, 255, 255, 0.7);
    color: var(--monks-portfolio-showcase-text);
    font-size: 16px;
    text-align: center;
}

.monks-portfolio-showcase .monks-portfolio-showcase__empty[hidden] {
    display: none;
}

/* ---- CTA ---------------------------------------------------------------- */

.monks-portfolio-showcase .monks-portfolio-showcase__cta {
    display: flex;
    justify-content: center;
    margin-top: clamp(32px, 3.4vw, 48px);
}

.monks-portfolio-showcase .monks-portfolio-showcase-button,
.monks-portfolio-showcase .monks-portfolio-showcase-button:focus {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    min-width: min(290px, 100%);
    min-height: 62px;
    padding: 0 36px;
    border-radius: 999px;
    background: var(--monks-portfolio-showcase-btn-bg);
    color: var(--monks-portfolio-showcase-btn-color);
    font-size: 18px;
    font-weight: 600;
    text-decoration: none;
    box-shadow: 0 14px 28px rgba(255, 89, 8, 0.28);
    transition: background-color 0.28s ease, color 0.28s ease, box-shadow 0.28s ease;
}

.monks-portfolio-showcase .monks-portfolio-showcase-button__icon {
    display: inline-flex;
    flex: 0 0 auto;
    transition: transform 0.28s ease;
}

.monks-portfolio-showcase .monks-portfolio-showcase-button__icon i {
    font-size: 20px;
    line-height: 1;
}

.monks-portfolio-showcase .monks-portfolio-showcase-button__icon svg:not([width]) {
    width: 22px;
    height: 22px;
    fill: currentColor;
}

.monks-portfolio-showcase .monks-portfolio-showcase-button:hover {
    background: var(--monks-portfolio-showcase-btn-hover-bg);
    color: var(--monks-portfolio-showcase-btn-hover-color);
    text-decoration: none;
    box-shadow: 0 18px 34px rgba(255, 89, 8, 0.34);
}

.monks-portfolio-showcase .monks-portfolio-showcase-button:hover .monks-portfolio-showcase-button__icon {
    transform: translateX(5px);
}

.monks-portfolio-showcase .monks-portfolio-showcase-button:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--monks-portfolio-showcase-white), 0 0 0 5px var(--monks-portfolio-showcase-orange);
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (min-width: 600px) {
    .monks-portfolio-showcase .monks-portfolio-showcase-grid {
        grid-template-columns: repeat(var(--monks-portfolio-showcase-cols-tablet), minmax(0, 1fr));
    }
}

@media (min-width: 1200px) {
    .monks-portfolio-showcase .monks-portfolio-showcase__heading {
        grid-template-columns: minmax(0, 1fr) minmax(0, 0.85fr);
        align-items: end;
        gap: 48px;
    }

    .monks-portfolio-showcase .monks-portfolio-showcase__heading--single {
        grid-template-columns: minmax(0, 1fr);
    }

    .monks-portfolio-showcase .monks-portfolio-showcase__description {
        padding-bottom: 8px;
    }

    .monks-portfolio-showcase .monks-portfolio-showcase-grid {
        grid-template-columns: repeat(var(--monks-portfolio-showcase-cols-desktop), minmax(0, 1fr));
    }
}

@media (max-width: 599px) {
    .monks-portfolio-showcase {
        --monks-portfolio-showcase-media-h: clamp(190px, 56vw, 240px);
        --monks-portfolio-showcase-filter-h: 44px;
        --monks-portfolio-showcase-filter-px: 18px;
    }

    .monks-portfolio-showcase::after {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .monks-portfolio-showcase .monks-portfolio-showcase-card:hover,
    .monks-portfolio-showcase .monks-portfolio-showcase-card:hover .monks-portfolio-showcase-card__img {
        transform: none;
    }
}
