/*
Theme Name: Polarwyn
Template: kadence
Description: Polarwyn child theme. Direction A, Field guide: one real photograph treated as evidence, numbered sections, captioned figures, night opens and closes, paper in between. Brief: 06-website/DIRECTION-A.md.
Version: 4.8.3
Text Domain: polarwyn
*/

/* Outfit's light weights for headlines (the emphasis system sets headlines at 300). Kadence loads 500 and 600;
   this is the brand's own variable Outfit file, used only for the lighter weights. */
@font-face {
	font-family: 'Outfit';
	font-style: normal;
	font-weight: 100 400;
	font-display: swap;
	src: url('assets/fonts/Outfit-variable.woff2') format('woff2'), url('assets/fonts/Outfit-variable.ttf') format('truetype');
}

/* =========================================================
   Tokens
   ========================================================= */
:root {
	--pw-midnight: #0B1426;
	--pw-navy: #13203A;
	--pw-dusk: #1A2946;
	--pw-gold: #E3A93C;
	--pw-gold-bright: #EDB955;
	--pw-gold-deep: #8A5F12;
	--pw-dawn: #F7F5F0;
	--pw-paper: #FFFFFF;
	--pw-ink: #1F2937;
	--pw-slate: #4B5563;
	--pw-rule: rgba(19, 32, 58, .14);
	--pw-moon: rgba(247, 245, 240, .74);
	--pw-faint: rgba(247, 245, 240, .14);
	--pw-ease: cubic-bezier(.16, 1, .3, 1);
	--pw-gutter: clamp(16px, 4vw, 48px);
	--pw-wrap: 1240px;
	--pw-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 42'%3E%3Cpath d='M13 0 L16.8 17.2 L26 21 L16.8 24.8 L13 42 L9.2 24.8 L0 21 L9.2 17.2 Z'/%3E%3C/svg%3E");
	--pw-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E");
	--pw-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: 96px;
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; animation: none !important; }
}

body {
	background: var(--pw-dawn);
	color: var(--pw-ink);
	font: 400 17px/1.65 Inter, sans-serif;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}

::selection { background: var(--pw-gold); color: var(--pw-midnight); }

:focus-visible {
	outline: 2px solid var(--pw-gold);
	outline-offset: 3px;
	border-radius: 4px;
}

/* =========================================================
   Shell: Kadence's wrappers get out of the way
   ========================================================= */
.entry-content .wp-block-group__inner-container { display: contents; }
.content-area, .site-main, .entry-content, .entry-content-wrap { margin: 0 !important; padding: 0 !important; }
.entry-content > * { margin-block: 0 !important; }
.content-container.site-container { max-width: none; padding: 0; }
.entry.single-entry { box-shadow: none; background: transparent; }

.pw-wrap {
	max-width: var(--pw-wrap);
	margin-inline: auto;
	padding-inline: var(--pw-gutter);
}

/* =========================================================
   Type
   ========================================================= */
.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4 {
	font-family: Outfit, sans-serif;
	font-weight: 500;
	color: inherit;
	margin: 0;
	text-wrap: balance;
}

.entry-content p { margin: 0; text-wrap: pretty; }
.entry-content a { color: inherit; }

.pw-h1-setup {
	display: block;
	font: 500 clamp(20px, 2vw, 28px)/1.2 Outfit, sans-serif;
	letter-spacing: -.01em;
	color: rgba(247, 245, 240, .6);
	margin-bottom: .35em;
}

.pw-h1-lead {
	display: block;
	font: 500 clamp(44px, 6vw, 88px)/.98 Outfit, sans-serif;
	letter-spacing: -.04em;
	max-width: 13ch;
}

.pw-hero--page .pw-h1-lead { font-size: clamp(40px, 5.2vw, 76px); max-width: 15ch; }

.pw-sec h2 {
	font-size: clamp(32px, 4vw, 54px);
	line-height: 1.06;
	letter-spacing: -.03em;
	max-width: 20ch;
}

.pw-sec h3 {
	font-size: clamp(21px, 1.8vw, 25px);
	line-height: 1.2;
	letter-spacing: -.015em;
}

:is(.pw-sec__body, .pw-sec__body > .wp-block-group__inner-container) > p,
:is(.pw-sec__body, .pw-sec__body > .wp-block-group__inner-container) > .wp-block-list,
.pw-prose p,
.pw-prose li {
	font-size: clamp(17px, 1.3vw, 18.5px);
	line-height: 1.72;
	max-width: 64ch;
}

:is(.pw-sec__body, .pw-sec__body > .wp-block-group__inner-container) > h2 + p,
:is(.pw-sec__body, .pw-sec__body > .wp-block-group__inner-container) > p + p,
:is(.pw-sec__body, .pw-sec__body > .wp-block-group__inner-container) > h2 + .wp-block-list { margin-top: 20px; }

:is(.pw-sec__body, .pw-sec__body > .wp-block-group__inner-container) > * + h3 { margin-top: 40px; }
:is(.pw-sec__body, .pw-sec__body > .wp-block-group__inner-container) > h3 + p { margin-top: 10px; }

.pw-lede {
	font-size: clamp(17px, 1.4vw, 19.5px) !important;
	line-height: 1.7 !important;
	max-width: 56ch;
	margin-top: 28px !important;
}

.pw-note {
	font-size: 14.5px !important;
	color: var(--pw-slate);
	margin-top: 18px !important;
}

/* =========================================================
   Actions
   ========================================================= */
.wp-block-buttons > .wp-block-button { margin: 0 !important; }
.wp-block-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 30px; margin-top: 36px !important; }

.wp-block-button.pw-btn .wp-block-button__link,
.pw-btn-link,
.site-header .header-button,
.mobile-header-button-wrap .mobile-header-button,
.pw-form .kb-forms-submit.button {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 16px 28px;
	border: 0;
	border-radius: 999px;
	background: var(--pw-gold);
	color: var(--pw-midnight) !important;
	font: 500 16px/1.2 Outfit, sans-serif;
	letter-spacing: .01em;
	text-decoration: none;
	box-shadow: 0 12px 28px -14px rgba(227, 169, 60, .55);
	transition: background-color .3s, transform .5s var(--pw-ease), box-shadow .5s var(--pw-ease);
	cursor: pointer;
}

.wp-block-button.pw-btn .wp-block-button__link:hover,
.pw-btn-link:hover,
.site-header .header-button:hover,
.mobile-header-button-wrap .mobile-header-button:hover,
.pw-form .kb-forms-submit.button:hover {
	background: var(--pw-gold-bright);
	transform: translateY(-1px);
	box-shadow: 0 0 0 5px rgba(227, 169, 60, .14), 0 16px 34px -14px rgba(227, 169, 60, .7);
}

.site-header .header-button { padding: 11px 20px; font-size: 15px; }

/* The quiet secondary action: a ruled link with a drawn arrow. */
.pw-link a,
.wp-block-button.pw-link .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 0 0 4px;
	border: 0;
	border-bottom: 1px solid var(--pw-gold-deep);
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: inherit;
	font: 500 16px/1.2 Outfit, sans-serif;
	text-decoration: none;
	transition: gap .4s var(--pw-ease);
}

.pw-link a::after,
.wp-block-button.pw-link .wp-block-button__link::after {
	content: "";
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: var(--pw-arrow) center / contain no-repeat;
	mask: var(--pw-arrow) center / contain no-repeat;
}

.pw-link a:hover,
.wp-block-button.pw-link .wp-block-button__link:hover { gap: 15px; background: none; }

.pw-link { margin-top: 28px !important; }

.pw-hero .pw-link a,
.pw-hero .wp-block-button.pw-link .wp-block-button__link,
.pw-sec--night .pw-link a,
.pw-sec--night .wp-block-button.pw-link .wp-block-button__link { border-color: var(--pw-gold); }

/* Inline links inside reading text. */
.pw-sec__body p a:not(.wp-block-button__link),
.pw-prose a,
.pw-sec__body li a,
.wp-block-details a {
	text-decoration: underline;
	text-decoration-color: var(--pw-gold-deep);
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
}

/* =========================================================
   Header: a plain midnight bar. No pill, no progress line.
   ========================================================= */
#masthead { position: relative; z-index: 1000; }

#masthead .site-main-header-wrap,
#masthead .site-main-header-wrap .site-header-row-container-inner,
#masthead .kadence-sticky-header,
#masthead .kadence-sticky-header.item-is-fixed {
	background: var(--pw-midnight) !important;
}

#masthead .site-main-header-wrap .site-header-row-container-inner {
	border-bottom: 1px solid var(--pw-faint);
	transition: box-shadow .4s;
}

.pw-scrolled #masthead .site-main-header-wrap .site-header-row-container-inner {
	box-shadow: 0 12px 30px -20px rgba(0, 0, 0, .8);
}

#masthead .site-main-header-wrap .site-container {
	max-width: var(--pw-wrap);
	padding-inline: var(--pw-gutter);
}

.site-header .main-navigation .primary-menu-container > ul > li.menu-item > a {
	position: relative;
	color: rgba(247, 245, 240, .82);
	font: 500 15px/1 Outfit, sans-serif;
	letter-spacing: .01em;
}

.site-header .main-navigation .primary-menu-container > ul > li.menu-item > a:hover,
.site-header .main-navigation .primary-menu-container > ul > li.current-menu-item > a,
.site-header .main-navigation .primary-menu-container > ul > li.current-page-ancestor > a { color: var(--pw-dawn); }

.site-header .main-navigation .primary-menu-container > ul > li.menu-item > a::after {
	content: "";
	position: absolute;
	left: 1.2em;
	right: 1.2em;
	bottom: .4em;
	height: 1px;
	background: var(--pw-gold);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .4s var(--pw-ease);
}

.site-header .main-navigation .primary-menu-container > ul > li.menu-item > a:hover::after,
.site-header .main-navigation .primary-menu-container > ul > li.current-menu-item > a::after,
.site-header .main-navigation .primary-menu-container > ul > li.current-page-ancestor > a::after { transform: scaleX(1); }

/* Sub-menus (Services). */
.site-header .main-navigation ul ul.sub-menu {
	background: var(--pw-navy);
	border: 1px solid var(--pw-faint);
	border-radius: 10px;
	padding: 8px 0;
	box-shadow: 0 24px 50px -24px rgba(0, 0, 0, .8);
}

.site-header .main-navigation ul ul.sub-menu li a {
	color: rgba(247, 245, 240, .82);
	font: 400 15px/1.3 Inter, sans-serif;
	padding: 9px 18px;
	width: 240px;
}

.site-header .main-navigation ul ul.sub-menu li a:hover { color: var(--pw-dawn); background: rgba(247, 245, 240, .05); }

.menu-toggle-open, .menu-toggle-open .menu-toggle-icon { color: var(--pw-dawn) !important; }
#mobile-drawer .drawer-inner { background: var(--pw-midnight); }
#mobile-drawer .mobile-navigation ul li a { color: var(--pw-dawn); font: 500 18px/1.3 Outfit, sans-serif; }
#mobile-drawer .mobile-navigation ul li { border-color: var(--pw-faint) !important; }

/* =========================================================
   Hero: night opens the page
   ========================================================= */
.pw-hero {
	background: var(--pw-midnight);
	color: var(--pw-dawn);
	padding: clamp(56px, 7vw, 104px) 0 clamp(72px, 9vw, 128px);
}

.pw-hero .pw-lede { color: var(--pw-moon); }

.pw-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
	gap: clamp(40px, 6vw, 96px);
	align-items: center;
}

.pw-hero--page .pw-hero__grid { grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr); align-items: end; }

.pw-crumb {
	font: 500 13px/1 Outfit, sans-serif !important;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: rgba(247, 245, 240, .55);
	margin-bottom: 28px !important;
}

.pw-crumb a { text-decoration: none; color: rgba(247, 245, 240, .55); }
.pw-crumb a:hover { color: var(--pw-dawn); }
.pw-crumb span { color: var(--pw-gold); margin-inline: .6em; }

.entry-content .pw-proof {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
	list-style: none;
	padding: 0;
	margin: 30px 0 0 !important;
	font: 500 14px/1.3 Outfit, sans-serif;
	letter-spacing: .02em;
	color: rgba(247, 245, 240, .7);
}

.pw-proof li::before {
	content: "";
	display: inline-block;
	width: 5px;
	height: 5px;
	margin-right: 10px;
	border-radius: 50%;
	background: var(--pw-gold);
	vertical-align: middle;
}

/* Fig. 1: the real photograph, annotated, never painted over. */
.pw-plate { margin: 0; }

.pw-plate__frame {
	position: relative;
	aspect-ratio: 4 / 5;
	max-height: 76vh;
	margin-left: auto;
	overflow: hidden;
	border-radius: 3px;
	box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .9);
}

.pw-plate__frame img { width: 100%; height: 100%; object-fit: cover; display: block; }

.pw-plate__ring {
	position: absolute;
	left: 49.5%;
	top: 51%;
	width: 46px;
	height: 46px;
	margin: -23px 0 0 -23px;
	border: 1px solid rgba(247, 245, 240, .92);
	border-radius: 50%;
}

.pw-plate__leader {
	position: absolute;
	left: calc(49.5% + 23px);
	right: 22px;
	top: 51%;
	height: 1px;
	background: rgba(247, 245, 240, .92);
}

.pw-plate__tag {
	position: absolute;
	right: 22px;
	top: calc(51% - 50px);
	text-align: right;
	font: 500 15px/1.35 Outfit, sans-serif;
	color: var(--pw-dawn);
	text-shadow: 0 1px 10px rgba(11, 20, 38, .95);
}

