:root {
/* headings, nav, footer */
	--color-deep-sea-blue: #126E82;
/* buttons, links, accents */
	--color-bantayan-teal: #2A9D9F;
/* secondary backgrounds, highlights */
	--color-lagoon: #76C7C5;
/* section backgrounds, warm accents */
	--color-sand: #F4E3C1;
/* main background */
	--color-white-sand: #FFF9ED;
/* cta buttons, important accents */
	--color-sunset-coral: #E9785B;
/* nature accents, icons, highlights */
	--color-palm-green: #4F7D4A;
/* body text, borders, icons */
	--color-driftwood: #665548;

	--color-white-cloud: #F7FAFA;

}


html {
	font-size: 100%; /* 16px base — all rem values below are relative to this */
}

* { box-sizing: border-box; }

body {
	margin: 0;
	font-family: "DM Sans", sans-serif;
	background-color: var(--color-sand);
}

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

.container {
	width: min(calc(100% - 48px), 1280px);
	margin: 0 auto;
}

/* ===== Header ===== */

.site-header {
	background: var(--color-deep-sea-blue);
	color: var(--color-white-cloud);
}

.nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 64px;
}

.logo {
	display: flex;
	align-items: center;
	gap: 14px;
}

.logo-mark {
	display: flex;
	flex-shrink: 0;
}

.logo-text {
	font-family: "Playfair Display", serif;
	font-weight: 700;
	font-size: 1.125rem; /* 18px */
	line-height: 1.15;
	letter-spacing: .02em;
}

.logo-text small {
	display: block;
	margin-top: 4px;
	font-family: "Raleway", sans-serif;
	font-weight: 400;
	font-size: .65rem; /* 12px */
	letter-spacing: .55em;
	/* text-transform: uppercase; */
	opacity: .85;
}

.nav-links {
	display: flex;
	gap: 30px;
	font-family: "Raleway", sans-serif;
	font-size: .7rem; /* 11.2px, matches old site's 0.7em computed value */
	font-weight: 400;
	letter-spacing: .25em;
	text-transform: uppercase;
}

.nav-links a {
	position: relative;
	padding: 8px 0;
}

.nav-links a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 2px;
	background: var(--color-white-cloud);
	transform: scaleX(0);
	transition: transform .2s;
}

.nav-links a:hover::after {
	transform: scaleX(1);
}

.menu-toggle {
	display: none;
	background: none;
	border: 0;
	color: var(--color-white-cloud);
	font-size: 1.25rem;
	line-height: 1;
	padding: 8px;
	cursor: pointer;
}

.menu-toggle .icon-close {
	display: none;
}

.menu-toggle.is-open .icon-open {
	display: none;
}

.menu-toggle.is-open .icon-close {
	display: inline;
}

@media (max-width: 950px) {
	.site-header {
		position: relative;
	}

	.nav-links {
		display: none;
	}

	.nav-links.is-open {
		display: flex;
		flex-direction: column;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: var(--color-deep-sea-blue);
		padding: 16px 24px 24px 24px;
		gap: 16px;
		z-index: 200;
	}

	.menu-toggle {
		display: block;
	}
}

/* ===== Footer ===== */

.wave {
	line-height: 0;
}

.wave svg {
	display: block;
	width: 100%;
	height: var(--wave-height, 70px);
}

.wave path {
	fill: var(--wave-fill);
}

.wave--flow {
	margin-bottom: -1px; /* avoid a hairline gap between wave and the section after it */
	background-color: var(--wave-bg, transparent);
}

.wave--overlay {
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
}

.site-footer {
	background: var(--color-deep-sea-blue);
	color: var(--color-white-sand);
	font-family: "Playfair Display", serif;
	padding: 24px 0;
}

.footer-grid {
	display: grid;
	grid-template-columns: 1.4fr 0.8fr 0.8fr 1.4fr;
	gap: 48px;
	padding-bottom: 40px;
}

.footer-grid > div {
	border-left: 1px solid rgba(255, 255, 255, .3);
	padding-left: 24px;
}

.footer-grid > div:first-child {
	border-left: 0;
	padding-left: 0;
}

.footer-logo-group {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	margin-bottom: 14px;
}

.footer-grid > div:first-child small {
	display: block;
	margin-top: 0px;
	font-family: "Raleway", sans-serif;
	font-weight: 400;
	font-size: .55rem;
	letter-spacing: .6em;
	opacity: .85;
}

.footer-grid > div:first-child h3 {
	margin-bottom: 0px;
}

.site-footer h3 {
	font-weight: 700;
	font-size: 1rem;
	margin: 0 0 16px 0;
	font-family: "Playfair Display", serif;
}

.site-footer ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.site-footer a, .site-footer p {
	letter-spacing: .15em;
	display: block;
	margin-top: 8px;
	font-family: "Raleway", sans-serif;
	font-weight: 400;
	font-size: .65rem; /* 12px */
	/* text-transform: uppercase; */
	opacity: .85;
}

.site-footer .copyright {
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid rgba(247, 250, 250, .2);
	text-align: center;
	font-size: .70rem;
	letter-spacing: .15em;
	font-weight: 400;
	/* font-style: italic; */
	opacity: .7;
}

