/* Basic Reset & Font */
body, h1, h2, h3, p, ul, li, a {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Noto Sans JP', 'Noto Sans', sans-serif;
    color: #333; /* Default text color */
    position: relative; /* Needed for stacking context if elements overlap */
}

body {
    line-height: 1.6;
    /* background-size: cover; */ /* Moved to .background-wrapper */
    /* background-position: center; */ /* Moved to .background-wrapper */
    /* min-height: 100vh; */ /* Body height will be determined by content */
}

/* Wrapper for background image sections */
.background-wrapper {
    background-image: url('images/AdobeStock_516851283.jpeg');
    background-size: cover;
    background-position: center;
    padding-bottom: 1px; /* Prevents margin collapse with the news section */
}

a {
    text-decoration: none;
    color: inherit;
}

ul {
    list-style: none;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* Utility Classes */
.br-sp { /* Line break only on smartphones */
    display: none;
}

/* Header */
header {
    /* background-color: #003366; /* Removed for transparent background */
    /* color: #fff; */ /* Changed to black below */
    background-color: rgba(255, 255, 255, 0.5); /* Added semi-transparent white background */
    padding: 10px 0;
    position: relative; /* Changed from fixed */
    width: 100%;
    /* top: 0; */ /* Removed for non-fixed positioning */
    /* left: 0; */ /* Removed for non-fixed positioning */
    z-index: 1000; /* Keep z-index in case of overlapping elements */
}

/* Main Content */
main {
    /* padding-top: 65px; */ /* Removed padding needed for fixed header */
}

.header-container {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 20px;
}

.logo img {
    height: 40px; /* Adjust as needed */
}

/* Apply flex only to the header navigation */
header nav ul {
    display: flex;
    align-items: center;
}

nav ul li {
    margin-left: 20px;
    position: relative; /* For dropdown positioning */
}

nav ul li a {
    color: #000; /* Changed header text to black */
    padding: 10px 15px;
    display: block;
    transition: background-color 0.3s ease;
}

nav ul li a:hover,
nav ul li.dropdown:hover > a {
    background-color: rgba(255, 255, 255, 0.7); /* Consistent hover */
}

/* Dropdown Menu */
.dropdown-content {
    display: none;
    position: absolute;
    background-color: rgba(255, 255, 255, 1); /* Same as header background */
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
    z-index: 1;
    top: 100%; /* Position below the parent */
    left: 0;
}

.dropdown-content li {
    margin-left: 0; /* Reset margin for dropdown items */
}

.dropdown-content li a {
    color: #000; /* Ensure dropdown text is black */
    padding: 12px 16px;
    white-space: nowrap;
}

.dropdown-content li a:hover {
    background-color: rgba(255, 255, 255, 0.5); /* Slightly lighter blue on hover */
}

.dropdown-content li a:hover {
    background-color: rgba(0, 0, 0, 0.1); /* Consistent hover */
}

/* Contact Button */
.contact-button {
    background-color: #ccc; /* Lighter background for black text */
    color: #000 !important; /* Changed text to black */
    padding: 10px 20px !important; /* Override default padding */
    border-radius: 5px;
    margin-left: 20px;
    transition: background-color 0.3s ease;
}

.contact-button:hover {
    background-color: #aaa; /* Darker grey on hover */
}

/* Main Content */
main {
    /* padding-top: 65px; */ /* Removed padding needed for fixed header */
}

/* Hero Section */
.hero {
    /* height: 70vh; */ /* Removed fixed height */
    /* background-size: cover; */ /* Moved to body */
    /* background-position: center; */ /* Moved to body */
    /* display: flex; */ /* Removed flex properties */
    /* align-items: center; */ /* Removed flex properties */
    /* justify-content: flex-start; */ /* Removed flex properties */
    padding: 15vh 20px; /* Use padding for vertical spacing */
    /* text-align: center; */ /* Removed for left alignment */
    color: #fff;
    position: relative; /* For overlay if needed */
}

.hero::before { /* Optional overlay for better text readability */
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.3); /* Dark overlay */
    z-index: 1;
}

.hero-content {
    position: relative; /* To be above the overlay */
    z-index: 2;
    max-width: 1000px;
    margin: 0 auto; /* Use padding for vertical spacing */
    text-align: left; /* Align text within this container to the left */
    /* Removed flex properties and centering margin */
    /* margin-left: 0; */ /* Reverted */
    /* width: 100%; */ /* Reverted */
}

