:root {
	--bape-blue: #1385F8;
	--bape-blue-dark: #0B6FD3;
	--bape-navy: #0B1724;
	--bape-navy-2: #10263B;
	--bape-ink: #101828;
	--bape-muted: #5F6B7A;
	--bape-soft: #F4F7FA;
	--bape-soft-blue: #EDF6FF;
	--bape-line: #DDE5EC;
	--bape-white: #FFFFFF;
	--bape-radius: 14px;
	--bape-shadow: 0 16px 40px rgba(16, 24, 40, 0.08);
	--bape-shell-size: 1240px;
}

.bape-solutions-site {
	font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	color: var(--bape-ink);
	background: var(--bape-white);
}

.bape-solutions-site,
.bape-solutions-site * {
	box-sizing: border-box;
}

.bape-solutions-site a {
	text-underline-offset: 0.18em;
}

.bape-solutions-site a:focus-visible,
.bape-solutions-site button:focus-visible,
.bape-solutions-site input:focus-visible,
.bape-solutions-site textarea:focus-visible,
.bape-solutions-site select:focus-visible,
.bape-solutions-site summary:focus-visible {
	outline: 3px solid rgba(19, 133, 248, 0.55);
	outline-offset: 3px;
}

.bape-shell {
	width: min(var(--bape-shell-size), calc(100vw - 40px));
	max-width: var(--bape-shell-size);
	margin-inline: auto !important;
}

.bape-home,
.bape-subhero,
.bape-subpage {
	margin: 0;
	color: var(--bape-ink);
}

.bape-home h1,
.bape-home h2,
.bape-home h3,
.bape-subhero h1,
.bape-subpage h2,
.bape-subpage h3 {
	font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	color: var(--bape-ink);
	letter-spacing: -0.035em;
	margin-top: 0;
}

.bape-home p,
.bape-subhero p,
.bape-subpage p {
	margin-top: 0;
	line-height: 1.62;
}

.bape-home h2,
.bape-subpage h2 {
	font-size: clamp(1.75rem, 2.7vw, 2.5rem);
	line-height: 1.1;
}

.bape-home h3,
.bape-subpage h3 {
	font-size: 1.08rem;
	line-height: 1.25;
}

.bape-eyebrow {
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--bape-blue-dark);
	margin-bottom: 0.9rem !important;
}

.bape-section {
	padding: 58px 0;
}

.bape-section-intro {
	color: var(--bape-muted);
	max-width: 700px;
}

.bape-hero {
	padding: 0;
	background: #fff;
	border-bottom: 1px solid var(--bape-line);
	overflow: hidden;
}

.bape-hero__grid {
	min-height: 560px;
	margin: 0 auto;
	gap: 0;
}

.bape-hero__copy {
	min-width: 0;
	padding: 58px 54px 54px 0;
}

.bape-hero__media {
	min-width: 0;
	align-self: stretch !important;
	background: var(--bape-soft);
}

.bape-hero__title {
	font-size: clamp(2.8rem, 4.6vw, 4.25rem);
	line-height: 0.98;
	max-width: 690px;
	margin-bottom: 1.15rem;
}

.bape-hero__title mark {
	color: var(--bape-blue);
	background: transparent;
	padding: 0;
}

.bape-hero__lead {
	max-width: 650px;
	color: #445163;
	font-size: clamp(1rem, 1.4vw, 1.17rem);
	margin-bottom: 1.45rem !important;
}

.bape-actions {
	gap: 10px;
	margin-bottom: 1.45rem;
}

.bape-button .wp-block-button__link {
	min-height: 48px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.9rem 1.25rem;
	border-radius: 8px;
	font-weight: 750;
	font-size: 0.96rem;
	line-height: 1.1;
	text-decoration: none;
	transition: transform .18s ease, background-color .18s ease, border-color .18s ease, color .18s ease;
}

.bape-button .wp-block-button__link:hover {
	transform: translateY(-1px);
}

.bape-button--primary .wp-block-button__link {
	background: var(--bape-blue-dark);
	border: 1px solid var(--bape-blue-dark);
	color: #fff;
}

.bape-button--primary .wp-block-button__link:hover {
	background: #075FBA;
	border-color: #075FBA;
	color: #fff;
}

.bape-button--outline .wp-block-button__link {
	background: #fff;
	border: 1px solid var(--bape-blue-dark);
	color: #075FBA;
}

.bape-button--outline .wp-block-button__link:hover {
	background: var(--bape-soft-blue);
	color: #064D98;
}

.bape-button--dark-outline .wp-block-button__link {
	background: transparent;
	border: 1px solid rgba(255,255,255,.72);
	color: #fff;
}

.bape-button--dark-outline .wp-block-button__link:hover {
	background: #fff;
	color: var(--bape-navy);
}

.bape-trust-inline {
	display: flex;
	gap: 18px;
	flex-wrap: wrap;
}

.bape-trust-item {
	gap: 8px;
	align-items: center;
}

.bape-trust-item p {
	margin-bottom: 0;
	font-size: 0.84rem;
	font-weight: 700;
	color: #344054;
}

.bape-trust-icon {
	width: 18px !important;
	min-width: 18px;
	color: var(--bape-blue);
}

.bape-hero-visual {
	position: relative;
	min-height: 560px;
	height: 100%;
	overflow: hidden;
	background: #eaf1f7;
}

.bape-hero-image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0 !important;
}

.bape-hero-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.bape-hero-visual::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 52%, rgba(7,18,29,.18) 100%);
	pointer-events: none;
}

.bape-hero__badges {
	position: absolute;
	left: 8%;
	right: 8%;
	bottom: 5%;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}

.bape-mini-card {
	background: rgba(11,23,36,.96);
	border: 1px solid rgba(255,255,255,.12);
	border-radius: 12px;
	color: #fff;
	padding: 15px 16px;
	gap: 12px;
	align-items: center;
	min-height: 78px;
	box-shadow: 0 12px 26px rgba(11,23,36,.16);
}

.bape-mini-card p {
	color: #fff;
	font-size: 0.8rem;
	line-height: 1.38;
	margin-bottom: 0;
}

.bape-mini-card__icon {
	width: 27px !important;
	min-width: 27px;
	color: var(--bape-blue);
}

.bape-services {
	background: var(--bape-soft);
}

.bape-section-heading {
	gap: 22px;
	align-items: flex-end;
	margin-bottom: 26px;
}

.bape-section-heading h2 {
	margin-bottom: .3rem;
}

.bape-section-heading p:not(.bape-eyebrow),
.bape-section-intro {
	color: var(--bape-muted);
	margin-bottom: 0;
}

.bape-section-link {
	margin-left: auto;
}

.bape-section-link a,
.bape-card-link a {
	color: #075FBA;
	font-weight: 750;
	text-decoration: none;
}

.bape-services-grid {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 10px;
}

.bape-service-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--bape-line);
	border-radius: var(--bape-radius);
	padding: 22px 17px 20px;
	min-height: 230px;
	box-shadow: 0 8px 22px rgba(16,24,40,.035);
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.bape-service-card:hover {
	transform: translateY(-3px);
	border-color: rgba(19,133,248,.42);
	box-shadow: 0 14px 30px rgba(16,24,40,.075);
}

.bape-card-icon,
.bape-audience-icon,
.bape-proof-icon,
.bape-local-card__pin,
.bape-value-icon,
.bape-detail-icon,
.bape-contact-icon {
	color: var(--bape-blue);
}

.bape-card-icon {
	width: 46px !important;
	height: 46px !important;
	padding: 11px;
	border-radius: 12px;
	background: var(--bape-soft-blue);
	margin-bottom: 18px;
}

.bape-service-card h3 {
	margin-bottom: .55rem;
}

.bape-service-card > p:not(.bape-card-link) {
	color: var(--bape-muted);
	font-size: 0.89rem;
	margin-bottom: 1rem;
}

.bape-card-link {
	margin-top: auto !important;
	margin-bottom: 0 !important;
	font-size: .84rem;
}

.bape-audiences {
	background: #fff;
	padding-top: 36px;
}

.bape-audience-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.bape-audience-card {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(200px, .92fr);
	min-height: 360px;
	border-radius: 18px;
	border: 1px solid var(--bape-line);
	overflow: hidden;
}

.bape-audience-card__content {
	padding: clamp(28px, 3.5vw, 42px);
	align-self: center;
	position: relative;
	z-index: 2;
}

.bape-audience-card__media {
	min-width: 0;
	min-height: 100%;
	margin: 0;
}

.bape-audience-image {
	width: 100%;
	height: 100%;
	min-height: 360px;
	margin: 0 !important;
}

.bape-audience-image img {
	width: 100%;
	height: 100%;
	min-height: 360px;
	object-fit: cover;
	display: block;
}

.bape-audience-card--light {
	background: linear-gradient(145deg, #fff 0%, #f5f9fc 100%);
}

.bape-audience-card--dark {
	background: linear-gradient(145deg, #0b1724 0%, #10263c 100%);
	border-color: #15334f;
	color: #fff;
}

.bape-audience-card--dark h2,
.bape-audience-card--dark h3,
.bape-audience-card--dark p,
.bape-audience-card--dark li {
	color: #fff;
}

.bape-audience-icon {
	width: 44px !important;
	height: 44px !important;
	padding: 11px;
	border-radius: 12px;
	background: var(--bape-soft-blue);
	margin-bottom: 14px;
}

.bape-audience-card--dark .bape-audience-icon {
	background: rgba(19,133,248,.15);
}

.bape-check-list {
	margin: 18px 0 24px 0;
	padding: 0;
	list-style: none;
}

.bape-check-list li {
	position: relative;
	padding-left: 1.55rem;
	margin-bottom: .55rem;
}

.bape-check-list li::before {
	content: "✓";
	position: absolute;
	left: 0;
	top: 0;
	color: var(--bape-blue-dark);
	font-weight: 900;
}

.bape-audience-card--dark .bape-check-list li::before {
	color: #62B2FF;
}

.bape-proof-strip {
	background: #edf4fa;
	border-block: 1px solid var(--bape-line);
}

.bape-proof-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
}

.bape-proof-item {
	padding: 22px 22px;
	gap: 13px;
	align-items: center;
	border-right: 1px solid #d5e0e9;
}

.bape-proof-item:last-child {
	border-right: 0;
}

.bape-proof-item p {
	margin-bottom: 0;
	color: #596675;
	font-size: .84rem;
	line-height: 1.38;
}

.bape-proof-item strong {
	color: var(--bape-ink);
	font-size: .98rem;
}

.bape-proof-icon {
	width: 28px !important;
	min-width: 28px;
}

.bape-why {
	background: #fff;
}

.bape-why-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
	margin-top: 26px;
}

