

@layer tokens {
  :root {
    
    --gi-abyssal: #0f172a;   
    --gi-platine: #f1f5f9;   
    --gi-emeraude: #10b981;  
    --gi-or: #f59e0b;        

    
    --gi-slate-50: #f8fafc;
    --gi-slate-100: #f1f5f9;
    --gi-slate-200: #e2e8f0;
    --gi-slate-300: #cbd5e1;
    --gi-slate-400: #94a3b8;
    --gi-slate-500: #64748b;
    --gi-slate-600: #475569; 
    --gi-slate-700: #334155;
    --gi-white: #ffffff;

    
    --gi-emeraude-50: #ecfdf5;
    --gi-emeraude-100: #d1fae5;
    --gi-emeraude-600: #059669; 
    --gi-or-50: #fffbeb;

    
    --gi-font-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --gi-font-serif: 'Playfair Display', Georgia, 'Times New Roman', serif;

    --gi-weight-light: 300;
    --gi-weight-regular: 400;
    --gi-weight-medium: 500;
    --gi-weight-semibold: 600;
    --gi-weight-bold: 700;

    
    --gi-text-xs: 0.75rem;
    --gi-text-sm: 0.875rem;
    --gi-text-base: 1rem;
    --gi-text-lg: 1.125rem;
    --gi-text-xl: 1.25rem;
    --gi-text-2xl: 1.5rem;
    --gi-text-3xl: 1.875rem;
    --gi-text-4xl: 2.25rem;
    --gi-text-5xl: 3rem;
    --gi-text-6xl: 3.75rem;

    --gi-leading-tight: 1.1;
    --gi-leading-snug: 1.375;
    --gi-leading-normal: 1.5;
    
    --gi-tracking-wide: 0.05em;

    
    --gi-space-1: 0.25rem;
    --gi-space-2: 0.5rem;
    --gi-space-3: 0.75rem;
    --gi-space-4: 1rem;
    --gi-space-6: 1.5rem;
    --gi-space-8: 2rem;
    --gi-space-12: 3rem;
    --gi-space-16: 4rem;
    --gi-space-20: 5rem;
    --gi-space-28: 7rem;
    
    --gi-portrait-size: 6rem;
    
    --gi-partner-card-max: 20rem;
    
    --gi-partner-card-min: 20rem;
    
    --gi-split-media-size: 26rem;
    
    --gi-claim-max: 41rem;
    
    --gi-reading-measure: 48rem;
  
  --gi-reading-measure-ch: 46ch;

  
  --gi-reading-measure-scan: 62ch;
    
    --gi-hero-figure-size: 20rem;

    --gi-radius-md: 0.375rem;
    --gi-radius-2xl: 1rem;
    --gi-radius-full: 9999px;

    
    --gi-border-hairline: 1px;
    --gi-rule-accent: 0.1875rem;

    --gi-shadow-sm: 0 1px 2px 0 rgb(15 23 42 / 5%);
    --gi-shadow-lg: 0 10px 15px -3px rgb(15 23 42 / 10%), 0 4px 6px -4px rgb(15 23 42 / 10%);

    
    --gi-shadow-action: 0 2px 6px 0 rgb(15 23 42 / 18%), 0 1px 2px 0 rgb(15 23 42 / 12%);
    --gi-text-shadow-label: 0 1px 1px rgb(15 23 42 / 35%);

    
    --gi-halo-emeraude-alpha: 16%;
    --gi-halo-or-alpha: 12%;
    --gi-halo-emeraude: rgb(from var(--gi-emeraude) r g b / var(--gi-halo-emeraude-alpha));
    --gi-halo-or: rgb(from var(--gi-or) r g b / var(--gi-halo-or-alpha));
    --gi-halo-emeraude-size: 34rem;
    --gi-halo-or-size: 30rem;
    --gi-halo-inset: 10rem;
    --gi-halo-bleed: 14rem;
    --gi-halo-blur: 90px;

    
    --gi-container-max: 80rem;  
    --gi-container-pad: var(--gi-space-4);
    --gi-transition: 200ms;
  }

  @media (min-width: 40rem) {
    :root {
      --gi-container-pad: var(--gi-space-6);
    }
  }

  @media (min-width: 64rem) {
    :root {
      --gi-container-pad: var(--gi-space-8);
    }
  }
}


