@font-face {
	font-family: "Heatwood";
	src: url("../../fonts/Heatwood.woff2") format("woff2");
	font-display: swap;
	font-style: normal;
	font-weight: 400;
}

.cbc-faqs-page {
	--faq-coral: #e84a5b;
	--faq-coral-deep: #a63d49;
	--faq-coral-soft: #f6bec5;
	--faq-cream: #f3efe7;
	--faq-paper: #fffdf9;
	--faq-ink: #11120f;
	--faq-muted: #64615d;
	--faq-grey: #55534f;
	--faq-line: rgba(17, 18, 15, 0.14);
	background: var(--faq-cream);
	color: var(--faq-ink);
	overflow-x: clip;
}

.cbc-faqs-page .site-main,
.cbc-faqs-page #page,
.cbc-faqs-page main {
	overflow: visible;
}

.cbc-faqs-page .cbc-faq-page,
.cbc-faqs-page .cbc-faq-page * {
	box-sizing: border-box;
}

.cbc-faqs-page .cbc-faq-page {
	font-family: "Open Sans", sans-serif;
	line-height: 1.55;
}

.cbc-faqs-page .cbc-faq-shell {
	width: min(1180px, calc(100% - 64px));
	margin-inline: auto;
}

.cbc-faqs-page .cbc-faq-contours {
	background-color: var(--faq-cream);
	background-image:
		radial-gradient(circle at 70% 15%, rgba(232, 74, 91, 0.07), transparent 30%),
		url("data:image/svg+xml,%3Csvg width='540' height='380' viewBox='0 0 540 380' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23e84a5b' stroke-opacity='.16' stroke-width='1.25'%3E%3Cpath d='M-40 77C82-12 176 1 292 64s201 49 309-47'/%3E%3Cpath d='M-58 116C74 20 173 34 286 91s198 51 321-48'/%3E%3Cpath d='M-62 159C58 64 167 58 279 126s220 62 342-39'/%3E%3Cpath d='M-51 205C67 104 167 105 277 169s219 57 344-47'/%3E%3Cpath d='M-62 257C52 150 162 143 267 211s231 66 357-48'/%3E%3Cpath d='M-45 312C50 214 150 191 254 250s225 76 368-46'/%3E%3Cpath d='M-26 368C68 263 160 251 250 296s222 75 364-35'/%3E%3C/g%3E%3C/svg%3E");
	background-repeat: no-repeat, repeat;
	background-size: auto, 540px 380px;
}

.cbc-faqs-page .cbc-faq-cream-system {
	background: var(--faq-cream);
	isolation: isolate;
	overflow: hidden;
	position: relative;
}

.cbc-faqs-page .cbc-faq-cream-system::before {
	background:
		radial-gradient(circle at 14% 22%, rgba(232, 74, 91, 0.075), transparent 28%),
		radial-gradient(circle at 82% 68%, rgba(232, 74, 91, 0.06), transparent 31%),
		linear-gradient(135deg, rgba(255, 255, 255, 0.16), transparent 44%, rgba(232, 74, 91, 0.025));
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
	z-index: 0;
}

.cbc-faqs-page .cbc-faq-cream-lines {
	display: block;
	height: 100%;
	inset: 0;
	opacity: 0.88;
	pointer-events: none;
	position: absolute;
	width: 100%;
	z-index: 1;
}

.cbc-faqs-page .cbc-faq-cream-system > section {
	background: transparent;
	position: relative;
	z-index: 2;
}

.cbc-faqs-page .cbc-faq-eyebrow {
	margin: 0;
	color: var(--faq-coral);
	font-family: "Montserrat", sans-serif;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.26em;
	text-transform: uppercase;
}

.cbc-faqs-page .cbc-faq-script {
	margin: 0 0 -0.1em;
	color: var(--faq-coral);
	font-family: "Heatwood", cursive;
	font-size: clamp(0.75rem, 1.5vw, 1.44rem);
	font-style: normal;
	font-weight: 400;
	letter-spacing: -0.055em;
	line-height: 0.9;
}

.cbc-faqs-page .cbc-faq-text-link {
	align-items: center;
	color: var(--faq-ink);
	display: inline-flex;
	gap: 0.8rem;
	font-family: "Montserrat", sans-serif;
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-decoration: none;
	text-transform: uppercase;
}

