/* Reset and Base Styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    line-height: 1.7; /* Slightly increased for readability of paragraphs */
    color: #333;
    background-color: #fff;
}

.text-layout .container {
    max-width: 1100px; /* Slightly wider for more text content */
    margin: 0 auto;
    padding: 0 20px;
}
.text-layout .container-narrow {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 20px;
}

.text-layout.section.text-layout {
    padding: 60px 0; /* Adjusted padding */
}
.text-layout.section-light { background-color: #f8f9fa; }
.text-layout.section-dark { background-color: #2c3e50; color: #e0e0e0; }
.text-layout.section-dark .section-title, .text-layout.section-dark h3 { color: #fff; }
.text-layout.section-dark p { color: #bdc3c7; }


.text-layout .section-title {
    font-size: 2.5rem;
    font-weight: 700;
    text-align: center;
    margin-bottom: 1.5rem;
    color: #2c3e50;
}
.text-layout .section-subtitle {
    font-size: 1.15rem;
    text-align: center;
    max-width: 750px;
    margin: -1rem auto 3rem;
    color: #555;
    line-height: 1.6;
}
.text-layout.section-dark .section-subtitle { color: #bdc3c7; }

.text-layout h3 { /* For subheadings within sections */
    font-size: 1.6rem;
    color: #C53A45;
    margin-bottom: 1rem;
    font-weight: 600;
}

.text-layout p {
    margin-bottom: 1.25rem;
    font-size: 1.05rem; /* Slightly larger for better readability */
    color: #444;
}
.text-layout p:last-child {
    margin-bottom: 0;
}

.text-layout ul, .text-layout ol {
    margin: 1.25rem 0;
    padding-left: 1.5rem; /* Indent lists */
    font-size: 1.05rem; /* Consistent with paragraphs */
}
/* --- Layout Styles for Paragraph Sections --- */

/* 1. Standard Full-Width Text Section */
.text-layout.text-layout-fullwidth .container-narrow p {
    /* Standard paragraph styling already applied */
}

/* 2. Two-Column Text Layout */
.text-layout.text-layout-two-column .columns-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem; /* Space between columns */
}

/* 3. Three-Column Text Layout */
.text-layout.text-layout-three-column .columns-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem; /* Space between columns */
}
.text-layout.text-layout-three-column p {
    font-size: 0.95rem; /* Slightly smaller for three columns */
    line-height: 1.6;
}

/* 4. Text with Side Notes/Callouts */
.text-layout.text-layout-with-sidenotes .main-content-area {
    display: grid;
    grid-template-columns: 3fr 1fr; /* Main content takes more space */
    gap: 3rem;
}
.text-layout .sidenote-area .sidenote {
    background-color: #e9ecef;
    padding: 1.5rem;
    border-radius: 8px;
    font-size: 0.9rem;
    line-height: 1.5;
    border-left: 4px solid #C53A45;
}
.text-layout .sidenote-area .sidenote h4 {
    font-size: 1.1rem;
    color: #2c3e50;
    margin-bottom: 0.75rem;
}
.text-layout.section-dark .sidenote-area .sidenote {
    background-color: #34495e;
    border-left-color: #C53A45;
}
.text-layout.section-dark .sidenote-area .sidenote h4 { color: #fff; }
.text-layout.section-dark .sidenote-area .sidenote p { color: #bdc3c7; }


/* 5. Alternating Text and Image (simplified to text only for this request) */
/* For text-only, we can alternate alignment or background */
.text-layout.text-layout.text-layout-alternating .alternating-block {
    margin-bottom: 3rem;
}
.text-layout.text-layout-alternating .alternating-block:nth-child(even) {
    /* Could add a slight background or text-align change if desired */
    /* background-color: #f9f9f9; padding: 1rem; border-radius: 5px; */
}
.text-layout.text-layout-alternating .alternating-block:last-child {
    margin-bottom: 0;
}


/* 6. Quote/Highlight Section */
.text-layout.text-layout-quote blockquote {
    font-size: 1.5rem;
    font-style: italic;
    color: #C53A45;
    border-left: 5px solid #C53A45;
    padding-left: 2rem;
    margin: 2rem auto;
    max-width: 700px;
    line-height: 1.5;
}
.text-layout.text-layout-quote blockquote footer {
    font-size: 1rem;
    color: #555;
    margin-top: 1rem;
    font-style: normal;
    text-align: right;
}
.text-layout.section-dark .text-layout-quote blockquote {
    color: #5dade2;
    border-left-color: #5dade2;
}
.text-layout.section-dark .text-layout-quote blockquote footer { color: #bdc3c7; }


/* Footer */
.footer-lp {
    text-align: center;
    padding: 30px 0;
    margin-top: 40px;
    background-color: #2c3e50;
    color: #bdc3c7;
    font-size: 0.9rem;
}
.footer-lp a { color: #C53A45; text-decoration: none; }
.footerlp a:hover { text-decoration: underline; }

/* Responsive Adjustments */
@media (max-width: 992px) {
    .text-layout.text-layout-two-column .columns-container,
    .text-layout.text-layout-three-column .columns-container {
        grid-template-columns: 1fr; /* Stack columns */
    }
    .text-layout.text-layout-with-sidenotes .main-content-area {
        grid-template-columns: 1fr;
    }
    .text-layout .sidenote-area .sidenote {
        margin-top: 2rem; /* Add space when stacked */
    }
}
@media (max-width: 768px) {
    .text-layout.section-title { font-size: 2rem; }
    .text-layout.section-subtitle { font-size: 1rem; }
    .text-layout h3 { font-size: 1.4rem; }
    .text-layout p { font-size: 1rem; }
    .text-layout.text-layout-quote blockquote { font-size: 1.3rem; padding-left: 1.5rem; }
    .text-layout.text-layout-three-column p { font-size: 1rem; } /* Revert for readability on mobile */
}



/* Added for new layouts for demo purposes */
.text-layout-image-split .columns-container { display: flex; align-items: center; gap: 2rem; }
.text-layout-image-split .column { flex: 1; }
.text-layout-image-split .column img { max-width: 100%; height: auto; border-radius: 8px; }
.text-layout-centered-impact { text-align: center; }
.text-layout-centered-impact .impact-heading { font-size: 2.5em; font-weight: bold; margin-bottom: 0.5em; color: #C53A45; }
.text-layout-definition-list dt { font-weight: bold; margin-top: 1em; }
.text-layout-definition-list dd { margin-left: 2em; margin-bottom: 0.5em; }
.text-layout-bg-image { position: relative; padding: 5em 0; color: white; text-align: center; }
.text-layout-bg-image .background-image-container { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: -2; overflow: hidden;}
.text-layout-bg-image .background-image-container img { width: 100%; height: 100%; object-fit: cover; }
.text-layout-bg-image .overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.5); z-index: -1; }
.text-layout-bg-image .container-narrow { position: relative; z-index: 1;}
    @media (max-width: 768px) {
    .text-layout-image-split .columns-container { flex-direction: column; }
}