/*
 * DreamFast Studio — Gutenberg block markup adaptation layer.
 * Maps core-block output (wp-block-*) onto the design system so
 * patterns stay fully editable without breaking the visual design.
 */

/* ---------- Buttons ---------- */
.wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}
.wp-block-button__link {
	cursor: pointer;
	border: 0;
	border-radius: 0;
	justify-content: center;
	align-items: center;
	gap: 20px;
	min-height: 56px;
	padding: 0 24px;
	font-size: 15px;
	font-weight: 800;
	transition: transform 0.2s, box-shadow 0.2s, background 0.2s;
	display: inline-flex;
	position: relative;
	overflow: hidden;
	text-decoration: none;
}
.wp-block-button__link:hover {
	transform: translateY(-2px);
}
.wp-block-button__link::before {
	content: "";
	background: rgba(255, 255, 255, 0.18);
	width: 42px;
	height: 120%;
	transition: left 0.45s;
	position: absolute;
	top: -10%;
	left: -55px;
	transform: skew(-22deg);
}
.wp-block-button__link:hover::before {
	left: calc(100% + 20px);
}
.btn-primary .wp-block-button__link {
	color: rgb(16, 17, 15);
	background: var(--lime);
}
.btn-secondary .wp-block-button__link {
	color: #fff;
	background: none;
	border: 1px solid rgb(58, 60, 55);
}
.btn-light .wp-block-button__link {
	color: var(--ink);
	background: #fff;
}
.btn-dark .wp-block-button__link {
	color: #fff;
	background: rgb(16, 18, 14);
}
@media (width <= 1040px) {
	.wp-block-buttons { flex-direction: column; align-items: stretch; }
	.wp-block-buttons .wp-block-button,
	.wp-block-buttons .wp-block-button__link { width: 100%; }
}

/* ---------- Eyebrow as paragraph ---------- */
p.eyebrow {
	margin-top: 0;
}

/* ---------- AI items (block variant) ---------- */
.ai-items p.ai-num {
	margin: 0;
}

/* ---------- Services (block variant) ---------- */
.editorial-services article .svc-num {
	color: var(--lime);
	font-size: 11px;
	margin: 0;
}
.editorial-services article:hover .svc-num {
	color: rgb(56, 66, 38);
}
.editorial-services article .svc-link {
	width: 46px;
	height: 46px;
	color: var(--lime);
	border: 1px solid rgb(60, 64, 56);
	border-radius: 50%;
	place-items: center;
	font-size: 18px;
	display: grid;
	margin: 0;
}
.editorial-services article .svc-link a {
	color: inherit;
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
}

/* ---------- Process (block variant) ---------- */
.process-list-editorial article .step-num {
	color: var(--lime);
	font-size: 12px;
	font-weight: 700;
	margin: 0;
}
.process-list-editorial article .step-arrow {
	color: rgb(190, 195, 185);
	font-style: normal;
	font-size: 22px;
	margin: 0;
}

/* ---------- About facts (block variant) ---------- */
.about-facts .fact {
	padding: 17px 0;
	font-size: 11px;
	margin: 0;
}
.about-facts .fact b {
	color: rgb(122, 129, 118);
	margin-bottom: 7px;
	font-size: 9px;
	display: block;
}

/* ---------- Review list (block variant) ---------- */
.review-list .review-item {
	border-bottom: 1px solid rgba(255, 255, 255, 0.13);
	border-inline-start: 1px solid rgba(255, 255, 255, 0.13);
	flex-direction: column;
	justify-content: space-between;
	min-height: 96px;
	padding: 18px;
	font-size: 16px;
	font-weight: 700;
	display: flex;
	transition: background 0.2s, transform 0.2s;
	position: relative;
	margin: 0;
}
.review-list .review-item::after {
	content: "↗";
	opacity: 0;
	transition: 0.2s;
	position: absolute;
	bottom: 12px;
	left: 14px;
	transform: translate(-4px, 4px);
}
.review-list .review-item:hover {
	background: rgba(255, 255, 255, 0.05);
	transform: translateY(-2px);
}
.review-list .review-item:hover::after {
	opacity: 0.7;
	transform: none;
}
.review-list .review-item i {
	color: var(--lime);
	font-size: 11px;
	font-style: normal;
}
@media (width <= 1040px) {
	.review-list .review-item { min-height: 80px; padding: 14px; font-size: 14px; }
}

/* ---------- FAQ via core/details ---------- */
.faq-list .wp-block-details {
	border-bottom: 1px solid rgb(52, 55, 48);
	transition: background 0.2s, padding 0.2s;
	font-size: inherit;
	margin: 0;
}
.faq-list .wp-block-details:hover {
	background: rgba(92, 102, 122, 0.035);
	padding-inline: 12px;
}
.faq-list .wp-block-details summary {
	cursor: pointer;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	min-height: 78px;
	font-size: 18px;
	font-weight: 700;
	list-style: none;
	display: flex;
}
.faq-list .wp-block-details summary::-webkit-details-marker {
	display: none;
}
.faq-list .wp-block-details summary::after {
	content: "+";
	border: 1px solid rgb(67, 70, 63);
	border-radius: 50%;
	place-items: center;
	width: 30px;
	height: 30px;
	font-weight: 400;
	transition: transform 0.2s;
	display: grid;
	flex: 0 0 auto;
}
.faq-list .wp-block-details[open] summary::after {
	transform: rotate(45deg);
}
.faq-list .wp-block-details p {
	max-width: 780px;
	color: rgb(196, 201, 191);
	margin: -7px 0 25px;
	font-size: 16px;
	line-height: 1.8;
}
@media (width <= 1040px) {
	.faq-list .wp-block-details summary { min-height: 70px; font-size: 15px; }
}

/* ---------- Method tags as paragraph spans ---------- */
.method-tags {
	margin-bottom: 0;
}

/* ---------- Neutralize default block gaps inside design sections ---------- */
.portfolio-hero .wp-block-group,
.portfolio-position .wp-block-group,
.portfolio-services .wp-block-group,
.portfolio-method .wp-block-group,
.portfolio-process .wp-block-group,
.portfolio-contact .wp-block-group {
	margin-block: 0;
}
