/*
Theme Name:  Rey Belen — Digital Revenue Systems
Theme URI:   https://reybelen.com
Description: Theme for reybelen.com. Authority platform for a Digital Revenue Systems Strategist.
Author:      Rey Belen
Author URI:  https://reybelen.com
Template:    generatepress
Version:     1.0.6
License:     GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: rey-belen
*/

/* =============================================================================
   BASE RESET
   ============================================================================= */

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

html, body {
	width:   100%;
	margin:  0;
	padding: 0;
}

/* Neutralise GeneratePress default spacing on front page */
.home .site-content,
.home .content-area,
.home .site-main,
.front-page .site-content,
.front-page .content-area,
.front-page .site-main {
	padding:   0 !important;
	margin:    0 !important;
	max-width: none !important;
	width:     100% !important;
}

/* Remove GeneratePress container on front page */
.home .inside-article,
.front-page .inside-article {
	padding:   0 !important;
	max-width: none !important;
}

/* =============================================================================
   DESIGN TOKENS
   ============================================================================= */

:root {
	--rb-navy:           #1B3A5C;
	--rb-navy-deep:      #0F2238;
	--rb-navy-mid:       #2E4A68;
	--rb-navy-muted:     #567594;
	--rb-bg-white:       #FFFFFF;
	--rb-bg-light:       #F2F2F2;
	--rb-text-primary:   #1A1A1A;
	--rb-text-secondary: #6B7C8F;
	--rb-border:         #D4DAE1;
	--rb-border-mid:     #C2CAD4;
	--rb-terracotta:     #C65D3B;
	--rb-amber:          #E8913A;
	--rb-font:           'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	--rb-max-w:          880px;
}

/* =============================================================================
   GLOBAL BASE
   ============================================================================= */

html {
	font-size:               16px;
	-webkit-font-smoothing:  antialiased;
	text-rendering:          optimizeLegibility;
}

body {
	font-family: var(--rb-font);
	background:  var(--rb-bg-white);
	color:       var(--rb-text-primary);
	line-height: 1;
}

/* =============================================================================
   CONTAINER
   ============================================================================= */

.rb-container,
.container {
	max-width: var(--rb-max-w);
	margin:    0 auto;
	padding:   0 40px;
}

/* =============================================================================
   ACCENT RULES
   ============================================================================= */

.accent-rule-amber {
	display:       block;
	width:         32px;
	height:        2px;
	background:    var(--rb-amber);
	margin-bottom: 14px;
}

.accent-rule-terracotta {
	display:       block;
	width:         32px;
	height:        2px;
	background:    var(--rb-terracotta);
	margin-bottom: 14px;
}

/* =============================================================================
   NAVIGATION
   ============================================================================= */

.rb-nav,
nav.rb-nav {
	background: var(--rb-navy);
	position:   relative;
}

.rb-nav-inner {
	max-width:       var(--rb-max-w);
	margin:          0 auto;
	padding:         0 40px;
	height:          68px;
	display:         flex;
	align-items:     center;
	justify-content: space-between;
	gap:             24px;
}

.rb-nav-brand {
	display:         flex;
	align-items:     center;
	gap:             10px;
	text-decoration: none;
	flex-shrink:     0;
}

.rb-nav-monogram {
	width:           32px;
	height:          32px;
	background:      rgba(255,255,255,0.1);
	border-radius:   4px;
	display:         flex;
	align-items:     center;
	justify-content: center;
	flex-shrink:     0;
}

.rb-nav-monogram span {
	font-weight:    700;
	font-size:      11px;
	color:          #FFFFFF;
	letter-spacing: 0.06em;
	line-height:    1;
}

.rb-nav-identity {
	display:        flex;
	flex-direction: column;
	gap:            3px;
}

.rb-nav-name {
	font-weight:    800;
	font-size:      20px;
	color:          #FFFFFF;
	letter-spacing: 0.06em;
	line-height:    1;
	text-transform: uppercase;
	white-space:    nowrap;
}

.rb-nav-subtitle {
	font-weight:   400;
	font-size:     11px;
	color:         #8AABCC;
	line-height:   1;
	white-space:   nowrap;
}

.rb-nav-links {
	display:     flex;
	align-items: center;
	gap:         28px;
	list-style:  none;
	flex-shrink: 0;
	margin:      0;
	padding:     0;
}

.rb-nav-links a {
	font-size:       12px;
	font-weight:     500;
	color:           #8AABCC;
	text-decoration: none;
	letter-spacing:  0.02em;
	white-space:     nowrap;
}

