/* ========================================
   Donation Programs Premium - CSS
   Modern Islamic Luxury Design
   ======================================== */

:root {
    /* Color Palette */
    --dp-primary: #074620;
    /* Deep Emerald */
    --dp-primary-dark: #042b14;
    /* Darker Emerald */
    --dp-gold: #bd8e34;
    /* Rich Gold */
    --dp-gold-light: #e6c87e;
    /* Soft Gold */
    --dp-accent: #C9A52C;
    /* Bright Accent Gold */

    --dp-text-dark: #1a1a1a;
    --dp-text-grey: #666666;
    --dp-text-light: #999999;

    --dp-bg-light: #f8f9fa;
    /* Page Background */
    --dp-white: #ffffff;

    /* UI Variables */
    --dp-shadow-soft: 0 10px 40px rgba(0, 0, 0, 0.05);
    --dp-shadow-hover: 0 20px 50px rgba(7, 70, 32, 0.15);
    --dp-border-light: #e0e0e0;

    /* Typography */
    --font-heading: 'Droid Arabic Kufi', sans-serif;
    /* Assumed from header.css */
}

body.dp-body-lock {
    overflow: hidden !important;
    height: 100vh;
    height: 100dvh;
    touch-action: none;
    -webkit-overflow-scrolling: none;
    overscroll-behavior: none;
}


/* ================= Hero Section ================= */
.dp-hero {
    /* Deep Green Background with subtle pattern overlay logic */
    background: radial-gradient(circle at 50% 50%, #0A5C2B 0%, #074620 100%);
    position: relative;
    padding: 100px 0 140px;
    /* Extra padding at bottom for overlap */
    text-align: center;
    overflow: hidden;
}

/* Abstract geometric hint */
.dp-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: linear-gradient(30deg, rgba(255, 255, 255, 0.03) 12%, transparent 12.5%, transparent 87%, rgba(255, 255, 255, 0.03) 87.5%, rgba(255, 255, 255, 0.03)),
        linear-gradient(150deg, rgba(255, 255, 255, 0.03) 12%, transparent 12.5%, transparent 87%, rgba(255, 255, 255, 0.03) 87.5%, rgba(255, 255, 255, 0.03));
    background-size: 80px 140px;
    background-position: 0 0;
    opacity: 0.5;
}

.dp-hero h1 {
    color: var(--dp-white);
    font-family: var(--font-heading);
    font-size: 2.8rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
    position: relative;
    z-index: 2;
    text-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
}

.dp-hero p {
    color: rgba(255, 255, 255, 0.9);
    font-size: 1.2rem;
    max-width: 700px;
    margin: 0 auto;
    font-weight: 300;
    position: relative;
    z-index: 2;
    line-height: 1.8;
}

/* ================= Featured Programs (Overlap) ================= */
.dp-featured {
    margin-top: -80px;
    /* Overlap the Hero */
    position: relative;
    z-index: 10;
    padding-bottom: 60px;
}

.dp-featured-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

/* Common Card Styles (Sharp) */
.dp-card,
.dp-program-card {
    background: var(--dp-white);
    border: 1px solid transparent;
    /* Prepare for hover */
    border-radius: 0px !important;
    /* SHARP */
    overflow: hidden;
    position: relative;
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    box-shadow: var(--dp-shadow-soft);
}

/* Featured Card Specifics */
.dp-card {
    padding: 0;
    /* Let image fill width if needed, or use padding inner */
    display: flex;
    flex-direction: column;
}

.dp-card:hover {
    transform: translateY(-8px);
    box-shadow: var(--dp-shadow-hover);
    border-color: var(--dp-gold);
    /* Gold border on hover */
}

/* Card Images */
.dp-card-img,
.dp-program-card-img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    border-radius: 0px !important;
    /* SHARP */
    transition: transform 0.6s ease;
}

.dp-card:hover .dp-card-img,
.dp-program-card:hover .dp-program-card-img {
    transform: scale(1.03);
    /* Subtle zoom */
}

/* Image Container to clip zoom */
.dp-card-img-wrapper {
    overflow: hidden;
    position: relative;
}

/* We might need to wrap images in blade if not already wrapped, 
   but for now we can rely on card overflow hidden */

.dp-card-content,
.dp-program-card-content {
    padding: 25px;
    background: var(--dp-white);
    position: relative;
    /* Ensure it covers image zoom overflow if any */
    z-index: 2;
}

