/* Global Styles */
* {
    box-sizing: border-box;
    font-family: 'Inter', sans-serif;
}

body {
    scroll-behavior: smooth;
}

/* Custom Colors */
.text-coral-red {
    color: #FF6B6B;
}
.bg-coral-red {
    background-color: #FF6B6B;
}
.hover\:bg-coral-red-dark:hover {
    background-color: #E05252;
}
.text-coral-red-dark {
    color: #E05252;
}
.border-coral-red {
    border-color: #FF6B6B;
}
.border-coral-red-light {
    border-color: #FF9AA2;
}

/* Responsive Typography for Headings */
h1 {
    font-size: 2.5rem; /* Desktop */
}
@media (min-width: 768px) and (max-width: 1023px) {
    h1 {
        font-size: 2.2rem; /* Tablet */
    }
}
@media (max-width: 767px) {
    h1 {
        font-size: 1.8rem; /* Mobile */
    }
}

h2 {
    font-size: 2.2rem; /* Desktop */
}
@media (min-width: 768px) and (max-width: 1023px) {
    h2 {
        font-size: 2rem; /* Tablet */
    }
}
@media (max-width: 767px) {
    h2 {
        font-size: 1.5rem; /* Mobile */
    }
}

h3 {
    font-size: 1.8rem; /* Desktop */
}
@media (min-width: 768px) and (max-width: 1023px) {
    h3 {
        font-size: 1.5rem; /* Tablet */
    }
}
@media (max-width: 767px) {
    h3 {
        font-size: 1.25rem; /* Mobile */
    }
}

/* Header and Navigation */
header {
    z-index: 1000;
}

.mobile-menu-link {
    width: 100%;
    text-align: center;
    padding: 0.75rem 0;
}

/* Hero Section */
.hero-banner {
    background-position: center;
    background-size: cover;
    position: relative;
}

.hero-banner::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.6);
    z-index: 1;
}

.hero-banner > * {
    position: relative;
    z-index: 2;
}

/* Book Cards Grid */
.grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
}
@media (min-width: 768px) {
    .md\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (min-width: 1024px) {
    .lg\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* Ensure equal height for cards */
.flex-col {
    display: flex;
    flex-direction: column;
}
.flex-grow {
    flex-grow: 1;
}

/* Modal Styles */
.modal-overlay {
    transition: opacity 0.3s ease-in-out;
    opacity: 0;
    pointer-events: none;
}

.modal-overlay.active {
    opacity: 1;
    pointer-events: auto;
}

.modal-overlay .bg-white {
    transform: translateY(-20px);
    transition: transform 0.3s ease-in-out;
}

.modal-overlay.active .bg-white {
    transform: translateY(0);
}

.modal-overlay.hidden {
    display: none;
}

/* Button styles to prevent text overflow */
.btn-open-modal, .btn-close-modal {
    display: inline-block;
    white-space: normal;
    word-break: break-words;
    text-align: center;
    text-decoration: none !important;
}

/* Email in footer */
footer a[href^="mailto:"] {
    word-break: break-all;
}
/* New stock styles for content within .dataClauseFrame */

.dataClauseFrame {
    /* Top margin for separation from preceding content */
    margin-top: 1.5em;
    /* Side padding for content indentation */
    padding-left: 1.5em;
    padding-right: 1.5em;
}

.dataClauseFrame h1 {
    /* Font size for the main heading, not excessively large */
    font-size: 1.8rem;
    /* Spacing above and below the heading */
    margin-top: 1.5em;
    margin-bottom: 0.8em;
    /* Line height for readability */
    line-height: 1.2;
    /* Default font weight for headings is bold */
    font-weight: bold;
}

.dataClauseFrame h2 {
    /* Font size for sub-heading */
    font-size: 1.6rem;
    margin-top: 1.4em;
    margin-bottom: 0.7em;
    line-height: 1.2;
    font-weight: bold;
}

.dataClauseFrame h3 {
    /* Font size for tertiary heading */
    font-size: 1.4rem;
    margin-top: 1.3em;
    margin-bottom: 0.6em;
    line-height: 1.2;
    font-weight: bold;
}

.dataClauseFrame h4 {
    /* Font size for quaternary heading */
    font-size: 1.2rem;
    margin-top: 1.2em;
    margin-bottom: 0.5em;
    line-height: 1.2;
    font-weight: bold;
}

.dataClauseFrame h5 {
    /* Font size for quinary heading, slightly above base */
    font-size: 1.1rem;
    margin-top: 1.1em;
    margin-bottom: 0.4em;
    line-height: 1.2;
    font-weight: bold;
}

.dataClauseFrame p {
    /* Default font size for paragraphs */
    font-size: 1em;
    /* Spacing between paragraphs */
    margin-bottom: 1em;
    /* Line height for paragraph readability */
    line-height: 1.6;
}

.dataClauseFrame ul {
    /* Top and bottom margin for the unordered list */
    margin-top: 1em;
    margin-bottom: 1em;
    /* Indentation for list items (bullet points) */
    padding-left: 1.5em;
    /* Default list style type */
    list-style-type: disc;
}

.dataClauseFrame li {
    /* Spacing between individual list items */
    margin-bottom: 0.5em;
    /* Line height for list item readability */
    line-height: 1.5;
}
