/* MediShift Pharma – styles complémentaires à theme.json
   Charte : bleu marine #103D60, vert #62AC1F (logo MediShift Pharma), police Barlow.
   Couleurs : var(--wp--preset--color--marine|marine-fonce|vert|vert-fonce|bleu-pale|vert-pale|bleu-clair|encre|gris|ligne|blanc) */

:root {
	--ms-ligne: #D9E2EA;
	--ms-texte-doux: #3E4C59;
	--ms-section: clamp(4rem, 9vw, 7rem);
	--ms-gouttiere: clamp(2rem, 6vw, 6rem);
}

html { text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

h1, h2, h3 { text-wrap: balance; }
p, li { text-wrap: pretty; }
a {
	text-underline-offset: 0.2em;
	text-decoration-thickness: 2px;
	text-decoration-color: var(--wp--preset--color--vert);
}
a:hover { text-decoration-color: currentColor; }

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--wp--preset--color--vert-fonce);
	outline-offset: 2px;
}

/* ---------------------------------------------------------------- Header */

.ms-site-header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 50;
}
.ms-header {
	background: var(--wp--preset--color--blanc);
	border-bottom: 1px solid var(--ms-ligne);
	padding-top: 0.7rem;
	padding-bottom: 0.7rem;
}
.ms-header__bar {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
}
.ms-header__bar > * { margin-block: 0 !important; }

/* Logo */
.ms-logo { display: inline-block; line-height: 0; text-decoration: none; }
.ms-logo img { display: block; height: clamp(40px, 5vw, 50px); width: auto; }
.ms-logo--pied img { height: clamp(72px, 8vw, 88px); }

.ms-nav { gap: clamp(1rem, 2.2vw, 2rem); }
.ms-nav .wp-block-navigation-item__content { padding-block: 0.35rem; }
.ms-nav .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--vert-fonce);
	box-shadow: inset 0 -2px 0 var(--wp--preset--color--vert);
}
/* The last menu item (Contact) is shown as a button on large screens. */
@media (min-width: 1024px) {
	.ms-nav .wp-block-navigation__container > .wp-block-navigation-item:last-child > .wp-block-navigation-item__content {
		background: var(--wp--preset--color--marine);
		color: var(--wp--preset--color--blanc);
		border-radius: 4px;
		padding: 0.55rem 1.15rem;
		margin-left: 0.5rem;
		box-shadow: none;
	}
	.ms-nav .wp-block-navigation__container > .wp-block-navigation-item:last-child > .wp-block-navigation-item__content:hover {
		background: var(--wp--preset--color--marine-fonce);
		color: var(--wp--preset--color--blanc);
	}
}

/* Hamburger menu up to 1023px (WordPress only switches below 600px). */
@media (min-width: 600px) and (max-width: 1023px) {
	.ms-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.ms-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}

/* Mobile menu overlay */
.wp-block-navigation__responsive-container.is-menu-open {
	padding: clamp(1.5rem, 6vw, 3rem);
	background: var(--wp--preset--color--blanc);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: 1.75rem;
	font-weight: 600;
	color: var(--wp--preset--color--marine);
	box-shadow: none !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 1rem; }
.ms-nav .wp-block-navigation__responsive-container.is-menu-open,
.ms-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.ms-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	--navigation-layout-justification-setting: flex-start;
	--navigation-layout-justify: flex-start;
	--navigation-layout-align: flex-start;
	align-items: flex-start;
}

/* ---------------------------------------------------------------- Buttons */

