/*
Theme Name: ToyComic
Theme URI: https://toycomic.com
Author: Toycomic Brands LLC
Description: Editable WordPress version of the ToyComic landing page. Every heading, paragraph, button and image is a standard block you can click and edit. Includes a working contact form that saves inquiries and emails them to you.
Version: 1.0.1
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 7.4
License: GPLv2 or later
Text Domain: toycomic
*/

/* =========================================================
   Tokens
   ========================================================= */
:root {
	--tc-dark: var(--wp--preset--color--dark, #0b3050);
	--tc-primary: var(--wp--preset--color--primary, #38acd7);
	--tc-accent: var(--wp--preset--color--accent, #fca311);
	--tc-surface: var(--wp--preset--color--surface, #f0f6f9);
	--tc-white: #fff;
	--tc-heading: var(--wp--preset--font-family--heading, Fredoka, sans-serif);
	--tc-body: var(--wp--preset--font-family--body, Nunito, sans-serif);
	--tc-border: 3px solid var(--tc-dark);
	--tc-shadow: 6px 6px 0 var(--tc-dark);
	--tc-shadow-sm: 4px 4px 0 var(--tc-dark);
	--tc-radius: 2rem;
	--tc-section-y: clamp(4.5rem, 9vw, 8rem);
	--tc-icon-path: none;
}

html { scroll-behavior: smooth; }
body.toycomic { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden; }
[id] { scroll-margin-top: 90px; }
.tc-main > .wp-block-post-content > * { margin-block-start: 0; }
.wp-block-post-content.alignfull { margin-top: 0; }
.tc-main { margin-block-start: 0 !important; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }

strong, b { font-weight: 800; }
/* Colored words in headings: keep the browser's default yellow highlight off,
   even on hosts that strip inline styles from page content. */
mark.has-inline-color { background-color: transparent; color: inherit; }
mark.has-inline-color.has-primary-color { color: var(--tc-primary); }
mark.has-inline-color.has-accent-color { color: var(--tc-accent); }
mark.has-inline-color.has-dark-color { color: var(--tc-dark); }
mark.has-inline-color.has-white-color { color: #fff; }
h1, h2, h3, h4 { letter-spacing: -0.01em; }

/* =========================================================
   Icons (CSS masks, so they recolor and stay crisp)
   ========================================================= */
.tc-ico-users     { --tc-icon-path: url(assets/icons/users.svg); }
.tc-ico-box       { --tc-icon-path: url(assets/icons/box.svg); }
.tc-ico-package   { --tc-icon-path: url(assets/icons/package.svg); }
.tc-ico-shield    { --tc-icon-path: url(assets/icons/shield.svg); }
.tc-ico-sparkles  { --tc-icon-path: url(assets/icons/sparkles.svg); }
.tc-ico-truck     { --tc-icon-path: url(assets/icons/truck.svg); }
.tc-ico-target    { --tc-icon-path: url(assets/icons/target.svg); }
.tc-ico-megaphone { --tc-icon-path: url(assets/icons/megaphone.svg); }
.tc-ico-bag       { --tc-icon-path: url(assets/icons/bag.svg); }
.tc-ico-heart     { --tc-icon-path: url(assets/icons/heart.svg); }
.tc-ico-puzzle    { --tc-icon-path: url(assets/icons/puzzle.svg); }
.tc-ico-trending  { --tc-icon-path: url(assets/icons/trending.svg); }
.tc-ico-book      { --tc-icon-path: url(assets/icons/book.svg); }
.tc-ico-layers    { --tc-icon-path: url(assets/icons/layers.svg); }
.tc-ico-mail      { --tc-icon-path: url(assets/icons/mail.svg); }

.tc-ink-primary { --tc-ink: var(--tc-primary); }
.tc-ink-blue    { --tc-ink: #155dfc; }
.tc-ink-green   { --tc-ink: #00a63e; }
.tc-ink-red     { --tc-ink: #ff5722; }
.tc-ink-purple  { --tc-ink: #9810fa; }
.tc-ink-amber   { --tc-ink: #e17100; }

/* Icon box + glyph drawn before card content */
.tc-card-pad[class*="tc-ico-"]::before,
.tc-why::before,
.tc-stat::before,
.tc-ask::before {
	content: "";
	display: block;
	flex: none;
	width: 56px;
	height: 56px;
	border: var(--tc-border);
	border-radius: 16px;
	background: var(--tc-surface);
	box-shadow: 3px 3px 0 var(--tc-dark);
	box-sizing: border-box;
}
.tc-card-pad[class*="tc-ico-"]::after,
.tc-why::after,
.tc-stat::after,
.tc-ask::after {
	content: "";
	position: absolute;
	width: 28px;
	height: 28px;
	background-color: var(--tc-ink, var(--tc-primary));
	-webkit-mask: var(--tc-icon-path) center / contain no-repeat;
	mask: var(--tc-icon-path) center / contain no-repeat;
	pointer-events: none;
}

/* Inline icons for pills, labels and buttons */
[class*="tc-i-"]::before,
.wp-block-button[class*="tc-i-"] .wp-block-button__link::after {
	content: "";
	display: inline-block;
	width: 1.1em;
	height: 1.1em;
	vertical-align: -0.18em;
	background-color: currentColor;
	-webkit-mask: var(--tc-i) center / contain no-repeat;
	mask: var(--tc-i) center / contain no-repeat;
	flex: none;
}
.wp-block-button[class*="tc-i-"]::before { content: none; }
.tc-i-sparkles { --tc-i: url(assets/icons/sparkles.svg); }
.tc-i-rocket, .tc-i-rocket-l { --tc-i: url(assets/icons/rocket.svg); }
.tc-i-play     { --tc-i: url(assets/icons/play.svg); }
.tc-i-playtri  { --tc-i: url(assets/icons/playtri.svg); }
.tc-i-arrow    { --tc-i: url(assets/icons/arrow.svg); }
.tc-i-arrowup  { --tc-i: url(assets/icons/arrowup.svg); }
.tc-i-trophy   { --tc-i: url(assets/icons/trophy.svg); }
.tc-i-help     { --tc-i: url(assets/icons/help.svg); }
.tc-i-clock    { --tc-i: url(assets/icons/clock.svg); }
p[class*="tc-i-"]::before { margin-right: 0.45em; }

/* =========================================================
   Buttons (pick Orange / White / Blue under "Styles")
   ========================================================= */
.wp-block-button .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	border: var(--tc-border);
	border-radius: 999px;
	padding: 0.6rem 1.5rem;
	font-family: var(--tc-heading);
	font-weight: 700;
	font-size: 1rem;
	line-height: 1.4;
	color: var(--tc-dark);
	background: var(--tc-accent);
	box-shadow: var(--tc-shadow-sm);
	white-space: nowrap;
	text-decoration: none;
	transition: transform .15s ease, box-shadow .15s ease;
}
.wp-block-button .wp-block-button__link:hover { transform: translate(2px, 2px); box-shadow: 2px 2px 0 var(--tc-dark); color: var(--tc-dark); }
.wp-block-button .wp-block-button__link:active { transform: translate(4px, 4px); box-shadow: none; }
.wp-block-button.is-style-tc-white .wp-block-button__link { background: var(--tc-white); }
.wp-block-button.is-style-tc-blue  .wp-block-button__link { background: var(--tc-primary); }
.wp-block-button.tc-btn-lg .wp-block-button__link { font-size: 1.125rem; padding: 0.85rem 1.6rem; }
.wp-block-button.tc-btn-sm .wp-block-button__link { font-size: 0.95rem; padding: 0.45rem 1.25rem; }
.wp-block-button.tc-no-shadow .wp-block-button__link { box-shadow: none; border-color: var(--tc-accent); }
.wp-block-button.tc-no-shadow .wp-block-button__link:hover { transform: scale(1.04); box-shadow: none; }
.wp-block-button.tc-i-rocket-l .wp-block-button__link,
.wp-block-button.tc-i-play .wp-block-button__link { flex-direction: row-reverse; }
.wp-block-button.tc-i-playtri .wp-block-button__link::after { background-color: transparent; border: 0; -webkit-mask: none; mask: none; background-image: url(assets/icons/playtri.svg); background-size: contain; background-repeat: no-repeat; }

/* =========================================================
   Pills, stickers, labels
   ========================================================= */
.tc-pill {
	display: flex !important;
	align-items: center;
	width: fit-content;
	margin-inline: auto;
	padding: 0.3rem 0.9rem;
	border-radius: 999px;
	font-family: var(--tc-heading);
	font-weight: 700;
	font-size: 0.875rem;
	line-height: 1.3;
}
.tc-pill-accent { background: #fee3b5; border: 2px solid var(--tc-dark); box-shadow: 2px 2px 0 var(--tc-dark); color: var(--tc-dark); }
.tc-pill-outline-accent { background: rgba(252,163,17,.2); border: 2px solid var(--tc-accent); color: var(--tc-accent); }
.tc-pill-outline-primary { background: rgba(56,172,215,.1); border: 2px solid var(--tc-primary); color: var(--tc-primary); }
.tc-pill-solid-accent { background: var(--tc-accent); color: var(--tc-dark); box-shadow: 2px 2px 0 var(--tc-dark); font-size: .75rem; text-transform: uppercase; }
.tc-pill-soft { background: var(--tc-surface); border: 2px solid rgba(11,48,80,.12); color: rgba(11,48,80,.8); font-size: .8rem; }
.tc-pill-xs { font-size: .75rem; padding: .25rem .75rem; }
.tc-pill-soft.tc-i-clock::before { color: var(--tc-primary); }

.tc-sticker {
	position: absolute;
	z-index: 3;
	margin: 0 !important;
	border: var(--tc-border);
	box-shadow: var(--tc-shadow-sm);
	font-family: var(--tc-heading);
	font-weight: 700;
	white-space: nowrap;
	line-height: 1.2;
}
.tc-sticker-blue { background: var(--tc-primary); color: var(--tc-white); border-radius: 16px; padding: .5rem 1rem; font-size: 1.25rem; }
.tc-sticker-orange { background: var(--tc-accent); color: var(--tc-dark); border-radius: 12px; padding: .6rem 1.25rem; font-size: 1.125rem; }
.tc-sticker-top { top: -1rem; right: -1rem; rotate: 6deg; animation: tc-bob 3s ease-in-out infinite; }
.tc-sticker-bottom { bottom: -1.25rem; left: -1rem; rotate: -6deg; animation: tc-bob 4s ease-in-out infinite reverse; }
.tc-sticker-corner { top: 2rem; right: -0.5rem; rotate: -6deg; font-size: .95rem; padding: .35rem .9rem; }
@keyframes tc-bob { 0%,100% { transform: translateY(-5px); } 50% { transform: translateY(5px); } }

.tc-step {
	position: absolute;
	top: 1.5rem;
	right: 1.5rem;
	margin: 0 !important;
	padding: .3rem .8rem;
	border: 2px solid var(--tc-dark);
	border-radius: 10px;
	box-shadow: 3px 3px 0 var(--tc-dark);
	font-family: var(--tc-heading);
	font-weight: 700;
	font-size: .8rem;
	rotate: -4deg;
}
.tc-step-blue { background: var(--tc-primary); color: var(--tc-white); }
.tc-step-orange { background: var(--tc-accent); color: var(--tc-dark); }

/* =========================================================
   Sections
   ========================================================= */
.tc-section {
	padding-top: var(--tc-section-y) !important;
	padding-bottom: var(--tc-section-y) !important;
	border-bottom: var(--tc-border);
	position: relative;
}
.tc-dots {
	background-color: var(--tc-surface);
	background-image: radial-gradient(rgba(56,172,215,.15) 2px, transparent 2px);
	background-size: 24px 24px;
}
.tc-center { text-align: center; }
.tc-h2 { font-size: clamp(2.25rem, 4.5vw, 3rem); font-weight: 700; margin-bottom: 1rem; }
.tc-h2.tc-center { margin-inline: auto !important; }
.tc-h2.tc-h2-narrow { max-width: 48rem; }
.tc-sub { font-size: 1.125rem; font-weight: 500; color: rgba(11,48,80,.85); max-width: 42rem; margin-inline: auto !important; margin-bottom: 4rem !important; }
.tc-on-dark, .tc-on-dark.tc-sub { color: var(--tc-white); }
.tc-sub.tc-on-dark { color: rgba(255,255,255,.8); }
.tc-small { font-size: .875rem; color: rgba(11,48,80,.8); margin: 0; }
.tc-muted { color: rgba(11,48,80,.7); }

/* Cards */
.tc-card {
	background: var(--tc-white);
	border: var(--tc-border);
	border-radius: var(--tc-radius);
	box-shadow: var(--tc-shadow);
	position: relative;
	transition: transform .2s ease;
}
.tc-card-pad { padding: 2rem; display: flex; flex-direction: column; gap: 0; }
.tc-card-pad[class*="tc-ico-"]::before { margin-bottom: 1.5rem; }
.tc-card-pad[class*="tc-ico-"]::after { top: calc(2rem + 14px); left: calc(2rem + 14px); }
.tc-card-pad > * { margin-block: 0 !important; }
.tc-card-title { font-size: 1.5rem; font-weight: 700; margin-bottom: .25rem !important; }
.tc-card-title-lg { margin-bottom: .75rem !important; }
.tc-eyebrow { font-size: .875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: rgba(11,48,80,.75); margin-bottom: 1rem !important; }
.tc-card-text { color: rgba(11,48,80,.85); font-weight: 500; line-height: 1.65; }
.tc-card .tc-pill-xs { margin-inline: 0; margin-bottom: .75rem !important; }

/* Grids */
.tc-grid { display: grid; gap: 2rem; }
.tc-grid > * { margin: 0 !important; }
.tc-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tc-grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }

/* =========================================================
   Header
   ========================================================= */
.tc-header {
	background: var(--tc-white);
	border-bottom: var(--tc-border);
	position: sticky;
	top: 0;
	z-index: 50;
	padding-top: 0.75rem;
	padding-bottom: 0.75rem;
}
.admin-bar .tc-header { top: var(--wp-admin--admin-bar--height, 32px); }
.tc-header-row { align-items: center; min-height: 56px; }
.tc-header-right { gap: 2rem; align-items: center; }
.tc-header .tc-logo img { width: 96px; height: auto; }
.tc-nav { font-family: var(--tc-heading); font-weight: 600; font-size: 1.05rem; gap: 2rem; }
.tc-nav a { color: var(--tc-dark); text-decoration: none; }
.tc-nav a:hover { color: var(--tc-primary); }
.tc-header-buttons { gap: 1.25rem; flex-wrap: nowrap; }
.tc-header-buttons .is-style-tc-white .wp-block-button__link { font-size: .85rem; }

/* =========================================================
   Hero
   ========================================================= */
.tc-hero { padding-top: clamp(3.5rem, 7vw, 6rem) !important; }
.tc-hero-cols { gap: 3rem; align-items: center !important; margin-bottom: 4rem; }
.tc-hero-cols > .wp-block-column:first-child > * { margin-block: 0; }
.tc-hero .tc-pill { margin-inline: 0; margin-bottom: 1.5rem; }
.tc-hero-title { font-size: clamp(2.5rem, 5vw, 3.75rem); font-weight: 700; line-height: 1.15; letter-spacing: -0.03em; margin-bottom: 1.5rem !important; }
.tc-hero-title mark {
	background-color: rgba(56,172,215,.1) !important;
	border: 2px solid rgba(56,172,215,.2);
	border-radius: 8px;
	padding: 0 .5rem;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
	display: inline-block;
	margin-top: .2em;
}
.tc-lead { font-size: 1.2rem; font-weight: 500; color: rgba(11,48,80,.85); line-height: 1.65; margin-bottom: 2rem !important; max-width: 36rem; }
.tc-lead-sm { font-size: 1.125rem; font-weight: 500; color: rgba(11,48,80,.85); line-height: 1.65; }
.tc-hero-buttons { gap: 1rem; margin-bottom: 1.5rem !important; }
.tc-trust {
	border-top: 1px solid rgba(11,48,80,.1);
	padding-top: .75rem;
	font-size: 1rem;
	font-weight: 500;
	color: rgba(11,48,80,.9);
	position: relative;
	padding-left: 92px;
	min-height: 32px;
}
.tc-trust::before {
	content: "";
	position: absolute;
	left: 0;
	top: calc(.75rem + 50% - 16px - .375rem);
	width: 80px;
	height: 32px;
	background:
		radial-gradient(circle at 16px 16px, var(--tc-primary) 13px, var(--tc-dark) 14px, var(--tc-dark) 15.5px, transparent 16px),
		radial-gradient(circle at 40px 16px, var(--tc-accent) 13px, var(--tc-dark) 14px, var(--tc-dark) 15.5px, transparent 16px),
		radial-gradient(circle at 64px 16px, #51a2ff 13px, var(--tc-dark) 14px, var(--tc-dark) 15.5px, transparent 16px);
	color: transparent;
}
.tc-hero-media { position: relative; padding: 1.5rem 0; }
.tc-tilt-card img {
	display: block;
	width: 100%;
	height: 420px;
	object-fit: cover;
	border: var(--tc-border);
	border-radius: var(--tc-radius);
	box-shadow: var(--tc-shadow);
	background: var(--tc-white);
	transition: rotate .5s ease;
}
.tc-tilt-left img { rotate: -2deg; }
.tc-tilt-right img { rotate: 2deg; height: auto; aspect-ratio: 4 / 3; }
.tc-tilt-card img:hover { rotate: 0deg; }
.tc-tilt-card { margin: 0 !important; }
.tc-double-frame { padding: 10px; border: var(--tc-border); border-radius: calc(var(--tc-radius) + 8px); background: var(--tc-white); box-shadow: var(--tc-shadow); rotate: -2deg; }
.tc-double-frame img { rotate: 2deg; box-shadow: none; }

/* Stats */
.tc-stats {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.5rem;
	padding: 1.5rem 1.5rem;
}
.tc-stats > * { margin: 0 !important; }
.tc-stat {
	display: grid !important;
	grid-template-columns: 48px 1fr;
	column-gap: .75rem;
	align-items: center;
	position: relative;
}
.tc-stat::before { grid-row: span 2; width: 48px; height: 48px; border-width: 2px; border-radius: 12px; box-shadow: none; background: var(--tc-icon-bg, #fff); }
.tc-stat::after { width: 24px; height: 24px; left: 12px; top: calc(50% - 12px); background-color: var(--tc-dark); }
.tc-ico-pink { --tc-icon-bg: #ffc2d1; }
.tc-ico-sky { --tc-icon-bg: #c2f0ff; }
.tc-ico-mint { --tc-icon-bg: #d1ffc2; }
.tc-ico-peach { --tc-icon-bg: #ffe3c2; }
.tc-stat > * { margin: 0 !important; }
.tc-stat-num { font-family: var(--tc-heading); font-weight: 700; font-size: 1.5rem; line-height: 1.2; align-self: end; }
.tc-stat-label { font-size: .875rem; font-weight: 700; color: rgba(11,48,80,.7); align-self: start; }

/* =========================================================
   Ticker
   ========================================================= */
.tc-ticker {
	overflow: hidden;
	padding: 3rem 0 !important;
	background: var(--tc-white);
	border-bottom: 0;
	position: relative;
}
.tc-ticker-track {
	width: max-content;
	gap: 0 !important;
	background: var(--tc-primary);
	border-top: 4px solid var(--tc-dark);
	border-bottom: 4px solid var(--tc-dark);
	box-shadow: 0 5px 0 var(--tc-dark);
	padding: 1rem 0;
	rotate: -3deg;
	margin-left: -5% !important;
	min-width: 110%;
}
.tc-ticker-track.is-ready { animation: tc-scroll 25s linear infinite; }
@keyframes tc-scroll { from { translate: 0 0; } to { translate: -50% 0; } }
.tc-ticker-word {
	margin: 0 !important;
	padding-left: 3rem;
	white-space: nowrap;
	font-family: var(--tc-heading);
	font-weight: 700;
	font-size: clamp(1.125rem, 2vw, 1.5rem);
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--tc-white);
	text-shadow: 2px 2px 0 var(--tc-dark);
	display: flex;
	align-items: center;
	gap: 3rem;
}
.tc-ticker-word::before { content: "★"; color: var(--tc-accent); font-size: 1.6em; text-shadow: 2px 2px 0 var(--tc-dark); }
@media (prefers-reduced-motion: reduce) {
	.tc-ticker-track.is-ready, .tc-sticker-top, .tc-sticker-bottom { animation: none; }
}

/* =========================================================
   Craft section
   ========================================================= */
.tc-craft-cols { gap: 4rem; align-items: center !important; }
.tc-craft-media { position: relative; padding: 1rem; }
.tc-craft-cols .wp-block-column:last-child > * { margin-block: 0; }
.tc-craft-cols .tc-h2 { margin-bottom: 1.5rem !important; }
.tc-craft-cols .tc-lead-sm { margin-bottom: 2rem !important; }
.tc-check-card {
	background: var(--tc-white);
	border: var(--tc-border);
	border-radius: 1rem;
	box-shadow: 4px 4px 0 var(--tc-dark);
	padding: 1.1rem 1.25rem 1.1rem 3.4rem;
	position: relative;
	margin-bottom: 1rem !important;
}
.tc-check-card::before {
	content: "";
	position: absolute;
	left: 1.1rem;
	top: 1.2rem;
	width: 1.4rem;
	height: 1.4rem;
	background-color: var(--tc-primary);
	-webkit-mask: url(assets/icons/check.svg) center / contain no-repeat;
	mask: url(assets/icons/check.svg) center / contain no-repeat;
}
.tc-check-card > * { margin: 0 !important; }
.tc-check-title { font-size: 1.125rem; font-weight: 700; margin-bottom: .15rem !important; }
.tc-craft-cols .wp-block-buttons { margin-top: 2rem !important; }

/* =========================================================
   Why choose (dark)
   ========================================================= */
.tc-dark-panel {
	background: rgba(11,48,80,.8);
	border: 3px solid rgba(255,255,255,.2);
	border-radius: 2.5rem;
	box-shadow: 8px 8px 0 var(--tc-primary);
	padding: 2rem;
	margin-top: 0 !important;
}
.tc-why { display: flex; flex-direction: column; align-items: center; text-align: center; position: relative; }
.tc-why::before { width: 64px; height: 64px; background: var(--tc-primary); box-shadow: 4px 4px 0 var(--tc-accent); margin-bottom: 1rem; }
.tc-why::after { top: 18px; left: calc(50% - 14px); background-color: var(--tc-white); }
.tc-why > * { margin: 0 !important; }
.tc-why-title { font-size: 1.125rem; font-weight: 700; color: var(--tc-accent); margin-bottom: .5rem !important; }
.tc-why-text { font-size: .8rem; line-height: 1.6; color: rgba(255,255,255,.8); font-weight: 500; }
.tc-panel-cta { margin-top: 3rem !important; padding-top: 2rem; border-top: 1px solid rgba(255,255,255,.1); gap: 1.25rem; align-items: center; }
.tc-panel-cta-text { margin: 0; color: var(--tc-white); font-family: var(--tc-heading); font-weight: 700; font-size: 1.125rem; }
.has-dark-background-color .tc-pill { margin-bottom: 1rem; }

/* =========================================================
   Orange estimate banner
   ========================================================= */
.tc-orange-banner {
	background: var(--tc-accent);
	border: var(--tc-border);
	border-radius: 2.5rem;
	box-shadow: var(--tc-shadow);
	padding: 3rem;
	margin-top: 4rem !important;
}
.tc-banner-cols { align-items: center !important; gap: 2rem; margin: 0; }
@media (min-width: 782px) {
	.tc-banner-cols > .wp-block-column:first-child, .tc-case-cols > .wp-block-column:first-child { flex: 1 1 0% !important; }
	.tc-banner-cols > .wp-block-column:last-child, .tc-case-cols > .wp-block-column:last-child { flex: 0 0 auto !important; }
}
.tc-banner-cols .wp-block-column > * { margin-block: 0; }
.tc-label { font-family: var(--tc-heading); font-weight: 700; font-size: .9rem; margin-bottom: .75rem !important; }
.tc-banner-title { font-size: clamp(1.75rem, 3vw, 2.25rem); font-weight: 700; margin-bottom: .75rem !important; }
.tc-banner-text { font-weight: 500; color: rgba(11,48,80,.9); }
.tc-banner-buttons { justify-content: flex-end; }

/* =========================================================
   Case study + testimonials
   ========================================================= */
.tc-case {
	background: var(--tc-dark);
	border: var(--tc-border);
	border-radius: var(--tc-radius);
	box-shadow: 8px 8px 0 var(--tc-primary);
	padding: 3rem;
	color: var(--tc-white);
	margin-bottom: 4rem !important;
}
.tc-case-cols { align-items: center !important; gap: 2rem; margin: 0; }
.tc-case-cols > .wp-block-column:first-child > * { max-width: 42rem; }
.tc-case-cols .wp-block-column > * { margin-block: 0; }
.tc-case .tc-pill { margin-inline: 0; margin-bottom: 1rem !important; }
.tc-case-title { color: var(--tc-white); font-size: clamp(1.75rem, 3vw, 2.25rem); font-weight: 700; margin-bottom: 1rem !important; }
.tc-case-text { color: rgba(255,255,255,.9); font-weight: 500; }
.wp-block-separator.tc-sep-light { border: 0 !important; border-top: 1px solid rgba(255,255,255,.15) !important; margin: 1.5rem 0 !important; opacity: 1; width: 100% !important; max-width: none !important; background: none; }
.tc-case-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.tc-case-stats > *, .tc-case-stat > * { margin: 0 !important; }
.tc-case-num { font-family: var(--tc-heading); font-weight: 700; font-size: 1.85rem; color: var(--tc-accent); line-height: 1.2; }
.tc-case-label { font-size: .75rem; font-weight: 700; color: rgba(255,255,255,.9); }
.tc-case-buttons { justify-content: flex-end; }

.tc-testimonial { padding-top: 3.5rem; justify-content: space-between; }
.tc-testimonial::before {
	content: "";
	position: absolute;
	top: -3px;
	left: -3px;
	width: 38px;
	height: 38px;
	background: var(--tc-dark) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'%3E%3Cpath d='M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1z'/%3E%3Cpath d='M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z'/%3E%3C/svg%3E") 10px 9px / 15px no-repeat;
	border-radius: var(--tc-radius) 0 1.25rem 0;
	filter: none;
}
.tc-quote { font-style: italic; font-weight: 500; color: rgba(11,48,80,.9); font-size: 1.05rem; line-height: 1.65; margin-bottom: 1.5rem !important; }
.tc-author-row { border-top: 1px solid rgba(11,48,80,.1); padding-top: 1rem; gap: 1rem; align-items: center; }
.tc-avatar { margin: 0 !important; flex: none; }
.tc-avatar img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; border: var(--tc-border); display: block; }
.tc-author-text > * { margin: 0 !important; }
.tc-author { font-family: var(--tc-heading); font-weight: 700; font-size: 1rem; }
.tc-role { font-size: .75rem; font-weight: 700; color: rgba(11,48,80,.7); line-height: 1.35; }

/* =========================================================
   FAQ
   ========================================================= */
.tc-narrow > .tc-faq-list,
.tc-narrow > .tc-ask { max-width: 960px !important; margin-inline: auto !important; }
.tc-faq-list > * + * { margin-top: 1rem !important; }
.tc-faq {
	background: var(--tc-white);
	border: var(--tc-border);
	border-radius: 1rem;
	box-shadow: 4px 4px 0 var(--tc-dark);
	overflow: hidden;
}
.tc-faq summary {
	list-style: none;
	cursor: pointer;
	padding: 1.5rem 4.5rem 1.5rem 1.5rem;
	font-family: var(--tc-heading);
	font-weight: 700;
	font-size: 1.125rem;
	position: relative;
}
.tc-faq summary::-webkit-details-marker { display: none; }
.tc-faq summary::after {
	content: "";
	position: absolute;
	right: 1.5rem;
	top: calc(50% - 16px);
	width: 32px;
	height: 32px;
	box-sizing: border-box;
	border: 2px solid var(--tc-dark);
	border-radius: 8px;
	background: var(--tc-accent) url(assets/icons/chevron.svg) center / 18px no-repeat;
	transition: rotate .2s ease;
}
.tc-faq[open] summary { border-bottom: 2px solid rgba(11,48,80,.1); }
.tc-faq[open] summary::after { background-color: var(--tc-primary); rotate: 180deg; }
.tc-faq > p { margin: 0 !important; padding: 1.25rem 1.5rem 1.5rem; background: rgba(240,246,249,.4); color: rgba(11,48,80,.85); font-weight: 500; line-height: 1.65; }
.tc-ask { margin-top: 3rem !important; padding: 1.25rem 1.5rem 1.25rem 5.25rem; border-radius: 1rem; box-shadow: 4px 4px 0 var(--tc-dark); gap: 1rem; align-items: center; }
.tc-ask::before { position: absolute; left: 1.5rem; top: calc(50% - 24px); width: 48px; height: 48px; border-radius: 12px; background: var(--tc-accent); box-shadow: none; border-width: 2px; }
.tc-ask::after { left: calc(1.5rem + 12px); top: calc(50% - 12px); width: 24px; height: 24px; background-color: var(--tc-dark); }
.tc-ask-text > * { margin: 0 !important; }
.tc-ask-title { font-size: 1.125rem; font-weight: 700; }
.tc-ask .tc-pill { margin: 0; }
.tc-ask a, .tc-info a { color: var(--tc-primary); font-weight: 700; }

/* =========================================================
   Contact
   ========================================================= */
.tc-contact-panel {
	background: var(--tc-dark);
	border-radius: 2.5rem;
	box-shadow: 8px 8px 0 var(--tc-dark);
	padding: clamp(1.5rem, 5vw, 4rem);
}
.tc-contact-cols { align-items: center !important; gap: 4rem; margin: 0; }
.tc-contact-cols .wp-block-column:first-child > * { margin-block: 0; }
.tc-contact-panel .tc-pill { margin-inline: 0; margin-bottom: 1.5rem !important; }
.tc-contact-title { color: var(--tc-white); font-size: clamp(2.25rem, 4vw, 3rem); font-weight: 700; line-height: 1.25; margin-bottom: 1.75rem !important; }
.tc-contact-title mark { display: block; }
.tc-contact-text { color: rgba(255,255,255,.9); font-size: 1.125rem; font-weight: 500; line-height: 1.6; }
.tc-info { color: var(--tc-white); font-size: .95rem; font-weight: 500; display: flex; align-items: center; gap: .75rem; margin-top: 1rem !important; }
.tc-info::before {
	content: "";
	flex: none;
	width: 32px;
	height: 32px;
	box-sizing: border-box;
	border-radius: 8px;
	border: 1px solid;
	-webkit-mask: none;
	mask: none;
}
.tc-info-mail::before { border-color: var(--tc-accent); background: rgba(252,163,17,.2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fca311' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='16' x='2' y='4' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E") center / 16px no-repeat; }
.tc-info-clock::before { border-color: var(--tc-primary); background: rgba(56,172,215,.2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 6 12 12 16 14'/%3E%3C/svg%3E") center / 16px no-repeat; }
.tc-contact-panel .tc-info a { color: var(--tc-accent); }
.tc-form-card { background: var(--tc-white); border-radius: 2rem; padding: 2.5rem; }

/* Form */
.tc-form p { margin: 0 0 1.25rem; }
.tc-form label { display: block; font-family: var(--tc-heading); font-weight: 700; font-size: .875rem; margin-bottom: .5rem; color: var(--tc-dark); }
.tc-form input, .tc-form select, .tc-form textarea {
	width: 100%;
	box-sizing: border-box;
	font: 500 1rem/1.5 var(--tc-body);
	color: var(--tc-dark);
	background: var(--tc-white);
	border: var(--tc-border);
	border-radius: 12px;
	box-shadow: 4px 4px 0 var(--tc-dark);
	padding: .7rem 1rem;
	outline: none;
	transition: box-shadow .15s ease, transform .15s ease;
}
.tc-form input::placeholder, .tc-form textarea::placeholder { color: rgba(11,48,80,.4); }
.tc-form input:focus, .tc-form select:focus, .tc-form textarea:focus { box-shadow: 2px 2px 0 var(--tc-primary); border-color: var(--tc-primary); }
.tc-form textarea { resize: vertical; min-height: 100px; }
.tc-form-grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: 1.25rem; }
.tc-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.tc-form-submit {
	width: 100%;
	margin-top: .75rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .6rem;
	cursor: pointer;
	font: 700 1.2rem/1.4 var(--tc-heading);
	color: var(--tc-dark);
	background: var(--tc-accent);
	border: var(--tc-border);
	border-radius: 999px;
	box-shadow: 4px 4px 0 var(--tc-dark);
	padding: .85rem 1.5rem;
	transition: transform .15s ease, box-shadow .15s ease;
}
.tc-form-submit::after { content: ""; width: 1.2em; height: 1.2em; background: currentColor; -webkit-mask: url(assets/icons/send.svg) center / contain no-repeat; mask: url(assets/icons/send.svg) center / contain no-repeat; }
.tc-form-submit:hover { transform: translate(2px, 2px); box-shadow: 2px 2px 0 var(--tc-dark); }
.tc-form-error { background: #ffe2e2; border: 2px solid #c10007; color: #82181a; border-radius: 12px; padding: .75rem 1rem; font-weight: 700; }
.tc-form-success { text-align: center; padding: 3rem 0; }
.tc-form-success-icon { width: 64px; height: 64px; margin: 0 auto 1rem; border: var(--tc-border); border-radius: 50%; background: var(--tc-accent); box-shadow: 4px 4px 0 var(--tc-dark); position: relative; }
.tc-form-success-icon::after { content: ""; position: absolute; inset: 12px; background: var(--tc-dark); -webkit-mask: url(assets/icons/check.svg) center / contain no-repeat; mask: url(assets/icons/check.svg) center / contain no-repeat; }
.tc-form-success h3 { font-size: 1.85rem; margin: 0 0 .75rem; }
.tc-form-success p { color: rgba(11,48,80,.8); font-weight: 500; max-width: 26rem; margin: 0 auto 1.5rem; }
.tc-form-reset { font-family: var(--tc-heading); font-weight: 700; color: var(--tc-primary); }

/* =========================================================
   Footer
   ========================================================= */
.tc-footer { background: var(--tc-white); padding-top: 4rem; padding-bottom: 3rem; }
.tc-footer-cols { display: grid; grid-template-columns: 1fr auto auto; gap: 5rem; padding-bottom: 3rem; border-bottom: 3px solid rgba(11,48,80,.15); }
.tc-footer-cols > * { margin: 0 !important; }
.tc-footer-brand { max-width: 380px; }
.tc-footer-brand .tc-logo img { width: 96px; height: auto; }
.tc-footer-brand .tc-muted { font-weight: 500; margin: 1rem 0 1.5rem; }
.tc-footer h4 { font-size: 1.25rem; margin: 0 0 1.25rem; }
.tc-plain-list { list-style: none; padding: 0; margin: 0; }
.tc-plain-list li { margin-bottom: .75rem; }
.tc-plain-list a { color: var(--tc-dark); text-decoration: none; font-weight: 500; }
.tc-plain-list a:hover { color: var(--tc-primary); }
.tc-plain-list a.tc-link-primary { color: var(--tc-primary); font-weight: 700; }
.tc-social.wp-block-social-links { gap: 1rem; }
.tc-social.wp-block-social-links .wp-social-link {
	background: var(--tc-white) !important;
	color: var(--tc-dark) !important;
	border: var(--tc-border);
	box-shadow: 3px 3px 0 var(--tc-dark);
	border-radius: 50%;
}
.tc-social.wp-block-social-links .wp-social-link a { padding: .5rem; }
.tc-social.wp-block-social-links .wp-social-link svg { width: 20px; height: 20px; fill: var(--tc-dark); }
.tc-copyright {
	width: fit-content;
	margin: 2rem auto 0 !important;
	padding: .75rem 1.5rem;
	background: var(--tc-surface);
	border: 2px solid rgba(11,48,80,.12);
	border-radius: 10px;
	font-family: var(--tc-heading);
	font-weight: 700;
	color: rgba(11,48,80,.7);
	text-align: center;
}

/* Simple inner pages */
.tc-page { padding-top: 4rem; padding-bottom: 5rem; }

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 1080px) {
	.tc-grid-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tc-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tc-hide-mobile { display: none !important; }
}
@media (max-width: 781px) {
	:root { --tc-radius: 1.5rem; }
	body.toycomic { --wp--style--root--padding-left: 1rem; --wp--style--root--padding-right: 1rem; }
	.tc-grid-3, .tc-grid-5, .tc-stats, .tc-footer-cols { grid-template-columns: 1fr; }
	.tc-grid-5 { gap: 2.5rem; }
	.tc-footer-cols { gap: 2.5rem; }
	.tc-header-right { gap: 1rem; }
	.tc-header .tc-logo img { width: 76px; }
	.tc-hero-cols { gap: 3.5rem; }
	.tc-hero-buttons .wp-block-button { width: 100%; }
	.tc-hero-buttons .wp-block-button__link { width: 100%; }
	.tc-tilt-card img { height: 300px; }
	.tc-tilt-right img { height: auto; }
	.tc-sticker-top { right: 0; font-size: 1rem; }
	.tc-sticker-bottom { left: 0; font-size: .95rem; }
	.tc-orange-banner, .tc-case { padding: 1.75rem; border-radius: 2rem; }
	.tc-banner-buttons, .tc-case-buttons { justify-content: flex-start; }
	.tc-form-submit { font-size: 1.05rem; white-space: nowrap; padding-inline: 1rem; }
	.tc-contact-panel { border-radius: 2rem; }
	.tc-banner-buttons .wp-block-button, .tc-banner-buttons .wp-block-button__link { width: 100%; }
	.tc-banner-buttons .wp-block-button__link { font-size: 1rem; padding-inline: 1rem; }
	.tc-case-stats { grid-template-columns: repeat(3, auto); justify-content: space-between; }
	.tc-case-num { font-size: 1.4rem; }
	.tc-form-grid { grid-template-columns: 1fr; }
	.tc-form-card { padding: 1.5rem; }
	.tc-contact-cols { gap: 2.5rem; }
	.tc-ask { padding-left: 1.5rem; padding-top: 5rem; }
	.tc-ask::before { top: 1.25rem; }
	.tc-ask::after { top: calc(1.25rem + 12px); }
	.tc-panel-cta { text-align: center; }
	.tc-faq summary { font-size: 1rem; padding: 1.25rem 4rem 1.25rem 1.25rem; }
	.tc-faq summary::after { right: 1rem; }
}
@media (max-width: 480px) {
	.tc-header-buttons { display: none; }
}

/* =========================================================
   Editor tweaks (so the editing canvas looks like the site)
   ========================================================= */
.editor-styles-wrapper .tc-sticker-top, .editor-styles-wrapper .tc-sticker-bottom, .editor-styles-wrapper .tc-ticker-track { animation: none; }
.editor-styles-wrapper .tc-ticker-track { flex-wrap: wrap !important; width: auto; rotate: 0deg; margin-left: 0 !important; min-width: 0; justify-content: center; }
.editor-styles-wrapper .tc-hp { display: none; }
.editor-styles-wrapper .tc-sticker,
.editor-styles-wrapper .tc-step { position: absolute !important; width: auto !important; max-width: none !important; }
.editor-styles-wrapper .tc-hero-media,
.editor-styles-wrapper .tc-craft-media,
.editor-styles-wrapper .tc-card { position: relative; }