.rb-nav-links a:hover,
.rb-nav-links a.active { color: #F2F2F2; }

.rb-nav-cta {
	font-size:       12px;
	font-weight:     500;
	color:           #FFFFFF !important;
	background:      var(--rb-terracotta);
	padding:         8px 18px;
	text-decoration: none;
	display:         inline-block;
	white-space:     nowrap;
}

.rb-nav-cta:hover { opacity: 0.85; color: #FFFFFF !important; }

.rb-nav-toggle {
	display:     none;
	font-size:   20px;
	color:       #FFFFFF;
	cursor:      pointer;
	line-height: 1;
	padding:     6px;
	background:  transparent;
	border:      none;
	user-select: none;
	flex-shrink: 0;
}

.rb-nav-links.open {
	display:        flex !important;
	flex-direction: column;
	align-items:    flex-start;
	position:       absolute;
	top:            68px;
	left:           0;
	right:          0;
	background:     var(--rb-navy);
	padding:        12px 24px 20px;
	gap:            0;
	z-index:        200;
	border-top:     1px solid rgba(255,255,255,0.08);
}

.rb-nav-links.open li {
	width:         100%;
	padding:       10px 0;
	border-bottom: 1px solid rgba(255,255,255,0.06);
}

.rb-nav-links.open li:last-child { border-bottom: none; padding-top: 14px; }
.rb-nav-links.open a { font-size: 14px; }
.rb-nav-links.open .rb-nav-cta { padding: 10px 20px; }

/* =============================================================================
   SECTION LABEL
   ============================================================================= */

.rb-section-label,
.section-label {
	font-size:      10px;
	font-weight:    600;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color:          var(--rb-text-secondary);
	display:        block;
	margin-bottom:  24px;
}

/* =============================================================================
   HERO
   ============================================================================= */

.rb-hero, #hero {
	padding-top:    100px;
	padding-bottom: 96px;
	background:     var(--rb-navy-deep);
	position:       relative;
	overflow:       hidden;
}

.rb-hero-label, .hero-label {
	font-size:      11px;
	font-weight:    500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color:          var(--rb-navy-muted);
	display:        block;
	margin-bottom:  32px;
}

.rb-hero-headline, .hero-headline {
	font-size:      62px;
	font-weight:    700;
	line-height:    1.05;
	letter-spacing: -0.03em;
	color:          #F2F2F2;
	max-width:      640px;
	margin-bottom:  40px;
}

.rb-hero-observations, .hero-observations {
	margin-bottom: 32px;
	max-width:     480px;
}

.rb-hero-obs-line, .hero-obs-line {
	display:       block;
	font-size:     17px;
	font-weight:   400;
	line-height:   1.5;
	color:         #8AABCC;
	margin-bottom: 6px;
}

.rb-hero-obs-break, .hero-obs-break {
	display:     block;
	font-size:   17px;
	font-weight: 400;
	line-height: 1.65;
	color:       #C9D3DF;
	margin-top:  20px;
	padding-top: 20px;
	border-top:  1px solid rgba(255,255,255,0.08);
}

.rb-hero-anchor, .hero-anchor {
	display:      block;
	font-size:    22px;
	font-weight:  600;
	color:        #FFFFFF;
	margin-top:   32px;
	margin-bottom: 48px;
	max-width:    520px;
	padding-left: 16px;
	border-left:  2px solid var(--rb-terracotta);
	line-height:  1.3;
	letter-spacing: -0.01em;
}

/* Credibility bar */
.cred-bar {
	display:       flex;
	flex-wrap:     wrap;
	align-items:   stretch;
	margin:        0 0 48px;
	border-top:    1px solid rgba(255,255,255,0.1);
	border-bottom: 1px solid rgba(255,255,255,0.1);
	padding:       24px 0;
}

.cred-item {
	flex:         1;
	min-width:    140px;
	padding-right: 24px;
}

.cred-num {
	display:        block;
	font-size:      30px;
	font-weight:    700;
	color:          #FFFFFF;
	letter-spacing: -0.02em;
	line-height:    1;
	margin-bottom:  6px;
}

.cred-label {
	display:     block;
	font-size:   11px;
	font-weight: 400;
	color:       #8AABCC;
	line-height: 1.45;
}

.cred-divider {
	width:        1px;
	background:   rgba(255,255,255,0.1);
	margin-right: 24px;
	flex-shrink:  0;
}

/* Hero proof block */
.hero-proof {
	margin-top:  40px;
	padding:     24px 24px 24px 20px;
	border-left: 2px solid var(--rb-terracotta);
	background:  rgba(255,255,255,0.04);
	max-width:   560px;
}

.hero-proof-label {
	font-size:      10px;
	font-weight:    600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color:          var(--rb-terracotta);
	display:        block;
	margin-bottom:  10px;
}

.hero-proof-context {
	font-size:     14px;
	font-weight:   400;
	line-height:   1.7;
	color:         #8AABCC;
	margin-bottom: 12px;
}

.hero-proof-result {
	font-size:   15px;
	font-weight: 600;
	color:       #F2F2F2;
	line-height: 1.5;
}

.rb-hero-ctas, .hero-ctas {
	display:       flex;
	align-items:   center;
	gap:           28px;
	margin-bottom: 56px;
}

.rb-hero-sig, .hero-sig {
	display:     flex;
	align-items: baseline;
	gap:         12px;
	padding-top: 24px;
	border-top:  1px solid rgba(255,255,255,0.08);
}

.rb-hero-sig-dash, .hero-sig-dash {
	font-size:   13px;
	font-weight: 300;
	color:       var(--rb-navy-muted);
}

.rb-hero-sig-name, .hero-sig-name {
	font-size:      14px;
	font-weight:    600;
	color:          rgba(198,93,59,0.9);
	letter-spacing: 0.04em;
}

.rb-hero-sig-title, .hero-sig-title {
	font-size:      12px;
	font-weight:    400;
	color:          var(--rb-navy-muted);
	letter-spacing: 0.01em;
}

/* =============================================================================
   BUTTONS
   ============================================================================= */

.btn-primary, .rb-btn-primary {
	background:      #FFFFFF;
	color:           var(--rb-navy-deep);
	font-size:       13px;
	font-weight:     600;
	padding:         14px 28px;
	border:          none;
	cursor:          pointer;
	text-decoration: none;
	display:         inline-block;
	letter-spacing:  0.02em;
}

.btn-primary:hover, .rb-btn-primary:hover { opacity: 0.88; }

.btn-text, .rb-btn-text {
	font-size:        14px;
	font-weight:      500;
	color:            #C9D3DF;
	background:       transparent;
	border:           none;
	cursor:           pointer;
	text-decoration:  underline;
	text-decoration-color: rgba(138,171,204,0.5);
	text-underline-offset: 3px;
	display:          inline-block;
	letter-spacing:   0.01em;
}

.btn-text:hover, .rb-btn-text:hover { color: #FFFFFF; }

.btn-white, .rb-btn-white {
	background:      #FFFFFF;
	color:           var(--rb-navy);
	font-size:       13px;
	font-weight:     600;
	padding:         14px 28px;
	border:          none;
	cursor:          pointer;
	text-decoration: none;
	display:         inline-block;
	letter-spacing:  0.02em;
}

.btn-white:hover, .rb-btn-white:hover { opacity: 0.88; }

/* =============================================================================
   PROBLEM SECTION
   ============================================================================= */

.rb-problem, #problem {
	padding-top:    80px;
	padding-bottom: 80px;
	background:     var(--rb-bg-light);
}

.rb-problem-headline, .problem-headline {
	font-size:      26px;
	font-weight:    700;
	line-height:    1.3;
	letter-spacing: -0.015em;
	color:          var(--rb-text-primary);
	max-width:      560px;
	margin-bottom:  32px;
}

.rb-text-block, .text-block {
	font-size:     15px;
	font-weight:   400;
	line-height:   1.75;
	color:         var(--rb-text-secondary);
	max-width:     560px;
	margin-bottom: 16px;
}

.rb-em-block, .em-block {
	font-size:     15px;
	font-weight:   600;
	line-height:   1.65;
	color:         var(--rb-text-primary);
	max-width:     480px;
	margin-top:    36px;
	padding-top:   28px;
	border-top:    1px solid var(--rb-border-mid);
}

.rb-em-block span, .em-block span {
	display:       block;
	margin-bottom: 4px;
}

/* =============================================================================
   AUTHOR BREAK
   ============================================================================= */

.rb-author-break, #author-break {
	padding-top:    72px;
	padding-bottom: 72px;
	background:     var(--rb-bg-white);
	border-top:     1px solid var(--rb-border);
	border-bottom:  1px solid var(--rb-border);
}

.author-break-inner { max-width: 480px; }

.ab-line1 {
	display:        block;
	font-size:      18px;
	font-weight:    400;
	line-height:    1.5;
	color:          var(--rb-text-secondary);
	margin-bottom:  4px;
}

.ab-line2 {
	display:        block;
	font-size:      18px;
	font-weight:    400;
	line-height:    1.5;
	color:          var(--rb-text-secondary);
	margin-bottom:  4px;
}

.ab-line3 {
	display:        block;
	font-size:      18px;
	font-weight:    500;
	line-height:    1.5;
	color:          var(--rb-text-primary);
	margin-bottom:  28px;
}

.ab-line3 strong { font-weight: 700; }

.ab-sig {
	display:     flex;
	align-items: baseline;
	gap:         8px;
}

.ab-sig-dash { font-size: 12px; font-weight: 300; color: var(--rb-border-mid); }
.ab-sig-name { font-size: 12px; font-weight: 600; color: var(--rb-text-secondary); letter-spacing: 0.06em; text-transform: uppercase; }

/* =============================================================================
   WHAT I DO
   ============================================================================= */

.rb-what-i-do, #what-i-do {
	padding-top:    96px;
	padding-bottom: 96px;
	background:     var(--rb-bg-white);
}

.rb-section-headline, .section-headline {
	font-size:      22px;
	font-weight:    700;
	line-height:    1.4;
	letter-spacing: -0.01em;
	color:          var(--rb-text-primary);
	max-width:      540px;
	margin-bottom:  20px;
}

.rb-section-intro, .section-intro {
	font-size:     15px;
	font-weight:   400;
	line-height:   1.75;
	color:         var(--rb-text-secondary);
	max-width:     540px;
	margin-bottom: 44px;
}

.pillars { display: flex; flex-direction: column; }

