/* CASTRA Aero – theme styles (front end and editor) */

:root {
	--castra-space: #0A1A36;
	--castra-navy: #1F3B73;
	--castra-cyan: #1197BD;
	--castra-sky: #5FD0EE;
	--castra-paper: #F2F7FB;
	--castra-line: #D3E4EF;
	--castra-ink: #142440;
	--castra-muted: #4E5D78;
	--castra-radius: 6px;
	--castra-grid:
		linear-gradient(to right, rgba(17, 151, 189, .07) 1px, transparent 1px) 0 0 / 24px 24px,
		linear-gradient(to bottom, rgba(17, 151, 189, .07) 1px, transparent 1px) 0 0 / 24px 24px,
		linear-gradient(to right, rgba(17, 151, 189, .12) 1px, transparent 1px) 0 0 / 120px 120px,
		linear-gradient(to bottom, rgba(17, 151, 189, .12) 1px, transparent 1px) 0 0 / 120px 120px;
}

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img, svg, video, iframe { max-width: 100%; }
img { height: auto; }

:where(a, button, input, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--castra-sky);
	outline-offset: 2px;
	border-radius: 2px;
}

.screen-reader-text:focus { background: #fff; color: var(--castra-ink); }

/* ---------- Layout ---------- */

.wp-site-blocks > * + *, .site-main { margin-block-start: 0 !important; }
.site-main > * { margin-block-start: 0; }

/* ---------- Header ---------- */

.site-header-part {
	position: sticky;
	top: 0;
	z-index: 50;
	background: #fff;
	border-bottom: 1px solid var(--castra-line);
}
.admin-bar .site-header-part { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar .site-header-part { top: 0; } }

.site-header { padding-top: .55rem; padding-bottom: .55rem; }
.site-header__bar { gap: 1.5rem; }
.site-logo { display: block; line-height: 0; flex: none; margin: 0 !important; }
.site-logo a { display: block; }
.site-logo img { height: 56px; width: auto; }

.site-nav { font-size: .98rem; }
.site-nav .wp-block-navigation-item__content { color: var(--castra-ink); text-decoration: none; padding: .35rem 0; }
.site-nav .wp-block-navigation-item__content:hover { color: var(--castra-cyan); }
.site-nav .current-menu-item > .wp-block-navigation-item__content,
.site-nav .wp-block-navigation-item__content[aria-current="page"] { color: var(--castra-cyan); }
.site-nav .wp-block-navigation__container { gap: 1.35rem; }

.site-nav .wp-block-navigation__submenu-container {
	border: 1px solid var(--castra-line) !important;
	border-top: 3px solid var(--castra-cyan) !important;
	border-radius: 0 0 var(--castra-radius) var(--castra-radius);
	box-shadow: 0 14px 30px -18px rgba(10, 26, 54, .45);
	padding: .4rem 0;
	min-width: 15rem !important;
}
.site-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .5rem 1.1rem; }