/* Featured Card Content Overrides (since HTML structure is simpler there) */
.dp-card .dp-card-title {
    font-size: 1.4rem;
    color: var(--dp-primary);
    font-weight: 700;
    margin: 15px 25px 10px;
    /* Manually adding padding logic if wrapper missing */
}

.dp-card .dp-card-desc {
    margin: 0 25px 25px;
    color: var(--dp-text-grey);
    font-size: 0.95rem;
    line-height: 1.6;
}

.dp-card .dp-card-img {
    margin-bottom: 0;
    /* Reset */
    height: 220px;
}

/* Badge (Sharp) */
.dp-card-badge {
    position: absolute;
    top: 20px;
    right: 20px;
    /* Arabic RTL support checked via body dir usually, but absolute right is safe for 'start' in LTR visually, let's stick to Right for "Start of card" in Arabic? No, Left is English Start. */
    /* Let's align it based on standard. For Arabic, usually Right. */
    right: 0;
    top: 20px;
    background: var(--dp-gold);
    color: #fff;
    padding: 6px 15px;
    font-size: 0.85rem;
    font-weight: 600;
    border-radius: 0px;
    /* Sharp */
    z-index: 5;
    box-shadow: 0 4px 10px rgba(189, 142, 52, 0.4);
}

/* ================= All Programs Grid ================= */
.dp-programs {
    padding: 60px 0 100px;
    background: var(--dp-bg-light);
}

.dp-section-title {
    margin-bottom: 60px;
}

.dp-section-title h2 {
    font-size: 2.2rem;
    color: var(--dp-primary);
    font-weight: 700;
    position: relative;
    padding-bottom: 15px;
    display: inline-block;
}

/* Gold underline */
.dp-section-title h2::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 3px;
    background-color: var(--dp-gold);
}

.dp-section-title p {
    margin-top: 15px;
    color: var(--dp-text-grey);
    font-size: 1.1rem;
}

/* Program Cards */
.dp-programs-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 25px;
}

.dp-program-card {
    border-bottom: 3px solid transparent;
    /* Bottom accent prep */
}

.dp-program-card:hover,
.dp-program-card.selected {
    border-bottom-color: var(--dp-gold);
    /* Gold accent on hover/active */
    transform: translateY(-5px);
}

.dp-program-card.selected {
    box-shadow: 0 0 0 2px var(--dp-gold);
    /* Full ring for selected */
}

.dp-program-card-img {
    height: 160px;
}

.dp-program-card-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: #333;
    margin-bottom: 8px;
}

.dp-program-card-desc {
    font-size: 0.9rem;
    color: #777;
    line-height: 1.5;
}

/* ================= Donation Slide Panel ================= */
.dp-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(5px);
    z-index: 1040;
    /* Above sticky header */
    opacity: 0;
    visibility: hidden;
    transition: all 0.4s ease;
}

.dp-overlay.active {
    opacity: 1;
    visibility: visible;
}

.dp-slide-panel {
    position: fixed;
    top: 0;
    right: -100%;
    /* Hidden by default */
    width: 480px;
    height: 100vh;
    height: 100dvh;
    background: var(--dp-white);
    z-index: 1050;
    /* Above overlay and sticky header */
    box-shadow: -10px 0 50px rgba(0, 0, 0, 0.3);
    transition: right 0.5s cubic-bezier(0.19, 1, 0.22, 1);
    display: flex;
    flex-direction: column;
}


/* Mobile Responsiveness for Panel */
@media (max-width: 576px) {
    .dp-slide-panel {
        width: 100%;
        /* Full width on mobile */
    }

    .dp-close-panel {
        top: 15px;
        left: 15px;
        /* Adjust for mobile padding */
    }

    .dp-slide-panel-content {
        padding: 50px 20px 30px;
        /* More top padding for close button space */
    }

    .dp-panel-footer {
        padding: 15px 20px env(safe-area-inset-bottom, 15px);
    }
}


.dp-slide-panel.active {
    right: 0;
}

/* Custom Scrollbar */
.dp-slide-panel-content {
    flex: 1;
    overflow-y: auto;
    padding: 30px 40px;
    overscroll-behavior: contain;
}


.dp-slide-panel-content::-webkit-scrollbar {
    width: 6px;
}