.pillar {
	display:               grid;
	grid-template-columns: 100px 1fr;
	gap:                   0 32px;
	border-top:            1px solid var(--rb-border);
}

.pillar:nth-child(1) { padding: 32px 0 28px; }
.pillar:nth-child(2) { padding: 24px 0; }
.pillar:nth-child(3) { padding: 24px 0 32px; border-bottom: 1px solid var(--rb-border); }

.pillar-title {
	font-size:      11px;
	font-weight:    700;
	color:          var(--rb-navy);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding-top:    3px;
	line-height:    1;
}

.pillar-body {
	font-size:   14px;
	font-weight: 400;
	line-height: 1.75;
	color:       var(--rb-text-secondary);
}

.section-byline {
	margin-top:  36px;
	padding-top: 20px;
	border-top:  1px solid var(--rb-border);
	display:     flex;
	align-items: baseline;
	gap:         8px;
}

.section-byline-dash  { font-size: 11px; font-weight: 300; color: var(--rb-border-mid); }
.section-byline-name  { font-size: 11px; font-weight: 600; color: var(--rb-text-secondary); letter-spacing: 0.06em; text-transform: uppercase; }
.section-byline-sub   { font-size: 11px; font-weight: 400; color: var(--rb-border-mid); }

/* =============================================================================
   PULSE METHOD
   ============================================================================= */

#pulse {
	padding-top:    96px;
	padding-bottom: 96px;
	background:     var(--rb-navy);
}

.pulse-label {
	font-size:      10px;
	font-weight:    600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color:          var(--rb-amber);
	display:        block;
	margin-bottom:  12px;
}

.pulse-title {
	font-size:      28px;
	font-weight:    700;
	line-height:    1.25;
	letter-spacing: -0.015em;
	color:          #F2F2F2;
	margin-bottom:  12px;
	max-width:      520px;
}

.pulse-sub {
	font-size:     15px;
	font-weight:   400;
	line-height:   1.7;
	color:         #8AABCC;
	max-width:     520px;
	margin-bottom: 48px;
}

.pulse-stages {
	display:               grid;
	grid-template-columns: repeat(5, 1fr);
	gap:                   0;
	border-top:            1px solid rgba(255,255,255,0.1);
}

.pulse-stage {
	padding-top:    28px;
	padding-right:  20px;
	padding-bottom: 28px;
	border-right:   1px solid rgba(255,255,255,0.08);
}

.pulse-stage:last-child { border-right: none; padding-right: 0; }

.pulse-stage-num {
	font-size:      10px;
	font-weight:    700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color:          var(--rb-amber);
	display:        block;
	margin-bottom:  10px;
}

.pulse-stage-name {
	font-size:     15px;
	font-weight:   600;
	color:         #F2F2F2;
	display:       block;
	margin-bottom: 8px;
	line-height:   1.2;
}

.pulse-stage-desc {
	font-size:   12px;
	font-weight: 400;
	line-height: 1.65;
	color:       #6B8FAD;
}

/* =============================================================================
   QUOTE
   ============================================================================= */

.rb-quote, #quote {
	padding-top:    96px;
	padding-bottom: 96px;
	background:     var(--rb-navy-deep);
}

.rb-quote-inner, .quote-inner {
	max-width:   680px;
	margin:      0 auto;
	padding:     0 40px;
	text-align:  center;
}

.quote-accent-bar {
	display:       block;
	width:         40px;
	height:        2px;
	background:    var(--rb-terracotta);
	margin:        0 auto 32px;
}

.rb-quote-frame, .quote-frame {
	border-top:    1px solid rgba(255,255,255,0.18);
	border-bottom: 1px solid rgba(255,255,255,0.18);
	padding:       52px 32px;
}

.rb-quote-text, .quote-text {
	font-size:      30px;
	font-weight:    500;
	line-height:    1.4;
	color:          #F2F2F2;
	margin-bottom:  0;
	letter-spacing: -0.01em;
}

.rb-quote-text em, .quote-text em {
	font-style: normal;
	color:      rgba(198,93,59,0.85);
}

.rb-quote-attr, .quote-attr {
	font-size:      14px;
	font-weight:    500;
	color:          rgba(242,242,242,0.7);
	letter-spacing: 0.04em;
	margin-top:     28px;
	display:        inline-block;
}

.rb-quote-attr::before, .quote-attr::before {
	content:     "— ";
	font-weight: 300;
}

/* =============================================================================
   FROM THE WORK
   ============================================================================= */

.rb-from-the-work, #from-the-work {
	padding-top:    96px;
	padding-bottom: 96px;
	background:     var(--rb-bg-white);
}

.ftw-context {
	font-size:     13px;
	font-weight:   400;
	font-style:    italic;
	color:         var(--rb-text-secondary);
	margin-bottom: 28px;
	max-width:     380px;
}

.rb-ftw-grid, .ftw-grid {
	display:               grid;
	grid-template-columns: 1fr 340px;
	gap:                   64px;
	align-items:           start;
}

.ftw-headline {
	font-size:      20px;
	font-weight:    700;
	line-height:    1.4;
	letter-spacing: -0.01em;
	color:          var(--rb-text-primary);
	margin-bottom:  24px;
	max-width:      360px;
}

.ftw-body {
	font-size:     15px;
	font-weight:   400;
	line-height:   1.75;
	color:         var(--rb-text-secondary);
	margin-bottom: 14px;
	max-width:     360px;
}

.ftw-em {
	font-size:   15px;
	font-weight: 600;
	color:       var(--rb-terracotta);
	line-height: 1.6;
	margin-top:  20px;
	max-width:   360px;
}

.rb-ftw-image, .ftw-image {
	width:        100%;
	aspect-ratio: 3/4;
	background:   var(--rb-bg-light);
	position:     relative;
	overflow:     hidden;
	border:       1px solid var(--rb-border);
}

.ftw-image img {
	width:            100%;
	height:           100%;
	object-fit:       cover;
	object-position:  center top;
	filter:           saturate(0.75);
	display:          block;
}

.ftw-image-placeholder {
	width:           100%;
	height:          100%;
	display:         flex;
	flex-direction:  column;
	align-items:     center;
	justify-content: center;
	gap:             8px;
}

.ftw-image-placeholder-label {
	font-size:      11px;
	font-weight:    600;
	color:          var(--rb-border-mid);
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.ftw-image-placeholder-sub {
	font-size:   11px;
	font-weight: 400;
	color:       var(--rb-border);
}

/* =============================================================================
   WHO THIS IS FOR
   ============================================================================= */

.rb-who-for, #who-for {
	padding-top:    80px;
	padding-bottom: 80px;
	background:     var(--rb-bg-light);
}

.rb-who-tension, .who-tension {
	font-size:     15px;
	font-weight:   500;
	line-height:   1.65;
	color:         var(--rb-text-primary);
	max-width:     460px;
	margin-bottom: 28px;
}

.who-tension span { display: block; }

.rb-who-headline, .who-headline {
	font-size:      22px;
	font-weight:    700;
	line-height:    1.35;
	letter-spacing: -0.01em;
	color:          var(--rb-text-primary);
	max-width:      440px;
	margin-bottom:  44px;
}

.rb-fit-cols, .fit-cols {
	display:               grid;
	grid-template-columns: 1fr 1fr;
	gap:                   40px;
}

.fit-group-label {
	font-size:      10px;
	font-weight:    700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color:          var(--rb-text-secondary);
	display:        block;
	margin-bottom:  14px;
	padding-bottom: 12px;
	border-bottom:  1px solid var(--rb-border-mid);
}

