/* Coffs Aero homepage — intentionally scoped to avoid theme collisions. */
:root {
	--ca-navy: #14265a;
	--ca-blue: #1f3b85;
	--ca-blue-dark: #162c66;
	--ca-gold: #f5b700;
	--ca-ink: #1c262b;
	--ca-body: #3a474d;
	--ca-muted: #5c6a70;
	--ca-paper: #f5f1e9;
	--ca-white: #fbf9f4;
	--ca-line: #e1dbcf;
	--ca-serif: Georgia, "Times New Roman", serif;
	--ca-sans: "Public Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body.coffsaero-homepage-template {
	margin: 0;
	background: var(--ca-paper);
	color: var(--ca-ink);
}

body.coffsaero-homepage-template,
body.coffsaero-homepage-template button,
body.coffsaero-homepage-template input,
body.coffsaero-homepage-template select,
body.coffsaero-homepage-template textarea {
	font-family: var(--ca-sans);
}

.ca-home,
.ca-home *,
.ca-home *::before,
.ca-home *::after {
	box-sizing: border-box;
}

.ca-home {
	width: 100%;
	overflow-x: clip;
	background: var(--ca-paper);
	color: var(--ca-ink);
	font: 400 17px/1.5 var(--ca-sans);
	-webkit-font-smoothing: antialiased;
}

.ca-home :where(h1, h2, h3, p, dl, dd) { margin: 0; }
.ca-home :where(img) { max-width: 100%; }
.ca-home :where(a) { color: var(--ca-blue); }
.ca-home :where(a:hover) { color: var(--ca-blue-dark); }
.ca-home :where(button, a) { -webkit-tap-highlight-color: transparent; }
.ca-home :where(a, button):focus-visible,
.ca-skip-link:focus-visible {
	outline: 3px solid #ffca28;
	outline-offset: 3px;
}

.ca-shell,
.ca-section {
	width: min(100%, 1200px);
	margin-inline: auto;
	padding-inline: clamp(16px, 4vw, 40px);
}

.ca-visually-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.ca-skip-link {
	position: fixed;
	top: 8px;
	left: 8px;
	z-index: 100000;
	padding: 10px 14px;
	transform: translateY(-180%);
	border-radius: 4px;
	background: #fff;
	color: #111;
	font: 700 16px/1.2 var(--ca-sans);
	text-decoration: none;
}
.ca-skip-link:focus { transform: translateY(0); }

.ca-utility {
	background: var(--ca-navy);
	color: #dfe5f4;
	font-size: 14px;
}
.ca-utility__inner {
	min-height: 40px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px 16px;
}
.ca-utility__links { display: flex; align-items: center; gap: 20px; }
.ca-utility a {
	min-height: 40px;
	display: inline-flex;
	align-items: center;
	color: #fff;
	font-weight: 600;
	text-decoration: none;
}

.ca-site-header {
	position: sticky;
	top: 0;
	z-index: 9990;
	border-bottom: 1px solid var(--ca-line);
	background: rgba(251, 249, 244, 0.97);
	backdrop-filter: blur(8px);
}
body.admin-bar .ca-site-header { top: 32px; }
.ca-site-header__inner {
	min-height: 82px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding-block: 9px;
}
.ca-brand { display: flex; flex: 0 1 230px; min-width: 145px; text-decoration: none; }
.ca-brand img { display: block; width: 220px; height: auto; }
.ca-desktop-nav { display: none; align-items: center; justify-content: flex-end; gap: 2px; }
.ca-desktop-nav a {
	min-height: 44px;
	padding: 10px 9px;
	display: inline-flex;
	align-items: center;
	border-radius: 6px;
	color: var(--ca-ink);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}