.newsletter {
	display: flex;
}

.newsletter input {
	flex: 1;
	min-width: 0;
	padding: 12px 14px;
	border: 0;
	border-radius: 3px 0 0 3px;
	font: inherit;
	font-size: .85rem;
}

.newsletter button {
	border: 0;
	padding: 0 20px;
	background: var(--color-sunset-coral);
	color: var(--color-white-cloud);
	font-weight: 700;
	font-size: .75rem;
	letter-spacing: .05em;
	border-radius: 0 3px 3px 0;
	cursor: pointer;
}



@media (max-width: 900px) {
	.footer-grid {
		grid-template-columns: 1fr 1fr;
	}
}
@media (max-width: 600px) {
	.footer-grid {
		grid-template-columns: 1fr;
	}
}




/* ===== Hero ===== */

.hero {
	min-height: 560px;
	display: grid;
	align-items: center;
	position: relative;
	overflow: hidden;
	background:
		linear-gradient(90deg, rgba(255,249,237,.94) 0%, rgba(255,249,237,.7) 40%, rgba(255,249,237,.05) 70%),
		url("../images/photo-beach1-wide.png") center/cover no-repeat;
}

.hero-content {
	max-width: 600px;
}

.eyebrow {
	color: var(--color-bantayan-teal);
	font-family: "Raleway", sans-serif;
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
	font-size: .75rem;
	margin: 0 0 10px 0;
}

.hero h1 {
	margin: 0;
	color: var(--color-deep-sea-blue);
	font-family: "Playfair Display", serif;
	font-weight: 700;
	font-size: clamp(2.2rem, 5vw, 3.4rem);
	line-height: 1.1;
}

.hero-rule {
	width: 90px;
	height: 4px;
	margin: 22px 0;
	background: var(--color-sunset-coral);
}

.hero-content > p:last-child {
	max-width: 30em;
	font-size: 1rem;
	color: var(--color-driftwood);
}

@media (max-width: 700px) {
	.hero {
		min-height: 480px;
	}
	.hero-content {
		max-width: 100%;
	}
	.post-card-header {
		flex-wrap: wrap;
	}
	.post-card-meta {
		max-width: 100%;
		text-align: left;
	}
}

/* ===== Features ===== */

.features {
	padding: 24px 0;
	background: var(--color-white-sand);
}

.feature-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
}

.feature {
	padding: 0 28px;
	text-align: center;
	position: relative;
}

.feature:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 6px;
	bottom: 6px;
	right: 0;
	width: 1px;
	background: rgba(102, 85, 72, .15);
}

.feature-icon {
	font-size: 1.875rem; /* 30px */
	color: var(--color-palm-green);
	margin-bottom: 14px;
}

.feature-icon img {
	width: 55px; /* all images should be 55px wide */
	height: auto;
	display: inline-block;
}

.feature p {
	margin: 0;
	font-size: .85rem;
	color: var(--color-driftwood);
	line-height: 1.5;
}

@media (max-width: 900px) {
	.feature-grid {
		grid-template-columns: repeat(2, 1fr);
		row-gap: 32px;
	}
	.feature:nth-child(odd)::after {
		display: none;
	}
}

@media (max-width: 600px) {
	.feature-grid {
		grid-template-columns: 1fr;
		row-gap: 32px;
	}
	.feature::after {
		display: none !important;
	}
}

/* ===== Faces & Voices ===== */

.people {
	padding: 24px 0;
}

.people h2 {
	text-align: center;
	margin: 0 0 24px 0;
	color: var(--color-deep-sea-blue);
	font-family: "Playfair Display", serif;
	font-weight: 700;
	font-size: 2rem;
}

.people-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}

.person-card img {
	width: 100%;
	aspect-ratio: 4 / 2;
	object-fit: cover;
	border-radius: 8px;
	display: block;
	margin-bottom: 14px;
}

.person-card h3 {
	margin: 0 15px 6px 15px;
	color: var(--color-deep-sea-blue);
	font-family: "Playfair Display", serif;
	font-weight: 700;
	font-size: 0.85rem;
}

.person-card p {
	margin: 0 15px 8px 15px;
	font-size: .85rem;
	color: var(--color-driftwood);
	line-height: 1.5;
}

.person-card a {
	display: block;
	margin: 0 15px;
	color: var(--color-bantayan-teal);
	font-size: .8rem;
	font-weight: 700;
}

.person-card a:hover {
	text-decoration: underline;
}

@media (max-width: 900px) {
	.people-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.people-grid {
		grid-template-columns: 1fr;
	}
}

/* ===== Global page-split layout (reusable across pages) =====
   First third: page title/intro/controls.
   Remaining two-thirds: main content/results. */

.subnav {
	background: var(--color-white-sand);
	border-bottom: 1px solid rgba(102,85,72,.15);
}

.page-content-bg {
	background: var(--color-white-sand);
}

.subnav .container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px;
	height: 44px; /* fixed, not min-height — guarantees identical bar height whether it holds the A-Z index or nothing */
}

