/*
 * Revive landing page, page-scoped styles.
 *
 * Enqueued ONLY on /revive from functions.php (ozone_blocks_revive_styles).
 * Rebuilt 2026-09-21 from the Claude Design "revive-resequenced" structure
 * mock: dark ground, Fraunces display type, IBM Plex Sans body, IBM Plex
 * Mono for eyebrows and measured lines. Ember is spent on the primary
 * buttons and the hero figure only.
 *
 * Fonts are bundled under assets/revive/fonts (Google Fonts, OFL), latin and
 * latin-ext subsets. Nothing on this page references a third-party host.
 *
 * The page uses the site's global header and footer parts; the header takes
 * Revive's ground so it reads as one block with the hero.
 */

/* ---------- Fonts ---------- */
@font-face {
	font-family: "Fraunces";
	font-style: normal;
	font-weight: 300 900;
	font-display: swap;
	src: url("revive/fonts/fraunces-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Fraunces";
	font-style: normal;
	font-weight: 300 900;
	font-display: swap;
	src: url("revive/fonts/fraunces-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "IBM Plex Sans";
	font-style: normal;
	font-weight: 100 700;
	font-stretch: 100%;
	font-display: swap;
	src: url("revive/fonts/plex-sans-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "IBM Plex Sans";
	font-style: normal;
	font-weight: 100 700;
	font-stretch: 100%;
	font-display: swap;
	src: url("revive/fonts/plex-sans-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "IBM Plex Mono";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("revive/fonts/plex-mono-400-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "IBM Plex Mono";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("revive/fonts/plex-mono-400-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "IBM Plex Mono";
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("revive/fonts/plex-mono-500-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "IBM Plex Mono";
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("revive/fonts/plex-mono-500-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ---------- Tokens ---------- */
body.page-template-page-revive {
	--rv-ground:  #101820;
	--rv-surface: #1A242E;
	--rv-surface-2: #212E3A;
	--rv-line:    #2A3845;
	--rv-line-soft: #202A33;
	--rv-ink:     #E8EFF5;
	--rv-muted:   #93A6B7;
	--rv-dormant: #55697A;
	--rv-ember:   #F2694A;
	--rv-ember-deep: #D6452B;
	--rv-sans: "IBM Plex Sans", system-ui, sans-serif;
	--rv-serif: "Fraunces", Georgia, serif;
	--rv-mono: "IBM Plex Mono", ui-monospace, monospace;
	--rv-wrap: none;
	--rv-gutter: 0px;

	background: var(--rv-ground);
	color: var(--rv-ink);
	font-family: var(--rv-sans);
	-webkit-font-smoothing: antialiased;
}
body.page-template-page-revive .wp-site-blocks { background: var(--rv-ground); padding: 0; }
body:has(.revive-page) .ozone-header { background-color: var(--rv-ground); }

/* Core prints flow gaps at :root :where(.is-layout-flow) > * (0,1,0); this sheet loads
   later, so an equal-specificity reset wins and every margin below is explicit. */
.revive-page :where(.is-layout-flow, .is-layout-constrained) > *,
.revive-page.is-layout-flow > * { margin-block-start: 0; margin-block-end: 0; }
.revive-page :where(h1, h2, h3, h4, p, ul, ol, figure) { margin: 0; }
.revive-page { background: var(--rv-ground); color: var(--rv-ink); letter-spacing: normal; overflow-x: clip; }
.revive-page p { letter-spacing: normal; }
.revive-page .wp-block-group.alignfull { max-width: none; }
.revive-page a { color: var(--rv-muted); text-decoration: none; border-bottom: 1px solid var(--rv-line); transition: color .15s, border-color .15s; }
.revive-page a:hover { color: var(--rv-ember); border-bottom-color: var(--rv-ember); }

/* ---------- Layout primitives ---------- */
.revive-section { padding: 80px 0; border-top: 1px solid var(--rv-line); box-sizing: border-box; }
.revive-section--hero { padding: 88px 0 72px; border-top: 0; }
.revive-section--surface { background: var(--rv-surface); }
.rv-wrap { width: 80%; max-width: var(--rv-wrap); margin: 0 auto; }
.rv-wrap--narrow { max-width: 760px; }

.revive-page p.revive-kicker,
.revive-kicker {
	font-family: var(--rv-mono);
	font-size: 10.2px;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--rv-dormant);
	margin: 0 0 16px;
	line-height: 1.6;
}
/* Section eyebrows: the six labels above the Fraunces headlines. Larger, ink, with an ember rule. */
.revive-page p.revive-kicker--section,
.revive-kicker--section {
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: var(--rv-mono);
	font-size: 19px;
	font-weight: 500;
	letter-spacing: .08em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--rv-ink);
	margin: 0 0 12px;
	white-space: nowrap;
}
.revive-kicker--section::before {
	content: "";
	width: 28px;
	height: 2px;
	background: var(--rv-ember);
	flex: none;
}
.revive-page .revive-problem p.revive-kicker.revive-kicker--section { margin-bottom: 12px; }
body.page-template-page-revive[data-theme="light"] .revive-kicker--section { color: #131a21; }
body.page-template-page-revive[data-theme="light"] .revive-kicker--section::before { background: #d6452b; }
@media (max-width: 640px) {
	.revive-page p.revive-kicker--section,
	.revive-kicker--section { font-size: 15px; letter-spacing: .1em; }
	.revive-kicker--section::before { width: 22px; }
}

.revive-page p.revive-eyebrow,
.revive-eyebrow {
	font-family: var(--rv-mono);
	font-size: 11.5px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--rv-muted);
	margin: 0 0 10px;
	line-height: 1.5;
}
.revive-page p.revive-mono { font-family: var(--rv-mono); font-size: 11.5px; letter-spacing: .05em; color: var(--rv-muted); font-variant-numeric: tabular-nums; margin: 0; }
body .revive-page h2.wp-block-heading,
body .revive-page h2 {
	font-family: var(--rv-serif);
	font-variation-settings: "opsz" 40, "WONK" 1;
	font-weight: 600;
	font-size: 32px;
	line-height: 1.1;
	letter-spacing: -.015em;
	color: var(--rv-ink);
	text-wrap: pretty;
	margin: 0 0 40px;
}
body .revive-page h3.wp-block-heading,
body .revive-page h3 {
	font-family: var(--rv-sans);
	font-size: 16px;
	line-height: 1.4;
	font-weight: 600;
	color: var(--rv-ink);
	margin: 0;
}
.revive-page p.revive-lead { font-size: 16px; line-height: 1.6; color: var(--rv-muted); max-width: 66ch; text-wrap: pretty; margin: 0 0 40px; }
.revive-page p.revive-body { font-size: 14.7px; line-height: 1.5; color: var(--rv-muted); margin: 0; }
.revive-page p.revive-small { font-size: 12.8px; line-height: 1.5; color: var(--rv-muted); margin: 0; }
.revive-page p.revive-figure {
	font-family: var(--rv-sans);
	font-size: 25.6px;
	line-height: 1.1;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	color: var(--rv-ink);
	margin: 0 0 10px;
}
.revive-page p.revive-figure--hero { color: var(--rv-ember); }
.revive-card { background: var(--rv-surface); border: 1px solid var(--rv-line); border-radius: 6px; box-sizing: border-box; }

/* Buttons */
.revive-page .wp-block-buttons { gap: 12px; }
.revive-page .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--rv-sans);
	font-size: 14.7px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0;
	text-transform: none;
	color: #fff;
	background: var(--rv-ember-deep);
	border: 1px solid var(--rv-ember-deep);
	border-radius: 4px;
	padding: 11px 18px;
	box-shadow: none;
	box-sizing: border-box;
	transition: background .15s, border-color .15s, color .15s;
}
.revive-page .wp-block-button__link:hover { background: var(--rv-ember); border-color: var(--rv-ember); color: #fff; }
.revive-page .is-style-outline .wp-block-button__link { color: var(--rv-ink); background: transparent; border: 1px solid var(--rv-line); }
.revive-page .is-style-outline .wp-block-button__link:hover { background: transparent; color: var(--rv-ember); border-color: var(--rv-ember); }
.revive-page form { display: contents; }

/* ---------- Anchor motion ---------- */
/* The hero's "Launch now" anchors to #seats. This sheet is enqueued only on
   /revive/, so the html rule reaches no other page. Off for readers who asked
   for reduced motion. */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
}

/* ---------- Hero ---------- */
.revive-hero__logo { height: 44px; width: auto; display: block; margin: 0 0 20px; }
.revive-page p.revive-hero__case { font-size: 13px; color: var(--rv-muted); margin: 0 0 20px; }
body .revive-page h1.revive-hero__title {
	font-family: var(--rv-serif);
	font-variation-settings: "opsz" 120, "WONK" 1;
	font-weight: 600;
	font-size: 50px;
	line-height: 1;
	letter-spacing: -.025em;
	color: var(--rv-ink);
	max-width: 22ch;
	text-wrap: pretty;
	margin: 0 0 24px;
}
.revive-page p.revive-hero__lead { font-size: 16px; line-height: 1.6; color: var(--rv-muted); max-width: 62ch; text-wrap: pretty; margin: 0 0 28px; }
.revive-page p.revive-hero__lead strong { color: var(--rv-ink); font-weight: 600; }
.revive-page p.revive-hero__box {
	margin: 0 0 28px;
	padding: 14px 16px;
	border: 1px solid var(--rv-line);
	border-radius: 6px;
	background: var(--rv-surface);
	font-size: 14.7px;
	line-height: 1.5;
	color: var(--rv-ink);
	max-width: 62ch;
}
.revive-hero .wp-block-buttons { margin: 0 0 16px; }
.revive-page p.revive-hero__note { max-width: 60ch; margin: 0 0 40px; }
.revive-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 340px); gap: 56px; align-items: center; }
.revive-hero__media { display: flex; justify-content: flex-end; }
.revive-hero__phone {
	width: 100%;
	max-width: 340px;
	aspect-ratio: 9 / 16;
	border: 1px solid var(--rv-line);
	border-radius: 24px;
	overflow: hidden;
	background: var(--rv-surface);
	box-shadow: 0 24px 64px rgba(0, 0, 0, .45);
}
.revive-hero__video { display: block; width: 100%; height: 100%; object-fit: cover; }
.revive-page p.revive-hero__note { margin-bottom: 0; }
@media (max-width: 900px) {
	.revive-hero__grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
	.revive-hero__media { justify-content: flex-start; }
	.revive-hero__phone { max-width: 300px; }
}

/* ---------- The challenge ---------- */
.revive-problem .rv-wrap { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 48px; align-items: start; }
.revive-page .revive-problem p.revive-kicker { margin-bottom: 20px; }
.revive-page p.revive-problem__figure {
	font-family: var(--rv-sans);
	font-size: 50px;
	line-height: 1;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	color: var(--rv-ink);
	margin: 0 0 12px;
}
.revive-page .revive-problem__bench p.revive-body { margin-bottom: 16px; }
body .revive-page .revive-problem__copy h2 { margin-bottom: 20px; }
.revive-page .revive-problem__copy p { font-size: 16px; line-height: 1.6; color: var(--rv-muted); text-wrap: pretty; margin: 0 0 16px; }
.revive-page .revive-problem__copy p:last-child { margin-bottom: 0; }

/* ---------- Results ---------- */
body .revive-page .revive-proof h2 { max-width: 28ch; }
.revive-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 16px; }
.revive-stat { padding: 16px; }

/* ---------- What we built ---------- */
body .revive-page .revive-built h2 { margin-bottom: 16px; max-width: 30ch; }
.revive-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } /* six cards: two rows of three */
@media (max-width: 900px) { .revive-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .revive-cards { grid-template-columns: minmax(0, 1fr); } }
.revive-card--feature { padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.revive-card__icon { display: flex; justify-content: center; padding: 4px 0 8px; }
.revive-card__icon svg { display: block; width: 36px; height: 36px; color: var(--rv-dormant); }

/* ---------- Proof band ---------- */
.revive-case { padding: 56px 0; border-bottom: 1px solid var(--rv-line); }
.revive-case + .revive-section { border-top: 0; }
.revive-case .rv-wrap { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; justify-content: space-between; }
body .revive-page .revive-case h2 { font-variation-settings: "opsz" 60, "WONK" 1; font-size: 21px; letter-spacing: -.02em; margin: 0 0 8px; }
.revive-page .revive-case p.revive-body { max-width: 56ch; }
.revive-case .wp-block-buttons { flex: 0 0 auto; }
.revive-case .wp-block-button__link { white-space: nowrap; }

/* ---------- Seats ---------- */
body .revive-page .revive-fit h2 { max-width: 30ch; margin-bottom: 16px; }
.revive-page .revive-fit p.revive-lead { margin-bottom: 40px; }
.revive-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 16px; margin-bottom: 16px; }
.revive-plan { padding: 24px; display: flex; flex-direction: column; }
.revive-page .revive-plan p.revive-figure { margin-bottom: 6px; }
.revive-page .revive-plan p.revive-plan__hours { margin-bottom: 20px; }
.revive-plan__body { display: flex; flex-direction: column; gap: 12px; }
.revive-plan__cta { margin-top: auto; padding-top: 24px; }
.revive-plan__cta .wp-block-buttons, .revive-plan__cta .wp-block-button, .revive-plan__cta .wp-block-button__link { width: 100%; }
.revive-keep { padding: 20px 24px; margin-bottom: 16px; display: grid; grid-template-columns: minmax(0, 260px) minmax(0, 1fr); gap: 8px 40px; align-items: start; }
.revive-page .revive-keep p.revive-figure { margin-bottom: 4px; }
.revive-page .revive-keep p.revive-plan__hours { margin-bottom: 0; }
.revive-page .revive-keep p.revive-keep__copy { max-width: 66ch; }
@media (max-width: 640px) { .revive-keep { grid-template-columns: minmax(0, 1fr); } }
.revive-page p.revive-fit__terms { max-width: 80ch; margin: 0 0 28px; }
.revive-fit__ask { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; padding-top: 28px; border-top: 1px solid var(--rv-line); }
.revive-page .revive-fit__ask p.revive-body { flex: 1 1 280px; }

/* ---------- Getting started ---------- */
body .revive-page .revive-start h2 { margin-bottom: 16px; max-width: 28ch; }
.revive-weeks { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 1px; background: var(--rv-line); border: 1px solid var(--rv-line); border-radius: 6px; overflow: hidden; }
.revive-week { background: var(--rv-surface); padding: 24px; }
.revive-page .revive-week p.revive-kicker { margin-bottom: 12px; }

/* ---------- Questions ---------- */
body .revive-page .revive-faq h2 { margin-bottom: 32px; }
.revive-faq__list { max-width: 760px; display: flex; flex-direction: column; gap: 1px; background: var(--rv-line); border-top: 1px solid var(--rv-line); border-bottom: 1px solid var(--rv-line); }
.revive-page .wp-block-details.revive-faq__item {
	background: var(--rv-ground);
	margin: 0;
	padding: 0;
	border: 0;
}
.revive-page .revive-faq__item > summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	align-items: flex-start;
	gap: 20px;
	padding: 20px 0;
	font-family: var(--rv-sans);
	font-size: 16px;
	line-height: 1.5;
	font-weight: 600;
	color: var(--rv-ink);
}
.revive-page .revive-faq__item > summary::-webkit-details-marker { display: none; }
.revive-page .revive-faq__item > summary::after {
	content: "+";
	flex: 0 0 auto;
	margin-left: auto;
	color: var(--rv-ember);
	font-size: 20px;
	line-height: 1.2;
	transition: transform .2s;
}
.revive-page .revive-faq__item[open] > summary::after { transform: rotate(45deg); }
.revive-page .revive-faq__item > p { font-size: 14.7px; line-height: 1.6; color: var(--rv-muted); margin: 0 0 20px; padding-right: 40px; }
@media (max-width: 640px) { .revive-page .revive-faq__item > p { padding-right: 0; } }

/* ---------- CTA ---------- */
.revive-cta { padding: 88px 0; }
.revive-cta .rv-wrap { text-align: center; }
body .revive-page .revive-cta h2 { margin: 0 0 16px; }
.revive-page .revive-cta p.revive-lead { margin: 0 auto 28px; max-width: none; }
.revive-cta .wp-block-buttons { justify-content: center; margin: 0 0 20px; }

/* ---------- Responsive ---------- */
@media (max-width: 640px) {
	.revive-section { padding-top: 56px; padding-bottom: 56px; }
	.revive-section--hero { padding-top: 48px; }
	body .revive-page h1.revive-hero__title { font-size: 38px; }
	.revive-page p.revive-problem__figure { font-size: 40px; }
	.revive-page .wp-block-button { width: 100%; }
	.revive-page .wp-block-button__link { width: 100%; }
}