.cbc-faqs-page .cbc-faq-text-link span {
	color: var(--faq-coral);
	font-size: 1.15rem;
	transition: transform 220ms ease;
}

.cbc-faqs-page .cbc-faq-text-link:hover span,
.cbc-faqs-page .cbc-faq-text-link:focus-visible span {
	transform: translateX(0.3rem);
}

.cbc-faqs-page .cbc-faq-button {
	align-items: center;
	background: var(--faq-coral);
	border: 1px solid var(--faq-coral);
	color: #fff;
	display: inline-flex;
	gap: 2.25rem;
	justify-content: space-between;
	min-width: 230px;
	padding: 1.05rem 1.25rem;
	font-family: "Montserrat", sans-serif;
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.11em;
	text-decoration: none;
	text-transform: uppercase;
	transition: background-color 220ms ease, color 220ms ease, transform 220ms ease;
}

.cbc-faqs-page .cbc-faq-button:hover,
.cbc-faqs-page .cbc-faq-button:focus-visible {
	background: var(--faq-ink);
	border-color: var(--faq-ink);
	color: #fff;
	transform: translateY(-2px);
}

/* Hero */
.cbc-faqs-page .cbc-faq-hero {
	background-image:
		linear-gradient(90deg, rgba(10, 7, 6, 0.83) 0%, rgba(10, 7, 6, 0.47) 48%, rgba(10, 7, 6, 0.16) 100%),
		url("../booths/media/optimized/charleston-photo-booth-rentals-hero.webp");
	background-position: center 38%;
	background-size: cover;
	color: #fff;
	height: clamp(560px, 72vh, 760px);
	isolation: isolate;
	min-height: 560px;
	position: relative;
}

.cbc-faqs-page .cbc-faq-hero::after {
	background:
		linear-gradient(to top, rgba(4, 3, 3, 0.84), transparent 45%),
		linear-gradient(to bottom, rgba(4, 3, 3, 0.15), transparent 30%);
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
	z-index: -1;
}

.cbc-faqs-page .cbc-faq-hero__logo {
	filter: drop-shadow(0 12px 18px rgba(0, 0, 0, 0.2));
	height: auto;
	left: clamp(24px, 4vw, 72px);
	max-width: 250px;
	position: absolute;
	top: clamp(20px, 4vw, 54px);
	width: clamp(210px, 18vw, 250px);
	z-index: 2;
}

.cbc-faqs-page .cbc-faq-hero__content {
	bottom: clamp(38px, 6vh, 72px);
	left: 50%;
	position: absolute;
	transform: translateX(-50%);
	z-index: 2;
}

