/* ==========================================================================
   Biography Studio – theme.css
   Fonts: Playfair Display (headings) · Lora (body) · Source Sans 3 (UI)
   Palette: Navy #093A66 · Pink #E4A6A1 · Cream #FDF9F2
   ========================================================================== */

/* --------------------------------------------------------------------------
   CSS Custom Properties
   -------------------------------------------------------------------------- */
:root {
	/* Brand colours */
	--bs-navy:         #093A66;
	--bs-navy-dark:    #062d50;
	--bs-navy-light:   #e8eef5;
	--bs-pink:         #E4A6A1;
	--bs-pink-dark:    #c8807a;
	--bs-pink-light:   #f5d8d5;
	--bs-cream:        #FDF9F2;
	--bs-cream-dark:   #f3ede1;

	/* Neutral palette */
	--bs-text:         #2c2c2c;
	--bs-text-muted:   #666;
	--bs-border:       #d9d4cc;
	--bs-border-light: #ece7de;
	--bs-white:        #fff;

	/* Typography */
	--bs-heading-font: 'Playfair Display', Georgia, 'Times New Roman', serif;
	--bs-body-font:    'Lora', Georgia, 'Times New Roman', serif;
	--bs-ui-font:      'Source Sans 3', 'Source Sans Pro', -apple-system, sans-serif;
	--bs-font-size:    17px;
	--bs-line-height:  1.7;

	/* Geometry */
	--bs-radius:       6px;
	--bs-radius-lg:    12px;
	--bs-shadow:       0 2px 8px rgba(0,0,0,.07);
	--bs-shadow-lg:    0 8px 32px rgba(0,0,0,.11);
	--bs-shadow-card:  0 2px 12px rgba(9,58,102,.08);

	/* Layout */
	--bs-max-width:    1100px;
	--bs-section-gap: 80px;
	--bs-header-h:     72px;
}

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

html { font-size: var(--bs-font-size); scroll-behavior: smooth; }

body {
	font-family:  var(--bs-body-font);
	color:        var(--bs-text);
	background:   var(--bs-cream);
	line-height:  var(--bs-line-height);
	-webkit-font-smoothing: antialiased;
}

img  { max-width: 100%; height: auto; display: block; }
a    { color: var(--bs-navy); text-decoration: underline; text-underline-offset: 2px; }
a:hover { color: var(--bs-navy-dark); }
ul, ol { list-style: none; }

/* --------------------------------------------------------------------------
   Layout
   -------------------------------------------------------------------------- */
.bs-container {
	max-width: var(--bs-max-width);
	margin: 0 auto;
	padding: 0 24px;
}
.bs-main { min-height: 60vh; }

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */
.bs-btn {
	display:         inline-block;
	padding:         13px 28px;
	border-radius:   2px;
	font-family:     var(--bs-ui-font);
	font-size:       1rem;
	font-weight:     600;
	text-decoration: none;
	cursor:          pointer;
	border:          2px solid transparent;
	transition:      background .2s, color .2s, border-color .2s, box-shadow .2s, transform .15s;
	line-height:     1.2;
	letter-spacing:  .01em;
}
.bs-btn:hover { transform: translateY(-1px); }
.bs-btn-sm  { padding: 9px 20px;  font-size: .875rem; }
.bs-btn-lg  { padding: 17px 40px; font-size: 1.05rem; letter-spacing: .02em; }

/* Primary = Navy solid */
.bs-btn-primary {
	background:   var(--bs-navy);
	color:        #fff;
	border-color: var(--bs-navy);
}
.bs-btn-primary:hover {
	background:   var(--bs-navy-dark);
	border-color: var(--bs-navy-dark);
	color:        #fff;
}

/* Outline = Navy ghost */
.bs-btn-outline {
	background:   transparent;
	color:        var(--bs-navy);
	border-color: var(--bs-navy);
}
.bs-btn-outline:hover {
	background: var(--bs-navy);
	color:      var(--bs-white);
}

/* Secondary = Pink (upsell/upgrade only) */
.bs-btn-secondary {
	background:   var(--bs-pink);
	color:        var(--bs-navy);
	border-color: var(--bs-pink);
}
.bs-btn.bs-btn-secondary:hover {
	background:   var(--bs-pink-dark);
	border-color: var(--bs-pink-dark);
	color:        #fff !important;
	box-shadow:   0 4px 16px rgba(228,166,161,.4);
}

/* --------------------------------------------------------------------------
   Site Header
   -------------------------------------------------------------------------- */
.bs-site-header {
	background:    var(--bs-white);
	border-bottom: 1px solid var(--bs-border-light);
	position:      sticky;
	top:           0;
	z-index:       200;
	box-shadow:    0 1px 6px rgba(9,58,102,.06);
}
.bs-header-inner {
	max-width:       var(--bs-max-width);
	margin:          0 auto;
	padding:         0 24px;
	height:          var(--bs-header-h);
	display:         flex;
	align-items:     center;
	justify-content: space-between;
	gap:             20px;
}

/* Logo */
.bs-logo-link { display: flex; align-items: center; text-decoration: none; flex-shrink: 0; }
.bs-logo-img  { height: 44px; width: auto; }
/* WooCommerce layout.css sets .woocommerce-page img { height:auto; max-width:100% }
   which overrides the logo height on the shop page — restore it here. */
.woocommerce-page .bs-logo-img,
.woocommerce .bs-logo-img { height: 44px; width: auto; max-width: none; }

/* Primary nav wrapper */
.bs-primary-nav {
	display:     flex;
	align-items: center;
	gap:         4px;
}

/* WordPress nav menu */
.bs-primary-nav .bs-nav-list,
.bs-primary-nav ul.bs-nav-list {
	display:     flex;
	align-items: center;
	gap:         2px;
	list-style:  none;
}

.bs-primary-nav .bs-nav-list > li > a,
.bs-nav-link {
	display:         block;
	padding:         7px 13px;
	color:           var(--bs-text);
	text-decoration: none;
	border-radius:   0;
	font-size:       0.882rem; /* ~15px */
	font-weight:     400;
	font-family:     var(--bs-body-font);
	letter-spacing:  0.04em;
	white-space:     nowrap;
	background:      none;
	border:          none;
	cursor:          pointer;
	/* Box drawn via box-shadow so it animates cleanly without shifting layout */
	box-shadow:      inset 0 0 0 0px transparent;
	transition:      box-shadow .2s ease, color .2s ease;
}
/* Hover — box draws in */
.bs-primary-nav .bs-nav-list > li > a:hover,
.bs-nav-link:hover {
	color:      var(--bs-navy);
	box-shadow: inset 0 0 0 1px var(--bs-navy);
}
/* Current page — box is present and slightly heavier, text navy */
.bs-primary-nav .bs-nav-list > li.current-menu-item > a,
.bs-nav-link--active {
	color:       var(--bs-navy);
	font-weight: 500;
	box-shadow:  inset 0 0 0 1.5px var(--bs-navy);
}

/* User Dropdown */
.bs-nav-dropdown          { position: relative; }
.bs-nav-dropdown-toggle   { display: flex; align-items: center; gap: 5px; }
.bs-dropdown-caret         { flex-shrink: 0; transition: transform .2s; }
.bs-nav-dropdown.is-open .bs-dropdown-caret { transform: rotate(180deg); }

.bs-dropdown-menu {
	position:      absolute;
	top:           calc(100% + 8px);
	right:         0;
	min-width:     190px;
	background:    var(--bs-white);
	border:        1px solid var(--bs-border);
	border-radius: var(--bs-radius);
	box-shadow:    var(--bs-shadow-lg);
	padding:       6px 0;
	display:       none;
	z-index:       300;
}
.bs-nav-dropdown.is-open .bs-dropdown-menu { display: block; }

.bs-dropdown-menu li a {
	display:         block;
	padding:         10px 16px;
	font-size:       .9rem;
	font-family:     var(--bs-body-font);
	font-weight:     400;
	letter-spacing:  0.04em;
	color:           var(--bs-text);
	text-decoration: none;
	transition:      color .2s;
}
.bs-dropdown-menu li a:hover { color: var(--bs-navy); background: none; }
.bs-dropdown-divider         { border-top: 1px solid var(--bs-border-light); margin: 5px 0; }

/* Mobile hamburger */
.bs-nav-toggle {
	display:        none;
	flex-direction: column;
	gap:            5px;
	background:     none;
	border:         none;
	cursor:         pointer;
	padding:        8px;
}
.bs-nav-toggle span {
	display:       block;
	width:         24px;
	height:        2px;
	background:    var(--bs-navy);
	border-radius: 2px;
	transition:    transform .2s, opacity .2s;
}

/* --------------------------------------------------------------------------
   Site Footer
   -------------------------------------------------------------------------- */
.bs-site-footer {
	background:  var(--bs-navy);
	color:       var(--bs-white);
	padding:     64px 0 0;
	margin-top:  var(--bs-section-gap);
}
.bs-footer-inner {
	max-width: var(--bs-max-width);
	margin:    0 auto;
	padding:   0 24px 44px;
	display:   grid;
	grid-template-columns: 1.5fr 1fr 1fr 1.2fr;
	gap:       48px;
}
.bs-footer-brand .bs-logo-img { filter: brightness(0) invert(1); opacity: .9; height: 40px; }
.bs-footer-tagline { color: var(--bs-pink-light); margin-top: 10px; font-size: .9rem; }

.bs-footer-nav   h3,
.bs-footer-legal h3,
.bs-footer-signup h3 {
	font-family:    var(--bs-body-font);
	font-size:      .75rem;
	text-transform: uppercase;
	letter-spacing: .1em;
	color:          rgba(255,255,255,.5);
	margin-bottom:  14px;
}

.bs-footer-nav ul,
.bs-footer-legal ul { display: flex; flex-direction: column; gap: 10px; }
.bs-footer-nav a,
.bs-footer-legal a  { color: rgba(255,255,255,.75); text-decoration: none; font-size: .9rem; }
.bs-footer-nav a:hover,
.bs-footer-legal a:hover { color: var(--bs-white); }

.bs-footer-bottom {
	border-top: 1px solid rgba(255,255,255,.12);
	padding:    20px 24px;
	text-align: center;
	font-size:  .8rem;
	color:      rgba(255,255,255,.4);
}

/* --------------------------------------------------------------------------
   Page header (generic)
   -------------------------------------------------------------------------- */
.bs-page-header           { padding: 56px 0 36px; }
.bs-page-header--centered { text-align: center; }

.bs-page-title {
	font-family:    var(--bs-heading-font);
	font-size:      clamp(2rem, 4vw, 3.75rem);
	font-weight:    400;
	font-style:     italic;
	color:          var(--bs-navy);
	line-height:    1.1;
	letter-spacing: -0.015em;
	margin-bottom:  14px;
}
.bs-page-intro {
	font-size:   1.05rem;
	color:       var(--bs-text-muted);
	max-width:   580px;
	margin:      0 auto;
	line-height: 1.7;
}
.bs-page-cta { text-align: center; padding: 40px 0; font-size: 1rem; }

/* --------------------------------------------------------------------------
   Editorial content (the_content() output inside bs-container)
   -------------------------------------------------------------------------- */
