
@import url('https://fonts.googleapis.com/css2?family=El+Messiri:wght@400..700&display=swap');

/* 1. Variables & Colors */
:root {
    /* ===== COLORS ===== */
    --ebprvw1-bg: #f0fdf9;
    --ebprvw1-shape1-bg: #14b8a6;
    --ebprvw1-shape2-bg: #059669;

    --ebprvw1-eyebrow-text: #0d9488;
    --ebprvw1-title-text: #052e2b;
    --ebprvw1-subtitle-text: #64748b;

    --ebprvw1-card-bg: #ffffff;
    --ebprvw1-card-border: #d1fae5;
    --ebprvw1-card-shadow: 0 .5rem 1.5rem rgba(4, 47, 46, .08);
    --ebprvw1-card-shadow-hover: 0 1.25rem 2.5rem rgba(4, 47, 46, .18);

    --ebprvw1-card-category-bg: linear-gradient(90deg, #14b8a6, #059669);
    --ebprvw1-card-category-text: #ffffff;

    --ebprvw1-card-overlay-bg: linear-gradient(180deg, rgba(5,46,43,0) 40%, rgba(5,46,43,.72) 100%);
    --ebprvw1-card-overlay-icon-bg: rgba(255, 255, 255, .92);
    --ebprvw1-card-overlay-icon-color: #0d9488;

    --ebprvw1-card-title-text: #052e2b;
    --ebprvw1-card-desc-text: #64748b;

    /* ===== TYPOGRAPHY ===== */
    --ebprvw1-font-family: "El Messiri", sans-serif;
    --ebprvw1-eyebrow-font-size: clamp(.75rem, 3vw, .85rem);
    --ebprvw1-eyebrow-font-weight: 700;
    --ebprvw1-eyebrow-letter-spacing: .05em;
    --ebprvw1-title-font-size: clamp(1.6rem, 5vw, 2.4rem);
    --ebprvw1-title-font-weight: 700;
    --ebprvw1-title-line-height: 1.3;
    --ebprvw1-subtitle-font-size: clamp(.9rem, 3vw, 1.05rem);
    --ebprvw1-subtitle-line-height: 1.7;
    --ebprvw1-card-title-font-size: clamp(1.05rem, 4vw, 1.2rem);
    --ebprvw1-card-title-font-weight: 700;
    --ebprvw1-card-desc-font-size: clamp(.82rem, 3vw, .9rem);
    --ebprvw1-card-desc-line-height: 1.65;
    --ebprvw1-card-category-font-size: .72rem;
    --ebprvw1-card-category-font-weight: 700;

    /* ===== SPACING ===== */
    --ebprvw1-padding-top-desktop: 4rem;
    --ebprvw1-padding-bottom-desktop: 4rem;
    --ebprvw1-header-max-width: 40rem;
    --ebprvw1-header-margin-bottom-desktop: 2.5rem;
    --ebprvw1-eyebrow-margin-bottom: .75rem;
    --ebprvw1-title-margin-bottom: .75rem;

    /* ===== LAYOUT ===== */
    --ebprvw1-shape1-size: 14rem;
    --ebprvw1-shape1-top: -4rem;
    --ebprvw1-shape1-right: -4rem;
    --ebprvw1-shape2-size: 12rem;
    --ebprvw1-shape2-bottom: -3rem;
    --ebprvw1-shape2-left: -3rem;
    --ebprvw1-shape-radius: 50%;
    --ebprvw1-shape-filter: blur(3rem);
    --ebprvw1-shape-opacity: .3;
    --ebprvw1-shape-z-index: 0;
    --ebprvw1-container-max-width-desktop: 90rem;
    --ebprvw1-container-padding-inline-desktop: 1.25rem;
    --ebprvw1-container-z-index: 1;

    /* ===== GRID ===== */
    --ebprvw1-grid-columns: 1fr;
    --ebprvw1-grid-columns-tablet: repeat(2, 1fr);
    --ebprvw1-grid-columns-laptop: repeat(3, 1fr);
    --ebprvw1-grid-gap-desktop: 1.75rem;

    /* ===== CARD ===== */
    --ebprvw1-card-radius: 1.25rem;
    --ebprvw1-card-image-aspect: 4 / 3;
    --ebprvw1-card-image-scale-hover: 1.08;
    --ebprvw1-card-body-padding: 1.25rem 1.35rem 1.5rem;
    --ebprvw1-card-category-top: .9rem;
    --ebprvw1-card-category-right: .9rem;
    --ebprvw1-card-category-padding: .3rem .75rem;
    --ebprvw1-card-category-radius: 1.5rem;
    --ebprvw1-card-overlay-icon-size: 3rem;
    --ebprvw1-card-overlay-icon-font-size: 1.1rem;
    --ebprvw1-card-title-margin-bottom: .4rem;

    /* ===== ANIMATION ===== */
    --ebprvw1-animation-duration: .6s;
    --ebprvw1-fade-up-distance: 1.2rem;
    --ebprvw1-card-animation-delay-2: .08s;
    --ebprvw1-card-animation-delay-3: .16s;
    --ebprvw1-card-transition: transform .35s ease, box-shadow .35s ease;
    --ebprvw1-card-image-transition: transform .5s ease;
    --ebprvw1-card-overlay-transition: opacity .35s ease;
    --ebprvw1-card-transform-hover: translateY(-.4rem);

    /* ===== RESPONSIVE ===== */
    --ebprvw1-header-margin-bottom-tablet-lg: 3rem;
    --ebprvw1-container-padding-inline-desktop-lg: 2.5rem;
    --ebprvw1-grid-gap-desktop-xl: 2.25rem;
    --ebprvw1-container-max-width-wide: 100rem;
    --ebprvw1-padding-top-ultra: 6rem;
    --ebprvw1-padding-bottom-ultra: 6rem;
}

/* 2. Reset داخل الـ namespace */
.ebprvw1, .ebprvw1 *, .ebprvw1 *::before, .ebprvw1 *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

/* 3. Base Styles — Mobile */
.ebprvw1 {
    position: relative;
    overflow: hidden;
    background: var(--ebprvw1-bg);
    padding-top: var(--ebprvw1-padding-top-desktop);
    padding-bottom: var(--ebprvw1-padding-bottom-desktop);
    font-family: var(--ebprvw1-font-family);
    direction: rtl;
}

.ebprvw1__shape-1, .ebprvw1__shape-2 {
    position: absolute;
    border-radius: var(--ebprvw1-shape-radius);
    filter: var(--ebprvw1-shape-filter);
    opacity: var(--ebprvw1-shape-opacity);
    pointer-events: none;
    z-index: var(--ebprvw1-shape-z-index);
}
.ebprvw1__shape-1 { width: var(--ebprvw1-shape1-size); height: var(--ebprvw1-shape1-size); top: var(--ebprvw1-shape1-top); right: var(--ebprvw1-shape1-right); background: var(--ebprvw1-shape1-bg); }
.ebprvw1__shape-2 { width: var(--ebprvw1-shape2-size); height: var(--ebprvw1-shape2-size); bottom: var(--ebprvw1-shape2-bottom); left: var(--ebprvw1-shape2-left); background: var(--ebprvw1-shape2-bg); }

.ebprvw1__container {
    position: relative;
    z-index: var(--ebprvw1-container-z-index);
    max-width: var(--ebprvw1-container-max-width-desktop);
    margin: 0 auto;
    padding-inline: var(--ebprvw1-container-padding-inline-desktop);
}

.ebprvw1__header { text-align: center; max-width: var(--ebprvw1-header-max-width); margin: 0 auto var(--ebprvw1-header-margin-bottom-desktop); }
.ebprvw1__eyebrow {
    display: inline-block;
    font-size: var(--ebprvw1-eyebrow-font-size);
    font-weight: var(--ebprvw1-eyebrow-font-weight);
    letter-spacing: var(--ebprvw1-eyebrow-letter-spacing);
    color: var(--ebprvw1-eyebrow-text);
    margin-bottom: var(--ebprvw1-eyebrow-margin-bottom);
}
.ebprvw1__title {
    font-size: var(--ebprvw1-title-font-size);
    font-weight: var(--ebprvw1-title-font-weight);
    color: var(--ebprvw1-title-text);
    margin-bottom: var(--ebprvw1-title-margin-bottom);
    line-height: var(--ebprvw1-title-line-height);
}
.ebprvw1__subtitle {
    font-size: var(--ebprvw1-subtitle-font-size);
    color: var(--ebprvw1-subtitle-text);
    line-height: var(--ebprvw1-subtitle-line-height);
}

/* Grid & Cards */
.ebprvw1__grid {
    display: grid;
    grid-template-columns: var(--ebprvw1-grid-columns);
    gap: var(--ebprvw1-grid-gap-desktop);
}

.ebprvw1__card {
    position: relative;
    overflow: hidden;
    background: var(--ebprvw1-card-bg);
    border: 1px solid var(--ebprvw1-card-border);
    border-radius: var(--ebprvw1-card-radius);
    box-shadow: var(--ebprvw1-card-shadow);
    transition: var(--ebprvw1-card-transition);
    animation: ebprvw1-fade-up var(--ebprvw1-animation-duration) ease both;
}
.ebprvw1__card:nth-child(2) { animation-delay: var(--ebprvw1-card-animation-delay-2); }
.ebprvw1__card:nth-child(3) { animation-delay: var(--ebprvw1-card-animation-delay-3); }
.ebprvw1__card:hover {
    box-shadow: var(--ebprvw1-card-shadow-hover);
    transform: var(--ebprvw1-card-transform-hover);
}

@keyframes ebprvw1-fade-up {
    from { opacity: 0; transform: translateY(var(--ebprvw1-fade-up-distance)); }
    to { opacity: 1; transform: translateY(0); }
}

.ebprvw1__card-image-wrap {
    position: relative;
    overflow: hidden;
    aspect-ratio: var(--ebprvw1-card-image-aspect);
}
.ebprvw1__card-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: var(--ebprvw1-card-image-transition);
}
.ebprvw1__card:hover .ebprvw1__card-image {
    transform: scale(var(--ebprvw1-card-image-scale-hover));
}