.rb-fit-list, .fit-list {
	list-style:     none;
	display:        flex;
	flex-direction: column;
	margin:         0;
	padding:        0;
}

.rb-fit-list li, .fit-list li {
	font-size:     13px;
	font-weight:   400;
	line-height:   1.65;
	color:         var(--rb-text-secondary);
	padding:       10px 0;
	border-bottom: 1px solid var(--rb-border);
	display:       flex;
	gap:           10px;
	align-items:   flex-start;
}

.fit-list li::before, .rb-fit-list li::before {
	content:     "—";
	color:       var(--rb-border-mid);
	flex-shrink: 0;
	font-weight: 300;
	line-height: 1.65;
}

.fit-list.positive li, .rb-fit-list.positive li { color: var(--rb-text-primary); }

/* =============================================================================
   PROCESS
   ============================================================================= */

.rb-process, #process {
	padding-top:    96px;
	padding-bottom: 96px;
	background:     var(--rb-bg-white);
}

.rb-process-context, .process-context {
	font-size:     15px;
	font-weight:   400;
	line-height:   1.75;
	color:         var(--rb-text-secondary);
	max-width:     480px;
	margin-bottom: 28px;
}

.process-context span { display: block; margin-bottom: 4px; }

.rb-process-intro, .process-intro {
	font-size:      22px;
	font-weight:    700;
	line-height:    1.35;
	letter-spacing: -0.01em;
	color:          var(--rb-text-primary);
	max-width:      400px;
	margin-bottom:  48px;
}

.rb-steps, .steps { display: flex; flex-direction: column; }

.rb-step, .step {
	display:               grid;
	grid-template-columns: 100px 1fr;
	gap:                   0 32px;
	padding:               32px 0;
	border-top:            1px solid var(--rb-border);
}

.rb-step:last-child, .step:last-child { border-bottom: 1px solid var(--rb-border); }

.rb-step-num, .step-num {
	font-size:      10px;
	font-weight:    700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color:          var(--rb-amber);
	padding-top:    4px;
	line-height:    1;
}

.rb-step-title, .step-title {
	font-size:     15px;
	font-weight:   600;
	color:         var(--rb-text-primary);
	margin-bottom: 8px;
	line-height:   1.3;
}

.rb-step-body, .step-body {
	font-size:   14px;
	font-weight: 400;
	line-height: 1.75;
	color:       var(--rb-text-secondary);
	max-width:   440px;
}

/* =============================================================================
   CTA SECTION
   ============================================================================= */

.rb-cta, #cta {
	padding-top:    104px;
	padding-bottom: 104px;
	background:     var(--rb-navy);
}

.rb-cta-label, .cta-label {
	font-size:      10px;
	font-weight:    600;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color:          var(--rb-navy-muted);
	display:        block;
	margin-bottom:  28px;
}

.rb-cta-headline, .cta-headline {
	font-size:      28px;
	font-weight:    700;
	line-height:    1.3;
	letter-spacing: -0.015em;
	color:          #F2F2F2;
	max-width:      500px;
	margin-bottom:  20px;
}

.rb-cta-body, .cta-body {
	font-size:     14px;
	font-weight:   400;
	line-height:   1.75;
	color:         #8AABCC;
	max-width:     440px;
	margin-bottom: 16px;
}

.rb-cta-micro, .cta-micro {
	font-size:      12px;
	font-weight:    400;
	color:          var(--rb-navy-muted);
	margin-top:     12px;
	display:        block;
	letter-spacing: 0.01em;
}

/* =============================================================================
   FOOTER
   ============================================================================= */

.rb-footer, footer.rb-footer {
	background:  var(--rb-navy-deep);
	padding:     52px 0 40px;
	border-top:  1px solid rgba(255,255,255,0.06);
}

.rb-footer-inner, .footer-inner {
	max-width:             var(--rb-max-w);
	margin:                0 auto;
	padding:               0 40px;
	display:               grid;
	grid-template-columns: 1fr 1fr;
	gap:                   48px;
	align-items:           start;
}

.rb-footer-brand-row, .footer-brand-row {
	display:       flex;
	align-items:   center;
	gap:           10px;
	margin-bottom: 12px;
}

.rb-footer-monogram, .footer-monogram {
	width:           26px;
	height:          26px;
	background:      rgba(255,255,255,0.08);
	border-radius:   3px;
	display:         flex;
	align-items:     center;
	justify-content: center;
	flex-shrink:     0;
}

.rb-footer-monogram span, .footer-monogram span {
	font-weight:    700;
	font-size:      10px;
	color:          #8AABCC;
	letter-spacing: 0.06em;
}

.rb-footer-name, .footer-name {
	font-size:      15px;
	font-weight:    800;
	color:          #E8EEF4;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.rb-footer-title, .footer-title {
	font-size:     12px;
	font-weight:   400;
	color:         #6B8FAD;
	display:       block;
	margin-bottom: 20px;
}

.rb-footer-tagline, .footer-tagline {
	font-size:   13px;
	font-weight: 500;
	color:       #8AABCC;
	line-height: 1.65;
	padding-top: 20px;
	border-top:  1px solid rgba(255,255,255,0.08);
}

.rb-footer-tagline span, .footer-tagline span { display: block; }

.rb-footer-right, .footer-right {
	display:        flex;
	flex-direction: column;
	align-items:    flex-end;
	padding-top:    4px;
}

.rb-footer-nav, .footer-nav {
	list-style:     none;
	display:        flex;
	flex-direction: column;
	align-items:    flex-end;
	gap:            10px;
	margin-bottom:  24px;
	padding:        0;
}

.rb-footer-nav a, .footer-nav a {
	font-size:       12px;
	font-weight:     400;
	color:           #4A6880;
	text-decoration: none;
}

