@font-face { font-family: "ParcloSerif"; src: url("fonts/parclo-serif.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "ParcloSerif"; src: url("fonts/parclo-serif-bold.woff2") format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "ReallySansSerif"; src: url("fonts/really-sans.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "ReallySansSerif"; src: url("fonts/really-sans-bold.woff2") format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "ReallySansSerif"; src: url("fonts/really-sans-italic.woff2") format("woff2"); font-style: italic; font-display: swap; }

:root {
	--cc-navy: #10132E;
	--cc-navy-hover: #232962;
	--cc-blue: #6A9DC0;
	--cc-teal: #169A9C;
	--cc-gold: #FFCA12;
	--cc-light: #FAFAFA;
	--cc-border: #E5E8EF;
	--cc-serif: "ParcloSerif", Georgia, serif;
}

* { box-sizing: border-box; }

body {
	margin: 0;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	background: #fff;
	color: var(--cc-navy);
	font-family: "ReallySansSerif", system-ui, sans-serif;
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, p { margin: 0; }
a { color: var(--cc-navy); }
a:hover { color: var(--cc-teal); }

.cc-container { max-width: 1120px; margin: 0 auto; padding: 0 24px; }

/* Hero */
.cc-hero { padding: 40px 0 96px; }
.cc-logo { width: min(300px, 70%); height: auto; display: block; }
.cc-hero__intro { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; margin-top: 72px; max-width: 820px; }
.cc-rule { width: 48px; height: 4px; background: var(--cc-blue); }
.cc-hero h1 { font-family: var(--cc-serif); font-weight: 400; font-size: clamp(32px, 3.8vw, 46px); line-height: 1.1; text-wrap: balance; }
.cc-hero__lede { font-size: 19px; line-height: 1.55; max-width: 560px; }

/* Photo marquee */
.cc-gallery { margin-top: 64px; overflow: hidden; }
.cc-marquee-track { display: flex; gap: 16px; width: max-content; animation: cc-marquee 70s linear infinite; }
.cc-marquee-track:hover { animation-play-state: paused; }
.cc-marquee-track img { height: clamp(220px, 28vw, 340px); width: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 4px; display: block; flex: none; }
@keyframes cc-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .cc-marquee-track { animation: none; } }

/* Feature sections */
.cc-feature { padding: 96px 24px; }
.cc-feature--alt { background: var(--cc-light); border-top: 1px solid var(--cc-border); }
.cc-feature__inner { max-width: 1120px; margin: 0 auto; display: flex; flex-wrap: wrap; gap: 48px 64px; align-items: center; }
.cc-feature__inner--reverse { flex-wrap: wrap-reverse; }
.cc-feature__img { flex: 1 1 400px; min-width: 0; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 4px; display: block; }
.cc-feature__body { flex: 1 1 400px; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.cc-feature h2 { font-family: var(--cc-serif); font-weight: 400; font-size: clamp(32px, 4vw, 44px); line-height: 1.1; }
.cc-feature p { font-size: 17px; line-height: 1.6; }
.cc-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }

.cc-button {
	display: inline-flex;
	align-items: center;
	height: 48px;
	padding: 0 28px;
	border-radius: 999px;
	background: var(--cc-navy);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
}
.cc-button:hover { background: var(--cc-navy-hover); color: #fff; }

/* Footer */
.cc-footer { margin-top: auto; background: var(--cc-navy); color: #fff; padding: 40px 24px; }
.cc-footer__inner { max-width: 1120px; margin: 0 auto; display: flex; flex-wrap: wrap; gap: 16px 32px; justify-content: space-between; align-items: center; font-size: 14px; }
.cc-footer nav { display: flex; gap: 24px; flex-wrap: wrap; }
.cc-footer a { color: #fff; text-decoration: none; }
.cc-footer a:hover { color: var(--cc-gold); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