.dp-slide-panel-content::-webkit-scrollbar-track {
    background: #f1f1f1;
}

.dp-slide-panel-content::-webkit-scrollbar-thumb {
    background: #ccc;
    border-radius: 3px;
}

.dp-slide-panel-content::-webkit-scrollbar-thumb:hover {
    background: var(--dp-primary);
}

/* Close Button (Polished) */
.dp-close-panel {
    position: absolute;
    top: 25px;
    left: 25px;
    width: 36px;
    height: 36px;
    background: #f5f5f5;
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    color: var(--dp-text-grey);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 20;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
}

.dp-close-panel:hover {
    background: #fff;
    color: #e53935;
    transform: rotate(90deg) scale(1.1);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

/* Header Refinement */
.dp-form-title {
    text-align: right;
    margin-bottom: 30px;
    padding-bottom: 20px;
    border-bottom: 1px solid #f0f0f0;
}

.dp-form-title h3 {
    font-size: 1.8rem;
    color: var(--dp-primary);
    font-weight: 800;
}

.dp-form-title p {
    font-size: 0.95rem;
    color: #888;
}

/* ================= Donation Form ================= */
.dp-form-section {
    padding: 80px 0;
    background: var(--dp-white);
    position: relative;
}

/* Sharp decorative line at top of section */
.dp-form-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 5px;
    background: linear-gradient(90deg, var(--dp-primary) 0%, var(--dp-gold) 100%);
}

.dp-form-container {
    padding: 40px 0;
    width: 100%;
    margin: 0;
    box-shadow: none;
    border: none;
    background: transparent;
}

/* Gold styling removal for container since panel is the container now */
.dp-form-container::after {
    display: none;
}

.dp-form-title h3 {
    font-size: 2rem;
    color: var(--dp-primary);
    font-weight: 800;
    margin-bottom: 10px;
}

/* Adjust form rows for single column in panel */
.dp-form-row {
    display: flex;
    flex-direction: column;
    gap: 15px;
    /* Reduced from 25px */
    margin-bottom: 20px;
    /* Reduced from 30px */
}

/* On wider screens inside the panel, we might want side-by-side for small inputs */
@media (min-width: 400px) {
    .dp-form-row-split {
        flex-direction: row;
        gap: 15px;
        /* Reduced from 20px */
    }

    .dp-form-row-split .dp-form-group {
        flex: 1;
    }
}

/* Inputs & Labels */
.dp-form-label {
    font-size: 0.9rem;
    /* Slightly smaller */
    font-weight: 700;
    /* Bolder for readability */
    color: var(--dp-text-dark);
    margin-bottom: 8px;
    /* Reduced from 12px */
    display: block;
}

.dp-form-input,
.dp-form-select {
    width: 100%;
    padding: 10px 12px;
    /* Reduced from 16px 18px */
    border: 1px solid #e0e0e0;
    /* Softer border */
    border-radius: 0px !important;
    /* Sharp */
    background: #fbfbfb;
    /* Very subtle grey background */
    font-size: 0.95rem;
    /* Slightly smaller font */
    color: #333;
    transition: all 0.3s ease;
    height: auto;
    /* Ensure height adjusts */
}

.dp-form-input:focus,
.dp-form-select:focus {
    background: #fff;
    border-color: var(--dp-primary);
    box-shadow: 0 4px 15px rgba(7, 70, 32, 0.08);
    /* More refined shadow */
    outline: none;
}

/* Amount Buttons */
.dp-amount-buttons {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    /* Grid for better alignment */
    gap: 10px;
    /* Reduced gap */
    margin-bottom: 15px;
    /* Reduced margin */
}

.dp-amount-btn {
    width: 100%;
    min-width: 0;
    /* Fix flex/grid overflow */
    padding: 10px 5px;
    /* Reduced from 14px */
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 0px !important;
    font-weight: 600;
    color: #555;
    transition: all 0.2s;
    font-size: 0.95rem;
}

.dp-amount-btn:hover {
    border-color: var(--dp-gold);
    color: var(--dp-gold);
}

.dp-amount-btn.active {
    background: var(--dp-gold);
    border-color: var(--dp-gold);
    color: #fff;
    box-shadow: 0 5px 15px rgba(189, 142, 52, 0.3);
}

/* Methods */
.dp-payment-methods {
    display: flex;
    gap: 10px;
}