.bape-value-card {
	border: 1px solid var(--bape-line);
	border-radius: var(--bape-radius);
	padding: 26px;
	background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);
	box-shadow: 0 10px 28px rgba(16,24,40,.035);
}

.bape-value-icon {
	width: 44px !important;
	height: 44px !important;
	padding: 11px;
	border-radius: 12px;
	background: var(--bape-soft-blue);
	margin-bottom: 18px;
}

.bape-value-card p {
	color: var(--bape-muted);
	font-size: .9rem;
	margin-bottom: 0;
}

.bape-local {
	background: var(--bape-soft);
}

.bape-local__grid {
	gap: clamp(30px, 6vw, 80px);
}

.bape-local-card {
	position: relative;
	background:
		radial-gradient(circle at 82% 18%, rgba(19,133,248,.12), transparent 30%),
		linear-gradient(145deg, #fff, #edf4fa);
	border: 1px solid var(--bape-line);
	border-radius: 20px;
	padding: clamp(28px, 4vw, 42px);
	min-height: 300px;
	text-align: center;
	overflow: hidden;
}

.bape-local-card__pin {
	width: 44px !important;
	height: 44px !important;
	padding: 11px;
	border-radius: 14px;
	background: var(--bape-soft-blue);
	margin: 0 auto 16px;
}

.bape-local-card h3 {
	margin-bottom: 18px;
}

.bape-location-chips {
	gap: 8px;
	justify-content: center;
}

.bape-location-chip {
	margin: 0 !important;
	padding: 7px 11px;
	border: 1px solid #cbdbea;
	border-radius: 999px;
	background: rgba(255,255,255,.86);
	color: #405164 !important;
	font-size: .77rem !important;
	line-height: 1.2 !important;
}

.bape-local-card__note {
	margin-top: 16px !important;
	margin-bottom: 0 !important;
	font-size: .8rem;
	color: var(--bape-muted);
}

.bape-faq {
	background: #fff;
	padding-top: 50px;
	padding-bottom: 50px;
}

.bape-faq__header {
	gap: 24px;
	align-items: flex-end;
	margin-bottom: 24px;
}

.bape-faq__header h2 {
	margin-bottom: .35rem;
}

.bape-faq__header p:not(.bape-eyebrow) {
	margin-bottom: 0;
	color: var(--bape-muted);
}

.bape-faq__items {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.bape-faq-item {
	border: 1px solid var(--bape-line);
	border-radius: 12px;
	background: #fff;
	padding: 0;
	overflow: hidden;
	align-self: start;
}

.bape-faq-item summary {
	cursor: pointer;
	font-weight: 750;
	color: var(--bape-ink);
	padding: 16px 18px;
	list-style-position: inside;
}

.bape-faq-item[open] summary {
	background: var(--bape-soft-blue);
}

.bape-faq-item p {
	padding: 0 18px 16px;
	margin: 0;
	color: var(--bape-muted);
}

.bape-cta {
	background: linear-gradient(110deg, #08131f, #10263b);
	color: #fff;
	padding: 38px 0;
}

.bape-cta__inner {
	gap: 28px;
}

.bape-cta h2,
.bape-cta p {
	color: #fff;
}

.bape-cta h2 {
	font-size: clamp(1.7rem, 3vw, 2.6rem);
	margin-bottom: .35rem;
}

.bape-eyebrow--light {
	color: #78BBFF !important;
}

.bape-contact-band {
	background: #07121D;
	color: #fff;
	padding: 22px 0;
	border-top: 1px solid rgba(255,255,255,.08);
}

.bape-contact-band__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
}

.bape-contact-item {
	align-items: center;
	gap: 12px;
	padding: 6px 28px;
	border-right: 1px solid rgba(255,255,255,.12);
	min-width: 0;
}

.bape-contact-item:first-child {
	padding-left: 0;
}

.bape-contact-item:last-child {
	border-right: 0;
}

.bape-contact-item p {
	color: rgba(255,255,255,.76);
	font-size: .8rem;
	line-height: 1.45;
	margin-bottom: 0;
	overflow-wrap: anywhere;
}

.bape-contact-item strong,
.bape-contact-item a {
	color: #fff;
}

.bape-contact-icon {
	width: 25px !important;
	min-width: 25px;
}

.bape-subhero {
	background: linear-gradient(110deg, #f8fbfd 0%, #fff 64%, #edf5fb 100%);
	border-bottom: 1px solid var(--bape-line);
	padding: 70px 0 58px;
}

.bape-subhero__title {
	font-size: clamp(2.35rem, 4.8vw, 4.1rem);
	line-height: 1.02;
	max-width: 900px;
	margin-bottom: 1rem;
}

.bape-subhero__lead {
	font-size: 1.1rem;
	color: var(--bape-muted);
	max-width: 760px;
	margin-bottom: 0;
}

.bape-services-detail-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
}

.bape-detail-card,
.bape-contact-card,
.bape-callout {
	background: #fff;
	border: 1px solid var(--bape-line);
	border-radius: var(--bape-radius);
	padding: 28px;
}

.bape-detail-card {
	min-height: 240px;
}

.bape-detail-icon {
	width: 38px !important;
	margin-bottom: 20px;
}

.bape-detail-card h2,
.bape-contact-card h2,
.bape-callout h2 {
	font-size: 1.45rem;
}

.bape-detail-card p,
.bape-contact-card p,
.bape-callout p {
	color: var(--bape-muted);
}

.bape-two-col {
	gap: clamp(24px, 5vw, 60px);
}

.bape-callout {
	background: var(--bape-soft);
}

.bape-contact-page-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
}

.bape-contact-card a {
	color: #075FBA;
	font-weight: 750;
}

/* Blocksy */
#header [data-row="middle"],
#header [data-row*="middle"] {
	background: var(--bape-navy);
}

#header [data-row="middle"] .ct-container,
#header [data-row*="middle"] .ct-container {
	min-height: 76px;
}

#header .ct-header-logo {
	align-items: center;
}

#header .ct-header-logo img {
	max-height: 52px;
	width: auto;
}

#header .site-title {
	display: none;
}

#header .ct-menu-link,
#header .menu > li > a {
	color: rgba(255,255,255,.94);
	font-weight: 650;
	font-size: .88rem;
	text-transform: none !important;
	letter-spacing: 0 !important;
}

#header .current-menu-item > .ct-menu-link,
#header .current_page_item > a,
#header .menu > li > a:hover {
	color: #78BBFF;
}

#header .bape-menu-phone {
	align-self: center;
	margin-left: 8px;
}

#header .bape-menu-phone > a,
#header .bape-menu-phone > .ct-menu-link {
	height: 44px !important;
	min-height: 44px !important;
	padding: 0 17px !important;
	border-radius: 8px;
	background: var(--bape-blue-dark);
	color: #fff !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1 !important;
}

#header .bape-menu-phone > a:hover,
#header .bape-menu-phone > .ct-menu-link:hover {
	background: #075FBA;
	color: #fff !important;
}

#header [data-id="search"] {
	display: none !important;
}

#header {
	position: sticky;
	top: 0;
	z-index: 999;
	box-shadow: 0 1px 0 rgba(255,255,255,.05);
}

.admin-bar #header {
	top: 32px;
}

#footer [data-row] {
	background: var(--bape-navy);
	color: rgba(255,255,255,.76);
	border-top: 1px solid rgba(255,255,255,.08);
}

#footer a {
	color: #fff;
}

#footer .ct-footer-copyright {
	font-size: .8rem;
}

/* Remove extra spacing around full-width Gutenberg content. */
.bape-solutions-site .site-main .entry-content {
	margin-top: 0;
}

.bape-solutions-site .entry-content > .alignfull:first-child {
	margin-top: 0;
}

@media (max-width: 1180px) {
	.bape-services-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.bape-why-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.bape-services-detail-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 1024px) {
	.bape-hero__grid {
		min-height: 500px;
	}

	.bape-hero__copy {
		padding-right: 32px;
	}

	.bape-hero__title {
		font-size: clamp(2.6rem, 5vw, 3.6rem);
	}

	.bape-hero-visual {
		min-height: 500px;
	}

	#header .ct-menu-link,
	#header .menu > li > a {
		font-size: .82rem;
	}
}

@media (max-width: 900px) {
	.bape-shell {
		width: min(760px, calc(100vw - 32px));
	}

	.bape-section {
		padding: 50px 0;
	}

	.bape-hero__grid {
		flex-direction: column;
		min-height: 0;
	}

	.bape-hero__copy,
	.bape-hero__media {
		flex-basis: 100% !important;
		width: 100%;
	}

	.bape-hero__copy {
		padding: 44px 0 38px;
	}

	.bape-hero-visual {
		min-height: 380px;
		border-radius: 16px;
		margin-bottom: 26px;
	}

	.bape-audience-grid,
	.bape-faq__grid,
	.bape-contact-page-grid {
		grid-template-columns: 1fr;
	}

	.bape-faq__intro {
		position: static;
	}

	.bape-proof-grid {
		grid-template-columns: 1fr 1fr;
	}

	.bape-proof-item:nth-child(2) {
		border-right: 0;
	}

	.bape-proof-item:nth-child(-n+2) {
		border-bottom: 1px solid #d5e0e9;
	}

	.bape-contact-band__grid {
		grid-template-columns: 1fr;
	}

	.bape-contact-item,
	.bape-contact-item:first-child {
		padding: 12px 0;
		border-right: 0;
		border-bottom: 1px solid rgba(255,255,255,.1);
	}

	.bape-contact-item:last-child {
		border-bottom: 0;
	}
}

@media (max-width: 640px) {
	.bape-shell {
		width: calc(100vw - 28px);
	}

	.bape-section {
		padding: 42px 0;
	}

	.bape-hero__copy {
		padding-top: 32px;
	}

	.bape-hero__title {
		font-size: clamp(2.35rem, 12vw, 3.15rem);
	}

	.bape-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.bape-actions .wp-block-button,
	.bape-actions .wp-block-button__link {
		width: 100%;
	}

	.bape-trust-inline {
		display: grid !important;
		grid-template-columns: 1fr;
		gap: 8px;
	}

	.bape-hero-visual {
		min-height: 320px;
	}

	.bape-hero__badges {
		grid-template-columns: 1fr;
	}

	.bape-mini-card:nth-child(2) {
		display: none;
	}

	.bape-services-grid,
	.bape-why-grid,
	.bape-services-detail-grid {
		grid-template-columns: 1fr;
	}

	.bape-service-card {
		min-height: 0;
	}

	.bape-audience-card {
		min-height: 0;
	}

	.bape-proof-grid {
		grid-template-columns: 1fr;
	}

	.bape-proof-item {
		border-right: 0;
		border-bottom: 1px solid #d5e0e9;
	}

	.bape-proof-item:last-child {
		border-bottom: 0;
	}

	.bape-cta__inner {
		align-items: flex-start !important;
	}

	.bape-subhero {
		padding: 48px 0 40px;
	}

	.bape-subhero__title {
		font-size: clamp(2.1rem, 10.5vw, 3rem);
	}
}