.ca-desktop-nav a:hover { background: #ece6da; color: var(--ca-ink); }
.ca-desktop-nav .ca-nav-cta {
	margin-left: 5px;
	padding-inline: 15px;
	background: var(--ca-gold);
	color: var(--ca-navy);
	font-weight: 700;
}
.ca-desktop-nav .ca-nav-cta:hover { background: #ffc61a; color: var(--ca-navy); }
.ca-menu-toggle {
	width: 48px;
	height: 48px;
	padding: 0;
	flex: none;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	border: 1px solid #cfc7b8;
	border-radius: 8px;
	background: #fff;
	color: var(--ca-ink);
	cursor: pointer;
}
.ca-menu-toggle > span[aria-hidden] { display: block; width: 20px; height: 2px; background: currentColor; transition: transform 180ms ease, opacity 180ms ease; }
.ca-menu-toggle[aria-expanded="true"] > span[aria-hidden]:nth-of-type(2) { transform: translateY(7px) rotate(45deg); }
.ca-menu-toggle[aria-expanded="true"] > span[aria-hidden]:nth-of-type(3) { opacity: 0; }
.ca-menu-toggle[aria-expanded="true"] > span[aria-hidden]:nth-of-type(4) { transform: translateY(-7px) rotate(-45deg); }
.ca-mobile-nav {
	padding: 8px 16px 16px;
	border-top: 1px solid var(--ca-line);
	background: var(--ca-white);
}
.ca-mobile-nav[hidden] { display: none; }
.ca-mobile-nav a {
	min-height: 48px;
	padding: 11px 8px;
	display: flex;
	align-items: center;
	border-bottom: 1px solid #ece6da;
	color: var(--ca-ink);
	font-weight: 600;
	text-decoration: none;
}
.ca-mobile-nav .ca-mobile-nav__cta {
	margin-top: 12px;
	justify-content: center;
	border: 0;
	border-radius: 6px;
	background: var(--ca-blue);
	color: #fff;
}

.ca-hero {
	overflow: hidden;
	background-color: #f3f1ec;
	background-image: radial-gradient(ellipse 55% 42% at 78% 18%, rgba(168,176,190,.42), transparent 72%), radial-gradient(ellipse 42% 30% at 58% 8%, rgba(190,196,206,.4), transparent 70%), radial-gradient(ellipse 60% 36% at 12% 92%, rgba(160,168,184,.3), transparent 70%), radial-gradient(ellipse 34% 26% at 34% 74%, rgba(200,204,212,.32), transparent 70%), radial-gradient(ellipse 48% 38% at 92% 70%, rgba(150,160,180,.22), transparent 70%);
}
.ca-hero__grid {
	padding-block: clamp(40px, 6vw, 88px) clamp(40px, 6vw, 80px);
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: center;
	gap: clamp(28px, 5vw, 64px);
}
.ca-hero__copy { min-width: 0; display: flex; flex-direction: column; gap: 22px; }
.ca-eyebrow {
	color: var(--ca-blue);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.ca-eyebrow--line { display: flex; align-items: center; gap: 10px; }
.ca-eyebrow--line::before { content: ""; width: 28px; height: 3px; flex: none; background: var(--ca-gold); }
.ca-hero h1 {
	max-width: 9ch;
	color: var(--ca-navy);
	font: 500 clamp(44px, 6vw, 78px)/.98 var(--ca-serif);
	letter-spacing: -.025em;
	text-wrap: balance;
}
.ca-lead { max-width: 46ch; color: var(--ca-body); font-size: clamp(17px, 1.5vw, 20px); text-wrap: pretty; }
.ca-actions { margin-top: 6px; display: flex; flex-wrap: wrap; gap: 12px; }
.ca-button {
	min-height: 52px;
	padding: 14px 24px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 2px solid transparent;
	border-radius: 8px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.35;
	text-align: center;
	text-decoration: none;
}
.ca-button--gold { background: var(--ca-gold); color: var(--ca-navy) !important; }
.ca-button--gold:hover { background: #ffc61a; }
.ca-button--outline { border-color: var(--ca-blue); color: var(--ca-blue) !important; }
.ca-button--outline:hover { background: #e8ecf7; }
.ca-button--blue { background: var(--ca-blue); color: #fff !important; }
.ca-button--blue:hover { background: var(--ca-blue-dark); }
.ca-hero__note { color: var(--ca-muted); font-size: 15px; }
.ca-hero__note a { font-weight: 700; text-decoration: none; }

.ca-carousel { min-width: 0; }
.ca-carousel__viewport {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: 16px;
	background: var(--ca-navy);
	box-shadow: 0 30px 60px -30px rgba(20,38,90,.45);
}
.ca-carousel__slide {
	position: absolute;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	opacity: 0;
	transform: translateX(8%) scale(1.025);
	transition: opacity 700ms ease, transform 900ms cubic-bezier(.16,1,.3,1);
}
.ca-carousel__slide.is-active { z-index: 1; opacity: 1; transform: none; }
.ca-carousel__meta {
	min-height: 40px;
	padding-top: 10px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	color: var(--ca-muted);
	font-size: 14px;
}
.ca-carousel__caption { min-width: 0; }
.ca-carousel__controls { display: flex; align-items: center; gap: 10px; }
.ca-carousel__dots { display: flex; align-items: center; gap: 0; }
.ca-carousel__dots button {
	width: 32px;
	height: 32px;
	padding: 0;
	position: relative;
	border: 0;
	background: transparent;
	cursor: pointer;
}
.ca-carousel__dots button::before {
	content: "";
	position: absolute;
	inset: 13px;
	border-radius: 4px;
	background: #a9a296;
	transition: inset 250ms ease, background 250ms ease;
}
.ca-carousel__dots button.is-active::before { inset: 13px 5px; background: var(--ca-blue); }
.ca-carousel__pause {
	min-height: 32px;
	padding: 4px 7px;
	border: 1px solid #bcb4a7;
	border-radius: 4px;
	background: transparent;
	color: var(--ca-muted);
	font-size: 12px;
	font-weight: 700;
	cursor: pointer;
}

.ca-pathways { border-bottom: 1px solid var(--ca-line); background: var(--ca-white); }
.ca-pathways__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ca-pathways a {
	min-width: 0;
	min-height: 132px;
	padding: 25px 20px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	border-top: 3px solid #cfc7b8;
	color: var(--ca-ink);
	text-decoration: none;
}
.ca-pathways a.is-primary { border-top-color: var(--ca-blue); }
.ca-pathways a:hover { background: #f5f1e9; color: var(--ca-blue); }
.ca-pathways strong { font: 500 22px/1.2 var(--ca-serif); }
.ca-pathways span { color: var(--ca-muted); font-size: 15px; }

.ca-section {
	padding-block: clamp(48px, 7vw, 96px);
}
.ca-split {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: center;
	gap: clamp(28px, 5vw, 64px);
}
.ca-section__copy { min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.ca-section h2,
.ca-heading h2 {
	color: var(--ca-ink);
	font: 500 clamp(30px, 3.2vw, 40px)/1.15 var(--ca-serif);
	letter-spacing: -.01em;
	text-wrap: pretty;
}
.ca-section__copy > p:not(.ca-eyebrow),
.ca-heading > p:not(.ca-eyebrow),
.ca-fleet article p { color: var(--ca-body); text-wrap: pretty; }
.ca-text-link {
	min-height: 44px;
	padding-block: 8px;
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	border-bottom: 2px solid currentColor;
	color: var(--ca-blue) !important;
	font-weight: 700;
	text-decoration: none;
}
.ca-inline-links { display: flex; flex-wrap: wrap; gap: 12px 24px; }
.ca-media { width: 100%; height: auto; display: block; border-radius: 8px; object-fit: cover; }
.ca-media--four-three { aspect-ratio: 4 / 3; }
.ca-media--wide { aspect-ratio: 16 / 9; }
.ca-media--tif { aspect-ratio: 1024 / 606; }

.ca-fleet { border-block: 1px solid var(--ca-line); background: var(--ca-white); }
.ca-fleet__inner { padding-block: clamp(48px, 7vw, 96px); display: flex; flex-direction: column; gap: clamp(28px, 4vw, 48px); }
.ca-heading { max-width: 62ch; display: flex; flex-direction: column; gap: 12px; }
.ca-fleet__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(24px, 4vw, 48px); }
.ca-fleet article { min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.ca-fleet article h3 { color: var(--ca-ink); font: 500 24px/1.25 var(--ca-serif); }

.ca-tif { background: var(--ca-blue); color: #fff; }
.ca-tif__grid {
	padding-block: clamp(48px, 7vw, 96px);
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
	align-items: start;
	gap: clamp(32px, 5vw, 72px);
}
.ca-tif__copy { min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.ca-tif .ca-eyebrow { color: #c9d4ef; }
.ca-tif__panel .ca-eyebrow { color: var(--ca-blue); }
.ca-tif h2 { color: #fff; font: 500 clamp(32px, 3.6vw, 46px)/1.1 var(--ca-serif); letter-spacing: -.01em; text-wrap: pretty; }
.ca-tif__copy > p:not(.ca-eyebrow) { color: #eef2fb; }
.ca-tif__facts {
	padding-top: 18px;
	display: grid;
	grid-template-columns: .6fr .8fr 1.6fr;
	gap: 16px 24px;
	border-top: 1px solid rgba(255,255,255,.27);
}
.ca-tif__facts dt { color: #c9d4ef; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.ca-tif__facts dd { margin-top: 4px; color: #fff; font: 500 26px/1.25 var(--ca-serif); }
.ca-tif__facts div:last-child dd { font: 400 16px/1.45 var(--ca-sans); color: #eef2fb; }
.ca-tif .ca-small { font-size: 15px; color: #c9d4ef !important; }
.ca-tif__panel {
	padding: clamp(24px, 3vw, 36px);
	display: flex;
	flex-direction: column;
	gap: 18px;
	border-radius: 10px;
	background: var(--ca-white);
	color: var(--ca-ink);
	box-shadow: 0 20px 45px -30px rgba(0,0,0,.55);
}
.ca-tif__panel h3 { color: var(--ca-ink); font: 500 30px/1.15 var(--ca-serif); }
.ca-tif__panel > p:not(.ca-eyebrow) { color: var(--ca-body); }
.ca-tif__phone { font-size: 15px; }
.ca-tif__phone a { min-height: 44px; display: inline-flex; align-items: center; font-weight: 700; }

.ca-footer { background: var(--ca-navy); color: #dfe5f4; }
.ca-footer__grid {
	padding-block: clamp(40px, 6vw, 64px) 28px;
	display: grid;
	grid-template-columns: 1.35fr repeat(3, 1fr);
	gap: 36px;
}
.ca-footer__about { display: flex; flex-direction: column; gap: 14px; }
.ca-footer__about img { width: 220px; height: auto; padding: 6px 12px; display: block; border-radius: 8px; background: #fff; }
.ca-footer__about p,
.ca-footer__contact p { color: #b9c6e8; font-size: 15px; }
.ca-footer nav,
.ca-footer__contact { display: flex; flex-direction: column; gap: 3px; }
.ca-footer h2 { margin: 0 0 8px; color: #b9c6e8; font: 700 13px/1.3 var(--ca-sans); letter-spacing: .08em; text-transform: uppercase; }
.ca-footer a { min-height: 44px; display: flex; align-items: center; color: #fff; font-size: 15px; text-decoration: none; }
.ca-footer a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.ca-footer__contact p { margin-top: 6px; }
.ca-footer__legal { border-top: 1px solid rgba(255,255,255,.15); color: #b9c6e8; font-size: 13px; }
.ca-footer__legal .ca-shell { padding-block: 16px; }

@media (min-width: 900px) {
	.ca-desktop-nav { display: flex; }
	.ca-menu-toggle,
	.ca-mobile-nav { display: none !important; }
}

@media (max-width: 1050px) and (min-width: 900px) {
	.ca-desktop-nav a { padding-inline: 6px; font-size: 13px; }
	.ca-brand { flex-basis: 190px; }
	.ca-brand img { width: 185px; }
}

@media (max-width: 899px) {
	body.admin-bar .ca-site-header { top: 46px; }
	.ca-utility__inner { padding-block: 4px; }
	.ca-hero__grid,
	.ca-split,
	.ca-fleet__grid,
	.ca-tif__grid { grid-template-columns: minmax(0, 1fr); }
	.ca-hero h1 { max-width: 11ch; }
	.ca-pathways__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ca-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ca-tif__panel { max-width: 620px; }
}

@media (max-width: 600px) {
	.ca-home { font-size: 16px; }
	.ca-utility__inner { align-items: flex-start; flex-direction: column; gap: 0; }
	.ca-utility__links { width: 100%; justify-content: space-between; }
	.ca-site-header__inner { min-height: 74px; }
	.ca-brand { flex-basis: 190px; }
	.ca-brand img { width: 185px; }
	.ca-hero__grid { padding-top: 38px; }
	.ca-hero h1 { font-size: clamp(43px, 13vw, 58px); }
	.ca-actions { flex-direction: column; align-items: stretch; }
	.ca-button { width: 100%; }
	.ca-carousel__meta { align-items: flex-start; flex-direction: column; }
	.ca-carousel__controls { width: 100%; justify-content: space-between; }
	.ca-pathways__grid { grid-template-columns: minmax(0, 1fr); padding-inline: 16px; }
	.ca-pathways a { min-height: 0; padding-inline: 4px; }
	.ca-tif__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ca-tif__facts div:last-child { grid-column: 1 / -1; }
	.ca-footer__grid { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
	.ca-home *,
	.ca-home *::before,
	.ca-home *::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}