.bs-entry-content h1,
.bs-entry-content h2,
.bs-entry-content h3,
.bs-entry-content h4 {
	font-family: var(--bs-heading-font);
	color:       var(--bs-navy);
	line-height: 1.25;
}
.bs-entry-content h1 { font-size: 3rem;    line-height: 1.15; font-weight: 600; letter-spacing: -0.02em; margin: 0 0 20px; }
.bs-entry-content h2 { font-size: 2.25rem; line-height: 1.2;  font-weight: 500; letter-spacing: -0.01em; margin: 52px 0 16px; padding-top: 32px; border-top: 1px solid var(--bs-border-light); }
.bs-entry-content h2:first-child { margin-top: 0; border-top: none; padding-top: 0; }
.bs-entry-content h3 { font-size: 1.625rem; line-height: 1.3; font-weight: 500; margin: 36px 0 12px; }
.bs-entry-content h4 { font-size: 1.25rem;  line-height: 1.35; font-weight: 500; margin: 28px 0 10px; }
.bs-entry-content p  { margin-bottom: 20px; }
.bs-entry-content ul { list-style: disc; padding-left: 24px; margin-bottom: 20px; }
.bs-entry-content ol { list-style: decimal; padding-left: 24px; margin-bottom: 20px; }
.bs-entry-content li { margin-bottom: 8px; }
.bs-entry-content a  { color: var(--bs-navy); text-decoration: underline; }
.bs-entry-content a:hover { color: var(--bs-pink-dark); }
.bs-entry-content strong { font-weight: 700; }
.bs-entry-content em     { font-style: italic; }
.bs-entry-content blockquote {
	border-left:   4px solid var(--bs-pink);
	padding:       18px 26px;
	margin:        32px 0;
	color:         var(--bs-text-muted);
	font-style:    italic;
	font-size:     1.05rem;
	background:    var(--bs-cream-dark);
	border-radius: 0 var(--bs-radius) var(--bs-radius) 0;
}

/* --------------------------------------------------------------------------
   Gutenberg core block defaults
   -------------------------------------------------------------------------- */

/* Headings */
.wp-block-heading {
	font-family:    var(--bs-heading-font);
	color:          var(--bs-navy);
	font-weight:    500;
}
h1.wp-block-heading {
	font-size:      3rem;
	line-height:    1.15;
	font-weight:    600;
	letter-spacing: -0.02em;
}
h2.wp-block-heading {
	font-size:      2.5rem;    /* ≥ 40px at 16px base / 42px at 17px base */
	line-height:    1.15;
	font-weight:    700;
	letter-spacing: -0.02em;
	color:          var(--bs-navy);
	margin-top:     56px;
	margin-bottom:  24px;
}
h3.wp-block-heading {
	font-size:   1.625rem;
	line-height: 1.3;
	font-weight: 500;
}
h4.wp-block-heading {
	font-size:   1.25rem;
	line-height: 1.35;
	font-weight: 500;
}
h5.wp-block-heading { font-size: 1rem; font-weight: 500; }

/* Paragraphs */
.wp-block-paragraph { line-height: 1.7; margin-bottom: 20px; font-size: 1rem; }
.wp-block-paragraph.has-large-font-size  { font-size: 1.176rem; line-height: 1.6; } /* ~20px */
.wp-block-paragraph.has-medium-font-size { font-size: 1.059rem; line-height: 1.65; }
.wp-block-paragraph.has-small-font-size  { font-size: 0.824rem; line-height: 1.5; } /* ~14px */

/* Lists */
.wp-block-list { padding-left: 24px; list-style: disc; margin-bottom: 20px; }
.wp-block-list li { margin-bottom: 8px; line-height: 1.6; }

/* Buttons */
.wp-block-buttons { gap: 12px; flex-wrap: wrap; }
.wp-block-button__link {
	font-family:     var(--bs-body-font) !important;
	font-weight:     700 !important;
	border-radius:   var(--bs-radius) !important;
	padding:         13px 28px !important;
	text-decoration: none !important;
	transition:      background .2s, box-shadow .2s, transform .15s !important;
	letter-spacing:  .01em !important;
}
.wp-block-button__link:hover { transform: translateY(-1px); }

/* Pink fill = default BS button */
.wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background-color: var(--bs-pink) !important;
	color:            var(--bs-navy) !important;
	border:           none !important;
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	background-color: var(--bs-pink-dark) !important;
	color:            var(--bs-white) !important;
	box-shadow:       0 4px 16px rgba(228,166,161,.4) !important;
}
.wp-block-button.is-style-outline .wp-block-button__link {
	background-color: transparent !important;
	color:            var(--bs-navy) !important;
	border:           2px solid var(--bs-navy) !important;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background-color: var(--bs-navy) !important;
	color:            var(--bs-white) !important;
}

/* Separator */
.wp-block-separator {
	border:     none;
	border-top: 1px solid var(--bs-border-light);
	margin:     52px auto;
	max-width:  160px;
}
.wp-block-separator.is-style-wide { max-width: 100%; margin: 44px 0; }
.wp-block-separator.is-style-dots {
	border:    none;
	max-width: 100%;
	text-align: center;
}
.wp-block-separator.is-style-dots::before {
	content:        '· · ·';
	font-size:      1.2rem;
	color:          var(--bs-border);
	letter-spacing: .5em;
}

/* Image */
.wp-block-image figcaption { font-size: .85rem; color: var(--bs-text-muted); text-align: center; margin-top: 8px; font-style: italic; }
.wp-block-image figure img { border-radius: var(--bs-radius); }
.wp-block-image.is-style-rounded img { border-radius: 50%; }

/* Columns */
.wp-block-columns { gap: 28px; align-items: stretch; margin-bottom: 0; }
.wp-block-column  { flex-grow: 1; }

/* Media & Text */
.wp-block-media-text            { gap: 48px; align-items: center; }
.wp-block-media-text img        { border-radius: var(--bs-radius-lg); }
.wp-block-media-text .wp-block-media-text__content { padding: 24px 0; }

/* Quote */
.wp-block-quote {
	border-left:   4px solid var(--bs-pink);
	padding:       18px 26px;
	margin:        32px 0;
	background:    var(--bs-cream-dark);
	border-radius: 0 var(--bs-radius) var(--bs-radius) 0;
}
.wp-block-quote p    { font-style: italic; color: var(--bs-text-muted); font-size: 1.05rem; margin-bottom: 8px; }
.wp-block-quote cite { font-size: .85rem; color: var(--bs-text-muted); font-style: normal; }

/* Pull Quote */
.wp-block-pullquote {
	padding:       44px 40px;
	border-top:    4px solid var(--bs-pink);
	border-bottom: 4px solid var(--bs-pink);
	background:    var(--bs-cream-dark);
	border-radius: var(--bs-radius-lg);
	margin:        44px 0;
	text-align:    center;
}
.wp-block-pullquote blockquote p {
	font-family:   var(--bs-heading-font);
	font-size:     1.412rem; /* ~24px */
	font-weight:   500;
	font-style:    italic;
	color:         var(--bs-navy);
	line-height:   1.4;
	margin-bottom: 12px;
}
.wp-block-pullquote blockquote cite {
	font-family: var(--bs-body-font);
	font-size:   .875rem;
	color:       var(--bs-text-muted);
	font-style:  normal;
	display:     block;
}
.wp-block-pullquote.is-style-solid-color {
	background:    var(--bs-navy);
	border-color:  var(--bs-navy);
}
.wp-block-pullquote.is-style-solid-color blockquote p,
.wp-block-pullquote.is-style-solid-color blockquote cite { color: var(--bs-white); }

/* Details / Accordion */
.wp-block-details {
	border-bottom: 1px solid var(--bs-border-light);
	margin-bottom: 0;
}
.wp-block-details summary {
	padding:    20px 44px 20px 0;
	font-weight: 700;
	font-family: var(--bs-heading-font);
	font-size:   1.05rem;
	color:       var(--bs-navy);
	cursor:      pointer;
	position:    relative;
	list-style:  none;
	outline:     none;
	-webkit-user-select: none;
	user-select: none;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
	content:    '+';
	position:   absolute;
	right:      4px;
	top:        50%;
	transform:  translateY(-50%);
	font-size:  1.4rem;
	color:      var(--bs-pink-dark);
	font-weight: 300;
	transition: transform .2s;
	line-height: 1;
}
.wp-block-details[open] summary::after { content: '−'; color: var(--bs-navy); }
.wp-block-details > *:not(summary) {
	padding-bottom: 20px;
	color:          var(--bs-text-muted);
	line-height:    1.75;
}

/* Table */
.wp-block-table table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.wp-block-table th {
	background:  var(--bs-navy);
	color:       var(--bs-white);
	font-family: var(--bs-body-font);
	font-weight: 700;
	padding:     12px 16px;
	text-align:  left;
}
.wp-block-table td {
	padding:      11px 16px;
	border-bottom: 1px solid var(--bs-border-light);
	color:        var(--bs-text);
}
.wp-block-table tr:nth-child(even) td               { background: var(--bs-cream-dark); }
.wp-block-table tr:last-child td                    { border-bottom: none; }
.wp-block-table.is-style-stripes tr:nth-child(odd)  td { background: var(--bs-cream-dark); }
.wp-block-table.is-style-stripes tr:nth-child(even) td { background: transparent; }

/* Code */
.wp-block-code {
	font-size:    .875rem;
	background:   var(--bs-navy);
	color:        rgba(255,255,255,.9);
	padding:      20px 24px;
	border-radius: var(--bs-radius);
	overflow-x:   auto;
}

/* Spacer */
.wp-block-spacer { background: transparent; }

/* Embed / Video */
.wp-block-embed { margin: 40px 0; }
.wp-block-embed__wrapper {
	border-radius: var(--bs-radius-lg);
	overflow:      hidden;
	box-shadow:    var(--bs-shadow-lg);
}

/* --------------------------------------------------------------------------
   Full-width alignment helpers (home page + page.php wide blocks)
   -------------------------------------------------------------------------- */
.alignfull  {
	width:        100vw;
	max-width:    100vw;
	margin-left:  calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
.alignwide {
	max-width:    var(--bs-max-width);
	margin-left:  auto;
	margin-right: auto;
}

/* Inner containers inside full-width blocks */
.wp-block-cover__inner-container,
.wp-block-group.alignfull > .wp-block-group__inner-container {
	max-width:    var(--bs-max-width);
	margin-left:  auto;
	margin-right: auto;
	padding-left:  24px;
	padding-right: 24px;
}

/* --------------------------------------------------------------------------
   Home page — direct block output (no .bs-container wrapper)
   -------------------------------------------------------------------------- */
/* Default padding/constraint for non-aligned inline blocks on home */
.bs-home > *:not(.alignfull):not(.alignwide):not(.wp-block-cover) {
	max-width:    var(--bs-max-width);
	margin-left:  auto;
	margin-right: auto;
	padding-left:  24px;
	padding-right: 24px;
}
/* Remove section gap between stacked full-width blocks */
.bs-home > .wp-block-group { margin-bottom: 0; }
.bs-home > .wp-block-cover { margin-bottom: 0; }
.bs-home > .wp-block-spacer { margin: 0; }

/* --------------------------------------------------------------------------
   Cover block — Hero treatment
   -------------------------------------------------------------------------- */
.wp-block-cover {
	min-height:     520px;
	display:        flex;
	align-items:    center;
	padding-top:    80px;
	padding-bottom: 80px;
}
.wp-block-cover.alignfull { min-height: 580px; }

/* Fallback when no background image is set */
.wp-block-cover:not([style*="background-image"]):not(.has-background-dim) {
	background: var(--bs-navy);
}

/* Text inside covers */
.wp-block-cover .wp-block-heading {
	color:       #fff;
	font-size:   3rem;
	line-height: 1.1;
}
.wp-block-cover p.wp-block-paragraph {
	color:     rgba(255,255,255,.88);
	font-size: 1.15rem;
}
.wp-block-cover .wp-block-buttons { margin-top: 32px; }
/* Pink button inside covers */
.wp-block-cover .wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background-color: var(--bs-pink) !important;
	color:            var(--bs-navy) !important;
}
.wp-block-cover .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	background-color: var(--bs-white) !important;
	color:            var(--bs-navy) !important;
}
.wp-block-cover .wp-block-button.is-style-outline .wp-block-button__link {
	background-color: transparent !important;
	color:            rgba(255,255,255,.9) !important;
	border-color:     rgba(255,255,255,.6) !important;
}
.wp-block-cover .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background-color: var(--bs-white) !important;
	color:            var(--bs-navy) !important;
	border-color:     var(--bs-white) !important;
}