@media (max-width: 900px) {
	.bape-audience-card {
		grid-template-columns: 1fr;
	}

	.bape-audience-card__media {
		order: -1;
	}

	.bape-audience-image,
	.bape-audience-image img {
		min-height: 260px;
		height: 260px;
	}

	.bape-faq__items {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 782px) {
	.admin-bar #header {
		top: 46px;
	}
}

@media (max-width: 640px) {
	.bape-hero-image img {
		object-position: 52% center;
	}

	.bape-audience-card__content {
		padding: 26px 22px 28px;
	}

	.bape-location-chip {
		font-size: .72rem !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}

/* V4 layout refinements */
#header [data-row="middle"] .ct-container,
#header [data-row*="middle"] .ct-container {
	min-height: 84px;
}

#header .ct-header-logo img {
	width: 190px !important;
	max-width: 190px !important;
	max-height: none !important;
	height: auto !important;
}

.bape-services-grid,
.bape-audience-grid,
.bape-proof-grid,
.bape-why-grid,
.bape-contact-band__grid,
.bape-services-detail-grid,
.bape-contact-page-grid {
	align-items: stretch;
	grid-auto-rows: 1fr;
}

.bape-services-grid > .bape-service-card,
.bape-audience-grid > .bape-audience-card,
.bape-proof-grid > .bape-proof-item,
.bape-why-grid > .bape-value-card,
.bape-contact-band__grid > .bape-contact-item,
.bape-services-detail-grid > .bape-detail-card,
.bape-contact-page-grid > .bape-contact-card {
	margin: 0 !important;
	align-self: stretch;
	height: 100%;
}

.bape-service-card {
	min-height: 248px;
}

.bape-service-card > .bape-card-link {
	margin-top: auto !important;
	padding-top: 10px;
}

.bape-audience-card {
	min-height: 390px;
}

.bape-audience-card__content {
	display: flex;
	flex-direction: column;
	align-self: stretch;
}

.bape-audience-card__content > .wp-block-buttons {
	margin-top: auto;
}

.bape-audience-card__media,
.bape-audience-image,
.bape-audience-image img {
	height: 100%;
}

.bape-proof-item,
.bape-contact-item {
	display: flex !important;
}

.bape-proof-item {
	min-height: 104px;
}

.bape-value-card {
	display: flex;
	flex-direction: column;
	min-height: 238px;
}

.bape-value-card > p:last-child {
	margin-top: auto;
}

.bape-contact-band__grid {
	min-height: 88px;
}

.bape-contact-item {
	min-height: 88px;
	justify-content: flex-start;
}

.bape-contact-item > p {
	margin: 0 !important;
}

.bape-detail-card {
	display: flex;
	flex-direction: column;
	scroll-margin-top: 110px;
}

.bape-service-choice {
	margin-top: 22px !important;
	padding: 26px 28px;
	gap: 22px;
	border: 1px solid var(--bape-line);
	border-radius: var(--bape-radius);
	background: linear-gradient(135deg, var(--bape-soft-blue), #fff 72%);
}

.bape-service-choice h2 {
	font-size: clamp(1.35rem, 2.1vw, 1.85rem);
	margin-bottom: .35rem;
}

.bape-service-choice p {
	color: var(--bape-muted);
	margin-bottom: 0;
}

@media (max-width: 1180px) {
	#header .ct-header-logo img {
		width: 174px !important;
		max-width: 174px !important;
	}
}

@media (max-width: 1024px) {
	#header [data-row="middle"] .ct-container,
	#header [data-row*="middle"] .ct-container {
		min-height: 76px;
	}

	#header .ct-header-logo img {
		width: 158px !important;
		max-width: 158px !important;
	}
}

@media (max-width: 900px) {
	.bape-audience-card {
		height: auto;
		min-height: 0;
	}

	.bape-contact-band__grid,
	.bape-proof-grid {
		grid-auto-rows: auto;
	}

	.bape-contact-item,
	.bape-proof-item {
		height: auto;
		min-height: 0;
	}
}

@media (max-width: 640px) {
	#header .ct-header-logo img {
		width: 150px !important;
		max-width: 150px !important;
	}

	.bape-service-card,
	.bape-value-card,
	.bape-detail-card,
	.bape-contact-card {
		height: auto;
		min-height: 0;
	}

	.bape-service-choice {
		padding: 22px;
	}
}


/* V5 responsive and finishing refinements */
.bape-home > .wp-block-group,
.bape-home > section.wp-block-group {
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
}

#footer .ct-footer-copyright {
	color: rgba(255,255,255,.62);
}

@media (max-width: 640px) {
	/* Header mobile: conserver le logo lisible sans surdimensionner la barre. */
	#header [data-row="middle"] .ct-container,
	#header [data-row*="middle"] .ct-container {
		min-height: 72px;
	}

	#header .ct-header-logo img {
		width: 142px !important;
		max-width: 142px !important;
	}

	/* Le bouton de retour en haut de Blocksy masque du contenu sur petit écran. */
	.ct-back-to-top,
	.ct-back-to-top-single,
	[data-back-to-top] {
		display: none !important;
	}

	.bape-shell {
		width: calc(100vw - 30px);
	}

	.bape-section {
		padding: 34px 0;
	}

	/* Hero plus compact et plus lisible. */
	.bape-hero__copy {
		padding: 26px 0 26px;
	}

	.bape-eyebrow {
		font-size: .69rem;
		letter-spacing: .13em;
		margin-bottom: .7rem !important;
	}

	.bape-hero__title {
		font-size: clamp(2.15rem, 9.6vw, 2.65rem);
		line-height: 1.01;
		letter-spacing: -0.045em;
		margin-bottom: .9rem;
	}

	.bape-hero__lead {
		font-size: .98rem;
		line-height: 1.58;
		margin-bottom: 1.1rem !important;
	}

	.bape-actions {
		gap: 9px;
		margin-bottom: 1rem;
	}

	.bape-button .wp-block-button__link {
		min-height: 46px;
		padding: .82rem 1rem;
		font-size: .92rem;
	}

	.bape-trust-inline {
		gap: 5px !important;
		margin-bottom: 4px !important;
	}

	.bape-trust-item {
		gap: 7px;
	}

	.bape-trust-item p {
		font-size: .81rem;
		line-height: 1.3;
	}

	.bape-trust-icon {
		width: 17px !important;
		min-width: 17px;
	}

	.bape-hero-visual {
		min-height: 260px;
		margin-bottom: 18px;
		border-radius: 14px;
	}

	.bape-hero__badges {
		left: 12px;
		right: auto;
		bottom: 12px;
		width: min(230px, calc(100% - 24px));
	}

	.bape-mini-card {
		min-height: 64px;
		padding: 11px 12px;
		border-radius: 10px;
	}

	.bape-mini-card p {
		font-size: .74rem;
	}

	.bape-mini-card__icon {
		width: 23px !important;
		min-width: 23px;
	}

	/* Titres de sections plus mesurés sur téléphone. */
	.bape-home h2,
	.bape-subpage h2 {
		font-size: clamp(1.7rem, 7.7vw, 2.08rem);
		line-height: 1.08;
	}

	.bape-section-heading {
		gap: 12px;
		margin-bottom: 20px;
		align-items: flex-start;
	}

	.bape-section-link {
		margin-left: 0;
		width: 100%;
	}

	.bape-section-link a {
		font-size: .9rem;
	}

	/* Cartes services: même contenu, beaucoup moins de hauteur. */
	.bape-services-grid {
		gap: 12px;
	}

	.bape-service-card {
		padding: 18px 18px 17px;
		border-radius: 13px;
		box-shadow: 0 8px 20px rgba(16,24,40,.035);
	}

	.bape-card-icon {
		width: 42px !important;
		height: 42px !important;
		padding: 10px;
		margin-bottom: 12px;
	}

	.bape-service-card h3 {
		font-size: 1rem;
		margin-bottom: .42rem;
	}

	.bape-service-card > p:not(.bape-card-link) {
		font-size: .86rem;
		line-height: 1.48;
		margin-bottom: .7rem;
	}

	.bape-service-card > .bape-card-link {
		margin-top: 8px !important;
		padding-top: 0;
		font-size: .83rem;
	}

	/* Particuliers / Professionnels: réduire fortement la longueur de page. */
	.bape-audiences {
		padding-top: 28px;
		padding-bottom: 30px;
	}

	.bape-audience-grid {
		gap: 14px;
	}

	.bape-audience-card {
		border-radius: 16px;
	}

	.bape-audience-image,
	.bape-audience-image img {
		min-height: 185px;
		height: 185px;
	}

	.bape-audience-card__content {
		padding: 22px 20px 24px;
	}

	.bape-audience-icon {
		width: 40px !important;
		height: 40px !important;
		padding: 10px;
		margin-bottom: 10px;
	}

	.bape-audience-card h2 {
		font-size: 1.9rem;
		line-height: 1.08;
		margin-bottom: .45rem;
	}

	.bape-check-list {
		margin: 14px 0 18px;
	}

	.bape-check-list li {
		font-size: .92rem;
		line-height: 1.42;
		margin-bottom: .42rem;
	}

	.bape-audience-card__content > .wp-block-buttons,
	.bape-audience-card__content > .wp-block-buttons .wp-block-button,
	.bape-audience-card__content > .wp-block-buttons .wp-block-button__link {
		width: 100%;
	}

	/* Réassurance en grille 2 x 2 plutôt qu'une longue liste verticale. */
	.bape-proof-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.bape-proof-item,
	.bape-proof-item:first-child {
		min-height: 92px;
		padding: 15px 12px;
		border-right: 1px solid #d5e0e9;
		border-bottom: 1px solid #d5e0e9;
		gap: 9px;
	}

	.bape-proof-item:nth-child(2n) {
		border-right: 0;
	}

	.bape-proof-item:nth-child(n+3) {
		border-bottom: 0;
	}

	.bape-proof-item strong {
		font-size: .89rem;
	}

	.bape-proof-item p {
		font-size: .74rem;
	}

	.bape-proof-icon {
		width: 24px !important;
		min-width: 24px;
	}

	/* Valeurs: format horizontal plus dense. */
	.bape-why-grid {
		gap: 10px;
		margin-top: 20px;
	}

	.bape-value-card {
		display: grid;
		grid-template-columns: 42px minmax(0, 1fr);
		column-gap: 13px;
		row-gap: 5px;
		align-items: start;
		padding: 18px;
		border-radius: 13px;
	}

	.bape-value-icon {
		grid-column: 1;
		grid-row: 1 / span 2;
		width: 42px !important;
		height: 42px !important;
		padding: 10px;
		margin: 0;
	}

	.bape-value-card h3 {
		grid-column: 2;
		margin: 2px 0 0;
		font-size: .98rem;
	}

	.bape-value-card > p:last-child {
		grid-column: 2;
		margin: 0 !important;
		font-size: .84rem;
		line-height: 1.48;
	}

	/* Zone locale et FAQ plus compactes. */
	.bape-local__grid {
		gap: 24px;
	}

	.bape-local-card {
		padding: 24px 18px;
		min-height: 0;
		border-radius: 16px;
	}

	.bape-local-card__pin {
		width: 40px !important;
		height: 40px !important;
		padding: 10px;
		margin-bottom: 12px;
	}

	.bape-location-chips {
		gap: 7px;
	}

	.bape-location-chip {
		padding: 6px 9px;
		font-size: .7rem !important;
	}

	.bape-faq {
		padding-top: 36px;
		padding-bottom: 36px;
	}

	.bape-faq__header {
		gap: 16px;
		margin-bottom: 18px;
		align-items: flex-start;
	}

	.bape-faq-item summary {
		padding: 14px 15px;
		font-size: .93rem;
		line-height: 1.35;
	}

	.bape-faq-item p {
		padding: 0 15px 14px;
		font-size: .88rem;
	}

	/* CTA et coordonnées sans interstice blanc parasite. */
	.bape-cta {
		padding: 30px 0;
		margin: 0 !important;
	}

	.bape-cta h2 {
		font-size: 1.75rem;
		line-height: 1.08;
	}

	.bape-contact-band {
		margin: 0 !important;
		padding: 10px 0;
	}

	.bape-contact-item,
	.bape-contact-item:first-child {
		padding: 14px 0;
	}

	#footer {
		margin-top: 0 !important;
	}

	#footer [data-row] {
		margin-top: 0 !important;
	}
}