.rb-footer-nav a:hover, .footer-nav a:hover { color: #8AABCC; }

.rb-footer-copy, .footer-copy {
	font-size:   11px;
	font-weight: 400;
	color:       #4A6880;
}

/* =============================================================================
   PAGE TEMPLATE (About, Work, Insights, Contact)
   ============================================================================= */

.page-hero {
	background:     var(--rb-navy-deep);
	padding:        72px 0 64px;
	position:       relative;
}

.page-hero::before {
	content:    '';
	position:   absolute;
	left:       calc((100% - var(--rb-max-w)) / 2 - 12px);
	top:        0;
	bottom:     0;
	width:      1px;
	background: var(--rb-navy-mid);
}

.page-hero .page-body {
	max-width: var(--rb-max-w);
	margin:    0 auto;
	padding:   0 40px;
}

.page-hero-label {
	font-size:      10px;
	font-weight:    600;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color:          var(--rb-navy-muted);
	display:        block;
	margin-bottom:  20px;
}

.page-hero-title {
	font-size:      44px;
	font-weight:    700;
	line-height:    1.1;
	letter-spacing: -0.025em;
	color:          #F2F2F2;
	margin-bottom:  20px;
	max-width:      560px;
}

.page-hero-sub {
	font-size:   17px;
	font-weight: 400;
	line-height: 1.7;
	color:       #8AABCC;
	max-width:   480px;
}

.page-body {
	max-width: var(--rb-max-w);
	margin:    0 auto;
	padding:   0 40px;
}

.content-section {
	padding:       64px 0;
	border-bottom: 1px solid var(--rb-border);
}

.content-section:last-of-type {
	border-bottom:  none;
	padding-bottom: 96px;
}

.content-h2 {
	font-size:      22px;
	font-weight:    700;
	line-height:    1.35;
	letter-spacing: -0.01em;
	color:          var(--rb-text-primary);
	max-width:      560px;
	margin-bottom:  28px;
}

.content-p {
	font-size:     15px;
	font-weight:   400;
	line-height:   1.82;
	color:         var(--rb-text-secondary);
	max-width:     580px;
	margin-bottom: 20px;
}

.stacked-lines { margin: 16px 0 20px; max-width: 480px; }

.stacked-line {
	display:     block;
	font-size:   15px;
	font-weight: 400;
	line-height: 1.6;
	color:       var(--rb-text-secondary);
	padding:     4px 0;
}

.pull-quote {
	margin:      36px 0;
	padding:     24px 24px 24px 20px;
	border-left: 2px solid var(--rb-terracotta);
	background:  var(--rb-bg-light);
	max-width:   560px;
}

.pull-quote p {
	font-size:   16px;
	font-weight: 500;
	line-height: 1.7;
	color:       var(--rb-text-primary);
	margin:      0;
}

.case-block {
	margin:     36px 0;
	padding:    32px;
	background: var(--rb-navy-deep);
	max-width:  600px;
}

.case-label {
	font-size:      10px;
	font-weight:    600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color:          var(--rb-terracotta);
	display:        block;
	margin-bottom:  16px;
}

.case-title {
	font-size:      18px;
	font-weight:    700;
	color:          #F2F2F2;
	line-height:    1.35;
	margin-bottom:  16px;
	letter-spacing: -0.01em;
}

.case-body {
	font-size:     14px;
	font-weight:   400;
	line-height:   1.75;
	color:         #8AABCC;
	margin-bottom: 20px;
}

.case-stats {
	display:     flex;
	gap:         32px;
	padding-top: 20px;
	border-top:  1px solid rgba(255,255,255,0.08);
	flex-wrap:   wrap;
}

.case-stat-num {
	display:        block;
	font-size:      26px;
	font-weight:    700;
	color:          #FFFFFF;
	letter-spacing: -0.02em;
	line-height:    1;
	margin-bottom:  4px;
}

.case-stat-label {
	display:     block;
	font-size:   11px;
	font-weight: 400;
	color:       #6B8FAD;
	line-height: 1.4;
}

.page-sig {
	margin-top:  48px;
	padding-top: 32px;
	border-top:  1px solid var(--rb-border);
	display:     flex;
	align-items: baseline;
	gap:         10px;
}

.page-sig-dash  { font-size: 14px; font-weight: 300; color: var(--rb-border-mid); }
.page-sig-name  { font-size: 15px; font-weight: 700; color: var(--rb-text-primary); letter-spacing: 0.02em; }
.page-sig-title { font-size: 13px; font-weight: 400; color: var(--rb-text-secondary); }

.page-cta-strip {
	background: var(--rb-navy);
	padding:    64px 0;
}

.page-cta-inner {
	max-width: var(--rb-max-w);
	margin:    0 auto;
	padding:   0 40px;
}

.page-cta-headline {
	font-size:      24px;
	font-weight:    700;
	line-height:    1.3;
	letter-spacing: -0.01em;
	color:          #F2F2F2;
	max-width:      480px;
	margin-bottom:  16px;
}

.page-cta-sub {
	font-size:     14px;
	font-weight:   400;
	line-height:   1.7;
	color:         #8AABCC;
	max-width:     400px;
	margin-bottom: 28px;
}

/* =============================================================================
   GUTENBERG BLOCKS (inner pages)
   ============================================================================= */

.wp-block-quote {
	border-left:  2px solid var(--rb-terracotta);
	padding-left: 16px;
	margin:       32px 0;
}

.wp-block-quote p {
	font-size:   17px;
	font-style:  normal;
	font-weight: 500;
	color:       var(--rb-text-primary);
	line-height: 1.5;
}

.wp-block-separator {
	border:     none;
	border-top: 1px solid var(--rb-border);
	margin:     48px auto;
	max-width:  var(--rb-max-w);
}

/* =============================================================================
   RESPONSIVE
   ============================================================================= */

@media (max-width: 640px) {

	.rb-nav-inner    { padding: 0 24px; height: 64px; }
	.rb-nav-links    { display: none; }
	.rb-nav-toggle   { display: block; }
	.rb-nav-subtitle { display: none; }
	.rb-nav-name     { font-size: 16px; }

	.rb-container, .container { padding: 0 24px; }

	.rb-hero, #hero                     { padding-top: 68px;  padding-bottom: 68px; }
	.rb-problem, #problem               { padding-top: 60px;  padding-bottom: 60px; }
	.rb-author-break, #author-break     { padding-top: 56px;  padding-bottom: 56px; }
	.rb-what-i-do, #what-i-do           { padding-top: 68px;  padding-bottom: 68px; }
	.rb-quote, #quote                   { padding-top: 64px;  padding-bottom: 64px; }
	.rb-from-the-work, #from-the-work   { padding-top: 68px;  padding-bottom: 68px; }
	.rb-who-for, #who-for               { padding-top: 60px;  padding-bottom: 60px; }
	.rb-process, #process               { padding-top: 68px;  padding-bottom: 68px; }
	.rb-cta, #cta                       { padding-top: 72px;  padding-bottom: 72px; }
	#pulse                              { padding-top: 64px;  padding-bottom: 64px; }

	.rb-hero-headline, .hero-headline   { font-size: 34px; }
	.rb-hero-obs-line, .hero-obs-line,
	.rb-hero-obs-break, .hero-obs-break { font-size: 15px; }
	.rb-hero-anchor, .hero-anchor       { font-size: 18px; }
	.rb-hero-ctas, .hero-ctas           { flex-direction: column; align-items: flex-start; gap: 16px; margin-bottom: 48px; }
	.rb-hero-sig, .hero-sig             { flex-wrap: wrap; gap: 6px; }

	.cred-bar   { padding: 20px 0; }
	.cred-item  { min-width: 40%; flex: none; }
	.cred-divider { display: none; }
	.cred-num   { font-size: 24px; }

	.rb-problem-headline, .problem-headline { font-size: 21px; }
	.ab-line1, .ab-line2, .ab-line3         { font-size: 16px; }
	.section-headline, .who-headline,
	.process-intro                          { font-size: 19px; }
	.em-block                               { max-width: none; }

	.quote-text                             { font-size: 20px; }
	.quote-inner                            { padding: 0 24px; }
	.quote-frame                            { padding: 36px 16px; }

	.rb-ftw-grid, .ftw-grid                 { grid-template-columns: 1fr; gap: 36px; }
	.rb-ftw-image, .ftw-image               { aspect-ratio: 4/3; }
	.ftw-headline, .ftw-body,
	.ftw-em, .ftw-context                   { max-width: none; }

	.rb-pillar, .pillar,
	.rb-step, .step                         { grid-template-columns: 1fr; gap: 8px 0; }
	.pillar:nth-child(1), .pillar:nth-child(2), .pillar:nth-child(3) { padding: 22px 0; }
	.step                                   { padding: 24px 0; }

	.rb-fit-cols, .fit-cols                 { grid-template-columns: 1fr; gap: 36px; }
	.cta-headline                           { font-size: 22px; }

	.rb-footer-inner, .footer-inner         { grid-template-columns: 1fr; gap: 36px; }
	.rb-footer-right, .footer-right         { align-items: flex-start; }
	.rb-footer-nav, .footer-nav             { align-items: flex-start; }

	.page-hero::before                      { display: none; }
	.page-hero                              { padding: 52px 0 44px; }
	.page-hero .page-body, .page-body       { padding: 0 24px; }
	.page-hero-title                        { font-size: 28px; }
	.content-section                        { padding: 48px 0; }
	.content-h2                             { font-size: 19px; max-width: none; }
	.content-p                              { max-width: none; }
	.pull-quote, .case-block                { max-width: none; }
	.case-block                             { padding: 24px; }
	.case-stats                             { gap: 20px; }
	.page-cta-inner                         { padding: 0 24px; }
	.page-cta-headline                      { font-size: 20px; max-width: none; }

	.pulse-stages { grid-template-columns: 1fr 1fr; }
	.pulse-stage  { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.08); padding: 20px 0; }
	.pulse-stage:last-child { border-bottom: none; }
}


