/* CSS เพิ่มเติมที่ theme.json ทำไม่ได้ ใช้ token จาก theme.json ผ่าน var(--wp--preset--*) */

html { scroll-behavior: smooth; }
:where(body) { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
:where(a):focus-visible,
:where(button, .wp-element-button):focus-visible { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 2px; }
[id] { scroll-margin-top: calc(88px + var(--wp-admin--admin-bar--height, 0px)); }

/* ---------- Header ---------- */
.sodia-site-header {
	position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 50;
	background: var(--wp--preset--color--base);
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.sodia-header { padding-block: 14px; }
.sodia-header__bar { gap: var(--wp--preset--spacing--40); }
.sodia-header__right { gap: var(--wp--preset--spacing--40); }
.sodia-logo { margin: 0; }
.sodia-logo img { width: 180px; height: auto; display: block; }
.sodia-nav { font-weight: 400; gap: var(--wp--preset--spacing--40); }
.sodia-nav a { color: var(--wp--preset--color--contrast); text-decoration: none; }
.sodia-nav a:hover { color: var(--wp--preset--color--primary); }
.sodia-header .wp-block-button__link { padding: .55rem 1.1rem; font-size: var(--wp--preset--font-size--small); }
@media (max-width: 781px) {
	.sodia-logo img { width: 140px; }
	.sodia-header .wp-block-buttons { display: none; }
}

/* ---------- Section ---------- */
.sodia-main { margin-top: 0 !important; }
.sodia-main > * { margin-block: 0 !important; }
.sodia-section { padding-block: var(--wp--preset--spacing--80); }
.sodia-section__inner > * + * { margin-top: var(--wp--preset--spacing--30); }
.sodia-section h2.has-text-align-center { margin-bottom: 0; }
.sodia-sub { color: var(--wp--preset--color--muted); margin-top: var(--wp--preset--spacing--20) !important; }
.sodia-section .sodia-grid { margin-top: var(--wp--preset--spacing--60) !important; gap: var(--wp--preset--spacing--40); }
/* auto-fit ให้การ์ดยืดเต็มแถวเมื่อจำนวนน้อยกว่าคอลัมน์ */
.sodia-section .sodia-grid.is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); }
.sodia-section .sodia-works.is-layout-grid { grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr)); }
.sodia-lead { font-size: var(--wp--preset--font-size--large); color: var(--wp--preset--color--text); }
.sodia-eyebrow {
	display: inline-block; margin: 0; padding: 4px 12px; border-radius: 999px;
	background: color-mix(in srgb, var(--wp--preset--color--primary) 12%, white);
	color: var(--wp--preset--color--primary-dark); font-size: var(--wp--preset--font-size--small); font-weight: 500;
}
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent; color: var(--wp--preset--color--primary); border: 1.5px solid currentColor;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: color-mix(in srgb, var(--wp--preset--color--primary) 8%, white); }

/* Hero */
.sodia-hero { padding-block: var(--wp--preset--spacing--70); }
.sodia-hero h1 { margin-block: var(--wp--preset--spacing--30); }
.sodia-hero .wp-block-buttons { margin-top: var(--wp--preset--spacing--50); }
.sodia-hero__img { margin: 0; }
.sodia-hero__img img { width: 100%; height: auto; }

/* Cards */
.sodia-services, .sodia-portfolio, .sodia-contact-section { background: var(--wp--preset--color--surface); }
.sodia-card {
	background: var(--wp--preset--color--base); border: 1px solid var(--wp--preset--color--border);
	border-radius: 16px; padding: var(--wp--preset--spacing--50); transition: transform .2s, box-shadow .2s;
}
.sodia-card:hover { transform: translateY(-4px); box-shadow: var(--wp--preset--shadow--md); }
.sodia-card h3 { font-size: var(--wp--preset--font-size--large); margin-block: var(--wp--preset--spacing--20); }
.sodia-card p { margin: 0; }
.sodia-card__num { color: var(--wp--preset--color--primary); font-weight: 600; font-size: var(--wp--preset--font-size--x-large); line-height: 1; }