.site-nav .nav-join > .wp-block-navigation-item__content {
	background: var(--castra-navy);
	color: #fff;
	padding: .55rem 1rem;
	border-radius: var(--castra-radius);
	font-weight: 600;
}
.site-nav .nav-join > .wp-block-navigation-item__content:hover { background: var(--castra-cyan); color: #fff; }

/* Mobile menu */
.site-nav .wp-block-navigation__responsive-container-open { color: var(--castra-navy); }
.site-nav .wp-block-navigation__responsive-container-open svg { width: 30px; height: 30px; }
.site-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--castra-grid), var(--castra-space);
	padding: 1.25rem clamp(1.1rem, 5vw, 2rem) 2rem;
}
.site-nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3.5rem; }
.site-nav .is-menu-open .wp-block-navigation__responsive-container-content,
.site-nav .is-menu-open .wp-block-navigation__container,
.site-nav .is-menu-open .wp-block-navigation-item { align-items: flex-start !important; text-align: left; }
.site-nav .is-menu-open .wp-block-navigation__container { gap: .2rem; width: 100%; }
.site-nav .is-menu-open .wp-block-navigation-item { width: 100%; }
.site-nav .is-menu-open .wp-block-navigation-item__content { color: #fff !important; font-size: 1.2rem; padding: .45rem 0; }
.site-nav .is-menu-open .wp-block-navigation__submenu-container {
	border: 0 !important;
	box-shadow: none;
	background: transparent !important;
	padding: 0 0 .6rem 1rem !important;
	border-left: 2px solid rgba(95, 208, 238, .4) !important;
	border-radius: 0;
}
.site-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1rem; color: #CFE2F2 !important; padding: .35rem 0; }
.site-nav .is-menu-open .nav-join > .wp-block-navigation-item__content { display: inline-block; margin-top: 1rem; background: var(--castra-cyan); }
.site-nav .wp-block-navigation__responsive-container-close { color: #fff; }

@media (max-width: 781px) {
	.site-logo img { height: 46px; }
}

/* ---------- Page band (title area) ---------- */

.page-band {
	position: relative;
	overflow: hidden;
	background: var(--castra-grid), var(--castra-paper);
	border-bottom: 1px solid var(--castra-line);
	padding-top: clamp(2.5rem, 6vw, 4.5rem);
	padding-bottom: clamp(2rem, 4.5vw, 3.25rem);
}
.page-band > * { position: relative; z-index: 1; }
.page-band .wp-block-post-title,
.page-band h1 {
	text-wrap: balance;
	padding-right: clamp(0px, 18vw, 240px);
	margin: 0;
	font-size: var(--wp--preset--font-size--xx-large);
	color: var(--castra-navy);
}
.page-band::after {
	content: "";
	position: absolute;
	z-index: 0;
	right: max(1.5rem, calc((100vw - 76rem) / 2));
	bottom: 12%;
	width: clamp(130px, 20vw, 260px);
	height: 72%;
	background: url(../img/satellite.svg) no-repeat right bottom / contain;
	opacity: .95;
	pointer-events: none;
}
.section-business .page-band::after { background-image: url(../img/launcher.svg); bottom: 0; height: 92%; }
.section-public .page-band::after { background-image: url(../img/globe.svg); }
.section-news .page-band::after { background-image: url(../img/air-taxi.svg); }
.section-community .page-band::after { background-image: url(../img/solar-system.svg); width: clamp(160px, 26vw, 340px); }
.section-join .page-band::after { background-image: url(../img/airplane.svg); }
.section-general .page-band::after { background-image: url(../img/globe.svg); }
.band-meta { color: var(--castra-muted); font-size: var(--wp--preset--font-size--small); margin-bottom: .5rem; }

@media (max-width: 700px) {
	.page-band::after { opacity: .28; width: 140px; right: .75rem; bottom: .5rem; height: 80%; }
	.page-band .wp-block-post-title, .page-band h1 { padding-right: 0; }
}

/* ---------- Page content ---------- */

.page-content { padding-top: clamp(2rem, 5vw, 3.5rem); padding-bottom: clamp(3rem, 7vw, 5rem); }
.page-content > :first-child { margin-top: 0; }
.is-style-lead { font-size: var(--wp--preset--font-size--large); line-height: 1.55; color: var(--castra-ink); }
.page-content h2 { padding-top: .25rem; }

.page-content blockquote:not(.wp-block-quote) {
	margin: 1.5rem 0;
	padding: .25rem 0 .25rem 1.25rem;
	border-left: 3px solid var(--castra-cyan);
	color: var(--castra-navy);
}
.page-content blockquote:not(.wp-block-quote) p { margin: .4rem 0; }

/* Legacy layout helpers */
.castra-cols {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
	gap: 1.5rem 2.5rem;
	margin: 1.5rem 0;
}
.castra-col > :first-child { margin-top: 0; }
.castra-box { background: var(--castra-paper); border: 1px solid var(--castra-line); border-radius: var(--castra-radius); padding: 1.25rem; }
.castra-button {
	display: inline-block;
	background: var(--castra-navy);
	color: #fff !important;
	text-decoration: none;
	padding: .4rem .9rem;
	border-radius: var(--castra-radius);
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
}
.castra-button:hover { background: var(--castra-cyan); }

.page-content img.alignleft, .page-content .alignleft:not(.wp-block-image) { float: left; margin: .3rem 1.25rem .75rem 0; }
.page-content img.alignright { float: right; margin: .3rem 0 .75rem 1.25rem; }
.page-content img.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.page-content p::after { content: ""; display: table; clear: both; }
@media (max-width: 600px) {
	.page-content img.alignleft, .page-content img.alignright { float: none; display: block; margin: .5rem 0; }
}

.page-content iframe { width: 100%; height: auto; aspect-ratio: 4 / 3; border: 0; border-radius: var(--castra-radius); }

.page-content table {
	border-collapse: collapse;
	width: 100%;
	margin: 1.5rem 0;
	font-size: .95rem;
}
.page-content td, .page-content th { border-bottom: 1px solid var(--castra-line); padding: .6rem .5rem; vertical-align: top; text-align: left; }
@media (max-width: 700px) {
	.page-content table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
}

/* Document links (PDFs) */
.castra-doc { margin: .75rem 0; }
.castra-doc a {
	display: flex;
	align-items: center;
	gap: .85rem;
	padding: .8rem 1rem;
	border: 1px solid var(--castra-line);
	border-radius: var(--castra-radius);
	background: #fff;
	color: var(--castra-navy);
	text-decoration: none;
	font-weight: 600;
	line-height: 1.35;
	overflow-wrap: anywhere;
}
.castra-doc a::before {
	content: "";
	flex: none;
	width: 28px;
	height: 34px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 34' fill='none' stroke='%231F3B73' stroke-width='1.6'%3E%3Cpath d='M3 1h15l7 7v25H3z'/%3E%3Cpath d='M18 1v7h7' /%3E%3Cpath d='M8 16h12M8 21h12M8 26h8' stroke='%231197BD'/%3E%3C/svg%3E") no-repeat center / contain;
}
.castra-doc a::after {
	content: "PDF";
	margin-left: auto;
	padding-left: .75rem;
	font-size: .75rem;
	font-weight: 600;
	color: var(--castra-muted);
}
.castra-doc a:hover { border-color: var(--castra-cyan); color: var(--castra-cyan); }

/* Lists of links */
.castra-links { list-style: none; padding: 0; margin: 1rem 0 2rem; border-top: 1px solid var(--castra-line); }
.castra-links li { border-bottom: 1px solid var(--castra-line); margin: 0; }
.castra-links a {
	display: block;
	padding: .8rem .25rem;
	text-decoration: none;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
	color: var(--castra-navy);
}
.castra-links a:hover { color: var(--castra-cyan); padding-left: .5rem; }

.castra-callout {
	margin-top: 3rem !important;
	background: var(--castra-paper);
	border-left: 3px solid var(--castra-cyan);
	padding: 1.5rem 1.75rem;
	border-radius: 0 var(--castra-radius) var(--castra-radius) 0;
}
.castra-callout h3 { margin-top: 0; }

/* Section navigation under page content */
.section-nav {
	margin-top: 3.5rem;
	padding-top: 1.5rem;
	border-top: 2px solid var(--castra-navy);
}
.section-nav__title {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
	color: var(--castra-navy);
	margin: 0 0 .75rem;
}
.section-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.section-nav a {
	display: inline-block;
	padding: .45rem .8rem;
	border: 1px solid var(--castra-line);
	border-radius: 999px;
	text-decoration: none;
	font-size: .92rem;
	color: var(--castra-navy);
	background: #fff;
}
.section-nav a:hover { border-color: var(--castra-cyan); color: var(--castra-cyan); }
.section-nav .is-current a { background: var(--castra-navy); border-color: var(--castra-navy); color: #fff; }

/* ---------- Members ---------- */

.member-grid { gap: 1rem !important; margin-top: 1.25rem; margin-bottom: 2.5rem; }
.member-card {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--castra-line);
	border-radius: var(--castra-radius);
	background: #fff;
	padding: 1.1rem 1.1rem 1rem;
}
.member-card > * { margin: 0 !important; }
.member-card .member-logo { height: 64px; display: flex; align-items: center; margin-bottom: .9rem !important; }
.member-card .member-logo img { max-height: 64px; max-width: 100%; width: auto; object-fit: contain; }
.member-logo--empty { width: 64px; background: var(--castra-grid), var(--castra-paper); border-radius: var(--castra-radius); justify-content: center; }
.member-initial { font-family: var(--wp--preset--font-family--heading); font-size: 1.6rem; font-weight: 600; color: var(--castra-navy); margin: 0 !important; }
.member-name { font-weight: 600; line-height: 1.35; }
.member-name a { text-decoration: none; }
.member-name a:hover { text-decoration: underline; }
.member-meta { color: var(--castra-muted); font-size: var(--wp--preset--font-size--small); margin-top: .35rem !important; }

/* ---------- Home ---------- */

.home-hero {
	position: relative;
	background: var(--castra-space) url(../img/hero-earth.jpg) no-repeat 60% 100% / cover;
	color: #E6F0FA;
	min-height: min(88vh, 56rem);
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-top: clamp(4rem, 10vh, 7rem) !important;
	padding-bottom: clamp(10rem, 26vh, 16rem) !important;
	margin-top: 0 !important;
}
.home-hero > * { width: 100%; }
.home-hero__inner { margin-top: 0 !important; }
.home-hero__title {
	color: #fff !important;
	font-size: var(--wp--preset--font-size--huge) !important;
	font-weight: 600;
	line-height: 1.06 !important;
	letter-spacing: -0.02em !important;
	max-width: 19ch;
	margin: 0;
	text-wrap: balance;
}
.home-hero__lead {
	max-width: 36rem;
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.55;
	color: #CFE0F0;
	margin-top: 1.5rem !important;
}
.home-hero .wp-block-buttons { margin-top: 2rem; }
.home-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: var(--castra-cyan); }
.home-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: #fff; color: var(--castra-navy); }
.home-hero .is-style-outline .wp-block-button__link { color: #fff; border: 2px solid rgba(255, 255, 255, .7); background: transparent; }
.home-hero .is-style-outline .wp-block-button__link:hover { border-color: #fff; background: rgba(255, 255, 255, .1); }
@media (max-width: 700px) {
	.home-hero { min-height: 0; background-size: 260% auto; background-position: 72% 100%; padding-bottom: 62vw !important; }
}

.home-section { padding-top: var(--wp--preset--spacing--60); padding-bottom: var(--wp--preset--spacing--60); margin-top: 0 !important; }
.section-head { margin-bottom: 2.25rem; }
.section-title { margin: 0; font-size: var(--wp--preset--font-size--xx-large); }
.section-intro { color: var(--castra-muted); font-size: var(--wp--preset--font-size--large); max-width: 40rem; margin-top: .75rem !important; }
.section-foot { margin-top: 2.25rem; }
.more-link a {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
	text-decoration-color: var(--castra-cyan);
}

.area-grid { gap: 2.5rem 3rem !important; }
.area { border-top: 1px solid var(--castra-line); padding-top: 1.5rem; }
.area > * { margin: 0 !important; }
.area .area-art { height: 96px; margin-bottom: 1.25rem !important; display: flex; align-items: flex-end; }
.area .area-art img { height: 96px; width: auto; max-width: 100%; }
.area-title { font-size: var(--wp--preset--font-size--large); margin-bottom: .5rem !important; }
.area p { margin-top: .5rem !important; color: var(--castra-ink); }

.home-members { background: var(--castra-grid), var(--castra-paper); border-top: 1px solid var(--castra-line); border-bottom: 1px solid var(--castra-line); }
.members-roll {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	gap: 2rem 3rem;
}
.members-roll > *, .roll-group > * { margin-top: 0 !important; }
.roll-title { font-size: 1rem; color: var(--castra-cyan); margin: 0 0 .75rem; }
.roll-list { list-style: none; margin: 0; padding: 0; }
.roll-list li { padding: .32rem 0; border-bottom: 1px solid var(--castra-line); font-size: .98rem; }
.roll-list--cols { columns: 2; column-gap: 2rem; }
.roll-list--cols li { break-inside: avoid; }
@media (max-width: 900px) {
	.members-roll { grid-template-columns: 1fr 1fr; }
	.roll-group--wide { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
	.members-roll { grid-template-columns: 1fr; }
	.roll-list--cols { columns: 1; }
}

.network-grid { gap: 2rem !important; }
.network-item { border-left: 3px solid var(--castra-cyan); padding-left: 1.1rem; }
.network-item > * { margin: 0 !important; }
.network-name { font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: var(--wp--preset--font-size--large); margin-bottom: .4rem !important; }
.network-name a { text-decoration: none; }
.network-item p:not(.network-name) { color: var(--castra-muted); }

.home-news { border-top: 1px solid var(--castra-line); }
.news-grid { gap: 2rem 2.5rem !important; }
.news-item > * { margin: 0 !important; }
.news-date { color: var(--castra-cyan); font-weight: 600; font-size: var(--wp--preset--font-size--small); }
.news-title { font-size: var(--wp--preset--font-size--large); margin: .35rem 0 .5rem !important; }
.news-title a { text-decoration: none; color: var(--castra-navy); }
.news-title a:hover { color: var(--castra-cyan); }

.home-join {
	background: radial-gradient(120% 140% at 85% 120%, rgba(95, 208, 238, .22), transparent 55%), var(--castra-space);
	color: #DCE8F5;
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--60);
	margin-top: 0 !important;
}
.join-columns { align-items: center !important; gap: 2rem 4rem !important; }
.join-title { color: #fff !important; font-size: var(--wp--preset--font-size--xx-large); margin-top: 0; }
.home-join p { max-width: 34rem; font-size: var(--wp--preset--font-size--large); }
.home-join .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: var(--castra-cyan); }
.home-join .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: #fff; color: var(--castra-navy); }
.home-join .is-style-outline .wp-block-button__link { color: #fff; border: 2px solid rgba(255, 255, 255, .7); background: transparent; }
.join-art { margin: 0 0 0 auto !important; max-width: 200px; }
.join-art img { width: 100%; }
@media (max-width: 781px) { .join-art { display: none; } }

/* ---------- Posts list ---------- */

.post-list { padding-top: 2.5rem; padding-bottom: 4rem; }
.post-list .wp-block-post-template > li { border-bottom: 1px solid var(--castra-line); padding: 1.25rem 0; margin: 0; }
.post-list__title { font-size: var(--wp--preset--font-size--x-large); margin: .2rem 0 .5rem; }
.post-list__title a { text-decoration: none; }
.post-nav { padding-bottom: 4rem; display: flex; justify-content: space-between; gap: 1rem; }

/* ---------- Footer ---------- */

.site-footer-part { margin-top: 0 !important; }
.site-footer {
	background: var(--castra-space);
	color: #B9CBE0;
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: 2rem;
	box-shadow: inset 0 1px 0 rgba(95, 208, 238, .45);
	font-size: .95rem;
}
.site-footer a { color: #fff; text-decoration-color: rgba(95, 208, 238, .6); }
.site-footer a:hover { color: var(--castra-sky); }
.site-footer__grid { gap: 2rem 3rem !important; }
.site-footer__grid > * > * { margin-top: 0; }
.site-footer__logo { margin: 0 0 1rem !important; max-width: 150px; }
.site-footer__title { color: #fff !important; font-size: 1rem !important; margin: 0 0 .75rem !important; }
.site-footer__links { list-style: none; padding: 0; margin: 0; }
.site-footer__links li { padding: .2rem 0; }
.site-footer__legal { margin-top: 2.5rem !important; padding-top: 1.25rem; border-top: 1px solid rgba(255, 255, 255, .12); font-size: .85rem; }
.site-footer__legal p { margin: 0; }

@media (prefers-reduced-motion: reduce) {
	* { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
