/* Eclan theme — site styles. Colors & fonts come from theme.json presets. */
:root {
	--ec-ink: var(--wp--preset--color--ink, #0B0C0F);
	--ec-ink2: var(--wp--preset--color--ink-2, #15171C);
	--ec-paper: var(--wp--preset--color--paper, #F5F3EE);
	--ec-cobalt: var(--wp--preset--color--cobalt, #1F3FD1);
	--ec-cobalt-d: var(--wp--preset--color--cobalt-dark, #152C99);
	--ec-spark: var(--wp--preset--color--spark, #7C93FF);
	--ec-muted: var(--wp--preset--color--muted, #4A4F5C);
	--ec-line: var(--wp--preset--color--line, #DDD8CE);
	--ec-soft: var(--wp--preset--color--soft, #EEF0FB);
	--ec-display: var(--wp--preset--font-family--display);
	--ec-mono-f: var(--wp--preset--font-family--mono);
	--ec-radius: 14px;
	--ec-pad: clamp(3.5rem, 7vw, 6.5rem);
}
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
.ec-main { margin-block-start: 0 !important; }
.ec-main > .entry-content, .ec-main > .wp-block-post-content { margin-block-start: 0; }
.ec-main .wp-block-post-content > .alignfull:first-child { margin-block-start: 0; }
.ec-main .wp-block-post-content > * + .alignfull, .ec-main .wp-block-post-content > .alignfull + * { margin-block-start: 0; }
:focus-visible { outline: 2px solid var(--ec-spark); outline-offset: 3px; }
.ec-icon { flex-shrink: 0; }
.ec-mono, .ec-eyebrow, .ec-num, .ec-tags { font-family: var(--ec-mono-f); }

/* ---------- Header ---------- */
.ec-header { background: var(--ec-ink); color: #E7E9EF; position: sticky; top: 0; z-index: 50; padding-block: 0; }
.admin-bar .ec-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ec-header { top: 46px; } }
.ec-header__bar { min-height: 76px; gap: 2rem; }
.ec-logo { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: #fff; flex-shrink: 0; }
.ec-logo:hover { color: #fff; }
.ec-logo__mark { box-shadow: inset 0 0 0 1px #2B2F3A; border-radius: 10px; }
.ec-logo__word { display: flex; flex-direction: column; line-height: 1; }
.ec-logo__name { font-family: var(--ec-display); font-weight: 700; font-size: 24px; letter-spacing: -0.03em; color: #fff; }
.ec-logo__sub { font-family: var(--ec-mono-f); font-size: 9.5px; letter-spacing: 0.3em; color: #A9AEBB; margin-top: 5px; }
.ec-nav { font-size: 15px; font-weight: 500; }
.ec-nav .wp-block-navigation-item__content { color: #E7E9EF; text-decoration: none; padding-block: 0.4rem; }
.ec-nav .wp-block-navigation-item__content:hover { color: var(--ec-spark); }
.ec-nav .wp-block-navigation__container { gap: 1.75rem; }
.ec-nav .wp-block-navigation__submenu-container { background: var(--ec-ink2) !important; border: 1px solid #2B2F3A !important; border-radius: 12px; padding: 0.5rem !important; min-width: 250px !important; color: #E7E9EF; box-shadow: 0 20px 50px -20px rgba(0,0,0,.6); }
.ec-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0.55rem 0.75rem !important; border-radius: 8px; }
.ec-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: #22252E; color: #fff; }
.ec-nav .wp-block-navigation__responsive-container-open, .ec-nav .wp-block-navigation__responsive-container-close { color: #fff; }
.ec-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--ec-ink) !important; color: #fff !important; padding: 1.5rem; }
.ec-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 0.9rem; font-size: 1.25rem; }
.ec-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; background: transparent !important; box-shadow: none; padding: 0.5rem 0 0 1rem !important; font-size: 1rem; }
.ec-header__cta .wp-block-button__link { padding: 0.7rem 1.1rem; font-size: 15px; }
@media (max-width: 1180px) { .ec-header__cta { display: none; } }

/* ---------- Sections ---------- */
.ec-section { padding-block: var(--ec-pad); position: relative; }
.ec-section.is-white { background: #fff; }
.ec-section.is-dark { background: var(--ec-ink); color: #C9CCD6; }
.ec-section.is-dark :where(h1, h2, h3) { color: #fff; }
.ec-section.is-dark .ec-eyebrow { color: var(--ec-spark); }
.ec-section.is-dark a:not(.wp-element-button) { color: var(--ec-spark); }
.ec-wrap > * + * { margin-block-start: clamp(2rem, 4vw, 3rem); }
.ec-eyebrow { font-size: 0.8rem; letter-spacing: 0.09em; text-transform: uppercase; color: var(--ec-cobalt); font-weight: 500; margin: 0; }
.ec-eyebrow--muted { color: #A9AEBB !important; }
.ec-lead { font-size: var(--wp--preset--font-size--large); line-height: 1.6; color: var(--ec-muted); }
.is-dark .ec-lead { color: #C9CCD6; }
.ec-small { font-size: 0.9rem; color: var(--ec-muted); }
.is-dark .ec-small { color: #A9AEBB; }
.ec-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem 4rem; flex-wrap: wrap; }
.ec-head > * { margin: 0 !important; }
.ec-head__title { max-width: 760px; }
.ec-head__title > * + * { margin-block-start: 0.9rem; }
.ec-head__title h2 { margin: 0; }
.ec-head__lead { max-width: 440px; margin: 0; }
.ec-center { text-align: center; max-width: 860px; margin-inline: auto; }
.ec-center > * + * { margin-block-start: 1.25rem; }
.ec-center .ec-lead { max-width: 720px; margin-inline: auto; }

/* grids */
.ec-grid { display: grid; gap: 1.5rem; }
.ec-grid > * { margin: 0 !important; }
.ec-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ec-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ec-grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; }
.ec-grid--tech { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1.5rem; }
@media (max-width: 1100px) {
	.ec-grid--5, .ec-grid--tech { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.ec-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) { .ec-grid--3 { grid-template-columns: minmax(0, 1fr); } .ec-grid--5, .ec-grid--tech { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .ec-grid--4, .ec-grid--5, .ec-grid--tech { grid-template-columns: minmax(0, 1fr); } }

/* cards */
.ec-card { background: #fff; border: 1px solid var(--ec-line); border-radius: var(--ec-radius); box-sizing: border-box; }
.ec-card > * { margin: 0; }
.ec-card--service { padding: 2rem; display: flex; flex-direction: column; gap: 1rem; position: relative; min-height: 330px; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.ec-card--service:hover { transform: translateY(-3px); box-shadow: 0 24px 50px -30px rgba(21,23,28,.45); border-color: #C9C3B6; }
.ec-card--service h3 { font-size: 1.55rem; margin: 0; }
.ec-card--service h3 a { color: inherit; text-decoration: none; }
.ec-card--service h3 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.ec-card--service h3 a::before { content: "→"; position: absolute; right: 2rem; bottom: 1.8rem; font-size: 1.4rem; color: var(--ec-cobalt); transition: transform .2s ease; }
.ec-card--service:hover h3 a::before { transform: translateX(4px); }
.ec-card--service p:not(.ec-num):not(.ec-tags) { color: var(--ec-muted); }
.ec-card--service .ec-tags { margin-top: auto; padding-right: 2.5rem; }
.ec-card.is-dark { background: var(--ec-ink); border-color: var(--ec-ink); color: #fff; }
.ec-card.is-dark p:not(.ec-num):not(.ec-tags) { color: #C9CCD6; }
.ec-card.is-dark h3, .ec-card.is-dark h3 a { color: #fff; }
.ec-card.is-dark .ec-tags { color: #C7D0FF; }
.ec-card.is-dark h3 a::before { color: var(--ec-spark); }
.ec-num { font-size: 0.8rem; color: #6B7080; }
.ec-tags { font-size: 0.78rem; letter-spacing: 0.02em; color: #1B2F9E; }
.ec-card--mini { padding: 1.5rem; }
.ec-card--mini h3 { font-size: 1.1rem; margin-bottom: 0.4rem; }
.ec-card--mini p { font-size: 0.9rem; color: var(--ec-muted); line-height: 1.5; }

/* hero */
.ec-hero { background: var(--ec-ink); color: #C9CCD6; overflow: hidden; padding-block: clamp(3.5rem, 7vw, 6rem) clamp(4rem, 8vw, 7rem); }
.ec-hero::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(#ffffff0a 1px, transparent 1px), linear-gradient(90deg, #ffffff0a 1px, transparent 1px); background-size: 56px 56px; mask-image: radial-gradient(ellipse 70% 80% at 70% 30%, #000 30%, transparent 75%); -webkit-mask-image: radial-gradient(ellipse 70% 80% at 70% 30%, #000 30%, transparent 75%); pointer-events: none; }
.ec-hero::after { content: ""; position: absolute; width: 640px; height: 640px; right: -120px; top: -220px; background: radial-gradient(circle, rgba(31,63,209,.45), transparent 65%); pointer-events: none; }
.ec-hero > * { position: relative; z-index: 1; }
.ec-hero h1 { color: #fff; margin: 0; }
.ec-hero .ec-eyebrow { color: var(--ec-spark); }
.ec-hero .ec-lead { color: #C9CCD6; }
.ec-hero__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2.5rem, 5vw, 4.5rem); align-items: center; }
.ec-hero__grid > * { margin: 0 !important; }
.ec-hero__copy > * + * { margin-block-start: 1.5rem; }
.ec-hero__lead { max-width: 620px; }
.ec-checks { list-style: none; margin: 0.5rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.6rem 1.5rem; font-size: 0.95rem; color: #C9CCD6; }
.ec-checks li { display: flex; align-items: center; gap: 0.5rem; }
.ec-checks svg { color: var(--ec-spark); }
@media (max-width: 960px) { .ec-hero__grid { grid-template-columns: minmax(0, 1fr); } }

/* light hero variant for service/pricing/contact pages */
.ec-hero--service, .ec-hero--pricing { background: var(--ec-paper); color: var(--ec-ink2); }
.ec-hero--service::before, .ec-hero--pricing::before { background-image: linear-gradient(#15171C0b 1px, transparent 1px), linear-gradient(90deg, #15171C0b 1px, transparent 1px); }
.ec-hero--service::after, .ec-hero--pricing::after { background: radial-gradient(circle, rgba(124,147,255,.28), transparent 65%); }
.ec-hero--service h1, .ec-hero--pricing h1 { color: var(--ec-ink2); }
.ec-hero--service .ec-eyebrow, .ec-hero--pricing .ec-eyebrow { color: var(--ec-cobalt); }
.ec-hero--service .ec-lead, .ec-hero--pricing .ec-lead { color: var(--ec-muted); }
.ec-hero--service .ec-hero__grid { align-items: start; }
.ec-hero--service .ec-hero__copy { padding-top: 1.5rem; }
.ec-hero--service h1 { font-size: clamp(2.4rem, 5vw, 4rem); }

/* pipeline card */
.ec-pipeline { background: #fff; color: var(--ec-ink2); border-radius: 18px; padding: 1.75rem; box-shadow: 0 40px 80px -30px rgba(0,0,0,.7), 0 0 0 1px rgba(255,255,255,.06); }
.ec-pipeline__top { display: flex; justify-content: space-between; align-items: center; font-size: 0.8rem; color: var(--ec-muted); }
.ec-badge { font-family: var(--ec-mono-f); font-size: 0.72rem; padding: 0.25rem 0.6rem; border-radius: 99px; background: #E3F4EA; color: #146B3A; }
.ec-pipeline__title { font-family: var(--ec-display); font-weight: 700; font-size: 1.35rem; margin: 0.9rem 0 1.1rem; }
.ec-pipeline__steps { list-style: none; margin: 0 0 0 7px; padding: 0; border-left: 2px solid var(--ec-line); }
.ec-pipeline__steps li { position: relative; padding: 0 0 1rem 1.25rem; display: flex; flex-direction: column; font-size: 0.9rem; color: var(--ec-muted); }
.ec-pipeline__steps li:last-child { padding-bottom: 0; }
.ec-pipeline__steps li strong { color: var(--ec-ink2); font-weight: 600; font-size: 0.95rem; }
.ec-pipeline__steps li::before { content: ""; position: absolute; left: -8px; top: 4px; width: 14px; height: 14px; border-radius: 50%; background: var(--ec-cobalt); box-sizing: border-box; }
.ec-pipeline__steps li.is-next::before { background: #fff; border: 2px solid var(--ec-cobalt); animation: ec-pulse 1.8s ease-in-out infinite; }
@keyframes ec-pulse { 50% { box-shadow: 0 0 0 6px rgba(31,63,209,.15); } }
@media (prefers-reduced-motion: reduce) { .ec-pipeline__steps li.is-next::before { animation: none; } html { scroll-behavior: auto; } }
.ec-pipeline__foot { font-size: 0.82rem; color: var(--ec-muted); border-top: 1px solid #EAE6DD; padding-top: 0.9rem; margin: 1.1rem 0 0; }

/* buttons */
.wp-block-button.is-style-light .wp-block-button__link { background: #fff; color: var(--ec-ink2); }
.wp-block-button.is-style-light .wp-block-button__link:hover { background: #E9E6DF; color: var(--ec-ink2); }
.wp-block-button.is-style-ghost .wp-block-button__link { background: transparent; color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.55); }
.wp-block-button.is-style-ghost .wp-block-button__link:hover { background: rgba(255,255,255,.1); color: #fff; }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--ec-ink2); border: 1.5px solid var(--ec-ink2); padding: calc(0.95rem - 1.5px) calc(1.6rem - 1.5px); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--ec-ink2); color: #fff; }
.wp-block-buttons { gap: 0.75rem; }

/* proof strip */
.ec-section--proof { background: var(--ec-ink2); padding-block: 2rem; border-top: 1px solid #22252E; }
.ec-proof { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.ec-proof > * { margin: 0 !important; }
.ec-proof__intro > * { margin: 0; }
.ec-proof__label { color: #fff; font-family: var(--ec-display); font-size: 1.25rem; }
.ec-proof__link a { color: var(--ec-spark); font-size: 0.95rem; text-decoration: none; }
.ec-stats { display: grid; gap: 1px; }
.ec-stats--row { grid-template-columns: repeat(4, auto); gap: 0 3rem; }
.ec-stat { display: flex; flex-direction: column; }
.ec-stat__num { font-family: var(--ec-display); font-weight: 700; font-size: 2rem; letter-spacing: -0.03em; color: #fff; line-height: 1.1; }
.ec-stat__label { font-size: 0.85rem; color: #A9AEBB; }
@media (max-width: 760px) { .ec-stats--row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 2rem; } }
.ec-stats--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); background: #2B2F3A; border: 1px solid #2B2F3A; border-radius: 12px; overflow: hidden; margin-top: 1.25rem; }
.ec-stats--grid .ec-stat { background: var(--ec-ink); padding: 1.25rem; }
.ec-proof-card { background: var(--ec-ink); color: #C9CCD6; border-radius: 18px; padding: clamp(1.5rem, 3vw, 2.5rem); }
.ec-proof-card > * { margin: 0; }
.ec-proof-card h3 { color: #fff; font-size: 1.9rem; margin-top: 0.5rem; }
.ec-proof-card .ec-eyebrow { color: var(--ec-spark); }
.ec-proof-card .ec-more { margin-top: 1.25rem; }
.ec-proof-card .ec-more a { color: var(--ec-spark); }

/* split layouts */
.ec-split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2.5rem, 6vw, 5rem); align-items: start; }
.ec-split > * { margin: 0 !important; }
.ec-split__copy > * + * { margin-block-start: 1.25rem; }
.ec-split__side > * + * { margin-block-start: 1rem; }
.ec-split--faq { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); }
@media (max-width: 900px) { .ec-split, .ec-split--faq { grid-template-columns: minmax(0, 1fr); } }
.ec-workflow { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; counter-reset: none; }
.ec-workflow li { display: flex; gap: 1rem; align-items: center; padding: 1rem 1.25rem; border: 1px solid #2B2F3A; border-radius: 10px; color: #E7E9EF; background: #ffffff05; }
.ec-workflow .ec-mono { color: var(--ec-spark); font-size: 0.85rem; }
@media (max-width: 560px) { .ec-workflow { grid-template-columns: minmax(0, 1fr); } }

/* tech */
.ec-tech__item h3 { font-size: 1rem; margin: 0 0 0.4rem; }
.ec-tech__item p { font-size: 0.9rem; color: var(--ec-muted); margin: 0; line-height: 1.55; }
.ec-tech__item { border-top: 2px solid var(--ec-ink2); padding-top: 1rem; }

/* solutions */
.ec-solution { overflow: hidden; display: flex; flex-direction: column; }
.ec-solution__top { padding: 1.75rem; min-height: 190px; display: flex; flex-direction: column; justify-content: space-between; box-sizing: border-box; }
.ec-solution__top > * { margin: 0; }
.ec-solution__top.is-cobalt { background: var(--ec-cobalt); }
.ec-solution__top.is-ink { background: var(--ec-ink2); }
.ec-solution__top.is-sand { background: #E4E0D7; }
.ec-solution__top.is-cobalt .ec-eyebrow { color: #C7D0FF; }
.ec-solution__top.is-ink .ec-eyebrow { color: #A9AEBB; }
.ec-solution__top.is-sand .ec-eyebrow { color: var(--ec-muted); }
.ec-solution__big { font-family: var(--ec-display); font-weight: 700; font-size: 1.75rem; line-height: 1.12; letter-spacing: -0.02em; color: #fff; }
.is-sand .ec-solution__big { color: var(--ec-ink2); }
.ec-solution__body { padding: 1.75rem; display: flex; flex-direction: column; gap: 1rem; flex-grow: 1; }
.ec-solution__body > * { margin: 0; }
.ec-solution__body h3 { font-size: 1.35rem; }
.ec-dl { display: grid; grid-template-columns: 88px 1fr; gap: 0.5rem 0.75rem; font-size: 0.92rem; line-height: 1.5; margin: 0; }
.ec-dl dt { color: #6B7080; }
.ec-dl dd { margin: 0; }
.ec-more { margin-top: auto !important; }
.ec-more a { font-weight: 600; text-decoration: none; }

/* steps */
.ec-step { border-top: 4px solid var(--ec-cobalt); padding-top: 1.25rem; }
.ec-step > * { margin: 0; }
.ec-step h3 { font-size: 1.2rem; margin: 0.6rem 0 0.4rem; }
.ec-step p:last-child { color: var(--ec-muted); font-size: 0.95rem; }

/* faq */
.ec-faq { border-top: 1px solid #CFC9BD; }
.ec-faq > * { margin: 0 !important; }
.ec-faq .wp-block-details { border-bottom: 1px solid #CFC9BD; padding: 1.4rem 0; }
.ec-faq summary { font-family: var(--ec-display); font-weight: 700; font-size: 1.2rem; cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.ec-faq summary::-webkit-details-marker { display: none; }
.ec-faq summary::after { content: "+"; font-family: var(--ec-mono-f); font-weight: 500; color: var(--ec-cobalt); font-size: 1.4rem; line-height: 1; transition: transform .2s; }
.ec-faq details[open] summary::after { transform: rotate(45deg); }
.ec-faq details p { color: var(--ec-muted); margin: 0.8rem 0 0; max-width: 680px; }

/* contact */
.ec-contact { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); border-radius: 18px; overflow: hidden; box-shadow: 0 30px 70px -40px rgba(21,23,28,.5); }
.ec-contact > * { margin: 0 !important; }
.ec-contact__panel { background: var(--ec-cobalt); color: #E1E6FF; padding: clamp(2rem, 4vw, 3rem); }
.ec-contact__panel > * { margin: 0; }
.ec-contact__panel > * + * { margin-top: 1.25rem; }
.ec-contact__panel h2 { color: #fff; font-size: clamp(2rem, 3.4vw, 2.6rem); }
.ec-contact__panel .ec-lead { color: #E1E6FF; }
.ec-contact__panel .ec-eyebrow { color: #C7D0FF; border-top: 1px solid #4A63E0; padding-top: 1.5rem; margin-top: 2rem; }
.ec-contact-list { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 0.8rem; }
.ec-contact-list a { color: #fff; text-decoration: none; display: flex; gap: 0.75rem; align-items: center; }
.ec-contact-list a:hover { text-decoration: underline; }
.ec-offers { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.ec-offers a { color: #fff; }
.ec-contact__form { background: #fff; padding: clamp(1.5rem, 4vw, 3rem); }
@media (max-width: 900px) { .ec-contact { grid-template-columns: minmax(0, 1fr); } }

/* service page */
.ec-crumb { display: flex; gap: 0.5rem; font-size: 0.88rem; color: var(--ec-muted); flex-wrap: wrap; }
.ec-crumb a { color: var(--ec-muted); }
.ec-hero__form .eclan-form { box-shadow: 0 30px 60px -35px rgba(21,23,28,.45); }
.ec-cells { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--ec-line); border-left: 1px solid var(--ec-line); }
.ec-cells > * { margin: 0 !important; }
.ec-cell { padding: 1.6rem; border-right: 1px solid var(--ec-line); border-bottom: 1px solid var(--ec-line); min-height: 140px; box-sizing: border-box; }
.ec-cell > * { margin: 0; }
.ec-cell h3 { font-size: 1.15rem; margin-bottom: 0.4rem; }
.ec-cell p { color: var(--ec-muted); font-size: 0.93rem; line-height: 1.5; }
.ec-cell--cta { background: var(--ec-soft); display: flex; flex-direction: column; justify-content: space-between; gap: 1rem; }
.ec-cell--cta .ec-cell__cta-text { color: var(--ec-ink2); font-size: 1.05rem; }
@media (max-width: 1000px) { .ec-cells { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .ec-cells { grid-template-columns: minmax(0, 1fr); } }
.ec-ticks { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 0.65rem; }
.ec-ticks li { position: relative; padding-left: 1.75rem; }
.ec-ticks li::before { content: ""; position: absolute; left: 0; top: 0.3em; width: 1.05rem; height: 1.05rem; background: var(--ec-cobalt); -webkit-mask: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat; mask: 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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat; }
.ec-related { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; }
.ec-related a { display: flex; justify-content: space-between; align-items: center; padding: 1.1rem 1.25rem; background: #fff; border: 1px solid var(--ec-line); border-radius: 10px; color: var(--ec-ink2); text-decoration: none; font-weight: 600; transition: border-color .2s; }
.ec-related a:hover { border-color: var(--ec-cobalt); color: var(--ec-cobalt); }
@media (max-width: 760px) { .ec-related { grid-template-columns: minmax(0, 1fr); } }

/* CTA band */
.ec-section--cta { padding-block: 0 var(--ec-pad); }
.ec-cta { background: var(--ec-cobalt); border-radius: 18px; padding: clamp(2rem, 5vw, 3.5rem) clamp(1.5rem, 5vw, 4rem); display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; position: relative; overflow: hidden; }
.ec-cta::after { content: ""; position: absolute; right: -80px; bottom: -160px; width: 420px; height: 420px; background: radial-gradient(circle, rgba(124,147,255,.55), transparent 65%); pointer-events: none; }
.ec-cta > * { margin: 0 !important; position: relative; z-index: 1; }
.ec-cta__copy > * { margin: 0; }
.ec-cta__copy > * + * { margin-top: 0.6rem; }
.ec-cta h2 { color: #fff; font-size: clamp(1.75rem, 3vw, 2.4rem); }
.ec-cta .ec-lead { color: #E1E6FF; }

/* pricing */
.ec-region { display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 4px; padding: 5px; background: #fff; border: 1px solid var(--ec-line); border-radius: 99px; margin-top: 2rem !important; }
.ec-region button { font: inherit; font-size: 0.93rem; font-weight: 500; border: 0; background: transparent; color: var(--ec-ink2); padding: 0.6rem 1.1rem; border-radius: 99px; cursor: pointer; min-height: 44px; }
.ec-region button[aria-pressed="true"] { background: var(--ec-ink); color: #fff; font-weight: 600; }
.ec-region__note { font-size: 0.88rem; color: var(--ec-muted); margin-top: 0.75rem !important; }
.ec-section--packs { padding-block: 0 var(--ec-pad); padding-inline: clamp(1rem, 3vw, 4rem) !important; }
.ec-packs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; max-width: 1340px; margin: 0 auto !important; }
.ec-packs > * { margin: 0 !important; }
@media (max-width: 1200px) { .ec-packs { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 860px) { .ec-packs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .ec-packs { grid-template-columns: minmax(0, 1fr); } }
.ec-pack { padding: 1.75rem; display: flex; flex-direction: column; gap: 1rem; position: relative; }
.ec-pack h3 { font-size: 1.35rem; }
.ec-pack .ec-ticks { font-size: 0.93rem; gap: 0.5rem; margin-bottom: 0.5rem; }
.ec-pack__cta { margin-top: auto !important; }
.ec-pack__cta .wp-block-button { width: 100%; }
.ec-pack__cta .wp-block-button__link { width: 100%; box-sizing: border-box; }
.ec-pack.is-featured { border: 2px solid var(--ec-cobalt); box-shadow: 0 30px 60px -35px rgba(31,63,209,.55); }
.ec-pack__badge { position: absolute; top: -13px; left: 1.5rem; margin: 0 !important; font-family: var(--ec-mono-f); font-size: 0.7rem; letter-spacing: 0.06em; text-transform: uppercase; background: var(--ec-cobalt); color: #fff; padding: 0.3rem 0.7rem; border-radius: 99px; }
.ec-pack.is-dark .ec-ticks li::before { background: var(--ec-spark); }
.ec-pack.is-dark .ec-small, .ec-pack.is-dark .ec-price__from { color: #A9AEBB; }
.ec-price { font-family: var(--ec-display); font-weight: 700; font-size: 2rem; letter-spacing: -0.02em; line-height: 1.1; display: flex; flex-direction: column; }
.ec-price__from { font-family: var(--wp--preset--font-family--body); font-weight: 400; font-size: 0.8rem; letter-spacing: 0; color: var(--ec-muted); }
.ec-price--sm { font-size: 1.35rem; flex-direction: row; align-items: baseline; }
.ec-price__per { font-family: var(--wp--preset--font-family--body); font-size: 0.85rem; font-weight: 500; color: var(--ec-muted); }
.ec-plan { padding: 1.75rem; }
.ec-plan > * + * { margin-top: 0.75rem; }
.ec-plan p:last-child { color: var(--ec-muted); font-size: 0.95rem; }
.ec-plan__head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.ec-plan__head > * { margin: 0 !important; }
.ec-includes { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 2rem; }
.ec-includes li { border-top: 1px solid #CFC9BD; padding: 0.9rem 0; }
@media (max-width: 600px) { .ec-includes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* quote & contact pages */
.ec-section--quote { padding-block: clamp(2.5rem, 5vw, 4.5rem) var(--ec-pad); }
.ec-quote { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
.ec-quote > * { margin: 0 !important; }
.ec-quote__aside { position: sticky; top: 110px; }
.ec-quote__aside > * + * { margin-block-start: 1.25rem; }
.ec-quote__aside h1 { font-size: clamp(2.4rem, 4.2vw, 3.4rem); }
.ec-next { list-style: none; padding: 1.5rem 0 0; margin: 0; border-top: 1px solid #CFC9BD; display: flex; flex-direction: column; gap: 0.9rem; }
.ec-next li { display: flex; gap: 0.9rem; }
.ec-next .ec-mono { color: var(--ec-cobalt); font-size: 0.85rem; padding-top: 2px; }
@media (max-width: 900px) { .ec-quote { grid-template-columns: minmax(0, 1fr); } .ec-quote__aside { position: static; } }
.ec-contact-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-top: 3rem !important; }
.ec-contact-card { background: #fff; border: 1px solid var(--ec-line); border-radius: var(--ec-radius); padding: 1.5rem; display: flex; flex-direction: column; gap: 0.4rem; font-size: 0.95rem; color: var(--ec-muted); }
.ec-contact-card svg { color: var(--ec-cobalt); margin-bottom: 0.5rem; }
.ec-contact-card strong { color: var(--ec-ink2); font-family: var(--ec-display); font-size: 1.1rem; }
@media (max-width: 900px) { .ec-contact-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .ec-contact-cards { grid-template-columns: minmax(0, 1fr); } }

/* about */
.ec-prose > * { margin: 0; }
.ec-prose > * + * { margin-top: 1rem; }
.ec-prose p { font-size: 1.1rem; color: var(--ec-muted); }
.ec-value { border-top: 2px solid var(--ec-ink2); padding-top: 1.25rem; }
.ec-value > * { margin: 0; }
.ec-value h3 { font-size: 1.3rem; margin-bottom: 0.5rem; }
.ec-value p { color: var(--ec-muted); }

/* generic pages, blog */
.ec-page { padding-block: clamp(2.5rem, 6vw, 5rem); }
.ec-page__title { margin-bottom: 2rem; }
.ec-blog-head { margin-bottom: 2.5rem; }
.ec-blog-head > * + * { margin-top: 0.75rem; }
.ec-blog-head:has(.wp-block-query-title) .ec-blog-head__default { display: none; }
.ec-post-card { padding: 1.75rem; height: 100%; display: flex; flex-direction: column; gap: 0.75rem; }
.ec-post-card > * { margin: 0; }
.ec-post-card h2 { font-size: 1.35rem; }
.ec-post-card h2 a { color: inherit; text-decoration: none; }
.ec-post-card .wp-block-post-excerpt__excerpt { color: var(--ec-muted); font-size: 0.95rem; margin: 0; }
.ec-article-cta { background: var(--ec-soft); border-radius: var(--ec-radius); padding: 2rem; margin-top: 3rem; }
.ec-article-cta > * { margin: 0; }
.ec-article-cta > * + * { margin-top: 0.75rem; }

/* footer */
.ec-footer { background: var(--ec-ink); color: #A9AEBB; padding-block: clamp(3rem, 6vw, 4.5rem) 2rem; font-size: 0.95rem; }
.ec-footer a { color: #C9CCD6; text-decoration: none; }
.ec-footer a:hover { color: #fff; }
.ec-footer__grid { display: grid; grid-template-columns: minmax(0, 4fr) repeat(3, minmax(0, 2fr)); gap: 2.5rem; }
.ec-footer__grid > * { margin: 0 !important; }
.ec-footer__brand > * + * { margin-top: 1.25rem; }
.ec-footer__brand p { max-width: 380px; line-height: 1.6; }
.ec-footer__mail a { color: #fff; }
.ec-footer h3 { color: #fff; font-family: var(--wp--preset--font-family--body); font-size: 0.95rem; font-weight: 600; letter-spacing: 0; margin: 0 0 1rem; }
.ec-footer ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.6rem; }
.ec-footer__bottom { border-top: 1px solid #22252E; margin-top: 3rem !important; padding-top: 1.5rem; font-size: 0.88rem; }
.ec-footer__bottom p { margin: 0; }
@media (max-width: 900px) { .ec-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ec-footer__brand { grid-column: 1 / -1; } }

/* floating WhatsApp / contact button (rendered by Eclan Site Kit) */
.ec-float { position: fixed; right: 20px; bottom: 20px; z-index: 60; width: 58px; height: 58px; border-radius: 50%; background: #128C4A; color: #fff !important; display: flex; align-items: center; justify-content: center; box-shadow: 0 12px 30px -8px rgba(0,0,0,.45); transition: transform .2s; }
.ec-float:hover { transform: scale(1.06); }
.ec-header.is-scrolled { box-shadow: 0 10px 30px -18px rgba(0,0,0,.8); }

/* ---------- refinements ---------- */
@media (max-width: 1180px) { .ec-header .ec-header__cta { display: none !important; } }
.ec-head__title { max-width: 680px; }
.ec-wrap > .ec-related { margin-top: 2rem; }
.ec-pack.is-dark .ec-price { color: #fff; }
.ec-hero--pricing h1 { font-size: clamp(2.4rem, 5vw, 3.75rem); }
.ec-hero__proof { font-family: var(--ec-mono-f); font-size: 0.8rem; color: var(--ec-muted); display: flex; flex-wrap: wrap; gap: 0.4rem 1.25rem; margin-top: 2rem !important; padding-top: 1.5rem; border-top: 1px solid var(--ec-line); }
.ec-hero__proof strong { color: var(--ec-ink2); font-weight: 500; }
.ec-cell--span2 { grid-column: span 2; }
.ec-cell--span3 { grid-column: span 3; }
.ec-cell--span4 { grid-column: span 4; flex-direction: row; align-items: center; }
@media (max-width: 1000px) { .ec-cell--span3, .ec-cell--span4 { grid-column: span 2; } }
@media (max-width: 560px) { .ec-cell--span2, .ec-cell--span3, .ec-cell--span4 { grid-column: auto; } }
@media (max-width: 860px) { .ec-card--service { min-height: 0; } }
@media (max-width: 600px) {
	.ec-hero h1 { font-size: 2.35rem; }
	.ec-logo__sub { letter-spacing: 0.22em; }
	.ec-stat__num { font-size: 1.6rem; }
}
html, body { overflow-x: clip; }

/* Navigation colors: beat core's :not(.has-background) submenu defaults */
.ec-header .ec-nav .wp-block-navigation-item__content,
.ec-header .ec-nav .wp-block-navigation-item .wp-block-navigation-submenu__toggle { color: #E7E9EF !important; }
.ec-header .ec-nav .wp-block-navigation-item__content:hover,
.ec-header .ec-nav .wp-block-navigation-item__content:focus-visible { color: #fff !important; }
.ec-header .ec-nav .wp-block-navigation__submenu-icon svg { stroke: currentColor; }
.ec-header .ec-nav .wp-block-navigation__submenu-container,
.ec-header .ec-nav .has-child .wp-block-navigation__submenu-container { background-color: #15171C !important; color: #E7E9EF !important; border: 1px solid #2B2F3A !important; }
.ec-header .ec-nav .wp-block-navigation__submenu-container .wp-block-navigation-item { background: transparent !important; }
.ec-header .ec-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.ec-header .ec-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible { background: #262A35 !important; color: #fff !important; }
.ec-header .ec-nav .wp-block-navigation__responsive-container.is-menu-open,
.ec-header .ec-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { background-color: #0B0C0F !important; color: #fff !important; border: 0 !important; }
.ec-header .ec-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { color: #fff !important; }

/* images */
.ec-illus { margin: 0; }
.ec-illus img { display: block; width: 100%; height: auto; aspect-ratio: 640 / 440; border-radius: 18px; }
.ec-card__top { display: flex; justify-content: space-between; align-items: flex-start; }
.ec-card__top > * { margin: 0 !important; }
.ec-card__icon { margin: 0; }
.ec-card__icon img { width: 48px; height: 48px; display: block; }
.ec-card.is-dark .ec-card__icon img { filter: invert(1) hue-rotate(180deg); }
.ec-hero__icon img { width: 56px; height: 56px; }
.ec-solution__img { margin: 0 !important; }
.ec-solution__img img { border-radius: 0; }
.ec-solution__body .ec-eyebrow { color: var(--ec-cobalt); }
.ec-solution__body .ec-solution__big { color: var(--ec-muted); font-size: 1.05rem; font-family: var(--wp--preset--font-family--body); font-weight: 500; letter-spacing: 0; line-height: 1.45; }
.ec-stack > * { margin: 0 !important; }
.ec-stack > * + * { margin-top: 1.25rem !important; }
.ec-split__copy .ec-illus { margin-top: 2rem !important; }
@media (max-width: 900px) { .ec-split__copy .ec-illus { display: none; } }