.dp-payment-method {
    border: 1px solid #eee;
    padding: 6px 12px;
    /* Reduced padding */
    height: 42px;
    /* Reduced, fixed height */
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 0px !important;
    transition: all 0.2s;
    background: #fff;
    flex: 1;
}

.dp-payment-method:hover,
.dp-payment-method.active {
    border-color: var(--dp-primary);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
}

.dp-payment-method img {
    height: 20px;
    /* Constrain height */
    max-width: 100%;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: 0.6;
    transition: all 0.3s;
}

.dp-payment-method:hover img,
.dp-payment-method.active img {
    filter: grayscale(0%);
    opacity: 1;
}

/* Panel Footer (Sticky) */
.dp-panel-footer {
    padding: 20px 40px;
    background: #fff;
    border-top: 1px solid #f0f0f0;
    box-shadow: 0 -10px 20px rgba(0, 0, 0, 0.05);
    z-index: 30;
}

/* Submit Button */
.dp-submit-btn {
    background: linear-gradient(135deg, var(--dp-primary) 0%, var(--dp-primary-dark) 100%);
    color: #fff;
    width: 100%;
    padding: 16px;
    font-size: 1.1rem;
    font-weight: 700;
    border: none;
    border-radius: 0px !important;
    /* Sharp */
    cursor: pointer;
    transition: all 0.3s;
    text-transform: uppercase;
    letter-spacing: 1px;
    position: relative;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(7, 70, 32, 0.2);
}


.dp-submit-btn:hover {
    background: linear-gradient(135deg, var(--dp-primary-dark) 0%, #000 100%);
    box-shadow: 0 10px 30px rgba(7, 70, 32, 0.3);
}

/* Selected Program Display */
.dp-selected-program {
    background: #fff;
    border-left: 5px solid var(--dp-gold);
    /* Gold Accent Bar */
    border-radius: 0px;
    /* padding: 20px; */
    margin-bottom: 30px;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.05);
    display: flex;
    align-items: center;
    gap: 20px;
}

.dp-selected-program img {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: 0px;
}

.dp-selected-program-info h4 {
    color: var(--dp-primary);
    font-weight: 700;
    margin-bottom: 5px;
    font-size: 1.2rem;
}

.dp-change-program {
    margin-right: auto;
    background: transparent;
    border: 1px solid var(--dp-text-grey);
    padding: 8px 20px;
    color: var(--dp-text-dark);
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s;
    border-radius: 0px;
}

.dp-change-program:hover {
    border-color: var(--dp-primary);
    color: var(--dp-primary);
}

/* Validations / Loader */
.dp-loader {
    width: 50px;
    height: 50px;
    border: 3px solid rgba(7, 70, 32, 0.2);
    border-radius: 50%;
    border-top-color: var(--dp-primary);
    animation: dp-spin 1s ease-in-out infinite;
    margin: 20px auto;
    display: none;
}

@keyframes dp-spin {
    to {
        transform: rotate(360deg);
    }
}

/* Processing Overlay (Immediate Feedback) */
.dp-process-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(8px);
    z-index: 2000;
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 20px;
}

.dp-process-overlay.active {
    display: flex;
}

.dp-process-spinner {
    width: 60px;
    height: 60px;
    border: 4px solid #f3f3f3;
    border-top: 4px solid var(--dp-primary);
    border-radius: 50%;
    animation: dp-spin 1s linear infinite;
    margin-bottom: 20px;
}

.dp-process-text {
    color: var(--dp-primary);
    font-weight: 700;
    font-size: 1.2rem;
    margin-top: 10px;
}

.dp-process-subtext {
    color: var(--dp-text-grey);
    font-size: 0.9rem;
    margin-top: 5px;
}

@keyframes dp-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.dp-error {
    color: #D32F2F;
    background: #FFEBEE;
    padding: 15px;
    margin-top: 15px;
    font-weight: 500;
    border-left: 4px solid #D32F2F;
    display: none;
}


