/*
Theme Name: Bambofo Homes
Template: ignition-oikia
Version: 1.0.0
Text Domain: bambofo-homes
*/

/* Design tokens */
:root {
	--bambofo-color-navy: #102a43;
	--bambofo-color-teal: #0f6b66;
	--bambofo-color-copper: #c9823b;
	--bambofo-color-sand: #f4efe6;
	--bambofo-color-white: #ffffff;
	--bambofo-color-heading: #17212b;
	--bambofo-color-body: #5b6670;
	--bambofo-color-border: #d8d2c8;
	--bambofo-color-visited: #315e68;

	--bambofo-font-heading: "Manrope", sans-serif;
	--bambofo-font-body: "Source Sans 3", sans-serif;
	--bambofo-size-display: clamp(3rem, 6vw, 5.8rem);
	--bambofo-size-h1: clamp(2.6rem, 4.5vw, 4.5rem);
	--bambofo-size-h2: clamp(2.1rem, 3.5vw, 3.4rem);
	--bambofo-size-h3: clamp(1.6rem, 2.5vw, 2.3rem);
	--bambofo-size-body: 1rem;
	--bambofo-size-body-large: 1.125rem;
	--bambofo-size-small: 0.875rem;

	--bambofo-container: 1320px;
	--bambofo-reading-width: 760px;
	--bambofo-section-space: 88px;
	--bambofo-grid-gap: 32px;
	--bambofo-gutter: clamp(20px, 4vw, 40px);
	--bambofo-radius: 6px;
	--bambofo-control-height: 50px;
	--bambofo-shadow: 0 8px 24px rgb(16 42 67 / 7%);
	--bambofo-transition: 180ms ease;
}

/* Typography and document foundation */
html {
	scroll-behavior: smooth;
}

body {
	background: var(--bambofo-color-sand);
	color: var(--bambofo-color-body);
	font-family: var(--bambofo-font-body);
	font-size: var(--bambofo-size-body);
	line-height: 1.65;
	text-rendering: optimizeLegibility;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	color: var(--bambofo-color-heading);
	font-family: var(--bambofo-font-heading);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.12;
	margin-block: 0 0.65em;
}

h1 { font-size: var(--bambofo-size-h1); }
h2 { font-size: var(--bambofo-size-h2); }
h3 { font-size: var(--bambofo-size-h3); }
h4 { font-size: clamp(1.3rem, 2vw, 1.65rem); }
h5 { font-size: 1.125rem; }
h6 { font-size: 1rem; letter-spacing: 0.04em; text-transform: uppercase; }

p {
	margin-block: 0 1.5em;
}

.bambofo-display {
	font-size: var(--bambofo-size-display);
	font-weight: 800;
	letter-spacing: -0.04em;
	line-height: 1.02;
}

.bambofo-lead {
	font-size: var(--bambofo-size-body-large);
	line-height: 1.65;
}

.bambofo-meta,
small {
	font-size: var(--bambofo-size-small);
}

/* Links and keyboard focus */
a {
	color: var(--bambofo-color-teal);
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.18em;
	transition: color var(--bambofo-transition);
}

a:visited {
	color: var(--bambofo-color-visited);
}

a:hover,
a:focus-visible {
	color: var(--bambofo-color-navy);
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
	outline: 3px solid var(--bambofo-color-copper);
	outline-offset: 3px;
}

/* Layout primitives */
.bambofo-container {
	box-sizing: border-box;
	margin-inline: auto;
	max-width: var(--bambofo-container);
	padding-inline: var(--bambofo-gutter);
	width: 100%;
}

.bambofo-reading-width {
	max-width: var(--bambofo-reading-width);
}

.bambofo-section {
	padding-block: var(--bambofo-section-space);
}

.bambofo-grid {
	display: grid;
	gap: var(--bambofo-grid-gap);
}

.bambofo-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bambofo-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* Buttons */
:where(.button, .btn, .wp-element-button, .wp-block-button__link, button, input[type="button"], input[type="reset"], input[type="submit"]) {
	align-items: center;
	background: var(--bambofo-color-navy);
	border: 1px solid var(--bambofo-color-navy);
	border-radius: var(--bambofo-radius);
	box-shadow: none;
	color: var(--bambofo-color-white);
	cursor: pointer;
	display: inline-flex;
	font-family: var(--bambofo-font-body);
	font-size: 1rem;
	font-weight: 700;
	justify-content: center;
	line-height: 1.2;
	min-height: var(--bambofo-control-height);
	padding: 0.75rem 1.5rem;
	text-decoration: none;
	transition: background-color var(--bambofo-transition), border-color var(--bambofo-transition), color var(--bambofo-transition), transform var(--bambofo-transition);
}

:where(.button, .btn, .wp-element-button, .wp-block-button__link, button, input[type="button"], input[type="reset"], input[type="submit"]):hover {
	background: var(--bambofo-color-teal);
	border-color: var(--bambofo-color-teal);
	color: var(--bambofo-color-white);
}

.bambofo-button--secondary,
.is-style-outline > .wp-block-button__link {
	background: transparent;
	border-color: var(--bambofo-color-navy);
	color: var(--bambofo-color-navy);
}

.bambofo-button--accent {
	background: var(--bambofo-color-copper);
	border-color: var(--bambofo-color-copper);
	color: var(--bambofo-color-navy);
}

/* Forms */
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="reset"]):not([type="submit"]), select, textarea) {
	background: var(--bambofo-color-white);
	border: 1px solid var(--bambofo-color-border);
	border-radius: var(--bambofo-radius);
	box-sizing: border-box;
	color: var(--bambofo-color-heading);
	font: inherit;
	min-height: var(--bambofo-control-height);
	padding: 0.7rem 0.9rem;
	width: 100%;
}

textarea {
	min-height: 150px;
	resize: vertical;
}

label,
legend {
	color: var(--bambofo-color-heading);
	font-weight: 600;
}

::placeholder {
	color: #77818a;
	opacity: 1;
}

/* Structured surfaces and cards */
.bambofo-card,
.wp-block-group.is-style-bambofo-card {
	background: var(--bambofo-color-white);
	border: 1px solid var(--bambofo-color-border);
	border-radius: var(--bambofo-radius);
	box-shadow: var(--bambofo-shadow);
	padding: clamp(24px, 3vw, 36px);
}

.bambofo-card__meta {
	align-items: center;
	border-top: 1px solid var(--bambofo-color-border);
	display: flex;
	font-size: var(--bambofo-size-small);
	gap: 1rem;
	justify-content: space-between;
	margin-top: 1.5rem;
	padding-top: 1rem;
}

hr,
.bambofo-separator {
	border: 0;
	border-top: 1px solid var(--bambofo-color-border);
	margin-block: 2rem;
}

/* Header and primary navigation */
.head-mast,
.header-fixed .head-mast:not(.sticky-fixed),
.header-normal .head-mast {
	background: var(--bambofo-color-white);
	border-bottom: 1px solid var(--bambofo-color-border);
	color: var(--bambofo-color-navy);
}

.head-mast::before,
.header-fixed .head-mast:not(.sticky-fixed)::before {
	background: transparent;
}

.head-mast .container {
	max-width: var(--bambofo-container);
	padding-inline: var(--bambofo-gutter);
	width: 100%;
}

.head-mast-inner {
	min-height: 88px;
	transition: min-height var(--bambofo-transition);
}

.site-logo,
.site-logo a,
.site-logo a:visited {
	color: var(--bambofo-color-navy);
	font-family: var(--bambofo-font-heading);
	font-weight: 800;
	letter-spacing: -0.025em;
	white-space: nowrap;
}

.navigation-main {
	align-items: center;
	display: flex;
	gap: clamp(4px, 0.7vw, 12px);
}

