/* ==========================================================================
   Caducées — feuille de style principale
   Tokens et design extraits de l'ancien site Divi (repro fidèle).
   ========================================================================== */

:root {
	/* Couleurs de marque */
	--c-navy:   #1a3066; /* Bleu marine — titres, éléments forts */
	--c-blue:   #6e98f2; /* Bleu accent — usages DÉCORATIFS uniquement (séparateurs, bordures, fonds) */
	/* Même teinte et même saturation que --c-blue, assombri pour atteindre le contraste AA
	   (5,76:1 sur blanc, 5,41:1 sur --c-bg-alt). À utiliser dès que le bleu porte du TEXTE
	   ou sert d'indicateur de focus : --c-blue n'y monte qu'à 2,82:1 et échoue. */
	--c-blue-text: #1559ea;
	--c-yellow: #ffcc57; /* Jaune — boutons d'action (CTA) */
	--c-text:   #2f3644; /* Texte courant (légèrement plus profond pour le confort de lecture) */
	--c-muted:  #5a6472; /* Texte secondaire — contraste renforcé (WCAG AA) */
	--c-line:   #e6e9f2;
	--c-bg:     #ffffff;
	--c-bg-alt: #f5f8ff; /* Fond de section clair */

	/* Typographie */
	--f-head:   "Atkinson Hyperlegible", "Segoe UI", Arial, sans-serif;
	--f-body:   "Open Sans", Arial, sans-serif;
	/* Plus de troisième famille. Rubik a été retirée le 2026-07-21 (53 Ko pour
	   cinq usages), et le menu — son principal client — est passé à --f-head.
	   Les quatre emplacements restants rendaient dès lors en Open Sans, soit
	   --f-body : un jeton --f-accent aurait annoncé une distinction qui
	   n'existait plus. Ils pointent donc directement sur --f-body. */

	/* Mesures & lecture */
	--content-width: 1080px;
	--content-narrow: 780px;
	--measure: 68ch;          /* largeur de lecture confortable (~65-75 caractères/ligne) */
	--radius: 20px;
	--radius-sm: 12px;
	--radius-lg: 24px;
	--gap: 30px;
	--header-h: 90px;

	/* Espacement vertical — rythme aéré et cohérent */
	--space-sm: 16px;
	--space-md: 28px;
	--space-lg: 48px;
	--space-xl: 72px;
	--space-2xl: 96px;

	/* Ombres & transitions */
	--shadow-sm: 0 2px 10px rgba(26,48,102,.05);
	--shadow:    0 14px 34px rgba(26,48,102,.08);
	--shadow-lg: 0 26px 56px rgba(26,48,102,.12);
	--ease: cubic-bezier(.4, 0, .2, 1);
}

/* --------------------------------------------------------------------------
   Reset léger
   -------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--f-body);
	font-size: 18px;
	line-height: 1.7;
	color: var(--c-text);
	background: var(--c-bg);
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--c-navy); text-decoration: none; transition: color .2s var(--ease); }
a:hover { color: var(--c-blue-text); }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--f-head);
	font-weight: 700;
	color: var(--c-navy);
	line-height: 1.18;
	letter-spacing: -0.01em;
	margin: 0 0 .5em;
	text-wrap: balance;
}
h1 { font-size: clamp(38px, 5vw, 56px); }
h2 { font-size: clamp(28px, 3.4vw, 36px); }
h3 { font-size: clamp(20px, 2.2vw, 24px); line-height: 1.3; }
p { margin: 0 0 1.15em; }
p:last-child { margin-bottom: 0; }
strong { font-weight: 700; }

/* États de focus visibles au clavier — accessibilité. */
:where(a, button, input, textarea, select, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--c-blue-text);
	outline-offset: 2px;
	border-radius: 4px;
}

/* --------------------------------------------------------------------------
   Utilitaires
   -------------------------------------------------------------------------- */
.container {
	width: 100%;
	max-width: var(--content-width);
	margin-inline: auto;
	padding-inline: 24px;
}
.container--narrow { max-width: var(--content-narrow); margin-inline: auto; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden; clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap; border: 0; padding: 0; margin: -1px;
}
/* Lien d'évitement AUTONOME : il ne doit rien devoir à .screen-reader-text.
   Cumulées, les deux classes laissaient `clip: rect(1px,1px,1px,1px)` actif au
   focus — le lien recevait le focus mais restait invisible, et l'utilisateur
   clavier voyant voyait son focus disparaître dans le vide. */
