/* Optimisme au travail (actmediterranee.fr) : feuille propre au site, 06/11/2026. Indigo du logo, soleil, sable. */
:root {
  --opt-encre: #1f2330;
  --opt-gris: #5a5f6e;
  --opt-indigo: #2c2a8f;
  --opt-indigo-fonce: #1d1b63;
  --opt-soleil: #f0a93b;
  --opt-soleil-texte: #8a4f00;
  --opt-sable: #f7f2e8;
  --opt-sable-fonce: #ece3d2;
  --opt-mer: #1d6f7a;
  --opt-blanc: #ffffff;
  --opt-rayon: 10px;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body.opt { margin: 0; background: var(--opt-blanc); color: var(--opt-encre); font-family: "Source Sans 3", "Segoe UI", Arial, sans-serif; font-size: 18px; line-height: 1.65; }
.opt img { max-width: 100%; height: auto; }
.opt a { color: var(--opt-indigo); }
.opt h1, .opt h2, .opt h3 { font-family: "Bitter", Georgia, serif; color: var(--opt-indigo-fonce); line-height: 1.25; }
.opt-cadre { width: 100%; max-width: 1180px; margin: 0 auto; padding: 0 22px; }
.opt-colonne { max-width: 784px; }
.opt-surtitre { margin: 0 0 8px; font-size: 14px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--opt-soleil-texte); }

/* En-tête */
.opt-entete { position: sticky; top: 0; z-index: 20; background: var(--opt-blanc); border-bottom: 3px solid var(--opt-soleil); }
.opt-entete__ligne { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 68px; }
.opt-marque { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.opt-marque__logo { width: 44px; height: auto; }
.opt-marque__nom { font-family: "Bitter", Georgia, serif; font-weight: 700; font-size: 19px; color: var(--opt-indigo-fonce); white-space: nowrap; }
.opt-ouvrir { position: absolute; opacity: 0; pointer-events: none; }
.opt-bouton-menu { display: none; }
.opt-nav__liste { display: flex; flex-wrap: nowrap; gap: 4px; list-style: none; margin: 0; padding: 0; }
.opt-nav__item { list-style: none; }
.opt .opt-nav__lien { display: block; padding: 8px 11px; border-radius: 6px; color: var(--opt-encre); text-decoration: none; font-weight: 600; font-size: 16px; white-space: nowrap; }
.opt .opt-nav__lien:hover { background: var(--opt-sable); color: var(--opt-indigo-fonce); }
@media (max-width: 1079px) {
  .opt-bouton-menu { display: flex; flex-direction: column; justify-content: center; gap: 5px; width: 46px; height: 46px; padding: 0 10px; border-radius: 8px; cursor: pointer; }
  .opt-bouton-menu span { display: block; height: 3px; border-radius: 2px; background: var(--opt-indigo-fonce); }
  .opt-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--opt-blanc); border-bottom: 3px solid var(--opt-soleil); box-shadow: 0 10px 20px rgba(29, 27, 99, .12); }
  .opt-ouvrir:checked ~ .opt-nav { display: block; }
  .opt-nav__liste { flex-direction: column; padding: 8px 22px 14px; }
  .opt .opt-nav__lien { padding: 12px 6px; border-bottom: 1px solid var(--opt-sable-fonce); border-radius: 0; }
  .opt-entete__ligne { position: relative; }
}
@media (max-width: 420px) { .opt-marque__nom { font-size: 17px; } }

/* Fil d'Ariane */
.opt-fil { background: var(--opt-sable); font-size: 15px; color: var(--opt-gris); }
.opt-fil .opt-cadre { padding-top: 10px; padding-bottom: 10px; }
.opt-fil ol, .opt-fil ul { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; list-style: none; margin: 0; padding: 0; }
.opt-fil li { list-style: none; width: auto; }
.opt-fil a { color: var(--opt-indigo); text-decoration: none; }
.opt-fil a:hover { text-decoration: underline; }
.opt-fil--article li[aria-current="page"], .opt-fil--article li[aria-hidden="true"]:nth-last-child(2) { display: none; }

