/* FlightsScanner.ca brand styles, layered over the Astra theme. */
:root {
	--fs-navy: #0b2545;
	--fs-navy-light: #143a6b;
	--fs-orange: #ff8a1f;
	--fs-orange-light: #ffa24d;
	--fs-orange-text: #b84a06;
	--fs-cream: #fff8f0;
	--fs-ink: #14233a;
	--fs-muted: #55637a;
	--fs-line: #dde3ec;
	--fs-radius: 14px;
}

body { color: var(--fs-ink); overflow-x: clip; }

h1, h2, h3, h4,
.entry-content h1, .entry-content h2, .entry-content h3 { color: var(--fs-navy); font-weight: 800; letter-spacing: -0.01em; line-height: 1.2; }

.entry-content a:not(.wp-block-button__link) { color: var(--fs-orange-text); }
:focus-visible { outline: 3px solid var(--fs-orange); outline-offset: 2px; }

/* Header */
.site-title a, .site-title a:hover { color: var(--fs-navy); font-weight: 800; }
.main-header-menu .menu-link { color: var(--fs-navy); font-weight: 600; }
.main-header-menu .menu-link:hover,
.main-header-menu .current-menu-item > .menu-link { color: var(--fs-orange-text); }
.main-header-menu a[href^="tel:"] { background: var(--fs-orange); border-radius: 8px; color: var(--fs-navy); font-weight: 800; line-height: 1.2; margin-block: 10px; padding-block: 10px; height: auto; }
.main-header-menu a[href^="tel:"]:hover { background: var(--fs-orange-light); color: var(--fs-navy); }

/* Remove theme spacing above the full-width hero. */
.fs-has-hero #primary, .fs-has-hero .site-main, .fs-has-hero .ast-article-single, .fs-has-hero article.page { margin: 0; padding: 0; }
.fs-has-hero .site-content > .ast-container { display: block; }
.fs-has-hero .entry-header { display: none; }
.fs-has-hero .entry-content > * { margin-block: 0 22px; }

/* Full-width bands */
.fs-hero, .fs-form-band, .fs-cta {
	box-sizing: border-box;
	/* cqw measures the page without the scrollbar, unlike vw. */
	margin-left: calc(50% - 50cqw) !important;
	margin-right: 0 !important;
	max-width: none !important;
	/* The same offset as the margin, so band text lines up with the page text. */
	padding-inline: calc(50cqw - 50%) !important;
	width: 100cqw;
}
.fs-has-hero .site-content { container-type: inline-size; }

/* Astra gives every group block 48px of padding and #primary a 60px margin. */
.fs-has-hero #primary { margin: 0 !important; }
.fs-has-hero .entry-content { padding-bottom: 48px; }
.fs-has-hero .entry-content:has(> .fs-cta:last-child) { padding-bottom: 0; }
.entry-content .fs-cards, .entry-content .fs-faq, .entry-content .fs-chips, .entry-content .fs-steps { padding: 0 !important; }

