body {
    font-family: 'Inter', sans-serif;
    box-sizing: border-box;
}

*, *::before, *::after {
    box-sizing: inherit;
}

/* Responsive Typography for Headings */
h1 {
    font-size: 2.5rem; /* Default 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 */
        line-height: 1.2;
    }
}

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

.text-2xl.font-bold.text-white.tracking-tight { /* Site name in header */
    font-size: 1.5rem; /* Default Desktop */
}
@media (min-width: 768px) and (max-width: 1023px) {
    .text-2xl.font-bold.text-white.tracking-tight {
        font-size: 1.3rem; /* Tablet */
    }
}
@media (max-width: 767px) {
    .text-2xl.font-bold.text-white.tracking-tight {
        font-size: 1.1rem; /* Mobile */
        line-height: 1.2;
    }
}

/* Ensure images within cards have consistent height */
.portfolio-timeline-container img {
    height: 10rem; /* Fixed height for portfolio images */
    object-fit: cover;
}

/* Word break for email in footer */
.word-break-all {
    word-break: break-all;
}

/* Ensure buttons don't have underlines */
button {
    text-decoration: none;
}

/* Custom styles for portfolio timeline scrollbar */
.portfolio-timeline-container::-webkit-scrollbar {
    height: 8px;
}

.portfolio-timeline-container::-webkit-scrollbar-track {
    background: #2d3748; /* bg-gray-800 */
    border-radius: 10px;
}

.portfolio-timeline-container::-webkit-scrollbar-thumb {
    background: #2dd4bf; /* bg-teal-500 */
    border-radius: 10px;
}

.portfolio-timeline-container::-webkit-scrollbar-thumb:hover {
    background: #14b8a6; /* bg-teal-600 */
}

/* Adjust footer padding for mobile if needed, though current Tailwind should handle it */
@media (max-width: 767px) {
    footer .grid {
        grid-template-columns: 1fr;
    }
    footer > div > div:first-child {
        margin-bottom: 2rem;
    }
}
/*
 * Styles for the .secureTermsHub container and its direct children.
 * These are new, stock styles for common text elements.
 */

.secureTermsHub {
    /* Container padding for top and sides */
    padding: 2rem; /* Adjust as needed for desired top/side spacing */
}

/* Heading styles: h1-h5 with moderate font sizes and spacing */
.secureTermsHub h1 {
    font-size: 1.75rem; /* Approximately 28px if base is 16px */
    font-weight: 700;
    margin-top: 0; /* Reset default top margin */
    margin-bottom: 1rem;
    line-height: 1.2;
}

.secureTermsHub h2 {
    font-size: 1.5rem; /* Approximately 24px */
    font-weight: 600;
    margin-top: 0;
    margin-bottom: 0.9rem;
    line-height: 1.3;
}

.secureTermsHub h3 {
    font-size: 1.25rem; /* Approximately 20px */
    font-weight: 600;
    margin-top: 0;
    margin-bottom: 0.8rem;
    line-height: 1.4;
}

.secureTermsHub h4 {
    font-size: 1.125rem; /* Approximately 18px */
    font-weight: 500;
    margin-top: 0;
    margin-bottom: 0.7rem;
    line-height: 1.5;
}

.secureTermsHub h5 {
    font-size: 1rem; /* Approximately 16px, base font size */
    font-weight: 500;
    margin-top: 0;
    margin-bottom: 0.6rem;
    line-height: 1.5;
}

/* Paragraph styles */
.secureTermsHub p {
    font-size: 1rem; /* Base font size */
    line-height: 1.6; /* Improved readability */
    margin-top: 0; /* Reset default top margin */
    margin-bottom: 1rem; /* Space between paragraphs */
}

/* Unordered list styles */
.secureTermsHub ul {
    list-style: disc; /* Default disc bullet */
    margin-top: 0; /* Reset default top margin */
    margin-left: 1.5rem; /* Indent list from the left */
    margin-bottom: 1rem; /* Space after the list */
    padding-left: 0; /* Reset browser default padding if any, relying on margin-left for indentation */
}

/* List item styles */
.secureTermsHub li {
    line-height: 1.6; /* Consistent line height */
    margin-bottom: 0.5rem; /* Space between list items */
}

/* Ensure the last list item doesn't have extra bottom margin if followed by nothing */
.secureTermsHub ul li:last-child {
    margin-bottom: 0;
}

section {
    overflow: hidden;
}