/* =========================================================
   Layout — base reset, GP overrides, containers, buttons
   ========================================================= */

/* ── Base reset ── */
*, *::before, *::after { box-sizing: border-box; }

body {
	font-family: 'Roboto', sans-serif;
	font-size: 1rem;
	line-height: 1.5;
	color: var(--wf-secondary);
	background: var(--wf-white);
	margin: 0;
}

h1, h2, h3, h4, h5, h6 {
	font-family: 'Roboto', sans-serif;
	line-height: 1.2;
	margin-top: 0;
}

a { color: var(--wf-primary); text-decoration: none; }
a:hover { opacity: 0.85; }

img { max-width: 100%; height: auto; display: block; }

/* ── GeneratePress overrides ── */
.site-header {
	background: var(--wf-white) url('/wp-content/uploads/2025/06/bg-line-img-1.png') repeat-y center bottom / 100% auto !important;
	box-shadow: 0 1px 0 rgba(0,0,0,.07);
	padding-top: 20px !important;
	padding-bottom: 20px !important;
}

.site-header .inside-header {
	padding: 0 var(--wf-lg);
	max-width: 1200px;
	margin: 0 auto;
}

/* GP sets display:flex on .site-content which breaks centering on full-width templates */
.site-content { display: block; }
body.wf-full-width .site-content {
	display: block !important;
	max-width: 100% !important;
	width: 100% !important;
}

/* Remove GP default content padding on full-width pages */
.wf-full-width .site-main { padding: 0; }
.wf-full-width .entry-content { margin: 0; max-width: none; }
.wf-full-width .inside-article { padding: 0; }

/* Force full-width column layout — hide sidebar, stretch content area */
.wf-full-width #primary,
.wf-full-width .content-area { width: 100% !important; max-width: 100% !important; float: none !important; }
.wf-full-width #secondary,
.wf-full-width .widget-area { display: none !important; }

/* ── Shared section utilities ── */
.wf-section {
	padding: var(--wf-section) 0;
}

.wf-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 var(--wf-lg);
}

.wf-section-label {
	display: inline-block;
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wf-primary);
	margin-bottom: var(--wf-sm);
}

.wf-gradient-text {
	background: var(--wf-gradient-head);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

/* ── Buttons ── */
.wf-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: 'Roboto', sans-serif;
	font-weight: 500;
	font-size: 0.95rem;
	border-radius: var(--wf-radius-pill);
	padding: 0.65rem 1.75rem;
	cursor: pointer;
	transition: all var(--wf-transition);
	text-decoration: none;
}

/* Primary — white bg with gradient border */
.wf-btn--primary {
	color: var(--wf-secondary);
	position: relative;
	border: 2px solid transparent;
	background: linear-gradient(var(--wf-white), var(--wf-white)) padding-box,
	            var(--wf-btn-border) border-box;
}
.wf-btn--primary:hover {
	background: linear-gradient(var(--wf-light-bg), var(--wf-light-bg)) padding-box,
	            var(--wf-btn-border) border-box;
	color: var(--wf-secondary);
}

/* Coral — solid fill */
.wf-btn--coral {
	background: var(--wf-primary);
	color: var(--wf-white);
	border: none;
}
.wf-btn--coral:hover { background: #e5503c; color: var(--wf-white); }

/* Outline — border only, used on brand strips */
.wf-btn--outline {
	background: transparent;
	color: var(--wf-secondary);
	border: 1.5px solid var(--wf-secondary);
}
.wf-btn--outline:hover {
	background: var(--wf-secondary);
	color: var(--wf-white);
	opacity: 1;
}

/* ── Accordion / FAQ (used in faq-accordion layout) ── */
.wf-accordion__item {
	border-bottom: 1px solid rgba(0,0,0,.1);
}

.wf-accordion__trigger {
	width: 100%;
	background: none;
	border: none;
	padding: var(--wf-md) 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--wf-sm);
	font-family: 'Roboto', sans-serif;
	font-size: 1rem;
	font-weight: 600;
	color: var(--wf-secondary);
	cursor: pointer;
	text-align: left;
}

.wf-accordion__trigger:hover { color: var(--wf-primary); }

.wf-accordion__icon {
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	border: 2px solid currentColor;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform var(--wf-transition);
}

.wf-accordion__trigger[aria-expanded="true"] .wf-accordion__icon {
	transform: rotate(45deg);
}

.wf-accordion__panel {
	padding-bottom: var(--wf-md);
	color: var(--wf-secondary);
	opacity: 0.75;
	font-size: 0.95rem;
	line-height: 1.7;
}

.wf-accordion__panel[hidden] { display: none; }

/* ── Text content layout helpers ── */
.wf-text-content--bg-light-grey { background: var(--wf-light-bg); }
.wf-text-content--bg-dark       { background: var(--wf-secondary); color: var(--wf-white); }
.wf-text-content--bg-dark .wf-section-label { color: rgba(255,255,255,0.5); }
.wf-text-content--bg-dark h1,
.wf-text-content--bg-dark h2,
.wf-text-content--bg-dark h3 { color: var(--wf-white); }
.wf-text-content--bg-dark p,
.wf-text-content--bg-dark li { color: rgba(255,255,255,0.75); }

.wf-text-content__body--two-col {
	column-count: 2;
	column-gap: var(--wf-2xl);
}

@media (max-width: 767px) {
	.wf-text-content__body--two-col { column-count: 1; }
}

/* ── Responsive ── */
@media (max-width: 575px) {
	:root { --wf-section: 3rem; }
}