/* Hero */
.fs-hero {
	background: linear-gradient(150deg, var(--fs-navy) 40%, var(--fs-navy-light));
	border-bottom: 5px solid var(--fs-orange);
	color: #d7e0ec;
	margin-bottom: 56px !important;
	padding-block: 64px !important;
}
.fs-hero h1 { color: #fff; font-size: clamp(2.1rem, 5vw, 3.4rem); margin: 0 0 16px; max-width: 800px; }
.fs-hero p { color: #d7e0ec; font-size: 1.12rem; margin: 0 0 18px; max-width: 700px; }
.fs-hero p:last-child { color: #b6c4d6; font-size: 0.95rem; margin-bottom: 0; }

/* Buttons */
.entry-content .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin-block: 8px 20px; }
.entry-content .wp-block-button { margin: 0; }
.entry-content .wp-block-button__link {
	border: 2px solid transparent;
	border-radius: 10px;
	display: inline-block;
	font-size: 1.02rem;
	font-weight: 800;
	line-height: 1.2;
	padding: 14px 24px;
	text-align: center;
	text-decoration: none;
	transition: background 0.15s, color 0.15s;
}
.fs-btn-primary .wp-block-button__link { background: var(--fs-orange); color: var(--fs-navy); }
.fs-btn-primary .wp-block-button__link:hover { background: var(--fs-orange-light); color: var(--fs-navy); }
.fs-btn-secondary .wp-block-button__link { background: transparent; border-color: var(--fs-navy); color: var(--fs-navy); }
.fs-btn-secondary .wp-block-button__link:hover { background: var(--fs-navy); color: #fff; }
.fs-hero .fs-btn-secondary .wp-block-button__link, .fs-cta .fs-btn-secondary .wp-block-button__link { border-color: #fff; color: #fff; }
.fs-hero .fs-btn-secondary .wp-block-button__link:hover, .fs-cta .fs-btn-secondary .wp-block-button__link:hover { background: #fff; color: var(--fs-navy); }

/* Section headings */
.entry-content h2 { font-size: clamp(1.6rem, 3.2vw, 2.15rem); margin-block: 48px 16px; }
.entry-content h3 { font-size: 1.18rem; margin-block: 0 8px; }

/* Cards */
.fs-cards, .fs-faq { display: grid; gap: 18px; margin-bottom: 28px; }
.fs-cards { grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); }
.fs-cards > .fs-card, .fs-faq > .fs-card { margin: 0 !important; }
.fs-card { background: #fff; border: 1px solid var(--fs-line); border-radius: var(--fs-radius); border-top: 4px solid var(--fs-orange); padding: 22px; }
.fs-card > :last-child { margin-bottom: 0; }
.fs-card p { color: #3a4960; margin-bottom: 12px; }
.fs-faq .fs-card { border-top-width: 1px; border-left: 4px solid var(--fs-orange); }

/* Airline chips */
.fs-chips ul { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; margin: 0 0 16px; padding: 0; }
.fs-chips li { background: var(--fs-cream); border: 1px solid #f5d9bd; border-radius: 999px; color: var(--fs-navy); font-weight: 600; margin: 0; padding: 7px 15px; }

/* Numbered steps */
.fs-steps ol { counter-reset: fs-step; display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); list-style: none; margin: 0 0 28px; padding: 0; }
.fs-steps li { counter-increment: fs-step; margin: 0; padding-left: 52px; position: relative; }
.fs-steps li::before { align-items: center; background: var(--fs-navy); border-radius: 50%; color: #fff; content: counter(fs-step); display: flex; font-weight: 800; height: 38px; justify-content: center; left: 0; position: absolute; top: 0; width: 38px; }

/* Quote form */
.fs-form-band { background: var(--fs-cream); margin-block: 48px !important; padding-block: 12px 44px !important; }
.fs-form-band h2 { margin-top: 32px; }
.fs-form-band .wpcf7 { background: #fff; border-radius: var(--fs-radius); box-shadow: 0 16px 40px rgba(11, 37, 69, 0.12); max-width: 760px; padding: 28px; }
.wpcf7-form label { color: var(--fs-navy); display: block; font-weight: 700; font-size: 0.93rem; }
.wpcf7-form input:not([type="checkbox"]):not([type="submit"]), .wpcf7-form select, .wpcf7-form textarea {
	background: #fff;
	border: 1.5px solid var(--fs-line);
	border-radius: 10px;
	box-sizing: border-box;
	color: var(--fs-ink);
	font-weight: 400;
	margin-top: 5px;
	min-height: 48px;
	padding: 10px 13px;
	width: 100%;
}
.wpcf7-form textarea { height: 120px; }
.wpcf7-form input:focus, .wpcf7-form select:focus, .wpcf7-form textarea:focus { border-color: var(--fs-orange); box-shadow: 0 0 0 3px rgba(255, 138, 31, 0.25); outline: none; }
.wpcf7-form input[type="submit"] { background: var(--fs-orange); border: 0; border-radius: 10px; color: var(--fs-navy); cursor: pointer; font-size: 1.05rem; font-weight: 800; padding: 15px 30px; width: 100%; }
.wpcf7-form input[type="submit"]:hover { background: var(--fs-orange-light); }
.wpcf7-acceptance label { font-weight: 400; }
@media (min-width: 700px) {
	.wpcf7-form > p:nth-of-type(-n+9) { display: inline-block; vertical-align: top; width: calc(50% - 10px); }
	.wpcf7-form > p:nth-of-type(odd):nth-of-type(-n+9) { margin-right: 15px; }
	.wpcf7-form > p:nth-of-type(9) { margin-right: 0; width: 100%; }
}

/* Closing call to action */
.fs-cta { background: var(--fs-navy); color: #d7e0ec; margin-block: 56px 0 !important; padding-block: 12px 56px !important; }
.fs-cta h2 { color: #fff; margin-top: 36px; }
.fs-cta p { color: #d7e0ec; max-width: 800px; }
.fs-cta p:last-child { color: #b6c4d6; font-size: 0.92rem; margin: 0; }

/* Policy and information pages */
.entry-content table { border-collapse: collapse; margin-bottom: 20px; width: 100%; }
.entry-content th { background: var(--fs-navy); color: #fff; text-align: left; }
.entry-content th, .entry-content td { border: 1px solid var(--fs-line); padding: 11px 13px; vertical-align: top; }
.entry-content tbody tr:nth-child(even) { background: var(--fs-cream); }

/* The footer sits flush below the last band. */
.fs-footer { position: relative; }

@media (max-width: 768px) {
	.fs-hero { margin-bottom: 36px !important; padding-block: 44px !important; }
	.entry-content .wp-block-buttons { flex-direction: column; }
	.entry-content .wp-block-button, .entry-content .wp-block-button__link { display: block; width: 100%; }
	.fs-form-band .wpcf7 { padding: 18px; }
	.main-header-menu a[href^="tel:"] { background: none; color: var(--fs-orange-text); margin: 0; padding-block: 14px; }
}

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