/* =========================================================================
   Norvex — Editorial design system
   ========================================================================= */

:root {
	--norvex-ink: #1c2438;          /* deep navy ink */
	--norvex-ink-soft: #33405e;
	--norvex-gold: #c08a3e;         /* warm editorial gold — primary accent */
	--norvex-gold-dark: #9a6a2f;
	--norvex-burgundy: #7c2b3b;     /* burgundy — secondary accent */
	--norvex-cream: #faf7f1;        /* page background */
	--norvex-paper: #ffffff;        /* cards / panels */
	--norvex-sand: #f2ebdd;         /* soft section bg */
	--norvex-line: #e7ddca;
	--norvex-text: #2b2a27;
	--norvex-muted: #6c6a64;
	--norvex-radius: 14px;
	--norvex-radius-sm: 8px;
	--norvex-shadow: 0 18px 45px -25px rgba(28, 36, 56, 0.45);
	--norvex-shadow-sm: 0 10px 25px -18px rgba(28, 36, 56, 0.5);
	--norvex-serif: "Playfair Display", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
	--norvex-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--norvex-wrap: 1160px;
}

*,
*::before,
*::after { box-sizing: border-box; }

/* Inline icon default size — prevents SVGs from expanding to full width
   when used directly in text (top bar, footer, buttons). Container-specific
   rules below (e.g. .norvex-card__icon svg) override this where a larger icon
   is wanted. */
.norvex-icon {
	width: 1.05em;
	height: 1.05em;
	display: inline-block;
	vertical-align: -0.15em;
	flex: 0 0 auto;
}

html { scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--norvex-sans);
	/* 1.0625rem = 17px at the default 16px root, so the standard look is
	   unchanged — but body copy now scales with the Design → Base font size
	   control (which sets the <html> root size). */
	font-size: 1.0625rem;
	line-height: 1.7;
	color: var(--norvex-text);
	background: var(--norvex-cream);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--norvex-serif);
	color: var(--norvex-ink);
	line-height: 1.18;
	margin: 0 0 0.5em;
	font-weight: 700;
}

h1 { font-size: clamp(2.3rem, 5vw, 3.6rem); }
h2 { font-size: clamp(1.9rem, 3.4vw, 2.7rem); }
h3 { font-size: 1.45rem; }
h4 { font-size: 1.2rem; }

p { margin: 0 0 1.2em; }

a { color: var(--norvex-gold-dark); text-decoration: none; transition: color .2s ease; }
a:hover, a:focus { color: var(--norvex-burgundy); }

img { max-width: 100%; height: auto; display: block; }

ul, ol { margin: 0 0 1.2em; padding-left: 1.2em; }

blockquote {
	margin: 1.5em 0;
	padding: 1em 1.5em;
	border-left: 4px solid var(--norvex-gold);
	background: var(--norvex-sand);
	font-family: var(--norvex-serif);
	font-style: italic;
	font-size: 1.25rem;
	color: var(--norvex-ink);
	border-radius: 0 var(--norvex-radius-sm) var(--norvex-radius-sm) 0;
}

code, pre {
	font-family: "SFMono-Regular", Menlo, Consolas, monospace;
	background: #f2ebdd;
	border-radius: 6px;
}
code { padding: 2px 6px; font-size: .9em; }
pre { padding: 18px; overflow-x: auto; }

hr { border: 0; border-top: 1px solid var(--norvex-line); margin: 2.5rem 0; }

