/*
Theme Name: Le bon clic
Theme URI: https://valentinquetel.com/
Author: Valentin Quetel
Description: Thème WordPress sur mesure, léger et orienté SEO pour Le bon clic.
Version: 1.5.4
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: le-bon-clic
*/

:root {
  --lbc-white: #ffffff;
  --lbc-surface: #f8fafc;
  --lbc-text: #0f172a;
  --lbc-text-muted: #475569;
  --lbc-border: #e2e8f0;
  --lbc-blue: #155eef;
  --lbc-blue-hover: #1049c4;
  --lbc-blue-light: #eef4ff;
  --lbc-orange: #f97316;
  --lbc-orange-dark: #c2410c;
  --lbc-success: #15803d;
  --lbc-error: #b91c1c;
  --lbc-focus: #ea580c;
  --lbc-radius-sm: 8px;
  --lbc-radius-md: 10px;
  --lbc-radius-lg: 14px;
  --lbc-container: 1240px;
  --lbc-space-1: .25rem;
  --lbc-space-2: .5rem;
  --lbc-space-3: .75rem;
  --lbc-space-4: 1rem;
  --lbc-space-5: 1.5rem;
  --lbc-space-6: 2rem;
  --lbc-space-7: 3rem;
  --lbc-space-8: 4rem;
  --lbc-space-9: 6rem;
  --lbc-transition: 180ms ease;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--lbc-text);
  background: var(--lbc-white);
  font-family: Manrope, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 1rem;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
a { color: var(--lbc-blue); text-underline-offset: .18em; }
a:hover { color: var(--lbc-blue-hover); }
button, input, select, textarea { font: inherit; }
:focus-visible { outline: 3px solid var(--lbc-focus); outline-offset: 3px; }