.ebprvw1__card-category {
    position: absolute;
    top: var(--ebprvw1-card-category-top);
    right: var(--ebprvw1-card-category-right);
    background: var(--ebprvw1-card-category-bg);
    color: var(--ebprvw1-card-category-text);
    font-size: var(--ebprvw1-card-category-font-size);
    font-weight: var(--ebprvw1-card-category-font-weight);
    padding: var(--ebprvw1-card-category-padding);
    border-radius: var(--ebprvw1-card-category-radius);
    white-space: nowrap;
    z-index: 2;
}

.ebprvw1__card-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding-bottom: 1.25rem;
    background: var(--ebprvw1-card-overlay-bg);
    opacity: 0;
    transition: var(--ebprvw1-card-overlay-transition);
}
.ebprvw1__card:hover .ebprvw1__card-overlay { opacity: 1; }
.ebprvw1__card-overlay i {
    width: var(--ebprvw1-card-overlay-icon-size);
    height: var(--ebprvw1-card-overlay-icon-size);
    border-radius: 50%;
    background: var(--ebprvw1-card-overlay-icon-bg);
    color: var(--ebprvw1-card-overlay-icon-color);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--ebprvw1-card-overlay-icon-font-size);
}

.ebprvw1__card-body { padding: var(--ebprvw1-card-body-padding); }
.ebprvw1__card-title {
    font-size: var(--ebprvw1-card-title-font-size);
    font-weight: var(--ebprvw1-card-title-font-weight);
    color: var(--ebprvw1-card-title-text);
    margin-bottom: var(--ebprvw1-card-title-margin-bottom);
}
.ebprvw1__card-desc {
    font-size: var(--ebprvw1-card-desc-font-size);
    line-height: var(--ebprvw1-card-desc-line-height);
    color: var(--ebprvw1-card-desc-text);
}

