:root {
	--color-skyblue: #0cc0df;
	--color-mediumseagreen-200: #00d699;
	--color-mediumseagreen-300: #00d18d;
	--color-royalblue: #005cb6;
	--color-white: #fff;
	--color-ghostwhite: #f5f6fb;
	--color-dimgray: #707070;
	--color-darkturquoise: #0bc6e2;
	--color-digital: #00bf62;
	--color-mobility: #004aad;
	--color-economic: #0097b2;
	--color-built: #0cc1e0;
	--color-education: #5ce1e6;
	--color-sustainability: #5271ff;
	--color-darkmode: #2b2b2b;
}

button {
	border-radius: 2px;
	padding: 10px;
	font-size: 1rem;
	margin: 10px;
}
main {
	margin-top: 30px;
	margin-left: auto;
	margin-right: auto;
}
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

body {
	font-family: "Bahnschrift", sans-serif;
	background-color: var(--color-ghostwhite);
	overflow-x: hidden;
	color: var(--color-dimgray);
}

.homepage {
	width: 100%;
	max-width: 1920px;
	margin: 0 auto;
	position: relative;
}

.top-nav {
	background-color: var(--color-skyblue);
	border: 1px solid var(--color-dimgray);
	height: 116px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 2rem;
	position: relative;
	z-index: 10;
}

.logo {
	width: 316px;
	height: auto;
	object-fit: contain;
}

.search-container {
	display: flex;
	align-items: center;
	background: var(--color-white);
	border: 1px solid var(--color-dimgray);
	width: 590px;
	height: 56px;
	padding: 0 1rem;
}

.search-container input {
	width: 100%;
	border: none;
	outline: none;
	font-size: 1rem;
	padding: 0.5rem;
}

.social-links {
	display: flex;
	gap: 1rem;
}

.social-button {
	width: 70px;
	height: 70px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 4px;
	background: var(--color-royalblue);
	color: var(--color-darkturquoise);
	text-decoration: none;
	font-family: "Bebas Neue", sans-serif;
	font-size: 2rem;
}

.main-nav {
	display: flex;
	justify-content: center;
	gap: 20px;
	padding: 10px;
	overflow-x: auto;
	background: var(--color-ghostwhite);
	position: relative;
	z-index: 5;
}

.nav-button {
	min-width: 183px;
	height: 43px;
	background: var(--color-mediumseagreen-200);
	border: 1px solid var(--color-dimgray);
	color: var(--color-white);
	font-family: "Bebas Neue", sans-serif;
	cursor: pointer;
	white-space: nowrap;
	transition: background-color 0.3s ease;
}

.nav-button:hover {
	background: var(--color-mediumseagreen-300);
}

.hero {
	text-align: center;
	padding: 4rem 2rem;
	background: var(--color-white);
	border: 1px solid var(--color-dimgray);
	margin: 2rem auto;
	max-width: 925px;
	position: relative;
}

.hero-logo {
	width: 418px;
	height: auto;
	margin: 0 auto;
	display: block;
}

.hero-text {
	color: var(--color-mediumseagreen-300);
	font-size: 2rem;
	margin-top: 2rem;
	max-width: 862px;
	line-height: 1.3;
}

.connecting-dots {
	padding: 4rem 2rem;
	background: linear-gradient(
		180deg,
		var(--color-ghostwhite) 0%,
		var(--color-skyblue) 100%
	);
	color: var(--color-white);
	text-align: center;
}

.connecting-dots h2 {
	font-size: 3rem;
	font-family: "Bebas Neue", sans-serif;
	margin-bottom: 2rem;
	color: var(--color-white);
}

.connecting-dots p {
	max-width: 1352px;
	margin: 0 auto;
	font-size: 1.2rem;
	line-height: 1.6;
}

.proud-member {
	padding: 4rem 2rem;
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 4rem;
	align-items: center;
}

.proud-member-content h2 {
	font-size: 2.5rem;
	font-family: "Bebas Neue", sans-serif;
	color: var(--color-royalblue);
	margin-bottom: 2rem;
}

