/* ip73: share buttons (mu-plugins/ip73-newsroom.php) */
.ip73-share { margin: 2.5em 0 1.5em; display: flex; flex-wrap: wrap; gap: .5em; align-items: center; }
.ip73-share .ip73-share-title { font-weight: 600; margin-right: .5em; }
.ip73-share a[class^="ip73-share-"] {
	display: inline-flex; align-items: center; padding: .5em 1.1em; border-radius: 4px; border: 0 !important;
	background: #f0f0f0; color: #222 !important; font-size: .85em; font-weight: 600; line-height: 1.2;
	text-decoration: none !important; box-shadow: none !important; transition: background .15s, color .15s;
}
.ip73-share a[class^="ip73-share-"]:hover, .ip73-share a[class^="ip73-share-"]:focus { color: #fff !important; }
.ip73-share a.ip73-share-facebook:hover, .ip73-share a.ip73-share-facebook:focus { background: #1877f2; }
.ip73-share a.ip73-share-x:hover, .ip73-share a.ip73-share-x:focus { background: #000; }
.ip73-share a.ip73-share-linkedin:hover, .ip73-share a.ip73-share-linkedin:focus { background: #0a66c2; }
.ip73-share a.ip73-share-bluesky:hover, .ip73-share a.ip73-share-bluesky:focus { background: #1185fe; }
.ip73-share a.ip73-share-email:hover, .ip73-share a.ip73-share-email:focus { background: #555; }
.ip73-404-latest { margin: 1em 0 2em; }

/* ip73: visually hidden but readable by screen readers and crawlers */
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px;
	overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }

/* Contact form (page-contact.php) */
.ip73-contact { max-width: 640px; margin: 2em 0; }
.ip73-contact .ip73-field { margin: 0 0 1.1em; }
.ip73-contact label { display: block; font-weight: 600; margin-bottom: .35em; }
.ip73-contact input[type=text], .ip73-contact input[type=email], .ip73-contact select, .ip73-contact textarea {
	width: 100%; box-sizing: border-box; padding: .6em .75em; border: 1px solid #ccc; border-radius: 4px; font: inherit; background: #fff; }
.ip73-contact textarea { resize: vertical; }
.ip73-contact .ip73-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ip73-contact .cf-turnstile { margin: 0 0 1em; }
.ip73-contact .ip73-c-send { padding: .7em 1.6em; border: 0; border-radius: 4px; background: #111; color: #fff; font: inherit;
	font-weight: 600; cursor: pointer; }
.ip73-contact .ip73-c-send:disabled { opacity: .6; cursor: wait; }
.ip73-c-status:empty { display: none; }
.ip73-c-status { font-size: 1.25em; line-height: 1.5; padding: .9em 1.1em; border-radius: 6px; border-left: 5px solid; }
.ip73-c-status.is-ok { color: #14532d; background: #e8f5ec; border-color: #1a7f37; }
.ip73-c-status.is-error { color: #7f1d1d; background: #fdecea; border-color: #c0392b; }
.ip73-c-privacy { font-size: .85em; opacity: .75; }

/* Left sidebar twice the theme's 270px on large screens, scaled down on smaller ones. Below 960px the theme turns it
   into a top bar: untouched. */
@media only screen and (min-width: 961px) {
	html body.side-header { padding-left: 360px; }
	html body.side-header #header { width: 360px; }
}
@media only screen and (min-width: 1200px) {
	html body.side-header { padding-left: 440px; }
	html body.side-header #header { width: 440px; }
}
@media only screen and (min-width: 1400px) {
	html body.side-header { padding-left: 540px; }
	html body.side-header #header { width: 540px; }
}


/* Home grid: news cards (image, then category, title, date) in a CSS grid. The theme's Isotope still runs and writes
   absolute positions inline; the !important rules below neutralise them so rows line up on the tallest card.
   Column counts divide the 24 home posts so the last row is always full. Phones (<=600px) keep one column. */
.home-grid .portfolio-wrapper .grid {
	display: grid; grid-template-columns: 1fr; gap: 40px 24px; margin: 0 0 3em; overflow: visible; height: auto !important;
}
.home-grid .grid .ip73-card {
	position: static !important; left: auto !important; top: auto !important; transform: none !important;
	width: auto !important; float: none; margin: 0; min-width: 0;
}
@media only screen and (min-width: 601px) { .home-grid .portfolio-wrapper .grid { grid-template-columns: repeat(2, 1fr); } }
@media only screen and (min-width: 801px) { .home-grid .portfolio-wrapper .grid { grid-template-columns: repeat(3, 1fr); } }
@media only screen and (min-width: 1400px) { .home-grid .portfolio-wrapper .grid { grid-template-columns: repeat(4, 1fr); } }
@media only screen and (min-width: 1800px) { .home-grid .portfolio-wrapper .grid { grid-template-columns: repeat(6, 1fr); } }

.ip73-card-link { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; }
.ip73-card-media { position: relative; overflow: hidden; border-radius: 10px; aspect-ratio: 3 / 2; background: #f1f1f1; }
.ip73-card-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.ip73-card-media::after { content: ""; position: absolute; inset: 0; border-radius: inherit;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .06); pointer-events: none; }
.ip73-card-body { display: flex; flex-direction: column; gap: 6px; padding-top: 14px; }
.ip73-card-cat { font-size: 11px; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; color: #8a8a8a; line-height: 1.3; }
html body .ip73-card-title { margin: 0; padding: 0; font-size: 16px; font-weight: 600; line-height: 1.38; letter-spacing: -.005em;
	color: #111; text-transform: none; transform: none;
	display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
.ip73-card-date { font-size: 13px; color: #9a9a9a; line-height: 1.3; }
.ip73-card-link:hover .ip73-card-media img, .ip73-card-link:focus-visible .ip73-card-media img { transform: scale(1.04); }
.ip73-card-link:hover .ip73-card-title { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.ip73-card-link:focus-visible { outline: 2px solid #111; outline-offset: 4px; border-radius: 12px; }
@media (prefers-reduced-motion: reduce) { .ip73-card-media img { transition: none; } }
@media only screen and (max-width: 600px) { html body .ip73-card-title { font-size: 18px; } }
@media only screen and (max-width: 960px) { .home-grid .portfolio-wrapper .grid { margin: 0 16px 3em; } }

/* "À lire aussi" under an article: 2x2 cards, one column on phones */
.ip73-related { margin: 3.5em 0 1em; padding-top: 2em; border-top: 1px solid #ececec; }
html body .ip73-related-title { font-size: 13px; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; color: #111;
	margin: 0 0 1.4em; }
.ip73-related-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 24px; }
.ip73-related .ip73-card { margin: 0; padding: 0; border: 0; }
@media only screen and (max-width: 600px) {
	.ip73-related-grid { grid-template-columns: 1fr; gap: 20px; }
	.ip73-related .ip73-card-link { flex-direction: row; gap: 14px; align-items: flex-start; }
	.ip73-related .ip73-card-media { flex: 0 0 112px; aspect-ratio: 1 / 1; border-radius: 8px; }
	.ip73-related .ip73-card-body { padding-top: 0; gap: 4px; min-width: 0; }
	html body .ip73-related .ip73-card-title { font-size: 15px; }
}

/* Archives (category, tag, date): title, 2-column cards with a summary, numbered pages; no right sidebar */
.ip73-archive .container { max-width: none; }
.ip73-archive-head { margin: 0 0 2em; padding-top: 40px; }
@media only screen and (max-width: 960px) { .ip73-archive-head { padding-top: 0; } }
html body .ip73-archive-grid article.ip73-card { border: 0; padding: 0; margin: 0; }
html body .ip73-archive-head .page-title { font-size: 32px; font-weight: 600; letter-spacing: -.01em; margin: 0; }
.ip73-archive-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 44px 24px; }
@media only screen and (max-width: 1399px) { .ip73-archive-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media only screen and (max-width: 960px) { .ip73-archive-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ip73-card-lg .ip73-card-media { aspect-ratio: 3 / 2; }
.ip73-card-lg .ip73-card-body { gap: 8px; padding-top: 16px; }
.ip73-card-meta { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; }
html body .ip73-card-lg .ip73-card-title { font-size: 17px; line-height: 1.35; -webkit-line-clamp: 3; line-clamp: 3; }
.ip73-card-summary { margin: 0; font-size: 14px; line-height: 1.55; color: #555;
	display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
@media only screen and (max-width: 600px) {
	.ip73-archive-grid { grid-template-columns: 1fr; gap: 40px; }
	html body .ip73-archive-head .page-title { font-size: 26px; }
}

/* Numbered pages */
.ip73-pagination { margin: 3.5em 0 2em; clear: both; }
.ip73-pagination ul { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; align-items: center;
	list-style: none; margin: 0; padding: 0; }
.ip73-pagination li { margin: 0; padding: 0; }
.ip73-pagination li::before { content: none; }
.ip73-pagination a, .ip73-pagination span.page-numbers { display: inline-flex; align-items: center; justify-content: center;
	gap: 6px; min-width: 40px; height: 40px; padding: 0 12px; border-radius: 8px; border: 1px solid #e5e5e5; font-size: 14px;
	color: #111; text-decoration: none; line-height: 1; transition: background .2s, border-color .2s; }
.ip73-pagination a:hover { background: #f4f4f4; border-color: #d4d4d4; }
.ip73-pagination span.page-numbers.current { background: #111; border-color: #111; color: #fff; font-weight: 600; }
.ip73-pagination .dots { border: 0; min-width: 24px; padding: 0; color: #999; }
@media only screen and (max-width: 600px) {
	.ip73-pagination li.is-prev, .ip73-pagination li.is-next { flex-basis: 100%; margin: 0; display: flex; justify-content: center; }
	.ip73-pagination li.is-next { order: 99; }
}

/* Sidebar category list */
.ip73-cat-list li a { display: inline-block; padding: 3px 0; }
.ip73-cat-list li.selected a { color: #111; font-weight: 600; }

/* 404 page: latest articles as a grid of thumbnails */
.ip73-404 { text-align: left; }
.ip73-404 h1 { margin-bottom: .3em; }
.ip73-404 .lead { margin-bottom: 1.5em; }
.ip73-404 h2 { margin: 1.8em 0 .8em; font-size: 1.3em; }
.ip73-404-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 22px;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.ip73-404-grid li { margin: 0; padding: 0; }
.ip73-404-grid li::before { content: none; }
.ip73-404-grid a { display: block; color: inherit; text-decoration: none; }
.ip73-404-grid img { display: block; width: 100%; height: auto; aspect-ratio: 6 / 5; object-fit: cover; margin-bottom: .6em;
	transition: opacity .2s; }
.ip73-404-grid a:hover img { opacity: .85; }
.ip73-404-grid span { display: block; font-size: .95em; line-height: 1.4; }
.ip73-404-grid a:hover span { text-decoration: underline; }