/* 4. Breakpoints */
@media (min-width: 601px) {
    .ebprvw1__header { margin-bottom: var(--ebprvw1-header-margin-bottom-tablet-lg); }
    .ebprvw1__grid { grid-template-columns: var(--ebprvw1-grid-columns-tablet); }
}
@media (min-width: 769px) {
    .ebprvw1__grid { grid-template-columns: var(--ebprvw1-grid-columns-laptop); }
}
@media (min-width: 1025px) {
    .ebprvw1__container { padding-inline: var(--ebprvw1-container-padding-inline-desktop-lg); }
}
@media (min-width: 1281px) {
    .ebprvw1__grid { gap: var(--ebprvw1-grid-gap-desktop-xl); }
}
@media (min-width: 1441px) {
    .ebprvw1__container { max-width: var(--ebprvw1-container-max-width-wide); }
}
@media (min-width: 1921px) {
    .ebprvw1 { padding-top: var(--ebprvw1-padding-top-ultra); padding-bottom: var(--ebprvw1-padding-bottom-ultra); }
}

@media (max-width: 768px) {
    .ebprvw1 { padding-top: 1.75rem !important; padding-bottom: 1.75rem !important; }
    .ebprvw1__header { margin-bottom: 1.25rem !important; }
    .ebprvw1__container { padding-inline: 0.75rem !important; }
    .ebprvw1__grid { gap: 1.1rem !important; }
}
@media (max-width: 480px) {
    .ebprvw1__container { padding-inline: 0.625rem !important; }
}
@media (max-width: 380px) {
    .ebprvw1__container { padding-inline: 0.5rem !important; }
}