.page-split {
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: 40px;
	padding: 40px 0 64px 0;
}

.page-split-aside {
	grid-column: 1;
}

.page-split-main {
	grid-column: 2;
	min-width: 0; /* prevents grid children from overflowing their track */
}

.page-split-title {
	margin-bottom: 24px; /* separates the title block from whatever a page puts below it */
}

.page-title {
	font-family: "EB Garamond", serif;
	font-weight: 600;
	font-size: 2.4rem;
	color: var(--color-deep-sea-blue);
	margin: 0;
}

.related-posts {
	margin-top: 8px;
}

.related-posts h3 {
	font-family: "Inter", sans-serif;
	font-size: .7rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--color-driftwood);
	opacity: .7;
	margin: 0 0 10px 0;
}

.related-post-box {
	display: block;
	background: #fff;
	border: 1px solid rgba(102,85,72,.15);
	border-radius: 4px;
	padding: 12px 14px;
	margin-bottom: 8px;
	font-family: "DM Sans", sans-serif;
	font-size: .85rem;
	font-weight: 500;
	color: var(--color-deep-sea-blue);
}

.related-post-box:hover {
	border-color: var(--color-bantayan-teal);
}

.related-post-box--draft:hover {
	border-color: rgba(102,85,72,.15); /* overrides the hover above — this box isn't clickable */
}

.related-post-box--draft {
	border-style: dashed;
	color: var(--color-driftwood);
}

.related-post-box--draft .draft-label {
	font-size: .7rem;
	opacity: .6;
	font-style: italic;
}

/* ===== Post-body content styling =====
   Targets the raw HTML stored in posts.content, rendered inside .post-card.
   Nothing styled this before, so it fell back to unstyled browser defaults. */

.post-card p {
	margin: 0 0 1.2em 0;
	line-height: 1.7;
	color: #2a2420;
}

.post-card p:last-child {
	margin-bottom: 0;
}

.post-card h3 {
	font-family: "Playfair Display", serif;
	font-weight: 700;
	font-size: 1.15rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--color-deep-sea-blue);
	margin: 1.8em 0 .8em 0;
}

.post-card h3:first-child {
	margin-top: 0;
}

.post-card a {
	color: var(--color-bantayan-teal);
	text-decoration: underline;
	text-decoration-color: rgba(42,157,159,.35);
}

.post-card a:hover {
	text-decoration-color: var(--color-bantayan-teal);
}

.post-card {
	background: #fff;
	border: 1px solid rgba(102,85,72,.15);
	border-radius: 4px;
	padding: 28px 32px;
}

.testimonial-card {
	background: #fff;
	border: 1px solid rgba(102,85,72,.15);
	border-radius: 4px;
	padding: 24px 28px;
	margin-top: 16px;
}

.testimonial-card blockquote {
	margin: 0 0 16px 0;
	font-family: "Playfair Display", serif;
	font-style: italic;
	font-size: 1.1rem;
	line-height: 1.6;
	color: #2a2420;
}

.author-block {
	display: flex;
	align-items: center;
	gap: 10px;
}

.author-block img {
	width: 36px;
	height: 36px;
	border-radius: 100%;
	border: 1px solid rgba(102,85,72,.15);
	object-fit: cover;
}

.author-block .author-name {
	font-family: "DM Sans", sans-serif;
	font-size: .75rem;
	line-height: 1.4;
	text-align: left;
}

.post-author {
	justify-content: flex-end; /* right-aligns within the narrow post-card-meta column */
}

.post-card-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 20px;
	flex-wrap: nowrap;
	border-bottom: 1px solid rgba(102,85,72,.12);
	padding-bottom: 18px;
	margin-bottom: 18px;
}

.post-card-title {
	flex: 1 1 auto;
	min-width: 0; /* allows long subtitle text to wrap internally instead of forcing the row wider */
}

.post-card-title h2 {
	font-family: "Playfair Display", serif;
	font-weight: 700;
	font-size: 1.5rem;
	color: var(--color-deep-sea-blue);
	margin: 0 0 6px 0;
}

.post-card-title p {
	font-style: italic;
	color: var(--color-driftwood);
	font-size: .9rem;
	margin: 0;
}

.post-card-meta {
	flex-shrink: 0;
	max-width: 220px;
	text-align: right;
}

.post-card-meta .post-date {
	display: block;
	font-family: "Raleway", sans-serif;
	font-size: .65rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--color-driftwood);
	opacity: .7;
	margin-bottom: 8px;
}

/* ===== Legacy content grid support =====
   Old database content still contains skel.js-era markup like
   <div class="row"><div class="6u 12u$(medium)">...
   skel.js itself is gone, so this replicates the same side-by-side /
   stack-on-narrow behavior with plain CSS, without depending on those
   specific old class names. */

.post-card .row {
	display: flex;
	flex-wrap: wrap;
	gap: 2em;
}

.post-card .row > div {
	flex: 1 1 280px;
}

@media (max-width: 900px) {
	.page-split {
		grid-template-columns: 1fr;
	}
	.page-split-aside,
	.page-split-main {
		grid-column: 1;
	}
}