@media (max-width: 420px) {
	.bape-hero__title {
		font-size: clamp(2.05rem, 9.2vw, 2.4rem);
	}

	.bape-proof-grid {
		grid-template-columns: 1fr;
	}

	.bape-proof-item,
	.bape-proof-item:first-child,
	.bape-proof-item:nth-child(2n),
	.bape-proof-item:nth-child(n+3) {
		min-height: 76px;
		border-right: 0;
		border-bottom: 1px solid #d5e0e9;
	}

	.bape-proof-item:last-child {
		border-bottom: 0;
	}
}

/* V5.1 mobile alignment patch */
@media (max-width: 900px) {
	/* Repères sous le hero : icône et libellé restent sur un axe propre. */
	.bape-trust-inline {
		display: grid !important;
		grid-template-columns: 1fr !important;
		gap: 8px !important;
		align-items: stretch !important;
	}

	.bape-trust-item {
		display: grid !important;
		grid-template-columns: 32px minmax(0, 1fr) !important;
		column-gap: 10px !important;
		align-items: center !important;
		min-width: 0;
		margin: 0 !important;
	}

	.bape-trust-item > .wp-block-icon,
	.bape-trust-icon {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		width: 30px !important;
		height: 30px !important;
		min-width: 30px !important;
		margin: 0 !important;
		padding: 0 !important;
		line-height: 1 !important;
	}

	.bape-trust-item > .wp-block-icon svg,
	.bape-trust-icon svg {
		display: block !important;
		width: 30px !important;
		height: 30px !important;
		max-width: 30px !important;
		max-height: 30px !important;
		flex: 0 0 30px !important;
	}

	.bape-trust-item p {
		margin: 0 !important;
		min-width: 0;
		line-height: 1.25 !important;
	}

	/* Badges de l'illustration : exploiter toute la largeur disponible. */
	.bape-hero__badges {
		left: 12px !important;
		right: 12px !important;
		bottom: 12px !important;
		width: auto !important;
		max-width: none !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 8px !important;
	}

	.bape-mini-card,
	.bape-mini-card:nth-child(2) {
		display: grid !important;
		grid-template-columns: 30px minmax(0, 1fr) !important;
		column-gap: 9px !important;
		align-items: center !important;
		min-width: 0;
		min-height: 66px;
		padding: 10px 11px !important;
		overflow: hidden;
	}

	.bape-mini-card > .wp-block-icon,
	.bape-mini-card__icon {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		width: 28px !important;
		height: 28px !important;
		min-width: 28px !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.bape-mini-card > .wp-block-icon svg,
	.bape-mini-card__icon svg {
		display: block !important;
		width: 28px !important;
		height: 28px !important;
		max-width: 28px !important;
		max-height: 28px !important;
	}

	.bape-mini-card p {
		margin: 0 !important;
		min-width: 0;
		font-size: .73rem !important;
		line-height: 1.25 !important;
		word-break: normal !important;
		overflow-wrap: normal !important;
		hyphens: none !important;
	}

	.bape-mini-card strong {
		display: block;
		margin-bottom: 2px;
		font-size: .75rem;
		line-height: 1.2;
	}
}

@media (max-width: 430px) {
	/* Sur les très petits écrans, les deux badges passent l'un sous l'autre. */
	.bape-hero-visual {
		min-height: 330px;
	}

	.bape-hero__badges {
		grid-template-columns: 1fr !important;
	}

	.bape-mini-card,
	.bape-mini-card:nth-child(2) {
		min-height: 58px;
	}
}


/* V6 — Bibliothèque de photographies réelles */
.bape-service-photo-section {
	background: #ffffff;
}

.bape-service-photo-section .bape-section-heading {
	max-width: 760px;
	margin-bottom: 30px;
}

.bape-service-photo-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.bape-service-photo-card {
	overflow: hidden;
	border: 1px solid #dbe5ef;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 14px 34px rgba(9, 25, 42, 0.06);
}

.bape-service-photo {
	aspect-ratio: 16 / 10;
	margin: 0 !important;
	overflow: hidden;
	background: #edf3f8;
}

.bape-service-photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .25s ease;
}

.bape-service-photo-card:hover .bape-service-photo img {
	transform: scale(1.018);
}

.bape-service-photo-card__body {
	padding: 18px 20px 20px;
}

.bape-service-photo-card__body h3 {
	margin: 0 0 12px;
	font-size: clamp(1.02rem, 1.2vw, 1.18rem);
	line-height: 1.25;
}

.bape-service-photo-card__body .bape-card-link {
	margin: 0;
}

/* Les vraies photos doivent rester naturelles : aucun filtre artificiel. */
.bape-hero-image img,
.bape-audience-image img,
.bape-service-photo img {
	filter: none;
}

@media (max-width: 960px) {
	.bape-service-photo-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.bape-service-photo-section .bape-section-heading {
		margin-bottom: 20px;
	}

	.bape-service-photo-grid {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.bape-service-photo-card {
		border-radius: 16px;
	}

	.bape-service-photo-card__body {
		padding: 15px 16px 17px;
	}
}

/* ==========================================================
   BAPE SOLUTIONS V6.4 — photos réelles / cadrage éditorial
   ========================================================== */

/* Le Hero conserve une vraie photo mais reçoit le même langage
   visuel que le reste du site : bord, profondeur et voile bleu léger. */
.bape-hero__media {
    padding: 18px 0 18px 18px;
    background: #fff;
}

.bape-hero-visual {
    min-height: 510px;
    border: 1px solid #d9e3ec;
    border-radius: 20px;
    box-shadow: 0 20px 46px rgba(11, 23, 36, .09);
    background: #eef4f9;
}

.bape-hero-image img {
    object-position: 50% 50%;
    filter: saturate(.88) contrast(.97) brightness(.98);
}

.bape-hero-visual::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        linear-gradient(135deg, rgba(19,133,248,.055), transparent 42%),
        linear-gradient(180deg, transparent 58%, rgba(7,18,29,.08) 100%);
}

.bape-hero-visual::after {
    z-index: 1;
    background: linear-gradient(180deg, transparent 62%, rgba(7,18,29,.16) 100%);
}

.bape-hero__badges {
    z-index: 2;
}

/* Les vraies photos Particuliers / Professionnels sont des paysages.
   On réduit donc la hauteur forcée qui créait un recadrage vertical excessif. */
@media (min-width: 901px) {
    .bape-audience-card {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        min-height: 330px;
    }

    .bape-audience-image,
    .bape-audience-image img {
        min-height: 330px;
        height: 330px;
    }

    .bape-audience-image--particuliers img {
        object-position: 50% 48%;
    }

    .bape-audience-image--professionnels img {
        object-position: 50% 46%;
    }
}

.bape-audience-card--light .bape-audience-card__media {
    background: #f2f6f9;
}

.bape-audience-card--dark .bape-audience-card__media {
    background: #081726;
}

.bape-audience-card--dark .bape-audience-image img {
    filter: saturate(.82) brightness(.86) contrast(1.02);
}

/* Les photos sont légèrement traitées, jamais masquées par un effet artificiel. */
.bape-audience-image img {
    transition: transform .3s ease, filter .3s ease;
}

@media (hover: hover) and (pointer: fine) {
    .bape-audience-card:hover .bape-audience-image img {
        transform: scale(1.018);
    }
}

@media (max-width: 900px) {
    .bape-hero__media {
        padding: 0;
        background: #fff;
    }

    .bape-hero-visual {
        min-height: 0;
        height: auto;
        aspect-ratio: 4 / 3;
        border-radius: 16px;
        box-shadow: 0 14px 30px rgba(11,23,36,.08);
    }

    .bape-hero-image img {
        object-position: 50% 50%;
    }

    .bape-audience-image,
    .bape-audience-image img {
        min-height: 210px;
        height: 210px;
    }

    .bape-audience-image--particuliers img {
        object-position: 50% 45%;
    }

    .bape-audience-image--professionnels img {
        object-position: 50% 42%;
    }
}

@media (max-width: 520px) {
    .bape-hero-visual {
        aspect-ratio: 1 / 1;
    }

    .bape-audience-image,
    .bape-audience-image img {
        min-height: 190px;
        height: 190px;
    }
}


/* ==========================================================
   BAPE SOLUTIONS V6.5 — cadrage photo final
   ========================================================== */

/* Hero desktop : ratio plus horizontal pour respecter la photo source.
   Le visuel reste centré verticalement dans la colonne du Hero. */