/* 5. Modal / Lightbox — preview on card click */
.ebprvw1__card--clickable { cursor: pointer; }
.ebprvw1__card--clickable:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.ebprvw1__modal { position: fixed; inset: 0; z-index: 9999; display: none; align-items: center; justify-content: center; padding: 1rem; }
.ebprvw1__modal.is-open { display: flex; }
.ebprvw1__modal-backdrop { position: absolute; inset: 0; background: rgba(15,23,42,.82); backdrop-filter: blur(4px); }
.ebprvw1__modal-dialog { position: relative; z-index: 1; background: #fff; border-radius: 1rem; overflow: hidden; max-width: min(900px,95vw); max-height: 90vh; display: flex; flex-direction: column; box-shadow: 0 25px 50px -12px rgba(0,0,0,.5); animation: ebprvw1-modal-in .25s ease; }
@keyframes ebprvw1-modal-in { from { opacity: 0; transform: scale(.96) translateY(8px); } to { opacity: 1; transform: scale(1) translateY(0); } }
.ebprvw1__modal-close { position: absolute; top: .6rem; left: .6rem; width: 2.2rem; height: 2.2rem; border-radius: 50%; border: none; background: rgba(15,23,42,.78); color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 1rem; z-index: 2; transition: background .2s; }
.ebprvw1__modal-close:hover { background: rgba(15,23,42,1); }
html[dir="ltr"] .ebprvw1__modal-close { left: auto; right: .6rem; }
.ebprvw1__modal-image { display: block; width: 100%; max-width: 900px; max-height: min(70vh,700px); object-fit: contain; background: #0f172a; }
.ebprvw1__modal-caption { padding: 1rem 1.25rem 1.25rem; background: #fff; text-align: start; }
.ebprvw1__modal-category { display: inline-block; font-size: .72rem; font-weight: 700; padding: .25rem .65rem; border-radius: 1.5rem; background: var(--ebprvw1-card-category-bg, linear-gradient(90deg,#00b4d8,#0077b6)); color: var(--ebprvw1-card-category-text,#fff); margin-bottom: .5rem; }
.ebprvw1__modal-title { font-family: var(--ebprvw1-font-family,"El Messiri",sans-serif); font-size: 1.1rem; font-weight: 700; color: #0f172a; margin: 0 0 .35rem; line-height: 1.4; }
.ebprvw1__modal-desc { font-family: var(--ebprvw1-font-family,"El Messiri",sans-serif); font-size: .9rem; color: #64748b; line-height: 1.6; margin: 0; }
@media (max-width: 640px) { .ebprvw1__modal { padding: .5rem; } .ebprvw1__modal-dialog { max-width: 98vw; } .ebprvw1__modal-image { max-height: 62vh; } }