/* Removed .hero-text-en, .hero-text-jp rule */

/* Removed .hero-text-en h1 rule */
/* Removed .hero-text-jp p rule */

/* Add explicit left alignment for hero content elements */
.hero-content h1,
.hero-content p {
    text-align: left;
}

.hero h1 { /* Keep general h1 styles */
    font-size: 3.5em; /* Adjust size */
    font-weight: bold;
    margin-bottom: 20px;
    line-height: 1.4; /* Increased line height */
    color: #fff;
}

.hero p {
    font-size: 1.7em; /* Increased font size */
    color: #fff;
}

/* News Section */
.news {
    /* Position relative to allow absolute positioning inside if needed */
    position: relative;
    max-width: 1000px; /* Or adjust as needed */
    margin: 40px auto 60px auto; /* Removed negative margin, added top margin */
    padding: 40px; /* Padding inside the white box */
    background-color: rgba(255, 255, 255, 0.85); /* Semi-transparent white background */
    border-radius: 8px; /* Optional: slightly rounded corners */
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); /* Optional: subtle shadow */
    z-index: 5; /* Ensure it's above the hero background but below header */
}

.news h2 {
    color: #333; /* Ensure title is dark */
    text-align: center;
    margin-bottom: 40px;
    font-size: 2em;
}

.news-list {
    margin-bottom: 30px;
}

.news-item {
    display: flex;
    align-items: baseline;
    margin-bottom: 15px;
    padding-bottom: 15px;
    border-bottom: 1px solid #ccc; /* Slightly darker border */
    color: #333; /* Ensure text is dark */
}

.news-item a {
    color: #0091A4; /* Blue color for links in news items */
}

.news-item .date {
    color: #333; /* Ensure date is dark */
    font-weight: bold;
    margin-right: 20px;
    min-width: 100px; /* Ensure date alignment */
}

.see-more {
    display: block;
    width: fit-content;
    margin: 0 auto;
    background-color: #333;
    color: #fff;
    padding: 10px 30px;
    border-radius: 5px;
    text-align: center;
    transition: background-color 0.3s ease;
}

.see-more:hover {
    background-color: #555;
}

/* Research Section */
.research {
    padding: 60px 20px;
    max-width: 1200px;
    margin: 0 auto;
}

.research h2 {
    text-align: center;
    margin-bottom: 20px;
    font-size: 2em;
}

.research-intro {
    text-align: center;
    margin-bottom: 40px;
    color: #555;
}

.research-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px;
}

.research-item {
    background-color: #e0f2f7; /* Light cyan background from design */
    padding: 30px;
    border-radius: 10px;
    text-align: center;
}

.research-item img { /* Placeholder for icons */
    height: 80px;
    margin: 0 auto 20px auto;
    /* Replace with actual icon styling */
    /* background-color: #ccc; /* Removed background */
    /* border-radius: 50%; */ /* Removed border-radius */
    width: 80px;
}

.research-item h3 {
    margin-bottom: 15px;
    font-size: 1.5em;
}

.research-item p {
    margin-bottom: 20px;
    color: #555;
    text-align: left;
}

.details-button {
    display: inline-block;
    background-color: #333;
    color: #fff;
    padding: 10px 30px;
    border-radius: 5px;
    transition: background-color 0.3s ease;
}

.details-button:hover {
    background-color: #555;
}

/* Footer */
footer {
    background-color: #000; /* Black background from image */
    color: #fff; /* White text from image */
    padding: 30px 20px; /* Adjust padding as needed */
}

.footer-container {
    max-width: 1200px;
    margin: 0 auto;
    /* Content is laid out by footer-nav and copyright directly */
}

.footer-nav {
    display: grid; /* Use grid for column layout */
    grid-template-columns: repeat(3, auto) 1fr; /* 3 content columns, 1 spacer */
    gap: 40px; /* Adjust gap between columns */
    margin-bottom: 30px;
    justify-content: start; /* Align grid items to the start */
    padding-left: 5%; /* Add some padding to align like the image */
    padding-right: 5%;
}

.footer-nav div { /* Each column is a div */
    /* Styles for the div container if needed */
}

.footer-nav ul {
    padding-left: 0; /* Remove default ul padding */
}

.footer-nav ul li {
    margin-bottom: 8px; /* Space between links */
}

.footer-nav ul li a {
    color: #fff; /* White links */
    font-size: 0.9em;
    transition: color 0.3s ease;
}

