.package-wrapper {
    font-family: Arial, Helvetica, sans-serif;
    color: #0d3821;
    max-width: 960px;
    margin: 40px auto;
    padding: 0 20px;
}
.package-wrapper p, 
.package-wrapper li, 
.package-wrapper div, 
.package-wrapper span {
    font-family: Arial, Helvetica, sans-serif;
    color: #0d3821;
}

.package-title {
    font-size: 24px;
    font-weight: bold;
    margin-bottom: 25px;
    letter-spacing: 2px;
}

.package-subtitle {
    font-size: 22px;
    margin-bottom: 20px;
}

.package-subtitle .red-text {
    color: #d80b0b;
}

.package-price {
    font-size: 22px;
    margin-bottom: 20px;
}

.package-border-text {
    border-top: 1px solid #7ea38d;
    border-bottom: 1px solid #7ea38d;
    padding: 15px 0;
    margin: 25px 0;
    font-size: 16px;
}

.package-description {
    font-size: 16px;
    line-height: 1.5;
    margin-bottom: 30px;
}

.package-banner {
    display: flex;
    flex-wrap: wrap;
    background: linear-gradient(to right, #f8fbf6 0%, #edf4e6 40%, #dee7d1 100%);
    position: relative;
    /* subtle leaf pattern on background if desired, keeping simple for now */
}

.package-banner-left {
    flex: 1 1 50%;
    padding: 30px 40px;
    position: relative;
    z-index: 2;
}

.package-banner-right {
    flex: 1 1 50%;
    position: relative;
    min-height: 350px;
}
.package-banner-right img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: left;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, black 25%);
    mask-image: linear-gradient(to right, transparent 0%, black 25%);
}

.package-includes-title {
    font-size: 18px;
    margin-bottom: 20px;
}

.package-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.package-list li {
    position: relative;
    padding-left: 25px;
    margin-bottom: 15px;
    font-size: 15px;
    line-height: 1.5;
}

.package-list li::before {
    content: ""; /* We use a custom SVG for the checkmark */
    display: inline-block;
    width: 16px;
    height: 16px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23085820'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z'/%3E%3C/svg%3E");
    position: absolute;
    left: 0;
    top: 3px;
}

/* Specific styles for multiple stacked images with text overlays */
.package-banner-right-stacked {
    display: flex;
    flex-direction: column;
}
.package-banner-right-stacked .img-container {
    position: relative;
    flex: 1;
    overflow: hidden;
}
.package-banner-right-stacked img {
    height: 100%;
}
.image-text-overlay {
    position: absolute;
    bottom: 15px;
    width: 100%;
    text-align: center;
    color: white !important;
    text-shadow: 1px 1px 4px rgba(0,0,0,0.8);
    font-size: 16px;
    font-family: Arial, sans-serif;
    z-index: 10;
}
.image-text-overlay-multiple {
    bottom: 25px;
    line-height: 1.4;
}
.image-text-overlay-small {
    font-size: 14px;
    margin-top: 5px;
}

/* Schedule Table */
.schedule-section-separator {
    border-top: 1px solid #7ea38d;
    margin: 40px 0;
}

.schedule-day-title {
    text-align: center;
    color: #0f4d27;
    font-weight: bold;
    font-size: 18px;
    margin: 30px 0 20px;
}

.schedule-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 50px;
}

.schedule-table th {
    background-color: #d1c8b8;
    color: #4a4238;
    padding: 12px;
    text-align: center;
    font-weight: bold;
    font-size: 15px;
    text-transform: uppercase;
}
.schedule-table th:first-child {
    width: 120px;
}

.schedule-table td {
    padding: 12px 15px;
    background-color: #f7f3ec;
    border-top: 1px solid #fff;
    border-bottom: 1px solid #fff;
    font-size: 15px;
}

.schedule-table .time-col {
    text-align: center;
    background-color: #e6dfcf;
    font-weight: normal;
}

@media (max-width: 768px) {
    .package-banner {
        flex-direction: column;
    }
    .package-banner-right img {
        -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 25%);
        mask-image: linear-gradient(to bottom, transparent 0%, black 25%);
    }
    .package-banner-right {
        min-height: 250px;
    }
}

/* ─── Typography Measure ─── */
/* Prose paragraphs — constrain line length for readability */
.package-wrapper p,
.package-description,
.package-border-text {
    max-width: 68ch;
    line-height: 1.9;
    font-size: clamp(0.9375rem, 1.5vw, 1.0625rem);
}

/* Image overlay text is centred display text — exempt */
.image-text-overlay,
.image-text-overlay-multiple,
.image-text-overlay-small {
    max-width: 100% !important;
}

/* List items — slightly wider measure */
.package-list li {
    max-width: 72ch;
    line-height: 1.85;
}