@layer base {
  @font-face {
    font-family: Inter;
    font-style: normal;
    font-weight: 300 700;
    font-display: swap;
    src: url('../fonts/inter-normal-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  @font-face {
    font-family: Inter;
    font-style: normal;
    font-weight: 300 700;
    font-display: swap;
    src: url('../fonts/inter-normal-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
  }
  @font-face {
    font-family: 'Playfair Display';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/playfair-display-italic-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  @font-face {
    font-family: 'Playfair Display';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/playfair-display-italic-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
  }
  @font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 500 700;
    font-display: swap;
    src: url('../fonts/playfair-display-normal-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  @font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 500 700;
    font-display: swap;
    src: url('../fonts/playfair-display-normal-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
  }
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
  }

  body {
    margin: 0;
    font-family: var(--gi-font-sans);
    font-size: var(--gi-text-base);
    font-weight: var(--gi-weight-regular);
    line-height: var(--gi-leading-normal);
    color: var(--gi-abyssal);
    background-color: var(--gi-platine);
  }

  h1,
  h2,
  h3 {
    font-family: var(--gi-font-serif);
    line-height: var(--gi-leading-tight);
    margin: 0 0 var(--gi-space-4);
  }

  h4,
  h5,
  h6 {
    font-family: var(--gi-font-sans);
    font-weight: var(--gi-weight-semibold);
    line-height: var(--gi-leading-snug);
    margin: 0 0 var(--gi-space-3);
  }

  p {
    margin: 0 0 var(--gi-space-4);
  }

  a {
    color: var(--gi-emeraude-600);
    text-decoration-thickness: from-font;
    text-underline-offset: 0.2em;
  }

  img,
  picture,
  svg {
    max-width: 100%;
    height: auto;
    display: block;
  }

  button,
  input,
  select,
  textarea {
    font: inherit;
    color: inherit;
  }

  :focus-visible {
    outline: 2px solid var(--gi-emeraude);
    outline-offset: 2px;
  }

  
  @media (prefers-reduced-motion: reduce) {
    html {
      scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
      animation-duration: 0.01ms;
      animation-iteration-count: 1;
      transition-duration: 0.01ms;
    }
  }
}


@keyframes bannerPulse {
  0%,
  100% {
    opacity: 0.8;
  }

  50% {
    opacity: 1;
  }
}

@layer components {
  

  .container {
    max-width: var(--gi-container-max);
    margin-inline: auto;
    padding-inline: var(--gi-container-pad);
  }

  .section {
    padding-block: var(--gi-space-16);
  }

  .section-title {
    font-family: var(--gi-font-serif);
    font-size: var(--gi-text-4xl);
    font-weight: var(--gi-weight-semibold);
    line-height: var(--gi-leading-tight);
    color: var(--gi-abyssal);
    margin-block: 0 var(--gi-space-4);
  }

  .section-lede {
    font-size: var(--gi-text-lg);
    line-height: var(--gi-leading-snug);
    color: var(--gi-slate-600);
    max-width: var(--gi-container-max);
    margin-block: 0 var(--gi-space-8);
  }

  

  .site-header {
    background: rgb(255 255 255 / 85%);
    border-block-end: 1px solid var(--gi-slate-200);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
  }

  .site-brand {
    font-family: var(--gi-font-serif);
    font-size: var(--gi-text-xl);
    font-weight: var(--gi-weight-semibold);
    color: var(--gi-abyssal);
    text-decoration: none;
  }

  
  .site-brand-logo {
    display: block;
    width: auto;
    height: var(--gi-space-8);
  }

  .site-nav {
    display: flex;
    align-items: center;
    gap: var(--gi-space-6);
  }

  .site-nav-link {
    font-size: var(--gi-text-sm);
    font-weight: var(--gi-weight-medium);
    color: var(--gi-slate-600);
    text-decoration: none;
    transition: color var(--gi-transition) ease;
  }

  .site-nav-link:hover {
    color: var(--gi-abyssal);
  }

  
  .nav-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    width: var(--gi-space-12);
    height: var(--gi-space-12);
    padding: 0;
    border: 1px solid var(--gi-slate-200);
    border-radius: var(--gi-radius-md);
    background-color: var(--gi-white);
    color: var(--gi-abyssal);
    cursor: pointer;
    transition: border-color var(--gi-transition) ease;
  }

  .nav-toggle:hover {
    border-color: var(--gi-slate-300);
  }

  .nav-toggle:focus-visible {
    outline: 2px solid var(--gi-emeraude-600);
    outline-offset: 2px;
  }

  
  .nav-toggle-icon {
    position: relative;
    display: block;
    width: calc(var(--gi-space-4) + var(--gi-space-1));
    height: calc(var(--gi-space-1) / 2);
    background-color: currentColor;
    box-shadow: 0 calc(-1 * var(--gi-space-2)) 0 currentColor, 0 var(--gi-space-2) 0 currentColor;
    transition: transform var(--gi-transition) ease;
  }

  .nav-toggle[aria-expanded="true"] .nav-toggle-icon {
    box-shadow: none;
    transform: rotate(45deg);
  }

  .nav-toggle[aria-expanded="true"] .nav-toggle-icon::after {
    content: "";
    position: absolute;
    inset: 0;
    background-color: currentColor;
    transform: rotate(90deg);
  }

  

  .hero {
    padding-block: var(--gi-space-20);
    text-align: center;
  }

  
  th {
    text-align: start;
  }

  .hero-eyebrow {
    font-size: var(--gi-text-xs);
    font-weight: var(--gi-weight-bold);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--gi-emeraude-600);
    margin-block: 0 var(--gi-space-4);
  }

  .hero-title {
    font-family: var(--gi-font-serif);
    font-size: var(--gi-text-5xl);
    font-weight: var(--gi-weight-bold);
    line-height: var(--gi-leading-tight);
    color: var(--gi-abyssal);
    margin-block: 0 var(--gi-space-6);
  }

  .hero-lede {
    font-size: var(--gi-text-xl);
    line-height: var(--gi-leading-normal);
    color: var(--gi-slate-600);
    margin-block: 0 var(--gi-space-8);
  }

  

  
  .cta-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--gi-space-3);
    margin: var(--gi-space-6) 0 0;
  }

  .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--gi-space-2);
    padding: var(--gi-space-3) var(--gi-space-8);
    border: 1px solid transparent;
    border-radius: var(--gi-radius-full);
    font-family: var(--gi-font-sans);
    font-size: var(--gi-text-base);
    font-weight: var(--gi-weight-semibold);
    line-height: var(--gi-leading-normal);
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: background-color var(--gi-transition) ease, color var(--gi-transition) ease,
      border-color var(--gi-transition) ease, box-shadow var(--gi-transition) ease,
      transform var(--gi-transition) ease;
  }

  .button-primary {
    background-color: var(--gi-emeraude);
    color: var(--gi-white);
    
    box-shadow: var(--gi-shadow-action);
    text-shadow: var(--gi-text-shadow-label);
  }

  
  .button-primary:hover {
    background-color: var(--gi-emeraude-600);
    transform: scale(1.05);
  }

  .button-primary:focus-visible {
    outline: 2px solid var(--gi-emeraude-600);
    outline-offset: 2px;
  }

  .button-secondary {
    background-color: var(--gi-white);
    color: var(--gi-abyssal);
    border-color: var(--gi-slate-300);
  }

  .button-secondary:hover {
    background-color: var(--gi-slate-100);
    border-color: var(--gi-slate-400);
    transform: scale(1.05);
  }

  .button-secondary:focus-visible {
    outline: 2px solid var(--gi-slate-400);
    outline-offset: 2px;
  }

  

  
  .diagnostic-form {
    display: flex;
    flex-direction: column;
    gap: var(--gi-space-8);
    max-width: var(--gi-container-max);
    margin-block-start: var(--gi-space-8);
  }

  .form-field {
    display: flex;
    flex-direction: column;
    gap: var(--gi-space-2);
    padding: 0;
    border: 0;
  }

  .field-label {
    font-size: var(--gi-text-base);
    font-weight: var(--gi-weight-semibold);
    color: var(--gi-abyssal);
    padding: 0;
  }

  .field-help {
    
    display: block;
    font-size: var(--gi-text-sm);
    color: var(--gi-slate-600);
    margin: 0;
  }

  .field-input {
    width: 100%;
    padding: var(--gi-space-3);
    border: 1px solid var(--gi-slate-300);
    border-radius: var(--gi-radius-md);
    background-color: var(--gi-white);
    font-family: var(--gi-font-sans);
    font-size: var(--gi-text-base);
    line-height: var(--gi-leading-normal);
    color: var(--gi-abyssal);
  }

  .field-input:focus-visible {
    border-color: var(--gi-emeraude);
  }

  .field-options {
    display: flex;
    flex-direction: column;
    gap: var(--gi-space-2);
  }

  .field-option {
    display: flex;
    align-items: flex-start;
    gap: var(--gi-space-2);
    font-size: var(--gi-text-base);
    color: var(--gi-slate-700);
  }

  
  .form-error:empty {
    display: none;
  }

  .form-error {
    margin: 0;
    padding: var(--gi-space-3);
    border: 1px solid var(--gi-slate-300);
    border-radius: var(--gi-radius-md);
    background-color: var(--gi-or-50);
    font-size: var(--gi-text-sm);
    font-weight: var(--gi-weight-medium);
    color: var(--gi-abyssal);
  }

  
  .form-field[data-gi-invalid] .field-input {
    border-color: var(--gi-or);
  }

  

  .admin-main {
    padding-block: var(--gi-space-8) var(--gi-space-16);
  }

  .admin-title {
    font-family: var(--gi-font-serif);
    font-size: var(--gi-text-3xl);
    font-weight: var(--gi-weight-semibold);
    color: var(--gi-abyssal);
    margin-block: 0 var(--gi-space-6);
  }

  .admin-section-title {
    font-family: var(--gi-font-serif);
    font-size: var(--gi-text-xl);
    font-weight: var(--gi-weight-semibold);
    color: var(--gi-abyssal);
    margin-block: 0 var(--gi-space-4);
  }

  .admin-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--gi-space-4);
    justify-content: space-between;
  }

  .admin-identity {
    font-size: var(--gi-text-sm);
    color: var(--gi-slate-600);
    margin: 0;
  }

  .admin-card {
    background-color: var(--gi-white);
    border: 1px solid var(--gi-slate-200);
    border-radius: var(--gi-radius-2xl);
    padding: var(--gi-space-8);
    box-shadow: var(--gi-shadow-sm);
    margin-block-end: var(--gi-space-8);
  }

  .admin-card-narrow {
    max-width: 32rem;
  }

  .admin-facts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: var(--gi-space-4);
    margin: 0;
  }

  .admin-fact {
    margin: 0;
  }

  .admin-fact-label {
    font-size: var(--gi-text-xs);
    font-weight: var(--gi-weight-semibold);
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--gi-slate-500);
  }

  .admin-fact-value {
    font-size: var(--gi-text-base);
    color: var(--gi-abyssal);
    margin: 0;
    overflow-wrap: anywhere;
  }

  .admin-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: var(--gi-space-4);
    margin-block-end: var(--gi-space-6);
  }

  .filter-field {
    display: flex;
    flex-direction: column;
    gap: var(--gi-space-2);
  }

  .filter-label {
    font-size: var(--gi-text-sm);
    font-weight: var(--gi-weight-medium);
    color: var(--gi-slate-600);
  }

  .filter-input {
    padding: var(--gi-space-2) var(--gi-space-3);
    border: 1px solid var(--gi-slate-300);
    border-radius: var(--gi-radius-md);
    background-color: var(--gi-white);
    font-family: var(--gi-font-sans);
    font-size: var(--gi-text-sm);
    color: var(--gi-abyssal);
  }

  .filter-actions {
    display: flex;
    gap: var(--gi-space-2);
    margin: 0;
  }

  .filter-reveal,
  .admin-reveal,
  .admin-back {
    flex-basis: 100%;
    margin: 0;
    font-size: var(--gi-text-sm);
  }

  .admin-count {
    font-size: var(--gi-text-sm);
    color: var(--gi-slate-600);
    margin-block: 0 var(--gi-space-4);
  }

  .admin-empty,
  .admin-note {
    font-size: var(--gi-text-sm);
    color: var(--gi-slate-600);
    margin: 0;
  }

  .admin-table-wrapper {
    overflow-x: auto;
    border: 1px solid var(--gi-slate-200);
    border-radius: var(--gi-radius-2xl);
    background-color: var(--gi-white);
  }

  .admin-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--gi-text-sm);
  }

  .admin-table th,
  .admin-table td {
    padding: var(--gi-space-3) var(--gi-space-4);
    text-align: start;
    border-block-end: 1px solid var(--gi-slate-200);
    vertical-align: top;
  }

  .admin-table th {
    font-weight: var(--gi-weight-semibold);
    color: var(--gi-slate-600);
    white-space: nowrap;
  }

  .admin-table tbody tr:last-child td {
    border-block-end: 0;
  }

  .admin-badge {
    display: inline-block;
    padding: var(--gi-space-1) var(--gi-space-2);
    border-radius: var(--gi-radius-full);
    background-color: var(--gi-slate-100);
    font-size: var(--gi-text-xs);
    font-weight: var(--gi-weight-medium);
    color: var(--gi-slate-700);
    white-space: nowrap;
  }

  .admin-pager {
    display: flex;
    align-items: center;
    gap: var(--gi-space-4);
    margin-block-start: var(--gi-space-6);
  }

  .admin-pager-state {
    font-size: var(--gi-text-sm);
    color: var(--gi-slate-600);
  }

  

  .milestone-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
    gap: var(--gi-space-8);
  }

  .milestone-card {
    background-color: var(--gi-white);
    border: 1px solid var(--gi-slate-200);
    border-radius: var(--gi-radius-2xl);
    padding: var(--gi-space-8);
    box-shadow: var(--gi-shadow-sm);
  }

  .milestone-index {
    font-family: var(--gi-font-serif);
    font-size: var(--gi-text-3xl);
    font-weight: var(--gi-weight-bold);
    color: var(--gi-emeraude-600);
    margin-block: 0 var(--gi-space-2);
  }

  .milestone-title {
    font-family: var(--gi-font-serif);
    font-size: var(--gi-text-xl);
    font-weight: var(--gi-weight-semibold);
    line-height: var(--gi-leading-snug);
    color: var(--gi-abyssal);
    margin-block: 0 var(--gi-space-3);
  }

  .milestone-evidence {
    font-size: var(--gi-text-sm);
    line-height: var(--gi-leading-normal);
    color: var(--gi-slate-600);
    margin-block: 0;
  }

  
  .criterion-list {
    display: grid;
    gap: var(--gi-space-4);
    margin-block: 0 var(--gi-space-8);
  }

  .criterion-item {
    padding: var(--gi-space-6);
    border: var(--gi-border-hairline) solid var(--gi-slate-200);
    border-inline-start: var(--gi-rule-accent) solid var(--gi-emeraude);
    border-radius: var(--gi-radius-md);
    background-color: var(--gi-white);
    box-shadow: var(--gi-shadow-sm);
  }

  
  .criterion-count {
    font-size: var(--gi-text-xs);
    font-weight: var(--gi-weight-bold);
    letter-spacing: var(--gi-tracking-wide);
    text-transform: uppercase;
    font-variant-numeric: tabular-nums;
    color: var(--gi-emeraude-600);
    margin-block: 0 var(--gi-space-1);
  }

  
  .criterion-fr {
    font-size: var(--gi-text-base);
    font-weight: var(--gi-weight-semibold);
    line-height: var(--gi-leading-snug);
    color: var(--gi-abyssal);
    max-width: var(--gi-reading-measure-scan);
    margin-block: 0 var(--gi-space-3);
  }

  
  .criterion-proof {
    padding-block-start: var(--gi-space-3);
    border-block-start: var(--gi-border-hairline) solid var(--gi-slate-200);
    font-size: var(--gi-text-sm);
    line-height: var(--gi-leading-normal);
    color: var(--gi-slate-600);
    max-width: var(--gi-reading-measure-scan);
    margin-block: 0 var(--gi-space-1);
  }

  
  .criterion-proof-empty {
    color: var(--gi-slate-500);
    font-style: italic;
  }

  

  .palier-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
    gap: var(--gi-space-8);
  }

  .palier-card {
    background-color: var(--gi-white);
    border: 1px solid var(--gi-slate-200);
    border-radius: var(--gi-radius-2xl);
    padding: var(--gi-space-8);
    box-shadow: var(--gi-shadow-sm);
  }

  

  

  
  .offer-card {
    display: flex;
    flex-direction: column;
    gap: var(--gi-space-4);
    padding: var(--gi-space-8);
    border: var(--gi-border-hairline) solid var(--gi-slate-200);
    border-radius: var(--gi-radius-2xl);
    background-color: var(--gi-white);
    box-shadow: var(--gi-shadow-sm);
  }

  
  .offer-badge {
    align-self: center;
    padding: var(--gi-space-1) var(--gi-space-3);
    border-radius: var(--gi-radius-full);
    background-color: var(--gi-slate-100);
    font-size: var(--gi-text-xs);
    font-weight: var(--gi-weight-bold);
    letter-spacing: var(--gi-tracking-wide);
    text-transform: uppercase;
    text-align: center;
    text-wrap: balance;
    color: var(--gi-slate-700);
    margin: 0;
  }

  .offer-badge-accent {
    background-color: var(--gi-emeraude);
    color: var(--gi-abyssal);
  }

  
  .offer-badge-tag {
    padding-inline-start: var(--gi-space-2);
    border-inline-start: var(--gi-border-hairline) solid currentColor;
  }

  
  @media (min-width: 45rem) {
    .offer-card {
      display: grid;
      grid-template-rows: subgrid;
      grid-row: span 6;
    }

    
    .offer-card > .offer-badge {
      grid-row: 1;
      align-self: start;
      justify-self: center;
    }

    .offer-card > .offer-title {
      grid-row: 2;
    }

    .offer-card > .offer-lede {
      grid-row: 3;
    }

    .offer-card > .offer-price-panel {
      grid-row: 4;
    }

    .offer-card > .offer-facts {
      grid-row: 5;
    }

    .offer-card > .offer-action {
      grid-row: 6;
    }
  }

  
  @supports not (grid-template-rows: subgrid) {
    @media (min-width: 45rem) {
      .offer-card {
        display: flex;
        flex-direction: column;
      }

      .offer-card > .offer-badge {
        align-self: center;
      }
    }
  }

  
  .offer-title {
    font-family: var(--gi-font-sans);
    font-size: var(--gi-text-base);
    font-weight: var(--gi-weight-semibold);
    line-height: var(--gi-leading-snug);
    text-align: center;
    color: var(--gi-abyssal);
    margin: 0;
  }

  
  .offer-lede {
    font-family: var(--gi-font-serif);
    font-size: var(--gi-text-lg);
    font-weight: var(--gi-weight-regular);
    line-height: var(--gi-leading-snug);
    text-align: center;
    color: var(--gi-slate-700);
    margin: 0;
  }

  .offer-price-panel {
    padding: var(--gi-space-4);
    border-block-start: var(--gi-rule-accent) solid var(--gi-or);
    border-radius: var(--gi-radius-md);
    background-color: var(--gi-slate-50);
    text-align: center;
  }

  .offer-price {
    font-family: var(--gi-font-serif);
    font-size: var(--gi-text-2xl);
    font-weight: var(--gi-weight-bold);
    line-height: var(--gi-leading-tight);
    color: var(--gi-abyssal);
    margin: 0;
  }

  
  .offer-price-ht {
    white-space: nowrap;
  }

  .offer-price-ttc {
    font-size: var(--gi-text-sm);
    font-weight: var(--gi-weight-medium);
    white-space: nowrap;
    color: var(--gi-slate-500);
  }

  .offer-price-note {
    font-size: var(--gi-text-sm);
    line-height: var(--gi-leading-normal);
    color: var(--gi-slate-600);
    margin-block: var(--gi-space-2) 0;
  }

  .offer-facts {
    display: grid;
    gap: var(--gi-space-3);
  }

  .offer-fact {
    position: relative;
    padding-inline-start: var(--gi-space-4);
    font-size: var(--gi-text-sm);
    line-height: var(--gi-leading-normal);
    color: var(--gi-slate-600);
    margin: 0;
  }

  
  .offer-fact::before {
    position: absolute;
    inset-inline-start: 0;
    content: "\2713";
    font-weight: var(--gi-weight-bold);
    color: var(--gi-slate-500);
  }

  .offer-fact-accent::before {
    color: var(--gi-emeraude-600);
  }

  .offer-fact-arrow::before {
    content: "\2192";
    color: var(--gi-emeraude-600);
  }

  .offer-fact-label {
    font-size: var(--gi-text-xs);
    font-weight: var(--gi-weight-bold);
    letter-spacing: var(--gi-tracking-wide);
    text-transform: uppercase;
    color: var(--gi-slate-500);
  }

  
  .offer-action {
    inline-size: 100%;
    margin-block-start: auto;
  }

  .offer-action:hover {
    transform: none;
  }

  .offer-action::after {
    content: "\203A";
    font-weight: var(--gi-weight-bold);
  }

  
  .palier-card-featured,
  .offer-card-featured {
    border-color: var(--gi-or);
    box-shadow: var(--gi-shadow-lg);
  }

  

  .site-footer {
    background-color: var(--gi-abyssal);
    color: var(--gi-slate-300);
    padding-block: var(--gi-space-12);
  }

  .footer-note {
    font-size: var(--gi-text-sm);
    color: var(--gi-slate-400);
    margin-block: 0;
  }

  
  .footer-logo {
    display: block;
    width: auto;
    height: var(--gi-space-12);
    margin-block-end: var(--gi-space-4);
  }

  

  .visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
  }

  

  .font-serif {
    font-family: var(--gi-font-serif);
  }

  

  .glass {
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(241, 245, 249, 0.6);
  }

  .glass-dark {
    background: rgba(15, 23, 42, 0.92);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.08);
  }

  

  .reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.7s ease-out, transform 0.7s ease-out;
  }

  .reveal.active {
    opacity: 1;
    transform: translateY(0);
  }

  

  .step-node {
    transition: all 0.3s ease;
  }

  .step-line {
    transition: background-color 0.4s ease;
  }

  

  .price-change {
    transition: all 0.3s ease;
  }

  

  .faq-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease-out, opacity 0.3s ease;
    opacity: 0;
  }

  .faq-item.open .faq-content {
    max-height: 500px;
    opacity: 1;
  }

  .faq-icon {
    transition: transform 0.3s ease;
  }

  .faq-item.open .faq-icon {
    transform: rotate(180deg);
  }

  

  .banner-glow {
    animation: bannerPulse 4s ease-in-out infinite;
  }

  

  .form-pane {
    transition: opacity 0.3s ease, transform 0.3s ease;
  }

  .form-pane.hidden-pane {
    display: none;
  }

  

  .pain-card {
    transition: all 0.4s ease;
  }

  .pain-card.active {
    background-color: var(--gi-abyssal);
    border-color: var(--gi-or);
    color: var(--gi-platine);
  }

  .pain-card.active h3 {
    color: var(--gi-or);
  }

  .pain-card.active p {
    color: var(--gi-slate-300);
  }
}