/* --------------------------------------------------------------------------
   Group blocks — Section treatment
   -------------------------------------------------------------------------- */
/* Full-width groups become proper page sections */
.wp-block-group.alignfull {
	padding: 80px 0;
	margin:  0;
}

/* Groups with background colors get padding even without alignfull */
.wp-block-group.has-background {
	padding:       56px 24px;
	border-radius: var(--bs-radius-lg);
	margin:        48px 0;
}
.wp-block-group.has-background.alignfull {
	border-radius: 0;
	margin:        0;
	padding:       80px 0;
}

/* Navy background — white text */
.wp-block-group.has-navy-background-color,
.has-navy-background-color.wp-block-group { background-color: var(--bs-navy) !important; }
.wp-block-group.has-navy-background-color .wp-block-heading,
.wp-block-group.has-navy-background-color h1,
.wp-block-group.has-navy-background-color h2,
.wp-block-group.has-navy-background-color h3,
.wp-block-group.has-navy-background-color p { color: var(--bs-white); }
.wp-block-group.has-navy-background-color .wp-block-paragraph.has-large-font-size { color: rgba(255,255,255,.8); }
.wp-block-group.has-navy-background-color .wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background-color: var(--bs-pink) !important;
	color:            var(--bs-navy) !important;
}
.wp-block-group.has-navy-background-color .wp-block-button.is-style-outline .wp-block-button__link {
	color:        var(--bs-white) !important;
	border-color: rgba(255,255,255,.6) !important;
}
.wp-block-group.has-navy-background-color .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background-color: var(--bs-white) !important;
	color:            var(--bs-navy) !important;
}

/* Cream/light backgrounds */
.wp-block-group.has-cream-background-color { background-color: var(--bs-cream-dark) !important; }
.wp-block-group.has-pink-background-color  { background-color: var(--bs-pink-light) !important; }

/* --------------------------------------------------------------------------
   Section utility classes — admin adds to Group block in Gutenberg
   -------------------------------------------------------------------------- */

/* ── bs-hero — Dark navy hero section (flat colour) ── */
.bs-hero.wp-block-group,
.bs-hero.wp-block-cover {
	background: var(--bs-navy) !important;
	padding: 100px 0;
	text-align: center;
}
.bs-hero .wp-block-heading { color: var(--bs-white); font-size: 3.2rem; line-height: 1.1; }
.bs-hero .wp-block-paragraph { color: rgba(255,255,255,.85); font-size: 1.15rem; max-width: 540px; margin: 0 auto 8px; }
.bs-hero .wp-block-buttons { justify-content: center; margin-top: 32px; }
.bs-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background-color: var(--bs-pink) !important;
	color:            var(--bs-navy) !important;
	padding:          16px 44px !important;
	font-size:        1.05rem !important;
}
.bs-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	background-color: var(--bs-white) !important;
}
.bs-hero .wp-block-button.is-style-outline .wp-block-button__link {
	color:        rgba(255,255,255,.9) !important;
	border-color: rgba(255,255,255,.5) !important;
}
.bs-hero .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background-color: var(--bs-white) !important;
	color:            var(--bs-navy) !important;
}

/* ── bs-section-cream — warm cream background section ── */
.bs-section-cream.wp-block-group.alignfull { background: var(--bs-cream-dark) !important; }
.bs-section-cream.wp-block-group { background: var(--bs-cream-dark) !important; }

/* ── bs-section-navy — deep navy background section ── */
.bs-section-navy.wp-block-group.alignfull,
.bs-section-navy.wp-block-group { background: var(--bs-navy) !important; }
.bs-section-navy .wp-block-heading,
.bs-section-navy h1, .bs-section-navy h2, .bs-section-navy h3 { color: var(--bs-white); }
.bs-section-navy p,
.bs-section-navy .wp-block-paragraph { color: rgba(255,255,255,.82); }
.bs-section-navy .wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background-color: var(--bs-pink) !important;
	color:            var(--bs-navy) !important;
}

/* ── bs-cta-section — full-width CTA band ── */
.bs-cta-section.wp-block-group {
	background:  var(--bs-navy) !important;
	text-align:  center;
}
.bs-cta-section .wp-block-heading { color: var(--bs-white); font-size: 2.2rem; }
.bs-cta-section p,
.bs-cta-section .wp-block-paragraph {
	color:       rgba(255,255,255,.85);
	max-width:   560px;
	margin-left:  auto;
	margin-right: auto;
}
.bs-cta-section .wp-block-buttons { justify-content: center; margin-top: 28px; }
.bs-cta-section .wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background-color: var(--bs-pink) !important;
	color:            var(--bs-navy) !important;
	padding:          16px 44px !important;
	font-size:        1.05rem !important;
}
.bs-cta-section .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	background-color: var(--bs-white) !important;
}

/* --------------------------------------------------------------------------
   Page layouts
   -------------------------------------------------------------------------- */
.bs-page-content   { padding: 56px 0 var(--bs-section-gap); }
.bs-editions-page  { padding-bottom: var(--bs-section-gap); }
.bs-contact-page   { padding-bottom: var(--bs-section-gap); }
.bs-wc-page        { padding: 48px 0 var(--bs-section-gap); }
.bs-guide-page     { padding-bottom: var(--bs-section-gap); }
.bs-start-page     { padding-top: 56px; padding-bottom: var(--bs-section-gap); }

/* WC typography */
.bs-wc-page h1,
.bs-wc-page h2,
.bs-wc-page h3 { font-family: var(--bs-heading-font); color: var(--bs-navy); }

/* WC button override */
.bs-wc-page .woocommerce-button,
.bs-wc-page .button,
.bs-wc-page input[type="submit"],
.bs-wc-page button[type="submit"] {
	background:    var(--bs-pink)  !important;
	border-color:  var(--bs-pink)  !important;
	color:         var(--bs-navy)  !important;
	font-family:   var(--bs-body-font) !important;
	font-weight:   700 !important;
	font-size:     1rem !important;
	padding:       13px 28px !important;
	border-radius: var(--bs-radius) !important;
	cursor:        pointer !important;
	transition:    background .2s !important;
}
.bs-wc-page .woocommerce-button:hover,
.bs-wc-page .button:hover,
.bs-wc-page input[type="submit"]:hover,
.bs-wc-page button[type="submit"]:hover {
	background:   var(--bs-pink-dark) !important;
	border-color: var(--bs-pink-dark) !important;
	color:        var(--bs-white) !important;
}

/* --------------------------------------------------------------------------
   Notices
   -------------------------------------------------------------------------- */