/* Process */
.sodia-step { text-align: center; padding: var(--wp--preset--spacing--40); }
.sodia-step__icon { margin: 0 auto var(--wp--preset--spacing--30) !important; width: 88px; height: 88px; padding: 12px; border-radius: 50%; background: color-mix(in srgb, var(--wp--preset--color--primary) 12%, white); display: grid; place-items: center; }
.sodia-step__icon img { width: 56px; height: 56px; }
.sodia-step__label { margin: 0; color: var(--wp--preset--color--primary); font-weight: 500; font-size: var(--wp--preset--font-size--small); }
.sodia-step h3 { font-size: var(--wp--preset--font-size--large); margin-block: var(--wp--preset--spacing--10) var(--wp--preset--spacing--20); }
.sodia-step p:last-child { margin: 0; }

/* Portfolio */
.sodia-work { border-radius: 16px; overflow: hidden; background: var(--wp--preset--color--base); border: 1px solid var(--wp--preset--color--border); transition: transform .2s, box-shadow .2s; }
.sodia-work:hover { transform: translateY(-4px); box-shadow: var(--wp--preset--shadow--md); }
.sodia-work__img { margin: 0; aspect-ratio: 16 / 9; overflow: hidden; }
.sodia-work__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.sodia-work:hover .sodia-work__img img { transform: scale(1.04); }
.sodia-work__title { font-size: var(--wp--preset--font-size--medium) !important; font-weight: 500; margin: 0 !important; padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40); }

/* Promo */
.sodia-promo { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--base); padding-block: var(--wp--preset--spacing--70); }
.sodia-promo h2 { color: var(--wp--preset--color--base); margin: 0; }
.sodia-promo__price { margin: var(--wp--preset--spacing--20) 0 0; font-size: var(--wp--preset--font-size--large); }
.sodia-promo .wp-block-buttons { justify-content: flex-end; }
.sodia-promo .wp-block-button__link { background: var(--wp--preset--color--base); color: var(--wp--preset--color--primary-dark); }
.sodia-promo .wp-block-button__link:hover { background: var(--wp--preset--color--surface); }
@media (max-width: 781px) { .sodia-promo .wp-block-buttons { justify-content: flex-start; } }

/* About */
.sodia-about__mark { margin: 0 auto; max-width: 280px; }
.sodia-about__mark img { width: 100%; height: auto; border-radius: 50%; box-shadow: var(--wp--preset--shadow--md); }
.sodia-stat { gap: var(--wp--preset--spacing--30); margin-top: var(--wp--preset--spacing--40) !important; }
.sodia-stat__num { margin: 0; font-size: var(--wp--preset--font-size--display); font-weight: 600; line-height: 1; color: var(--wp--preset--color--primary); }
.sodia-stat__label { margin: 0; color: var(--wp--preset--color--muted); }

