/*
Theme Name: Insure Family Future
Theme URI: https://insurefamilyfuture.com
Author: Insure Family Future
Description: Block theme for Insure Family Future — life insurance, living benefits, health & dental benefits and savings guidance for Ontario families. Navy & amber palette, self-hosted fonts (no Google Fonts calls, PIPEDA-friendly), pages and footer disclaimer built in.
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: insure-family-future
*/

/* ---------- Sections ---------- */
.iff-section {
	padding-top: var(--wp--preset--spacing--70);
	padding-bottom: var(--wp--preset--spacing--70);
}
.iff-section.iff-tight { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--50); }
.wp-site-blocks > main > .wp-block-post-content > .iff-section:first-child,
.entry-content > .iff-section:first-child { margin-block-start: 0; }
.wp-block-post-content > .alignfull + .alignfull { margin-block-start: 0; }

.iff-bg-soft  { background: var(--wp--preset--color--soft); }
.iff-bg-navy  { background: var(--wp--preset--color--primary); color: #fff; }
.iff-bg-navy :where(h1,h2,h3,h4,p,li) { color: #fff; }
.iff-bg-navy a:not(.wp-element-button) { color: var(--wp--preset--color--accent-light); }

/* Hero */
.iff-hero {
	background:
		radial-gradient(circle at 85% 20%, rgba(232,163,61,.18), transparent 45%),
		linear-gradient(135deg, #123a68 0%, #1a4f8a 60%, #2163a8 100%);
	color: #fff;
	padding-top: clamp(4rem, 9vw, 7.5rem);
	padding-bottom: clamp(4rem, 9vw, 7.5rem);
}
.iff-hero :where(h1,h2,p) { color: #fff; }
.iff-hero h1 { max-width: 18ch; }
.iff-hero .iff-lead { max-width: 60ch; font-size: var(--wp--preset--font-size--large); opacity: .92; }
.iff-eyebrow {
	text-transform: uppercase;
	letter-spacing: .14em;
	font-size: .8rem !important;
	font-weight: 700;
	color: var(--wp--preset--color--accent) !important;
	margin-bottom: .5rem;
}
.iff-hero .iff-eyebrow, .iff-page-hero .iff-eyebrow { color: var(--wp--preset--color--accent-light) !important; }

/* Page title band (page.html) */
.iff-page-hero {
	background: linear-gradient(135deg, #123a68 0%, #1a4f8a 100%);
	color: #fff;
	padding-top: clamp(2.75rem, 6vw, 4.5rem);
	padding-bottom: clamp(2.75rem, 6vw, 4.5rem);
}
.iff-page-hero .wp-block-post-title { color: #fff; margin: 0; }

/* Cards */
.iff-card {
	background: #fff;
	border: 1px solid var(--wp--preset--color--line);
	border-top: 4px solid var(--wp--preset--color--accent);
	border-radius: 10px;
	padding: var(--wp--preset--spacing--50);
	height: 100%;
	box-shadow: 0 1px 2px rgba(16,42,74,.04), 0 6px 20px rgba(16,42,74,.05);
}
.iff-card > :first-child { margin-top: 0; }
.iff-card h3 { font-size: var(--wp--preset--font-size--large); margin-bottom: .5rem; }
.iff-card p:last-child { margin-bottom: 0; }
.iff-card .iff-more a { font-weight: 600; text-decoration: none; }
.iff-card .iff-more a:hover { text-decoration: underline; }
.wp-block-columns.iff-cards > .wp-block-column { display: flex; flex-direction: column; }
.wp-block-columns.iff-cards > .wp-block-column > .iff-card { flex: 1; }

/* Steps */
.iff-step-num {
	display: inline-flex; align-items: center; justify-content: center;
	width: 2.5rem; height: 2.5rem; border-radius: 50%;
	background: var(--wp--preset--color--accent); color: var(--wp--preset--color--primary-dark) !important;
	font-weight: 800; font-family: var(--wp--preset--font-family--heading);
	margin-bottom: .75rem !important;
}

/* Check lists */
ul.iff-checks { list-style: none; padding-left: 0; }
ul.iff-checks li { position: relative; padding-left: 1.9rem; margin-bottom: .6rem; }
ul.iff-checks li::before {
	content: ""; position: absolute; left: 0; top: .3em;
	width: 1.15rem; height: 1.15rem; border-radius: 50%;
	background: var(--wp--preset--color--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23102a4a'%3E%3Cpath d='M8.1 13.6 4.5 10l1.3-1.3 2.3 2.3 6.1-6.1 1.3 1.3z'/%3E%3C/svg%3E") center/80% no-repeat;
}

/* Callouts carried over from the privacy policy */
.iff-notice {
	background: #e8f1fb;
	border-left: 4px solid var(--wp--preset--color--primary);
	border-radius: 6px;
	padding: 1rem 1.25rem;
	color: var(--wp--preset--color--primary);
}
.iff-notice p { margin: 0; }
.iff-contact-box {
	background: #f0f6ff;
	border-radius: 8px;
	padding: 1rem 1.4rem;
}
.iff-contact-box p { margin: .25rem 0; }
ul.iff-never-list li, ul.iff-never-list li::marker { color: #b00020; }
.iff-fine { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }

/* Privacy policy reading width */
.iff-policy h2 {
	border-bottom: 2px solid var(--wp--preset--color--primary);
	padding-bottom: .4rem;
	font-size: 1.35rem;
}

/* Header */
.iff-header { border-bottom: 1px solid var(--wp--preset--color--line); background: #fff; }
.iff-header .wp-block-site-title a { text-decoration: none; }
.iff-topbar { background: var(--wp--preset--color--primary-dark); color: #dbe6f3; font-size: .85rem; }
.iff-topbar p { margin: 0; color: #dbe6f3; }
.iff-topbar a { color: #fff; text-decoration: none; }
.iff-topbar a:hover { text-decoration: underline; }
.iff-tagline { font-size: .78rem !important; color: var(--wp--preset--color--muted); margin: 0 !important; letter-spacing: .02em; }
.iff-header .wp-block-navigation a:hover { color: var(--wp--preset--color--accent-dark); }
.iff-header .wp-block-navigation__submenu-container { border-radius: 8px; border: 1px solid var(--wp--preset--color--line) !important; box-shadow: 0 10px 30px rgba(16,42,74,.12); padding: .4rem 0; }
.iff-header .wp-block-navigation__submenu-container a { padding: .5rem 1.1rem !important; }

/* Footer */
.iff-footer { background: var(--wp--preset--color--primary-dark); color: #c9d6e6; }
.iff-footer :where(p,li) { color: #c9d6e6; font-size: .95rem; }
.iff-footer h2, .iff-footer h3 { color: #fff; font-size: 1rem; text-transform: uppercase; letter-spacing: .1em; }
.iff-footer a { color: #fff; text-decoration: none; }
.iff-footer a:hover { color: var(--wp--preset--color--accent-light); text-decoration: underline; }
.iff-footer ul { list-style: none; padding-left: 0; }
.iff-footer ul li { margin-bottom: .45rem; }
.iff-footer .iff-legal { border-top: 1px solid rgba(255,255,255,.15); }
.iff-footer .iff-legal p { font-size: .8rem; color: #9fb3cb; }

/* CTA band */
.iff-cta { background: var(--wp--preset--color--accent); }
.iff-cta :where(h2,p) { color: var(--wp--preset--color--primary-dark); }
.iff-cta .wp-block-button__link { background: var(--wp--preset--color--primary-dark); color: #fff; }
.iff-cta .is-style-outline .wp-block-button__link { background: transparent; color: var(--wp--preset--color--primary-dark); border-color: var(--wp--preset--color--primary-dark); }

/* Buttons on dark backgrounds */
.iff-hero .is-style-outline .wp-block-button__link,
.iff-bg-navy .is-style-outline .wp-block-button__link { color: #fff; border-color: rgba(255,255,255,.7); }
.iff-hero .is-style-outline .wp-block-button__link:hover,
.iff-bg-navy .is-style-outline .wp-block-button__link:hover { background: rgba(255,255,255,.1); }

/* Trust strip */
.iff-trust p { margin: 0; font-weight: 600; color: var(--wp--preset--color--primary); }

/* FAQ (details block) */
.wp-block-details { border: 1px solid var(--wp--preset--color--line); border-radius: 8px; padding: .9rem 1.2rem; background: #fff; }
.wp-block-details summary { font-weight: 600; color: var(--wp--preset--color--primary); cursor: pointer; }
.wp-block-details + .wp-block-details { margin-top: .75rem; }

@media (max-width: 781px) {
	.iff-topbar .iff-topbar-right { display: none; }
	.iff-tagline { display: none; }
}

/* Keep side gutters on full-width bands inside page content (all WP versions) */
.wp-block-post-content > .alignfull.has-global-padding {
	padding-left: var(--wp--style--root--padding-left);
	padding-right: var(--wp--style--root--padding-right);
}

.iff-lead { font-size: var(--wp--preset--font-size--large); line-height: 1.6; }
.iff-policy h3 { font-size: 1.1rem; margin-top: 1.5rem; }
.iff-header-cta .wp-block-button__link { white-space: nowrap; }
@media (max-width: 600px) {
	.iff-header .wp-block-site-title { font-size: 1.1rem; }
	.iff-header-cta .wp-block-button__link { font-size: .85rem; padding: .5rem .9rem !important; }
}