.navigation-main > li > a,
.navigation-main > li > a:visited {
	color: var(--bambofo-color-navy);
	font-weight: 600;
	margin-inline: clamp(7px, 0.75vw, 13px);
	padding-block: 31px;
	text-decoration: none;
	transition: color var(--bambofo-transition), padding var(--bambofo-transition);
}

.navigation-main > li > a::before {
	border: 0;
	background: var(--bambofo-color-teal);
	bottom: -1px;
	height: 3px;
	opacity: 0;
	transform: scaleX(0.45);
	transition: opacity var(--bambofo-transition), transform var(--bambofo-transition);
}

.navigation-main > li:hover > a,
.navigation-main > li > a:hover,
.navigation-main > li > a:focus,
.navigation-main > li > a:focus-visible,
.navigation-main > .current-menu-item > a,
.navigation-main > .current-menu-parent > a,
.navigation-main > .current-menu-ancestor > a,
.navigation-main > .current_page_item > a,
.navigation-main > .current_page_ancestor > a {
	color: var(--bambofo-color-teal);
}

.navigation-main > li:hover > a::before,
.navigation-main > li > a:focus::before,
.navigation-main > .current-menu-item > a::before,
.navigation-main > .current-menu-parent > a::before,
.navigation-main > .current-menu-ancestor > a::before,
.navigation-main > .current_page_item > a::before,
.navigation-main > .current_page_ancestor > a::before {
	opacity: 1;
	transform: scaleX(1);
}

.navigation-main ul {
	background: var(--bambofo-color-white);
	border: 1px solid var(--bambofo-color-border);
	box-shadow: var(--bambofo-shadow);
	color: var(--bambofo-color-navy);
}

.navigation-main li li a,
.navigation-main li li a:visited {
	color: var(--bambofo-color-navy);
	text-decoration: none;
}

.navigation-main li li:hover > a,
.navigation-main li li > a:focus,
.navigation-main li li.current-menu-item > a {
	background: var(--bambofo-color-sand);
	color: var(--bambofo-color-teal);
}

.navigation-main .nav-button {
	margin-left: clamp(8px, 1.1vw, 18px);
}

.navigation-main .nav-button > a,
.navigation-main .nav-button > a:visited {
	background: var(--bambofo-color-copper);
	border: 1px solid var(--bambofo-color-copper);
	border-radius: var(--bambofo-radius);
	color: var(--bambofo-color-navy);
	font-weight: 700;
	margin: 0;
	min-height: 46px;
	padding: 12px 20px;
}

.navigation-main .nav-button > a:hover,
.navigation-main .nav-button > a:focus,
.navigation-main .nav-button > a:focus-visible,
.navigation-main .nav-button.current-menu-item > a {
	background: var(--bambofo-color-teal);
	border-color: var(--bambofo-color-teal);
	color: var(--bambofo-color-white);
}

.head-mast.sticky-fixed {
	background: var(--bambofo-color-white);
	border-bottom-color: var(--bambofo-color-border);
	box-shadow: 0 8px 22px rgb(16 42 67 / 9%);
	color: var(--bambofo-color-navy);
}

.head-mast.sticky-fixed .head-mast-inner {
	min-height: 72px;
}

.head-mast.sticky-fixed .navigation-main > li > a {
	padding-block: 23px;
}

.head-mast.sticky-fixed .navigation-main .nav-button > a {
	padding: 10px 18px;
}

.mobile-nav-trigger,
.mobile-nav-trigger:visited {
	color: var(--bambofo-color-navy);
	font-weight: 700;
}

.mobile-nav-trigger:hover,
.mobile-nav-trigger:focus-visible {
	color: var(--bambofo-color-teal);
}

.navigation-mobile-wrap {
	background: var(--bambofo-color-white);
	color: var(--bambofo-color-navy);
}

.navigation-mobile li,
.navigation-mobile a,
.navigation-mobile a:visited,
.navigation-mobile-dismiss,
.navigation-mobile-dismiss:visited {
	border-color: var(--bambofo-color-border);
	color: var(--bambofo-color-navy);
}

.navigation-mobile a {
	font-size: 1.05rem;
	font-weight: 600;
	padding-block: 15px;
}

.navigation-mobile a:hover,
.navigation-mobile a:focus-visible,
.navigation-mobile .current-menu-item > a {
	color: var(--bambofo-color-teal);
}

.navigation-mobile .nav-button > a,
.navigation-mobile .nav-button > a:visited {
	background: var(--bambofo-color-copper);
	border: 1px solid var(--bambofo-color-copper);
	border-radius: var(--bambofo-radius);
	color: var(--bambofo-color-navy);
	margin: 18px 20px;
	min-height: 48px;
	padding: 12px 18px;
	text-align: center;
}

.navigation-mobile .nav-button > a:hover,
.navigation-mobile .nav-button > a:focus-visible {
	background: var(--bambofo-color-teal);
	border-color: var(--bambofo-color-teal);
	color: var(--bambofo-color-white);
}

/* Sitewide pre-footer trust CTA */
.bambofo-trust-cta {
	background: var(--bambofo-color-teal);
	border-top: 6px solid var(--bambofo-color-copper);
	color: var(--bambofo-color-white);
	padding-block: clamp(52px, 7vw, 80px);
}

.bambofo-trust-cta .container {
	max-width: var(--bambofo-container);
	padding-inline: var(--bambofo-gutter);
	width: 100%;
}

.bambofo-trust-cta__inner {
	align-items: center;
	display: grid;
	gap: clamp(28px, 5vw, 64px);
	grid-template-columns: minmax(0, 1fr) auto;
}

.bambofo-trust-cta__content {
	max-width: 820px;
}

.bambofo-trust-cta__eyebrow {
	color: var(--bambofo-color-sand);
	font-family: var(--bambofo-font-heading);
	font-size: var(--bambofo-size-small);
	font-weight: 800;
	letter-spacing: 0.13em;
	margin-bottom: 0.85rem;
	text-transform: uppercase;
}

/* Bambofo Property Starter pattern */
.bambofo-property-starter {
	min-width: 0;
}

.bambofo-property-starter__intro {
	font-size: var(--bambofo-size-body-large);
	line-height: 1.7;
	max-width: var(--bambofo-reading-width);
}

.bambofo-property-starter__gallery {
	border-radius: var(--bambofo-radius);
	overflow: hidden;
}

.bambofo-property-starter__section {
	background: var(--bambofo-color-white);
	border: 1px solid var(--bambofo-color-border);
	border-radius: var(--bambofo-radius);
	margin-top: var(--bambofo-grid-gap);
	padding: clamp(24px, 3vw, 34px);
}

.bambofo-property-starter__section h2 {
	color: var(--bambofo-color-navy);
	font-family: var(--bambofo-font-heading);
	font-size: clamp(1.6rem, 2.5vw, 2.2rem);
	font-weight: 700;
	letter-spacing: -0.03em;
}

.bambofo-property-starter__section .ignition-oikia-property-map {
	border: 1px solid var(--bambofo-color-border);
	border-radius: var(--bambofo-radius);
	margin-top: 22px;
	overflow: hidden;
}

.bambofo-trust-cta__title {
	color: var(--bambofo-color-white);
	font-size: clamp(2rem, 3.5vw, 3.2rem);
	margin-bottom: 0.4em;
}

.bambofo-trust-cta__copy {
	color: var(--bambofo-color-sand);
	font-size: var(--bambofo-size-body-large);
	margin: 0;
	max-width: 760px;
}

.bambofo-trust-cta__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: flex-end;
}

.bambofo-trust-cta__actions .button,
.bambofo-trust-cta__actions .button:visited {
	white-space: nowrap;
}

.bambofo-trust-cta__actions .button-primary,
.bambofo-trust-cta__actions .button-primary:visited {
	background: var(--bambofo-color-copper);
	border-color: var(--bambofo-color-copper);
	color: var(--bambofo-color-navy);
}

