/* ==========================================================
   Custom FAQ Builder - Frontend Styles
   Design: premium / luxury FAQ section, numbered accordion
   All selectors are prefixed with .cfaq- to avoid theme conflicts.
   ========================================================== */

.cfaq-section {
	--cfaq-ink: #141311;
	--cfaq-ivory: #F7F2E9;
	--cfaq-paper: #FCFAF5;
	--cfaq-gold: #B08D4F;
	--cfaq-gold-soft: #D9C393;
	--cfaq-line: rgba(20, 19, 17, 0.14);
	--cfaq-muted: #6b675e;

	box-sizing: border-box;
	background: transparent;
	font-family: 'Montserrat', sans-serif;
	color: var(--cfaq-ink);
	-webkit-font-smoothing: antialiased;
	padding: 130px 24px 140px;
	position: relative;
}

.cfaq-section *,
.cfaq-section *::before,
.cfaq-section *::after {
	box-sizing: border-box;
}

.cfaq-section::before {
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--cfaq-line) 20%, var(--cfaq-line) 80%, transparent);
}

.cfaq-wrap {
	max-width: 920px;
	margin: 0 auto;
}

/* ---------- Header ---------- */

.cfaq-head {
	text-align: center;
	margin-bottom: 80px;
}

.cfaq-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	font-size: 12px;
	letter-spacing: 4px;
	text-transform: uppercase;
	color: var(--cfaq-gold);
	font-weight: 500;
	margin-bottom: 22px;
}
.cfaq-eyebrow::before,
.cfaq-eyebrow::after {
	content: "";
	width: 28px;
	height: 1px;
	background: var(--cfaq-gold);
}

.cfaq-title {
	font-family: 'Montserrat', sans-serif;
	font-weight: 600;
	font-size: 48px;
	line-height: 1.15;
	margin: 0 0 18px;
	letter-spacing: -0.5px;
}

.cfaq-subtitle {
	font-family: 'Montserrat', sans-serif;
	font-weight: 300;
	font-size: 17px;
	color: var(--cfaq-muted);
	margin: 0;
}

/* ---------- Accordion list ---------- */

.cfaq-list {
	display: flex;
	flex-direction: column;
}

.cfaq-item {
	border-bottom: 1px solid var(--cfaq-line);
}
.cfaq-item:first-child {
	border-top: 1px solid var(--cfaq-line);
}

.cfaq-q {
	width: 100%;
	background: none;
	border: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 30px 4px;
	text-align: left;
	font-family: 'Montserrat', sans-serif;
	font-size: 18px;
	font-weight: 500;
	letter-spacing: 0.2px;
	color: var(--cfaq-ink);
	transition: color .25s;
	margin: 0;
}

.cfaq-q:hover {
	color: var(--cfaq-gold);
	background-color: transparent !important;
}

.cfaq-num {
	font-family: 'Montserrat', sans-serif;
	font-size: 12px;
	letter-spacing: 1.5px;
	color: var(--cfaq-gold);
	min-width: 28px;
	padding-top: 5px;
	font-weight: 500;
}

.cfaq-q-text {
	flex: 1;
}

.cfaq-icon {
	position: relative;
	width: 22px;
	height: 22px;
	min-width: 22px;
	border: 1px solid var(--cfaq-gold-soft);
	border-radius: 50%;
}
.cfaq-icon::before,
.cfaq-icon::after {
	content: "";
	position: absolute;
	top: 50%; left: 50%;
	background: var(--cfaq-gold);
	transition: transform .3s ease;
}
.cfaq-icon::before {
	width: 9px; height: 1px;
	transform: translate(-50%, -50%);
}
.cfaq-icon::after {
	width: 1px; height: 9px;
	transform: translate(-50%, -50%);
}
.cfaq-item.cfaq-open .cfaq-icon::after {
	transform: translate(-50%, -50%) rotate(90deg) scaleY(0);
}
.cfaq-item.cfaq-open .cfaq-q {
	color: var(--cfaq-gold);
}

.cfaq-a {
	max-height: 0;
	overflow: hidden;
	transition: max-height .4s ease;
}

.cfaq-a-inner {
	padding: 0 4px 34px 52px;
	font-size: 15px;
	line-height: 1.9;
	color: var(--cfaq-muted);
	font-weight: 300;
	max-width: 640px;
}

.cfaq-a-inner p:first-child { margin-top: 0; }
.cfaq-a-inner p:last-child { margin-bottom: 0; }

.cfaq-a-inner a {
	color: var(--cfaq-gold);
	text-decoration: none;
	border-bottom: 1px solid var(--cfaq-gold-soft);
	transition: border-color .25s;
}
.cfaq-a-inner a:hover {
	border-color: var(--cfaq-gold);
}

/* ---------- Footer CTA ---------- */

.cfaq-cta {
	text-align: center;
	margin-top: 80px;
	padding-top: 50px;
	border-top: 1px solid var(--cfaq-line);
}

.cfaq-cta p {
	font-family: 'Montserrat', sans-serif;
	font-weight: 300;
	font-size: 16px;
	color: var(--cfaq-muted);
	margin: 0 0 26px;
}

.cfaq-cta-btn {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	background: var(--cfaq-ink);
	color: var(--cfaq-ivory);
	border: 1px solid var(--cfaq-ink);
	padding: 16px 44px;
	font-family: 'Montserrat', sans-serif;
	font-size: 12px;
	letter-spacing: 3px;
	text-transform: uppercase;
	font-weight: 500;
	text-decoration: none;
	transition: background .3s, color .3s, letter-spacing .3s;
}
.cfaq-cta-btn:hover {
	background: transparent;
	color: var(--cfaq-ink);
	letter-spacing: 4px;
}

/* ---------- Alternate: simple list style (style="list") ---------- */

.cfaq-style-list .cfaq-item {
	border-bottom: 1px solid var(--cfaq-line);
	padding: 4px 0;
}
.cfaq-style-list .cfaq-q {
	cursor: default;
	padding: 20px 4px 10px;
}
.cfaq-style-list .cfaq-icon {
	display: none;
}
.cfaq-style-list .cfaq-a {
	max-height: none !important;
	overflow: visible;
}
.cfaq-style-list .cfaq-a-inner {
	padding: 0 4px 24px 52px;
}

/* ---------- Responsive ---------- */

@media (max-width: 640px) {
	.cfaq-section { padding: 90px 18px 100px; }
	.cfaq-title { font-size: 34px; }
	.cfaq-q { font-size: 17px; padding: 22px 2px; gap: 14px; }
	.cfaq-a-inner { padding-left: 0; }
	.cfaq-num { display: none; }
}
