/**
 * Grimages UI – content pages: contact (com_contact), articles and blog (com_content), appointments.
 */

/* ---------- Contact: form | other ways ---------- */
.gri-v2 .gri-contact { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: var(--space-6); align-items: start; padding: var(--space-6) 0 var(--space-7); }
/* The page title stays for screen readers and search engines: the form heading is the visible one */
.gri-v2 .gri-contact__main .page-header { position: absolute !important; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.gri-v2 .gri-contact__main .contact-name,
.gri-v2 .gri-contact__main .com-contact > h2,
.gri-v2 .gri-contact__main .com-contact__form > h2,
.gri-v2 .gri-contact__main .com-contact__form > h3,
.gri-v2 .gri-contact__main #contact-form legend { display: none !important; }
.gri-v2 .gri-contact__head { margin-bottom: var(--space-5); }
.gri-v2 .gri-contact__title:not(#gri-none) { margin: 0 0 var(--space-2); font: 800 clamp(28px, 3vw, 38px)/1.1 var(--font-display) !important; text-transform: none !important; color: var(--violet-900) !important; }
.gri-v2 .gri-contact__head p { margin: 0; color: var(--ink-muted); font-size: 16px; }

.gri-v2 #contact-form:not(#gri-none) { margin: 0; padding: var(--space-6); border: 0; border-radius: var(--radius-lg); background: var(--surface); box-shadow: inset 0 0 0 1px var(--line); font: 400 15px/22px var(--font-body); color: var(--ink); }
.gri-v2 #contact-form fieldset { margin: 0; padding: 0; border: 0; }
.gri-v2 #contact-form .control-group { display: flex; flex-direction: column; gap: var(--space-1); margin: 0 0 var(--space-4); }
.gri-v2 #contact-form .control-group[hidden] { display: none; }
.gri-v2 #contact-form .control-label,
.gri-v2 #contact-form .controls { width: 100% !important; margin: 0 !important; padding: 0 !important; float: none !important; text-align: left !important; }
.gri-v2 #contact-form label:not(#gri-none) { font: 700 14px/20px var(--font-body) !important; color: var(--ink) !important; }
.gri-v2 #contact-form .star { color: var(--magenta-500); }
.gri-v2 #contact-form input[type="text"],
.gri-v2 #contact-form input[type="email"],
.gri-v2 #contact-form select,
.gri-v2 #contact-form textarea {
  width: 100% !important;
  max-width: none;
  padding: 0 var(--space-4) !important;
  border: 1px solid var(--line-strong) !important;
  border-radius: var(--radius-sm) !important;
  background-color: var(--surface) !important;
  box-shadow: none !important;
  font: 400 16px/24px var(--font-body) !important;
  color: var(--ink) !important;
}
.gri-v2 #contact-form input[type="text"],
.gri-v2 #contact-form input[type="email"],
.gri-v2 #contact-form select { height: 48px !important; }
.gri-v2 #contact-form select { padding-right: var(--space-8) !important; }
.gri-v2 #contact-form textarea { min-height: 180px; padding: var(--space-3) var(--space-4) !important; resize: vertical; }
.gri-v2 #contact-form input:focus,
.gri-v2 #contact-form select:focus,
.gri-v2 #contact-form textarea:focus { border-color: var(--magenta-500) !important; box-shadow: 0 0 0 3px var(--magenta-050) !important; outline: none; }
.gri-v2 .gri-contact__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.gri-v2 .gri-contact__row > .control-group { margin-bottom: var(--space-4); }
.gri-v2 #contact-form .control-group:has(#hika-recaptcha) .control-label { display: none; }
.gri-v2 #contact-form .com-contact__form-submit,
.gri-v2 #contact-form .control-group:has(.gri-contact__send) { margin: var(--space-2) 0 0; }
.gri-v2 #contact-form button.gri-contact__send:not(#gri-none) { color: var(--on-brand) !important; }

/* Other ways */
.gri-v2 .gri-contact__aside { position: sticky; top: 152px; display: grid; gap: var(--space-4); }
.gri-v2 #gri-shop { scroll-margin-top: 160px; }
.gri-v2 .gri-contact__card { display: grid; gap: var(--space-3); justify-items: start; padding: var(--space-5); border-radius: var(--radius-lg); background: var(--violet-050); }
.gri-v2 .gri-contact__h:not(#gri-none) { margin: 0; font: 800 19px/1.2 var(--font-display) !important; text-transform: none !important; color: var(--violet-900) !important; }
.gri-v2 .gri-contact__ways { display: grid; gap: var(--space-2); width: 100%; margin: 0; padding: 0; list-style: none; }
.gri-v2 .gri-contact__ways li { margin: 0; }
.gri-v2 .gri-contact__ways li::before { content: none !important; }
.gri-v2 .gri-contact__way:not(#gri-none) { display: flex; align-items: center; gap: var(--space-3); width: 100%; padding: var(--space-3); border: 0; border-radius: var(--radius-md); background: var(--surface); text-align: left; color: var(--ink) !important; text-decoration: none; cursor: pointer; transition: transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast); }
.gri-v2 .gri-contact__way:not(#gri-none):hover { transform: translateY(-2px); box-shadow: var(--shadow-card); }
.gri-v2 .gri-contact__way > .gri-icon { display: grid; place-items: center; flex: none; width: 40px; height: 40px; border-radius: 50%; background: var(--violet-050); color: var(--violet-700); }
.gri-v2 .gri-contact__way > .gri-icon svg { width: 20px; height: 20px; }
.gri-v2 .gri-contact__way span:not(.gri-icon) { display: flex; flex-direction: column; min-width: 0; }
.gri-v2 .gri-contact__way strong { font: 700 15px/20px var(--font-body); overflow-wrap: anywhere; }
.gri-v2 .gri-contact__way small { font-size: 13px; color: var(--ink-muted); }
.gri-v2 .gri-contact__addr { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: var(--space-2); margin: 0; }
.gri-v2 .gri-contact__addr .gri-icon,
.gri-v2 .gri-contact__addr .gri-icon svg { width: 20px; height: 20px; color: var(--magenta-500); }
.gri-v2 .gri-contact__addr small { display: block; color: var(--ink-muted); font-size: 13px; }
.gri-v2 .gri-contact__hours { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px var(--space-4); width: 100%; margin: 0; font-size: 14px; }
.gri-v2 .gri-contact__hours dt { margin: 0; font-weight: 700; }
.gri-v2 .gri-contact__hours dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.gri-v2 .gri-contact__card a.gri-btn:not(#gri-none) { color: var(--violet-700) !important; text-decoration: none; }
.gri-v2 .gri-contact__card .gri-btn .gri-icon,
.gri-v2 .gri-contact__card .gri-btn .gri-icon svg { width: 16px; height: 16px; }

@media (max-width: 991.98px) {
  .gri-v2 .gri-contact { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); padding-top: var(--space-4); }
  .gri-v2 .gri-contact__aside { position: static; }
  .gri-v2 #contact-form:not(#gri-none) { padding: var(--space-4); }
}
@media (max-width: 575.98px) {
  .gri-v2 .gri-contact__row { grid-template-columns: minmax(0, 1fr); gap: 0; }
}

/* ---------- Articles (com_content): a reading column with the design-system typography ---------- */
.gri-v2 .com-content-article .gri-article__text:not(#gri-none) { max-width: 860px; margin: 0 auto; padding: var(--space-6) 0 var(--space-7); font: 400 16px/27px var(--font-body); color: var(--ink); }
.gri-v2 .com-content-article .gri-article__text:has(.table-responsive) { max-width: none; }
.gri-v2 .com-content-article .gri-article__text h1:not(#gri-none) { margin: 0 0 var(--space-4); font: 800 clamp(30px, 3.2vw, 42px)/1.1 var(--font-display) !important; letter-spacing: -.01em; text-transform: none !important; color: var(--violet-900) !important; }
.gri-v2 .com-content-article .gri-article__text h2:not(#gri-none) { margin: var(--space-7) 0 var(--space-3); font: 800 clamp(22px, 2.2vw, 28px)/1.2 var(--font-display) !important; letter-spacing: 0; text-transform: none !important; color: var(--violet-900) !important; }
.gri-v2 .com-content-article .gri-article__text h2:first-child { margin-top: 0; }
.gri-v2 .com-content-article .gri-article__text h3:not(#gri-none) { margin: var(--space-5) 0 var(--space-2); font: 700 19px/1.3 var(--font-display) !important; text-transform: none !important; color: var(--violet-900) !important; }
.gri-v2 .com-content-article .gri-article__text p { margin: 0 0 var(--space-3); }
.gri-v2 .com-content-article .gri-article__text ul,
.gri-v2 .com-content-article .gri-article__text ol { margin: 0 0 var(--space-4); padding-left: var(--space-5); }
.gri-v2 .com-content-article .gri-article__text li { margin-bottom: var(--space-2); }
.gri-v2 .com-content-article .gri-article__text li::marker { color: var(--magenta-500); font-weight: 700; }
.gri-v2 .com-content-article .gri-article__text a:not(.btn):not(.gri-btn):not(#gri-none) { color: var(--violet-700) !important; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(106, 0, 136, .35); }
.gri-v2 .com-content-article .gri-article__text img { max-width: 100%; height: auto; border-radius: var(--radius-md); }
.gri-v2 .com-content-article .gri-article__text .table-responsive { margin: 0 0 var(--space-5); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.gri-v2 .com-content-article .gri-article__text table { margin: 0; font-size: 14px; }
.gri-v2 .com-content-article .gri-article__text th { background: var(--violet-050) !important; color: var(--violet-900); vertical-align: middle; }
.gri-v2 .com-content-article .gri-article__text .shipping-best-price,
.gri-v2 .com-content-article .gri-article__text td span[style*="background"] { border-radius: 6px; }

/* ---------- Legal page (privacy policy, privacy/<lang>.html): LegalPage of the design system ---------- */
.gri-v2 .gri-legal { --legal-gap: var(--space-4); }
.gri-v2 .gri-legal .gri-legal__updated { margin: calc(-1 * var(--space-2)) 0 var(--space-5); font-size: 14px; color: var(--ink-muted); }
.gri-v2 .gri-legal__summary { margin: 0 0 var(--space-6); padding: var(--space-5) var(--space-6); border-radius: var(--radius-lg); background: var(--violet-050); }
.gri-v2 .com-content-article .gri-article__text .gri-legal__summary h2:not(#gri-none) { margin: 0 0 var(--space-3); font-size: 24px !important; }
.gri-v2 .gri-legal__summary ul { margin-bottom: var(--space-4); }
.gri-v2 .gri-legal__summary p:last-child { margin: 0; }
.gri-v2 .gri-legal__toc { margin: 0 0 var(--space-6); padding: var(--space-4) var(--space-5); border: 1px solid var(--line); border-radius: var(--radius-md); }
.gri-v2 .com-content-article .gri-article__text .gri-legal__toc ol { columns: 2; column-gap: var(--space-6); margin: 0; }
.gri-v2 .com-content-article .gri-article__text .gri-legal__toc li { margin: 0 0 var(--space-1); break-inside: avoid; }
.gri-v2 .com-content-article .gri-article__text .gri-legal__toc a:not(#gri-none) { font-weight: 400; text-decoration: none; }
.gri-v2 .com-content-article .gri-article__text .gri-legal__toc a:hover { text-decoration: underline; }
.gri-v2 .gri-legal h2[id] { scroll-margin-top: 160px; }
.gri-v2 .gri-legal__rows { display: grid; gap: var(--legal-gap); margin: 0 0 var(--space-5); }
.gri-v2 .gri-legal__rows--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gri-v2 .gri-legal__row,
.gri-v2 .gri-legal__card { padding: var(--space-4) var(--space-5); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); }
.gri-v2 .com-content-article .gri-article__text .gri-legal__row h3:not(#gri-none),
.gri-v2 .com-content-article .gri-article__text .gri-legal__card h3:not(#gri-none) { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin: 0 0 var(--space-2); font-size: 18px !important; }
.gri-v2 .gri-legal__row > p:last-child,
.gri-v2 .gri-legal__card > p:last-child { margin: 0; }
.gri-v2 .gri-legal dl { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: var(--space-2) var(--space-4); margin: 0; font-size: 15px; line-height: 24px; }
.gri-v2 .gri-legal dt { margin: 0; font-weight: 700; color: var(--violet-900); }
.gri-v2 .gri-legal dd { margin: 0; }
.gri-v2 .com-content-article .gri-article__text .gri-legal dd ul { margin: 0; padding-left: var(--space-4); }
.gri-v2 .com-content-article .gri-article__text .gri-legal dd li { margin-bottom: var(--space-1); }
.gri-v2 .gri-legal__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--legal-gap); margin: var(--space-5) 0 var(--space-6); }
.gri-v2 .gri-legal__card dl { grid-template-columns: minmax(0, 1fr); gap: 0; margin: 0 0 var(--space-3); }
.gri-v2 .gri-legal__card dt { margin-top: var(--space-2); font-size: 14px; word-break: break-word; }
.gri-v2 .gri-legal__card dd { color: var(--ink-muted); font-size: 14px; line-height: 21px; }
.gri-v2 .gri-legal__tag { padding: 2px 10px; border-radius: var(--radius-pill); background: var(--magenta-050); color: var(--magenta-700); font: 700 12px/18px var(--font-body); }
.gri-v2 .gri-legal__card:first-child .gri-legal__tag { background: var(--violet-050); color: var(--violet-700); }

.gri-v2 .com-content-article .gri-article__text ol.gri-legal__steps { display: grid; gap: var(--space-3); margin: 0 0 var(--space-5); padding: 0; list-style: none; counter-reset: gri-step; }
.gri-v2 .com-content-article .gri-article__text .gri-legal__steps li { position: relative; margin: 0; padding: var(--space-3) var(--space-4) var(--space-3) 64px; border: 1px solid var(--line); border-radius: var(--radius-md); counter-increment: gri-step; }
.gri-v2 .gri-legal__steps li::before { content: counter(gri-step); position: absolute; top: var(--space-3); left: var(--space-4); display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--violet-050); color: var(--violet-700); font: 800 16px/1 var(--font-display); }
.gri-v2 .gri-legal__steps strong { color: var(--violet-900); }
.gri-v2 .gri-legal__contact { margin: var(--space-7) 0 0; padding: var(--space-5) var(--space-6); border-radius: var(--radius-lg); background: var(--violet-050); }
.gri-v2 .com-content-article .gri-article__text .gri-legal__contact h2:not(#gri-none) { margin: 0 0 var(--space-2); font-size: 22px !important; }
.gri-v2 .gri-legal__contact p:last-child { margin: 0; }

/* Shipping page: perks, rates by country (initRates), notes, lists */
.gri-v2 .com-content-article .gri-article__text ul.gri-legal__perks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); margin: 0 0 var(--space-6); padding: 0; list-style: none; }
.gri-v2 .com-content-article .gri-article__text .gri-legal__perks li { display: flex; gap: var(--space-3); align-items: flex-start; margin: 0; padding: var(--space-4); border-radius: var(--radius-md); background: var(--violet-050); font-size: 15px; line-height: 23px; }
.gri-v2 .gri-legal__perks .gri-icon { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--surface); color: var(--magenta-500); }
.gri-v2 .gri-legal__perks .gri-icon svg { width: 20px; height: 20px; }
.gri-v2 .gri-rates__pick { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-4); margin: 0 0 var(--space-4); }
.gri-v2 .gri-rates__label { font: 700 15px/20px var(--font-body); color: var(--violet-900); }
.gri-v2 .gri-rates__pick .gri-select { width: auto; min-width: 260px; max-width: 100%; }
.gri-v2 .gri-rates__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); margin: 0 0 var(--space-4); }
.gri-v2 .gri-rates__card { position: relative; display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-4) var(--space-5); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); }
.gri-v2 .gri-rates__card.is-best { border-color: var(--magenta-500); box-shadow: 0 0 0 1px var(--magenta-500); }
.gri-v2 .gri-rates__card.is-none { background: var(--surface-2); color: var(--ink-muted); }
.gri-v2 .com-content-article .gri-article__text .gri-rates__card h3:not(#gri-none) { display: flex; flex-direction: column; margin: 0; font-size: 19px !important; }
.gri-v2 .gri-rates__card h3 small { font: 400 13px/18px var(--font-body); color: var(--ink-muted); }
.gri-v2 .gri-rates__card p { margin: 0; }
.gri-v2 .gri-rates__best { position: absolute; top: var(--space-3); right: var(--space-3); display: inline-flex; align-items: center; gap: 4px; padding: 2px 10px; border-radius: var(--radius-pill); background: var(--magenta-500); color: #fff; font: 700 12px/18px var(--font-body); }
.gri-v2 .gri-rates__best .gri-icon svg { width: 12px; height: 12px; }
.gri-v2 .gri-rates__price { font: 800 28px/1.1 var(--font-display); color: var(--violet-900); }
.gri-v2 .gri-rates__price small { display: block; margin-top: 2px; font: 400 12px/16px var(--font-body); color: var(--ink-muted); }
.gri-v2 .gri-rates__card dl { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 2px var(--space-3); margin: 0; font-size: 14px; line-height: 21px; }
.gri-v2 .gri-rates__card dt { margin: 0; color: var(--ink-muted); font-weight: 400; }
.gri-v2 .gri-rates__card dd { margin: 0; font-weight: 700; text-align: right; font-variant-numeric: tabular-nums; }
.gri-v2 .gri-rates__more { grid-column: 1 / -1; margin: 0; }
.gri-v2 .gri-rates__all,
.gri-v2 .gri-legal__more { margin: 0 0 var(--space-5); border: 1px solid var(--line); border-radius: var(--radius-md); }
.gri-v2 .gri-rates__all > summary,
.gri-v2 .gri-legal__more > summary { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding: var(--space-3) var(--space-5); font: 700 15px/22px var(--font-body); color: var(--violet-700); cursor: pointer; list-style: none; }
.gri-v2 .gri-rates__all > summary::-webkit-details-marker,
.gri-v2 .gri-legal__more > summary::-webkit-details-marker { display: none; }
.gri-v2 .gri-rates__all > summary::after,
.gri-v2 .gri-legal__more > summary::after { content: ""; width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-3px); transition: transform var(--dur-fast); }
.gri-v2 .gri-rates__all[open] > summary::after,
.gri-v2 .gri-legal__more[open] > summary::after { transform: rotate(-135deg) translateY(-3px); }
.gri-v2 .gri-rates__all > summary:focus-visible,
.gri-v2 .gri-legal__more > summary:focus-visible { outline: none; box-shadow: var(--shadow-focus); border-radius: var(--radius-md); }
.gri-v2 .gri-legal__more > ul { margin: 0; padding: 0 var(--space-5) var(--space-4) var(--space-6); }
.gri-v2 .com-content-article .gri-article__text .gri-rates__all .table-responsive { margin: 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; }
.gri-v2 .com-content-article .gri-article__text table.gri-rates__table { margin: 0; white-space: nowrap; font-size: 14px; }
.gri-v2 .gri-rates__table th,
.gri-v2 .gri-rates__table td { padding: 8px 12px; border-color: var(--line); text-align: center; vertical-align: middle; }
.gri-v2 .gri-rates__table thead th { font-weight: 700; }
.gri-v2 .gri-rates__table th small { display: block; font-weight: 400; color: var(--ink-muted); }
.gri-v2 .gri-rates__table .gri-rates__carrier { border-left: 2px solid var(--surface); font: 800 16px/1.2 var(--font-display); }
.gri-v2 .gri-rates__table td:first-child,
.gri-v2 .gri-rates__table thead tr:first-child th:first-child { position: sticky; left: 0; z-index: 1; background: var(--surface); text-align: left; font-weight: 700; box-shadow: 1px 0 0 var(--line); }
.gri-v2 .gri-rates__table tbody tr:nth-child(even) td { background: var(--surface-2); }
.gri-v2 .gri-rates__table td:nth-child(3n + 2) { border-left: 2px solid var(--violet-050); }
.gri-v2 .com-content-article .gri-article__text .shipping-best-price { display: inline-block; padding: 1px 8px; border-radius: var(--radius-pill); background: var(--magenta-050); color: var(--magenta-700); font-weight: 700; }
.gri-v2 .gri-rates__legend { margin: 0; padding: var(--space-3) var(--space-5); font-size: 13px; }
.gri-v2 .gri-legal__note { margin: 0 0 var(--space-4); padding: var(--space-4) var(--space-5); border-left: 4px solid var(--orange-500); border-radius: var(--radius-sm); background: var(--surface-2); }
.gri-v2 .gri-legal__note p:last-child { margin: 0; }
.gri-v2 .com-content-article .gri-article__text ul.gri-legal__columns { columns: 3; column-gap: var(--space-5); font-size: 14px; line-height: 22px; }
.gri-v2 .com-content-article .gri-article__text ul.gri-legal__columns--2 { columns: 2; padding-left: var(--space-5); font-size: 15px; }
.gri-v2 .com-content-article .gri-article__text .gri-legal__columns li { margin: 0 0 2px; break-inside: avoid; }
.gri-v2 .gri-legal__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.gri-v2 .com-content-article .gri-article__text .gri-legal__actions a.gri-btn--brand:not(#gri-none) { color: var(--on-brand) !important; text-decoration: none; }
.gri-v2 .com-content-article .gri-article__text .gri-legal__actions a.gri-btn--outline:not(#gri-none) { text-decoration: none; }

@media (max-width: 767.98px) {
  .gri-v2 .gri-legal__summary,
  .gri-v2 .gri-legal__contact { padding: var(--space-4); }
  .gri-v2 .com-content-article .gri-article__text .gri-legal__toc ol { columns: 1; }
  .gri-v2 .gri-legal__rows--compact,
  .gri-v2 .gri-legal__cards { grid-template-columns: minmax(0, 1fr); }
  .gri-v2 .gri-legal dl { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .gri-v2 .gri-legal dd { margin-bottom: var(--space-2); }
  .gri-v2 .gri-legal__row,
  .gri-v2 .gri-legal__card { padding: var(--space-4); }
  .gri-v2 .com-content-article .gri-article__text ul.gri-legal__perks,
  .gri-v2 .gri-rates__cards { grid-template-columns: minmax(0, 1fr); }
  .gri-v2 .gri-rates__pick .gri-select { width: 100%; min-width: 0; }
  .gri-v2 .gri-legal .gri-rates__card dl { grid-template-columns: auto minmax(0, 1fr); gap: 2px var(--space-3); }
  .gri-v2 .gri-legal .gri-rates__card dd { margin: 0; }
  .gri-v2 .gri-rates__best { position: static; align-self: flex-start; order: -1; }
  .gri-v2 .com-content-article .gri-article__text .gri-legal__perks li { padding: var(--space-3); font-size: 15px; }
  .gri-v2 .com-content-article .gri-article__text ul.gri-legal__columns { columns: 2; }
  .gri-v2 .com-content-article .gri-article__text ul.gri-legal__columns--2 { columns: 1; }
}

/* ---------- Blog: cards ---------- */
.gri-v2 :is(.com-content-category-blog, main > .blog) { padding: var(--space-6) 0 var(--space-7); }
.gri-v2 :is(.com-content-category-blog, main > .blog) .item-content:not(#gri-none) { height: 100%; padding: 0 !important; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-lg) !important; background: var(--surface); box-shadow: none !important; transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base); }
.gri-v2 :is(.com-content-category-blog, main > .blog) .item-content:hover { transform: translateY(-4px); box-shadow: var(--shadow-raised) !important; }
.gri-v2 :is(.com-content-category-blog, main > .blog) .item-image { position: relative; margin: 0; }
.gri-v2 :is(.com-content-category-blog, main > .blog) .item-image img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.gri-v2 :is(.com-content-category-blog, main > .blog) .items-leading .item-image img { aspect-ratio: 21 / 9; }
.gri-v2 :is(.com-content-category-blog, main > .blog) .item-image .caption { position: absolute; right: var(--space-2); bottom: var(--space-2); padding: 2px 8px; border-radius: var(--radius-pill); background: rgba(0, 0, 0, .55); color: #fff; font-size: 11px; }
.gri-v2 :is(.com-content-category-blog, main > .blog) .item-content > .d-flex { padding: var(--space-5); gap: var(--space-2); }
.gri-v2 :is(.com-content-category-blog, main > .blog) .page-header h2:not(#gri-none) { margin: 0; font: 800 22px/1.25 var(--font-display) !important; text-transform: none !important; color: var(--violet-900) !important; }
.gri-v2 :is(.com-content-category-blog, main > .blog) .items-leading .page-header h2:not(#gri-none) { font-size: 28px !important; }
.gri-v2 :is(.com-content-category-blog, main > .blog) .article-intro-text p { margin: 0; font-size: 15px; line-height: 24px; color: var(--ink-muted); text-align: left !important; }
.gri-v2 :is(.com-content-category-blog, main > .blog) .readmore { margin: var(--space-2) 0 0; }
.gri-v2 :is(.com-content-category-blog, main > .blog) .readmore a:not(#gri-none) { display: inline-flex; align-items: center; gap: 4px; font: 700 14px/20px var(--font-body); color: var(--violet-700) !important; text-decoration: none; }
.gri-v2 :is(.com-content-category-blog, main > .blog) .readmore a:not(#gri-none)::after { content: "→"; transition: transform var(--dur-fast); }
.gri-v2 :is(.com-content-category-blog, main > .blog) .readmore a:hover::after { transform: translateX(3px); }

/* ---------- Appointments (EasyAppointment, initAppointments) ---------- */
.gri-v2 #easyapp.gri-rdv { max-width: 1040px; margin: 0 auto; padding: var(--space-6) 0 var(--space-7); font: 400 15px/22px var(--font-body); color: var(--ink); }
.gri-v2 .gri-rdv > .well,
.gri-v2 .gri-rdv > .card.header,
.gri-v2 .gri-rdv > .breadcrumb,
.gri-v2 .gri-rdv .calendar > .section-title,
.gri-v2 .gri-rdv #calendar-controls,
.gri-v2 .gri-rdv #mobile-calendar-navigation,
.gri-v2 .gri-rdv #calendar-close { display: none !important; }

/* Header */
.gri-v2 .gri-rdv__head { display: flex; align-items: center; gap: var(--space-5); margin-bottom: var(--space-6); }
.gri-v2 .gri-rdv__avatar { flex: none; width: 88px; height: 88px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 4px var(--surface), 0 0 0 6px var(--magenta-500); }
.gri-v2 .gri-rdv__head--small .gri-rdv__avatar { width: 64px; height: 64px; }
.gri-v2 .gri-rdv__title:not(#gri-none) { margin: 0 0 var(--space-1); font: 800 clamp(28px, 3vw, 38px)/1.1 var(--font-display) !important; text-transform: none !important; color: var(--violet-900) !important; }
.gri-v2 .gri-rdv__with { margin: 0; color: var(--ink-muted); }
.gri-v2 .gri-rdv__with strong { color: var(--ink); }
.gri-v2 .gri-rdv__with a:not(#gri-none) { font-weight: 700; color: var(--violet-700) !important; }
.gri-v2 .gri-rdv__lead { max-width: 60ch; margin: var(--space-2) 0 0; }

/* Service cards */
.gri-v2 .gri-rdv__services { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.gri-v2 a.gri-rdv__service:not(#gri-none) { display: grid; grid-template-columns: 56px minmax(0, 1fr); grid-template-areas: "icon body" "icon go"; gap: var(--space-2) var(--space-4); padding: var(--space-5); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); color: var(--ink) !important; text-decoration: none; transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base), border-color var(--dur-base); }
.gri-v2 a.gri-rdv__service:not(#gri-none):hover { transform: translateY(-4px); border-color: var(--violet-700); box-shadow: var(--shadow-raised); }
.gri-v2 .gri-rdv__sicon { grid-area: icon; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--violet-050); color: var(--violet-700); }
.gri-v2 .gri-rdv__sicon svg { width: 26px; height: 26px; }
.gri-v2 .gri-rdv__sbody { grid-area: body; display: flex; flex-direction: column; gap: 4px; }
.gri-v2 .gri-rdv__sbody strong { font: 800 20px/1.2 var(--font-display); color: var(--violet-900); }
.gri-v2 .gri-rdv__sbody small { font-size: 14px; color: var(--ink-muted); }
.gri-v2 .gri-rdv__sgo { grid-area: go; display: inline-flex; align-items: center; gap: 2px; font: 700 14px/20px var(--font-body); color: var(--magenta-500); }
.gri-v2 .gri-rdv__sgo svg { width: 16px; height: 16px; transition: transform var(--dur-fast); }
.gri-v2 a.gri-rdv__service:hover .gri-rdv__sgo svg { transform: translateX(3px); }

/* Calendar: week navigation, day columns of time pills */
.gri-v2 .gri-rdv .calendar,
.gri-v2 .gri-rdv #calendar { margin: 0; padding: 0; border: 0; background: none !important; position: static !important; }
.gri-v2 .gri-rdv__weeknav { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); margin-bottom: var(--space-4); }
.gri-v2 .gri-rdv__weeknav .gri-btn svg { width: 16px; height: 16px; }
.gri-v2 .gri-rdv__range { font: 800 18px/1.2 var(--font-display); color: var(--violet-900); }
.gri-v2 .gri-rdv #calendar-table { max-width: none; overflow: visible; padding: 0; }
.gri-v2 .gri-rdv__days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); align-items: start; gap: var(--space-2); }
.gri-v2 .gri-rdv__day { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-3) var(--space-2); border-radius: var(--radius-md); background: var(--surface); box-shadow: inset 0 0 0 1px var(--line); }
.gri-v2 .gri-rdv__day.is-off { background: var(--surface-2); box-shadow: none; }
.gri-v2 .gri-rdv__dayhead { display: flex; flex-direction: column; align-items: center; padding-bottom: var(--space-2); border-bottom: 1px solid var(--line); }
.gri-v2 .gri-rdv__dayhead span { text-transform: capitalize; }
.gri-v2 .gri-rdv__dayhead span { font-size: 13px; color: var(--ink-muted); }
.gri-v2 .gri-rdv__dayhead strong { font: 800 16px/1.2 var(--font-display); color: var(--violet-900); }
.gri-v2 .gri-rdv__state { margin: var(--space-2) 0 0; text-align: center; font-size: 13px; color: var(--ink-muted); }
.gri-v2 .gri-rdv__slots { display: flex; flex-direction: column; gap: 6px; }
.gri-v2 a.gri-rdv__slot:not(#gri-none) { display: block; padding: 7px 0; border-radius: var(--radius-pill); box-shadow: inset 0 0 0 1px var(--violet-700); text-align: center; font: 700 14px/20px var(--font-body); font-variant-numeric: tabular-nums; color: var(--violet-700) !important; text-decoration: none; transition: background var(--dur-fast), color var(--dur-fast); }
.gri-v2 a.gri-rdv__slot:not(#gri-none):hover,
.gri-v2 a.gri-rdv__slot:not(#gri-none):focus-visible { background: var(--violet-700); color: #fff !important; outline: none; }

/* Booking steps (information, confirmation, finish) */
.gri-v2 .gri-rdv .booking-steps { display: flex; gap: var(--space-2); margin: 0 0 var(--space-5); padding: 0; list-style: none; counter-reset: rdvstep; }
.gri-v2 #easyapp.gri-rdv ul.booking-steps li { flex: 1; margin: 0; padding: var(--space-2) 0 0; border-top: 4px solid var(--line); font: 700 13px/18px var(--font-body); color: var(--ink-muted); counter-increment: rdvstep; background: none !important; }
.gri-v2 #easyapp.gri-rdv ul.booking-steps li { text-align: left; display: block; }
.gri-v2 #easyapp.gri-rdv ul.booking-steps li::before { content: counter(rdvstep) ". "; display: inline; width: auto; height: auto; margin: 0; border: 0; border-radius: 0; background: none !important; color: inherit; }
.gri-v2 #easyapp.gri-rdv ul.booking-steps li.active { border-color: var(--magenta-500); color: var(--violet-900); }
.gri-v2 .gri-rdv .row.steps { margin: 0; }
.gri-v2 .gri-rdv .steps .col-md-12 { width: 100%; padding: 0; }
.gri-v2 .gri-rdv form > .row:not(.steps) { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: var(--space-5); margin: 0; }
.gri-v2 .gri-rdv form > .row > [class*="col-"] { width: auto; max-width: none; padding: 0; }
.gri-v2 #easyapp.gri-rdv .information { padding: var(--space-5); border-radius: var(--radius-lg); background: var(--surface) !important; box-shadow: inset 0 0 0 1px var(--line); }
.gri-v2 .gri-rdv .information > p { margin: 0 0 var(--space-3); color: var(--ink-muted); }
.gri-v2 .gri-rdv .form-group { display: flex; flex-direction: column; gap: var(--space-1); margin: 0 0 var(--space-4); }
.gri-v2 .gri-rdv .form-group label:not(#gri-none) { font: 700 14px/20px var(--font-body) !important; color: var(--ink) !important; }
.gri-v2 .gri-rdv .star { color: var(--magenta-500); }
.gri-v2 .gri-rdv .form-group input.form-control,
.gri-v2 .gri-rdv .form-group textarea.form-control,
.gri-v2 .gri-rdv .form-group select { width: 100% !important; height: 48px; padding: 0 var(--space-4) !important; border: 1px solid var(--line-strong) !important; border-radius: var(--radius-sm) !important; background: var(--surface) !important; box-shadow: none !important; font: 400 16px/24px var(--font-body) !important; color: var(--ink) !important; }
.gri-v2 .gri-rdv .form-group textarea.form-control { min-height: 110px; height: auto; padding: var(--space-3) var(--space-4) !important; }
.gri-v2 .gri-rdv .form-group input:focus,
.gri-v2 .gri-rdv .form-group textarea:focus { border-color: var(--magenta-500) !important; box-shadow: 0 0 0 3px var(--magenta-050) !important; outline: none; }
.gri-v2 #easyapp.gri-rdv button.gri-rdv__go:not(#gri-none) { width: 100%; justify-content: center; border: 0; background: var(--violet-700) !important; color: var(--on-brand) !important; }
.gri-v2 #easyapp.gri-rdv button.gri-rdv__go:not(#gri-none):hover { background: var(--violet-900) !important; }

/* Summary card */
.gri-v2 .gri-rdv__summary:not(#gri-none) { position: sticky; top: 152px; padding: var(--space-5); border: 0; border-radius: var(--radius-lg); background: var(--violet-050); }
.gri-v2 .gri-rdv__eyebrow { margin: 0 0 var(--space-3); font: 700 12px/16px var(--font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-muted); }
.gri-v2 .gri-rdv__summary .details-header,
.gri-v2 .gri-rdv__summary .card-header { padding: 0; border: 0; background: none !important; color: var(--violet-900); }
.gri-v2 .gri-rdv__summary h4:not(#gri-none) { display: flex; align-items: center; gap: var(--space-2); margin: 0 0 var(--space-2); font: 800 20px/1.2 var(--font-display) !important; color: var(--violet-900) !important; }
.gri-v2 .gri-rdv__summary h4 .gri-icon,
.gri-v2 .gri-rdv__summary h4 .gri-icon svg { width: 20px; height: 20px; color: var(--magenta-500); }
.gri-v2 .gri-rdv__summary .details-body { display: flex; align-items: center; gap: var(--space-3); margin: var(--space-3) 0 0; padding-top: var(--space-3); border-top: 1px solid rgba(55, 0, 107, .12); }
.gri-v2 .gri-rdv__summary .details-body > [class*="col-"] { width: auto; padding: 0; }
.gri-v2 .gri-rdv__summary img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; }
.gri-v2 .gri-rdv__summary h3:not(#gri-none) { margin: 0; font: 700 16px/1.2 var(--font-body) !important; }
.gri-v2 .gri-rdv__summary h3 a:not(#gri-none) { color: var(--ink) !important; text-decoration: none; }
.gri-v2 .gri-rdv__summary p { margin: 0; color: var(--ink-muted); font-size: 14px; }
.gri-v2 .gri-rdv .finished .card-header h2:not(#gri-none) { margin: 0 0 var(--space-3); font: 800 24px/1.2 var(--font-display) !important; text-transform: none !important; color: var(--violet-900) !important; }

@media (max-width: 991.98px) {
  .gri-v2 .gri-rdv__days { grid-template-columns: minmax(0, 1fr); }
  .gri-v2 .gri-rdv__day { padding: var(--space-3) var(--space-4); }
  .gri-v2 .gri-rdv__dayhead { flex-direction: row; justify-content: flex-start; gap: 6px; align-items: baseline; padding: 0; border: 0; }
  .gri-v2 .gri-rdv__day.is-off { flex-direction: row; justify-content: space-between; align-items: baseline; padding-block: var(--space-2); }
  .gri-v2 .gri-rdv__day.is-off .gri-rdv__state { margin: 0; }
  .gri-v2 .gri-rdv__slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: var(--space-2); }
  .gri-v2 .gri-rdv form > .row:not(.steps) { grid-template-columns: minmax(0, 1fr); }
  .gri-v2 .gri-rdv__summary:not(#gri-none) { position: static; }
  .gri-v2 .gri-rdv form > .row > :has(.gri-rdv__summary) { order: -1; }
}
@media (max-width: 767.98px) {
  .gri-v2 #easyapp.gri-rdv { padding-top: var(--space-4); }
  .gri-v2 .gri-rdv__services { grid-template-columns: minmax(0, 1fr); }
  .gri-v2 .gri-rdv__head { align-items: flex-start; gap: var(--space-3); }
  .gri-v2 .gri-rdv__avatar { width: 64px; height: 64px; }
  .gri-v2 .gri-rdv__weeknav .gri-btn { padding: 0 var(--space-2); font-size: 0; }
  .gri-v2 .gri-rdv__weeknav .gri-btn svg { width: 22px; height: 22px; }
}

/* ---------- FAQ (tmpl/faq.php, initFaq): hub and question pages, FaqHub of the design system ---------- */
.gri-v2 .gri-faq { max-width: 1040px; margin: 0 auto; padding: var(--space-5) 0 var(--space-7); font: 400 16px/26px var(--font-body); color: var(--ink); }
.gri-v2 .gri-faq .gri-crumbs { margin-bottom: var(--space-4); }
.gri-v2 .gri-faq__head { padding: var(--space-6) var(--space-6) var(--space-5); border-radius: var(--radius-lg); background: var(--violet-050); text-align: center; }
.gri-v2 .gri-faq__title:not(#gri-none) { margin: 0 0 var(--space-2); font: 800 clamp(30px, 3.4vw, 42px)/1.1 var(--font-display) !important; letter-spacing: -.01em; text-transform: none !important; color: var(--violet-900) !important; }
.gri-v2 .gri-faq__lead { max-width: 560px; margin: 0 auto var(--space-5); color: var(--ink-muted); }
.gri-v2 .gri-faq__search { position: relative; max-width: 620px; margin: 0 auto; }
.gri-v2 .gri-faq__search > .gri-icon { position: absolute; top: 50%; left: 20px; width: 22px; height: 22px; transform: translateY(-50%); color: var(--violet-700); pointer-events: none; }
.gri-v2 .gri-faq__search > .gri-icon svg { width: 22px; height: 22px; }
.gri-v2 .gri-faq__input:not(#gri-none) { width: 100%; height: 56px; margin: 0; padding: 0 var(--space-5) 0 56px; border: 1px solid var(--line-strong); border-radius: var(--radius-pill); background: var(--surface); box-shadow: var(--shadow-raised); font: 400 16px/24px var(--font-body); color: var(--ink); }
.gri-v2 .gri-faq__input:focus { border-color: var(--magenta-500); outline: none; box-shadow: 0 0 0 3px var(--magenta-050); }
.gri-v2 .gri-faq__topics { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-2); margin: var(--space-5) 0 var(--space-6); }
.gri-v2 .gri-faq__topic:not(#gri-none) { display: inline-flex; align-items: center; gap: var(--space-2); min-height: 44px; padding: 6px 16px 6px 8px; border: 1px solid var(--line); border-radius: var(--radius-pill); background: var(--surface); color: var(--ink); font: 700 15px/20px var(--font-body); text-decoration: none; transition: border-color var(--dur-fast), background var(--dur-fast); }
.gri-v2 .gri-faq__topic .gri-icon { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--violet-050); color: var(--magenta-500); }
.gri-v2 .gri-faq__topic .gri-icon svg { width: 16px; height: 16px; }
.gri-v2 .gri-faq__topic small { font-weight: 400; color: var(--ink-muted); }
.gri-v2 .gri-faq__topic:hover { border-color: var(--violet-700); }
.gri-v2 .gri-faq__topic.is-active:not(#gri-none) { border-color: var(--violet-700); background: var(--violet-700); color: var(--on-brand); }
.gri-v2 .gri-faq__topic.is-active .gri-icon { background: rgba(255, 255, 255, .16); color: #fff; }
.gri-v2 .gri-faq__topic.is-active small { color: rgba(255, 255, 255, .8); }
.gri-v2 .gri-faq__topic:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
.gri-v2 .gri-faq__groups { display: grid; gap: var(--space-6); }
.gri-v2 .gri-faq__group[hidden] { display: none; }
.gri-v2 .gri-faq__group { scroll-margin-top: 160px; }
.gri-v2 .gri-faq__group-title:not(#gri-none) { display: flex; align-items: center; gap: var(--space-2); margin: 0 0 var(--space-3); font: 800 24px/1.2 var(--font-display) !important; text-transform: none !important; color: var(--violet-900) !important; }
.gri-v2 .gri-faq__group-title .gri-icon,
.gri-v2 .gri-faq__group-title .gri-icon svg { width: 24px; height: 24px; color: var(--magenta-500); }
.gri-v2 .gri-faq__q { margin: 0 0 var(--space-2); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); scroll-margin-top: 160px; transition: border-color var(--dur-fast), box-shadow var(--dur-fast); }
.gri-v2 .gri-faq__q[hidden] { display: none; }
.gri-v2 .gri-faq__q[open] { border-color: var(--violet-700); box-shadow: var(--shadow-raised); }
.gri-v2 .gri-faq__q > summary { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding: var(--space-3) var(--space-5); min-height: 56px; font: 700 17px/24px var(--font-body); color: var(--ink); cursor: pointer; list-style: none; }
.gri-v2 .gri-faq__q > summary::-webkit-details-marker { display: none; }
.gri-v2 .gri-faq__q > summary::after { content: ""; flex: none; width: 10px; height: 10px; margin-right: 4px; border-right: 2px solid var(--violet-700); border-bottom: 2px solid var(--violet-700); transform: rotate(45deg) translateY(-3px); transition: transform var(--dur-fast); }
.gri-v2 .gri-faq__q[open] > summary::after { transform: rotate(-135deg) translateY(-3px); }
.gri-v2 .gri-faq__q > summary:hover { color: var(--violet-700); }
.gri-v2 .gri-faq__q > summary:focus-visible { outline: none; box-shadow: var(--shadow-focus); border-radius: var(--radius-md); }
.gri-v2 .gri-faq__q .gri-faq__a { padding: 0 var(--space-5) var(--space-4); }
.gri-v2 .gri-faq__a p { margin: 0 0 var(--space-3); }
.gri-v2 .gri-faq__a ul { margin: 0 0 var(--space-3); padding-left: var(--space-5); }
.gri-v2 .gri-faq__a li { margin-bottom: var(--space-1); }
.gri-v2 .gri-faq__a li::marker { color: var(--magenta-500); }
.gri-v2 .gri-faq__a a:not(.gri-btn):not(#gri-none) { color: var(--violet-700) !important; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(106, 0, 136, .35); word-break: break-word; }
.gri-v2 .gri-faq__perma { margin: var(--space-3) 0 0 !important; padding-top: var(--space-3); border-top: 1px solid var(--line); font-size: 14px; }
.gri-v2 .gri-faq__a .gri-faq__perma a:not(#gri-none) { font-weight: 400; text-decoration: none; }
.gri-v2 .gri-faq__empty { margin: 0; padding: var(--space-5); border-radius: var(--radius-md); background: var(--surface-2); text-align: center; color: var(--ink-muted); }
.gri-v2 .gri-faq__help { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--space-4); margin: var(--space-7) 0 0; padding: var(--space-5) var(--space-6); border-radius: var(--radius-lg); background: var(--violet-900); color: #fff; }
.gri-v2 .gri-faq__help-icon { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: rgba(255, 255, 255, .12); }
.gri-v2 .gri-faq__help-icon svg { width: 26px; height: 26px; }
.gri-v2 .gri-faq__help h2:not(#gri-none) { margin: 0 0 4px; font: 800 22px/1.2 var(--font-display) !important; text-transform: none !important; color: #fff !important; }
.gri-v2 .gri-faq__help p { margin: 0; color: rgba(255, 255, 255, .85); }
.gri-v2 .gri-faq__help-actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.gri-v2 .gri-faq__help .gri-btn .gri-icon,
.gri-v2 .gri-faq__help .gri-btn .gri-icon svg { width: 18px; height: 18px; }
.gri-v2 .gri-faq__help a.gri-btn--outline:not(#gri-none) { --btn-bg: transparent; --btn-fg: #fff; --btn-edge: rgba(255, 255, 255, .5); border-color: rgba(255, 255, 255, .7); color: #fff !important; text-decoration: none; }

/* one question */
.gri-v2 .gri-faq__layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--space-7); align-items: start; }
.gri-v2 .gri-faq__eyebrow { display: inline-flex; align-items: center; gap: var(--space-2); margin: 0 0 var(--space-2); font: 700 14px/20px var(--font-body); color: var(--magenta-700); }
.gri-v2 .gri-faq__eyebrow .gri-icon,
.gri-v2 .gri-faq__eyebrow .gri-icon svg { width: 18px; height: 18px; color: var(--magenta-500); }
.gri-v2 .gri-faq--article .gri-faq__title:not(#gri-none) { margin-bottom: var(--space-4); }
.gri-v2 .gri-faq--article .gri-faq__main .gri-faq__a { font-size: 17px; line-height: 28px; }
.gri-v2 .gri-faq__back { margin: var(--space-5) 0 0; }
.gri-v2 .gri-faq__back a:not(#gri-none) { color: var(--violet-700) !important; font-weight: 700; text-decoration: none; }
.gri-v2 .gri-faq__side { position: sticky; top: 152px; padding: var(--space-5); border-radius: var(--radius-lg); background: var(--violet-050); }
.gri-v2 .gri-faq__side h2:not(#gri-none) { margin: 0 0 var(--space-2); font: 800 18px/1.2 var(--font-display) !important; text-transform: none !important; color: var(--violet-900) !important; }
.gri-v2 .gri-faq__side h2 + .gri-faq__links { margin-bottom: var(--space-5); }
.gri-v2 .gri-faq__links { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.gri-v2 .gri-faq__links a:not(#gri-none) { display: flex; align-items: center; gap: var(--space-2); padding: 6px 0; color: var(--ink) !important; font-size: 15px; line-height: 21px; text-decoration: none; }
.gri-v2 .gri-faq__links a:hover { color: var(--violet-700) !important; text-decoration: underline; }
.gri-v2 .gri-faq__links .gri-icon,
.gri-v2 .gri-faq__links .gri-icon svg { width: 18px; height: 18px; color: var(--magenta-500); }

@media (max-width: 991.98px) {
  .gri-v2 .gri-faq__layout { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
  .gri-v2 .gri-faq__side { position: static; }
  .gri-v2 .gri-faq__help { grid-template-columns: auto minmax(0, 1fr); }
  .gri-v2 .gri-faq__help-actions { grid-column: 1 / -1; }
}
@media (max-width: 575.98px) {
  .gri-v2 .gri-faq { padding-top: var(--space-3); }
  .gri-v2 .gri-faq__head { padding: var(--space-5) var(--space-4); }
  .gri-v2 .gri-faq__topics { flex-wrap: nowrap; justify-content: flex-start; padding: 0 0 4px; overflow-x: auto; scrollbar-width: none; contain: inline-size; }
  .gri-v2 .gri-faq__topics::-webkit-scrollbar { display: none; }
  .gri-v2 .gri-faq__topic:not(#gri-none) { flex: none; }
  .gri-v2 .gri-faq__q > summary { padding: var(--space-3) var(--space-4); font-size: 16px; }
  .gri-v2 .gri-faq__q .gri-faq__a { padding: 0 var(--space-4) var(--space-4); }
  .gri-v2 .gri-faq__help { grid-template-columns: minmax(0, 1fr); padding: var(--space-5) var(--space-4); text-align: center; }
  .gri-v2 .gri-faq__help-icon { margin: 0 auto; }
  .gri-v2 .gri-faq__help-actions { justify-content: center; }
}

/* ---------- Blog (tmpl/blog.php): hub, cards, post page; BlogCard of the design system ---------- */
.gri-v2 .gri-blog { max-width: 1120px; margin: 0 auto; padding: var(--space-5) 0 var(--space-7); font: 400 16px/26px var(--font-body); color: var(--ink); }
.gri-v2 .gri-blog .gri-crumbs { margin-bottom: var(--space-4); }
.gri-v2 .gri-blog__head { margin: 0 0 var(--space-6); }
.gri-v2 .gri-blog__h1:not(#gri-none) { margin: 0 0 var(--space-2); font: 800 clamp(32px, 3.6vw, 46px)/1.1 var(--font-display) !important; letter-spacing: -.01em; text-transform: none !important; color: var(--violet-900) !important; }
.gri-v2 .gri-blog__lead { max-width: 640px; margin: 0; font-size: 18px; line-height: 28px; color: var(--ink-muted); }
.gri-v2 .gri-blog__h2:not(#gri-none) { margin: 0 0 var(--space-4); font: 800 26px/1.2 var(--font-display) !important; text-transform: none !important; color: var(--violet-900) !important; }
.gri-v2 .gri-blog__feature { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); margin: 0 0 var(--space-7); overflow: hidden; border-radius: var(--radius-lg); background: var(--violet-050); }
.gri-v2 .gri-blog__media { position: relative; display: block; overflow: hidden; background: var(--surface-2); }
.gri-v2 .gri-blog__media img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform var(--dur-base) var(--ease-out); }
.gri-v2 .gri-blog__feature .gri-blog__media { min-height: 400px; }
.gri-v2 .gri-blog__feature .gri-blog__media img { position: absolute; inset: 0; aspect-ratio: auto; object-position: center 30%; }
.gri-v2 .gri-blog__feature:hover .gri-blog__media img,
.gri-v2 .gri-blog__card:hover .gri-blog__media img { transform: scale(1.03); }
.gri-v2 .gri-blog__placeholder { display: grid; place-items: center; width: 100%; height: 100%; min-height: 200px; color: var(--magenta-500); }
.gri-v2 .gri-blog__placeholder svg { width: 48px; height: 48px; }
.gri-v2 .gri-blog__feature .gri-blog__body { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: var(--space-3); padding: var(--space-6); }
.gri-v2 .gri-blog__eyebrow { display: inline-flex; align-items: center; gap: 6px; margin: 0; padding: 2px 12px 2px 8px; border-radius: var(--radius-pill); background: var(--magenta-500); color: #fff; font: 700 13px/22px var(--font-body); }
.gri-v2 .gri-blog__eyebrow .gri-icon,
.gri-v2 .gri-blog__eyebrow .gri-icon svg { width: 14px; height: 14px; }
.gri-v2 .gri-blog__title:not(#gri-none) { margin: 0; font: 800 20px/1.25 var(--font-display) !important; text-transform: none !important; }
.gri-v2 .gri-blog__title--lg:not(#gri-none) { font-size: clamp(24px, 2.4vw, 32px) !important; line-height: 1.15 !important; }
.gri-v2 .gri-blog__title a:not(#gri-none) { color: var(--violet-900) !important; text-decoration: none; }
.gri-v2 .gri-blog__title a:hover { color: var(--violet-700) !important; }
.gri-v2 .gri-blog__meta { margin: 0; font-size: 14px; color: var(--ink-muted); }
.gri-v2 .gri-blog__excerpt { margin: 0; color: var(--ink); }
.gri-v2 .gri-blog__feature .gri-btn { margin-top: var(--space-2); }
.gri-v2 .gri-blog__feature a.gri-btn:not(#gri-none) { color: var(--on-brand) !important; text-decoration: none; }
.gri-v2 .gri-blog__list,
.gri-v2 .gri-post__related { margin: 0 0 var(--space-7); }
.gri-v2 .gri-blog__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); }
.gri-v2 .gri-blog__card { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base); }
.gri-v2 .gri-blog__card:hover { transform: translateY(-4px); box-shadow: var(--shadow-raised); }
.gri-v2 .gri-blog__card .gri-blog__body { display: flex; flex: 1; flex-direction: column; gap: var(--space-2); padding: var(--space-4) var(--space-5) var(--space-5); }
.gri-v2 .gri-blog__card .gri-blog__excerpt { font-size: 15px; line-height: 23px; color: var(--ink-muted); }
.gri-v2 .gri-blog__read:not(#gri-none) { margin-top: auto; padding-top: var(--space-2); color: var(--violet-700) !important; font: 700 15px/22px var(--font-body); text-decoration: none; }
.gri-v2 .gri-blog__read span { display: inline-block; transition: transform var(--dur-fast); }
.gri-v2 .gri-blog__read:hover span { transform: translateX(3px); }
.gri-v2 .gri-blog__more { padding: var(--space-6); border-radius: var(--radius-lg); background: var(--surface-2); }
.gri-v2 .gri-blog__soon { margin: calc(-1 * var(--space-2)) 0 var(--space-4); color: var(--ink-muted); }
.gri-v2 .gri-blog__tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); }
.gri-v2 .gri-blog__tile:not(#gri-none) { display: flex; align-items: flex-start; gap: var(--space-3); padding: var(--space-4); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); color: var(--ink) !important; text-decoration: none; transition: border-color var(--dur-fast), box-shadow var(--dur-fast); }
.gri-v2 .gri-blog__tile:hover { border-color: var(--violet-700); box-shadow: var(--shadow-raised); }
.gri-v2 .gri-blog__tile > .gri-icon { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--violet-050); color: var(--magenta-500); }
.gri-v2 .gri-blog__tile > .gri-icon svg { width: 22px; height: 22px; }
.gri-v2 .gri-blog__tile strong { display: block; font: 800 17px/1.25 var(--font-display); color: var(--violet-900); }
.gri-v2 .gri-blog__tile small { display: block; margin-top: 2px; font-size: 14px; line-height: 20px; color: var(--ink-muted); }

/* one post: a reading column, the cover full width of it, the old Bootstrap 2 thumbnails as a grid */
.gri-v2 .gri-post__crumbs { max-width: 860px; margin: 0 auto; padding: var(--space-5) 0 0; }
.gri-v2 .gri-post .gri-article__title,
.gri-v2 .gri-post .gri-article__image { max-width: 860px; margin-right: auto; margin-left: auto; }
.gri-v2 .gri-post .gri-article__title { padding-top: var(--space-4); }
.gri-v2 .gri-post .gri-article__title h1:not(#gri-none) { margin: 0 0 var(--space-2); font: 800 clamp(30px, 3.4vw, 44px)/1.12 var(--font-display) !important; letter-spacing: -.01em; text-transform: none !important; color: var(--violet-900) !important; }
.gri-v2 .gri-post__meta { margin: 0 0 var(--space-4); font-size: 15px; color: var(--ink-muted); }
.gri-v2 .gri-post .gri-article__image figure { margin: 0 0 var(--space-2); }
.gri-v2 .gri-post .gri-article__image img { display: block; width: 100%; max-height: 520px; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius-lg); }
.gri-v2 .gri-post .gri-article__image figcaption { margin-top: var(--space-1); font-size: 13px; color: var(--ink-muted); }
.gri-v2 .gri-post .gri-article__text:not(#gri-none) { padding-top: var(--space-5); }
.gri-v2 .gri-post .gri-article__text .lead { font-size: 19px; line-height: 30px; }
.gri-v2 .gri-post .gri-article__text .text-justify { text-align: left !important; }
.gri-v2 .gri-post .gri-article__text img { display: block; max-height: 640px; width: auto; margin: 0 auto var(--space-3); }
.gri-v2 .gri-post .gri-article__text .row-fluid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); margin: var(--space-5) 0; }
.gri-v2 .gri-post .gri-article__text .row-fluid > [class*="span"] { width: auto; margin: 0; float: none; }
.gri-v2 .gri-post .gri-article__text .thumbnail { height: 100%; margin: 0; padding: 0 0 var(--space-4); overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); }
.gri-v2 .gri-post .gri-article__text .thumbnail img { width: 100%; max-height: none; aspect-ratio: 4 / 5; object-fit: cover; margin: 0 0 var(--space-3); border-radius: 0; }
.gri-v2 .gri-post .gri-article__text .thumbnail > :not(img) { margin-right: var(--space-4); margin-left: var(--space-4); }
.gri-v2 .gri-post .gri-article__text .thumbnail h2:not(#gri-none) { margin-top: 0; font-size: 22px !important; }
.gri-v2 .gri-post .gri-article__text .thumbnail h2 a:not(#gri-none) { text-decoration: none; }
.gri-v2 .gri-post__after { max-width: 1120px; margin: 0 auto; padding: 0 0 var(--space-7); }
.gri-v2 .gri-post__back { max-width: 860px; margin: 0 auto var(--space-6); }
.gri-v2 .gri-post__back a:not(#gri-none) { color: var(--violet-700) !important; font-weight: 700; text-decoration: none; }

@media (max-width: 991.98px) {
  .gri-v2 .gri-blog__feature { grid-template-columns: minmax(0, 1fr); }
  .gri-v2 .gri-blog__feature .gri-blog__media { min-height: 0; aspect-ratio: 4 / 3; }
  .gri-v2 .gri-blog__grid,
  .gri-v2 .gri-blog__tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
  .gri-v2 .gri-blog { padding-top: var(--space-3); }
  .gri-v2 .gri-blog__feature .gri-blog__body { padding: var(--space-5) var(--space-4); }
  .gri-v2 .gri-blog__grid,
  .gri-v2 .gri-blog__tiles,
  .gri-v2 .gri-post .gri-article__text .row-fluid { grid-template-columns: minmax(0, 1fr); }
  .gri-v2 .gri-blog__more { padding: var(--space-5) var(--space-4); }
  .gri-v2 .gri-post__crumbs { padding-top: var(--space-3); }
}

/* Dashboard « Bannières » (BannerAdmin): the live preview sticks under the site's sticky header */
@media (min-width: 1101px) {
  .gri-v2 .gri-sdb .gri-bnadm__preview { top: 152px; }
}
