/*
Theme Name: PAN-SEO
Theme URI: https://panseo.org
Author: PAN-SEO
Description: ?????? ???? (FSE) ??? SEO-??????? PAN-SEO. ??????????? ??????????? ????? ?? ??????? ????????. ??? ?????? — ? theme.json; ?????? — ? /patterns; ?????/????? — ? /parts.
Requires at least: 6.5
Tested up to: 6.6
Requires PHP: 7.4
Version: 0.2.6
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: panseo
*/

@keyframes pan-draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes pan-fade { from { opacity: 0; } to { opacity: 1; } }

/* ============ HEADER (sticky + blur) ============ */
.pan-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(255, 255, 255, 0.86) !important;
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.pan-header .wp-block-navigation a:hover {
	color: var(--wp--preset--color--ink) !important;
}

/* ???????-????? (??????? ?? ??????? ???????) */
.pan-logo-mark {
	width: 26px;
	height: 26px;
	border-radius: 7px;
	background: var(--wp--preset--color--ink);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.pan-logo-mark::after {
	content: "";
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--wp--preset--color--accent);
}

/* ============ CONTAINER (1180px, ?????. ?????? 28px) ============ */
.pan-container {
	width: 100%;
	max-width: 1180px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 28px;
	padding-right: 28px;
	box-sizing: border-box;
}

/* ============ ???????????? ???? ?????? ============ */
.pan-section {
	padding-top: 88px !important;
	padding-bottom: 88px !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

/* Hero: 78 ?????? / 64 ????? */
.pan-hero {
	padding-top: 78px !important;
	padding-bottom: 64px !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

/* ???????: ??? 20px, ???? 80px ?????? ???????? ?? ?????? */
.pan-section-services {
	padding-bottom: 20px !important;
}

.pan-section-cases {
	margin-top: 80px !important;
}

/* ???????? ????????: ????????? ????? 46/46 */
.pan-section-logos {
	padding-top: 46px !important;
	padding-bottom: 46px !important;
}

.section__label {
	margin-top: 0;
	margin-bottom: 0;
}

/* ???????? ????? ?????????? ?????? */
.pan-services-head .wp-block-heading,
.pan-section-cases h2,
.pan-section-process h2,
.pan-section-reviews h2 {
	font-family: var(--wp--preset--font-family--display) !important;
	font-weight: 600 !important;
	line-height: 1.1 !important;
	letter-spacing: -0.02em !important;
}

/* ============ SERVICES: ??????????? ?????? ============ */
.pan-services-grid.services-grid {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	grid-auto-rows: 1fr !important;
	align-items: stretch !important;
	gap: 20px !important;
	width: 100%;
	margin: 0 !important;
}

.pan-services-grid.services-grid > .wp-block-group {
	margin: 0 !important;
	align-self: stretch !important;
	height: 100% !important;
	min-width: 0;
}

.pan-service-card.service-card {
	height: 100% !important;
	margin: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	text-align: left !important;
	box-sizing: border-box;
	color: var(--wp--preset--color--ink);
	transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.pan-service-card.service-card .wp-block-heading {
	font-family: var(--wp--preset--font-family--display) !important;
	font-weight: 600 !important;
	font-size: 19px !important;
	line-height: 1.2 !important;
	letter-spacing: -0.02em !important;
	margin: 0 0 9px !important;
	color: var(--wp--preset--color--ink) !important;
}

.pan-service-card.service-card .wp-block-heading,
.pan-service-card.service-card p {
	text-align: left !important;
	width: 100%;
}

.pan-service-card__description.service-card__description {
	flex: 1 1 auto;
	margin: 0 !important;
	font-family: var(--wp--preset--font-family--body) !important;
	font-size: 14.5px !important;
	line-height: 1.55 !important;
	color: var(--wp--preset--color--text-soft) !important;
}

.pan-services-head .wp-block-heading {
	font-size: 36px !important;
}

.pan-services-head > p {
	font-family: var(--wp--preset--font-family--body) !important;
	font-size: 15px !important;
	line-height: 1.5 !important;
	margin-top: 0 !important;
	max-width: 300px;
}

/* ?????? ?????? ??????? */
.pan-service-card__icon {
	color: var(--wp--preset--color--accent);
	align-self: flex-start;
	flex-shrink: 0;
	width: 46px;
	height: 46px;
	margin: 0 0 20px !important;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 12px;
	background: var(--wp--preset--color--accent-tint);
}

.pan-service-card__icon svg {
	width: 22px;
	height: 22px;
	display: block;
	flex-shrink: 0;
}

.pan-service-card:hover {
	box-shadow: 0 18px 40px -24px rgba(15, 21, 18, 0.28);
	border-color: #dde3df !important;
}

/* ============ CASES & REVIEWS: ??????????? ?????? ============ */
.pan-section-cases .wp-block-columns,
.pan-section-reviews .wp-block-columns {
	align-items: stretch !important;
}

.pan-section-cases .wp-block-column,
.pan-section-reviews .wp-block-column {
	display: flex !important;
}

.pan-case-card,
.pan-review-card {
	width: 100%;
	height: 100%;
	margin: 0 !important;
	box-sizing: border-box;
}

.pan-case-card {
	transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.pan-case-card:hover {
	box-shadow: 0 18px 40px -24px rgba(15, 21, 18, 0.28);
	border-color: #dde3df !important;
}

/* ============ HERO ============ */
.pan-hero-grid.wp-block-columns {
	display: flex !important;
	align-items: center !important;
}

.pan-hero-grid > .wp-block-column {
	margin-top: 0 !important;
}

/* Eyebrow: ?????? ?????? ????? ??????? */
.pan-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.pan-eyebrow::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--wp--preset--color--accent);
	flex-shrink: 0;
}

/* ???-????? hero */
.pan-hero .pan-hero-lead {
	max-width: 480px;
}

/* Trust-????? ?? ????????????? ????????????? */
.pan-hero-stats {
	display: flex;
	flex-wrap: wrap;
	gap: 36px;
	align-items: flex-start;
}

.pan-hero-stats > .wp-block-group {
	flex: 0 0 auto;
	min-width: 0;
}

.pan-hero-stats > .wp-block-group:not(:first-child) {
	border-left: 1px solid var(--wp--preset--color--line);
	padding-left: 36px;
}

.pan-hero-stats .has-small-font-size {
	white-space: normal;
	word-break: normal;
}

.pan-hero-card {
	box-shadow: 0 30px 60px -28px rgba(15, 21, 18, 0.45);
}

/* ============ CHARTS ============ */
.pan-chart__line,
.pan-line-sm {
	stroke-dasharray: 1;
	stroke-dashoffset: 1;
	animation: pan-draw 1.9s cubic-bezier(0.22, 0.61, 0.36, 1) 0.15s forwards;
}

.pan-chart__area,
.pan-area {
	opacity: 0;
	animation: pan-fade 1s ease-out 0.7s forwards;
}

/* ============ PROCESS: ????? ????????? ?? ??? ?????? ============ */
.pan-process-grid.process__timeline-line {
	position: relative;
	width: 100%;
	padding-top: 20px;
	border-top: none;
}

.process__timeline-line::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 2px;
	background: #e2e6e3;
}

.process__timeline-line::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 25%;
	height: 2px;
	background: var(--wp--preset--color--ink);
	z-index: 1;
}