@media (min-width: 901px) {
    .bape-hero__media {
        display: flex;
        align-items: center !important;
        padding: 22px 0 22px 22px;
    }

    .bape-hero-visual {
        width: 100%;
        min-height: 0;
        height: auto;
        aspect-ratio: 4 / 3;
        max-height: 470px;
        margin: 0;
    }

    .bape-hero-image,
    .bape-hero-image img {
        width: 100%;
        height: 100%;
    }

    .bape-hero-image img {
        object-fit: cover;
        object-position: 50% 42%;
    }

    /* Les cartes audience gardent leur composition côte à côte mais
       réduisent légèrement la hauteur forcée pour limiter le zoom. */
    .bape-audience-card {
        min-height: 310px;
    }

    .bape-audience-image,
    .bape-audience-image img {
        min-height: 310px;
        height: 310px;
    }

    /* Photo verticale : priorité au visage, au laptop et aux mains. */
    .bape-audience-image--particuliers img {
        object-position: 50% 35%;
    }

    /* Photo d'équipe horizontale : recentrage sur les deux personnes
       principales plutôt que sur le bord droit de la scène. */
    .bape-audience-image--professionnels img {
        object-position: 43% 50%;
    }
}

/* Tablette / mobile : ratios explicites pour éviter un recadrage aléatoire. */
@media (max-width: 900px) {
    .bape-hero-visual {
        aspect-ratio: 4 / 3;
        height: auto;
    }

    .bape-hero-image img {
        object-position: 50% 42%;
    }

    .bape-audience-image,
    .bape-audience-image img {
        height: auto;
        min-height: 0;
    }

    .bape-audience-image {
        aspect-ratio: 4 / 3;
        overflow: hidden;
    }

    .bape-audience-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .bape-audience-image--particuliers img {
        object-position: 50% 32%;
    }

    .bape-audience-image--professionnels img {
        object-position: 45% 50%;
    }
}

@media (max-width: 520px) {
    .bape-hero-visual {
        aspect-ratio: 16 / 11;
    }

    .bape-audience-image {
        aspect-ratio: 16 / 10;
    }

    .bape-audience-image--particuliers img {
        object-position: 50% 30%;
    }
}


/* ==========================================================
   BAPE SOLUTIONS V6.6 — correction cadrage Audience desktop
   ========================================================== */

/*
 * Les photos Particuliers / Professionnels doivent remplir toute la
 * colonne média. Les V6.4/V6.5 forçaient une hauteur fixe (310 px),
 * ce qui laissait un grand vide sous la photo lorsque la colonne texte
 * rendait la carte plus haute.
 */
@media (min-width: 901px) {
    .bape-audience-card {
        align-items: stretch;
    }

    .bape-audience-card__media {
        position: relative;
        align-self: stretch;
        height: auto !important;
        min-height: 100% !important;
        overflow: hidden;
    }

    .bape-audience-card__media .bape-audience-image {
        position: absolute;
        inset: 0;
        width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        margin: 0 !important;
        aspect-ratio: auto !important;
        overflow: hidden;
    }

    .bape-audience-card__media .bape-audience-image img {
        position: absolute;
        inset: 0;
        width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        object-fit: cover !important;
        transform: none;
    }

    /* Points focaux adaptés aux deux photos réelles. */
    .bape-audience-image--particuliers img {
        object-position: 52% 50% !important;
    }

    .bape-audience-image--professionnels img {
        object-position: 50% 50% !important;
    }
}

/* Sur tablette/mobile on garde les photos en bandeau au-dessus du texte. */
@media (max-width: 900px) {
    .bape-audience-card__media {
        position: static;
        min-height: 0 !important;
    }

    .bape-audience-card__media .bape-audience-image {
        position: relative;
        inset: auto;
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        aspect-ratio: 4 / 3 !important;
    }

    .bape-audience-card__media .bape-audience-image img {
        position: absolute;
        inset: 0;
        width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        object-fit: cover !important;
    }
}

@media (max-width: 520px) {
    .bape-audience-card__media .bape-audience-image {
        aspect-ratio: 16 / 10 !important;
    }
}


/* ==========================================================
   BAPE SOLUTIONS V6.7 — Hero lumineux
   ========================================================== */
.bape-hero-image--v67 img {
    object-fit: cover !important;
    object-position: 50% 50% !important;
    filter: saturate(.94) contrast(.985) brightness(1.01) !important;
}

@media (min-width: 901px) {
    .bape-hero-visual {
        aspect-ratio: 4 / 3;
        max-height: 470px;
        background: #f7fafc;
    }

    .bape-hero-image--v67,
    .bape-hero-image--v67 img {
        width: 100%;
        height: 100%;
    }

    .bape-hero-image--v67 img {
        object-position: 50% 48% !important;
    }
}

@media (max-width: 900px) {
    .bape-hero-image--v67 img {
        object-position: 52% 48% !important;
    }
}

@media (max-width: 520px) {
    .bape-hero-image--v67 img {
        object-position: 54% 48% !important;
    }
}

/* ==========================================================
   BAPE SOLUTIONS V7 — Pages Services
   ========================================================== */
.bape-v7-services-overview {
	background: #f5f8fb;
}

.bape-v7-services-overview .bape-section-heading {
	max-width: 780px;
	margin-bottom: 34px;
}

.bape-v7-service-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.bape-v7-service-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
	border: 1px solid #dbe4ec;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 12px 30px rgba(11, 31, 49, .055);
}

.bape-v7-service-card .bape-v7-service-card__image {
	margin: 0;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: #eaf0f5;
}

.bape-v7-service-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .28s ease;
}

.bape-v7-service-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 22px;
}

.bape-v7-service-card__body h2 {
	margin: 12px 0 10px;
	font-size: clamp(1.18rem, 1.4vw, 1.42rem);
	line-height: 1.18;
}

.bape-v7-service-card__body > p:not(.bape-card-link) {
	color: #647181;
}

.bape-v7-service-card__body .bape-card-link {
	margin-top: auto;
	padding-top: 18px;
}

@media (hover: hover) and (pointer: fine) {
	.bape-v7-service-card:hover .bape-v7-service-card__image img {
		transform: scale(1.025);
	}
}

.bape-v7-method {
	background: #fff;
}

.bape-v7-steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin-top: 30px;
}

.bape-v7-step {
	padding: 26px;
	border: 1px solid #dbe4ec;
	border-radius: 16px;
	background: #fff;
}

.bape-v7-step__number {
	margin: 0 0 20px;
	color: #1385f8;
	font-weight: 800;
	font-size: .82rem;
	letter-spacing: .12em;
}

.bape-v7-step h3 {
	margin: 0 0 10px;
}

.bape-v7-step p:last-child {
	margin-bottom: 0;
	color: #647181;
}

.bape-v7-service-page {
	padding: 22px 0 0;
	background: #fff;
}

.bape-v7-breadcrumb {
	padding-top: 14px;
	padding-bottom: 18px;
	font-size: .88rem;
	color: #6c7785;
}

.bape-v7-breadcrumb p {
	margin: 0;
}

.bape-v7-breadcrumb a {
	color: #3b536a;
	text-decoration: none;
}

.bape-v7-service-hero {
	align-items: stretch !important;
	gap: clamp(30px, 4vw, 66px);
	padding-top: 34px;
	padding-bottom: 70px;
}

.bape-v7-service-hero__content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 30px 0;
}

.bape-v7-service-hero__content h1 {
	max-width: 720px;
	margin: 10px 0 20px;
	font-size: clamp(2.25rem, 4.35vw, 4.55rem);
	line-height: .98;
	letter-spacing: -.048em;
}

.bape-v7-service-lead {
	max-width: 680px;
	margin-bottom: 28px;
	font-size: clamp(1.05rem, 1.35vw, 1.25rem);
	line-height: 1.65;
	color: #566474;
}

.bape-v7-service-hero__media {
	position: relative;
	min-height: 440px;
	overflow: hidden;
	border: 1px solid #dbe4ec;
	border-radius: 20px;
	background: #eef4f8;
	box-shadow: 0 18px 42px rgba(11,31,49,.08);
}

.bape-v7-service-hero__image {
	position: absolute;
	inset: 0;
	margin: 0 !important;
}

.bape-v7-service-hero__image img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}

.bape-v7-service-needs {
	background: #f4f7fa;
}

.bape-v7-service-two-col {
	align-items: stretch !important;
	gap: clamp(30px, 5vw, 70px);
}

.bape-v7-note {
	height: 100%;
	padding: clamp(28px, 4vw, 46px);
	border-radius: 18px;
	background: #0b1d2e;
	color: #fff;
}

.bape-v7-note h2,
.bape-v7-note p {
	color: inherit;
}

.bape-v7-note p:last-child {
	margin-bottom: 0;
	color: #d8e4ef;
}

.bape-v7-process {
	background: #fff;
}

.bape-v7-faq {
	background: #f4f7fa;
}

.bape-v7-faq__inner {
	display: grid;
	grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
	gap: clamp(28px, 5vw, 74px);
	align-items: start;
}

.bape-v7-faq__items {
	display: grid;
	gap: 12px;
}

.bape-v7-faq-item {
	padding: 0 20px;
	border: 1px solid #dbe4ec;
	border-radius: 14px;
	background: #fff;
}

.bape-v7-faq-item summary {
	padding: 18px 0;
	font-weight: 750;
	cursor: pointer;
}

.bape-v7-faq-item p {
	padding: 0 0 18px;
	margin: 0;
	color: #607080;
}