/* Contact */
.sodia-contact { text-align: center; }
.sodia-contact__label { color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.sodia-contact__value { font-size: var(--wp--preset--font-size--large); font-weight: 500; color: var(--wp--preset--color--contrast); margin-top: var(--wp--preset--spacing--10) !important; }
.sodia-contact__value a { color: inherit; text-decoration: none; }
.sodia-contact__value a:hover { color: var(--wp--preset--color--primary); }

/* Footer */
.wp-site-blocks > footer { margin-block-start: 0; }
.sodia-footer { background: var(--wp--preset--color--contrast); color: #cfcfcf; padding-block: var(--wp--preset--spacing--50); }
.sodia-footer p { margin: 0; }
.sodia-footer__brand { color: var(--wp--preset--color--base); font-weight: 600; letter-spacing: .04em; }
.sodia-footer__copy { font-size: var(--wp--preset--font-size--small); }

/* =========================================================
   Motion — ทำงานเมื่อ JS เติม .sodia-motion ที่ <html> เท่านั้น
   ปิดทั้งหมดเมื่อผู้ใช้ตั้งค่า prefers-reduced-motion
   ========================================================= */
:root { --sodia-tilt: 10deg; --sodia-rise: 64px; --sodia-card-tilt: 14deg; }
@media (max-width: 781px) { :root { --sodia-tilt: 5deg; --sodia-rise: 32px; --sodia-card-tilt: 8deg; } }

@keyframes sodia-tilt-in {
	from { opacity: .15; transform: perspective(1400px) translateY(var(--sodia-rise)) rotateX(var(--sodia-tilt)) scale(.96); }
	to   { opacity: 1;   transform: none; }
}

@media (prefers-reduced-motion: no-preference) {

	/* 1) Section tilt-in แบบผูกกับการเลื่อน (Chrome / Edge / Safari 26+) */
	@supports (animation-timeline: view()) {
		.sodia-motion .sodia-section:not(.sodia-hero) > .sodia-section__inner {
			transform-origin: 50% 100%;
			animation: sodia-tilt-in linear both;
			animation-timeline: view();
			animation-range: entry 0% entry min(70%, 360px);
		}
	}

	/* 1b) Fallback: เล่นครั้งเดียวเมื่อเข้าจอ */
	.sodia-motion--fallback .sodia-section:not(.sodia-hero) > .sodia-section__inner {
		transform-origin: 50% 100%;
		opacity: .15;
		transform: perspective(1400px) translateY(var(--sodia-rise)) rotateX(var(--sodia-tilt)) scale(.96);
		transition: opacity .9s ease, transform .9s cubic-bezier(.2, .7, .2, 1);
	}
	.sodia-motion--fallback .sodia-section:not(.sodia-hero) > .sodia-section__inner.is-inview { opacity: 1; transform: none; }

	/* 2) Stagger การ์ด — ใช้ translate / rotate แยกจาก transform เพื่อไม่ชน hover */
	.sodia-motion .sodia-grid { perspective: 1200px; }
	.sodia-motion .sodia-grid > * {
		--sodia-d: calc(var(--sodia-i, 0) * 90ms);
		opacity: 0;
		translate: 0 40px;
		rotate: x var(--sodia-card-tilt);
		transform-origin: 50% 100%;
		transition:
			opacity .7s ease var(--sodia-d),
			translate .8s cubic-bezier(.2, .7, .2, 1) var(--sodia-d),
			rotate .8s cubic-bezier(.2, .7, .2, 1) var(--sodia-d),
			transform .3s ease,
			box-shadow .3s ease;
	}
	.sodia-motion .sodia-grid.is-inview > * { opacity: 1; translate: 0 0; rotate: x 0deg; }

	/* 3) Tilt ตามเมาส์ + แสงสะท้อน บนการ์ดผลงาน */
	.sodia-work { position: relative; transform-style: preserve-3d; will-change: transform; }
	.sodia-work::after {
		content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: inherit;
		background: radial-gradient(circle at var(--sodia-mx, 50%) var(--sodia-my, 50%), rgba(255,255,255,.35), transparent 55%);
		opacity: 0; transition: opacity .3s ease;
	}
	.sodia-work.is-tilting { transition: transform .08s linear, box-shadow .3s ease !important; box-shadow: 0 18px 40px rgba(0,0,0,.14); }
	.sodia-work.is-tilting::after { opacity: 1; }
	.sodia-work.is-tilting .sodia-work__img img { transform: scale(1.06) translateZ(0); }
}

/* =========================================================
   Hero scene — การ์ตูนมีชีวิต (SVG + layer รูป)
   ========================================================= */
.sodia-scene { width: 100%; }
.sodia-scene__svg { display: block; width: 100%; height: auto; overflow: visible; }

@media (prefers-reduced-motion: no-preference) {
	.sodia-scene__svg :is(.sc-twinkle, .sc-float, .sc-wiggle, .sc-pulse, .sc-dot, .sc-bar, .sc-sway, .sc-breathe, .sc-woman-head, .sc-man-head, .sc-man-arm) { transform-box: fill-box; }

	/* กราฟใหญ่: คลื่นไหลต่อเนื่อง */
	.sc-area { animation: sc-slide-320 9s linear infinite; }
	.sc-wave { animation: sc-slide-260 5.5s linear infinite; }
	@keyframes sc-slide-320 { to { transform: translateX(-320px); } }
	@keyframes sc-slide-260 { to { transform: translateX(-260px); } }

	/* กราฟเส้น: จุดเต้นเป็นจังหวะ */
	.sc-pulse { transform-origin: center; animation: sc-pulse 2.7s ease-out infinite; animation-delay: var(--d, 0s); opacity: 0; }
	@keyframes sc-pulse { 0% { transform: scale(.6); opacity: .9; } 70%, 100% { transform: scale(2.6); opacity: 0; } }

	/* Pie */
	.sc-pie1 { animation: sc-pie 4s ease-in-out infinite; }
	@keyframes sc-pie { 0%, 100% { stroke-dasharray: 14 100; } 50% { stroke-dasharray: 27 100; } }
	.sc-pie2 { transform-box: view-box; transform-origin: 1070px 557px; animation: sc-gauge 5s ease-in-out infinite; }
	@keyframes sc-gauge { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(28deg); } }

	/* การ์ดล่าง */
	.sc-dot { transform-origin: center; animation: sc-beat 2.4s ease-in-out infinite; }
	@keyframes sc-beat { 0%, 100% { transform: scale(1); } 15% { transform: scale(1.1); } 30% { transform: scale(.97); } 45% { transform: scale(1.05); } 60% { transform: scale(1); } }
	.sc-bar { transform-origin: 0 50%; }
	.sc-bar--g { animation: sc-grow 3.6s cubic-bezier(.6, 0, .2, 1) infinite; }
	.sc-bar--k { animation: sc-grow-k 3.6s cubic-bezier(.6, 0, .2, 1) infinite; }
	@keyframes sc-grow { 0% { transform: scaleX(.25); } 55%, 80% { transform: scaleX(1); } 100% { transform: scaleX(.25); } }
	@keyframes sc-grow-k { 0% { transform: scaleX(1); } 40% { transform: scaleX(.6); } 80%, 100% { transform: scaleX(1); } }

	/* ของตกแต่ง */
	.sc-twinkle { transform-origin: center; animation: sc-twinkle 3.4s ease-in-out infinite; animation-delay: var(--d, 0s); }
	@keyframes sc-twinkle { 0%, 100% { transform: rotate(0) scale(1); opacity: 1; } 50% { transform: rotate(90deg) scale(.65); opacity: .45; } }
	.sc-float { animation: sc-float 3.8s ease-in-out infinite; animation-delay: var(--d, 0s); }
	@keyframes sc-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-14px); } }
	.sc-wiggle { transform-origin: center; animation: sc-wiggle 2.8s ease-in-out infinite; animation-delay: var(--d, 0s); }
	@keyframes sc-wiggle { 0%, 100% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } }

	/* ต้นไม้โยก */
	.sc-sway { transform-origin: 50% 100%; animation: sc-sway 4.4s ease-in-out infinite; }
	.sc-sway--flowers { animation-duration: 3.6s; animation-delay: -1s; }
	.sc-sway--right { animation-duration: 5s; animation-delay: -2.2s; }
	@keyframes sc-sway { 0%, 100% { transform: rotate(-2deg); } 50% { transform: rotate(2.2deg); } }

	/* คน: หายใจ + พยักหน้า + แตะจอ */
	.sc-breathe { transform-origin: 50% 100%; animation: sc-breathe 4.2s ease-in-out infinite; }
	.sc-man { animation-duration: 4.8s; animation-delay: -1.6s; }
	@keyframes sc-breathe { 0%, 100% { transform: scale(1, 1); } 50% { transform: scale(1.004, 1.012); } }
	.sc-woman-head { transform-origin: 55% 92%; animation: sc-nod-w 5.2s ease-in-out infinite; }
	@keyframes sc-nod-w { 0%, 100% { transform: rotate(0deg); } 30% { transform: rotate(4deg); } 45% { transform: rotate(1deg); } 60% { transform: rotate(4deg); } 80% { transform: rotate(-1.5deg); } }
	.sc-man-head { transform-origin: 45% 95%; animation: sc-nod-m 6.4s ease-in-out infinite; }
	@keyframes sc-nod-m { 0%, 100% { transform: rotate(0deg); } 40% { transform: rotate(-4deg); } 60% { transform: rotate(-3deg); } 75% { transform: rotate(1.5deg); } }
	.sc-man-arm { transform-origin: 92% 77%; animation: sc-tap 3.2s ease-in-out infinite; }
	@keyframes sc-tap { 0%, 50%, 100% { transform: rotate(0deg); } 58% { transform: rotate(-3.5deg); } 66% { transform: rotate(0deg); } 74% { transform: rotate(-3.5deg); } 84% { transform: rotate(0deg); } }
}
@media (prefers-reduced-motion: reduce) { .sc-runner { display: none; } }
.sodia-scene.is-paused * { animation-play-state: paused !important; }