@layer marketing {
  

  .site-header {
    position: sticky;
    top: 0;
    z-index: 10;
    background-color: var(--gi-white);
    border-bottom: 1px solid var(--gi-slate-200);
  }

  .site-header .container {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--gi-space-4);
    min-height: var(--gi-space-16);
  }

  
  .site-brand {
    flex: 0 0 auto;
  }

  .site-nav {
    flex-wrap: wrap;
    row-gap: var(--gi-space-2);
  }

  
  .site-nav-cta {
    padding: var(--gi-space-2) var(--gi-space-4);
    font-size: var(--gi-text-sm);
  }

  

  .section-platine {
    background-color: var(--gi-platine);
  }

  .section-abyssal {
    background-color: var(--gi-abyssal);
    
    color: var(--gi-slate-300);
  }

  
  .section-abyssal .section-title,
  .section-abyssal .subsection-title {
    color: var(--gi-white);
  }

  
  .section-abyssal .section-emphasis {
    color: var(--gi-white);
  }

  
  .section-abyssal .cta-row .button-primary,
  .hero-abyssal .cta-row .button-primary {
    box-shadow: none;
    border-color: var(--gi-slate-300);
  }

  
  .section-abyssal .section-lede,
  .section-abyssal .hero-reassurance {
    color: var(--gi-slate-300);
  }

  .subsection-title {
    font-family: var(--gi-font-serif);
    font-size: var(--gi-text-2xl);
    font-weight: var(--gi-weight-semibold);
    line-height: var(--gi-leading-snug);
    color: var(--gi-abyssal);
    margin-block: var(--gi-space-8) var(--gi-space-3);
  }

  

  
  .split-layout {
    display: grid;
    gap: var(--gi-space-8);
  }

  @media (min-width: 64rem) {
    .split-layout {
      grid-template-columns: var(--gi-split-media-size) minmax(0, 1fr);
      align-items: start;
    }

    .split-media {
      grid-column: 1;
      grid-row: 1;
    }

    .split-body {
      grid-column: 2;
      grid-row: 1;
    }
  }

  
  .split-media {
    inline-size: 100%;
    max-inline-size: var(--gi-split-media-size);
    block-size: auto;
    margin-inline: auto;
    border-radius: var(--gi-radius-2xl);
  }

  

  .hero {
    padding-block: var(--gi-space-20);
    background-color: var(--gi-platine);
  }

  .hero .container {
    max-width: var(--gi-reading-measure);
  }

  
  .hero.hero-palier .container > .hero-body,
  .hero.hero-palier .container > .hero-figure {
    max-width: none;
    margin-inline: 0;
  }

  .hero.hero-palier .container > .hero-body > * {
    max-inline-size: var(--gi-reading-measure);
  }

  .hero.hero-palier .container > .hero-figure {
    display: block;
    inline-size: 100%;
    
    border: var(--gi-border-hairline) solid var(--gi-slate-200);
    max-inline-size: var(--gi-hero-figure-size);
    block-size: auto;
    margin-inline: auto;
    border-radius: var(--gi-radius-2xl);
  }

  @media (min-width: 80rem) {
    .hero.hero-palier .container {
      max-width: var(--gi-container-max);
      display: grid;
      grid-template-columns: minmax(0, 1fr) var(--gi-split-media-size);
      gap: var(--gi-space-8);
      align-items: start;
    }

    .hero.hero-palier .container > .hero-figure {
      grid-column: 2;
      grid-row: 1;
      max-inline-size: var(--gi-split-media-size);
      margin-inline: 0;
    }
  }

  .hero-reassurance {
    font-size: var(--gi-text-sm);
    color: var(--gi-slate-500);
    margin-block: var(--gi-space-6) 0;
  }

  

  
  
  .section .offer-table th,
  .section .offer-table td {
    max-inline-size: var(--gi-reading-measure-scan);
  }

  
  .hero.hero-palier {
    text-align: start;
  }

  .hero.hero-palier .hero-body {
    display: grid;
    gap: var(--gi-space-4);
  }

  .hero.hero-palier .hero-body > * {
    margin: 0;
  }

  
  

  

  .split-layout > .split-body > * {
    max-inline-size: none;
  }

  .hero.hero-palier .hero-body > .hero-decision {
    margin-block-start: var(--gi-space-4);
  }

  .hero.hero-palier .hero-body > * > * {
    margin-block: 0;
  }

  .palier-text,
  .palier-point {
    font-size: var(--gi-text-base);
    color: var(--gi-slate-600);
  }

  .palier-promise {
    font-size: var(--gi-text-xl);
    font-weight: var(--gi-weight-medium);
    color: var(--gi-abyssal);
  }

  .palier-gloss,
  .palier-authority {
    font-size: var(--gi-text-sm);
    color: var(--gi-slate-500);
  }

  .palier-point > strong {
    display: block;
    margin-block-end: var(--gi-space-1);
    font-size: var(--gi-text-xs);
    font-weight: var(--gi-weight-bold);
    letter-spacing: var(--gi-tracking-wide);
    text-transform: uppercase;
    color: var(--gi-abyssal);
  }

  .palier-price-block {
    padding: var(--gi-space-6);
    border: var(--gi-border-hairline) solid var(--gi-slate-200);
    border-radius: var(--gi-radius-2xl);
    background-color: var(--gi-white);
    text-align: center;
  }

  
  .hero-abyssal {
    position: relative;
    z-index: 0;
    
    overflow: hidden;
    overflow: clip;
    background-color: var(--gi-abyssal);
    color: var(--gi-platine);
  }

  .halo {
    position: absolute;
    z-index: -1;
    border-radius: var(--gi-radius-full);
    filter: blur(var(--gi-halo-blur));
    pointer-events: none;
  }

  .halo-emeraude {
    inline-size: var(--gi-halo-emeraude-size);
    block-size: var(--gi-halo-emeraude-size);
    top: calc(-1 * var(--gi-halo-bleed));
    left: calc(-1 * var(--gi-halo-inset));
    background-color: var(--gi-halo-emeraude);
  }

  .halo-or {
    inline-size: var(--gi-halo-or-size);
    block-size: var(--gi-halo-or-size);
    bottom: calc(-1 * var(--gi-halo-bleed));
    right: calc(-1 * var(--gi-halo-inset));
    background-color: var(--gi-halo-or);
  }

  
  .hero-abyssal .hero-eyebrow {
    color: var(--gi-emeraude);
  }

  .hero-abyssal .hero-title {
    color: var(--gi-white);
  }

  .hero-abyssal .hero-lede {
    color: var(--gi-slate-300);
  }

  .hero-abyssal .hero-reassurance {
    color: var(--gi-slate-400);
  }

  
  .hero-abyssal .button-secondary {
    background-color: transparent;
    color: var(--gi-platine);
    border-color: var(--gi-slate-500);
  }

  .hero-abyssal .button-secondary:hover {
    background-color: var(--gi-slate-700);
    border-color: var(--gi-slate-400);
  }

  
  @media (min-width: 48rem) {
    .hero .container {
      max-width: var(--gi-container-max);
    }

    .hero .container > :not(.hero-title) {
      max-width: 48rem;
      margin-inline: auto;
    }

    .hero-title {
      font-size: var(--gi-text-4xl);
    }
  }

  
  @media (min-width: 64rem) {
    .site-brand-logo {
      height: var(--gi-space-6);
    }
  }

  @media (min-width: 80rem) {
    .hero-title {
      font-size: var(--gi-text-5xl);
    }

    .site-brand-logo {
      height: var(--gi-space-8);
    }
  }

  

  .check-list {
    display: grid;
    gap: var(--gi-space-3);
    padding: 0;
    margin-block: 0 var(--gi-space-8);
    list-style: none;
  }

  .check-list li {
    position: relative;
    padding-inline-start: var(--gi-space-8);
    line-height: var(--gi-leading-normal);
  }

  .check-list li::before {
    content: "✓";
    position: absolute;
    inset-inline-start: 0;
    color: var(--gi-emeraude-600);
    font-weight: var(--gi-weight-bold);
  }

  
  
  .claim-list {
    display: grid;
    gap: var(--gi-space-4);
    max-inline-size: var(--gi-claim-max);
    margin-block: var(--gi-space-8) 0;
    padding: var(--gi-space-6);
    border-inline-start: 3px solid var(--gi-or);
    background-color: var(--gi-white);
    font-family: var(--gi-font-serif);
    font-size: var(--gi-text-lg);
    color: var(--gi-abyssal);
  }

  @media (min-width: 40rem) {
    .claim-list {
      grid-template-columns: auto minmax(0, 1fr);
      gap: var(--gi-space-6);
      align-items: start;
    }
  }

  
  .claim-list-items {
    display: grid;
    gap: var(--gi-space-2);
    padding: 0;
    margin: 0;
    list-style: none;
  }

  
  .offer-table {
    inline-size: 100%;
    margin-block: var(--gi-space-8);
    border-collapse: collapse;
    text-align: start;
  }

  .offer-table th,
  .offer-table td {
    padding-block: var(--gi-space-3);
    text-align: start;
    vertical-align: top;
  }

  .offer-table thead th {
    border-block-end: var(--gi-rule-accent) solid var(--gi-or);
    font-size: var(--gi-text-sm);
    font-weight: var(--gi-weight-semibold);
    color: var(--gi-slate-600);
  }

  .offer-table tbody tr {
    border-block-end: var(--gi-border-hairline) solid var(--gi-slate-200);
  }

  .offer-table tbody th {
    font-weight: var(--gi-weight-semibold);
    color: var(--gi-abyssal);
  }

  .offer-table tbody td {
    color: var(--gi-slate-600);
  }

  @media (min-width: 48rem) {
    .offer-table th + th,
    .offer-table tbody td {
      padding-inline-start: var(--gi-space-6);
    }
  }

  @media (max-width: 47.99rem) {
    .offer-table,
    .offer-table tbody,
    .offer-table tr,
    .offer-table th,
    .offer-table td {
      display: block;
    }

    
    .offer-table thead {
      display: none;
    }

    .offer-table th,
    .offer-table td {
      padding-block: 0;
      padding-inline: 0;
    }

    .offer-table tbody tr {
      padding-block: var(--gi-space-4);
    }

    .offer-table tbody tr:first-child {
      padding-block-start: 0;
    }

    .offer-table tbody td {
      margin-block-start: var(--gi-space-1);
    }

    
    .offer-table tbody td::before {
      content: attr(data-label);
      display: block;
      margin-block-end: var(--gi-space-1);
      font-size: var(--gi-text-xs);
      font-weight: var(--gi-weight-semibold);
      color: var(--gi-abyssal);
    }
  }

  

  .pain-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
    gap: var(--gi-space-6);
    padding: 0;
    margin-block: var(--gi-space-8);
    list-style: none;
  }

  
  .section-title-split {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
    column-gap: var(--gi-space-6);
    row-gap: 0;
  }

  .pain-card {
    padding: var(--gi-space-6);
    border: 1px solid var(--gi-slate-200);
    border-radius: var(--gi-radius-2xl);
    background-color: var(--gi-white);
    box-shadow: var(--gi-shadow-sm);
  }

  
  [data-gi-section="situations"] .pain-card {
    display: flex;
    flex-direction: column;
  }

  [data-gi-section="situations"] .pain-card > :last-child {
    margin-block-start: auto;
  }

  .pain-title {
    font-family: var(--gi-font-serif);
    font-size: var(--gi-text-xl);
    font-weight: var(--gi-weight-semibold);
    line-height: var(--gi-leading-snug);
    color: var(--gi-abyssal);
    margin-block: 0 var(--gi-space-3);
  }

  
  .pain-card-media {
    inline-size: 100%;
    block-size: auto;
    margin-block: 0 var(--gi-space-4);
    border-radius: var(--gi-radius-2xl);
  }

  
  
  @media (min-width: 64rem) {
    .pivot-statement {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
      gap: var(--gi-space-8);
      align-items: start;
    }
  }

  .pivot-statement {
    padding: var(--gi-space-8);
    border-block-start: var(--gi-rule-accent) solid var(--gi-emeraude);
    border-radius: var(--gi-radius-2xl);
    background-color: var(--gi-abyssal);
    color: var(--gi-platine);
    font-family: var(--gi-font-serif);
    font-size: var(--gi-text-lg);
    line-height: var(--gi-leading-normal);
    margin-block: var(--gi-space-12) 0;
  }

  
  .pivot-statement > p {
    margin: 0;
  }

  
  @media (max-width: 63.99rem) {
    .pivot-statement > p + p {
      margin-block-start: var(--gi-space-6);
      padding-block-start: var(--gi-space-6);
      border-block-start: var(--gi-border-hairline) solid var(--gi-slate-500);
    }
  }

  

  
  .jalon-band {
    margin-block: var(--gi-space-8) 0;
    padding: var(--gi-space-6);
    border: 1px solid var(--gi-slate-200);
    border-radius: var(--gi-radius-2xl);
    background-color: var(--gi-white);
    box-shadow: var(--gi-shadow-sm);
  }

  .jalon-band:first-of-type {
    margin-block-start: var(--gi-space-8);
  }

  
  .jalon-bands {
    display: grid;
    gap: var(--gi-space-8);
    margin-block-start: var(--gi-space-8);
  }

  
  .jalon-band-column {
    display: grid;
    gap: var(--gi-space-8);
    align-content: start;
  }

  
  .jalon-bands .jalon-band,
  .jalon-bands .jalon-band:first-of-type {
    margin-block: 0;
  }

  @media (min-width: 64rem) {
    .jalon-bands {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      align-items: start;
    }

    
    .jalon-bands .jalon-item {
      display: block;
    }

    
    .jalon-bands .jalon-question,
    .jalon-bands .jalon-deliverable {
      margin-block: var(--gi-space-1) 0;
    }
  }

  .jalon-band-title {
    display: flex;
    align-items: center;
    gap: var(--gi-space-3);
    font-family: var(--gi-font-sans);
    font-size: var(--gi-text-sm);
    font-weight: var(--gi-weight-bold);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--gi-abyssal);
    margin-block: 0 var(--gi-space-2);
  }

  
  .jalon-band-title::after {
    content: "";
    flex: 1;
    height: 1px;
    background-color: var(--gi-slate-200);
  }

  .jalon-band-lede {
    font-size: var(--gi-text-sm);
    line-height: var(--gi-leading-normal);
    color: var(--gi-slate-600);
    margin-block: 0 var(--gi-space-6);
  }

  .jalon-list {
    position: relative;
    display: grid;
    gap: var(--gi-space-4);
    padding: 0 0 0 var(--gi-space-16);
    margin-block: 0;
    list-style: none;
  }

  .jalon-list::before {
    content: "";
    position: absolute;
    inset-block: var(--gi-space-6);
    inset-inline-start: calc(var(--gi-space-6) - 1px);
    width: 2px;
    border-radius: var(--gi-radius-full);
    background-image: linear-gradient(
      var(--gi-emeraude-50),
      var(--gi-emeraude) 35%,
      var(--gi-or) 62%,
      var(--gi-abyssal)
    );
  }

  .jalon-item {
    position: relative;
    padding-block: var(--gi-space-4);
    border: 0;
    background-color: transparent;
    transition: background-color var(--gi-transition) ease;
  }

  
  .jalon-item + .jalon-item {
    border-block-start: 1px solid var(--gi-slate-100);
  }

  
  @media (min-width: 48rem) {
    .jalon-item {
      display: grid;
      grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
      gap: var(--gi-space-2) var(--gi-space-6);
      align-items: baseline;
      padding-block: var(--gi-space-3);
    }

    .jalon-title {
      grid-column: 1;
      margin-block: 0;
    }

    .jalon-question {
      grid-column: 1;
      margin-block: 0;
    }

    .jalon-deliverable {
      grid-column: 2;
      margin-block: 0;
    }

    .jalon-requires {
      grid-column: 1 / -1;
    }
  }

  .jalon-item:hover {
    background-color: var(--gi-slate-50);
  }

  
  .jalon-index {
    position: absolute;
    inset-block-start: var(--gi-space-4);
    inset-inline-start: calc(-1 * var(--gi-space-16));
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--gi-space-12);
    height: var(--gi-space-12);
    border: 2px solid var(--gi-emeraude);
    border-radius: var(--gi-radius-full);
    background-color: var(--gi-white);
    font-family: var(--gi-font-serif);
    font-size: var(--gi-text-lg);
    font-weight: var(--gi-weight-bold);
    line-height: 1;
    color: var(--gi-emeraude-600);
  }

  
  .jalon-band:nth-of-type(n + 2) .jalon-index {
    border-color: var(--gi-abyssal);
    color: var(--gi-abyssal);
  }

  .jalon-item-key {
    border-block-start-color: var(--gi-or);
  }

  
  .jalon-item-key .jalon-index {
    border-color: var(--gi-or);
    background-color: var(--gi-or);
    color: var(--gi-abyssal);
    box-shadow: var(--gi-shadow-lg);
  }

  .jalon-requires {
    margin-block: var(--gi-space-3) 0;
    padding-inline-start: var(--gi-space-3);
    border-inline-start: 2px solid var(--gi-or);
    font-size: var(--gi-text-sm);
    line-height: var(--gi-leading-normal);
    color: var(--gi-abyssal);
  }

  .jalon-title {
    font-family: var(--gi-font-serif);
    font-size: var(--gi-text-lg);
    font-weight: var(--gi-weight-semibold);
    line-height: var(--gi-leading-snug);
    color: var(--gi-abyssal);
    margin-block: 0 var(--gi-space-2);
  }

  .jalon-deliverable {
    font-size: var(--gi-text-sm);
    line-height: var(--gi-leading-normal);
    color: var(--gi-slate-600);
    margin-block: 0 var(--gi-space-2);
  }

  
  .jalon-deliverable::before {
    content: "→";
    margin-inline-end: var(--gi-space-2);
    color: var(--gi-or);
    font-weight: var(--gi-weight-bold);
  }

  .jalon-question {
    font-size: var(--gi-text-sm);
    font-style: italic;
    line-height: var(--gi-leading-normal);
    color: var(--gi-abyssal);
    margin-block: 0;
  }

  

  .flow {
    position: relative;
  }

  
  .flow-split,
  .flow-merge,
  .flow-loop {
    display: none;
  }

  @media (min-width: 48rem) {
    .flow {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) 7rem;
      column-gap: 0;
      row-gap: var(--gi-space-8);
      padding-block: var(--gi-space-4);
    }

    
    .flow .jalon-list {
      display: contents;
    }

    .flow .jalon-list::before {
      content: none;
    }

    .flow .jalon-item {
      display: block;
      margin-inline: var(--gi-space-3);
      padding: var(--gi-space-4);
      border: 1px solid var(--gi-slate-200);
      border-radius: var(--gi-radius-2xl);
      background-color: var(--gi-white);
      box-shadow: var(--gi-shadow-sm);
      transition: border-color var(--gi-transition) ease, box-shadow var(--gi-transition) ease;
    }

    .flow .jalon-item + .jalon-item {
      border-block-start: 1px solid var(--gi-slate-200);
    }

    .flow .jalon-item:hover {
      border-color: var(--gi-emeraude);
      box-shadow: var(--gi-shadow-lg);
    }

    
    .flow .jalon-index {
      inset-block-start: calc(-1 * var(--gi-space-4));
      inset-inline-start: var(--gi-space-4);
      width: var(--gi-space-8);
      height: var(--gi-space-8);
      font-size: var(--gi-text-sm);
    }

    .flow .jalon-title {
      font-size: var(--gi-text-base);
      margin-block: 0 var(--gi-space-2);
    }

    .flow .jalon-question,
    .flow .jalon-deliverable {
      font-size: var(--gi-text-xs);
      margin-block: 0 var(--gi-space-1);
    }

    .flow .jalon-requires {
      font-size: var(--gi-text-xs);
      margin-block-start: var(--gi-space-2);
    }

    
    .flow .jalon-item:nth-child(1) { grid-area: 1 / 2; }
    .flow .jalon-item:nth-child(2) { grid-area: 2 / 1; }
    .flow .jalon-item:nth-child(3) { grid-area: 3 / 1; }
    .flow .jalon-item:nth-child(4) { grid-area: 2 / 3; }
    .flow .jalon-item:nth-child(5) { grid-area: 3 / 3; }
    .flow .jalon-item:nth-child(6) { grid-area: 4 / 1; }
    .flow .jalon-item:nth-child(7) { grid-area: 4 / 3; }

    
    .flow .jalon-item:nth-child(1) {
      border-color: var(--gi-emeraude);
    }

    .flow .jalon-item-key {
      border-color: var(--gi-or);
      box-shadow: var(--gi-shadow-lg);
    }

   
    .flow-split {
      display: block;
      grid-area: 2 / 1 / 3 / 4;
      align-self: start;
      justify-self: stretch;
      height: var(--gi-space-4);
      margin-block-start: calc(-1 * var(--gi-space-4));
      margin-inline: calc((100% - 7rem) / 6);
      border-block-start: 2px solid var(--gi-slate-300);
      position: relative;
    }

    .flow-split::before,
    .flow-split::after {
      content: "";
      position: absolute;
      inset-block-start: 0;
      width: 2px;
      height: 100%;
      background-color: var(--gi-slate-300);
    }

    .flow-split::before { inset-inline-start: calc(-1 * var(--gi-space-1)); }
    .flow-split::after { inset-inline-end: calc(-1 * var(--gi-space-1)); }

    
    .flow .jalon-item:nth-child(1)::after {
      content: "";
      position: absolute;
      inset-block-start: 100%;
      inset-inline-start: calc(50% - 1px);
      width: 2px;
      height: var(--gi-space-4);
      background-color: var(--gi-slate-300);
    }

    
    .flow .jalon-item:nth-child(2)::after,
    .flow .jalon-item:nth-child(3)::after,
    .flow .jalon-item:nth-child(4)::after,
    .flow .jalon-item:nth-child(5)::after,
    .flow .jalon-item:nth-child(7)::after {
      content: "";
      position: absolute;
      inset-block-start: 100%;
      inset-inline-start: calc(50% - 1px);
      width: 2px;
      height: var(--gi-space-8);
      background-color: var(--gi-slate-300);
    }

    
    .flow .jalon-item:nth-child(2)::before,
    .flow .jalon-item:nth-child(3)::before,
    .flow .jalon-item:nth-child(4)::before,
    .flow .jalon-item:nth-child(5)::before,
    .flow .jalon-item:nth-child(6)::before,
    .flow .jalon-item:nth-child(7)::before {
      content: "";
      position: absolute;
      inset-block-start: calc(-1 * var(--gi-space-2));
      inset-inline-start: calc(50% - var(--gi-space-1));
      border-inline: var(--gi-space-1) solid transparent;
      border-block-start: var(--gi-space-2) solid var(--gi-slate-300);
    }

    
    .flow-merge {
      display: block;
      grid-area: 4 / 2;
      align-self: center;
      height: 0;
      border-block-start: 2px solid var(--gi-slate-300);
      position: relative;
    }

    .flow-merge::after {
      content: "";
      position: absolute;
      inset-block-start: calc(-1 * var(--gi-space-1));
      inset-inline-end: calc(-1 * var(--gi-space-1));
      border-block: var(--gi-space-1) solid transparent;
      border-inline-start: var(--gi-space-2) solid var(--gi-slate-300);
    }

    
    .flow-loop {
      display: block;
      grid-area: 3 / 4 / 5 / 5;
      align-self: stretch;
      margin-block-start: var(--gi-space-4);
      border-inline-end: 2px solid var(--gi-or);
      border-block-start: 2px solid var(--gi-or);
      border-block-end: 2px solid var(--gi-or);
      border-start-end-radius: var(--gi-radius-md);
      border-end-end-radius: var(--gi-radius-md);
      position: relative;
    }

    .flow-loop::before {
      content: "";
      position: absolute;
      inset-block-start: calc(-1 * var(--gi-space-1));
      inset-inline-start: calc(-1 * var(--gi-space-2) - 1px);
      border-block: var(--gi-space-1) solid transparent;
      border-inline-end: var(--gi-space-2) solid var(--gi-or);
    }

    .flow-loop-label {
      position: absolute;
      inset-block-start: 50%;
      inset-inline: var(--gi-space-3);
      transform: translateY(-50%);
      font-size: var(--gi-text-xs);
      font-weight: var(--gi-weight-semibold);
      line-height: var(--gi-leading-snug);
      text-align: center;
      color: var(--gi-or);
    }
  }

  
  .jalon-key {
    padding: var(--gi-space-6);
    border-inline-start: 3px solid var(--gi-emeraude);
    background-color: var(--gi-white);
    font-family: var(--gi-font-serif);
    font-size: var(--gi-text-lg);
    color: var(--gi-abyssal);
    margin-block: var(--gi-space-8);
  }

  .jalon-notes {
    font-size: var(--gi-text-sm);
    color: var(--gi-slate-600);
    margin-block: var(--gi-space-4);
  }

  

  
  .pain-mark {
    margin-inline-end: var(--gi-space-2);
    font-weight: var(--gi-weight-bold);
    color: var(--gi-slate-400);
  }

  .pain-mark-yes {
    color: var(--gi-emeraude-600);
  }

  
  .pain-title-belief {
    color: var(--gi-slate-500);
  }

  .pain-answer {
    font-weight: var(--gi-weight-medium);
    color: var(--gi-abyssal);
  }

  
  .jalon-list-flux .jalon-item {
    display: block;
  }

  .jalon-list-flux .jalon-question,
  .jalon-list-flux .jalon-deliverable {
    margin-block: var(--gi-space-1) 0;
  }

  
  .proof-card.proof-card-mentor {
    align-items: center;
    justify-content: center;
    gap: var(--gi-space-3);
    text-align: center;
  }

  
  .section-break {
    margin-block-start: var(--gi-space-16);
  }

  .palier-split {
    display: grid;
    gap: var(--gi-space-8);
    margin-block-start: var(--gi-space-8);
  }

  @media (min-width: 64rem) {
    .palier-split {
      
      grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
      align-items: start;
    }
  }

  .palier-split-detail > * {
    margin-block: 0 var(--gi-space-4);
  }

  .palier-split-detail > *:last-child {
    margin-block-end: 0;
  }

  .palier-price-block {
    padding: var(--gi-space-6);
    border: var(--gi-border-hairline) solid var(--gi-slate-200);
    border-radius: var(--gi-radius-2xl);
    background-color: var(--gi-white);
    text-align: center;
  }

  
  .table-thirds {
    table-layout: fixed;
  }

  .table-thirds th {
    width: 33.333%;
  }

  
  .table-thirds th::before {
    content: "✓";
    display: inline-block;
    inline-size: var(--gi-space-4);
    block-size: var(--gi-space-4);
    margin-inline-end: var(--gi-space-2);
    border: var(--gi-border-hairline) solid var(--gi-emeraude-600);
    border-radius: var(--gi-radius-md);
    color: var(--gi-emeraude-600);
    font-size: var(--gi-text-xs);
    font-weight: var(--gi-weight-bold);
    line-height: var(--gi-leading-normal);
    text-align: center;
    vertical-align: middle;
  }

  
  @media (max-width: 47.99rem) {
    .table-thirds th,
    .table-thirds td {
      display: block;
      
      width: auto;
    }
  }

  .proof-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
    gap: var(--gi-space-6);
    padding: 0;
    margin-block: var(--gi-space-8) 0;
    list-style: none;
  }

  .proof-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: var(--gi-space-8);
    border: 1px solid var(--gi-slate-200);
    border-radius: var(--gi-radius-2xl);
    background-color: var(--gi-slate-50);
  }

  .proof-quote {
    font-family: var(--gi-font-serif);
    font-size: var(--gi-text-base);
    font-style: italic;
    line-height: var(--gi-leading-normal);
    color: var(--gi-slate-700);
    margin-block: 0 var(--gi-space-6);
  }

  .proof-author {
    font-size: var(--gi-text-sm);
    font-weight: var(--gi-weight-bold);
    color: var(--gi-abyssal);
    margin-block: 0;
  }

  .proof-role {
    font-size: var(--gi-text-xs);
    color: var(--gi-slate-500);
    margin-block: 0;
  }

  

  .palier-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
    gap: var(--gi-space-8);
    padding: 0;
    margin-block: var(--gi-space-8) 0;
    list-style: none;
  }

  

  .palier-meta {
    font-size: var(--gi-text-sm);
    font-weight: var(--gi-weight-semibold);
    color: var(--gi-abyssal);
    margin-block: 0;
  }

  .palier-price {
    font-family: var(--gi-font-serif);
    font-size: var(--gi-text-2xl);
    font-weight: var(--gi-weight-bold);
    color: var(--gi-abyssal);
    margin-block: auto 0;
  }

  
  @media (min-width: 45rem) {
    .palier-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      grid-template-rows: repeat(6, auto);
    }
  }

  
  @media (min-width: 64rem) {
    .palier-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
  }

  
  @media (min-width: 64rem) and (max-width: 80rem) {
    .palier-card {
      padding: var(--gi-space-6);
    }
  }

  .prerequisite {
    padding: var(--gi-space-6);
    margin-block: var(--gi-space-8) 0;
    border: 1px dashed var(--gi-slate-300);
    border-radius: var(--gi-radius-2xl);
    background-color: var(--gi-white);
    font-size: var(--gi-text-sm);
    line-height: var(--gi-leading-normal);
    color: var(--gi-slate-600);
  }

  
  .autofinancement {
    margin-block-start: var(--gi-space-12);
    padding-block-start: var(--gi-space-8);
    border-block-start: 1px solid var(--gi-slate-200);
  }

  

  .faq-list {
    display: grid;
    gap: var(--gi-space-3);
    margin-block: var(--gi-space-8) 0;
  }

  .faq-item {
    padding: var(--gi-space-4) var(--gi-space-6);
    border: 1px solid var(--gi-slate-200);
    border-radius: var(--gi-radius-2xl);
    background-color: var(--gi-white);
  }

  .faq-question {
    cursor: pointer;
    font-family: var(--gi-font-serif);
    font-size: var(--gi-text-lg);
    font-weight: var(--gi-weight-semibold);
    color: var(--gi-abyssal);
  }

  
  .faq-content {
    max-height: none;
    opacity: 1;
    overflow: visible;
    transition: none;
    padding-block-start: var(--gi-space-3);
  }

  .faq-content p:last-child {
    margin-block-end: 0;
  }

  

  .source-list {
    display: grid;
    gap: var(--gi-space-3);
    padding-inline-start: var(--gi-space-6);
    font-size: var(--gi-text-sm);
    color: var(--gi-slate-600);
  }

  
  .link-arrow {
    display: inline-flex;
    align-items: center;
    gap: var(--gi-space-2);
    font-weight: var(--gi-weight-semibold);
    color: var(--gi-emeraude-600);
    text-decoration: none;
    border-block-end: 2px solid var(--gi-emeraude);
  }

  
  .section-abyssal .link-arrow,
  .hero-abyssal .link-arrow {
    color: var(--gi-emeraude);
  }

  .section-abyssal .link-arrow:hover,
  .hero-abyssal .link-arrow:hover {
    color: var(--gi-slate-100);
    border-block-end-color: var(--gi-or);
  }

  .link-arrow:hover {
    color: var(--gi-abyssal);
    border-block-end-color: var(--gi-or);
  }

  

  .partner-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: var(--gi-space-6);
    padding: 0;
    margin-block: var(--gi-space-8) 0;
    list-style: none;
  }

  
  .partner-grid-experts {
    grid-template-columns: repeat(auto-fit, minmax(min(var(--gi-partner-card-min), 100%), 1fr));
  }

  
  .partner-grid-pair {
    grid-template-columns: minmax(0, 1fr);
    max-inline-size: var(--gi-partner-card-max);
    margin-inline: auto;
  }

  @media (min-width: 48rem) {
    .partner-grid-pair {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      max-inline-size: calc(2 * var(--gi-partner-card-max) + var(--gi-space-6));
    }
  }

  .partner-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--gi-space-2);
    min-height: 11rem;
    padding: var(--gi-space-6);
    border: 1px solid var(--gi-slate-200);
    border-radius: var(--gi-radius-2xl);
    background-color: var(--gi-platine);
    text-align: center;
  }

  .partner-card-open {
    border-style: dashed;
    border-color: var(--gi-slate-300);
  }

  .partner-logo {
    max-height: var(--gi-space-16);
    width: auto;
  }

  
  .partner-logo-square {
    inline-size: var(--gi-space-16);
    block-size: var(--gi-space-16);
  }

  
  
  .quote-block {
    margin: var(--gi-space-6) 0 0;
    padding: var(--gi-space-6);
    border: var(--gi-border-hairline) solid var(--gi-slate-200);
    border-radius: var(--gi-radius-2xl);
    background-color: var(--gi-slate-50);
  }

  .quote-block .proof-quote {
    margin-block: 0;
  }

  .quote-block-source {
    display: flex;
    align-items: center;
    gap: var(--gi-space-3);
    margin-block-start: var(--gi-space-4);
  }

  
  .quote-block .quote-block-portrait {
    inline-size: var(--gi-space-12);
    block-size: var(--gi-space-12);
  }

  .expert-portrait {
    inline-size: var(--gi-portrait-size);
    block-size: var(--gi-portrait-size);
    border: var(--gi-border-hairline) solid var(--gi-slate-200);
    border-radius: var(--gi-radius-full);
    object-fit: cover;
  }

  .partner-slot {
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--gi-space-16);
    height: var(--gi-space-16);
    border: 1px solid var(--gi-slate-200);
    border-radius: var(--gi-radius-full);
    background-color: var(--gi-white);
    font-size: var(--gi-text-2xl);
    color: var(--gi-slate-400);
  }

  
  .partner-slot-portrait {
    width: var(--gi-portrait-size);
    height: var(--gi-portrait-size);
  }

  
  .partner-grid-experts .partner-card,
  .partner-grid-pair .partner-card {
    justify-content: flex-start;
  }

  .partner-name {
    font-size: var(--gi-text-sm);
    font-weight: var(--gi-weight-bold);
    color: var(--gi-abyssal);
    margin-block: 0;
  }

  .partner-role {
    font-size: var(--gi-text-xs);
    
    color: var(--gi-slate-600);
    margin-block: 0;
  }

  

  .milestone-grid {
    display: grid;
    gap: var(--gi-space-4);
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    padding: 0;
    margin: 0;
    list-style: none;
  }

  

  
  @media (max-width: 40rem) {
    
    .site-header .container {
      flex-direction: row;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: var(--gi-space-3);
      padding-block: var(--gi-space-3);
    }

    .site-brand {
      order: 1;
    }

    .nav-toggle {
      order: 2;
    }

    .site-nav {
      order: 3;
      flex-basis: 100%;
      flex-wrap: wrap;
    }

    .site-header[data-gi-nav="js"] .nav-toggle {
      display: inline-flex;
    }

    .site-header[data-gi-nav="js"] .site-nav {
      display: none;
    }

    .site-header[data-gi-nav="js"][data-gi-nav-open="true"] .site-nav {
      display: flex;
    }

    
    .site-nav-link {
      flex: 0 0 calc(50% - var(--gi-space-3));
    }

    .site-nav-cta {
      width: 100%;
    }

    .hero-title {
      font-size: var(--gi-text-3xl);
    }

    
    .jalon-band {
      padding: var(--gi-space-4);
    }

    .jalon-list {
      padding-inline-start: var(--gi-space-12);
    }

    .jalon-list::before {
      inset-inline-start: calc(var(--gi-space-4) - 1px);
    }

    .jalon-index {
      inset-inline-start: calc(-1 * var(--gi-space-12));
      width: var(--gi-space-8);
      height: var(--gi-space-8);
      font-size: var(--gi-text-base);
    }

    .jalon-item {
      padding-block: var(--gi-space-3);
    }
  }

  

  
  .site-footer {
    padding-block: var(--gi-space-12);
    background-color: var(--gi-abyssal);
    color: var(--gi-platine);
    text-align: center;
  }

  .site-footer .footer-logo {
    margin-inline: auto;
  }

  .site-footer a {
    color: var(--gi-platine);
  }

  
  .footer-layout {
    display: grid;
    gap: var(--gi-space-8);
    text-align: start;
  }

  .footer-layout .footer-logo {
    margin-inline: 0;
  }

  .footer-brand {
    display: grid;
    gap: var(--gi-space-4);
    justify-items: start;
  }

  
  .footer-columns {
    display: grid;
    gap: var(--gi-space-8);
  }

  .footer-col {
    display: grid;
    gap: var(--gi-space-3);
    align-content: start;
  }

  .footer-col-title {
    margin: 0;
    font-size: var(--gi-text-sm);
    font-weight: var(--gi-weight-bold);
    color: var(--gi-white);
  }

  .footer-links {
    display: grid;
    gap: var(--gi-space-2);
    padding: 0;
    margin: 0;
    list-style: none;
  }

  
  .site-footer .footer-links a {
    color: var(--gi-slate-400);
  }

  @media (min-width: 40rem) {
    .footer-columns {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
  }

  @media (min-width: 64rem) {
    .footer-layout {
      grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
      align-items: start;
    }
  }

  
  

  

  .sim-layout {
    display: grid;
    gap: var(--gi-space-8);
    margin-block-start: var(--gi-space-8);
  }

  .sim-form {
    display: grid;
    gap: var(--gi-space-4);
    align-content: start;
  }

  .sim-field {
    display: grid;
    gap: var(--gi-space-2);
  }

  .sim-label {
    font-weight: var(--gi-weight-semibold);
    color: var(--gi-abyssal);
  }

  .sim-input,
  .sim-select {
    inline-size: 100%;
    padding: var(--gi-space-3);
    border: 1px solid var(--gi-slate-300);
    border-radius: var(--gi-radius-md);
    font-family: var(--gi-font-sans);
    font-size: var(--gi-text-base);
    color: var(--gi-abyssal);
    background-color: var(--gi-white);
  }

  .sim-hint {
    font-size: var(--gi-text-sm);
    color: var(--gi-slate-500);
  }

  .sim-results {
    display: grid;
    gap: var(--gi-space-4);
    align-content: start;
  }

  
  .sim-figures {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--gi-space-3);
  }

  .sim-figure-card {
    padding: var(--gi-space-3);
    border: 1px solid var(--gi-slate-200);
    border-radius: var(--gi-radius-2xl);
    background-color: var(--gi-white);
    box-shadow: var(--gi-shadow-sm);
  }

  .sim-figure-label {
    font-size: var(--gi-text-xs);
    font-weight: var(--gi-weight-semibold);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--gi-slate-500);
  }

  .sim-figure-value {
    margin-block-start: var(--gi-space-1);
    font-family: var(--gi-font-serif);
    font-size: var(--gi-text-xl);
    font-weight: var(--gi-weight-bold);
    color: var(--gi-abyssal);
  }

  .sim-block {
    padding: var(--gi-space-6);
    border: 1px solid var(--gi-slate-200);
    border-radius: var(--gi-radius-2xl);
    background-color: var(--gi-white);
    box-shadow: var(--gi-shadow-sm);
  }

  .sim-block-title {
    margin-block-end: var(--gi-space-2);
    font-size: var(--gi-text-lg);
    font-weight: var(--gi-weight-semibold);
    color: var(--gi-abyssal);
  }

  .sim-nature {
    display: inline-block;
    margin-block-end: var(--gi-space-3);
    padding-block: var(--gi-space-1);
    padding-inline: var(--gi-space-2);
    border-radius: var(--gi-radius-full);
    font-size: var(--gi-text-xs);
    font-weight: var(--gi-weight-semibold);
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }

  .sim-nature-fait {
    background-color: var(--gi-emeraude-50);
    color: var(--gi-emeraude-600);
  }

  .sim-nature-hypothese {
    background-color: var(--gi-or-50);
    color: var(--gi-slate-700);
  }

  .sim-nature-condition {
    background-color: var(--gi-platine);
    color: var(--gi-abyssal);
  }

  .sim-lines {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  
  .sim-details summary {
    cursor: pointer;
    list-style: none;
  }

  .sim-details summary::-webkit-details-marker {
    display: none;
  }

  .sim-details summary::after {
    content: ' +';
    color: var(--gi-slate-400);
  }

  .sim-details[open] summary::after {
    content: ' \2212';
  }

  .sim-details[open] summary {
    margin-block-end: var(--gi-space-2);
  }

  .sim-line {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: var(--gi-space-2);
    padding-block: var(--gi-space-1);
    border-block-end: 1px solid var(--gi-slate-100);
    font-size: var(--gi-text-sm);
    color: var(--gi-slate-600);
  }

  .sim-line:last-child {
    border-block-end: 0;
  }

  .sim-figure {
    font-family: var(--gi-font-serif);
    font-size: var(--gi-text-3xl);
    font-weight: var(--gi-weight-bold);
    color: var(--gi-abyssal);
  }

  .sim-figure-note {
    font-size: var(--gi-text-sm);
    color: var(--gi-slate-500);
  }

  .sim-disclaimer {
    margin-block-start: var(--gi-space-8);
    padding: var(--gi-space-4);
    border-inline-start: 3px solid var(--gi-or);
    border-radius: var(--gi-radius-md);
    background-color: var(--gi-or-50);
    font-size: var(--gi-text-sm);
    color: var(--gi-slate-700);
  }

  @media (min-width: 64rem) {
    .sim-layout {
      grid-template-columns: 20rem minmax(0, 1fr);
      gap: var(--gi-space-12);
    }

    .sim-figures {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    
    .sim-results {
      position: sticky;
      inset-block-start: var(--gi-space-6);
      max-block-size: calc(100vh - var(--gi-space-12));
      overflow-y: auto;
    }

    .sim-input,
    .sim-select {
      max-inline-size: 20rem;
    }
  }

  
  @media (min-width: 64rem) and (max-height: 62rem) {
    [data-gi-section="simulateur"] {
      padding-block: var(--gi-space-6);
    }

    [data-gi-section="simulateur"] .section-title {
      font-size: var(--gi-text-3xl);
    }

    .sim-block {
      padding: var(--gi-space-4);
    }

    .sim-block-title {
      font-size: var(--gi-text-base);
      margin-block-end: var(--gi-space-1);
    }

    .sim-figure {
      font-size: var(--gi-text-2xl);
    }

    .sim-figure-value {
      font-size: var(--gi-text-lg);
    }

    .sim-line {
      padding-block: 2px;
    }

    .sim-nature {
      margin-block-end: var(--gi-space-2);
    }

    .sim-results,
    .sim-layout {
      gap: var(--gi-space-3);
    }

    .sim-layout {
      margin-block-start: var(--gi-space-6);
    }

    
    .sim-disclaimer {
      margin-block-start: var(--gi-space-3);
      padding: var(--gi-space-2) var(--gi-space-3);
    }

    .sim-figure-note {
      font-size: var(--gi-text-xs);
    }

    
    .sim-figure-card {
      padding: var(--gi-space-2) var(--gi-space-3);
    }

    .sim-figure-value {
      font-size: var(--gi-text-base);
    }
  }
}
