/**
 * Feature Cards Block Styles
 * Uses Core Framework CSS variables
 * BEM naming convention: .feature-cards__element--modifier
 */

/* ==========================================================================
   BASE CONTAINER
   ========================================================================== */

.feature-cards {
    --fc-gap: var(--space-m, 24px);
    --fc-padding: var(--space-l, 32px);
    --fc-radius: var(--radius-l, 24px);
    --fc-icon-size: 48px;
    --fc-transition: 0.3s ease;

    width: 100%;
    max-width: var(--max-screen-width, 1400px);
    margin: var(--space-2xl, 48px) auto;
    padding: 0 var(--space-m, 24px);
}

/* Reduced top margin when following .tools__container-info */
.tools__container-info + .feature-cards {
    margin-top: var(--space-l, 24px);
}

/* ==========================================================================
   SECTION TITLE
   ========================================================================== */

.feature-cards__section-title {
    font-size: var(--text-2xl, 1.75rem);
    text-align: center;
    margin: 0 0 var(--space-xl, 40px) 0;
}

/* Title color variants */
.feature-cards__section-title--primary {
    color: var(--primary, #633368);
}

.feature-cards__section-title--secondary {
    color: var(--secondary, #0D7377);
}

.feature-cards__section-title--tertiary {
    color: var(--tertiary, #14919B);
}

.feature-cards__section-title--black {
    color: var(--black, #000000);
}

/* ==========================================================================
   GRID LAYOUT
   ========================================================================== */

.feature-cards__grid {
    display: grid;
    gap: var(--fc-gap);
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    grid-auto-flow: dense;
    grid-auto-rows: minmax(180px, auto);
}

/* Column modifiers - desktop */
@media (min-width: 1024px) {
    .feature-cards--cols-2 .feature-cards__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .feature-cards--cols-3 .feature-cards__grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .feature-cards--cols-4 .feature-cards__grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* Tablet: 2 columns max */
@media (min-width: 640px) and (max-width: 1023px) {
    .feature-cards--cols-3 .feature-cards__grid,
    .feature-cards--cols-4 .feature-cards__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .feature-cards__grid {
        gap: var(--space-l, 32px);
    }
}

/* Mobile: 1 column */
@media (max-width: 639px) {
    .feature-cards__grid {
        grid-template-columns: 1fr;
        gap: var(--space-l, 32px);
    }
}

/* ==========================================================================
   CARD BASE
   ========================================================================== */

.feature-cards__item {
    display: flex;
    flex-direction: column;
    gap: var(--space-s, 16px);
    padding: var(--fc-padding);
    border-radius: var(--fc-radius);
    background-color: var(--bg-body-l-4, #f5f5f5);
    border: 1px solid transparent;
    transition:
        transform var(--fc-transition),
        box-shadow var(--fc-transition),
        border-color var(--fc-transition);
    text-decoration: none;
    color: inherit;
}

.feature-cards__item:hover {
    transform: translateY(-4px);
    box-shadow:
        0 10px 25px -5px rgba(0, 0, 0, 0.1),
        0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

/* ==========================================================================
   COLOR SCHEMES
   ========================================================================== */

/* Primary Alt (Light Purple - dark text) */
.feature-cards__item--primary-alt {
    background-color: var(--primary--alt, #f0e6f2);
    border-color: var(--primary-l-3, #d4c0d8);
}

.feature-cards__item--primary-alt .feature-cards__title {
    color: var(--primary, #633368);
}

.feature-cards__item--primary-alt .feature-cards__description {
    color: var(--primary-d-2, #4a2650);
}

.feature-cards__item--primary-alt .feature-cards__arrow,
.feature-cards__item--primary-alt .feature-cards__link-label {
    color: var(--primary, #633368);
}

/* Primary (Dark Purple - light text) */
.feature-cards__item--primary {
    background-color: var(--primary, #633368);
    border-color: var(--primary-d-1, #4a2650);
}

.feature-cards__item--primary .feature-cards__title {
    color: var(--primary--alt, #f0e6f2);
}

.feature-cards__item--primary .feature-cards__description {
    color: var(--primary-l-3, #d4c0d8);
}

.feature-cards__item--primary .feature-cards__arrow,
.feature-cards__item--primary .feature-cards__link-label {
    color: var(--primary--alt, #f0e6f2);
}

.feature-cards__item--primary .feature-cards__icon img {
    filter: brightness(0) invert(1) opacity(0.7);
}

/* Secondary Alt (Light Mint - dark text) */
.feature-cards__item--secondary-alt {
    background-color: var(--secondary--alt, #e6f9f2);
    border-color: var(--secondary-l-2, #b8f0da);
}

.feature-cards__item--secondary-alt .feature-cards__title {
    color: var(--secondary-d-3, #1a5c42);
}

.feature-cards__item--secondary-alt .feature-cards__description {
    color: var(--secondary-d-2, #2c7a5f);
}

.feature-cards__item--secondary-alt .feature-cards__arrow,
.feature-cards__item--secondary-alt .feature-cards__link-label {
    color: var(--secondary-d-2, #2c7a5f);
}

/* Secondary (Mint - dark text) */
.feature-cards__item--secondary {
    background-color: var(--secondary, #A0EACE);
    border-color: var(--secondary-d-1, #7dd4b0);
}

.feature-cards__item--secondary .feature-cards__title {
    color: var(--secondary-d-3, #1a5c42);
}

.feature-cards__item--secondary .feature-cards__description {
    color: var(--secondary-d-2, #2c7a5f);
}

.feature-cards__item--secondary .feature-cards__arrow,
.feature-cards__item--secondary .feature-cards__link-label {
    color: var(--secondary-d-3, #1a5c42);
}

/* Neutral */
.feature-cards__item--neutral {
    background-color: var(--bg-body-l-4, #f5f5f5);
    border-color: var(--bg-body-d-2, #e0e0e0);
}

.feature-cards__item--neutral .feature-cards__title {
    color: var(--text-heading, #333);
}

.feature-cards__item--neutral .feature-cards__description {
    color: var(--text-body, #666);
}

/* Hover states - no border change */
.feature-cards__item--primary-alt:hover,
.feature-cards__item--primary:hover,
.feature-cards__item--secondary-alt:hover,
.feature-cards__item--secondary:hover,
.feature-cards__item--neutral:hover {
    border-color: transparent;
}

/* ==========================================================================
   CARD ELEMENTS
   ========================================================================== */

/* Icon */
.feature-cards__icon {
    width: var(--fc-icon-size);
    height: var(--fc-icon-size);
    flex-shrink: 0;
}

.feature-cards__icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* Thumbnail (full-width top image) */
.feature-cards__thumbnail {
    order: -1;
    margin: 0 calc(var(--fc-padding) * -1) var(--space-m, 24px);
    flex-shrink: 0;
    overflow: hidden;
    border-radius: var(--fc-radius) var(--fc-radius) 0 0;
}

.feature-cards__item .feature-cards__thumbnail img {
    width: 100%;
    height: 235px;
    object-fit: cover;
    object-position: center;
}

.feature-cards__item--has-thumbnail {
    padding-top: 0;
    overflow: hidden;
}

.feature-cards__item--has-thumbnail .feature-cards__content {
    padding-top: 0;
}

/* Content */
.feature-cards__content {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs, 8px);
    flex: 1;
}

/* Title */
.feature-cards__title {
    margin: 0;
    font-family: var(--text-heading-font-family, inherit);
    font-size: var(--text-l, 1.25rem);
    font-weight: 700;
    line-height: 1.3;
}

/* Description */
.feature-cards__description {
    margin: 0;
    font-size: var(--text-m, 1rem);
    line-height: 1.6;
}

.feature-cards__description ul,
.feature-cards__description ol {
    padding-left: 0;
    list-style-position: inside;
}

.feature-cards__description li {
    margin-bottom: 0.4em;
}

.feature-cards__description li > p {
    display: inline;
}

/* Link container with label and arrow */
.feature-cards__link {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-xs, 8px);
    margin-top: auto;
    opacity: 0.8;
    transition: opacity var(--fc-transition);
}

.feature-cards__link-label {
    font-size: var(--text-s, 0.875rem);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.feature-cards__item:hover .feature-cards__link {
    opacity: 1;
}

/* Arrow for clickable cards */
.feature-cards__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: transform var(--fc-transition);
}

.feature-cards__item:hover .feature-cards__arrow {
    transform: translateX(4px);
}

/* ==========================================================================
   CLICKABLE CARD STATES
   ========================================================================== */

.feature-cards__item--clickable {
    cursor: pointer;
}

.feature-cards__item--clickable:focus {
    outline: none;
    box-shadow:
        0 0 0 3px var(--bg-body, #fff),
        0 0 0 5px var(--primary, #633368);
}

.feature-cards__item--clickable:focus:not(:focus-visible) {
    box-shadow:
        0 10px 25px -5px rgba(0, 0, 0, 0.1),
        0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

.feature-cards__item--clickable:focus-visible {
    box-shadow:
        0 0 0 3px var(--bg-body, #fff),
        0 0 0 5px var(--primary, #633368);
}

/* ==========================================================================
   BENTO GRID - FUTURE EXPANSION
   Reserved classes for grid-span variations
   ========================================================================== */

/* Wide card: spans 2 columns */
@media (min-width: 768px) {
    .feature-cards__item--wide {
        grid-column: span 2;
    }
}

/* Tall card: spans 2 rows */
@media (min-width: 768px) {
    .feature-cards__item--tall {
        grid-row: span 2;
    }
}

/* Large card: 2x2 */
@media (min-width: 768px) {
    .feature-cards__item--large {
        grid-column: span 2;
        grid-row: span 2;
        padding: var(--space-2xl, 48px);
    }

    .feature-cards__item--large .feature-cards__icon {
        width: 64px;
        height: 64px;
    }

    .feature-cards__item--large .feature-cards__title {
        font-size: var(--text-2xl, 2rem);
    }

    .feature-cards__item--large .feature-cards__description {
        font-size: var(--text-l, 1.25rem);
    }
}

/* ==========================================================================
   TEXT POSITION (for tall/large cards)
   ========================================================================== */

/* Bottom position */
.feature-cards__item--text-bottom {
    justify-content: flex-end;
}

.feature-cards__item--text-bottom .feature-cards__content {
    flex: 0 0 auto;
}

/* Center position */
.feature-cards__item--text-center {
    justify-content: center;
}

.feature-cards__item--text-center .feature-cards__content {
    flex: 0 0 auto;
}

/* ==========================================================================
   BACKGROUND IMAGE SUPPORT
   ========================================================================== */

.feature-cards__item--has-image {
    position: relative;
    overflow: hidden;
    background-color: transparent;
}

.feature-cards__background {
    position: absolute;
    inset: 0;
    margin: 0;
    z-index: 0;
}

.feature-cards__background img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.feature-cards__item--has-image .feature-cards__content {
    position: relative;
    z-index: 2;
}

.feature-cards__item--has-image .feature-cards__link {
    position: relative;
    z-index: 2;
}

/* ==========================================================================
   DUOTONE TEXT COLORS
   Inherits from existing duotone-effect.css system
   ========================================================================== */

/* Cards with duotone get text color from the duotone system */
.feature-cards__item[data-duotone] .feature-cards__title,
.feature-cards__item[data-duotone] .feature-cards__description,
.feature-cards__item[data-duotone] .feature-cards__arrow,
.feature-cards__item[data-duotone] .feature-cards__link-label {
    color: var(--duotone-text-color, #fff);
}

/* Dark duotone variants - light text */
.feature-cards__item[data-duotone="duotone-primary"] .feature-cards__title,
.feature-cards__item[data-duotone="duotone-primary"] .feature-cards__description,
.feature-cards__item[data-duotone="duotone-primary"] .feature-cards__arrow,
.feature-cards__item[data-duotone="duotone-primary"] .feature-cards__link-label {
    color: var(--primary--alt, #f0e6f2);
}

.feature-cards__item[data-duotone="duotone-secondary"] .feature-cards__title,
.feature-cards__item[data-duotone="duotone-secondary"] .feature-cards__description,
.feature-cards__item[data-duotone="duotone-secondary"] .feature-cards__arrow,
.feature-cards__item[data-duotone="duotone-secondary"] .feature-cards__link-label {
    color: var(--secondary--alt, #e6f9f2);
}

/* Light duotone variants - dark text */
.feature-cards__item[data-duotone="duotone-primary-light"] .feature-cards__title,
.feature-cards__item[data-duotone="duotone-primary-light"] .feature-cards__description,
.feature-cards__item[data-duotone="duotone-primary-light"] .feature-cards__arrow,
.feature-cards__item[data-duotone="duotone-primary-light"] .feature-cards__link-label {
    color: var(--primary, #633368);
}

.feature-cards__item[data-duotone="duotone-secondary-light"] .feature-cards__title,
.feature-cards__item[data-duotone="duotone-secondary-light"] .feature-cards__description,
.feature-cards__item[data-duotone="duotone-secondary-light"] .feature-cards__arrow,
.feature-cards__item[data-duotone="duotone-secondary-light"] .feature-cards__link-label {
    color: var(--secondary-d-3, #1a5c42);
}

/* ==========================================================================
   REDUCED MOTION
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
    .feature-cards__item,
    .feature-cards__arrow {
        transition: none;
    }

    .feature-cards__item:hover {
        transform: none;
    }

    .feature-cards__item:hover .feature-cards__arrow {
        transform: none;
    }
}

/* ==========================================================================
   PRINT STYLES
   ========================================================================== */

@media print {
    .feature-cards {
        page-break-inside: avoid;
    }

    .feature-cards__item {
        box-shadow: none;
        border: 1px solid #ccc;
        break-inside: avoid;
    }

    .feature-cards__arrow {
        display: none;
    }
}

/* ==========================================================================
   GUTENBERG EDITOR ADJUSTMENTS
   ========================================================================== */

.editor-styles-wrapper .feature-cards {
    margin: var(--space-l, 32px) 0;
}

/* ==========================================================================
   TEXT COLOR OVERRIDES (must be last to override all other color rules)
   Force white/black text with subtle shadow for mixed background images
   ========================================================================== */

.feature-cards__item--text-white.feature-cards__item .feature-cards__title,
.feature-cards__item--text-white.feature-cards__item .feature-cards__description,
.feature-cards__item--text-white.feature-cards__item .feature-cards__arrow,
.feature-cards__item--text-white.feature-cards__item .feature-cards__link-label,
.feature-cards__item--text-white[data-duotone] .feature-cards__title,
.feature-cards__item--text-white[data-duotone] .feature-cards__description,
.feature-cards__item--text-white[data-duotone] .feature-cards__arrow,
.feature-cards__item--text-white[data-duotone] .feature-cards__link-label {
    color: #fff !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
}

.feature-cards__item--text-white .feature-cards__icon img {
    filter: brightness(0) invert(1) opacity(0.9) drop-shadow(0 1px 2px rgba(0, 0, 0, 0.15));
}

.feature-cards__item--text-black.feature-cards__item .feature-cards__title,
.feature-cards__item--text-black.feature-cards__item .feature-cards__description,
.feature-cards__item--text-black.feature-cards__item .feature-cards__arrow,
.feature-cards__item--text-black.feature-cards__item .feature-cards__link-label,
.feature-cards__item--text-black[data-duotone] .feature-cards__title,
.feature-cards__item--text-black[data-duotone] .feature-cards__description,
.feature-cards__item--text-black[data-duotone] .feature-cards__arrow,
.feature-cards__item--text-black[data-duotone] .feature-cards__link-label {
    color: #1a1a1a !important;
    text-shadow: 0 1px 2px rgba(255, 255, 255, 0.3);
}

.feature-cards__item--text-black .feature-cards__icon img {
    filter: brightness(0) opacity(0.9) drop-shadow(0 1px 2px rgba(255, 255, 255, 0.3));
}