.bambofo-trust-cta__actions .button-primary:hover,
.bambofo-trust-cta__actions .button-primary:focus-visible {
	background: var(--bambofo-color-white);
	border-color: var(--bambofo-color-white);
	color: var(--bambofo-color-navy);
}

.bambofo-trust-cta__actions .button-secondary,
.bambofo-trust-cta__actions .button-secondary:visited {
	background: transparent;
	border-color: rgb(255 255 255 / 65%);
	color: var(--bambofo-color-white);
}

.bambofo-trust-cta__actions .button-secondary:hover,
.bambofo-trust-cta__actions .button-secondary:focus-visible {
	background: var(--bambofo-color-navy);
	border-color: var(--bambofo-color-navy);
	color: var(--bambofo-color-white);
}

/* Footer */
.footer-widgets {
	background: var(--bambofo-color-navy);
	color: var(--bambofo-color-sand);
	padding-block: 76px 46px;
}

.footer-widgets .container,
.footer-info .container {
	max-width: var(--bambofo-container);
	padding-inline: var(--bambofo-gutter);
	width: 100%;
}

.footer-widgets .row {
	row-gap: 34px;
}

.footer-widgets .widget {
	color: var(--bambofo-color-sand);
	font-size: 0.975rem;
	margin-bottom: 0;
}

.footer-widgets .widget-title {
	color: var(--bambofo-color-white);
	font-family: var(--bambofo-font-heading);
	font-size: 0.95rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	margin-bottom: 22px;
	text-transform: uppercase;
}

.footer-widgets p {
	margin-bottom: 1.15rem;
}

.footer-widgets ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer-widgets li {
	border-bottom: 1px solid rgb(244 239 230 / 13%);
	margin: 0;
	padding: 9px 0;
}

.footer-widgets a,
.footer-widgets a:visited {
	color: var(--bambofo-color-sand);
	text-decoration: none;
}

.footer-widgets a:hover,
.footer-widgets a:focus-visible {
	color: var(--bambofo-color-copper);
}

.footer-widgets .bambofo-footer-contact {
	font-style: normal;
}

.footer-widgets .bambofo-footer-cta,
.footer-widgets .bambofo-footer-cta:visited {
	background: var(--bambofo-color-copper);
	border-color: var(--bambofo-color-copper);
	color: var(--bambofo-color-navy);
	margin-top: 8px;
}

.footer-widgets .bambofo-footer-cta:hover,
.footer-widgets .bambofo-footer-cta:focus-visible {
	background: var(--bambofo-color-teal);
	border-color: var(--bambofo-color-teal);
	color: var(--bambofo-color-white);
}

.footer-info {
	background: #0b2237;
	border-top: 1px solid rgb(244 239 230 / 18%);
	color: var(--bambofo-color-sand);
	font-size: var(--bambofo-size-small);
}

.footer-info a,
.footer-info a:visited {
	color: var(--bambofo-color-sand);
}

.footer-info a:hover,
.footer-info a:focus-visible {
	color: var(--bambofo-color-copper);
}

/* Homepage */
.home .main {
	overflow: hidden;
	padding-block: 0;
}

.bambofo-home {
	margin-left: calc(50% - 50vw);
	width: 100vw;
}

.bambofo-home-section {
	padding-block: var(--bambofo-section-space);
}

.bambofo-home .bambofo-container {
	max-width: var(--bambofo-container);
}

.bambofo-home-eyebrow {
	color: var(--bambofo-color-teal);
	font-family: var(--bambofo-font-heading);
	font-size: var(--bambofo-size-small);
	font-weight: 800;
	letter-spacing: 0.13em;
	margin-bottom: 1rem;
	text-transform: uppercase;
}

.bambofo-home-heading {
	max-width: 900px;
}

.bambofo-home-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 2rem;
}

.bambofo-home-actions .button-secondary,
.bambofo-home-actions .button-secondary:visited {
	background: transparent;
	border-color: var(--bambofo-color-navy);
	color: var(--bambofo-color-navy);
}

.bambofo-home-actions .button-secondary:hover,
.bambofo-home-actions .button-secondary:focus-visible {
	background: var(--bambofo-color-teal);
	border-color: var(--bambofo-color-teal);
	color: var(--bambofo-color-white);
}

.bambofo-image-placeholder {
	align-items: flex-end;
	background-color: #dce5e1;
	background-image: linear-gradient(135deg, rgb(15 107 102 / 15%) 25%, transparent 25%), linear-gradient(315deg, rgb(16 42 67 / 12%) 25%, transparent 25%);
	background-position: 0 0, 24px 24px;
	background-size: 48px 48px;
	border: 1px solid var(--bambofo-color-border);
	border-radius: var(--bambofo-radius);
	display: flex;
	min-height: 460px;
	overflow: hidden;
	padding: 22px;
	position: relative;
}

.bambofo-image-placeholder::before {
	background: linear-gradient(180deg, transparent 40%, rgb(16 42 67 / 72%));
	content: "";
	inset: 0;
	position: absolute;
}

.bambofo-image-placeholder span {
	color: var(--bambofo-color-white);
	font-size: var(--bambofo-size-small);
	font-weight: 700;
	letter-spacing: 0.05em;
	position: relative;
	text-transform: uppercase;
}