.skip-link {
	position: absolute; left: -9999px; top: 0; z-index: 1000;
	background: var(--c-navy); color: #fff; padding: 10px 16px;
	border-radius: 0 0 8px 0; font-family: var(--f-head); font-weight: 700;
	white-space: nowrap;
}
.skip-link:focus { left: 8px; top: 8px; color: #fff; }

/* --------------------------------------------------------------------------
   Boutons
   -------------------------------------------------------------------------- */
.btn {
	display: inline-block;
	font-family: var(--f-head);
	font-weight: 700;
	font-size: 16px;
	line-height: 1;
	padding: 14px 26px;
	border-radius: var(--radius);
	cursor: pointer;
	border: 2px solid transparent;
	transition: transform .15s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
}
.btn--cta {
	background: var(--c-yellow);
	color: #000;
}
.btn--cta:hover {
	color: #000;
	transform: translateY(-2px);
	box-shadow: 0 8px 18px rgba(0,0,0,.15);
}
.btn--outline {
	background: transparent;
	color: var(--c-navy);
	border-color: var(--c-navy);
}
.btn--outline:hover { background: var(--c-navy); color: #fff; }

/* --------------------------------------------------------------------------
   En-tête
   -------------------------------------------------------------------------- */
.site-header {
	position: sticky; top: 0; z-index: 100;
	background: #fff;
	box-shadow: 0 2px 12px rgba(0,0,0,.06);
	transition: box-shadow .2s ease;
}
.site-header__inner {
	max-width: 1280px;
	margin-inline: auto;
	padding: 12px 24px;
	display: flex; align-items: center; justify-content: space-between;
	gap: 24px;
	min-height: var(--header-h);
}
.site-header.is-scrolled { box-shadow: 0 4px 18px rgba(0,0,0,.10); }
.site-logo__img { max-height: 60px; width: auto; }

.main-nav__list {
	list-style: none; margin: 0; padding: 0;
	display: flex; align-items: center; gap: 6px;
}
.main-nav__list a {
	display: block;
	/* Atkinson, comme les titres (arbitré le 2026-07-21). Elle n'est embarquée
	   qu'en graisse 700 : le 600 demandé ici est donc rendu en 700. Mesurée
	   plus étroite que les autres candidates malgré son aspect plus gras —
	   798 px contre 810 pour Open Sans 600 — le seuil de bascule du menu
	   déroulant (1150 px) reste valide avec de la marge. */
	font-family: var(--f-head);
	font-weight: 600;
	font-size: 16px;
	color: var(--c-navy);
	padding: 10px 14px;
	border-radius: 10px;
}
.main-nav__list a:hover,
.main-nav__list .current-menu-item > a {
	color: var(--c-blue-text);
	background: var(--c-bg-alt);
}

/* Entrée « Contactez-nous » mise en avant sous forme de bouton */
.main-nav__list .menu-cta > a,
.main-nav__list .menu-cta.current-menu-item > a {
	background: var(--c-blue-text); /* texte blanc dessus : 5,76:1 (le bleu clair n'atteignait que 2,82:1) */
	color: #fff;
	font-weight: 700;
	border-radius: 30px;
	padding: 10px 22px;
	margin-left: 12px;
	box-shadow: 0 6px 16px rgba(110,152,242,.35);
}
.main-nav__list .menu-cta > a:hover {
	background: var(--c-navy);
	color: #fff;
	transform: translateY(-1px);
}

.menu-toggle {
	display: none;
	background: none; border: 0; cursor: pointer;
	padding: 10px; gap: 5px; flex-direction: column;
}
.menu-toggle__bar {
	display: block; width: 26px; height: 3px; border-radius: 3px;
	background: var(--c-navy); transition: transform .2s ease, opacity .2s ease;
}

/* --------------------------------------------------------------------------
   Contenu générique des pages
   -------------------------------------------------------------------------- */
.site-main { display: block; }
.page-content { padding: 50px 0; }
.page-content .container > h1:first-child,
.page-content .container > h2:first-child { margin-top: 0; }

/* --------------------------------------------------------------------------
   Article seul
   -------------------------------------------------------------------------- */
.single-article { padding: 44px 0 70px; }
/* Titre et contenu sous l'image à 900 px (alignés). L'image reste en bandeau pleine largeur. */
.single-article__header,
.single-article__body,
.single-article .article-cta,
.single-article__footer { max-width: 900px; margin-inline: auto; }
.single-article__header { margin-bottom: 24px; }
.single-article__meta { font-family: var(--f-body); color: var(--c-muted); font-size: 15px; margin: 0 0 10px; }
.single-article__meta a { color: var(--c-blue-text); }
.single-article__title { font-size: 40px; line-height: 1.2; margin: 0; text-wrap: wrap; }
.single-article__thumb { margin: 0 0 36px; border-radius: 16px; overflow: hidden; }
.single-article__thumb img { width: 100%; height: auto; display: block; }
.single-article__body { font-size: 18px; line-height: 1.85; }
.single-article__body > *:first-child { margin-top: 0; }
.single-article__body h2 { font-size: 30px; margin: 1.5em 0 .5em; }
.single-article__body h3 { font-size: 23px; margin: 1.3em 0 .4em; }
.single-article__body h4 { font-size: 20px; margin: 1.2em 0 .4em; }
.single-article__body p { margin: 0 0 1.2em; }
.single-article__body ul, .single-article__body ol { margin: 0 0 1.3em; padding-left: 1.4em; }
.single-article__body li { margin-bottom: .5em; }
.single-article__body a { color: var(--c-blue-text); text-decoration: underline; }
.single-article__body img { border-radius: 12px; margin: 24px 0; }
.single-article__body figure { margin: 24px 0; }
.single-article__body blockquote { margin: 24px 0; padding: 16px 24px; border-left: 4px solid var(--c-blue); background: var(--c-bg-alt); border-radius: 0 12px 12px 0; }
/* Tableaux de contenu (articles & pages) — charte Caducées.
   Enveloppés automatiquement dans .table-wrap par le filtre the_content. */
.table-wrap {
	overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 28px 0;
	border: 1px solid var(--c-line); border-radius: 14px;
	box-shadow: 0 8px 24px rgba(26,48,102,.10);
}
.table-wrap table,
.single-article__body table,
.rich-text table {
	width: 100%; border-collapse: collapse; background: #fff;
	font-family: var(--f-body); font-size: 16px; min-width: 460px;
}
.table-wrap th, .table-wrap td,
.single-article__body th, .single-article__body td,
.rich-text th, .rich-text td {
	padding: 14px 18px; text-align: left; vertical-align: top;
	border-bottom: 1px solid var(--c-line);
}
.table-wrap thead th, .table-wrap tr:first-child th,
.single-article__body thead th, .single-article__body tr:first-child th,
.rich-text thead th, .rich-text tr:first-child th {
	background: linear-gradient(135deg, #2a4a8f, #1a3066); color: #fff; border-bottom: none;
	font-family: var(--f-head); font-weight: 700; font-size: 15px; letter-spacing: .2px;
}
.table-wrap tbody tr:nth-child(even), .table-wrap table tr:nth-child(even),
.single-article__body tbody tr:nth-child(even),
.rich-text tbody tr:nth-child(even) { background: var(--c-bg-alt); }
.table-wrap tbody tr:hover { background: #eef3ff; }
.table-wrap td:first-child { font-weight: 600; color: var(--c-navy); }
.table-wrap tr:last-child td { border-bottom: none; }
@media (max-width: 600px) {
	.table-wrap th, .table-wrap td { padding: 11px 13px; font-size: 14px; }
}

/* Encart CTA en bas d'article */
.article-cta {
	margin: 54px 0 12px; background: linear-gradient(135deg, #6e98f2, #4f79e0); color: #fff;
	border-radius: 24px; padding: 44px 48px;
	display: grid; grid-template-columns: 1fr 1fr; gap: 26px 48px; align-items: center;
}
.article-cta .section-divider { margin: 0 0 18px; background: #fff; }
.article-cta__title { color: #fff; font-size: 30px; line-height: 1.2; margin: 0 0 24px; }
.article-cta__text { margin: 0; font-size: 17px; line-height: 1.7; }
.single-article__footer { margin-top: 30px; }
.single-article__back { font-family: var(--f-head); font-weight: 700; color: var(--c-blue-text); }
@media (max-width: 860px) {
	.single-article__title { font-size: 30px; }
	.article-cta { grid-template-columns: 1fr; padding: 32px 26px; }
	.article-cta__title { font-size: 26px; }
}

/* --------------------------------------------------------------------------
   Grille d'actualités
   -------------------------------------------------------------------------- */
.archive-header { text-align: center; padding: 50px 0 10px; }
.posts-grid {
	display: grid;
	/* min(300px, 100%) et non 300px seul : sous 348px de viewport, une piste de
	   300px dépassait le conteneur et les cartes étaient rognées par le
	   `overflow:hidden` de la section. */
	grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr));
	gap: var(--gap);
	padding: 30px 0 60px;
}
.post-card {
	background: #fff; border: 1px solid var(--c-line);
	border-radius: 16px; overflow: hidden;
	transition: transform .2s ease, box-shadow .2s ease;
}
.post-card:hover { transform: translateY(-4px); box-shadow: 0 12px 28px rgba(0,0,0,.10); }
.post-card__link { display: block; color: inherit; }
.post-card__media { aspect-ratio: 16 / 10; background: var(--c-bg-alt); overflow: hidden; }
.post-card__img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.post-card:hover .post-card__img { transform: scale(1.05); }
.post-card__body { padding: 22px; }
.post-card__meta { font-family: var(--f-body); font-size: 13px; color: var(--c-muted); margin: 8px 0 10px; }
.post-card__meta a { color: var(--c-muted); text-decoration: none; }
.post-card__meta a:hover { color: var(--c-blue-text); }
.post-card__title { font-size: 20px; margin: 0 0 10px; }
.post-card__excerpt { font-size: 15px; color: var(--c-text); margin: 0 0 12px; }
.post-card__more { font-family: var(--f-head); font-weight: 700; color: var(--c-blue-text); font-size: 15px; }
.post-card__more .arrow { display: inline-block; transition: transform .25s ease; }
.post-card:hover .post-card__more .arrow { transform: translateX(4px); }

.pagination { display: flex; justify-content: center; gap: 8px; padding: 20px 0 60px; }
.pagination .page-numbers {
	display: inline-block; padding: 8px 14px; border-radius: 8px;
	background: var(--c-bg-alt); font-family: var(--f-body);
}
.pagination .current { background: var(--c-navy); color: #fff; }

/* --------------------------------------------------------------------------
   Pied de page
   -------------------------------------------------------------------------- */
.site-footer {
	background-color: var(--c-bg-alt);
	background-image: var(--footer-bg);
	background-position: top center;
	background-repeat: no-repeat;
	background-size: cover;
	padding: 70px 0 40px;
	color: var(--c-text);
}
.site-footer__inner { max-width: var(--content-width); margin-inline: auto; padding-inline: 24px; }
.site-footer__title { text-align: center; font-size: 32px; margin-bottom: 40px; }
.site-footer__cols {
	display: grid; grid-template-columns: 1fr 1fr; gap: 40px;
}
.site-footer h3 { font-size: 24px; margin-bottom: .5em; }

.footer-divider {
	display: block; width: 40px; height: 8px; border-radius: 4px;
	background: var(--c-blue); margin-bottom: 20px;
}
.footer-divider--wide { width: 100px; }

.footer-social { list-style: none; display: flex; gap: 12px; padding: 0; margin: 18px 0; }
.footer-social__link {
	display: inline-flex; width: 40px; height: 40px; border-radius: 50%;
	align-items: center; justify-content: center;
	background: var(--c-navy); position: relative;
}
.footer-social__link::before {
	content: ""; width: 20px; height: 20px;
	background: #fff; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
	-webkit-mask-position: center; mask-position: center;
}
.footer-social__link--instagram { background: #ea2c59; }
.footer-social__link--linkedin { background: #007bb6; }
.footer-social__link--instagram::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.2c3.2 0 3.6 0 4.9.1 1.2.1 1.8.3 2.2.4.6.2 1 .5 1.4.9.4.4.7.8.9 1.4.2.4.3 1 .4 2.2.1 1.3.1 1.7.1 4.9s0 3.6-.1 4.9c-.1 1.2-.3 1.8-.4 2.2-.2.6-.5 1-.9 1.4-.4.4-.8.7-1.4.9-.4.2-1 .3-2.2.4-1.3.1-1.7.1-4.9.1s-3.6 0-4.9-.1c-1.2-.1-1.8-.3-2.2-.4-.6-.2-1-.5-1.4-.9-.4-.4-.7-.8-.9-1.4-.2-.4-.3-1-.4-2.2C2.2 15.6 2.2 15.2 2.2 12s0-3.6.1-4.9c.1-1.2.3-1.8.4-2.2.2-.6.5-1 .9-1.4.4-.4.8-.7 1.4-.9.4-.2 1-.3 2.2-.4C8.4 2.2 8.8 2.2 12 2.2zm0 3.2A6.6 6.6 0 1 0 18.6 12 6.6 6.6 0 0 0 12 5.4zm0 10.9A4.3 4.3 0 1 1 16.3 12 4.3 4.3 0 0 1 12 16.3zm6.9-11.1a1.5 1.5 0 1 0 1.5 1.5 1.5 1.5 0 0 0-1.5-1.5z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.2c3.2 0 3.6 0 4.9.1 1.2.1 1.8.3 2.2.4.6.2 1 .5 1.4.9.4.4.7.8.9 1.4.2.4.3 1 .4 2.2.1 1.3.1 1.7.1 4.9s0 3.6-.1 4.9c-.1 1.2-.3 1.8-.4 2.2-.2.6-.5 1-.9 1.4-.4.4-.8.7-1.4.9-.4.2-1 .3-2.2.4-1.3.1-1.7.1-4.9.1s-3.6 0-4.9-.1c-1.2-.1-1.8-.3-2.2-.4-.6-.2-1-.5-1.4-.9-.4-.4-.7-.8-.9-1.4-.2-.4-.3-1-.4-2.2C2.2 15.6 2.2 15.2 2.2 12s0-3.6.1-4.9c.1-1.2.3-1.8.4-2.2.2-.6.5-1 .9-1.4.4-.4.8-.7 1.4-.9.4-.2 1-.3 2.2-.4C8.4 2.2 8.8 2.2 12 2.2zm0 3.2A6.6 6.6 0 1 0 18.6 12 6.6 6.6 0 0 0 12 5.4zm0 10.9A4.3 4.3 0 1 1 16.3 12 4.3 4.3 0 0 1 12 16.3zm6.9-11.1a1.5 1.5 0 1 0 1.5 1.5 1.5 1.5 0 0 0-1.5-1.5z'/%3E%3C/svg%3E"); }
.footer-social__link--linkedin::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4.98 3.5A2.5 2.5 0 1 1 0 3.5a2.5 2.5 0 0 1 4.98 0zM.5 8.5h4V24h-4V8.5zM8 8.5h3.8v2.1h.1c.5-1 1.8-2.1 3.8-2.1 4 0 4.8 2.6 4.8 6.1V24h-4v-6.8c0-1.6 0-3.7-2.2-3.7s-2.6 1.8-2.6 3.6V24H8V8.5z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4.98 3.5A2.5 2.5 0 1 1 0 3.5a2.5 2.5 0 0 1 4.98 0zM.5 8.5h4V24h-4V8.5zM8 8.5h3.8v2.1h.1c.5-1 1.8-2.1 3.8-2.1 4 0 4.8 2.6 4.8 6.1V24h-4v-6.8c0-1.6 0-3.7-2.2-3.7s-2.6 1.8-2.6 3.6V24H8V8.5z'/%3E%3C/svg%3E"); }

.footer-newsletter { margin-top: 10px; }
.site-footer__legal { margin: 40px 0 0; font-size: 15px; }
.site-footer__legal p:last-child { font-size: 12px; color: var(--c-muted); line-height: 1.6; }
.site-footer__bottom {
	display: flex; justify-content: space-between; gap: 20px;
	margin-top: 30px; padding-top: 20px; border-top: 1px solid rgba(0,0,0,.08);
}
.site-footer__mentions { text-align: right; }

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
/* Bascule en menu déroulant.
   Seuil à 1150px et non 980 : le menu horizontal cesse de tenir sur une ligne
   dès 1100px (mesuré — il lui faut 810px, plus le logo et les marges). Entre
   981 et 1100px il repassait donc sur deux lignes, sans que le bouton
   n'apparaisse. 1150 laisse une trentaine de pixels de marge ; ajouter une
   entrée de menu ou rallonger un libellé demandera de remonter ce seuil. */
@media (max-width: 1150px) {
	.menu-toggle { display: inline-flex; }
	.main-nav {
		position: fixed; inset: var(--header-h) 0 auto 0;
		background: #fff; box-shadow: 0 10px 24px rgba(0,0,0,.12);
		/* `overflow: hidden` masque à l'œil mais laisse les liens dans l'ordre de tabulation :
		   au clavier, le focus partait dans un menu invisible. `visibility` les en retire.
		   Elle bascule sans délai à l'ouverture, et seulement après le repli à la fermeture. */
		max-height: 0; overflow: hidden; visibility: hidden;
		transition: max-height .3s ease, visibility 0s linear .3s;
	}
	body.menu-open .main-nav {
		max-height: 80vh; visibility: visible;
		transition: max-height .3s ease, visibility 0s linear 0s;
	}
	.main-nav__list { flex-direction: column; align-items: stretch; padding: 12px; gap: 2px; }
	.main-nav__list a { padding: 14px 16px; }
	.main-nav__list .menu-cta > a { margin: 8px 4px 4px; text-align: center; }
}

@media (max-width: 980px) {
	h1, .single-article__title { font-size: 40px; }
	.site-footer__cols { grid-template-columns: 1fr; gap: 30px; }
	.site-footer__bottom { flex-direction: column; }
	.site-footer__mentions { text-align: left; }
}

@media (max-width: 600px) {
	body { font-size: 16px; }
	h1, .single-article__title { font-size: 32px; }
	h2, .site-footer__title { font-size: 26px; }
}

/* ==========================================================================
   Formulaires Formidable — habillage moderne unifié (tout le site)
   ========================================================================== */
.frm_forms.with_frm_style input[type="text"],
.frm_forms.with_frm_style input[type="email"],
.frm_forms.with_frm_style input[type="tel"],
.frm_forms.with_frm_style input[type="number"],
.frm_forms.with_frm_style input[type="url"],
.frm_forms.with_frm_style textarea,
.frm_forms.with_frm_style select {
	width: 100%; box-sizing: border-box;
	font-family: var(--f-body); font-size: 16px; color: var(--c-text);
	background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius-sm);
	padding: 13px 16px; box-shadow: none;
	transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.frm_forms.with_frm_style input:focus,
.frm_forms.with_frm_style textarea:focus,
.frm_forms.with_frm_style select:focus {
	border-color: var(--c-blue-text); box-shadow: 0 0 0 3px rgba(21,89,234,.22); outline: none;
}
.frm_forms.with_frm_style textarea { min-height: 130px; resize: vertical; }
.frm_forms.with_frm_style .frm_primary_label {
	font-family: var(--f-body); font-weight: 600; color: var(--c-navy); font-size: 14px; padding-bottom: 6px;
}
.frm_forms.with_frm_style .frm_button_submit,
.frm_forms.with_frm_style .frm_final_submit {
	background: var(--c-yellow); color: #000;
	font-family: var(--f-head); font-weight: 700; font-size: 16px;
	border: 0; border-radius: 30px; padding: 14px 34px; cursor: pointer; box-shadow: none;
	transition: transform .15s var(--ease), box-shadow .2s var(--ease), background .2s var(--ease);
}
.frm_forms.with_frm_style .frm_button_submit:hover,
.frm_forms.with_frm_style .frm_final_submit:hover {
	background: #ffc23e; transform: translateY(-2px); box-shadow: var(--shadow-sm);
}