@media (max-width: 1020px) {
	.bape-v7-service-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 900px) {
	.bape-v7-service-hero {
		gap: 24px;
		padding-top: 18px;
		padding-bottom: 42px;
	}

	.bape-v7-service-hero__media {
		min-height: 0;
		aspect-ratio: 16 / 10;
	}

	.bape-v7-service-hero__image {
		position: absolute;
	}

	.bape-v7-steps,
	.bape-v7-faq__inner {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 640px) {
	.bape-v7-service-grid {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.bape-v7-service-card {
		border-radius: 16px;
	}

	.bape-v7-service-card__body {
		padding: 18px;
	}

	.bape-v7-service-hero__content h1 {
		font-size: clamp(2.25rem, 12vw, 3.35rem);
	}

	.bape-v7-service-hero__media {
		aspect-ratio: 4 / 3;
		border-radius: 16px;
	}

	.bape-v7-step,
	.bape-v7-note {
		padding: 22px;
	}
}


/* ==========================================================
   BAPE SOLUTIONS V7.1 — Alignement services + matériel
   ========================================================== */
.bape-v7-service-grid {
	align-items: stretch !important;
	grid-auto-rows: 1fr;
}

.bape-v7-service-grid > .bape-v7-service-card,
.bape-v7-service-card {
	height: 100% !important;
	min-height: 0;
}

.bape-v7-service-card__body {
	height: 100%;
}

.bape-v7-service-card__body > p:not(.bape-card-link) {
	margin-bottom: 0;
}

.bape-v7-service-card__body .bape-card-link {
	margin-top: auto !important;
	padding-top: 22px;
}

.bape-v71-hardware-callout {
	gap: 28px;
	margin-top: 28px;
	padding: clamp(26px, 3.5vw, 42px);
	border: 1px solid #cfe1f4;
	border-radius: 18px;
	background: linear-gradient(135deg, #ffffff 0%, #eef6ff 100%);
	box-shadow: 0 12px 30px rgba(11,31,49,.045);
}

.bape-v71-hardware-callout > .wp-block-group {
	max-width: 780px;
}

.bape-v71-hardware-callout h2 {
	margin: 8px 0 10px;
}

.bape-v71-hardware-callout p:last-child {
	margin-bottom: 0;
	color: #5d6d7d;
}

@media (max-width: 640px) {
	.bape-v71-hardware-callout {
		align-items: flex-start !important;
		padding: 22px;
	}
	.bape-v71-hardware-callout .wp-block-buttons,
	.bape-v71-hardware-callout .wp-block-button,
	.bape-v71-hardware-callout .wp-block-button__link {
		width: 100%;
	}
}


/* ==========================================================
   BAPE SOLUTIONS V7.2 — Solutions complémentaires
   ========================================================== */
.bape-v72-solutions {
	background: #fff;
}

.bape-v72-solutions .bape-section-heading {
	max-width: 820px;
	margin-bottom: 34px;
}

.bape-v72-solution-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	align-items: stretch;
	grid-auto-rows: 1fr;
}

.bape-v72-solution-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	min-width: 0;
	overflow: hidden;
	border: 1px solid #d6e1ea;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 14px 34px rgba(11,31,49,.065);
}

.bape-v72-solution-card .bape-v72-solution-card__image {
	margin: 0;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: #eaf0f5;
}

.bape-v72-solution-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .28s ease;
}

.bape-v72-solution-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	height: 100%;
	padding: 24px;
}

.bape-v72-solution-card__body h2 {
	margin: 12px 0 10px;
	font-size: clamp(1.2rem, 1.55vw, 1.48rem);
	line-height: 1.18;
}

.bape-v72-solution-card__body > p:not(.bape-card-link) {
	margin-bottom: 0;
	color: #647181;
}

.bape-v72-solution-card__body .bape-card-link {
	margin-top: auto;
	padding-top: 22px;
}

@media (hover: hover) and (pointer: fine) {
	.bape-v72-solution-card:hover .bape-v72-solution-card__image img {
		transform: scale(1.025);
	}
}

@media (max-width: 1020px) {
	.bape-v72-solution-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.bape-v72-solution-card:last-child {
		grid-column: 1 / -1;
	}
}

@media (max-width: 640px) {
	.bape-v72-solution-grid {
		grid-template-columns: 1fr;
		gap: 14px;
	}
	.bape-v72-solution-card:last-child {
		grid-column: auto;
	}
	.bape-v72-solution-card__body {
		padding: 18px;
	}
}


/* ==========================================================
   BAPE SOLUTIONS V7.3 — Photo showroom, maillage et préparation V8
   ========================================================== */
.bape-v72-solution-card--vente-materiel-informatique .bape-v72-solution-card__image img {
	object-position: 50% 58%;
}

.bape-v73-related {
	background: #f4f7fa;
}

.bape-v73-related-grid,
.bape-v73-audience-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin-top: 28px;
}

.bape-v73-related-card,
.bape-v73-audience-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: 24px;
	border: 1px solid #d6e1ea;
	border-radius: 16px;
	background: #fff;
}

.bape-v73-related-card h3,
.bape-v73-audience-card h3 {
	margin-top: 0;
}

.bape-v73-related-card .bape-card-link,
.bape-v73-audience-card .bape-card-link {
	margin-top: auto;
	padding-top: 14px;
}

.bape-v73-audience-links {
	background: #f7f9fb;
}

.bape-v73-audience-links__inner {
	gap: 26px;
}

.bape-v73-audience-links__inner > .wp-block-group:first-child {
	max-width: 760px;
}

@media (max-width: 900px) {
	.bape-v73-related-grid,
	.bape-v73-audience-grid {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================
   BAPE SOLUTIONS V8 — Parcours Particuliers / Professionnels
   ========================================================== */
.bape-v8-audience-page {
	padding-top: clamp(46px, 6vw, 76px);
	padding-bottom: clamp(46px, 6vw, 76px);
}

.bape-v8-intro {
	align-items: stretch;
	gap: clamp(30px, 5vw, 64px);
}

.bape-v8-intro__content {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.bape-v8-intro__content .wp-block-buttons {
	margin-top: 26px;
}

.bape-v8-intro__media {
	min-width: 0;
}

.bape-v8-audience-image,
.bape-v8-audience-image img {
	width: 100%;
	height: 100%;
}

.bape-v8-audience-image {
	min-height: 390px;
	margin: 0;
	overflow: hidden;
	border-radius: 20px;
	background: #e9eef3;
}

.bape-v8-audience-image img {
	display: block;
	min-height: 390px;
	object-fit: cover;
}

.bape-v8-audience-image--particuliers img {
	object-position: center 52%;
}

.bape-v8-audience-image--professionnels img {
	object-position: center 48%;
}

.bape-v8-services {
	background: #f5f8fb;
}

.bape-v8-service-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin-top: 30px;
}

.bape-v8-service-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	height: 100%;
	padding: 24px;
	border: 1px solid #d8e2eb;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 10px 28px rgba(14, 32, 49, 0.045);
}

.bape-v8-service-card h3,
.bape-v8-info-card h3 {
	margin-top: 14px;
	margin-bottom: 10px;
}

.bape-v8-service-card .bape-card-link {
	margin-top: auto;
	padding-top: 16px;
}

@media (hover: hover) and (pointer: fine) {
	.bape-v8-service-card {
		transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
	}
	.bape-v8-service-card:hover {
		transform: translateY(-3px);
		border-color: rgba(19, 133, 248, .34);
		box-shadow: 0 16px 38px rgba(14, 32, 49, .08);
	}
}

.bape-v8-advice-strip {
	gap: 24px;
	margin-top: 20px;
	padding: 24px 26px;
	border: 1px solid #d8e2eb;
	border-radius: 16px;
	background: #fff;
}

.bape-v8-advice-strip > .wp-block-group:first-child {
	max-width: 780px;
}

.bape-v8-benefits,
.bape-v8-engagement {
	background: #fff;
}

.bape-v8-info-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin-top: 30px;
}

.bape-v8-info-card {
	padding: 24px;
	border: 1px solid #d8e2eb;
	border-radius: 16px;
	background: #fff;
}

.bape-v8-benefits .bape-v8-info-card,
.bape-v8-engagement .bape-v8-info-card {
	background: #f7f9fb;
}

.bape-v8-process {
	background: #f5f8fb;
}

.bape-v8-pro-focus {
	background: #0d1722;
	color: #fff;
}

.bape-v8-pro-focus__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

.bape-v8-focus-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: clamp(26px, 4vw, 38px);
	border: 1px solid rgba(255, 255, 255, .13);
	border-radius: 18px;
	background: rgba(255, 255, 255, .055);
}

.bape-v8-focus-card .bape-detail-icon {
	color: #1385F8;
}

.bape-v8-focus-card .bape-eyebrow {
	color: #80bdff;
}

.bape-v8-focus-card h2,
.bape-v8-focus-card p {
	color: inherit;
}

.bape-v8-focus-card .bape-card-link {
	margin-top: auto;
	padding-top: 18px;
}

.bape-v8-focus-card .bape-card-link a {
	color: #fff;
}

.bape-v8-faq {
	background: #fff;
}

@media (max-width: 980px) {
	.bape-v8-service-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.bape-v8-info-grid,
	.bape-v8-pro-focus__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 781px) {
	.bape-v8-intro {
		gap: 24px;
	}
	.bape-v8-intro__media {
		order: -1;
	}
	.bape-v8-audience-image,
	.bape-v8-audience-image img {
		min-height: 0;
		height: auto;
		aspect-ratio: 16 / 10;
	}
}

@media (max-width: 640px) {
	.bape-v8-service-grid {
		grid-template-columns: 1fr;
		gap: 14px;
	}
	.bape-v8-service-card,
	.bape-v8-info-card,
	.bape-v8-advice-strip {
		padding: 20px;
	}
	.bape-v8-audience-image,
	.bape-v8-audience-image img {
		aspect-ratio: 4 / 3;
	}
}


/* ==========================================================
   BAPE SOLUTIONS V8.1 — Alignement global des cartes
   ========================================================== */
/*
 * Les groupes Gutenberg peuvent conserver leurs propres marges de bloc.
 * On verrouille l'étirement des cartes uniquement sur les grilles multi-colonnes.
 */
.bape-v8-service-grid,
.bape-v8-info-grid,
.bape-v8-pro-focus__grid,
.bape-v73-related-grid,
.bape-v73-audience-grid,
.bape-v7-steps {
	align-items: stretch !important;
	grid-auto-rows: 1fr;
}

.bape-v8-service-grid > .bape-v8-service-card,
.bape-v8-info-grid > .bape-v8-info-card,
.bape-v8-pro-focus__grid > .bape-v8-focus-card,
.bape-v73-related-grid > .bape-v73-related-card,
.bape-v73-audience-grid > .bape-v73-audience-card,
.bape-v7-steps > .bape-v7-step {
	box-sizing: border-box;
	height: 100% !important;
	min-height: 0;
	margin: 0 !important;
	align-self: stretch !important;
}

.bape-v8-info-card,
.bape-v7-step {
	display: flex;
	flex-direction: column;
}

.bape-v8-info-card > p:last-child,
.bape-v7-step > p:last-child {
	margin-bottom: 0 !important;
}

@media (max-width: 980px) {
	.bape-v8-info-grid,
	.bape-v8-pro-focus__grid {
		grid-auto-rows: auto;
	}

	.bape-v8-info-grid > .bape-v8-info-card,
	.bape-v8-pro-focus__grid > .bape-v8-focus-card {
		height: auto !important;
	}
}

@media (max-width: 900px) {
	.bape-v73-related-grid,
	.bape-v73-audience-grid,
	.bape-v7-steps {
		grid-auto-rows: auto;
	}

	.bape-v73-related-grid > .bape-v73-related-card,
	.bape-v73-audience-grid > .bape-v73-audience-card,
	.bape-v7-steps > .bape-v7-step {
		height: auto !important;
	}
}

