/* ==========================================================================
   print.css — CV A4 propre (index et pages rôle)
   Les blocs marqués [data-print="cv"] sont imprimés ; les blocs
   [data-print="skip"] sont masqués.
   ========================================================================== */

@page {
  size: A4;
  margin: 14mm 16mm;
}

@media print {
  :root {
    --bg: #ffffff;
    --surface: #ffffff;
    --surface-2: #fafafa;
    --line: #d8d8d8;
    --line-strong: #bdbdbd;
    --text: #111111;
    --text-2: #444444;
    --text-3: #777777;
    --accent: #ff4d1f;
    --accent-ink: #ffffff;
    color-scheme: light;
  }

  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }

  html,
  body {
    background: #fff !important;
    color: #111 !important;
    font-size: 10.5pt;
    line-height: 1.45;
  }

  .page-grid,
  .hero-canvas,
  .site-header,
  .site-footer,
  .share-fab,
  .share-panel,
  .palette,
  .modal,
  .cursor-dot,
  .cursor-ring,
  .toast,
  .skip-link,
  .role-switch,
  .filters,
  .btn,
  .hybrid,
  .marquee,
  .proof .sep,
  .case-nav,
  .case-cta,
  .booking,
  [data-print="skip"] {
    display: none !important;
  }

  .reveal,
  .mask-word > span,
  .slot a {
    opacity: 1 !important;
    transform: none !important;
  }

  .slot a:not(.is-active) {
    display: none;
  }

  .section,
  .page-hero,
  .hero,
  .case-section {
    padding: 0 0 8mm !important;
    min-height: 0 !important;
    border: 0 !important;
  }

  .section-head {
    margin-bottom: 4mm;
    padding-bottom: 2mm;
    border-bottom: 1px solid #111;
  }

  .hero {
    display: grid;
    grid-template-columns: 1fr 42mm;
    gap: 8mm;
    align-items: start;
    page-break-after: avoid;
  }

  .hero__copy {
    grid-column: 1;
  }

  .hero__side {
    grid-column: 2;
    grid-template-columns: 1fr;
  }

  .hero__title {
    font-size: 26pt;
    line-height: 1.02;
    letter-spacing: -0.02em;
    max-width: none;
  }

  .hero__title .serif {
    color: #111;
  }

  .hero__role {
    font-size: 12pt;
  }

  .console {
    border: 1px solid #ddd;
    background: #fff;
    font-size: 8pt;
  }

  .console .row {
    grid-template-columns: 22mm 1fr;
  }

  .dot {
    display: none;
  }

  .portrait img {
    filter: grayscale(1);
  }

  .proof {
    grid-column: 1 / -1;
    gap: 2mm 6mm;
    padding-top: 3mm;
  }

  .proof .sep + * {
    position: relative;
  }

  .proof span:not(.sep)::after {
    content: " ·";
    color: #999;
  }

  .proof span:last-child::after {
    content: "";
  }

  .grain::after {
    display: none;
  }

  .bento,
  .stats,
  .formats,
  .hybrid__compare {
    gap: 0;
    background: transparent;
    border: 0;
  }

  .bento .tile,
  .stat,
  .format {
    border: 1px solid #ddd;
    min-height: 0;
    padding: 4mm;
    gap: 2mm;
    break-inside: avoid;
  }

  .bento .tile h3,
  .bento .tile--large h3 {
    font-size: 11pt;
  }

  .bento .tile p,
  .principle p,
  .point p,
  .format p {
    font-size: 9pt;
    max-width: none;
  }

  .principles,
  .points {
    grid-template-columns: repeat(2, 1fr);
    gap: 4mm;
  }

  .principle .num {
    font-size: 16pt;
  }

  .principle h3,
  .point h3 {
    font-size: 11pt;
  }

  .featured {
    gap: 4mm;
  }

  .feature {
    grid-template-columns: 30mm 1fr;
    gap: 5mm;
    break-inside: avoid;
  }

  .feature .media,
  .feature:nth-child(even) .media {
    grid-column: 1;
    order: 0;
    aspect-ratio: 4 / 3;
  }

  .feature .body,
  .feature:nth-child(even) .body {
    grid-column: 2;
    order: 0;
  }

  .feature .title {
    font-size: 12pt;
  }

  .feature .summary {
    font-size: 9pt;
  }

  .stats {
    grid-template-columns: repeat(4, 1fr);
  }

  .stat .v {
    font-size: 18pt;
  }

  .timeline {
    grid-auto-flow: row;
    grid-auto-columns: auto;
    overflow: visible;
    border-top: 0;
  }

  .timeline li {
    border-right: 0;
    border-top: 1px solid #e3e3e3;
    padding: 3mm 0 3mm 0 !important;
    display: grid;
    grid-template-columns: 30mm 1fr;
    gap: 4mm;
    break-inside: avoid;
  }

  .timeline li::before {
    display: none;
  }

  .timeline .when {
    margin: 0;
  }

  .timeline h3 {
    font-size: 11pt;
  }

  .reviews-grid {
    gap: 4mm;
  }

  .reviews-grid .quote--featured blockquote {
    font-size: 12pt;
  }

  .reviews-grid .rating {
    padding: 3mm;
  }

  .products {
    margin-top: 4mm;
  }

  .products ul {
    grid-template-columns: repeat(4, 1fr);
  }

  .contact {
    gap: 4mm;
  }

  .contact__right {
    display: none;
  }

  .contact__left h2 {
    font-size: 16pt;
  }

  .skills {
    grid-template-columns: repeat(3, 1fr);
    gap: 4mm 6mm;
  }

  .skill {
    padding: 1mm 0;
    font-size: 9pt;
  }

  .related {
    grid-template-columns: repeat(3, 1fr);
    gap: 4mm;
  }

  .project-card .media {
    display: none;
  }

  .testimonials-2 {
    grid-template-columns: 1fr 1fr;
    gap: 4mm;
  }

  .quote {
    padding: 3mm;
    gap: 2mm;
  }

  .quote blockquote {
    font-size: 10pt;
  }

  .page-hero h1 {
    font-size: 24pt;
  }

  .page-hero .lead {
    font-size: 11pt;
  }

  /* Liens : URL imprimée après le texte (hors ancres et liens internes de nav) */
  a[href^="http"]::after,
  a[href^="mailto"]::after,
  a[href^="tel"]::after {
    content: " (" attr(href) ")";
    font-family: var(--font-mono);
    font-size: 7.5pt;
    color: #777;
    letter-spacing: 0;
    text-transform: none;
  }

  .footer-cols a::after,
  .site-nav a::after,
  .project-card a::after {
    content: "";
  }

  /* QR vers le site, injecté par main.js dans [data-print-qr] */
  .print-qr {
    display: grid !important;
    grid-template-columns: 22mm 1fr;
    gap: 4mm;
    align-items: center;
    margin-top: 6mm;
    padding-top: 4mm;
    border-top: 1px solid #111;
    font-size: 8pt;
    color: #444;
    break-inside: avoid;
  }

  .print-qr img,
  .print-qr canvas {
    width: 22mm !important;
    height: 22mm !important;
  }

  h1,
  h2,
  h3 {
    break-after: avoid;
  }

  section,
  .case-section,
  .case-results {
    break-inside: auto;
  }

  .section--pb {
    break-before: page;
  }
}

/* Hors impression : le bloc QR d'impression est caché */
.print-qr {
  display: none;
}