/* GeneratePress — remove any wrapper padding on inner pages */
.rb-page-wrap,
.rb-page-wrap .wp-block-post-content,
.rb-page-wrap .entry-content,
.rb-page-wrap .inside-article {
    padding:   0 !important;
    margin:    0 !important;
    max-width: none !important;
}

/* Remove GeneratePress site header gap on inner pages */
.site-header,
.site-header-wrap,
#site-header,
.generate-back-to-top,
.wp-block-template-part {
    display: none !important;
}

/* Remove all GeneratePress structural gaps on inner pages */
.site-header,
.site-header-wrap,
#site-header,
.generate-back-to-top,
.wp-block-template-part,
.site-main,
.content-area,
#content,
.inside-page-header,
.page-header,
.generate-page-header,
.site-content {
    padding-top:    0 !important;
    margin-top:     0 !important;
}

.site-header,
.site-header-wrap,
#site-header,
.generate-back-to-top,
.wp-block-template-part,
.inside-page-header,
.page-header,
.generate-page-header {
    display: none !important;
}

body.page {
    padding-top: 0 !important;
    margin-top:  0 !important;
}

/* =============================================================================
   INSIGHTS — ARTICLE PAGES
   Add everything below to the bottom of style.css
   in wp-content/themes/generatepress-child/style.css
   ============================================================================= */