.lbc-container { width: min(calc(100% - 2rem), var(--lbc-container)); margin-inline: auto; }
.lbc-section { padding-block: clamp(3.5rem, 7vw, 6rem); }
.lbc-prose { max-width: 48rem; }
.lbc-skip-link { position: fixed; left: 1rem; top: -100px; z-index: 10000; background: var(--lbc-text); color: #fff; padding: .75rem 1rem; border-radius: var(--lbc-radius-sm); }
.lbc-skip-link:focus { top: 1rem; }

.site-header { position: sticky; top: 0; z-index: 100; background: rgba(255,255,255,.96); border-bottom: 1px solid transparent; backdrop-filter: blur(10px); }
.site-header.is-scrolled { border-bottom-color: var(--lbc-border); }
.site-header__inner { min-height: 4rem; display: flex; align-items: center; gap: 1.5rem; }
.site-brand { flex: 0 0 auto; display: inline-flex; align-items: center; }
.site-brand img { width: 145px; height: auto; display: block; }
.site-nav { margin-left: auto; }
.site-nav ul { list-style: none; display: flex; align-items: center; gap: 1.5rem; margin: 0; padding: 0; }
.site-nav a { color: var(--lbc-text); text-decoration: none; font-weight: 600; }
.site-nav a:hover, .site-nav .current-menu-item > a { color: var(--lbc-blue); }
.header-actions { display: flex; align-items: center; gap: .75rem; }
.header-cta-menu { list-style: none; margin: 0; padding: 0; }
.header-cta-menu a { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: .75rem 1.1rem; border-radius: var(--lbc-radius-sm); background: var(--lbc-blue); color: #fff; font-weight: 700; text-decoration: none; }
.header-cta-menu a:hover { background: var(--lbc-blue-hover); color: #fff; }
.menu-toggle { display: none; border: 1px solid var(--lbc-border); background: var(--lbc-white); color: var(--lbc-text); border-radius: var(--lbc-radius-sm); min-width: 44px; min-height: 44px; }

.lbc-button, .wp-element-button, input[type="submit"] {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  min-height: 48px; padding: .75rem 1.1rem; border: 1px solid transparent; border-radius: var(--lbc-radius-sm);
  background: var(--lbc-blue); color: #fff; font-weight: 700; text-decoration: none; cursor: pointer; transition: background var(--lbc-transition), transform var(--lbc-transition), border-color var(--lbc-transition);
}
.lbc-button:hover, .wp-element-button:hover, input[type="submit"]:hover { background: var(--lbc-blue-hover); color: #fff; transform: translateY(-1px); }
.lbc-button--secondary { background: #fff; color: var(--lbc-blue); border-color: var(--lbc-blue); }
.lbc-button--secondary:hover { background: var(--lbc-blue-light); color: var(--lbc-blue-hover); }

.entry-header { padding-block: clamp(2.5rem, 6vw, 5rem) 2rem; }
.entry-title { margin: 0; font-size: clamp(2.4rem, 5vw, 3.5rem); line-height: 1.08; letter-spacing: -.035em; }
.entry-content { padding-bottom: 5rem; }
.entry-content > * { max-width: 48rem; margin-left: auto; margin-right: auto; }
.entry-content > .alignwide { max-width: var(--lbc-container); }
.entry-content > .alignfull { max-width: none; }

.lbc-card { border: 1px solid var(--lbc-border); border-radius: var(--lbc-radius-lg); background: #fff; padding: 1.5rem; }
.lbc-grid { display: grid; gap: 1.5rem; }
.lbc-grid--3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.lbc-grid--4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.lbc-kicker { display: inline-block; margin-bottom: .75rem; color: var(--lbc-blue); font-size: .8125rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.lbc-accent-line { width: 2.25rem; height: 3px; border-radius: 999px; background: var(--lbc-orange); }

.site-footer { border-top: 1px solid var(--lbc-border); padding-block: 3rem 1.5rem; }
.site-footer__grid { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap: 2rem; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer a { color: var(--lbc-text-muted); text-decoration: none; }
.site-footer a:hover { color: var(--lbc-blue); }
.site-footer__bottom { margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid var(--lbc-border); display: flex; gap: 1rem; justify-content: space-between; color: var(--lbc-text-muted); font-size: .875rem; }

@media (max-width: 1023px) {
  .site-nav { position: fixed; inset: 4rem 0 auto 0; background: #fff; border-bottom: 1px solid var(--lbc-border); padding: 1rem; transform: translateY(-120%); opacity: 0; pointer-events: none; transition: transform var(--lbc-transition), opacity var(--lbc-transition); }
  .site-nav.is-open { transform: translateY(0); opacity: 1; pointer-events: auto; }
  .site-nav ul { flex-direction: column; align-items: stretch; gap: .25rem; }
  .site-nav a { display: block; padding: .75rem; }
  .menu-toggle { display: inline-grid; place-items: center; }
  .header-actions .lbc-button, .header-cta-menu { display: none; }
  .lbc-grid--3, .lbc-grid--4 { grid-template-columns: 1fr 1fr; }
  .site-footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 767px) {
  .site-brand img { width: 120px; }
  .lbc-container { width: min(calc(100% - 1.5rem), var(--lbc-container)); }
  .lbc-grid--3, .lbc-grid--4, .site-footer__grid { grid-template-columns: 1fr; }
  .site-footer__bottom { flex-direction: column; }
}

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

/* Homepage — v0.2 */
.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; }
.lbc-icon { width: 1.25em; height: 1.25em; flex: 0 0 auto; }
.lbc-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.lbc-section-heading { max-width: 50rem; margin-bottom: 2.5rem; }
.lbc-section-heading--center { margin-inline: auto; text-align: center; }
.lbc-section-heading--center .lbc-accent-line { margin-inline: auto; }
.lbc-section-heading h2 { margin: 0 0 .8rem; font-size: clamp(2rem, 4vw, 2.65rem); line-height: 1.15; letter-spacing: -.03em; }
.lbc-section-action { display: flex; justify-content: center; margin-top: 2rem; }
.lbc-icon-box { display: grid; place-items: center; width: 3.5rem; height: 3.5rem; border-radius: 12px; color: var(--lbc-blue); background: var(--lbc-blue-light); }
.lbc-icon-box .lbc-icon { width: 1.75rem; height: 1.75rem; }

.home-hero { padding-top: clamp(4rem, 8vw, 7rem); }
.home-hero__grid { display: grid; grid-template-columns: minmax(0, 1.03fr) minmax(0, .97fr); gap: clamp(3rem, 7vw, 6.5rem); align-items: center; }
.home-hero h1 { max-width: 12ch; margin: 0; font-size: clamp(3rem, 6vw, 4.4rem); line-height: 1.04; letter-spacing: -.055em; }
.home-hero h1 span { color: var(--lbc-blue); }
.home-hero__lead { max-width: 40rem; margin: 1.5rem 0 1.75rem; color: var(--lbc-text-muted); font-size: clamp(1.05rem, 2vw, 1.18rem); }
.home-hero__meta { display: flex; flex-wrap: wrap; gap: .55rem 1rem; list-style: none; margin: 1.5rem 0 0; padding: 0; color: var(--lbc-text-muted); font-size: .9rem; font-weight: 600; }
.home-hero__meta li:not(:last-child)::after { content: '•'; margin-left: 1rem; color: var(--lbc-border); }

.home-dashboard { position: relative; overflow: visible; border: 1px solid var(--lbc-border); border-radius: 18px; background: #fff; box-shadow: 0 24px 60px rgba(15,23,42,.08); }
.home-dashboard__chrome { display: flex; gap: .4rem; align-items: center; height: 2.75rem; padding: 0 1rem; border-bottom: 1px solid var(--lbc-border); background: var(--lbc-surface); border-radius: 18px 18px 0 0; }
.home-dashboard__chrome i { width: .55rem; height: .55rem; border-radius: 50%; background: var(--lbc-border); }
.home-dashboard__chrome i:first-child { background: var(--lbc-orange); }
.home-dashboard__body { padding: 1.5rem; }
.home-dashboard__heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.home-dashboard__heading span { color: var(--lbc-text-muted); font-weight: 600; }
.home-dashboard__heading strong { color: var(--lbc-blue); font-size: 1.6rem; }
.home-dashboard__chart { width: 100%; height: auto; margin: 1rem 0; }
.chart-grid { fill: none; stroke: var(--lbc-border); stroke-width: 1; }
.chart-area { fill: var(--lbc-blue-light); }
.chart-line { fill: none; stroke: var(--lbc-blue); stroke-width: 6; stroke-linecap: round; stroke-linejoin: round; }
.home-dashboard__mini-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; }
.home-dashboard__mini-grid div { padding: .9rem; border: 1px solid var(--lbc-border); border-radius: 10px; }
.home-dashboard__mini-grid strong, .home-dashboard__mini-grid span { display: block; }
.home-dashboard__mini-grid strong { font-size: 1.25rem; }
.home-dashboard__mini-grid span { color: var(--lbc-text-muted); font-size: .75rem; }
.home-dashboard__cursor { position: absolute; right: -1rem; bottom: -1.4rem; display: grid; place-items: center; width: 4.7rem; height: 4.7rem; border: 4px solid #fff; border-radius: 50%; background: var(--lbc-orange); font-size: 2.4rem; transform: rotate(-12deg); box-shadow: 0 14px 28px rgba(249,115,22,.24); }

.home-proof { padding: 0 0 clamp(3.5rem, 7vw, 5.5rem); }
.home-proof__grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); border: 1px solid var(--lbc-border); border-radius: var(--lbc-radius-lg); overflow: hidden; }
.home-proof article { display: flex; align-items: center; gap: 1rem; min-height: 8rem; padding: 1.5rem; background: #fff; }
.home-proof article:not(:last-child) { border-right: 1px solid var(--lbc-border); }
.home-proof .lbc-icon { width: 2rem; height: 2rem; color: var(--lbc-blue); }
.home-proof strong, .home-proof span { display: block; }
.home-proof strong { font-size: clamp(1.5rem, 3vw, 2rem); line-height: 1.1; }
.home-proof span { margin-top: .3rem; color: var(--lbc-text-muted); font-size: .85rem; line-height: 1.35; }
.home-proof__source { margin: .75rem 0 0; color: var(--lbc-text-muted); text-align: right; font-size: .75rem; }

.home-expertises__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.expertise-card { display: flex; flex-direction: column; min-height: 19rem; }
.expertise-card h3 { margin: 1.25rem 0 .4rem; font-size: 1.4rem; }
.expertise-card p { color: var(--lbc-text-muted); }
.expertise-card > a { display: inline-flex; align-items: center; gap: .4rem; margin-top: auto; font-weight: 700; text-decoration: none; }

.home-value { padding-top: 0; }
.home-value__panel { display: grid; grid-template-columns: .85fr 2fr; gap: 3rem; align-items: center; padding: clamp(2rem, 5vw, 4rem); border-radius: 18px; background: linear-gradient(110deg, var(--lbc-blue-light), #fff 72%); border: 1px solid #d9e6ff; }
.home-value__intro h2 { margin: 0 0 .9rem; font-size: clamp(2rem, 4vw, 2.6rem); line-height: 1.1; letter-spacing: -.035em; }
.home-value__intro p { color: var(--lbc-text-muted); }
.home-value__steps { position: relative; display: grid; grid-template-columns: repeat(6, 1fr); gap: 1rem; list-style: none; margin: 0; padding: 0; }
.home-value__steps::before { content: ''; position: absolute; top: 1.5rem; left: 6%; right: 6%; border-top: 1px dashed #9bbcff; }
.home-value__steps li { position: relative; z-index: 1; text-align: center; }
.home-value__steps li > span { display: grid; place-items: center; width: 3rem; height: 3rem; margin: 0 auto .85rem; border: 1px solid #b9ceff; border-radius: 50%; background: #fff; color: var(--lbc-blue); font-weight: 800; }
.home-value__steps strong, .home-value__steps small { display: block; }
.home-value__steps small { margin-top: .35rem; color: var(--lbc-text-muted); font-size: .72rem; line-height: 1.45; }

.home-projects { background: var(--lbc-surface); }
.home-projects__grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.5rem; }
.project-card { overflow: hidden; padding: 0; }
.project-card__image { display: block; aspect-ratio: 16/10; overflow: hidden; background: linear-gradient(135deg, var(--lbc-blue-light), #fff); }
.project-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--lbc-transition); }
.project-card:hover .project-card__image img { transform: scale(1.025); }
.project-card__placeholder { display: grid; place-items: center; width: 100%; height: 100%; color: var(--lbc-blue); }
.project-card__placeholder .lbc-icon { width: 3.5rem; height: 3.5rem; }
.project-card > :not(.project-card__image) { margin-left: 1.5rem; margin-right: 1.5rem; }
.project-card__terms { margin-top: 1.4rem; margin-bottom: .35rem; color: var(--lbc-blue); font-size: .82rem; font-weight: 700; }
.project-card h3 { margin-top: 0; margin-bottom: .55rem; font-size: 1.35rem; line-height: 1.25; }
.project-card h3 a { color: var(--lbc-text); text-decoration: none; }
.project-card > p:not(.project-card__terms) { color: var(--lbc-text-muted); }
.project-card__link { display: inline-flex; align-items: center; gap: .4rem; margin-bottom: 1.5rem; font-weight: 700; text-decoration: none; }
.project-card small { display: block; padding-bottom: 1.5rem; color: var(--lbc-text-muted); }

.home-method__grid { position: relative; display: grid; grid-template-columns: repeat(5, 1fr); gap: 1.5rem; list-style: none; margin: 0; padding: 0; }
.home-method__grid::before { content: ''; position: absolute; top: 1.55rem; left: 7%; right: 7%; border-top: 2px dotted #b9ceff; }
.home-method__grid li { position: relative; text-align: center; }
.home-method__grid li > span { position: relative; z-index: 1; display: grid; place-items: center; width: 3.2rem; height: 3.2rem; margin: 0 auto 1rem; border: 2px solid #9bbcff; border-radius: 50%; background: #fff; color: var(--lbc-blue); font-weight: 800; }
.home-method__grid h3 { margin: 0 0 .45rem; }
.home-method__grid p { margin: 0; color: var(--lbc-text-muted); font-size: .9rem; }

.home-seo-offer { padding-top: 0; }
.home-seo-offer__panel { display: grid; grid-template-columns: 1.5fr .8fr; gap: 2rem; padding: clamp(2rem, 5vw, 4rem); border: 1px solid #d9e6ff; border-radius: 18px; background: linear-gradient(115deg, var(--lbc-blue-light), #fff 65%); }
.home-seo-offer h2 { margin: 0 0 .9rem; font-size: clamp(2rem, 4vw, 2.6rem); line-height: 1.1; letter-spacing: -.035em; }
.home-seo-offer p { color: var(--lbc-text-muted); }
.lbc-check-list { list-style: none; margin: 1.5rem 0 0; padding: 0; }
.lbc-check-list li { display: flex; gap: .65rem; align-items: flex-start; margin: .55rem 0; }
.lbc-check-list .lbc-icon { margin-top: .2rem; color: var(--lbc-blue); }
.home-seo-offer__price { align-self: stretch; padding: 1.75rem; border-radius: 14px; background: #fff; border: 1px solid var(--lbc-border); }
.home-seo-offer__price > span { display: block; color: var(--lbc-text-muted); font-size: .9rem; }
.home-seo-offer__price strong { display: block; margin: .2rem 0 .8rem; color: var(--lbc-text); font-size: clamp(2.1rem, 4vw, 3rem); line-height: 1.05; }
.home-seo-offer__price strong small { font-size: 1rem; color: var(--lbc-text-muted); }

.home-about__grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.home-about__visual { min-height: 31rem; }
.home-about__photo, .home-about__placeholder { width: 100%; height: 100%; min-height: 31rem; border-radius: 18px; object-fit: cover; }
.home-about__placeholder { display: grid; place-items: center; align-content: center; gap: .6rem; border: 1px solid #d9e6ff; background: linear-gradient(135deg, var(--lbc-blue-light), #fff); color: var(--lbc-blue); }
.home-about__placeholder span { font-size: clamp(4rem, 10vw, 8rem); font-weight: 800; letter-spacing: -.08em; }
.home-about__placeholder small { color: var(--lbc-text-muted); text-align: center; }
.home-about__content h2 { margin: 0 0 .9rem; font-size: clamp(2.1rem, 4vw, 3rem); line-height: 1.1; letter-spacing: -.04em; }
.home-about__content p { color: var(--lbc-text-muted); font-size: 1.05rem; }
.home-about__tags { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 1.5rem 0; padding: 0; }
.home-about__tags li { padding: .45rem .75rem; border: 1px solid var(--lbc-border); border-radius: 999px; background: var(--lbc-surface); font-size: .85rem; font-weight: 700; }

.home-testimonials { background: var(--lbc-surface); }
.home-testimonials__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
.testimonial-card { margin: 0; }
.testimonial-card blockquote { margin: 0 0 1.5rem; font-size: 1.08rem; }
.testimonial-card blockquote::before { content: '“'; display: block; color: var(--lbc-orange); font-size: 3rem; font-weight: 800; line-height: .8; }
.testimonial-card figcaption { display: flex; gap: .85rem; align-items: center; }
.testimonial-card figcaption img { width: 3rem; height: 3rem; border-radius: 50%; object-fit: cover; }
.testimonial-card figcaption strong, .testimonial-card figcaption span { display: block; }
.testimonial-card figcaption span { color: var(--lbc-text-muted); font-size: .82rem; }

.home-blog__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.article-card { overflow: hidden; padding: 0 0 1.5rem; }
.article-card__image { display: block; aspect-ratio: 16/9; overflow: hidden; }
.article-card__image img { width: 100%; height: 100%; object-fit: cover; }
.article-card > :not(.article-card__image) { margin-left: 1.5rem; margin-right: 1.5rem; }
.article-card__meta { margin-top: 1.3rem; margin-bottom: .4rem; color: var(--lbc-text-muted); font-size: .8rem; }
.article-card h3 { margin-top: 0; margin-bottom: .6rem; line-height: 1.25; }
.article-card h3 a { color: var(--lbc-text); text-decoration: none; }
.article-card > p:not(.article-card__meta) { color: var(--lbc-text-muted); }
.article-card__link { display: inline-flex; align-items: center; gap: .4rem; font-weight: 700; text-decoration: none; }

.home-final-cta { padding-top: 0; }
.home-final-cta__panel { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: clamp(2rem, 5vw, 3.5rem); border: 1px solid #d9e6ff; border-radius: 18px; background: linear-gradient(110deg, var(--lbc-blue-light), #fff 75%); }
.home-final-cta__panel > div:first-child { max-width: 45rem; }
.home-final-cta h2 { margin: 0 0 .7rem; font-size: clamp(2rem, 4vw, 2.6rem); line-height: 1.1; }
.home-final-cta p { margin-bottom: 0; color: var(--lbc-text-muted); }

@media (max-width: 1023px) {
  .home-hero__grid, .home-about__grid { grid-template-columns: 1fr; }
  .home-dashboard { max-width: 45rem; }
  .home-proof__grid { grid-template-columns: 1fr 1fr; }
  .home-proof article:nth-child(2) { border-right: 0; }
  .home-proof article:nth-child(-n+2) { border-bottom: 1px solid var(--lbc-border); }
  .home-value__panel, .home-seo-offer__panel { grid-template-columns: 1fr; }
  .home-value__steps { grid-template-columns: repeat(3, 1fr); row-gap: 2rem; }
  .home-value__steps::before { display: none; }
  .home-projects__grid, .home-blog__grid { grid-template-columns: 1fr 1fr; }
  .home-method__grid { grid-template-columns: repeat(3, 1fr); row-gap: 2rem; }
  .home-method__grid::before { display: none; }
  .home-final-cta__panel { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 767px) {
  .home-hero { padding-top: 3.5rem; }
  .home-hero h1 { max-width: none; font-size: clamp(2.55rem, 12vw, 3.35rem); }
  .home-hero__meta { gap: .45rem .7rem; }
  .home-hero__meta li:not(:last-child)::after { margin-left: .7rem; }
  .home-dashboard__cursor { right: -.25rem; width: 3.6rem; height: 3.6rem; font-size: 1.8rem; }
  .home-dashboard__mini-grid { grid-template-columns: 1fr; }
  .home-proof__grid { grid-template-columns: 1fr 1fr; }
  .home-proof article { min-height: 7.5rem; padding: 1rem; flex-direction: column; align-items: flex-start; }
  .home-proof__source { text-align: left; }
  .home-expertises__grid, .home-projects__grid, .home-blog__grid, .home-testimonials__grid { grid-template-columns: 1fr; }
  .expertise-card { min-height: 0; }
  .home-value__panel, .home-seo-offer__panel { padding: 1.5rem; }
  .home-value__steps { grid-template-columns: 1fr; gap: 0; text-align: left; }
  .home-value__steps li { display: grid; grid-template-columns: 3rem 1fr; column-gap: 1rem; padding: .75rem 0; text-align: left; }
  .home-value__steps li > span { grid-row: 1 / span 2; margin: 0; }
  .home-value__steps small { margin-top: .2rem; }
  .home-method__grid { grid-template-columns: 1fr; }
  .home-method__grid li { display: grid; grid-template-columns: 3.2rem 1fr; column-gap: 1rem; text-align: left; }
  .home-method__grid li > span { grid-row: 1 / span 2; margin: 0; }
  .home-method__grid h3 { align-self: end; }
  .home-method__grid p { align-self: start; }
  .home-about__visual { min-height: 23rem; }
  .home-about__photo, .home-about__placeholder { min-height: 23rem; }
  .home-final-cta__panel .lbc-actions, .home-final-cta__panel .lbc-button { width: 100%; }
}

/* Single realisation — v0.3 */
.realisation-page { overflow: clip; }
.realisation-hero { padding-top: clamp(2rem, 5vw, 4rem); padding-bottom: clamp(3.5rem, 7vw, 5.5rem); background: linear-gradient(180deg, #fff 0%, #fff 62%, var(--lbc-surface) 100%); }
.realisation-breadcrumb { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; margin-bottom: clamp(2rem, 4vw, 3.5rem); color: var(--lbc-text-muted); font-size: .86rem; }
.realisation-breadcrumb a { color: var(--lbc-text-muted); text-decoration: none; }
.realisation-breadcrumb a:hover { color: var(--lbc-blue); }
.realisation-breadcrumb span[aria-hidden="true"] { color: #94a3b8; }
.realisation-breadcrumb [aria-current="page"] { max-width: 34rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.realisation-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .95fr); gap: clamp(2.5rem, 7vw, 6rem); align-items: center; }
.realisation-hero__content h1 { max-width: 14ch; margin: .7rem 0 1.2rem; font-size: clamp(2.8rem, 5.7vw, 4.4rem); line-height: 1.04; letter-spacing: -.052em; }
.realisation-hero__lead { max-width: 42rem; margin: 0 0 1.6rem; color: var(--lbc-text-muted); font-size: clamp(1.05rem, 1.7vw, 1.18rem); }
.realisation-hero__actions { margin-top: 1.6rem; }
.realisation-tags { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 0 0 .65rem; padding: 0; }
.realisation-tags a, .realisation-tags span { display: inline-flex; align-items: center; min-height: 2rem; padding: .28rem .7rem; border: 1px solid #cbdcff; border-radius: 999px; background: var(--lbc-blue-light); color: var(--lbc-blue); font-size: .78rem; font-weight: 800; line-height: 1; text-decoration: none; }
.realisation-tags a:hover { border-color: var(--lbc-blue); background: #fff; }
.realisation-hero__visual { position: relative; min-width: 0; }
.realisation-hero__visual::before { content: ''; position: absolute; z-index: 0; width: 8rem; height: 8rem; right: -2.2rem; top: -2.2rem; border-radius: 50%; background: var(--lbc-orange); opacity: .09; }
.realisation-hero__image, .realisation-hero__placeholder { position: relative; z-index: 1; display: block; width: 100%; aspect-ratio: 16 / 10; border: 1px solid var(--lbc-border); border-radius: 18px; background: #fff; box-shadow: 0 24px 70px rgba(15, 23, 42, .10); }
.realisation-hero__image { object-fit: cover; }
.realisation-hero__placeholder { display: grid; place-items: center; align-content: center; gap: 1rem; padding: 2rem; color: var(--lbc-blue); background: linear-gradient(135deg, var(--lbc-blue-light), #fff); text-align: center; }
.realisation-hero__placeholder .lbc-icon { width: 4.25rem; height: 4.25rem; }
.realisation-hero__placeholder strong { max-width: 18rem; color: var(--lbc-text); font-size: 1.35rem; }
.realisation-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: clamp(3rem, 7vw, 5rem) 0 0; border: 1px solid var(--lbc-border); border-radius: 16px; background: #fff; box-shadow: 0 14px 36px rgba(15, 23, 42, .045); overflow: hidden; }
.realisation-metric { min-width: 0; padding: 1.5rem; text-align: center; }
.realisation-metric + .realisation-metric { border-left: 1px solid var(--lbc-border); }
.realisation-metric dd, .realisation-metric dt { margin: 0; }
.realisation-metric dd { color: var(--lbc-blue); font-size: clamp(1.85rem, 4vw, 2.55rem); font-weight: 800; line-height: 1.1; letter-spacing: -.035em; }
.realisation-metric dt { max-width: 15rem; margin: .45rem auto 0; color: var(--lbc-text-muted); font-size: .85rem; line-height: 1.4; }

.realisation-body { background: #fff; }
.realisation-layout { display: grid; grid-template-columns: minmax(0, 1fr) 19rem; gap: clamp(3rem, 7vw, 6rem); align-items: start; }
.realisation-main { min-width: 0; }
.realisation-content { max-width: 49rem; }
.realisation-content > :first-child { margin-top: 0; }
.realisation-content h2 { margin: 3.5rem 0 1rem; font-size: clamp(1.9rem, 3.4vw, 2.55rem); line-height: 1.16; letter-spacing: -.03em; }
.realisation-content h2:first-child { margin-top: 0; }
.realisation-content h3 { margin: 2.2rem 0 .8rem; font-size: clamp(1.35rem, 2.4vw, 1.7rem); line-height: 1.25; letter-spacing: -.018em; }
.realisation-content h4 { margin: 1.8rem 0 .65rem; font-size: 1.15rem; }
.realisation-content p, .realisation-content li { color: #334155; }
.realisation-content p { margin: 0 0 1.25rem; }
.realisation-content ul, .realisation-content ol { margin: 1.25rem 0 1.75rem; padding-left: 1.35rem; }
.realisation-content li + li { margin-top: .5rem; }
.realisation-content strong { color: var(--lbc-text); }
.realisation-content a { font-weight: 650; }
.realisation-content blockquote { margin: 2rem 0; padding: 1.35rem 1.5rem; border-left: 4px solid var(--lbc-orange); border-radius: 0 var(--lbc-radius-md) var(--lbc-radius-md) 0; background: var(--lbc-surface); color: var(--lbc-text); }
.realisation-content blockquote p:last-child { margin-bottom: 0; }
.realisation-content figure { margin: 2rem 0; }
.realisation-content img { border-radius: 12px; }
.realisation-content figcaption { margin-top: .5rem; color: var(--lbc-text-muted); font-size: .8rem; text-align: center; }
.realisation-content .wp-block-table { overflow-x: auto; }
.realisation-content table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.realisation-content th, .realisation-content td { padding: .8rem .9rem; border: 1px solid var(--lbc-border); text-align: left; vertical-align: top; }
.realisation-content th { background: var(--lbc-surface); }
.realisation-content .wp-block-group.has-background { padding: 1.5rem; border-radius: var(--lbc-radius-lg); }
.realisation-content > .alignwide { width: min(64rem, calc(100vw - 3rem)); max-width: 64rem; }
.realisation-content > .alignfull { position: relative; left: 50%; width: 100vw; max-width: none; margin-left: -50vw; }

.realisation-sidebar { position: sticky; top: 6.5rem; }
.realisation-sidebar__card { padding: 1.6rem; border: 1px solid var(--lbc-border); border-radius: 16px; background: var(--lbc-surface); }
.realisation-sidebar__card h2 { margin: 0 0 1.2rem; font-size: 1.45rem; line-height: 1.2; }
.realisation-facts { margin: 0; }
.realisation-facts > div { padding: 1rem 0; border-top: 1px solid var(--lbc-border); }
.realisation-facts > div:first-child { padding-top: 0; border-top: 0; }
.realisation-facts dt, .realisation-facts dd { margin: 0; }
.realisation-facts dt { margin-bottom: .25rem; color: var(--lbc-text-muted); font-size: .75rem; font-weight: 750; letter-spacing: .035em; text-transform: uppercase; }
.realisation-facts dd { color: var(--lbc-text); font-size: .92rem; font-weight: 700; line-height: 1.45; overflow-wrap: anywhere; }
.realisation-sidebar__link { display: inline-flex; align-items: center; gap: .45rem; margin-top: .8rem; color: var(--lbc-blue); font-weight: 800; text-decoration: none; }

.realisation-testimonials { background: var(--lbc-surface); }
.realisation-testimonials__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; max-width: 62rem; margin-inline: auto; }
.realisation-testimonial { margin: 0; padding: clamp(1.5rem, 3vw, 2rem); }
.realisation-testimonial blockquote { margin: 0 0 1.6rem; color: var(--lbc-text); font-size: clamp(1rem, 1.7vw, 1.12rem); }
.realisation-testimonial blockquote::before { content: '“'; display: block; height: 2.2rem; color: var(--lbc-orange); font-size: 3.6rem; font-weight: 800; line-height: .9; }
.realisation-testimonial blockquote p:last-child { margin-bottom: 0; }
.realisation-testimonial figcaption { display: flex; gap: .85rem; align-items: center; }
.realisation-testimonial figcaption img { width: 3rem; height: 3rem; border-radius: 50%; object-fit: cover; }
.realisation-testimonial figcaption strong, .realisation-testimonial figcaption span, .realisation-testimonial figcaption a { display: block; }
.realisation-testimonial figcaption span { margin-top: .1rem; color: var(--lbc-text-muted); font-size: .82rem; }
.realisation-testimonial figcaption a { margin-top: .25rem; font-size: .78rem; font-weight: 700; }

.realisation-navigation { padding-block: clamp(2rem, 5vw, 3.5rem); border-top: 1px solid var(--lbc-border); }
.realisation-navigation__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.realisation-navigation__item { display: flex; min-height: 7rem; flex-direction: column; justify-content: center; padding: 1.3rem 1.5rem; border: 1px solid var(--lbc-border); border-radius: 14px; background: #fff; color: var(--lbc-text); text-decoration: none; transition: border-color var(--lbc-transition), transform var(--lbc-transition), background var(--lbc-transition); }
.realisation-navigation__item:hover { border-color: #aac5ff; background: var(--lbc-blue-light); color: var(--lbc-text); transform: translateY(-1px); }
.realisation-navigation__item span { margin-bottom: .35rem; color: var(--lbc-blue); font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .035em; }
.realisation-navigation__item strong { line-height: 1.3; }
.realisation-navigation__item--next { text-align: right; align-items: flex-end; }

.realisation-cta { padding-top: 0; }
.realisation-cta__panel { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: clamp(2rem, 5vw, 3.5rem); border: 1px solid #d9e6ff; border-radius: 18px; background: linear-gradient(110deg, var(--lbc-blue-light), #fff 75%); }
.realisation-cta__panel > div:first-child { max-width: 46rem; }
.realisation-cta h2 { margin: 0 0 .7rem; font-size: clamp(2rem, 4vw, 2.7rem); line-height: 1.1; letter-spacing: -.035em; }
.realisation-cta p { margin: 0; color: var(--lbc-text-muted); }

@media (max-width: 1023px) {
  .realisation-hero__grid { grid-template-columns: 1fr; }
  .realisation-hero__content h1 { max-width: 16ch; }
  .realisation-hero__visual { max-width: 48rem; }
  .realisation-metrics { grid-template-columns: repeat(2, 1fr); }
  .realisation-metric:nth-child(even) { border-left: 1px solid var(--lbc-border); }
  .realisation-metric:nth-child(odd) { border-left: 0; }
  .realisation-metric:nth-child(n+3) { border-top: 1px solid var(--lbc-border); }
  .realisation-layout { grid-template-columns: 1fr; }
  .realisation-main, .realisation-content { max-width: 100%; }
  .realisation-sidebar { position: static; }
  .realisation-sidebar__card { max-width: 42rem; }
  .realisation-cta__panel { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 767px) {
  .realisation-hero { padding-top: 1.5rem; }
  .realisation-breadcrumb [aria-current="page"] { max-width: 12rem; }
  .realisation-hero__content h1 { max-width: none; font-size: clamp(2.45rem, 11vw, 3.25rem); }
  .realisation-hero__actions, .realisation-hero__actions .lbc-button { width: 100%; }
  .realisation-metrics { grid-template-columns: 1fr 1fr; }
  .realisation-metric { padding: 1.15rem .75rem; }
  .realisation-metric dd { font-size: clamp(1.55rem, 8vw, 2rem); }
  .realisation-metric dt { font-size: .75rem; }
  .realisation-content h2 { margin-top: 2.7rem; }
  .realisation-content > .alignwide { width: 100%; }
  .realisation-content > .alignfull { left: auto; width: 100%; margin-left: 0; }
  .realisation-testimonials__grid, .realisation-navigation__grid { grid-template-columns: 1fr; }
  .realisation-navigation__grid > span:empty { display: none; }
  .realisation-navigation__item--next { text-align: left; align-items: flex-start; }
  .realisation-cta__panel .lbc-actions, .realisation-cta__panel .lbc-button { width: 100%; }
}
.realisation-metric { display: flex; flex-direction: column; }
.realisation-metric dd { order: 1; }
.realisation-metric dt { order: 2; }

/* ==========================================================
   Service template — v0.4
   ========================================================== */
.service-page { overflow: clip; }
.service-hero { position: relative; padding-top: clamp(2rem, 5vw, 4rem); background: linear-gradient(180deg, #fff 0%, #fff 72%, var(--lbc-surface) 100%); }
.service-breadcrumb { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; margin-bottom: clamp(2rem, 5vw, 3.25rem); color: var(--lbc-text-muted); font-size: .82rem; }
.service-breadcrumb a { color: var(--lbc-text-muted); text-decoration: none; }
.service-breadcrumb a:hover { color: var(--lbc-blue); }
.service-breadcrumb [aria-current="page"] { color: var(--lbc-text); font-weight: 700; }
.service-hero__grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(22rem, .92fr); gap: clamp(3rem, 7vw, 6.5rem); align-items: center; }
.service-hero__content { min-width: 0; }
.service-hero__content h1 { max-width: 13ch; margin: .65rem 0 1.25rem; font-size: clamp(2.85rem, 6vw, 4.7rem); line-height: 1.03; letter-spacing: -.055em; }
.service-hero__lead { max-width: 43rem; margin: 0 0 1.2rem; color: var(--lbc-text-muted); font-size: clamp(1.05rem, 1.8vw, 1.2rem); }
.service-hero__price { display: inline-flex; align-items: center; min-height: 2.3rem; margin: 0 0 .5rem; padding: .35rem .75rem; border-radius: 999px; background: var(--lbc-blue-light); color: var(--lbc-blue); font-size: .9rem; font-weight: 800; }
.service-hero__actions { margin-top: 1.25rem; }
.service-highlights { display: grid; gap: .6rem; margin: 1.75rem 0 0; padding: 0; list-style: none; }
.service-highlights li { display: flex; gap: .65rem; align-items: flex-start; color: #334155; font-size: .92rem; }
.service-highlights .lbc-icon { width: 1.15rem; height: 1.15rem; flex: 0 0 auto; margin-top: .18rem; color: var(--lbc-blue); }
.service-hero__visual { position: relative; min-width: 0; }
.service-hero__visual::after { content: ''; position: absolute; z-index: 0; width: 7rem; height: 7rem; right: -1.6rem; bottom: -1.4rem; border-radius: 50%; background: var(--lbc-orange); opacity: .1; }
.service-hero__image, .service-hero__placeholder { position: relative; z-index: 1; display: block; width: 100%; aspect-ratio: 16 / 11; border: 1px solid var(--lbc-border); border-radius: 18px; background: #fff; box-shadow: 0 24px 70px rgba(15, 23, 42, .09); }
.service-hero__image { object-fit: cover; }
.service-hero__placeholder { overflow: hidden; background: linear-gradient(145deg, var(--lbc-blue-light), #fff 65%); }
.service-hero__placeholder::before { content: ''; position: absolute; inset: 2rem; border: 1px dashed #b7caf7; border-radius: 14px; }
.service-hero__placeholder-icon { position: absolute; z-index: 2; display: grid; width: 5.2rem; height: 5.2rem; place-items: center; left: 50%; top: 36%; border-radius: 50%; background: var(--lbc-blue); color: #fff; transform: translate(-50%, -50%); box-shadow: 0 18px 38px rgba(21, 94, 239, .25); }
.service-hero__placeholder-icon .lbc-icon { width: 2.4rem; height: 2.4rem; }
.service-hero__placeholder-card { position: absolute; z-index: 2; display: grid; gap: .45rem; width: 44%; padding: 1rem; border: 1px solid var(--lbc-border); border-radius: 12px; background: rgba(255,255,255,.96); box-shadow: 0 12px 28px rgba(15,23,42,.07); }
.service-hero__placeholder-card span { display: block; height: .5rem; border-radius: 999px; background: #d8e5ff; }
.service-hero__placeholder-card span:first-child { width: 62%; background: var(--lbc-blue); opacity: .7; }
.service-hero__placeholder-card--one { left: 8%; bottom: 12%; }
.service-hero__placeholder-card--two { right: 7%; top: 11%; }

.service-body { background: #fff; }
.service-layout { display: grid; grid-template-columns: minmax(0, 1fr) 19rem; gap: clamp(3rem, 7vw, 6rem); align-items: start; }
.service-content { min-width: 0; max-width: 49rem; }
.service-content > :first-child { margin-top: 0; }
.service-content h2 { margin: 3.5rem 0 1rem; font-size: clamp(1.9rem, 3.4vw, 2.55rem); line-height: 1.16; letter-spacing: -.03em; }
.service-content h2:first-child { margin-top: 0; }
.service-content h3 { margin: 2.1rem 0 .75rem; font-size: clamp(1.28rem, 2.2vw, 1.65rem); line-height: 1.25; letter-spacing: -.018em; }
.service-content p, .service-content li { color: #334155; }
.service-content p { margin: 0 0 1.2rem; }
.service-content ul, .service-content ol { margin: 1.2rem 0 1.75rem; padding-left: 1.35rem; }
.service-content li + li { margin-top: .5rem; }
.service-content strong { color: var(--lbc-text); }
.service-content a { font-weight: 700; }
.service-content .wp-block-columns { gap: 1.15rem; margin-block: 1.5rem 2rem; }
.service-content .wp-block-column { padding: 1.25rem; border: 1px solid var(--lbc-border); border-radius: 14px; background: #fff; }
.service-content .wp-block-column h3 { margin-top: 0; }
.service-content .wp-block-details { margin: .75rem 0; border: 1px solid var(--lbc-border); border-radius: 12px; background: #fff; }
.service-content .wp-block-details summary { padding: 1rem 1.1rem; color: var(--lbc-text); font-weight: 750; cursor: pointer; }
.service-content .wp-block-details > :not(summary) { margin-left: 1.1rem; margin-right: 1.1rem; }
.service-content .wp-block-details > :last-child { margin-bottom: 1.1rem; }
.service-content blockquote { margin: 2rem 0; padding: 1.25rem 1.5rem; border-left: 4px solid var(--lbc-orange); border-radius: 0 12px 12px 0; background: var(--lbc-surface); }
.service-content figure { margin: 2rem 0; }
.service-content img { border-radius: 12px; }
.service-content .wp-block-table { overflow-x: auto; }
.service-content table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.service-content th, .service-content td { padding: .8rem .9rem; border: 1px solid var(--lbc-border); text-align: left; vertical-align: top; }
.service-content th { background: var(--lbc-surface); }


/* Service card groups: if Gutenberg contains more than three generic cards,
   the renderer adds .lbc-service-stack so every card gets a readable full row. */
.service-content .wp-block-columns.lbc-service-stack {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin-block: 1.5rem 2.25rem;
}
.service-content .lbc-service-stack > .wp-block-column {
  width: 100%;
  min-width: 0;
  padding: 1.4rem 1.5rem;
}
.service-content .lbc-service-stack > .wp-block-column > h3:first-child {
  margin-top: 0;
}
.service-content .lbc-service-stack > .wp-block-column > :last-child {
  margin-bottom: 0;
}

/* Service process: one full-width horizontal card per step. */
.service-content .wp-block-columns.lbc-service-process {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin-block: 1.5rem 2.25rem;
}
.service-content .lbc-service-process > .wp-block-column {
  display: grid;
  grid-template-columns: minmax(12rem, .32fr) minmax(0, 1fr);
  column-gap: clamp(1.25rem, 4vw, 2.5rem);
  row-gap: .65rem;
  width: 100%;
  min-width: 0;
  padding: 1.4rem 1.5rem;
  border: 1px solid var(--lbc-border);
  border-radius: 14px;
  background: #fff;
}
.service-content .lbc-service-process > .wp-block-column > h3 {
  grid-column: 1;
  margin: 0;
  font-size: clamp(1.12rem, 2vw, 1.35rem);
  line-height: 1.25;
  overflow-wrap: normal;
  word-break: normal;
}
.service-content .lbc-service-process > .wp-block-column > :not(h3) {
  grid-column: 2;
  min-width: 0;
  margin-top: 0;
}
.service-content .lbc-service-process > .wp-block-column > :last-child {
  margin-bottom: 0;
}

.service-sidebar { position: sticky; top: 6.5rem; }
.service-sidebar__card { padding: 1.5rem; border: 1px solid var(--lbc-border); border-radius: 16px; background: var(--lbc-surface); }
.service-sidebar__card h2 { margin: .2rem 0 1.2rem; font-size: 1.35rem; line-height: 1.22; }
.service-facts { margin: 0 0 1.2rem; }
.service-facts > div { padding: .9rem 0; border-top: 1px solid var(--lbc-border); }
.service-facts > div:first-child { padding-top: 0; border-top: 0; }
.service-facts dt, .service-facts dd { margin: 0; }
.service-facts dt { margin-bottom: .2rem; color: var(--lbc-text-muted); font-size: .73rem; font-weight: 750; letter-spacing: .035em; text-transform: uppercase; }
.service-facts dd { color: var(--lbc-text); font-size: .9rem; font-weight: 750; line-height: 1.4; }
.lbc-button--block { width: 100%; justify-content: center; text-align: center; }

.service-cta { padding-top: 0; }
.service-cta__panel { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: clamp(2rem, 5vw, 3.4rem); border: 1px solid #d9e6ff; border-radius: 18px; background: linear-gradient(110deg, var(--lbc-blue-light), #fff 75%); }
.service-cta__panel > div:first-child { max-width: 46rem; }
.service-cta h2 { margin: .25rem 0 .75rem; font-size: clamp(2rem, 4vw, 2.7rem); line-height: 1.1; letter-spacing: -.035em; }
.service-cta p { margin: 0; color: var(--lbc-text-muted); }

@media (max-width: 1023px) {
  .service-hero__grid { grid-template-columns: 1fr; }
  .service-hero__content h1 { max-width: 16ch; }
  .service-hero__visual { max-width: 48rem; }
  .service-layout { grid-template-columns: 1fr; }
  .service-content { max-width: 100%; }
  .service-sidebar { position: static; }
  .service-sidebar__card { max-width: 42rem; }
  .service-cta__panel { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 767px) {
  .service-hero { padding-top: 1.5rem; }
  .service-breadcrumb [aria-current="page"] { max-width: 12rem; }
  .service-hero__content h1 { max-width: none; font-size: clamp(2.45rem, 11vw, 3.25rem); }
  .service-hero__actions, .service-hero__actions .lbc-button { width: 100%; }
  .service-hero__placeholder { aspect-ratio: 4 / 3; }
  .service-content h2 { margin-top: 2.7rem; }
  .service-content .wp-block-columns { display: grid; grid-template-columns: 1fr; }
  .service-content .lbc-service-process > .wp-block-column {
    display: block;
    padding: 1.2rem;
  }
  .service-content .lbc-service-process > .wp-block-column > h3 {
    margin-bottom: .65rem;
  }
  .service-cta__panel .lbc-actions, .service-cta__panel .lbc-button { width: 100%; }
}

/* ==========================================================
   Hub Services template
   ========================================================== */
.hub-page { overflow: clip; }
.hub-hero { position: relative; padding-top: clamp(2rem, 5vw, 4rem); background: #fff; }
.hub-hero__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(22rem, .95fr); gap: clamp(3rem, 7vw, 6.5rem); align-items: center; }
.hub-hero__content h1 { max-width: 12ch; margin: .65rem 0 1.25rem; font-size: clamp(3rem, 6.5vw, 5rem); line-height: 1.01; letter-spacing: -.06em; }
.hub-hero__lead { max-width: 44rem; margin: 0; color: var(--lbc-text-muted); font-size: clamp(1.08rem, 1.8vw, 1.22rem); }
.hub-hero__actions { margin-top: 1.7rem; }
.hub-hero__visual { position: relative; }
.hub-hero__image, .hub-hero__placeholder { display: block; width: 100%; aspect-ratio: 16 / 11; border: 1px solid var(--lbc-border); border-radius: 22px; background: #fff; box-shadow: 0 24px 70px rgba(15, 23, 42, .08); }
.hub-hero__image { object-fit: cover; }
.hub-hero__placeholder { position: relative; overflow: hidden; background: radial-gradient(circle at 50% 50%, #fff 0 21%, var(--lbc-blue-light) 22% 23%, #fff 24% 100%); }
.hub-hero__icon { position: absolute; z-index: 2; left: 50%; top: 50%; display: grid; width: 6rem; height: 6rem; place-items: center; border-radius: 50%; background: var(--lbc-blue); color: #fff; transform: translate(-50%, -50%); box-shadow: 0 20px 40px rgba(21, 94, 239, .22); }
.hub-hero__icon .lbc-icon { width: 2.8rem; height: 2.8rem; }
.hub-hero__orbit { position: absolute; left: 50%; top: 50%; border: 1px dashed #b9cdf9; border-radius: 50%; transform: translate(-50%, -50%); }
.hub-hero__orbit--one { width: 55%; aspect-ratio: 1; }
.hub-hero__orbit--two { width: 82%; aspect-ratio: 1; }
.hub-hero__dot { position: absolute; width: .75rem; height: .75rem; border-radius: 50%; background: var(--lbc-orange); }
.hub-hero__dot--one { left: 19%; top: 27%; }
.hub-hero__dot--two { right: 16%; top: 44%; background: var(--lbc-blue); }
.hub-hero__dot--three { left: 39%; bottom: 12%; width: .55rem; height: .55rem; background: var(--lbc-blue); }

.hub-services { background: var(--lbc-surface); }
.hub-section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, .65fr); gap: clamp(2rem, 6vw, 5rem); align-items: end; margin-bottom: 2.25rem; }
.hub-section-heading h2 { max-width: 17ch; margin: .3rem 0 0; font-size: clamp(2rem, 4.2vw, 3.2rem); line-height: 1.08; letter-spacing: -.04em; }
.hub-section-heading > p { max-width: 34rem; margin: 0; color: var(--lbc-text-muted); }
.hub-services__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.hub-service-card { display: flex; min-width: 0; min-height: 100%; flex-direction: column; padding: 1.55rem; border: 1px solid var(--lbc-border); border-radius: 16px; background: #fff; transition: border-color var(--lbc-transition), transform var(--lbc-transition), box-shadow var(--lbc-transition); }
.hub-service-card:hover { border-color: #b9cdf9; transform: translateY(-2px); box-shadow: 0 16px 35px rgba(15, 23, 42, .06); }
.hub-service-card__top { display: flex; min-height: 2.5rem; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.hub-service-card__icon { display: grid; width: 2.5rem; height: 2.5rem; flex: 0 0 auto; place-items: center; border-radius: 10px; background: var(--lbc-blue-light); color: var(--lbc-blue); }
.hub-service-card__icon .lbc-icon { width: 1.35rem; height: 1.35rem; }
.hub-service-card__price { max-width: 12rem; padding: .3rem .6rem; border-radius: 999px; background: #fff7ed; color: var(--lbc-orange-dark); font-size: .74rem; font-weight: 800; line-height: 1.35; text-align: right; }
.hub-service-card h3 { margin: 1.25rem 0 .65rem; font-size: 1.35rem; line-height: 1.22; letter-spacing: -.02em; }
.hub-service-card h3 a { color: var(--lbc-text); text-decoration: none; }
.hub-service-card h3 a:hover { color: var(--lbc-blue); }
.hub-service-card > p { margin: 0 0 1.35rem; color: var(--lbc-text-muted); font-size: .94rem; }
.hub-service-card__footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--lbc-border); }
.hub-service-card__footer > span { color: var(--lbc-text-muted); font-size: .74rem; font-weight: 650; }
.hub-service-card__link { display: inline-flex; align-items: center; gap: .35rem; font-size: .85rem; font-weight: 800; text-decoration: none; white-space: nowrap; }
.hub-service-card__link .lbc-icon { width: 1rem; height: 1rem; }
.hub-services__empty { padding: 1.5rem; border: 1px dashed #b9cdf9; border-radius: 14px; background: #fff; color: var(--lbc-text-muted); }
.hub-services__empty p { margin: 0; }

.hub-body { background: #fff; }
.hub-content { max-width: 62rem; }
/* Hub Gutenberg content must share one left edge.
   The generic .entry-content rule centers direct children at 48rem; on hub pages
   that created a visible indentation for benefit/process cards. */
.hub-content.entry-content > * {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}
.hub-content .lbc-hub-benefits,
.hub-content .lbc-hub-process {
  width: 100%;
}
.hub-content > :first-child { margin-top: 0; }
.hub-content h2 { margin: 4rem 0 1rem; font-size: clamp(2rem, 4vw, 2.9rem); line-height: 1.12; letter-spacing: -.035em; }
.hub-content h2:first-child { margin-top: 0; }
.hub-content h3 { margin: 0 0 .65rem; font-size: 1.3rem; line-height: 1.25; }
.hub-content p, .hub-content li { color: #334155; }
.hub-content p { margin: 0 0 1.2rem; }
.hub-content .wp-block-columns { gap: 1.15rem; margin-block: 1.5rem 2.25rem; }
.hub-content .lbc-hub-benefits > .wp-block-column { padding: 1.4rem; border: 1px solid var(--lbc-border); border-radius: 14px; background: #fff; }
.hub-content .lbc-hub-benefits > .wp-block-column > :last-child { margin-bottom: 0; }
.hub-content .wp-block-columns.lbc-hub-process { display: grid; grid-template-columns: 1fr; gap: 1rem; }
.hub-content .lbc-hub-process > .wp-block-column { display: grid; grid-template-columns: minmax(13rem, .32fr) minmax(0, 1fr); gap: .75rem 2rem; padding: 1.35rem 1.5rem; border: 1px solid var(--lbc-border); border-radius: 14px; background: #fff; }
.hub-content .lbc-hub-process > .wp-block-column > h3 { grid-column: 1; margin: 0; }
.hub-content .lbc-hub-process > .wp-block-column > :not(h3) { grid-column: 2; min-width: 0; margin-top: 0; }
.hub-content .lbc-hub-process > .wp-block-column > :last-child { margin-bottom: 0; }
.hub-content .wp-block-details { margin: .75rem 0; border: 1px solid var(--lbc-border); border-radius: 12px; background: #fff; }
.hub-content .wp-block-details summary { padding: 1rem 1.1rem; color: var(--lbc-text); font-weight: 750; cursor: pointer; }
.hub-content .wp-block-details > :not(summary) { margin-left: 1.1rem; margin-right: 1.1rem; }
.hub-content .wp-block-details > :last-child { margin-bottom: 1.1rem; }

.hub-proof { background: var(--lbc-surface); }
.hub-proof__panel { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(20rem, .95fr); gap: clamp(2.5rem, 7vw, 5rem); align-items: center; padding: clamp(1.5rem, 4vw, 2.5rem); border: 1px solid var(--lbc-border); border-radius: 20px; background: #fff; }
.hub-proof__content h2 { margin: .3rem 0 .8rem; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.08; letter-spacing: -.04em; }
.hub-proof__content > p { max-width: 42rem; color: var(--lbc-text-muted); }
.hub-proof__metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin: 1.5rem 0; }
.hub-proof__metrics > div { padding: .9rem; border: 1px solid #d9e6ff; border-radius: 12px; background: var(--lbc-blue-light); }
.hub-proof__metrics dt, .hub-proof__metrics dd { margin: 0; }
.hub-proof__metrics dd { color: var(--lbc-blue); font-size: clamp(1.35rem, 3vw, 2rem); font-weight: 800; line-height: 1; }
.hub-proof__metrics dt { margin-top: .4rem; color: var(--lbc-text-muted); font-size: .72rem; line-height: 1.35; }
.hub-proof__visual img, .hub-proof__placeholder { display: block; width: 100%; aspect-ratio: 16 / 10; border-radius: 16px; object-fit: cover; }
.hub-proof__placeholder { display: grid; place-items: center; background: linear-gradient(145deg, var(--lbc-blue-light), #fff); color: var(--lbc-blue); }
.hub-proof__placeholder .lbc-icon { width: 4rem; height: 4rem; }

.hub-offer { padding-top: 0; background: var(--lbc-surface); }
.hub-offer__panel { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: clamp(2rem, 5vw, 3rem); border-radius: 18px; background: var(--lbc-blue); color: #fff; }
.hub-offer__panel .lbc-eyebrow { color: #dbeafe; }
.hub-offer__panel h2 { margin: .25rem 0 .65rem; color: #fff; font-size: clamp(2rem, 4vw, 2.8rem); line-height: 1.08; letter-spacing: -.035em; }
.hub-offer__panel p { max-width: 45rem; margin: 0; color: #dbeafe; }
.hub-offer__action { display: grid; flex: 0 0 auto; gap: .8rem; min-width: 15rem; text-align: right; }
.hub-offer__action strong { font-size: 1.1rem; }
.hub-offer__action .lbc-button { background: #fff; color: var(--lbc-blue); }
.hub-offer__action .lbc-button:hover { background: var(--lbc-blue-light); color: var(--lbc-blue-hover); }
.hub-cta { background: #fff; }

@media (max-width: 1023px) {
  .hub-hero__grid, .hub-proof__panel { grid-template-columns: 1fr; }
  .hub-hero__visual { max-width: 48rem; }
  .hub-section-heading { grid-template-columns: 1fr; gap: 1rem; }
  .hub-services__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hub-proof__visual { max-width: 44rem; }
  .hub-offer__panel { align-items: flex-start; flex-direction: column; }
  .hub-offer__action { min-width: 0; text-align: left; }
}

@media (max-width: 767px) {
  .hub-hero { padding-top: 1.5rem; }
  .hub-hero__content h1 { max-width: none; font-size: clamp(2.55rem, 12vw, 3.6rem); }
  .hub-hero__actions, .hub-hero__actions .lbc-button { width: 100%; }
  .hub-hero__placeholder { aspect-ratio: 4 / 3; }
  .hub-services__grid { grid-template-columns: 1fr; }
  .hub-service-card__footer { align-items: flex-start; flex-direction: column; }
  .hub-content h2 { margin-top: 3rem; }
  .hub-content .lbc-hub-benefits { display: grid; grid-template-columns: 1fr; }
  .hub-content .lbc-hub-process > .wp-block-column { display: block; padding: 1.2rem; }
  .hub-content .lbc-hub-process > .wp-block-column > h3 { margin-bottom: .65rem; }
  .hub-proof__metrics { grid-template-columns: 1fr; }
  .hub-offer__action, .hub-offer__action .lbc-button { width: 100%; }
}



/* ========== ABOUT PAGE — v0.6 ========== */
.about-hero { padding-top: 2.25rem; background: linear-gradient(180deg, #fff 0%, #fff 70%, var(--lbc-surface) 100%); }
.about-hero__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(22rem, .75fr); gap: clamp(3rem, 8vw, 7rem); align-items: center; margin-top: 2.5rem; }
.about-hero__content h1 { max-width: 11ch; margin: .35rem 0 1.1rem; font-size: clamp(3.15rem, 6vw, 5.5rem); line-height: .98; letter-spacing: -.055em; }
.about-hero__lead { max-width: 45rem; margin: 0; color: var(--lbc-text-muted); font-size: clamp(1.1rem, 1.8vw, 1.25rem); }
.about-hero__role { display: inline-flex; margin: 1.25rem 0 0; padding: .45rem .75rem; border: 1px solid #d9e6ff; border-radius: 999px; background: var(--lbc-blue-light); color: var(--lbc-blue); font-size: .85rem; font-weight: 800; }
.about-hero__actions { margin-top: 1.6rem; }
.about-hero__visual { position: relative; max-width: 31rem; justify-self: end; }
.about-hero__photo, .about-hero__placeholder { display: block; width: 100%; aspect-ratio: 4 / 5; border: 1px solid var(--lbc-border); border-radius: 22px; background: #fff; object-fit: cover; box-shadow: 0 24px 70px rgba(15, 23, 42, .08); }
.about-hero__placeholder { display: grid; place-items: center; align-content: center; gap: .65rem; background: linear-gradient(145deg, var(--lbc-blue-light), #fff); color: var(--lbc-blue); }
.about-hero__placeholder > span { font-size: clamp(5rem, 10vw, 8rem); font-weight: 800; letter-spacing: -.08em; }
.about-hero__placeholder small { max-width: 16rem; color: var(--lbc-text-muted); text-align: center; }
.about-hero__badge { position: absolute; right: -1rem; bottom: 2rem; display: inline-flex; align-items: center; gap: .6rem; padding: .75rem 1rem; border: 1px solid var(--lbc-border); border-radius: 12px; background: #fff; box-shadow: 0 14px 30px rgba(15, 23, 42, .08); color: var(--lbc-text); font-size: .84rem; font-weight: 800; }
.about-hero__badge-mark { width: .65rem; height: .65rem; border-radius: 50%; background: var(--lbc-orange); box-shadow: 0 0 0 5px #fff7ed; }

.about-body { background: #fff; }
.about-content { max-width: 62rem; }
.about-content.entry-content > * { max-width: none; margin-left: 0; margin-right: 0; }
.about-content > :first-child { margin-top: 0; }
.about-content h2 { margin: 4rem 0 1rem; font-size: clamp(2rem, 4vw, 2.9rem); line-height: 1.12; letter-spacing: -.035em; }
.about-content h2:first-child { margin-top: 0; }
.about-content h3 { margin: 0 0 .65rem; font-size: 1.25rem; line-height: 1.25; }
.about-content p, .about-content li { color: #334155; }
.about-content p { margin: 0 0 1.2rem; }
.about-content .wp-block-columns { gap: 1.15rem; margin-block: 1.5rem 2.25rem; }
.about-content .lbc-about-strengths > .wp-block-column { padding: 1.4rem; border: 1px solid var(--lbc-border); border-radius: 14px; background: #fff; }
.about-content .lbc-about-strengths > .wp-block-column > :last-child { margin-bottom: 0; }

/* “Ma manière de travailler” : une carte pleine largeur par ligne.
   Le bloc reste un bloc Columns dans Gutenberg, mais le front l’affiche comme une pile
   de cartes horizontales pour éviter les colonnes étroites et les retours de ligne cassés. */
.about-content .wp-block-columns.lbc-about-values {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
.about-content .lbc-about-values > .wp-block-column {
  display: grid;
  grid-template-columns: minmax(14rem, .32fr) minmax(0, 1fr);
  gap: .55rem 2rem;
  width: 100%;
  flex-basis: auto !important;
  padding: 1.4rem 1.5rem;
  border: 1px solid var(--lbc-border);
  border-radius: 14px;
  background: #fff;
}
.about-content .lbc-about-values > .wp-block-column > h3 {
  grid-column: 1;
  grid-row: 1 / span 30;
  margin: 0;
}
.about-content .lbc-about-values > .wp-block-column > :not(h3) { grid-column: 2; }
.about-content .lbc-about-values > .wp-block-column > :last-child { margin-bottom: 0; }
.about-content .lbc-about-timeline { position: relative; display: grid; gap: 1rem; margin: 1.5rem 0 2.25rem; padding: 0; }
.about-content .lbc-about-timeline::before { position: absolute; left: 1.15rem; top: 1.6rem; bottom: 1.6rem; width: 1px; background: #d9e6ff; content: ""; }
.about-content .lbc-about-timeline__item { position: relative; margin: 0; padding: 1.25rem 1.4rem 1.25rem 3.4rem; border: 1px solid var(--lbc-border); border-radius: 14px; background: #fff; }
.about-content .lbc-about-timeline__item::before { position: absolute; z-index: 1; left: .8rem; top: 1.35rem; width: .72rem; height: .72rem; border: 4px solid #fff; border-radius: 50%; background: var(--lbc-blue); box-shadow: 0 0 0 1px #b9cdf9; content: ""; }
.about-content .lbc-about-timeline__item > :last-child { margin-bottom: 0; }
.about-content .lbc-about-tools { display: flex; flex-wrap: wrap; gap: .55rem; margin: 1.25rem 0 0; padding: 0; list-style: none; }
.about-content .lbc-about-tools li { margin: 0; padding: .5rem .8rem; border: 1px solid var(--lbc-border); border-radius: 999px; background: var(--lbc-surface); color: var(--lbc-text); font-size: .86rem; font-weight: 750; }

.about-expertise { background: var(--lbc-surface); }
.about-section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, .65fr); gap: clamp(2rem, 6vw, 5rem); align-items: end; margin-bottom: 2.25rem; }
.about-section-heading h2 { max-width: 18ch; margin: .3rem 0 0; font-size: clamp(2rem, 4.2vw, 3.2rem); line-height: 1.08; letter-spacing: -.04em; }
.about-section-heading > p { max-width: 35rem; margin: 0; color: var(--lbc-text-muted); }
.about-expertise__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; }
.about-expertise-card { display: flex; min-height: 100%; flex-direction: column; padding: 1.55rem; border: 1px solid var(--lbc-border); border-radius: 16px; background: #fff; }
.about-expertise-card__icon { display: grid; width: 2.6rem; height: 2.6rem; place-items: center; border-radius: 10px; background: var(--lbc-blue-light); color: var(--lbc-blue); }
.about-expertise-card__icon .lbc-icon { width: 1.4rem; height: 1.4rem; }
.about-expertise-card h3 { margin: 1.25rem 0 .65rem; font-size: 1.35rem; }
.about-expertise-card h3 a { color: var(--lbc-text); text-decoration: none; }
.about-expertise-card h3 a:hover { color: var(--lbc-blue); }
.about-expertise-card p { margin: 0 0 1.3rem; color: var(--lbc-text-muted); }
.about-expertise-card__link { display: inline-flex; align-items: center; gap: .35rem; margin-top: auto; font-size: .88rem; font-weight: 800; text-decoration: none; }
.about-expertise-card__link .lbc-icon { width: 1rem; height: 1rem; }
.about-cta { background: #fff; }

@media (max-width: 1023px) {
  .about-hero__grid { grid-template-columns: 1fr 20rem; gap: 2.5rem; }
  .about-section-heading { grid-template-columns: 1fr; gap: 1rem; }
}

@media (max-width: 767px) {
  .about-hero { padding-top: 1.5rem; }
  .about-hero__grid { grid-template-columns: 1fr; margin-top: 1.75rem; }
  .about-hero__content h1 { max-width: none; font-size: clamp(2.7rem, 13vw, 4rem); }
  .about-hero__actions, .about-hero__actions .lbc-button { width: 100%; }
  .about-hero__visual { width: 100%; max-width: 28rem; justify-self: start; }
  .about-hero__badge { right: .75rem; bottom: .75rem; }
  .about-content h2 { margin-top: 3rem; }
  .about-content .lbc-about-strengths { display: grid; grid-template-columns: 1fr; }
  .about-content .lbc-about-values > .wp-block-column { grid-template-columns: 1fr; gap: .5rem; }
  .about-content .lbc-about-values > .wp-block-column > h3,
  .about-content .lbc-about-values > .wp-block-column > :not(h3) { grid-column: 1; grid-row: auto; }
  .about-expertise__grid { grid-template-columns: 1fr; }
}

/* v0.7 — Archive Réalisations */
.realisations-archive__hero { padding-top: clamp(2rem, 5vw, 4rem); padding-bottom: clamp(3.5rem, 7vw, 5.5rem); background: linear-gradient(180deg, #fff 0%, var(--lbc-blue-light) 100%); }
.realisations-archive__hero-copy { max-width: 62rem; padding-top: clamp(2.5rem, 5vw, 4.5rem); }
.realisations-archive__hero h1 { max-width: 18ch; margin: .65rem 0 1.25rem; font-size: clamp(2.8rem, 6vw, 4.8rem); line-height: .98; letter-spacing: -.055em; }
.realisations-archive__hero-copy > p { max-width: 49rem; margin: 0; color: var(--lbc-text-muted); font-size: clamp(1.05rem, 2vw, 1.2rem); }
.realisations-archive__projects { background: #fff; }
.realisations-archive__projects .lbc-section-heading { max-width: 48rem; margin-bottom: 2.5rem; }
.realisations-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; align-items: stretch; }
.realisations-card { min-width: 0; overflow: hidden; border: 1px solid var(--lbc-border); border-radius: 18px; background: #fff; transition: transform var(--lbc-transition), border-color var(--lbc-transition), box-shadow var(--lbc-transition); }
.realisations-card:hover { transform: translateY(-3px); border-color: #bfd2ff; box-shadow: 0 18px 40px rgba(15,23,42,.08); }
.realisations-card__visual { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--lbc-surface); }
.realisations-card__visual img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 300ms ease; }
.realisations-card:hover .realisations-card__visual img { transform: scale(1.025); }
.realisations-card__placeholder { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; flex-direction: column; gap: .8rem; padding: 2rem; color: var(--lbc-text); text-align: center; background: linear-gradient(135deg, var(--lbc-blue-light), #fff); }
.realisations-card__placeholder svg { width: 2rem; height: 2rem; color: var(--lbc-blue); }
.realisations-card__body { display: flex; min-height: 100%; flex-direction: column; padding: 1.5rem; }
.realisations-card__tags { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 .9rem; padding: 0; list-style: none; }
.realisations-card__tags li { padding: .26rem .55rem; border-radius: 999px; background: var(--lbc-blue-light); color: var(--lbc-blue-hover); font-size: .72rem; font-weight: 800; }
.realisations-card__client { margin: 0 0 .35rem; color: var(--lbc-text-muted); font-size: .78rem; font-weight: 800; letter-spacing: .035em; text-transform: uppercase; }
.realisations-card h3 { margin: 0 0 .8rem; font-size: clamp(1.35rem, 2.2vw, 1.65rem); line-height: 1.18; letter-spacing: -.025em; overflow-wrap: anywhere; }
.realisations-card h3 a { color: var(--lbc-text); text-decoration: none; }
.realisations-card h3 a:hover { color: var(--lbc-blue); }
.realisations-card__excerpt { margin: 0 0 1.25rem; color: var(--lbc-text-muted); font-size: .92rem; }
.realisations-card__metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: auto 0 1.25rem; padding-top: 1rem; border-top: 1px solid var(--lbc-border); }
.realisations-card__metrics > div { min-width: 0; padding: 0 .65rem; border-left: 1px solid var(--lbc-border); }
.realisations-card__metrics > div:first-child { padding-left: 0; border-left: 0; }
.realisations-card__metrics dd, .realisations-card__metrics dt { margin: 0; }
.realisations-card__metrics dd { color: var(--lbc-text); font-size: 1.12rem; font-weight: 850; line-height: 1.1; overflow-wrap: anywhere; }
.realisations-card__metrics dt { margin-top: .3rem; color: var(--lbc-text-muted); font-size: .68rem; line-height: 1.35; }
.realisations-card__link { display: inline-flex; align-items: center; gap: .45rem; align-self: flex-start; color: var(--lbc-blue); font-size: .9rem; font-weight: 800; text-decoration: none; }
.realisations-card__link svg { width: 1rem; height: 1rem; transition: transform var(--lbc-transition); }
.realisations-card__link:hover svg { transform: translateX(3px); }
.realisations-archive .navigation.pagination { margin-top: 2.5rem; }
.realisations-archive .nav-links { display: flex; flex-wrap: wrap; gap: .5rem; }
.realisations-archive .page-numbers { display: inline-flex; min-width: 2.65rem; min-height: 2.65rem; align-items: center; justify-content: center; padding: .5rem .8rem; border: 1px solid var(--lbc-border); border-radius: 8px; color: var(--lbc-text); font-weight: 750; text-decoration: none; }
.realisations-archive .page-numbers.current, .realisations-archive .page-numbers:hover { border-color: var(--lbc-blue); background: var(--lbc-blue); color: #fff; }
.realisations-empty { padding: 2rem; }
.realisations-empty h3 { margin-top: 0; }
.realisations-archive__approach { background: var(--lbc-surface); }
.realisations-archive__approach-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2rem, 7vw, 6rem); align-items: start; }
.realisations-archive__approach h2 { max-width: 15ch; margin: .65rem 0 0; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.08; letter-spacing: -.04em; }
.realisations-archive__approach-grid > div:last-child { max-width: 42rem; }
.realisations-archive__approach p { margin-top: 0; color: var(--lbc-text-muted); font-size: 1.05rem; }
.realisations-archive__cta { padding-top: 0; }

@media (max-width: 1023px) {
  .realisations-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .realisations-archive__approach-grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .realisations-archive__approach h2 { max-width: 22ch; }
}

@media (max-width: 700px) {
  .realisations-archive__hero h1 { max-width: none; }
  .realisations-grid { grid-template-columns: 1fr; }
  .realisations-card__metrics { grid-template-columns: repeat(3, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  .realisations-card, .realisations-card__visual img, .realisations-card__link svg { transition: none; }
}


/* v0.8 — Blog index & article */
.blog-index__hero { padding-top: clamp(2rem,5vw,4rem); padding-bottom: clamp(3.5rem,7vw,5.5rem); background: linear-gradient(180deg,#fff 0%,var(--lbc-blue-light) 100%); }
.blog-index__hero-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(18rem,.42fr); gap: clamp(2rem,6vw,5rem); align-items: end; padding-top: clamp(2.5rem,5vw,4.5rem); }
.blog-index__hero h1 { max-width: 18ch; margin: .65rem 0 1.25rem; font-size: clamp(2.8rem,6vw,4.7rem); line-height: .99; letter-spacing: -.055em; }
.blog-index__hero-grid > div:first-child > p, .blog-archive__description { max-width: 48rem; margin: 0; color: var(--lbc-text-muted); font-size: clamp(1.05rem,2vw,1.18rem); }
.blog-index__search { padding: 1.2rem; border: 1px solid #cfddff; border-radius: 14px; background: rgba(255,255,255,.8); }
.blog-index__search > span { display: block; margin-bottom: .6rem; color: var(--lbc-text); font-size: .8rem; font-weight: 800; }
.blog-index__search .search-form { display: flex; gap: .5rem; }
.blog-index__search .search-field { min-width: 0; width: 100%; padding: .75rem .85rem; border: 1px solid var(--lbc-border); border-radius: 9px; background: #fff; color: var(--lbc-text); }
.blog-index__search .search-submit { flex: 0 0 auto; padding: .75rem 1rem; border: 0; border-radius: 9px; background: var(--lbc-blue); color: #fff; font-weight: 800; cursor: pointer; }
.blog-index__search .search-submit:hover { background: var(--lbc-blue-hover); }
.blog-index__categories { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 2rem; }
.blog-index__categories a, .blog-card__category { display: inline-flex; align-items: center; width: fit-content; padding: .35rem .65rem; border-radius: 999px; background: #fff; color: var(--lbc-blue-hover); font-size: .75rem; font-weight: 800; text-decoration: none; }
.blog-index__categories a { border: 1px solid #cfddff; }
.blog-index__categories a:hover { border-color: var(--lbc-blue); background: var(--lbc-blue); color: #fff; }
.blog-featured { background: #fff; }
.blog-featured__card { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); overflow: hidden; margin-top: 1rem; border: 1px solid var(--lbc-border); border-radius: 20px; background: #fff; }
.blog-featured__visual { min-height: 24rem; background: var(--lbc-surface); overflow: hidden; }
.blog-featured__visual img { width: 100%; height: 100%; object-fit: cover; display: block; }
.blog-featured__body { display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem,5vw,4rem); }
.blog-featured__body .blog-card__category, .blog-article__hero .blog-card__category { background: var(--lbc-blue-light); }
.blog-featured__body h2 { margin: .9rem 0 1rem; font-size: clamp(2rem,4vw,3.2rem); line-height: 1.05; letter-spacing: -.04em; }
.blog-featured__body h2 a { color: var(--lbc-text); text-decoration: none; }
.blog-featured__body > p { margin: 0 0 1.25rem; color: var(--lbc-text-muted); }
.blog-latest { background: var(--lbc-surface); }
.blog-latest .lbc-section-heading { margin-bottom: 2rem; }
.blog-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.35rem; align-items: stretch; }
.blog-card { display: flex; min-width: 0; overflow: hidden; flex-direction: column; border: 1px solid var(--lbc-border); border-radius: 16px; background: #fff; transition: transform var(--lbc-transition), box-shadow var(--lbc-transition), border-color var(--lbc-transition); }
.blog-card:hover { transform: translateY(-3px); border-color: #bfd2ff; box-shadow: 0 18px 40px rgba(15,23,42,.07); }
.blog-card__visual { display: block; aspect-ratio: 16/10; overflow: hidden; background: var(--lbc-surface); }
.blog-card__visual img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 300ms ease; }
.blog-card:hover .blog-card__visual img { transform: scale(1.025); }
.blog-card__placeholder { display: grid; width: 100%; height: 100%; place-items: center; background: linear-gradient(135deg,var(--lbc-blue-light),#fff); color: var(--lbc-blue); }
.blog-card__placeholder svg { width: 2rem; height: 2rem; }
.blog-card__body { display: flex; min-height: 100%; flex-direction: column; padding: 1.4rem; }
.blog-card__body .blog-card__category { margin-bottom: .8rem; background: var(--lbc-blue-light); }
.blog-card h2, .blog-card h3 { margin: 0 0 .75rem; font-size: clamp(1.3rem,2vw,1.55rem); line-height: 1.18; letter-spacing: -.025em; overflow-wrap: anywhere; }
.blog-card h2 a, .blog-card h3 a { color: var(--lbc-text); text-decoration: none; }
.blog-card h2 a:hover, .blog-card h3 a:hover { color: var(--lbc-blue); }
.blog-card__body > p { margin: 0 0 1rem; color: var(--lbc-text-muted); font-size: .91rem; }
.blog-card__meta { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: auto; margin-bottom: 1rem; color: var(--lbc-text-muted); font-size: .75rem; }
.blog-card__link { display: inline-flex; align-items: center; gap: .4rem; align-self: flex-start; color: var(--lbc-blue); font-size: .88rem; font-weight: 800; text-decoration: none; }
.blog-card__link svg { width: 1rem; height: 1rem; }
.blog-index .navigation.pagination, .blog-archive .navigation.pagination { margin-top: 2.5rem; }
.blog-index .nav-links, .blog-archive .nav-links { display: flex; flex-wrap: wrap; gap: .5rem; }
.blog-index .page-numbers, .blog-archive .page-numbers { display: inline-flex; min-width: 2.65rem; min-height: 2.65rem; align-items: center; justify-content: center; padding: .5rem .8rem; border: 1px solid var(--lbc-border); border-radius: 8px; color: var(--lbc-text); font-weight: 750; text-decoration: none; background: #fff; }
.blog-index .page-numbers.current, .blog-index .page-numbers:hover, .blog-archive .page-numbers.current, .blog-archive .page-numbers:hover { border-color: var(--lbc-blue); background: var(--lbc-blue); color: #fff; }
.blog-empty { padding: 2rem; }

.blog-article__hero { padding-top: clamp(2rem,5vw,4rem); padding-bottom: clamp(3rem,6vw,5rem); background: linear-gradient(180deg,#fff 0%,var(--lbc-blue-light) 100%); }
.blog-article__hero-copy { max-width: 58rem; padding-top: clamp(2.2rem,5vw,4rem); }
.blog-article__hero h1 { max-width: 18ch; margin: .9rem 0 1.15rem; font-size: clamp(2.75rem,6vw,4.7rem); line-height: .99; letter-spacing: -.055em; }
.blog-article__lead { max-width: 48rem; margin: 0 0 1.25rem; color: var(--lbc-text-muted); font-size: clamp(1.08rem,2vw,1.25rem); }
.blog-article__meta { display: flex; flex-wrap: wrap; gap: .45rem; color: var(--lbc-text-muted); font-size: .83rem; }
.blog-article__featured-image { overflow: hidden; margin: clamp(2rem,5vw,3.5rem) 0 0; border-radius: 20px; background: var(--lbc-surface); }
.blog-article__featured-image img { display: block; width: 100%; max-height: 42rem; object-fit: cover; }
.blog-article__main { background: #fff; }
.blog-article__layout { display: grid; grid-template-columns: minmax(0,48rem) minmax(14rem,18rem); gap: clamp(2.5rem,7vw,6rem); justify-content: center; align-items: start; }
.blog-article__content.entry-content { min-width: 0; padding-bottom: 0; }
.blog-article__content.entry-content > * { max-width: none; margin-left: 0; margin-right: 0; }
.blog-article__content > :first-child { margin-top: 0; }
.blog-article__content h2, .blog-article__content h3 { scroll-margin-top: 6rem; }
.blog-article__content h2 { margin: 3.5rem 0 1rem; font-size: clamp(1.9rem,3.5vw,2.6rem); line-height: 1.1; letter-spacing: -.035em; }
.blog-article__content h3 { margin: 2.3rem 0 .8rem; font-size: clamp(1.35rem,2.5vw,1.7rem); line-height: 1.2; letter-spacing: -.02em; }
.blog-article__content p, .blog-article__content li { color: #27364b; }
.blog-article__content p { margin: 0 0 1.25rem; }
.blog-article__content ul, .blog-article__content ol { margin: 0 0 1.5rem; padding-left: 1.4rem; }
.blog-article__content li + li { margin-top: .45rem; }
.blog-article__content blockquote { margin: 2rem 0; padding: 1.25rem 1.5rem; border-left: 4px solid var(--lbc-blue); background: var(--lbc-blue-light); border-radius: 0 12px 12px 0; }
.blog-article__content blockquote p:last-child { margin-bottom: 0; }
.blog-article__content .wp-block-table { overflow-x: auto; }
.blog-article__content table { width: 100%; border-collapse: collapse; }
.blog-article__content th, .blog-article__content td { padding: .8rem; border: 1px solid var(--lbc-border); text-align: left; }
.blog-article__content .wp-block-details { margin: 1rem 0; border: 1px solid var(--lbc-border); border-radius: 12px; background: #fff; }
.blog-article__content .wp-block-details summary { padding: 1rem 1.1rem; font-weight: 800; cursor: pointer; }
.blog-article__content .wp-block-details > :not(summary) { margin-left: 1.1rem; margin-right: 1.1rem; }
.blog-article__content .wp-block-details > :last-child { margin-bottom: 1.1rem; }
.blog-toc { position: sticky; top: 6rem; padding: 1.2rem; border: 1px solid var(--lbc-border); border-radius: 14px; background: var(--lbc-surface); }
.blog-toc > strong { display: block; margin-bottom: .85rem; font-size: .9rem; }
.blog-toc ol { margin: 0; padding: 0; list-style: none; }
.blog-toc li + li { margin-top: .55rem; }
.blog-toc a { color: var(--lbc-text-muted); font-size: .79rem; line-height: 1.35; text-decoration: none; }
.blog-toc a:hover { color: var(--lbc-blue); }
.blog-toc__level-3 { padding-left: .85rem; }
.blog-article__author { padding-top: 0; background: #fff; }
.blog-author-card { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 1.5rem; max-width: 58rem; margin-inline: auto; padding: 1.6rem; border: 1px solid var(--lbc-border); border-radius: 16px; background: var(--lbc-surface); }
.blog-author-card__visual { width: 7rem; height: 7rem; overflow: hidden; border-radius: 14px; background: #fff; }
.blog-author-card__visual img { width: 100%; height: 100%; object-fit: cover; }
.blog-author-card h2 { margin: .35rem 0 .5rem; font-size: 1.55rem; }
.blog-author-card p { margin: 0 0 .75rem; color: var(--lbc-text-muted); }
.blog-author-card a { display: inline-flex; align-items: center; gap: .35rem; font-weight: 800; text-decoration: none; }
.blog-author-card a svg { width: 1rem; height: 1rem; }
.blog-article__cta { padding-top: 0; background: #fff; }
.blog-related { background: var(--lbc-surface); }

@media (max-width: 1023px) {
  .blog-index__hero-grid { grid-template-columns: 1fr; align-items: start; }
  .blog-index__search { max-width: 34rem; }
  .blog-featured__card { grid-template-columns: 1fr; }
  .blog-featured__visual { min-height: 20rem; aspect-ratio: 16/9; }
  .blog-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .blog-article__layout { grid-template-columns: minmax(0,48rem); }
  .blog-toc { position: static; grid-row: 1; margin-bottom: .5rem; }
}

@media (max-width: 700px) {
  .blog-index__hero h1, .blog-article__hero h1 { max-width: none; }
  .blog-index__search .search-form { flex-direction: column; }
  .blog-index__search .search-submit { width: 100%; }
  .blog-grid { grid-template-columns: 1fr; }
  .blog-featured__body { padding: 1.5rem; }
  .blog-featured__visual { min-height: 0; }
  .blog-author-card { grid-template-columns: 1fr; }
  .blog-author-card__visual { width: 6rem; height: 6rem; }
}

@media (prefers-reduced-motion: reduce) {
  .blog-card, .blog-card__visual img { transition: none; }
}

/* Contact — v0.9 */
.contact-hero { padding-top: clamp(2rem,5vw,4rem); padding-bottom: clamp(3rem,6vw,5rem); background: linear-gradient(180deg,#fff 0%,var(--lbc-blue-light) 100%); }
.contact-hero__copy { max-width: 54rem; padding-top: clamp(2.2rem,5vw,4rem); }
.contact-hero h1 { max-width: 14ch; margin: .75rem 0 1rem; font-size: clamp(3rem,7vw,5rem); line-height: .98; letter-spacing: -.055em; }
.contact-hero__lead { max-width: 47rem; margin: 0; color: var(--lbc-text-muted); font-size: clamp(1.08rem,2vw,1.28rem); }
.contact-main { background: #fff; }
.contact-main__grid { display: grid; grid-template-columns: minmax(0,.78fr) minmax(0,1.22fr); gap: clamp(2.5rem,7vw,6rem); align-items: start; }
.contact-main__aside { position: sticky; top: 6rem; }
.contact-main__aside h2 { max-width: 13ch; margin: .4rem 0 1rem; font-size: clamp(2rem,4vw,2.8rem); line-height: 1.08; letter-spacing: -.04em; }
.contact-main__aside > p { max-width: 36rem; margin: 0; color: var(--lbc-text-muted); }
.contact-main__points { display: grid; gap: .9rem; margin-top: 2rem; }
.contact-point { display: grid; grid-template-columns: auto minmax(0,1fr); gap: .9rem; align-items: start; padding: 1rem 0; border-top: 1px solid var(--lbc-border); }
.contact-point:last-child { border-bottom: 1px solid var(--lbc-border); }
.contact-point .contact-point__icon { display: grid; flex: 0 0 2.5rem; width: 2.5rem; height: 2.5rem; place-items: center; border-radius: 10px; background: var(--lbc-blue-light); color: var(--lbc-blue); }
.contact-point__icon svg { display: block; width: 1.2rem; height: 1.2rem; margin: 0; }
.contact-point strong, .contact-point > div > span, .contact-point a { display: block; }
.contact-point strong { margin-bottom: .15rem; font-size: .93rem; }
.contact-point > div > span { color: var(--lbc-text-muted); font-size: .85rem; }
.contact-point a { width: fit-content; font-size: .85rem; font-weight: 750; text-decoration: none; overflow-wrap: anywhere; }
.contact-form-card { padding: clamp(1.5rem,4vw,2.5rem); border: 1px solid var(--lbc-border); border-radius: 20px; background: var(--lbc-surface); }
.contact-form-card__heading { margin-bottom: 1.5rem; }
.contact-form-card__heading h2 { margin: 0 0 .5rem; font-size: clamp(1.8rem,3vw,2.4rem); line-height: 1.1; letter-spacing: -.035em; }
.contact-form-card__heading p { margin: 0; color: var(--lbc-text-muted); font-size: .9rem; }
.contact-form { position: relative; }
.contact-form__honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; opacity: 0 !important; pointer-events: none !important; }
.contact-form__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.contact-field { min-width: 0; }
.contact-field--full { grid-column: 1/-1; }
.contact-field label { display: block; margin-bottom: .4rem; color: var(--lbc-text); font-size: .82rem; font-weight: 800; }
.contact-field label span { color: var(--lbc-text-muted); font-weight: 600; }
.contact-field input, .contact-field select, .contact-field textarea { width: 100%; min-height: 48px; padding: .75rem .85rem; border: 1px solid #cbd5e1; border-radius: 9px; background: #fff; color: var(--lbc-text); transition: border-color var(--lbc-transition), box-shadow var(--lbc-transition); }
.contact-field textarea { min-height: 10.5rem; resize: vertical; }
.contact-field input:focus, .contact-field select:focus, .contact-field textarea:focus { outline: none; border-color: var(--lbc-blue); box-shadow: 0 0 0 3px rgba(21,94,239,.12); }
.contact-field input::placeholder, .contact-field textarea::placeholder { color: #94a3b8; }
.contact-form__footer { display: flex; gap: 1.2rem; align-items: center; justify-content: space-between; margin-top: 1.25rem; }
.contact-form__footer p { max-width: 24rem; margin: 0; color: var(--lbc-text-muted); font-size: .72rem; line-height: 1.45; }
.contact-form__footer p a { color: inherit; }
.contact-notice { display: grid; grid-template-columns: auto minmax(0,1fr); gap: .75rem; align-items: start; margin-bottom: 1.25rem; padding: 1rem 1.1rem; border: 1px solid; border-radius: 10px; font-size: .86rem; }
.contact-notice svg { width: 1.15rem; height: 1.15rem; margin-top: .1rem; }
.contact-notice strong, .contact-notice span { display: block; }
.contact-notice--success { border-color: #bbf7d0; background: #f0fdf4; color: #166534; }
.contact-notice--error { grid-template-columns: 1fr; border-color: #fecaca; background: #fef2f2; color: #991b1b; }
.contact-next { padding-top: 0; background: #fff; }

@media (max-width: 900px) {
  .contact-main__grid { grid-template-columns: 1fr; }
  .contact-main__aside { position: static; }
  .contact-main__aside h2 { max-width: 18ch; }
}

@media (max-width: 640px) {
  .contact-form__grid { grid-template-columns: 1fr; }
  .contact-field--full { grid-column: auto; }
  .contact-form__footer { align-items: stretch; flex-direction: column; }
  .contact-form__footer .lbc-button { width: 100%; }
}

/* Booking page — v1.0 */
.booking-hero { padding-top: clamp(2rem,5vw,4rem); padding-bottom: clamp(3rem,7vw,6rem); background: linear-gradient(180deg,#fff 0%,var(--lbc-blue-light) 100%); }
.booking-hero__grid { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(20rem,.72fr); gap: clamp(2.5rem,7vw,6rem); align-items: center; }
.booking-hero__copy .service-breadcrumb { margin-bottom: clamp(2rem,5vw,4rem); }
.booking-hero h1 { max-width: 11ch; margin: .75rem 0 1rem; font-size: clamp(3rem,7vw,5rem); line-height: .98; letter-spacing: -.055em; }
.booking-hero__lead { max-width: 44rem; margin: 0 0 1.75rem; color: var(--lbc-text-muted); font-size: clamp(1.08rem,2vw,1.28rem); }
.booking-hero__panel { padding: clamp(1.5rem,4vw,2.2rem); border: 1px solid rgba(21,94,239,.15); border-radius: 20px; background: rgba(255,255,255,.9); box-shadow: 0 20px 48px rgba(15,23,42,.07); }
.booking-hero__panel-icon, .booking-embed__icon { display: grid; place-items: center; width: 3.25rem; height: 3.25rem; margin-bottom: 1.15rem; border-radius: 12px; background: var(--lbc-blue-light); color: var(--lbc-blue); }
.booking-hero__panel-icon svg, .booking-embed__icon svg { width: 1.55rem; height: 1.55rem; }
.booking-hero__panel h2 { margin: 0 0 .9rem; font-size: clamp(1.7rem,3vw,2.2rem); line-height: 1.1; letter-spacing: -.035em; }
.booking-hero__panel > p { margin: 0; color: var(--lbc-text-muted); }
.booking-hero__panel ul { display: grid; gap: .75rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.booking-hero__panel li { display: grid; grid-template-columns: auto minmax(0,1fr); gap: .65rem; align-items: start; font-size: .9rem; font-weight: 650; }
.booking-hero__panel li svg { width: 1.15rem; height: 1.15rem; margin-top: .2rem; color: var(--lbc-success); }
.booking-main { background: #fff; }
.booking-main__grid { display: grid; grid-template-columns: minmax(18rem,.7fr) minmax(0,1.3fr); gap: clamp(2.5rem,7vw,6rem); align-items: start; }
.booking-main__copy { position: sticky; top: 6rem; }
.booking-main__copy h2 { max-width: 13ch; margin: .4rem 0 1rem; font-size: clamp(2rem,4vw,2.8rem); line-height: 1.08; letter-spacing: -.04em; }
.booking-main__copy > p { max-width: 34rem; margin: 0; color: var(--lbc-text-muted); }
.booking-main__steps { display: grid; gap: .95rem; margin-top: 2rem; }
.booking-step { display: grid; grid-template-columns: 2.25rem minmax(0,1fr); gap: .85rem; align-items: start; padding-top: .95rem; border-top: 1px solid var(--lbc-border); }
.booking-step > span { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: var(--lbc-blue-light); color: var(--lbc-blue); font-size: .8rem; font-weight: 800; }
.booking-step strong, .booking-step p { display: block; }
.booking-step strong { font-size: .92rem; }
.booking-step p { margin: .15rem 0 0; color: var(--lbc-text-muted); font-size: .82rem; }
.booking-card { min-width: 0; }
.booking-embed { min-height: 34rem; overflow: hidden; border: 1px solid var(--lbc-border); border-radius: 20px; background: var(--lbc-surface); }
.booking-embed__placeholder, .booking-embed--empty { display: flex; min-height: 34rem; padding: clamp(2rem,6vw,4rem); flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.booking-embed__placeholder .booking-embed__icon, .booking-embed--empty .booking-embed__icon { margin-inline: auto; }
.booking-embed__placeholder h3, .booking-embed--empty h3 { max-width: 18ch; margin: 0 0 .75rem; font-size: clamp(1.8rem,3vw,2.3rem); line-height: 1.1; letter-spacing: -.035em; }
.booking-embed__placeholder > p, .booking-embed--empty > p { max-width: 31rem; margin: 0 0 1.4rem; color: var(--lbc-text-muted); }
.booking-embed__fallback { margin-top: 1rem; font-size: .8rem; font-weight: 700; }
.booking-embed__error { margin-top: 1rem !important; color: var(--lbc-error) !important; font-size: .8rem; }
.booking-embed--direct { min-height: 700px; background: #fff; }
.booking-embed__widget, .booking-embed__widget.calendly-inline-widget { width: 100%; min-width: 320px; height: 700px; min-height: 700px; }
.booking-embed__noscript { padding: 1rem; text-align: center; }
.booking-alternative { padding-top: 0; background: #fff; }

@media (max-width: 1023px) {
  .booking-hero__grid, .booking-main__grid { grid-template-columns: 1fr; }
  .booking-hero__panel { max-width: 46rem; }
  .booking-main__copy { position: static; }
  .booking-main__copy h2 { max-width: 18ch; }
}

@media (max-width: 767px) {
  .booking-hero h1 { font-size: clamp(2.8rem,14vw,4rem); }
  .booking-embed, .booking-embed__placeholder, .booking-embed--empty { min-height: 29rem; }
  .booking-embed__placeholder, .booking-embed--empty { padding: 1.5rem; }
  .booking-embed__widget, .booking-embed__widget.calendly-inline-widget { height: 700px; min-height: 700px; }
}

/* Legal / privacy pages — v1.1 */
.site-footer__legal-inline { display: flex; flex-wrap: wrap; gap: .9rem; align-items: center; justify-content: center; }
.site-footer__legal-inline a { color: inherit; text-decoration: none; }
.site-footer__legal-inline a:hover { color: var(--lbc-blue); }
.legal-page { background: #fff; }
.legal-hero { padding-top: clamp(2rem,5vw,4rem); padding-bottom: clamp(2.5rem,5vw,4.5rem); background: linear-gradient(180deg,#fff 0%,var(--lbc-blue-light) 100%); }
.legal-container { max-width: 920px; }
.legal-hero .service-breadcrumb { margin-bottom: clamp(1.5rem,4vw,3rem); }
.legal-hero h1 { max-width: 14ch; margin: .55rem 0 1rem; font-size: clamp(2.8rem,6vw,4.6rem); line-height: 1; letter-spacing: -.05em; }
.legal-lead { max-width: 48rem; margin: 0; color: var(--lbc-text-muted); font-size: clamp(1.05rem,2vw,1.22rem); }
.legal-content { padding-top: clamp(3rem,6vw,5rem); }
.legal-content > .legal-container { display: grid; gap: 1rem; }
.legal-card { padding: clamp(1.4rem,3vw,2rem); border: 1px solid var(--lbc-border); border-radius: 16px; background: #fff; }
.legal-card h2 { margin: 0 0 .85rem; font-size: clamp(1.35rem,2.4vw,1.8rem); line-height: 1.15; letter-spacing: -.025em; }
.legal-card h3 { margin-top: 1.5rem; }
.legal-card p { margin: .65rem 0 0; }
.legal-card p:first-of-type { margin-top: 0; }
.legal-card ul { margin: .75rem 0 0; padding-left: 1.25rem; }
.legal-card li + li { margin-top: .45rem; }
.legal-details { margin: 0; }
.legal-details > div { display: grid; grid-template-columns: minmax(8rem,.42fr) minmax(0,1fr); gap: 1rem; padding: .75rem 0; border-top: 1px solid var(--lbc-border); }
.legal-details > div:first-child { padding-top: 0; border-top: 0; }
.legal-details dt { color: var(--lbc-text-muted); font-size: .82rem; font-weight: 800; }
.legal-details dd { margin: 0; font-weight: 650; overflow-wrap: anywhere; }
.legal-cookie-table { margin-top: 1rem; overflow-x: auto; }
.legal-cookie-table table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.legal-cookie-table th, .legal-cookie-table td { padding: .7rem; border: 1px solid var(--lbc-border); text-align: left; vertical-align: top; }
.legal-cookie-table th { background: var(--lbc-surface); }
.legal-editor-content > :first-child { margin-top: 0; }
.legal-editor-content > :last-child { margin-bottom: 0; }

@media (max-width: 767px) {
  .site-footer__legal-inline { justify-content: flex-start; }
  .legal-details > div { grid-template-columns: 1fr; gap: .15rem; }
}


/* v1.3.3 — Calendly gated by CookieAdmin analytics consent */
.booking-embed--consent { min-height: 700px; background: #fff; }
.booking-embed__consent { display:flex; min-height:700px; padding:clamp(2rem,6vw,4rem); flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.booking-embed__consent[hidden] { display:none !important; }
.booking-embed__consent .booking-embed__icon { margin-inline:auto; }
.booking-embed__consent h3 { max-width:20ch; margin:0 0 .75rem; font-size:clamp(1.7rem,3vw,2.2rem); line-height:1.1; letter-spacing:-.035em; }
.booking-embed__consent p { max-width:34rem; margin:0; color:var(--lbc-text-muted); }
.booking-embed__mount { width:100%; min-height:700px; }
.booking-embed__mount:empty { display:none; }

/* ==========================================================
   Local SEO template — v1.4
   ========================================================== */
.local-page { overflow: clip; }
.local-hero .service-hero__content h1 { max-width: 14ch; }
.local-hero__visual { min-height: 24rem; }
.local-search-card { position: relative; z-index: 1; display: grid; align-content: center; gap: 1rem; width: 100%; min-height: 24rem; padding: clamp(1.4rem, 4vw, 2.2rem); border: 1px solid var(--lbc-border); border-radius: 18px; background: linear-gradient(145deg, var(--lbc-blue-light), #fff 68%); box-shadow: 0 24px 70px rgba(15,23,42,.09); overflow: hidden; }
.local-search-card::before { content: ''; position: absolute; width: 12rem; height: 12rem; right: -4rem; bottom: -5rem; border-radius: 50%; background: var(--lbc-orange); opacity: .08; }
.local-search-card__bar { position: relative; z-index: 1; display: flex; align-items: center; gap: .75rem; min-height: 3.4rem; padding: .8rem 1rem; border: 1px solid #cbdaf7; border-radius: 999px; background: #fff; color: var(--lbc-text-muted); box-shadow: 0 8px 24px rgba(15,23,42,.05); }
.local-search-card__bar .lbc-icon { color: var(--lbc-blue); }
.local-search-card__bar span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 700; }
.local-search-card__map { position: relative; z-index: 1; display: flex; align-items: center; gap: 1rem; min-height: 8.5rem; padding: 1.3rem; border: 1px solid var(--lbc-border); border-radius: 14px; background: rgba(255,255,255,.96); }
.local-search-card__pin { display: grid; place-items: center; width: 3.6rem; height: 3.6rem; border-radius: 50%; background: var(--lbc-blue); color: #fff; flex: 0 0 auto; }
.local-search-card__pin .lbc-icon { width: 1.8rem; height: 1.8rem; }
.local-search-card__map strong, .local-search-card__map span { display: block; }
.local-search-card__map strong { font-size: 1.25rem; }
.local-search-card__map span { margin-top: .2rem; color: var(--lbc-text-muted); font-size: .88rem; }
.local-search-card__results { position: relative; z-index: 1; display: grid; gap: .7rem; }
.local-search-card__results span { display: block; height: 2.8rem; border: 1px solid var(--lbc-border); border-radius: 10px; background: #fff; box-shadow: 0 6px 18px rgba(15,23,42,.04); }
.local-search-card__results span:nth-child(2) { width: 92%; }
.local-search-card__results span:nth-child(3) { width: 82%; }

.local-content .lbc-local-market { margin: 1.5rem 0 2rem; }
.local-content .lbc-local-market > .wp-block-column { background: var(--lbc-surface); }
.local-content .lbc-local-process { display: grid; grid-template-columns: 1fr; gap: 1rem; margin-block: 1.5rem 2.25rem; }
.local-content .lbc-local-process > .wp-block-column { display: grid; grid-template-columns: minmax(12rem,.32fr) minmax(0,1fr); column-gap: clamp(1.25rem,4vw,2.5rem); row-gap: .65rem; width: 100%; padding: 1.4rem 1.5rem; }
.local-content .lbc-local-process > .wp-block-column > h3 { grid-column: 1; margin: 0; font-size: clamp(1.12rem,2vw,1.35rem); }
.local-content .lbc-local-process > .wp-block-column > :not(h3) { grid-column: 2; min-width: 0; margin-top: 0; }
.local-content .lbc-local-process > .wp-block-column > :last-child { margin-bottom: 0; }

.local-proof { background: var(--lbc-surface); }
.local-proof__card { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(18rem,.9fr); gap: clamp(2rem,5vw,4rem); align-items: center; padding: clamp(1.6rem,4vw,2.5rem); border: 1px solid var(--lbc-border); border-radius: 18px; background: #fff; }
.local-proof__copy h3 { margin: .25rem 0 .8rem; font-size: clamp(1.6rem,3vw,2.15rem); line-height: 1.18; }
.local-proof__copy > p:not(.lbc-eyebrow) { color: var(--lbc-text-muted); }
.local-proof__metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; margin: 0; }
.local-proof__metrics > div { min-width: 0; padding: 1rem; border: 1px solid var(--lbc-border); border-radius: 12px; background: var(--lbc-surface); }
.local-proof__metrics dd, .local-proof__metrics dt { margin: 0; }
.local-proof__metrics dd { color: var(--lbc-blue); font-size: clamp(1.35rem,3vw,1.85rem); font-weight: 800; line-height: 1.05; }
.local-proof__metrics dt { margin-top: .35rem; color: var(--lbc-text-muted); font-size: .76rem; line-height: 1.35; }

.local-services__grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1.15rem; }
.local-service-card { display: flex; flex-direction: column; min-height: 18rem; }
.local-service-card h3 { margin: 1.15rem 0 .55rem; font-size: 1.3rem; line-height: 1.25; }
.local-service-card h3 a { color: var(--lbc-text); text-decoration: none; }
.local-service-card p { color: var(--lbc-text-muted); }
.local-service-card__link { display: inline-flex; align-items: center; gap: .4rem; margin-top: auto; font-weight: 750; text-decoration: none; }
.local-cta { padding-top: 0; }

@media (max-width: 1023px) {
  .local-proof__card { grid-template-columns: 1fr; }
  .local-services__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 767px) {
  .local-hero__visual, .local-search-card { min-height: 20rem; }
  .local-content .lbc-local-process > .wp-block-column { display: block; padding: 1.2rem; }
  .local-content .lbc-local-process > .wp-block-column > h3 { margin-bottom: .65rem; }
  .local-proof__metrics, .local-services__grid { grid-template-columns: 1fr; }
}


/* v1.4.2 — local hero corrected + reusable client logos */
.local-search-card {
  background: linear-gradient(145deg, var(--lbc-blue-light), #fff 70%);
}
.local-search-card::before,
.local-search-card::after { content: none; }
.local-search-card__bar .lbc-icon { color: var(--lbc-blue); }
.local-search-card__map {
  gap: 1rem;
  border-color: #d7e2f6;
  box-shadow: 0 10px 28px rgba(15,23,42,.045);
}
.local-search-card__pin {
  display: grid;
  place-items: center;
  width: 3.6rem;
  height: 3.6rem;
  flex: 0 0 3.6rem;
  margin: 0;
  border-radius: 50%;
  border: 0;
  background: var(--lbc-blue);
  color: #fff;
  box-shadow: 0 12px 28px rgba(21,94,239,.22);
}
.local-search-card__map .local-search-card__pin {
  color: #fff;
  font-size: inherit;
}
.local-search-card__map .local-search-card__pin .lbc-icon {
  width: 1.65rem;
  height: 1.65rem;
  color: #fff;
  stroke: #fff;
}
.local-search-card__results { gap: .72rem; }
.local-search-card__results span {
  position: relative;
  height: 3rem;
  padding-left: 3.25rem;
  background: #fff;
}
.local-search-card__results span::before {
  content: '';
  position: absolute;
  left: 1rem;
  top: 50%;
  width: .72rem;
  height: .72rem;
  border-radius: 50%;
  background: var(--lbc-blue);
  transform: translateY(-50%);
  box-shadow: 0 0 0 .34rem var(--lbc-blue-light);
}
.local-search-card__results span:nth-child(2)::before { background: var(--lbc-orange); box-shadow: 0 0 0 .34rem #fff3eb; }
.local-search-card__results span::after {
  content: '';
  position: absolute;
  left: 3rem;
  right: 1rem;
  top: 50%;
  height: .42rem;
  border-radius: 999px;
  background: #e7edf6;
  transform: translateY(-50%);
}
.local-proof__client { display: flex; align-items: center; gap: .9rem; margin-bottom: .55rem; min-height: 2.6rem; }
.local-proof__client .lbc-eyebrow { margin: 0; }
.local-proof__logo { display: block; width: auto; max-width: 10rem; max-height: 3rem; object-fit: contain; }
.realisations-card__client { display: flex; align-items: center; gap: .7rem; margin: .2rem 0 .15rem; }
.realisations-card__client p { margin: 0; color: var(--lbc-text-muted); font-weight: 700; }
.realisations-card__client-logo { display: block; width: auto; max-width: 8rem; max-height: 2.2rem; object-fit: contain; }
.realisation-hero__client { display: flex; align-items: center; gap: .8rem; margin: .3rem 0 .85rem; }
.realisation-hero__client-name { margin: 0; font-weight: 700; color: var(--lbc-text-muted); }
.realisation-hero__client-logo { display: block; width: auto; max-width: 9rem; max-height: 2.6rem; object-fit: contain; }
.realisation-facts__client { display: flex; align-items: center; gap: .7rem; }
.realisation-facts__client-logo { display: block; width: auto; max-width: 7rem; max-height: 2rem; object-fit: contain; }
@media (max-width: 782px) {
  .local-proof__client, .realisations-card__client, .realisation-hero__client, .realisation-facts__client { flex-wrap: wrap; }
}


/* v1.4.3 — local hero pin visual centering */
.local-search-card__map .local-search-card__pin {
  position: relative;
}
.local-search-card__map .local-search-card__pin .lbc-icon {
  display: block;
  margin: auto;
  transform: translate(.06rem, .08rem);
  transform-origin: center;
}


/* v1.4.4 — optical vertical centering for local hero pin icon */
.local-search-card__map .local-search-card__pin {
  position: relative;
}
.local-search-card__map .local-search-card__pin .lbc-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1.65rem;
  height: 1.65rem;
  margin: 0;
  transform: translate(-50%, -42%);
}


/* v1.5.1 — footer menu fallbacks */
.site-footer__heading { display: block; margin-bottom: .75rem; }
.site-footer__fallback-menu, .site-footer .menu { display: grid; gap: .45rem; }
.site-footer__fallback-menu a, .site-footer .menu a { display: inline-flex; padding-block: .1rem; }
@media (max-width: 767px) {
  .site-footer__grid { gap: 1.5rem; }
  .site-footer__heading { margin-bottom: .55rem; }
}
