/* 100K Kids — FAQ V4 */
.kkfaq{
	--kkf-red:#d9362b;
	--kkf-green:#203a33;
	--kkf-ink:#101010;
	--kkf-muted:#666765;
	--kkf-line:#dededa;
	--kkf-shell:min(1450px,calc(100% - 64px));
	--kkf-ease:cubic-bezier(.22,.75,.2,1);
	background:#fff;
	color:var(--kkf-ink);
	font-family:"Archivo",Arial,sans-serif
}
.kkfaq *{box-sizing:border-box}
.kkfaq-shell{width:var(--kkf-shell);margin-inline:auto}
.kkfaq-eyebrow{
	margin:0 0 24px;
	color:var(--kkf-red);
	font-size:10px;
	font-weight:900;
	letter-spacing:.11em;
	text-transform:uppercase
}

/* hero — same opening grammar as approved About page */
.kkfaq-hero{
	padding:58px 0 64px;
	border-bottom:1px solid var(--kkf-line)
}
.kkfaq-hero__inner{max-width:1280px}
.kkfaq-hero h1{
	max-width:1040px;
	margin:0;
	font-size:clamp(52px,5.2vw,80px);
	line-height:.94;
	letter-spacing:-.058em;
	font-weight:800
}
.kkfaq-hero h1 span{color:var(--kkf-red)}
.kkfaq-summary{
	display:grid;
	grid-template-columns:180px minmax(0,720px);
	gap:52px;
	align-items:start;
	margin-top:34px;
	padding-top:24px;
	border-top:1px solid var(--kkf-ink)
}
.kkfaq-summary__label{
	color:var(--kkf-red);
	font-size:10px;
	font-weight:900;
	letter-spacing:.09em;
	text-transform:uppercase
}
.kkfaq-summary p{
	margin:0;
	color:#4f4f4f;
	font-size:17px;
	line-height:1.68
}

/* orientation */
.kkfaq-orientation{
	background:var(--kkf-green);
	color:#fff
}
.kkfaq-orientation__inner{
	display:grid;
	grid-template-columns:190px 1fr 1fr;
	gap:50px;
	align-items:stretch
}
.kkfaq-orientation__label{
	padding:38px 0;
	color:var(--kkf-red);
	font-size:10px;
	font-weight:900;
	letter-spacing:.1em;
	text-transform:uppercase
}
.kkfaq-orientation__item{
	padding:38px 0 40px 38px;
	border-left:1px solid rgba(255,255,255,.22)
}
.kkfaq-orientation__item strong{
	display:block;
	margin-bottom:8px;
	font-size:24px;
	line-height:1.05;
	letter-spacing:-.035em
}
.kkfaq-orientation__item p{
	max-width:490px;
	margin:0;
	color:rgba(255,255,255,.72);
	font-size:13px;
	line-height:1.6
}

/* body */
.kkfaq-body{padding:68px 0 76px}
.kkfaq-layout{
	display:grid;
	grid-template-columns:240px minmax(0,1fr);
	gap:78px;
	align-items:start
}
.kkfaq-index{
	position:sticky;
	top:28px
}
.kkfaq-index>p{
	margin:0 0 12px;
	color:#777;
	font-size:9px;
	font-weight:900;
	letter-spacing:.1em;
	text-transform:uppercase
}
.kkfaq-index nav{border-top:1px solid var(--kkf-ink)}
.kkfaq-index a{
	display:flex;
	justify-content:space-between;
	gap:18px;
	padding:13px 0;
	border-bottom:1px solid var(--kkf-line);
	color:#656565!important;
	font-size:11px;
	font-weight:700;
	text-decoration:none!important
}
.kkfaq-index a span:last-child{
	color:var(--kkf-red);
	font-size:9px;
	font-weight:900
}
.kkfaq-index a:hover,
.kkfaq-index a.is-active{color:var(--kkf-ink)!important}