.pw-fig {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 4px 16px;
	margin-top: 16px;
	font: 400 13.5px/1.55 Inter, sans-serif;
	color: rgba(247, 245, 240, .62);
}

.pw-fig b { font: 500 12px/1.6 Outfit, sans-serif; letter-spacing: .14em; text-transform: uppercase; color: var(--pw-dawn); }

.pw-sec .pw-fig { color: var(--pw-slate); }
.pw-sec .pw-fig b { color: var(--pw-navy); }
.pw-sec--night .pw-fig { color: rgba(247, 245, 240, .62); }
.pw-sec--night .pw-fig b { color: var(--pw-dawn); }

/* Inner pages: a specimen card of plain facts beside the promise. */
.pw-facts {
	margin: 0;
	border-top: 1px solid rgba(247, 245, 240, .3);
}

.pw-facts div {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	padding: 15px 0;
	border-bottom: 1px solid var(--pw-faint);
}

.pw-facts dt { font: 400 15px/1.4 Inter, sans-serif; color: var(--pw-moon); }
.pw-facts dd { margin: 0; font: 500 15px/1.4 Outfit, sans-serif; color: var(--pw-dawn); text-align: right; }

/* =========================================================
   Sections: numbered in the margin, like a field guide
   ========================================================= */
.pw-sec {
	padding: clamp(56px, 7vw, 104px) 0;
	color: var(--pw-navy);
}

/* Two sections on the same ground are split by a rule, so the page never runs on without a seam. */
.pw-sec + .pw-sec--light, .pw-sec--light + .pw-sec--light, .pw-sec--paper + .pw-sec--paper { border-top: 1px solid var(--pw-rule); }
.pw-sec--night + .pw-sec--night { border-top: 1px solid var(--pw-faint); }
.pw-sec--light { background: var(--pw-dawn); }
.pw-sec--paper { background: var(--pw-paper); }
.pw-sec--night { background: var(--pw-navy); color: var(--pw-dawn); }

.pw-sec__grid {
	display: grid;
	grid-template-columns: clamp(96px, 13vw, 200px) minmax(0, 1fr);
	gap: 0 clamp(24px, 4vw, 64px);
}

.pw-index {
	font: 500 13px/1.4 Outfit, sans-serif !important;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--pw-slate);
	padding-top: 10px;
}

.pw-index span {
	display: block;
	margin-bottom: 8px;
	padding-top: 12px;
	border-top: 1px solid currentColor;
	width: 32px;
	font-size: 15px;
	letter-spacing: .06em;
	font-variant-numeric: tabular-nums;
	color: var(--pw-gold-deep);
}

.pw-sec--night .pw-index { color: rgba(247, 245, 240, .6); }
.pw-sec--night .pw-index span { color: var(--pw-gold); }

.pw-sec__body { min-width: 0; }
.pw-sec--light :is(.pw-sec__body, .pw-sec__body > .wp-block-group__inner-container) > p, .pw-sec--paper :is(.pw-sec__body, .pw-sec__body > .wp-block-group__inner-container) > p { color: var(--pw-slate); }
.pw-sec--night :is(.pw-sec__body, .pw-sec__body > .wp-block-group__inner-container) > p { color: var(--pw-moon); }

@media (max-width: 860px) {
	.pw-sec__grid { grid-template-columns: 1fr; }
	.pw-index { display: flex; align-items: baseline; gap: 12px; padding-top: 0; margin-bottom: 22px !important; }
	.pw-index span { display: inline-block; margin: 0; padding-top: 10px; }
}

/* An editorial list: number, name, description, separated by rules. */
.pw-list { margin-top: clamp(40px, 5vw, 64px) !important; border-bottom: 1px solid var(--pw-rule); counter-reset: pw; }
.pw-sec--night .pw-list { border-color: var(--pw-faint); }

.pw-list__item {
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr) minmax(0, 1.3fr);
	gap: 10px clamp(24px, 4vw, 56px);
	padding: 30px 0;
	border-top: 1px solid var(--pw-rule);
	counter-increment: pw;
}

.pw-sec--night .pw-list__item { border-color: var(--pw-faint); }

.pw-list__item::before {
	content: counter(pw, decimal-leading-zero);
	font: 500 15px/1.6 Outfit, sans-serif;
	letter-spacing: .06em;
	font-variant-numeric: tabular-nums;
	color: var(--pw-gold-deep);
}

.pw-sec--night .pw-list__item::before { color: var(--pw-gold); }
:is(.pw-list__item, .pw-list__item > .wp-block-group__inner-container) > h3 { grid-column: 2; }
:is(.pw-list__item, .pw-list__item > .wp-block-group__inner-container) > p { grid-column: 3; grid-row: 1 / span 3; color: var(--pw-slate); font-size: 16.5px; line-height: 1.7; }
.pw-sec--night :is(.pw-list__item, .pw-list__item > .wp-block-group__inner-container) > p { color: var(--pw-moon); }
:is(.pw-list__item, .pw-list__item > .wp-block-group__inner-container) > .pw-list__kw { grid-column: 2; font: 400 14.5px/1.5 Inter, sans-serif !important; color: var(--pw-slate); }
.pw-sec--night :is(.pw-list__item, .pw-list__item > .wp-block-group__inner-container) > .pw-list__kw { color: rgba(247, 245, 240, .6); }
:is(.pw-list__item, .pw-list__item > .wp-block-group__inner-container) > .pw-link { grid-column: 2; margin-top: 8px !important; }
.pw-list__item h3 a { text-decoration: none; }
.pw-list__item h3 a:hover { text-decoration: underline; text-decoration-color: var(--pw-gold-deep); text-underline-offset: 5px; }

@media (max-width: 860px) {
	.pw-list__item { grid-template-columns: 40px minmax(0, 1fr); }
	:is(.pw-list__item, .pw-list__item > .wp-block-group__inner-container) > p { grid-column: 2; grid-row: auto; }
}

/* Rows in a list item, set explicitly: name, search words, link on the left; the description on the right. */
.pw-list__item h3 { grid-column: 2; grid-row: 1; }
.pw-list__item .pw-list__kw { grid-column: 2 !important; grid-row: 2 !important; }
.pw-list__item .pw-link { grid-column: 2 !important; grid-row: 3 !important; align-self: start; }
.pw-list__item > p:not(.pw-list__kw):not(.pw-link), .pw-list__item > .wp-block-group__inner-container > p:not(.pw-list__kw):not(.pw-link) { grid-column: 3; grid-row: 1 / span 3; }
.pw-list__item { grid-template-rows: auto auto 1fr; }

@media (max-width: 860px) {
	.pw-list__item > p:not(.pw-list__kw):not(.pw-link), .pw-list__item > .wp-block-group__inner-container > p:not(.pw-list__kw):not(.pw-link) { grid-column: 2; grid-row: 3; }
	.pw-list__item .pw-link { grid-row: 4 !important; }
	.pw-list__item { grid-template-rows: none; }
}

/* Columns: the four questions, the three steps. */
.pw-cols {
	display: grid;
	grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr));
	gap: 0;
	margin-top: clamp(40px, 5vw, 64px) !important;
	border-top: 1px solid var(--pw-rule);
}

.pw-cols--3 { --n: 3; }
.pw-sec--night .pw-cols { border-color: var(--pw-faint); }

.pw-col {
	padding: 28px clamp(16px, 2vw, 28px) 8px 0;
	border-right: 1px solid var(--pw-rule);
	margin-right: clamp(16px, 2vw, 28px);
}

.pw-col:last-child { border-right: 0; margin-right: 0; }
.pw-sec--night .pw-col { border-color: var(--pw-faint); }

.pw-col__mark {
	display: block;
	width: 12px;
	height: 19px;
	margin-bottom: 22px;
	background: var(--pw-navy);
	-webkit-mask: var(--pw-star) center / contain no-repeat;
	mask: var(--pw-star) center / contain no-repeat;
}

.pw-sec--night .pw-col__mark { background: var(--pw-dawn); }
.pw-col h3 { font-size: clamp(24px, 2.2vw, 30px) !important; }
.pw-col__q { font: 500 16.5px/1.4 Outfit, sans-serif !important; margin-top: 8px !important; }
.pw-col p:not(.pw-col__q) { color: var(--pw-slate); font-size: 16px; line-height: 1.65; margin-top: 12px !important; }
.pw-sec--night .pw-col p:not(.pw-col__q) { color: var(--pw-moon); }
.pw-col .wp-block-list { margin-top: 14px !important; }

@media (max-width: 1024px) {
	.pw-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pw-col:nth-child(2n) { border-right: 0; margin-right: 0; }
	.pw-col:nth-child(n + 3) { border-top: 1px solid var(--pw-rule); }
}

@media (max-width: 600px) {
	.pw-cols, .pw-cols--3 { grid-template-columns: 1fr; }
	.pw-col { border-right: 0; margin-right: 0; padding-right: 0; border-top: 1px solid var(--pw-rule); }
	.pw-col:first-child { border-top: 0; }
}

/* Lists with drawn ticks. */
.pw-ticks { list-style: none; padding: 0 !important; margin-top: 22px !important; }

.pw-ticks li {
	position: relative;
	padding: 12px 0 12px 34px;
	border-top: 1px solid var(--pw-rule);
	font-size: 16.5px !important;
	line-height: 1.6 !important;
	color: var(--pw-ink);
}

.pw-ticks li:last-child { border-bottom: 1px solid var(--pw-rule); }

.pw-ticks li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 16px;
	width: 18px;
	height: 18px;
	background: var(--pw-gold-deep);
	-webkit-mask: var(--pw-check) center / contain no-repeat;
	mask: var(--pw-check) center / contain no-repeat;
}

.pw-sec--night .pw-ticks li { color: var(--pw-dawn); border-color: var(--pw-faint); }
.pw-sec--night .pw-ticks li::before { background: var(--pw-gold); }

.pw-ticks--no li::before {
	-webkit-mask: none;
	mask: none;
	width: 14px;
	height: 1.5px;
	top: 24px;
	background: var(--pw-slate);
}

.pw-sec--night .pw-ticks--no li::before { background: rgba(247, 245, 240, .6); }

/* Two columns side by side (always / never, text / figure). */
.pw-split {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(40px, 6vw, 96px);
	align-items: start;
	margin-top: clamp(32px, 4vw, 48px) !important;
}

.pw-split--figure { grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); margin-top: 0 !important; }
:is(.pw-split, .pw-split > .wp-block-group__inner-container) > div > h3 + .pw-ticks { margin-top: 14px !important; }
:is(.pw-split__text, .pw-split__text > .wp-block-group__inner-container) > p { color: var(--pw-slate); font-size: clamp(17px, 1.3vw, 18.5px); line-height: 1.72; max-width: 60ch; }
:is(.pw-split__text, .pw-split__text > .wp-block-group__inner-container) > h2 + p, :is(.pw-split__text, .pw-split__text > .wp-block-group__inner-container) > p + p { margin-top: 20px !important; }
.pw-sec--night :is(.pw-split__text, .pw-split__text > .wp-block-group__inner-container) > p { color: var(--pw-moon); }

@media (max-width: 860px) {
	.pw-split, .pw-split--figure { grid-template-columns: 1fr; }
}

/* =========================================================
   Figures: the sample North Score, the ledger
   ========================================================= */
.pw-sheet {
	margin: 0;
	background: var(--pw-paper);
	color: var(--pw-ink);
	border-radius: 6px;
	padding: clamp(24px, 3vw, 34px);
	box-shadow: 0 40px 70px -50px rgba(11, 20, 38, .5), 0 2px 6px -2px rgba(11, 20, 38, .08);
	font-size: 14.5px;
}

.pw-sec--paper .pw-sheet { border: 1px solid var(--pw-rule); }

.pw-sheet__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--pw-navy);
}

.pw-sheet__head b { font: 600 18px/1.2 Outfit, sans-serif; color: var(--pw-navy); }
.pw-sheet__head span { font: 500 11px/1 Outfit, sans-serif; letter-spacing: .14em; text-transform: uppercase; color: var(--pw-gold-deep); }

.pw-sheet__score { display: flex; align-items: baseline; gap: 10px; padding: 22px 0 14px; }
.pw-sheet__score strong { font: 500 68px/1 Outfit, sans-serif; letter-spacing: -.04em; color: var(--pw-navy); }
.pw-sheet__score span { color: var(--pw-slate); }

.pw-sheet__row {
	display: grid;
	grid-template-columns: 76px minmax(0, 1fr) 96px;
	gap: 14px;
	align-items: center;
	padding: 11px 0;
	border-top: 1px solid var(--pw-rule);
}

.pw-sheet__row b { font: 500 15px/1.2 Outfit, sans-serif; color: var(--pw-navy); }
.pw-sheet__bar { height: 4px; border-radius: 4px; background: var(--pw-rule); position: relative; overflow: hidden; }
.pw-sheet__bar i { position: absolute; inset: 0 auto 0 0; width: var(--v); background: var(--pw-navy); border-radius: 4px; }
.pw-sheet__row em { font: 500 13.5px/1.2 Outfit, sans-serif; font-style: normal; color: var(--pw-slate); text-align: right; }

.pw-sheet__fix {
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid var(--pw-rule);
	color: var(--pw-slate);
	font-size: 14px;
	line-height: 1.55;
}