/* ─── ARTICLE HERO ─── */
.article-hero {
  background:  var(--rb-navy-deep);
  padding:     72px 0 64px;
  position:    relative;
}
.article-hero::before {
  content:    '';
  position:   absolute;
  left:       calc((100% - var(--rb-max-w)) / 2 - 12px);
  top:        0;
  bottom:     0;
  width:      1px;
  background: var(--rb-navy-mid);
}
.ah-inner {
  max-width: var(--rb-max-w);
  margin:    0 auto;
  padding:   0 40px;
}
.ah-back {
  font-size:       12px;
  font-weight:     500;
  color:           var(--rb-navy-muted);
  text-decoration: none;
  letter-spacing:  0.02em;
  display:         inline-flex;
  align-items:     center;
  gap:             6px;
  margin-bottom:   28px;
}
.ah-back:hover { color: #8AABCC; }
.ah-series {
  font-size:      10px;
  font-weight:    600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color:          var(--rb-navy-muted);
  display:        block;
  margin-bottom:  12px;
}
.ah-num {
  font-size:      10px;
  font-weight:    700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color:          var(--rb-amber);
  display:        block;
  margin-bottom:  20px;
}
.ah-title {
  font-size:      40px;
  font-weight:    700;
  line-height:    1.1;
  letter-spacing: -0.02em;
  color:          #F2F2F2;
  max-width:      600px;
  margin-bottom:  24px;
}
.ah-keyphrase {
  font-size:      11px;
  font-weight:    600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color:          var(--rb-terracotta);
  display:        block;
  margin-bottom:  20px;
}
.ah-meta {
  display:     flex;
  align-items: center;
  gap:         16px;
  padding-top: 24px;
  border-top:  1px solid rgba(255,255,255,0.08);
}
.ah-author {
  font-size:      13px;
  font-weight:    600;
  color:          rgba(198,93,59,0.9);
  letter-spacing: 0.04em;
}
.ah-dot  { font-size: 13px; color: var(--rb-navy-muted); }
.ah-date { font-size: 13px; font-weight: 400; color: var(--rb-navy-muted); }

/* ─── ARTICLE BODY WRAPPER ─── */
.article-wrap {
  max-width: var(--rb-max-w);
  margin:    0 auto;
  padding:   0 40px;
}
.article-body {
  max-width: 680px;
  padding:   64px 0 80px;
}

/* ─── ARTICLE TYPOGRAPHY ─── */
.a-p {
  font-size:     17px;
  font-weight:   400;
  line-height:   1.82;
  color:         var(--rb-text-secondary);
  margin-bottom: 24px;
}
.a-p:last-of-type { margin-bottom: 0; }

.a-h2 {
  font-size:      22px;
  font-weight:    700;
  line-height:    1.3;
  letter-spacing: -0.01em;
  color:          var(--rb-text-primary);
  margin-top:     56px;
  margin-bottom:  20px;
}
.a-h3 {
  font-size:     16px;
  font-weight:   700;
  line-height:   1.3;
  color:         var(--rb-text-primary);
  margin-top:    36px;
  margin-bottom: 12px;
}

/* Insight 08 framing line */
.a-framing {
  font-size:     19px;
  font-weight:   600;
  color:         var(--rb-text-primary);
  line-height:   1.5;
  margin-bottom: 32px;
  padding-bottom: 32px;
  border-bottom: 1px solid var(--rb-border);
}

/* ─── SIGNATURE QUOTE BLOCK (dark navy, centered) ─── */
.a-quote {
  background: var(--rb-navy-deep);
  padding:    48px 40px;
  margin:     48px 0;
  text-align: center;
}
.a-quote-bar {
  display:       block;
  width:         32px;
  height:        2px;
  background:    var(--rb-terracotta);
  margin:        0 auto 28px;
}
.a-quote-frame {
  border-top:    1px solid rgba(255,255,255,0.15);
  border-bottom: 1px solid rgba(255,255,255,0.15);
  padding:       36px 24px;
}
.a-quote-text {
  font-size:      22px;
  font-weight:    500;
  line-height:    1.5;
  color:          #F2F2F2;
  letter-spacing: -0.005em;
  margin:         0;
}
.a-quote-text em { font-style: normal; color: rgba(198,93,59,0.85); }
.a-quote-attr {
  font-size:      13px;
  font-weight:    500;
  color:          rgba(242,242,242,0.65);
  letter-spacing: 0.04em;
  margin-top:     20px;
  display:        inline-block;
}
.a-quote-attr::before { content: "— "; font-weight: 300; }

/* ─── INLINE PULL QUOTE (terracotta border) ─── */
.a-pull {
  margin:      36px 0;
  padding:     24px 24px 24px 20px;
  border-left: 2px solid var(--rb-terracotta);
  background:  var(--rb-bg-light);
}
.a-pull p {
  font-size:   16px;
  font-weight: 500;
  line-height: 1.7;
  color:       var(--rb-text-primary);
  font-style:  italic;
  margin:      0;
}

/* ─── AEO BLOCK (amber top border, Q&A) ─── */
.a-aeo {
  background: var(--rb-bg-light);
  border-top: 2px solid var(--rb-amber);
  padding:    32px 28px;
  margin:     48px 0;
}
.a-aeo-q {
  font-size:     15px;
  font-weight:   700;
  color:         var(--rb-text-primary);
  margin-bottom: 12px;
  line-height:   1.4;
}
.a-aeo-a {
  font-size:   15px;
  font-weight: 400;
  line-height: 1.78;
  color:       var(--rb-text-secondary);
}
.a-aeo-a strong { font-weight: 600; color: var(--rb-text-primary); }

/* ─── NUMBERED LIST (amber numbers) ─── */
.a-list {
  list-style:     none;
  margin:         20px 0 28px;
  padding:        0;
  display:        flex;
  flex-direction: column;
}
.a-list li {
  font-size:     16px;
  font-weight:   400;
  line-height:   1.75;
  color:         var(--rb-text-secondary);
  padding:       14px 0;
  border-bottom: 1px solid var(--rb-border);
  display:       flex;
  gap:           16px;
  align-items:   flex-start;
}
.a-list li:first-child { border-top: 1px solid var(--rb-border); }
.a-list li strong { font-weight: 600; color: var(--rb-text-primary); }
.a-list-num {
  font-size:      10px;
  font-weight:    700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color:          var(--rb-amber);
  flex-shrink:    0;
  padding-top:    3px;
  min-width:      28px;
}

/* ─── SECTION DIVIDER ─── */
.a-divider {
  display:    block;
  width:      32px;
  height:     2px;
  background: var(--rb-border-mid);
  margin:     48px 0;
}

/* ─── AUTHOR SIGNATURE ─── */
.a-sig {
  margin-top:  56px;
  padding-top: 32px;
  border-top:  1px solid var(--rb-border);
  display:     flex;
  align-items: baseline;
  gap:         10px;
}
.a-sig-dash  { font-size: 14px; font-weight: 300; color: var(--rb-border-mid); }
.a-sig-name  { font-size: 15px; font-weight: 700; color: var(--rb-text-primary); letter-spacing: 0.02em; }
.a-sig-title { font-size: 13px; font-weight: 400; color: var(--rb-text-secondary); }

/* ─── RELATED INSIGHTS BLOCK ─── */
.a-related {
  margin-top:  48px;
  padding-top: 28px;
  border-top:  1px solid var(--rb-border);
}
.a-related-label {
  font-size:      10px;
  font-weight:    600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color:          var(--rb-text-secondary);
  display:        block;
  margin-bottom:  14px;
}
.a-related-list {
  list-style:     none;
  padding:        0;
  margin:         0;
  display:        flex;
  flex-direction: column;
  gap:            10px;
}
.a-related-list li a {
  font-size:       14px;
  font-weight:     500;
  color:           var(--rb-navy);
  text-decoration: none;
  border-bottom:   1px solid var(--rb-border);
  padding-bottom:  2px;
  display:         inline;
}
.a-related-list li a:hover {
  color:        var(--rb-terracotta);
  border-color: var(--rb-terracotta);
}

/* ─── NEXT / PREV ARTICLE NAVIGATION ─── */
.article-nav {
  background:  var(--rb-bg-light);
  border-top:  1px solid var(--rb-border);
  padding:     48px 0;
}
.an-inner {
  max-width:       var(--rb-max-w);
  margin:          0 auto;
  padding:         0 40px;
  display:         flex;
  justify-content: space-between;
  align-items:     center;
  gap:             32px;
}
.an-back {
  font-size:       12px;
  font-weight:     500;
  color:           var(--rb-text-secondary);
  text-decoration: none;
}
.an-back:hover { color: var(--rb-navy); }
.an-next-wrap { text-align: right; }
.an-next-label {
  font-size:      10px;
  font-weight:    600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color:          var(--rb-text-secondary);
  display:        block;
  margin-bottom:  6px;
}
.an-next {
  font-size:       15px;
  font-weight:     600;
  color:           var(--rb-navy);
  text-decoration: none;
  display:         block;
  max-width:       320px;
  line-height:     1.35;
}
.an-next:hover { color: var(--rb-terracotta); }

/* ─── INSIGHTS RESPONSIVE ─── */
@media (max-width: 640px) {
  .article-hero::before { display: none; }
  .ah-inner,
  .article-wrap,
  .an-inner { padding: 0 24px; }
  .article-hero  { padding: 52px 0 44px; }
  .ah-title      { font-size: 28px; }
  .article-body  { padding: 48px 0 64px; }
  .a-h2          { font-size: 19px; margin-top: 44px; }
  .a-p           { font-size: 16px; }
  .a-quote       { padding: 36px 20px; }
  .a-quote-text  { font-size: 18px; }
  .a-quote-frame { padding: 28px 16px; }
  .an-inner      { flex-direction: column; align-items: flex-start; gap: 24px; }
  .an-next-wrap  { text-align: left; }
}

/* ─── PAGE HERO (Insights index) ─── */
.page-hero {
  background: var(--rb-navy-deep);
  padding:    72px 0 64px;
  position:   relative;
}
.page-hero::before {
  content:    '';
  position:   absolute;
  left:       calc((100% - var(--rb-max-w)) / 2 - 12px);
  top:        0;
  bottom:     0;
  width:      1px;
  background: var(--rb-navy-mid);
}
.ph-inner {
  max-width: var(--rb-max-w);
  margin:    0 auto;
  padding:   0 40px;
}
.ph-label {
  font-size:      10px;
  font-weight:    600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color:          var(--rb-navy-muted);
  display:        block;
  margin-bottom:  20px;
}
.ph-title {
  font-size:      44px;
  font-weight:    700;
  line-height:    1.1;
  letter-spacing: -0.025em;
  color:          #F2F2F2;
  margin-bottom:  20px;
  max-width:      560px;
}
.ph-sub {
  font-size:   17px;
  font-weight: 400;
  line-height: 1.7;
  color:       #8AABCC;
  max-width:   520px;
}

/* ─── SERIES INTRO BAND ─── */
.series-intro {
  background:    var(--rb-bg-light);
  border-bottom: 1px solid var(--rb-border);
  padding:       48px 0;
}
.si-inner {
  max-width: var(--rb-max-w);
  margin:    0 auto;
  padding:   0 40px;
}
.si-label {
  font-size:      10px;
  font-weight:    600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color:          var(--rb-text-secondary);
  display:        block;
  margin-bottom:  16px;
}
.si-title {
  font-size:      18px;
  font-weight:    700;
  line-height:    1.4;
  letter-spacing: -0.01em;
  color:          var(--rb-text-primary);
  max-width:      560px;
  margin-bottom:  12px;
}
.si-desc {
  font-size:   14px;
  font-weight: 400;
  line-height: 1.75;
  color:       var(--rb-text-secondary);
  max-width:   560px;
}

/* ─── INSIGHTS LIST ─── */
.insights-list {
  max-width: var(--rb-max-w);
  margin:    0 auto;
  padding:   0 40px;
}

/* ─── INSIGHT CARD ─── */
.insight-card {
  padding:               56px 0;
  border-bottom:         1px solid var(--rb-border);
  display:               grid;
  grid-template-columns: 80px 1fr;
  gap:                   0 40px;
  align-items:           start;
}
.insight-card:last-child { border-bottom: none; }

.ic-num {
  font-size:      11px;
  font-weight:    700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color:          var(--rb-amber);
  padding-top:    4px;
  line-height:    1;
}
.ic-tag {
  font-size:      10px;
  font-weight:    600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color:          var(--rb-text-secondary);
  display:        block;
  margin-bottom:  12px;
}
.ic-title {
  font-size:       22px;
  font-weight:     700;
  line-height:     1.3;
  letter-spacing:  -0.01em;
  color:           var(--rb-text-primary);
  margin-bottom:   12px;
  max-width:       520px;
  text-decoration: none;
  display:         block;
}
.ic-title:hover { color: var(--rb-navy); }

.ic-keyphrase {
  font-size:      11px;
  font-weight:    600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color:          var(--rb-terracotta);
  display:        block;
  margin-bottom:  16px;
}
.ic-excerpt {
  font-size:     15px;
  font-weight:   400;
  line-height:   1.75;
  color:         var(--rb-text-secondary);
  max-width:     540px;
  margin-bottom: 24px;
}

/* ─── PULL QUOTE ON CARD ─── */
.ic-pull {
  margin:      0 0 24px;
  padding:     20px 20px 20px 18px;
  border-left: 2px solid var(--rb-terracotta);
  background:  var(--rb-bg-light);
  max-width:   520px;
}
.ic-pull p {
  font-size:   15px;
  font-weight: 500;
  line-height: 1.65;
  color:       var(--rb-text-primary);
  font-style:  italic;
  margin:      0;
}

/* ─── READ LINK ─── */
.ic-read {
  font-size:       13px;
  font-weight:     600;
  color:           var(--rb-navy);
  text-decoration: none;
  letter-spacing:  0.02em;
  display:         inline-flex;
  align-items:     center;
  gap:             6px;
  border-bottom:   1px solid var(--rb-border);
  padding-bottom:  2px;
}
.ic-read:hover {
  color:        var(--rb-terracotta);
  border-color: var(--rb-terracotta);
}

/* ─── SIGNATURE QUOTE (Insights index — same as homepage) ─── */
.sig-quote {
  background: var(--rb-navy-deep);
  padding:    96px 0;
}
.sq-inner {
  max-width:  680px;
  margin:     0 auto;
  padding:    0 40px;
  text-align: center;
}
.sq-bar {
  display:       block;
  width:         40px;
  height:        2px;
  background:    var(--rb-terracotta);
  margin:        0 auto 32px;
}
.sq-frame {
  border-top:    1px solid rgba(255,255,255,0.18);
  border-bottom: 1px solid rgba(255,255,255,0.18);
  padding:       52px 32px;
}
.sq-text {
  font-size:      28px;
  font-weight:    500;
  line-height:    1.45;
  color:          #F2F2F2;
  margin-bottom:  0;
  letter-spacing: -0.01em;
}
.sq-text em { font-style: normal; color: rgba(198,93,59,0.85); }
.sq-attr {
  font-size:      14px;
  font-weight:    500;
  color:          rgba(242,242,242,0.7);
  letter-spacing: 0.04em;
  margin-top:     28px;
  display:        inline-block;
}
.sq-attr::before { content: "— "; font-weight: 300; }

/* ─── INSIGHTS INDEX RESPONSIVE ─── */
@media (max-width: 640px) {
  .page-hero::before              { display: none; }
  .ph-inner,
  .si-inner,
  .insights-list,
  .sq-inner                       { padding: 0 24px; }
  .page-hero                      { padding: 52px 0 44px; }
  .ph-title                       { font-size: 28px; }
  .insight-card                   { grid-template-columns: 1fr; gap: 0; }
  .ic-num                         { margin-bottom: 10px; padding-top: 0; }
  .ic-title                       { font-size: 18px; max-width: none; }
  .ic-excerpt,
  .ic-pull                        { max-width: none; }
  .sq-text                        { font-size: 20px; }
  .sq-frame                       { padding: 36px 16px; }
}

/* =============================================================================
   TARGETED FIX — ADD TO BOTTOM OF style.css
   Adds missing class name aliases for insights index + article CTA sections
   ============================================================================= */

/* CTA STRIP — insights pages use .cta-strip not .page-cta-strip */
.cta-strip {
  background: var(--rb-navy);
  padding:    64px 0;
}
.cta-inner {
  max-width: var(--rb-max-w);
  margin:    0 auto;
  padding:   0 40px;
}
.cta-h {
  font-size:      24px;
  font-weight:    700;
  line-height:    1.3;
  letter-spacing: -0.01em;
  color:          #F2F2F2;
  max-width:      480px;
  margin-bottom:  16px;
}
.cta-sub {
  font-size:     14px;
  font-weight:   400;
  line-height:   1.7;
  color:         #8AABCC;
  max-width:     400px;
  margin-bottom: 28px;
}

/* ARTICLE NAV — insights article pages */
.article-nav {
  background:  var(--rb-bg-light);
  border-top:  1px solid var(--rb-border);
  padding:     48px 0;
}
.an-inner {
  max-width:       var(--rb-max-w);
  margin:          0 auto;
  padding:         0 40px;
  display:         flex;
  justify-content: space-between;
  align-items:     center;
  gap:             32px;
}
.an-back {
  font-size:       12px;
  font-weight:     500;
  color:           var(--rb-text-secondary);
  text-decoration: none;
}
.an-back:hover { color: var(--rb-navy); }
.an-next-wrap  { text-align: right; }
.an-next-label {
  font-size:      10px;
  font-weight:    600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color:          var(--rb-text-secondary);
  display:        block;
  margin-bottom:  6px;
}
.an-next {
  font-size:       15px;
  font-weight:     600;
  color:           var(--rb-navy);
  text-decoration: none;
  display:         block;
  max-width:       320px;
  line-height:     1.35;
}
.an-next:hover { color: var(--rb-terracotta); }

@media (max-width: 640px) {
  .cta-inner { padding: 0 24px; }
  .an-inner   { flex-direction: column; align-items: flex-start; gap: 24px; padding: 0 24px; }
  .an-next-wrap { text-align: left; }
}

/* Remove gap between article nav and CTA strip */
.article-nav + .cta-strip {
  margin-top: 0;
}

/* ─── TARGETED FIXES ─── */

/* Fix 1: Remove gap between article nav and CTA */
.article-nav + .cta-strip { margin-top: 0; padding-top: 0; }

/* Fix 2: Remove gap between nav and page hero */
.rb-page-wrap { margin-top: 0 !important; padding-top: 0 !important; }
.site-main { padding-top: 0 !important; margin-top: 0 !important; }
.entry-content { padding-top: 0 !important; margin-top: 0 !important; }

/* Fix 3: Homepage hero headline full width */
.rb-hero-headline,
.hero-headline { max-width: 720px !important; }

:root {
  --rb-font-heading: 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif;
}
 
/* Homepage — hero and section headlines */
.rb-hero-headline,
.rb-section-headline,
.hero-title,
.rb-hero-title {
  font-family: var(--rb-font-heading);
}
 
/* Page heroes — About, Work, Contact, Insights index */
.page-hero-title,
.ph-title {
  font-family: var(--rb-font-heading);
}
 
/* Article heroes — Insights 01–08 */
.ah-title {
  font-family: var(--rb-font-heading);
}
 
/* Article body headings */
.a-h2,
.a-h3 {
  font-family: var(--rb-font-heading);
}
 
/* Content section headings — About, Work, Contact */
.content-h2 {
  font-family: var(--rb-font-heading);
}
 
/* Insights index — series title and card titles */
.si-title,
.ic-title {
  font-family: var(--rb-font-heading);
}
 
/* CTA headlines across all pages */
.cta-h,
.page-cta-headline {
  font-family: var(--rb-font-heading);
}
 
/* Signature quote blocks */
.a-quote-text,
.sq-text {
  font-family: var(--rb-font-heading);
}