.kkfaq-content{max-width:930px}
.kkfaq-group{
	margin-bottom:58px;
	scroll-margin-top:40px
}
.kkfaq-group:last-child{margin-bottom:0}
.kkfaq-group__head{
	display:grid;
	grid-template-columns:90px 1fr;
	gap:28px;
	align-items:end;
	padding-bottom:18px;
	border-bottom:1px solid var(--kkf-ink)
}
.kkfaq-group__head span{
	color:var(--kkf-red);
	font-size:10px;
	font-weight:900;
	letter-spacing:.09em;
	text-transform:uppercase
}
.kkfaq-group__head h2{
	margin:0;
	font-size:clamp(30px,2.8vw,42px);
	line-height:1;
	letter-spacing:-.04em;
	font-weight:800
}
.kkfaq-list{border-bottom:1px solid var(--kkf-ink)}
.kkfaq-item{
	background:#fff;
	border-bottom:1px solid var(--kkf-line)
}
.kkfaq-item:last-child{border-bottom:0}
.kkfaq-question{
	width:100%;
	min-height:82px;
	padding:0;
	border:0;
	background:#fff;
	display:grid;
	grid-template-columns:minmax(0,1fr) 30px;
	gap:28px;
	align-items:center;
	text-align:left;
	cursor:pointer
}
.kkfaq-question>span:first-child{
	color:var(--kkf-ink);
	font-size:19px;
	font-weight:750;
	line-height:1.35;
	letter-spacing:-.018em
}
.kkfaq-toggle{
	position:relative;
	justify-self:end;
	width:24px;
	height:24px;
	color:var(--kkf-ink)
}
.kkfaq-toggle::before,
.kkfaq-toggle::after{
	content:"";
	position:absolute;
	left:50%;
	top:50%;
	width:16px;
	height:2px;
	background:currentColor;
	transform:translate(-50%,-50%);
	transition:
		transform .18s var(--kkf-ease),
		background .18s var(--kkf-ease)
}
.kkfaq-toggle::after{
	transform:translate(-50%,-50%) rotate(90deg)
}
.kkfaq-question:hover .kkfaq-toggle{color:var(--kkf-red)}
.kkfaq-item.is-open .kkfaq-toggle{color:var(--kkf-red)}
.kkfaq-item.is-open .kkfaq-toggle::after{
	transform:translate(-50%,-50%) rotate(0deg)
}
.kkfaq-item.is-open .kkfaq-question>span:first-child{
	color:var(--kkf-red)
}
.kkfaq-answer{
	display:grid;
	grid-template-rows:0fr;
	transition:grid-template-rows .22s var(--kkf-ease)
}
.kkfaq-item.is-open .kkfaq-answer{grid-template-rows:1fr}
.kkfaq-answer__inner{overflow:hidden}
.kkfaq-answer__copy{
	max-width:760px;
	padding:0 56px 26px 0;
	color:#4f4f4f;
	font-size:15px;
	line-height:1.72
}

/* close */
.kkfaq-close{
	padding:66px 0 82px;
	border-top:1px solid var(--kkf-line)
}
.kkfaq-close__grid{
	display:grid;
	grid-template-columns:minmax(0,1fr) 270px;
	gap:72px;
	align-items:end
}
.kkfaq-close h2{
	max-width:850px;
	margin:0;
	font-size:clamp(42px,4.6vw,68px);
	line-height:.92;
	letter-spacing:-.058em;
	font-weight:800
}
.kkfaq-close h2 span{color:var(--kkf-red)}
.kkfaq-contact-link{
	min-height:62px;
	padding:0 18px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	background:var(--kkf-red);
	color:#fff!important;
	font-size:11px;
	font-weight:900;
	letter-spacing:.045em;
	text-transform:uppercase;
	text-decoration:none!important;
	transition:
		background .18s var(--kkf-ease),
		transform .18s var(--kkf-ease)
}
.kkfaq-contact-link:hover{
	background:var(--kkf-ink);
	transform:translateY(-2px)
}

/* lightweight reveals */
.kkfaq [data-faq-reveal]{
	opacity:0;
	transform:translateY(14px);
	transition:
		opacity .55s var(--kkf-ease),
		transform .55s var(--kkf-ease)
}
.kkfaq [data-faq-reveal].is-visible{
	opacity:1;
	transform:none
}

@media(max-width:1100px){
	.kkfaq{--kkf-shell:min(100% - 40px,1450px)}
	.kkfaq-summary{
		grid-template-columns:150px 1fr;
		gap:30px
	}
	.kkfaq-orientation__inner{
		grid-template-columns:150px 1fr 1fr;
		gap:30px
	}
	.kkfaq-layout{
		grid-template-columns:210px 1fr;
		gap:50px
	}
}
@media(max-width:820px){
	.kkfaq{--kkf-shell:calc(100% - 28px)}
	.kkfaq-hero{padding:40px 0 48px}
	.kkfaq-hero h1{font-size:clamp(42px,11.8vw,60px)}
	.kkfaq-summary{
		grid-template-columns:1fr;
		gap:10px;
		margin-top:28px;
		padding-top:18px
	}
	.kkfaq-summary p{font-size:16px}
	.kkfaq-orientation__inner{grid-template-columns:1fr}
	.kkfaq-orientation__label{padding:30px 0 0}
	.kkfaq-orientation__item{
		padding:24px 0 28px;
		border-left:0;
		border-top:1px solid rgba(255,255,255,.2)
	}
	.kkfaq-layout{grid-template-columns:1fr;gap:36px}
	.kkfaq-index{position:static}
	.kkfaq-index nav{
		display:grid;
		grid-template-columns:1fr 1fr
	}
	.kkfaq-index a:nth-child(even){
		padding-left:18px;
		border-left:1px solid var(--kkf-line)
	}
	.kkfaq-close__grid{
		grid-template-columns:1fr;
		gap:34px
	}
}
@media(max-width:560px){
	.kkfaq-index nav{grid-template-columns:1fr}
	.kkfaq-index a:nth-child(even){
		padding-left:0;
		border-left:0
	}
	.kkfaq-group__head{
		grid-template-columns:1fr;
		gap:8px
	}
	.kkfaq-question>span:first-child{font-size:17px}
	.kkfaq-answer__copy{padding-right:0}
}
@media(prefers-reduced-motion:reduce){
	.kkfaq [data-faq-reveal]{
		opacity:1;
		transform:none;
		transition:none
	}
	.kkfaq *,.kkfaq *::before,.kkfaq *::after{
		animation:none!important;
		transition:none!important
	}
}