.pw-sheet__fix b { color: var(--pw-navy); font-weight: 500; }
.pw-sheet__fix ol { margin: 6px 0 0; padding-left: 18px; }
.pw-sheet__fix li + li { margin-top: 2px; }

/* The ledger: Client Zero's numbers, true ones only. */
.pw-ledger { margin: 0; }

.pw-ledger table { width: 100%; border-collapse: collapse; font-size: 15px; }
.pw-ledger caption { text-align: left; font: 600 17px/1.2 Outfit, sans-serif; color: var(--pw-navy); padding-bottom: 14px; border-bottom: 2px solid var(--pw-navy); }
.pw-ledger th, .pw-ledger td { padding: 13px 0; border-bottom: 1px solid var(--pw-rule); text-align: left; vertical-align: top; }
.pw-ledger th { font: 500 11.5px/1.3 Outfit, sans-serif; letter-spacing: .12em; text-transform: uppercase; color: var(--pw-slate); }
.pw-ledger td:not(:first-child), .pw-ledger th:not(:first-child) { text-align: right; padding-left: 16px; }
.pw-ledger td:nth-child(2) { font: 500 16px/1.3 Outfit, sans-serif; color: var(--pw-navy); }
.pw-ledger td:last-child { color: var(--pw-slate); }
.pw-ledger .pw-fig { margin-top: 14px; }

/* The ledger as a sheet of paper: the sample North Report. */
.pw-ledger--paper {
	background: var(--pw-paper);
	color: var(--pw-ink);
	border-radius: 6px;
	padding: clamp(22px, 3vw, 32px);
	box-shadow: 0 40px 70px -50px rgba(0, 0, 0, .6), 0 2px 6px -2px rgba(11, 20, 38, .1);
}

.pw-ledger caption span { float: right; font: 500 11px/1.9 Outfit, sans-serif; letter-spacing: .14em; text-transform: uppercase; color: var(--pw-gold-deep); }
.pw-ledger--paper td:not(:first-child) { white-space: nowrap; padding-left: 12px; }
.pw-ledger--paper th:not(:first-child) { padding-left: 12px; }
.pw-ledger td:nth-child(n + 3) { color: var(--pw-slate); font: 400 15px/1.3 Inter, sans-serif; }
.pw-ledger tr.is-lead td { font-weight: 600; color: var(--pw-navy); border-bottom: 2px solid var(--pw-gold); }
.pw-ledger tr.is-lead td:nth-child(2) { font: 600 20px/1.2 Outfit, sans-serif; }
.pw-ledger__note { margin: 16px 0 0 !important; font-size: 14px !important; line-height: 1.55 !important; color: var(--pw-slate) !important; }
.pw-ledger__note b { color: var(--pw-navy); font-weight: 500; }

/* Industries: one ruled row per trade, read across like a field guide's table. */
.pw-trades { margin-top: clamp(32px, 4vw, 48px) !important; border-bottom: 1px solid var(--pw-rule); }

.pw-trade {
	display: grid;
	grid-template-columns: minmax(0, .9fr) repeat(3, minmax(0, 1fr));
	gap: 16px clamp(20px, 2.4vw, 36px);
	padding: 30px 0;
	border-top: 1px solid var(--pw-rule);
	scroll-margin-top: 96px;
}

.pw-trade, .pw-trade .wp-block-group, .pw-trade p, .pw-trade h3 { margin-block: 0 !important; }
.pw-trade .pw-trade__label { margin-bottom: 8px !important; }
.pw-trade h3 { font-size: clamp(20px, 1.6vw, 23px) !important; }
.pw-trade .pw-link { margin-top: 14px !important; }
.pw-trade .pw-link a { font-size: 14.5px; }
.pw-trade__label { font: 500 11.5px/1.3 Outfit, sans-serif !important; letter-spacing: .12em; text-transform: uppercase; color: var(--pw-gold-deep); margin-bottom: 8px !important; }
.pw-trade .pw-link { margin-top: 14px !important; }
.pw-trade__cell p:not(.pw-trade__label) { font-size: 15px; line-height: 1.65; color: var(--pw-slate); }

@media (max-width: 1024px) {
	.pw-trade { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.pw-trade__name { grid-column: 1 / -1; }
}

@media (max-width: 700px) {
	.pw-trade { grid-template-columns: 1fr; }
}

/* A page that already ends on its own call to action doesn't ask twice in the footer. */
body:has(.pw-sec--close) .pw-footer__cta { display: none; }
body:has(.pw-sec--close) .pw-footer__top { grid-template-columns: 1fr; }

/* The plan table on Services. */
.pw-tiers { margin-top: 36px !important; overflow-x: auto; }
.pw-tiers table { width: 100%; min-width: 680px; border-collapse: collapse; font-size: 15px; }
.pw-tiers th, .pw-tiers td { padding: 14px 16px 14px 0; border: 0; border-bottom: 1px solid var(--pw-rule); text-align: left; vertical-align: top; }
.pw-tiers thead th { font: 500 18px/1.2 Outfit, sans-serif; color: var(--pw-navy); border-bottom: 2px solid var(--pw-navy); }
.pw-tiers tbody td:first-child { color: var(--pw-ink); width: 34%; }
.pw-tiers tbody td:not(:first-child) { color: var(--pw-slate); }
.pw-tiers tbody tr:first-child td { font-style: italic; color: var(--pw-slate); }

/* =========================================================
   The 18 checks
   ========================================================= */
.pw-checks .wp-block-list { list-style: none; padding: 0; margin: 14px 0 0 !important; }
.pw-checks .wp-block-list li { padding: 9px 0; border-top: 1px solid var(--pw-rule); font-size: 15px; line-height: 1.5; color: var(--pw-ink); }
.pw-checks .wp-block-list li::before { content: counter(chk) ". "; counter-increment: chk; color: var(--pw-gold-deep); font: 500 14px Outfit, sans-serif; }
.pw-checks { counter-reset: chk; }
.pw-checks h3 small { font: 500 13px/1 Outfit, sans-serif; letter-spacing: .08em; color: var(--pw-slate); margin-left: 6px; }

/* =========================================================
   Long-form reading: keyword pages and legal
   ========================================================= */
:is(.pw-prose, .pw-prose > .wp-block-group__inner-container) > * + * { margin-top: 20px !important; }
:is(.pw-prose, .pw-prose > .wp-block-group__inner-container) > h2 { margin-top: 64px !important; }
:is(.pw-prose, .pw-prose > .wp-block-group__inner-container) > h2:first-child { margin-top: 0 !important; }
:is(.pw-prose, .pw-prose > .wp-block-group__inner-container) > h3 { margin-top: 40px !important; }
.pw-prose p { color: var(--pw-slate); }
.pw-prose .wp-block-list:not(.pw-ticks) { padding-left: 22px; color: var(--pw-slate); }
.pw-prose .wp-block-list:not(.pw-ticks) li + li { margin-top: 8px; }

/* =========================================================
   FAQ
   ========================================================= */
.pw-faq .wp-block-details {
	border-top: 1px solid var(--pw-rule);
	max-width: 860px;
	margin: 0 !important;
}

.pw-faq h2 + .wp-block-details { margin-top: 36px !important; }
.pw-faq .wp-block-details:last-child { border-bottom: 1px solid var(--pw-rule); }

.pw-faq summary {
	position: relative;
	list-style: none;
	padding: 24px 48px 24px 0;
	cursor: pointer;
	font: 500 clamp(18px, 1.5vw, 21px)/1.35 Outfit, sans-serif;
	color: var(--pw-navy);
}

.pw-faq summary::-webkit-details-marker { display: none; }

.pw-faq summary::after {
	content: "";
	position: absolute;
	right: 4px;
	top: 50%;
	width: 14px;
	height: 14px;
	margin-top: -7px;
	background:
		linear-gradient(var(--pw-gold-deep), var(--pw-gold-deep)) center / 14px 1.5px no-repeat,
		linear-gradient(var(--pw-gold-deep), var(--pw-gold-deep)) center / 1.5px 14px no-repeat;
	transition: transform .4s var(--pw-ease);
}

.pw-faq details[open] summary::after { transform: rotate(45deg); }
.pw-faq details p { padding: 0 48px 26px 0; color: var(--pw-slate); font-size: 17px; line-height: 1.7; max-width: 68ch; }

/* =========================================================
   The closing call to action
   ========================================================= */
.pw-sec--close { background: var(--pw-dawn); color: var(--pw-navy); border-top: 1px solid var(--pw-rule); }
.pw-sec--close h2 { font-size: clamp(36px, 4.8vw, 66px); max-width: 16ch; }

/* =========================================================
   Industries index, blog list, contact
   ========================================================= */
.pw-big-link a {
	font: 500 clamp(26px, 3vw, 40px)/1.2 Outfit, sans-serif;
	letter-spacing: -.02em;
	color: var(--pw-navy);
	text-decoration: underline;
	text-decoration-color: var(--pw-gold-deep);
	text-decoration-thickness: 1.5px;
	text-underline-offset: 8px;
}

.pw-posts .wp-block-post-template { list-style: none; padding: 0; margin: 32px 0 0; border-top: 1px solid var(--pw-rule); }
.pw-posts .wp-block-post-template li { padding: 26px 0; border-bottom: 1px solid var(--pw-rule); }
.pw-posts .wp-block-post-title { font: 500 24px/1.25 Outfit, sans-serif; }
.pw-posts .wp-block-post-title a { text-decoration: none; color: var(--pw-navy); }
.pw-posts .wp-block-post-excerpt { color: var(--pw-slate); margin-top: 8px; }
.wp-block-categories { list-style: none; padding: 0; margin-top: 24px !important; display: flex; flex-wrap: wrap; gap: 10px; }
.wp-block-categories li a { display: inline-block; padding: 8px 16px; border: 1px solid var(--pw-rule); border-radius: 999px; text-decoration: none; font: 500 15px Outfit, sans-serif; color: var(--pw-navy); }
.wp-block-categories li a:hover { border-color: var(--pw-navy); }

/* The industries on Home: a ruled index of links, three across. */
.pw-index-list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0 clamp(24px, 3vw, 48px);
	list-style: none;
	padding: 0 !important;
	margin: 36px 0 0 !important;
}

.pw-index-list li { border-top: 1px solid var(--pw-rule); }

.pw-index-list a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 16px 0;
	font: 500 18px/1.3 Outfit, sans-serif;
	color: var(--pw-navy);
	text-decoration: none;
}

.pw-index-list a::after {
	content: "";
	width: 18px;
	height: 18px;
	background: var(--pw-gold-deep);
	-webkit-mask: var(--pw-arrow) center / contain no-repeat;
	mask: var(--pw-arrow) center / contain no-repeat;
	transition: transform .4s var(--pw-ease);
}

.pw-index-list a:hover::after { transform: translateX(4px); }

@media (max-width: 860px) { .pw-index-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .pw-index-list { grid-template-columns: 1fr; } }

.pw-figure { margin: 0; }
.pw-figure .pw-fig { margin-top: 18px; }
:is(.pw-split__side, .pw-split__side > .wp-block-group__inner-container) > h3 + p { margin-top: 10px !important; color: var(--pw-slate); }
:is(.pw-split__side, .pw-split__side > .wp-block-group__inner-container) > p + .pw-link { margin-top: 18px !important; }
:is(.pw-split__side, .pw-split__side > .wp-block-group__inner-container) > h3 + .pw-ticks, :is(.pw-split__side, .pw-split__side > .wp-block-group__inner-container) > p + .pw-ticks { margin-top: 14px !important; }
:is(.pw-split__side, .pw-split__side > .wp-block-group__inner-container) > .pw-ticks:first-child { margin-top: 0 !important; }
:is(.pw-split__side, .pw-split__side > .wp-block-group__inner-container) > p + h3, :is(.pw-split__text, .pw-split__text > .wp-block-group__inner-container) > p + h3 { margin-top: 28px !important; }
:is(.pw-split__text, .pw-split__text > .wp-block-group__inner-container) > h3 + p { margin-top: 10px !important; }
:is(.pw-sec__body, .pw-sec__body > .wp-block-group__inner-container) > .pw-split:first-child { margin-top: 0 !important; }
:is(.pw-sec__body, .pw-sec__body > .wp-block-group__inner-container) > h2 + .pw-split { margin-top: clamp(32px, 4vw, 48px) !important; }
:is(.pw-sec__body, .pw-sec__body > .wp-block-group__inner-container) > .pw-split + .pw-link { margin-top: 36px !important; }
.pw-sec--night :is(.pw-split__side, .pw-split__side > .wp-block-group__inner-container) > p { color: var(--pw-moon); }

/* =========================================================
   The audit form
   ========================================================= */
.pw-form { max-width: 760px; margin: 32px 0 0 !important; }
.pw-form .kb-form { row-gap: 6px; }
.pw-form .kadence-blocks-form-field > label { margin-bottom: 8px; color: var(--pw-navy); font: 500 15px/1.3 Outfit, sans-serif; }
.pw-form .kadence-blocks-form-field .required { color: var(--pw-gold-deep); }

.pw-form input.kb-field:not([type="checkbox"]),
.pw-form textarea.kb-field,
.pw-form select.kb-field {
	width: 100%;
	min-height: 52px;
	padding: 14px 16px;
	border: 1px solid rgba(19, 32, 58, .22);
	border-radius: 8px;
	background: var(--pw-paper);
	color: var(--pw-navy);
	font: 400 17px/1.3 Inter, sans-serif;
	box-shadow: none;
	transition: border-color .3s, box-shadow .3s;
}