.wp-block-button.is-style-ms-clair .wp-block-button__link {
	background: var(--wp--preset--color--blanc);
	color: var(--wp--preset--color--marine);
}
.wp-block-button.is-style-ms-clair .wp-block-button__link:hover {
	background: var(--wp--preset--color--vert-pale);
	color: var(--wp--preset--color--marine);
}
.wp-block-button.is-style-ms-contour-clair .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--blanc);
	box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, 0.6);
}
.wp-block-button.is-style-ms-contour-clair .wp-block-button__link:hover {
	background: rgba(255, 255, 255, 0.08);
	box-shadow: inset 0 0 0 1.5px var(--wp--preset--color--vert);
}
.wp-block-button.is-style-ms-contour .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--marine);
	box-shadow: inset 0 0 0 1.5px var(--wp--preset--color--marine);
}
.wp-block-button.is-style-ms-contour .wp-block-button__link:hover {
	background: var(--wp--preset--color--marine);
	color: var(--wp--preset--color--blanc);
}
.ms-hero :where(a, button):focus-visible { outline-color: var(--wp--preset--color--vert); }

/* ---------------------------------------------------------------- Main / page content */

.ms-main { margin-top: 0 !important; }
.ms-main > * { margin-block: 0 !important; }
.ms-page-content { padding-bottom: 0; }
.ms-page-content:not(.ms-page-content--nu) { padding-top: clamp(3rem, 7vw, 5rem); }
.ms-page-content > h2 { margin-top: clamp(2.75rem, 6vw, 4rem); margin-bottom: 0.9rem; }
.ms-page-content > h2:first-child { margin-top: 0; }
.ms-page-content > :last-child:not(.ms-cta) { margin-bottom: var(--ms-section); }
.ms-page-content > .ms-cta:last-child { margin-top: var(--ms-section); }
.ms-page-content--nu > .ms-cta:last-child { margin-top: 0; }

.ms-lead {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.5;
	color: var(--ms-texte-doux);
}

/* Page header band with the flow strip */
.ms-page-header {
	background:
		url("../images/bandeau.svg") center bottom / 100% 56px no-repeat,
		var(--wp--preset--color--bleu-pale);
	padding-top: clamp(3rem, 7vw, 5.5rem);
	padding-bottom: calc(clamp(2.5rem, 5vw, 3.5rem) + 48px);
}
.ms-page-title {
	font-size: clamp(2.25rem, 5vw, 3.5rem) !important;
	line-height: 1.05;
	letter-spacing: -0.015em;
	margin: 0;
}
.ms-page-lead,
.ms-page-header .wp-block-post-excerpt__excerpt {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.5;
	color: var(--ms-texte-doux);
	margin-top: 1rem;
	margin-bottom: 0;
}
.ms-page-date { color: var(--wp--preset--color--gris); font-size: var(--wp--preset--font-size--small); }

/* ---------------------------------------------------------------- Hero */

.ms-hero {
	background: var(--wp--preset--color--marine);
	color: var(--wp--preset--color--blanc);
	padding-top: clamp(3.5rem, 9vw, 7rem);
	padding-bottom: 0;
	overflow: hidden;
}
.ms-hero__inner > * { max-width: 40rem; }
.ms-hero__title {
	color: var(--wp--preset--color--blanc) !important;
	font-size: var(--wp--preset--font-size--huge) !important;
	font-weight: 600 !important;
	max-width: 15ch !important;
	margin: 0;
}
.ms-hero__lead {
	color: var(--wp--preset--color--bleu-clair);
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.5;
	margin-top: 1.5rem;
}
.ms-hero .wp-block-buttons { margin-top: 2rem; }
.ms-hero > .ms-hero__art {
	margin-top: clamp(0.5rem, 3vw, 2rem) !important;
	margin-bottom: 0 !important;
	max-width: none !important;
}
.ms-hero__art img {
	display: block;
	width: 100%;
	height: clamp(200px, 24vw, 360px);
	object-fit: cover;
	object-position: 70% 100%;
}

/* ---------------------------------------------------------------- Sections */

.ms-section {
	padding-top: var(--ms-section);
	padding-bottom: var(--ms-section);
}
.ms-section--rose,
.ms-section--pale { background: var(--wp--preset--color--bleu-pale); }
.ms-section--filet { border-top: 1px solid var(--ms-ligne); }
.ms-section h2 { margin-top: 0; }