.proud-member-content p {
	color: var(--color-royalblue);
	font-size: 1.2rem;
	line-height: 1.6;
	margin-bottom: 2rem;
}

.postcard-image {
	width: 100%;
	height: auto;
	border: 1px solid var(--color-dimgray);
}

.action-areas {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(264px, 1fr));
	gap: 2rem;
	padding: 2rem;
	max-width: 1586px;
	margin: 0 auto;
}

.action-card {
	text-align: center;
	position: relative;
	padding: 1rem;
	text-decoration: none;
	color: inherit;
	display: block;
}

.action-circle {
	width: 165px;
	height: 165px;
	border-radius: 50%;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--color-dimgray);
}

.action-circle svg {
	width: 70px;
	height: 70px;
	color: var(--color-white);
}

.action-title {
	color: var(--color-mediumseagreen-200);
	font-family: "Bebas Neue", sans-serif;
	font-size: 1.5rem;
	margin-top: 1rem;
	text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.projects {
	padding: 4rem 2rem;
	text-align: center;
}

.projects h2 {
	font-size: 3rem;
	font-family: "Bebas Neue", sans-serif;
	color: var(--color-mediumseagreen-200);
	margin-bottom: 2rem;
}

.projects p {
	color: var(--color-mediumseagreen-200);
	font-size: 1.2rem;
	line-height: 1.6;
	max-width: 1285px;
	margin: 0 auto 3rem;
}

.footer {
	background: var(--color-skyblue);
	padding: 4rem 2rem;
	color: var(--color-white);
	border-top: 1px solid var(--color-dimgray);
}

.footer-content {
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: 4rem;
	align-items: start;
}

.newsletter h2 {
	font-size: 2.5rem;
	font-family: "Bebas Neue", sans-serif;
	margin-bottom: 1rem;
}

.newsletter p {
	font-size: 1.2rem;
	margin-bottom: 2rem;
}

.newsletter-form {
	display: flex;
	gap: 1rem;
}

.newsletter-input {
	flex: 1;
	padding: 1rem;
	border: 1px solid var(--color-dimgray);
	font-size: 1rem;
	min-width: 300px;
}

.signup-button {
	background: var(--color-mediumseagreen-200);
	color: var(--color-white);
	border: none;
	padding: 1rem 2rem;
	font-family: "Bebas Neue", sans-serif;
	font-size: 1.2rem;
	cursor: pointer;
	transition: background-color 0.3s ease;
}

.signup-button:hover {
	background: var(--color-mediumseagreen-300);
}

.document-item {
    border: 1px solid #ddd;
    border-radius: 0 !important;
    padding: 10px;
    box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
    background-color: #f9f9f9;
    transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

.card-container > .document-link:first-of-type > .document-item {
    border-top-left-radius: 5px !important;
    border-top-right-radius: 5px !important;
}

.card-container > .document-link:last-of-type > .document-item {
    border-bottom-left-radius: 5px !important;
    border-bottom-right-radius: 5px !important
}

.document-item:hover {
    background-color: #dcdcdc;
    box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.2);
}

.document-link {
    text-decoration: none;
    color: inherit;
	width: 50%;
	display: inline-block;
}

/* New Document Card Styles */
.documents-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 2rem;
    margin-top: 2rem;
}

.document-card {
    display: flex;
    flex-direction: column;
    background: white;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    color: #333;
    height: 100%;
    text-decoration: none;
}

.document-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
}

.document-preview {
    height: 120px;
    background: #f0f3f7;
    display: flex;
    align-items: center;
    justify-content: center;
    border-bottom: 1px solid #eaeaea;
}

.document-icon {
    font-size: 48px;
    color: var(--color-royalblue);
}

/* Document type-specific icon colors */
.pdf-icon {
    color: #f40f02;
}

.word-icon {
    color: #2b579a;
}

.excel-icon {
    color: #217346;
}

.powerpoint-icon {
    color: #d24726;
}