.pw-form input.kb-field::placeholder { color: rgba(75, 85, 99, .6); }
.pw-form input.kb-field:not([type="checkbox"]):focus { border-color: var(--pw-gold-deep); outline: none; box-shadow: 0 0 0 4px rgba(227, 169, 60, .22); }
.pw-form .kb-accept-form-field { display: flex; align-items: center; gap: 12px; margin-top: 6px; }
.pw-form .kb-accept-form-field input[type="checkbox"] { width: 20px; height: 20px; margin: 0; accent-color: var(--pw-navy); }
.pw-form .kb-accept-form-field label { margin: 0; color: var(--pw-slate); font: 400 16px/1.4 Inter, sans-serif; }
.pw-form .kb-forms-submit.button { margin-top: 14px; }
.pw-form .kb-form-error-msg.kadence-blocks-form-warning { margin: 6px 0 0; padding: 0; border: 0; background: none; color: #B42318; font: 500 14px/1.4 Inter, sans-serif; }
.pw-form input.kb-field.has-error { border-color: #B42318; }
.pw-form .kadence-blocks-form-message { border-radius: 8px; font-size: 16px; }

/* =========================================================
   Footer: the night closes the page
   ========================================================= */
.pw-footer {
	background: var(--pw-midnight);
	color: var(--pw-dawn);
	padding: clamp(56px, 7vw, 104px) 0 36px;
}

.pw-footer__inner { max-width: var(--pw-wrap); margin: 0 auto; padding-inline: var(--pw-gutter); }

.pw-footer__top {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, .6fr);
	gap: 40px clamp(40px, 6vw, 96px);
	align-items: end;
	padding-bottom: clamp(56px, 6vw, 88px);
}

.pw-footer__line {
	margin: 0;
	font: 500 clamp(36px, 4.8vw, 72px)/1.02 Outfit, sans-serif;
	letter-spacing: -.035em;
	max-width: 17ch;
	text-wrap: balance;
}

.pw-footer__line span { display: block; color: rgba(247, 245, 240, .55); }
.pw-footer__cta p { margin: 0 0 22px; color: var(--pw-moon); font-size: 16.5px; line-height: 1.6; max-width: 34ch; }

.pw-footer__nav {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 32px;
	padding: 40px 0;
	border-top: 1px solid var(--pw-faint);
}

.pw-footer__heading { margin: 0 0 16px; font: 500 12px/1 Outfit, sans-serif; letter-spacing: .16em; text-transform: uppercase; color: rgba(247, 245, 240, .55); }
.pw-footer__nav ul { list-style: none; margin: 0; padding: 0; }
.pw-footer__nav li + li { margin-top: 10px; }
.pw-footer__nav a { color: rgba(247, 245, 240, .84); text-decoration: none; font-size: 15.5px; }
.pw-footer__nav a:hover { color: var(--pw-dawn); text-decoration: underline; text-decoration-color: var(--pw-gold); text-underline-offset: 4px; }
.pw-footer__nav .pw-footer__plain { color: rgba(247, 245, 240, .62); font-size: 15px; }

.pw-footer__base {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 28px;
	padding-top: 28px;
	border-top: 1px solid var(--pw-faint);
	font-size: 14px;
	color: rgba(247, 245, 240, .62);
}

.pw-footer__base p { margin: 0; flex: 1; }
.pw-footer__logo img { display: block; height: 30px; width: auto; }
.pw-footer__legal { display: flex; gap: 22px; list-style: none; margin: 0; padding: 0; }
.pw-footer__legal a, .pw-footer__cookies { color: rgba(247, 245, 240, .72); text-decoration: none; font-size: 14px; }
.pw-footer__cookies { background: none; border: 0; padding: 0; cursor: pointer; }
.pw-footer__legal a:hover, .pw-footer__cookies:hover { color: var(--pw-dawn); }

@media (max-width: 1024px) {
	.pw-footer__nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
	.pw-footer__top { grid-template-columns: 1fr; }
}

/* Kadence's own footer rows stay hidden: this footer is the theme's. */
.site-footer:not(.pw-footer) { display: none; }

/* =========================================================
   Cookie notice (shown only when analytics is switched on)
   ========================================================= */
.pw-consent {
	position: fixed;
	z-index: 2000;
	left: 16px;
	right: 16px;
	bottom: 16px;
	max-width: 520px;
	padding: 20px 22px;
	border: 1px solid var(--pw-faint);
	border-radius: 10px;
	background: var(--pw-navy);
	color: var(--pw-dawn);
	box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .8);
	font-size: 15px;
}

.pw-consent p { margin: 0 0 14px; color: var(--pw-moon); }
.pw-consent a { color: var(--pw-dawn); }
.pw-consent__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.pw-consent button { padding: 10px 18px; border-radius: 999px; border: 1px solid var(--pw-faint); background: transparent; color: var(--pw-dawn); font: 500 14px Outfit, sans-serif; cursor: pointer; }
.pw-consent button:hover { border-color: var(--pw-dawn); }
.pw-consent button[data-ok="1"] { background: var(--pw-gold); border-color: var(--pw-gold); color: var(--pw-midnight); }

/* =========================================================
   Phones
   ========================================================= */
@media (max-width: 860px) {
	.pw-hero__grid, .pw-hero--page .pw-hero__grid { grid-template-columns: 1fr; }
	.pw-plate { max-width: 440px; }
	.pw-plate__frame { max-height: none; margin-left: 0; }
	.pw-facts { max-width: 520px; }
}

@media (max-width: 600px) {
	.pw-h1-lead { font-size: clamp(40px, 11.5vw, 52px); }
	.pw-hero--page .pw-h1-lead { font-size: clamp(36px, 10vw, 46px); }
	.pw-h1-setup { font-size: 19px; }
	.pw-sheet__row { grid-template-columns: 64px minmax(0, 1fr) 84px; gap: 10px; }
	.pw-sheet__score strong { font-size: 56px; }
	.pw-footer__nav { grid-template-columns: 1fr 1fr; }
	.pw-footer__base { flex-direction: column; align-items: flex-start; }
}

/* =========================================================
   Emphasis in headlines: three moves, from the editor's toolbar (EDITING-GUIDE.md, rule 7).
   Headlines are set light. Bold steps a word up to full weight. Highlight turns it gold, whatever colour the
   editor picked. Strikethrough becomes a drawn line through the word.
   ========================================================= */
.pw-h1-lead, .pw-sec h2 { font-weight: 300 !important; }
.pw-h1-lead strong, .pw-sec h2 strong { font-weight: 500; }
.pw-hero .pw-h1-lead strong, .pw-sec--night h2 strong { color: var(--pw-dawn); }
.pw-sec--light h2 strong, .pw-sec--paper h2 strong, .pw-sec--close h2 strong { color: var(--pw-navy); }
.entry-content h1 mark, .entry-content h2 mark, .entry-content h3 mark { background: none !important; color: var(--pw-gold-deep) !important; font-weight: 500; }
.pw-hero h1 mark, .pw-sec--night h2 mark, .pw-sec--night h3 mark { color: var(--pw-gold) !important; }
.entry-content h1 s, .entry-content h2 s, .entry-content h3 s {
	text-decoration: none; opacity: .6;
	background: linear-gradient(currentColor, currentColor) no-repeat 0 58% / 100% .055em;
}

/* =========================================================
   THE LONG EXPOSURE: the night behind every page (assets/sky.js)
   Each page is one night that ends at dawn. The sky is fixed behind everything; heroes, night bands and the
   closing call to action are windows onto it, paper sections stay paper for reading.
   ========================================================= */