/* Add bullet styling for Pipeline links */
.footer-nav div:nth-child(2) ul li a {
    position: relative;
    display: inline-block;
}

/* Add bullet styling for Company links that still have the "・" character */
.footer-nav div:nth-child(1) ul li a {
    position: relative;
    display: inline-block;
}

.footer-nav ul li a:hover {
    color: #ccc; /* Lighter grey on hover */
}

.footer-nav strong { /* Column titles */
    color: #fff;
    margin-bottom: 15px;
    display: block;
    font-weight: bold;
    font-size: 1em;
}

.copyright {
    text-align: center;
    margin-top: 30px; /* Space above copyright */
    padding-top: 20px; /* Space below nav */
    /* border-top: 1px solid #444; /* Optional separator line */
    font-size: 0.9em;
    color: #fff; /* White copyright text */
}

/* Language Selector Highlight (Example) */
nav ul li a[href="#"] { /* Basic highlight for current language (JP) */
    font-weight: bold;
}

/* Hamburger Menu Styles */
.menu-toggle-checkbox {
    display: none; /* Hide the actual checkbox */
}

.hamburger-menu {
    display: none; /* Hidden by default on desktop */
    cursor: pointer;
    padding: 10px;
    position: relative;
    z-index: 1001; /* Ensure it's above nav */
}

.hamburger-menu span {
    display: block;
    width: 25px;
    height: 3px;
    background-color: #000; /* Changed hamburger lines to black */
    margin: 5px 0;
    transition: all 0.3s ease-in-out;
}

