/*
Theme Name: Flash Cache 2026
Theme URI: https://flashcache.net/
Author: etruel
Author URI: https://etruel.com/
Description: Theme of flashcache.net. Classic, dependency-free, built for speed.
Version: 1.0
Requires at least: 6.3
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: flash-cache-2026
*/

/* ---------- Tokens ---------- */
:root {
	--fc-accent: #00e065;
	--fc-accent-ink: #fff;
	--fc-pro: #0e9fd2;
	--fc-text: #333;
	--fc-text-2: #555;
	--fc-heading: #333;
	--fc-dark: #191919;
	--fc-black: #0a0a0a;
	--fc-light: #f7f7f7;
	--fc-line: #e5e5e5;
	--fc-font: Montserrat, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--fc-max: 1200px;
	--fc-gutter: 15px;
	--fc-header-h: 164px;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
	margin: 0;
	font: 400 18px/1.44 var(--fc-font);
	color: var(--fc-text);
	background: #fff;
	-webkit-font-smoothing: antialiased;
}
img, video, svg { max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3, h4, h5, h6 { margin: 0 0 .5em; font-weight: 800; line-height: 1.15; color: var(--fc-heading); }
h1 { font-size: 36px; }
h2 { font-size: 30px; }
h3 { font-size: 24px; }
h4 { font-size: 20px; }
h5, h6 { font-size: 18px; }
p { margin: 0 0 1.2em; }
.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.screen-reader-text:focus {
	position: fixed !important; top: 8px; left: 8px; z-index: 100000; width: auto; height: auto;
	padding: 12px 20px; clip: auto; background: #fff; color: #000; box-shadow: 0 0 6px rgba(0,0,0,.4);
}
.container { width: 100%; max-width: var(--fc-max); margin-inline: auto; padding-inline: var(--fc-gutter); }

/* Buttons */
.button,
.wp-block-button__link,
.wp-element-button,
input[type="submit"],
button.submit {
	display: inline-block;
	padding: .8em 1.7em;
	border: 2px solid var(--fc-accent);
	border-radius: 0;
	background: var(--fc-accent);
	color: var(--fc-accent-ink);
	font: 500 16px/1.2 var(--fc-font);
	text-decoration: none;
	cursor: pointer;
	transition: background-color .2s, color .2s, border-color .2s;
}
.button:hover, .button:focus-visible,
.wp-block-button__link:hover, .wp-element-button:hover, input[type="submit"]:hover {
	background: transparent;
	color: var(--fc-accent);
}
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--fc-accent); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--fc-accent); color: var(--fc-accent-ink); }

/* Forms */
input[type="text"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], textarea, select {
	width: 100%; padding: .7em .9em; border: 1px solid #ccc; border-radius: 0; background: #fff;
	color: var(--fc-text); font: inherit;
}
input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 2px solid var(--fc-accent); outline-offset: 0; }
.search-form { display: flex; gap: 8px; }
.search-form label { flex: 1; }
.search-form .search-submit { width: auto; }