.cbc-faqs-page .cbc-faq-hero__content h1 {
	color: var(--cbc-coral, #d6565f);
	font-family: "Big Shoulders Display", sans-serif;
	font-size: clamp(2.8rem, 5.3vw, 5.35rem);
	font-weight: 900;
	letter-spacing: -0.045em;
	line-height: 1.02;
	margin: 0.14em 0 0.18em;
	max-width: 850px;
	text-transform: uppercase;
}

.cbc-faqs-page .cbc-faq-hero__content > p:last-child {
	font-family: "Cormorant Garamond", serif;
	font-size: clamp(1.35rem, 2.35vw, 2rem);
	line-height: 1.15;
	margin: 0;
	max-width: 690px;
}

/* Start-here index */
.cbc-faqs-page .cbc-faq-overview {
	padding: clamp(84px, 10vw, 150px) 0;
}

.cbc-faqs-page .cbc-faq-overview__grid {
	align-items: start;
	display: grid;
	gap: clamp(56px, 8vw, 118px);
	grid-template-columns: minmax(0, 1.12fr) minmax(310px, 0.7fr);
}

.cbc-faqs-page .cbc-faq-overview__copy h2,
.cbc-faqs-page .cbc-faq-library__header h2,
.cbc-faqs-page .cbc-faq-flow__copy h2 {
	font-family: "Big Shoulders Display", sans-serif;
	font-size: clamp(2rem, 2.6vw, 2.75rem);
	font-weight: 900;
	letter-spacing: -0.04em;
	line-height: 0.94;
	margin: 0.22em 0 0.32em;
	text-transform: uppercase;
}

.cbc-faqs-page .cbc-faq-overview__copy h2 {
	text-wrap: balance;
}

.cbc-faqs-page .cbc-faq-flow__copy h2 {
	font-size: clamp(1.7rem, 1.9vw, 2.1rem);
}

.cbc-faqs-page .cbc-faq-overview__lede {
	color: var(--faq-muted);
	font-size: clamp(1rem, 1.35vw, 1.18rem);
	margin: 0 0 2.4rem;
	max-width: 680px;
}

.cbc-faqs-page .cbc-faq-index {
	border-top: 1px solid var(--faq-line);
	counter-reset: faq-index;
}

.cbc-faqs-page .cbc-faq-index a {
	align-items: center;
	border-bottom: 1px solid var(--faq-line);
	color: var(--faq-ink);
	display: grid;
	gap: 1rem;
	grid-template-columns: 38px 1fr auto;
	min-height: 72px;
	padding: 0.4rem 0.25rem;
	text-decoration: none;
	transition: color 180ms ease, padding 180ms ease;
}

.cbc-faqs-page .cbc-faq-index a:hover,
.cbc-faqs-page .cbc-faq-index a:focus-visible {
	color: var(--faq-coral);
	padding-left: 0.5rem;
}

.cbc-faqs-page .cbc-faq-index a > span:first-child {
	color: var(--faq-coral);
	font-family: "Montserrat", sans-serif;
	font-size: 0.72rem;
	font-weight: 800;
}

.cbc-faqs-page .cbc-faq-index strong {
	font-family: "Montserrat", sans-serif;
	font-size: 0.86rem;
	font-weight: 800;
	letter-spacing: 0.025em;
	text-transform: uppercase;
}

.cbc-faqs-page .cbc-faq-index a > span:last-child {
	font-size: 1.25rem;
}

.cbc-faqs-page .cbc-faq-fast {
	background: var(--faq-grey);
	border-top: 5px solid var(--faq-coral);
	box-shadow: 0 28px 80px rgba(52, 41, 38, 0.16);
	color: #fff;
	padding: clamp(32px, 4vw, 52px);
	position: sticky;
	top: 36px;
}

.cbc-faqs-page .cbc-faq-fast__label {
	color: var(--faq-coral-soft);
	font-family: "Montserrat", sans-serif;
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.2em;
	margin: 0 0 1.1rem;
	text-transform: uppercase;
}

.cbc-faqs-page .cbc-faq-fast dl {
	margin: 0 0 2rem;
}

.cbc-faqs-page .cbc-faq-fast dl > div {
	border-bottom: 1px solid rgba(255, 255, 255, 0.15);
	padding: 1.25rem 0;
}

.cbc-faqs-page .cbc-faq-fast dt {
	font-family: "Montserrat", sans-serif;
	font-size: 0.91rem;
	font-weight: 800;
	margin-bottom: 0.3rem;
}

.cbc-faqs-page .cbc-faq-fast dd {
	color: rgba(255, 255, 255, 0.72);
	font-size: 0.9rem;
	margin: 0;
}

.cbc-faqs-page .cbc-faq-fast .cbc-faq-text-link {
	color: #fff;
}

/* Full FAQ */
.cbc-faqs-page .cbc-faq-library {
	background: transparent;
	padding: clamp(86px, 11vw, 160px) 0;
}

.cbc-faqs-page .cbc-faq-library__header {
	margin-bottom: clamp(62px, 8vw, 110px);
	max-width: 760px;
}

.cbc-faqs-page .cbc-faq-library__groups {
	display: grid;
	gap: clamp(74px, 9vw, 132px) clamp(42px, 6vw, 82px);
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cbc-faqs-page .cbc-faq-group {
	scroll-margin-top: 36px;
}

.cbc-faqs-page .cbc-faq-group__header {
	align-items: flex-end;
	border-bottom: 1px solid var(--faq-line);
	display: flex;
	gap: 1.5rem;
	justify-content: space-between;
	margin-bottom: 1.25rem;
	padding-bottom: 1rem;
}

.cbc-faqs-page .cbc-faq-group__header h2 {
	font-family: "Big Shoulders Display", sans-serif;
	font-size: clamp(1.75rem, 2.6vw, 2.75rem);
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 0.95;
	margin: 0;
	text-transform: uppercase;
}

.cbc-faqs-page .cbc-faq-group__header > span {
	color: var(--faq-coral);
	font-family: "Montserrat", sans-serif;
	font-size: 0.8rem;
	font-weight: 800;
	letter-spacing: 0.16em;
}

.cbc-faqs-page .cbc-faq-accordion {
	display: grid;
	gap: 0.65rem;
}

.cbc-faqs-page .cbc-faq-item {
	background: var(--faq-paper);
	border: 1px solid rgba(17, 18, 15, 0.08);
	border-radius: 999px;
	box-shadow: 0 8px 25px rgba(53, 45, 38, 0.035);
	overflow: hidden;
	transition: background-color 260ms ease, border-radius 260ms ease, color 260ms ease, box-shadow 260ms ease;
}

.cbc-faqs-page .cbc-faq-item[data-open="true"] {
	background: var(--faq-coral-deep);
	border-color: var(--faq-coral-deep);
	border-radius: 24px;
	box-shadow: 0 20px 45px rgba(114, 38, 48, 0.16);
	color: #fff;
}

.cbc-faqs-page .cbc-faq-item h3 {
	font-size: inherit;
	line-height: inherit;
	margin: 0;
}

.cbc-faqs-page .cbc-faq-item button {
	align-items: center;
	appearance: none;
	background: transparent;
	border: 0;
	color: inherit;
	cursor: pointer;
	display: flex;
	font: inherit;
	gap: 1.5rem;
	justify-content: space-between;
	min-height: 76px;
	padding: 1rem 1.4rem 1rem 1.65rem;
	text-align: left;
	width: 100%;
}

.cbc-faqs-page .cbc-faq-item button > span:first-child {
	font-family: "Montserrat", sans-serif;
	font-size: clamp(0.78rem, 1.05vw, 0.93rem);
	font-weight: 800;
	line-height: 1.28;
}

.cbc-faqs-page .cbc-faq-item button:focus-visible {
	outline: 3px solid var(--faq-coral);
	outline-offset: -4px;
}

.cbc-faqs-page .cbc-faq-item[data-open="true"] button:focus-visible {
	outline-color: #fff;
}

.cbc-faqs-page .cbc-faq-item__icon {
	flex: 0 0 24px;
	height: 24px;
	position: relative;
	width: 24px;
}

.cbc-faqs-page .cbc-faq-item__icon::before,
.cbc-faqs-page .cbc-faq-item__icon::after {
	background: var(--faq-coral);
	content: "";
	height: 2px;
	left: 4px;
	position: absolute;
	top: 11px;
	transition: background-color 200ms ease, transform 260ms ease;
	width: 16px;
}

.cbc-faqs-page .cbc-faq-item__icon::after {
	transform: rotate(90deg);
}

.cbc-faqs-page .cbc-faq-item[data-open="true"] .cbc-faq-item__icon::before,
.cbc-faqs-page .cbc-faq-item[data-open="true"] .cbc-faq-item__icon::after {
	background: #fff;
}

.cbc-faqs-page .cbc-faq-item[data-open="true"] .cbc-faq-item__icon::after {
	transform: rotate(0);
}

.cbc-faqs-page .cbc-faq-item__panel {
	display: grid;
	grid-template-rows: 0fr;
	opacity: 0;
	transition: grid-template-rows 360ms cubic-bezier(0.22, 0.61, 0.36, 1), opacity 220ms ease;
}

.cbc-faqs-page .cbc-faq-item__panel > div {
	overflow: hidden;
}

.cbc-faqs-page .cbc-faq-item__panel p {
	color: rgba(255, 255, 255, 0.8);
	font-size: 0.91rem;
	line-height: 1.7;
	margin: 0;
	padding: 0 4.9rem 1.7rem 1.65rem;
}

.cbc-faqs-page .cbc-faq-item__panel a {
	color: inherit;
	font-weight: 700;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

.cbc-faqs-page .cbc-faq-item__panel a:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
}

.cbc-faqs-page .cbc-faq-item[data-open="true"] .cbc-faq-item__panel {
	grid-template-rows: 1fr;
	opacity: 1;
}

/* Three-step flow */
.cbc-faqs-page .cbc-faq-flow {
	padding: clamp(92px, 12vw, 170px) 0;
}

.cbc-faqs-page .cbc-faq-flow__grid {
	align-items: start;
	display: grid;
	gap: clamp(62px, 9vw, 130px);
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr);
}

.cbc-faqs-page .cbc-faq-flow__steps {
	display: grid;
	gap: 1.25rem;
}

.cbc-faqs-page .cbc-faq-flow-card {
	align-items: center;
	background: rgba(255, 253, 249, 0.95);
	border: 1px solid rgba(17, 18, 15, 0.08);
	border-radius: 28px;
	box-shadow: 0 18px 50px rgba(50, 42, 35, 0.08);
	display: grid;
	gap: clamp(22px, 4vw, 42px);
	grid-template-columns: auto 1fr;
	min-height: 180px;
	padding: clamp(22px, 3vw, 38px);
}

.cbc-faqs-page .cbc-faq-flow-card > span {
	align-items: center;
	background: var(--faq-coral);
	border-radius: 50%;
	color: #fff;
	display: flex;
	flex: 0 0 auto;
	font-family: "Montserrat", sans-serif;
	font-size: 0.76rem;
	font-weight: 800;
	height: 74px;
	justify-content: center;
	width: 74px;
}

.cbc-faqs-page .cbc-faq-flow-card h3 {
	font-family: "Big Shoulders Display", sans-serif;
	font-size: clamp(2rem, 4vw, 3.2rem);
	font-weight: 800;
	line-height: 0.95;
	margin: 0 0 0.35rem;
	text-transform: uppercase;
}

.cbc-faqs-page .cbc-faq-flow-card p {
	color: var(--faq-muted);
	font-size: 0.93rem;
	margin: 0;
}

.cbc-faqs-page .cbc-faq-flow__copy {
	padding-top: 2rem;
	position: sticky;
	top: 48px;
}

.cbc-faqs-page .cbc-faq-flow__copy > p:not(.cbc-faq-script) {
	color: var(--faq-muted);
	font-size: clamp(1rem, 1.3vw, 1.16rem);
	margin: 0 0 2rem;
	max-width: 620px;
}

/* Design Lab CTA */
.cbc-faqs-page .cbc-faq-design-cta {
	background: #b23d48;
	border-block: 1px solid rgba(255, 255, 255, 0.28);
	color: #fff;
	isolation: isolate;
	overflow: hidden;
	position: relative;
}

.cbc-faqs-page .cbc-faq-design-cta::before,
.cbc-faqs-page .cbc-faq-design-cta::after {
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 50%;
	content: "";
	pointer-events: none;
	position: absolute;
	z-index: -1;
}

.cbc-faqs-page .cbc-faq-design-cta::before {
	height: 320%;
	left: -8%;
	top: -116%;
	transform: rotate(-4deg);
	width: 72%;
}

.cbc-faqs-page .cbc-faq-design-cta::after {
	height: 270%;
	right: -18%;
	top: -86%;
	transform: rotate(7deg);
	width: 62%;
}

.cbc-faqs-page .cbc-faq-design-cta__inner {
	align-items: center;
	display: grid;
	gap: clamp(2rem, 6vw, 6rem);
	grid-template-columns: minmax(0, 1fr) auto;
	padding-block: clamp(34px, 4.3vw, 62px);
	position: relative;
}

.cbc-faqs-page .cbc-faq-design-cta__copy {
	max-width: 850px;
}

.cbc-faqs-page .cbc-faq-design-cta__eyebrow {
	color: rgba(255, 255, 255, 0.88);
	font-family: "Montserrat", sans-serif;
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.25em;
	margin: 0 0 0.55rem;
	text-transform: uppercase;
}

.cbc-faqs-page .cbc-faq-design-cta h2 {
	color: #fff;
	font-family: "Cormorant Garamond", serif;
	font-size: clamp(2.25rem, 4.2vw, 4.6rem);
	font-weight: 600;
	letter-spacing: -0.035em;
	line-height: 0.92;
	margin: 0;
}

.cbc-faqs-page .cbc-faq-design-cta__copy > p:last-child {
	color: #fff;
	font-size: clamp(0.92rem, 1.15vw, 1.05rem);
	font-weight: 700;
	margin: 0.85rem 0 0;
	max-width: 720px;
}

.cbc-faqs-page .cbc-faq-design-cta__button {
	align-items: center;
	background: var(--faq-ink);
	border: 1px solid rgba(255, 255, 255, 0.72);
	color: #fff;
	display: inline-flex;
	gap: 2.4rem;
	justify-content: space-between;
	min-width: 220px;
	padding: 1rem 1.2rem;
	font-family: "Montserrat", sans-serif;
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-decoration: none;
	text-transform: uppercase;
	transition: background-color 240ms ease, color 240ms ease, transform 240ms ease;
}

.cbc-faqs-page .cbc-faq-design-cta__button > span:last-child {
	color: var(--faq-coral-soft);
	font-size: 1.1rem;
	transition: transform 240ms ease;
}

.cbc-faqs-page .cbc-faq-design-cta__button:hover,
.cbc-faqs-page .cbc-faq-design-cta__button:focus-visible {
	background: var(--faq-paper);
	color: var(--faq-ink);
	transform: translateY(-2px);
}

.cbc-faqs-page .cbc-faq-design-cta__button:hover > span:last-child,
.cbc-faqs-page .cbc-faq-design-cta__button:focus-visible > span:last-child {
	transform: translateX(0.28rem);
}

/* Gallery transition */
.cbc-faqs-page .cbc-faq-gallery {
	background:
		radial-gradient(circle at 50% 0, rgba(232, 74, 91, 0.1), transparent 42%),
		var(--faq-cream);
	color: var(--faq-ink);
	overflow: hidden;
	padding: clamp(90px, 11vw, 150px) 0 clamp(70px, 9vw, 120px);
	position: relative;
}

@media (max-width: 760px) {
	.cbc-faqs-page .cbc-faq-design-cta__inner {
		gap: 1.5rem;
		grid-template-columns: 1fr;
		padding-block: 34px;
	}

	.cbc-faqs-page .cbc-faq-design-cta h2 {
		font-size: clamp(2.25rem, 11vw, 3.25rem);
	}

	.cbc-faqs-page .cbc-faq-design-cta__button {
		min-width: min(100%, 260px);
		width: max-content;
	}
}

.cbc-faqs-page .cbc-faq-gallery__header {
	position: relative;
	text-align: center;
	z-index: 2;
}

.cbc-faqs-page .cbc-faq-gallery__header h2 {
	font-family: "Big Shoulders Display", sans-serif;
	font-size: clamp(3rem, 6vw, 6.25rem);
	font-weight: 900;
	letter-spacing: -0.045em;
	line-height: 0.8;
	margin: 0.15em 0 0.2em;
	text-transform: uppercase;
	white-space: nowrap;
}

.cbc-faqs-page .cbc-faq-gallery__header > p:last-child {
	color: var(--faq-muted);
	font-family: "Cormorant Garamond", serif;
	font-size: clamp(1.25rem, 2vw, 1.75rem);
	margin: 0;
}

.cbc-faqs-page .cbc-faq-gallery__fan {
	align-items: flex-end;
	display: flex;
	height: clamp(390px, 42vw, 570px);
	justify-content: center;
	margin: clamp(46px, 7vw, 80px) auto 0;
	max-width: 1440px;
	position: relative;
	width: min(96%, 1440px);
}

.cbc-faqs-page .cbc-faq-gallery__fan figure {
	--distance: calc(var(--card-index) - 3);
	--rotation: calc(var(--distance) * 5.5deg);
	--x: calc(var(--distance) * 68%);
	background: #fff;
	border: 7px solid #fff;
	border-radius: 12px;
	box-shadow: 0 28px 60px rgba(0, 0, 0, 0.34);
	height: clamp(280px, 31vw, 455px);
	left: 50%;
	margin: 0;
	overflow: hidden;
	position: absolute;
	transform: translateX(calc(-50% + var(--x))) rotate(var(--rotation));
	transform-origin: 50% 105%;
	width: clamp(190px, 21vw, 310px);
	z-index: calc(10 - abs(var(--distance)));
}

.cbc-faqs-page .cbc-faq-gallery__fan figure:nth-child(4) {
	height: clamp(325px, 36vw, 520px);
	width: clamp(220px, 24vw, 355px);
	z-index: 20;
}

.cbc-faqs-page .cbc-faq-gallery__fan img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.cbc-faqs-page .cbc-faq-gallery__actions {
	align-items: center;
	display: flex;
	gap: 2rem;
	justify-content: center;
	margin-top: clamp(72px, 7vw, 108px);
	padding: 0 32px;
	position: relative;
	z-index: 3;
}

.cbc-faqs-page .cbc-faq-button--light {
	background: var(--faq-coral);
	border-color: var(--faq-coral);
}

.cbc-faqs-page .cbc-faq-text-link--light {
	color: var(--faq-ink);
}

/* One-time scroll reveals */
.cbc-faqs-page [data-faq-reveal] {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity 650ms ease, transform 750ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.cbc-faqs-page [data-faq-reveal].is-visible {
	opacity: 1;
	transform: translateY(0);
}

.cbc-faqs-page .cbc-faq-hero__content[data-faq-reveal] {
	transform: translate(-50%, 26px);
}

.cbc-faqs-page .cbc-faq-hero__content[data-faq-reveal].is-visible {
	transform: translate(-50%, 0);
}

@media (max-width: 767px) {
	.cbc-faqs-page .cbc-faq-shell {
		width: min(100% - 40px, 760px);
	}

	.cbc-faqs-page .cbc-faq-overview__grid,
	.cbc-faqs-page .cbc-faq-flow__grid {
		grid-template-columns: 1fr;
	}

	.cbc-faqs-page .cbc-faq-fast,
	.cbc-faqs-page .cbc-faq-flow__copy {
		position: static;
	}

	.cbc-faqs-page .cbc-faq-library__groups {
		grid-template-columns: 1fr;
	}

	.cbc-faqs-page .cbc-faq-flow__copy {
		grid-row: 1;
		padding-top: 0;
	}

	.cbc-faqs-page .cbc-faq-gallery__fan figure {
		--x: calc(var(--distance) * 50%);
	}
}

@media (min-width: 768px) {
	.cbc-faqs-page .cbc-faq-fast {
		translate: clamp(24px, 3vw, 42px) 0;
	}

	.cbc-faqs-page .cbc-faq-library__header h2,
	.cbc-faqs-page .cbc-faq-flow__copy h2,
	.cbc-faqs-page .cbc-faq-group__header h2 {
		white-space: nowrap;
	}

	.cbc-faqs-page .cbc-faq-flow {
		padding: clamp(62px, 6vw, 88px) 0 clamp(66px, 6.5vw, 94px);
	}

	.cbc-faqs-page .cbc-faq-flow__grid {
		display: grid;
		gap: clamp(52px, 5vw, 72px);
		grid-template-columns: 1fr;
	}

	.cbc-faqs-page .cbc-faq-flow__copy {
		grid-row: 1;
		max-width: 650px;
		padding-top: 0;
		position: static;
	}

	.cbc-faqs-page .cbc-faq-flow__copy > p:not(.cbc-faq-script) {
		font-size: clamp(0.9rem, 1vw, 1rem);
		line-height: 1.55;
		margin-bottom: 1.35rem;
		max-width: 540px;
	}

	.cbc-faqs-page .cbc-faq-flow__copy h2 {
		font-size: clamp(1.5rem, 1.65vw, 1.82rem);
		margin: 0.16em 0 0.3em;
	}

	.cbc-faqs-page .cbc-faq-flow__copy .cbc-faq-button {
		min-width: 160px;
		padding: 0.78rem 0.9rem;
		font-size: 0.62rem;
	}

	.cbc-faqs-page .cbc-faq-flow__steps {
		display: grid;
		gap: clamp(24px, 3.6vw, 54px);
		grid-row: 2;
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.cbc-faqs-page .cbc-faq-flow-card {
		gap: clamp(14px, 1.4vw, 20px);
		grid-template-columns: 68px minmax(0, 1fr);
		min-height: 136px;
		padding: 18px 20px;
		border-radius: 18px;
	}

	.cbc-faqs-page .cbc-faq-flow-card > span {
		height: 68px;
		width: 68px;
	}

	.cbc-faqs-page .cbc-faq-flow-card h3 {
		font-size: clamp(1.8rem, 2.35vw, 2.35rem);
		margin-bottom: 0.2rem;
	}

	.cbc-faqs-page .cbc-faq-flow-card p {
		font-size: clamp(0.72rem, 0.78vw, 0.82rem);
		line-height: 1.45;
	}
}

@media (min-width: 768px) and (max-width: 900px) {
	.cbc-faqs-page .cbc-faq-group__header {
		gap: 10px;
	}

	.cbc-faqs-page .cbc-faq-group__header h2 {
		font-size: clamp(1.55rem, 3.2vw, 1.8rem);
		white-space: normal;
	}
}

@media (max-width: 680px) {
	.cbc-faqs-page .cbc-faq-shell {
		width: calc(100% - 32px);
	}

	.cbc-faqs-page .cbc-faq-hero {
		background-position: 64% center;
		height: min(760px, 100svh);
		min-height: 650px;
	}

	.cbc-faqs-page .cbc-faq-hero__logo {
		left: 18px;
		top: 18px;
		width: 205px;
	}

	.cbc-faqs-page .cbc-faq-hero__content {
		bottom: 54px;
	}

	.cbc-faqs-page .cbc-faq-hero__content h1 {
		font-size: clamp(2.55rem, 12vw, 3.75rem);
		line-height: 1.04;
		max-width: 95%;
	}

	.cbc-faqs-page .cbc-faq-overview,
	.cbc-faqs-page .cbc-faq-library,
	.cbc-faqs-page .cbc-faq-flow {
		padding-block: 76px;
	}

	.cbc-faqs-page .cbc-faq-overview__grid {
		gap: 46px;
	}

	.cbc-faqs-page .cbc-faq-overview__copy h2,
	.cbc-faqs-page .cbc-faq-library__header h2,
	.cbc-faqs-page .cbc-faq-flow__copy h2 {
		font-size: clamp(2.15rem, 10vw, 3.25rem);
		line-height: 0.94;
	}

	.cbc-faqs-page .cbc-faq-flow__copy h2 {
		font-size: clamp(1.9rem, 8.5vw, 2.8rem);
	}

	.cbc-faqs-page .cbc-faq-gallery__header h2 {
		font-size: clamp(2.8rem, 13vw, 4.5rem);
	}

	.cbc-faqs-page .cbc-faq-fast {
		padding: 30px 26px;
	}

	.cbc-faqs-page .cbc-faq-index a > span:last-child {
		background-image: url("media/right-arrow-2.png");
		background-position: center;
		background-repeat: no-repeat;
		background-size: contain;
		color: transparent;
		font-size: 0;
		height: 28px;
		width: 28px;
	}

	.cbc-faqs-page .cbc-faq-library__groups {
		gap: 74px;
	}

	.cbc-faqs-page .cbc-faq-group__header {
		align-items: flex-start;
	}

	.cbc-faqs-page .cbc-faq-item button {
		min-height: 70px;
		padding: 0.9rem 1rem 0.9rem 1.2rem;
	}

	.cbc-faqs-page .cbc-faq-item button > span:first-child {
		font-size: 0.76rem;
	}

	.cbc-faqs-page .cbc-faq-item__panel p {
		font-size: 0.84rem;
		padding: 0 1.2rem 1.4rem;
	}

	.cbc-faqs-page .cbc-faq-flow-card {
		align-items: start;
		gap: 18px;
		grid-template-columns: 56px 1fr;
		min-height: 0;
		padding: 24px 20px;
	}

	.cbc-faqs-page .cbc-faq-flow-card > span {
		height: 56px;
		width: 56px;
	}

	.cbc-faqs-page .cbc-faq-gallery__fan {
		height: 390px;
		width: 115%;
	}

	.cbc-faqs-page .cbc-faq-gallery__fan figure {
		--x: calc(var(--distance) * 36%);
		border-width: 5px;
		height: 275px;
		width: 185px;
	}

	.cbc-faqs-page .cbc-faq-gallery__fan figure:nth-child(4) {
		height: 315px;
		width: 215px;
	}

	.cbc-faqs-page .cbc-faq-gallery__actions {
		align-items: center;
		flex-direction: column;
		gap: 1.4rem;
		margin-top: 58px;
		text-align: center;
	}
}

@media (max-width: 680px) {
	.cbc-faqs-page .cbc-faq-script {
		display: block;
		font-size: clamp(0.48rem, 2.4vw, 0.72rem) !important;
		letter-spacing: -0.08em;
		line-height: 0.9;
		max-width: 100%;
		white-space: nowrap;
		width: max-content;
	}
}

@media (prefers-reduced-motion: reduce) {
	.cbc-faqs-page *,
	.cbc-faqs-page *::before,
	.cbc-faqs-page *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}

	.cbc-faqs-page [data-faq-reveal] {
		opacity: 1;
		transform: none;
	}
}

@media (max-width: 900px) {
	.cbc-faqs-page .cbc-faq-hero {
		background-image:
			linear-gradient(90deg, rgba(10, 7, 6, 0.83) 0%, rgba(10, 7, 6, 0.47) 48%, rgba(10, 7, 6, 0.16) 100%),
			url("../booths/media/optimized/charleston-photo-booth-rentals-hero-mobile.webp");
	}
}