/* Responsive Styles */
@media (max-width: 768px) {
    .header-container {
        padding: 0 15px; /* Adjust padding for smaller screens */
    }

    .main-nav {
        display: none; /* Hide nav by default on mobile */
        position: absolute;
        top: 100%; /* Position below the header */
        left: 0;
        width: 100%;
        background-color: rgba(255, 255, 255, 1); /* Match header background */
        padding: 10px 0;
        box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
    }

    .main-nav ul {
        flex-direction: column; /* Stack nav items vertically */
        align-items: flex-start; /* Align items to the left */
        width: 100%;
    }

    .main-nav ul li {
        margin-left: 0;
        width: 100%;
    }

    .main-nav ul li a {
        color: #000; /* Ensure mobile nav text is black */
        padding: 12px 20px; /* Adjust padding */
        border-bottom: 1px solid rgba(0, 0, 0, 0.2); /* Separator for light background */
        width: 100%;
        box-sizing: border-box;
    }
     .main-nav ul li:last-child a {
        border-bottom: none;
    }

    .main-nav ul li a:hover,
    .main-nav ul li.dropdown:hover > a {
        background-color: rgba(255, 255, 255, 1); /* Consistent hover */
    }

    .contact-button {
        margin-left: 0; /* Remove margin */
        margin-top: 10px; /* Add space above */
        display: block; /* Make it full width within its container */
        text-align: center;
        background-color: transparent; /* Keep transparent */
        border: 1px solid #000; /* Black border */
        color: #000 !important; /* Ensure black text */
        padding: 10px 20px !important;
    }
     .contact-button:hover {
        background-color: rgba(0, 0, 0, 0.1); /* Slight dark overlay on hover */
    }


    .dropdown-content {
        position: static; /* No absolute positioning needed */
        display: block; /* Always show sub-items */
        background-color: transparent; /* No separate background */
        box-shadow: none;
        min-width: auto;
        padding-left: 20px; /* Indent sub-items */
    }

     .dropdown-content li a {
        padding: 10px 20px;
        font-size: 0.9em;
        border-bottom: none; /* Remove border from sub-items */
    }
     .dropdown-content li a:hover {
        background-color: rgba(0, 0, 0, 0.1); /* Consistent hover */
    }

    .hamburger-menu {
        display: block; /* Show hamburger on mobile */
    }

    /* Toggle nav visibility when checkbox is checked */
    .menu-toggle-checkbox:checked ~ .main-nav {
        display: block;
    }

    /* Hamburger animation */
    .menu-toggle-checkbox:checked ~ .hamburger-menu span:nth-child(1) {
        transform: rotate(45deg) translate(5px, 5px);
    }
    .menu-toggle-checkbox:checked ~ .hamburger-menu span:nth-child(2) {
        opacity: 0;
    }
    .menu-toggle-checkbox:checked ~ .hamburger-menu span:nth-child(3) {
        transform: rotate(-45deg) translate(5px, -5px);
    }

    /* Hero Section Adjustments */
    .hero-content {
        /* flex-direction: column; */ /* Removed as flex is not used */
        /* width: 90%; */ /* Removed width constraint */
        text-align: left; /* Ensure left alignment on mobile too */
    }

    .hero-text-en,
    .hero-text-jp {
        flex-basis: auto; /* Reset flex-basis */
        width: 100%; /* Take full width */
        margin-bottom: 20px; /* Add space between stacked items */
    }
     .hero-text-en:last-child,
     .hero-text-jp:last-child {
        margin-bottom: 0;
    }

    /* Removed redundant mobile text alignment rules */
    /* .hero-text-en h1, */
    /* .hero-text-jp p { */
    /*    text-align: center; */ /* Center text within blocks on mobile */
    /* } */

    .hero h1 {
        font-size: 2.8em; /* Smaller font size - Adjusted */
    }
    .hero p {
        font-size: 1.4em; /* Smaller font size - Adjusted */
    }

    /* News Section Adjustments */
    .news {
        padding: 20px;
        margin: 30px 15px; /* Adjust margin */
    }
    .news-item {
        flex-direction: column; /* Stack date and text */
        align-items: flex-start;
    }
    .news-item .date {
        margin-bottom: 5px;
        min-width: auto;
    }

    /* Research Section Adjustments */
    .research {
        padding: 40px 15px;
    }
    .research-grid {
        grid-template-columns: 1fr; /* Single column */
    }

    /* Footer Adjustments */
    .footer-nav {
        grid-template-columns: 1fr; /* Stack columns */
        gap: 20px; /* Reduce gap */
        padding-left: 0; /* Remove side padding */
        padding-right: 0;
        text-align: left; /* Left align text */
        padding-left: 20px; /* Add some left padding for better appearance */
    }
     .footer-nav div {
        margin-bottom: 15px; /* Add space between stacked sections */
    }
     .footer-nav ul {
        padding-left: 0;
    }
     .footer-nav ul li a {
        display: block; /* Change to block for vertical display */
        text-align: left; /* Left align text */
        padding: 5px 0; /* Add some vertical padding */
    }
    /* Company and Pipeline links styling for mobile */
    .footer-nav div:nth-child(1) ul li,
    .footer-nav div:nth-child(2) ul li {
        margin-bottom: 10px; /* Add more space between items */
    }
    .footer-nav div:nth-child(1) ul li a,
    .footer-nav div:nth-child(2) ul li a {
        display: block;
        position: relative;
        padding-left: 15px; /* Add space for bullet */
    }
    .footer-nav div:nth-child(1) ul li a::before,
    .footer-nav div:nth-child(2) ul li a::before {
        content: "•"; /* Add bullet point */
        position: absolute;
        left: 0;
        color: #fff;
    }
     .footer-nav strong {
        margin-bottom: 10px;
        text-align: left; /* Left align section titles */
    }

    .copyright {
        margin-top: 20px;
        padding-top: 15px;
    }
    
    /* Utility class adjustments */
    .br-sp {
        display: block;
        content: '\A';
        white-space: pre;
    }
}

/* Styles from company/mission.html */
/* Mission page specific styles */
.mission-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 100px 20px 60px;
}

.mission-title {
    font-size: 2.5em;
    margin-bottom: 30px;
    border-bottom: 1px solid #333;
    padding-bottom: 10px;
}

.mission-subtitle {
    font-size: 1.8em;
    color: #003366;
    margin-bottom: 20px;
}

.mission-text {
    margin-bottom: 40px;
    line-height: 1.8;
}

.mission-section {
    margin-bottom: 60px;
}

.mission-section-title {
    font-size: 2em;
    margin-bottom: 20px;
    border-bottom: 1px solid #333;
    padding-bottom: 10px;
}

.message-section {
    display: flex;
    flex-direction: row;
    gap: 30px;
    align-items: flex-start;
}

.message-text {
    flex: 3;
}

.message-image {
    flex: 2;
    text-align: center;
}

.message-image img {
    max-width: 50%; /* Reduced from 100% to 50% */
    border-radius: 5px;
    margin: 0 auto; /* Center the image */
}

.ceo-title {
    margin-top: 10px;
    font-size: 0.9em;
    text-align: center;
}