.ms-split { column-gap: var(--ms-gouttiere) !important; }
.ms-split > .wp-block-column > :first-child { margin-top: 0; }

.ms-section__head { margin-bottom: clamp(2.5rem, 5vw, 3.5rem); }
.ms-section__head > * { max-width: 40rem; }

/* Advantages / items with a top rule */
.ms-points > .ms-point + .ms-point { margin-top: 1.75rem; }
.ms-point {
	border-top: 1px solid var(--ms-ligne);
	padding-top: 1.35rem;
}
.ms-point h3 { margin: 0 0 0.45rem; }
.ms-point p { margin: 0; }

.ms-grille {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
	gap: 2rem 2.5rem;
	margin-top: 1.5rem;
}
.ms-grille > * { margin: 0 !important; }

/* Numbered steps (home): a real sequence, numbered with CSS counters */
.ms-steps {
	counter-reset: etape;
	column-gap: clamp(1.5rem, 3vw, 2.5rem) !important;
}
.ms-steps > .wp-block-column {
	counter-increment: etape;
	border-top: 3px solid var(--wp--preset--color--vert);
	padding-top: 1.25rem;
}
.ms-steps > .wp-block-column::before {
	content: counter(etape);
	display: block;
	font-size: 3rem;
	font-weight: 600;
	line-height: 1;
	color: var(--wp--preset--color--marine);
	margin-bottom: 1rem;
}
.ms-steps h3 { margin: 0 0 0.6rem; }
.ms-steps p { margin: 0; }
@media (max-width: 781px) {
	.ms-steps > .wp-block-column + .wp-block-column { margin-top: 1.5rem; }
}

/* Numbered steps (approach page, vertical) */
.ms-etapes { counter-reset: etape; margin-top: 1.5rem; }
.ms-etape {
	counter-increment: etape;
	position: relative;
	padding: 1.4rem 0 0 3.75rem;
	border-top: 1px solid var(--ms-ligne);
}
.ms-etapes > .ms-etape + .ms-etape { margin-top: 1.6rem; }
.ms-etape::before {
	content: counter(etape);
	position: absolute;
	left: 0;
	top: 1.1rem;
	width: 2.4rem;
	height: 2.4rem;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--wp--preset--color--vert);
	color: var(--wp--preset--color--marine);
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1;
}
.ms-etape h3 { margin: 0 0 0.45rem; }
.ms-etape p { margin: 0; }

/* Criteria list */
.ms-criteres { list-style: none; padding-left: 0 !important; }
.ms-criteres li {
	position: relative;
	padding-left: 1.6rem;
	margin-top: 0.7rem;
}
.ms-criteres li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.5em;
	width: 0.7rem;
	height: 0.7rem;
	border-radius: 0.35rem 0.35rem 0.35rem 0;
	background: var(--wp--preset--color--vert);
	transform: rotate(-45deg);
}

