/* ORB SOLUTIONS · compléments au theme.json
   (styles de blocs, cartes, démarche, formulaire, orbite animée) */

html { scroll-behavior: smooth; scroll-padding-top: 96px; }
body { -webkit-font-smoothing: antialiased; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
:focus-visible { outline: 3px solid var(--wp--preset--color--gold); outline-offset: 3px; }
h1, h2, h3, h4 { text-wrap: balance; }

/* En-tête collant */
.orb-site-header { position: sticky; top: 0; z-index: 50; }
.admin-bar .orb-site-header { top: var(--wp-admin--admin-bar--height, 32px); }
.orb-header { background: rgba(255, 255, 255, .94) !important; backdrop-filter: saturate(1.4) blur(10px); }
.orb-header .wp-block-navigation a { color: var(--wp--preset--color--navy); text-decoration: none; }
.orb-header .wp-block-navigation a:hover { color: var(--wp--preset--color--cyan-deep); }
.orb-header .wp-block-navigation__responsive-container.is-menu-open { padding: 24px var(--wp--style--root--padding-left); }
.orb-logo img { height: auto; }
@media (max-width: 600px) {
	.orb-logo img { width: 140px !important; }
	.orb-header-cta { display: none !important; }
}

/* Surtitre */
.is-style-orb-eyebrow {
	font-family: var(--wp--preset--font-family--mono);
	font-weight: 500;
	font-size: .78rem;
	line-height: 1.3;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.is-style-orb-eyebrow:not(.has-text-color) { color: var(--wp--preset--color--cyan-deep); }

/* Boutons */
.wp-block-button.is-style-orb-ghost .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--white);
	box-shadow: inset 0 0 0 1.5px var(--wp--preset--color--cyan-light);
}
.wp-block-button.is-style-orb-ghost .wp-block-button__link:hover { background: rgba(60, 200, 228, .12); color: var(--wp--preset--color--white); }
.wp-block-button.is-style-orb-dark .wp-block-button__link { background: var(--wp--preset--color--navy); color: var(--wp--preset--color--white); }
.wp-block-button.is-style-orb-dark .wp-block-button__link:hover { background: #12305C; }

/* Bandeau principal */
.orb-hero h1 { color: var(--wp--preset--color--white); }
.orb-hero h1 mark { background-color: transparent; }
.orb-hero-tags { display: flex; flex-wrap: wrap; gap: 8px 18px; font: 500 .8rem/1.4 var(--wp--preset--font-family--mono); letter-spacing: .04em; color: var(--wp--preset--color--on-navy); }
.orb-hero-tags span::before { content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--wp--preset--color--gold); margin-right: 8px; vertical-align: middle; }
.orb-orbit { width: min(100%, 420px); aspect-ratio: 1; margin-inline: auto; }
.orb-orbit svg { width: 100%; height: 100%; overflow: visible; display: block; }
.orb-orbit .orb-spin { transform-origin: 50% 50%; animation: orb-rotate 14s linear infinite; }
.orb-orbit .orb-spin-slow { transform-origin: 50% 50%; animation: orb-rotate 40s linear infinite reverse; }
@keyframes orb-rotate { to { transform: rotate(360deg); } }
@media (max-width: 781px) {
	.orb-hero .wp-block-column:last-child { order: -1; }
	.orb-orbit { width: min(70%, 300px); }
}

/* Bandeau des pôles */
.orb-pole-label { font: 600 .98rem/1.2 var(--wp--preset--font-family--display); margin: 0; }
.orb-poles .orb-icon { margin: 0; }

/* Icônes et cartes */
.orb-icon img { display: block; }
.is-style-orb-card .orb-icon { width: 52px; height: 52px; border-radius: 50%; background: var(--wp--preset--color--mist); display: grid; place-items: center; margin: 0; }
.is-style-orb-card .orb-icon img { width: 26px !important; }
.is-style-orb-card {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 12px;
	padding: 28px;
	height: 100%;
	transition: border-color .2s, box-shadow .2s;
}
.is-style-orb-card:hover { border-color: var(--wp--preset--color--cyan); box-shadow: var(--wp--preset--shadow--card); }
.orb-cards + .orb-cards { margin-top: 20px; }
.orb-cards > .wp-block-column { display: flex; flex-direction: column; }
.orb-cards > .wp-block-column > .is-style-orb-card { flex: 1; }
.is-style-orb-card p { color: var(--wp--preset--color--navy); }