/* ---------- Header ---------- */
.site-header {
	position: sticky; top: 0; z-index: 50;
	background: var(--fc-dark); color: #fff;
	transition: transform .3s ease, background-color .3s ease;
}
.site-header.is-stuck { background: var(--fc-black); }
.site-header.is-hidden { transform: translateY(-100%); }
.site-header-inner {
	display: flex; align-items: center; justify-content: space-between; gap: 24px;
	min-height: var(--fc-header-h);
}
.site-branding img { display: block; width: auto; max-width: 120px; height: auto; max-height: 120px; }
.site-title { font-size: 24px; font-weight: 800; text-decoration: none; color: #fff; }
.site-nav .menu { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0 10px; margin: 0; padding: 0; list-style: none; }
.site-nav .menu > li { position: relative; margin: 0 10px 0 0; }
.site-nav a {
	display: block; padding: 10px 0; font-weight: 600; line-height: 1.2; color: #fff; text-decoration: none;
	border-bottom: 3px solid transparent;
}
.site-nav a:hover, .site-nav a:focus-visible { color: var(--fc-accent); }
.site-nav .current-menu-item > a,
.site-nav .current-menu-ancestor > a,
.site-nav .current-menu-parent > a { border-bottom-color: var(--fc-accent); }
.site-nav .sub-menu {
	position: absolute; top: 100%; left: 0; min-width: 200px; margin: 0; padding: 8px 16px; list-style: none;
	background: var(--fc-black); opacity: 0; visibility: hidden; transition: opacity .2s;
}
.site-nav li:hover > .sub-menu, .site-nav li:focus-within > .sub-menu { opacity: 1; visibility: visible; }
.nav-toggle {
	display: none; align-items: center; gap: 10px; padding: 8px 0; border: 0; background: none;
	color: #fff; font: 600 16px/1 var(--fc-font); cursor: pointer;
}
.nav-toggle-bars, .nav-toggle-bars::before, .nav-toggle-bars::after {
	display: block; width: 22px; height: 2px; background: currentColor; content: ""; transition: transform .2s;
}
.nav-toggle-bars { position: relative; }
.nav-toggle-bars::before { position: absolute; top: -7px; }
.nav-toggle-bars::after { position: absolute; top: 7px; }

/* Landing pages that open with a hero: the header floats transparent over it, menu centred, logo hidden. */
.has-hero .site-header { position: absolute; inset: 0 0 auto 0; background: transparent; }
.has-hero .site-header.is-stuck { position: fixed; background: var(--fc-black); }
.has-hero .site-header-inner { min-height: 180px; justify-content: center; }
.has-hero .site-header .site-branding { display: none; }
.has-hero .site-header .site-nav .menu { justify-content: center; }
.has-hero .site-header.is-stuck .site-header-inner { min-height: 80px; }

@media (max-width: 991px) {
	:root { --fc-header-h: 90px; }
	.nav-toggle { display: inline-flex; }
	.site-nav {
		position: absolute; top: 100%; left: 0; right: 0; display: none; padding: 8px var(--fc-gutter) 20px;
		background: var(--fc-black);
	}
	.nav-open .site-nav { display: block; }
	.site-nav .menu { flex-direction: column; gap: 0; }
	.site-nav .menu > li { margin: 0; }
	.site-nav a { padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,.1); }
	.site-nav .sub-menu { position: static; opacity: 1; visibility: visible; padding: 0 0 0 16px; background: none; }
	.site-branding img { max-width: 64px; max-height: 64px; }
	.has-hero .site-header-inner { min-height: 90px; justify-content: flex-end; }
	.has-hero .site-header.is-stuck .site-header-inner { min-height: 70px; }
}

