/**
 * ComunicUM 2026 - Main Stylesheet
 * Modern, responsive styles for Gutenberg blocks
 */

:root 
{
	--color-primary: #5B4FFF;
	--color-secondary: #4A3FE8;
	--color-accent: #7C73FF;
	--color-background: #FFFFFF;
	--color-surface: #F8F9FA;
	--color-text: #1A1A1A;
	--color-text-secondary: #6B7280;
	
	--gradient-primary: linear-gradient(135deg, #5B4FFF 0%, #9D4FFF 100%);
	--gradient-subtle: linear-gradient(180deg, #F8F9FA 0%, #FFFFFF 100%);
	--gradient-hero: linear-gradient(135deg, rgba(91, 79, 255, 0.05) 0%, rgba(157, 79, 255, 0.05) 100%);
	
	--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
	--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
	--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
	--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
	
	--radius-sm: 0.5rem;
	--radius-md: 1rem;
	--radius-lg: 1.5rem;
	--radius-full: 9999px;
	
	--transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
	--transition-base: 300ms cubic-bezier(0.4, 0, 0.2, 1);
	--transition-slow: 500ms cubic-bezier(0.4, 0, 0.2, 1);
	
	--header-scroll-gap: 1rem;
	--header-scroll-offset: 5.5rem;
	
	--spacing-section: clamp(3rem, 8vw, 6rem);
	--section-gutter: clamp(1.75rem, 6vw, 3.25rem);
}

* 
{
	box-sizing: border-box;
}

html 
{
	scroll-behavior: smooth;
	scroll-padding-top: var(--header-scroll-offset);
	overflow-x: clip;
}

body 
{
	margin: 0;
	padding: 0;
	max-width: 100%;
	overflow-x: clip;
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	font-size: 16px;
	line-height: 1.6;
	color: var(--color-text);
	background-color: var(--color-background);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.site-main [id].wp-block-group,
.site-main > div[id],
.site-main > section[id]
{
scroll-margin-top: var(--header-scroll-offset);
}

.site-main,
.site-main > *
{
max-width: 100%;
}

img 
{
	max-width: 100%;
	height: auto;
	display: block;
}

a 
{
	color: var(--color-primary);
	text-decoration: none;
	transition: color var(--transition-base);
}

a:hover 
{
	color: var(--color-secondary);
}

.wp-block-button__link 
{
	background-color: var(--color-primary);
	color: var(--color-background);
	padding: 0.875rem 1.75rem;
	border-radius: var(--radius-md);
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	transition: all var(--transition-base);
	border: none;
	cursor: pointer;
}

.wp-block-button__link:hover 
{
	background-color: var(--color-secondary);
	transform: translateY(-2px);
	box-shadow: var(--shadow-lg);
	color: var(--color-background);
}

.wp-block-button.is-style-outline .wp-block-button__link 
{
	background-color: transparent;
	color: var(--color-primary);
	border: 2px solid var(--color-primary);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover 
{
	background-color: var(--color-primary);
	color: var(--color-background);
}

/* Unified behavior for Gutenberg buttons wrapped with .btn classes */
.wp-block-button.btn
{
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0;
}

.wp-block-button.btn .wp-block-button__link
{
	box-shadow: none !important;
	outline: none;
	border-width: 1px;
	border-style: solid;
}

.wp-block-button.btn.btn-primary .wp-block-button__link
{
	background: linear-gradient(135deg, #5B4FFF 0%, #7C3AED 100%);
	border-color: transparent;
	color: #FFFFFF !important;
}

.wp-block-button.btn.btn-primary .wp-block-button__link:hover
{
	background: linear-gradient(135deg, #4A3FE8 0%, #6D28D9 100%);
	color: #FFFFFF !important;
}

.wp-block-button.btn.btn-secondary .wp-block-button__link
{
	background: #FFFFFF;
	border-color: rgba(0, 0, 0, 0.14);
	color: var(--color-text) !important;
}

.wp-block-button.btn.btn-secondary .wp-block-button__link:hover
{
	background: #FFFFFF;
	border-color: var(--color-primary);
	color: var(--color-primary) !important;
}

.wp-block-group
{
	padding-top: var(--spacing-section);
	padding-bottom: var(--spacing-section);
}

.comunicum-hero-section,
.comunicum-services-v2,
.comunicum-stats-v2,
.comunicum-portfolio-pro,
.comunicum-portfolio-pro.portfolio-archive,
.comunicum-technology-stack,
.comunicum-client-reviews,
.comunicum-client-logos,
.comunicum-cta-section,
.comunicum-cta-section .wp-block-group,
.comunicum-contact-form,
.comunicum-contact-form .wp-block-group
{
	padding-top: 0;
	padding-bottom: 0;
}

.wp-block-columns 
{
	gap: 2rem;
}

.container 
{
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 var(--section-gutter);
}

.section-padding 
{
	padding: var(--spacing-section) 0;
}

.text-gradient 
{
	background: var(--gradient-primary);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

.card 
{
	background: var(--color-background);
	border-radius: var(--radius-lg);
	padding: 2rem;
	box-shadow: var(--shadow-md);
	transition: all var(--transition-base);
}

.card:hover 
{
	transform: translateY(-4px);
	box-shadow: var(--shadow-xl);
}

.icon-wrapper 
{
	width: 3rem;
	height: 3rem;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--radius-md);
	background: var(--gradient-primary);
	color: white;
	font-size: 1.5rem;
}

.badge 
{
	display: inline-block;
	padding: 0.375rem 0.875rem;
	border-radius: var(--radius-full);
	font-size: 0.875rem;
	font-weight: 600;
	background: var(--color-surface);
	color: var(--color-text);
}

.badge-primary 
{
	background: var(--gradient-primary);
	color: white;
}

@media (max-width: 768px) 
{
	:root 
	{
		--spacing-section: 3rem;
	}
	
	.wp-block-columns 
	{
		flex-direction: column;
	}
	
	.container 
	{
		padding: 0 clamp(1.15rem, 4.5vw, 1.5rem);
	}
}

.animate-fade-in 
{
	animation: fadeIn var(--transition-slow) ease-in;
}

@keyframes fadeIn 
{
	from 
	{
		opacity: 0;
		transform: translateY(20px);
	}
	to 
	{
		opacity: 1;
		transform: translateY(0);
	}
}

.animate-slide-up 
{
	animation: slideUp var(--transition-slow) ease-out;
}

@keyframes slideUp 
{
	from 
	{
		opacity: 0;
		transform: translateY(40px);
	}
	to 
	{
		opacity: 1;
		transform: translateY(0);
	}
}

.has-primary-background-color 
{
	background-color: var(--color-primary);
}

.has-primary-color 
{
	color: var(--color-primary);
}

.has-surface-background-color 
{
	background-color: var(--color-surface);
}

.overflow-hidden 
{
	overflow: hidden;
}

.relative 
{
	position: relative;
}

.z-10 
{
	z-index: 10;
}

/* Footer */
.site-footer
{
--footer-bg: #12101f;
--footer-bg-accent: #1a1830;
--footer-text: rgba(255, 255, 255, 0.72);
--footer-text-muted: rgba(255, 255, 255, 0.5);
--footer-heading: #ffffff;
--footer-border: rgba(255, 255, 255, 0.08);
--footer-icon-bg: rgba(91, 79, 255, 0.18);
--footer-icon-color: #b8b0ff;
background: linear-gradient(180deg, var(--footer-bg-accent) 0%, var(--footer-bg) 100%);
color: var(--footer-text);
}

.site-footer__main
{
padding: clamp(3rem, 6vw, 4.5rem) 0 clamp(2.5rem, 5vw, 3.5rem);
}

.site-footer__inner
{
display: grid;
grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));
gap: clamp(2rem, 4vw, 3rem);
align-items: start;
}

.site-footer__brand
{
max-width: 22rem;
}

.site-footer__eyebrow
{
display: inline-block;
font-size: 0.6875rem;
font-weight: 600;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--footer-icon-color);
margin-bottom: 0.75rem;
}

.site-footer__logo
{
font-size: 1.625rem;
font-weight: 800;
color: var(--footer-heading);
text-decoration: none;
display: inline-block;
margin-bottom: 0.875rem;
transition: color 0.2s ease;
}

.site-footer__logo:hover
{
color: #c4bfff;
}

.site-footer__tagline
{
font-size: 0.9375rem;
color: var(--footer-text);
line-height: 1.65;
margin: 0 0 1.5rem;
}

.site-footer__social
{
display: flex;
flex-wrap: wrap;
gap: 0.75rem;
}

.site-footer__social a,
.site-footer__social-placeholder
{
width: 2.375rem;
height: 2.375rem;
border-radius: 50%;
background: rgba(255, 255, 255, 0.06);
color: rgba(255, 255, 255, 0.88);
border: 1px solid var(--footer-border);
display: flex;
align-items: center;
justify-content: center;
transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.site-footer__social-placeholder
{
opacity: 0.45;
cursor: default;
}

.site-footer__social a:hover
{
background: var(--color-primary);
border-color: transparent;
color: #ffffff;
transform: translateY(-2px);
}

.site-footer__heading
{
font-size: 0.75rem;
font-weight: 700;
letter-spacing: 0.1em;
text-transform: uppercase;
margin: 0 0 1.25rem;
color: var(--footer-text-muted);
}

.site-footer__heading::after
{
content: '';
display: block;
width: 1.75rem;
height: 2px;
margin-top: 0.625rem;
border-radius: 999px;
background: var(--gradient-primary);
}

.site-footer__menu,
.site-footer__contact
{
list-style: none;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
gap: 0.625rem;
}

.site-footer__menu li,
.site-footer__contact li
{
margin: 0;
padding: 0;
list-style: none;
}

.site-footer__menu a,
.site-footer__contact a
{
display: inline-flex;
align-items: center;
gap: 0.5rem;
color: var(--footer-text);
text-decoration: none;
font-size: 0.9375rem;
line-height: 1.45;
padding: 0;
background: none;
border: none;
border-radius: 0;
box-shadow: none;
transition: color 0.2s ease, transform 0.2s ease;
}

.site-footer__menu a::before
{
content: '';
width: 0;
height: 1px;
background: currentColor;
transition: width 0.2s ease;
flex-shrink: 0;
}

.site-footer__menu a:hover,
.site-footer__contact a:hover
{
color: #ffffff;
}

.site-footer__menu a:hover::before
{
width: 0.75rem;
}

.site-footer .mega-menu-wrap,
.site-footer #mega-menu-wrap-primary
{
display: none !important;
}

.site-footer__contact li
{
display: flex;
align-items: flex-start;
gap: 0.75rem;
font-size: 0.9375rem;
color: var(--footer-text);
line-height: 1.5;
}

.site-footer__contact-icon
{
flex-shrink: 0;
width: 2rem;
height: 2rem;
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 0.5rem;
background: var(--footer-icon-bg);
color: var(--footer-icon-color);
}

.site-footer__bar
{
border-top: 1px solid var(--footer-border);
background: rgba(0, 0, 0, 0.22);
}

.site-footer__bar-inner
{
display: flex;
justify-content: space-between;
align-items: center;
gap: 1.25rem;
padding: 1.125rem 0;
flex-wrap: wrap;
}

.site-footer__copy
{
margin: 0;
font-size: 0.875rem;
line-height: 1.5;
color: var(--footer-text-muted);
min-width: 0;
flex: 1 1 16rem;
}

.site-footer__legal
{
display: flex;
align-items: center;
justify-content: flex-end;
flex-wrap: wrap;
gap: 0.5rem 1.25rem;
min-width: 0;
flex: 1 1 20rem;
}

.site-footer__legal a
{
color: rgba(255, 255, 255, 0.82);
text-decoration: none;
font-size: 0.875rem;
line-height: 1.45;
white-space: normal;
transition: color 0.2s ease;
}

.site-footer__legal a:hover
{
color: #ffffff;
}

@media (max-width: 900px)
{
.site-footer__inner
{
grid-template-columns: repeat(2, minmax(0, 1fr));
}

.site-footer__brand
{
grid-column: 1 / -1;
max-width: none;
}
}

@media (max-width: 1024px)
{
.site-footer__bar-inner
{
flex-direction: column;
align-items: center;
text-align: center;
gap: 1rem;
padding: 1.25rem 0 1.5rem;
}

.site-footer__copy
{
flex: 0 1 auto;
max-width: 100%;
}

.site-footer__legal
{
width: 100%;
flex: 0 1 auto;
justify-content: center;
gap: 0.625rem 1.25rem;
}
}

@media (max-width: 640px)
{
.site-footer__inner
{
grid-template-columns: 1fr;
gap: 2rem;
}
}

@media (max-width: 520px)
{
.site-footer__legal
{
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0.75rem 1rem;
justify-items: center;
}

.site-footer__legal a
{
font-size: 0.8125rem;
text-align: center;
}
}

/* Native Gutenberg landing sections */
.comunicum-hero-section
{
padding-top: clamp(3rem, 6vw, 5rem);
padding-bottom: clamp(2.5rem, 5vw, 4rem);
background: var(--gradient-hero);
position: relative;
overflow: hidden;
isolation: isolate;
}

.comunicum-hero-section::before,
.comunicum-hero-section::after
{
content: '';
position: absolute;
border-radius: 50%;
pointer-events: none;
z-index: 0;
filter: blur(72px);
}

.comunicum-hero-section::before
{
width: min(480px, 55vw);
height: min(480px, 55vw);
top: -140px;
right: 8%;
background: rgba(91, 79, 255, 0.2);
animation: hero-orb-drift 18s ease-in-out infinite;
}

.comunicum-hero-section::after
{
width: min(360px, 45vw);
height: min(360px, 45vw);
bottom: -100px;
left: 4%;
background: rgba(157, 79, 255, 0.16);
animation: hero-orb-drift 14s ease-in-out infinite reverse;
}

.comunicum-hero-section > .container,
.comunicum-hero-section > .wp-block-columns,
.comunicum-hero-section .wp-block-columns.container
{
position: relative;
z-index: 1;
}

.comunicum-hero-section .hero-eyebrow,
.comunicum-hero-section .hero-headline,
.comunicum-hero-section .hero-description,
.comunicum-hero-section .hero-buttons,
.comunicum-hero-section .hero-visual
{
opacity: 0;
will-change: transform, opacity;
}

.comunicum-hero-section .hero-buttons .wp-block-button
{
opacity: 0;
}

.comunicum-hero-section.hero-animate-in .hero-eyebrow
{
animation: hero-fade-up 1.2s cubic-bezier(0.22, 1, 0.36, 1) 0.2s forwards;
}

.comunicum-hero-section.hero-animate-in .hero-headline
{
animation: hero-fade-up 1.3s cubic-bezier(0.22, 1, 0.36, 1) 0.45s forwards;
}

.comunicum-hero-section.hero-animate-in .hero-description
{
animation: hero-fade-up 1.25s cubic-bezier(0.22, 1, 0.36, 1) 0.7s forwards;
}

.comunicum-hero-section.hero-animate-in .hero-buttons
{
animation: hero-fade-up 1.15s cubic-bezier(0.22, 1, 0.36, 1) 0.95s forwards;
}

.comunicum-hero-section.hero-animate-in .hero-buttons .wp-block-button:nth-child(1)
{
animation: hero-btn-pop 1s cubic-bezier(0.22, 1, 0.36, 1) 1.1s both;
}

.comunicum-hero-section.hero-animate-in .hero-buttons .wp-block-button:nth-child(2)
{
animation: hero-btn-pop 1s cubic-bezier(0.22, 1, 0.36, 1) 1.28s both;
}

.comunicum-hero-section.hero-animate-in .hero-visual
{
animation: hero-visual-in 1.4s cubic-bezier(0.22, 1, 0.36, 1) 0.5s forwards;
}

.comunicum-hero-section.hero-animate-in .device-mockup
{
animation: hero-mockup-float 7s ease-in-out 2.6s infinite;
}

.comunicum-hero-section .hero-eyebrow
{
font-size: 0.8125rem;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--color-primary);
margin-bottom: 0.85rem;
}

.comunicum-hero-section .hero-headline
{
font-size: clamp(2rem, 5vw, 3.35rem);
line-height: 1.12;
margin-bottom: 1.1rem;
}

.comunicum-hero-section .hero-headline .text-gradient
{
background: linear-gradient(120deg, #5B4FFF 0%, #9D4FFF 35%, #7C3AED 55%, #5B4FFF 100%);
background-size: 220% auto;
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
animation: hero-gradient-shine 7s ease-in-out infinite;
}

.comunicum-hero-section .hero-description
{
max-width: 58ch;
color: var(--color-text-secondary);
margin-bottom: 1.5rem;
}

.comunicum-hero-section .device-mockup
{
margin: 0;
border-radius: 1.25rem;
overflow: hidden;
box-shadow:
	0 30px 70px rgba(91, 79, 255, 0.22),
	0 0 0 1px rgba(91, 79, 255, 0.1);
border: 1px solid rgba(91, 79, 255, 0.12);
position: relative;
}

.comunicum-hero-section .device-mockup::after
{
content: '';
position: absolute;
inset: 0;
background: linear-gradient(135deg, rgba(255, 255, 255, 0.22) 0%, transparent 45%, transparent 100%);
pointer-events: none;
opacity: 0;
transition: opacity 1s ease 2.2s;
}

.comunicum-hero-section.hero-animate-in .device-mockup::after
{
opacity: 1;
}

.comunicum-hero-section .device-mockup img
{
display: block;
width: 100%;
height: auto;
transform-origin: center center;
}

@keyframes hero-fade-up
{
from
{
opacity: 0;
transform: translateY(40px);
}
to
{
opacity: 1;
transform: translateY(0);
}
}

@keyframes hero-visual-in
{
from
{
opacity: 0;
transform: translateX(56px) scale(0.92) rotate(2deg);
}
to
{
opacity: 1;
transform: translateX(0) scale(1) rotate(0deg);
}
}

@keyframes hero-btn-pop
{
from
{
opacity: 0;
transform: translateY(20px) scale(0.9);
}
to
{
opacity: 1;
transform: translateY(0) scale(1);
}
}

@keyframes hero-mockup-float
{
0%, 100%
{
transform: translateY(0);
}
50%
{
transform: translateY(-14px);
}
}

@keyframes hero-orb-drift
{
0%, 100%
{
transform: translate(0, 0) scale(1);
}
33%
{
transform: translate(24px, -18px) scale(1.06);
}
66%
{
transform: translate(-16px, 12px) scale(0.96);
}
}

@keyframes hero-gradient-shine
{
0%, 100%
{
background-position: 0% center;
}
50%
{
background-position: 100% center;
}
}

.hero-buttons .wp-block-button
{
background: transparent;
border: 0 !important;
box-shadow: none !important;
padding: 0;
}

.hero-buttons .wp-block-button .wp-block-button__link
{
border-radius: 0.8rem;
padding: 0.82rem 1.35rem;
font-weight: 600;
box-shadow: none !important;
outline: none;
}

.hero-buttons .btn-primary .wp-block-button__link
{
background: linear-gradient(135deg, #5B4FFF 0%, #7C3AED 100%);
color: #fff;
border: none;
transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.35s ease;
}

.hero-buttons .btn-primary .wp-block-button__link:hover
{
transform: translateY(-3px);
box-shadow: 0 14px 28px rgba(91, 79, 255, 0.38);
}

.hero-buttons .btn-secondary .wp-block-button__link
{
background: #fff;
color: var(--color-text);
border: 1px solid rgba(0, 0, 0, 0.12);
transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.3s ease, color 0.3s ease, box-shadow 0.35s ease;
}

.hero-buttons .btn-secondary .wp-block-button__link:hover
{
border-color: var(--color-primary);
color: var(--color-primary);
transform: translateY(-2px);
box-shadow: 0 10px 22px rgba(91, 79, 255, 0.12);
}

.comunicum-services-v2
{
padding: clamp(3.5rem, 7vw, 5.5rem) 0;
background:
	linear-gradient(180deg, #ffffff 0%, #f7f5ff 38%, #f2f8ff 72%, #ffffff 100%);
position: relative;
overflow: hidden;
isolation: isolate;
}

.comunicum-services-v2::before,
.comunicum-services-v2::after
{
content: '';
position: absolute;
border-radius: 50%;
pointer-events: none;
filter: blur(72px);
z-index: 0;
}

.comunicum-services-v2::before
{
top: -140px;
left: -100px;
width: min(460px, 52vw);
height: min(460px, 52vw);
background: rgba(91, 79, 255, 0.16);
}

.comunicum-services-v2::after
{
bottom: -120px;
right: -80px;
width: min(380px, 46vw);
height: min(380px, 46vw);
background: rgba(14, 165, 233, 0.12);
}

.comunicum-services-v2 .services-v2-inner
{
position: relative;
z-index: 1;
}

.comunicum-services-v2 .services-v2-header
{
max-width: 760px;
margin: 0 auto 3rem;
text-align: center;
}

.comunicum-services-v2 .services-v2-eyebrow
{
display: inline-block;
font-size: 0.8rem;
font-weight: 700;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--color-primary);
margin: 0 0 0.85rem;
padding: 0.4rem 1rem;
border-radius: 999px;
background: linear-gradient(135deg, rgba(91, 79, 255, 0.14) 0%, rgba(14, 165, 233, 0.1) 100%);
border: 1px solid rgba(91, 79, 255, 0.18);
box-shadow: 0 8px 24px rgba(91, 79, 255, 0.1);
}

.comunicum-services-v2 .services-v2-title
{
font-size: clamp(1.85rem, 3.6vw, 2.55rem);
font-weight: 700;
line-height: 1.18;
margin: 0 0 1rem;
color: var(--color-text);
}

.comunicum-services-v2 .services-v2-desc
{
font-size: 1.06rem;
line-height: 1.7;
color: var(--color-text-secondary);
margin: 0 auto;
max-width: 60ch;
}

.comunicum-services-v2 .services-v2-grid
{
display: grid !important;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 1.35rem;
margin-bottom: 1.35rem;
flex-wrap: unset !important;
}

.comunicum-services-v2 .services-v2-grid > .wp-block-column
{
flex-basis: auto !important;
width: auto !important;
min-width: 0;
}

.comunicum-services-v2 .services-v2-grid:last-child
{
margin-bottom: 0;
}

.comunicum-services-v2 .services-v2-card
{
--service-accent: #5B4FFF;
--service-accent-soft: rgba(91, 79, 255, 0.12);
--service-accent-glow: rgba(91, 79, 255, 0.22);
background: linear-gradient(165deg, #ffffff 0%, color-mix(in srgb, var(--service-accent) 4%, #ffffff) 100%);
border: 1px solid color-mix(in srgb, var(--service-accent) 18%, #e8e8f4);
border-radius: 1.15rem;
padding: 1.65rem 1.45rem 1.5rem;
box-shadow:
	0 14px 34px rgba(15, 23, 42, 0.06),
	0 0 0 1px rgba(255, 255, 255, 0.7) inset;
transition:
	transform 0.3s cubic-bezier(0.22, 1, 0.36, 1),
	box-shadow 0.3s ease,
	border-color 0.3s ease;
position: relative;
overflow: hidden;
height: 100%;
display: flex;
flex-direction: column;
}

.comunicum-services-v2 .services-v2-card::before
{
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 4px;
background: linear-gradient(90deg, var(--service-accent) 0%, color-mix(in srgb, var(--service-accent) 35%, transparent) 100%);
opacity: 0.95;
}

.comunicum-services-v2 .services-v2-card::after
{
content: '';
position: absolute;
inset: auto -30% -55% auto;
width: 180px;
height: 180px;
border-radius: 50%;
background: radial-gradient(circle, var(--service-accent-soft) 0%, transparent 70%);
opacity: 0.85;
transition: transform 0.35s ease, opacity 0.35s ease;
pointer-events: none;
}

.comunicum-services-v2 .services-v2-card:hover
{
transform: translateY(-8px);
box-shadow:
	0 24px 50px var(--service-accent-glow),
	0 0 0 1px color-mix(in srgb, var(--service-accent) 24%, transparent) inset;
border-color: color-mix(in srgb, var(--service-accent) 34%, transparent);
}

.comunicum-services-v2 .services-v2-card:hover::after
{
transform: scale(1.15);
opacity: 1;
}

.comunicum-services-v2 .services-v2-card--systems
{
--service-accent: #5B4FFF;
--service-accent-soft: rgba(91, 79, 255, 0.16);
--service-accent-glow: rgba(91, 79, 255, 0.24);
}

.comunicum-services-v2 .services-v2-card--web
{
--service-accent: #0EA5E9;
--service-accent-soft: rgba(14, 165, 233, 0.16);
--service-accent-glow: rgba(14, 165, 233, 0.22);
}

.comunicum-services-v2 .services-v2-card--mobile
{
--service-accent: #8B5CF6;
--service-accent-soft: rgba(139, 92, 246, 0.16);
--service-accent-glow: rgba(139, 92, 246, 0.22);
}

.comunicum-services-v2 .services-v2-card--consulting
{
--service-accent: #F59E0B;
--service-accent-soft: rgba(245, 158, 11, 0.16);
--service-accent-glow: rgba(245, 158, 11, 0.2);
}

.comunicum-services-v2 .services-v2-card--api
{
--service-accent: #10B981;
--service-accent-soft: rgba(16, 185, 129, 0.16);
--service-accent-glow: rgba(16, 185, 129, 0.2);
}

.comunicum-services-v2 .services-v2-card--automation
{
--service-accent: #EC4899;
--service-accent-soft: rgba(236, 72, 153, 0.16);
--service-accent-glow: rgba(236, 72, 153, 0.22);
}

.comunicum-services-v2 .services-v2-icon
{
position: relative;
width: 3.65rem;
height: 3.65rem;
border-radius: 1rem;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 1.2rem;
background: linear-gradient(145deg, var(--service-accent) 0%, color-mix(in srgb, var(--service-accent) 72%, #1e1b4b) 100%);
box-shadow:
	0 14px 28px var(--service-accent-glow),
	0 0 0 1px rgba(255, 255, 255, 0.22) inset;
flex-shrink: 0;
transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.3s ease;
}

.comunicum-services-v2 .services-v2-card:hover .services-v2-icon
{
transform: translateY(-3px) scale(1.04);
box-shadow:
	0 18px 34px var(--service-accent-glow),
	0 0 0 1px rgba(255, 255, 255, 0.3) inset;
}

.comunicum-services-v2 .services-v2-icon__glyph
{
display: block;
width: 1.55rem;
height: 1.55rem;
background-color: #ffffff;
-webkit-mask-repeat: no-repeat;
mask-repeat: no-repeat;
-webkit-mask-position: center;
mask-position: center;
-webkit-mask-size: contain;
mask-size: contain;
filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.12));
}

.comunicum-services-v2 .services-v2-icon--systems
{
--service-accent: #5B4FFF;
--service-accent-glow: rgba(91, 79, 255, 0.35);
}

.comunicum-services-v2 .services-v2-icon--web
{
--service-accent: #0EA5E9;
--service-accent-glow: rgba(14, 165, 233, 0.32);
}

.comunicum-services-v2 .services-v2-icon--mobile
{
--service-accent: #8B5CF6;
--service-accent-glow: rgba(139, 92, 246, 0.32);
}

.comunicum-services-v2 .services-v2-icon--consulting
{
--service-accent: #F59E0B;
--service-accent-glow: rgba(245, 158, 11, 0.3);
}

.comunicum-services-v2 .services-v2-icon--api
{
--service-accent: #10B981;
--service-accent-glow: rgba(16, 185, 129, 0.3);
}

.comunicum-services-v2 .services-v2-icon--automation
{
--service-accent: #EC4899;
--service-accent-glow: rgba(236, 72, 153, 0.32);
}

.comunicum-services-v2 .services-v2-icon--systems .services-v2-icon__glyph
{
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='3' width='20' height='14' rx='2'/%3E%3Cpath d='M8 21h8M12 17v4'/%3E%3C/svg%3E");
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='3' width='20' height='14' rx='2'/%3E%3Cpath d='M8 21h8M12 17v4'/%3E%3C/svg%3E");
}

.comunicum-services-v2 .services-v2-icon--web .services-v2-icon__glyph
{
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z'/%3E%3C/svg%3E");
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z'/%3E%3C/svg%3E");
}

.comunicum-services-v2 .services-v2-icon--mobile .services-v2-icon__glyph
{
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='7' y='2' width='10' height='20' rx='2'/%3E%3Cpath d='M11 18h2'/%3E%3C/svg%3E");
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='7' y='2' width='10' height='20' rx='2'/%3E%3Cpath d='M11 18h2'/%3E%3C/svg%3E");
}

.comunicum-services-v2 .services-v2-icon--consulting .services-v2-icon__glyph
{
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20V10'/%3E%3Cpath d='M18 20V4'/%3E%3Cpath d='M6 20v-4'/%3E%3C/svg%3E");
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20V10'/%3E%3Cpath d='M18 20V4'/%3E%3Cpath d='M6 20v-4'/%3E%3C/svg%3E");
}

.comunicum-services-v2 .services-v2-icon--api .services-v2-icon__glyph
{
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'/%3E%3C/svg%3E");
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'/%3E%3C/svg%3E");
}

.comunicum-services-v2 .services-v2-icon--automation .services-v2-icon__glyph
{
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 8V4H8'/%3E%3Crect x='4' y='8' width='16' height='12' rx='2'/%3E%3Cpath d='M2 14h2M20 14h2M15 13v2M9 13v2'/%3E%3C/svg%3E");
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 8V4H8'/%3E%3Crect x='4' y='8' width='16' height='12' rx='2'/%3E%3Cpath d='M2 14h2M20 14h2M15 13v2M9 13v2'/%3E%3C/svg%3E");
}

.comunicum-services-v2 .services-v2-card h3
{
display: block;
font-size: 1.12rem;
line-height: 1.35;
margin: 0 0 0.7rem;
font-weight: 700;
color: var(--color-text);
position: relative;
z-index: 1;
}

.comunicum-services-v2 .services-v2-card h3::before
{
content: none;
display: none;
}

.comunicum-services-v2 .services-v2-card p
{
color: var(--color-text-secondary);
margin-bottom: 0;
font-size: 0.96rem;
line-height: 1.6;
position: relative;
z-index: 1;
}

.comunicum-services-v2:not(.services-animate-in) .services-v2-header
{
opacity: 0;
transform: translateY(18px);
}

.comunicum-services-v2.services-animate-in .services-v2-header
{
animation: services-header-in 0.8s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.comunicum-services-v2:not(.services-animate-in) .services-v2-icon
{
opacity: 0;
transform: scale(0.35) rotate(-16deg);
}

.comunicum-services-v2.services-animate-in .services-v2-icon
{
animation: services-icon-pop 0.9s cubic-bezier(0.34, 1.45, 0.64, 1) calc(var(--service-index, 0) * 0.09s + 0.12s) both;
}

.comunicum-services-v2:not(.services-animate-in) .services-v2-icon__glyph
{
opacity: 0;
transform: scale(0.5);
}

.comunicum-services-v2.services-animate-in .services-v2-icon__glyph
{
animation: services-glyph-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) calc(var(--service-index, 0) * 0.09s + 0.28s) both;
}

.comunicum-services-v2:not(.services-animate-in) .services-v2-card h3,
.comunicum-services-v2:not(.services-animate-in) .services-v2-card p
{
opacity: 0;
transform: translateY(10px);
}

.comunicum-services-v2.services-animate-in .services-v2-card h3
{
animation: services-text-in 0.65s cubic-bezier(0.22, 1, 0.36, 1) calc(var(--service-index, 0) * 0.09s + 0.32s) both;
}

.comunicum-services-v2.services-animate-in .services-v2-card p
{
animation: services-text-in 0.65s cubic-bezier(0.22, 1, 0.36, 1) calc(var(--service-index, 0) * 0.09s + 0.4s) both;
}

.comunicum-services-v2.services-animate-in .services-v2-card
{
animation: services-card-in 0.75s cubic-bezier(0.22, 1, 0.36, 1) calc(var(--service-index, 0) * 0.09s + 0.06s) both;
}

@keyframes services-header-in
{
from
{
opacity: 0;
transform: translateY(18px);
}
to
{
opacity: 1;
transform: translateY(0);
}
}

@keyframes services-icon-pop
{
0%
{
opacity: 0;
transform: scale(0.35) rotate(-16deg);
}
55%
{
opacity: 1;
transform: scale(1.1) rotate(5deg);
}
75%
{
transform: scale(0.96) rotate(-2deg);
}
100%
{
opacity: 1;
transform: scale(1) rotate(0deg);
}
}

@keyframes services-glyph-in
{
from
{
opacity: 0;
transform: scale(0.45);
}
to
{
opacity: 1;
transform: scale(1);
}
}

@keyframes services-text-in
{
from
{
opacity: 0;
transform: translateY(10px);
}
to
{
opacity: 1;
transform: translateY(0);
}
}

@keyframes services-card-in
{
from
{
opacity: 0;
transform: translateY(22px);
}
to
{
opacity: 1;
transform: translateY(0);
}
}

.comunicum-stats-v2
{
padding: clamp(3.5rem, 7vw, 5.5rem) 0;
background: linear-gradient(180deg, #f8f8ff 0%, #ffffff 45%, #f9f8ff 100%);
position: relative;
overflow: hidden;
}

.comunicum-stats-v2::before,
.comunicum-stats-v2::after
{
content: '';
position: absolute;
border-radius: 50%;
pointer-events: none;
filter: blur(70px);
z-index: 0;
}

.comunicum-stats-v2::before
{
width: min(460px, 52vw);
height: min(460px, 52vw);
top: -160px;
left: -120px;
background: rgba(91, 79, 255, 0.14);
}

.comunicum-stats-v2::after
{
width: min(380px, 46vw);
height: min(380px, 46vw);
bottom: -120px;
right: -80px;
background: rgba(157, 79, 255, 0.1);
}

.comunicum-stats-v2 .container,
.comunicum-stats-v2 > .container
{
position: relative;
z-index: 1;
}

.comunicum-stats-v2 .stats-v2-inner
{
display: grid;
grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
gap: clamp(2rem, 5vw, 4rem);
align-items: start;
}

.comunicum-stats-v2 .stats-v2-left
{
max-width: 520px;
min-width: 0;
}

.comunicum-stats-v2 .stats-v2-right
{
min-width: 0;
width: 100%;
}

.comunicum-stats-v2 .stats-v2-eyebrow
{
display: inline-block;
font-size: 0.8rem;
font-weight: 700;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--color-primary);
margin: 0 0 0.85rem;
padding: 0.35rem 0.85rem;
border-radius: 999px;
background: rgba(91, 79, 255, 0.1);
border: 1px solid rgba(91, 79, 255, 0.15);
}

.comunicum-stats-v2 .stats-v2-title
{
font-size: clamp(1.75rem, 2.35vw, 2.35rem);
font-weight: 700;
line-height: 1.15;
margin: 0 0 1.75rem;
padding-inline: 0;
max-width: none;
color: var(--color-text);
}

.comunicum-stats-v2 .stats-v2-grid,
.comunicum-stats-v2 .stats-v2-right
{
display: grid !important;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 1.15rem;
margin: 0;
width: 100%;
flex-wrap: unset !important;
}
.comunicum-stats-v2 .stats-v2-features,
.comunicum-stats-v2 ul.stats-v2-features
{
list-style: none;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
gap: 0.9rem;
}

.comunicum-stats-v2 .stats-v2-grid > .wp-block-column
{
flex-basis: auto !important;
width: auto !important;
min-width: 0;
}

.comunicum-stats-v2 .stats-v2-features li,
.comunicum-stats-v2 ul.stats-v2-features li
{
display: flex;
align-items: flex-start;
gap: 0.75rem;
font-size: 0.98rem;
line-height: 1.55;
color: var(--color-text-secondary);
margin: 0;
padding: 0;
position: relative;
}

.comunicum-stats-v2 .stats-v2-features li::before,
.comunicum-stats-v2 ul.stats-v2-features li::before
{
content: none;
display: none;
}

.comunicum-stats-v2 .stats-v2-check
{
flex-shrink: 0;
width: 1.35rem;
height: 1.35rem;
margin-top: 0.15rem;
border-radius: 50%;
background: rgba(91, 79, 255, 0.12);
position: relative;
}

.comunicum-stats-v2 .stats-v2-check::after
{
content: '';
position: absolute;
left: 50%;
top: 46%;
width: 0.35rem;
height: 0.6rem;
border: solid var(--color-primary);
border-width: 0 2px 2px 0;
transform: translate(-50%, -50%) rotate(45deg);
}


.comunicum-stats-v2 .stats-v2-grid > .wp-block-column,
.comunicum-stats-v2 .stats-v2-stat,
.comunicum-stats-v2 .stats-v2-item
{
background: linear-gradient(180deg, #ffffff 0%, #fcfcff 100%);
border-radius: 1rem;
padding: clamp(1.15rem, 2.5vw, 1.6rem) 1rem;
border: 1px solid rgba(91, 79, 255, 0.12);
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.05);
text-align: center;
position: relative;
overflow: hidden;
transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.3s ease, border-color 0.3s ease;
}

.comunicum-stats-v2 .stats-v2-grid > .wp-block-column::after,
.comunicum-stats-v2 .stats-v2-stat::after,
.comunicum-stats-v2 .stats-v2-item::after
{
content: '';
position: absolute;
inset: 0;
background: linear-gradient(135deg, rgba(91, 79, 255, 0.06) 0%, transparent 55%);
opacity: 0;
transition: opacity 0.3s ease;
pointer-events: none;
}

.comunicum-stats-v2 .stats-v2-grid > .wp-block-column:hover,
.comunicum-stats-v2 .stats-v2-stat:hover,
.comunicum-stats-v2 .stats-v2-item:hover
{
transform: translateY(-5px);
box-shadow: 0 20px 44px rgba(91, 79, 255, 0.14);
border-color: rgba(91, 79, 255, 0.26);
}

.comunicum-stats-v2 .stats-v2-grid > .wp-block-column:hover::after,
.comunicum-stats-v2 .stats-v2-stat:hover::after,
.comunicum-stats-v2 .stats-v2-item:hover::after
{
opacity: 1;
}

.comunicum-stats-v2 h3.wp-block-heading,
.comunicum-stats-v2 .stats-v2-number
{
font-size: clamp(1.9rem, 4vw, 2.75rem);
line-height: 1;
margin: 0 0 0.5rem;
font-weight: 700;
background: linear-gradient(135deg, #5B4FFF 0%, #7C3AED 55%, #9D4FFF 100%);
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
}

.comunicum-stats-v2 .stats-v2-grid p,
.comunicum-stats-v2 .stats-v2-label
{
margin: 0;
font-size: 0.9rem;
line-height: 1.45;
color: var(--color-text-secondary);
}

.comunicum-stats-v2:not(.stats-animate-in) .stats-v2-inner
{
opacity: 0;
transform: translateY(20px);
}

.comunicum-stats-v2.stats-animate-in .stats-v2-inner
{
animation: stats-section-in 0.9s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

@keyframes stats-section-in
{
from
{
opacity: 0;
transform: translateY(20px);
}
to
{
opacity: 1;
transform: translateY(0);
}
}

.comunicum-stats-v2 .stats-v2-inner > .stats-v2-left
{
grid-column: 1;
}

.comunicum-stats-v2 .stats-v2-inner > .stats-v2-right
{
grid-column: 2;
}

@media (max-width: 960px)
{
.comunicum-stats-v2 .stats-v2-inner
{
grid-template-columns: 1fr;
gap: 2rem;
}

.comunicum-stats-v2 .stats-v2-inner > .stats-v2-left,
.comunicum-stats-v2 .stats-v2-inner > .stats-v2-right
{
grid-column: 1;
grid-row: auto;
width: 100%;
}

.comunicum-stats-v2 .stats-v2-left
{
max-width: none;
text-align: left;
}
}

@media (max-width: 520px)
{
.comunicum-stats-v2 .stats-v2-grid,
.comunicum-stats-v2 .stats-v2-right
{
grid-template-columns: 1fr 1fr;
gap: 0.85rem;
}

.comunicum-stats-v2 .stats-v2-grid > .wp-block-column,
.comunicum-stats-v2 .stats-v2-stat,
.comunicum-stats-v2 .stats-v2-item
{
padding: 1rem 0.75rem;
}

.comunicum-stats-v2 h3.wp-block-heading,
.comunicum-stats-v2 .stats-v2-number
{
font-size: clamp(1.55rem, 6vw, 2rem);
}
}

.comunicum-portfolio-pro .container,
.comunicum-technology-stack .container,
.comunicum-case-studies .container,
.comunicum-stats-v2 .container,
.comunicum-client-logos .container,
.comunicum-contact-form .container,
.comunicum-cta-section .container
{
max-width: 1200px;
}

.comunicum-client-reviews.wp-block-group.alignfull,
.comunicum-client-reviews.comunicum-case-studies.wp-block-group.alignfull,
.comunicum-portfolio-pro.wp-block-group.alignfull,
.comunicum-technology-stack.wp-block-group.alignfull,
.comunicum-stats-v2.wp-block-group.alignfull
{
padding-left: 0;
padding-right: 0;
max-width: 100%;
}

.comunicum-client-reviews .container.is-layout-constrained > .client-reviews-inner,
.comunicum-client-reviews > .wp-block-group.container.is-layout-constrained > .client-reviews-inner,
.comunicum-portfolio-pro .container.is-layout-constrained > .portfolio-pro-inner,
.comunicum-portfolio-pro > .wp-block-group.container.is-layout-constrained > .portfolio-pro-inner,
.comunicum-portfolio-pro .container.is-layout-constrained > .portfolio-pro-header,
.comunicum-technology-stack .container.is-layout-constrained > .tech-stack-inner,
.comunicum-technology-stack > .wp-block-group.container.is-layout-constrained > .tech-stack-inner,
.comunicum-technology-stack .container.is-layout-constrained > .tech-stack-header,
.comunicum-stats-v2 .container.is-layout-constrained > .stats-v2-inner,
.comunicum-stats-v2 > .wp-block-group.container.is-layout-constrained > .stats-v2-inner
{
max-width: 100%;
width: 100%;
margin-inline: 0;
}

.comunicum-contact-form .container.is-layout-constrained > .contact-form-inner,
.comunicum-contact-form > .wp-block-group.container.is-layout-constrained > .contact-form-inner,
.comunicum-contact-form .contact-form-shell.is-layout-constrained > .contact-form-inner
{
max-width: 100%;
width: 100%;
margin-inline: 0;
min-width: 0;
}

.comunicum-portfolio-pro
{
padding: clamp(3.5rem, 7vw, 5.5rem) 0;
background: linear-gradient(180deg, #ffffff 0%, #f9f8ff 50%, #ffffff 100%);
position: relative;
overflow: hidden;
}

.comunicum-portfolio-pro::before,
.comunicum-portfolio-pro::after
{
content: '';
position: absolute;
border-radius: 50%;
pointer-events: none;
filter: blur(70px);
z-index: 0;
}

.comunicum-portfolio-pro::before
{
width: min(420px, 48vw);
height: min(420px, 48vw);
top: -140px;
right: -100px;
background: rgba(91, 79, 255, 0.1);
}

.comunicum-portfolio-pro::after
{
width: min(340px, 42vw);
height: min(340px, 42vw);
bottom: -100px;
left: -80px;
background: rgba(157, 79, 255, 0.08);
}

.comunicum-portfolio-pro .portfolio-pro-inner,
.comunicum-portfolio-pro > .container
{
position: relative;
z-index: 1;
}

.comunicum-portfolio-pro:not(.portfolio-animate-in) .portfolio-pro-inner,
.comunicum-portfolio-pro:not(.portfolio-animate-in) > .container.portfolio-pro-inner
{
opacity: 0;
transform: translateY(20px);
}

.comunicum-portfolio-pro.portfolio-animate-in .portfolio-pro-inner,
.comunicum-portfolio-pro.portfolio-animate-in > .container.portfolio-pro-inner
{
animation: stats-section-in 0.85s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.comunicum-portfolio-pro .portfolio-pro-header
{
max-width: none;
width: 100%;
margin: 0 auto 2.5rem;
padding-inline: 0;
text-align: center;
}

.comunicum-portfolio-pro .portfolio-pro-eyebrow
{
display: inline-block;
font-size: 0.8rem;
font-weight: 700;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--color-primary);
margin: 0 0 0.75rem;
padding: 0.35rem 0.85rem;
border-radius: 999px;
background: rgba(91, 79, 255, 0.1);
border: 1px solid rgba(91, 79, 255, 0.15);
}

.comunicum-portfolio-pro .portfolio-pro-title
{
font-size: clamp(1.75rem, 2.35vw, 2.35rem);
font-weight: 700;
line-height: 1.15;
margin: 0;
padding-inline: 0;
max-width: none;
color: var(--color-text);
}

@media (min-width: 901px)
{
.comunicum-portfolio-pro .portfolio-pro-title,
.comunicum-portfolio-pro .portfolio-pro-subtitle
{
white-space: nowrap;
}
}

.comunicum-portfolio-pro .portfolio-pro-grids
{
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: clamp(1rem, 2.5vw, 1.25rem);
align-items: stretch;
}

.comunicum-portfolio-pro .portfolio-native-grid
{
display: contents !important;
margin: 0;
}

.comunicum-portfolio-pro .portfolio-pro-grids > .portfolio-pro-grid
{
display: contents;
}

.comunicum-portfolio-pro .portfolio-native-grid > .wp-block-column,
.comunicum-portfolio-pro .portfolio-pro-grids > .portfolio-pro-grid > .portfolio-pro-card
{
flex-basis: auto !important;
width: auto !important;
min-width: 0;
}

.comunicum-portfolio-pro .portfolio-native-actions
{
display: flex;
justify-content: center;
margin-top: 2.25rem;
}

.comunicum-portfolio-pro h2:not(.portfolio-pro-title)
{
font-size: clamp(1.75rem, 2.35vw, 2.35rem);
line-height: 1.15;
margin-bottom: 0.65rem;
padding-inline: 0;
max-width: none;
}

.comunicum-portfolio-pro p:not(.portfolio-pro-eyebrow):not(.portfolio-native-category):not(.portfolio-native-description)
{
max-width: none;
margin-inline: auto;
color: var(--color-text-secondary);
}

.portfolio-pro-card__badge
{
display: inline-flex;
align-items: center;
gap: 0.35rem;
font-size: 0.75rem;
font-weight: 700;
letter-spacing: 0.05em;
text-transform: uppercase;
padding: 0.4rem 0.75rem;
border-radius: 999px;
background: rgba(91, 79, 255, 0.1);
color: var(--color-primary);
}

.portfolio-pro-card__badge--featured
{
background: linear-gradient(135deg, #FFD700 0%, #FFA500 100%);
color: #1a1a1a !important;
box-shadow: 0 2px 8px rgba(255, 215, 0, 0.3);
font-weight: 800;
animation: badge-glow 2s ease-in-out infinite;
}

.portfolio-pro-card__badge--featured svg
{
color: #1a1a1a;
filter: drop-shadow(0 1px 2px rgba(255, 215, 0, 0.5));
}

@keyframes badge-glow
{
0%, 100%
{
box-shadow: 0 2px 8px rgba(255, 215, 0, 0.3), 0 0 15px rgba(255, 215, 0, 0.1);
}
50%
{
box-shadow: 0 2px 12px rgba(255, 215, 0, 0.5), 0 0 25px rgba(255, 215, 0, 0.2);
}
}

.portfolio-pro-card--featured
{
border: 2px solid rgba(255, 215, 0, 0.2) !important;
box-shadow: 0 8px 24px rgba(255, 215, 0, 0.15), 0 2px 8px rgba(0, 0, 0, 0.08) !important;
}

.portfolio-native-grid
{
gap: 1.25rem;
}

.portfolio-native-card
{
background: linear-gradient(180deg, #ffffff 0%, #fcfcff 100%);
border: 1px solid rgba(91, 79, 255, 0.12);
border-radius: 1rem;
padding: 0.9rem;
box-shadow: 0 12px 28px rgba(0, 0, 0, 0.06);
display: flex;
flex-direction: column;
position: relative;
height: 100%;
transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.28s ease, border-color 0.28s ease;
}

.portfolio-native-card:hover
{
transform: translateY(-4px);
box-shadow: 0 18px 40px rgba(91, 79, 255, 0.12);
border-color: rgba(91, 79, 255, 0.22);
}

.portfolio-native-card--featured
{
border: 2px solid rgba(255, 193, 7, 0.45);
box-shadow: 0 14px 32px rgba(255, 193, 7, 0.18), 0 8px 20px rgba(91, 79, 255, 0.08);
}

.portfolio-native-stars
{
display: flex;
align-items: center;
gap: 0.2rem;
margin: 0.35rem 0 0.5rem;
}

.portfolio-native-star
{
color: #FFC107;
filter: drop-shadow(0 1px 2px rgba(255, 193, 7, 0.45));
}

.portfolio-native-card--featured:hover .portfolio-native-stars
{
filter: drop-shadow(0 2px 4px rgba(255, 193, 7, 0.35));
}

.portfolio-native-image
{
margin: 0 0 0.75rem;
overflow: hidden;
border-radius: 0.8rem;
}

.portfolio-native-image img
{
border-radius: 0.8rem;
aspect-ratio: 16 / 10;
object-fit: cover;
width: 100%;
height: auto;
transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
transform: translateZ(0);
}

.portfolio-native-card:hover .portfolio-native-image img
{
transform: translateZ(0) scale(1.02);
}

.portfolio-native-category
{
display: inline-flex;
align-self: flex-start;
font-size: 0.75rem;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--color-primary);
background: rgba(91, 79, 255, 0.1);
padding: 0.35rem 0.55rem;
border-radius: 999px;
margin: 0 0 0.55rem;
}

.portfolio-native-title
{
font-size: 1.05rem;
margin: 0 0 0.45rem;
line-height: 1.3;
}

.portfolio-native-description
{
font-size: 0.93rem;
margin: 0 0 0.9rem;
color: var(--color-text-secondary);
}

.portfolio-native-button
{
margin-top: auto;
}

.portfolio-native-button .wp-block-button__link
{
padding: 0.62rem 1rem;
font-size: 0.85rem;
border-radius: 0.7rem;
}

.portfolio-native-actions .btn.btn-primary .wp-block-button__link,
.portfolio-native-button .wp-block-button__link
{
	background: linear-gradient(135deg, #5B4FFF 0%, #7C3AED 100%);
	color: #FFFFFF !important;
	border-color: transparent;
}

.portfolio-native-actions .btn.btn-primary .wp-block-button__link:hover,
.portfolio-native-button .wp-block-button__link:hover
{
	background: linear-gradient(135deg, #4A3FE8 0%, #6D28D9 100%);
	color: #FFFFFF !important;
}

.comunicum-technology-stack
{
padding: clamp(3.5rem, 7vw, 5.5rem) 0;
background: linear-gradient(180deg, #f8f8ff 0%, #ffffff 45%, #f9f8ff 100%);
position: relative;
overflow: hidden;
}

.comunicum-technology-stack::before,
.comunicum-technology-stack::after
{
content: '';
position: absolute;
border-radius: 50%;
pointer-events: none;
filter: blur(70px);
z-index: 0;
}

.comunicum-technology-stack::before
{
width: min(400px, 46vw);
height: min(400px, 46vw);
top: -120px;
left: -90px;
background: rgba(91, 79, 255, 0.11);
}

.comunicum-technology-stack::after
{
width: min(360px, 42vw);
height: min(360px, 42vw);
bottom: -110px;
right: -70px;
background: rgba(157, 79, 255, 0.09);
}

.comunicum-technology-stack .tech-stack-inner,
.comunicum-technology-stack > .container
{
position: relative;
z-index: 1;
}

.comunicum-technology-stack:not(.tech-animate-in) .tech-stack-inner,
.comunicum-technology-stack:not(.tech-animate-in) > .container.tech-stack-inner
{
opacity: 0;
transform: translateY(20px);
}

.comunicum-technology-stack.tech-animate-in .tech-stack-inner,
.comunicum-technology-stack.tech-animate-in > .container.tech-stack-inner
{
animation: stats-section-in 0.85s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.comunicum-technology-stack .tech-stack-header
{
max-width: none;
width: 100%;
margin: 0 auto 2.75rem;
padding-inline: 0;
text-align: center;
}

.comunicum-technology-stack .tech-stack-eyebrow
{
display: inline-block;
font-size: 0.8rem;
font-weight: 700;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--color-primary);
margin: 0 0 0.75rem;
padding: 0.35rem 0.85rem;
border-radius: 999px;
background: rgba(91, 79, 255, 0.1);
border: 1px solid rgba(91, 79, 255, 0.15);
}

.comunicum-technology-stack .tech-stack-title
{
font-size: clamp(1.75rem, 2.35vw, 2.35rem);
font-weight: 700;
line-height: 1.15;
margin: 0;
padding-inline: 0;
max-width: none;
color: var(--color-text);
}

@media (min-width: 901px)
{
.comunicum-technology-stack .tech-stack-title
{
white-space: nowrap;
}
}

.comunicum-technology-stack .tech-stack-categories
{
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 1rem;
}

.comunicum-technology-stack .tech-stack-category
{
display: flex;
flex-direction: column;
gap: 0.85rem;
padding: 1.15rem 1.15rem 1.05rem;
background: linear-gradient(180deg, #ffffff 0%, #fcfcff 100%);
border: 1px solid rgba(91, 79, 255, 0.1);
border-radius: 1rem;
box-shadow: 0 10px 26px rgba(91, 79, 255, 0.06);
position: relative;
overflow: hidden;
transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.28s ease, border-color 0.28s ease;
}

.comunicum-technology-stack .tech-stack-category--innovacion
{
grid-column: 1 / -1;
}

.comunicum-technology-stack.tech-animate-in .tech-stack-category
{
animation: tech-stack-category-in 0.65s cubic-bezier(0.22, 1, 0.36, 1) calc(var(--cat-index) * 0.08s + 0.12s) both;
}

.comunicum-technology-stack .tech-stack-category:hover
{
transform: translateY(-3px);
border-color: rgba(91, 79, 255, 0.22);
box-shadow: 0 16px 36px rgba(91, 79, 255, 0.1);
}

.comunicum-technology-stack .tech-stack-category__title
{
margin: 0 0 0.3rem;
font-size: 0.95rem;
font-weight: 700;
line-height: 1.3;
color: var(--color-text);
}

.comunicum-technology-stack .tech-stack-category__desc
{
margin: 0;
font-size: 0.82rem;
line-height: 1.45;
color: var(--color-text-secondary);
}

.comunicum-technology-stack .tech-stack-category__chips
{
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
}

.comunicum-technology-stack .tech-stack-chip
{
display: inline-flex;
align-items: center;
gap: 0.45rem;
padding: 0.4rem 0.65rem 0.4rem 0.45rem;
border-radius: 999px;
background: color-mix(in srgb, var(--tech-brand) 8%, #ffffff);
border: 1px solid color-mix(in srgb, var(--tech-brand) 16%, transparent);
transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.comunicum-technology-stack .tech-stack-chip:hover
{
transform: translateY(-2px);
border-color: color-mix(in srgb, var(--tech-brand) 30%, transparent);
box-shadow: 0 8px 18px color-mix(in srgb, var(--tech-brand) 14%, transparent);
}

.comunicum-technology-stack .tech-stack-chip__icon
{
display: block;
width: 1.15rem;
height: 1.15rem;
object-fit: contain;
flex-shrink: 0;
}

.comunicum-technology-stack .tech-stack-chip__name
{
font-size: 0.74rem;
font-weight: 700;
line-height: 1;
color: var(--color-text);
white-space: nowrap;
}

.comunicum-technology-stack .tech-stack-footnote
{
margin: 1.35rem 0 0;
text-align: center;
font-size: 0.85rem;
color: var(--color-text-secondary);
}

@keyframes tech-stack-category-in
{
from
{
opacity: 0;
transform: translateY(16px);
}
to
{
opacity: 1;
transform: translateY(0);
}
}

.comunicum-client-reviews
{
padding: clamp(3.5rem, 7vw, 5.5rem) 0 clamp(1.25rem, 2.5vw, 1.75rem);
background: linear-gradient(180deg, #ffffff 0%, #f9f8ff 50%, #ffffff 100%);
position: relative;
overflow: hidden;
}

.comunicum-client-reviews::before
{
content: '';
position: absolute;
width: min(420px, 48vw);
height: min(420px, 48vw);
top: -120px;
right: -90px;
border-radius: 50%;
background: rgba(91, 79, 255, 0.08);
filter: blur(70px);
pointer-events: none;
}

.comunicum-client-reviews .client-reviews-inner
{
position: relative;
z-index: 1;
}

.comunicum-client-reviews:not(.reviews-animate-in) .client-reviews-inner
{
opacity: 0;
transform: translateY(20px);
}

.comunicum-client-reviews.reviews-animate-in .client-reviews-inner
{
animation: stats-section-in 0.85s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.comunicum-client-reviews .client-reviews-header
{
max-width: none;
width: 100%;
margin: 0 auto 2.25rem;
padding-inline: 0;
text-align: center;
}

.comunicum-client-reviews .client-reviews-eyebrow
{
display: inline-block;
font-size: 0.8rem;
font-weight: 700;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--color-primary);
margin: 0 0 0.75rem;
padding: 0.35rem 0.85rem;
border-radius: 999px;
background: rgba(91, 79, 255, 0.1);
border: 1px solid rgba(91, 79, 255, 0.15);
}

.comunicum-client-reviews .client-reviews-title
{
font-size: clamp(1.75rem, 2.35vw, 2.35rem);
font-weight: 700;
line-height: 1.15;
margin: 0 0 1.35rem;
padding-inline: 0;
max-width: none;
color: var(--color-text);
}

@media (min-width: 901px)
{
.comunicum-client-reviews .client-reviews-title
{
white-space: nowrap;
}
}

.comunicum-client-reviews .client-reviews-google-summary
{
display: inline-flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
gap: 0.65rem 1rem;
padding: 0.85rem 1.15rem;
border-radius: 999px;
background: #fff;
border: 1px solid rgba(91, 79, 255, 0.12);
box-shadow: 0 10px 24px rgba(91, 79, 255, 0.08);
}

.comunicum-client-reviews .client-reviews-google-summary__score
{
display: inline-flex;
align-items: center;
gap: 0.45rem;
flex-wrap: wrap;
}

.comunicum-client-reviews .client-reviews-google-summary__value
{
font-size: 1.35rem;
font-weight: 800;
line-height: 1;
color: var(--color-text);
}

.comunicum-client-reviews .client-reviews-google-summary .client-review-stars
{
display: inline-flex;
gap: 0.1rem;
}

.comunicum-client-reviews .client-reviews-google-summary .client-review-star
{
width: 1rem;
height: 1rem;
color: #FBBC04;
}

.comunicum-client-reviews .client-reviews-google-summary__label
{
font-size: 0.82rem;
color: var(--color-text-secondary);
}

.comunicum-client-reviews .client-reviews-google-link
{
font-size: 0.82rem;
font-weight: 700;
color: var(--color-primary);
text-decoration: none;
}

.comunicum-client-reviews .client-reviews-google-link:hover
{
text-decoration: underline;
}

.comunicum-client-reviews .client-reviews-grid
{
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 1rem;
}

.comunicum-client-reviews .client-review-card
{
display: flex;
flex-direction: column;
gap: 0.75rem;
padding: 1.15rem;
background: linear-gradient(180deg, #ffffff 0%, #fcfcff 100%);
border: 1px solid rgba(91, 79, 255, 0.1);
border-radius: 1rem;
box-shadow: 0 12px 28px rgba(91, 79, 255, 0.06);
transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.28s ease, border-color 0.28s ease;
}

.comunicum-client-reviews.reviews-animate-in .client-review-card
{
animation: tech-stack-category-in 0.6s cubic-bezier(0.22, 1, 0.36, 1) calc(var(--review-index) * 0.07s + 0.18s) both;
}

.comunicum-client-reviews .client-review-card:hover
{
transform: translateY(-4px);
border-color: rgba(91, 79, 255, 0.22);
box-shadow: 0 18px 40px rgba(91, 79, 255, 0.12);
}

.comunicum-client-reviews .client-review-card__head
{
display: flex;
align-items: center;
gap: 0.75rem;
}

.comunicum-client-reviews .client-review-card__avatar
{
width: 2.75rem;
height: 2.75rem;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 0.9rem;
font-weight: 800;
color: #fff;
background: var(--avatar-color, var(--color-primary));
box-shadow: 0 8px 18px color-mix(in srgb, var(--avatar-color, #5B4FFF) 28%, transparent);
flex-shrink: 0;
}

.comunicum-client-reviews .client-review-card__meta
{
flex: 1;
min-width: 0;
}

.comunicum-client-reviews .client-review-card__name
{
display: block;
font-size: 0.92rem;
line-height: 1.25;
color: var(--color-text);
}

.comunicum-client-reviews .client-review-card__role
{
display: block;
font-size: 0.78rem;
line-height: 1.35;
color: var(--color-text-secondary);
}

.comunicum-client-reviews .client-reviews-google-logo
{
flex-shrink: 0;
opacity: 0.9;
}

.comunicum-client-reviews .client-review-stars
{
display: flex;
gap: 0.12rem;
}

.comunicum-client-reviews .client-review-star
{
color: #FBBC04;
filter: drop-shadow(0 1px 1px rgba(251, 188, 4, 0.25));
}

.comunicum-client-reviews .client-review-card__text
{
margin: 0;
font-size: 0.9rem;
line-height: 1.6;
color: var(--color-text-secondary);
font-style: normal;
}

.comunicum-client-logos
{
padding: clamp(1.25rem, 3vw, 1.75rem) 0;
}

.comunicum-client-logos:not(:has(.client-logos-grid, .client-logos-label))
{
display: none;
}

.comunicum-client-logos .client-logos-label
{
text-align: center;
font-weight: 600;
color: var(--color-text-secondary);
margin-bottom: 0.8rem;
}

.comunicum-client-logos .client-logos-grid
{
text-align: center;
font-weight: 700;
letter-spacing: 0.03em;
color: #4b5563;
padding: 0.95rem 1.1rem;
border-radius: 999px;
border: 1px dashed rgba(91, 79, 255, 0.25);
background: linear-gradient(180deg, #ffffff 0%, #f7f7ff 100%);
}

.comunicum-cta-section
{
--cta-shell-padding: clamp(2rem, 4vw, 2.75rem);
--cta-shell-gutter: var(--section-gutter);
--cta-card-padding-y: clamp(1.85rem, 3.5vw, 2.35rem);
--cta-card-padding-x: clamp(2rem, 5vw, 3rem);
padding: var(--cta-shell-padding) var(--cta-shell-gutter);
margin-top: 0;
background: linear-gradient(135deg, #5B4FFF 0%, #7C3AED 55%, #9D4FFF 100%);
color: #fff;
position: relative;
overflow: hidden;
box-sizing: border-box;
}

.comunicum-cta-section + .comunicum-contact-form
{
padding-top: clamp(2.5rem, 5vw, 3.5rem);
position: relative;
z-index: 1;
background: linear-gradient(180deg, #fafaff 0%, #ffffff 45%, #f9f8ff 100%);
}

.comunicum-contact-form
{
padding-top: clamp(2.75rem, 6vw, 4.25rem);
padding-bottom: clamp(3.25rem, 7vw, 5rem);
padding-left: var(--section-gutter);
padding-right: var(--section-gutter);
position: relative;
overflow-x: clip;
overflow-y: visible;
width: 100%;
max-width: 100%;
box-sizing: border-box;
scroll-margin-bottom: 2rem;
}

.comunicum-contact-form::before,
.comunicum-contact-form::after
{
content: '';
position: absolute;
border-radius: 50%;
pointer-events: none;
filter: blur(70px);
}

.comunicum-contact-form::before
{
width: min(220px, 55vw);
height: min(220px, 55vw);
top: 0;
left: 0;
transform: none;
background: rgba(91, 79, 255, 0.09);
}

.comunicum-contact-form::after
{
width: min(200px, 50vw);
height: min(200px, 50vw);
bottom: 0;
right: 0;
transform: none;
background: rgba(157, 79, 255, 0.08);
}

.comunicum-contact-form .contact-form-shell,
.comunicum-contact-form > .container
{
position: relative;
z-index: 1;
width: 100%;
max-width: 1200px;
margin-inline: auto;
padding-inline: 0;
box-sizing: border-box;
min-width: 0;
}

.comunicum-contact-form .contact-form-inner
{
display: grid;
grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.25fr);
gap: clamp(2rem, 4.5vw, 3.5rem);
align-items: start;
width: 100%;
max-width: 100%;
min-width: 0;
}

.comunicum-contact-form .contact-form-info,
.comunicum-contact-form .contact-form-wrapper,
.comunicum-contact-form .wpcf7,
.comunicum-contact-form .wpcf7-form-control-wrap
{
min-width: 0;
max-width: 100%;
width: 100%;
box-sizing: border-box;
}

.comunicum-contact-form .contact-form-eyebrow
{
display: inline-block;
margin: 0 0 0.75rem;
padding: 0.3rem 0.75rem;
border-radius: 999px;
font-size: 0.75rem;
font-weight: 700;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var(--color-primary);
background: rgba(91, 79, 255, 0.08);
border: 1px solid rgba(91, 79, 255, 0.16);
}

.comunicum-contact-form .contact-form-title,
.comunicum-contact-form .contact-form-info h2
{
font-size: clamp(1.75rem, 3.2vw, 2.45rem);
font-weight: 800;
line-height: 1.15;
margin: 0 0 0.85rem;
color: var(--color-text);
letter-spacing: -0.02em;
}

.comunicum-contact-form .contact-form-subtitle
{
margin: 0 0 1.35rem;
font-size: 1rem;
line-height: 1.6;
color: var(--color-text-secondary);
max-width: 42ch;
}

.comunicum-contact-form .contact-form-highlights
{
list-style: none;
margin: 0 0 1.75rem;
padding: 0;
display: grid;
gap: 0.55rem;
}

.comunicum-contact-form .contact-form-highlights li
{
position: relative;
padding-left: 1.1rem;
font-size: 0.9rem;
line-height: 1.5;
color: #374151;
text-align: left;
}

.comunicum-contact-form .contact-form-highlights li::before
{
content: '';
position: absolute;
left: 0;
top: 0.45rem;
width: 0.55rem;
height: 0.55rem;
border-radius: 50%;
background: linear-gradient(135deg, #5B4FFF 0%, #9D4FFF 100%);
box-shadow: 0 0 0 3px rgba(91, 79, 255, 0.12);
}

.comunicum-contact-form .contact-details
{
display: grid;
gap: 0.85rem;
}

.comunicum-contact-form .contact-detail-item
{
display: flex;
align-items: center;
gap: 0.85rem;
font-size: 0.9375rem;
color: var(--color-text);
}

.comunicum-contact-form .contact-detail-item a
{
color: inherit;
text-decoration: none;
transition: color 0.2s ease;
}

.comunicum-contact-form .contact-detail-item a:hover
{
color: var(--color-primary);
}

.comunicum-contact-form .contact-detail-item .icon
{
width: 2.5rem;
height: 2.5rem;
border-radius: 0.75rem;
background: linear-gradient(135deg, rgba(91, 79, 255, 0.1) 0%, rgba(157, 79, 255, 0.08) 100%);
display: inline-flex;
align-items: center;
justify-content: center;
font-size: 1.05rem;
flex-shrink: 0;
}

.comunicum-contact-form .contact-form-wrapper .wpcf7-form,
.comunicum-contact-form .wpcf7-form
{
background: #ffffff;
border-radius: 1.25rem;
padding: clamp(1.5rem, 3.5vw, 2.25rem);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 12px 32px rgba(91, 79, 255, 0.1);
border: 1px solid rgba(91, 79, 255, 0.08);
width: 100%;
max-width: 100%;
box-sizing: border-box;
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
gap: 1.25rem;
}

.comunicum-contact-form .wpcf7-form > p,
.comunicum-contact-form .wpcf7-form > div
{
min-width: 0;
max-width: 100%;
}

.comunicum-contact-form .wpcf7-form input[type="text"],
.comunicum-contact-form .wpcf7-form input[type="email"],
.comunicum-contact-form .wpcf7-form input[type="tel"],
.comunicum-contact-form .wpcf7-form textarea
{
width: 100%;
max-width: 100%;
min-width: 0;
box-sizing: border-box;
}

.comunicum-contact-form:not(.contact-animate-in) .contact-form-inner
{
opacity: 0;
transform: translateY(20px);
}

.comunicum-contact-form.contact-animate-in .contact-form-inner
{
animation: stats-section-in 0.85s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.comunicum-cta-section:not(.cta-animate-in) .cta-inner,
.comunicum-cta-section:not(.cta-animate-in) .container.cta-content
{
opacity: 0;
transform: translateY(16px);
}

.comunicum-cta-section.cta-animate-in .cta-inner,
.comunicum-cta-section.cta-animate-in .container.cta-content
{
opacity: 1;
transform: translateY(0);
transition: opacity 0.75s ease, transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}

.comunicum-cta-section::before,
.comunicum-cta-section::after
{
content: '';
position: absolute;
border-radius: 50%;
pointer-events: none;
}

.comunicum-cta-section::before
{
width: min(380px, 42vw);
height: min(380px, 42vw);
top: -180px;
right: -80px;
background: rgba(255, 255, 255, 0.12);
filter: blur(40px);
}

.comunicum-cta-section::after
{
width: min(300px, 36vw);
height: min(300px, 36vw);
bottom: -140px;
left: -60px;
background: rgba(255, 255, 255, 0.08);
filter: blur(36px);
}

.comunicum-cta-section .cta-inner,
.comunicum-cta-section .container.cta-content
{
position: relative;
z-index: 1;
display: flex;
align-items: center;
justify-content: space-between;
gap: clamp(1.5rem, 3vw, 2.5rem);
flex-wrap: wrap;
width: 100%;
max-width: 1200px;
margin-inline: auto;
padding: var(--cta-card-padding-y) var(--cta-card-padding-x);
box-sizing: border-box;
border-radius: 1.2rem;
background: rgba(255, 255, 255, 0.1);
border: 1px solid rgba(255, 255, 255, 0.2);
box-shadow: 0 18px 48px rgba(35, 25, 120, 0.22);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
}

.comunicum-cta-section .cta-copy
{
flex: 1 1 320px;
max-width: 640px;
margin: 0;
padding: 0;
}

.comunicum-cta-section .cta-actions
{
flex: 0 0 auto;
margin: 0;
padding: 0;
}

.comunicum-cta-section .cta-buttons
{
display: flex;
flex-wrap: wrap;
gap: 0.75rem;
margin: 0;
padding: 0;
}

.comunicum-cta-section .cta-buttons .wp-block-button
{
margin: 0;
}

.comunicum-cta-section .cta-eyebrow
{
display: inline-block;
margin: 0 0 0.65rem;
padding: 0.3rem 0.75rem;
border-radius: 999px;
font-size: 0.75rem;
font-weight: 700;
letter-spacing: 0.1em;
text-transform: uppercase;
color: #fff;
background: rgba(255, 255, 255, 0.14);
border: 1px solid rgba(255, 255, 255, 0.22);
}

.comunicum-cta-section .cta-title,
.comunicum-cta-section .wp-block-heading
{
color: #fff;
margin: 0 0 0.65rem;
font-size: clamp(1.45rem, 3vw, 2.05rem);
line-height: 1.25;
font-weight: 700;
}

.comunicum-cta-section .cta-desc
{
margin: 0;
padding: 0;
font-size: 0.95rem;
line-height: 1.55;
color: rgba(255, 255, 255, 0.88);
max-width: 52ch;
}

.comunicum-cta-section .cta-actions
{
flex: 0 0 auto;
}

.cta-buttons .wp-block-button
{
background: transparent;
border: 0 !important;
box-shadow: none !important;
padding: 0;
}

.cta-buttons .wp-block-button .wp-block-button__link
{
border-radius: 0.8rem;
padding: 0.82rem 1.35rem;
box-shadow: none !important;
outline: none;
}

.cta-buttons .btn-white .wp-block-button__link
{
background: #fff;
color: var(--color-primary) !important;
border: 1px solid #fff;
font-weight: 700;
transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.25s ease;
}

.cta-buttons .btn-white .wp-block-button__link:hover
{
transform: translateY(-2px);
box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
}

.cta-buttons .btn-outline .wp-block-button__link
{
background: transparent;
color: #fff !important;
border: 1px solid rgba(255, 255, 255, 0.75);
font-weight: 700;
transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}

.cta-buttons .btn-outline .wp-block-button__link:hover
{
background: rgba(255, 255, 255, 0.12);
border-color: #fff;
transform: translateY(-2px);
}

/* Neutralize Bootstrap-like .btn wrappers inside Gutenberg button blocks */
.hero-buttons .btn,
.cta-buttons .btn
{
background: transparent !important;
border: 0 !important;
box-shadow: none !important;
}

.comunicum-contact-form .wp-block-shortcode
{
margin-top: 1rem;
}

.comunicum-contact-form > .container > .wp-block-heading
{
color: var(--color-text);
}

.comunicum-contact-form > .container > .wp-block-paragraph
{
color: var(--color-text-secondary);
}

@media (max-width: 900px)
{
.comunicum-hero-section .container
{
display: flex;
flex-direction: column-reverse;
gap: 1.5rem;
}

.comunicum-cta-section .cta-inner,
.comunicum-cta-section .container.cta-content
{
flex-direction: column;
align-items: stretch;
justify-content: flex-start;
text-align: center;
gap: clamp(1.25rem, 3.5vw, 1.75rem);
padding: clamp(1.65rem, 4vw, 2.15rem) clamp(1.35rem, 4vw, 2rem);
}

.comunicum-cta-section .cta-copy
{
flex: 0 1 auto;
max-width: none;
}

.comunicum-cta-section .cta-actions
{
flex: 0 0 auto;
width: 100%;
}

.comunicum-cta-section .cta-buttons
{
justify-content: center;
}

.comunicum-contact-form .contact-form-inner
{
grid-template-columns: 1fr;
}

.comunicum-contact-form
{
padding-top: clamp(2.75rem, 6vw, 4.25rem);
padding-bottom: calc(clamp(4.5rem, 14vw, 6rem) + env(safe-area-inset-bottom, 0px));
padding-left: var(--section-gutter);
padding-right: var(--section-gutter);
}

.comunicum-contact-form .contact-form-info
{
text-align: left;
}

.comunicum-contact-form .contact-form-highlights
{
justify-items: start;
}

.comunicum-contact-form .contact-form-highlights li
{
width: fit-content;
max-width: 100%;
text-align: left;
}

.comunicum-contact-form .contact-details
{
align-items: flex-start;
}

.comunicum-contact-form .contact-form-subtitle
{
max-width: none;
}

.comunicum-contact-form .contact-form-wrapper .wpcf7-form,
.comunicum-contact-form .wpcf7-form
{
grid-template-columns: minmax(0, 1fr);
}

.comunicum-contact-form .wpcf7-form > p:nth-child(1),
.comunicum-contact-form .wpcf7-form > p:nth-child(2),
.comunicum-contact-form .wpcf7-form > p:nth-child(3),
.comunicum-contact-form .wpcf7-form > p:nth-child(4),
.comunicum-contact-form .wpcf7-form > p:nth-child(5),
.comunicum-contact-form .wpcf7-form > p:nth-child(6),
.comunicum-contact-form .wpcf7-form > div,
.comunicum-contact-form .wpcf7-form > .wpcf7-response-output
{
grid-column: 1 / -1;
}

.comunicum-hero-section.hero-animate-in .hero-visual
{
animation-name: hero-fade-up;
animation-duration: 1.25s;
animation-delay: 0.35s;
}

.hero-buttons
{
justify-content: center;
}
}

@media (prefers-reduced-motion: reduce)
{
.comunicum-hero-section::before,
.comunicum-hero-section::after,
.comunicum-hero-section .device-mockup,
.comunicum-hero-section .hero-headline .text-gradient
{
animation: none !important;
}

.comunicum-hero-section .hero-eyebrow,
.comunicum-hero-section .hero-headline,
.comunicum-hero-section .hero-description,
.comunicum-hero-section .hero-buttons,
.comunicum-hero-section .hero-visual,
.comunicum-hero-section .hero-buttons .wp-block-button
{
opacity: 1 !important;
transform: none !important;
animation: none !important;
}

.comunicum-stats-v2 .stats-v2-inner
{
opacity: 1 !important;
transform: none !important;
animation: none !important;
}

.comunicum-services-v2 .services-v2-header,
.comunicum-services-v2 .services-v2-icon,
.comunicum-services-v2 .services-v2-icon__glyph,
.comunicum-services-v2 .services-v2-card,
.comunicum-services-v2 .services-v2-card h3,
.comunicum-services-v2 .services-v2-card p
{
opacity: 1 !important;
transform: none !important;
animation: none !important;
}

.comunicum-portfolio-pro .portfolio-pro-inner,
.comunicum-portfolio-pro > .container.portfolio-pro-inner
{
opacity: 1 !important;
transform: none !important;
animation: none !important;
}

.comunicum-technology-stack .tech-stack-inner,
.comunicum-technology-stack > .container.tech-stack-inner
{
opacity: 1 !important;
transform: none !important;
animation: none !important;
}

.comunicum-technology-stack .tech-stack-category
{
opacity: 1 !important;
transform: none !important;
animation: none !important;
}

.comunicum-client-reviews .client-reviews-inner,
.comunicum-client-reviews .client-review-card
{
opacity: 1 !important;
transform: none !important;
animation: none !important;
}

.comunicum-contact-form .contact-form-inner
{
opacity: 1 !important;
transform: none !important;
animation: none !important;
}
}

@media (max-width: 960px)
{
.comunicum-services-v2 .services-v2-grid
{
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 1.1rem;
}

.comunicum-portfolio-pro .portfolio-pro-grids
{
grid-template-columns: repeat(2, minmax(0, 1fr));
}

.comunicum-client-reviews .client-reviews-grid
{
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}

@media (max-width: 640px)
{
.comunicum-services-v2 .services-v2-grid
{
grid-template-columns: 1fr;
gap: 0.95rem;
}

.comunicum-services-v2 .services-v2-card
{
padding: 1.25rem 1.15rem;
}

.comunicum-services-v2 .services-v2-icon
{
width: 3.25rem;
height: 3.25rem;
}

.comunicum-portfolio-pro .portfolio-pro-grids
{
grid-template-columns: 1fr;
gap: 1rem;
}

.comunicum-portfolio-pro .portfolio-pro-header
{
margin-bottom: 2rem;
}

.comunicum-technology-stack .tech-stack-categories
{
grid-template-columns: 1fr;
gap: 0.85rem;
}

.comunicum-technology-stack .tech-stack-category--innovacion
{
grid-column: auto;
}

.comunicum-technology-stack .tech-stack-category
{
padding: 1rem;
}

.comunicum-technology-stack .tech-stack-chip__name
{
font-size: 0.7rem;
}

.comunicum-client-reviews .client-reviews-grid
{
grid-template-columns: 1fr;
gap: 0.85rem;
}

.comunicum-client-reviews .client-reviews-google-summary
{
border-radius: 1rem;
padding: 0.85rem 1rem;
}

.comunicum-contact-form .contact-form-wrapper .wpcf7-form,
.comunicum-contact-form .wpcf7-form
{
padding: 1.5rem;
}

.comunicum-contact-form .wpcf7-form > p:nth-child(4) textarea
{
min-height: 120px;
height: auto;
}
}

/* CTA: anular padding heredado de Gutenberg en contenedor externo e interno */
.comunicum-cta-section.wp-block-group.alignfull
{
padding-top: var(--cta-shell-padding);
padding-bottom: var(--cta-shell-padding);
padding-left: var(--cta-shell-gutter);
padding-right: var(--cta-shell-gutter);
}

.comunicum-cta-section.wp-block-group > .wp-block-group.container.cta-inner,
.comunicum-cta-section.wp-block-group > .wp-block-group.container.cta-content
{
padding-top: var(--cta-card-padding-y);
padding-bottom: var(--cta-card-padding-y);
padding-left: var(--cta-card-padding-x);
padding-right: var(--cta-card-padding-x);
}

.comunicum-contact-form.wp-block-group.alignfull
{
width: 100%;
max-width: 100%;
margin-inline: 0;
box-sizing: border-box;
}

.comunicum-contact-form.wp-block-group.alignfull > .wp-block-group.contact-form-shell,
.comunicum-contact-form.wp-block-group.alignfull > .wp-block-group.container
{
width: 100%;
max-width: 100%;
padding-left: 0;
padding-right: 0;
min-width: 0;
}

.comunicum-legal-page-body .site-main
{
padding-top: 0;
padding-bottom: 0;
}

.comunicum-legal-page-body .page-article,
.comunicum-legal-page-body .page-article__content
{
width: 100%;
max-width: none;
margin: 0;
padding: 0;
}

.comunicum-legal-page
{
width: 100%;
padding: clamp(2.5rem, 5vw, 4rem) 0 clamp(3rem, 6vw, 4.5rem);
}

.comunicum-legal-page .container,
.comunicum-legal-page__inner
{
max-width: 1400px;
width: 100%;
}

.comunicum-legal-page__inner
{
box-sizing: border-box;
}

.comunicum-legal-page__updated
{
font-size: 0.875rem;
color: var(--color-text-secondary);
margin: 0 0 1.5rem;
}

.comunicum-legal-page h2
{
font-size: clamp(1.2rem, 2.4vw, 1.45rem);
margin: 2rem 0 0.85rem;
color: var(--color-text);
}

.comunicum-legal-page p,
.comunicum-legal-page li
{
line-height: 1.7;
color: var(--color-text-secondary);
}

.comunicum-legal-page ul
{
padding-left: 1.25rem;
margin: 0 0 1rem;
}

.comunicum-legal-page__identity
{
list-style: none;
padding: 1.1rem 1.2rem;
margin: 0 0 1.5rem;
border: 1px solid rgba(91, 79, 255, 0.14);
border-radius: 0.9rem;
background: linear-gradient(180deg, #ffffff 0%, #faf9ff 100%);
}

.comunicum-legal-page__identity li
{
margin-bottom: 0.55rem;
}

.comunicum-legal-page__identity li:last-child
{
margin-bottom: 0;
}

.comunicum-legal-page a
{
color: var(--color-primary);
text-decoration: underline;
text-underline-offset: 0.15em;
}

.comunicum-legal-page #cmplz-document,
.comunicum-legal-page .cmplz-document
{
margin-top: 1.5rem;
max-width: none;
padding-left: 0;
padding-right: 0;
}

.comunicum-portfolio-archive-body .site-main
{
padding: 0;
}

.comunicum-portfolio-pro.portfolio-archive
{
padding-top: clamp(4rem, 8vw, 6rem);
padding-bottom: clamp(4.5rem, 9vw, 7rem);
}

.comunicum-portfolio-pro.portfolio-archive .portfolio-archive__header
{
margin-bottom: clamp(2.5rem, 5vw, 3.5rem);
}

.comunicum-portfolio-pro.portfolio-archive .portfolio-pro-title
{
font-size: clamp(2.25rem, 5vw, 3.25rem);
}

.comunicum-portfolio-pro.portfolio-archive .portfolio-archive__footer
{
margin-top: clamp(3rem, 6vw, 4.5rem);
margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

.portfolio-archive__pagination
{
display: flex;
justify-content: center;
align-items: center;
flex-wrap: wrap;
gap: 0.5rem;
margin-top: clamp(2rem, 4vw, 3rem);
}

.portfolio-archive__page-btn
{
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 2.5rem;
min-height: 2.5rem;
padding: 0.5rem 0.95rem;
border-radius: 0.75rem;
border: 1px solid rgba(91, 79, 255, 0.18);
background: #ffffff;
color: var(--color-text);
font-size: 0.875rem;
font-weight: 600;
text-decoration: none;
transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.portfolio-archive__page-btn:hover
{
background: rgba(91, 79, 255, 0.08);
border-color: rgba(91, 79, 255, 0.35);
color: var(--color-primary);
}

.portfolio-archive__page-btn.is-current
{
background: var(--gradient-primary);
border-color: transparent;
color: #ffffff;
box-shadow: 0 10px 24px rgba(91, 79, 255, 0.28);
}

@media (max-width: 640px)
{
	.comunicum-portfolio-pro.portfolio-archive .portfolio-pro-filters
	{
		justify-content: flex-start;
		overflow-x: auto;
		flex-wrap: nowrap;
		padding-bottom: 0.35rem;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	.comunicum-portfolio-pro.portfolio-archive .portfolio-pro-filters::-webkit-scrollbar
	{
		display: none;
	}

	.comunicum-portfolio-pro.portfolio-archive .portfolio-filter-btn
	{
		flex-shrink: 0;
	}
}