:root { --fg: #F7F5F0; --fg-soft: rgba(247,245,240,.72); --fg-faint: rgba(247,245,240,.16); --mark: #E3A93C; }
body.pw-day { --fg: #13203A; --fg-soft: #4B5563; --fg-faint: rgba(19,32,58,.16); --mark: #8A5F12; }

body { background: var(--pw-midnight) !important; overflow-x: clip; }
#pw-sky { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 0; display: block; pointer-events: none; }
@supports (height: 100lvh) { #pw-sky { bottom: auto; height: 100lvh; } }
#pw-polaris { position: fixed; z-index: 1; width: 160px; height: 160px; pointer-events: none; }
#wrapper, .site { position: relative; z-index: 2; background: transparent !important; }
#inner-wrap, .content-bg, .site-main, .content-area, #primary, .entry, .entry-content-wrap, .content-wrap, .content-container { background: transparent !important; overflow: visible !important; }

/* Header: clear over the sky, a dark glass bar once the page moves under it. */
#masthead .site-main-header-wrap,
#masthead .site-main-header-wrap .site-header-row-container-inner,
#masthead .kadence-sticky-header,
#masthead .kadence-sticky-header.item-is-fixed { background: transparent !important; }
#masthead .site-main-header-wrap .site-header-row-container-inner { border-bottom-color: transparent; transition: background-color .5s, border-color .5s; }
.pw-scrolled #masthead .site-main-header-wrap .site-header-row-container-inner { background: rgba(11, 20, 38, .86) !important; -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-bottom-color: var(--pw-faint); }

/* The viewfinder: crop marks, as if looking through the camera. */
.pw-vf { position: fixed; inset: 0; z-index: 40; pointer-events: none; transition: opacity .4s; }
.pw-vf i { position: absolute; width: 22px; height: 22px; border: 0 solid var(--fg-faint); transition: border-color .6s; }
.pw-vf i:nth-child(1) { top: 92px; left: 18px; border-top-width: 1px; border-left-width: 1px; }
.pw-vf i:nth-child(2) { top: 92px; right: 18px; border-top-width: 1px; border-right-width: 1px; }
.pw-vf i:nth-child(3) { bottom: 18px; left: 18px; border-bottom-width: 1px; border-left-width: 1px; }
.pw-vf i:nth-child(4) { bottom: 18px; right: 18px; border-bottom-width: 1px; border-right-width: 1px; }
body.pw-at-foot .pw-vf, body.pw-foot-near .pw-vf i:nth-child(n+3) { opacity: 0; }
@media (max-width: 720px) { .pw-vf { display: none; } }

/* ---------- Inner pages: the hero is a window onto the night ---------- */
.pw-hero { background: transparent !important; min-height: calc(100svh - 80px); display: flex; align-items: flex-end; padding: 48px 0 clamp(84px, 10vw, 128px); }
.pw-hero > .wp-block-group__inner-container, .pw-hero > .pw-wrap { width: 100%; }
.pw-hero .pw-hero__grid { width: 100%; }
.pw-hero--page .pw-hero__grid { grid-template-columns: minmax(0, 1.5fr) minmax(0, .62fr); }
.pw-hero--page .pw-h1-lead { font-size: clamp(46px, 7.2vw, 116px); line-height: .9; letter-spacing: -.05em; max-width: 13ch; }
.pw-hero .pw-h1-setup { font-weight: 400; }
.pw-crumb { margin-bottom: 18px !important; }
.pw-facts { background: rgba(11, 20, 38, .55); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border: 1px solid var(--pw-faint); border-radius: 4px; padding: 6px 22px; }
.pw-facts div:last-child { border-bottom: 0; }
.pw-facts dt { white-space: nowrap; flex: none; }
@media (max-width: 860px) { .pw-hero { min-height: auto; padding-top: 140px; } .pw-hero--page .pw-hero__grid { grid-template-columns: 1fr; } }

/* Night bands open a window onto the sky mid-page. */
.pw-sec--night { background: rgba(11, 20, 38, .58) !important; }

/* Bigger, quieter section headlines, in the light/bold system. */
.pw-sec h2 { font-size: clamp(36px, 4.6vw, 68px); line-height: 1; letter-spacing: -.04em; }

/* The close: every page ends at dawn, with the one action. */
.pw-sec--close { background: transparent !important; border-top: 0 !important; min-height: 86svh; display: flex; align-items: center; color: var(--fg) !important; }
.pw-sec--close > .pw-wrap, .pw-sec--close > .wp-block-group__inner-container { width: 100%; }
.pw-sec--close h2 { font-size: clamp(44px, 6.4vw, 104px) !important; line-height: .92; letter-spacing: -.05em; max-width: 13ch; color: var(--fg); transition: color .6s; }
.pw-sec--close h2 strong { color: var(--fg) !important; }
.pw-sec--close .pw-sec__body > p, .pw-sec--close :is(.pw-sec__body, .pw-sec__body > .wp-block-group__inner-container) > p { color: var(--fg-soft) !important; transition: color .6s; max-width: 52ch; }
.pw-sec--close .pw-index { color: var(--fg-soft) !important; }
.pw-sec--close .pw-index span { color: var(--mark) !important; }
.pw-sec--close .pw-note { color: var(--fg-soft) !important; }

/* =========================================================
   HOME: The Long Exposure, scene by scene
   ========================================================= */
.pw-home { color: var(--fg); }
.pw-home h1, .pw-home h2 { font-family: Outfit, sans-serif; font-weight: 300; text-wrap: balance; margin: 0; color: var(--fg); transition: color .6s; }
.pw-home h1 strong, .pw-home h2 strong { font-weight: 500; color: var(--fg); }
.pw-home h2 mark { background: none !important; color: var(--pw-gold) !important; font-weight: 500; }
body.pw-day .pw-home h2 mark { color: var(--pw-gold-deep) !important; }
.pw-home h2 s { text-decoration: none; color: var(--fg-soft); background: linear-gradient(currentColor, currentColor) no-repeat 0 58% / 0% .055em; transition: background-size 1.1s var(--pw-ease) .25s; }
.pw-home .seen s { background-size: 100% .055em; }
.pw-home p { margin: 0; }
.le-wrap { max-width: 1320px; margin: 0 auto; padding: 0 var(--pw-gutter); width: 100%; }
.le-kicker { display: flex; align-items: center; gap: 14px; font: 500 13px/1 Outfit, sans-serif !important; letter-spacing: .08em; color: var(--mark); font-variant-numeric: tabular-nums; }
.le-kicker::before { content: ""; width: 34px; height: 1px; background: currentColor; opacity: .7; }
.le-soft { color: var(--fg-soft); transition: color .6s; }
.le-soft a { color: var(--fg); text-decoration: underline; text-decoration-color: var(--mark); text-underline-offset: 4px; }
.pw-home .wp-block-buttons { margin-top: 0 !important; }
.pw-home .wp-block-button.pw-link .wp-block-button__link { border-color: var(--mark); color: var(--fg); }

/* 9:41 pm · the hero */
.le-hero { min-height: calc(100svh - 80px); display: flex; padding: clamp(24px, 5vh, 56px) 0 96px; }
.le-hero > .wp-block-group__inner-container, .le-hero > .le-wrap { flex: 1; display: flex; flex-direction: column; }
.le-hero .le-wrap { flex: 1; display: flex; flex-direction: column; }
.le-setup { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; font: 400 clamp(20px, 2vw, 30px)/1.2 Outfit, sans-serif !important; color: var(--fg-soft); letter-spacing: -.01em; margin-bottom: 12px !important; }
.le-setup .le-kicker { font-size: 13px !important; }
.le-hero h1 { font-size: clamp(58px, 11.6vw, 184px); line-height: .86; letter-spacing: -.055em; }
.le-hero h1 span { display: block; }
.le-hero h1 .le-indent { padding-left: .9em; }
.le-hero-foot { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 28px 64px; align-items: end; margin-top: auto !important; padding-top: 26px; border-top: 1px solid var(--fg-faint); }
.le-hero-foot p { max-width: 50ch; font-size: clamp(17px, 1.35vw, 19px); line-height: 1.6; }
.le-hero-foot p strong { font-weight: 500; color: var(--fg); }
.le-hero-foot .le-note { margin-top: 14px !important; font-size: 14px !important; }
@media (max-width: 860px) { .le-hero-foot { grid-template-columns: 1fr; } .le-hero h1 .le-indent { padding-left: .45em; } }
@media (max-width: 720px) { .le-hero { padding-top: 120px; } }

/* Scenes that hold still while the moment plays out. */
.pw-scene { position: relative; }
.pw-scene .pin { position: sticky; top: 0; height: 100svh; display: flex; align-items: center; overflow: hidden; }

/* 9:43 pm · ten names, one call (yours is skipped) */
.s-names { height: 210svh; }
.le-names-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 40px clamp(40px, 6vw, 110px); align-items: center; }
.s-names h2 { font-size: clamp(48px, 7vw, 112px); line-height: .92; letter-spacing: -.045em; margin-top: 24px; }
.s-names .le-lede { margin-top: 26px !important; font-size: clamp(17px, 1.35vw, 19px); max-width: 38ch; line-height: 1.6; }
.names { list-style: none; counter-reset: n; padding: 0 !important; margin: 0 !important; }
.names li { counter-increment: n; display: flex; align-items: baseline; gap: 18px; font: 500 clamp(22px, 2.6vw, 40px)/1.2 Outfit, sans-serif; letter-spacing: -.02em; color: rgba(247,245,240,.88); transition: color .6s var(--pw-ease); }
.names li::before { content: counter(n, decimal-leading-zero); font: 500 12px Outfit, sans-serif; letter-spacing: .1em; color: rgba(247,245,240,.4); width: 22px; flex: none; }
.names li span { position: relative; }
.names li span::after { content: ""; position: absolute; left: -2px; right: -2px; top: 54%; height: 2px; background: rgba(247,245,240,.5); transform: scaleX(0); transform-origin: left; transition: transform .6s var(--pw-ease); }
.names li.out { color: rgba(247,245,240,.2); }
.names li.out span::after { transform: scaleX(1); }
.names li em { font: 500 12px Outfit, sans-serif; letter-spacing: .14em; text-transform: uppercase; font-style: normal; opacity: 0; transform: translateX(-8px); transition: opacity .6s var(--pw-ease), transform .6s var(--pw-ease); white-space: nowrap; }
.names li.you span { color: var(--pw-gold-light, #F7E1A6); }
.names li.you span::after { background: var(--pw-gold); }
.names li.you.out { color: rgba(247,230,166,.45); }
.names li.you.out span { color: rgba(247,230,166,.55); }
.names li.you.out em { opacity: 1; transform: none; color: var(--pw-gold); }
.names li.win em { color: rgba(247,245,240,.75); }
.names li.win.won span { color: #fff; }
.names li.win.won em { opacity: 1; transform: none; }
@media (max-width: 860px) { .le-names-grid { grid-template-columns: 1fr; gap: 26px; } .s-names .le-lede { display: none; } .names li { font-size: clamp(19px, 5.4vw, 24px); } }

/* 10:15 pm · four questions, drawn as a constellation */
.s-four { height: 220svh; }
.s-four .pin { align-items: flex-start; }
.four-head { position: absolute; top: 17svh; left: 0; right: 0; }
.s-four h2 { font-size: clamp(42px, 5.6vw, 88px); line-height: .95; letter-spacing: -.04em; margin-top: 22px; max-width: 9ch; }
.s-four .le-lede { margin-top: 18px !important; max-width: 30ch; }
.sky-lines { position: absolute; inset: 0; width: 100%; height: 100%; }
.sky-lines line { stroke: rgba(247,245,240,.55); stroke-width: 1; stroke-dasharray: 1; stroke-dashoffset: 1; }
.q { position: absolute; transform: translate(-6px, -10px); opacity: .22; transition: opacity .8s var(--pw-ease); max-width: 250px; }
.q.lit { opacity: 1; }
.q i { display: block; width: 13px; height: 21px; background: #F7F5F0; clip-path: polygon(50% 0,59% 41%,100% 50%,59% 59%,50% 100%,41% 59%,0 50%,41% 41%); }
.q b { display: block; margin-top: 16px; font: 500 clamp(28px, 2.8vw, 44px)/1 Outfit, sans-serif; letter-spacing: -.03em; color: #F7F5F0; }
.q span { display: block; margin-top: 10px; font: 400 clamp(16px, 1.3vw, 19px)/1.4 Outfit, sans-serif; color: rgba(247,245,240,.72); }
@media (max-width: 860px) { .four-head { top: 13svh; } .q { max-width: 170px; } }

/* 1:30 am · seen once, forgotten; seen often, chosen */
.s-trust { height: 220svh; }
.echo { position: absolute; top: 100px; left: -2vw; right: -2vw; height: 54svh; display: flex; flex-direction: column; justify-content: center; pointer-events: none; overflow: hidden; }
.echo span { display: block; white-space: nowrap; font: 600 clamp(40px, 6.4vw, 104px)/.94 Outfit, sans-serif; letter-spacing: -.05em; color: transparent; -webkit-text-stroke: 1px rgba(247,245,240,.14); transition: color .9s var(--pw-ease), -webkit-text-stroke-color .9s var(--pw-ease); }
.echo span:nth-child(2) { padding-left: 8vw; } .echo span:nth-child(3) { padding-left: 16vw; } .echo span:nth-child(4) { padding-left: 24vw; } .echo span:nth-child(5) { padding-left: 32vw; }
.echo span.on { color: rgba(247,245,240,.08); -webkit-text-stroke-color: rgba(247,245,240,.3); }
.echo span.on.last { color: rgba(227,169,60,.92); -webkit-text-stroke-color: transparent; }
.trust-row { position: absolute; left: 0; right: 0; bottom: 0; padding: 0 0 9svh; background: linear-gradient(180deg, rgba(11,20,38,0), rgba(11,20,38,.82) 30%); }
.trust-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px clamp(40px, 6vw, 96px); align-items: end; padding-top: 32px; border-top: 1px solid var(--fg-faint); }
.s-trust h2 { font-size: clamp(34px, 4.4vw, 68px); line-height: .98; letter-spacing: -.04em; margin-top: 20px; max-width: 12ch; }
.s-trust .le-lede { line-height: 1.65; }
.le-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 22px; border-top: 1px solid var(--fg-faint); }
.le-steps div { padding: 14px 14px 0 0; }
.le-steps b { display: block; font: 500 17px/1.25 Outfit, sans-serif; }
.le-steps em { display: block; font: 500 12px Outfit, sans-serif; letter-spacing: .08em; color: var(--mark); font-style: normal; margin-top: 4px; }
.le-steps small { display: block; font-size: 14px; color: var(--fg-soft); margin-top: 6px; line-height: 1.5; }
@media (max-width: 860px) { .echo { height: 34svh; top: 80px; } .trust-grid { grid-template-columns: 1fr; } .trust-row { padding-bottom: 7svh; } .s-trust .le-lede { display: none; } .le-steps { grid-template-columns: 1fr; } }

/* 6:30 am · the horizon */
.s-dawn { min-height: 110svh; display: flex; align-items: center; text-align: center; }
.s-dawn h2 { font-size: clamp(52px, 8.4vw, 136px); line-height: .9; letter-spacing: -.05em; margin-top: 26px; }
.s-dawn .le-soft { margin: 28px auto 0 !important; max-width: 40ch; font-size: clamp(18px, 1.5vw, 21px); line-height: 1.55; }
.s-dawn .le-kicker { justify-content: center; }
.le-horizon { height: 1px; margin: 44px auto 0; width: min(560px, 70vw); background: linear-gradient(90deg, transparent, var(--pw-gold), transparent); }

/* 8:01 am · the lock screen, then the action with its proof */
.s-arrive { padding: 14svh 0 18svh; }
.lock { text-align: center; }
.lock .day { font: 400 clamp(17px, 1.6vw, 22px)/1 Outfit, sans-serif; color: var(--fg-soft); letter-spacing: .02em; }
.lock .clock { font: 200 clamp(120px, 24vw, 360px)/.85 Outfit, sans-serif; letter-spacing: -.06em; margin-top: 10px; font-variant-numeric: tabular-nums; color: var(--fg); }
.notif { display: flex; align-items: center; gap: 16px; text-align: left; width: min(520px, 100%); margin: 34px auto 0; padding: 16px 18px; background: rgba(19,32,58,.95); color: #F7F5F0; border-radius: 22px; box-shadow: 0 40px 70px -30px rgba(11,20,38,.55); transform: translateY(40px) scale(.96); opacity: 0; transition: transform 1s var(--pw-ease), opacity 1s var(--pw-ease); }
.notif.in { transform: none; opacity: 1; }
.notif .icon { flex: none; width: 46px; height: 46px; border-radius: 12px; background: var(--pw-gold); display: grid; place-items: center; animation: pw-ring 1.8s ease-out infinite; }
.notif .icon svg { width: 22px; height: 22px; }
@keyframes pw-ring { 0% { box-shadow: 0 0 0 0 rgba(227,169,60,.5); } 100% { box-shadow: 0 0 0 16px rgba(227,169,60,0); } }
.notif small { display: flex; justify-content: space-between; font: 500 12px Outfit, sans-serif; letter-spacing: .1em; text-transform: uppercase; color: rgba(247,245,240,.55); }
.notif strong { display: block; font: 500 18px/1.3 Outfit, sans-serif; margin-top: 3px; }
.notif .t { display: block; font-size: 14.5px; color: rgba(247,245,240,.75); margin-top: 2px; }
.notif .txt { flex: 1; }
.arrive-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 48px clamp(48px, 7vw, 120px); align-items: end; margin-top: clamp(80px, 10vw, 140px) !important; padding-top: 40px; border-top: 1px solid var(--fg-faint); }
.s-arrive h2 { font-size: clamp(44px, 6vw, 96px); line-height: .92; letter-spacing: -.045em; margin-top: 24px; }
.s-arrive h2 .le-h-setup { display: block; font-weight: 400; font-size: clamp(20px, 2vw, 28px); line-height: 1.2; letter-spacing: -.01em; color: var(--fg-soft); margin-bottom: 14px; }
.s-arrive .le-lede { margin-top: 24px !important; max-width: 46ch; font-size: clamp(17px, 1.35vw, 19px); line-height: 1.6; }
.s-arrive .wp-block-buttons { margin-top: 32px !important; }
.s-arrive .le-meta { margin-top: 16px !important; font-size: 14px; }
.receipt { background: #fff; color: var(--pw-ink); padding: 26px 26px 24px; max-width: 360px; justify-self: end; box-shadow: 0 34px 60px -40px rgba(11,20,38,.55), 0 2px 6px -2px rgba(11,20,38,.08); transform: rotate(1.4deg); position: relative; }
.receipt::after { content: ""; position: absolute; left: 0; right: 0; bottom: -7px; height: 8px; background: radial-gradient(circle at 7px 0, transparent 5px, #fff 5.5px) 0 0 / 14px 8px repeat-x; }
.receipt .rq { font: 500 11px Outfit, sans-serif; letter-spacing: .16em; text-transform: uppercase; color: var(--pw-gold-deep); }
.receipt .rh { font: 500 21px/1.2 Outfit, sans-serif; color: var(--pw-navy); margin-top: 10px; letter-spacing: -.01em; }
.receipt .ra { font-size: 14.5px; line-height: 1.55; color: var(--pw-slate); margin-top: 8px; }
.receipt dl { margin: 18px 0; border-top: 2px solid var(--pw-navy); font-size: 14.5px; }
.receipt dl div { display: flex; justify-content: space-between; padding: 9px 0; border-bottom: 1px dashed rgba(19,32,58,.22); }
.receipt dt { color: var(--pw-slate); }
.receipt dd { margin: 0; font: 500 15px Outfit, sans-serif; color: var(--pw-navy); font-variant-numeric: tabular-nums; }
.receipt dl div.is-long { flex-direction: column; gap: 3px; }
.receipt dl div.is-long dd { font-size: 14.5px; line-height: 1.4; }
.receipt a { font: 500 15px Outfit, sans-serif; color: var(--pw-navy); text-decoration: none; border-bottom: 1px solid var(--pw-gold-deep); padding-bottom: 3px; }
@media (max-width: 860px) { .arrive-grid { grid-template-columns: 1fr; } .receipt { justify-self: start; transform: none; } }

/* =========================================================
   In the block editor: Home's scenes laid out flat, so every word is visible and editable.
   (The editor has no scrolling sky or animation; this only applies inside the editor.)
   ========================================================= */
.editor-styles-wrapper { background: #0B1426; }
.editor-styles-wrapper .pw-scene, .editor-styles-wrapper .le-hero, .editor-styles-wrapper .s-dawn, .editor-styles-wrapper .pw-hero, .editor-styles-wrapper .pw-sec--close { height: auto !important; min-height: 0 !important; }
.editor-styles-wrapper .pw-scene .pin { position: static; height: auto; display: block; overflow: visible; padding: 80px 0; }
.editor-styles-wrapper .four-head, .editor-styles-wrapper .trust-row, .editor-styles-wrapper .echo { position: static; height: auto; background: none; padding: 0; }
.editor-styles-wrapper .echo { margin: 0 0 32px; }
.editor-styles-wrapper .echo span { color: rgba(247,245,240,.25); }
.editor-styles-wrapper .sky-lines { display: none; }
.editor-styles-wrapper .q { position: static; display: inline-block; vertical-align: top; opacity: 1; transform: none; margin: 32px 40px 0 0; }
.editor-styles-wrapper .notif { opacity: 1; transform: none; }
.editor-styles-wrapper .names li.you span { color: #F7E1A6; }
.editor-styles-wrapper .le-hero-foot { margin-top: 48px !important; }
.editor-styles-wrapper .s-arrive, .editor-styles-wrapper .s-dawn { background: #F7F5F0; --fg: #13203A; --fg-soft: #4B5563; --fg-faint: rgba(19,32,58,.16); --mark: #8A5F12; }
.editor-styles-wrapper .pw-sec--close { background: #F7F5F0 !important; --fg: #13203A; --fg-soft: #4B5563; --mark: #8A5F12; }

/* =========================================================
   Screen-size fixes (checked at 1920, 1440, 1280, 1024, 820, 768, 390 and 360 wide)
   ========================================================= */
/* The echo scales with the screen's height too, so short laptops and phones keep it clear of the words. */
.echo span { font-size: min(6.4vw, 8.4svh); }
.s-names h2 { font-size: clamp(48px, 6.2vw, 96px); }
@media (max-width: 860px) {
	.echo { top: 72px; height: 30svh; }
	.echo span { font-size: min(9vw, 5.2svh); }
	.echo span:nth-child(2) { padding-left: 5vw; } .echo span:nth-child(3) { padding-left: 10vw; } .echo span:nth-child(4) { padding-left: 15vw; } .echo span:nth-child(5) { padding-left: 20vw; }
}
@media (max-height: 820px) and (min-width: 861px) {
	.echo { height: 46svh; }
	.trust-row { padding-bottom: 7svh; }
	.s-trust h2 { font-size: clamp(32px, 3.6vw, 56px); }
}

/* The plan table on small screens: row names stay put while the plans scroll, with a hint. */
@media (max-width: 760px) {
	.pw-tiers { position: relative; }
	.pw-tiers::before { content: "Swipe to compare plans →"; display: block; font: 500 12px/1 Outfit, sans-serif; letter-spacing: .1em; text-transform: uppercase; color: var(--pw-gold-deep); margin-bottom: 12px; }
	.pw-tiers th:first-child, .pw-tiers td:first-child { position: sticky; left: 0; background: var(--pw-dawn); z-index: 1; min-width: 150px; box-shadow: 6px 0 8px -8px rgba(19,32,58,.3); }
}

/* 1:30 am, structurally: the echo and the words share the screen as a column, so they can never overlap.
   The echo takes whatever height is left and keeps its last, gold line in view; extra lines fall off the top. */
.s-trust .pin { flex-direction: column; align-items: stretch; padding-top: 88px; }
.s-trust .echo { position: relative; top: auto; left: auto; right: auto; height: auto; flex: 1 1 auto; min-height: 0; justify-content: flex-end; margin: 0 -2vw; padding-bottom: 18px; overflow: hidden; }
.s-trust .trust-row { position: relative; bottom: auto; flex: none; }
@media (max-width: 860px) { .s-trust .pin { padding-top: 72px; } .s-trust .echo { height: auto; top: auto; } }

/* =========================================================
   Breathing room on phones: the desktop rhythm, scaled down so sections don't float apart.
   ========================================================= */
@media (max-width: 860px) {
	.pw-hero { padding: 112px 0 56px; }
	.pw-sec--close { min-height: 0; }
	.s-dawn { min-height: 80svh; }
	.s-arrive { padding: 72px 0 88px; }
	.arrive-grid { margin-top: 64px !important; padding-top: 32px; }
	.pw-footer__top { padding-bottom: 40px; }
}

@media (max-width: 600px) {
	.pw-sec { padding: 52px 0; }
	.pw-footer { padding-top: 52px; }
	.pw-list, .pw-cols { margin-top: 32px !important; }
	.pw-list__item { padding: 24px 0; }
	.pw-prose > h2, .pw-prose > .wp-block-group__inner-container > h2 { margin-top: 44px !important; }
	.le-hero { padding-bottom: 64px; }
}

/* A blur over a sky that redraws while scrolling costs every frame on a phone; a solid bar reads the same. */
@media (max-width: 860px) {
	.pw-scrolled #masthead .site-main-header-wrap .site-header-row-container-inner { background: rgba(11, 20, 38, .95) !important; -webkit-backdrop-filter: none; backdrop-filter: none; }
}

/* Home's held scenes: shorter holds, so nothing sits still after its moment has played. */
.s-names { height: 175svh; }
.s-four { height: 190svh; }
@media (max-width: 860px) {
	.s-names { height: 165svh; }
	.s-four { height: 180svh; }
}

/* Home has one sky from top to bottom, so no change of background marks where a scene starts: the eye measures
   the gap from the last words of one scene to the first words of the next. Each scene is pulled up under the one
   before it (scaled to the screen's height, since the held scenes centre their words in a full screen) so that gap
   reads about 150px on a laptop and 115px on a phone, like the rhythm of the inner pages. */
.pw-home section.ch { margin-bottom: 0 !important; }
.pw-home .le-hero { padding-bottom: 48px; }
.pw-home .s-names { margin-top: calc(201px - 36svh) !important; }
.pw-home .s-four { margin-top: calc(252px - 53svh) !important; }
.pw-home .s-trust { margin-top: calc(388px - 62svh) !important; }
.pw-home .s-dawn { margin-top: calc(315px - 64svh) !important; }
.pw-home .s-arrive { margin-top: calc(230px - 61svh) !important; }
@media (max-width: 860px) {
	.pw-home .le-hero { padding-bottom: 64px; }
	.pw-home .s-names { margin-top: calc(286px - 52svh) !important; }
	.pw-home .s-four { margin-top: calc(346px - 64.4svh) !important; }
	.pw-home .s-trust { margin-top: calc(297px - 46svh) !important; }
	.pw-home .s-dawn { margin-top: calc(454px - 70svh) !important; }
	.pw-home .s-arrive { margin-top: calc(332px - 62.5svh) !important; }
}
/* Where a scene now lies over the end of the one before, its empty sky lets clicks through to the buttons beneath. */
.pw-home .pw-scene, .pw-home .pw-scene .pin, .pw-home .s-dawn, .pw-home .s-arrive { pointer-events: none; }
.pw-home .pw-scene :is(a, button), .pw-home .s-dawn :is(a, button), .pw-home .s-arrive :is(a, button, .receipt, .notif) { pointer-events: auto; }
.editor-styles-wrapper .pw-home section.ch { margin: 0 !important; }

/* Every inner page's hero borrows Home's frame: the hour, the crumb and the headline hold the top; the lede, its button
   and the facts card stand on a horizon rule at the foot. The hero stays a full window onto the night, and the sky
   between reads as composed, whether the headline is two lines or five. (Not in the editor, where blocks stay in order.) */
@media (min-width: 861px) {
	body:not(.editor-styles-wrapper) .pw-hero.pw-hero--page { align-items: stretch; padding-top: clamp(24px, 5svh, 48px); padding-bottom: clamp(32px, 6svh, 88px); }
	body:not(.editor-styles-wrapper) .pw-hero--page .pw-hero__grid {
		grid-template-rows: auto auto auto minmax(clamp(36px, 6.5svh, 64px), 1fr) auto auto;
		align-items: start;
		row-gap: 0;
		min-height: 100%;
	}
	body:not(.editor-styles-wrapper) .pw-hero--page :is(.pw-hero__text, .pw-hero__text > .wp-block-group__inner-container) { display: contents; }
	body:not(.editor-styles-wrapper) .pw-hero--page .pw-hero__grid > * { grid-column: 1; }
	/* The top of the frame has nothing beside it, so the headline takes the full width, and its size answers to the
	   screen's height as well as its width: the whole hero, horizon and foot included, fits one screen. */
	body:not(.editor-styles-wrapper) .pw-hero--page .pw-crumb { grid-row: 2; grid-column: 1 / -1; }
	body:not(.editor-styles-wrapper) .pw-hero--page h1 { grid-row: 3; grid-column: 1 / -1; }
	body:not(.editor-styles-wrapper) .pw-hero--page .pw-h1-lead { font-size: clamp(42px, min(7.2vw, 10svh), 116px); max-width: 15ch; }
	body:not(.editor-styles-wrapper) .pw-hero--page .pw-h1-setup { font-size: clamp(18px, min(2vw, 2.9svh), 28px); }
	/* The horizon: one hairline across both columns, where the foot begins. */
	body:not(.editor-styles-wrapper) .pw-hero--page .pw-hero__grid::before {
		content: ""; grid-column: 1 / -1; grid-row: 4; align-self: end;
		border-top: 1px solid var(--pw-faint); margin-bottom: clamp(18px, 2.8svh, 26px);
	}
	body:not(.editor-styles-wrapper) .pw-hero--page .pw-lede { grid-row: 5; margin-top: 0 !important; }
	body:not(.editor-styles-wrapper) .pw-hero--page .wp-block-buttons { grid-row: 6; margin-top: 28px !important; }
	body:not(.editor-styles-wrapper) .pw-hero--page .pw-facts { grid-column: 2; grid-row: 5 / span 2; align-self: end; }
}

/* 1:30 am: the shade behind the words fades out below as well as above, so no hard edge crosses the sky when the
   dawn scene rises beneath it. */
.trust-row { background: linear-gradient(180deg, rgba(11,20,38,0), rgba(11,20,38,.8) 28%, rgba(11,20,38,.8) 72%, rgba(11,20,38,0)); }

/* =========================================================
   Free audit: the form is the hero. Whoever arrives from a "Get your free audit" button starts on the first screen,
   two short steps (your business, then where to send it) instead of nine fields five screens down.
   Everything else on the page stays below, as reading for those who want it. (Steps: assets/polarwyn.js)
   ========================================================= */
.pw-book {
	position: relative;
	padding: clamp(22px, 2.4vw, 30px);
	border: 1px solid var(--pw-faint);
	border-radius: 14px;
	background: rgba(11, 20, 38, .74);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .8);
	color: var(--pw-dawn);
	scroll-margin-top: 96px;
}
.pw-book .pw-book__title { font: 500 22px/1.2 Outfit, sans-serif !important; letter-spacing: -.01em; color: var(--pw-dawn); }
.pw-book .pw-book__sub { margin-top: 6px !important; font-size: 15px !important; line-height: 1.5; color: var(--pw-moon); }
.pw-book .pw-form { max-width: none; margin: 18px 0 0 !important; }
.pw-book .pw-form .kadence-blocks-form-field { width: 100% !important; flex-basis: 100% !important; }
.pw-book .pw-form .kadence-blocks-form-field > label { color: rgba(247, 245, 240, .88); font-size: 14.5px; margin-bottom: 6px; }
.pw-book .pw-form .kadence-blocks-form-field .required { color: var(--pw-gold); }
.pw-book .pw-form input.kb-field:not([type="checkbox"]), .pw-book .pw-form textarea.kb-field { min-height: 48px; padding: 12px 14px; font-size: 16px; }
.pw-book .pw-form .kb-accept-form-field label { color: var(--pw-moon); font-size: 14.5px; }
.pw-book .pw-form .kb-accept-form-field input[type="checkbox"] { accent-color: var(--pw-gold); }
.pw-book .pw-form .kb-form-error-msg.kadence-blocks-form-warning { color: #FDA29B; }
.pw-book .pw-form .kb-forms-submit.button { width: 100%; justify-content: center; margin-top: 6px; }
.pw-book .pw-note { margin-top: 14px !important; font-size: 13px !important; color: rgba(247, 245, 240, .6); }
.pw-book .pw-note a { color: rgba(247, 245, 240, .82); }
.pw-book .kadence-blocks-form-message { margin-top: 14px; }

/* The steps, added by the script: where you are, how much is left. */
.pw-steps { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 4px 12px; margin: 18px 0 16px; }
.pw-steps__n { font: 500 11.5px/1 Outfit, sans-serif; letter-spacing: .14em; text-transform: uppercase; color: var(--pw-gold); }
.pw-steps__t { font: 500 15px/1.3 Outfit, sans-serif; color: var(--pw-dawn); }
.pw-steps__bar { grid-column: 1 / -1; height: 2px; margin-top: 10px; background: var(--pw-faint); border-radius: 2px; overflow: hidden; }
.pw-steps__bar b { display: block; height: 100%; width: 50%; background: var(--pw-gold); transition: width .6s var(--pw-ease); }
.pw-book[data-step="2"] .pw-steps__bar b { width: 100%; }
.pw-book[data-step="1"] .pw-form [data-step="2"], .pw-book[data-step="2"] .pw-form [data-step="1"] { display: none !important; }
.pw-book[data-step="done"] :is(.pw-steps, .pw-book__sub, .pw-form form, .pw-note) { display: none; }
.pw-next {
	width: 100%; justify-content: center; margin-top: 6px;
	display: inline-flex; align-items: center; gap: 10px; padding: 15px 26px; border: 0; border-radius: 999px;
	background: var(--pw-gold); color: var(--pw-midnight); font: 500 16px/1.2 Outfit, sans-serif; cursor: pointer;
	box-shadow: 0 12px 28px -14px rgba(227, 169, 60, .55); transition: background-color .3s, transform .5s var(--pw-ease);
}
.pw-next:hover { background: var(--pw-gold-bright); transform: translateY(-1px); }
.pw-next::after { content: ""; width: 18px; height: 18px; background: currentColor; -webkit-mask: var(--pw-arrow) center / contain no-repeat; mask: var(--pw-arrow) center / contain no-repeat; }
.pw-recap { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 10px 12px; margin-bottom: 14px; border: 1px solid var(--pw-faint); border-radius: 8px; font-size: 14px; color: var(--pw-moon); }
.pw-recap b { font-weight: 500; color: var(--pw-dawn); }
.pw-recap button { background: none; border: 0; padding: 0; color: var(--pw-gold); font: 500 14px Outfit, sans-serif; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }

/* Laptop and up: the words on the left, the card standing on the right through the whole frame. */
@media (min-width: 861px) {
	body:not(.editor-styles-wrapper) .pw-hero--book .pw-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(380px, 460px); column-gap: clamp(40px, 5vw, 88px); }
	body:not(.editor-styles-wrapper) .pw-hero--book :is(.pw-crumb, h1) { grid-column: 1; }
	body:not(.editor-styles-wrapper) .pw-hero--book .pw-hero__grid::before { grid-column: 1; }
	body:not(.editor-styles-wrapper) .pw-hero--book .pw-proof { grid-row: 6; grid-column: 1; margin-top: 22px !important; }
	body:not(.editor-styles-wrapper) .pw-hero--book .wp-block-buttons { grid-row: 7; margin-top: 18px !important; }
	body:not(.editor-styles-wrapper) .pw-hero--book .pw-hero__grid { grid-template-rows: auto auto auto minmax(clamp(36px, 6.5svh, 64px), 1fr) auto auto auto; }
	body:not(.editor-styles-wrapper) .pw-hero--book .pw-book { grid-column: 2; grid-row: 1 / -1; align-self: start; margin-top: clamp(0px, 2svh, 24px); }
	body:not(.editor-styles-wrapper) .pw-hero--book .pw-h1-lead { font-size: clamp(42px, min(5.6vw, 9svh), 96px); }
}

/* Phones: the headline, then straight into the card; the story follows under it. */
@media (max-width: 860px) {
	.pw-hero--book { padding-top: 96px; }
	.pw-hero--book .pw-hero__grid { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
	.pw-hero--book :is(.pw-hero__text, .pw-hero__text > .wp-block-group__inner-container) { display: contents; }
	.pw-hero--book .pw-book { order: 4; margin-top: 26px; }
	.pw-hero--book .pw-lede { order: 5; margin-top: 30px !important; }
	.pw-hero--book .pw-proof { order: 6; }
	.pw-hero--book .wp-block-buttons { order: 7; }
	.pw-hero--book .pw-crumb, .pw-hero--book h1 { order: 1; }
}

/* Step two, kept short: phone and email side by side, the consent on one line with its box, no repeat of the intro. */
.pw-book[data-step="2"] .pw-book__sub { display: none; }
@media (min-width: 420px) {
	.pw-book .pw-form .kadence-blocks-form-field:has([data-label="Phone"]), .pw-book .pw-form .kadence-blocks-form-field:has([data-label="Email"]) { width: calc(50% - 6px) !important; flex-basis: calc(50% - 6px) !important; }
	.pw-book .pw-form .kb-form { column-gap: 12px; }
}
.pw-book .pw-form .kb-accept-form-field { flex-wrap: nowrap; align-items: flex-start; }
.pw-book .pw-form .kb-accept-form-field input[type="checkbox"] { flex: none; margin-top: 2px; }
.pw-book .pw-form .kb-accept-form-field label { flex: 1; width: auto; }
.pw-book .pw-form input.kb-field::placeholder { text-overflow: ellipsis; }

/* The thank-you, in the card's own light: a gold tick and plain words, not the plugin's blue box. */
.pw-book .kadence-blocks-form-message.kadence-blocks-form-success {
	position: relative; margin-top: 16px; padding: 16px 16px 16px 50px; border: 1px solid rgba(227, 169, 60, .45); border-radius: 10px;
	background: rgba(227, 169, 60, .08); color: var(--pw-dawn); font: 500 16px/1.5 Outfit, sans-serif;
}
.pw-book .kadence-blocks-form-message.kadence-blocks-form-success::before {
	content: ""; position: absolute; left: 16px; top: 18px; width: 20px; height: 20px; background: var(--pw-gold);
	-webkit-mask: var(--pw-check) center / contain no-repeat; mask: var(--pw-check) center / contain no-repeat;
}
.pw-book .kadence-blocks-form-message.kadence-blocks-form-warning { border-radius: 10px; }

/* =========================================================
   UX pass (29 Oct): booking one tap away on phones, a 404 that leads somewhere, footer links sized for thumbs,
   and a readout that stays legible over paper.
   ========================================================= */
/* Phones: a compact "Free audit" beside the menu, in the bar that stays pinned while you read. */
#mobile-header .mobile-header-button-wrap .mobile-header-button { padding: 9px 15px; font-size: 14px; box-shadow: none; white-space: nowrap; }
#mobile-header .mobile-header-button-wrap { margin-right: 6px; }
@media (max-width: 359px) { #mobile-header .mobile-header-button-wrap .mobile-header-button { padding: 8px 12px; font-size: 13px; } }

/* 404: the hero frame, with the popular pages as the facts card, each one a link. */
.pw-lost a { display: flex; justify-content: space-between; gap: 20px; padding: 15px 0; border-bottom: 1px solid var(--pw-faint); text-decoration: none; transition: padding .4s var(--pw-ease); }
.pw-lost a:last-child { border-bottom: 0; }
.pw-lost a span { font: 400 15px/1.4 Inter, sans-serif; color: var(--pw-moon); }
.pw-lost a b { font: 500 15px/1.4 Outfit, sans-serif; color: var(--pw-dawn); text-align: right; }
.pw-lost a:hover { padding-left: 6px; }
.pw-lost a:hover b { color: var(--pw-gold); }
.error404 .site-main { padding: 0 !important; }
@media (max-width: 860px) { .pw-hero--lost .pw-lost { margin-top: 36px; } }

/* Footer on phones: every link a comfortable target, not a 19px line. */
@media (max-width: 860px) {
	.pw-footer__nav li + li { margin-top: 0; }
	.pw-footer__nav a, .pw-footer__nav .pw-footer__plain { display: inline-block; padding: 10px 0; }
	.pw-footer__legal { gap: 6px 22px; flex-wrap: wrap; }
	.pw-footer__legal a, .pw-footer__cookies { display: inline-block; padding: 10px 0; }
	.pw-footer__heading { margin-bottom: 6px; }
}

/* The viewfinder over paper: dark ink instead of light, so it never vanishes into the cream. */
body.pw-hud-ink .pw-vf i { border-color: rgba(19, 32, 58, .2); }


/* Ink at dawn (assets/sky.js): each block of words takes the ink that stands out against the sky right behind it. */
/* Dawn light is warm and mid-toned, so the dark ink is deeper than the paper sections' slate and bronze. */
[data-ink="dark"] { --fg: #13203A; --fg-soft: #26324D; --fg-faint: rgba(19, 32, 58, .22); --mark: #5C3E07; color: var(--fg); }
[data-ink="light"] { --fg: #F7F5F0; --fg-soft: rgba(247, 245, 240, .9); --fg-faint: rgba(247, 245, 240, .18); --mark: #EDB955; color: var(--fg); }
[data-ink="dark"] mark, body [data-ink="dark"] mark { color: #5C3E07 !important; }
[data-ink="light"] mark, body [data-ink="light"] mark { color: var(--pw-gold) !important; }
[data-ink] .le-h-setup { color: var(--fg-soft); }
/* The four questions' list keeps each star exactly where it was placed. */
.q-list { position: absolute; inset: 0; pointer-events: none; }
/* The lock screen's small label, readable. */
.notif small { color: rgba(247, 245, 240, .78); }
/* In the brief twilight while a closing section arrives, the sky passes through mid-tones no ink can beat on its own.
   A soft halo in the opposite light lifts the words off it; on cream or night it is invisible. */
[data-ink="dark"]:is(h2, p, .lock > *) { text-shadow: 0 0 24px rgba(247, 245, 240, .55), 0 0 3px rgba(247, 245, 240, .35); }
[data-ink="light"]:is(h2, p, .lock > *) { text-shadow: 0 0 24px rgba(11, 20, 38, .55), 0 0 3px rgba(11, 20, 38, .35); }
/* Night bands hold their own dark even when the dawn sky is behind them, and their grey words read clearly. */
.pw-sec--night { background: rgba(11, 20, 38, .72) !important; }
.pw-sec--night .pw-index { color: rgba(247, 245, 240, .78); }
.pw-sec--night :is(.pw-sec__body, .pw-sec__body > .wp-block-group__inner-container) > p, .pw-sec--night .pw-col p:not(.pw-col__q), .pw-sec--night :is(.pw-list__item, .pw-list__item > .wp-block-group__inner-container) > p { color: rgba(247, 245, 240, .84); }

/* Social icons in the footer: quiet until hovered, each one a 40px target. Empty ones show only in the Customizer. */
.pw-footer .pw-social { display: flex; flex-wrap: wrap; gap: 2px; list-style: none; margin: 16px 0 0 -9px; padding: 0; }
.pw-footer .pw-social li, .pw-footer .pw-social li + li { margin: 0; }
.pw-footer .pw-social a, .pw-footer .pw-social span { display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border-radius: 50%; color: rgba(247, 245, 240, .72); transition: color .3s, background-color .3s; }
.pw-footer .pw-social svg { width: 19px; height: 19px; }
.pw-footer .pw-social a:hover, .pw-footer .pw-social a:focus-visible { color: var(--pw-midnight); background: var(--pw-gold); }
.pw-social .is-empty span { opacity: .3; }
/* After an audit request: book the walkthrough now. */
.pw-book__meet { margin-top: 16px; }
.pw-book__meet .pw-btn-link { width: 100%; justify-content: center; }
.pw-book__meet p { margin: 10px 0 0 !important; font-size: 13.5px; color: var(--pw-moon); text-align: center; }


/* Cookie choice: Deny and Accept carry equal weight, as regulators expect; neither is the "nudged" button. */
.pw-consent button, .pw-consent button[data-ok="1"] { min-width: 96px; padding: 11px 20px; border: 1px solid rgba(247, 245, 240, .55); background: transparent; color: var(--pw-dawn); }
.pw-consent button:hover, .pw-consent button[data-ok="1"]:hover { border-color: var(--pw-dawn); background: rgba(247, 245, 240, .08); }

/* =========================================================
   Find your star (assets/star.js): one screen, one question, one star.
   ========================================================= */
.pw-starpage { min-height: calc(100svh - 80px); display: flex; align-items: center; padding: clamp(40px, 6svh, 72px) 0 clamp(56px, 8svh, 96px); color: var(--pw-dawn); text-align: center; }
.pw-starpage > .wp-block-group__inner-container, .pw-starpage > .pw-wrap { width: 100%; }
.pw-starpage h1 { font: 300 clamp(48px, min(8vw, 12svh), 128px)/.9 Outfit, sans-serif; letter-spacing: -.05em; margin: 0; }
.pw-starpage h1 strong { font-weight: 500; }
.pw-starpage .pw-lede { margin: 22px auto 0 !important; max-width: 46ch; color: var(--pw-moon); }
.pw-star { max-width: 620px; margin: 36px auto 0; }
.pw-star__ask { display: flex; gap: 10px; padding: 8px; border: 1px solid rgba(247, 245, 240, .22); border-radius: 999px; background: rgba(11, 20, 38, .7); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); transition: border-color .3s; }
.pw-star__ask:focus-within { border-color: var(--pw-gold); }
.pw-star__ask input { flex: 1; min-width: 0; padding: 12px 18px; border: 0; background: transparent; color: var(--pw-dawn); font: 400 18px/1.3 Inter, sans-serif; outline: none; }
.pw-star__ask input::placeholder { color: rgba(247, 245, 240, .45); }
.pw-star__ask .pw-btn-link { flex: none; }
.pw-star__hint { min-height: 1.4em; margin: 10px 0 0 !important; font-size: 14px !important; color: #FDA29B; }
.pw-star__fine { margin: 4px 0 0 !important; font-size: 13.5px !important; color: rgba(247, 245, 240, .6); }
.pw-star__fine a { color: rgba(247, 245, 240, .85); }
.pw-star__stage { position: relative; display: grid; justify-items: center; }
.pw-star__glow { width: 320px; height: 320px; margin: -40px auto -60px; }
.pw-star__clock { margin: 0 !important; font: 500 15px/1 Outfit, sans-serif !important; letter-spacing: .14em; color: var(--pw-gold); font-variant-numeric: tabular-nums; }
.pw-star__status { min-height: 1.6em; margin: 14px 0 0 !important; color: var(--pw-moon); }
.pw-star__result { width: 100%; }
.pw-star__demo { display: inline-block; margin: 0 0 12px !important; padding: 3px 10px; border: 1px solid var(--pw-faint); border-radius: 999px; font: 500 11px/1.4 Outfit, sans-serif !important; letter-spacing: .14em; text-transform: uppercase; color: var(--pw-moon); }
.pw-star__title { font: 300 clamp(32px, 4vw, 52px)/1.05 Outfit, sans-serif !important; letter-spacing: -.035em; margin: 0 !important; outline: none; }
.pw-star__title strong { font-weight: 500; color: var(--pw-gold); }
.pw-star__line, .pw-star__field { max-width: 50ch; margin: 14px auto 0 !important; color: var(--pw-moon); }
.pw-star__field { font-size: 15px !important; }
.pw-star__phone { position: relative; width: 196px; aspect-ratio: 9 / 18.5; margin: 30px auto 0; padding: 30px 8px 10px; border: 1px solid rgba(247, 245, 240, .28); border-radius: 30px; background: #05080F; box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .9), 0 0 0 6px rgba(247, 245, 240, .04); }
.pw-star__phone img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; border-radius: 4px 4px 22px 22px; background: #fff; }
.pw-star__time { position: absolute; top: 8px; left: 0; right: 0; font: 500 11px/1 Outfit, sans-serif; letter-spacing: .08em; color: rgba(247, 245, 240, .8); font-variant-numeric: tabular-nums; }
.pw-star__caption { min-height: 1.5em; margin: 14px 0 0 !important; font: 500 15px/1.4 Outfit, sans-serif !important; color: var(--pw-dawn); }
.pw-star__acts { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 12px 22px; margin-top: 26px; }
.pw-star__quiet { padding: 8px 2px; border: 0; border-bottom: 1px solid rgba(247, 245, 240, .35); background: none; color: var(--pw-dawn); font: 500 15px/1.2 Outfit, sans-serif; cursor: pointer; }
.pw-star__quiet:hover { border-color: var(--pw-gold); }
@media (max-width: 600px) {
	.pw-star__ask { flex-direction: column; border-radius: 22px; }
	.pw-star__ask .pw-btn-link { justify-content: center; }
	.pw-star__glow { width: 260px; height: 260px; }
}
/* While the night runs and after: the question steps aside and the star takes its place on the first screen. */
.pw-star [hidden], .pw-star__stage[hidden], .pw-star__ask[hidden] { display: none !important; }
.pw-starpage:has(.pw-star.is-asking) .pw-lede, .pw-star.is-asking .pw-star__fine, .pw-star.is-asking .pw-star__hint { display: none; }
.pw-starpage:has(.pw-star.is-asking) h1 { font-size: clamp(34px, min(4.4vw, 7svh), 64px); transition: font-size .6s var(--pw-ease); }
.pw-starpage:has(.pw-star.is-asking) { align-items: flex-start; }
.pw-star.is-asking { margin-top: 8px; }

/* =========================================================
   Client Zero log (inc/logbook.php): our own night, day by day. A thin route line runs down the left; each day is a
   point on it, with its steps beneath and its small changes folded into one quiet line. Only days holding a North
   Report or a milestone are stars, in gold. Text first, no script. Folded months and folded small changes skip
   drawing until opened; content-visibility is not used, because it left parts of the log unpainted over the sky.
   ========================================================= */
.pw-log { margin-top: clamp(32px, 4vw, 56px); }
.pw-log__now { position: relative; margin: 0 0 18px !important; padding-left: 34px; font: 400 15px/1.5 Outfit, sans-serif !important; color: var(--pw-slate); }
.pw-log__now span { margin-right: 8px; font-weight: 500; color: var(--pw-navy); }
.pw-log__now::before { content: ""; position: absolute; left: 1px; top: 6px; width: 9px; height: 9px; border-radius: 50%; border: 1px dashed var(--pw-slate); }
.pw-log__group { border-top: 1px solid var(--pw-rule); }
.pw-log__group:last-of-type { border-bottom: 1px solid var(--pw-rule); }
.pw-log__month { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 14px; margin: 0 !important; padding: 26px 0 6px; font: 300 clamp(24px, 2.4vw, 32px)/1.1 Outfit, sans-serif !important; letter-spacing: -.02em; color: var(--pw-navy); }
.pw-log__month span { font: 400 14px/1 Inter, sans-serif; letter-spacing: 0; color: var(--pw-slate); }
details.pw-log__group > summary { list-style: none; cursor: pointer; }
details.pw-log__group > summary::-webkit-details-marker { display: none; }
details.pw-log__group > summary .pw-log__month::after { content: "+"; margin-left: auto; font: 300 28px/1 Outfit, sans-serif; color: var(--pw-slate); transition: transform .3s var(--pw-ease); }
details.pw-log__group[open] > summary .pw-log__month::after { transform: rotate(45deg); }
.pw-log summary:focus-visible { outline: 2px solid var(--pw-gold-deep); outline-offset: 4px; }
.pw-log__list { position: relative; list-style: none; margin: 0 !important; padding: 8px 0 24px 34px !important; }
.pw-log__list::before { content: ""; position: absolute; left: 6px; top: 0; bottom: 0; width: 1px; background: var(--pw-rule); }
.pw-log__day { position: relative; padding: 22px 0; }
.pw-log__day + .pw-log__day { border-top: 1px dashed var(--pw-rule); }
.pw-log__day::before { content: ""; position: absolute; left: -32px; top: 29px; width: 9px; height: 9px; border-radius: 50%; background: var(--pw-dawn); border: 1px solid var(--pw-navy); }
.pw-sec--paper .pw-log__day::before { background: var(--pw-paper); }
.pw-log__day.is-quiet::before { width: 5px; height: 5px; left: -30px; top: 31px; border-color: var(--pw-slate); }
.pw-log__day.is-star::before { left: -35px; top: 24px; width: 15px; height: 22px; border: 0; border-radius: 0; background: var(--pw-gold-deep); -webkit-mask: var(--pw-star) center / contain no-repeat; mask: var(--pw-star) center / contain no-repeat; }
.pw-log__when { display: flex; align-items: baseline; gap: 14px; margin: 0 0 6px !important; font: 500 13px/1.4 Outfit, sans-serif !important; letter-spacing: .06em; color: var(--pw-slate); font-variant-numeric: tabular-nums; }
.pw-log__when span { color: var(--pw-navy); font-size: 15px; letter-spacing: .02em; }
.pw-log__step { padding-top: 12px; }
.pw-log__step + .pw-log__step { margin-top: 10px; }
.pw-log__type { margin: 0 0 4px !important; font: 500 11.5px/1.4 Outfit, sans-serif !important; letter-spacing: .14em; text-transform: uppercase; color: var(--pw-slate); }
.pw-log__type.is-gold { color: var(--pw-gold-deep); }
.pw-log__step h4 { margin: 0 0 6px !important; font: 400 clamp(19px, 1.7vw, 23px)/1.3 Outfit, sans-serif !important; letter-spacing: -.01em; color: var(--pw-navy); }
.pw-log__step p:not(.pw-log__type) { max-width: 62ch; margin: 0 0 8px !important; font-size: 16.5px; line-height: 1.7; color: var(--pw-slate); }
.pw-log__proof { margin: 14px 0 6px; max-width: 560px; }
.pw-log__proof img { display: block; width: 100%; height: auto; border: 1px solid var(--pw-rule); border-radius: 6px; }
.pw-log__link a { font: 500 15px/1.4 Outfit, sans-serif; color: var(--pw-navy); text-decoration-color: var(--pw-gold-deep); text-underline-offset: 4px; }
.pw-log__figures { width: 100%; max-width: 520px; margin: 14px 0 10px; border-collapse: collapse; border-top: 2px solid var(--pw-navy); font-size: 15px; }
.pw-log__figures :is(th, td) { padding: 9px 12px 9px 0; border-bottom: 1px dashed var(--pw-rule); text-align: left; }
.pw-log__figures thead :is(th, td) { padding-top: 10px; font: 500 11.5px/1.4 Outfit, sans-serif; letter-spacing: .12em; text-transform: uppercase; color: var(--pw-slate); }
.pw-log__figures tbody th { font-weight: 400; color: var(--pw-slate); }
.pw-log__figures tbody td { font: 500 16px/1.4 Outfit, sans-serif; color: var(--pw-navy); font-variant-numeric: tabular-nums; }
.pw-log__figures tbody td:last-child { color: var(--pw-gold-deep); }
.pw-log__figures :is(th, td):not(:first-child) { text-align: right; padding-right: 0; padding-left: 12px; white-space: nowrap; }
.pw-log__more { margin-top: 14px; }
.pw-log__more > summary { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; list-style: none; font: 500 15px/1.4 Outfit, sans-serif; color: var(--pw-navy); border-bottom: 1px solid var(--pw-gold-deep); padding-bottom: 2px; }
.pw-log__more > summary::-webkit-details-marker { display: none; }
.pw-log__more > summary::after { content: "+"; font: 300 18px/1 Outfit, sans-serif; transition: transform .3s var(--pw-ease); }
.pw-log__more[open] > summary { margin-bottom: 4px; }
.pw-log__more[open] > summary::after { transform: rotate(45deg); }
.pw-log__small { margin-top: 12px; }
.pw-log__small > summary { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; list-style: none; font: 500 14px/1.4 Outfit, sans-serif; color: var(--pw-slate); }
.pw-log__small > summary::-webkit-details-marker { display: none; }
.pw-log__small > summary::after { content: "+"; font: 300 18px/1 Outfit, sans-serif; transition: transform .3s var(--pw-ease); }
.pw-log__small[open] > summary::after { transform: rotate(45deg); }
.pw-log__small ul { margin: 8px 0 0 !important; padding: 0 !important; list-style: none; }
.pw-log__small li { padding: 3px 0 3px 16px; position: relative; font-size: 14.5px; line-height: 1.5; color: var(--pw-slate); }
.pw-log__small li::before { content: ""; position: absolute; left: 2px; top: 11px; width: 6px; height: 1px; background: var(--pw-slate); }
.pw-log__day.is-quiet .pw-log__small { margin-top: 2px; }
.pw-log__anchor { position: absolute; top: 0; scroll-margin-top: 110px; }
.pw-log__empty { color: var(--pw-slate); }
.pw-log .is-draft { opacity: .62; }
.pw-log__draft { margin-left: 8px; padding: 2px 8px; border: 1px dashed var(--pw-slate); border-radius: 999px; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
@media (max-width: 860px) {
	.pw-log__list { padding-left: 28px !important; }
	.pw-log__day::before { left: -26px; }
	.pw-log__day.is-quiet::before { left: -24px; }
	.pw-log__day.is-star::before { left: -29px; }
	.pw-log__now { padding-left: 28px; }
}

/* =========================================================
   Footer links, composed per screen (29 Oct).
   Tablets and laptops (700px and up): the four groups stay one band of four columns, as on desktop, so no column
   stands half empty.
   Phones: two newspaper columns (Start here and Services, then Company and Talk to us), so a short group never sits
   beside a long one with a hole under it, and a tighter rhythm that keeps every link an easy tap (about 40px tall).
   ========================================================= */
@media (min-width: 700px) and (max-width: 1024px) {
	.pw-footer__nav { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
}
@media (max-width: 699px) {
	.pw-footer__nav { display: block; columns: 2; column-gap: 24px; padding: 32px 0; }
	.pw-footer__nav .pw-footer__col { break-inside: avoid; margin-bottom: 24px; }
	.pw-footer__nav .pw-footer__col:last-child { margin-bottom: 0; }
	.pw-footer__nav a, .pw-footer__nav .pw-footer__plain { padding: 8px 0; line-height: 1.5; }
}

/* Home hero: the headline's descenders ("y" in "they") never touch the line under it. On narrow phones the words fill
   the frame, so the space that pushes the line down shrinks to nothing; this keeps a fixed breath under the headline.
   Larger screens look the same, since their space is already larger. */
.pw-home .le-hero h1 { margin-bottom: 28px !important; }