@media (max-width: 640px) {
	.bape-v8-service-grid {
		grid-auto-rows: auto;
	}

	.bape-v8-service-grid > .bape-v8-service-card {
		height: auto !important;
	}
}

/* ==========================================================
   BAPE SOLUTIONS V9 — Zone d’intervention / SEO local
   ========================================================== */
.bape-v9-zone-hero {
	margin: 0;
	padding: clamp(44px, 6vw, 76px) 0;
	background: linear-gradient(120deg, #f8fbfd 0%, #ffffff 58%, #edf6ff 100%);
	border-bottom: 1px solid var(--bape-line);
	overflow: hidden;
}

.bape-v9-zone-hero__grid {
	gap: clamp(32px, 5vw, 68px);
	align-items: stretch !important;
}

.bape-v9-zone-hero__copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
}

.bape-v9-zone-hero__title {
	font-size: clamp(2.45rem, 4.7vw, 4.15rem);
	line-height: 1.01;
	letter-spacing: -0.045em;
	margin: 0 0 1.1rem;
	color: var(--bape-ink);
}

.bape-v9-zone-hero__lead {
	max-width: 680px;
	font-size: clamp(1rem, 1.35vw, 1.16rem);
	color: var(--bape-muted);
	margin-bottom: 1.5rem !important;
}

.bape-v9-zone-hero__media {
	min-width: 0;
	align-self: stretch !important;
}

.bape-v9-zone-image {
	width: 100%;
	height: 100%;
	min-height: 430px;
	margin: 0 !important;
	border-radius: 20px;
	overflow: hidden;
	background: #e8eef4;
	box-shadow: 0 18px 44px rgba(16, 24, 40, 0.10);
}

.bape-v9-zone-image img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 430px;
	object-fit: cover;
	object-position: center 56%;
}

.bape-v9-zone-proof {
	background: #edf4fa;
	border-bottom: 1px solid var(--bape-line);
}

.bape-v9-zone-proof__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.bape-v9-zone-proof__item {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 22px 28px;
	border-right: 1px solid #d5e0e9;
	min-width: 0;
}

.bape-v9-zone-proof__item:last-child {
	border-right: 0;
}

.bape-v9-zone-proof__item p {
	margin: 0;
	font-size: .88rem;
	line-height: 1.45;
	color: var(--bape-muted);
}

.bape-v9-zone-proof__item strong {
	color: var(--bape-ink);
	font-size: 1rem;
}

.bape-v9-coverage {
	background: #fff;
}

.bape-v9-coverage__grid {
	gap: clamp(26px, 4vw, 40px);
	align-items: start !important;
	margin-top: 28px;
}

.bape-v9-coverage__copy,
.bape-v9-coverage__media {
	min-width: 0;
}

.bape-v9-zone-map-card {
	margin: 0 !important;
	padding: 18px;
	border: 1px solid var(--bape-line);
	border-radius: 20px;
	background: linear-gradient(180deg, #f8fbfd 0%, #ffffff 100%);
	box-shadow: 0 14px 38px rgba(14, 32, 49, .06);
}

.bape-v9-zone-map-image {
	margin: 0 !important;
	border-radius: 16px;
	overflow: hidden;
	background: #edf4fa;
}

.bape-v9-zone-map-image img {
	display: block;
	width: 100%;
	height: auto;
}

.bape-v9-zone-map-caption {
	margin: 14px 2px 0 !important;
	font-size: .9rem;
	line-height: 1.55;
	color: var(--bape-muted);
}

.bape-v9-zone-map-caption strong {
	color: var(--bape-ink);
}

.bape-v9-commune-chips {
	gap: 9px;
	margin-top: 28px;
}

.bape-v9-commune-chip {
	margin: 0 !important;
	padding: 8px 12px;
	border: 1px solid #cfddea;
	border-radius: 999px;
	background: #f8fbfd;
	color: #405164 !important;
	font-size: .82rem !important;
	font-weight: 650;
	line-height: 1.2 !important;
}

.bape-v9-all-communes {
	margin-top: 26px;
	border: 1px solid var(--bape-line);
	border-radius: 16px;
	background: #f7f9fb;
	overflow: hidden;
}

.bape-v9-all-communes > summary {
	cursor: pointer;
	padding: 18px 22px;
	font-weight: 780;
	color: var(--bape-ink);
	background: #fff;
}

.bape-v9-all-communes[open] > summary {
	border-bottom: 1px solid var(--bape-line);
	background: var(--bape-soft-blue);
}

.bape-v9-all-communes > p {
	padding: 20px 22px 0;
	margin-bottom: 0;
	color: var(--bape-muted);
}

.bape-v9-commune-columns {
	gap: 24px;
	padding: 18px 22px 22px;
	margin-bottom: 0;
}

.bape-v9-commune-list {
	margin: 0;
	padding-left: 1.15rem;
	font-size: .87rem;
	line-height: 1.58;
	color: #455468;
}

.bape-v9-zone-services {
	background: var(--bape-soft);
}

.bape-v9-service-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	margin-top: 30px;
	align-items: stretch;
	grid-auto-rows: 1fr;
}

.bape-v9-service-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	min-width: 0;
	margin: 0 !important;
	padding: 24px;
	border: 1px solid #d8e2eb;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 10px 28px rgba(14, 32, 49, .04);
}

.bape-v9-service-card .bape-detail-icon {
	margin-bottom: 14px;
}

.bape-v9-service-card h3 {
	margin-top: 0;
	margin-bottom: 10px;
}

.bape-v9-service-card > p:not(.bape-card-link) {
	color: var(--bape-muted);
	font-size: .9rem;
}

.bape-v9-service-card .bape-card-link {
	margin-top: auto !important;
	padding-top: 14px;
}

.bape-v9-zone-audiences {
	background: #fff;
}

.bape-v9-audience-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin-top: 28px;
	align-items: stretch;
	grid-auto-rows: 1fr;
}

.bape-v9-audience-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: clamp(26px, 4vw, 36px);
	border: 1px solid var(--bape-line);
	border-radius: 18px;
	background: linear-gradient(145deg, #fff 0%, #f5f9fc 100%);
}

.bape-v9-audience-card .bape-card-link {
	margin-top: auto !important;
	padding-top: 18px;
}