@media (max-width: 768px) {
    .mission-container {
        padding: 80px 15px 40px;
    }

    .mission-title {
        font-size: 2em;
    }

    .mission-subtitle {
        font-size: 1.5em;
    }

    .message-section {
        flex-direction: column;
    }

    .message-image {
        margin-top: 20px;
        order: -1;
    }
}

/* Styles from company/profile.html */
.profile-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 100px 20px 60px;
}

.profile-title {
    font-size: 2.5em;
    margin-bottom: 40px;
    border-bottom: 2px solid #333;
    padding-bottom: 15px;
    font-weight: bold;
}

.profile-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 60px;
}

.profile-table th,
.profile-table td {
    border-bottom: 1px solid #eee;
    padding: 15px 10px;
    text-align: left;
    vertical-align: top; /* Align content to the top */
}

.profile-table th {
    width: 20%; /* Adjust width as needed */
    font-weight: bold;
    background-color: #f9f9f9; /* Light background for header cells */
}

.profile-table td {
    width: 80%;
}

.profile-table td ul {
    margin: 0;
    padding-left: 20px; /* Indent list items */
    list-style-type: none; /* Remove default bullets */
}
.profile-table td ul li {
    margin-bottom: 5px;
}
.profile-table td ul li::before {
     content: counter(list-item) ". "; /* Add numbering */
}
.profile-table td ul {
    counter-reset: list-item; /* Reset counter for each list */
}


.representative-section {
    display: flex;
    gap: 40px;
    margin-bottom: 60px;
    align-items: flex-start;
}

.representative-image {
    flex: 1;
    text-align: center;
}

.representative-image img {
    max-width: 50%; /* Reduced from 100% */
    border-radius: 50%; /* Make image circular */
    margin-bottom: 10px;
    display: block; /* Needed for margin auto to work */
    margin-left: auto; /* Center the image */
    margin-right: auto; /* Center the image */
}

.representative-title {
    font-size: 0.9em;
    color: #555;
}

.representative-bio {
    flex: 2;
    /* display: flex; */ /* Removed flex here, will be applied to bio-item */
    /* gap: 20px; */ /* Removed gap here */
}

.bio-item {
    display: flex;
    margin-bottom: 10px; /* Space between bio items */
}

.bio-year {
    font-weight: bold;
    min-width: 100px; /* Adjust as needed for year alignment */
    margin-right: 20px; /* Space between year and event */
    flex-shrink: 0; /* Prevent year from shrinking */
}

.bio-event {
    line-height: 1.6;
}
/* .bio-timeline, .bio-details are no longer used directly for layout */
/*
.bio-timeline {
    font-weight: bold;
}
.bio-timeline p {
    margin-bottom: 10px;
}

.bio-details p {
    margin-bottom: 10px;
    line-height: 1.6;
}
*/

.history-section {
    margin-bottom: 60px;
    /* Padding moved to history-content */
}

/* New class for padding history items */
.history-content {
    padding-left: 100px;
    padding-right: 100px;
}

.history-title {
    font-size: 2em;
    margin-bottom: 30px;
    border-bottom: 2px solid #333;
    padding-bottom: 10px;
    font-weight: bold;
}

.history-item {
    margin-bottom: 15px;
    line-height: 1.7;
}

.history-date {
    font-weight: bold;
    margin-right: 10px;
    display: inline-block; /* Keep date and text together */
    min-width: 100px; /* Ensure alignment */
}

@media (max-width: 768px) {
    .profile-container {
        padding: 80px 15px 40px;
    }
    .profile-title {
        font-size: 2em;
    }
    .profile-table th, .profile-table td {
        display: block;
        width: 100%;
        border-bottom: none; /* Remove internal borders */
    }
    .profile-table th {
        background-color: transparent;
        border-bottom: 1px solid #ccc; /* Add border below header */
        margin-bottom: 5px;
        padding-left: 0;
    }
    .profile-table td {
         padding: 5px 0 15px 0; /* Adjust padding */
         border-bottom: 1px solid #eee; /* Add border below data */
    }
     .profile-table tr:last-child td {
         border-bottom: none; /* Remove border for last item */
     }

    .representative-section {
        flex-direction: column;
        align-items: center;
    }
    .representative-image {
        margin-bottom: 20px;
        max-width: 200px; /* Limit image size on mobile */
    }
    .representative-bio {
        /* flex-direction: column; */ /* No longer needed as bio-item handles layout */
        /* gap: 10px; */
        width: 100%;
    }
    .bio-item {
        flex-direction: row; /* Ensure year and event are side-by-side */
        /* On smaller screens, you might want them to stack:
        flex-direction: column;
        align-items: flex-start;
        */
    }
    .bio-year {
         text-align: left;
         min-width: 80px; /* Adjust for mobile if needed */
         margin-right: 10px;
    }
    .bio-event {
        text-align: left;
    }
    /* .representative-bio { */ /* This was restoring to row, but bio-item now handles it */
        /* flex-direction: row; */
    /* } */
    .history-title {
        font-size: 1.8em;
    }
    /* Adjust history content padding on mobile */
    .history-content {
        padding-left: 15px; /* Match container padding */
        padding-right: 15px; /* Match container padding */
    }
}