.pan-process-step__description {
	color: var(--wp--preset--color--text-soft) !important;
}

/* ============ CTA ============ */
.pan-cta-title {
	max-width: 560px;
	text-wrap: balance;
}

.pan-cta-glow {
	position: absolute;
	right: -80px;
	top: -80px;
	width: 320px;
	height: 320px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(31, 138, 91, 0.32), transparent 70%);
	pointer-events: none;
}

/* ============ FOOTER ============ */
.pan-footer .wp-block-column p.has-small-font-size {
	font-size: 14.5px;
}

.pan-footer a.pan-footer-link {
	color: var(--wp--preset--color--text-soft);
	text-decoration: none;
}

.pan-footer a.pan-footer-link:hover {
	color: var(--wp--preset--color--ink);
}

.pan-footer a.pan-footer-cta {
	color: var(--wp--preset--color--accent);
	font-weight: 600;
	text-decoration: none;
}

.pan-footer a.pan-footer-cta:hover {
	color: var(--wp--preset--color--accent-hover);
}

.pan-link-arrow:hover {
	text-decoration: underline;
}

/* ============ STATS BAND ============ */
.pan-stat-value {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 600;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--accent);
	font-size: 34px;
}

.pan-metric-item.metric-item {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

/* ============ RESPONSIVE: ??????? (<= 960px) ============ */
@media (max-width: 960px) {
	.pan-services-grid.services-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.pan-section-cases .wp-block-columns,
	.pan-section-reviews .wp-block-columns {
		flex-wrap: wrap !important;
	}

	.pan-section-cases .wp-block-column,
	.pan-section-reviews .wp-block-column {
		flex-basis: calc(50% - 10px) !important;
	}
}

/* ============ RESPONSIVE: ????????? (<= 768px) ============ */
@media (max-width: 768px) {
	.pan-container {
		padding-left: 18px;
		padding-right: 18px;
	}

	/* 1. ?????: ??????? CTA (????????? ??????-????) */
	.header__cta {
		display: none !important;
	}

	/* 2. ???????????? ???????????? ???? */
	.pan-hero,
	.pan-section {
		padding-top: 48px !important;
		padding-bottom: 48px !important;
	}

	.pan-section-services {
		padding-bottom: 24px !important;
	}

	.pan-section-cases {
		margin-top: 0 !important;
	}

	.pan-section-logos {
		padding-top: 36px !important;
		padding-bottom: 36px !important;
	}

	.pan-stats-band {
		padding-top: 32px !important;
		padding-bottom: 32px !important;
	}

	/* 3. Hero: ???? ???????, ?????? ??? ??????? */
	.pan-hero-grid.wp-block-columns {
		flex-wrap: wrap !important;
	}

	.pan-hero-grid > .wp-block-column {
		flex-basis: 100% !important;
	}

	.pan-hero-buttons.wp-block-buttons {
		display: flex;
		flex-direction: column;
		gap: 14px;
		width: 100%;
	}

	.pan-hero-buttons .wp-block-button {
		width: 100%;
		margin: 0;
	}

	.pan-hero-buttons .wp-block-button__link {
		display: block;
		width: 100%;
		text-align: center;
		box-sizing: border-box;
	}

	.pan-hero-stats {
		flex-direction: row;
		flex-wrap: wrap;
		gap: 20px 28px;
	}

	.pan-hero-stats > .wp-block-group:not(:first-child) {
		border-left: none;
		padding-left: 0;
	}

	/* 4. Stats band: 2 ??????? */
	.pan-stat-value {
		font-size: clamp(28px, 7vw, 34px) !important;
	}

	.pan-stats-band .wp-block-columns {
		flex-wrap: wrap !important;
	}

	.pan-stats-band .wp-block-column {
		flex-basis: calc(50% - 12px) !important;
		min-width: 140px;
	}

	/* 5. ??????? / ????? / ???????: ???? ??????? */
	.pan-services-grid.services-grid {
		grid-template-columns: 1fr !important;
	}

	.pan-section-cases .wp-block-column,
	.pan-section-reviews .wp-block-column {
		flex-basis: 100% !important;
	}

	.pan-service-card.service-card {
		padding: 22px !important;
	}

	.pan-case-card,
	.pan-review-card {
		padding: 22px !important;
	}

	/* 6. ?????: ????-?????? ??????? */
	.pan-case-card {
		overflow: visible !important;
	}

	.pan-case-chart {
		display: block;
		width: 100%;
		height: 56px;
		overflow: visible;
	}

	/* 7. ??????: ????? ????????, ??????? ????? */
	.process__timeline-line::before,
	.process__timeline-line::after {
		display: none;
	}

	.process__timeline-line {
		padding-top: 0 !important;
	}

	.process-steps.pan-process-columns {
		display: flex !important;
		flex-direction: column;
		gap: 28px;
	}

	.process-steps.pan-process-columns .wp-block-column {
		padding-right: 0 !important;
		border-top: 2px solid var(--wp--preset--color--line);
		padding-top: 18px;
	}

	/* 8. ????????? ?????? ???????? */
	.pan-services-head,
	.pan-cases-head,
	.pan-cta-inner {
		flex-direction: column !important;
		align-items: flex-start !important;
	}

	.pan-services-head > p {
		max-width: none;
	}

	/* 9. CTA: ?????? ?? ??? ?????? + ?????? ?????? */
	.pan-cta-actions {
		width: 100%;
	}

	.pan-cta-actions .wp-block-buttons {
		width: 100%;
	}

	.pan-cta-actions .wp-block-button {
		width: 100%;
		margin: 0;
	}

	.pan-cta-actions .wp-block-button__link {
		display: block;
		width: 100%;
		text-align: center;
		box-sizing: border-box;
	}

	.pan-cta-title {
		font-size: 30px !important;
	}

	.pan-section-cta .has-ink-background-color {
		padding: 40px 24px !important;
	}

	/* 10. Footer: 2 ??????? */
	.pan-footer-grid.wp-block-columns {
		flex-wrap: wrap !important;
	}

	.pan-footer-grid .wp-block-column {
		flex-basis: calc(50% - 20px) !important;
		min-width: 0;
	}

	.pan-footer-grid .wp-block-column:first-child {
		flex-basis: 100% !important;
	}
}

/* ============ RESPONSIVE: ????? ????????? (<= 480px) ============ */
@media (max-width: 480px) {
	.pan-stats-band .wp-block-column,
	.pan-footer-grid .wp-block-column {
		flex-basis: 100% !important;
	}
}