.bambofo-home-hero {
	background: linear-gradient(112deg, var(--bambofo-color-sand) 0%, var(--bambofo-color-sand) 58%, #ebe5da 58%, #ebe5da 100%);
	border-bottom: 1px solid var(--bambofo-color-border);
	isolation: isolate;
	padding-block: clamp(64px, 8vw, 112px);
	position: relative;
}

.bambofo-home-hero::after {
	background: var(--bambofo-color-copper);
	bottom: -1px;
	content: "";
	height: 4px;
	left: 0;
	position: absolute;
	width: clamp(90px, 12vw, 180px);
}

.bambofo-home-hero__grid {
	align-items: center;
	display: grid;
	gap: clamp(48px, 7vw, 104px);
	grid-template-columns: minmax(0, 1.12fr) minmax(380px, 0.88fr);
	min-height: 630px;
	position: relative;
	z-index: 1;
}

.bambofo-home-hero .bambofo-home-eyebrow {
	align-items: center;
	color: var(--bambofo-color-teal);
	display: flex;
	font-family: var(--bambofo-font-body);
	font-size: 0.82rem;
	font-weight: 700;
	gap: 12px;
	letter-spacing: 0.11em;
	margin-bottom: clamp(22px, 3vw, 34px);
}

.bambofo-home-hero .bambofo-home-eyebrow::before {
	background: var(--bambofo-color-copper);
	content: "";
	height: 2px;
	width: 38px;
}

.bambofo-home-hero__title {
	font-family: var(--bambofo-font-heading);
	font-size: clamp(3.4rem, 6.5vw, 6.2rem);
	font-weight: 800;
	letter-spacing: -0.055em;
	line-height: 0.98;
	margin-bottom: clamp(24px, 3vw, 34px);
	max-width: 720px;
}

.bambofo-home-hero__copy {
	color: #46545f;
	font-family: var(--bambofo-font-body);
	font-size: clamp(1.1rem, 1.4vw, 1.2rem);
	line-height: 1.7;
	max-width: 600px;
}

.bambofo-home-hero .bambofo-home-actions {
	gap: 14px;
	margin-top: clamp(30px, 4vw, 44px);
}

.bambofo-home-hero .bambofo-home-actions .button:first-child,
.bambofo-home-hero .bambofo-home-actions .button:first-child:visited {
	background: var(--bambofo-color-copper);
	border-color: var(--bambofo-color-copper);
	color: var(--bambofo-color-navy);
	font-weight: 800;
}

.bambofo-home-hero .bambofo-home-actions .button:first-child:hover,
.bambofo-home-hero .bambofo-home-actions .button:first-child:focus-visible {
	background: var(--bambofo-color-teal);
	border-color: var(--bambofo-color-teal);
	color: var(--bambofo-color-white);
}

.bambofo-home-hero .bambofo-image-placeholder {
	background-position: 0 0, 30px 30px;
	background-size: 60px 60px;
	border-color: rgb(16 42 67 / 22%);
	border-left: 6px solid var(--bambofo-color-copper);
	min-height: 560px;
	padding: 28px;
}

.bambofo-home-hero .bambofo-image-placeholder::before {
	background: linear-gradient(180deg, rgb(16 42 67 / 2%) 20%, rgb(16 42 67 / 82%) 100%);
}

.bambofo-home-hero .bambofo-image-placeholder span {
	letter-spacing: 0.08em;
}

.bambofo-home-risk {
	background: var(--bambofo-color-white);
}

.bambofo-home-risk__grid {
	border-top: 4px solid var(--bambofo-color-navy);
	display: grid;
	gap: clamp(32px, 7vw, 100px);
	grid-template-columns: minmax(0, 1.05fr) minmax(300px, 0.75fr);
	padding-top: clamp(32px, 5vw, 56px);
}

.bambofo-home-risk__grid h2 {
	margin-bottom: 0;
}

.bambofo-home-risk__copy {
	border-left: 1px solid var(--bambofo-color-border);
	font-size: var(--bambofo-size-body-large);
	padding-left: clamp(24px, 4vw, 52px);
}

.bambofo-home-protection {
	background: var(--bambofo-color-sand);
}

.bambofo-home-protection__intro {
	margin-bottom: clamp(38px, 5vw, 62px);
}

.bambofo-protection-grid {
	border-left: 1px solid var(--bambofo-color-border);
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.bambofo-protection-item {
	background: var(--bambofo-color-white);
	border-block: 1px solid var(--bambofo-color-border);
	border-right: 1px solid var(--bambofo-color-border);
	padding: clamp(26px, 3vw, 40px);
}

.bambofo-protection-item__number,
.bambofo-process-step__number {
	color: var(--bambofo-color-copper);
	font-family: var(--bambofo-font-heading);
	font-size: var(--bambofo-size-small);
	font-weight: 800;
	letter-spacing: 0.08em;
}

.bambofo-protection-item h3 {
	font-size: 1.45rem;
	margin-block: 1.6rem 0.75rem;
}

.bambofo-protection-item p {
	margin-bottom: 0;
}

.bambofo-home-properties {
	background: var(--bambofo-color-white);
}

.bambofo-home-properties__header {
	align-items: end;
	display: grid;
	gap: 30px;
	grid-template-columns: minmax(0, 1fr) auto;
	margin-bottom: clamp(38px, 5vw, 60px);
}

.bambofo-home-properties__header p:last-child {
	margin-bottom: 0;
	max-width: 720px;
}

.bambofo-home-properties .entry-item-content,
.bambofo-home-properties .entry-item-content-wrap {
	border: 1px solid var(--bambofo-color-border);
	box-shadow: 0 6px 18px rgb(16 42 67 / 5%);
}

.bambofo-home-properties .entry-title,
.bambofo-home-properties .entry-item-title {
	font-family: var(--bambofo-font-heading);
	font-weight: 700;
}

.bambofo-property-empty {
	align-items: center;
	background: var(--bambofo-color-sand);
	border: 1px solid var(--bambofo-color-border);
	border-left: 5px solid var(--bambofo-color-teal);
	display: flex;
	font-size: var(--bambofo-size-body-large);
	min-height: 150px;
	padding: clamp(26px, 4vw, 46px);
}

.bambofo-property-empty p {
	margin: 0;
	max-width: 760px;
}

.bambofo-home-why {
	background: var(--bambofo-color-sand);
}

.bambofo-home-why__grid {
	display: grid;
	gap: clamp(44px, 8vw, 112px);
	grid-template-columns: minmax(300px, 0.85fr) minmax(0, 1.15fr);
}

.bambofo-principles {
	border-top: 1px solid var(--bambofo-color-border);
}

.bambofo-principle {
	border-bottom: 1px solid var(--bambofo-color-border);
	display: grid;
	gap: 22px;
	grid-template-columns: minmax(180px, 0.7fr) minmax(0, 1fr);
	padding-block: 27px;
}

.bambofo-principle h3 {
	font-size: 1.2rem;
	margin: 0;
}

.bambofo-principle p {
	margin: 0;
}

.bambofo-home-signature {
	background: var(--bambofo-color-navy);
	color: var(--bambofo-color-sand);
}

.bambofo-home-signature__grid {
	align-items: center;
	display: grid;
	gap: clamp(42px, 7vw, 96px);
	grid-template-columns: minmax(0, 1fr) minmax(340px, 0.8fr);
}

.bambofo-home-signature .bambofo-home-eyebrow {
	color: var(--bambofo-color-copper);
}

.bambofo-home-signature h2 {
	color: var(--bambofo-color-white);
}

.bambofo-home-signature .button,
.bambofo-home-signature .button:visited {
	background: var(--bambofo-color-copper);
	border-color: var(--bambofo-color-copper);
	color: var(--bambofo-color-navy);
}

.bambofo-home-signature .button:hover,
.bambofo-home-signature .button:focus-visible {
	background: var(--bambofo-color-teal);
	border-color: var(--bambofo-color-teal);
	color: var(--bambofo-color-white);
}

.bambofo-home-signature .bambofo-image-placeholder {
	min-height: 400px;
}

.bambofo-home-process {
	background: var(--bambofo-color-white);
}

.bambofo-process-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: clamp(38px, 5vw, 60px);
	position: relative;
}

.bambofo-process-grid::before {
	background: var(--bambofo-color-border);
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	right: 0;
	top: 21px;
}

.bambofo-process-step {
	padding-right: clamp(24px, 3vw, 44px);
	position: relative;
}

.bambofo-process-step__number {
	align-items: center;
	background: var(--bambofo-color-white);
	border: 2px solid var(--bambofo-color-teal);
	border-radius: 50%;
	display: inline-flex;
	height: 43px;
	justify-content: center;
	position: relative;
	width: 43px;
}

.bambofo-process-step h3 {
	font-size: 1.25rem;
	margin-block: 1.5rem 0.75rem;
}

.bambofo-process-step p {
	margin-bottom: 0;
}

.bambofo-home-proof {
	background: var(--bambofo-color-sand);
	border-top: 1px solid var(--bambofo-color-border);
}

.bambofo-home-proof__header {
	max-width: 820px;
}

.bambofo-proof-list {
	border-block: 1px solid var(--bambofo-color-border);
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: clamp(36px, 5vw, 56px);
}

.bambofo-proof-item {
	align-items: center;
	color: var(--bambofo-color-heading);
	display: flex;
	font-family: var(--bambofo-font-heading);
	font-weight: 700;
	min-height: 92px;
	padding: 20px 26px;
}

.bambofo-proof-item + .bambofo-proof-item {
	border-left: 1px solid var(--bambofo-color-border);
}

.bambofo-proof-item::before {
	background: var(--bambofo-color-teal);
	content: "";
	flex: 0 0 8px;
	height: 8px;
	margin-right: 13px;
}

/* Founder page */
.bambofo-founder {
	margin-inline: auto;
	max-width: var(--bambofo-reading-width);
	padding-block: clamp(54px, 8vw, 94px);
}

.bambofo-founder__intro {
	margin-inline: auto;
	max-width: 700px;
	text-align: center;
}

.bambofo-founder__eyebrow {
	color: var(--bambofo-color-teal);
	font-family: var(--bambofo-font-body);
	font-size: var(--bambofo-size-small);
	font-weight: 800;
	letter-spacing: 0.12em;
	margin-bottom: 1rem;
	text-transform: uppercase;
}

.bambofo-founder__title {
	font-size: clamp(2.6rem, 5vw, 4.5rem);
	margin-bottom: clamp(34px, 5vw, 54px);
}

.bambofo-founder__portrait {
	align-items: flex-end;
	background-color: #dce5e1;
	background-image: linear-gradient(135deg, rgb(15 107 102 / 15%) 25%, transparent 25%), linear-gradient(315deg, rgb(16 42 67 / 12%) 25%, transparent 25%);
	background-position: 0 0, 30px 30px;
	background-size: 60px 60px;
	border: 1px solid var(--bambofo-color-border);
	border-bottom: 6px solid var(--bambofo-color-copper);
	border-radius: var(--bambofo-radius);
	display: flex;
	margin: 0 auto clamp(46px, 7vw, 76px);
	max-width: 540px;
	min-height: clamp(440px, 65vw, 640px);
	overflow: hidden;
	padding: 26px;
	position: relative;
}

.bambofo-founder__portrait::before {
	background: linear-gradient(180deg, transparent 45%, rgb(16 42 67 / 78%));
	content: "";
	inset: 0;
	position: absolute;
}

.bambofo-founder__portrait span {
	color: var(--bambofo-color-white);
	font-size: var(--bambofo-size-small);
	font-weight: 700;
	letter-spacing: 0.07em;
	position: relative;
	text-transform: uppercase;
}

.bambofo-founder__letter {
	border-top: 4px solid var(--bambofo-color-navy);
	color: var(--bambofo-color-body);
	font-family: var(--bambofo-font-body);
	font-size: clamp(1.05rem, 1.4vw, 1.15rem);
	line-height: 1.82;
	padding-top: clamp(32px, 5vw, 48px);
}

.bambofo-founder__letter p {
	margin-bottom: 1.45em;
}

.bambofo-founder__salutation {
	color: var(--bambofo-color-heading);
	font-weight: 600;
}

.bambofo-founder__signature {
	border-left: 4px solid var(--bambofo-color-copper);
	margin-top: clamp(34px, 5vw, 48px);
	padding: 4px 0 4px 22px;
}

.bambofo-founder__name {
	color: var(--bambofo-color-navy);
	font-family: var(--bambofo-font-heading);
	font-size: 1.35rem;
	font-weight: 800;
	line-height: 1.2;
	margin-bottom: 0.3rem;
}

.bambofo-founder__role,
.bambofo-founder__company {
	font-size: 1rem;
	line-height: 1.5;
	margin: 0;
}

/* Properties page and native Oikia property output */
.page-id-10 .page-hero {
	background: var(--bambofo-color-sand);
	border-bottom: 1px solid var(--bambofo-color-border);
	color: var(--bambofo-color-navy);
}

.page-id-10 .page-hero-content {
	padding-block: clamp(48px, 7vw, 78px);
}

.page-id-10 .page-hero-title {
	color: var(--bambofo-color-navy);
	font-family: var(--bambofo-font-heading);
	font-size: clamp(2.6rem, 4.5vw, 4.5rem);
	font-weight: 700;
	letter-spacing: -0.045em;
	line-height: 1;
}

.page-id-10 .main > .container > .row {
	align-items: flex-start;
}

.bambofo-properties-page {
	min-width: 0;
	padding-block: 0 16px;
}

.bambofo-properties-page__intro {
	border-bottom: 1px solid var(--bambofo-color-border);
	margin-bottom: clamp(36px, 5vw, 58px);
	max-width: 860px;
	padding-bottom: clamp(30px, 4vw, 46px);
}

.bambofo-properties-page__eyebrow {
	color: var(--bambofo-color-teal);
	font-family: var(--bambofo-font-body);
	font-size: var(--bambofo-size-small);
	font-weight: 800;
	letter-spacing: 0.12em;
	margin-bottom: 1rem;
	text-transform: uppercase;
}

.bambofo-properties-page__title {
	font-size: clamp(2rem, 3.5vw, 3.25rem);
	letter-spacing: -0.035em;
	line-height: 1.08;
}

.bambofo-properties-page__copy {
	font-size: var(--bambofo-size-body-large);
	margin-bottom: 0;
	max-width: 720px;
}

.bambofo-properties-page .property-search-form-horizontal {
	background: var(--bambofo-color-sand);
	border: 1px solid var(--bambofo-color-border);
	border-radius: var(--bambofo-radius);
	margin-bottom: clamp(34px, 5vw, 52px);
	max-width: 100%;
	overflow: hidden;
	padding: clamp(20px, 2.5vw, 28px);
}

.bambofo-properties-page .property-search-form .row {
	row-gap: 20px;
}

.bambofo-properties-page .property-search-form .row > [class*="col"] {
	min-width: 0;
}

.bambofo-properties-page .property-search-form input,
.bambofo-properties-page .property-search-form select,
.bambofo-properties-page .property-search-form .ignition-oikia-select {
	max-width: 100%;
	width: 100%;
}

.bambofo-properties-page .property-search-form .row > [class*="col"]:last-child {
	align-items: flex-end;
	display: flex;
}

.bambofo-properties-page .property-filters-submit {
	min-height: 50px;
}

.bambofo-properties-page .shortcode-package-search-page .row,
.bambofo-home-properties .shortcode-package-search-page .row {
	row-gap: var(--bambofo-grid-gap);
}

.bambofo-properties-page .shortcode-package-search-page .row > [class*="col"] {
	display: flex;
	min-width: 0;
}

.bambofo-properties-page .ignition-property.entry-item,
.bambofo-home-properties .ignition-property.entry-item {
	background: var(--bambofo-color-white);
	border: 1px solid var(--bambofo-color-border);
	border-radius: var(--bambofo-radius);
	box-shadow: 0 7px 20px rgb(16 42 67 / 6%);
	height: 100%;
	margin-bottom: 0;
	overflow: hidden;
	width: 100%;
}

.bambofo-properties-page .ignition-property .entry-thumb,
.bambofo-properties-page .ignition-property .entry-item-thumb,
.bambofo-home-properties .ignition-property .entry-thumb,
.bambofo-home-properties .ignition-property .entry-item-thumb {
	margin-bottom: 0;
}

.bambofo-properties-page .ignition-property .entry-thumb img,
.bambofo-properties-page .ignition-property .entry-item-thumb img,
.bambofo-home-properties .ignition-property .entry-thumb img,
.bambofo-home-properties .ignition-property .entry-item-thumb img {
	aspect-ratio: 3 / 2;
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.bambofo-properties-page .ignition-property .entry-item-content,
.bambofo-properties-page .ignition-property .entry-item-content-wrap,
.bambofo-home-properties .ignition-property .entry-item-content,
.bambofo-home-properties .ignition-property .entry-item-content-wrap {
	border: 0;
	box-shadow: none;
	padding: 26px 28px 32px;
}

.bambofo-properties-page .ignition-property .entry-title,
.bambofo-properties-page .ignition-property .entry-item-title,
.bambofo-home-properties .ignition-property .entry-title,
.bambofo-home-properties .ignition-property .entry-item-title {
	color: var(--bambofo-color-navy);
	font-family: var(--bambofo-font-heading);
	font-weight: 700;
}

.bambofo-properties-page .ignition-property .entry-meta,
.bambofo-properties-page .ignition-property .entry-categories,
.bambofo-home-properties .ignition-property .entry-meta,
.bambofo-home-properties .ignition-property .entry-categories {
	color: var(--bambofo-color-teal);
	font-family: var(--bambofo-font-body);
}

.bambofo-properties-page .ignition-property .btn,
.bambofo-home-properties .ignition-property .btn {
	background: var(--bambofo-color-copper);
	border-color: var(--bambofo-color-copper);
	color: var(--bambofo-color-navy);
}

.bambofo-properties-page .ignition-property .btn:hover,
.bambofo-home-properties .ignition-property .btn:hover {
	background: var(--bambofo-color-teal);
	border-color: var(--bambofo-color-teal);
	color: var(--bambofo-color-white);
}

.single-ignition-property .entry-thumb img,
.single-ignition-property .entry-item-thumb img {
	border: 1px solid var(--bambofo-color-border);
	border-radius: var(--bambofo-radius);
}

.single-ignition-property .ignition-oikia-property-table {
	background: var(--bambofo-color-white);
	border: 1px solid var(--bambofo-color-border);
	border-collapse: collapse;
	width: 100%;
}

.single-ignition-property .ignition-oikia-property-table th,
.single-ignition-property .ignition-oikia-property-table td {
	border-bottom: 1px solid var(--bambofo-color-border);
	padding: 12px 16px;
}

.single-ignition-property .ignition-oikia-property-table th {
	color: var(--bambofo-color-navy);
	font-weight: 700;
}

@media (max-width: 1024px) {
	:root {
		--bambofo-section-space: 68px;
	}

	.bambofo-grid--3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.head-mast-inner {
		min-height: 76px;
	}

	.bambofo-trust-cta__inner {
		align-items: start;
		grid-template-columns: 1fr;
	}

	.bambofo-trust-cta__actions {
		justify-content: flex-start;
	}

	.footer-widgets .row > [class*="col"] {
		flex: 0 0 50%;
		max-width: 50%;
	}

	.bambofo-home-hero__grid,
	.bambofo-home-signature__grid {
		grid-template-columns: 1fr 0.8fr;
	}

	.bambofo-home-hero__grid {
		gap: clamp(34px, 5vw, 58px);
		min-height: 540px;
	}

	.bambofo-home-hero .bambofo-image-placeholder {
		min-height: 460px;
	}

	.bambofo-protection-grid,
	.bambofo-process-grid,
	.bambofo-proof-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.bambofo-protection-item:nth-child(-n + 2) {
		border-bottom: 0;
	}

	.bambofo-process-grid::before {
		display: none;
	}

	.bambofo-process-step {
		border-top: 1px solid var(--bambofo-color-border);
		padding-block: 24px 34px;
	}

	.bambofo-proof-item:nth-child(3) {
		border-left: 0;
		border-top: 1px solid var(--bambofo-color-border);
	}

	.bambofo-proof-item:nth-child(4) {
		border-top: 1px solid var(--bambofo-color-border);
	}
}

@media (max-width: 680px) {
	:root {
		--bambofo-section-space: 52px;
		--bambofo-grid-gap: 20px;
	}

	.bambofo-grid--2,
	.bambofo-grid--3 {
		grid-template-columns: 1fr;
	}

	.bambofo-trust-cta__actions {
		display: grid;
		grid-template-columns: 1fr;
	}

	.bambofo-trust-cta__actions .button {
		width: 100%;
	}

	.footer-widgets {
		padding-block: 54px 28px;
	}

	.footer-widgets .row > [class*="col"] {
		flex-basis: 100%;
		max-width: 100%;
	}

	.bambofo-home-hero__grid,
	.bambofo-home-risk__grid,
	.bambofo-home-properties__header,
	.bambofo-home-why__grid,
	.bambofo-home-signature__grid,
	.bambofo-principle {
		grid-template-columns: 1fr;
	}

	.bambofo-image-placeholder,
	.bambofo-home-signature .bambofo-image-placeholder {
		min-height: 320px;
	}

	.bambofo-home-hero {
		background: var(--bambofo-color-sand);
		padding-block: 58px 52px;
	}

	.bambofo-home-hero__grid {
		gap: 38px;
		min-height: 0;
	}

	.bambofo-home-hero__title {
		font-size: clamp(2.85rem, 13vw, 4rem);
		letter-spacing: -0.045em;
		line-height: 1;
	}

	.bambofo-home-hero__copy {
		font-size: 1.08rem;
	}

	.bambofo-home-hero .bambofo-home-actions {
		display: grid;
		grid-template-columns: 1fr;
	}

	.bambofo-home-hero .bambofo-home-actions .button {
		width: 100%;
	}

	.bambofo-home-hero .bambofo-image-placeholder {
		min-height: 300px;
	}

	.bambofo-home-risk__copy {
		border-left: 0;
		border-top: 1px solid var(--bambofo-color-border);
		padding-left: 0;
		padding-top: 26px;
	}

	.bambofo-protection-grid,
	.bambofo-process-grid,
	.bambofo-proof-list {
		grid-template-columns: 1fr;
	}

	.bambofo-protection-item,
	.bambofo-protection-item:nth-child(-n + 2) {
		border-bottom: 0;
	}

	.bambofo-protection-item:last-child {
		border-bottom: 1px solid var(--bambofo-color-border);
	}

	.bambofo-proof-item + .bambofo-proof-item,
	.bambofo-proof-item:nth-child(3) {
		border-left: 0;
		border-top: 1px solid var(--bambofo-color-border);
	}

	.bambofo-founder {
		padding-block: 48px 58px;
	}

	.bambofo-founder__portrait {
		min-height: min(125vw, 520px);
		padding: 20px;
	}

	.bambofo-founder__letter {
		font-size: 1.05rem;
		line-height: 1.72;
	}

	.bambofo-properties-page {
		padding-block: 48px 58px;
	}

	.bambofo-properties-page .shortcode-package-search-page .row > [class*="col"],
	.bambofo-home-properties .shortcode-package-search-page .row > [class*="col"] {
		flex-basis: 100%;
		max-width: 100%;
	}
}

/* Guidance overview page */
.page-id-12 .page-hero {
	background: var(--bambofo-color-sand);
	border-bottom: 1px solid var(--bambofo-color-border);
}

.page-id-12 .page-hero-title {
	color: var(--bambofo-color-navy);
	font-family: var(--bambofo-font-heading);
	font-size: clamp(2.6rem, 4.5vw, 4.5rem);
	font-weight: 700;
	letter-spacing: -0.045em;
	line-height: 1;
}

.bambofo-guidance-overview {
	padding-block: 4px 18px;
}

.bambofo-guidance-overview__eyebrow {
	color: var(--bambofo-color-teal);
	font-family: var(--bambofo-font-body);
	font-size: var(--bambofo-size-small);
	font-weight: 800;
	letter-spacing: 0.12em;
	margin: 0 0 14px;
	text-transform: uppercase;
}

.bambofo-guidance-overview__title {
	color: var(--bambofo-color-navy);
	font-family: var(--bambofo-font-heading);
	font-size: clamp(2rem, 3.5vw, 3.25rem);
	font-weight: 700;
	letter-spacing: -0.035em;
	line-height: 1.08;
	margin-bottom: 22px;
}

.bambofo-guidance-overview__lead {
	color: var(--bambofo-color-body);
	font-size: var(--bambofo-size-body-large);
	line-height: 1.72;
	margin: 0;
	max-width: 720px;
}

.bambofo-guidance-services {
	border-top: 1px solid var(--bambofo-color-border);
	margin-top: clamp(48px, 6vw, 72px);
	padding-top: clamp(40px, 5vw, 60px);
}

.bambofo-guidance-services__header {
	margin-bottom: clamp(30px, 4vw, 42px);
}

.bambofo-guidance-services__eyebrow {
	color: var(--bambofo-color-teal);
	font-family: var(--bambofo-font-body);
	font-size: var(--bambofo-size-small);
	font-weight: 800;
	letter-spacing: 0.12em;
	margin: 0 0 12px;
	text-transform: uppercase;
}

.bambofo-guidance-services__title {
	color: var(--bambofo-color-navy);
	font-family: var(--bambofo-font-heading);
	font-size: clamp(1.9rem, 3vw, 2.75rem);
	font-weight: 700;
	letter-spacing: -0.035em;
	line-height: 1.1;
	margin: 0;
}

.bambofo-guidance-services__grid > .wp-block-group__inner-container {
	display: grid;
	gap: 32px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bambofo-guidance-service-card {
	background: var(--bambofo-color-white);
	border: 1px solid var(--bambofo-color-border);
	border-radius: var(--bambofo-radius);
	box-shadow: 0 4px 14px rgb(16 42 67 / 4%);
	height: 100%;
	min-width: 0;
	padding: clamp(24px, 3vw, 32px);
	position: relative;
}

.bambofo-guidance-service-card::before {
	background: var(--bambofo-color-teal);
	content: "";
	height: 3px;
	left: 0;
	position: absolute;
	top: 0;
	width: 52px;
}

.bambofo-guidance-service-card__number {
	color: var(--bambofo-color-copper);
	font-family: var(--bambofo-font-heading);
	font-size: 0.875rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	margin: 0 0 18px;
}

.bambofo-guidance-service-card__title {
	color: var(--bambofo-color-navy);
	font-family: var(--bambofo-font-heading);
	font-size: clamp(1.25rem, 2vw, 1.55rem);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.2;
	margin: 0 0 14px;
}

.bambofo-guidance-service-card__copy {
	color: var(--bambofo-color-body);
	font-family: var(--bambofo-font-body);
	line-height: 1.65;
	margin: 0;
}

.bambofo-guidance-services__cta {
	background: var(--bambofo-color-sand);
	border: 1px solid var(--bambofo-color-border);
	border-left: 4px solid var(--bambofo-color-copper);
	border-radius: var(--bambofo-radius);
	margin-top: clamp(40px, 5vw, 56px);
	padding: clamp(26px, 4vw, 38px);
}

.bambofo-guidance-services__cta h2 {
	color: var(--bambofo-color-navy);
	font-family: var(--bambofo-font-heading);
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.15;
	margin-bottom: 12px;
}

.bambofo-guidance-services__cta p {
	line-height: 1.65;
	margin-bottom: 20px;
	max-width: 600px;
}

.bambofo-guidance-services__button .wp-block-button__link {
	background: var(--bambofo-color-copper);
	border: 1px solid var(--bambofo-color-copper);
	border-radius: var(--bambofo-radius);
	color: var(--bambofo-color-navy);
	font-family: var(--bambofo-font-body);
	font-weight: 700;
	min-height: 50px;
	padding: 13px 20px;
}

.bambofo-guidance-services__button .wp-block-button__link:hover,
.bambofo-guidance-services__button .wp-block-button__link:focus-visible {
	background: var(--bambofo-color-teal);
	border-color: var(--bambofo-color-teal);
	color: var(--bambofo-color-white);
}

@media (max-width: 700px) {
	.bambofo-guidance-services__grid > .wp-block-group__inner-container {
		gap: 20px;
		grid-template-columns: 1fr;
	}
}

/* Property adviser enquiry page */
.bambofo-guidance {
	min-width: 0;
	padding-block: 12px clamp(52px, 6vw, 72px);
}

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

.bambofo-guidance .wp-block-group__inner-container {
	max-width: 100%;
	min-width: 0;
}

.bambofo-guidance__intro {
	border-bottom: 1px solid var(--bambofo-color-border);
	margin-bottom: clamp(38px, 5vw, 58px);
	padding-bottom: clamp(30px, 4vw, 44px);
}

.bambofo-guidance__eyebrow {
	color: var(--bambofo-color-teal);
	font-family: var(--bambofo-font-body);
	font-size: var(--bambofo-size-small);
	font-weight: 800;
	letter-spacing: 0.12em;
	margin: 0 0 14px;
	text-transform: uppercase;
}

.bambofo-guidance__title {
	color: var(--bambofo-color-navy);
	font-family: var(--bambofo-font-heading);
	font-size: clamp(2.6rem, 5vw, 4.6rem);
	font-weight: 700;
	letter-spacing: -0.045em;
	line-height: 1;
	margin-bottom: 24px;
	max-width: 800px;
}

.bambofo-guidance__lead {
	color: var(--bambofo-color-body);
	font-size: clamp(1.08rem, 1.7vw, 1.2rem);
	line-height: 1.72;
	margin: 0;
	max-width: 760px;
}

.bambofo-guidance__grid {
	min-width: 0;
}

.bambofo-guidance__grid > .wp-block-group__inner-container {
	align-items: start;
	display: grid;
	gap: clamp(28px, 4vw, 48px);
	grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
	width: 100%;
}

.bambofo-guidance__details {
	background: var(--bambofo-color-sand);
	border-left: 4px solid var(--bambofo-color-teal);
	padding: clamp(26px, 4vw, 38px);
}

.bambofo-guidance__details h2,
.bambofo-guidance__form-panel h2,
.bambofo-guidance__map h2 {
	color: var(--bambofo-color-navy);
	font-family: var(--bambofo-font-heading);
	font-size: clamp(1.65rem, 2.5vw, 2.25rem);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.15;
}

.bambofo-guidance__details > p {
	line-height: 1.68;
}

.bambofo-guidance__contact-list {
	border-top: 1px solid var(--bambofo-color-border);
	margin: 28px 0 0;
}

.bambofo-guidance__contact-list > div {
	border-bottom: 1px solid var(--bambofo-color-border);
	padding: 17px 0;
}

.bambofo-guidance__contact-list dt {
	color: var(--bambofo-color-navy);
	font-family: var(--bambofo-font-heading);
	font-weight: 700;
	margin-bottom: 3px;
}

.bambofo-guidance__contact-list dd {
	color: var(--bambofo-color-body);
	line-height: 1.5;
	margin: 0;
}

.bambofo-guidance__form-panel {
	background: var(--bambofo-color-white);
	border: 1px solid var(--bambofo-color-border);
	border-radius: var(--bambofo-radius);
	box-shadow: var(--bambofo-shadow-card);
	min-width: 0;
	padding: clamp(26px, 4vw, 42px);
}

.bambofo-guidance-form__grid {
	display: grid;
	gap: 20px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bambofo-guidance-form__field {
	margin: 0;
	min-width: 0;
}

.bambofo-guidance-form__field--wide {
	grid-column: 1 / -1;
}

.bambofo-guidance-form__field label {
	color: var(--bambofo-color-navy);
	display: block;
	font-family: var(--bambofo-font-body);
	font-weight: 700;
}

.bambofo-guidance-form__field .wpcf7-form-control-wrap {
	display: block;
	margin-top: 8px;
}

.bambofo-guidance-form__field input:not([type="checkbox"]),
.bambofo-guidance-form__field select,
.bambofo-guidance-form__field textarea {
	background: var(--bambofo-color-white);
	border: 1px solid var(--bambofo-color-border);
	border-radius: var(--bambofo-radius);
	color: var(--bambofo-color-heading);
	font-family: var(--bambofo-font-body);
	max-width: 100%;
	min-width: 0;
	width: 100%;
}

.bambofo-guidance-form__field input:not([type="checkbox"]):focus,
.bambofo-guidance-form__field select:focus,
.bambofo-guidance-form__field textarea:focus {
	border-color: var(--bambofo-color-teal);
	box-shadow: 0 0 0 3px rgb(15 107 102 / 15%);
	outline: 0;
}

.bambofo-guidance-form__field textarea {
	min-height: 170px;
	resize: vertical;
}

.bambofo-guidance-form__consent {
	color: var(--bambofo-color-body);
	font-size: 0.95rem;
	line-height: 1.5;
}

.bambofo-guidance-form__consent .wpcf7-list-item {
	margin: 0;
}

.bambofo-guidance-form__consent label {
	align-items: flex-start;
	display: flex;
	font-weight: 500;
	gap: 10px;
}

.bambofo-guidance-form__consent input {
	margin-top: 4px;
}

.bambofo-guidance-form__submit input[type="submit"] {
	background: var(--bambofo-color-copper);
	border-color: var(--bambofo-color-copper);
	color: var(--bambofo-color-navy);
	cursor: pointer;
	font-weight: 700;
	min-height: 52px;
}

.bambofo-guidance-form__submit input[type="submit"]:hover,
.bambofo-guidance-form__submit input[type="submit"]:focus-visible {
	background: var(--bambofo-color-teal);
	border-color: var(--bambofo-color-teal);
	color: var(--bambofo-color-white);
}

.bambofo-guidance .wpcf7-not-valid-tip {
	color: #a12d2d;
	font-size: 0.875rem;
	margin-top: 6px;
}

.bambofo-guidance .wpcf7-response-output {
	border-color: var(--bambofo-color-teal) !important;
	border-radius: var(--bambofo-radius);
	margin-inline: 0 !important;
}

.bambofo-guidance__map {
	border-top: 1px solid var(--bambofo-color-border);
	margin-top: clamp(52px, 7vw, 82px);
	padding-top: clamp(38px, 5vw, 58px);
}

.bambofo-guidance__map-placeholder {
	align-items: center;
	background: linear-gradient(135deg, var(--bambofo-color-sand), #ebe3d5);
	border: 1px solid var(--bambofo-color-border);
	border-radius: var(--bambofo-radius);
	color: var(--bambofo-color-navy);
	display: flex;
	flex-direction: column;
	font-family: var(--bambofo-font-heading);
	font-size: 1.15rem;
	font-weight: 700;
	justify-content: center;
	min-height: 280px;
	padding: 30px;
	text-align: center;
}

.bambofo-guidance__map-placeholder::before {
	background: var(--bambofo-color-copper);
	content: "";
	height: 3px;
	margin-bottom: 18px;
	width: 48px;
}

.bambofo-guidance__map-placeholder small {
	color: var(--bambofo-color-body);
	font-family: var(--bambofo-font-body);
	font-size: 0.95rem;
	font-weight: 400;
	margin-top: 7px;
}

@media (max-width: 991px) {
	.bambofo-guidance__grid > .wp-block-group__inner-container {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 575px) {
	.bambofo-guidance {
		padding-block: 8px 58px;
	}

	.bambofo-guidance__intro {
		margin-bottom: 34px;
		padding-bottom: 28px;
	}

	.bambofo-guidance__details,
	.bambofo-guidance__form-panel {
		padding: 26px 20px;
	}

	.bambofo-guidance-form__grid {
		grid-template-columns: 1fr;
	}

	.bambofo-guidance-form__field--wide {
		grid-column: auto;
	}

	.bambofo-guidance__title {
		font-size: clamp(2.55rem, 13vw, 3.7rem);
	}
}

/* Page and property sidebars */
.sidebar .widget:has(.bambofo-sidebar-widget) {
	margin-bottom: var(--bambofo-space-grid-mobile);
}

.bambofo-sidebar-widget {
	background: var(--bambofo-color-white);
	border: 1px solid var(--bambofo-color-border);
	border-radius: var(--bambofo-radius);
	box-shadow: var(--bambofo-shadow-card);
	color: var(--bambofo-color-body);
	font-family: var(--bambofo-font-body);
	min-width: 0;
	overflow-wrap: anywhere;
	padding: clamp(24px, 3vw, 32px);
}

.bambofo-sidebar-widget::before {
	background: var(--bambofo-color-teal);
	content: "";
	display: block;
	height: 3px;
	margin-bottom: 20px;
	width: 44px;
}

.bambofo-sidebar-widget--action::before {
	background: var(--bambofo-color-copper);
}

.bambofo-sidebar-widget__title {
	color: var(--bambofo-color-navy);
	font-family: var(--bambofo-font-heading);
	font-size: clamp(1.3rem, 2vw, 1.55rem);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.18;
	margin: 0 0 14px;
}

.bambofo-sidebar-widget p {
	line-height: 1.65;
	margin: 0;
}

.bambofo-sidebar-widget__list {
	list-style: none;
	margin: 2px 0 0;
	padding: 0;
}

.bambofo-sidebar-widget__list li {
	border-bottom: 1px solid var(--bambofo-color-border);
	color: var(--bambofo-color-navy);
	font-weight: 600;
	line-height: 1.4;
	padding: 12px 0;
}

.bambofo-sidebar-widget__list li::before {
	color: var(--bambofo-color-teal);
	content: "—";
	display: inline-block;
	margin-right: 10px;
}

.bambofo-sidebar-widget__list li:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.bambofo-sidebar-widget__cta {
	align-items: center;
	background: var(--bambofo-color-copper);
	border: 1px solid var(--bambofo-color-copper);
	border-radius: var(--bambofo-radius);
	color: var(--bambofo-color-navy);
	display: inline-flex;
	font-family: var(--bambofo-font-body);
	font-weight: 700;
	justify-content: center;
	line-height: 1.2;
	margin-top: 20px;
	min-height: 48px;
	padding: 12px 18px;
	text-align: center;
	text-decoration: none;
	width: 100%;
}

.bambofo-sidebar-widget__cta:hover,
.bambofo-sidebar-widget__cta:focus-visible {
	background: var(--bambofo-color-teal);
	border-color: var(--bambofo-color-teal);
	color: var(--bambofo-color-white);
}

@media (max-width: 991px) {
	.sidebar {
		margin-top: var(--bambofo-space-grid);
	}

	.bambofo-sidebar-widget {
		max-width: 100%;
	}
}

@media (max-width: 575px) {
	.bambofo-sidebar-widget {
		padding: 24px 20px;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
	}
}


/* =========================================================
   Bambofo Homes — Real photography integration
   ========================================================= */

/*
 * The original placeholder-based hero was intentionally very tall.
 * Real photography needs a tighter composition so the header,
 * hero and following section read as one continuous experience.
 */

.bambofo-home-hero {
    padding-block: clamp(42px, 5vw, 72px);
}

.bambofo-home-hero__grid {
    min-height: 540px;
    gap: clamp(40px, 6vw, 84px);
}

/* Hero photograph */
.bambofo-home-hero__image {
    position: relative;
    height: 540px;
    overflow: hidden;
    border: 1px solid rgb(16 42 67 / 18%);
    border-left: 6px solid var(--bambofo-color-copper);
    border-radius: var(--bambofo-radius);
    background: #dce5e1;
}

.bambofo-home-hero__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.bambofo-home-hero__image::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(
        180deg,
        transparent 60%,
        rgb(16 42 67 / 16%) 100%
    );
}

/*
 * The following white section already receives the global homepage
 * section spacing. Do not add another artificial top gap.
 */
.bambofo-home-risk {
    padding-top: clamp(58px, 6vw, 82px);
}

/* Before You Pay photograph */
.bambofo-home-signature__image {
    position: relative;
    height: 420px;
    overflow: hidden;
    border: 1px solid rgb(244 239 230 / 18%);
    border-left: 5px solid var(--bambofo-color-copper);
    border-radius: var(--bambofo-radius);
}

.bambofo-home-signature__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

@media (max-width: 1024px) {
    .bambofo-home-hero {
        padding-block: 48px;
    }

    .bambofo-home-hero__grid {
        min-height: 460px;
    }

    .bambofo-home-hero__image {
        height: 460px;
    }
}

@media (max-width: 680px) {
    .bambofo-home-hero {
        padding-block: 46px 48px;
    }

    .bambofo-home-hero__grid {
        min-height: 0;
        gap: 34px;
    }

    .bambofo-home-hero__image {
        height: min(92vw, 420px);
        border-left-width: 4px;
    }

    .bambofo-home-risk {
        padding-top: 52px;
    }

    .bambofo-home-signature__image {
        height: min(90vw, 390px);
    }
}

