/*
Theme Name: SB Musicothérapie — GeneratePress Child
Theme URI: https://www.sb-musicotherapie.fr/
Author: SB Musicothérapie
Description: Thème enfant GeneratePress éditorial, chaleureux et accessible. Le design reste dans le thème ; les textes et pages SEO restent modifiables avec les blocs natifs de WordPress.
Version: 1.7.8
Template: generatepress
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 7.4
Text Domain: sb-musicotherapie
*/

/* Local fonts keep the approved line breaks identical in Chrome, Firefox,
   Safari and private browsing instead of relying on operating-system fonts. */
@font-face { font-family: "SB Newsreader"; src: url("assets/fonts/newsreader-400.woff2") format("woff2"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "SB Newsreader"; src: url("assets/fonts/newsreader-400-italic.woff2") format("woff2"); font-style: italic; font-weight: 400; font-display: swap; }
@font-face { font-family: "SB Newsreader"; src: url("assets/fonts/newsreader-500.woff2") format("woff2"); font-style: normal; font-weight: 500; font-display: swap; }
@font-face { font-family: "SB Newsreader"; src: url("assets/fonts/newsreader-600.woff2") format("woff2"); font-style: normal; font-weight: 600; font-display: swap; }
@font-face { font-family: "SB Manrope"; src: url("assets/fonts/manrope-400.woff2") format("woff2"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "SB Manrope"; src: url("assets/fonts/manrope-500.woff2") format("woff2"); font-style: normal; font-weight: 500; font-display: swap; }
@font-face { font-family: "SB Manrope"; src: url("assets/fonts/manrope-600.woff2") format("woff2"); font-style: normal; font-weight: 600; font-display: swap; }
@font-face { font-family: "SB Manrope"; src: url("assets/fonts/manrope-700.woff2") format("woff2"); font-style: normal; font-weight: 700; font-display: swap; }
@font-face { font-family: "SB Manrope"; src: url("assets/fonts/manrope-800.woff2") format("woff2"); font-style: normal; font-weight: 800; font-display: swap; }

:root {
	--sb-ink: #17362f;
	--sb-deep: #0e2722;
	--sb-paper: #f7f2e9;
	--sb-soft: #fbf8f2;
	--sb-white: #fffdf9;
	--sb-coral: #d86550;
	--sb-coral-dark: #a54132;
	--sb-coral-soft: #f7d9ce;
	--sb-ochre: #d8a04b;
	--sb-ochre-soft: #f3e1bd;
	--sb-sage: #729c83;
	--sb-sage-soft: #dce8df;
	--sb-muted: #405b54;
	--sb-border: rgba(23, 54, 47, 0.15);
	--sb-serif: "Iowan Old Style", "Palatino Linotype", Baskerville, Georgia, serif;
	--sb-sans: Avenir, "Segoe UI", Helvetica, Arial, sans-serif;
	--sb-shadow: 0 24px 70px rgba(15, 43, 36, 0.13);
	--sb-radius: 8px;
}

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

html { scroll-behavior: smooth; }

body {
	margin: 0;
	color: var(--sb-ink);
	background: var(--sb-white);
	font-family: var(--sb-sans);
	font-size: 16px;
	line-height: 1.72;
	-webkit-font-smoothing: antialiased;
}

body.sb-theme-active { overflow-x: hidden; }

/* NOTHING IN THIS THEME LET A LONG WORD BREAK, so any word wider than its box simply left
   it. On the bibliographie page the book cards are a two-column grid: 165px each, 121px of
   text after padding, and "Musicothérapie" is 140px at the 1.08rem those links use — so the
   title ran out through the right-hand edge of the card and off the screen.

   French is full of words this long (musicothérapie, accompagnement, psychomusical), and
   e-mail addresses and URLs are worse. A wrapping rule fixes the whole class of it at once,
   for boxes that do not exist yet as well as the ones that do. Everything below is the
   collapse of the grids themselves — this is the net under them. */
:where(body, p, li, a, h1, h2, h3, h4, h5, h6, dd, dt, td, th, blockquote, figcaption,
       summary, details, strong, em, span, label, input, textarea, button) {
	overflow-wrap: break-word;
}

/* GeneratePress integration: the parent remains responsible for structure. */
.sb-generatepress-child { overflow-x: hidden; }

.sb-generatepress-child .site-header {
	border-bottom: 1px solid var(--sb-border);
	background: rgba(255, 253, 249, .98);
}

.sb-generatepress-child .inside-header {
	display: flex;
	align-items: center;
	min-height: 92px;
	padding: 18px 24px;
}

.sb-generatepress-child .site-branding-container { align-items: center; }
.sb-generatepress-child .site-logo { margin-right: 15px; }
.sb-generatepress-child .site-logo img { width: auto; max-width: 76px; max-height: 62px; }
.sb-generatepress-child .site-branding { display: grid; }
.sb-generatepress-child .main-title { font-family: var(--sb-serif); font-size: 1.22rem; font-weight: 600; line-height: 1.2; }
.sb-generatepress-child .main-title a { color: var(--sb-ink); }

.sb-generatepress-child .main-navigation,
.sb-generatepress-child .main-navigation ul ul {
	background: var(--sb-white);
}

.sb-generatepress-child .main-navigation {
	border-bottom: 1px solid var(--sb-border);
}

.sb-generatepress-child .main-navigation .inside-navigation {
	max-width: 1160px;
	padding-inline: 20px;
}

.sb-generatepress-child .main-navigation .main-nav { flex: 1 1 auto; }
.sb-generatepress-child .main-navigation .main-nav > ul { align-items: stretch; }
.sb-generatepress-child .main-navigation .main-nav > ul > li > a {
	padding-inline: 11px;
	color: var(--sb-ink);
	font-size: .67rem;
	font-weight: 800;
	letter-spacing: .055em;
	line-height: 60px;
	text-transform: uppercase;
}

.sb-generatepress-child .main-navigation .main-nav ul li:not([class*="current-menu-"]):hover > a,
.sb-generatepress-child .main-navigation .main-nav ul li:not([class*="current-menu-"]):focus > a,
.sb-generatepress-child .main-navigation .main-nav ul li[class*="current-menu-"] > a {
	background: var(--sb-paper);
	color: var(--sb-coral-dark);
}

.sb-generatepress-child .main-navigation .main-nav ul ul {
	min-width: 245px;
	border-top: 3px solid var(--sb-coral);
	box-shadow: var(--sb-shadow);
}

.sb-generatepress-child .main-navigation .main-nav ul ul li a {
	padding: 12px 18px;
	color: var(--sb-ink);
	font-size: .72rem;
	line-height: 1.4;
}

.sb-generatepress-child .menu-toggle,
.sb-generatepress-child .menu-bar-items { color: var(--sb-ink); }

.sb-gp-nav-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	align-self: center;
	flex: 0 0 auto;
	min-height: 42px;
	margin-left: 13px;
	padding: 10px 15px;
	background: var(--sb-ink);
	color: #fff;
	font-size: .66rem;
	font-weight: 800;
	letter-spacing: .055em;
	text-decoration: none;
	text-transform: uppercase;
}

.sb-gp-nav-cta:hover,
.sb-gp-nav-cta:focus { background: var(--sb-coral-dark); color: #fff; }

.sb-front-page #page,
.sb-seo-page #page { width: 100%; max-width: none; }

.sb-front-page #content,
.sb-seo-page #content { display: block; padding: 0; }

.sb-front-page #primary,
.sb-seo-page #primary { float: none; width: 100%; }

.sb-front-page #main,
.sb-seo-page #main { margin: 0; }

.sb-front-page.separate-containers .site-main > *,
.sb-seo-page.separate-containers .site-main > * { margin-bottom: 0; }

.sb-editable-entry,
.sb-editable-page,
.sb-editable-page > .wp-block-group { margin: 0; }

.sb-editable-page .wp-block-group { max-width: none; }
.sb-editable-page .wp-block-group > * { max-width: none; margin-block-start: 0 !important; margin-right: 0 !important; margin-left: 0 !important; }
.sb-editable-page .sb-shell { width: min(1160px, calc(100% - 48px)); margin-inline: auto !important; }

/* Native block-pattern compatibility. Every content selector below targets
   ordinary Gutenberg blocks, so text remains editable in the page editor. */
.sb-hero-art .sb-bars {
	margin: 0;
	background:
		linear-gradient(var(--sb-ochre-soft), var(--sb-ochre-soft)) 0 50% / 3px 42% no-repeat,
		linear-gradient(var(--sb-ochre-soft), var(--sb-ochre-soft)) 9% 50% / 3px 66% no-repeat,
		linear-gradient(var(--sb-ochre-soft), var(--sb-ochre-soft)) 18% 50% / 3px 34% no-repeat,
		linear-gradient(var(--sb-ochre-soft), var(--sb-ochre-soft)) 27% 50% / 3px 76% no-repeat,
		linear-gradient(var(--sb-ochre-soft), var(--sb-ochre-soft)) 36% 50% / 3px 52% no-repeat,
		linear-gradient(var(--sb-ochre-soft), var(--sb-ochre-soft)) 45% 50% / 3px 86% no-repeat,
		linear-gradient(var(--sb-ochre-soft), var(--sb-ochre-soft)) 55% 50% / 3px 46% no-repeat,
		linear-gradient(var(--sb-ochre-soft), var(--sb-ochre-soft)) 64% 50% / 3px 70% no-repeat,
		linear-gradient(var(--sb-ochre-soft), var(--sb-ochre-soft)) 73% 50% / 3px 38% no-repeat,
		linear-gradient(var(--sb-ochre-soft), var(--sb-ochre-soft)) 82% 50% / 3px 58% no-repeat,
		linear-gradient(var(--sb-ochre-soft), var(--sb-ochre-soft)) 91% 50% / 3px 30% no-repeat,
		linear-gradient(var(--sb-ochre-soft), var(--sb-ochre-soft)) 100% 50% / 3px 50% no-repeat;
}
.sb-hero-art .sb-bars i { display: none; }
.sb-hero-art blockquote p { margin: 0; }
.sb-float-card > p { display: flex; align-items: center; gap: 12px; margin: 0; }
.sb-float-card > p > span:first-child { color: var(--sb-coral); font-family: var(--sb-serif); font-size: 1.8rem; }
.sb-float-card__copy { display: grid; line-height: 1.2; }
.sb-float-card__copy small { margin-top: 4px; color: var(--sb-muted); font-size: .66rem; }
.sb-trust-number { margin: 0; color: var(--sb-coral); font-family: var(--sb-serif); font-size: 1.65rem; font-style: italic; }
.sb-trust-copy { display: grid !important; margin: 0 !important; }
.sb-trust-copy small { margin-top: 5px; color: var(--sb-muted); font-family: var(--sb-sans); font-size: .68rem; }
.sb-audience-card__top { display: flex; justify-content: space-between; margin: 0; color: var(--sb-coral-dark) !important; }
.sb-audience-card__top i { font-family: var(--sb-serif); font-size: 2rem; }
.sb-audience-card--ochre .sb-audience-card__top { color: #9c6b1e !important; }
.sb-audience-card--green .sb-audience-card__top { color: #527860 !important; }
.sb-editable-page .sb-method-card { display: grid; grid-template-columns: 70px 1fr; padding-left: 0; }
.sb-method-letter { display: grid; place-items: center; width: 62px; height: 62px; margin: 0; border: 1px solid var(--sb-coral); border-radius: 50%; color: var(--sb-coral) !important; font-family: var(--sb-serif); font-size: 1.8rem !important; }
.sb-editable-page .sb-method-card h3 { margin-top: 0; }
.sb-method-note { padding: 18px; background: rgba(255,255,255,.07); color: rgba(255,255,255,.72) !important; font-size: .8rem; }
.sb-program-kicker { display: flex; justify-content: space-between; color: var(--sb-coral-dark) !important; font-size: .68rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.sb-program-kicker span { color: var(--sb-coral); font-family: var(--sb-serif); font-size: 1.65rem; font-style: italic; }
.sb-program-kicker small { color: var(--sb-muted); font-family: var(--sb-sans); font-size: .65rem; font-style: normal; font-weight: 800; }
.sb-session-steps { counter-reset: sb-session; }
.sb-editable-page .sb-session-steps li { position: relative; display: block; padding-left: 52px; }
.sb-editable-page .sb-session-steps li::before { position: absolute; top: 20px; left: 0; color: var(--sb-coral); counter-increment: sb-session; content: counter(sb-session); font-family: var(--sb-serif); font-size: 1.5rem; font-style: italic; }
.sb-session-art .sb-editable-art-note { margin: 0; color: var(--sb-coral-dark); font-family: var(--sb-serif); font-size: 6rem; line-height: 1; }
.sb-session-art h3 { margin: 0; font-size: 2rem; }
.sb-session-art > p:last-child { margin: 0; color: var(--sb-muted); font-size: .8rem; }
.sb-about-card h3 { margin-bottom: auto; font-size: 5rem; }
.sb-about-card p:nth-of-type(1) { font-family: var(--sb-serif); font-size: 1.8rem; font-style: italic; line-height: 1.25; }
.sb-about-card p:last-child { color: var(--sb-ochre-soft); font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.sb-editable-page ul.sb-credentials { padding: 0; list-style: none; }
.sb-editable-page .sb-credentials li { padding: 18px; border-right: 1px solid rgba(23,54,47,.25); border-bottom: 1px solid rgba(23,54,47,.25); }
.sb-price-grid .sb-price-card h3 { color: var(--sb-coral-dark); font-size: 2.5rem; }
.sb-price-grid .sb-price-card h3.sb-price-card__title { margin: 0; color: var(--sb-deep); font-family: var(--sb-sans); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.sb-price-grid .sb-price-card .sb-price-card__amount { margin: 52px 0 12px; }
.sb-price-grid .sb-price-card .sb-price-card__amount strong { color: var(--sb-coral-dark); font-family: var(--sb-serif); font-size: 2.5rem; font-weight: 400; letter-spacing: 0; text-transform: none; }
.sb-local-institutions { padding: 42px; background: var(--sb-paper); color: var(--sb-ink); }
.sb-local-institutions h3 { font-size: 2rem; }
.sb-local-institutions ul { margin: 28px 0; padding: 0; list-style: none; }
.sb-local-institutions li { padding: 10px 0; border-bottom: 1px solid var(--sb-border); color: var(--sb-muted); font-size: .85rem; }
.sb-local-institutions li::before { margin-right: 10px; color: var(--sb-coral); content: "✓"; }
.sb-editable-page .sb-contact-card > p { display: grid; margin: 0; padding: 15px 0; border-bottom: 1px solid var(--sb-border); }
.sb-editable-page .sb-contact-card > p:last-child { border: 0; }
.sb-editable-page .sb-contact-card .sb-button { margin-top: 10px; }
.sb-editable-page .sb-seo-section__number p { margin: 0; color: var(--sb-coral); font-family: var(--sb-serif); font-size: 2.4rem; font-style: italic; }
.sb-editable-page .sb-seo-section__body { width: auto; }
.sb-editable-page .sb-seo-section__body > h2 { font-size: clamp(2.2rem, 4vw, 3.7rem); }
.sb-page-nav p { margin: 0; }
.sb-related-wave { margin: 0; color: var(--sb-coral) !important; font-family: var(--sb-serif); font-size: 2rem !important; }
.sb-related-card .sb-related-wave + h3 { margin-top: 40px; }

.sb-generatepress-child .site-footer .site-info {
	padding: 24px 0 86px;
	background: var(--sb-deep);
	color: rgba(255, 255, 255, .68);
}

.sb-generatepress-child .inside-site-info { max-width: 1160px; padding-inline: 24px; }
.sb-generatepress-child .site-info a { color: var(--sb-ochre-soft); }
.sb-generatepress-child .footer-bar { margin-bottom: 8px; }

img { max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
button, input, textarea, select { font: inherit; }

:focus-visible {
	outline: 3px solid var(--sb-ochre);
	outline-offset: 4px;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.screen-reader-text:focus,
.sb-skip-link:focus {
	top: 8px;
	left: 8px;
	z-index: 9999;
	width: auto;
	height: auto;
	clip: auto;
	padding: 10px 15px;
	background: var(--sb-white);
	color: var(--sb-deep);
}

.sb-shell {
	width: min(1160px, calc(100% - 48px));
	margin-inline: auto;
}

.sb-section { padding: clamp(76px, 9vw, 132px) 0; }

.sb-eyebrow {
	display: flex;
	align-items: center;
	gap: 11px;
	margin: 0 0 24px;
	color: var(--sb-coral-dark);
	font-size: 0.73rem;
	font-weight: 800;
	letter-spacing: 0.15em;
	line-height: 1.3;
	text-transform: uppercase;
}

.sb-eyebrow > span { width: 28px; height: 1px; background: currentColor; }
.sb-eyebrow--light { color: var(--sb-ochre-soft); }

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 0.7em;
	font-family: var(--sb-serif);
	font-weight: 500;
	line-height: 1.05;
	letter-spacing: -0.025em;
}

h2 { font-size: clamp(2.2rem, 5vw, 4.75rem); }
h2 em, h1 em { color: var(--sb-coral); font-weight: 400; }
p { margin: 0 0 1.2em; }

.sb-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 54px;
	padding: 14px 23px;
	border: 1px solid var(--sb-ink);
	border-radius: 2px;
	background: var(--sb-ink);
	color: #fff;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.07em;
	line-height: 1.3;
	text-decoration: none;
	text-transform: uppercase;
	transition: transform 180ms ease, background 180ms ease, color 180ms ease;
}

.sb-button:hover { transform: translateY(-2px); background: var(--sb-coral-dark); border-color: var(--sb-coral-dark); }
.sb-button--small { min-height: 44px; padding: 11px 17px; font-size: 0.7rem; }
.sb-button--light { border-color: var(--sb-white); background: var(--sb-white); color: var(--sb-ink); }
.sb-button--light:hover { background: var(--sb-ochre-soft); border-color: var(--sb-ochre-soft); }
.sb-button--coral { border-color: var(--sb-coral-dark); background: var(--sb-coral-dark); }
.sb-button--coral:hover { background: var(--sb-coral-dark); border-color: var(--sb-coral-dark); }

.sb-text-link {
	display: inline-block;
	color: var(--sb-ink);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-decoration: underline;
	text-transform: uppercase;
}

/* Header */
.sb-top-note { background: var(--sb-deep); color: rgba(255,255,255,.78); font-size: .69rem; letter-spacing: .13em; text-transform: uppercase; }
.sb-top-note__inner { display: flex; align-items: center; justify-content: center; gap: 18px; min-height: 33px; }
.sb-top-note__inner a { margin-left: auto; color: #fff; font-weight: 800; text-decoration: none; }
.sb-top-note__dot { width: 3px; height: 3px; border-radius: 50%; background: var(--sb-coral); }

.sb-site-header {
	position: relative;
	z-index: 50;
	border-bottom: 1px solid var(--sb-border);
	background: rgba(255,253,249,.97);
}

.sb-header-inner { display: flex; align-items: center; gap: 30px; min-height: 90px; }
.sb-brand { display: flex; align-items: center; gap: 13px; flex: 0 0 auto; }
.sb-brand__logo-link { display: grid; place-items: center; flex: 0 0 62px; width: 62px; height: 62px; line-height: 0; text-decoration: none; }
.sb-brand__logo { display: block; width: 62px; height: 62px; object-fit: contain; }
.custom-logo-link { display: block; line-height: 0; }
.custom-logo { display: block; width: auto; max-width: 80px; max-height: 62px; }

.sb-brand__mark {
	position: relative;
	display: grid;
	place-items: center;
	width: 49px;
	height: 49px;
	border: 1px solid var(--sb-ink);
	border-radius: 50%;
	color: var(--sb-ink);
	font-family: var(--sb-serif);
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
}

.sb-brand__mark i { position: absolute; right: -4px; width: 9px; height: 9px; border: 1px solid var(--sb-coral); border-left: 0; border-radius: 0 50% 50% 0; }
.sb-brand__mark i:first-of-type { top: 13px; }
.sb-brand__mark i:last-of-type { bottom: 13px; }
.sb-brand__copy { display: flex; flex-direction: column; text-decoration: none; line-height: 1.2; }
.sb-brand__copy strong { font-family: var(--sb-serif); font-size: 1.03rem; }
.sb-brand__copy small { margin-top: 4px; color: var(--sb-muted); font-size: .61rem; letter-spacing: .08em; text-transform: uppercase; }
.sb-desktop-nav { margin-left: auto; }
.sb-menu, .sb-menu ul { margin: 0; padding: 0; list-style: none; }
.sb-menu { display: flex; align-items: center; gap: 25px; }
.sb-menu > li { position: relative; }
.sb-menu a { color: var(--sb-ink); font-size: .72rem; font-weight: 750; letter-spacing: .055em; text-decoration: none; text-transform: uppercase; }
.sb-menu a:hover, .sb-menu .current-menu-item > a { color: var(--sb-coral-dark); }
.sb-menu .sub-menu { position: absolute; top: calc(100% + 17px); left: -18px; visibility: hidden; min-width: 230px; padding: 11px 18px; opacity: 0; background: var(--sb-white); box-shadow: var(--sb-shadow); transform: translateY(6px); transition: .18s ease; }
.sb-menu li:hover > .sub-menu, .sb-menu li:focus-within > .sub-menu { visibility: visible; opacity: 1; transform: none; }
.sb-menu .sub-menu li { padding: 8px 0; }
.sb-menu .sub-menu a { font-size: .68rem; }
.sb-header-cta { flex: 0 0 auto; }
.sb-mobile-nav { display: none; position: relative; }
.sb-mobile-nav summary { display: grid; place-items: center; width: 46px; height: 46px; cursor: pointer; list-style: none; }
.sb-mobile-nav summary::-webkit-details-marker { display: none; }
.sb-mobile-nav summary span { grid-area: 1 / 1; width: 24px; height: 1px; background: var(--sb-ink); transition: .2s ease; }
.sb-mobile-nav summary span:first-child { transform: translateY(-4px); }
.sb-mobile-nav summary span:last-child { transform: translateY(4px); }
.sb-mobile-nav[open] summary span:first-child { transform: rotate(45deg); }
.sb-mobile-nav[open] summary span:last-child { transform: rotate(-45deg); }
.sb-mobile-nav__panel { position: absolute; top: 60px; right: 0; display: grid; width: min(310px, calc(100vw - 32px)); padding: 24px; gap: 14px; background: var(--sb-white); box-shadow: var(--sb-shadow); }
.sb-mobile-nav__panel > a:not(.sb-button) { padding-bottom: 10px; border-bottom: 1px solid var(--sb-border); font-family: var(--sb-serif); font-size: 1.18rem; text-decoration: none; }

/* Homepage hero */
.sb-home-hero { position: relative; overflow: hidden; padding: clamp(76px, 9vw, 132px) 0 100px; background: var(--sb-paper); }
.sb-home-hero::before { position: absolute; inset: 0; background-image: radial-gradient(rgba(23,54,47,.08) .7px, transparent .7px); background-size: 10px 10px; opacity: .3; content: ""; }
.sb-home-hero__grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.16fr) minmax(360px, .84fr); align-items: center; gap: clamp(50px, 7vw, 100px); }
.sb-home-hero h1 { max-width: 810px; font-size: clamp(2.2rem, 6.6vw, 6.9rem); }
.sb-home-hero h1 small { display: block; margin-bottom: 17px; color: var(--sb-coral-dark); font-family: var(--sb-sans); font-size: .17em; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.sb-hero-lead { max-width: 710px; color: var(--sb-muted); font-size: 1.1rem; line-height: 1.75; }
.sb-hero-actions { display: flex; align-items: center; gap: 28px; margin: 36px 0 28px; }
.sb-reassurance { display: flex; flex-wrap: wrap; gap: 10px 24px; margin: 0; padding: 0; color: var(--sb-muted); font-size: .72rem; font-weight: 700; letter-spacing: .03em; list-style: none; }
.sb-reassurance li::first-letter { color: var(--sb-coral); }

.sb-hero-art { position: relative; min-height: 540px; }
.sb-hero-art__card { position: absolute; inset: 20px 10px 15px 20px; overflow: hidden; border-radius: 52% 48% 44% 56% / 45% 45% 55% 55%; background: var(--sb-deep); box-shadow: var(--sb-shadow); }
.sb-hero-art__card::after { position: absolute; right: -55px; bottom: -85px; width: 260px; height: 260px; border-radius: 50%; background: var(--sb-coral); opacity: .9; content: ""; }
.sb-orbit { position: absolute; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; }
.sb-orbit--one { inset: 70px 85px 110px 50px; }
.sb-orbit--two { inset: 35px 40px 75px 85px; }
.sb-orbit--three { inset: 110px 28px 30px 110px; }
.sb-sound-disc { position: absolute; top: 105px; left: 50%; z-index: 2; display: grid; place-items: center; width: 180px; height: 180px; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; background: rgba(255,255,255,.05); transform: translateX(-50%); }
.sb-bars { display: flex; align-items: center; justify-content: center; gap: 5px; width: 110px; height: 85px; }
.sb-bars i { display: block; width: 3px; border-radius: 5px; background: var(--sb-ochre-soft); }
.sb-hero-art blockquote { position: absolute; right: 55px; bottom: 75px; z-index: 2; width: 215px; margin: 0; color: #fff; font-family: var(--sb-serif); font-size: 1.25rem; font-style: italic; line-height: 1.35; }
.sb-float-card { position: absolute; z-index: 3; display: flex; align-items: center; gap: 12px; padding: 14px 18px; border: 1px solid rgba(23,54,47,.08); border-radius: 5px; background: rgba(255,253,249,.96); box-shadow: 0 15px 35px rgba(23,54,47,.14); }
.sb-float-card > span { color: var(--sb-coral); font-family: var(--sb-serif); font-size: 1.8rem; }
.sb-float-card div { display: grid; line-height: 1.2; }
.sb-float-card strong { font-family: var(--sb-serif); font-size: 1.07rem; }
.sb-float-card small { margin-top: 4px; color: var(--sb-muted); font-size: .66rem; }
.sb-float-card--top { top: 5px; right: -20px; }
.sb-float-card--bottom { bottom: 2px; left: -20px; }

.sb-trust-strip { border-block: 1px solid var(--sb-border); background: var(--sb-white); }
.sb-trust-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.sb-trust-grid > div { display: flex; align-items: center; gap: 17px; min-height: 108px; padding: 22px 32px; border-right: 1px solid var(--sb-border); }
.sb-trust-grid > div:first-child { padding-left: 0; }
.sb-trust-grid > div:last-child { border: 0; padding-right: 0; }
.sb-trust-grid > div > span { color: var(--sb-coral); font-family: var(--sb-serif); font-size: 1.65rem; font-style: italic; }
.sb-trust-grid p { display: grid; margin: 0; line-height: 1.3; }
.sb-trust-grid strong { font-family: var(--sb-serif); font-size: 1rem; }
.sb-trust-grid small { margin-top: 5px; color: var(--sb-muted); font-size: .68rem; }

/* Homepage sections */
.sb-definition { background: var(--sb-white); }
.sb-definition__grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(50px, 9vw, 130px); }
.sb-definition__copy { padding-top: 8px; }
.sb-definition__copy p { color: var(--sb-muted); }
.sb-definition__copy .sb-large-copy { color: var(--sb-ink); font-family: var(--sb-serif); font-size: clamp(1.4rem, 2.4vw, 2rem); line-height: 1.45; }

.sb-audiences { background: var(--sb-paper); }
.sb-split-heading, .sb-programs-heading, .sb-pricing-heading { display: grid; grid-template-columns: 1.4fr .6fr; align-items: end; gap: 80px; margin-bottom: 56px; }
.sb-split-heading > p, .sb-programs-heading > p, .sb-pricing-heading > p { color: var(--sb-muted); }
.sb-audience-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.sb-audience-card { min-height: 390px; padding: 34px; border-top: 4px solid var(--sb-coral); background: var(--sb-white); transition: transform .2s ease, box-shadow .2s ease; }
.sb-audience-card:hover { transform: translateY(-5px); box-shadow: var(--sb-shadow); }
.sb-audience-card--ochre { border-color: var(--sb-ochre); }
.sb-audience-card--green { border-color: var(--sb-sage); }
.sb-audience-card > div { display: flex; justify-content: space-between; color: var(--sb-coral-dark); }
.sb-audience-card > div i { font-family: var(--sb-serif); font-size: 2rem; font-weight: 400; }
.sb-audience-card--ochre > div { color: #9c6b1e; }
.sb-audience-card--green > div { color: #527860; }
.sb-audience-card h3 { margin-top: 75px; font-size: 1.8rem; }
.sb-audience-card p { color: var(--sb-muted); font-size: .92rem; }
.sb-audience-card ul { display: flex; flex-wrap: wrap; gap: 7px; margin: 24px 0 0; padding: 0; list-style: none; }
.sb-audience-card li, .sb-inner-tags li { padding: 5px 9px; border: 1px solid var(--sb-border); border-radius: 999px; color: var(--sb-muted); font-size: .64rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }

.sb-needs-heading { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 60px; margin-bottom: 50px; }
.sb-needs-heading .sb-eyebrow { grid-column: 1 / -1; margin-bottom: -32px; }
.sb-needs-heading p:last-child { color: var(--sb-muted); }
.sb-needs-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--sb-border); border-left: 1px solid var(--sb-border); }
.sb-needs-grid article { min-height: 280px; padding: 34px; border-right: 1px solid var(--sb-border); border-bottom: 1px solid var(--sb-border); }
.sb-needs-grid article > span { color: var(--sb-coral); font-family: var(--sb-serif); font-size: 1.5rem; font-style: italic; }
.sb-needs-grid h3 { margin-top: 35px; font-size: 1.45rem; }
.sb-needs-grid p { color: var(--sb-muted); font-size: .88rem; }

.sb-approach { position: relative; overflow: hidden; background: var(--sb-deep); color: #fff; }
.sb-approach::after { position: absolute; top: -250px; right: -220px; width: 620px; height: 620px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; box-shadow: 0 0 0 80px rgba(255,255,255,.025), 0 0 0 160px rgba(255,255,255,.02); content: ""; }
.sb-approach__grid { position: relative; z-index: 1; display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(60px, 9vw, 130px); }
.sb-approach h2 { font-size: clamp(2.2rem, 5vw, 5.3rem); }
.sb-approach__grid > div:first-child > p:not(.sb-eyebrow) { color: rgba(255,255,255,.72); }
.sb-methods { display: grid; }
.sb-methods article { display: grid; grid-template-columns: 70px 1fr; gap: 25px; padding: 0 0 34px; margin-bottom: 34px; border-bottom: 1px solid rgba(255,255,255,.18); }
.sb-methods article > span { display: grid; place-items: center; width: 62px; height: 62px; border: 1px solid var(--sb-coral); border-radius: 50%; color: var(--sb-coral); font-family: var(--sb-serif); font-size: 1.8rem; }
.sb-methods h3 { font-size: 1.65rem; }
.sb-methods p { color: rgba(255,255,255,.7); font-size: .9rem; }
.sb-methods a { color: var(--sb-ochre-soft); font-size: .72rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.sb-methods aside { display: flex; gap: 14px; padding: 18px; background: rgba(255,255,255,.07); }
.sb-methods aside b { display: grid; place-items: center; flex: 0 0 24px; width: 24px; height: 24px; border: 1px solid var(--sb-ochre); border-radius: 50%; color: var(--sb-ochre); font-family: var(--sb-serif); font-style: italic; }
.sb-methods aside p { margin: 0; color: rgba(255,255,255,.68); font-size: .78rem; }

.sb-programs { background: var(--sb-paper); }
.sb-program-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.sb-program-grid article { padding: 38px; background: var(--sb-white); }
.sb-program-grid article > div { display: flex; align-items: center; justify-content: space-between; }
.sb-program-grid article > div span { color: var(--sb-coral); font-family: var(--sb-serif); font-size: 1.65rem; font-style: italic; }
.sb-program-grid article > div small { color: var(--sb-muted); font-size: .65rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.sb-program-grid h3 { margin-top: 40px; font-size: 2rem; }
.sb-program-grid p { color: var(--sb-muted); }
.sb-program-grid a { font-size: .7rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }

.sb-sessions__grid { display: grid; grid-template-columns: .8fr 1.2fr; align-items: center; gap: clamp(60px, 10vw, 150px); }
.sb-session-art { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 520px; overflow: hidden; border-radius: 48% 52% 55% 45%; background: var(--sb-coral-soft); }
.sb-session-art::before, .sb-session-art::after { position: absolute; border: 1px solid rgba(23,54,47,.16); border-radius: 50%; content: ""; }
.sb-session-art::before { inset: 55px; }
.sb-session-art::after { inset: 105px; }
.sb-session-art > * { position: relative; z-index: 1; }
.sb-session-art > span { color: var(--sb-coral-dark); font-family: var(--sb-serif); font-size: 6rem; }
.sb-session-art strong { font-family: var(--sb-serif); font-size: 2rem; }
.sb-session-art small { color: var(--sb-muted); }
.sb-sessions ol { margin: 40px 0 30px; padding: 0; list-style: none; }
.sb-sessions li { display: grid; grid-template-columns: 48px 1fr; gap: 18px; padding: 24px 0; border-top: 1px solid var(--sb-border); }
.sb-sessions li > span { color: var(--sb-coral); font-family: var(--sb-serif); font-size: 1.5rem; font-style: italic; }
.sb-sessions h3 { margin-bottom: 8px; font-size: 1.35rem; }
.sb-sessions li p { margin: 0; color: var(--sb-muted); font-size: .88rem; }

.sb-about { background: var(--sb-ochre-soft); }
.sb-about__grid { display: grid; grid-template-columns: .7fr 1.3fr; align-items: center; gap: clamp(60px, 10vw, 150px); }
.sb-about-card { display: flex; flex-direction: column; justify-content: flex-end; min-height: 500px; padding: 45px; background: var(--sb-deep); color: #fff; box-shadow: 25px 25px 0 rgba(232,117,95,.72); }
.sb-about-card__logo { width: 92px; margin: 0 0 auto; }
.sb-about-card__logo img { display: block; width: 92px; height: auto; }
.sb-about-card > strong { margin-bottom: auto; font-family: var(--sb-serif); font-size: 5rem; font-weight: 400; }
.sb-about-card p { font-family: var(--sb-serif); font-size: 1.8rem; font-style: italic; line-height: 1.25; }
.sb-about-card span { color: var(--sb-ochre-soft); font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.sb-about__grid > div:last-child > p:not(.sb-eyebrow) { color: var(--sb-muted); }
.sb-about__grid .sb-review-inline { margin-top: 26px; padding: 14px 16px; border-left: 3px solid var(--sb-coral-dark); background: rgba(255,255,255,.52); color: var(--sb-ink); font-size: .78rem; }
.sb-review-inline a { color: inherit; font-weight: 800; }
.sb-credentials { display: grid; grid-template-columns: repeat(2, 1fr); margin-top: 35px; border-top: 1px solid rgba(23,54,47,.25); border-left: 1px solid rgba(23,54,47,.25); }
.sb-credentials div { display: grid; padding: 18px; border-right: 1px solid rgba(23,54,47,.25); border-bottom: 1px solid rgba(23,54,47,.25); }
.sb-credentials strong { font-family: var(--sb-serif); font-size: 1.15rem; }
.sb-credentials span { color: var(--sb-muted); font-size: .68rem; }

.sb-pricing { background: var(--sb-white); }
.sb-price-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--sb-border); border-left: 1px solid var(--sb-border); }
.sb-price-grid article { display: grid; align-content: start; min-height: 235px; padding: 30px; border-right: 1px solid var(--sb-border); border-bottom: 1px solid var(--sb-border); }
.sb-price-grid p { margin: 0 0 40px; color: var(--sb-muted); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.sb-price-grid strong { color: var(--sb-coral-dark); font-family: var(--sb-serif); font-size: 2.5rem; font-weight: 400; }
.sb-price-grid span { color: var(--sb-muted); font-size: .72rem; }
.sb-pricing-link { margin-top: 28px; }

.sb-local { background: var(--sb-deep); color: #fff; }
.sb-local__grid { display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: 100px; }
.sb-local__grid > div > p:not(.sb-eyebrow) { color: rgba(255,255,255,.7); }
.sb-access-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; margin-top: 28px; }
.sb-access-actions .sb-text-link { color: var(--sb-ochre-soft); }
.sb-local aside { padding: 42px; background: var(--sb-paper); color: var(--sb-ink); }
.sb-local aside h3 { font-size: 2rem; }
.sb-local aside ul { margin: 28px 0; padding: 0; list-style: none; }
.sb-local aside li { padding: 10px 0; border-bottom: 1px solid var(--sb-border); color: var(--sb-muted); font-size: .85rem; }
.sb-local aside li::before { margin-right: 10px; color: var(--sb-coral); content: "✓"; }

.sb-home-faq { background: var(--sb-paper); }
.sb-home-faq__grid, .sb-inner-faq__grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(60px, 9vw, 130px); }
.sb-home-faq__grid > div:first-child > p:last-child { color: var(--sb-muted); }
.sb-faq-list details { border-top: 1px solid var(--sb-border); }
.sb-faq-list details:last-child { border-bottom: 1px solid var(--sb-border); }
.sb-faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 0; cursor: pointer; font-family: var(--sb-serif); font-size: 1.2rem; font-weight: 600; line-height: 1.3; list-style: none; }
.sb-faq-list summary::-webkit-details-marker { display: none; }
.sb-faq-list summary span { color: var(--sb-coral); font-family: var(--sb-sans); font-size: 1.5rem; font-weight: 300; transition: transform .2s ease; }
.sb-faq-list details[open] summary span { transform: rotate(45deg); }
.sb-faq-list summary::after { color: var(--sb-coral); content: "+"; font-family: var(--sb-sans); font-size: 1.5rem; font-weight: 300; transition: transform .2s ease; }
.sb-faq-list details[open] summary::after { transform: rotate(45deg); }
.sb-faq-list details p { padding-right: 50px; color: var(--sb-muted); font-size: .9rem; }

.sb-home-contact, .sb-inner-contact { padding: 85px 0; background: var(--sb-deep); color: #fff; }
.sb-home-contact__grid, .sb-inner-contact__grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 90px; }
.sb-home-contact h2, .sb-inner-contact h2 { font-size: clamp(2.2rem, 4.5vw, 4.5rem); }
.sb-home-contact__grid > div:first-child > p:not(.sb-eyebrow), .sb-inner-contact__grid > div:first-child > p:not(.sb-eyebrow) { color: rgba(255,255,255,.7); }
.sb-contact-card { display: grid; padding: 34px; background: var(--sb-white); color: var(--sb-ink); box-shadow: var(--sb-shadow); }
.sb-contact-card > a:not(.sb-button), .sb-contact-card > div { display: grid; padding: 15px 0; border-bottom: 1px solid var(--sb-border); text-decoration: none; }
.sb-contact-card span { color: var(--sb-coral-dark); font-size: .65rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.sb-contact-card strong { margin-top: 5px; font-family: var(--sb-serif); font-size: 1.2rem; }
.sb-contact-card small { color: var(--sb-muted); }
.sb-contact-card .sb-button { margin-top: 24px; }

/* SEO landing pages */
.sb-inner-hero { position: relative; overflow: hidden; padding: 30px 0 90px; background: var(--sb-deep); color: #fff; }
.sb-inner-hero__rings { position: absolute; top: -200px; right: -100px; width: 700px; height: 700px; margin: 0; }
.sb-inner-hero__rings span { position: absolute; inset: 0; border: 1px solid rgba(255,255,255,.09); border-radius: 50%; }
.sb-inner-hero__rings span:nth-child(2) { inset: 90px; }
.sb-inner-hero__rings span:nth-child(3) { inset: 180px; }
.sb-breadcrumbs { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 65px; color: var(--sb-muted); font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.sb-breadcrumbs a { text-decoration: none; }
.sb-breadcrumbs--light { color: rgba(255,255,255,.56); }
.sb-inner-hero__grid { position: relative; display: grid; grid-template-columns: 1.25fr .75fr; align-items: end; gap: 90px; }
.sb-inner-hero h1 { max-width: 800px; font-size: clamp(2.2rem, 6vw, 6.5rem); }
.sb-inner-lead { max-width: 760px; color: rgba(255,255,255,.72); font-size: 1.1rem; }
.sb-inner-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 30px 0 0; }
.sb-inner-tag { margin: 0; padding: 8px 13px; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; color: rgba(255,255,255,.78); font-size: .66rem; font-weight: 800; letter-spacing: .055em; line-height: 1.25; text-transform: uppercase; }
.sb-inner-summary { padding: 32px; border-top: 3px solid var(--sb-coral); background: var(--sb-white); color: var(--sb-ink); box-shadow: var(--sb-shadow); }
.sb-inner-summary__logo { width: 58px; margin: 0 0 18px; }
.sb-inner-summary__logo img { display: block; width: 58px; height: auto; }
.sb-inner-summary__wave { color: var(--sb-coral); font-family: var(--sb-serif); font-size: 2.5rem; }
.sb-inner-summary h2 { margin-top: 15px; font-size: 1.7rem; }
.sb-inner-summary__items { margin: 20px 0; }
.sb-inner-summary__item { display: grid; grid-template-columns: 18px 1fr; gap: 7px; margin: 0; padding: 11px 0; border-bottom: 1px solid var(--sb-border); color: var(--sb-muted); font-size: .82rem; }
.sb-inner-summary__item > span { color: var(--sb-coral); }
.sb-inner-summary__item a { color: inherit; font-size: inherit; font-weight: inherit; letter-spacing: 0; text-decoration: none; text-transform: none; }
.sb-inner-summary a { font-size: .68rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.sb-page-nav { position: sticky; top: 0; z-index: 30; overflow-x: auto; border-bottom: 1px solid var(--sb-border); background: rgba(255,253,249,.96); backdrop-filter: blur(12px); }
.admin-bar .sb-page-nav { top: 32px; }
.sb-page-nav .sb-shell { display: flex; align-items: center; gap: 28px; min-height: 65px; white-space: nowrap; }
.sb-page-nav span { color: var(--sb-coral-dark); font-size: .65rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.sb-page-nav a { color: var(--sb-muted); font-size: .68rem; font-weight: 700; text-decoration: none; }
.sb-seo-section { padding: 95px 0; scroll-margin-top: 65px; }
.sb-seo-section--tint { background: var(--sb-paper); }
.sb-seo-section__grid { display: grid; grid-template-columns: 120px minmax(0, 780px); justify-content: center; gap: 55px; }
.sb-seo-section__number span { color: var(--sb-coral); font-family: var(--sb-serif); font-size: 2.4rem; font-style: italic; }
.sb-seo-section__body h2 { font-size: clamp(2.2rem, 4vw, 3.7rem); }
.sb-seo-section__body p { color: var(--sb-muted); }
.sb-info-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 32px 0 0; }
/* A PARAGRAPH, NOT A GRID.
   This was `display: grid; grid-template-columns: 18px 1fr`, and the card is a <p> with
   THREE children: the tick, the title link, and a bare text node holding the author —
   `<span>✓</span><a>Découvrir la musicothérapie</a>, Édith Lecourt.`
   Grid gives each child its own cell, so the third one wrapped onto row 2 and landed in
   COLUMN ONE: the 18px tick column. The author name was rendering into an 18px box.
   It used to spill out of it and stay readable by accident; once long words were allowed
   to break, it wrapped inside those 18px instead — one or two letters per line, straight
   down the card.
   A hanging indent does the same job with no cells to run out of: the first line starts
   27px left of the text column, the tick fills exactly that 27px, and every following line
   — however many text nodes the editor leaves behind — lines up under the title. */
.sb-info-card { position: relative; display: block; min-height: 74px; margin: 0; padding: 18px 18px 18px 45px; text-indent: -27px; border: 1px solid var(--sb-border); background: var(--sb-white); color: var(--sb-muted); font-size: .84rem; line-height: 1.6; }
.sb-info-card > span { display: inline-block; width: 18px; margin-right: 9px; color: var(--sb-coral); font-weight: 800; text-indent: 0; }
.sb-info-card a { color: var(--sb-ink); text-decoration-color: rgba(23,54,47,.28); text-underline-offset: 3px; }

/* THE SAME CREDIT, THE SAME WEIGHT AS ON THE HOME PAGE.
   The home page already had a good version of this — .sb-review-inline: one short
   paragraph, 14px/16px of padding, a 3px coral rule down the left, .78rem, sitting inside
   the content column. The inner pages built something else for the same sentence: a
   full-width white band with a border top AND bottom, wrapping a 22px/30px two-column card
   whose label column took 55% of the width for two words — hence the empty gap in the
   middle and a block four times taller than it needed to be.
   Same component now, same proportions. The band keeps only a hairline above it so the
   credit still reads as separate from the article, not as part of it. */
.sb-content-review { padding: 26px 0 34px; border-top: 1px solid var(--sb-border); background: transparent; }
/* THE BYLINE HAS TO LINE UP WITH THE COLUMN IT SITS UNDER.
   It was `max-width: 1180px; margin: 0 auto`, centred on the VIEWPORT, while every other
   section on the page is `.sb-shell` = min(1160px, 100% - 48px). So the bar was 20px wider
   than the content above and below it and its left edge never matched theirs — at a ~1200px
   window the card starts at 10px and the shell at 24px. Same formula as .sb-shell now, so
   the two edges are the same edge at every width. (border-box is set on *, so the 4px
   border and the 30px padding sit inside that width.) */
/* AND IT HAS TO WIN THE MARGIN FIGHT TO STAY CENTRED.
   Line ~191 strips WordPress's block-group layout so the theme's own shells can position
   things: `.sb-editable-page .wp-block-group > * { margin-right: 0 !important; margin-left:
   0 !important }`. The byline is a child of a .wp-block-group, so its auto margins were
   being forced to 0 and it sat flush against the left edge — which is why it never lined up
   whatever width it had. .sb-editable-page .sb-shell on the very next line already fights
   the same rule the same way; this is that, for the one other element that centres itself. */
/* the SAME physical longhands it is overriding, not the logical shorthand — no
   logical-vs-physical resolution to reason about. */
.sb-editable-page .sb-review-card { margin-left: auto !important; margin-right: auto !important; }

.sb-review-card { display: block; width: min(1160px, calc(100% - 48px)); padding: 14px 16px; margin-inline: auto; border-left: 3px solid var(--sb-coral-dark); background: rgba(255,255,255,.52); color: var(--sb-ink); font-size: .78rem; }
.sb-review-card p { margin: 0; }
.sb-review-card__label { display: inline; color: var(--sb-coral-dark); font-size: .68rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.sb-review-card__label::after { content: "  b7 "; }
.sb-review-card__meta { display: inline; color: var(--sb-muted); font-size: inherit; }
.sb-review-card__meta a { color: var(--sb-ink); font-weight: 800; }

.sb-evidence-section { padding: 85px 0; scroll-margin-top: 65px; border-top: 1px solid var(--sb-border); background: var(--sb-paper); }
.sb-evidence-section h2 { max-width: 860px; font-size: clamp(2.2rem,3.8vw,3.7rem); }
.sb-evidence-section > .sb-shell > p:not(.sb-eyebrow) { max-width: 760px; color: var(--sb-muted); }
.sb-source-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin-top: 38px; }
.sb-source-card { display: flex; flex-direction: column; min-height: 220px; padding: 28px; border: 1px solid var(--sb-border); background: var(--sb-white); }
.sb-source-card h3 { font-size: 1.35rem; }
.sb-source-card__publisher { color: var(--sb-muted); font-size: .76rem; }
.sb-source-card__link { margin-top: auto; padding-top: 20px; }
.sb-source-card__link a { color: var(--sb-coral-dark); font-size: .68rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }

/* Page-specific refinements for the three information pages. */
.sb-page--bibliographie-musicotherapie-livres-cles.sb-inner-hero h1,
.sb-page--contact-musicotherapeute-nice.sb-inner-hero h1,
.sb-page--mentions-legales-cabinet-de-musicotherapie.sb-inner-hero h1 { font-size: clamp(2.2rem, 5.2vw, 5.65rem); }
.sb-page--bibliographie-musicotherapie-livres-cles .sb-seo-section__grid { grid-template-columns: 76px minmax(0, 1040px); }
.sb-page--bibliographie-musicotherapie-livres-cles .sb-info-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.sb-page--bibliographie-musicotherapie-livres-cles .sb-info-card { min-height: 112px; padding: 22px 22px 22px 49px; background: var(--sb-white); box-shadow: 0 12px 34px rgba(14,39,34,.04); }
.sb-page--bibliographie-musicotherapie-livres-cles .sb-info-card a { font-family: var(--sb-serif); font-size: 1.08rem; font-style: normal; line-height: 1.25; }
.sb-page--bibliographie-musicotherapie-livres-cles.sb-seo-section { padding: 76px 0; }

.sb-page--contact-musicotherapeute-nice.sb-contact-form { padding: 78px 0 88px; background: var(--sb-paper); }
.sb-page--contact-musicotherapeute-nice .sb-contact-form__inner { max-width: 980px; }
.sb-page--contact-musicotherapeute-nice .wpcf7-form { background: var(--sb-white); }
.sb-page--contact-musicotherapeute-nice.sb-seo-section { padding: 66px 0; }
.sb-page--contact-musicotherapeute-nice .sb-seo-section__grid { grid-template-columns: 70px minmax(0, 900px); }
.sb-page--contact-musicotherapeute-nice .sb-info-card { min-height: 96px; }

.sb-page--mentions-legales-cabinet-de-musicotherapie.sb-inner-hero { padding-bottom: 68px; }
.sb-page--mentions-legales-cabinet-de-musicotherapie.sb-page-nav { position: relative; top: auto; }
.sb-page--mentions-legales-cabinet-de-musicotherapie.sb-seo-section { padding: 56px 0; }
.sb-page--mentions-legales-cabinet-de-musicotherapie .sb-seo-section__grid { grid-template-columns: 68px minmax(0, 960px); gap: 38px; }
.sb-page--mentions-legales-cabinet-de-musicotherapie .sb-seo-section__body > h2 { font-size: clamp(2rem, 3.2vw, 3.25rem); }
.sb-page--mentions-legales-cabinet-de-musicotherapie .sb-seo-section__body > p { margin: 0; padding: 10px 0; border-bottom: 1px solid var(--sb-border); }
.sb-page--mentions-legales-cabinet-de-musicotherapie .sb-seo-section__body > p:last-child { border-bottom: 0; }
.sb-page--mentions-legales-cabinet-de-musicotherapie.sb-section-index-5 .sb-seo-section__body { padding: 28px; border-left: 4px solid var(--sb-ochre); background: var(--sb-ochre-soft); }
.sb-page--mentions-legales-cabinet-de-musicotherapie.sb-section-index-5 .sb-seo-section__body > h2 { margin-top: 0; }
.sb-inner-faq { padding: 100px 0; background: var(--sb-ochre-soft); }
.sb-inner-faq h2 { font-size: clamp(2.2rem, 4vw, 4rem); }
.sb-related-pages { padding: 100px 0; background: var(--sb-paper); }
.sb-related-pages h2 { max-width: 800px; }
.sb-related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 48px; }
.sb-related-card { display: block; min-height: 300px; padding: 32px; border-top: 3px solid var(--sb-coral); background: var(--sb-white); text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.sb-related-card:hover { transform: translateY(-5px); box-shadow: var(--sb-shadow); }
.sb-related-card > span { color: var(--sb-coral); font-family: var(--sb-serif); font-size: 2rem; }
.sb-related-card h3 { margin-top: 40px; font-size: 1.6rem; }
.sb-related-card p { color: var(--sb-muted); font-size: .84rem; }
.sb-related-card strong { font-size: .68rem; letter-spacing: .07em; text-transform: uppercase; }
.sb-contact-form { padding: 100px 0; background: var(--sb-white); }
.sb-contact-form__inner { max-width: 860px; }
.sb-contact-form__inner > h2 { font-size: clamp(2.2rem, 4vw, 4.2rem); }
.sb-contact-form__inner > p:not(.sb-eyebrow) { max-width: 760px; color: var(--sb-muted); }
.sb-contact-form .wpcf7-form { display: grid; gap: 18px; margin-top: 42px; padding: 38px; border-top: 3px solid var(--sb-coral); background: var(--sb-paper); box-shadow: var(--sb-shadow); }
.sb-contact-form .wpcf7-form p { margin: 0; }
.sb-contact-form .wpcf7-form label { display: grid; gap: 8px; color: var(--sb-ink); font-size: .72rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.sb-contact-form .wpcf7-form input:not([type="submit"]), .sb-contact-form .wpcf7-form textarea, .sb-contact-form .wpcf7-form select { width: 100%; padding: 14px 16px; border: 1px solid var(--sb-border); border-radius: 0; background: var(--sb-white); color: var(--sb-ink); font-family: var(--sb-sans); font-size: .95rem; font-weight: 400; letter-spacing: 0; text-transform: none; }
.sb-contact-form .wpcf7-form textarea { min-height: 170px; resize: vertical; }
.sb-contact-form .wpcf7-submit { padding: 15px 24px; border: 1px solid var(--sb-deep); border-radius: 0; background: var(--sb-deep); color: #fff; cursor: pointer; font-family: var(--sb-sans); font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.sb-contact-form .wpcf7-not-valid-tip, .sb-contact-form .wpcf7-response-output { color: var(--sb-coral-dark); font-size: .78rem; }
.grecaptcha-badge { visibility: hidden !important; }

/* Existing WordPress content */
.sb-editor-addition { padding: 80px 0; border-top: 1px solid var(--sb-border); background: var(--sb-white); }
.sb-standard-page, .sb-listing-page, .sb-error-page { min-height: 60vh; padding: 75px 0 110px; }
.sb-standard-header, .sb-listing-header { max-width: 880px; margin-bottom: 55px; }
.sb-standard-header h1, .sb-listing-header h1 { font-size: clamp(2.2rem, 6vw, 5.7rem); }
.sb-prose-wrap { max-width: 840px; }
.sb-prose { color: var(--sb-muted); }
.sb-prose > * { max-width: 100%; }
.sb-prose > h1 { margin-bottom: .75em; color: var(--sb-ink); font-size: clamp(2.2rem, 6vw, 5.5rem); }
.sb-prose h2, .sb-prose h3, .sb-prose h4 { margin-top: 1.5em; color: var(--sb-ink); }
.sb-prose h2 { font-size: clamp(2.2rem, 4vw, 3.6rem); }
.sb-prose h3 { font-size: 1.8rem; }
.sb-prose a { color: var(--sb-coral-dark); }
.sb-prose blockquote { margin: 40px 0; padding: 25px 35px; border-left: 3px solid var(--sb-coral); background: var(--sb-paper); color: var(--sb-ink); font-family: var(--sb-serif); font-size: 1.3rem; }
.sb-prose table { width: 100%; border-collapse: collapse; }
.sb-prose th, .sb-prose td { padding: 12px; border: 1px solid var(--sb-border); text-align: left; }
.sb-featured-image { margin: 0 0 40px; }
.alignwide { width: min(1100px, 100%); max-width: 1100px; margin-left: 50%; transform: translateX(-50%); }
.wp-block-button__link { border-radius: 2px; background: var(--sb-ink); font-family: var(--sb-sans); font-size: .75rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.sb-post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.sb-post-card { padding: 30px; border-top: 3px solid var(--sb-coral); background: var(--sb-paper); }
.sb-post-card__image { display: block; margin: -30px -30px 28px; overflow: hidden; }
.sb-post-card__image img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .25s ease; }
.sb-post-card:hover .sb-post-card__image img { transform: scale(1.025); }
.sb-post-card time { display: block; margin-bottom: 14px; color: var(--sb-coral-dark); font-size: .65rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.sb-post-card h2 { font-size: 1.8rem; }
.sb-post-card h2 a { text-decoration: none; }
.sb-post-card p { color: var(--sb-muted); font-size: .88rem; }
.sb-post-meta { color: var(--sb-coral-dark); font-size: .68rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.navigation.pagination { margin-top: 45px; }
.nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.page-numbers { display: grid; place-items: center; min-width: 42px; min-height: 42px; padding: 8px; border: 1px solid var(--sb-border); text-decoration: none; }
.page-numbers.current { border-color: var(--sb-ink); background: var(--sb-ink); color: #fff; }
.sb-error-page__inner { max-width: 760px; }
.sb-error-page__code { color: var(--sb-coral); font-family: var(--sb-serif); font-size: clamp(5rem, 12vw, 10rem); line-height: .8; }
.sb-error-page h1 { font-size: clamp(2.2rem, 5vw, 4.8rem); }
.sb-search-form { display: flex; width: min(610px, 100%); margin-top: 30px; }
.sb-search-form input { flex: 1; min-width: 0; padding: 14px 17px; border: 1px solid var(--sb-border); border-radius: 0; background: var(--sb-white); }
.sb-search-form button { padding: 14px 20px; border: 1px solid var(--sb-ink); background: var(--sb-ink); color: #fff; cursor: pointer; font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.sb-template-warning { margin-bottom: 35px; padding: 20px; border-left: 3px solid var(--sb-ochre); background: var(--sb-ochre-soft); }

/* Footer */
.sb-site-footer { padding: 65px 0 100px; border-top: 1px solid rgba(255,255,255,.1); background: var(--sb-deep); color: #fff; }
.sb-footer-main { display: grid; grid-template-columns: 1.2fr 1fr .7fr; align-items: start; gap: 60px; }
.sb-footer-brand { display: flex; align-items: center; gap: 16px; }
.sb-footer-mark { display: grid; place-items: center; width: 52px; height: 52px; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; font-family: var(--sb-serif); }
.sb-footer-brand div { display: grid; }
.sb-footer-brand strong { font-family: var(--sb-serif); font-size: 1.1rem; }
.sb-footer-brand span:not(.sb-footer-mark) { color: rgba(255,255,255,.58); font-size: .68rem; }
.sb-footer-links, .sb-footer-links ul { display: flex; flex-wrap: wrap; gap: 11px 24px; margin: 0; padding: 0; list-style: none; }
.sb-footer-links a, .sb-footer-social a, .sb-footer-bottom a { color: rgba(255,255,255,.75); font-size: .69rem; font-weight: 700; letter-spacing: .05em; text-decoration: none; text-transform: uppercase; }
.sb-footer-social { display: grid; gap: 9px; }
.sb-footer-social span { color: rgba(255,255,255,.48); font-size: .64rem; text-transform: uppercase; }
/* The author + last-reviewed credit, once per page, in the footer.
   Quiet on purpose: it is a trust signal, not a headline. The coral rule is the same
   motif the in-content version used, at footer weight. */
.sb-footer-review { margin-top: 48px; padding: 14px 0 14px 16px; border-left: 3px solid var(--sb-coral); color: rgba(255,255,255,.62); font-size: .72rem; line-height: 1.65; }
.sb-footer-review p { margin: 0; max-width: 760px; }
.sb-footer-review a { color: rgba(255,255,255,.9); font-weight: 700; text-decoration-color: rgba(255,255,255,.35); text-underline-offset: 3px; }
.sb-footer-review a:hover { color: #fff; }

.sb-footer-bottom { display: flex; justify-content: space-between; margin-top: 55px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.14); color: rgba(255,255,255,.45); font-size: .65rem; }
.sb-mobile-appointment { display: none; }
.sb-back-to-top {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 79;
	display: grid;
	visibility: hidden;
	place-items: center;
	width: 52px;
	height: 52px;
	padding: 0;
	border: 1px solid rgba(255,255,255,.24);
	border-radius: 50%;
	opacity: 0;
	background: var(--sb-deep);
	color: #fff;
	box-shadow: 0 14px 35px rgba(14,39,34,.24);
	cursor: pointer;
	transform: translateY(12px);
	transition: opacity .2s ease, visibility .2s ease, transform .2s ease, background .2s ease;
}
.sb-back-to-top span { font-family: var(--sb-sans); font-size: 1.35rem; line-height: 1; }
.sb-back-to-top:hover, .sb-back-to-top:focus-visible { background: var(--sb-coral-dark); }
.sb-back-to-top.is-visible { visibility: visible; opacity: 1; transform: none; }

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

/* --------------------------------------------------------------------------
   Screenshot-matched homepage sections — 1.4.0
   These rules intentionally come last so GeneratePress and the legacy child
   styles cannot change the approved proportions.
   -------------------------------------------------------------------------- */

/* Reference header and compact SB monogram. */
.sb-site-header { background: var(--sb-soft); }
.sb-header-inner { min-height: 78px; }
.sb-brand { gap: 12px; }
.sb-brand__logo-link { flex-basis: 48px; width: 48px; height: 48px; }
.sb-brand__logo { width: 48px; height: 48px; }
.sb-brand__copy strong { font-size: 1.18rem; letter-spacing: .01em; }
.sb-brand__copy small { margin-top: 5px; font-size: .58rem; font-weight: 750; letter-spacing: .105em; }

/* Shared screenshot geometry. */
.sb-front-page .sb-home-hero .sb-shell,
.sb-front-page .sb-audiences .sb-shell,
.sb-front-page .sb-needs .sb-shell,
.sb-front-page .sb-sessions .sb-shell,
.sb-front-page .sb-pricing .sb-shell {
	width: min(1180px, calc(100% - 48px));
}

/* 01 — Hero: editorial copy and arched record artwork. */
.sb-front-page .sb-home-hero {
	min-height: 940px;
	padding: 72px 0 66px;
	background: var(--sb-paper);
}
.sb-front-page .sb-home-hero::before {
	background-image: radial-gradient(rgba(23,54,47,.14) .65px, transparent .75px);
	background-size: 9px 9px;
	opacity: .28;
}
.sb-front-page .sb-home-hero::after {
	position: absolute;
	top: 108px;
	left: -292px;
	width: 520px;
	height: 520px;
	border: 1px solid rgba(216,160,75,.28);
	border-radius: 50%;
	box-shadow:
		0 0 0 70px rgba(243,225,189,.27),
		0 0 0 140px rgba(243,225,189,.17);
	content: "";
}
.sb-front-page .sb-home-hero__grid {
	grid-template-columns: minmax(0, 1.28fr) minmax(430px, .72fr);
	align-items: center;
	gap: 68px;
}
.sb-front-page .sb-home-hero__copy { z-index: 1; }
.sb-front-page .sb-home-hero h1 {
	max-width: 660px;
	font-size: clamp(2.2rem, 5.7vw, 6.1rem);
	line-height: 1.01;
	letter-spacing: -.045em;
}
.sb-front-page .sb-home-hero h1 small {
	margin-bottom: 30px;
	color: var(--sb-muted);
	font-size: .145em;
	letter-spacing: .14em;
}
.sb-front-page .sb-hero-lead { max-width: 650px; margin-top: 30px; font-size: 1rem; line-height: 1.95; }
.sb-front-page .sb-hero-actions { margin-top: 30px; }
.sb-front-page .sb-reassurance { margin-top: 30px; }
.sb-front-page .sb-hero-art { min-height: 570px; }
.sb-front-page .sb-hero-art__card {
	inset: 22px 0 4px 6px;
	border-radius: 235px 235px 14px 14px;
	background: linear-gradient(180deg, #173d35 0%, var(--sb-deep) 100%);
	box-shadow: 0 28px 70px rgba(14,39,34,.18);
}
.sb-front-page .sb-hero-art__card::after { display: none; }
.sb-front-page .sb-orbit {
	position: absolute;
	border: 1px solid rgba(216,160,75,.24);
	border-radius: 50%;
}
.sb-front-page .sb-orbit--one { inset: 35px 45px 96px; }
.sb-front-page .sb-orbit--two { inset: 76px 84px 138px; }
.sb-front-page .sb-orbit--three { inset: 119px 124px 180px; }
.sb-front-page .sb-orbit--one::before,
.sb-front-page .sb-orbit--two::before,
.sb-front-page .sb-orbit--one::after {
	position: absolute;
	z-index: 2;
	font-family: var(--sb-serif);
	content: "♪";
}
.sb-front-page .sb-orbit--one::before { top: 5px; right: 55px; color: #8cacaa; font-size: 1.4rem; transform: rotate(10deg); }
.sb-front-page .sb-orbit--two::before { top: 56px; left: 10px; color: #8cacaa; font-size: 1.25rem; transform: rotate(-12deg); }
.sb-front-page .sb-orbit--one::after {
	right: -4px;
	top: 204px;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: #e2a83d;
	content: "";
}
.sb-front-page .sb-sound-disc {
	top: 106px;
	left: 50%;
	width: 250px;
	height: 250px;
	border: 0;
	background: linear-gradient(145deg, #efb28e 0%, var(--sb-coral) 70%, #b85f50 100%);
	box-shadow: 0 24px 45px rgba(0,0,0,.17);
	transform: translateX(-50%);
}
.sb-front-page .sb-sound-disc::before {
	position: absolute;
	inset: 35px;
	border: 1px solid rgba(23,54,47,.28);
	border-radius: 50%;
	content: "";
}
.sb-front-page .sb-hero-art .sb-bars {
	position: relative;
	z-index: 1;
	display: block;
	width: 104px;
	height: 104px;
	border-radius: 50%;
	background:
		linear-gradient(var(--sb-paper), var(--sb-paper)) 14% 50% / 4px 38% no-repeat,
		linear-gradient(var(--sb-paper), var(--sb-paper)) 22% 50% / 4px 58% no-repeat,
		linear-gradient(var(--sb-paper), var(--sb-paper)) 30% 50% / 4px 42% no-repeat,
		linear-gradient(var(--sb-paper), var(--sb-paper)) 38% 50% / 4px 70% no-repeat,
		linear-gradient(var(--sb-paper), var(--sb-paper)) 47% 50% / 4px 50% no-repeat,
		linear-gradient(var(--sb-paper), var(--sb-paper)) 56% 50% / 4px 76% no-repeat,
		linear-gradient(var(--sb-paper), var(--sb-paper)) 65% 50% / 4px 48% no-repeat,
		linear-gradient(var(--sb-paper), var(--sb-paper)) 73% 50% / 4px 62% no-repeat,
		linear-gradient(var(--sb-paper), var(--sb-paper)) 81% 50% / 4px 40% no-repeat,
		linear-gradient(var(--sb-paper), var(--sb-paper)) 89% 50% / 4px 56% no-repeat,
		var(--sb-ink);
}
.sb-front-page .sb-hero-art blockquote {
	right: 32px;
	bottom: 40px;
	width: 365px;
	font-size: 1.2rem;
	line-height: 1.32;
}
.sb-front-page .sb-float-card {
	padding: 13px 18px;
	border: 1px solid rgba(23,54,47,.06);
	border-radius: 0;
	background: rgba(255,253,249,.98);
	box-shadow: 0 12px 24px rgba(23,54,47,.10);
}
.sb-front-page .sb-float-card--top { top: 88px; right: -28px; }
.sb-front-page .sb-float-card--bottom { bottom: -13px; left: -42px; }
.sb-front-page .sb-float-card--top > p > span:first-child {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--sb-coral-soft);
	font-size: 1.35rem;
}
.sb-front-page .sb-float-people { display: flex !important; align-items: center; width: 70px; color: var(--sb-ink) !important; font-family: var(--sb-sans) !important; font-size: .66rem !important; }
.sb-front-page .sb-float-people i {
	display: grid;
	place-items: center;
	width: 29px;
	height: 29px;
	margin-right: -5px;
	border: 1px solid var(--sb-white);
	border-radius: 50%;
	background: var(--sb-sage-soft);
	font-style: normal;
}
.sb-front-page .sb-float-people i:nth-child(2) { background: var(--sb-ochre-soft); }
.sb-front-page .sb-float-people i:nth-child(3) { background: var(--sb-coral-soft); }

/* 02 — Audience cards. */
.sb-front-page .sb-audiences { padding: 100px 0 105px; background: var(--sb-soft); }
.sb-front-page .sb-audiences .sb-split-heading { grid-template-columns: 1.45fr .55fr; align-items: end; gap: 80px; margin-bottom: 56px; }
.sb-front-page .sb-audience-grid { gap: 16px; }
.sb-front-page .sb-audience-card {
	position: relative;
	overflow: hidden;
	min-height: 440px;
	padding: 32px;
	border: 0;
	background: var(--sb-coral-soft);
	box-shadow: none;
}
.sb-front-page .sb-audience-card:hover { box-shadow: none; transform: none; }
.sb-front-page .sb-audience-card--ochre { background: var(--sb-ochre-soft); }
.sb-front-page .sb-audience-card--green { background: var(--sb-sage-soft); }
.sb-front-page .sb-audience-card::after {
	position: absolute;
	right: -102px;
	bottom: -110px;
	width: 230px;
	height: 230px;
	border: 1px solid rgba(23,54,47,.15);
	border-radius: 50%;
	box-shadow: 0 0 0 34px rgba(255,255,255,.12), 0 0 0 68px rgba(255,255,255,.09);
	content: "";
}
.sb-front-page .sb-audience-card > * { position: relative; z-index: 1; }
.sb-front-page .sb-audience-card__top { color: rgba(23,54,47,.55) !important; font-family: var(--sb-serif); font-style: italic; }
.sb-front-page .sb-audience-card__top i {
	display: grid;
	place-items: center;
	width: 43px;
	height: 43px;
	border: 1px solid rgba(23,54,47,.2);
	border-radius: 50%;
	color: var(--sb-ink);
	font-size: 1.35rem;
	font-style: normal;
}
.sb-front-page .sb-audience-card h3 { max-width: 250px; margin-top: 68px; font-size: 1.85rem; line-height: 1.08; }
.sb-front-page .sb-audience-card > p:not(.sb-audience-card__top) { max-width: 330px; color: var(--sb-muted); font-size: .82rem; line-height: 1.85; }
.sb-front-page .sb-audience-card .sb-card-tags { position: absolute; right: 32px; bottom: 32px; left: 32px; margin: 0; }
.sb-front-page .sb-audience-card .sb-card-tags li { padding: 5px 10px; border-color: rgba(23,54,47,.22); background: rgba(255,255,255,.18); color: var(--sb-ink); font-size: .57rem; text-transform: none; }

/* 03 — Full coral consultation grid. */
.sb-front-page .sb-needs { padding: 78px 0 112px; background: var(--sb-coral); color: var(--sb-deep); }
.sb-front-page .sb-needs-heading {
	display: grid;
	grid-template-columns: .72fr 1.38fr .95fr;
	align-items: start;
	gap: 64px;
	margin-bottom: 54px;
}
.sb-front-page .sb-needs-heading .sb-eyebrow { grid-column: auto; margin: 0; color: rgba(14,39,34,.82); }
.sb-front-page .sb-needs-heading .sb-eyebrow > span { background: var(--sb-deep); }
.sb-front-page .sb-needs-heading h2 { margin: -8px 0 0; color: var(--sb-deep); font-size: clamp(2.2rem, 4.7vw, 5rem); line-height: 1; }
.sb-front-page .sb-needs-heading h2 em { color: var(--sb-white); }
.sb-front-page .sb-needs-heading > p:last-child { padding-top: 132px; color: rgba(14,39,34,.88); font-size: .83rem; line-height: 1.95; }
.sb-front-page .sb-needs-grid { border-color: rgba(14,39,34,.24); }
.sb-front-page .sb-needs-grid article {
	min-height: 280px;
	padding: 32px 28px;
	border-color: rgba(14,39,34,.24);
	background: transparent;
}
.sb-front-page .sb-needs-grid .sb-card-number { margin: 0; color: rgba(14,39,34,.5); font-family: var(--sb-serif); font-size: .82rem; font-style: italic; }
.sb-front-page .sb-needs-grid h3 { max-width: 290px; margin-top: 44px; color: var(--sb-deep); font-size: 1.4rem; line-height: 1.12; }
.sb-front-page .sb-needs-grid article > p:last-child { color: rgba(14,39,34,.88); font-size: .76rem; line-height: 1.85; }

/* 04 — Session diagram and numbered timeline. */
.sb-front-page .sb-sessions { padding: 66px 0 74px; background: var(--sb-paper); }
.sb-front-page .sb-sessions__grid { grid-template-columns: .92fr 1.08fr; gap: 84px; }
.sb-front-page .sb-session-art {
	position: relative;
	display: block;
	overflow: visible;
	min-height: 520px;
	border-radius: 0;
	background:
		radial-gradient(circle at 50% 50%, transparent 0 134px, rgba(23,54,47,.18) 135px 136px, transparent 137px 184px, rgba(23,54,47,.15) 185px 186px, transparent 187px 234px, rgba(23,54,47,.15) 235px 236px, transparent 237px),
		linear-gradient(145deg, transparent 49.82%, rgba(23,54,47,.7) 49.92%, rgba(23,54,47,.7) 50.08%, transparent 50.18%);
}
.sb-front-page .sb-session-art::before,
.sb-front-page .sb-session-art::after {
	position: absolute;
	inset: auto;
	width: 12px;
	height: 12px;
	border: 0;
	border-radius: 50%;
	content: "";
}
.sb-front-page .sb-session-art::before { right: 34px; top: 36px; background: var(--sb-ochre); }
.sb-front-page .sb-session-art::after { bottom: 32px; left: 21px; background: var(--sb-sage); }
.sb-front-page .sb-session-art .sb-editable-art-note {
	position: absolute;
	top: 50%;
	left: 50%;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	width: 270px;
	height: 270px;
	margin: 0;
	padding-top: 55px;
	border-radius: 50%;
	background: var(--sb-coral);
	color: var(--sb-deep);
	font-size: 4rem;
	box-shadow: 0 25px 55px rgba(232,117,95,.22);
	transform: translate(-50%, -50%);
}
.sb-front-page .sb-session-art h3 {
	position: absolute;
	top: calc(50% + 30px);
	left: 50%;
	z-index: 2;
	width: 240px;
	margin: 0;
	color: var(--sb-deep);
	font-size: 1.85rem;
	text-align: center;
	transform: translateX(-50%);
}
.sb-front-page .sb-session-art > p:last-child {
	position: absolute;
	top: calc(50% + 78px);
	left: 50%;
	z-index: 2;
	width: 230px;
	margin: 0;
	color: var(--sb-deep);
	font-size: .59rem;
	font-weight: 700;
	text-align: center;
	transform: translateX(-50%);
}
.sb-front-page .sb-session-copy h2 { max-width: 590px; font-size: clamp(2.2rem, 4.7vw, 5.15rem); line-height: 1.02; }
.sb-front-page .sb-session-steps { margin: 48px 0 0; }
.sb-front-page .sb-session-steps li {
	position: relative;
	display: block;
	min-height: 116px;
	padding: 26px 0 22px 80px;
	border-top: 1px solid var(--sb-border);
	color: var(--sb-muted);
	font-size: .78rem;
	line-height: 1.8;
}
.sb-front-page .sb-session-steps li:last-child { border-bottom: 1px solid var(--sb-border); }
.sb-front-page .sb-session-steps li::before {
	position: absolute;
	top: 23px;
	left: 0;
	display: grid;
	place-items: center;
	width: 41px;
	height: 41px;
	border-radius: 50%;
	background: var(--sb-sage-soft);
	color: var(--sb-deep);
	font-family: var(--sb-serif);
	font-size: 1rem;
	content: counter(sb-session);
}
.sb-front-page .sb-session-steps li strong { display: block; margin-bottom: 4px; color: var(--sb-deep); font-family: var(--sb-serif); font-size: 1.35rem; line-height: 1.2; }

/* 05 — Contiguous four-column pricing table. */
.sb-front-page .sb-pricing { padding: 110px 0 112px; background: var(--sb-soft); }
.sb-front-page .sb-pricing-heading { grid-template-columns: 1.45fr .55fr; align-items: end; gap: 80px; margin-bottom: 56px; }
.sb-front-page .sb-pricing-heading h2 { max-width: 560px; }
.sb-front-page .sb-price-grid { gap: 0; border-color: var(--sb-border); }
.sb-front-page .sb-price-grid .sb-price-card {
	min-height: 230px;
	padding: 29px;
	border-color: var(--sb-border);
	background: var(--sb-white);
}
.sb-front-page .sb-price-grid .sb-price-card h3.sb-price-card__title { margin: 0; color: var(--sb-deep); font-family: var(--sb-sans); font-size: .66rem; font-weight: 800; }
.sb-front-page .sb-price-grid .sb-price-card > p.sb-price-card__amount { margin: 58px 0 12px; }
.sb-front-page .sb-price-grid .sb-price-card > p.sb-price-card__amount strong { color: var(--sb-deep); font-size: 2.35rem; font-weight: 400; }
.sb-front-page .sb-price-grid .sb-price-card > p:last-child { margin: 0; color: var(--sb-muted); font-size: .62rem; font-weight: 400; letter-spacing: 0; text-transform: none; }

/* Exact measurements recovered from the approved preview and mapped to the
   native WordPress block classes. Keep this final cascade after all fallbacks. */
:root { --sb-serif: "SB Newsreader", "Iowan Old Style", "Palatino Linotype", Baskerville, Georgia, serif; --sb-sans: "SB Manrope", "Avenir Next", Avenir, "Segoe UI", Helvetica, Arial, sans-serif; }
.sb-header-inner { min-height: 84px; }
.sb-brand__copy strong { font-size: 1.15rem; font-weight: 600; }
.sb-brand__copy small { font-size: .64rem; font-weight: 700; letter-spacing: .07em; }

.sb-front-page .sb-home-hero { min-height: 0; padding: 0; }
.sb-front-page .sb-home-hero::before {
	background-image: radial-gradient(rgba(23,54,47,.22) .55px, transparent .55px);
	background-size: 9px 9px;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 60%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 60%, transparent);
	opacity: .3;
}
.sb-front-page .sb-home-hero::after {
	top: 10%;
	left: -240px;
	width: 460px;
	height: 460px;
	border-color: rgba(216,160,75,.28);
	box-shadow: 0 0 0 70px rgba(216,160,75,.071), 0 0 0 140px rgba(216,160,75,.043);
}
.sb-front-page .sb-home-hero__grid {
	grid-template-columns: 1.08fr .92fr;
	gap: 56px;
	min-height: 710px;
	padding-top: 70px;
	padding-bottom: 82px;
}
.sb-front-page .sb-home-hero h1 {
	max-width: 550px;
	margin: 0 0 28px;
	font-size: clamp(2.2rem, 6.4vw, 6.25rem);
}
.sb-front-page .sb-home-hero h1 em { display: block; }
.sb-front-page .sb-home-hero h1 small {
	margin-bottom: 36px;
	color: #60756e;
	font-size: .72rem;
	line-height: 1.3;
	letter-spacing: .18em;
}
.sb-front-page .sb-hero-lead { max-width: 660px; margin: 0 0 34px; color: #4f665f; font-size: 1.13rem; line-height: 1.8; }
.sb-front-page .sb-hero-actions { gap: 28px; margin: 0; }
.sb-front-page .sb-reassurance { gap: 18px 26px; margin: 35px 0 0; }
.sb-front-page .sb-hero-art { min-height: 540px; }
.sb-front-page .sb-hero-art__card {
	inset: 0 18px 20px 48px;
	padding: 34px;
	border-radius: 49% 49% 16px 16px;
	background: var(--sb-ink);
	box-shadow: 0 36px 90px rgba(14,39,34,.18);
}
.sb-front-page .sb-hero-art__card::after {
	position: absolute;
	inset: auto 0 0;
	z-index: 2;
	display: block;
	width: auto;
	height: 42%;
	border-radius: 0;
	background: linear-gradient(transparent, rgba(5,21,17,.88));
	opacity: 1;
	content: "";
}
.sb-front-page .sb-orbit { left: 50%; border-color: rgba(232,117,95,.24); transform: translateX(-50%); }
.sb-front-page .sb-orbit--one { inset: auto; top: 34px; width: 350px; height: 350px; }
.sb-front-page .sb-orbit--two { inset: auto; top: -5px; width: 430px; height: 430px; }
.sb-front-page .sb-orbit--three { inset: auto; top: -45px; width: 510px; height: 510px; }
.sb-front-page .sb-orbit--one::before { top: 54px; left: 13px; right: auto; color: rgba(255,255,255,.55); font-size: 2rem; transform: rotate(-16deg); }
.sb-front-page .sb-orbit--two::before { top: 30px; right: 68px; left: auto; color: rgba(255,255,255,.55); font-size: 1.6rem; content: "♫"; transform: rotate(18deg); }
.sb-front-page .sb-orbit--one::after { top: 184px; right: -5px; width: auto; height: auto; background: none; color: var(--sb-ochre); font-size: 2rem; content: "•"; }
.sb-front-page .sb-sound-disc {
	top: 84px;
	width: 250px;
	height: 250px;
	border: 1px solid rgba(255,255,255,.18);
	background: radial-gradient(circle at 36% 30%, #f7d8bb, #d28765 48%, #b85f52 74%, #792f31);
	box-shadow: inset 0 0 50px rgba(255,255,255,.16), 0 20px 70px rgba(232,117,95,.24);
}
.sb-front-page .sb-sound-disc::before { inset: 35px; border-color: rgba(23,54,47,.22); }
.sb-front-page .sb-sound-disc::after { position: absolute; inset: 68px; border: 1px solid rgba(23,54,47,.22); border-radius: 50%; background: rgba(20,54,47,.92); content: ""; }
.sb-front-page .sb-hero-art .sb-bars { z-index: 2; display: flex; align-items: center; gap: 5px; width: auto; height: 84px; border-radius: 0; background: none; }
.sb-front-page .sb-hero-art .sb-bars i { display: block; width: 4px; border-radius: 3px; background: #f8eadb; }
.sb-front-page .sb-hero-art blockquote { right: auto; bottom: 34px; left: 34px; max-width: 360px; width: auto; font-size: 1.68rem; line-height: 1.25; }
.sb-front-page .sb-hero-art blockquote { z-index: 3; color: #fff; }
.sb-front-page .sb-orbit--one::before { top: 135px; }
.sb-front-page .sb-hero-art__card::before { position: absolute; top: 36px; right: 20%; z-index: 2; color: rgba(255,255,255,.55); font-family: var(--sb-serif); font-size: 1.6rem; content: "♫"; transform: rotate(18deg); }
.sb-front-page .sb-float-card { gap: 12px; padding: 15px 18px; background: rgba(255,253,249,.95); box-shadow: 0 16px 44px rgba(14,39,34,.14); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.sb-front-page .sb-float-card--top { top: 66px; right: -10px; width: 210px; max-width: calc(100% - 16px); }
.sb-front-page .sb-float-card--bottom { bottom: 2px; left: 0; }
.sb-front-page .sb-float-card > p { width: 100%; flex-wrap: nowrap; }
.sb-front-page .sb-float-card__copy { min-width: 0; }
.sb-front-page .sb-float-card__copy strong,
.sb-front-page .sb-float-card__copy small { white-space: nowrap; }
.sb-front-page .sb-float-card strong { font-size: 1rem; line-height: 1.1; }
.sb-front-page .sb-float-card small { margin-top: 3px; font-size: .63rem; }
.sb-front-page .sb-float-card--top > p > span:first-child { width: 34px; height: 34px; font-size: 1.3rem; }
.sb-front-page .sb-float-people { width: auto; }
.sb-front-page .sb-float-people i { width: 31px; height: 31px; margin-right: -7px; border-width: 2px; font-family: var(--sb-serif); font-size: .7rem; }

.sb-front-page .sb-audiences { padding: 100px 0 105px; }
.sb-front-page .sb-audiences .sb-split-heading { grid-template-columns: 1.35fr .65fr; gap: 80px; margin-bottom: 54px; }
.sb-front-page .sb-audiences h2 { max-width: 680px; margin: 0; font-size: clamp(2.2rem, 5vw, 4.6rem); font-weight: 400; line-height: .99; letter-spacing: -.045em; }
.sb-front-page .sb-audience-card { min-height: 440px; padding: 32px; border-radius: 3px; }
.sb-front-page .sb-audience-card::after { right: -120px; bottom: -120px; width: 220px; height: 220px; border-color: rgba(23,54,47,.18); box-shadow: 0 0 0 34px rgba(23,54,47,.035), 0 0 0 68px rgba(23,54,47,.024); }
.sb-front-page .sb-audience-card__top { margin-bottom: 72px; }
.sb-front-page .sb-audience-card__top i { width: 42px; height: 42px; font-size: 1.4rem; }
.sb-front-page .sb-audience-card h3 { max-width: 260px; margin: 0 0 17px; font-size: 2rem; font-weight: 500; }
.sb-front-page .sb-audience-card > p:not(.sb-audience-card__top) { min-height: 106px; margin-bottom: 30px; font-size: .9rem; line-height: 1.75; }
.sb-front-page .sb-audience-card .sb-card-tags { position: relative; right: auto; bottom: auto; left: auto; gap: 7px; }
.sb-front-page .sb-audience-card .sb-card-tags li { padding: 6px 10px; font-size: .58rem; font-weight: 800; }

.sb-front-page .sb-needs { padding: 78px 0 112px; }
.sb-front-page .sb-needs-heading { grid-template-columns: .7fr 1fr .75fr; align-items: end; gap: 52px; margin-bottom: 52px; }
.sb-front-page .sb-needs-heading .sb-eyebrow { align-self: start; }
.sb-front-page .sb-needs-heading h2 { margin: 0; font-size: clamp(2.2rem, 4.3vw, 4.25rem); font-weight: 400; line-height: .99; letter-spacing: -.045em; }
.sb-front-page .sb-needs-heading > p:last-child { margin: 0 0 4px; padding-top: 0; font-size: .9rem; line-height: 1.8; }
.sb-front-page .sb-needs-grid article { min-height: 275px; padding: 28px; background: rgba(255,255,255,.08); }
.sb-front-page .sb-needs-grid .sb-card-number { font-size: .9rem; }
.sb-front-page .sb-needs-grid h3 { margin: 44px 0 14px; font-size: 1.45rem; font-weight: 600; line-height: 1.18; }
.sb-front-page .sb-needs-grid article > p:last-child { margin: 0; font-size: .8rem; line-height: 1.75; }

.sb-front-page .sb-sessions { padding: 78px 0 111px; }
.sb-front-page .sb-sessions__grid { grid-template-columns: .9fr 1.1fr; gap: 110px; }
.sb-front-page .sb-session-art {
	min-height: 560px;
	background:
		radial-gradient(circle at 50% 50%, transparent 0 184px, rgba(23,54,47,.14) 185px 186px, transparent 187px 234px, rgba(23,54,47,.14) 235px 236px, transparent 237px),
		linear-gradient(149deg, transparent 49.88%, rgba(23,54,47,.75) 49.94%, rgba(23,54,47,.75) 50.06%, transparent 50.12%);
	transform: translateY(8px);
}
.sb-front-page .sb-session-art::before { top: 57px; right: 10px; }
.sb-front-page .sb-session-art::after { bottom: 48px; left: 19px; }
.sb-front-page .sb-session-art .sb-editable-art-note { width: 270px; height: 270px; padding-top: 50px; font-size: 4rem; box-shadow: 0 26px 80px rgba(156,75,59,.2); }
.sb-front-page .sb-session-art h3 { top: calc(50% + 27px); font-size: 1.7rem; }
.sb-front-page .sb-session-art > p:last-child { top: calc(50% + 72px); font-size: .66rem; }
.sb-front-page .sb-session-copy h2 { max-width: 650px; margin: 0 0 37px; font-size: clamp(2.2rem, 5vw, 4.6rem); font-weight: 400; line-height: .99; letter-spacing: -.045em; }
.sb-front-page .sb-session-steps { margin: 0; }
.sb-front-page .sb-session-steps li > br { display: none; }
.sb-front-page .sb-session-steps li { min-height: 0; padding: 27px 0 27px 78px; font-size: .85rem; line-height: 1.7; }
.sb-front-page .sb-session-steps li::before { top: 27px; width: 38px; height: 38px; font-style: italic; }
.sb-front-page .sb-session-steps li strong { margin-bottom: 5px; font-size: 1.3rem; font-weight: 600; }
.sb-front-page .sb-session-copy > p:last-child { display: none; }

.sb-front-page .sb-pricing { padding: 125px 0 112px; }
.sb-front-page .sb-pricing-heading { grid-template-columns: 1.1fr .9fr; gap: 100px; margin-bottom: 50px; }
.sb-front-page .sb-pricing-heading h2 { margin: 0; font-size: clamp(2.2rem, 5vw, 4.25rem); font-weight: 400; line-height: .99; letter-spacing: -.045em; }
.sb-front-page .sb-pricing-heading > p { max-width: 480px; margin: 0 0 8px; line-height: 1.8; }
.sb-front-page .sb-price-grid .sb-price-card { position: relative; z-index: 0; display: flex; flex-direction: column; min-height: 230px; padding: 28px; transition: background-color .22s ease, box-shadow .22s ease, transform .22s ease; }
.sb-front-page .sb-price-grid .sb-price-card > p:first-child { font-size: .72rem; letter-spacing: .06em; }
.sb-front-page .sb-price-grid .sb-price-card h3 { margin: auto 0 0; font-size: 2.65rem; font-weight: 500; }
.sb-front-page .sb-price-grid .sb-price-card > p:last-child { margin-top: 9px; font-size: .66rem; }
.sb-front-page .sb-pricing-link { display: none; }

@media (hover: hover) and (pointer: fine) {
	.sb-front-page .sb-price-grid .sb-price-card:hover {
		z-index: 2;
		background: var(--sb-sage-soft);
		box-shadow: 0 18px 42px rgba(14, 39, 34, .1);
		transform: translateY(-4px);
	}
}


/* ==========================================================================
   RESPONSIVE — every max-width query, collected, WIDEST FIRST
   ==========================================================================
   These used to sit in the middle of the file, and each new block appended
   below them silently switched them off again. Two rules of equal weight are
   decided by WHICH COMES LAST, and a media query wins nothing for being a
   media query. Measured before this move: 321 declarations inside max-width
   queries, 59 of them dead — including

     .sb-front-page .sb-sessions__grid   grid-template-columns: 1fr   (820px)
       beaten by a later  grid-template-columns: .9fr 1.1fr
     .sb-front-page .sb-needs-heading    grid-template-columns: 1fr   (820px)
       beaten by a later  grid-template-columns: .7fr 1fr .75fr

   so the phone kept a two- and a three-column grid it was explicitly told to
   collapse. Everything responsive lives here now, ordered widest to narrowest
   so the narrower breakpoint still wins. ADD NEW RESPONSIVE RULES HERE, at the
   bottom — anything added after this section outranks all of it again.
   ========================================================================== */

@media (max-width: 1080px) {
	.sb-gp-nav-cta { display: none; }
	.sb-desktop-nav { display: none; }
	.sb-header-cta { margin-left: auto; }
	.sb-mobile-nav { display: block; }
	.sb-home-hero__grid { grid-template-columns: 1fr .75fr; gap: 35px; }
	.sb-hero-art { min-height: 490px; }
	.sb-hero-art blockquote { right: 35px; }
	.sb-local__grid { gap: 55px; }
	.sb-page-nav .sb-shell { width: max-content; min-width: calc(100% - 48px); }
}

@media (max-width: 1080px) {
	.sb-front-page .sb-home-hero__grid { grid-template-columns: minmax(0, 1.15fr) minmax(370px, .85fr); gap: 38px; }
	.sb-front-page .sb-home-hero h1 { font-size: clamp(2.2rem, 7vw, 5rem); }
	.sb-front-page .sb-needs-heading { gap: 38px; }
	.sb-front-page .sb-sessions__grid { gap: 45px; }
}

@media (max-width: 1050px) {
	.sb-front-page .sb-home-hero__grid { grid-template-columns: 1fr .8fr; gap: 28px; }
	.sb-front-page .sb-home-hero h1 { font-size: clamp(2.2rem, 7vw, 5.2rem); }
	.sb-front-page .sb-sessions__grid { gap: 60px; }
}

@media (max-width: 820px) {
	body { padding-bottom: 76px; }
	.admin-bar .sb-page-nav { top: 46px; }
	.sb-shell { width: min(100% - 34px, 680px); }
	.sb-section { padding: 76px 0; }
	.sb-top-note__inner span:nth-child(2), .sb-top-note__inner span:nth-child(3) { display: none; }
	.sb-top-note__inner { justify-content: space-between; }
	.sb-top-note__inner a { margin: 0; }
	.sb-header-inner { min-height: 76px; gap: 12px; }
	.sb-header-cta { display: none; }
	/* THE MENU HUNG OFF THE LEFT OF THE SCREEN.
	
	   The header is a flex row: brand, desktop nav, CTA, burger. At 1080px the desktop
	   nav is hidden and `margin-left: auto` is put on the CTA — which is what pushes
	   everything after it to the right edge. Here the CTA is hidden too, and a
	   `display: none` element pushes nothing, so the burger sat immediately after the
	   logo, around x=278.
	
	   The panel is anchored `right: 0` to the burger and is 310px wide, so it opened
	   LEFTWARDS from 278 — starting at -32px. body has overflow-x: hidden, so it was
	   not a sideways scroll: the first 32px of the menu were simply cut off.
	
	   The auto margin belongs on the thing that must sit at the edge, not on a
	   neighbour that may or may not be displayed. */
	.sb-mobile-nav { margin-left: auto; }
	.sb-brand__copy small { display: none; }
	.sb-home-hero { padding: 70px 0 65px; }
	.sb-home-hero__grid, .sb-definition__grid, .sb-approach__grid, .sb-sessions__grid, .sb-about__grid, .sb-local__grid, .sb-home-contact__grid, .sb-inner-contact__grid, .sb-inner-hero__grid, .sb-home-faq__grid, .sb-inner-faq__grid { grid-template-columns: 1fr; }
	.sb-home-hero h1 { font-size: clamp(1.75rem, 6.6vw, 3.2rem); }
	.sb-hero-art { width: min(480px, 100%); min-height: 500px; margin: 10px auto 0; }
	.sb-trust-grid { grid-template-columns: 1fr; }
	.sb-trust-grid > div, .sb-trust-grid > div:first-child, .sb-trust-grid > div:last-child { min-height: 86px; padding: 17px 0; border-right: 0; border-bottom: 1px solid var(--sb-border); }
	.sb-trust-grid > div:last-child { border: 0; }
	.sb-definition__grid, .sb-approach__grid, .sb-sessions__grid, .sb-about__grid, .sb-local__grid, .sb-home-contact__grid, .sb-inner-contact__grid, .sb-home-faq__grid, .sb-inner-faq__grid { gap: 48px; }
	.sb-split-heading, .sb-programs-heading, .sb-pricing-heading, .sb-needs-heading { grid-template-columns: 1fr; gap: 10px; }
	.sb-needs-heading .sb-eyebrow { grid-column: auto; margin-bottom: 12px; }
	.sb-audience-grid { grid-template-columns: 1fr; }
	.sb-audience-card { min-height: auto; }
	.sb-audience-card h3 { margin-top: 40px; }
	.sb-needs-grid { grid-template-columns: repeat(2, 1fr); }
	.sb-program-grid { grid-template-columns: 1fr; }
	.sb-price-grid { grid-template-columns: repeat(2, 1fr); }
	.sb-session-art { min-height: 440px; }
	.sb-about-card { width: calc(100% - 25px); min-height: 430px; }
	.sb-inner-hero { padding-bottom: 70px; }
	.sb-breadcrumbs { margin-bottom: 45px; }
	.sb-inner-hero__grid { gap: 48px; }
	.sb-inner-hero h1 { font-size: clamp(2.2rem, 11vw, 5.1rem); }
	.sb-inner-summary { max-width: 520px; }
	.sb-seo-section { padding: 72px 0; }
	.sb-seo-section__grid { grid-template-columns: 55px minmax(0, 1fr); gap: 24px; }
	.sb-check-list { grid-template-columns: 1fr; }
	.sb-related-grid, .sb-post-grid { grid-template-columns: 1fr; }
	.sb-related-card { min-height: auto; }
	/* stack the label over the name; the WIDTH is deliberately not touched here —
	   .sb-editable-page .sb-shell keeps min(1160px, 100% - 48px) at every width, so
	   overriding it at this breakpoint is what would knock the two edges apart. */
	.sb-review-card { padding: 12px 14px; }
	.sb-source-grid { grid-template-columns: 1fr; }
	.sb-footer-main { grid-template-columns: 1fr; gap: 35px; }
	.sb-mobile-appointment { position: fixed; right: 12px; bottom: 12px; left: 12px; z-index: 80; display: flex; align-items: center; justify-content: space-between; min-height: 52px; padding: 13px 18px; background: var(--sb-coral-dark); color: #fff; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; box-shadow: 0 10px 35px rgba(14,39,34,.25); }
	.sb-back-to-top { right: 16px; bottom: 78px; }
}

@media (max-width: 820px) {
	.sb-header-inner { min-height: 72px; }
	.sb-front-page .sb-home-hero { min-height: 0; padding: 64px 0 72px; }
	.sb-front-page .sb-home-hero::after { top: 110px; left: -420px; }
	.sb-front-page .sb-home-hero__grid,
	.sb-front-page .sb-needs-heading,
	.sb-front-page .sb-sessions__grid { grid-template-columns: 1fr; }
	.sb-front-page .sb-home-hero h1 { max-width: 650px; font-size: clamp(1.75rem, 6.6vw, 3.4rem); }
	.sb-front-page .sb-hero-art { width: min(470px, 100%); min-height: 580px; }
	.sb-front-page .sb-audiences,
	.sb-front-page .sb-needs,
	.sb-front-page .sb-sessions,
	.sb-front-page .sb-pricing { padding: 76px 0; }
	.sb-front-page .sb-audiences .sb-split-heading,
	.sb-front-page .sb-pricing-heading { grid-template-columns: 1fr; gap: 16px; }
	.sb-front-page .sb-audience-grid { grid-template-columns: 1fr; }
	.sb-front-page .sb-audience-card { min-height: 400px; }
	.sb-front-page .sb-needs-heading { gap: 18px; }
	.sb-front-page .sb-needs-heading > p:last-child { padding-top: 6px; }
	.sb-front-page .sb-needs-grid { grid-template-columns: repeat(2, 1fr); }
	.sb-front-page .sb-session-art { width: min(530px, 100%); margin-inline: auto; }
	.sb-front-page .sb-price-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 820px) {
	.sb-front-page .sb-home-hero__grid { grid-template-columns: 1fr; min-height: auto; padding-top: 65px; padding-bottom: 64px; }
	.sb-front-page .sb-home-hero h1 { font-size: clamp(1.75rem, 6.6vw, 3.2rem); }
	.sb-front-page .sb-hero-art { min-height: 510px; margin-top: 8px; }
	.sb-front-page .sb-hero-art__card { inset: 0 18px 12px; }
	.sb-front-page .sb-float-card--top { right: 0; }
	.sb-front-page .sb-audiences,
	.sb-front-page .sb-needs,
	.sb-front-page .sb-sessions,
	.sb-front-page .sb-pricing { padding: 82px 0; }
	.sb-front-page .sb-audiences .sb-split-heading,
	.sb-front-page .sb-pricing-heading { gap: 30px; }
	.sb-front-page .sb-audience-card { min-height: 380px; }
	.sb-front-page .sb-audience-card__top { margin-bottom: 48px; }
	.sb-front-page .sb-audience-card > p:not(.sb-audience-card__top) { min-height: auto; }
	.sb-front-page .sb-needs-heading { gap: 40px; }
	.sb-front-page .sb-needs-grid article { min-height: 250px; }
	.sb-front-page .sb-sessions__grid { gap: 64px; }
	.sb-front-page .sb-session-copy { order: 1; }
	.sb-front-page .sb-session-art { order: 2; min-height: 470px; transform: none; }
}

@media (max-width: 540px) {
	.sb-shell { width: calc(100% - 28px); }
	body { font-size: 15px; }
	h2 { font-size: clamp(1.5rem, 6.4vw, 2rem); }
	.sb-brand__copy strong { max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.sb-hero-actions { align-items: stretch; flex-direction: column; gap: 18px; }
	.sb-hero-actions .sb-button { width: 100%; }
	.sb-reassurance { display: grid; }
	.sb-hero-art { min-height: 400px; }
	.sb-hero-art__card { inset: 15px 0; }
	.sb-sound-disc { top: 72px; width: 145px; height: 145px; }
	.sb-hero-art blockquote { right: 28px; bottom: 58px; width: 185px; }
	.sb-float-card--top { right: -4px; }
	.sb-float-card--bottom { left: -4px; }
	.sb-needs-grid, .sb-price-grid { grid-template-columns: 1fr; }
	.sb-needs-grid article { min-height: auto; }
	.sb-methods article { grid-template-columns: 55px 1fr; gap: 16px; }
	.sb-methods article > span { width: 50px; height: 50px; }
	.sb-method-letter { width: 50px; height: 50px; }
	.sb-program-grid article, .sb-local aside, .sb-contact-card { padding: 27px; }
	.sb-session-art { min-height: 370px; }
	.sb-session-art::before { inset: 40px; }
	.sb-session-art::after { inset: 80px; }
	.sb-credentials { grid-template-columns: 1fr; }
	.sb-about-card { min-height: 390px; padding: 30px; }
	.sb-about-card h3, .sb-about-card > strong { font-size: clamp(1.35rem, 5.6vw, 1.85rem); }
	.sb-session-art .sb-editable-art-note { font-size: 1.3rem; }
	.sb-inner-hero h1,
	[class*="sb-page--"].sb-inner-hero h1 { font-size: clamp(1.75rem, 8.4vw, 2.5rem); }
	.sb-page-nav .sb-shell { min-width: calc(100% - 28px); }
	.sb-seo-section__grid { grid-template-columns: 1fr; }
	.sb-seo-section__number { margin-bottom: -15px; }
	.sb-faq-list details p { padding-right: 10px; }
	.sb-footer-bottom { align-items: flex-start; flex-direction: column; gap: 10px; }
	.alignwide { width: 100%; margin-left: 0; transform: none; }
	.sb-search-form { flex-direction: column; }
}

@media (max-width: 540px) {
	.sb-brand__logo-link { flex-basis: 44px; width: 44px; height: 44px; }
	.sb-brand__logo { width: 44px; height: 44px; }
	.sb-brand__copy strong { font-size: 1.05rem; }
	.sb-front-page .sb-home-hero .sb-shell,
	.sb-front-page .sb-audiences .sb-shell,
	.sb-front-page .sb-needs .sb-shell,
	.sb-front-page .sb-sessions .sb-shell,
	.sb-front-page .sb-pricing .sb-shell { width: calc(100% - 28px); }
	.sb-front-page .sb-home-hero h1 { font-size: clamp(2.2rem, 15.5vw, 4.25rem); }
	.sb-front-page .sb-hero-lead { font-size: .94rem; line-height: 1.75; }
	.sb-front-page .sb-hero-art { min-height: 480px; }
	.sb-front-page .sb-hero-art__card { inset: 18px 0 4px; border-radius: 50vw 50vw 12px 12px; }
	.sb-front-page .sb-sound-disc { top: 91px; width: 205px; height: 205px; }
	.sb-front-page .sb-sound-disc::before { inset: 28px; }
	.sb-front-page .sb-hero-art blockquote { right: 24px; bottom: 35px; width: calc(100% - 48px); font-size: 1.03rem; }
	.sb-front-page .sb-float-card--top { top: 62px; right: -5px; }
	.sb-front-page .sb-float-card--bottom { bottom: -16px; left: -4px; }
	.sb-front-page .sb-audience-card { min-height: 420px; padding: 28px; }
	.sb-front-page .sb-audience-card .sb-card-tags { right: 28px; bottom: 28px; left: 28px; }
	.sb-front-page .sb-needs-heading h2,
	.sb-front-page .sb-session-copy h2 { font-size: clamp(1.5rem, 6.4vw, 2rem); }
	.sb-front-page .sb-needs-grid,
	.sb-front-page .sb-price-grid { grid-template-columns: 1fr; }
	.sb-front-page .sb-needs-grid article { min-height: 245px; }
	.sb-front-page .sb-session-art { min-height: 390px; background:
		radial-gradient(circle at 50% 50%, transparent 0 103px, rgba(23,54,47,.18) 104px 105px, transparent 106px 139px, rgba(23,54,47,.15) 140px 141px, transparent 142px 174px, rgba(23,54,47,.15) 175px 176px, transparent 177px),
		linear-gradient(145deg, transparent 49.8%, rgba(23,54,47,.7) 49.92%, rgba(23,54,47,.7) 50.08%, transparent 50.2%); }
	.sb-front-page .sb-session-art .sb-editable-art-note { width: 210px; height: 210px; padding-top: 40px; font-size: 1.3rem; }
	.sb-front-page .sb-session-art h3 { top: calc(50% + 20px); font-size: 1.5rem; }
	.sb-front-page .sb-session-art > p:last-child { top: calc(50% + 59px); }
	.sb-front-page .sb-session-steps li { padding-left: 62px; }
	.sb-front-page .sb-price-grid .sb-price-card { min-height: 205px; }
}

@media (max-width: 540px) {
	.sb-header-inner { min-height: 72px; }
	.sb-brand__logo-link,
	.sb-brand__logo { width: 42px; height: 42px; }
	.sb-brand__logo-link { flex-basis: 42px; }
	.sb-brand__copy strong { font-size: 1.02rem; }
	.sb-brand__copy small { font-size: .56rem; }
	.sb-front-page .sb-home-hero__grid { padding-top: 48px; }
	.sb-front-page .sb-home-hero h1 { font-size: clamp(1.75rem, 8.4vw, 2.5rem); }
	.sb-front-page .sb-home-hero h1 small { font-size: .58rem; }
	.sb-front-page .sb-hero-lead { font-size: 1rem; }
	.sb-front-page .sb-hero-art { min-height: 450px; }
	.sb-front-page .sb-hero-art__card { padding: 25px; }
	.sb-front-page .sb-hero-art blockquote { font-size: 1.42rem; }
	.sb-front-page .sb-sound-disc { width: 210px; height: 210px; }
	.sb-front-page .sb-orbit--one { width: 290px; height: 290px; }
	.sb-front-page .sb-orbit--two { width: 360px; height: 360px; }
	.sb-front-page .sb-orbit--three { width: 430px; height: 430px; }
	.sb-front-page .sb-float-card { padding: 12px; }
	.sb-front-page .sb-float-card--top { top: 48px; width: 190px; }
	.sb-front-page .sb-float-card--bottom { left: 4px; }
	.sb-front-page .sb-float-card strong { font-size: .88rem; }
	.sb-front-page .sb-session-art { min-height: 400px; }
	.sb-front-page .sb-session-art .sb-editable-art-note { width: 210px; height: 210px; padding-top: 35px; }
	.sb-front-page .sb-session-art h3 { top: calc(50% + 20px); }
	.sb-front-page .sb-session-art > p:last-child { top: calc(50% + 62px); }
	.sb-front-page .sb-needs-grid article { min-height: auto; }
	.sb-front-page .sb-needs-grid h3 { margin-top: 30px; }
	.sb-front-page .sb-price-grid .sb-price-card { min-height: 190px; }
}


/* ---- mobile: grids that had no collapse rule at all ---------------------------
   Found by resolving grid-template-columns for every selector in the file at 375px:
   11 of 46 grids were still multi-column. Seven of those are an icon column plus text
   (18px 1fr, 55px 1fr) and are meant to stay side by side. These four were not.

   .sb-info-grid is the one in the screenshot — two cards abreast on a phone, each 165px
   wide, 121px of it usable. The three .sb-seo-section__grid rules keep a 68-76px number
   gutter; each is a per-page selector at two classes, so the general 1fr rule at one class
   never reached them however late it sits. Matched here instead of raised everywhere. */
@media (max-width: 540px) {
	.sb-info-grid,
	.sb-page--bibliographie-musicotherapie-livres-cles .sb-info-grid { grid-template-columns: 1fr; }
	.sb-page--bibliographie-musicotherapie-livres-cles .sb-seo-section__grid,
	.sb-page--contact-musicotherapeute-nice .sb-seo-section__grid,
	.sb-page--mentions-legales-cabinet-de-musicotherapie .sb-seo-section__grid { grid-template-columns: 1fr; }
}