/* Styles from pipeline/about.html */
/* Page-specific styles */
.pipeline-container {
    max-width: 1000px; /* Adjusted based on design */
    margin: 0 auto;
    padding: 60px 20px 60px; /* Adjusted padding */
}

.page-title { /* For "パイプライン概要" - Using a generic name */
     font-size: 2.5em;
     margin-bottom: 40px;
     /* border-bottom: 2px solid #333; */ /* No border in design */
     padding-bottom: 15px;
     font-weight: bold;
     text-align: center; /* Centered title */
}

.section-title { /* For "研究開発 パイプライン" and "パイプライン" */
    font-size: 2em;
    margin-bottom: 30px;
    border-bottom: 1px solid #ccc; /* Border from design */
    padding-bottom: 10px;
    font-weight: bold;
}
 /* Specific style for the first title */
 .rd-pipeline-title {
     text-align: center;
     border-bottom: none; /* No border for this one */
     margin-bottom: 20px;
     font-size: 2.2em; /* Slightly larger */
 }

.pipeline-description {
    margin-bottom: 50px; /* Increased margin */
    line-height: 1.8;
    text-align: justify; /* Justify text */
}

.pipeline-image-container {
    padding: 40px 20px; /* Padding inside the box */
    text-align: center; /* Center the image */
    margin-bottom: 60px;
    min-height: 300px; /* Ensure some height */
    display: flex;
    justify-content: center;
    align-items: center;
}

.pipeline-image-container img {
    max-width: 80%; /* Limit image size */
    height: auto;
    display: inline-block; /* To allow centering */
}

/* Responsive styles */
@media (max-width: 768px) {
    .pipeline-container {
        padding: 40px 15px 40px;
    }
    .page-title {
        font-size: 2em;
    }
    .section-title {
        font-size: 1.8em;
    }
     .rd-pipeline-title {
         font-size: 2em;
     }
    .pipeline-description {
        text-align: left; /* Revert justify on mobile */
    }
    .pipeline-image-container img {
        max-width: 100%; /* Allow full width on mobile */
    }
}

/* Styles from pipeline/metabolic-enzyme-y.html */
/* Page-specific styles */
.pipeline-container {
    max-width: 1000px;
    margin: 0 auto;
    padding: 60px 20px 60px;
}

.page-title {
    font-size: 2.5em;
    margin-bottom: 10px;
    padding-bottom: 15px;
    font-weight: bold;
    text-align: center;
}

.page-subtitle {
    font-size: 1.5em;
    margin-bottom: 40px;
    padding-bottom: 15px;
    text-align: center;
    border-bottom: 1px solid #ccc;
}

.section-title {
    font-size: 1.8em;
    margin: 40px 0 20px;
    color: #003366;
    font-weight: bold;
}

.content-section {
    margin-bottom: 40px;
    line-height: 1.8;
}

.image-container {
    background-color: #f5f5f5;
    padding: 40px;
    margin: 30px 0;
    text-align: center;
}

.image-container img {
    max-width: 100%;
    height: auto;
    margin-bottom: 15px;
}

.image-caption {
    font-weight: bold;
    text-align: center;
}

/* FAQ Styles */
.faq-section {
    margin: 50px 0;
    border-top: 1px solid #ccc;
    padding-top: 30px;
}

.faq-title {
    font-size: 2em;
    margin-bottom: 30px;
    text-align: center;
}

details {
    margin-bottom: 20px;
    border: 1px solid #ddd;
    border-radius: 5px;
    padding: 10px;
    background: #f4f7fa;
}

summary {
    font-weight: bold;
    color: #005599;
    cursor: pointer;
    padding: 10px;
}