/* ---------- Layout helpers ---------- */
.norvex-wrap { width: 100%; max-width: var(--norvex-wrap); margin: 0 auto; padding: 0 24px; }
.norvex-section { padding: 92px 0; }
.norvex-section--tight { padding: 64px 0; }
.norvex-section--sand { background: var(--norvex-sand); }
.norvex-section--ink { background: var(--norvex-ink); color: #f2ebdd; }
.norvex-section--ink h1, .norvex-section--ink h2, .norvex-section--ink h3 { color: #fff; }
.norvex-center { text-align: center; }

.norvex-eyebrow {
	display: inline-block;
	font-family: var(--norvex-sans);
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--norvex-gold-dark);
	margin-bottom: 14px;
}
.norvex-section--ink .norvex-eyebrow { color: var(--norvex-gold); }

.norvex-lead { font-size: 1.18rem; color: var(--norvex-muted); max-width: 640px; }
.norvex-center .norvex-lead { margin-left: auto; margin-right: auto; }
.norvex-section--ink .norvex-lead { color: #e7ddca; }

.norvex-section-head { max-width: 720px; margin: 0 auto 54px; }

/* ---------- Buttons ---------- */
.norvex-btn {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	font-family: var(--norvex-sans);
	font-weight: 600;
	font-size: 1rem;
	line-height: 1;
	padding: 15px 28px;
	border-radius: 10px;
	border: 1.5px solid transparent;
	cursor: pointer;
	transition: transform .18s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
}
.norvex-btn--primary { background: var(--norvex-gold); color: #fff; box-shadow: var(--norvex-shadow-sm); }
.norvex-btn--primary:hover, .norvex-btn--primary:focus { background: var(--norvex-gold-dark); color: #fff; transform: translateY(-2px); }
.norvex-btn--ghost { border-color: rgba(28, 36, 56, .22); color: var(--norvex-ink); background: transparent; }
.norvex-section--ink .norvex-btn--ghost { color: #fff; border-color: rgba(255, 255, 255, .38); }
.norvex-btn--ghost:hover, .norvex-btn--ghost:focus { background: var(--norvex-ink); color: #fff; }
.norvex-section--ink .norvex-btn--ghost:hover { background: #fff; color: var(--norvex-ink); }
.norvex-btn--light { background: #fff; color: var(--norvex-ink); }
.norvex-btn--light:hover { background: var(--norvex-gold); color: #1c2438; }

/* =========================================================================
   Header
   ========================================================================= */
.norvex-topbar {
	background: var(--norvex-ink);
	color: #e7ddca;
	font-size: .85rem;
}
.norvex-topbar .norvex-wrap { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 42px; flex-wrap: wrap; }
.norvex-topbar a { color: #f2ebdd; }
.norvex-topbar a:hover { color: var(--norvex-gold); }
.norvex-topbar__meta { display: flex; gap: 22px; flex-wrap: wrap; }
.norvex-topbar__meta span { display: inline-flex; align-items: center; gap: 7px; }
.norvex-topbar__social { display: flex; gap: 14px; }
.norvex-topbar__social a { display: inline-flex; }
.norvex-topbar__social .norvex-icon { width: 17px; height: 17px; }

.norvex-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(250, 247, 241, 0.92);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--norvex-line);
}
.norvex-header .norvex-wrap { display: flex; align-items: center; justify-content: space-between; min-height: 80px; gap: 24px; }

.norvex-brand { display: flex; align-items: center; gap: 12px; }
.norvex-brand img, .norvex-brand svg, .norvex-brand .custom-logo { width: var(--norvex-logo-w, 44px); height: auto; max-height: 88px; object-fit: contain; }
.norvex-brand__text { display: flex; flex-direction: column; line-height: 1.05; }
.norvex-brand__name { font-family: var(--norvex-serif); font-size: 1.5rem; font-weight: 800; color: var(--norvex-ink); }
.norvex-brand__tag { font-size: .68rem; letter-spacing: .22em; text-transform: uppercase; color: var(--norvex-gold-dark); }

/* Nav */
.norvex-nav { display: flex; align-items: center; gap: 30px; }
.norvex-menu { display: flex; align-items: center; gap: 26px; list-style: none; margin: 0; padding: 0; }
.norvex-menu li { position: relative; }
.norvex-menu a {
	font-weight: 500;
	color: var(--norvex-ink);
	font-size: .98rem;
	padding: 8px 0;
	display: inline-block;
}
.norvex-menu a:hover,
.norvex-menu .current-menu-item > a,
.norvex-menu .current_page_item > a { color: var(--norvex-gold-dark); }
.norvex-menu .menu-item-has-children > a::after { content: "▾"; font-size: .7em; margin-left: 6px; opacity: .6; }

/* Sub menu */
.norvex-menu ul.sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 210px;
	background: #fff;
	border: 1px solid var(--norvex-line);
	border-radius: var(--norvex-radius-sm);
	box-shadow: var(--norvex-shadow);
	padding: 8px;
	list-style: none;
	margin: 10px 0 0;
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: all .2s ease;
	z-index: 60;
}
.norvex-menu li:hover > ul.sub-menu,
.norvex-menu li:focus-within > ul.sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.norvex-menu ul.sub-menu a { display: block; padding: 9px 14px; border-radius: 6px; font-size: .93rem; }
.norvex-menu ul.sub-menu a:hover { background: var(--norvex-sand); }

/* Mobile toggle */
.norvex-nav-toggle {
	display: none;
	background: none;
	border: 0;
	cursor: pointer;
	width: 44px; height: 44px;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	padding: 0;
}
.norvex-nav-toggle span { display: block; height: 2px; width: 26px; background: var(--norvex-ink); border-radius: 2px; transition: .25s; margin: 0 auto; }
.norvex-nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.norvex-nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.norvex-nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.norvex-header__cta { display: inline-flex; }

/* =========================================================================
   Hero
   ========================================================================= */
.norvex-hero {
	position: relative;
	background:
		radial-gradient(1200px 500px at 80% -10%, rgba(192,138,62,0.16), transparent 60%),
		linear-gradient(180deg, #ffffff 0%, var(--norvex-cream) 100%);
	overflow: hidden;
	padding: 84px 0 96px;
}
.norvex-hero__grid { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 56px; align-items: center; }
.norvex-hero h1 { margin-bottom: 20px; }
.norvex-hero h1 .norvex-accent { color: var(--norvex-gold); font-style: italic; }
.norvex-hero__lead { font-size: 1.22rem; color: var(--norvex-ink-soft); max-width: 520px; margin-bottom: 30px; }
.norvex-hero__actions { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 34px; }
.norvex-hero__stats { display: flex; gap: 38px; flex-wrap: wrap; }
.norvex-hero__stat strong { font-family: var(--norvex-serif); font-size: 2rem; color: var(--norvex-ink); display: block; line-height: 1; }
.norvex-hero__stat span { font-size: .85rem; color: var(--norvex-muted); letter-spacing: .04em; }
.norvex-hero__art { position: relative; }
.norvex-hero__art img { width: 100%; filter: drop-shadow(0 30px 45px rgba(28,36,56,.28)); }
.norvex-hero__badge {
	position: absolute;
	bottom: 22px;
	left: -12px;
	background: #fff;
	border-radius: var(--norvex-radius);
	box-shadow: var(--norvex-shadow);
	padding: 14px 18px;
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: .9rem;
	max-width: 240px;
}
.norvex-hero__badge strong { color: var(--norvex-ink); display: block; }
.norvex-hero__badge .norvex-stars { color: var(--norvex-gold); letter-spacing: 2px; }

/* Trusted-by strip */
.norvex-logos { border-top: 1px solid var(--norvex-line); border-bottom: 1px solid var(--norvex-line); background: #fff; }
.norvex-logos .norvex-wrap { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding-top: 26px; padding-bottom: 26px; }
.norvex-logos p { margin: 0; font-size: .8rem; letter-spacing: .16em; text-transform: uppercase; color: var(--norvex-muted); }
.norvex-logos ul { display: flex; gap: 34px; list-style: none; margin: 0; padding: 0; flex-wrap: wrap; align-items: center; }
.norvex-logos li { font-family: var(--norvex-serif); font-weight: 700; font-size: 1.2rem; color: #a7a49b; }

/* =========================================================================
   Cards / features / services
   ========================================================================= */
.norvex-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.norvex-cards--4 { grid-template-columns: repeat(4, 1fr); }
.norvex-cards--2 { grid-template-columns: repeat(2, 1fr); }

/* Buttons block */
.norvex-buttons { display: flex; flex-wrap: wrap; gap: 14px; }
.norvex-buttons--center { justify-content: center; }
.norvex-buttons--right { justify-content: flex-end; }

/* Table block */
.norvex-table__title { text-align: center; margin-bottom: 22px; }
.norvex-table-wrap { overflow-x: auto; }
.norvex-table { width: 100%; border-collapse: collapse; font-size: .98rem; }
.norvex-table th, .norvex-table td { padding: 14px 18px; border-bottom: 1px solid var(--norvex-line); text-align: left; vertical-align: top; }
.norvex-table thead th { background: var(--norvex-sand); font-family: var(--norvex-serif); font-weight: 700; color: var(--norvex-ink); }
.norvex-table tbody tr:last-child td { border-bottom: none; }
.norvex-table tbody tr:hover { background: rgba(0, 0, 0, .015); }

/* Carousel — any grid marked data-norvex-carousel becomes a slider */
.norvex-carousel { position: relative; }
.norvex-carousel__track {
	display: flex !important;
	grid-template-columns: none !important;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	gap: 28px;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding: 4px 2px 8px;
}
.norvex-carousel__track::-webkit-scrollbar { display: none; }
.norvex-carousel__track > * { flex: 0 0 auto; scroll-snap-align: start; width: calc((100% - 56px) / 3); margin-bottom: 0; }
.norvex-carousel__btn {
	position: absolute;
	top: 42%;
	transform: translateY(-50%);
	width: 46px;
	height: 46px;
	border-radius: 50%;
	border: 1px solid var(--norvex-line);
	background: #fff;
	color: var(--norvex-ink);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: var(--norvex-shadow-sm);
	z-index: 2;
	transition: background .18s, opacity .18s;
}
.norvex-carousel__btn:hover { background: var(--norvex-sand); }
.norvex-carousel__btn:disabled { opacity: .3; cursor: default; }
.norvex-carousel__prev { left: -14px; }
.norvex-carousel__prev svg { transform: scaleX(-1); }
.norvex-carousel__next { right: -14px; }
.norvex-carousel__dots { display: flex; justify-content: center; gap: 8px; margin-top: 22px; }
.norvex-carousel__dot { width: 9px; height: 9px; border-radius: 50%; border: none; background: var(--norvex-line); cursor: pointer; padding: 0; transition: background .18s, transform .18s; }
.norvex-carousel__dot.is-active { background: var(--norvex-gold); transform: scale(1.25); }

/* ---- Shared card hover lift --------------------------------------------
   One utility class powers every card's hover interaction. Add "norvex-lift"
   to any card container in the markup (services, testimonials, team, pricing,
   portfolio, journal…) and it gets a consistent lift-on-hover. The effect is
   automatically neutralised inside a carousel / slider, disabled on touch
   devices (which have no real hover), and skipped for reduced-motion users. */
.norvex-lift { transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.norvex-lift:hover { transform: translateY(-6px); box-shadow: var(--norvex-shadow); border-color: #e7ddca; }
	/* Inside a carousel the cards slide horizontally, so the lift is muted. */
	.norvex-carousel__track .norvex-lift:hover { transform: none; box-shadow: var(--norvex-shadow-sm); border-color: var(--norvex-line); }
}
@media (max-width: 1024px) {
	.norvex-carousel__track > * { width: calc((100% - 28px) / 2); }
	.norvex-carousel__prev { left: 4px; }
	.norvex-carousel__next { right: 4px; }
}
@media (max-width: 640px) {
	.norvex-carousel__track > * { width: 84%; }
}

/* ---- Tabs block ---- */
.norvex-tabs__heading { margin: 0 0 20px; }
.norvex-tabs__nav { display: flex; flex-wrap: wrap; gap: 4px; border-bottom: 1px solid var(--norvex-line); margin-bottom: 24px; }
.norvex-tabs__tab {
	appearance: none;
	background: none;
	border: 0;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	padding: 12px 18px;
	font: inherit;
	font-weight: 600;
	color: var(--norvex-ink-soft, #6c6a64);
	cursor: pointer;
	transition: color .2s ease, border-color .2s ease;
}
.norvex-tabs__tab:hover { color: var(--norvex-ink, #2b2a27); }
.norvex-tabs__tab.is-active { color: var(--norvex-ink, #2b2a27); border-bottom-color: var(--norvex-gold); }
.norvex-tabs__tab:focus-visible { outline: 2px solid var(--norvex-gold); outline-offset: 2px; border-radius: 4px; }
.norvex-tabs__panel { line-height: 1.7; }
.norvex-tabs__panel[hidden] { display: none; }
.norvex-tabs__panel > :first-child { margin-top: 0; }
.norvex-tabs__panel > :last-child { margin-bottom: 0; }

.norvex-card__media { display: block; margin: -34px -30px 22px; aspect-ratio: 16 / 9; overflow: hidden; background: var(--norvex-sand); border-radius: 13px 13px 0 0; }
.norvex-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; }

.norvex-card {
	background: var(--norvex-paper);
	border: 1px solid var(--norvex-line);
	border-radius: var(--norvex-radius);
	padding: 34px 30px;
	box-shadow: var(--norvex-shadow-sm);
	transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
	height: 100%;
}
/* Card hover lift is provided by the shared .norvex-lift utility (see above). */
.norvex-card__icon {
	width: 56px; height: 56px;
	border-radius: 14px;
	background: var(--norvex-sand);
	color: var(--norvex-gold-dark);
	display: flex; align-items: center; justify-content: center;
	margin-bottom: 20px;
}
.norvex-card__icon svg { width: 28px; height: 28px; }
.norvex-card h3 { margin-bottom: 10px; }
.norvex-card p { color: var(--norvex-muted); margin-bottom: 16px; }
.norvex-card__link { font-weight: 600; font-size: .95rem; display: inline-flex; align-items: center; gap: 6px; }
.norvex-card__link::after { content: "→"; transition: transform .2s; }
.norvex-card__link:hover::after { transform: translateX(4px); }

/* Large bare number badge (no icon box) — used when a card's icon field holds
   a number or letter instead of an icon key. */
.norvex-card__num {
	display: block;
	font-family: var(--norvex-serif);
	font-weight: 700;
	font-size: 2.6rem;
	line-height: 1;
	color: var(--norvex-gold);
	margin-bottom: 16px;
}
/* Card footer row — a left note/price and a right link, pinned to the bottom. */
.norvex-card__foot {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 14px;
	margin-top: 8px;
	padding-top: 16px;
	border-top: 1px solid var(--norvex-line);
}
.norvex-card__note { font-weight: 700; font-size: .98rem; color: var(--norvex-ink); }
.norvex-card__foot .norvex-card__link { margin: 0; }
.norvex-card__fnote { font-size: .82rem; color: var(--norvex-muted); margin: 8px 0 0; }
/* When a card has a footer, stack it as a column and pin the footer to the base
   so a row of cards lines up regardless of body length. */
.norvex-card--has-foot { display: flex; flex-direction: column; }
.norvex-card--has-foot .norvex-card__foot { margin-top: auto; }

/* Numbered service cards — top accent line + price footer (built on the shared
   number badge and footer styles above). */
.norvex-card--numbered {
	display: flex;
	flex-direction: column;
	border-top: 4px solid var(--norvex-gold);
	padding-top: 30px;
}
.norvex-card--numbered p { flex: 1 1 auto; }
.norvex-card--numbered .norvex-card__foot { margin-top: auto; }
/* Cycle the accent colour so a row of numbered cards feels editorial, not uniform. */
.norvex-cards--numbered .norvex-card--numbered:nth-child(3n+2) { border-top-color: var(--norvex-burgundy); }
.norvex-cards--numbered .norvex-card--numbered:nth-child(3n+2) .norvex-card__num { color: var(--norvex-burgundy); }
.norvex-cards--numbered .norvex-card--numbered:nth-child(3n+3) { border-top-color: var(--norvex-ink); }
.norvex-cards--numbered .norvex-card--numbered:nth-child(3n+3) .norvex-card__num { color: var(--norvex-ink); }

/* Process — dark two-column layout (intro + button left, numbered steps right). */
.norvex-process__grid { display: grid; grid-template-columns: 1fr 1.15fr; gap: 72px; align-items: start; }
.norvex-process__intro h2 { margin-bottom: 0; }
.norvex-process__lead { color: rgba(255, 255, 255, .72); margin: 18px 0 30px; max-width: 34ch; line-height: 1.7; }
.norvex-process__steps { list-style: none; margin: 0; padding: 0; }
.norvex-pstep { display: grid; grid-template-columns: 54px 1fr; column-gap: 24px; padding-bottom: 34px; position: relative; }
.norvex-pstep:last-child { padding-bottom: 0; }
.norvex-pstep::before { content: ""; position: absolute; left: 26px; top: 54px; bottom: 0; width: 1px; background: rgba(255, 255, 255, .14); }
.norvex-pstep:last-child::before { display: none; }
.norvex-pstep__num {
	width: 54px; height: 54px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	font-family: var(--norvex-serif); font-size: 1.2rem; font-weight: 700; color: #ecdcc0;
	border: 1px solid rgba(226, 205, 160, .45); background: rgba(255, 255, 255, .07);
	position: relative; z-index: 1;
}
.norvex-pstep:last-child .norvex-pstep__num { background: var(--norvex-gold); color: #f2ebdd; border-color: var(--norvex-gold); }
.norvex-pstep__body h4 { color: #fff; font-size: 1.18rem; margin: 12px 0 7px; }
.norvex-pstep__body p { color: rgba(255, 255, 255, .66); font-size: .96rem; margin: 0; line-height: 1.65; }
@media (max-width: 860px) {
	.norvex-process__grid { grid-template-columns: 1fr; gap: 40px; }
}

/* Why authors choose us — split header + four feature columns. */
.norvex-whyus__head { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: end; margin-bottom: 52px; }
.norvex-whyus__head h2 { margin-bottom: 0; }
.norvex-whyus__intro .norvex-lead { margin: 0 0 24px; }
.norvex-whyus__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 34px; }
.norvex-whyus__item { border-top: 2px solid var(--norvex-gold); padding-top: 22px; }
.norvex-whyus__item h4 { font-size: 1.12rem; margin: 0 0 8px; }
.norvex-whyus__item p { color: var(--norvex-muted); font-size: .95rem; margin: 0; line-height: 1.6; }
@media (max-width: 860px) {
	.norvex-whyus__head { grid-template-columns: 1fr; gap: 22px; align-items: start; }
	.norvex-whyus__grid { grid-template-columns: repeat(2, 1fr); gap: 26px; }
}
@media (max-width: 560px) {
	.norvex-whyus__grid { grid-template-columns: 1fr; }
}

/* =========================================================================
   Split feature sections — Feature split / Highlights / Showcase
   ========================================================================= */
/* Shared: two-tone heading with a script-italic accent word + drop cap. */
.norvex-accent-heading { font-size: clamp(2rem, 3.6vw, 3rem); line-height: 1.08; margin: 0 0 18px; letter-spacing: -.01em; }
.norvex-accent-word { font-style: italic; font-weight: 500; color: var(--norvex-burgundy); white-space: nowrap; }
.norvex-section--ink .norvex-accent-word { color: var(--norvex-gold); }
.norvex-dropcap::first-letter {
	float: left; font-family: var(--norvex-serif); font-weight: 600;
	font-size: 3.1em; line-height: .72; margin: 6px 14px 0 0; padding: 12px 14px;
	background: var(--norvex-ink); color: #fff; border-radius: 10px;
}

/* --- Feature split: icon-card grid + side heading. --- */
.norvex-featuresplit { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 56px; align-items: center; }
.norvex-featuresplit--left { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }
.norvex-featuresplit--left .norvex-featuresplit__text { order: -1; }
.norvex-featuresplit__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.norvex-fcard { background: var(--norvex-paper); border: 1px solid var(--norvex-line); border-radius: var(--norvex-radius); padding: 30px 26px; text-align: center; }
.norvex-fcard__icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 60px; height: 60px; margin-bottom: 16px; border-radius: 50%;
	background: rgba(124, 43, 59, .12); color: var(--norvex-burgundy); font-size: 1.6rem;
}
.norvex-fcard h3 { font-size: 1.16rem; margin: 0 0 10px; }
.norvex-fcard p { color: var(--norvex-muted); font-size: .94rem; line-height: 1.6; margin: 0; }
.norvex-featuresplit__text .norvex-eyebrow { display: block; margin-bottom: 12px; }
.norvex-featuresplit__text .norvex-lead { margin: 0 0 28px; }

/* --- Highlights + note: numbered highlight list + heading/quote/signature. --- */
.norvex-splitlist { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 60px; align-items: center; }
.norvex-splitlist__list { display: flex; flex-direction: column; gap: 14px; }
.norvex-hl { display: flex; gap: 18px; align-items: flex-start; padding: 22px 24px; border-radius: var(--norvex-radius); background: var(--norvex-sand); border: 1px solid var(--norvex-line); transition: transform .2s ease, box-shadow .2s ease; }
.norvex-hl__num { font-family: var(--norvex-serif); font-size: 1.5rem; font-weight: 600; color: var(--norvex-burgundy); line-height: 1; min-width: 34px; }
.norvex-hl__check { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: rgba(255, 255, 255, .22); color: #fff; font-size: 1.05rem; }
.norvex-hl__body h4 { font-size: 1.14rem; margin: 0 0 6px; }
.norvex-hl__body p { color: var(--norvex-muted); font-size: .95rem; line-height: 1.6; margin: 0; }
/* The emphasised highlight — filled rust card. */
.norvex-hl--on { background: var(--norvex-burgundy); border-color: var(--norvex-burgundy); box-shadow: var(--norvex-shadow); transform: translateX(4px); }
.norvex-hl--on .norvex-hl__num { color: #fff; }
.norvex-hl--on .norvex-hl__body h4 { color: #fff; }
.norvex-hl--on .norvex-hl__body p { color: rgba(255, 255, 255, .82); }
.norvex-splitlist__mark { display: block; font-family: var(--norvex-serif); font-size: 3.2rem; line-height: .4; color: var(--norvex-gold); opacity: .55; margin-bottom: 16px; }
.norvex-splitlist__sub { color: var(--norvex-burgundy); font-weight: 600; font-size: 1.08rem; margin: 0 0 16px; }
.norvex-splitlist__aside > p { color: var(--norvex-muted); line-height: 1.7; margin: 0 0 14px; }
.norvex-sign { display: flex; align-items: center; gap: 14px; margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--norvex-line); }
.norvex-sign__photo { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; }
.norvex-sign__photo--ph { display: inline-flex; align-items: center; justify-content: center; background: var(--norvex-ink); color: var(--norvex-gold); font-size: 1.3rem; }
.norvex-sign__meta { display: flex; flex-direction: column; line-height: 1.4; }
.norvex-sign__meta strong { font-family: var(--norvex-serif); font-style: italic; font-size: 1.16rem; color: var(--norvex-ink); font-weight: 600; }
.norvex-sign__meta span { color: var(--norvex-muted); font-size: .88rem; }

/* --- Showcase list: heading + drop-cap lead + numbered feature list. --- */
.norvex-showcase { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 5vw, 64px); align-items: center; }
.norvex-showcase__intro .norvex-eyebrow { display: block; margin-bottom: 14px; }
.norvex-showcase__rule { display: block; width: 56px; height: 3px; margin: 2px 0 26px; background: var(--norvex-gold); border-radius: 999px; }
.norvex-showcase__lead { color: var(--norvex-muted); font-size: 1.05rem; line-height: 1.75; margin: 0 0 28px; }
.norvex-showcase__list { list-style: none; margin: 0; padding: 0; }
.norvex-showitem { display: flex; gap: 18px; align-items: baseline; padding: 13px 0; border-top: 1px dashed var(--norvex-line); }
.norvex-showitem:first-child { border-top: 0; padding-top: 0; }
.norvex-showitem:last-child { padding-bottom: 0; }
.norvex-showitem__num { font-family: var(--norvex-serif); font-size: 1.55rem; font-weight: 600; color: var(--norvex-burgundy); line-height: 1; min-width: 38px; }
.norvex-showitem__body h4 { font-size: 1.14rem; margin: 0 0 4px; }
.norvex-showitem__body p { color: var(--norvex-muted); font-size: .94rem; line-height: 1.55; margin: 0; }

@media (max-width: 900px) {
	.norvex-featuresplit, .norvex-featuresplit--left, .norvex-splitlist, .norvex-showcase { grid-template-columns: 1fr; gap: 40px; }
	.norvex-featuresplit--left .norvex-featuresplit__text { order: 0; }
}
@media (max-width: 520px) {
	.norvex-featuresplit__grid { grid-template-columns: 1fr; }
}

/* =========================================================================
   Rates & story / Launch checklist sections
   ========================================================================= */
/* --- Rates & story: prose + pull-quote beside an open rates card. --- */
.norvex-ratesplit { display: grid; grid-template-columns: 1.2fr .8fr; gap: 48px; align-items: start; margin-top: 6px; }
.norvex-ratesplit__prose p { color: var(--norvex-muted); line-height: 1.75; margin: 0 0 16px; }
.norvex-ratesplit__quote { margin: 26px 0 0; padding: 20px 24px; background: var(--norvex-sand); border-left: 4px solid var(--norvex-burgundy); border-radius: 0 var(--norvex-radius-sm) var(--norvex-radius-sm) 0; }
.norvex-ratesplit__quote p { font-family: var(--norvex-serif); font-style: italic; font-size: 1.32rem; line-height: 1.35; color: var(--norvex-ink); margin: 0 0 8px; }
.norvex-ratesplit__quote cite { font-style: normal; font-size: .82rem; letter-spacing: .04em; color: var(--norvex-muted); }
.norvex-ratecard { background: var(--norvex-paper); border: 1px solid var(--norvex-line); border-radius: var(--norvex-radius); box-shadow: var(--norvex-shadow-sm); padding: 30px 30px 34px; }
.norvex-ratecard h3 { font-size: 1.5rem; text-align: center; margin: 0 0 4px; }
.norvex-ratecard__sub { text-align: center; font-size: .74rem; color: var(--norvex-gold-dark); text-transform: uppercase; letter-spacing: .1em; font-weight: 700; margin: 0 0 18px; }
.norvex-ratecard ul { list-style: none; margin: 0; padding: 0; }
.norvex-ratecard li { display: flex; align-items: baseline; gap: .5rem; padding: 12px 0; border-bottom: 1px dashed var(--norvex-line); }
.norvex-ratecard li:last-child { border-bottom: 0; }
.norvex-ratecard__name { font-family: var(--norvex-serif); font-size: 1.18rem; }
.norvex-ratecard__dots { flex: 1; border-bottom: 1.5px dotted var(--norvex-line); position: relative; top: -4px; }
.norvex-ratecard__price { font-weight: 700; color: var(--norvex-burgundy); }


/* --- Launch checklist: struck-through heading + a clean priced checklist. --- */
.norvex-strike { color: var(--norvex-muted); text-decoration: line-through; text-decoration-color: var(--norvex-burgundy); text-decoration-thickness: 2px; }
.norvex-checkcard { max-width: 720px; margin: 6px auto 0; background: var(--norvex-paper); border: 1px solid var(--norvex-line); border-radius: var(--norvex-radius); box-shadow: var(--norvex-shadow-sm); padding: 30px clamp(24px, 4vw, 40px) 34px; }
.norvex-checkcard__h { text-align: center; font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; color: var(--norvex-gold-dark); margin-bottom: 16px; }
.norvex-checkcard ul { list-style: none; margin: 0; padding: 0; }
.norvex-checkcard li { display: flex; align-items: center; gap: 14px; padding: 14px 0; border-bottom: 1px dashed var(--norvex-line); font-family: var(--norvex-serif); font-size: 1.2rem; }
.norvex-checkcard li:last-child { border-bottom: 0; }
.norvex-checkcard__box { width: 26px; height: 26px; border-radius: 50%; border: 1.5px solid var(--norvex-line); flex: none; display: grid; place-items: center; color: #fff; font-size: .8rem; }
.norvex-checkcard__box.is-done { background: var(--norvex-gold); border-color: var(--norvex-gold); }
.norvex-checkcard__label { flex: 1; }
.norvex-checkcard li.is-done .norvex-checkcard__label { color: var(--norvex-muted); }
.norvex-checkcard__pr { font-family: var(--norvex-sans); font-weight: 700; font-size: .85rem; color: var(--norvex-gold-dark); }
.norvex-checkcard__cta { text-align: center; margin-top: 26px; }

@media (max-width: 860px) {
	.norvex-ratesplit { grid-template-columns: 1fr; gap: 32px; }
}

/* =========================================================================
   Chapters index / Data columns / Services list
   ========================================================================= */
.norvex-section-head--left { max-width: 660px; margin: 0 0 44px; }

/* --- Chapters index: numbered entries in a bordered grid. --- */
.norvex-chapters__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; padding-bottom: 26px; border-bottom: 1px solid var(--norvex-line); }
.norvex-chapters__head h2 { margin: 10px 0 0; max-width: 18ch; }
.norvex-chapters__meta { color: var(--norvex-muted); font-size: .95rem; }
.norvex-chapters__grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.norvex-chapters__item { padding: 30px 40px 30px 0; border-bottom: 1px solid var(--norvex-line); }
.norvex-chapters__top { display: flex; align-items: baseline; gap: 14px; margin-bottom: 12px; }
.norvex-chapters__num { font-family: var(--norvex-serif); font-style: italic; font-size: 2rem; font-weight: 600; color: var(--norvex-burgundy); line-height: 1; }
.norvex-chapters__item h3 { font-size: 1.2rem; margin: 0; }
.norvex-chapters__item p { color: var(--norvex-muted); font-size: .94rem; line-height: 1.6; margin: 0; }


/* --- Data columns: sources split by vertical rules. --- */
.norvex-datacols { display: grid; grid-template-columns: repeat(3, 1fr); }
.norvex-datacol { padding: 0 36px; border-left: 1px solid var(--norvex-line); }
.norvex-datacol:first-child { padding-left: 0; border-left: 0; }
.norvex-datacol:last-child { padding-right: 0; }
.norvex-datacol__src { font-family: var(--norvex-sans); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: var(--norvex-gold-dark); display: block; margin-bottom: 14px; }
.norvex-datacol__fig { font-family: var(--norvex-serif); font-weight: 600; font-size: clamp(2.2rem, 3.2vw, 3rem); line-height: 1.02; color: var(--norvex-ink); margin-bottom: 12px; }
.norvex-datacol h4 { font-size: 1.05rem; margin: 0 0 12px; }
.norvex-datacol p { color: var(--norvex-muted); font-size: .92rem; line-height: 1.65; margin: 0 0 14px; }

/* --- Services list: numbered priced rows. --- */
.norvex-servlist { list-style: none; margin: 4px 0 0; padding: 0; border-top: 1px solid var(--norvex-line); }
.norvex-servlist__row { display: grid; grid-template-columns: auto 1fr auto; gap: 28px; align-items: start; padding: 28px 6px; border-bottom: 1px solid var(--norvex-line); transition: background .2s ease; }
.norvex-servlist__row:hover { background: var(--norvex-paper); }
.norvex-servlist__num { font-family: var(--norvex-serif); font-size: 1.1rem; color: var(--norvex-muted); line-height: 1.7; }
.norvex-servlist__main h3 { font-family: var(--norvex-serif); font-size: 1.5rem; margin: 0 0 8px; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.norvex-servlist__badge { font-family: var(--norvex-sans); font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--norvex-gold-dark); background: rgba(192, 138, 62, .12); border: 1px solid rgba(192, 138, 62, .28); border-radius: 999px; padding: 3px 10px; }
.norvex-servlist__main p { color: var(--norvex-muted); font-size: .95rem; line-height: 1.65; margin: 0; max-width: 62ch; }
.norvex-servlist__side { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; min-width: 120px; text-align: right; }
.norvex-servlist__price { font-family: var(--norvex-serif); font-size: 1.4rem; font-weight: 600; color: var(--norvex-burgundy); }
.norvex-servlist__learn { font-family: var(--norvex-sans); font-size: .82rem; font-weight: 700; color: var(--norvex-gold-dark); display: inline-flex; align-items: center; gap: 6px; }
.norvex-servlist__learn:hover { color: var(--norvex-burgundy); }

@media (max-width: 860px) {
	.norvex-chapters__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
	.norvex-datacols { grid-template-columns: 1fr; }
	.norvex-datacol { padding: 26px 0; border-left: 0; border-top: 1px solid var(--norvex-line); }
	.norvex-datacol:first-child { border-top: 0; padding-top: 0; }
}
@media (max-width: 640px) {
	.norvex-chapters__grid { grid-template-columns: 1fr; }
	.norvex-chapters__item { padding-right: 0; }
	.norvex-servlist__row { grid-template-columns: auto 1fr; gap: 6px 18px; }
	.norvex-servlist__side { grid-column: 1 / -1; flex-direction: row; align-items: baseline; justify-content: space-between; text-align: left; margin-top: 6px; }
}

/* --- Steps with media: numbered steps with an optional image each. --- */
.norvex-steps { display: flex; flex-direction: column; gap: 22px; margin-top: 6px; }
.norvex-step { display: grid; grid-template-columns: auto 1fr minmax(0, 300px); gap: 28px; align-items: center; background: var(--norvex-paper); border: 1px solid var(--norvex-line); border-radius: var(--norvex-radius); box-shadow: var(--norvex-shadow-sm); padding: 24px 30px; transition: transform .2s ease, box-shadow .2s ease; }
.norvex-step--noimg { grid-template-columns: auto 1fr; }
.norvex-step__num { width: 46px; height: 46px; border-radius: 50%; background: rgba(192, 138, 62, .12); color: var(--norvex-gold-dark); display: inline-flex; align-items: center; justify-content: center; font-family: var(--norvex-serif); font-size: 1.4rem; font-weight: 700; flex: none; }
.norvex-step__body h3 { font-size: 1.3rem; margin: 0 0 6px; }
.norvex-step__body p { color: var(--norvex-muted); font-size: .96rem; line-height: 1.65; margin: 0; max-width: 62ch; }
.norvex-step__media img { width: 100%; max-height: 150px; object-fit: cover; border-radius: var(--norvex-radius-sm); display: block; border: 1px solid var(--norvex-line); }
@media (max-width: 760px) {
	.norvex-step, .norvex-step--noimg { grid-template-columns: auto 1fr; }
	.norvex-step__media { grid-column: 1 / -1; }
	.norvex-step__media img { max-height: 220px; }
}

/* --- Horizontal timeline: numbered dots on a line + optional scale. --- */
.norvex-hztl { margin-top: 8px; }
.norvex-hztl__track { display: flex; gap: 0; position: relative; }
.norvex-hztl__track::before { content: ""; position: absolute; left: 0; right: 0; top: 19px; height: 2px; background: var(--norvex-line); }
.norvex-hztl__item { flex: 1 1 0; min-width: 0; text-align: center; padding: 0 14px; position: relative; }
.norvex-hztl__dot { width: 38px; height: 38px; border-radius: 50%; background: var(--norvex-burgundy); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-family: var(--norvex-serif); font-weight: 700; font-size: .95rem; position: relative; z-index: 1; margin-bottom: 18px; }
.norvex-hztl__item:last-child .norvex-hztl__dot { background: var(--norvex-ink); }
.norvex-hztl__phase { display: block; font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--norvex-gold-dark); margin-bottom: 6px; }
.norvex-hztl__body h4 { font-family: var(--norvex-serif); font-size: 1.14rem; margin: 0 0 8px; }
.norvex-hztl__body p { color: var(--norvex-muted); font-size: .9rem; line-height: 1.55; margin: 0; }
.norvex-hztl__scale { display: flex; justify-content: space-between; margin-top: 30px; padding-top: 16px; border-top: 1px dashed var(--norvex-line); }
.norvex-hztl__scale span { font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--norvex-muted); }

/* --- Zig-zag steps: numbered steps alternating side in a balanced two-column
   grid — each step gets its own row, so the two sides share an equal gutter and
   equal outer margins. --- */
.norvex-zz { display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(36px, 5vw, 80px); align-items: start; margin-top: 8px; }
.norvex-zz__step { grid-column: 1; padding-top: 24px; border-top: 1px solid var(--norvex-line); }
.norvex-zz__step:nth-child(even) { grid-column: 2; }
.norvex-zz__step:nth-child(1) { grid-row: 1; }
.norvex-zz__step:nth-child(2) { grid-row: 2; }
.norvex-zz__step:nth-child(3) { grid-row: 3; }
.norvex-zz__step:nth-child(4) { grid-row: 4; }
.norvex-zz__step:nth-child(5) { grid-row: 5; }
.norvex-zz__step:nth-child(6) { grid-row: 6; }
.norvex-zz__step:nth-child(7) { grid-row: 7; }
.norvex-zz__step:nth-child(8) { grid-row: 8; }
.norvex-zz__step:nth-child(9) { grid-row: 9; }
.norvex-zz__step:nth-child(10) { grid-row: 10; }
.norvex-zz__step:nth-child(11) { grid-row: 11; }
.norvex-zz__step:nth-child(12) { grid-row: 12; }
.norvex-zz__no { display: block; font-family: var(--norvex-serif); font-size: 2.2rem; font-weight: 700; color: var(--norvex-burgundy); line-height: 1; margin-bottom: 6px; }
.norvex-zz__label { display: block; font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--norvex-gold-dark); margin-bottom: 6px; }
.norvex-zz__body h4 { font-family: var(--norvex-serif); font-size: 1.4rem; margin: 0 0 8px; }
.norvex-zz__body p { color: var(--norvex-muted); font-size: .95rem; line-height: 1.65; margin: 0; }

@media (max-width: 760px) {
	.norvex-hztl__track { flex-direction: column; }
	.norvex-hztl__track::before { left: 19px; right: auto; top: 0; bottom: 0; width: 2px; height: auto; }
	.norvex-hztl__item { display: flex; gap: 18px; text-align: left; padding: 0 0 24px; }
	.norvex-hztl__item:last-child { padding-bottom: 0; }
	.norvex-hztl__dot { margin-bottom: 0; flex: none; }
	.norvex-hztl__scale { display: none; }
	.norvex-zz { grid-template-columns: 1fr; }
	.norvex-zz__step:nth-child(n) { grid-column: 1; grid-row: auto; }
}

/* =========================================================================
   Books catalog
   ========================================================================= */
.norvex-books { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; }
.norvex-book { text-align: left; }
.norvex-book__cover {
	position: relative;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: var(--norvex-shadow);
	background: var(--norvex-sand);
	transition: transform .25s ease;
}
/* Reserve the cover's height reliably (padding-ratio), so it never collapses
   in the grid with lazy-loaded images and overflow onto the button below. */
.norvex-book__cover::before { content: ""; display: block; padding-bottom: 146.6%; }
/* Whole-card lift on hover is provided by the shared .norvex-lift utility. */
.norvex-book__cover img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.norvex-book__tag {
	position: absolute; top: 12px; left: 12px;
	background: var(--norvex-burgundy); color: #fff;
	font-size: .68rem; letter-spacing: .08em; text-transform: uppercase;
	padding: 5px 10px; border-radius: 999px; font-weight: 600;
}
.norvex-book h3 { font-size: 1.12rem; margin: 16px 0 4px; }
.norvex-book__author { color: var(--norvex-muted); font-size: .9rem; margin: 0; }

/* =========================================================================
   Stats band
   ========================================================================= */
.norvex-stats-band { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; text-align: center; }
.norvex-stat-lg strong { font-family: var(--norvex-serif); font-size: clamp(2.4rem,4vw,3.2rem); color: var(--norvex-gold); display: block; line-height: 1; }
.norvex-stat-lg span { color: #e7ddca; font-size: .95rem; }

/* =========================================================================
   Testimonials
   ========================================================================= */
.norvex-quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.norvex-quote {
	background: #fff;
	border: 1px solid var(--norvex-line);
	border-radius: var(--norvex-radius);
	padding: 30px;
	box-shadow: var(--norvex-shadow-sm);
}
.norvex-quote__stars { color: var(--norvex-gold); letter-spacing: 2px; margin-bottom: 14px; }
.norvex-quote p { font-family: var(--norvex-serif); font-style: italic; font-size: 1.12rem; color: var(--norvex-ink); }
.norvex-quote__by { display: flex; align-items: center; gap: 12px; margin-top: 18px; }
.norvex-quote__by img { width: 46px; height: 46px; border-radius: 50%; }
.norvex-quote__by strong { display: block; color: var(--norvex-ink); font-family: var(--norvex-sans); }
.norvex-quote__by span { font-size: .85rem; color: var(--norvex-muted); }

/* =========================================================================
   Pricing
   ========================================================================= */
.norvex-pricing { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; align-items: stretch; }
.norvex-plan {
	background: #fff;
	border: 1px solid var(--norvex-line);
	border-radius: var(--norvex-radius);
	padding: 38px 32px;
	box-shadow: var(--norvex-shadow-sm);
	display: flex; flex-direction: column;
}
/* Featured plan — filled dark card (matches the "Complete Publishing" design). */
.norvex-plan--featured {
	background: var(--norvex-ink);
	border: 2px solid var(--norvex-ink);
	box-shadow: var(--norvex-shadow);
	position: relative;
	color: #f2ebdd;
}
.norvex-plan__flag {
	position: absolute; top: -14px; left: 50%; transform: translateX(-50%);
	background: var(--norvex-gold); color: #1c2438; font-size: .72rem; font-weight: 700;
	letter-spacing: .12em; text-transform: uppercase; padding: 6px 16px; border-radius: 999px;
}
.norvex-plan h3 { font-size: 1.3rem; margin-bottom: 6px; letter-spacing: .01em; }
.norvex-plan--featured h3 { color: #fff; }
.norvex-plan__price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px; margin: 14px 0 6px; }
.norvex-plan__amount { font-family: var(--norvex-serif); font-size: 3rem; font-weight: 600; color: var(--norvex-ink); line-height: 1; letter-spacing: -.015em; }
.norvex-plan__per { font-size: .9rem; color: var(--norvex-muted); font-family: var(--norvex-sans); font-weight: 500; }
.norvex-plan--featured .norvex-plan__amount { color: var(--norvex-gold); }
.norvex-plan--featured .norvex-plan__per { color: #a7a49b; }
/* "Was" price + auto-calculated savings badge. */
.norvex-plan__compare { display: flex; align-items: center; gap: 10px; margin: 0 0 2px; }
.norvex-plan__was { text-decoration: line-through; text-decoration-thickness: 1.5px; color: var(--norvex-muted); font-family: var(--norvex-sans); font-size: 1.05rem; font-weight: 500; opacity: .75; }
.norvex-plan__save {
	display: inline-flex; align-items: center;
	font-family: var(--norvex-sans); font-size: .68rem; font-weight: 800;
	letter-spacing: .07em; text-transform: uppercase;
	color: #fff; background: var(--norvex-gold);
	border-radius: 999px; padding: 4px 11px;
	box-shadow: 0 6px 14px -7px rgba(192, 138, 62, .9);
}
.norvex-plan--featured .norvex-plan__was { color: #a7a49b; }
.norvex-plan--featured .norvex-plan__save { color: #1c2438; background: var(--norvex-gold); box-shadow: 0 6px 14px -7px rgba(0, 0, 0, .6); }
/* Divider between the price block and the plan description for clearer hierarchy. */
.norvex-plan__desc { color: var(--norvex-muted); font-size: .95rem; margin: 18px 0 20px; padding-top: 18px; border-top: 1px solid var(--norvex-line); }
.norvex-plan--featured .norvex-plan__desc { color: #e7ddca; border-top-color: rgba(255, 255, 255, .12); }
.norvex-plan__desc:empty { margin: 8px 0 0; padding: 0; border: 0; }
.norvex-plan ul { list-style: none; padding: 0; margin: 0 0 26px; flex: 1; }
.norvex-plan li { padding: 9px 0 9px 30px; position: relative; border-bottom: 1px dashed var(--norvex-line); font-size: .96rem; }
.norvex-plan li::before { content: "✓"; position: absolute; left: 0; top: 9px; color: var(--norvex-gold-dark); font-weight: 700; }
.norvex-plan li.norvex-off { color: #a7a49b; }
.norvex-plan li.norvex-off::before { content: "–"; color: #e7ddca; }
.norvex-plan--featured li { border-bottom-color: rgba(255, 255, 255, .12); color: #e7ddca; }
.norvex-plan--featured li::before { color: var(--norvex-gold); }
.norvex-plan--featured li.norvex-off { color: #6c6a64; }
/* Full-width CTA anchored to the foot of every plan card. */
.norvex-plan > .norvex-btn { width: 100%; justify-content: center; margin-top: auto; }

/* =========================================================================
   Team
   ========================================================================= */
.norvex-team { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; }
.norvex-member { text-align: center; }
.norvex-member__photo { border-radius: var(--norvex-radius); overflow: hidden; margin-bottom: 16px; box-shadow: var(--norvex-shadow-sm); background: var(--norvex-sand); }
.norvex-member__photo img { width: 100%; aspect-ratio: 1/1; object-fit: cover; }
.norvex-member h4 { margin: 0 0 2px; }
.norvex-member span { color: var(--norvex-gold-dark); font-size: .9rem; }
.norvex-member p { color: var(--norvex-muted); font-size: .92rem; margin: 10px 0 0; }

/* =========================================================================
   CTA band
   ========================================================================= */
.norvex-cta {
	background: linear-gradient(135deg, var(--norvex-ink) 0%, #1c2438 100%);
	color: #fff;
	border-radius: 22px;
	padding: 62px 48px;
	text-align: center;
	position: relative;
	overflow: hidden;
}
.norvex-cta::after {
	content: ""; position: absolute; inset: 0;
	background: radial-gradient(600px 240px at 90% 0%, rgba(192,138,62,.28), transparent 60%);
}
.norvex-cta > * { position: relative; z-index: 1; }
.norvex-cta h2 { color: #fff; }
.norvex-cta p { color: #e7ddca; max-width: 560px; margin: 0 auto 26px; }
.norvex-cta__actions { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
/* Ghost button on the dark CTA needs light text/border for contrast. */
.norvex-cta .norvex-btn--ghost { color: #fff; border-color: rgba(255,255,255,.7); }
.norvex-cta .norvex-btn--ghost:hover,
.norvex-cta .norvex-btn--ghost:focus { background: #fff; color: var(--norvex-ink); border-color: #fff; }

/* Book-a-call consultation band */
.norvex-consult {
	background: linear-gradient(135deg, var(--norvex-ink) 0%, #1c2438 100%);
	color: #fff;
	border-radius: 22px;
	padding: 46px clamp(28px, 4vw, 56px);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 36px;
	flex-wrap: wrap;
	position: relative;
	overflow: hidden;
}
.norvex-consult::after {
	content: ""; position: absolute; inset: 0;
	background: radial-gradient(600px 240px at 100% 0%, rgba(192,138,62,.28), transparent 60%);
	pointer-events: none;
}
.norvex-consult > * { position: relative; z-index: 1; }
.norvex-consult__text { max-width: 620px; }
.norvex-consult h2 { color: #fff; margin-bottom: 10px; }
.norvex-consult p { color: #e7ddca; margin: 0 0 10px; }
.norvex-consult__hours { display: inline-flex; align-items: center; gap: 8px; color: var(--norvex-gold) !important; font-weight: 600; }
.norvex-consult__actions { display: flex; flex-direction: column; gap: 14px; min-width: 240px; }
.norvex-consult__actions .norvex-btn { justify-content: center; }
@media (max-width: 760px) {
	.norvex-consult { padding: 34px 24px; }
	.norvex-consult__actions { width: 100%; }
}

/* =========================================================================
   Page hero (interior)
   ========================================================================= */
.norvex-page-hero {
	background:
		radial-gradient(900px 380px at 85% -20%, rgba(192,138,62,0.14), transparent 60%),
		var(--norvex-ink);
	color: #fff;
	padding: 74px 0 66px;
	text-align: center;
}
.norvex-page-hero h1 { color: #fff; margin-bottom: 12px; }
.norvex-page-hero p { color: #e7ddca; max-width: 640px; margin: 0 auto; font-size: 1.1rem; }
.norvex-page-hero h1 .norvex-accent { color: var(--norvex-gold); font-style: italic; }

/* Prose group — long-form legal / policy pages built from core blocks. */
.norvex-prose { max-width: 760px; margin: 0 auto; padding: 64px 24px 20px; }
.norvex-prose > * + * { margin-top: 20px; }
.norvex-prose .norvex-prose__lead { font-size: 1.2rem; line-height: 1.6; color: var(--norvex-ink); }
.norvex-prose h2 { font-family: var(--norvex-serif); font-size: 1.7rem; line-height: 1.2; color: var(--norvex-ink); margin-top: 44px; }
.norvex-prose h2:first-child { margin-top: 0; }
.norvex-prose p { color: var(--norvex-muted); line-height: 1.75; }
.norvex-prose ul { margin: 4px 0 0; padding-left: 0; list-style: none; }
.norvex-prose ul li { position: relative; padding-left: 26px; margin-top: 12px; color: var(--norvex-muted); line-height: 1.7; }
.norvex-prose ul li::before { content: ""; position: absolute; left: 4px; top: .62em; width: 7px; height: 7px; border-radius: 50%; background: var(--norvex-gold); }
.norvex-prose a { color: var(--norvex-gold-dark); text-decoration: underline; text-underline-offset: 2px; }

/* =========================================================================
   Core Gutenberg blocks used in the demo pages — themed to match.
   Scoped under .norvex-coreband (a themed section wrapper) so the
   styling is intentional and does not surprise blocks added elsewhere.
   ========================================================================= */
.norvex-coreband { max-width: var(--norvex-wrap); margin: 0 auto; padding: 76px 24px; }
.norvex-coreband--sand { max-width: none; padding: 0; background: var(--norvex-sand); }
.norvex-coreband--sand > .wp-block-group__inner-container,
.norvex-coreband--sand > * { max-width: var(--norvex-wrap); margin-left: auto; margin-right: auto; padding: 76px 24px; }
.norvex-coreband .norvex-eyebrow { display: block; margin-bottom: 10px; }
.norvex-coreband > h2, .norvex-coreband .norvex-band-head h2 { font-size: clamp(2rem, 3.4vw, 2.5rem); line-height: 1.1; margin: 0 0 14px; }

/* Image + text (wp:media-text) */
.wp-block-media-text.norvex-mt { gap: clamp(32px, 5vw, 64px); align-items: center; }
.norvex-mt .wp-block-media-text__media img { border-radius: var(--norvex-radius); border: 1px solid var(--norvex-line); background: var(--norvex-sand); }
.norvex-mt .wp-block-media-text__content h2 { font-size: clamp(1.9rem, 3vw, 2.4rem); line-height: 1.12; margin: 6px 0 16px; }
.norvex-mt .wp-block-media-text__content p { color: var(--norvex-muted); line-height: 1.75; margin: 0 0 16px; }

/* Pull quote (wp:quote) */
.wp-block-quote.norvex-quote { max-width: 880px; margin: 0 auto; border: 0; padding: 4px 0 0 34px; border-left: 3px solid var(--norvex-burgundy); }
.norvex-quote p { font-family: var(--norvex-serif); font-style: italic; font-size: clamp(1.4rem, 2.6vw, 1.9rem); line-height: 1.38; color: var(--norvex-ink); margin: 0; }
.norvex-quote cite { display: block; margin-top: 16px; font-style: normal; font-family: var(--norvex-sans); font-size: .78rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--norvex-gold-dark); }

/* Three-up feature columns (wp:columns + wp:image) */
.wp-block-columns.norvex-cols { gap: 30px; margin-top: 8px; }
.norvex-cols .wp-block-column { background: var(--norvex-paper); border: 1px solid var(--norvex-line); border-radius: var(--norvex-radius); padding: 30px 28px; box-shadow: var(--norvex-shadow-sm); }
.norvex-cols .wp-block-image { margin: 0 0 16px; }
.norvex-cols .wp-block-image img { width: 54px; height: 54px; }
.norvex-cols h3 { font-size: 1.35rem; margin: 0 0 8px; }
.norvex-cols p { color: var(--norvex-muted); line-height: 1.65; margin: 0; }

/* Cover gallery (wp:gallery + wp:image) */
.wp-block-gallery.norvex-gallery { gap: 24px !important; margin-top: 10px; }
.norvex-gallery .wp-block-image { margin: 0; }
.norvex-gallery .wp-block-image img { border-radius: var(--norvex-radius-sm); box-shadow: var(--norvex-shadow); background: var(--norvex-sand); }

/* Core buttons (wp:button) — themed to the rust primary button site-wide */
.wp-block-button__link { background: var(--norvex-burgundy); color: #faf7f1; border-radius: var(--norvex-radius-sm); padding: 13px 24px; font-family: var(--norvex-sans); font-weight: 700; font-size: .95rem; }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--norvex-burgundy); border: 1px solid var(--norvex-burgundy); }

@media (max-width: 781px) {
	.wp-block-media-text.norvex-mt .wp-block-media-text__media { margin-bottom: 24px; }
}

/* =========================================================================
   Block-only demo design layer (aw-*) — polish on top of the theme.json
   palette so a site built purely from core blocks reads as intentional.
   ========================================================================= */
.aw-eyebrow { font-size: .78rem !important; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--norvex-gold-dark); margin-bottom: .5rem; }
.aw-lead { color: var(--norvex-muted); }

/* Cover heroes */
.aw-hero { text-align: center; }
.aw-hero .wp-block-cover__inner-container { max-width: 860px; margin-left: auto; margin-right: auto; }
.aw-hero.is-dark, .aw-hero.is-dark p, .aw-hero.is-dark h1, .aw-hero.is-dark h2 { color: #ffffff; }
.aw-hero.is-dark .aw-eyebrow { color: #ecdcc0; }
.aw-hero h1 { font-size: clamp(2.4rem, 5vw, 3.7rem); line-height: 1.06; letter-spacing: -.01em; }
.aw-hero .wp-block-buttons { justify-content: center; margin-top: 8px; }
.aw-herostats { max-width: 620px; margin: 8px auto 0; }
.aw-herostats .wp-block-column { text-align: center; }
.aw-stat-n { color: #ffffff !important; font-size: 2.6rem !important; margin: 0 0 2px; }
.aw-stat-l { color: #e7ddca !important; margin: 0; }

/* Cards (columns) */
.aw-cards { gap: 28px; margin-top: 8px; }
.aw-card { border: 1px solid var(--norvex-line); border-radius: var(--norvex-radius); box-shadow: var(--norvex-shadow-sm); }
.aw-card h3 { margin-top: 0; }
.aw-morelink a { color: var(--norvex-gold-dark); font-weight: 700; text-decoration: none; }

/* Pricing cards */
.aw-pricing .wp-block-column { text-align: center; display: flex; flex-direction: column; }
.aw-price { font-size: 2.6rem !important; color: var(--norvex-ink); margin: 4px 0 6px; }
.aw-price-card .wp-block-list { list-style: none; padding: 0; margin: 14px 0 20px; text-align: left; }
.aw-price-card .wp-block-list li { padding-left: 26px; position: relative; margin: 9px 0; color: var(--norvex-ink); }
.aw-price-card .wp-block-list li::before { content: "✓"; position: absolute; left: 0; color: var(--norvex-gold); font-weight: 800; }
.aw-price-card .wp-block-buttons { margin-top: auto; }
.aw-card--feature { border-color: var(--norvex-burgundy); box-shadow: var(--norvex-shadow); }
.aw-badge { display: inline-block; font-size: .68rem !important; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #ffffff; background: var(--norvex-burgundy); padding: 4px 14px; border-radius: 999px; margin-bottom: 10px; }

/* Testimonial quote cards */
.aw-quotes { gap: 28px; }
.aw-quote-card { border: 1px solid var(--norvex-line); border-left: 3px solid var(--norvex-burgundy); border-radius: var(--norvex-radius); background: var(--norvex-paper); padding: 28px 26px; margin: 0; height: 100%; }
.aw-quote-card p { font-family: var(--norvex-serif); font-style: italic; font-size: 1.2rem; line-height: 1.4; color: var(--norvex-ink); }
.aw-quote-card cite { display: block; margin-top: 12px; font-style: normal; font-size: .76rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--norvex-gold-dark); }

/* Team cards */
.aw-team { gap: 24px; }
.aw-teamcard { text-align: center; }
.aw-teamcard .wp-block-image { display: flex; justify-content: center; }
.aw-teamcard h3 { margin: 12px 0 2px; }

/* Numbered process steps */
.aw-steps { gap: 30px; }
.aw-step { border-top: 2px solid var(--norvex-line); padding-top: 20px; }
.aw-stepno { color: var(--norvex-burgundy) !important; font-size: 2.6rem !important; margin: 0 0 6px; }

/* Pullquote */
.aw-pullquote { border: 0; border-top: 3px solid var(--norvex-burgundy); border-bottom: 3px solid var(--norvex-burgundy); max-width: 860px; margin: 0 auto; padding: 34px 0; }
.aw-pullquote blockquote p { font-family: var(--norvex-serif); font-style: italic; font-size: clamp(1.5rem, 3vw, 2rem); line-height: 1.35; color: var(--norvex-ink); }
.aw-pullquote cite { font-style: normal; font-size: .8rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--norvex-gold-dark); }

/* FAQ (details) */
.aw-faq { max-width: 780px; margin: 0 auto 12px; border: 1px solid var(--norvex-line); border-radius: var(--norvex-radius-sm); background: var(--norvex-paper); padding: 18px 22px; }
.aw-faq summary { font-family: var(--norvex-serif); font-size: 1.2rem; color: var(--norvex-ink); cursor: pointer; }
.aw-faq p { margin: 12px 0 0; }

/* Comparison table */
.aw-table { max-width: 900px; margin-left: auto; margin-right: auto; }
.aw-table table { border-collapse: collapse; width: 100%; background: var(--norvex-paper); border-radius: var(--norvex-radius); overflow: hidden; }
.aw-table th, .aw-table td { border: 1px solid var(--norvex-line); padding: 12px 16px; text-align: center; }
.aw-table thead th { background: var(--norvex-sand); font-family: var(--norvex-serif); font-size: 1.1rem; }
.aw-table tbody td:first-child { text-align: left; font-weight: 600; }

/* Cover gallery */
.aw-gallery { gap: 24px !important; }
.aw-gallery .wp-block-image img { border-radius: var(--norvex-radius-sm); box-shadow: var(--norvex-shadow); background: var(--norvex-sand); width: 100%; }

/* Contact */
.aw-contact { gap: 40px; }

/* CTA band buttons — light, so they read on the rust background */
.aw-cta .wp-block-button__link { background: #ffffff; color: var(--norvex-ink); }
.aw-cta .wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: #ffffff; border: 1px solid rgba(250, 247, 241, .6); }

@media (max-width: 781px) {
	.aw-cards, .aw-pricing, .aw-quotes, .aw-team, .aw-steps, .aw-contact, .aw-herostats { display: block; }
	.aw-cards .wp-block-column, .aw-pricing .wp-block-column, .aw-quotes .wp-block-column, .aw-team .wp-block-column, .aw-steps .wp-block-column, .aw-contact .wp-block-column { margin-bottom: 20px; }
	.aw-herostats .wp-block-column { display: inline-block; width: 32%; }
}
.norvex-hero-badge { display: inline-block; margin-bottom: 14px; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--norvex-gold); border: 1px solid rgba(192,138,62,.5); border-radius: 999px; padding: 5px 14px; }
.norvex-page-hero .norvex-post-count { color: #a7a49b; font-size: .9rem; margin: 14px 0 0; }

/* Popular add-ons list (Services page). */
.norvex-addons__head { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; align-items: end; margin-bottom: 36px; }
.norvex-addons__head h2 { margin-bottom: 0; }
.norvex-addons__intro { color: var(--norvex-muted); margin: 0; line-height: 1.7; }
.norvex-addons { list-style: none; margin: 0; padding: 0; background: var(--norvex-paper); border: 1px solid var(--norvex-line); border-radius: var(--norvex-radius); box-shadow: var(--norvex-shadow-sm); overflow: hidden; }
.norvex-addon { display: grid; grid-template-columns: 46px 1fr auto; gap: 22px; align-items: center; padding: 22px 30px; border-bottom: 1px solid var(--norvex-line); }
.norvex-addon:last-child { border-bottom: none; }
.norvex-addon__num { font-family: var(--norvex-serif); color: var(--norvex-gold); font-size: 1.05rem; }
.norvex-addon__body h4 { margin: 0 0 3px; font-size: 1.1rem; }
.norvex-addon__body p { margin: 0; color: var(--norvex-muted); font-size: .94rem; }
.norvex-addon__price { font-weight: 600; color: var(--norvex-gold-dark); white-space: nowrap; }
@media (max-width: 760px) {
	.norvex-addons__head { grid-template-columns: 1fr; gap: 14px; align-items: start; }
	.norvex-addon { grid-template-columns: 32px 1fr; row-gap: 6px; }
	.norvex-addon__price { grid-column: 2; }
}
/* Keep outline buttons legible on the dark page hero. */
.norvex-page-hero .norvex-btn--ghost { color: #fff; border-color: rgba(255,255,255,.7); }
.norvex-page-hero .norvex-btn--ghost:hover,
.norvex-page-hero .norvex-btn--ghost:focus { background: #fff; color: var(--norvex-ink); border-color: #fff; }
.norvex-breadcrumb { font-size: .85rem; color: var(--norvex-gold); margin-bottom: 16px; }
.norvex-breadcrumb a { color: #e7ddca; }
.norvex-breadcrumb a:hover { color: #fff; }
.norvex-breadcrumb__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
/* The page hero is centered, so centre its breadcrumb row too. */
.norvex-page-hero .norvex-breadcrumb__list { justify-content: center; }

/* -------------------------------------------------------------------------
   Single service page — split hero, overview prose and "how it works" steps
   ---------------------------------------------------------------------- */
.norvex-service-hero { text-align: left; padding: 62px 0 68px; }
.norvex-service-hero__grid { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 56px; align-items: center; }
.norvex-service-hero .norvex-breadcrumb__list { justify-content: flex-start; }
.norvex-service-hero h1 { margin-bottom: 14px; }
.norvex-service-hero p { color: #e7ddca; max-width: 520px; margin: 0; font-size: 1.1rem; }
.norvex-service-hero .norvex-eyebrow { display: block; margin-bottom: 12px; }
.norvex-service-hero__card {
	background: linear-gradient(180deg, #ffffff 0%, var(--norvex-cream) 100%);
	border-radius: var(--norvex-radius);
	box-shadow: var(--norvex-shadow);
	aspect-ratio: 4 / 3;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 34px;
}
.norvex-service-hero__card img { width: 58%; max-width: 220px; filter: drop-shadow(0 18px 30px rgba(28,36,56,.18)); }
@media (max-width: 860px) {
	.norvex-service-hero { text-align: center; }
	.norvex-service-hero__grid { grid-template-columns: 1fr; gap: 34px; }
	.norvex-service-hero .norvex-breadcrumb__list { justify-content: center; }
	.norvex-service-hero p { margin: 0 auto; }
	.norvex-service-hero .norvex-hero__actions { justify-content: center; }
	.norvex-service-hero__art { order: -1; }
}

/* Overview — single, comfortable reading column with an integrated checklist. */
.norvex-overview { max-width: 900px; margin: 0 auto; }
.norvex-overview .norvex-eyebrow { display: block; margin-bottom: 12px; }
.norvex-overview__title { font-size: clamp(1.7rem, 3.2vw, 2.4rem); margin: 0 0 22px; }
.norvex-included__title { font-size: 1.35rem; margin: 36px 0 20px; }
.norvex-included { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px 36px; }
.norvex-included__item { display: flex; align-items: flex-start; gap: 12px; }
.norvex-included__item > span:last-child { color: var(--norvex-ink); line-height: 1.5; }
.norvex-included__check {
	flex-shrink: 0;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: rgba(192,138,62,.14);
	color: var(--norvex-gold-dark);
	font-size: 14px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 1px;
}
@media (max-width: 640px) { .norvex-included { grid-template-columns: 1fr; } }

/* "How it works" journey steps. */
.norvex-journey { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.norvex-journey__step { background: var(--norvex-paper); border: 1px solid var(--norvex-line); border-radius: var(--norvex-radius); box-shadow: var(--norvex-shadow-sm); padding: 26px 22px; }
.norvex-journey__num { font-family: var(--norvex-serif); color: var(--norvex-gold); font-size: 1.1rem; display: block; margin-bottom: 12px; }
.norvex-journey__step h4 { margin: 0 0 6px; font-size: 1.1rem; }
.norvex-journey__step p { margin: 0; color: var(--norvex-muted); font-size: .92rem; line-height: 1.6; }
@media (max-width: 900px) { .norvex-journey { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .norvex-journey { grid-template-columns: 1fr; } }

/* About — story illustration sits in a soft cream card. */
.norvex-about-figure { background: linear-gradient(180deg, #ffffff 0%, var(--norvex-cream) 100%); border: 1px solid var(--norvex-line); border-radius: var(--norvex-radius); box-shadow: var(--norvex-shadow-sm); padding: clamp(26px, 4.5vw, 54px); display: flex; align-items: center; justify-content: center; }
.norvex-about-figure img { width: 100%; max-width: 460px; height: auto; border-radius: var(--norvex-radius-sm); }

/* About — "Our journey so far" timeline. */
.norvex-timeline { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; position: relative; }
.norvex-timeline__item { text-align: center; position: relative; }
.norvex-timeline__dot { width: 52px; height: 52px; border-radius: 50%; background: var(--norvex-ink); color: #ecdcc0; display: inline-flex; align-items: center; justify-content: center; font-size: 20px; margin-bottom: 16px; position: relative; z-index: 1; }
.norvex-timeline__dot .norvex-icon { width: 22px; height: 22px; }
.norvex-timeline__txt { font-family: var(--norvex-serif); font-weight: 700; font-size: 20px; color: #f2ebdd; line-height: 1; }
.norvex-timeline__item h4 { margin: 0 0 6px; font-size: 1.1rem; }
.norvex-timeline__item p { margin: 0; color: var(--norvex-muted); font-size: .92rem; line-height: 1.6; }
@media (min-width: 761px) {
	.norvex-timeline::before { content: ""; position: absolute; top: 26px; left: 12%; right: 12%; height: 2px; background: var(--norvex-line); z-index: 0; }
}
@media (max-width: 760px) { .norvex-timeline { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 440px) { .norvex-timeline { grid-template-columns: 1fr; } }
.norvex-breadcrumb__sep { color: var(--norvex-gold); opacity: .7; }
.norvex-breadcrumb__item.is-current { color: var(--norvex-gold); }
/* Hook Elements wrapper — inherits the surrounding layout width. */
.norvex-element { margin: 0 auto; }
.norvex-element > .norvex-wrap { padding-left: 0; padding-right: 0; }

/* =========================================================================
   Content / single / blog
   ========================================================================= */
.norvex-content-grid { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 54px; }

.norvex-article { background: #fff; border: 1px solid var(--norvex-line); border-radius: var(--norvex-radius); overflow: hidden; margin-bottom: 34px; box-shadow: var(--norvex-shadow-sm); transition: transform .2s, box-shadow .2s; }
/* Article hover lift is provided by the shared .norvex-lift utility. */
.norvex-article__thumb { display: block; width: 100%; aspect-ratio: 16/9; overflow: hidden; background: var(--norvex-sand); }
.norvex-article__thumb img { width: 100%; height: 100%; object-fit: cover; }
.norvex-article__body { padding: 26px 30px 30px; }
.norvex-article__meta { font-size: .82rem; color: var(--norvex-muted); letter-spacing: .03em; margin-bottom: 10px; display: flex; gap: 14px; flex-wrap: wrap; }
.norvex-article__cat { color: var(--norvex-gold-dark); font-weight: 600; text-transform: uppercase; letter-spacing: .08em; }
.norvex-article h2 { font-size: 1.5rem; margin-bottom: 10px; }
.norvex-article h2 a { color: var(--norvex-ink); }
.norvex-article h2 a:hover { color: var(--norvex-gold-dark); }
.norvex-article__excerpt { color: var(--norvex-muted); }
.norvex-readmore { font-weight: 600; display: inline-flex; gap: 6px; align-items: center; margin-top: 6px; }

/* -------------------------------------------------------------------------
   Journal (blog index) — featured lead, filter tabs, card grid, news band
   ---------------------------------------------------------------------- */
.norvex-jfeature { display: grid; grid-template-columns: 1.05fr 0.95fr; background: #fff; border: 1px solid var(--norvex-line); border-radius: var(--norvex-radius); overflow: hidden; box-shadow: var(--norvex-shadow-sm); transition: transform .2s, box-shadow .2s; }
/* Featured-article hover lift is provided by the shared .norvex-lift utility. */
.norvex-jfeature__thumb { display: block; background: var(--norvex-sand); overflow: hidden; min-height: 260px; }
.norvex-jfeature__thumb img { width: 100%; height: 100%; object-fit: cover; }
.norvex-jfeature__body { padding: 40px clamp(28px,3.5vw,48px); align-self: center; }
.norvex-jfeature .norvex-eyebrow { display: block; margin-bottom: 10px; }
.norvex-jfeature__body h2 { font-size: clamp(1.5rem, 3vw, 2rem); margin: 6px 0 12px; }
.norvex-jfeature__body h2 a { color: var(--norvex-ink); }
.norvex-jfeature__body h2 a:hover { color: var(--norvex-gold-dark); }
.norvex-jfeature__excerpt { color: var(--norvex-ink-soft); margin-bottom: 16px; }
@media (max-width: 820px) {
	.norvex-jfeature { grid-template-columns: 1fr; }
	.norvex-jfeature__thumb { aspect-ratio: 16/9; min-height: 0; }
}

.norvex-filter { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: 36px; }
.norvex-filter__tab { font: inherit; font-size: .92rem; font-weight: 600; color: var(--norvex-ink-soft); background: var(--norvex-paper); border: 1px solid var(--norvex-line); border-radius: 999px; padding: 9px 20px; cursor: pointer; text-decoration: none; transition: background .18s, color .18s, border-color .18s; }
a.norvex-filter__tab:hover { text-decoration: none; }
.norvex-filter__tab:hover { border-color: var(--norvex-gold); color: var(--norvex-gold-dark); }
.norvex-filter__tab.is-active { background: var(--norvex-ink); color: #fff; border-color: var(--norvex-ink); }
.norvex-filter__empty { text-align: center; color: var(--norvex-muted); }

.norvex-journal-grid.norvex-cards .norvex-article { margin-bottom: 0; }

.norvex-news-band { background: radial-gradient(700px 300px at 80% -30%, rgba(192,138,62,.16), transparent 60%), var(--norvex-ink); color: #fff; border-radius: var(--norvex-radius); padding: 54px 40px; text-align: center; }
.norvex-news-band h2 { color: #fff; margin-bottom: 8px; }
.norvex-news-band p { color: #e7ddca; margin-bottom: 24px; }
.norvex-news-band__form { display: flex; gap: 10px; max-width: 460px; margin: 0 auto; }
.norvex-news-band__form input[type="email"] { flex: 1; border-radius: 999px; border: 1px solid rgba(255,255,255,.25); background: rgba(255,255,255,.08); color: #fff; padding: 12px 20px; font: inherit; }
.norvex-news-band__form input[type="email"]::placeholder { color: #a7a49b; }
.norvex-news-band__form .norvex-btn { white-space: nowrap; }
@media (max-width: 520px) { .norvex-news-band__form { flex-direction: column; } }

/* Search page — hero search box + result rows */
.norvex-search-form { display: flex; align-items: center; gap: 8px; max-width: 560px; margin: 6px auto 0; background: #fff; border-radius: 999px; padding: 6px 6px 6px 18px; box-shadow: var(--norvex-shadow); }
.norvex-search-form__icon { color: var(--norvex-muted); display: inline-flex; font-size: 18px; }
.norvex-search-form input[type="search"] { flex: 1; min-width: 0; border: 0; background: transparent; font: inherit; color: var(--norvex-ink); padding: 10px 6px; outline: none; }
.norvex-search-form .norvex-btn { border-radius: 999px; white-space: nowrap; }
.norvex-search-wrap { max-width: 860px; }
.norvex-searchlist { display: grid; gap: 14px; margin-bottom: 10px; }
.norvex-result { display: grid; grid-template-columns: 56px 1fr auto; gap: 18px; align-items: center; background: #fff; border: 1px solid var(--norvex-line); border-radius: var(--norvex-radius); padding: 16px 20px; transition: border-color .18s, transform .18s, box-shadow .18s; }
.norvex-result:hover { border-color: var(--norvex-gold); transform: translateY(-2px); box-shadow: var(--norvex-shadow-sm); }
.norvex-result__thumb { width: 56px; height: 56px; border-radius: var(--norvex-radius-sm); background: var(--norvex-sand); display: inline-flex; align-items: center; justify-content: center; overflow: hidden; color: var(--norvex-gold-dark); font-size: 22px; }
.norvex-result__thumb img { width: 100%; height: 100%; object-fit: cover; }
.norvex-result__body { min-width: 0; }
.norvex-result__meta { display: flex; gap: 12px; align-items: center; font-size: .78rem; color: var(--norvex-muted); margin-bottom: 4px; }
.norvex-result__title { display: block; font-family: var(--norvex-serif); font-size: 1.12rem; color: var(--norvex-ink); line-height: 1.3; }
.norvex-result:hover .norvex-result__title { color: var(--norvex-gold-dark); }
.norvex-result__title mark { background: rgba(192,138,62,.22); color: inherit; padding: 0 2px; border-radius: 3px; }
.norvex-result__excerpt { display: block; color: var(--norvex-muted); font-size: .9rem; margin-top: 4px; }
.norvex-result__arrow { color: var(--norvex-gold-dark); display: inline-flex; font-size: 18px; }
@media (max-width: 560px) {
	.norvex-result { grid-template-columns: 44px 1fr; }
	.norvex-result__thumb { width: 44px; height: 44px; }
	.norvex-result__arrow { display: none; }
}

.norvex-single__hero { aspect-ratio: 21/9; overflow: hidden; background: var(--norvex-sand); }
.norvex-single__hero img { width: 100%; height: 100%; object-fit: cover; }
.norvex-entry { font-size: 1.06rem; }
.norvex-entry h2 { margin-top: 1.6em; }
.norvex-entry h3 { margin-top: 1.4em; }
.norvex-entry img { border-radius: var(--norvex-radius-sm); margin: 1.5em 0; }
.norvex-entry ul, .norvex-entry ol { margin-bottom: 1.4em; }
.norvex-entry li { margin-bottom: .4em; }
.norvex-entry a { text-decoration: underline; text-underline-offset: 3px; }

.norvex-tags { margin-top: 30px; display: flex; gap: 10px; flex-wrap: wrap; }
.norvex-tags a { background: var(--norvex-sand); padding: 6px 14px; border-radius: 999px; font-size: .82rem; color: var(--norvex-ink); }
.norvex-tags a:hover { background: var(--norvex-gold); color: #1c2438; }

.norvex-postnav { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 40px 0; }
.norvex-postnav__link { display: block; padding: 18px 22px; background: var(--norvex-paper); border: 1px solid var(--norvex-line); border-radius: var(--norvex-radius); transition: border-color .18s, transform .18s, box-shadow .18s; }
.norvex-postnav__link:hover { border-color: var(--norvex-gold); transform: translateY(-2px); box-shadow: var(--norvex-shadow-sm); }
.norvex-postnav__link .norvex-eyebrow { display: block; margin-bottom: 6px; }
.norvex-postnav__link strong { display: block; color: var(--norvex-ink); font-family: var(--norvex-serif); font-size: 1.05rem; line-height: 1.3; }
.norvex-postnav__link--next { text-align: right; }
@media (max-width: 640px) { .norvex-postnav { grid-template-columns: 1fr; } .norvex-postnav__link--next { text-align: left; } }

/* Comments — article style */
.norvex-comments { margin-top: 46px; }
.norvex-comments__head { margin-bottom: 22px; }
.norvex-comments__title { font-size: 1.6rem; margin: 0 0 4px; }
.norvex-comments__intro { color: var(--norvex-muted); margin: 0; }
.norvex-comments__closed { color: var(--norvex-muted); }
.norvex-commentform { background: var(--norvex-paper); border: 1px solid var(--norvex-line); border-radius: var(--norvex-radius); padding: 26px; margin-bottom: 34px; }
.norvex-commentform__title { display: none; }
.norvex-commentform .comment-reply-title { display: none; }
.norvex-commentform__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.norvex-commentform p { margin: 0 0 14px; }
.norvex-commentform .form-submit { margin: 4px 0 0; }
.norvex-commentform input[type="text"],
.norvex-commentform input[type="email"],
.norvex-commentform input[type="url"],
.norvex-commentform textarea {
	width: 100%;
	padding: 12px 16px;
	border: 1px solid var(--norvex-line);
	border-radius: var(--norvex-radius-sm);
	background: #fff;
	font: inherit;
	color: var(--norvex-ink);
}
.norvex-commentform textarea { resize: vertical; min-height: 120px; }
.norvex-commentform__note { font-size: .82rem; color: var(--norvex-muted); margin: 6px 0 0; }
@media (max-width: 560px) { .norvex-commentform__row { grid-template-columns: 1fr; } }

.norvex-commentlist { list-style: none; margin: 0; padding: 0; }
.norvex-commentlist ol.children { list-style: none; margin: 20px 0 0; padding: 0 0 0 clamp(18px, 5vw, 54px); }
.norvex-comment { margin-bottom: 22px; }
.norvex-comment__body { display: flex; gap: 14px; align-items: flex-start; }
.norvex-comment__avatar { width: 48px; height: 48px; border-radius: 50%; flex-shrink: 0; }
.norvex-comment__main { flex: 1; min-width: 0; background: var(--norvex-paper); border: 1px solid var(--norvex-line); border-radius: var(--norvex-radius); padding: 16px 20px; }
.norvex-comment__head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 6px; }
.norvex-comment__author { font-size: 1rem; }
.norvex-comment__badge { font-size: .66rem; text-transform: uppercase; letter-spacing: .07em; font-weight: 700; color: var(--norvex-gold-dark); background: rgba(192,138,62,.14); padding: 2px 9px; border-radius: 999px; }
.norvex-comment__date { font-size: .8rem; color: var(--norvex-muted); }
.norvex-comment__text { color: var(--norvex-ink-soft); line-height: 1.6; }
.norvex-comment__text p { margin: 0 0 .6em; }
.norvex-comment__text p:last-child { margin-bottom: 0; }
.norvex-comment__pending { display: block; font-size: .82rem; color: var(--norvex-gold-dark); margin-top: 8px; }
.norvex-comment__actions { margin-top: 8px; }
.norvex-comment__actions a { font-size: .82rem; font-weight: 600; color: var(--norvex-gold-dark); }
.norvex-comment__actions a:hover { color: var(--norvex-ink); }
.norvex-comment #respond { margin-top: 18px; }

/* -------------------------------------------------------------------------
   Single post — article hero, overlapping figure, share rail, TOC + CTA
   ---------------------------------------------------------------------- */
.norvex-post-hero { text-align: left; padding: 64px 0 80px; }
.norvex-post-hero__inner { max-width: 780px; margin: 0 auto; }
.norvex-post-hero .norvex-breadcrumb__list { justify-content: flex-start; }
.norvex-post-hero__meta { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; font-size: .82rem; color: #e7ddca; letter-spacing: .03em; }
.norvex-post-hero__meta .norvex-article__cat { color: var(--norvex-gold); }
.norvex-post-hero h1 { color: #fff; margin: 0 0 16px; max-width: 16ch; font-size: clamp(2rem, 4.2vw, 3rem); }
.norvex-post-hero .norvex-post-hero__dek { color: #e7ddca; font-size: 1.12rem; max-width: 620px; margin: 0 0 26px; }
.norvex-post-byline { display: flex; align-items: center; gap: 12px; }
.norvex-post-byline__avatar { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.norvex-post-byline__who strong { color: #fff; display: block; line-height: 1.2; }
.norvex-post-byline__who span { color: #a7a49b; font-size: .85rem; }

.norvex-post-figure { margin: -58px auto 0; max-width: 860px; background: var(--norvex-paper); border: 1px solid var(--norvex-line); border-radius: var(--norvex-radius); box-shadow: var(--norvex-shadow); overflow: hidden; position: relative; z-index: 2; }
.norvex-post-figure img { display: block; width: 100%; height: auto; }

.norvex-post-layout { display: grid; grid-template-columns: 52px minmax(0,1fr) 300px; gap: 44px; align-items: start; }
.norvex-post-layout--nofig { padding-top: 14px; }

.norvex-share { display: flex; flex-direction: column; gap: 12px; position: sticky; top: 100px; }
.norvex-share__link { width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--norvex-line); background: #fff; color: var(--norvex-ink-soft); display: inline-flex; align-items: center; justify-content: center; font-size: 17px; cursor: pointer; transition: background .18s, color .18s, border-color .18s; }
.norvex-share__link:hover { background: var(--norvex-ink); color: #fff; border-color: var(--norvex-ink); }
.norvex-share__copy.is-copied { background: var(--norvex-gold); color: #1c2438; border-color: var(--norvex-gold); }

.norvex-post .norvex-entry { font-size: 1.08rem; }
.norvex-post .norvex-entry h2 { scroll-margin-top: 90px; font-size: 1.55rem; }
.norvex-post .norvex-entry h2 .norvex-accent, .norvex-post .norvex-entry h2 em { color: var(--norvex-gold-dark); font-style: italic; }
.norvex-post .norvex-entry blockquote { border-left: 3px solid var(--norvex-gold); margin: 1.6em 0; padding: 6px 0 6px 24px; font-family: var(--norvex-serif); font-style: italic; font-size: 1.24rem; color: var(--norvex-ink); }

.norvex-author { display: flex; gap: 18px; align-items: flex-start; margin-top: 40px; padding: 26px; background: var(--norvex-paper); border: 1px solid var(--norvex-line); border-radius: var(--norvex-radius); }
.norvex-author__avatar { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.norvex-author__name { display: block; font-size: 1.15rem; margin: 2px 0 6px; }
.norvex-author p { margin: 0; color: var(--norvex-muted); }

.norvex-post-aside__sticky { position: sticky; top: 100px; display: grid; gap: 22px; }
.norvex-toc { background: var(--norvex-paper); border: 1px solid var(--norvex-line); border-radius: var(--norvex-radius); padding: 24px 26px; }
.norvex-toc .norvex-eyebrow { display: block; margin-bottom: 14px; }
.norvex-toc ol { list-style: none; margin: 0; padding: 0; counter-reset: toc; }
.norvex-toc li { counter-increment: toc; margin-bottom: 10px; padding-left: 26px; position: relative; line-height: 1.4; }
.norvex-toc li::before { content: counter(toc, decimal-leading-zero); position: absolute; left: 0; top: 1px; font-family: var(--norvex-serif); font-size: .82rem; color: var(--norvex-gold); }
.norvex-toc a { color: var(--norvex-ink-soft); font-size: .92rem; }
.norvex-toc a:hover { color: var(--norvex-gold-dark); }

.norvex-post-cta { background: radial-gradient(500px 200px at 80% -30%, rgba(192,138,62,.18), transparent 60%), var(--norvex-ink); color: #fff; border-radius: var(--norvex-radius); padding: 28px 26px; }
.norvex-post-cta h3 { color: #fff; margin: 0 0 8px; }
.norvex-post-cta p { color: #e7ddca; font-size: .92rem; margin: 0 0 18px; }
.norvex-post-cta .norvex-btn { width: 100%; justify-content: center; }

/* Widgets dropped into the single-post "Article Sidebar". */
.norvex-post-widgets { display: grid; gap: 22px; }
.norvex-post-widget { background: var(--norvex-paper); border: 1px solid var(--norvex-line); border-radius: var(--norvex-radius); padding: 22px 24px; }
.norvex-post-widget__title { margin: 0 0 14px; font-size: 1.05rem; }
.norvex-post-widget ul { list-style: none; margin: 0; padding: 0; }
.norvex-post-widget li { margin-bottom: 8px; line-height: 1.4; }
.norvex-post-widget a { color: var(--norvex-ink-soft); }
.norvex-post-widget a:hover { color: var(--norvex-gold-dark); }

.norvex-section-head--row { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; text-align: left; margin-bottom: 28px; }
.norvex-section-head--row h2 { margin: 0; }

@media (max-width: 1000px) {
	.norvex-post-layout { grid-template-columns: 1fr; gap: 26px; }
	.norvex-share { flex-direction: row; position: static; order: 1; }
	/* Let the sidebar's items flow into the single column so the table of
	   contents sits near the top and the CTA drops to the bottom. */
	.norvex-post-aside, .norvex-post-aside__sticky { display: contents; }
	.norvex-toc { order: 2; }
	.norvex-post { order: 3; }
	.norvex-post-cta { order: 4; }
}

/* Sidebar */
.norvex-sidebar .widget {
	background: #fff;
	border: 1px solid var(--norvex-line);
	border-radius: var(--norvex-radius);
	padding: 26px 24px;
	margin-bottom: 26px;
	box-shadow: var(--norvex-shadow-sm);
}
.norvex-sidebar .widget-title, .norvex-sidebar h2, .norvex-sidebar h3 {
	font-size: 1.15rem; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 2px solid var(--norvex-gold);
	display: inline-block;
}
.norvex-sidebar ul { list-style: none; padding: 0; margin: 0; }
.norvex-sidebar li { padding: 8px 0; border-bottom: 1px solid var(--norvex-line); }
.norvex-sidebar li:last-child { border-bottom: 0; }
.norvex-sidebar a { color: var(--norvex-ink); }
.norvex-sidebar a:hover { color: var(--norvex-gold-dark); }
.norvex-sidebar .norvex-cta-card { background: var(--norvex-ink); color: #fff; }
.norvex-sidebar .norvex-cta-card h3 { color: #fff; border-color: var(--norvex-gold); }
.norvex-sidebar .norvex-cta-card p { color: #e7ddca; font-size: .93rem; }

/* =========================================================================
   Forms
   ========================================================================= */
.norvex-form { display: grid; gap: 18px; }
.norvex-form .norvex-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.norvex-field label { display: block; font-size: .85rem; font-weight: 600; color: var(--norvex-ink); margin-bottom: 6px; }
.norvex-input,
input[type="text"], input[type="email"], input[type="url"], input[type="tel"],
input[type="search"], input[type="password"], textarea, select {
	width: 100%;
	padding: 13px 16px;
	border: 1px solid var(--norvex-line);
	border-radius: var(--norvex-radius-sm);
	background: #fff;
	font-family: inherit;
	font-size: 1rem;
	color: var(--norvex-text);
	transition: border-color .2s, box-shadow .2s;
}
input:focus, textarea:focus, select:focus {
	outline: none; border-color: var(--norvex-gold);
	box-shadow: 0 0 0 3px rgba(192,138,62,.18);
}
textarea { min-height: 140px; resize: vertical; }

/* Built-in contact form: validation + status messages, honeypot */
.norvex-field__error { display: block; margin-top: 6px; font-size: .8rem; color: var(--norvex-burgundy); }
.norvex-field input:invalid, .norvex-field textarea:invalid { box-shadow: none; }
.norvex-form__note { padding: 12px 16px; border-radius: var(--norvex-radius-sm); margin: 0 0 4px; font-size: .95rem; }
.norvex-form__note--ok { background: var(--norvex-sand); color: var(--norvex-gold-dark); border: 1px solid var(--norvex-line); }
.norvex-form__note--error { background: rgba(124,43,59,.08); color: var(--norvex-burgundy); border: 1px solid rgba(124,43,59,.25); }
.norvex-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.norvex-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 46px; align-items: start; }
.norvex-contact-info { display: grid; gap: 22px; }
.norvex-contact-item { display: flex; gap: 16px; align-items: flex-start; }
.norvex-contact-item .norvex-card__icon { flex: 0 0 auto; margin: 0; }
.norvex-contact-item strong { display: block; color: var(--norvex-ink); }
.norvex-contact-item span { color: var(--norvex-muted); }
.norvex-map { border-radius: var(--norvex-radius); overflow: hidden; border: 1px solid var(--norvex-line); }
.norvex-map iframe { width: 100%; height: 280px; border: 0; display: block; }

.norvex-faq { max-width: 800px; margin: 0 auto; }
.norvex-faq details {
	background: #fff; border: 1px solid var(--norvex-line); border-radius: var(--norvex-radius-sm);
	padding: 4px 22px; margin-bottom: 14px; box-shadow: var(--norvex-shadow-sm);
}
.norvex-faq summary {
	cursor: pointer; font-family: var(--norvex-serif); font-weight: 700; font-size: 1.12rem;
	color: var(--norvex-ink); padding: 16px 0; list-style: none; position: relative; padding-right: 30px;
}
.norvex-faq summary::-webkit-details-marker { display: none; }
.norvex-faq summary::after { content: "+"; position: absolute; right: 0; top: 14px; font-size: 1.5rem; color: var(--norvex-gold-dark); transition: transform .2s; }
.norvex-faq details[open] summary::after { transform: rotate(45deg); }
.norvex-faq details p { color: var(--norvex-muted); margin: 0 0 18px; }

/* =========================================================================
   Footer
   ========================================================================= */
.norvex-footer { background: var(--norvex-ink); color: #a7a49b; padding: 72px 0 0; }
.norvex-footer a { color: #e7ddca; }
.norvex-footer a:hover { color: var(--norvex-gold); }
.norvex-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.3fr; gap: 40px; padding-bottom: 50px; border-bottom: 1px solid rgba(255,255,255,.08); }
.norvex-footer__brand .norvex-brand__name { color: #fff; }
.norvex-footer p { color: #a7a49b; font-size: .95rem; }
.norvex-footer h4 { color: #fff; font-family: var(--norvex-sans); font-size: 1rem; letter-spacing: .04em; margin-bottom: 18px; }
.norvex-footer ul { list-style: none; padding: 0; margin: 0; }
.norvex-footer li { padding: 6px 0; font-size: .95rem; }
.norvex-footer__social { display: flex; gap: 12px; margin-top: 18px; }
.norvex-footer__social a { width: 38px; height: 38px; border-radius: 50%; background: rgba(255,255,255,.08); display: inline-flex; align-items: center; justify-content: center; }
.norvex-footer__social a:hover { background: var(--norvex-gold); color: #1c2438; }
.norvex-footer__social .norvex-icon { width: 18px; height: 18px; }
.norvex-footer__col .norvex-icon,
.norvex-footer p .norvex-icon { vertical-align: -0.15em; margin-right: 4px; }
.norvex-newsletter { display: flex; gap: 8px; margin-top: 14px; }
.norvex-newsletter input { flex: 1; background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.14); color: #fff; }
.norvex-newsletter input::placeholder { color: #6c6a64; }
/* Icon-only submit: a compact square (no text-button side padding) so it's
   not an oversized block — its height still matches every other .norvex-btn. */
.norvex-footer .norvex-newsletter .norvex-btn { flex: 0 0 auto; width: 48px; padding-left: 0; padding-right: 0; justify-content: center; }
.norvex-footer__bottom { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 24px 0; flex-wrap: wrap; font-size: .85rem; }
.norvex-footer__bottom ul { display: flex; gap: 20px; }

/* =========================================================================
   Pagination / misc
   ========================================================================= */
.norvex-pagination { display: flex; gap: 8px; justify-content: center; margin-top: 40px; flex-wrap: wrap; }
.norvex-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 44px; height: 44px; padding: 0 12px;
	border: 1px solid var(--norvex-line); border-radius: var(--norvex-radius-sm);
	background: #fff; color: var(--norvex-ink); font-weight: 600;
}
.norvex-pagination .page-numbers.current { background: var(--norvex-gold); color: #1c2438; border-color: var(--norvex-gold); }
.norvex-pagination .page-numbers:hover { border-color: var(--norvex-gold); }

.norvex-badge-soft { display:inline-block; background: var(--norvex-sand); color: var(--norvex-gold-dark); font-size:.75rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; padding:5px 12px; border-radius:999px; }

.norvex-split { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.norvex-split img { border-radius: var(--norvex-radius); box-shadow: var(--norvex-shadow); }
.norvex-checklist { list-style: none; padding: 0; margin: 22px 0 0; }
.norvex-checklist li { padding: 8px 0 8px 34px; position: relative; }
.norvex-checklist li { padding-left: 38px; }
.norvex-checklist li::before { content: "✓"; position: absolute; left: 0; top: 6px; width: 26px; height: 26px; background: rgba(192, 138, 62, .14); color: var(--norvex-gold-dark); border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: .8rem; font-weight: 700; box-shadow: none; }

/* WP alignments & captions */
.alignleft { float: left; margin: 0 1.5rem 1rem 0; }
.alignright { float: right; margin: 0 0 1rem 1.5rem; }
.aligncenter { margin-left: auto; margin-right: auto; }
.wp-caption-text, .wp-element-caption { font-size: .85rem; color: var(--norvex-muted); text-align: center; }
.sticky, .bypostauthor { display: block; }
.norvex-skip-link { position: absolute; left: -999px; }
.norvex-skip-link:focus { left: 12px; top: 12px; z-index: 200; background: #fff; padding: 10px 16px; border-radius: 8px; }

/* =========================================================================
   Responsive
   ========================================================================= */
@media (max-width: 1024px) {
	.norvex-cards, .norvex-books, .norvex-team, .norvex-quotes, .norvex-pricing, .norvex-stats-band { grid-template-columns: repeat(2, 1fr); }
	.norvex-footer__grid { grid-template-columns: 1fr 1fr; }
	.norvex-content-grid { grid-template-columns: 1fr; }
	.norvex-hero__grid, .norvex-split, .norvex-contact-grid { grid-template-columns: 1fr; }
	.norvex-hero__art { max-width: 460px; margin: 0 auto; order: -1; }
}
@media (max-width: 760px) {
	.norvex-section { padding: 64px 0; }
	.norvex-nav { position: fixed; inset: 80px 0 auto 0; background: var(--norvex-cream); border-bottom: 1px solid var(--norvex-line); flex-direction: column; align-items: stretch; gap: 0; padding: 12px 24px 24px; box-shadow: var(--norvex-shadow); transform: translateY(-120%); transition: transform .3s ease; max-height: calc(100vh - 80px); overflow-y: auto; }
	.norvex-nav.is-open { transform: translateY(0); }
	.norvex-menu { flex-direction: column; align-items: stretch; gap: 0; }
	.norvex-menu li { border-bottom: 1px solid var(--norvex-line); }
	.norvex-menu a { padding: 14px 0; }
	.norvex-menu ul.sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; margin: 0 0 8px 12px; padding: 0; background: transparent; }
	.norvex-header__cta { display: none; }
	.norvex-nav .norvex-header__cta { display: inline-flex; margin-top: 14px; justify-content: center; }
	.norvex-nav-toggle { display: flex; }
	.norvex-cards, .norvex-books, .norvex-team, .norvex-quotes, .norvex-pricing, .norvex-stats-band, .norvex-footer__grid, .norvex-cards--4 { grid-template-columns: 1fr; }
	.norvex-form .norvex-row { grid-template-columns: 1fr; }
	.norvex-topbar { display: none; }
	.norvex-cta { padding: 44px 26px; }
}

/* =========================================================================
   Motion & micro-interactions (WP Engine-inspired)
   ========================================================================= */

/* Header gains a soft shadow once the page is scrolled. */
.norvex-header { transition: box-shadow .3s ease, background .3s ease; }
.norvex-header.is-stuck { box-shadow: 0 12px 30px -18px rgba(28, 36, 56, .5); background: rgba(250, 247, 241, .96); }

/* Secondary buttons lift like the primary one. */
.norvex-btn--ghost:hover, .norvex-btn--ghost:focus,
.norvex-btn--light:hover, .norvex-btn--light:focus { transform: translateY(-2px); box-shadow: var(--norvex-shadow-sm); }

/* Continuous logo marquee. */
.norvex-logos--marquee .norvex-wrap { display: block; overflow: hidden; }
.norvex-logos--marquee p { text-align: center; margin-bottom: 16px; }
.norvex-logos--marquee ul { flex-wrap: nowrap; width: max-content; gap: 56px; animation: norvex-marquee 34s linear infinite; }
.norvex-logos--marquee:hover ul { animation-play-state: paused; }
@keyframes norvex-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

@media (prefers-reduced-motion: no-preference) {
	/* Scroll-reveal: elements are tagged by JS only when below the fold. */
	.norvex-reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s cubic-bezier(.2, .7, .2, 1), transform .7s cubic-bezier(.2, .7, .2, 1); }
	.norvex-reveal.is-visible { opacity: 1; transform: none; }

	/* Hero entrance on load. */
	.norvex-hero__intro > *, .norvex-hero__art { animation: norvex-rise .8s cubic-bezier(.2, .7, .2, 1) both; }
	.norvex-hero__intro > *:nth-child(1) { animation-delay: .05s; }
	.norvex-hero__intro > *:nth-child(2) { animation-delay: .13s; }
	.norvex-hero__intro > *:nth-child(3) { animation-delay: .21s; }
	.norvex-hero__intro > *:nth-child(4) { animation-delay: .29s; }
	.norvex-hero__intro > *:nth-child(5) { animation-delay: .37s; }
	.norvex-hero__art { animation-delay: .24s; }
	@keyframes norvex-rise { from { opacity: 0; transform: translateY(22px); } }
}

/* Never let motion styles hide content when animations are disabled. */
@media (prefers-reduced-motion: reduce) {
	.norvex-reveal { opacity: 1 !important; transform: none !important; }
	.norvex-logos--marquee ul { animation: none; width: auto; flex-wrap: wrap; justify-content: center; }
}

/* =========================================================================
   Feature cards ("What's included") + framed media
   ========================================================================= */
/* Floating framed illustration for split sections. */
.norvex-media { position: relative; }
.norvex-media::before {
	content: ""; position: absolute; z-index: 0;
	inset: 18px -18px -18px 18px;
	border-radius: calc(var(--norvex-radius) + 8px);
	background: linear-gradient(135deg, rgba(192, 138, 62, .16), rgba(124, 43, 59, .10));
}
.norvex-media img { position: relative; z-index: 1; border-radius: var(--norvex-radius); box-shadow: var(--norvex-shadow); }

@media (max-width: 640px) {
	.norvex-media::before { inset: 12px -12px -12px 12px; }
}

/* Estimate / quote calculator ------------------------------------------- */
.norvex-estimate {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 30px;
	align-items: start;
	max-width: 960px;
	margin: 0 auto;
}
.norvex-estimate__panel {
	background: var(--norvex-paper);
	border: 1px solid var(--norvex-line);
	border-radius: var(--norvex-radius);
	box-shadow: var(--norvex-shadow-sm);
	padding: 26px 28px;
}
.norvex-estimate__field { margin-bottom: 22px; }
.norvex-estimate__field label {
	display: block;
	font-weight: 600;
	color: var(--norvex-ink);
	margin-bottom: 8px;
}
.norvex-estimate__words {
	width: 100%;
	padding: 12px 14px;
	font: inherit;
	color: var(--norvex-ink);
	background: var(--norvex-cream);
	border: 1px solid var(--norvex-line);
	border-radius: var(--norvex-radius-sm);
}
.norvex-estimate__words:focus {
	outline: none;
	border-color: var(--norvex-gold);
	box-shadow: 0 0 0 3px rgba(192, 138, 62, .18);
}
.norvex-estimate__services { border: 0; margin: 0; padding: 0; }
.norvex-estimate__service {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 4px;
	border-bottom: 1px solid var(--norvex-line);
	cursor: pointer;
}
.norvex-estimate__service:last-child { border-bottom: 0; }
.norvex-estimate__toggle {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	accent-color: var(--norvex-gold);
	cursor: pointer;
}
.norvex-estimate__service-name { flex: 1 1 auto; font-weight: 500; color: var(--norvex-ink); }
.norvex-estimate__service-price {
	flex: 0 0 auto;
	font-size: .86rem;
	color: var(--norvex-muted);
	white-space: nowrap;
}
.norvex-estimate__result {
	position: sticky;
	top: 100px;
	background: linear-gradient(160deg, var(--norvex-ink), var(--norvex-ink-soft));
	color: #fff;
	border-radius: var(--norvex-radius);
	box-shadow: var(--norvex-shadow);
	padding: 28px 26px;
	text-align: center;
}
.norvex-estimate__result-label {
	display: block;
	font-size: .72rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .72);
}
.norvex-estimate__total {
	display: block;
	font-family: var(--norvex-serif);
	font-size: 2.6rem;
	line-height: 1.1;
	margin: 8px 0 2px;
	color: #fff;
}
.norvex-estimate__range {
	display: block;
	min-height: 1.2em;
	font-size: .9rem;
	color: rgba(255, 255, 255, .78);
}
.norvex-estimate__note {
	font-size: .78rem;
	line-height: 1.5;
	color: rgba(255, 255, 255, .66);
	margin: 16px 0 20px;
}
.norvex-estimate__cta { width: 100%; justify-content: center; }

@media (max-width: 760px) {
	.norvex-estimate { grid-template-columns: 1fr; }
	.norvex-estimate__result { position: static; }
}

/* =========================================================================
   Cookie consent bar (GDPR)
   ========================================================================= */
.norvex-cookie {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 1200;
	background: var(--norvex-ink);
	color: #fff;
	border-top: 3px solid var(--norvex-gold);
	box-shadow: 0 -12px 30px -18px rgba(0, 0, 0, .55);
	animation: norvex-cookie-in .35s ease both;
}
.norvex-cookie__inner {
	max-width: var(--norvex-wrap);
	margin: 0 auto;
	padding: 16px clamp(18px, 4vw, 34px);
	display: flex;
	align-items: center;
	gap: 22px;
	flex-wrap: wrap;
	justify-content: space-between;
}
.norvex-cookie__text {
	margin: 0;
	font-size: .92rem;
	line-height: 1.55;
	color: rgba(255, 255, 255, .82);
	max-width: 72ch;
	flex: 1 1 320px;
}
.norvex-cookie__text a { color: var(--norvex-gold); text-decoration: underline; }
.norvex-cookie__actions {
	display: flex;
	gap: 12px;
	flex: 0 0 auto;
	flex-wrap: wrap;
}
.norvex-cookie .norvex-btn--ghost {
	color: #fff;
	border-color: rgba(255, 255, 255, .45);
	background: transparent;
}
.norvex-cookie .norvex-btn--ghost:hover { border-color: #fff; background: rgba(255, 255, 255, .08); }
.norvex-cookie.is-hidden {
	transform: translateY(110%);
	opacity: 0;
	transition: transform .3s ease, opacity .3s ease;
}
@keyframes norvex-cookie-in {
	from { transform: translateY(110%); opacity: 0; }
	to   { transform: translateY(0); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
	.norvex-cookie { animation: none; }
	.norvex-cookie.is-hidden { transition: none; }
}
@media (max-width: 640px) {
	.norvex-cookie__inner { flex-direction: column; align-items: stretch; gap: 14px; justify-content: flex-start; }
	/* In the stacked layout the flex main-axis is vertical, so the desktop
	   `flex: 1 1 320px` would force the text 320px TALL. Reset it to its natural
	   height so the bar is only as big as its content. */
	.norvex-cookie__text { flex: 0 0 auto; }
	.norvex-cookie__actions { width: 100%; }
	.norvex-cookie__actions .norvex-btn { flex: 1 1 auto; text-align: center; justify-content: center; }
}
/* =========================================================================
   Building Blocks — small element blocks (section-header, callout, checklist)
   and the Section band container (core Group block styles).
   ========================================================================= */

/* Section header (reuses .norvex-section-head / .norvex-eyebrow / .norvex-lead) */
.norvex-section-head.norvex-center { text-align: center; margin-left: auto; margin-right: auto; }
.norvex-section-head.norvex-center .norvex-lead { margin-left: auto; margin-right: auto; }

/* Verdict / Quote — no background, left accent bar, editable accent colour */
.norvex-verdict { margin: 1.6em 0; padding: 4px 0 4px 24px; border-left: 4px solid var(--norvex-gold); background: none; border-radius: 0; font-style: normal; }
.norvex-verdict__text { font-family: var(--norvex-serif); font-style: italic; font-size: clamp(1.15rem, 2vw, 1.45rem); line-height: 1.45; color: var(--norvex-ink); margin: 0; }
.norvex-verdict__text strong { font-weight: 700; font-style: normal; }
.norvex-verdict__cite { display: block; margin-top: 12px; font-family: var(--norvex-sans); font-style: normal; font-size: .82rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--norvex-gold-dark); }
.norvex-verdict--green { border-color: var(--norvex-gold); }
.norvex-verdict--green .norvex-verdict__cite { color: var(--norvex-gold-dark); }
.norvex-verdict--rust { border-color: var(--norvex-burgundy); }
.norvex-verdict--rust .norvex-verdict__cite { color: var(--norvex-burgundy); }
.norvex-verdict--ink { border-color: var(--norvex-ink); }
.norvex-verdict--ink .norvex-verdict__cite { color: var(--norvex-ink); }
.norvex-verdict--muted { border-color: var(--norvex-muted); }
.norvex-verdict--muted .norvex-verdict__cite { color: var(--norvex-muted); }

/* Checklist (building block — distinct from the existing .norvex-checklist component) */
.norvex-checks { list-style: none; margin: 1.2em 0; padding: 0; display: grid; gap: 12px; }
.norvex-checks--2col { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.norvex-checks__item { display: flex; align-items: flex-start; gap: 12px; font-size: 1rem; color: var(--norvex-text); }
.norvex-checks__icon { flex: 0 0 auto; width: 22px; height: 22px; border-radius: 50%; background: rgba(192, 138, 62, .14); color: var(--norvex-gold); display: inline-flex; align-items: center; justify-content: center; font-size: .78rem; font-weight: 800; margin-top: 1px; }
.norvex-checks__item.is-excluded { color: var(--norvex-muted); }
.norvex-checks__item.is-excluded .norvex-checks__icon { background: rgba(124, 43, 59, .14); color: var(--norvex-burgundy); }

/* Section band — themed wrappers on the core Group block (nests other blocks) */
.wp-block-group.is-style-norvex-band-cream,
.wp-block-group.is-style-norvex-band-sand,
.wp-block-group.is-style-norvex-band-paper,
.wp-block-group.is-style-norvex-band-ink { padding: clamp(48px, 7vw, 92px) 24px; }
.wp-block-group.is-style-norvex-band-cream { background: var(--norvex-cream); }
.wp-block-group.is-style-norvex-band-sand { background: var(--norvex-sand); }
.wp-block-group.is-style-norvex-band-paper { background: var(--norvex-paper); }
.wp-block-group.is-style-norvex-band-ink { background: var(--norvex-ink); color: #f2ebdd; }
.wp-block-group.is-style-norvex-band-ink :where(h1, h2, h3, h4) { color: #fff; }
.wp-block-group.is-style-norvex-band-ink .norvex-eyebrow { color: var(--norvex-gold); }
.wp-block-group.is-style-norvex-band-ink a { color: #fff; }

/* Image-only Grid card: no empty body — the image fills the whole tile */
.norvex-card--media-only { padding: 0; overflow: hidden; height: auto; align-self: start; }
.norvex-card--media-only .norvex-card__media { margin: 0; aspect-ratio: 4 / 3; border-radius: inherit; background: var(--norvex-sand); }
.norvex-card--media-only .norvex-card__media a { display: block; height: 100%; }

/* Image card with a caption: picture + a small caption strip (no bulky body) */
.norvex-card--figure { padding: 0; overflow: hidden; height: auto; align-self: start; }
.norvex-card--figure .norvex-card__media { margin: 0; aspect-ratio: 4 / 3; border-radius: var(--norvex-radius) var(--norvex-radius) 0 0; background: var(--norvex-sand); }
.norvex-card--figure .norvex-card__media a { display: block; height: 100%; }
.norvex-card__caption { margin: 0; padding: 14px 18px 16px; text-align: center; font-family: var(--norvex-serif); font-style: italic; font-size: 1.05rem; line-height: 1.35; color: var(--norvex-ink); }

/* Tabs (with blocks): tidy section blocks nested inside a tab panel */
.norvex-tabs__panel > .norvex-section { padding-block: 24px; }
.norvex-tabs__panel > .norvex-section:first-child { padding-top: 0; }
.norvex-tabs__panel .norvex-section > .norvex-wrap { padding-inline: 0; }
/* Editor: show the tab set as real tabs (edit one panel at a time) */
.norvex-tabset-edit__nav { display: flex; flex-wrap: wrap; align-items: center; gap: 2px; border-bottom: 1px solid var(--norvex-line); margin: 8px 0 16px; }
.norvex-tabset-edit__tab { cursor: pointer; background: none; border: 0; border-bottom: 2px solid transparent; padding: 8px 14px; font-weight: 600; font-size: 14px; color: var(--norvex-muted); }
.norvex-tabset-edit__tab.is-active { color: var(--norvex-ink); border-bottom-color: var(--norvex-gold); }
.norvex-tabset-edit__add { cursor: pointer; background: none; border: 1px dashed var(--norvex-line); border-radius: 6px; padding: 5px 12px; font-size: 13px; color: var(--norvex-muted); margin-left: 8px; }
.norvex-tab-edit { border: 1px solid var(--norvex-line); border-radius: 10px; padding: 14px 16px; background: var(--norvex-paper); }
/* Show only the active tab's panel in the editor */
.norvex-tabset-edit__panels > * { display: none; }

.norvex-tabset-edit__panels[data-active="0"] > *:nth-child(1),
.norvex-tabset-edit__panels[data-active="1"] > *:nth-child(2),
.norvex-tabset-edit__panels[data-active="2"] > *:nth-child(3),
.norvex-tabset-edit__panels[data-active="3"] > *:nth-child(4),
.norvex-tabset-edit__panels[data-active="4"] > *:nth-child(5),
.norvex-tabset-edit__panels[data-active="5"] > *:nth-child(6),
.norvex-tabset-edit__panels[data-active="6"] > *:nth-child(7),
.norvex-tabset-edit__panels[data-active="7"] > *:nth-child(8),
.norvex-tabset-edit__panels[data-active="8"] > *:nth-child(9),
.norvex-tabset-edit__panels[data-active="9"] > *:nth-child(10),
.norvex-tabset-edit__panels[data-active="10"] > *:nth-child(11),
.norvex-tabset-edit__panels[data-active="11"] > *:nth-child(12),
.norvex-tabset-edit__panels[data-active="12"] > *:nth-child(13),
.norvex-tabset-edit__panels[data-active="13"] > *:nth-child(14),
.norvex-tabset-edit__panels[data-active="14"] > *:nth-child(15),
.norvex-tabset-edit__panels[data-active="15"] > *:nth-child(16),
.norvex-tabset-edit__panels[data-active="16"] > *:nth-child(17),
.norvex-tabset-edit__panels[data-active="17"] > *:nth-child(18),
.norvex-tabset-edit__panels[data-active="18"] > *:nth-child(19),
.norvex-tabset-edit__panels[data-active="19"] > *:nth-child(20),
.norvex-tabset-edit__panels[data-active="20"] > *:nth-child(21),
.norvex-tabset-edit__panels[data-active="21"] > *:nth-child(22),
.norvex-tabset-edit__panels[data-active="22"] > *:nth-child(23),
.norvex-tabset-edit__panels[data-active="23"] > *:nth-child(24) { display: block; }

/* A number/letter used in place of an icon (Grid cards, Services, timeline…) */
.norvex-iconnum { font-family: var(--norvex-serif); font-weight: 700; font-size: 1.35rem; line-height: 1; color: inherit; }
.norvex-card__icon .norvex-iconnum { font-size: 1.5rem; }

/* =========================================================================
   Pattern library — extra layout structures (aw-* variants).
   ========================================================================= */
.aw-hero--left { text-align: left; }
.aw-hero--left .wp-block-cover__inner-container { max-width: var(--norvex-wrap); margin-left: 0; }
.aw-hero--left .wp-block-cover__inner-container > * { margin-left: 0; margin-right: 0; max-width: 760px; }
.aw-hero--left .wp-block-buttons { justify-content: flex-start; }

/* Icon row (no card boxes) */
.aw-iconrow { gap: 34px; }
.aw-iconrow .wp-block-column { text-align: center; }
.aw-iconrow .wp-block-image { display: flex; justify-content: center; margin-bottom: 12px; }
.aw-iconrow .wp-block-image img { width: 56px; height: 56px; }
.aw-iconrow h3 { margin: 0 0 6px; }
.aw-iconrow p { color: var(--norvex-muted); margin: 0; }

/* Numbered feature list with hairline rules */
.aw-flist { max-width: 860px; margin: 0 auto; }
.aw-flist .wp-block-columns { align-items: baseline; padding: 24px 0; border-top: 1px solid var(--norvex-line); margin: 0; }
.aw-flist .wp-block-columns:first-of-type { border-top: 0; }
.aw-flist .aw-flist__n { font-family: var(--norvex-serif); font-size: 2rem; font-weight: 600; color: var(--norvex-burgundy); line-height: 1; }
.aw-flist .aw-flist__num-col { flex-basis: 70px; flex-grow: 0; }
.aw-flist h3 { margin: 0 0 6px; }
.aw-flist p { color: var(--norvex-muted); margin: 0; }

/* Checklist bullets */
.aw-checks { list-style: none; padding: 0; margin: 16px 0; }
.aw-checks li { position: relative; padding-left: 28px; margin: 10px 0; color: var(--norvex-ink); }
.aw-checks li::before { content: "✓"; position: absolute; left: 0; color: var(--norvex-gold); font-weight: 800; }

/* Tiered pricing rows */
.aw-pricerow { max-width: 940px; margin: 0 auto; }
.aw-pricerow .wp-block-columns { align-items: center; padding: 24px 0; border-top: 1px solid var(--norvex-line); margin: 0; }
.aw-pricerow .wp-block-columns:first-of-type { border-top: 0; }
.aw-pricerow .aw-pricerow__price { font-family: var(--norvex-serif); font-size: 1.9rem; color: var(--norvex-ink); line-height: 1; }
.aw-pricerow h3 { margin: 0 0 4px; }
.aw-pricerow p { color: var(--norvex-muted); margin: 0; }

/* Boxed CTA card */
.aw-ctabox { max-width: 820px; margin: 0 auto; background: var(--norvex-paper); border: 1px solid var(--norvex-line); border-radius: var(--norvex-radius); box-shadow: var(--norvex-shadow); padding: clamp(34px, 5vw, 52px); text-align: center; }
.aw-ctabox h2 { margin: 0 0 12px; }
.aw-ctabox p { color: var(--norvex-muted); max-width: 560px; margin: 0 auto 8px; }

/* Big single stat */
.aw-bigstat { text-align: center; max-width: 680px; margin: 0 auto; }
.aw-bigstat .aw-bignum { font-family: var(--norvex-serif); font-size: clamp(4rem, 12vw, 7rem); font-weight: 600; line-height: .9; color: var(--norvex-gold-dark); }
.aw-bigstat p { color: var(--norvex-muted); }

/* Single / boxed pricing card, centered */
.aw-solo { max-width: 480px; margin: 0 auto; }

/* Split CTA (heading left, buttons right) */
.aw-split-head { align-items: center; }
.aw-split-head h2 { margin: 0; }
.aw-split-head .wp-block-buttons { justify-content: flex-end; }
@media (max-width: 781px) { .aw-split-head .wp-block-buttons { justify-content: flex-start; } }

/* Big single centered quote */
.aw-bigquote { max-width: 900px; margin: 0 auto; text-align: center; }
.aw-bigquote p { font-family: var(--norvex-serif); font-style: italic; font-size: clamp(1.6rem, 3.4vw, 2.4rem); line-height: 1.32; color: var(--norvex-ink); }
.aw-bigquote cite { display: block; margin-top: 18px; font-style: normal; font-size: .8rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--norvex-gold-dark); }

/* Stat sets (light & dark) for the pattern library */
.aw-statset { gap: 30px; }
.aw-statset .wp-block-column { text-align: center; }
.aw-statset .aw-snum { font-family: var(--norvex-serif); font-size: 2.6rem; font-weight: 600; line-height: 1; color: var(--norvex-gold-dark); margin: 0 0 2px; }
.aw-statset .aw-slabel { color: var(--norvex-muted); font-size: .85rem; margin: 0; }
.aw-statset--dark .aw-snum { color: #ffffff; }
.aw-statset--dark .aw-slabel { color: #e7ddca; }
.aw-statcards .wp-block-column { background: var(--norvex-paper); border: 1px solid var(--norvex-line); border-radius: var(--norvex-radius); padding: 26px 20px; text-align: center; }
