/* Landing page sections. */

/* Hero */
/*
 * The hero photo is never cropped: it sits at its natural 3:2 shape against the right edge, at
 * the hero's full height, and its (already dark) left side fades into a background sampled from
 * the photo. The text therefore never covers a candle. Below 1100px it stacks (photo, then text).
 */
.bmc-hero {
	position: relative; display: flex; align-items: center; overflow: hidden; color: #fff;
	min-height: clamp(560px, 44vw, 820px);
	background: linear-gradient(180deg, #071020 0%, #02060f 55%, #00020a 100%);
}
.bmc-hero__media { position: absolute; top: 0; right: 0; bottom: 0; display: flex; justify-content: flex-end; pointer-events: none; }
.bmc-hero__media img {
	height: 100%; width: auto; max-width: none; object-fit: contain;
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 34%);
	mask-image: linear-gradient(90deg, transparent 0%, #000 34%);
}
.bmc-hero__content { position: relative; z-index: 1; padding-top: 72px; padding-bottom: 96px; }
.bmc-hero__title { color: #fff; font-size: clamp(2.8rem, 5.2vw, 5.25rem); line-height: 1.02; margin-bottom: .35em; max-width: 12ch; }
.bmc-hero__lead { max-width: 27rem; font-size: 1.1rem; color: rgba(255, 255, 255, .88); margin-bottom: 2rem; }
.bmc-hero__scroll { position: absolute; z-index: 1; bottom: 24px; left: 50%; transform: translateX(-50%); color: #fff; opacity: .8; animation: bmc-bob 2.4s ease-in-out infinite; }
@keyframes bmc-bob { 50% { transform: translate(-50%, 6px); } }

/* Promise strip */
.bmc-promise { padding: 64px 0; }
.bmc-promise__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 48px; align-items: center; }
.bmc-promise__flames { display: flex; gap: 8px; margin-bottom: 18px; }
.bmc-promise__lead h2 { margin: 0; }
.bmc-promise__list { list-style: none; margin: 0; padding: 28px; display: grid; grid-template-columns: 1fr 1fr; gap: 24px 32px; border-radius: var(--bmc-radius); background: #fff; box-shadow: 0 10px 30px rgba(17, 24, 39, .10); }
.bmc-promise__list li { display: grid; grid-template-columns: 40px 1fr; grid-template-rows: auto 1fr; column-gap: 12px; align-content: start; }
.bmc-promise__icon { grid-row: span 2; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--bmc-soft-blue); color: var(--bmc-primary); }
.bmc-promise__list strong { font-weight: 600; color: var(--bmc-ink); }
.bmc-promise__list span:last-child { color: var(--bmc-muted); font-size: .92rem; }

/* Dark feature band */
.bmc-band {
	position: relative; overflow: hidden; border-radius: var(--bmc-radius-lg); color: #fff;
	padding: clamp(32px, 5vw, 64px); min-height: 560px; display: flex; flex-direction: column;
	background: var(--bmc-navy) var(--band-image) center / cover no-repeat;
}
.bmc-band__title { color: #fff; font-size: clamp(2rem, 3.6vw, 3rem); max-width: 17ch; }
.bmc-band__cards { margin-top: auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; padding: 28px; border-radius: var(--bmc-radius); background: rgba(40, 46, 60, .55); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.bmc-band__card h3 { color: #fff; font-size: 1.6rem; margin: 14px 0 10px; }
.bmc-band__card p { color: rgba(255, 255, 255, .78); font-size: .95rem; margin: 0; }

/* Split section */
.bmc-split { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 64px); align-items: center; }
.bmc-split__media { margin: 0; border-radius: var(--bmc-radius); overflow: hidden; background: var(--bmc-navy-deep); }
.bmc-split__media img { width: 100%; height: auto; } /* portrait photo, shown whole */
.bmc-split__body h2 { margin-bottom: .6em; }
.bmc-split__body .bmc-checklist { margin: 1.5em 0 2em; }

/* Timeline panel */
.bmc-panel { background: var(--bmc-soft-2); border-radius: var(--bmc-radius-lg); padding: clamp(32px, 5vw, 64px); }
.bmc-panel__head { max-width: 640px; margin: 0 auto 48px; }
.bmc-timeline { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(32px, 5vw, 64px); align-items: center; }
.bmc-timeline__steps { list-style: none; margin: 0; padding: 0 0 0 28px; position: relative; display: grid; gap: 34px; }
.bmc-timeline__steps::before { content: ''; position: absolute; left: 4px; top: 14px; bottom: 90px; width: 1px; background: var(--bmc-border); }
.bmc-timeline__steps li { position: relative; }
.bmc-timeline__steps li:not(.bmc-timeline__cta)::before { content: ''; position: absolute; left: -28px; top: 9px; width: 9px; height: 9px; border-radius: 50%; background: var(--bmc-primary); box-shadow: 0 0 0 5px #fff; }
.bmc-timeline__title { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.bmc-timeline__title h3 { font-size: 1.75rem; margin: 0; }
.bmc-timeline__steps p { color: #374151; margin: 0; }
.bmc-timeline__media { margin: 0; border-radius: var(--bmc-radius); overflow: hidden; }
.bmc-timeline__media img { width: 100%; height: auto; }

/* Craft cards */
.bmc-craft { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(32px, 5vw, 64px); align-items: center; }
.bmc-craft__lead h2 { margin-bottom: .6em; }
.bmc-craft__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.bmc-card { background: #fff; border: 1px solid var(--bmc-border-2); border-radius: var(--bmc-radius); padding: 28px 24px; min-height: 200px; display: flex; flex-direction: column; justify-content: flex-end; }
.bmc-card--wide { grid-column: 1 / -1; min-height: 160px; }
.bmc-card h3 { font-size: 1.6rem; margin-bottom: .4em; }
.bmc-card p { margin: 0; color: #374151; font-size: .95rem; }

/* Blue band */
.bmc-blue { background: var(--bmc-primary); color: #fff; padding: var(--bmc-section) 0; }
.bmc-blue__head { display: flex; align-items: center; gap: 28px; margin-bottom: 44px; }
.bmc-blue__head h2 { color: #fff; margin: 0; white-space: nowrap; text-align: center; }
.bmc-blue__rule { flex: 1; height: 1px; background: rgba(255, 255, 255, .6); }
.bmc-blue__moods { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; }
.bmc-blue__moods a {
	height: 100%; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px;
	padding: 28px 16px; border-radius: var(--bmc-radius); border: 1px solid rgba(255, 255, 255, .22);
	background: rgba(11, 19, 36, .32); color: #fff; transition: background .2s var(--bmc-ease), transform .2s var(--bmc-ease);
}
.bmc-blue__moods a:hover { background: rgba(11, 19, 36, .5); color: #fff; transform: translateY(-3px); }
.bmc-blue__moods .bmc-glyph { margin-bottom: 6px; }
.bmc-blue__moods strong { font-family: var(--bmc-font-display); font-weight: 400; font-size: 1.6rem; }
.bmc-blue__tag { font-size: .92rem; }
.bmc-blue__notes { font-size: .78rem; color: rgba(255, 255, 255, .7); }

/* Journey cards */
.bmc-journey { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 44px; }
.bmc-journey__card { position: relative; display: block; border-radius: var(--bmc-radius); overflow: hidden; min-height: 460px; color: #fff; background: var(--bmc-navy); }
.bmc-journey__card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 35%; transition: transform .6s var(--bmc-ease); }
.bmc-journey__card::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(5, 9, 18, 0) 30%, rgba(5, 9, 18, .55) 58%, rgba(5, 9, 18, .9) 100%); }
.bmc-journey__card:hover img { transform: scale(1.03); }
.bmc-journey__card:hover { color: #fff; }
.bmc-journey__body { position: absolute; z-index: 1; left: 32px; right: 32px; bottom: 32px; }
.bmc-journey__body h3 { color: #fff; font-size: 2.2rem; margin-bottom: .3em; }
.bmc-journey__body p { margin-bottom: 1.1em; }

/* FAQ */
.bmc-faq { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: clamp(32px, 5vw, 64px); align-items: start; }
.bmc-faq__list > p { margin-top: 20px; }

@media (max-width: 1100px) {
	.bmc-blue__moods { grid-template-columns: repeat(3, 1fr); }
	.bmc-hero { flex-direction: column; align-items: stretch; min-height: 0; }
	.bmc-hero__media { position: relative; height: min(62vw, 640px); display: block; }
	.bmc-hero__media img {
		width: 100%; height: 100%; object-fit: cover; object-position: 86% 50%;
		-webkit-mask-image: linear-gradient(180deg, #000 72%, transparent 100%);
		mask-image: linear-gradient(180deg, #000 72%, transparent 100%);
	}
	.bmc-hero__content { padding-top: 4px; padding-bottom: 64px; }
	.bmc-hero__scroll { display: none; }
}
@media (max-width: 900px) {
	.bmc-promise__inner, .bmc-split, .bmc-timeline, .bmc-craft, .bmc-faq { grid-template-columns: 1fr; }
	.bmc-band__cards { grid-template-columns: 1fr; gap: 22px; }
	.bmc-journey { grid-template-columns: 1fr; }
	.bmc-timeline__media { order: -1; }
}
@media (max-width: 600px) {
	.bmc-hero__media { height: 92vw; }
	.bmc-hero__title { font-size: 2.6rem; }
	.bmc-promise__list { grid-template-columns: 1fr; padding: 22px; }
	.bmc-blue__moods { grid-template-columns: 1fr 1fr; gap: 12px; }
	.bmc-blue__head h2 { white-space: normal; }
	.bmc-blue__rule { display: none; }
	.bmc-craft__cards { grid-template-columns: 1fr; }
	.bmc-journey__card { min-height: 380px; }
	.bmc-journey__body { left: 22px; right: 22px; bottom: 22px; }
}