/* Pipeline */
.ms-pipeline-wrap { margin-top: 0 !important; }
.ms-pipeline {
	width: 100%;
	border-collapse: collapse;
	table-layout: fixed;
	margin: 0;
}
.ms-pipeline th,
.ms-pipeline td {
	text-align: left;
	vertical-align: middle;
	border-bottom: 1px solid var(--ms-ligne);
	padding: 1.1rem 0.75rem 1.1rem 0;
}
.ms-pipeline thead th {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	color: var(--wp--preset--color--gris);
	border-bottom: 2px solid var(--wp--preset--color--marine);
	padding-top: 0;
	padding-bottom: 0.7rem;
}
.ms-pipeline thead th:first-child { width: 22%; }
.ms-pipeline tbody th {
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 600;
	color: var(--wp--preset--color--marine);
}
.ms-pipeline td { padding-right: 0; }
.ms-pipeline__piste {
	position: relative;
	height: 16px;
	border-radius: 8px;
	background:
		repeating-linear-gradient(90deg, transparent 0 calc(20% - 2px), var(--wp--preset--color--blanc) calc(20% - 2px) 20%),
		var(--wp--preset--color--bleu-pale);
}
.ms-pipeline__barre {
	position: absolute;
	inset: 0 auto 0 0;
	width: calc((var(--ms-etape, 1) - 0.3) * 20%);
	border-radius: 8px;
	background: var(--wp--preset--color--vert);
}
.ms-pipeline__barre::after {
	content: "";
	position: absolute;
	right: -9px;
	top: 50%;
	transform: translateY(-50%);
	border-left: 10px solid var(--wp--preset--color--vert);
	border-top: 8px solid transparent;
	border-bottom: 8px solid transparent;
}
.ms-pipeline__statut {
	margin: 0.55rem 0 0;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	color: var(--wp--preset--color--vert-fonce);
}
@media (max-width: 599px) {
	.ms-pipeline thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
	}
	.ms-pipeline,
	.ms-pipeline tbody,
	.ms-pipeline tr,
	.ms-pipeline th,
	.ms-pipeline td { display: block; width: 100%; }
	.ms-pipeline tbody tr { border-top: 2px solid var(--wp--preset--color--marine); padding: 1rem 0; }
	.ms-pipeline tbody th,
	.ms-pipeline td { border: 0; padding: 0; }
	.ms-pipeline td { margin-top: 0.75rem; }
}

/* Figures */
.ms-figure-repositionnement { margin-top: 2rem !important; margin-bottom: 0.5rem !important; }
.ms-figure-repositionnement img { width: 100%; max-width: 56rem; height: auto; display: block; margin-inline: auto; }
.wp-element-caption {
	color: var(--wp--preset--color--gris);
	font-size: var(--wp--preset--font-size--small);
	margin-top: 0.75rem;
}

/* Team page */
.ms-personne {
	border-top: 1px solid var(--ms-ligne);
	padding-top: 1.25rem;
}
.ms-personne h3 { margin: 0; }
.ms-role {
	color: var(--wp--preset--color--vert-fonce);
	font-weight: 600;
	font-size: var(--wp--preset--font-size--small);
	margin-top: 0.25rem !important;
}
.ms-personne > p:last-child { margin-top: 0.75rem; }
/* Placeholders the owner must complete before publishing */
.ms-a-completer {
	background: #FFF1A8;
	color: #5A4500;
	outline: 1px dashed #B8961E;
	padding: 0 0.2em;
	border-radius: 2px;
}

.ms-maj { color: var(--wp--preset--color--gris); font-size: var(--wp--preset--font-size--small); margin-top: 3rem !important; }

/* ---------------------------------------------------------------- Call to action band */

.ms-cta {
	background: var(--wp--preset--color--vert-pale);
	border-top: 4px solid var(--wp--preset--color--vert);
	padding-top: clamp(3.5rem, 7vw, 5.5rem);
	padding-bottom: clamp(3.5rem, 7vw, 5.5rem);
}
.ms-cta__inner > * { max-width: 38rem; }
.ms-cta h2 { margin: 0; }
.ms-cta p { margin-top: 0.9rem; font-size: var(--wp--preset--font-size--large); color: var(--ms-texte-doux); }
.ms-cta .wp-block-buttons { margin-top: 1.75rem; }

/* ---------------------------------------------------------------- Contact */

.ms-coordonnees { margin-top: clamp(3rem, 6vw, 4.5rem) !important; }
.ms-coordonnees h3 { font-size: 1.25rem; }