.bs-notice {
	padding:       16px 20px;
	border-radius: var(--bs-radius);
	margin-bottom: 28px;
	font-size:     .95rem;
}
.bs-notice--success { background: #eaf7ee; border: 1px solid #a3d9b0; color: #2a6b3c; }
.bs-notice--error   { background: #fdf0f0; border: 1px solid #f0a0a0; color: #8a2020; }

/* --------------------------------------------------------------------------
   Contact page
   -------------------------------------------------------------------------- */

/* Cream hero header — breaks out of container to fill viewport width */
.bs-contact-page .bs-page-header {
	background-color: var(--bs-cream);
	background-image:
		radial-gradient(ellipse 80% 60% at 50% 0%, rgba(255,254,250,0.8) 0%, transparent 60%);
	padding:      80px 0 56px;
	text-align:   center;
	/* break out of .bs-container */
	width:        100vw;
	margin-left:  calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
/* Prevent horizontal scrollbar from the vw trick */
.bs-contact-page { overflow-x: hidden; }

/* Form section — white, constrained, centred */
.bs-contact-intro {
	margin-bottom: 36px;
	font-family:   var(--bs-body-font);
	font-size:     1.0625rem;
	line-height:   1.8;
	color:         var(--bs-text-muted);
	max-width:     600px;
}
.bs-contact-form-wrap {
	max-width:   600px;
	padding-top: 40px;
}

.bs-field { margin-bottom: 24px; }
.bs-label {
	display:       block;
	margin-bottom: 7px;
	font-weight:   700;
	font-size:     .95rem;
	color:         var(--bs-navy);
}
.bs-label span { color: var(--bs-pink-dark); margin-left: 2px; }
.bs-input {
	width:         100%;
	padding:       12px 14px;
	border:        1px solid var(--bs-border);
	border-radius: var(--bs-radius);
	font-family:   var(--bs-body-font);
	font-size:     1rem;
	color:         var(--bs-text);
	background:    var(--bs-white);
	transition:    border-color .15s, box-shadow .15s;
}
.bs-input:focus {
	outline:      none;
	border-color: var(--bs-navy);
	box-shadow:   0 0 0 3px rgba(9,58,102,.12);
}
.bs-textarea      { resize: vertical; min-height: 140px; }
.bs-field-hint    { font-size: .85rem; color: var(--bs-text-muted); margin-top: 5px; }
.bs-field--submit { margin-top: 32px; }

/* --------------------------------------------------------------------------
   Start Your Project – checkbox builder
   -------------------------------------------------------------------------- */
.bs-builder-form  { max-width: 680px; margin: 0 auto; }
.bs-builder-intro { text-align: center; margin-bottom: 36px; font-size: 1rem; color: var(--bs-text-muted); }

.bs-builder-section { margin-bottom: 40px; }
.bs-builder-section-title {
	font-family:    var(--bs-heading-font);
	font-size:      clamp(1.8rem, 4vw, 2.4rem);
	color:          var(--bs-navy);
	text-align:     center;
	margin-bottom:  36px;
}

.bs-choice {
	display:       flex;
	align-items:   flex-start;
	gap:           16px;
	padding:       22px 24px;
	border:        1px solid var(--bs-border);
	border-radius: var(--bs-radius-lg);
	background:    var(--bs-white);
	margin-bottom: 12px;
	cursor:        pointer;
	transition:    border-color .15s, box-shadow .15s;
	position:      relative;
}
.bs-choice:has(.bs-choice-checkbox:checked) {
	border-color: var(--bs-navy);
	box-shadow:   0 0 0 2px rgba(9,58,102,.12);
}
.bs-choice--locked {
	background: var(--bs-cream-dark);
	cursor:     default;
}
.bs-choice--bundle {
	background:   var(--bs-navy-light);
	border-color: var(--bs-navy);
}
.bs-choice--bundle:has(.bs-choice-checkbox:checked) {
	background:   var(--bs-navy);
	border-color: var(--bs-navy);
}
.bs-choice--bundle:has(.bs-choice-checkbox:checked) .bs-choice-title,
.bs-choice--bundle:has(.bs-choice-checkbox:checked) .bs-choice-desc,
.bs-choice--bundle:has(.bs-choice-checkbox:checked) .bs-choice-price { color: var(--bs-white); }

/* Custom checkbox */
.bs-choice-checkbox {
	appearance:         none;
	-webkit-appearance: none;
	width:     24px;
	height:    24px;
	min-width: 24px;
	border:     2px solid var(--bs-border);
	border-radius: 5px;
	background: var(--bs-white);
	cursor:     pointer;
	margin-top: 2px;
	position:   relative;
	transition: background .15s, border-color .15s;
}
.bs-choice-checkbox:checked {
	background:   var(--bs-navy);
	border-color: var(--bs-navy);
}
.bs-choice-checkbox:checked::after,
.bs-choice-checkbox:disabled::after {
	content:     '';
	position:    absolute;
	top:         4px;
	left:        7px;
	width:       6px;
	height:      11px;
	border:      2px solid var(--bs-white);
	border-top:  none;
	border-left: none;
	transform:   rotate(45deg);
}
.bs-choice-checkbox:disabled {
	background:   var(--bs-navy);
	border-color: var(--bs-navy);
	cursor:       default;
	opacity:      .75;
}
.bs-choice-checkbox:focus-visible { outline: 2px solid var(--bs-pink); outline-offset: 2px; }

.bs-choice-body  { flex: 1; }
.bs-choice-title {
	font-family:   var(--bs-heading-font);
	font-size:     1.05rem;
	color:         var(--bs-navy);
	margin-bottom: 4px;
}
.bs-choice-desc  { font-size: .9rem; color: var(--bs-text-muted); margin-bottom: 0; line-height: 1.5; }
.bs-choice-desc p { margin-bottom: 6px; }
.bs-choice-desc p:last-child { margin-bottom: 0; }
.bs-choice-price {
	font-weight: 700;
	font-size:   1.1rem;
	color:       var(--bs-navy);
	white-space: nowrap;
	padding-top: 2px;
}

.bs-builder-or {
	text-align: center;
	color:      var(--bs-text-muted);
	font-size:  .875rem;
	margin:     20px 0;
	position:   relative;
}
.bs-builder-or::before,
.bs-builder-or::after {
	content:    '';
	position:   absolute;
	top:        50%;
	width:      44%;
	height:     1px;
	background: var(--bs-border-light);
}
.bs-builder-or::before { left: 0; }
.bs-builder-or::after  { right: 0; }

.bs-builder-total {
	background:      var(--bs-cream-dark);
	border:          1px solid var(--bs-border-light);
	border-radius:   var(--bs-radius-lg);
	padding:         20px 28px;
	margin-top:      16px;
	display:         flex;
	justify-content: space-between;
	align-items:     center;
}
.bs-builder-total-label  { font-weight: 700; color: var(--bs-navy); }
.bs-builder-total-amount {
	font-size:   1.5rem;
	font-weight: 700;
	color:       var(--bs-navy);
	font-family: var(--bs-heading-font);
}

.bs-builder-actions { margin-top: 28px; display: flex; flex-direction: column; gap: 12px; align-items: center; }
.bs-builder-actions .bs-btn { width: 100%; max-width: 400px; text-align: center; }
.bs-builder-detail-link { font-size: .9rem; color: var(--bs-text-muted); }
.bs-builder-detail-link a { color: var(--bs-navy); }

/* ── Gift toggle ─────────────────────────────────────────────── */
.bs-builder-gift-toggle { margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--bs-border, #e0d8cc); }
.bs-gift-toggle-label { display: flex; align-items: center; gap: 10px; cursor: pointer; font-size: 1rem; color: var(--bs-navy); }
.bs-gift-toggle-label input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--bs-navy); flex-shrink: 0; cursor: pointer; }
.bs-gift-info { margin-top: 12px; padding: 14px 16px; background: #f0f4f8; border-left: 3px solid var(--bs-navy); border-radius: 0 4px 4px 0; font-size: .9rem; color: #444; line-height: 1.6; }

/* --------------------------------------------------------------------------
   Redeem gift page (/redeem/)
   -------------------------------------------------------------------------- */
.bs-redeem-wrap {
	max-width:   480px;
	margin:      56px auto;
	text-align:  center;
}
.bs-redeem-title {
	font-family:   var(--bs-heading-font);
	font-size:     clamp(1.8rem, 4vw, 2.4rem);
	color:         var(--bs-navy);
	margin-bottom: 12px;
}
.bs-redeem-intro {
	font-size:     1rem;
	color:         var(--bs-text-muted);
	line-height:   1.6;
	margin-bottom: 32px;
}
.bs-redeem-form { text-align: left; }
.bs-redeem-notice {
	padding:       12px 16px;
	border-radius: 4px;
	margin-bottom: 20px;
	font-size:     .95rem;
	text-align:    left;
}
.bs-redeem-success { background: #e8f5e9; border: 1px solid #4caf50; color: #2e7d32; }
.bs-redeem-error   { background: #fdecea; border: 1px solid #e57373; color: #c62828; }
.bs-redeem-info    { background: #e3f2fd; border: 1px solid #64b5f6; color: #1565c0; }
.bs-redeem-label {
	display:       block;
	font-size:     .875rem;
	font-weight:   600;
	margin-bottom: 8px;
	color:         var(--bs-navy);
}
.bs-redeem-input {
	width:          100%;
	padding:        12px 16px;
	font-size:      1.4rem;
	font-family:    'Courier New', Courier, monospace;
	letter-spacing: 4px;
	text-transform: uppercase;
	border:         2px solid var(--bs-border-light);
	border-radius:  4px;
	margin-bottom:  16px;
	color:          var(--bs-navy);
	box-sizing:     border-box;
}
.bs-redeem-input:focus { outline: none; border-color: var(--bs-navy); }
.bs-redeem-btn { width: 100%; padding: 14px; font-size: 1rem; }
.bs-redeem-login-note {
	margin-top: 16px;
	font-size:  .875rem;
	color:      var(--bs-text-muted);
	text-align: center;
}
.bs-redeem-login-note a { color: var(--bs-navy); }

/* --------------------------------------------------------------------------
   Guide page
   -------------------------------------------------------------------------- */
.bs-guide-header { padding: 48px 0 32px; }
.bs-guide-header-inner {
	display:         flex;
	justify-content: space-between;
	align-items:     flex-start;
	gap:             20px;
}

.bs-guide-toc {
	background:    var(--bs-white);
	border:        1px solid var(--bs-border-light);
	border-radius: var(--bs-radius-lg);
	padding:       24px 28px;
	margin-bottom: 48px;
	max-width:     560px;
}
.bs-toc-title {
	font-family:    var(--bs-body-font);
	font-size:      .75rem;
	color:          var(--bs-navy);
	margin-bottom:  12px;
	text-transform: uppercase;
	letter-spacing: .08em;
	font-weight:    700;
}
.bs-toc-list { display: flex; flex-direction: column; gap: 6px; }
.bs-toc-list li a {
	text-decoration: none;
	color:           var(--bs-navy);
	font-size:       .95rem;
}
.bs-toc-list li a:hover { text-decoration: underline; }
.bs-toc-sub { padding-left: 20px; font-size: .9rem; }

.bs-guide-content { max-width: 720px; }
.bs-guide-section { margin-bottom: 56px; scroll-margin-top: calc(var(--bs-header-h) + 16px); }
.bs-guide-section h2 {
	font-family:    var(--bs-heading-font);
	font-size:      1.6rem;
	color:          var(--bs-navy);
	margin-bottom:  16px;
	padding-bottom: 10px;
	border-bottom:  2px solid var(--bs-pink-light);
}
.bs-guide-section p { margin-bottom: 14px; }
.bs-print-btn { display: inline-flex; align-items: center; gap: 6px; }

/* --------------------------------------------------------------------------
   My Projects — "Start Another Project" section
   -------------------------------------------------------------------------- */
.bs-start-another {
	text-align:  center;
	padding:     48px 0;
	border-top:  1px solid var(--bs-border-light);
	margin-top:  40px;
}
.bs-start-another h2 { font-family: var(--bs-heading-font); font-size: 1.4rem; color: var(--bs-navy); margin-bottom: 10px; }
.bs-start-another p  { color: var(--bs-text-muted); margin-bottom: 20px; }

/* ==========================================================================
   DESIGN PASS — Custom layout classes for Gutenberg blocks
   Admin applies these in "Additional CSS class(es)" field
   ========================================================================== */

/* --------------------------------------------------------------------------
   bs-pathway-cards — Three-column card layout for pathways
   Apply to a Columns block
   -------------------------------------------------------------------------- */
.bs-pathway-cards.wp-block-columns { gap: 24px !important; align-items: stretch; }
.bs-pathway-cards .wp-block-column {
	background:    var(--bs-white);
	border:        1px solid var(--bs-border-light);
	border-radius: var(--bs-radius-lg);
	padding:       36px 28px;
	text-align:    center;
	box-shadow:    var(--bs-shadow-card);
	transition:    box-shadow .25s, transform .25s;
	position:      relative;
	overflow:      hidden;
}
.bs-pathway-cards .wp-block-column::after {
	content:          '';
	position:         absolute;
	bottom:           0;
	left:             0;
	right:            0;
	height:           3px;
	background:       var(--bs-pink);
	transform:        scaleX(0);
	transform-origin: left;
	transition:       transform .3s ease;
}
.bs-pathway-cards .wp-block-column:hover {
	box-shadow: var(--bs-shadow-lg);
	transform:  translateY(-3px);
}
.bs-pathway-cards .wp-block-column:hover::after { transform: scaleX(1); }
.bs-pathway-cards .wp-block-column .wp-block-image { margin: 0 auto 20px; }
.bs-pathway-cards .wp-block-column .wp-block-image img { width: 72px; height: 72px; object-fit: contain; margin: 0 auto; }
.bs-pathway-cards .wp-block-column h2.wp-block-heading,
.bs-pathway-cards .wp-block-column h3.wp-block-heading { font-size: 1.3rem; margin-top: 0; margin-bottom: 10px; color: var(--bs-navy); }
.bs-pathway-cards .wp-block-column p.wp-block-paragraph { font-size: .95rem; color: var(--bs-text-muted); }
.bs-pathway-cards .wp-block-column .wp-block-buttons { margin-top: 20px; }
.bs-pathway-cards .wp-block-column .wp-block-button__link {
	background-color: transparent !important;
	color:            var(--bs-navy) !important;
	border:           2px solid var(--bs-navy) !important;
	padding:          10px 22px !important;
	font-size:        .9rem !important;
}
.bs-pathway-cards .wp-block-column .wp-block-button__link:hover {
	background-color: var(--bs-navy) !important;
	color:            var(--bs-white) !important;
}

/* --------------------------------------------------------------------------
   bs-trust-grid — Trust/feature columns with cream background tiles
   Apply to a Columns block
   -------------------------------------------------------------------------- */
.bs-trust-grid.wp-block-columns { gap: 20px !important; }
.bs-trust-grid .wp-block-column {
	background:    var(--bs-cream-dark);
	border-radius: var(--bs-radius-lg);
	padding:       32px 28px;
	transition:    box-shadow .2s;
}
.bs-trust-grid .wp-block-column:hover { box-shadow: var(--bs-shadow); }
.bs-trust-grid .wp-block-column .wp-block-image img { width: 48px; height: 48px; object-fit: contain; margin-bottom: 14px; }
.bs-trust-grid .wp-block-column h3.wp-block-heading { font-size: 1.1rem; margin-bottom: 8px; }
.bs-trust-grid .wp-block-column p.wp-block-paragraph { font-size: .9rem; color: var(--bs-text-muted); margin: 0; }

/* --------------------------------------------------------------------------
   bs-timeline — Alternating vertical timeline
   Apply to an Ordered List block
   -------------------------------------------------------------------------- */
.bs-timeline {
	position:      relative;
	list-style:    none;
	padding:       20px 0;
	margin:        48px auto;
	max-width:     860px;
	counter-reset: bs-step;
}
/* Vertical centre line */
.bs-timeline::before {
	content:    '';
	position:   absolute;
	left:       50%;
	transform:  translateX(-50%);
	top:        0;
	bottom:     0;
	width:      2px;
	background: linear-gradient(to bottom, transparent 0%, var(--bs-pink) 8%, var(--bs-pink) 92%, transparent 100%);
}
.bs-timeline > li {
	counter-increment: bs-step;
	position:          relative;
	width:             calc(50% - 44px);
	background:        var(--bs-white);
	border:            1px solid var(--bs-border-light);
	border-radius:     var(--bs-radius-lg);
	padding:           24px 28px;
	box-shadow:        var(--bs-shadow-card);
	margin-bottom:     48px;
	z-index:           1;
}
.bs-timeline > li:nth-child(odd)  { margin-left: 0;    margin-right: auto; }
.bs-timeline > li:nth-child(even) { margin-left: auto; margin-right: 0;    }
/* Numbered circle on the centre line */
.bs-timeline > li::before {
	content:       counter(bs-step);
	position:      absolute;
	top:           20px;
	width:         40px;
	height:        40px;
	border-radius: 50%;
	background:    var(--bs-navy);
	color:         var(--bs-white);
	font-weight:   700;
	font-size:     .95rem;
	text-align:    center;
	line-height:   40px;
	box-shadow:    0 0 0 5px var(--bs-cream);
	z-index:       2;
}
.bs-timeline > li:nth-child(odd)::before  { right: -60px; }
.bs-timeline > li:nth-child(even)::before { left:  -60px; }
.bs-timeline > li > strong,
.bs-timeline > li > b {
	display:       block;
	color:         var(--bs-navy);
	font-family:   var(--bs-heading-font);
	font-size:     1.05rem;
	margin-bottom: 6px;
}

/* --------------------------------------------------------------------------
   bs-highlight-box — Callout/highlight panel
   Apply to a Group block
   -------------------------------------------------------------------------- */
.bs-highlight-box {
	background:    var(--bs-navy-light);
	border-left:   4px solid var(--bs-navy);
	border-radius: 0 var(--bs-radius-lg) var(--bs-radius-lg) 0;
	padding:       28px 32px !important;
}
.bs-highlight-box p { margin-bottom: 10px; }

/* --------------------------------------------------------------------------
   bs-faq — FAQ accordion wrapper
   Apply to a Group block containing Details blocks
   -------------------------------------------------------------------------- */
.bs-faq .wp-block-details {
	border:        1px solid var(--bs-border-light);
	border-radius: var(--bs-radius);
	padding:       0 24px;
	margin-bottom: 10px;
	background:    var(--bs-white);
	transition:    border-color .15s, box-shadow .15s;
}
.bs-faq .wp-block-details summary {
	border-bottom: none;
	padding:       20px 44px 20px 0;
}
.bs-faq .wp-block-details[open] {
	border-color: var(--bs-navy);
	box-shadow:   0 0 0 2px rgba(9,58,102,.08);
}
.bs-faq .wp-block-details[open] summary { color: var(--bs-navy); }

/* Traditional FAQ with heading + paragraph pairs */
.bs-faq-list .wp-block-heading {
	font-size:    1.05rem;
	color:        var(--bs-navy);
	margin-top:   32px;
	margin-bottom: 8px;
	padding-left: 20px;
	border-left:  3px solid var(--bs-pink);
}
.bs-faq-list .wp-block-paragraph {
	padding-left: 20px;
	color:        var(--bs-text-muted);
}

/* --------------------------------------------------------------------------
   bs-testimonials — Testimonial quote cards
   Apply to a Columns block
   -------------------------------------------------------------------------- */
.bs-testimonials.wp-block-columns { gap: 24px !important; }
.bs-testimonials .wp-block-column {
	background:    var(--bs-white);
	border:        1px solid var(--bs-border-light);
	border-radius: var(--bs-radius-lg);
	padding:       36px 28px 28px;
	box-shadow:    var(--bs-shadow-card);
	position:      relative;
}
.bs-testimonials .wp-block-column::before {
	content:     '\201C';
	position:    absolute;
	top:         12px;
	left:        24px;
	font-family: var(--bs-heading-font);
	font-size:   4.5rem;
	color:       var(--bs-pink);
	line-height: 1;
	opacity:     .5;
}
.bs-testimonials .wp-block-column p.wp-block-paragraph {
	font-style:  italic;
	color:       var(--bs-text-muted);
	font-size:   .95rem;
	line-height: 1.7;
	padding-top: 28px;
}
.bs-testimonials .wp-block-column > strong:last-child,
.bs-testimonials .wp-block-column cite {
	font-weight: 700;
	font-style:  normal;
	color:       var(--bs-navy);
	font-size:   .875rem;
	margin-top:  16px;
	display:     block;
}

/* --------------------------------------------------------------------------
   bs-feature-list — Checkmark icon list
   Apply to a List block
   -------------------------------------------------------------------------- */
.bs-feature-list.wp-block-list,
ul.bs-feature-list {
	list-style:     none;
	padding-left:   0;
	display:        flex;
	flex-direction: column;
	gap:            12px;
	margin-bottom:  20px;
}
.bs-feature-list li {
	padding-left: 32px;
	position:     relative;
	font-size:    .95rem;
	color:        var(--bs-text);
	line-height:  1.5;
	margin-bottom: 0;
}
.bs-feature-list li::before {
	content:             '';
	position:            absolute;
	left:                0;
	top:                 4px;
	width:               20px;
	height:              20px;
	border-radius:       50%;
	background-color:    var(--bs-pink);
	background-image:    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10' fill='none'%3E%3Cpath d='M1 5l3.5 3.5L11 1' stroke='%23093A66' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat:   no-repeat;
	background-position: center;
	background-size:     11px 9px;
}

/* --------------------------------------------------------------------------
   bs-stat-row — Statistics / numbers row
   Apply to a Columns block
   -------------------------------------------------------------------------- */
.bs-stat-row.wp-block-columns {
	gap:           0 !important;
	border-top:    1px solid var(--bs-border-light);
	border-bottom: 1px solid var(--bs-border-light);
	padding:       40px 0;
}
.bs-stat-row .wp-block-column {
	text-align:   center;
	padding:      20px 24px;
	border-right: 1px solid var(--bs-border-light);
}
.bs-stat-row .wp-block-column:last-child { border-right: none; }
.bs-stat-row h2.wp-block-heading,
.bs-stat-row h3.wp-block-heading { font-size: 2.8rem; color: var(--bs-navy); margin-bottom: 4px; }
.bs-stat-row .wp-block-paragraph {
	font-size:      .875rem;
	color:          var(--bs-text-muted);
	text-transform: uppercase;
	letter-spacing: .08em;
	font-weight:    700;
	margin:         0;
}

/* --------------------------------------------------------------------------
   bs-intro-cols — Two-column image + text intro
   Apply to a Media & Text block or Columns block
   -------------------------------------------------------------------------- */
.bs-intro-cols.wp-block-columns {
	gap:         64px;
	align-items: center;
	padding:     40px 0;
}
.bs-intro-cols.wp-block-media-text {
	gap:         48px;
	align-items: center;
}
.bs-intro-cols .wp-block-column:first-child h2.wp-block-heading { font-size: 2.2rem; }
.bs-intro-cols img { border-radius: var(--bs-radius-lg); box-shadow: var(--bs-shadow-lg); }

/* --------------------------------------------------------------------------
   bs-team-grid — Team member card grid
   Apply to a Columns block
   -------------------------------------------------------------------------- */
.bs-team-grid.wp-block-columns { gap: 32px !important; }
.bs-team-grid .wp-block-column { text-align: center; }
.bs-team-grid .wp-block-column img {
	border-radius: 50%;
	width:         120px;
	height:        120px;
	object-fit:    cover;
	margin:        0 auto 16px;
	border:        3px solid var(--bs-pink-light);
}
.bs-team-grid h3.wp-block-heading { font-size: 1.1rem; margin-bottom: 4px; }
.bs-team-grid .wp-block-paragraph { font-size: .9rem; color: var(--bs-text-muted); }

/* --------------------------------------------------------------------------
   bs-separator-pink — Short decorative pink divider
   Apply to a Separator block
   -------------------------------------------------------------------------- */
.bs-separator-pink.wp-block-separator {
	border-top:    3px solid var(--bs-pink) !important;
	max-width:     80px !important;
	margin:        20px 0 28px !important;
}
.has-text-align-center .bs-separator-pink.wp-block-separator,
.bs-separator-pink.wp-block-separator.aligncenter {
	margin-left:  auto !important;
	margin-right: auto !important;
}

/* --------------------------------------------------------------------------
   bs-numbered-steps — Auto-numbered process steps
   Apply to a Group block containing headings + paragraphs
   -------------------------------------------------------------------------- */
.bs-numbered-steps { counter-reset: step-count; }
.bs-numbered-steps h2.wp-block-heading,
.bs-numbered-steps h3.wp-block-heading {
	counter-increment: step-count;
	padding-left:      60px;
	position:          relative;
	margin-top:        40px;
}
.bs-numbered-steps h2.wp-block-heading::before,
.bs-numbered-steps h3.wp-block-heading::before {
	content:        counter(step-count);
	position:       absolute;
	left:           0;
	top:            50%;
	transform:      translateY(-50%);
	width:          40px;
	height:         40px;
	border-radius:  50%;
	background:     var(--bs-navy);
	color:          var(--bs-white);
	font-family:    var(--bs-body-font);
	font-size:      .9rem;
	font-weight:    700;
	display:        flex;
	align-items:    center;
	justify-content: center;
	flex-shrink:    0;
	line-height:    1;
}

/* ==========================================================================
   HOME PAGE — Layout and section treatment
   ========================================================================== */

/* ── All direct block children: constrain width, add vertical rhythm ── */
.bs-home > *:not(.alignfull):not(.alignwide) {
	max-width:    var(--bs-max-width);
	margin-left:  auto;
	margin-right: auto;
	padding-left:  24px;
	padding-right: 24px;
}
.bs-home > .wp-block-media-text { padding-top: 0; padding-bottom: 0; }
.bs-home > .wp-block-spacer     { padding: 0; }

/* ── Vertical spacing between sections ── */
.bs-home > * + *                        { margin-top: 32px; }
.bs-home > .wp-block-media-text + *     { margin-top: 48px; }
.bs-home > * + .wp-block-media-text     { margin-top: 48px; }
.bs-home > .wp-block-group + *          { margin-top: 48px; }
.bs-home > * + .wp-block-group          { margin-top: 48px; }
.bs-home > .wp-block-heading + *        { margin-top: 12px; }
.bs-home > .wp-block-paragraph + .wp-block-buttons { margin-top: 8px; }

/* ── Centre-align standalone text/buttons on home ── */
.bs-home > .wp-block-heading   { text-align: center; }
.bs-home > .wp-block-paragraph { text-align: center; max-width: 680px; }
.bs-home > .wp-block-buttons   { justify-content: center; }

/* ── Default Media & Text: clean, no background, image rounded ── */
.bs-home > .wp-block-media-text {
	background:    transparent;
	border-radius: 0;
	gap:           48px;
	align-items:   center;
	padding:       48px 24px;
}
.bs-home > .wp-block-media-text img { border-radius: var(--bs-radius-lg); }

/* ── bs-hero-block: linen texture contained hero box ──
   Admin: add class "bs-hero-block" to the first Media & Text block  */
.bs-home > .wp-block-media-text.bs-hero-block {
	background-color:  #dbe4ec;
	background-image:  url('../img/linen-texture.png');
	background-repeat: repeat;
	background-size:   220px auto;
	border-radius:     var(--bs-radius-lg);
	padding:           64px 56px;
}
.bs-home > .wp-block-media-text.bs-hero-block .wp-block-heading {
	font-size:   2.4rem;
	line-height: 1.15;
	color:       var(--bs-navy);
}
.bs-home > .wp-block-media-text.bs-hero-block .wp-block-paragraph { color: var(--bs-text); }

/* ── bs-edition-card: clean bordered card for pathway rows ──
   Admin: add class "bs-edition-card" to each Reflections/Chronicle/Wisdom
   Media & Text block. Works whether nested in a Group or directly on page. */
.wp-block-media-text.bs-edition-card {
	background:    var(--bs-white);
	border:        1.5px solid var(--bs-border);
	border-radius: var(--bs-radius-lg);
	padding:       32px 40px !important;
	gap:           40px;
	margin-top:    16px;
	max-width:     var(--bs-max-width);
	margin-left:   auto;
	margin-right:  auto;
}
.wp-block-media-text.bs-edition-card img {
	border-radius: 0;
	max-width:     160px;
}
.wp-block-media-text.bs-edition-card .wp-block-heading {
	font-size:   1.625rem;
	line-height: 1.3;
	color:       var(--bs-navy);
}
.wp-block-media-text.bs-edition-card .wp-block-media-text__content {
	padding: 0;
}

/* ── bs-editions-container: outer bordered box wrapping all edition cards ──
   Admin: add class "bs-editions-container" to a Group block that wraps all
   three edition cards + the section heading  */
.bs-editions-container.wp-block-group {
	border:        1.5px solid var(--bs-border);
	border-radius: var(--bs-radius-lg);
	padding:       40px 40px !important;
	background:    var(--bs-white);
	margin-top:    40px;
}
.bs-editions-container > .wp-block-group__inner-container { padding: 0; }

/* ── Columns on home page: centred icon grid ── */
.bs-home > .wp-block-columns .wp-block-column { text-align: center; }
.bs-home > .wp-block-columns .wp-block-column .wp-block-image { margin: 0 auto 14px; }
.bs-home > .wp-block-columns .wp-block-column .wp-block-image img { margin: 0 auto; max-width: 80px; }
.bs-home > .wp-block-columns h2.wp-block-heading,
.bs-home > .wp-block-columns h3.wp-block-heading { font-size: 1.1rem; margin-bottom: 6px; }
.bs-home > .wp-block-columns .wp-block-paragraph { font-size: .875rem; color: var(--bs-text-muted); }

/* ── bs-how-it-works-section: light textured background for icon grid ──
   Admin: add class "bs-how-it-works-section" to the Group block wrapping
   the "How it works" heading + columns  */
.bs-how-it-works-section.wp-block-group {
	background-color:  #dbe4ec;
	background-image:  url('../img/linen-texture.png');
	background-repeat: repeat;
	background-size:   220px auto;
	border-radius:     var(--bs-radius-lg);
	padding:           48px 40px !important;
	margin-top:        40px;
}
.bs-how-it-works-section .wp-block-heading { text-align: center; margin-bottom: 32px; }
.bs-how-it-works-section .wp-block-columns { padding: 0; }

/* Bottom row: 2 of 3 columns used — constrain to 2/3 width so each
   column stays the same size as the three columns in the row above */
.bs-how-it-works-section .wp-block-columns:last-of-type {
	max-width:    66.67%;
	margin-left:  auto;
	margin-right: auto;
}

/* ==========================================================================
   INNER PAGES (page.php) — Better entry-content block spacing
   ========================================================================== */

/* Media & Text inside entry content */
.bs-entry-content .wp-block-media-text {
	gap:           48px;
	margin:        48px 0;
	align-items:   center;
}
.bs-entry-content .wp-block-media-text img { border-radius: var(--bs-radius-lg); }

/* Columns inside entry content */
.bs-entry-content .wp-block-columns { gap: 28px; margin: 40px 0; }
.bs-entry-content .wp-block-columns .wp-block-column {
	background:    var(--bs-white);
	border:        1px solid var(--bs-border-light);
	border-radius: var(--bs-radius-lg);
	padding:       28px 24px;
	box-shadow:    var(--bs-shadow-card);
}
/* Don't card columns that already have a custom class */
.bs-entry-content .bs-pathway-cards .wp-block-column,
.bs-entry-content .bs-trust-grid .wp-block-column,
.bs-entry-content .bs-testimonials .wp-block-column { background: revert; border: revert; box-shadow: revert; padding: revert; }

/* Buttons inside entry content */
.bs-entry-content .wp-block-buttons { margin: 32px 0; }

/* How it Works — section headings get a pink underline accent */
.bs-entry-content h2.wp-block-heading {
	position:      relative;
	padding-bottom: 16px;
	margin-bottom: 20px;
}
.bs-entry-content h2.wp-block-heading::after {
	content:    '';
	position:   absolute;
	bottom:     0;
	left:       0;
	width:      48px;
	height:     3px;
	background: var(--bs-pink);
	border-radius: 2px;
}

/* ==========================================================================
   FAQ PAGE — Tighten spacing between accordion items
   ========================================================================== */
.bs-entry-content .wp-block-details { margin-bottom: 0; }
.bs-entry-content .wp-block-details + .wp-block-details { border-top: none; }

/* FAQ headings (H3 used as Q labels) — left pink border style */
.bs-entry-content h3.wp-block-heading {
	font-size:     1.15rem;
	margin-top:    36px;
	margin-bottom: 10px;
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1024px) {
	.bs-footer-inner  { grid-template-columns: 1fr 1fr; }
	.bs-footer-brand  { grid-column: span 2; }
	.bs-footer-signup { grid-column: span 2; }

	.bs-pathway-cards.wp-block-columns { gap: 16px !important; }
}

@media (max-width: 900px) {
	/* Timeline stacks to left-rail */
	.bs-timeline > li { width: 100%; margin: 0 0 28px !important; }
	.bs-timeline::before { left: 20px; }
	.bs-timeline > li::before { left: 0 !important; right: auto !important; top: 18px; }
	.bs-timeline > li { padding-left: 60px; }

	/* Stats row stacks 2×2 */
	.bs-stat-row .wp-block-column:nth-child(2n) { border-right: none; }

	/* Intro cols stack */
	.bs-intro-cols.wp-block-columns { gap: 32px; padding: 0; }
}

@media (max-width: 768px) {
	:root {
		--bs-font-size: 17px;
		--bs-section-gap: 56px;
	}

	/* Mobile nav */
	.bs-nav-toggle { display: flex; }

	.bs-primary-nav {
		display:        none;
		position:       absolute;
		top:            var(--bs-header-h);
		left:           0;
		right:          0;
		background:     var(--bs-white);
		border-bottom:  1px solid var(--bs-border-light);
		padding:        16px 24px;
		z-index:        199;
		flex-direction: column;
		align-items:    flex-start;
		box-shadow:     0 8px 24px rgba(0,0,0,.08);
	}
	.bs-primary-nav.is-open { display: flex; }

	.bs-primary-nav .bs-nav-list,
	.bs-primary-nav ul.bs-nav-list { flex-direction: column; align-items: flex-start; width: 100%; }
	.bs-primary-nav .bs-nav-list > li { width: 100%; }
	.bs-primary-nav .bs-nav-list > li > a { display: block; padding: 12px 10px; font-size: 1rem; }

	.bs-nav-dropdown  { width: 100%; }
	.bs-dropdown-menu { position: static; box-shadow: none; border: none; padding-left: 16px; }
	.bs-nav-dropdown.is-open .bs-dropdown-menu { display: flex; flex-direction: column; }

	.bs-site-header { position: relative; }

	/* Footer */
	.bs-footer-inner  { grid-template-columns: 1fr; }
	.bs-footer-brand  { grid-column: span 1; }
	.bs-footer-signup { grid-column: span 1; }

	/* Typography */
	.bs-page-title    { font-size: 2rem; }
	h1.wp-block-heading { font-size: 2.2rem; }
	h2.wp-block-heading { font-size: 1.9rem; }

	/* Cover/hero */
	.wp-block-cover { min-height: 400px; padding: 60px 0; }
	.wp-block-cover .wp-block-heading { font-size: 2.2rem; }
	.bs-hero .wp-block-heading { font-size: 2.2rem; }

	/* Group sections */
	.wp-block-group.alignfull { padding: 56px 0; }

	/* Columns stack */
	.wp-block-columns,
	.bs-pathway-cards.wp-block-columns,
	.bs-trust-grid.wp-block-columns,
	.bs-testimonials.wp-block-columns,
	.bs-stat-row.wp-block-columns { flex-direction: column !important; }

	.bs-stat-row .wp-block-column { border-right: none; border-bottom: 1px solid var(--bs-border-light); }
	.bs-stat-row .wp-block-column:last-child { border-bottom: none; }

	.wp-block-media-text { grid-template-columns: 1fr !important; }
	.wp-block-media-text.has-media-on-the-right .wp-block-media-text__media { order: -1; }

	/* Guide */
	.bs-guide-header-inner { flex-direction: column; }
	.bs-guide-toc { max-width: 100%; }

	/* Builder */
	.bs-choice { padding: 16px 18px; }

	/* Pull quote */
	.wp-block-pullquote { padding: 28px 24px; }
	.wp-block-pullquote blockquote p { font-size: 1.15rem; }
}

@media (max-width: 480px) {
	:root { --bs-font-size: 16px; }
	.bs-btn-lg { padding: 15px 32px; }
	.bs-builder-form { padding: 0; }
}

/* ==========================================================================
   Print styles (Guide page)
   ========================================================================== */
@media print {
	.bs-site-header,
	.bs-site-footer,
	.bs-guide-toc,
	.bs-print-btn,
	.bs-page-cta,
	.bs-nav-toggle { display: none !important; }

	body { background: white !important; color: black !important; font-size: 12pt; }

	.bs-guide-section { page-break-inside: avoid; margin-bottom: 28pt; }
	.bs-guide-section h2 { page-break-after: avoid; color: black !important; border-bottom: 1pt solid #999; }

	a { color: black; text-decoration: none; }
	a[href]::after { content: " (" attr(href) ")"; font-size: 10pt; color: #555; }

	iframe, video, .wp-block-embed { display: none !important; }
}


/* ==========================================================================
   BS Dashboard (/my-account/)
   ========================================================================== */

.bs-dashboard {
	display: flex;
	gap: 48px;
	max-width: var(--bs-max-width);
	margin: 56px auto;
	padding: 0 24px;
	align-items: flex-start;
}

/* ── Sidebar ────────────────────────────────────────────────────────────── */

.bs-dashboard-sidebar {
	width: 210px;
	flex-shrink: 0;
	position: sticky;
	top: calc(var(--bs-header-h) + 24px);
}

.bs-dash-nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
	border: 1px solid var(--bs-border);
	border-radius: var(--bs-radius-lg);
	overflow: hidden;
	background: var(--bs-white);
	box-shadow: var(--bs-shadow);
}

.bs-dash-nav li {
	border-bottom: 1px solid var(--bs-border-light);
}

.bs-dash-nav li:last-child {
	border-bottom: none;
}

.bs-dash-nav a {
	display: block;
	padding: 13px 18px;
	color: var(--bs-navy);
	text-decoration: none;
	font-size: 0.93rem;
	transition: background 0.15s, color 0.15s;
}

.bs-dash-nav a:hover {
	background: var(--bs-cream);
	color: var(--bs-navy-dark);
}

.bs-dash-nav li.is-active > a {
	background: var(--bs-navy);
	color: var(--bs-white);
	font-weight: 500;
}

.bs-dash-nav-logout {
	margin-top: 0;
}

.bs-dash-nav-logout a {
	color: var(--bs-text-muted);
	font-size: 0.88rem;
}

.bs-dash-nav-logout a:hover {
	background: transparent;
	color: var(--bs-text);
}

/* ── Main content ───────────────────────────────────────────────────────── */

.bs-dashboard-main {
	flex: 1;
	min-width: 0;
}

.bs-dash-section-title {
	font-size: 1.7rem;
	color: var(--bs-navy);
	margin: 0 0 24px;
}

.bs-dash-section h2 {
	font-size: 1.4rem;
	color: var(--bs-navy);
	margin: 0 0 20px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--bs-cream-dark);
}

.bs-dash-h2-gap {
	margin-top: 48px !important;
}

.bs-dash-explainer {
	color: var(--bs-text-muted);
	margin-bottom: 32px;
	font-size: 0.95rem;
	line-height: 1.65;
	padding: 16px 20px;
	background: var(--bs-cream);
	border-radius: var(--bs-radius);
	border-left: 3px solid var(--bs-pink);
}

.bs-dash-explainer a {
	color: var(--bs-navy);
	font-weight: 500;
}

/* Project cards in dashboard */

.bs-dashboard .bs-project-card {
	background: var(--bs-white);
	border: 1px solid var(--bs-border);
	border-radius: var(--bs-radius-lg);
	padding: 22px 26px;
	margin-bottom: 16px;
	box-shadow: var(--bs-shadow-card);
}

.bs-dashboard .bs-project-card--completed {
	opacity: 0.85;
}

.bs-project-card-header {
	display: flex;
	align-items: baseline;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 10px;
}

.bs-dashboard .bs-project-title {
	font-size: 1.15rem;
	margin: 0;
	color: var(--bs-navy);
	font-weight: 600;
}

.bs-project-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	color: var(--bs-text-muted);
	font-size: 0.88rem;
	margin-bottom: 16px;
}

.bs-project-completion-date {
	color: var(--bs-text-muted);
	font-size: 0.88rem;
	margin: 0 0 14px;
}

.bs-status-note {
	color: var(--bs-text-muted);
	font-size: 0.9rem;
	font-style: italic;
	margin: 0;
}

.bs-btn-sm {
	padding: 8px 18px;
	font-size: 0.9rem;
}

.bs-empty-state {
	color: var(--bs-text-muted);
	font-style: italic;
}

/* ── Purchases table ────────────────────────────────────────────────────── */

.bs-purchases-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.93rem;
	border-radius: var(--bs-radius-lg);
	overflow: hidden;
	box-shadow: var(--bs-shadow);
}

.bs-purchases-table th {
	text-align: left;
	padding: 11px 16px;
	background: var(--bs-navy);
	color: var(--bs-white);
	font-weight: 500;
	font-size: 0.82rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.bs-purchases-table td {
	padding: 13px 16px;
	background: var(--bs-white);
	border-bottom: 1px solid var(--bs-border-light);
	vertical-align: top;
}

.bs-purchases-table tbody tr:last-child td {
	border-bottom: none;
}

.bs-purchases-table tbody tr:hover td {
	background: var(--bs-cream);
}

.bs-order-status {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 12px;
	font-size: 0.8rem;
	font-weight: 500;
	text-transform: capitalize;
	background: var(--bs-navy-light);
	color: var(--bs-navy);
}

.bs-order-status--completed {
	background: #d4edda;
	color: #1a6636;
}

.bs-order-status--processing {
	background: var(--bs-navy-light);
	color: var(--bs-navy);
}

.bs-order-status--on-hold {
	background: #fff3cd;
	color: #856404;
}

.bs-order-status--cancelled,
.bs-order-status--refunded {
	background: #f8d7da;
	color: #721c24;
}

/* ── Upsell block ───────────────────────────────────────────────────────── */

.bs-dash-upsell {
	margin-top: 48px;
	padding: 26px 30px;
	background: var(--bs-cream);
	border-radius: var(--bs-radius-lg);
	border: 1px solid var(--bs-border-light);
}

.bs-dash-upsell h3 {
	margin: 0 0 6px;
	font-size: 1.2rem;
	color: var(--bs-navy);
}

.bs-dash-upsell p {
	color: var(--bs-text-muted);
	margin: 0 0 16px;
	font-size: 0.93rem;
}

/* ── WooCommerce account form (Account Details) ─────────────────────────── */

.bs-dashboard-main .woocommerce-form-row {
	margin-bottom: 18px;
}

.bs-dashboard-main .woocommerce-form-row label {
	display: block;
	margin-bottom: 5px;
	font-weight: 500;
	color: var(--bs-navy);
	font-size: 0.9rem;
}

.bs-dashboard-main .woocommerce-form-row input[type="text"],
.bs-dashboard-main .woocommerce-form-row input[type="email"],
.bs-dashboard-main .woocommerce-form-row input[type="password"] {
	width: 100%;
	max-width: 440px;
	padding: 10px 14px;
	border: 1px solid var(--bs-border);
	border-radius: var(--bs-radius);
	font-family: var(--bs-body-font);
	font-size: 0.95rem;
	color: var(--bs-text);
	background: var(--bs-white);
	transition: border-color 0.15s;
}

.bs-dashboard-main .woocommerce-form-row input:focus {
	outline: none;
	border-color: var(--bs-navy);
}

.bs-dashboard-main .woocommerce-EditAccountForm fieldset {
	border: 1px solid var(--bs-border-light);
	border-radius: var(--bs-radius);
	padding: 20px 24px;
	margin-bottom: 24px;
}

.bs-dashboard-main .woocommerce-EditAccountForm fieldset legend {
	font-family: var(--bs-heading-font);
	font-size: 1.1rem;
	color: var(--bs-navy);
	padding: 0 8px;
}

.bs-dashboard-main .woocommerce-Button,
.bs-dashboard-main button[name="save_account_details"] {
	background: var(--bs-navy);
	color: var(--bs-white);
	border: none;
	padding: 11px 28px;
	border-radius: var(--bs-radius);
	font-family: var(--bs-body-font);
	font-size: 0.95rem;
	font-weight: 500;
	cursor: pointer;
	transition: background 0.2s;
}

.bs-dashboard-main .woocommerce-Button:hover,
.bs-dashboard-main button[name="save_account_details"]:hover {
	background: var(--bs-navy-dark);
}

.bs-dashboard-main .woocommerce-message,
.bs-dashboard-main .woocommerce-error,
.bs-dashboard-main .woocommerce-info {
	padding: 12px 16px;
	border-radius: var(--bs-radius);
	margin-bottom: 20px;
	font-size: 0.93rem;
}

.bs-dashboard-main .woocommerce-message {
	background: #d4edda;
	color: #1a6636;
	border-left: 4px solid #28a745;
}

.bs-dashboard-main .woocommerce-error {
	background: #f8d7da;
	color: #721c24;
	border-left: 4px solid #dc3545;
}

/* ── Responsive ─────────────────────────────────────────────────────────── */

@media ( max-width: 768px ) {
	.bs-dashboard {
		flex-direction: column;
		gap: 24px;
		margin: 32px auto;
	}

	.bs-dashboard-sidebar {
		width: 100%;
		position: static;
	}

	.bs-dash-nav ul {
		display: flex;
		overflow-x: auto;
		border-radius: var(--bs-radius);
	}

	.bs-dash-nav li {
		border-bottom: none;
		border-right: 1px solid var(--bs-border-light);
		flex-shrink: 0;
		white-space: nowrap;
	}

	.bs-dash-nav li:last-child {
		border-right: none;
	}

	.bs-purchases-table th:nth-child(4),
	.bs-purchases-table td:nth-child(4) {
		display: none;
	}
}


/* ==========================================================================
   Checkout page — Biography Studio brand styling
   Targets both WC Block checkout (primary) and classic shortcode (fallback)
   ========================================================================== */

/* ── Page heading + intro ───────────────────────────────────────────────── */

.bs-checkout-header {
	max-width: var(--bs-max-width);
	margin: 0 auto 32px;
	padding: 40px 24px 0;
}

.bs-checkout-heading {
	font-family: var(--bs-heading-font);
	font-size: clamp( 1.8rem, 4vw, 2.6rem );
	color: var(--bs-navy);
	margin: 0 0 12px;
	line-height: 1.2;
}

.bs-checkout-intro {
	color: var(--bs-text-muted);
	font-size: 1rem;
	margin: 0 0 8px;
	line-height: 1.65;
	max-width: 620px;
}

/* ── Block checkout layout wrapper ─────────────────────────────────────── */

.wp-block-woocommerce-checkout {
	max-width: var(--bs-max-width) !important;
	margin: 0 auto !important;
	padding: 0 24px 60px !important;
}

/* ── Step headings ──────────────────────────────────────────────────────── */

.wc-block-components-checkout-step__title {
	font-family: var(--bs-heading-font) !important;
	font-size: 1.4rem !important;
	color: var(--bs-navy) !important;
	font-weight: 600 !important;
}

/* Step number circles */
.wc-block-components-checkout-step__title::before,
.wc-block-components-checkout-step-heading .wc-block-components-checkout-step__title-icon {
	background: var(--bs-navy) !important;
	color: var(--bs-white) !important;
}

/* ── Billing helper text ────────────────────────────────────────────────── */

.bs-billing-helper {
	color: var(--bs-text-muted);
	font-size: 0.88rem;
	font-style: italic;
	margin: -4px 0 16px;
	line-height: 1.5;
}

/* ── Form inputs ────────────────────────────────────────────────────────── */

.wc-block-components-text-input input,
.wc-block-components-select select,
.woocommerce-checkout .input-text,
.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"],
.woocommerce-checkout input[type="password"],
.woocommerce-checkout select {
	border: 1px solid var(--bs-border) !important;
	border-radius: var(--bs-radius) !important;
	font-family: var(--bs-body-font) !important;
	color: var(--bs-text) !important;
	background: var(--bs-white) !important;
	transition: border-color 0.15s !important;
}

.wc-block-components-text-input input:focus,
.woocommerce-checkout .input-text:focus {
	border-color: var(--bs-navy) !important;
	outline: none !important;
	box-shadow: 0 0 0 2px rgba(9, 58, 102, 0.12) !important;
}

.wc-block-components-text-input label,
.woocommerce-checkout label {
	color: var(--bs-text) !important;
	font-size: 0.9rem !important;
}

/* ── Payment section ────────────────────────────────────────────────────── */

.wc-block-components-payment-method-label {
	font-family: var(--bs-body-font) !important;
	color: var(--bs-text) !important;
}

.wc-block-components-payment-method-icon {
	border-radius: 4px !important;
}

/* Radio buttons — navy accent */
.wc-block-components-radio-control__input:checked {
	accent-color: var(--bs-navy) !important;
}

/* ── Order summary sidebar ──────────────────────────────────────────────── */

.wc-block-checkout__sidebar .wc-block-components-order-summary,
.wc-block-checkout__sidebar {
	background: var(--bs-cream) !important;
	border: 1px solid var(--bs-border-light) !important;
	border-radius: var(--bs-radius-lg) !important;
}

/* "Your project" sidebar heading */
.wc-block-checkout__sidebar .wc-block-components-title {
	font-family: var(--bs-heading-font) !important;
	font-size: 1.1rem !important;
	color: var(--bs-navy) !important;
}

/* Hide product image in order summary (clean text-only summary) */
.wc-block-components-order-summary-item__image,
.wc-block-components-order-summary-item > .wc-block-components-order-summary-item__image {
	display: none !important;
}

/* Adjust grid when image column is hidden */
.wc-block-components-order-summary-item {
	grid-template-columns: 1fr auto !important;
	grid-template-areas: "details price" !important;
}

/* Product name in summary */
.wc-block-components-order-summary-item__description {
	font-family: var(--bs-body-font) !important;
	font-size: 0.88rem !important;
	font-weight: 600 !important;
	color: var(--bs-navy) !important;
	line-height: 1.4 !important;
}

/* Short description / meta below product name */
.wc-block-components-order-summary-item__short-description,
.wc-block-components-order-summary-item__individual-prices {
	font-size: 0.8rem !important;
	color: var(--bs-text-muted) !important;
}

/* Totals in sidebar */
.wc-block-components-totals-item__label,
.wc-block-components-totals-item__value {
	color: var(--bs-text) !important;
	font-family: var(--bs-body-font) !important;
}

.wc-block-components-totals-item--total .wc-block-components-totals-item__label,
.wc-block-components-totals-item--total .wc-block-components-totals-item__value {
	color: var(--bs-navy) !important;
	font-weight: 700 !important;
}

/* ── Place order button ─────────────────────────────────────────────────── */

/* Block checkout */
.wc-block-components-checkout-place-order-button {
	background: var(--bs-navy) !important;
	color: var(--bs-white) !important;
	border: none !important;
	border-radius: var(--bs-radius) !important;
	font-family: var(--bs-body-font) !important;
	font-size: 1rem !important;
	font-weight: 500 !important;
	letter-spacing: 0.01em !important;
	padding: 14px 32px !important;
	width: 100% !important;
	transition: background 0.2s !important;
}

.wc-block-components-checkout-place-order-button:hover {
	background: var(--bs-navy-dark) !important;
}

/* Classic checkout */
#place_order {
	background: var(--bs-navy) !important;
	color: var(--bs-white) !important;
	border: none !important;
	border-radius: var(--bs-radius) !important;
	font-family: var(--bs-body-font) !important;
	font-size: 1rem !important;
	font-weight: 500 !important;
	padding: 14px 32px !important;
	width: 100% !important;
	cursor: pointer !important;
	transition: background 0.2s !important;
}

#place_order:hover {
	background: var(--bs-navy-dark) !important;
}

/* ── Small print below button ───────────────────────────────────────────── */

.bs-checkout-smallprint {
	font-size: 0.8rem;
	color: var(--bs-text-muted);
	line-height: 1.55;
	text-align: center;
	margin: 12px 0 0;
}

.bs-checkout-smallprint a {
	color: var(--bs-navy);
	text-decoration: underline;
}

/* ── Notices / validation messages ─────────────────────────────────────── */

.wc-block-components-notice-banner,
.woocommerce-NoticeGroup .woocommerce-error,
.woocommerce-NoticeGroup .woocommerce-message {
	border-radius: var(--bs-radius) !important;
	font-family: var(--bs-body-font) !important;
}

.wc-block-components-notice-banner.is-error {
	border-left-color: #dc3545 !important;
}

/* ── Classic WC checkout layout ─────────────────────────────────────────── */

.woocommerce-checkout #customer_details h3,
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout #order_review h2 {
	font-family: var(--bs-heading-font);
	font-size: 1.3rem;
	color: var(--bs-navy);
	margin-bottom: 16px;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--bs-cream-dark);
}

/* Classic: hide product thumbnail column */
.woocommerce-checkout .product-thumbnail {
	display: none;
}

/* Classic: style order review */
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review h2 {
	font-family: var(--bs-heading-font);
	color: var(--bs-navy);
}

/* ── Responsive ─────────────────────────────────────────────────────────── */

@media ( max-width: 768px ) {
	.bs-checkout-header {
		padding: 24px 16px 0;
		margin-bottom: 20px;
	}

	.wp-block-woocommerce-checkout {
		padding: 0 16px 40px !important;
	}
}


/* ==========================================================================
   Order Received / Thank You page
   ========================================================================== */

.bs-thankyou-header {
	text-align: center;
	padding: 48px 24px 40px;
	max-width: 640px;
	margin: 0 auto 40px;
}

.bs-thankyou-heading {
	font-family: var(--bs-heading-font);
	font-size: clamp(1.6rem, 4vw, 2.4rem);
	font-weight: 600;
	color: var(--bs-navy);
	line-height: 1.25;
	margin-bottom: 16px;
}

.bs-thankyou-intro {
	font-size: 1rem;
	color: var(--bs-text-muted);
	line-height: 1.7;
	margin-bottom: 28px;
	max-width: 500px;
	margin-left: auto;
	margin-right: auto;
}

.bs-thankyou-cta {
	display: inline-block;
	background: var(--bs-navy);
	color: var(--bs-white) !important;
	font-family: var(--bs-body-font);
	font-size: 1rem;
	font-weight: 500;
	padding: 14px 32px;
	border-radius: var(--bs-radius);
	text-decoration: none !important;
	transition: background 0.2s;
	letter-spacing: 0.01em;
}

.bs-thankyou-cta:hover {
	background: var(--bs-navy-dark);
}

/* Order details strip */
.woocommerce-order .woocommerce-order-overview {
	background: var(--bs-cream);
	border: 1px solid var(--bs-border-light);
	border-radius: var(--bs-radius-lg);
	padding: 20px 24px;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 32px;
	list-style: none;
	margin: 0 0 36px;
}

.woocommerce-order .woocommerce-order-overview li {
	font-family: var(--bs-body-font);
	font-size: 0.9rem;
	color: var(--bs-text-muted);
	margin: 0;
}

.woocommerce-order .woocommerce-order-overview li strong {
	color: var(--bs-text);
	font-weight: 600;
	display: block;
	font-size: 0.95rem;
}

/* Order details table */
.woocommerce-order table.woocommerce-table--order-details {
	width: 100%;
	border-collapse: collapse;
	font-family: var(--bs-body-font);
	margin-bottom: 32px;
}

.woocommerce-order table.woocommerce-table--order-details th,
.woocommerce-order table.woocommerce-table--order-details td {
	padding: 12px 16px;
	border-bottom: 1px solid var(--bs-border-light);
	font-size: 0.9rem;
	color: var(--bs-text);
	text-align: left;
}

.woocommerce-order table.woocommerce-table--order-details thead th {
	background: var(--bs-cream);
	font-weight: 600;
	color: var(--bs-navy);
	font-size: 0.85rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.woocommerce-order table.woocommerce-table--order-details tfoot th,
.woocommerce-order table.woocommerce-table--order-details tfoot td {
	font-weight: 600;
	color: var(--bs-navy);
}

/* Section headings (Order details, Your address) */
.woocommerce-order h2.woocommerce-column__title,
.woocommerce-order .woocommerce-order-details__title,
.woocommerce-order .woocommerce-column__title {
	font-family: var(--bs-heading-font);
	font-size: 1.3rem;
	color: var(--bs-navy);
	margin-bottom: 12px;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--bs-cream-dark);
}

/* Billing address block */
.woocommerce-order address {
	font-family: var(--bs-body-font);
	font-size: 0.9rem;
	line-height: 1.7;
	color: var(--bs-text);
}

/* Two-column layout for order-details + address */
.woocommerce-order .woocommerce-customer-details,
.woocommerce-order .col2-set {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
	margin-top: 32px;
}

@media ( max-width: 600px ) {
	.bs-thankyou-header {
		padding: 32px 16px 24px;
	}

	.woocommerce-order .woocommerce-order-overview {
		flex-direction: column;
		gap: 12px;
	}

	.woocommerce-order .woocommerce-customer-details,
	.woocommerce-order .col2-set {
		grid-template-columns: 1fr;
	}
}


/* ==========================================================================
   WC pages — header hardening (checkout + account)
   WC stylesheet resets img height and flex layouts globally on all WC pages.
   These rules re-assert the theme header so it matches the rest of the site.
   ========================================================================== */

/* ── Protect logo size ──────────────────────────────────────────────────── */

body.woocommerce-checkout .bs-logo-img,
body.woocommerce-account .bs-logo-img {
	height: 44px !important;
	width: auto !important;
	max-height: 44px !important;
	max-width: none !important;
	display: block !important;
	object-fit: contain !important;
}

/* ── Protect header flex layout ─────────────────────────────────────────── */

body.woocommerce-checkout .bs-site-header,
body.woocommerce-account .bs-site-header {
	position: sticky !important;
	top: 0 !important;
	z-index: 9999 !important;
}

body.woocommerce-checkout .bs-header-inner,
body.woocommerce-account .bs-header-inner {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	height: var(--bs-header-h) !important;
	gap: 20px !important;
}

body.woocommerce-checkout .bs-logo-link,
body.woocommerce-account .bs-logo-link {
	display: flex !important;
	align-items: center !important;
	flex-shrink: 0 !important;
	text-decoration: none !important;
}

/* ── Protect nav layout ─────────────────────────────────────────────────── */

body.woocommerce-checkout .bs-primary-nav,
body.woocommerce-account .bs-primary-nav {
	display: flex !important;
	align-items: center !important;
	gap: 4px !important;
	flex-shrink: 0 !important;
}

body.woocommerce-checkout .bs-primary-nav .bs-nav-list,
body.woocommerce-checkout .bs-primary-nav ul.bs-nav-list,
body.woocommerce-account .bs-primary-nav .bs-nav-list,
body.woocommerce-account .bs-primary-nav ul.bs-nav-list {
	display: flex !important;
	align-items: center !important;
	gap: 2px !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	flex-direction: row !important;
}

body.woocommerce-checkout .bs-primary-nav .bs-nav-list > li,
body.woocommerce-account .bs-primary-nav .bs-nav-list > li {
	display: list-item !important;
	float: none !important;
	width: auto !important;
}

body.woocommerce-checkout .bs-primary-nav .bs-nav-list > li > a,
body.woocommerce-checkout .bs-nav-link,
body.woocommerce-account .bs-primary-nav .bs-nav-list > li > a,
body.woocommerce-account .bs-nav-link {
	display: block !important;
	white-space: nowrap !important;
	font-size: 0.882rem !important;
	font-weight: 500 !important;
	font-family: var(--bs-body-font) !important;
	padding: 8px 14px !important;
	color: var(--bs-text) !important;
	text-decoration: none !important;
	border-radius: var(--bs-radius) !important;
	letter-spacing: 0.04em !important;
}

/* ── Hide coupon + order-note blocks via CSS (React still manages DOM) ──── */

.wp-block-woocommerce-checkout-order-summary-coupon-form-block,
.wp-block-woocommerce-checkout-order-note-block {
	display: none !important;
}

/* ── Suppress page title on checkout (CSS fallback — page.php is the source) */

body.woocommerce-checkout .bs-page-title,
body.woocommerce-checkout h1.wp-block-heading,
body.woocommerce-checkout h2.wp-block-heading {
	display: none !important;
}

/* Exception: BS custom heading must still show */
body.woocommerce-checkout .bs-checkout-heading {
	display: block !important;
}


/* ==========================================================================
   Marketing page buttons — shared across all .bsh-btn usages
   Defined here so every marketing page template can use them without
   loading page-home.css.
   ========================================================================== */
.bsh-btn {
	display:         inline-block;
	font-family:     var(--bs-ui-font);
	font-size:       0.875rem;
	font-weight:     600;
	letter-spacing:  0.05em;
	text-transform:  uppercase;
	text-decoration: none;
	padding:         13px 28px;
	border-radius:   2px;
	border:          1.5px solid transparent;
	transition:      background 0.18s, color 0.18s, border-color 0.18s;
	white-space:     nowrap;
}
.bsh-btn--primary {
	background:   var(--bs-pink);
	color:        var(--bs-navy);
	border-color: var(--bs-pink);
}
.bsh-btn--primary:hover {
	background:   var(--bs-pink-dark);
	border-color: var(--bs-pink-dark);
	color:        #fff;
}
.bsh-btn--ghost {
	background:   transparent;
	color:        var(--bs-navy);
	border-color: rgba(9,58,102,0.4);
}
.bsh-btn--ghost:hover {
	background:   var(--bs-navy);
	border-color: var(--bs-navy);
	color:        var(--bs-cream);
}
.bsh-btn--navy {
	background:   var(--bs-navy);
	color:        var(--bs-cream);
	border-color: var(--bs-navy);
}
.bsh-btn--navy:hover {
	background:   var(--bs-navy-dark);
	border-color: var(--bs-navy-dark);
	color:        var(--bs-pink);
}


/* ==========================================================================
   Marketing page — section eyebrow labels (global size override)
   Each page uses its own prefixed class; this sets the shared font-size.
   Add new page prefixes here as pages are built.
   ========================================================================== */
.bsab-section__label,
.bsgi-section__label,
.bse-pathway__chapters-label {
	font-size:      1.125rem;
	letter-spacing: 0.1em;
}