summary:hover {
    text-decoration: underline;
}

details p {
    margin: 10px 0 0 0;
    padding: 10px;
}

/* Responsive styles */
@media (max-width: 768px) {
    .pipeline-container {
        padding: 40px 15px 40px;
    }
    
    .page-title {
        font-size: 2em;
    }
    
    .page-subtitle {
        font-size: 1.2em;
    }
    
    .section-title {
        font-size: 1.5em;
    }
    
    .image-container {
        padding: 20px;
    }
}

/* Styles from pipeline/receptor-x.html */
/* Page-specific styles */
.pipeline-container {
    max-width: 1000px;
    margin: 0 auto;
    padding: 60px 20px 60px;
}

.page-title {
    font-size: 2.5em;
    margin-bottom: 40px;
    padding-bottom: 15px;
    font-weight: bold;
    text-align: center;
    border-bottom: 1px solid #ccc;
}

.section-title {
    font-size: 1.8em;
    margin: 40px 0 20px;
    color: #003366;
    font-weight: bold;
}

.content-section {
    margin-bottom: 40px;
    line-height: 1.8;
}

.image-container {
    background-color: #f5f5f5;
    padding: 40px;
    margin: 30px 0;
    text-align: center;
}

.image-container img {
    max-width: 100%;
    height: auto;
    margin-bottom: 15px;
}

.image-caption {
    font-weight: bold;
    text-align: center;
}

/* FAQ Styles */
.faq-section {
    margin: 50px 0;
    border-top: 1px solid #ccc;
    padding-top: 30px;
}

.faq-title {
    font-size: 2em;
    margin-bottom: 30px;
    text-align: center;
}

details {
    margin-bottom: 20px;
    border: 1px solid #ddd;
    border-radius: 5px;
    padding: 10px;
    background: #f4f7fa;
}

summary {
    font-weight: bold;
    color: #005599;
    cursor: pointer;
    padding: 10px;
}

summary:hover {
    text-decoration: underline;
}

details p {
    margin: 10px 0 0 0;
    padding: 10px;
}

/* Responsive styles */
@media (max-width: 768px) {
    .pipeline-container {
        padding: 40px 15px 40px;
    }
    
    .page-title {
        font-size: 2em;
    }
    
    .section-title {
        font-size: 1.5em;
    }
    
    .image-container {
        padding: 20px;
    }
}

/* Styles from pipeline/ubiquitin-ligase-z.html */
/* Page-specific styles */
.pipeline-container {
    max-width: 1000px;
    margin: 0 auto;
    padding: 60px 20px 60px;
}

.page-title {
    font-size: 2.5em;
    margin-bottom: 10px;
    padding-bottom: 15px;
    font-weight: bold;
    text-align: center;
}

.page-subtitle {
    font-size: 1.5em;
    margin-bottom: 40px;
    padding-bottom: 15px;
    text-align: center;
    border-bottom: 1px solid #ccc;
}

.section-title {
    font-size: 1.8em;
    margin: 40px 0 20px;
    color: #003366;
    font-weight: bold;
}

.content-section {
    margin-bottom: 40px;
    line-height: 1.8;
}

.image-container {
    background-color: #f5f5f5;
    padding: 40px;
    margin: 30px 0;
    text-align: center;
}

.image-container img {
    max-width: 100%;
    height: auto;
    margin-bottom: 15px;
}

.image-caption {
    font-weight: bold;
    text-align: center;
}

/* FAQ Styles */
.faq-section {
    margin: 50px 0;
    border-top: 1px solid #ccc;
    padding-top: 30px;
}

.faq-title {
    font-size: 2em;
    margin-bottom: 30px;
    text-align: center;
}

details {
    margin-bottom: 20px;
    border: 1px solid #ddd;
    border-radius: 5px;
    padding: 10px;
    background: #f4f7fa;
}

summary {
    font-weight: bold;
    color: #005599;
    cursor: pointer;
    padding: 10px;
}

summary:hover {
    text-decoration: underline;
}

details p {
    margin: 10px 0 0 0;
    padding: 10px;
}

/* Responsive styles */
@media (max-width: 768px) {
    .pipeline-container {
        padding: 40px 15px 40px;
    }
    
    .page-title {
        font-size: 2em;
    }
    
    .page-subtitle {
        font-size: 1.2em;
    }
    
    .section-title {
        font-size: 1.5em;
    }
    
    .image-container {
        padding: 20px;
    }
}
