/* Figma desktop/mobile section nodes documented in docs/home-completion.md.
   Scoped below-fold rules preserve the previously approved modules. */
.mr-lower-section { padding-block: 4rem; }
.mr-lower-section :is(h2, h3, p, figure, blockquote, dl) { margin-block-start: 0; }
.mr-lower-section .mr-label { margin-block-end: 1.5rem; }
.mr-lower-section .mr-section-title { margin-block-end: 2rem; }
.mr-lower-copy { color: var(--mr-color-text-secondary); }
.mr-lower-copy > :last-child { margin-block-end: 0; }
.mr-lower-stack { display: grid; gap: 2rem; }
.mr-editorial-grid, .mr-team-grid, .mr-cice-grid, .mr-contact-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
:is(.mr-editorial-grid, .mr-team-grid, .mr-cice-grid, .mr-contact-grid) > * { min-inline-size: 0; }
.mr-media-slot { display: block; max-inline-size: 100%; background: var(--mr-color-surface-alt); border-radius: var(--mr-radius-image); overflow: hidden; }
.mr-media-slot:empty { background: linear-gradient(135deg, var(--mr-color-border), var(--mr-color-surface-alt)); }
.mr-media-slot img { display: block; inline-size: 100%; block-size: 100%; object-fit: contain; }
.mr-callout { padding-block: 3rem; text-align: center; }
.mr-callout h2 { max-inline-size: 70rem; margin: 0 auto 1.5rem; font-size: clamp(1.4375rem, .95rem + 2vw, 2.75rem); line-height: 1.15; }
.mr-team, .mr-cice, .mr-contact, .mr-footer { background: var(--mr-color-surface); }
.mr-team-photo { aspect-ratio: 640 / 419.375; }
.mr-team-photo img { object-fit: cover; }
.mr-tlg-intro { display: flex; flex-direction: column; gap: 1.5rem; align-items: flex-start; }
.mr-tlg-intro .mr-label { margin: 0; }
.mr-tlg-logo { inline-size: 23.375rem; aspect-ratio: 374 / 265; }
.mr-tlg-intro h2 { margin: 0; font-size: clamp(1.5rem, 1.36rem + .57vw, 1.875rem); line-height: 1.25; color: var(--mr-color-text-secondary); }
.mr-tlg-details { display: grid; gap: 1.5rem; justify-items: start; }
.mr-tlg-action { display: flex; inline-size: 100%; }
.mr-tlg-block { inline-size: 100%; border-block-start: 1px solid var(--mr-color-detail-rule); padding-block-start: 1.5rem; }
.mr-tlg-block h3 { margin-block: 0 1.5rem; font-size: calc(1.5rem - 2px); }
.mr-cice-intro { display: grid; gap: 1.5rem; justify-items: start; }
.mr-cice-intro .mr-label { margin: 0; }
.mr-cice-logo { inline-size: 15rem; aspect-ratio: 240 / 135; }
.mr-cice-presentation { margin: 0; color: var(--mr-color-text-secondary); font-size: .9375rem; line-height: 1.2; text-transform: uppercase; }
.mr-cice-role { inline-size: 100%; padding-block-start: 1.5rem; border-block-start: 1px solid var(--mr-color-detail-rule); }
.mr-cice-role h3 { margin-block: 0 .625rem; font-size: calc(1.25rem - 2px); }
.mr-cice-role .mr-lower-copy { font-size: 1rem; }
.mr-cice-figure { margin: 0; display: grid; align-content: start; gap: 1.75rem; }
.mr-cice-photo { aspect-ratio: 724 / 367.43; }
.mr-cice-figure figcaption { font-family: var(--mr-font-heading); font-size: 1.375rem; line-height: 1.25; text-align: center; }
.mr-cice-features { display: grid; gap: 1.5rem; align-content: start; }
.mr-cice-features ul { display: grid; gap: 1rem; margin: 0; padding-inline-start: 1.25rem; }
.mr-cice-features li::marker { color: var(--mr-color-action); }
.mr-cice-results { display: grid; gap: 2rem; align-content: start; }
.mr-cice-indicators { display: flex; flex-direction: column; gap: 1.5rem; padding-block: 2rem; border-block: 1px solid var(--mr-color-detail-rule); }
.mr-cice-indicator { display: flex; flex: 1; flex-direction: column; gap: .75rem; text-align: center; margin: 0; min-inline-size: 0; }
.mr-cice-indicator dd { order: -1; margin: 0; color: var(--mr-color-accent); font: 2.5rem/1.1 var(--mr-font-heading); }
.mr-cice-indicator dd { font-variant-numeric: tabular-nums; }
.mr-cice-indicator dt { color: var(--mr-color-text-secondary); font-size: 1rem; }
.mr-cice-endorsement { display: grid; gap: .875rem; justify-items: center; text-align: center; font-size: .9375rem; color: var(--mr-color-text-secondary); }
.mr-cice-endorsement p { margin: 0; }
.mr-cice-badge { inline-size: 3.375rem; aspect-ratio: 1; }
.mr-training .mr-label { margin-block-end: 1.5rem; }
.mr-training h2 { margin: 0; font-size: clamp(2.125rem, 1.89rem + .95vw, 2.75rem); line-height: 1.15; }
.mr-training .mr-button { margin-block-start: 1.5rem; }
.mr-clients, .mr-testimonials { background: var(--mr-color-surface-alt); padding-block: 3.5rem; }
.mr-clients-intro { max-inline-size: 45rem; }
.mr-logos { position: relative; border-block-start: 1px solid var(--mr-color-detail-rule); min-inline-size: 0; }
/* Without JS all originals wrap and remain available, with no hidden scrollbar. */
.mr-logos-viewport { padding-block: 1rem; position: relative; }
.mr-logos-track { position: relative; display: flex; flex-wrap: wrap; gap: 1.25rem; align-items: center; padding: 0; margin: 0; list-style: none; }
.mr-logo-item { flex: 0 0 7rem; inline-size: 7rem; }
.mr-client-logo { display: flex; justify-content: center; align-items: center; inline-size: 100%; block-size: 2.75rem; background: transparent; }
.mr-client-logo img { inline-size: auto; block-size: auto; max-inline-size: 100%; max-block-size: 100%; object-fit: contain; }
.mr-client-link { display: block; }
[data-logos-ready] .mr-logos-viewport { overflow: hidden; touch-action: pan-y pinch-zoom; cursor: grab; user-select: none; }
[data-logos-ready] .mr-logos-track { flex-wrap: nowrap; inline-size: max-content; }
[data-logos-ready][data-dragging] .mr-logos-viewport { cursor: grabbing; }
.mr-logos[data-loop] { padding-inline-end: 3rem; }
.mr-logos[data-loop] .mr-logos-viewport { mask-image: linear-gradient(to right, transparent, #000 1rem, #000 calc(100% - 1rem), transparent); }
.mr-logos:focus-within .mr-logos-viewport { mask-image: none; }
.mr-logos-pause { position: absolute; inset-inline-end: 0; inset-block-start: 50%; transform: translateY(-50%); display: grid; place-items: center; inline-size: 2.75rem; block-size: 2.75rem; background: transparent; color: var(--mr-color-text-secondary); border: 1px solid var(--mr-color-detail-rule); border-radius: 50%; padding: 0; cursor: pointer; }
.mr-logos-pause[aria-pressed='false'] .mr-logos-icon-play, .mr-logos-pause[aria-pressed='true'] .mr-logos-icon-pause { display: none; }
.mr-testimonials { padding-block-end: 2.5rem; }
.mr-testimonials .mr-section-title { line-height: 1.2; margin-block-end: 0; }
/* Without JS every original remains in a normal readable grid. */
.mr-testimonial-track { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
.mr-testimonial-card { display: flex; flex-direction: column; gap: 1rem; min-inline-size: 0; margin: 0; padding: 1.25rem; background: var(--mr-color-surface); border: 1px solid var(--mr-color-border); border-radius: var(--mr-radius-control); }
.mr-testimonial-quote { color: var(--mr-color-action); font: 2rem/1 var(--mr-font-heading); }
.mr-testimonial-card blockquote { margin: 0; flex: 1; }
.mr-testimonial-card blockquote p:last-child { margin: 0; }
.mr-testimonial-card figcaption { display: flex; flex-direction: column; gap: .25rem; font-size: .875rem; }
.mr-testimonial-name { font: var(--mr-weight-semibold) 1.0625rem/1.2 var(--mr-font-heading); }
.mr-testimonial-role { color: var(--mr-color-text-secondary); }
.mr-testimonial-company { margin-block-start: .25rem; color: var(--mr-color-action); font: var(--mr-weight-medium) .875rem/1.2 var(--mr-font-heading); }
[data-testimonials-ready] { --mr-visible: 1; --mr-card-gap: 1rem; }
[data-testimonials-ready] .mr-testimonial-viewport { overflow-x: auto; scrollbar-width: none; scroll-snap-type: x mandatory; }
[data-testimonials-ready] .mr-testimonial-viewport::-webkit-scrollbar { display: none; }
[data-testimonials-ready] .mr-testimonial-track { display: flex; gap: var(--mr-card-gap); }
[data-testimonials-ready] .mr-testimonial-card { flex: 0 0 calc((100% - (var(--mr-visible) - 1) * var(--mr-card-gap)) / var(--mr-visible)); scroll-snap-align: start; }
/* Last page retains the card width and starts at the left, without empty cards. */
[data-testimonials-ready] .mr-testimonial-track::after { content: ''; flex: 0 0 var(--mr-tail, 0px); margin-inline-start: calc(-1 * var(--mr-card-gap)); }
.mr-testimonial-pagination { display: flex; flex-wrap: wrap; justify-content: center; }
.mr-testimonial-pagination[hidden], .mr-logos-pause[hidden] { display: none; }
.mr-testimonial-dot { display: grid; place-items: center; inline-size: 2.75rem; block-size: 2.75rem; padding: 0; background: transparent; border: 0; cursor: pointer; }
.mr-testimonial-dot::before { content: ''; inline-size: .5rem; block-size: .5rem; background: var(--mr-color-field-line); border-radius: 50%; }
.mr-testimonial-dot[aria-current='true']::before { background: var(--mr-color-action); }
.mr-blog { padding-block: 3.5rem; }
.mr-blog-archive { transition: color var(--mr-transition); color: var(--mr-color-text-muted); font: .9375rem/1.2 var(--mr-font-heading); text-transform: uppercase; }
.mr-blog .mr-blog-archive:focus-visible { color: var(--mr-color-accent); }
@media (hover: hover) and (pointer: fine) {
  .mr-blog .mr-blog-archive:hover { color: var(--mr-color-accent); }
}
.mr-contact { padding-block: 3.5rem; }
.mr-contact h2 { margin: 0; font-size: clamp(2.25rem, 1.65rem + 2.48vw, 3.875rem); line-height: 1.15; }
/* CF7 owns markup and interaction; all visual overrides stay within Contacto. */
.mr-contact .wpcf7 { inline-size: 100%; }
.mr-contact .wpcf7-form > p { margin: 0 0 1.5rem; }
.mr-contact label { display: block; font-size: var(--mr-text-body); line-height: var(--mr-leading-body); }
.mr-contact .wpcf7-form-control-wrap { display: block; margin-block-start: .5rem; }
.mr-contact :is(input[type="text"], input[type="email"], textarea) {
  box-sizing: border-box; display: block; inline-size: 100%; max-inline-size: 100%; min-inline-size: 0;
  padding: .75rem 1rem; border: 1px solid #5c6671; border-radius: 2px;
  background: var(--mr-color-background); color: var(--mr-color-text); font: inherit;
}
.mr-contact textarea { block-size: 8rem; min-block-size: 6rem; resize: vertical; }
.mr-contact .mr-contact-help { display: inline-block; color: var(--mr-color-text-muted); font-size: var(--mr-text-small); }
.mr-contact :is(input, textarea):focus-visible { outline: 2px solid var(--mr-color-action); outline-offset: 3px; }
.mr-contact .wpcf7-submit {
  min-block-size: 3.375rem; max-inline-size: 100%; padding: .875rem 1.625rem;
  border: 1px solid var(--mr-color-action); border-radius: var(--mr-radius-control);
  background: var(--mr-color-action); color: var(--mr-color-on-action); font-family: var(--mr-font-heading);
  font-size: var(--mr-text-small); line-height: 1.2; text-transform: none; cursor: pointer;
  transition: background-color var(--mr-transition), color var(--mr-transition), border-color var(--mr-transition);
}
.mr-contact .wpcf7-submit:focus-visible { background: var(--mr-color-text); border-color: var(--mr-color-text); outline: 3px solid var(--mr-color-action); outline-offset: 4px; }
@media (hover: hover) and (pointer: fine) { .mr-contact .wpcf7-submit:hover { background: var(--mr-color-text); border-color: var(--mr-color-text); } }
.mr-contact .wpcf7-form.submitting .wpcf7-submit { opacity: .7; cursor: progress; }
.mr-contact .wpcf7-submit:disabled { opacity: .7; cursor: not-allowed; }
/* A dedicated line reserves spinner space even on narrow screens. CF7 controls visibility. */
.mr-contact .wpcf7-spinner { display: block; margin: .75rem 0 0; background: var(--mr-color-text); opacity: 1; }
.mr-contact .wpcf7-spinner::before { background: var(--mr-color-background); }
.mr-contact .wpcf7-not-valid-tip { display: block; margin-block-start: .5rem; color: #ffb4ab; font-size: var(--mr-text-small); }
.mr-contact [aria-invalid="true"] { border-color: #ffb4ab; }
.mr-contact .wpcf7 form .wpcf7-response-output {
  margin: 1.5rem 0 0; padding: 1rem; border: 1px solid #ffb4ab; border-radius: var(--mr-radius-control);
  color: var(--mr-color-text); font-size: var(--mr-text-small); overflow-wrap: anywhere;
}
.mr-contact .wpcf7 form.sent .wpcf7-response-output { border-color: #9cdbac; }
.mr-contact .wpcf7 form:is(.invalid, .unaccepted, .payment-required) .wpcf7-response-output { border-color: var(--mr-color-action); }
.mr-contact .wpcf7 form:is(.failed, .aborted, .spam) .wpcf7-response-output { border-color: #ffb4ab; }
@media (max-width: 47.999rem) { .mr-contact .wpcf7-submit { inline-size: 100%; } }
.mr-footer { border-block-start: .5rem solid var(--mr-color-accent); }
.mr-footer .mr-site-footer { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; padding-block: 2.5rem; align-items: start; }
.mr-footer .mr-site-footer > * { min-inline-size: 0; }
.mr-footer-brand { max-inline-size: 12.5rem; }
.mr-footer .mr-menu { display: grid; grid-template-columns: repeat(auto-fit, minmax(6rem, 1fr)); gap: .75rem 1.5rem; font-size: .875rem; line-height: 1.375rem; }
.mr-footer .mr-menu a { text-decoration: none; text-align: left; }
.mr-footer-details { display: flex; flex-direction: column; align-items: start; gap: .75rem; color: var(--mr-color-text-secondary); font-size: .875rem; line-height: 1.375rem; overflow-wrap: anywhere; }
.mr-footer-details p { margin: 0; }
.mr-footer-contact-row { display: flex; align-items: center; gap: .75rem; max-inline-size: 100%; }
.mr-footer-contact-row[href] { min-block-size: var(--mr-touch-target); }
.mr-footer-icon { flex: 0 0 1.125rem; inline-size: 1.125rem; block-size: 1.125rem; object-fit: contain; filter: brightness(0) saturate(100%) invert(58%) sepia(88%) saturate(1477%) hue-rotate(337deg) brightness(99%) contrast(90%); }
.mr-footer-legal { display: flex; align-items: center; min-block-size: 3.5rem; padding-block: 1rem; color: var(--mr-color-text-muted); font-size: .75rem; line-height: 1.125rem; text-align: center; background: var(--mr-color-surface-alt); }
.mr-footer-legal p { margin: 0; }
@media (max-width: 47.999rem) {
  .mr-footer .mr-menu { grid-template-columns: minmax(0, 1fr); justify-items: stretch; }
  .mr-footer .mr-menu a { display: flex; justify-content: flex-start; }
  :is(.mr-callout, .mr-lower-section) .mr-button { inline-size: 100%; padding-inline: 1rem; }
}
@media (min-width: 48rem) {
  .mr-team-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 2rem; }
  .mr-cice-indicators { flex-direction: row; align-items: start; gap: 1rem; }
  .mr-cice-endorsement { flex: 0 0 4.5rem; }
  .mr-testimonial-track { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  [data-testimonials-ready] { --mr-visible: 2; --mr-card-gap: 2rem; }
  .mr-contact-grid { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); align-items: center; gap: 3rem; }

  .mr-footer .mr-site-footer { grid-template-columns: auto minmax(0, 1fr); }
  .mr-footer-details { grid-column: 1 / -1; }
}
@media (min-width: 64rem) {
  .mr-lower-section { padding-block: 7rem; }
  .mr-callout { padding-block: 5rem; }
  .mr-callout h2 { margin-block-end: 2rem; }
  .mr-team-grid { grid-template-columns: minmax(0, 600fr) minmax(0, 640fr); gap: 4.5rem; }
  .mr-editorial-grid, .mr-cice-grid { grid-template-columns: minmax(0, 500fr) minmax(0, 724fr); column-gap: clamp(2rem, 6.11vw, 5.5rem); }
  .mr-cice-grid { row-gap: 4rem; }
  .mr-tlg-intro, .mr-cice-intro { gap: 1.75rem; }
  .mr-cice-indicator { gap: 1.125rem; }
  .mr-cice-indicator dd { font-size: 3.25rem; }
  .mr-cice-indicator dd { font-variant-numeric: tabular-nums; }
.mr-cice-indicator dt { font-size: .9375rem; }
  .mr-training { padding-block: 6rem; }
  .mr-training .mr-label { margin-block-end: 3rem; }
  .mr-training h2 { line-height: 1.1; }
  .mr-clients, .mr-testimonials { padding-block: 6rem; }
  .mr-testimonials { padding-block-end: 4rem; }
  .mr-logos-track { gap: 2rem; }
  .mr-logo-item { flex-basis: 10rem; inline-size: 10rem; }
  .mr-client-logo { block-size: 3.75rem; }
  .mr-logos[data-loop] .mr-logos-viewport { mask-image: linear-gradient(to right, transparent, #000 2rem, #000 calc(100% - 2rem), transparent); }
  .mr-testimonial-track { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  [data-testimonials-ready] { --mr-visible: 3; }
  .mr-testimonial-card { padding: 2rem; gap: 1.25rem; }
  .mr-testimonial-quote { font-size: 2.5rem; }
  .mr-testimonial-card figcaption { font-size: .9375rem; }
  .mr-testimonial-name { font-size: 1.125rem; }
  .mr-testimonial-company { font-size: .9375rem; font-weight: var(--mr-weight-semibold); }
  .mr-blog { padding-block: 4.5rem; }
  .mr-contact { padding-block: 6rem; }
  .mr-contact-grid {
    /* Keep the existing form width while bringing both columns closer. */
    --mr-contact-original-gap: clamp(4rem, 10vw, 13.25rem);
    grid-template-columns: minmax(0, 1fr) minmax(0, calc((100% - var(--mr-contact-original-gap)) * .4));
    column-gap: clamp(3rem, 7vw, 10rem);
  }
  .mr-contact h2 { max-inline-size: 9.5em; justify-self: end; text-wrap: wrap; line-height: .98; }

  .mr-footer .mr-site-footer { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 18.75rem); padding-block: 3rem; gap: 3rem; }
  .mr-footer-details { grid-column: auto; }
  .mr-footer .mr-menu { grid-template-columns: repeat(3, max-content); }
  .mr-footer .mr-menu a, .mr-footer-contact-row[href] { min-block-size: 0; }
}