.bape-v9-audience-card--dark {
	background: linear-gradient(145deg, #0b1724 0%, #10263c 100%);
	border-color: #15334f;
	color: #fff;
}

.bape-v9-audience-card--dark h3,
.bape-v9-audience-card--dark p {
	color: #fff;
}

.bape-v9-audience-card--dark .bape-card-link a {
	color: #78bbff;
}

.bape-v9-zone-faq .bape-faq__items {
	margin-top: 26px;
}

@media (hover: hover) and (pointer: fine) {
	.bape-v9-service-card {
		transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
	}
	.bape-v9-service-card:hover {
		transform: translateY(-3px);
		border-color: rgba(19, 133, 248, .34);
		box-shadow: 0 16px 38px rgba(14, 32, 49, .08);
	}
}

@media (max-width: 980px) {
	.bape-v9-zone-hero__grid {
		gap: 28px;
	}

	.bape-v9-zone-proof__grid,
	.bape-v9-service-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.bape-v9-coverage__grid {
		display: grid;
		grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
	}

	.bape-v9-zone-proof__item:nth-child(2) {
		border-right: 0;
	}

	.bape-v9-zone-proof__item:last-child {
		grid-column: 1 / -1;
		border-top: 1px solid #d5e0e9;
	}
}

@media (max-width: 781px) {
	.bape-v9-zone-hero {
		padding-top: 36px;
	}

	.bape-v9-zone-hero__grid {
		flex-direction: column;
	}

	.bape-v9-zone-hero__copy,
	.bape-v9-zone-hero__media {
		flex-basis: 100% !important;
		width: 100%;
	}

	.bape-v9-zone-hero__media {
		order: -1;
	}

	.bape-v9-zone-image,
	.bape-v9-zone-image img {
		min-height: 0;
		height: auto;
		aspect-ratio: 16 / 10;
	}

	.bape-v9-commune-columns {
		flex-wrap: wrap !important;
	}

	.bape-v9-commune-columns > .wp-block-column {
		flex-basis: calc(50% - 12px) !important;
	}

	.bape-v9-coverage__grid {
		grid-template-columns: 1fr;
	}

	.bape-v9-zone-map-card {
		padding: 14px;
	}

	.bape-v9-audience-grid {
		grid-template-columns: 1fr;
		grid-auto-rows: auto;
	}

	.bape-v9-audience-card {
		height: auto;
	}
}

@media (max-width: 640px) {
	.bape-v9-zone-proof__grid,
	.bape-v9-service-grid {
		grid-template-columns: 1fr;
		grid-auto-rows: auto;
	}

	.bape-v9-zone-proof__item,
	.bape-v9-zone-proof__item:nth-child(2),
	.bape-v9-zone-proof__item:last-child {
		grid-column: auto;
		border-right: 0;
		border-top: 0;
		border-bottom: 1px solid #d5e0e9;
		padding: 18px 8px;
	}

	.bape-v9-zone-proof__item:last-child {
		border-bottom: 0;
	}

	.bape-v9-service-card {
		height: auto;
		padding: 20px;
	}

	.bape-v9-commune-columns {
		display: block;
	}

	.bape-v9-commune-columns > .wp-block-column {
		margin-bottom: 18px;
	}

	.bape-v9-all-communes > summary,
	.bape-v9-all-communes > p,
	.bape-v9-commune-columns {
		padding-left: 18px;
		padding-right: 18px;
	}
}

/* ==========================================================
 * BAPE SOLUTIONS V10 — Contact, confiance et formulaire
 * ========================================================== */
.bape-v10-contact-hero {
	margin: 0;
	padding: clamp(54px, 7vw, 86px) 0;
	background: linear-gradient(125deg, #f8fbfd 0%, #ffffff 60%, #edf6ff 100%);
	border-bottom: 1px solid var(--bape-line);
}

.bape-v10-contact-hero__inner {
	max-width: 900px;
}

.bape-v10-contact-hero h1 {
	font-size: clamp(2.5rem, 5vw, 4.35rem);
	line-height: 1.01;
	letter-spacing: -0.045em;
	margin: 0 0 1rem;
	color: var(--bape-ink);
}

.bape-v10-contact-hero__lead {
	max-width: 780px;
	font-size: clamp(1.02rem, 1.35vw, 1.18rem);
	color: var(--bape-muted);
	margin-bottom: 1.6rem !important;
}

.bape-v10-contact-channels {
	background: #fff;
}

.bape-v10-channel-grid,
.bape-v10-info-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin-top: 28px;
	align-items: stretch;
	grid-auto-rows: 1fr;
}

.bape-v10-channel-card,
.bape-v10-info-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	min-width: 0;
	margin: 0 !important;
	padding: 26px;
	border: 1px solid #d8e2eb;
	border-radius: 18px;
	background: linear-gradient(145deg, #fff 0%, #f8fbfd 100%);
	box-shadow: 0 10px 28px rgba(14, 32, 49, .04);
}

.bape-v10-channel-card h3,
.bape-v10-info-card h3 {
	margin-top: 0;
	margin-bottom: 10px;
}

.bape-v10-channel-card p,
.bape-v10-info-card p {
	color: var(--bape-muted);
}

.bape-v10-channel-card .bape-card-link {
	margin-top: auto !important;
	padding-top: 12px;
}

.bape-v10-form-section {
	background: var(--bape-soft);
}

.bape-v10-form-layout {
	gap: clamp(28px, 5vw, 58px);
	align-items: start !important;
}

.bape-v10-form-copy {
	position: sticky;
	top: 118px;
}

.bape-v10-form-note {
	margin-top: 26px !important;
	padding: 18px 20px;
	border: 1px solid #cfe2f5;
	border-radius: 14px;
	background: #edf6ff;
}

.bape-v10-form-note p {
	margin: 0;
	color: #415367;
}

.bape-v10-contact-form-wrap {
	margin: 0;
}

.bape-v10-contact-form {
	padding: clamp(24px, 3vw, 34px);
	border: 1px solid #d6e1eb;
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 18px 46px rgba(14, 32, 49, .07);
}

.bape-v10-field-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.bape-v10-field {
	margin-bottom: 17px;
}

.bape-v10-field label,
.bape-v10-contact-form > label:not(.bape-v10-consent) {
	display: block;
	margin-bottom: 7px;
	font-weight: 720;
	font-size: .9rem;
	color: var(--bape-ink);
}

.bape-v10-optional {
	font-weight: 500;
	color: var(--bape-muted);
}

.bape-v10-contact-form input[type="text"],
.bape-v10-contact-form input[type="email"],
.bape-v10-contact-form input[type="tel"],
.bape-v10-contact-form select,
.bape-v10-contact-form textarea {
	width: 100%;
	min-height: 48px;
	padding: 11px 13px;
	border: 1px solid #cbd8e4;
	border-radius: 10px;
	background: #fff;
	color: var(--bape-ink);
	font: inherit;
	line-height: 1.4;
	transition: border-color .16s ease, box-shadow .16s ease;
}

.bape-v10-contact-form textarea {
	min-height: 170px;
	resize: vertical;
}

.bape-v10-contact-form input:focus,
.bape-v10-contact-form select:focus,
.bape-v10-contact-form textarea:focus {
	outline: 0;
	border-color: #1385f8;
	box-shadow: 0 0 0 3px rgba(19, 133, 248, .12);
}

.bape-v10-consent {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 4px 0 20px;
	font-size: .86rem;
	line-height: 1.5;
	color: var(--bape-muted);
}

.bape-v10-consent input {
	margin-top: 4px;
	flex: 0 0 auto;
}

.bape-v10-submit {
	appearance: none;
	border: 1px solid #0670f0;
	border-radius: 10px;
	background: #0670f0;
	color: #fff;
	font: inherit;
	font-weight: 760;
	padding: 13px 20px;
	cursor: pointer;
	transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}

.bape-v10-submit:hover {
	background: #075fba;
	box-shadow: 0 10px 24px rgba(6, 112, 240, .22);
	transform: translateY(-1px);
}

.bape-v10-submit:focus-visible {
	outline: 3px solid rgba(19, 133, 248, .3);
	outline-offset: 3px;
}

.bape-v10-form-help {
	margin: 12px 0 0 !important;
	font-size: .78rem;
	color: var(--bape-muted);
}

.bape-v10-honeypot {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

.bape-v10-form-message {
	margin-bottom: 18px;
	padding: 14px 16px;
	border-radius: 12px;
	font-size: .9rem;
}

.bape-v10-form-message--success {
	border: 1px solid #b9dfc8;
	background: #edf9f1;
	color: #245c36;
}

.bape-v10-form-message--error {
	border: 1px solid #edc5c5;
	background: #fff3f3;
	color: #7a2d2d;
}

.bape-v10-trust {
	background: #fff;
}

.bape-v10-payment-card {
	display: flex;
	align-items: flex-start;
	gap: 18px;
	margin-top: 22px !important;
	padding: clamp(24px, 3vw, 30px);
	border: 1px solid #cfe2f5;
	border-radius: 18px;
	background: linear-gradient(120deg, #f2f8ff 0%, #ffffff 100%);
}

.bape-v10-payment-card h3 {
	margin-top: 0;
	margin-bottom: 8px;
}

.bape-v10-payment-card p {
	margin-bottom: 7px;
	color: var(--bape-muted);
}

.bape-v10-payment-methods {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
	margin: 18px 0 16px;
}

.bape-v10-payment-method {
	display: flex;
	min-height: 78px;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 10px 8px;
	border: 1px solid #d8e4ef;
	border-radius: 13px;
	background: #fff;
	text-align: center;
	font-size: .75rem;
	font-weight: 700;
	line-height: 1.2;
	color: #3f5063;
}

.bape-v10-brand-logo,
.bape-v10-payment-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 28px;
	min-width: 38px;
}

.bape-v10-brand-logo--cb {
	padding: 3px 8px;
	border-radius: 6px;
	background: linear-gradient(135deg, #152d4a 0%, #1385f8 100%);
	color: #fff;
	font-size: .95rem;
	font-weight: 850;
	letter-spacing: -.04em;
}

.bape-v10-brand-logo--visa {
	color: #1434cb;
	font-size: 1.05rem;
	font-weight: 900;
	font-style: italic;
	letter-spacing: -.05em;
}

.bape-v10-brand-logo--mastercard {
	position: relative;
	width: 44px;
	min-width: 44px;
}

.bape-v10-brand-logo--mastercard i {
	position: absolute;
	top: 3px;
	width: 25px;
	height: 25px;
	border-radius: 50%;
	background: #eb001b;
}

.bape-v10-brand-logo--mastercard i:first-child {
	left: 2px;
}

.bape-v10-brand-logo--mastercard i:last-child {
	right: 2px;
	background: #f79e1b;
	opacity: .92;
}

.bape-v10-payment-icon {
	width: 30px;
	min-width: 30px;
	color: #1385f8;
}

.bape-v10-payment-icon svg {
	display: block;
	width: 26px;
	height: 26px;
}

.bape-v10-payment-icon--euro {
	border: 1px solid #cfe2f5;
	border-radius: 50%;
	background: #f2f8ff;
	font-size: 1rem;
	font-weight: 800;
}

.bape-v10-privacy-link {
	margin-top: 18px !important;
	font-size: .84rem;
	color: var(--bape-muted);
}

.bape-v10-privacy {
	background: #fff;
}

.bape-v10-privacy .bape-shell {
	max-width: 900px;
}

.bape-v10-privacy h2 {
	margin-top: 2.2rem;
}

@media (hover: hover) and (pointer: fine) {
	.bape-v10-channel-card,
	.bape-v10-info-card {
		transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
	}
	.bape-v10-channel-card:hover,
	.bape-v10-info-card:hover {
		transform: translateY(-3px);
		border-color: rgba(19, 133, 248, .34);
		box-shadow: 0 16px 38px rgba(14, 32, 49, .08);
	}
}

@media (max-width: 980px) {
	.bape-v10-channel-grid,
	.bape-v10-info-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.bape-v10-payment-methods {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.bape-v10-form-copy {
		position: static;
	}
}

@media (max-width: 781px) {
	.bape-v10-form-layout {
		flex-direction: column;
	}

	.bape-v10-form-layout > .wp-block-column {
		flex-basis: 100% !important;
		width: 100%;
	}

	.bape-v10-field-row {
		grid-template-columns: 1fr;
		gap: 0;
	}
}

@media (max-width: 640px) {
	.bape-v10-contact-hero {
		padding: 40px 0 46px;
	}

	.bape-v10-channel-grid,
	.bape-v10-info-grid {
		grid-template-columns: 1fr;
		grid-auto-rows: auto;
	}

	.bape-v10-channel-card,
	.bape-v10-info-card {
		height: auto;
		padding: 21px;
	}

	.bape-v10-contact-form {
		padding: 20px;
	}

	.bape-v10-payment-card {
		flex-direction: column;
		gap: 8px;
	}

	.bape-v10-payment-methods {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		width: 100%;
	}
}

/* ==========================================================
   BAPE SOLUTIONS V12.0.2 — finition cartes audiences
   ========================================================== */
/* Empêche la coupure d'un mot au milieu (ex. « informatique » -> « informatiqu / e »). */
.bape-audience-card h2 {
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
}

/* Le titre reste premium et lisible sans forcer une coupure intra-mot sur desktop. */
@media (min-width: 901px) {
    .bape-audience-card__content {
        min-width: 0;
    }

    .bape-audience-card h2 {
        font-size: clamp(1.85rem, 1.9vw, 2.2rem);
        line-height: 1.08;
    }
}



/* V12.5 — Cloudflare Turnstile, responsive et discret. */
.bape-turnstile-wrap {
  margin: 18px 0 16px;
  max-width: 100%;
}
.bape-turnstile-wrap .cf-turnstile {
  max-width: 100%;
}
.bape-turnstile-note {
  margin: 7px 0 0;
  color: #aeb4ba;
  font-size: 12px;
  line-height: 1.45;
}
@media (max-width: 360px) {
  .bape-turnstile-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}


/* ==========================================================
   BAPE SOLUTIONS V12.0.8 — Accessibilité formulaire Contact
   ==========================================================
   Correction ciblée des constats Lighthouse/PageSpeed :
   - contraste de la note Turnstile ;
   - contraste des liens de confidentialité ;
   - liens identifiables autrement que par la couleur.
   Aucun changement de structure, de dimensions ni de chargement.
*/
.bape-v10-contact-form .bape-turnstile-note {
	color: #4B5563;
}

.bape-v10-contact-form .bape-v10-consent a,
.bape-v10-contact-form .bape-v10-form-help a,
.bape-v10-privacy-link a {
	color: #075FBA;
	text-decoration-line: underline;
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.18em;
}

.bape-v10-contact-form .bape-v10-consent a:visited,
.bape-v10-contact-form .bape-v10-form-help a:visited,
.bape-v10-privacy-link a:visited {
	color: #075FBA;
}

.bape-v10-contact-form .bape-v10-consent a:hover,
.bape-v10-contact-form .bape-v10-form-help a:hover,
.bape-v10-privacy-link a:hover {
	color: #101828;
}