/* ---------- Footer ---------- */
.site-footer { position: relative; background: var(--fc-dark); color: #fff; }
.footer-widgets { padding: 60px 0 20px; border-bottom: 1px solid rgba(255,255,255,.1); }
.footer-widgets-inner { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 40px; }
.footer-widgets .widget-title { color: #fff; font-size: 16px; }
.footer-info { padding: 22px 0; font-size: 16px; }
.footer-info-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px; }
.footer-credit img { vertical-align: baseline; height: 13px; width: auto; margin-top: -5px; }
.to-top {
	position: fixed; right: 24px; bottom: 24px; z-index: 40; width: 50px; height: 50px;
	display: flex; align-items: center; justify-content: center;
	border: 1px solid var(--fc-line); background: #fff; color: #000; box-shadow: 0 2px 10px rgba(0,0,0,.15);
	cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .2s, transform .2s, visibility .2s;
}
.to-top.is-visible { opacity: 1; visibility: visible; transform: none; }
.to-top:hover { background: var(--fc-accent); color: #fff; border-color: var(--fc-accent); }

/* ---------- Listings ---------- */
.listing, .single, .page-simple { padding-block: 60px; }
.listing-header { margin-bottom: 40px; }
.listing-title { font-size: 36px; }
.post-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; }
.post-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.card { padding: 4px; background: #fff; box-shadow: 0 0 12px rgba(0,0,0,.12); }
.card-thumb { display: block; }
.card-thumb img { display: block; width: 100%; height: auto; }
.card-body { padding: 18px 12px 14px; }
.card-title { margin: 0 0 .25em; font-size: 20px; line-height: 1.2; }
.card-title a { text-decoration: none; }
.card-title a:hover { color: var(--fc-accent); }
.card-date { display: block; margin-bottom: 1.2em; font-size: 12px; color: var(--fc-text-2); }
.card-excerpt { margin-bottom: 1.4em; font-size: 14px; color: var(--fc-text-2); }
.navigation.pagination { margin-top: 40px; }
.navigation.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 6px; }
.page-numbers { padding: 8px 14px; border: 1px solid var(--fc-line); text-decoration: none; font-size: 16px; }
.page-numbers.current, a.page-numbers:hover { background: var(--fc-accent); border-color: var(--fc-accent); color: #fff; }

/* ---------- Single / simple page ---------- */
.single-layout { display: block; max-width: 760px; margin-inline: auto; }
.single-layout.has-sidebar { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 40px; max-width: 1100px; }
.entry-title { font-size: 32px; margin-bottom: .2em; }
.entry-meta { margin-bottom: 1.6em; font-size: 12px; color: var(--fc-text-2); }
.entry-meta a { text-decoration: none; }
.entry-meta a:hover { color: var(--fc-accent); }
.entry-meta-sep { margin: 0 4px; }
.entry-thumb { margin: 0 0 1.6em; padding: 4px; box-shadow: 0 0 12px rgba(0,0,0,.12); }
.entry-thumb img { display: block; width: 100%; }
.entry-content { overflow-wrap: break-word; }
.entry-content a { color: inherit; text-decoration-color: var(--fc-accent); text-underline-offset: 3px; }
.entry-content img { height: auto; }
.entry-content pre, .entry-content code { font-size: .85em; }
.entry-content pre { overflow: auto; padding: 16px; background: var(--fc-light); }
.entry-content blockquote { margin: 1.5em 0; padding: 0 0 0 20px; border-left: 4px solid var(--fc-accent); }
.entry-content table { width: 100%; border-collapse: collapse; }
.entry-content th, .entry-content td { padding: 8px 10px; border: 1px solid var(--fc-line); }
.entry-tags a { display: inline-block; margin: 0 6px 6px 0; padding: 4px 10px; background: var(--fc-light); font-size: 13px; text-decoration: none; }
.page-simple .entry { max-width: 760px; margin-inline: auto; }
.sidebar .widget { margin-bottom: 40px; font-size: 15px; }
.sidebar .widget-title, .sidebar h2 { font-size: 16px; }
.sidebar ul { margin: 0; padding-left: 1.1em; }
.sidebar li { margin-bottom: .4em; }
.related { margin-top: 80px; }
.related-title { font-size: 24px; margin-bottom: 24px; }
.comments { max-width: 760px; margin: 60px auto 0; }
.comments-title { font-size: 24px; }
.comment-list, .comment-list ol { margin: 0; padding: 0; list-style: none; }
.comment-list .children { margin-left: 32px; }
.comment-body { padding: 18px 0; border-top: 1px solid var(--fc-line); }
.comment-meta { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; font-size: 14px; }
.comment-meta img { border-radius: 50%; }
.comment-author { font-weight: 600; }
.comment-date { color: var(--fc-text-2); text-decoration: none; }
.comment-text { font-size: 16px; }
.comment-reply-link { font-size: 14px; }
.comment-respond { margin-top: 30px; }

@media (max-width: 991px) {
	.single-layout.has-sidebar { grid-template-columns: minmax(0, 1fr); }
	.post-grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	body { font-size: 17px; }
	h1, .listing-title { font-size: 30px; }
	.post-grid, .post-grid-3 { grid-template-columns: minmax(0, 1fr); }
	.listing, .single, .page-simple { padding-block: 40px; }
	.entry-title { font-size: 26px; }
}

/* Rank Math table of contents */
.entry-content .wp-block-rank-math-toc-block { padding: 15px; background: var(--fc-light); }
.entry-content .wp-block-rank-math-toc-block h5 { margin-bottom: 15px; }
.entry-content .wp-block-rank-math-toc-block nav ul { margin: 0; padding: 0; list-style: none; }
.entry-content .wp-block-rank-math-toc-block nav li { display: flex; text-align: left; }
.entry-content .wp-block-rank-math-toc-block nav li:not(:last-child) { margin-bottom: 10px; }
.entry-content .wp-block-rank-math-toc-block nav li::before {
	content: ""; flex: 0 0 8px; height: 8px; margin: 7px 10px 0 0; border-radius: 50%; background: var(--fc-accent);
}
.entry-content .wp-block-rank-math-toc-block nav a { color: var(--fc-text); text-decoration: none; }
@media (min-width: 992px) { .entry-content .wp-block-rank-math-toc-block { max-width: 300px; padding: 30px; } }

/* ---------- Landing sections ---------- */
.landing > * { margin-block: 0; }
.alignfull { width: 100%; max-width: none; }
.is-pro { --fc-accent: var(--fc-pro); }
:root { --fc-pro: #00ccff; }

/* Sections run edge to edge; their content is held to the page width. */
.fc-hero-pin > *, .fc-section > *, .fc-banner > * {
	width: 100%; max-width: var(--fc-max); margin-inline: auto; padding-inline: var(--fc-gutter);
}
.fc-eyebrow { margin-block: 0 .5em; font-size: 20px; line-height: 1.3; color: var(--fc-accent); }
.fc-section-title { font-size: 48px; }
.landing .wp-block-buttons { margin-block: 0; }
.fc-hero-pin .wp-block-buttons, .fc-banner .wp-block-buttons, .fc-section > .wp-block-buttons { padding-inline: var(--fc-gutter); }

/* Hero: a full-screen storm with the logo. Where scroll-driven animations exist it becomes a stage, see "Scroll effects". */
.fc-hero { position: relative; isolation: isolate; min-height: 100vh; min-height: 100svh; background: #0a0a0a; color: #fff; text-align: center; overflow: hidden; }
.fc-stage { position: absolute; inset: 0; z-index: 0; }
.fc-stage-frame { position: absolute; inset: 0; overflow: hidden; background: #111; }
.fc-stage-frame::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, .27); pointer-events: none; }
.fc-storm { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.fc-collage { display: none; }
.fc-hero-pin {
	position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center;
	min-height: 100vh; min-height: 100svh; padding: 140px 0 60px;
}
.fc-hero-logo { margin: 0 auto; }
.fc-hero-logo img { display: block; width: 300px; max-width: 60vw; height: auto; margin-inline: auto; }
.fc-hero-title { margin: 0; font-size: 80px; color: #fff; }
.fc-hero-tagline { margin: 0 0 1em; font-size: 36px; line-height: 1.2; text-transform: uppercase; color: var(--fc-accent); }
.fc-hero .wp-block-button__link { font-size: 18px; color: #fff; }
.fc-hero .wp-block-button__link:hover { color: var(--fc-accent); }

/* Intro with image */
.fc-split { padding: 150px 0 0; background: var(--fc-light); }
.fc-split .wp-block-columns { display: flex; flex-wrap: wrap; align-items: center; gap: 0; margin-block: 0; }
.fc-split .wp-block-column { flex: 1 1 50%; min-width: 0; }
.fc-split .wp-block-column:first-child { padding-right: 60px; }
.fc-split .wp-block-column:first-child > :last-child { margin-bottom: 0; }
.fc-split h2 { font-size: 36px; }
.fc-split-image { margin: 0; align-self: flex-end; }
.fc-split-image img { display: block; width: 100%; height: auto; }

/* Cards */
.fc-cards { padding: 150px 0; background: #fff; }
.fc-cards-last { padding-top: 0; }
.fc-card-grid { display: grid; gap: 30px; }
.fc-card-grid.fc-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fc-card-grid.fc-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fc-card { padding: 30px; background: var(--fc-light); text-align: center; }
.fc-card.is-plain { padding: 0 30px; background: none; }
.fc-card .fc-icon { margin: 0 auto 20px; }
.fc-card-title { margin: 0 0 .6em; font-size: 20px; line-height: 1.25; }
.fc-card-text { margin: 0; font-size: 16px; color: var(--fc-text-2); }
.fc-cards-center { padding: 60px 0 0; }
.fc-cta-row { padding: 60px 0 100px; }

/* Icons: one SVG per icon, painted with the accent colour */
.fc-icon {
	width: 60px; height: 60px; background-color: var(--fc-accent);
	-webkit-mask: var(--fc-icon, none) center / contain no-repeat; mask: var(--fc-icon, none) center / contain no-repeat;
}

/* Feature list */
.fc-features { padding: 60px 0; background: #fff; }
.fc-feature-list { columns: 2; column-gap: 60px; padding-block: 0 40px; }
.fc-feature { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 20px; margin-bottom: 40px; break-inside: avoid; }
.fc-feature .fc-icon { width: 40px; height: 40px; }
.fc-feature-title { margin: 0 0 15px; font-size: 18px; line-height: 1.25; }
.fc-feature-body p { margin: 0; font-size: 15px; }
.fc-features > .wp-block-buttons { margin-top: 20px; }

/* Banners with a background image (the image sits on a pseudo-element so it can drift while scrolling) */
.fc-banner {
	position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; align-items: center; justify-content: center;
	min-height: 450px; padding-block: 60px; background: #111; color: #fff; text-align: center;
}
.fc-banner::before { content: ""; position: absolute; inset: -12% 0; z-index: -1; background: var(--fc-banner-bg) center / cover no-repeat; }
.fc-banner-features { --fc-banner-bg: linear-gradient(rgba(0, 0, 0, .48), rgba(0, 0, 0, .48)), url("https://flashcache.net/wp-content/themes/flash-cache-2026/assets/img/banner-features.webp"); }
.fc-banner-speed { --fc-banner-bg: linear-gradient(rgba(0, 0, 0, .47), rgba(0, 0, 0, .47)), url("https://flashcache.net/wp-content/themes/flash-cache-2026/assets/img/banner-speed.webp"); min-height: 600px; }
.fc-banner-support { --fc-banner-bg: linear-gradient(rgba(0, 0, 0, .77), rgba(0, 0, 0, .77)), url("https://flashcache.net/wp-content/themes/flash-cache-2026/assets/img/banner-support.webp"); min-height: 800px; }
.fc-banner-title { font-size: 48px; color: #fff; margin-bottom: .3em; }
.fc-banner-speed .fc-banner-title { font-size: 60px; }
.fc-banner-speed .fc-eyebrow { font-size: 36px; color: #fff; }
.fc-banner-text { margin: 0 0 1em; font-size: 20px; }
.fc-banner-big { font-size: 36px; color: #fff; }
.fc-banner a { color: inherit; }
.fc-banner-page { min-height: 450px; }
.fc-banner-page .fc-banner-title { font-size: 48px; }
.fc-banner-page .fc-eyebrow { font-size: 18px; }

/* FAQ */
.fc-faq { padding: 150px 0 100px; background: var(--fc-light); }
.fc-faq-list { columns: 2; column-gap: 60px; margin-top: 60px; }
.fc-faq-item { margin-bottom: 40px; break-inside: avoid; }
.fc-faq-q { margin: 0 0 .5em; font-size: 18px; }
.fc-faq-item p { margin: 0; font-size: 16px; }
.fc-faq-item a { text-decoration-color: var(--fc-accent); text-underline-offset: 3px; }

/* Benchmark */
.fc-bench { padding: 120px 0; background: #0b0f0d; color: #fff; text-align: center; }
.fc-bench .fc-section-title { color: #fff; }
.fc-bench-lead { max-width: 820px; margin-inline: auto; color: #c9d1cd; }
.fc-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; margin-block: 60px; }
.fc-stat { padding: 30px 20px; border: 1px solid rgba(255, 255, 255, .12); background: rgba(255, 255, 255, .03); }
.fc-stat-num { margin: 0; font-size: 64px; font-weight: 800; line-height: 1; color: var(--fc-accent); }
.fc-stat-label { margin: .6em 0 0; font-size: 16px; color: #c9d1cd; }
.fc-charts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; text-align: left; }
.fc-chart-title { margin: 0 0 18px; font-size: 16px; font-weight: 600; color: #fff; }
.fc-bar-row { display: grid; grid-template-columns: 170px minmax(0, 1fr) 70px; align-items: center; gap: 12px; margin-bottom: 10px; font-size: 14px; color: #c9d1cd; }
.fc-bar-row.is-fc { color: #fff; font-weight: 600; }
.fc-bar-track { display: block; height: 16px; background: rgba(255, 255, 255, .07); }
.fc-bar-fill { display: block; width: var(--w); min-width: 2px; height: 100%; background: #56615c; transform-origin: left; }
.fc-bar-row.is-fc .fc-bar-fill { background: var(--fc-accent); }
.fc-bar-val { text-align: right; font-variant-numeric: tabular-nums; }
.fc-bench-note { max-width: 880px; margin: 50px auto 0; font-size: 14px; color: #9aa6a1; }
.fc-bench-note strong { color: #fff; }

/* Servers */
.fc-servers { padding: 120px 0 60px; background: #fff; text-align: center; }
.fc-servers .fc-card-grid { margin-top: 50px; }
.fc-card-grid.fc-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fc-card.is-server { text-align: center; }
.fc-servers-note { margin-top: 30px; font-size: 16px; color: var(--fc-text-2); }

/* PRO page */
.fc-intro { padding: 150px 0 80px; text-align: center; }
.fc-intro .fc-section-title { font-size: 60px; }
.fc-intro-text { max-width: 760px; margin-inline: auto; }
.fc-intro > .fc-intro-text { padding-inline: var(--fc-gutter); }
.fc-video { padding: 100px 0; background: #f4f4f4; text-align: center; }
.fc-video .wp-block-embed { max-width: 960px; margin-top: 40px; }
.fc-video iframe { width: 100%; height: 100%; }

@media (max-width: 991px) {
	.fc-hero-pin { padding-top: 110px; }
	.fc-stats { grid-template-columns: minmax(0, 1fr); }
	.fc-charts { grid-template-columns: minmax(0, 1fr); }
	.fc-card-grid.fc-cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fc-hero-title { font-size: 60px; }
	.fc-hero-tagline { font-size: 20px; }
	.fc-hero-logo img { width: 250px; }
	.fc-split .wp-block-column { flex-basis: 100%; }
	.fc-split .wp-block-column:first-child { padding: 0 0 50px; }
	.fc-card-grid.fc-cols-3 { grid-template-columns: minmax(0, 1fr); }
	.fc-banner-speed .fc-banner-title, .fc-intro .fc-section-title { font-size: 40px; }
	.fc-banner-big { font-size: 20px; }
	.fc-section-title, .fc-banner-title { font-size: 40px; }
}
@media (max-width: 767px) {
	.fc-bar-row { grid-template-columns: 110px minmax(0, 1fr) 56px; font-size: 13px; }
	.fc-stat-num { font-size: 48px; }
	.fc-bench, .fc-servers { padding-block: 75px; }
	.fc-feature-list, .fc-faq-list { columns: 1; }
	.fc-card-grid.fc-cols-2 { grid-template-columns: minmax(0, 1fr); }
	.fc-split { padding-top: 75px; }
	.fc-cards, .fc-faq { padding-block: 75px; }
	.fc-banner-support { min-height: 480px; }
	.fc-banner-speed { min-height: 420px; }
}
@media (max-width: 575px) {
	.fc-card-grid.fc-cols-4 { grid-template-columns: minmax(0, 1fr); }
	.fc-hero-title { font-size: 40px; }
	.fc-section-title, .fc-banner-title, .fc-banner-speed .fc-banner-title, .fc-intro .fc-section-title { font-size: 32px; }
}

/* ---------- Scroll effects ----------
   Pure CSS scroll-driven animations: no JavaScript, nothing to load. Browsers without animation-timeline, and visitors
   who ask for reduced motion, get the same page, still. */
@keyframes fc-reveal { from { opacity: 0; transform: translateY(48px); } to { opacity: 1; transform: none; } }
@keyframes fc-expand { from { clip-path: inset(0 var(--fc-expand-x, 6vw) round var(--fc-expand-r, 40px)); } to { clip-path: inset(0 0 round 0); } }
@keyframes fc-grow { from { transform: scaleX(0); } to { transform: none; } }
@keyframes fc-drift { from { transform: translateY(-9%); } to { transform: translateY(9%); } }
@keyframes fc-frame {
	from { clip-path: inset(0 0 0 0 round 0); }
	to { clip-path: inset(var(--fc-frame-y, 15svh) var(--fc-frame-x, 24vw) round 36px); }
}
@keyframes fc-shot-in {
	from { opacity: 0; scale: .45; translate: var(--fc-from-x, 0) 0; }
	to { opacity: 1; scale: 1; translate: 0 0; }
}
@keyframes fc-pin-scale { from { scale: 1; } to { scale: .8; } }
@keyframes fc-shot-par { from { transform: translateY(var(--par, 40px)); } to { transform: translateY(calc(var(--par, 40px) * -1)); } }

@supports (animation-timeline: view()) {
	@media (prefers-reduced-motion: no-preference) {
		/* Hero: tall stage, pinned while it plays. The storm shrinks into a card and the plugin's own screens fly in around the logo. */
		.fc-hero { height: 340svh; min-height: 0; overflow: clip; view-timeline: --fc-hero block; }
		.fc-stage { position: sticky; inset: 0 0 auto 0; height: 100svh; margin-bottom: -100svh; }
		.fc-hero-pin { position: sticky; inset: 0 0 auto 0; height: 100svh; min-height: 0; box-sizing: border-box; padding: 90px 0 40px; }
		.fc-stage-frame { animation: fc-frame linear both; animation-timeline: --fc-hero; animation-range: cover 25% cover 46%; }
		.fc-hero-pin { animation: fc-pin-scale linear both; animation-timeline: --fc-hero; animation-range: cover 25% cover 46%; }
		.fc-collage { display: block; position: absolute; inset: 0; }
		.fc-shot {
			position: absolute; height: auto; border-radius: 14px; box-shadow: 0 24px 60px rgba(0, 0, 0, .55), 0 0 0 1px rgba(255, 255, 255, .08);
			animation: fc-shot-in linear both, fc-shot-par linear both;
			animation-timeline: --fc-hero, --fc-hero;
			animation-range: cover 28% cover 52%, cover 24% cover 78%;
		}
		.fc-shot-1 { left: 1.5vw; top: 6svh; width: 22vw; --par: 36px; --fc-from-x: 22vw; }
		.fc-shot-2 { right: 1.5vw; top: 4svh; width: 21vw; --par: 70px; --fc-from-x: -22vw; }
		.fc-shot-3 { left: 5vw; top: 35svh; width: 18vw; --par: 90px; --fc-from-x: 20vw; }
		.fc-shot-4 { right: 1vw; top: 33svh; width: 23vw; --par: 28px; --fc-from-x: -24vw; }
		.fc-shot-5 { left: 1vw; top: 63svh; width: 23vw; --par: 60px; --fc-from-x: 22vw; }
		.fc-shot-6 { right: 4vw; top: 66svh; width: 19vw; --par: 100px; --fc-from-x: -20vw; }

		/* Sections that open from an inset card to the full width */
		.fc-expand { animation: fc-expand linear both; animation-timeline: view(); animation-range: entry 5% cover 38%; }
		/* Banner images drift slower than the page */
		.fc-banner::before { animation: fc-drift linear both; animation-timeline: view(); animation-range: cover; }
		/* Content comes in as it scrolls into view */
		.landing .fc-card, .landing .fc-feature, .landing .fc-faq-item, .landing .fc-stat, .landing .fc-split .wp-block-column,
		.landing .fc-section-title, .landing .fc-intro-text, .landing .fc-card-title {
			animation: fc-reveal linear both; animation-timeline: view(); animation-range: entry 4% entry 52%;
		}
		.landing .fc-card-grid > :nth-child(3n + 2), .landing .fc-feature-list > :nth-child(even), .landing .fc-stats > :nth-child(2) { animation-range: entry 10% entry 58%; }
		.landing .fc-card-grid > :nth-child(3n + 3), .landing .fc-stats > :nth-child(3) { animation-range: entry 16% entry 64%; }
		.landing .fc-card-title { animation: none; }
		.fc-bar-fill { animation: fc-grow linear both; animation-timeline: view(); animation-range: entry 25% cover 32%; }
		.fc-bar-row:nth-child(n + 3) .fc-bar-fill { animation-range: entry 30% cover 36%; }
	}
}

@media (max-width: 767px) {
	@supports (animation-timeline: view()) {
		@media (prefers-reduced-motion: no-preference) {
			.fc-hero { --fc-frame-x: 7vw; --fc-frame-y: 16svh; }
			.fc-shot-1 { left: 4vw; top: 4svh; width: 38vw; }
			.fc-shot-2 { right: 4vw; top: 6svh; width: 34vw; }
			.fc-shot-5 { left: 4vw; top: auto; bottom: 4svh; width: 38vw; }
			.fc-shot-6 { right: 4vw; top: auto; bottom: 5svh; width: 34vw; }
			.fc-shot-3, .fc-shot-4 { display: none; }
			.fc-hero-title { font-size: 34px; }
		}
	}
}

/* ---------- Icons ---------- */
.fc-icon-check { --fc-icon: url("https://flashcache.net/wp-content/themes/flash-cache-2026/assets/icons/check.svg"); }
.fc-icon-code { --fc-icon: url("https://flashcache.net/wp-content/themes/flash-cache-2026/assets/icons/code.svg"); }
.fc-icon-cog { --fc-icon: url("https://flashcache.net/wp-content/themes/flash-cache-2026/assets/icons/cog.svg"); }
.fc-icon-gauge { --fc-icon: url("https://flashcache.net/wp-content/themes/flash-cache-2026/assets/icons/gauge.svg"); }
.fc-icon-hard-drive { --fc-icon: url("https://flashcache.net/wp-content/themes/flash-cache-2026/assets/icons/hard-drive.svg"); }
.fc-icon-loading-2 { --fc-icon: url("https://flashcache.net/wp-content/themes/flash-cache-2026/assets/icons/loading-2.svg"); }
.fc-icon-planet { --fc-icon: url("https://flashcache.net/wp-content/themes/flash-cache-2026/assets/icons/planet.svg"); }
.fc-icon-puzzle { --fc-icon: url("https://flashcache.net/wp-content/themes/flash-cache-2026/assets/icons/puzzle.svg"); }
.fc-icon-rocket { --fc-icon: url("https://flashcache.net/wp-content/themes/flash-cache-2026/assets/icons/rocket.svg"); }
.fc-icon-save { --fc-icon: url("https://flashcache.net/wp-content/themes/flash-cache-2026/assets/icons/save.svg"); }
.fc-icon-search { --fc-icon: url("https://flashcache.net/wp-content/themes/flash-cache-2026/assets/icons/search.svg"); }
.fc-icon-secure { --fc-icon: url("https://flashcache.net/wp-content/themes/flash-cache-2026/assets/icons/secure.svg"); }
.fc-icon-security { --fc-icon: url("https://flashcache.net/wp-content/themes/flash-cache-2026/assets/icons/security.svg"); }
.fc-icon-servers { --fc-icon: url("https://flashcache.net/wp-content/themes/flash-cache-2026/assets/icons/servers.svg"); }
.fc-icon-smile { --fc-icon: url("https://flashcache.net/wp-content/themes/flash-cache-2026/assets/icons/smile.svg"); }
.fc-icon-sync { --fc-icon: url("https://flashcache.net/wp-content/themes/flash-cache-2026/assets/icons/sync.svg"); }
.fc-icon-timer { --fc-icon: url("https://flashcache.net/wp-content/themes/flash-cache-2026/assets/icons/timer.svg"); }
.fc-icon-trash-bin { --fc-icon: url("https://flashcache.net/wp-content/themes/flash-cache-2026/assets/icons/trash-bin.svg"); }
.fc-icon-users { --fc-icon: url("https://flashcache.net/wp-content/themes/flash-cache-2026/assets/icons/users.svg"); }
.fc-icon-wrench { --fc-icon: url("https://flashcache.net/wp-content/themes/flash-cache-2026/assets/icons/wrench.svg"); }


.wp-container-core-buttons-is-layout-940d97e3{justify-content:center;}.wp-container-core-columns-is-layout-2a9ab960{flex-wrap:nowrap;}
/*# sourceURL=core-block-supports-inline-css */