/* Accueil */
.opt-une { background: linear-gradient(180deg, var(--opt-sable) 0%, var(--opt-blanc) 100%); padding: 44px 0 30px; }
.opt-une__grille { display: grid; grid-template-columns: 1.15fr .85fr; gap: 40px; align-items: center; }
.opt-une__titre { margin: 0 0 14px; font-size: 38px; }
.opt-une__accroche { margin: 0; font-size: 20px; color: var(--opt-gris); }
.opt-une__image img, .opt-une__img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--opt-rayon); display: block; }
.opt-accueil { padding: 20px 0 10px; }
.opt-derniers, .opt-lies, .opt-rubrique-liste { padding: 26px 0 48px; }
.opt-titre-bloc { margin: 0 0 22px; font-size: 26px; }
.opt-lies:not(:has(.opt-carte)) { display: none; }
@media (max-width: 860px) {
  .opt-une__grille { grid-template-columns: 1fr; gap: 22px; }
  .opt-une__titre { font-size: 28px; }
}

/* Cartes */
.opt-grille { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
@media (max-width: 960px) { .opt-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .opt-grille { grid-template-columns: 1fr; gap: 20px; } }
.opt-carte { background: var(--opt-blanc); border: 1px solid var(--opt-sable-fonce); border-radius: var(--opt-rayon); overflow: hidden; transition: box-shadow .2s, transform .2s; }
.opt-carte:hover { box-shadow: 0 8px 22px rgba(29, 27, 99, .12); transform: translateY(-2px); }
.opt .opt-carte__lien { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; }
.opt-carte__visuel { aspect-ratio: 16 / 10; background: var(--opt-sable); overflow: hidden; }
.opt-carte__visuel img, .opt-carte__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.opt-carte__visuel:not(:has(img)) {
  background-color: #e9e4f6;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 200'%3E%3Crect width='320' height='200' fill='%23e9e4f6'/%3E%3Ccircle cx='224' cy='108' r='38' fill='%23f0a93b'/%3E%3Cpath d='M0 128 Q80 112 160 128 T320 128 V200 H0Z' fill='%232c2a8f'/%3E%3Cpath d='M0 150 Q80 136 160 150 T320 150 V200 H0Z' fill='%231d1b63'/%3E%3C/svg%3E");
  background-size: cover; background-position: center;
}
.opt-carte__corps { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px 20px; }
.opt-carte__rubrique { font-size: 13px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--opt-soleil-texte); }
.opt-carte__rubrique:empty { display: none; }
.opt-carte__titre { margin: 0; font-size: 19px; line-height: 1.3; }
.opt-carte__date { margin: 0; font-size: 14px; color: var(--opt-gris); }
.opt-carte__extrait { margin: 0; font-size: 16px; color: var(--opt-gris); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.opt-rubrique-liste .opt-carte__rubrique { display: none; }

/* Rubrique */
.opt-rubrique-tete { background: var(--opt-sable); padding: 30px 0 30px; }
.opt-rubrique-tete__titre { margin: 0 0 16px; font-size: 34px; }
.opt-rubrique-tete__intro { column-count: 2; column-gap: 44px; color: var(--opt-encre); }
.opt-rubrique-tete__intro p { margin: 0 0 .9em; }
@media (max-width: 860px) { .opt-rubrique-tete__intro { column-count: 1; } .opt-rubrique-tete__titre { font-size: 27px; } }

/* Article */
.opt-article-tete { padding: 26px 0 0; }
.opt-article-tete__titre { margin: 0 0 12px; font-size: 36px; overflow-wrap: anywhere; }
.opt-article-tete__meta { display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 0 0 20px; font-size: 16px; color: var(--opt-gris); }
.opt-article-tete__meta span + span::before { content: "·"; margin-right: 18px; color: var(--opt-soleil-texte); }
.opt-article-tete__meta a { font-weight: 600; text-decoration: none; }
.opt-article-tete__image { max-width: 1000px; }
.opt-article-tete__image img, .opt-article-tete__img { width: 100%; max-height: 460px; object-fit: cover; border-radius: var(--opt-rayon); display: block; }
@media (max-width: 600px) {
  .opt-article-tete__titre { font-size: 27px; } .opt-article-tete { padding-top: 18px; }
  .opt-article-tete__meta { flex-direction: column; gap: 2px; }
  .opt-article-tete__meta span + span::before { content: none; }
}
.opt-article { display: grid; grid-template-columns: 250px minmax(0, 760px); gap: 46px; justify-content: center; padding-top: 30px; padding-bottom: 20px; }
.opt-sommaire { position: sticky; top: 96px; align-self: start; font-size: 15px; }
.opt-sommaire details { background: var(--opt-sable); border-radius: var(--opt-rayon); padding: 14px 16px; }
.opt-sommaire summary { cursor: pointer; font-family: "Bitter", Georgia, serif; font-weight: 700; color: var(--opt-indigo-fonce); list-style: none; }
.opt-sommaire summary::-webkit-details-marker { display: none; }
.opt-sommaire summary::after { content: "+"; float: right; color: var(--opt-soleil-texte); font-weight: 700; }
.opt-sommaire details[open] summary::after { content: "−"; }
.opt-sommaire ol, .opt-sommaire ul { margin: 10px 0 0; padding-left: 18px; }
.opt-sommaire ol ol, .opt-sommaire ul ul, .opt-sommaire li li { display: none; }
.opt-sommaire li { margin: 0 0 6px; }
.opt-sommaire a { text-decoration: none; color: var(--opt-encre); }
.opt-sommaire a:hover { color: var(--opt-indigo); text-decoration: underline; }
@media (max-width: 1099px) {
  .opt-article { grid-template-columns: minmax(0, 760px); gap: 0; padding-top: 18px; }
  .opt-sommaire { top: 71px; z-index: 5; margin-bottom: 18px; }
  .opt-sommaire details { padding: 11px 14px; box-shadow: 0 4px 12px rgba(29, 27, 99, .1); }
  .opt-sommaire details[open] { max-height: 60vh; overflow: auto; }
}

/* Texte */
.opt-texte { font-size: 18px; }
.opt-texte > :first-child { margin-top: 0; }
.opt-texte p { margin: 0 0 1em; }
.opt-texte > p:first-child { font-size: 21px; line-height: 1.55; font-weight: 600; color: #2b2d4a; margin-bottom: 1.3em; }
.opt-texte--page > p:first-child, .opt-texte--apropos > p:first-child, .opt-texte--accueil > p:first-child { font-size: 19px; font-weight: 400; color: var(--opt-encre); }
.opt-texte { counter-reset: opt-inter; }
.opt-texte h2 { counter-increment: opt-inter; margin: 1.9em 0 .6em; font-size: 27px; }
.opt-texte h2::before { content: counter(opt-inter, decimal-leading-zero); display: block; margin-bottom: 2px; font-size: 15px; letter-spacing: .08em; color: var(--opt-soleil-texte); }
.opt-texte--page h2::before, .opt-texte--apropos h2::before, .opt-texte--accueil h2::before { content: none; }
.opt-texte h3 { margin: 1.5em 0 .5em; font-size: 21px; }
.opt-texte ul, .opt-texte ol { margin: 0 0 1.1em; padding-left: 1.5em; }
.opt-texte li { margin: 0 0 .35em; }
.opt-texte ul li::marker { color: var(--opt-soleil-texte); }
.opt-texte table { width: 100%; border-collapse: collapse; margin: 1.2em 0 1.6em; font-size: 16px; }
.opt-texte th, .opt-texte td { padding: .6em .75em; border-bottom: 1px solid var(--opt-sable-fonce); text-align: left; vertical-align: top; }
.opt-texte thead th, .opt-texte tr:first-child th { background: var(--opt-indigo); color: var(--opt-blanc); }
.opt-texte tbody tr:nth-child(even) td { background: var(--opt-sable); }
.opt-texte table tr:first-child td strong:only-child { color: var(--opt-indigo-fonce); }
@media (max-width: 700px) { .opt-texte table { display: block; overflow-x: auto; white-space: nowrap; } }
.opt-texte img { border-radius: 8px; display: block; margin: 1.2em auto; max-height: 520px; width: auto; }
.opt-texte blockquote { margin: 1.2em 0; padding: 14px 18px; background: var(--opt-sable); border-radius: var(--opt-rayon); font-style: italic; }
@media (max-width: 600px) { .opt-texte { font-size: 17px; } .opt-texte > p:first-child { font-size: 19px; } .opt-texte h2 { font-size: 23px; } }

/* Encadré auteur */
.opt-auteur { display: flex; align-items: center; gap: 22px; margin: 38px 0 10px; padding: 20px 22px; background: var(--opt-blanc); border-top: 4px solid var(--opt-soleil); border-radius: 0 0 var(--opt-rayon) var(--opt-rayon); box-shadow: 0 6px 18px rgba(29, 27, 99, .09); }
.opt-auteur__texte { flex: 1; min-width: 0; }
.opt-auteur__label { margin: 0; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--opt-soleil-texte); }
.opt-auteur__nom { margin: 2px 0 6px; font-family: "Bitter", Georgia, serif; font-weight: 700; font-size: 20px; color: var(--opt-indigo-fonce); }
.opt-auteur__bio { font-size: 16px; color: var(--opt-gris); }
.opt-auteur__bio p { margin: 0; }
.opt-auteur__bio p:not(:first-child) { display: none; }
.opt-auteur__suite { margin: 8px 0 0; font-size: 15px; font-weight: 600; }
.opt-auteur__photo { flex: 0 0 auto; }
.opt-auteur__photo img, .opt-auteur__img { width: 86px; height: 86px; object-fit: cover; border-radius: 50%; display: block; }
@media (max-width: 520px) { .opt-auteur { flex-direction: column-reverse; align-items: flex-start; } }

/* Pages fixes, auteur, contact */
.opt-page-tete { padding: 30px 0 6px; }
.opt-page-tete__titre { margin: 0; font-size: 34px; }
.opt-page { padding: 14px 0 40px; }
.opt-texte--apropos figure, .opt-texte--page figure { margin: 0 0 1em; }
.opt-portrait { float: right; width: 180px; margin: 4px 0 14px 26px; }
.opt-portrait img { width: 180px; height: 180px; object-fit: cover; border-radius: 50%; display: block; margin: 0; }
@media (max-width: 600px) { .opt-portrait { float: none; margin: 0 0 16px; } }
.opt-editeur img { max-width: 360px; margin: 0 0 1.2em; border-radius: 0; }
.opt-profil__photo img, .opt-profil__img { width: 200px; height: 200px; object-fit: cover; border-radius: 50%; display: block; margin: 0 0 20px; }
.opt-profil__suite { font-weight: 600; }
.opt-ecrire { background: var(--opt-sable); padding: 30px 0 44px; }
.opt-ecrire__titre { margin: 0 0 8px; font-size: 26px; }
.opt-ecrire__aide { margin: 0 0 18px; color: var(--opt-gris); }
.opt-form input, .opt-form textarea, .opt-form__champ { width: 100%; padding: 12px 14px; margin: 0 0 12px; border: 1px solid #cfc6b3; border-radius: 8px; background: var(--opt-blanc); font: inherit; font-size: 17px; }
.opt-form textarea { min-height: 150px; }
.opt-form button, .opt-form__bouton { padding: 12px 22px; border: 0; border-radius: 8px; background: var(--opt-indigo); color: var(--opt-blanc); font: inherit; font-weight: 700; cursor: pointer; }
.opt-form button:hover, .opt-form__bouton:hover { background: var(--opt-indigo-fonce); }

/* Pied de page */
.opt-pied { background: var(--opt-indigo-fonce); color: #e6e4f5; font-size: 15px; }
.opt-pied__ligne { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 22px; padding-top: 22px; padding-bottom: 22px; }
.opt-pied p { margin: 0; }
.opt-pied__nom { font-family: "Bitter", Georgia, serif; font-weight: 700; color: var(--opt-blanc); }
.opt .opt-pied a { color: #ffd38e; }