.ms-form { display: grid; gap: 1.25rem; }
.ms-form__row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: 1.25rem; }
.ms-form__field { display: grid; gap: 0.4rem; align-content: start; }
.ms-form label { font-weight: 600; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--marine); }
.ms-req { color: var(--wp--preset--color--vert-fonce); }
.ms-form input[type="text"],
.ms-form input[type="email"],
.ms-form select,
.ms-form textarea {
	width: 100%;
	box-sizing: border-box;
	font: inherit;
	color: var(--wp--preset--color--encre);
	background: var(--wp--preset--color--blanc);
	border: 1px solid #B7C5D2;
	border-radius: 4px;
	padding: 0.7rem 0.85rem;
	line-height: 1.4;
}
.ms-form textarea { resize: vertical; min-height: 10rem; }
.ms-form :is(input, select, textarea):focus { border-color: var(--wp--preset--color--marine); }
.ms-form :is(input, select, textarea)[aria-invalid="true"] { border-color: #B42318; }
.ms-form__error { color: #B42318; font-size: var(--wp--preset--font-size--small); margin: 0; }
.ms-form__note { color: var(--wp--preset--color--gris); font-size: var(--wp--preset--font-size--small); margin: 0; }
.ms-form .wp-block-button__link { border: 0; cursor: pointer; }
.ms-form__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ms-notice { padding: 1rem 1.25rem; border-left: 4px solid; margin-bottom: 1.5rem; }
.ms-notice p { margin: 0; }
.ms-notice--ok { background: var(--wp--preset--color--vert-pale); border-color: var(--wp--preset--color--vert); }
.ms-notice--erreur { background: #FDECEA; border-color: #B42318; }

/* ---------------------------------------------------------------- Footer */

.ms-site-footer { margin-top: 0 !important; }
.ms-site-footer > * { margin-block: 0 !important; }
.ms-footer {
	background: var(--wp--preset--color--bleu-pale);
	border-top: 1px solid var(--ms-ligne);
	color: var(--ms-texte-doux);
	padding-top: clamp(3rem, 6vw, 4.5rem);
	padding-bottom: clamp(2.5rem, 5vw, 3.5rem);
	font-size: var(--wp--preset--font-size--small);
}
.ms-footer a { color: var(--wp--preset--color--marine); font-weight: 500; }
.ms-footer a:hover { color: var(--wp--preset--color--vert-fonce); }
.ms-footer__cols { column-gap: var(--ms-gouttiere) !important; }
.ms-footer__about p { max-width: 22rem; margin-top: 1.25rem; }
.ms-footer__links { list-style: none; padding-left: 0 !important; margin: 0; }
.ms-footer__links li + li { margin-top: 0.45rem; }
.ms-footer .wp-block-column > p:first-child { margin-top: 0; }

.ms-footer-barre {
	background: var(--wp--preset--color--marine);
	color: var(--wp--preset--color--bleu-clair);
	padding-top: 1.1rem;
	padding-bottom: 1.1rem;
	font-size: var(--wp--preset--font-size--small);
}
.ms-footer-barre a { color: var(--wp--preset--color--blanc); text-decoration-color: var(--wp--preset--color--vert); }
.ms-footer-barre a:hover { color: var(--wp--preset--color--blanc); text-decoration-color: currentColor; }
.ms-footer-barre :where(a):focus-visible { outline-color: var(--wp--preset--color--vert); }
.ms-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 2rem;
}
.ms-footer__legal > * { margin: 0 !important; }
.ms-footer__legal > :first-child { margin-right: auto !important; }

/* ---------------------------------------------------------------- Blog (if used) */

.ms-articles > li { border-top: 1px solid var(--ms-ligne); padding-top: 1.5rem; margin-bottom: 2rem; }
.ms-articles h2 { font-size: var(--wp--preset--font-size--x-large); margin: 0.25rem 0 0.5rem; }
.ms-articles h2 a { color: var(--wp--preset--color--marine); text-decoration: none; }

/* ---------------------------------------------------------------- Small screens */

@media (max-width: 599px) {
	.ms-footer__legal { flex-direction: column; }
}
@media (max-width: 781px) {
	.ms-split > .wp-block-column + .wp-block-column { margin-top: 2rem; }
	.ms-footer__cols > .wp-block-column + .wp-block-column { margin-top: 1.5rem; }
}