.image-icon {
    color: #ff9900;
}

.archive-icon {
    color: #8a2be2;
}

.document-info {
    padding: 1.25rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.document-title {
    margin: 0 0 0.75rem;
    font-size: 1.25rem;
    color: var(--color-royalblue);
    line-height: 1.3;
}

.document-desc {
    margin: 0 0 1rem;
    font-size: 0.95rem;
    color: #555;
    line-height: 1.5;
    flex-grow: 1;
    max-height: 4.5rem;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

.document-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    font-size: 0.85rem;
    color: #777;
    margin-top: auto;
}

.document-meta span {
    display: flex;
    align-items: center;
    gap: 0.3rem;
}

.newbutton {
	background-color: #2463eb; 
    color: white;
    border: none; 
    border-radius: 25px; 
    padding: 12px 20px; 
    font-size: 16px; 
    position: fixed; 
    bottom: 2%; 
    right: 1%; 
    box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);
    cursor: pointer; 
}

.newbutton:hover {
    background-color: #1f51bf;
}

/* Member Card Styles */
.members-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 2rem;
    margin-top: 2rem;
}

.member-card {
    display: flex;
    flex-direction: column;
    background: white;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    color: #333;
    height: 100%;
    text-decoration: none;
}

.member-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
}

.member-avatar {
    height: 120px;
    background: #f0f3f7;
    display: flex;
    align-items: center;
    justify-content: center;
    border-bottom: 1px solid #eaeaea;
}

.member-icon {
    font-size: 64px;
    color: var(--color-royalblue);
}

.member-info {
    padding: 1.25rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.member-name {
    margin: 0 0 0.75rem;
    font-size: 1.25rem;
    color: var(--color-royalblue);
    line-height: 1.3;
}

.member-email {
    margin: 0 0 1rem;
    font-size: 0.95rem;
    color: #555;
    line-height: 1.5;
    flex-grow: 1;
}

.member-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    font-size: 0.85rem;
    color: #777;
    margin-top: auto;
}

.member-meta span {
    display: flex;
    align-items: center;
    gap: 0.3rem;
}

/* Organization Card Styles */
.organizations-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 2rem;
    margin-top: 2rem;
}

.organization-card {
    display: flex;
    flex-direction: column;
    background: white;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    color: #333;
    height: 100%;
    text-decoration: none;
}

.organization-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
}

.organization-logo {
    height: 120px;
    background: #f0f3f7;
    display: flex;
    align-items: center;
    justify-content: center;
    border-bottom: 1px solid #eaeaea;
}

.organization-icon {
    font-size: 64px;
    color: var(--color-royalblue);
}

.organization-info {
    padding: 1.25rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.organization-name {
    margin: 0 0 0.75rem;
    font-size: 1.25rem;
    color: var(--color-royalblue);
    line-height: 1.3;
}

.organization-desc {
    margin: 0 0 1rem;
    font-size: 0.95rem;
    color: #555;
    line-height: 1.5;
    flex-grow: 1;
    max-height: 4.5rem;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

.organization-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    font-size: 0.85rem;
    color: #777;
    margin-top: auto;
}

.organization-meta span {
    display: flex;
    align-items: center;
    gap: 0.3rem;
}

@media (max-width: 1200px) {
	.search-container {
		width: 300px;
	}

	.main-nav {
		flex-wrap: wrap;
		justify-content: center;
	}

	.footer-content {
		grid-template-columns: 1fr;
	}

	.proud-member {
		grid-template-columns: 1fr;
		text-align: center;
	}
}

@media (max-width: 768px) {
	.top-nav {
		flex-direction: column;
		height: auto;
		padding: 1rem;
	}

	.search-container {
		width: 100%;
		margin: 1rem 0;
	}

	.hero-logo {
		width: 100%;
		max-width: 418px;
	}

	.action-areas {
		grid-template-columns: 1fr;
	}

	.newsletter-form {
		flex-direction: column;
	}

	.newsletter-input {
		width: 100%;
	}
}