/* Liste à puces « orbite » */
.is-style-orb-orbit-list { list-style: none; padding-left: 0 !important; display: grid; gap: 8px; color: var(--wp--preset--color--slate); margin: 0; }
.is-style-orb-orbit-list li { padding-left: 20px; position: relative; }
.is-style-orb-orbit-list li::before { content: ""; position: absolute; left: 2px; top: .62em; width: 7px; height: 7px; border-radius: 50%; border: 1.5px solid var(--wp--preset--color--cyan); }

/* Démarche */
.orb-steps { position: relative; }
.orb-step-num {
	width: 48px; height: 48px; border-radius: 50%;
	display: grid; place-items: center;
	background: var(--wp--preset--color--navy); color: var(--wp--preset--color--white);
	font: 700 1.1rem/1 var(--wp--preset--font-family--display);
	box-shadow: 0 0 0 6px var(--wp--preset--color--white);
	position: relative; z-index: 1; margin: 0;
}
.orb-steps > .wp-block-column:last-child .orb-step-num { background: var(--wp--preset--color--gold); color: var(--wp--preset--color--navy); }
@media (min-width: 782px) {
	.orb-steps::before { content: ""; position: absolute; top: 23px; left: 24px; right: 24px; height: 2px; background: repeating-linear-gradient(90deg, var(--wp--preset--color--cyan) 0 8px, transparent 8px 14px); }
}

/* Engagements */
.orb-why-item { padding-top: 18px; border-top: 2px solid var(--wp--preset--color--navy); }

/* Coordonnées */
.orb-coord { font: 600 1.05rem/1.4 var(--wp--preset--font-family--display); margin: 0; }
.orb-coord a { color: var(--wp--preset--color--navy); text-decoration: none; }
.orb-coord a:hover { color: var(--wp--preset--color--cyan-deep); }

/* Formulaire de contact [orb_contact] */
.orb-form {
	display: grid; grid-template-columns: 1fr 1fr; gap: 18px;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line); border-radius: 12px;
	padding: clamp(20px, 4vw, 36px);
}
.orb-form p { margin: 0; }
.orb-field { display: grid; gap: 6px; }
.orb-field.is-full, .orb-consent, .orb-submit, .orb-form-status { grid-column: 1 / -1; }
.orb-field label { font-weight: 600; font-size: .95rem; }
.orb-field label span { font-weight: 400; color: var(--wp--preset--color--slate); }
.orb-field input, .orb-field select, .orb-field textarea {
	font: inherit; color: var(--wp--preset--color--navy);
	border: 1.5px solid var(--wp--preset--color--line); border-radius: 8px;
	padding: 12px 14px; background: var(--wp--preset--color--white); width: 100%;
}
.orb-field textarea { min-height: 150px; resize: vertical; }
.orb-field input:focus, .orb-field select:focus, .orb-field textarea:focus { outline: none; border-color: var(--wp--preset--color--cyan); box-shadow: 0 0 0 3px rgba(0, 150, 183, .18); }
.orb-consent { display: flex; gap: 10px; align-items: flex-start; font-size: .92rem; color: var(--wp--preset--color--slate); }
.orb-consent input { margin-top: 4px; width: 18px; height: 18px; accent-color: var(--wp--preset--color--navy); flex: none; }
.orb-hp { position: absolute !important; left: -9999px; }
.orb-submit .wp-element-button { background: var(--wp--preset--color--navy); color: var(--wp--preset--color--white); border: 0; cursor: pointer; }
.orb-submit .wp-element-button:hover { background: #12305C; color: var(--wp--preset--color--white); }
.orb-form-status { border-radius: 8px; padding: 12px 14px; font-weight: 600; }
.orb-form-status.is-ok { background: #E5F5EC; color: #146B3A; }
.orb-form-status.is-error { background: #FDECEA; color: #A52A20; }
@media (max-width: 600px) { .orb-form { grid-template-columns: 1fr; } }

/* Pied de page */
.orb-footer-title { font: 500 .75rem/1.2 var(--wp--preset--font-family--mono) !important; letter-spacing: .12em; text-transform: uppercase; color: var(--wp--preset--color--cyan-light); }
.orb-plain-list { list-style: none; padding-left: 0 !important; display: grid; gap: 8px; margin: 0; }
.orb-plain-list a, .orb-footer-bottom a { text-decoration: none; }

/* Pages de texte */
.orb-prose p, .orb-prose li { color: #2E3F58; }
.orb-prose h2 { margin-top: 2em; }
.orb-prose .wp-block-post-content > :first-child { margin-top: 0; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.orb-orbit .orb-spin, .orb-orbit .orb-spin-slow { animation: none; }
}