/* Responsive */
@media (max-width: 992px) {

    .dp-featured-grid,
    .dp-programs-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {

    .dp-featured-grid,
    .dp-programs-grid,
    .dp-form-row {
        grid-template-columns: 1fr;
    }

    /* .dp-form-container {
        padding: 30px;
    } */

    .dp-hero h1 {
        font-size: 2rem;
    }
}

/* ================= Sukuk / Sacrifice Section ================= */
.dp-sukuk-section {
    background: linear-gradient(180deg, var(--dp-bg-light) 0%, #f0ebe0 100%);
    padding: 80px 0 100px;
}

.dp-sukuk-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
    max-width: 900px;
    margin: 0 auto;
}

.dp-sukuk-card {
    background: var(--dp-white);
    border: 2px solid transparent;
    box-shadow: var(--dp-shadow-soft);
    padding: 0;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    display: flex;
    flex-direction: column;
}

.dp-sukuk-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--dp-shadow-hover);
    border-color: var(--dp-gold);
}

.dp-sukuk-card.selected {
    border-color: var(--dp-gold);
    box-shadow: 0 0 0 3px rgba(189, 142, 52, 0.3), var(--dp-shadow-hover);
}

.dp-sukuk-icon {
    overflow: hidden;
    height: 180px;
}

.dp-sukuk-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.dp-sukuk-card:hover .dp-sukuk-img {
    transform: scale(1.05);
}

.dp-sukuk-info {
    padding: 25px;
    text-align: center;
    border-bottom: 1px solid #f0f0f0;
}

.dp-sukuk-info h3 {
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--dp-primary);
    margin-bottom: 15px;
}

.dp-sukuk-prices {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 10px;
    flex-wrap: wrap;
}

.dp-sukuk-price {
    background: #f8f5ef;
    padding: 6px 14px;
    font-size: 0.9rem;
    color: #555;
    border-left: 3px solid var(--dp-gold);
}

.dp-sukuk-price strong {
    color: var(--dp-primary);
    font-weight: 800;
    font-size: 1.05rem;
}

.dp-sukuk-weight {
    font-size: 0.9rem;
    color: var(--dp-text-grey);
    margin: 0;
}

/* Quantity Controls */
.dp-sukuk-qty {
    padding: 20px 25px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid #f0f0f0;
}

.dp-sukuk-qty label {
    font-weight: 700;
    color: var(--dp-text-dark);
    font-size: 0.95rem;
    margin: 0;
}

.dp-sukuk-qty-controls {
    display: flex;
    align-items: center;
    gap: 0;
    border: 1px solid #e0e0e0;
}

.dp-qty-btn {
    width: 40px;
    height: 40px;
    background: #f8f8f8;
    border: none;
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--dp-primary);
    cursor: pointer;
    transition: all 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
}

.dp-qty-btn:hover {
    background: var(--dp-primary);
    color: #fff;
}

.dp-qty-input {
    width: 50px;
    height: 40px;
    text-align: center;
    border: none;
    border-left: 1px solid #e0e0e0;
    border-right: 1px solid #e0e0e0;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--dp-primary);
    background: #fff;
    -moz-appearance: textfield;
}

.dp-qty-input::-webkit-outer-spin-button,
.dp-qty-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Select Button */
.dp-sukuk-select-btn {
    display: block;
    width: 100%;
    padding: 16px;
    background: linear-gradient(135deg, var(--dp-gold) 0%, #a67a25 100%);
    color: #fff;
    border: none;
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s;
    letter-spacing: 0.5px;
}

.dp-sukuk-select-btn:hover {
    background: linear-gradient(135deg, #a67a25 0%, #8a6520 100%);
}

/* Distribution Options in Panel */
.dp-distribution-options {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.dp-radio-option {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid #e0e0e0;
    cursor: pointer;
    transition: all 0.2s;
    font-size: 0.9rem;
    color: var(--dp-text-dark);
    margin: 0;
}

.dp-radio-option:hover {
    border-color: var(--dp-gold);
}

.dp-radio-option.active {
    border-color: var(--dp-primary);
    background: rgba(7, 70, 32, 0.03);
}

.dp-radio-option input[type="radio"] {
    display: none;
}

.dp-radio-box {
    width: 20px;
    height: 20px;
    min-width: 20px;
    border: 2px solid #ccc;
    border-radius: 50%;
    position: relative;
    transition: all 0.2s;
}

.dp-radio-option.active .dp-radio-box {
    border-color: var(--dp-primary);
}

.dp-radio-option.active .dp-radio-box::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--dp-primary);
}

/* Responsive Sukuk */
@media (max-width: 768px) {
    .dp-sukuk-grid {
        grid-template-columns: 1fr;
    }
}