/* ---------- Contact channels (LINE / Messenger) ---------- */
.sodia-section .sodia-channels {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
	gap: var(--wp--preset--spacing--40); max-width: 860px; margin-inline: auto !important;
}
.sodia-channel { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--30); padding: var(--wp--preset--spacing--50); }
.sodia-channel__head { display: flex; align-items: center; gap: 14px; }
.sodia-channel__icon { width: 48px; height: 48px; flex: none; }
.sodia-channel__name { margin: 0 !important; font-size: var(--wp--preset--font-size--large); font-weight: 600; color: var(--wp--preset--color--contrast); line-height: 1.3; }
.sodia-channel__id { margin: 0 !important; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.sodia-channel__qr { display: grid; justify-items: center; gap: 8px; padding: var(--wp--preset--spacing--30); border-radius: 12px; background: var(--wp--preset--color--surface); }
.sodia-channel__qr .sodia-qr { width: 168px; height: 168px; display: block; border-radius: 8px; }
.sodia-channel__qr p { margin: 0 !important; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.sodia-channel__body { flex: 1; display: flex; align-items: center; padding: var(--wp--preset--spacing--30); border-radius: 12px; background: var(--wp--preset--color--surface); }
.sodia-channel__body p { margin: 0 !important; }
.sodia-channel__btn {
	display: block; text-align: center; text-decoration: none; font-weight: 500; color: #fff;
	padding: .8rem 1.2rem; border-radius: 10px; transition: filter .2s, transform .2s;
}
.sodia-channel__btn:hover { filter: brightness(1.08); transform: translateY(-1px); }
.sodia-channel--line .sodia-channel__btn { background: #06C755; }
.sodia-channel--messenger .sodia-channel__btn { background: linear-gradient(90deg, #0866FF, #00B2FF); }
.sodia-channel__link { text-align: center; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); margin-top: -8px; }
.sodia-channel__link:hover { color: #0866FF; }
.sodia-contact__alt { text-align: center; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); margin-top: var(--wp--preset--spacing--50) !important; }
.sodia-contact__alt a { color: var(--wp--preset--color--contrast); }
@media (max-width: 781px) { .sodia-channel__qr .sodia-qr { width: 144px; height: 144px; } }

/* ---------- Portfolio: แถวสุดท้ายอยู่กึ่งกลาง + การ์ดสัดส่วนเดียวกัน ---------- */
.sodia-section .sodia-works.is-layout-grid {
	--sodia-cols: 4;
	display: flex !important; flex-wrap: wrap; justify-content: center;
	gap: var(--wp--preset--spacing--40);
}
.sodia-section .sodia-works > .sodia-work {
	flex: 0 0 calc((100% - (var(--sodia-cols) - 1) * var(--wp--preset--spacing--40)) / var(--sodia-cols));
	margin: 0 !important; min-width: 0;
}
@media (max-width: 1100px) { .sodia-section .sodia-works.is-layout-grid { --sodia-cols: 3; } }
@media (max-width: 760px)  { .sodia-section .sodia-works.is-layout-grid { --sodia-cols: 2; } }
@media (max-width: 480px)  { .sodia-section .sodia-works.is-layout-grid { --sodia-cols: 1; } }
.sodia-work__img { aspect-ratio: 25 / 13; }
.sodia-work__title { text-align: center; }

/* =========================================================
   Blog
   ========================================================= */
.sodia-blog, .sodia-article { padding-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--80); }
.sodia-blog-hero { text-align: center; margin-bottom: var(--wp--preset--spacing--60) !important; }
.sodia-blog-hero .sodia-eyebrow { margin-inline: auto; }
.sodia-blog-hero h1 { margin-block: var(--wp--preset--spacing--20) 0; }

.sodia-post-grid { gap: var(--wp--preset--spacing--40) !important; }
@media (max-width: 1000px) { .sodia-post-grid.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 640px)  { .sodia-post-grid.is-layout-grid { grid-template-columns: 1fr !important; } }
.sodia-post-card {
	height: 100%; display: flex; flex-direction: column; border-radius: 16px; overflow: hidden;
	background: var(--wp--preset--color--base); border: 1px solid var(--wp--preset--color--border);
	transition: transform .25s ease, box-shadow .25s ease;
}
.sodia-post-card:hover { transform: translateY(-4px); box-shadow: var(--wp--preset--shadow--md); }
.sodia-post-card__img { margin: 0 !important; overflow: hidden; }
.sodia-post-card__img img { transition: transform .4s ease; }
.sodia-post-card:hover .sodia-post-card__img img { transform: scale(1.04); }
.sodia-post-card__body { flex: 1; display: flex; flex-direction: column; gap: 8px; padding: var(--wp--preset--spacing--40); }
.sodia-post-card__body > * { margin: 0 !important; }
.sodia-post-card__cat, .sodia-article__cat { font-size: var(--wp--preset--font-size--small); font-weight: 500; }
.sodia-post-card__cat a, .sodia-article__cat a { text-decoration: none; color: var(--wp--preset--color--primary); }
.sodia-post-card__title { font-size: var(--wp--preset--font-size--large) !important; line-height: 1.45; }
.sodia-post-card__title a { color: var(--wp--preset--color--contrast); text-decoration: none; }
.sodia-post-card__title a:hover { color: var(--wp--preset--color--primary); }
.sodia-post-card__excerpt { color: var(--wp--preset--color--text); font-size: .95rem; flex: 1; }
.sodia-post-card__excerpt .wp-block-post-excerpt__excerpt { margin: 0; }
.sodia-post-card__date { color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.sodia-pagination { margin-top: var(--wp--preset--spacing--60) !important; gap: 8px; }
.sodia-pagination a, .sodia-pagination .current { padding: 6px 12px; border-radius: 8px; border: 1px solid var(--wp--preset--color--border); text-decoration: none; }
.sodia-pagination .current { background: var(--wp--preset--color--primary); color: #fff; border-color: transparent; }

/* Article */
.sodia-article__head > * { margin: 0 !important; }
.sodia-article__head { display: flex; flex-direction: column; gap: 12px; margin-bottom: var(--wp--preset--spacing--50) !important; }
.sodia-crumb { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.sodia-crumb a { color: inherit; text-decoration: none; }
.sodia-crumb a:hover { color: var(--wp--preset--color--primary); }
.sodia-article__title { font-size: clamp(1.9rem, 1.2rem + 2.4vw, 2.75rem) !important; line-height: 1.35; }
.sodia-article__meta { gap: 6px 14px; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.sodia-article__meta p { margin: 0; }
.sodia-article__meta > * + *::before { content: "·"; margin-right: 14px; }
.sodia-article__cover { margin-bottom: var(--wp--preset--spacing--60) !important; }
.sodia-article__cover img { border-radius: 18px; }
.sodia-article__content { font-size: 1.075rem; line-height: 1.9; }
.sodia-article__content > * + * { margin-top: 1.1em; }
.sodia-article__content h2 { font-size: var(--wp--preset--font-size--x-large); margin-top: 2.2em !important; scroll-margin-top: 110px; }
.sodia-article__content h3 { font-size: var(--wp--preset--font-size--large); margin-top: 1.6em !important; }
.sodia-article__content a { color: var(--wp--preset--color--primary-dark); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.sodia-article__content li + li { margin-top: .35em; }
.sodia-tldr, .sodia-toc { border-radius: 14px; padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50); }
.sodia-tldr { background: color-mix(in srgb, var(--wp--preset--color--primary) 9%, white); border-left: 4px solid var(--wp--preset--color--primary); }
.sodia-toc { background: var(--wp--preset--color--surface); }
.sodia-tldr__label, .sodia-toc__label { margin: 0 !important; font-weight: 600; color: var(--wp--preset--color--contrast); }
.sodia-tldr ul, .sodia-toc ol { margin: .5em 0 0; padding-left: 1.2em; }
.sodia-toc a { color: var(--wp--preset--color--text); text-decoration: none; }
.sodia-toc a:hover { color: var(--wp--preset--color--primary); }
.sodia-faq { border: 1px solid var(--wp--preset--color--border); border-radius: 12px; padding: 0 var(--wp--preset--spacing--40); }
.sodia-faq + .sodia-faq { margin-top: 10px !important; }
.sodia-faq summary { cursor: pointer; font-weight: 500; padding: 14px 0; color: var(--wp--preset--color--contrast); }
.sodia-faq[open] summary { color: var(--wp--preset--color--primary-dark); }
.sodia-faq p { margin: 0 0 14px; }
.sodia-article__tags { margin-top: var(--wp--preset--spacing--50) !important; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.sodia-article__tags a { display: inline-block; padding: 2px 10px; margin: 2px; border-radius: 999px; background: var(--wp--preset--color--surface); color: var(--wp--preset--color--text); text-decoration: none; }
.sodia-article-cta { margin-top: var(--wp--preset--spacing--60) !important; padding: var(--wp--preset--spacing--50); border-radius: 18px; background: var(--wp--preset--color--contrast); color: #e8e8e8; }
.sodia-article-cta h2 { color: #fff; font-size: var(--wp--preset--font-size--x-large); margin-top: 0; }
.sodia-article-cta .is-style-outline .wp-block-button__link { color: #fff; }
.sodia-article__nav { margin-top: var(--wp--preset--spacing--50) !important; gap: 16px; font-size: var(--wp--preset--font-size--small); }
.sodia-article__nav a { color: var(--wp--preset--color--contrast); }
