.pir-app {
  --pir-gold:#b58b3a;
  --pir-gold-dark:#8f6d2d;
  --pir-ink:#263238;
  --pir-soft:#f7f3ea;
  --pir-card:#ffffff;
  --pir-line:#e6dfd1;
  --pir-good:#eef8ef;
  --pir-font-scale:1;
  font-family:inherit;
  color:var(--pir-ink);
  font-size:calc(1rem * var(--pir-font-scale));
  max-width:1100px;
  margin:28px auto;
}
.pir-app.pir-text-comfort { --pir-font-scale:1.18; }
.pir-app.pir-text-large { --pir-font-scale:1.38; }

/* La page du jeu devient réellement pleine largeur : pas de colonne latérale. */
body.pir-memory-page .pir-page-hidden-sidebar,
body.pir-memory-page #secondary,
body.pir-memory-page #sidebar,
body.pir-memory-page #right-sidebar,
body.pir-memory-page #sidebar-right,
body.pir-memory-page aside.widget-area,
body.pir-memory-page aside[role="complementary"] {
  display:none !important;
  width:0 !important;
  max-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
}
body.pir-memory-page .pir-page-fullwidth-parent {
  width:100% !important;
  max-width:none !important;
  grid-template-columns:minmax(0,1fr) !important;
  column-gap:0 !important;
}
body.pir-memory-page .pir-page-main-column,
body.pir-memory-page #primary:has(.pir-app),
body.pir-memory-page .content-area:has(.pir-app),
body.pir-memory-page .site-main:has(.pir-app),
body.pir-memory-page main.site-main:has(.pir-app),
body.pir-memory-page article:has(.pir-app) {
  width:100% !important;
  max-width:none !important;
  flex:1 1 100% !important;
}
body.pir-memory-page .site-content:has(.pir-app),
body.pir-memory-page .content-sidebar-wrap:has(.pir-app),
body.pir-memory-page .wp-block-columns:has(.pir-app) {
  grid-template-columns:minmax(0,1fr) !important;
}
body.pir-memory-page .wp-block-columns:has(.pir-app) > .wp-block-column:not(:has(.pir-app)) { display:none !important; }
body.pir-memory-page .entry-content:has(.pir-app) {
  max-width:1180px !important;
  width:min(1180px, calc(100% - 24px)) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

.pir-shell { background:linear-gradient(180deg,#fffdf8,#f7f3ea); border:1px solid var(--pir-line); border-radius:24px; padding:clamp(18px,4vw,40px); box-shadow:0 12px 35px rgba(48,43,32,.08); }
.pir-header { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; }
.pir-heading { min-width:0; }
.pir-kicker { margin:0 0 4px; color:var(--pir-gold-dark); font-size:.9em; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.pir-header h2 { margin:0; font-size:clamp(1.7em,4vw,2.6em); line-height:1.1; }
.pir-comfort-tools { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; max-width:520px; }
.pir-tool-btn { min-height:52px; border:1px solid var(--pir-line); background:#fff; color:var(--pir-ink); border-radius:14px; padding:10px 14px; font:inherit; font-size:.95em; font-weight:700; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:6px; box-shadow:0 3px 10px rgba(48,43,32,.05); }
.pir-tool-btn:hover,.pir-tool-btn:focus-visible { border-color:var(--pir-gold); outline:3px solid rgba(181,139,58,.18); outline-offset:1px; }
.pir-tool-btn[aria-pressed="true"] { background:#f3e7c8; border-color:var(--pir-gold); }
.pir-tool-text { min-width:56px; font-size:1.08em; }
.pir-comfort-status { min-height:1.4em; margin:10px 0 0; text-align:right; color:#5f584d; font-size:.82em; }

.pir-intro { font-size:1.25em; line-height:1.65; max-width:760px; margin:44px auto 28px; text-align:center; }
.pir-screen { text-align:center; }
.pir-primary,.pir-secondary,.pir-choice,.pir-link { min-height:58px; font:inherit; cursor:pointer; border-radius:16px; }
.pir-primary { border:0; background:var(--pir-gold); color:#fff; padding:14px 30px; font-weight:700; font-size:1.08em; box-shadow:0 6px 14px rgba(143,109,45,.18); }
.pir-primary:hover,.pir-primary:focus-visible { background:var(--pir-gold-dark); }
.pir-secondary { border:1px solid var(--pir-line); background:#fff; color:var(--pir-ink); padding:13px 28px; font-weight:700; }
.pir-link { border:0; background:transparent; color:#5b5140; display:block; margin:18px auto 0; min-height:44px; text-decoration:underline; }
.pir-help { max-width:720px; margin:18px auto 0; padding:18px 22px; background:#fff; border-radius:16px; text-align:left; line-height:1.6; }
.pir-prompt { font-size:1.45em; line-height:1.35; font-weight:700; margin:36px 0 22px; }
.pir-stage { min-height:360px; display:flex; align-items:center; justify-content:center; gap:20px; flex-wrap:wrap; }
.pir-focus-card { max-width:720px; width:100%; background:var(--pir-card); border:1px solid var(--pir-line); border-radius:22px; padding:14px; box-shadow:0 8px 24px rgba(50,43,29,.07); }
.pir-focus-card img { width:100%; max-height:620px; object-fit:contain; border-radius:14px; display:block; }
.pir-mini-grid { width:100%; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.pir-mini-card { background:#fff; padding:10px; border:1px solid var(--pir-line); border-radius:18px; }
.pir-mini-card img { width:100%; height:280px; object-fit:contain; border-radius:12px; display:block; }
.pir-choices { width:100%; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.pir-choice { background:#fff; border:2px solid transparent; padding:10px; min-height:210px; overflow:hidden; }
.pir-choice:hover,.pir-choice:focus-visible { border-color:var(--pir-gold); outline:none; box-shadow:0 0 0 4px rgba(181,139,58,.16); }
.pir-choice img { width:100%; height:300px; object-fit:contain; display:block; border-radius:12px; }

/* Mode "Images +" : une vraie loupe simple, sans geste complexe. */
.pir-app.pir-images-large .pir-focus-card { max-width:920px; }
.pir-app.pir-images-large .pir-focus-card img { max-height:760px; }
.pir-app.pir-images-large .pir-mini-card img { height:390px; }
.pir-app.pir-images-large .pir-choice img { height:420px; }
.pir-app.pir-images-large .pir-choices { grid-template-columns:1fr; max-width:900px; margin:0 auto; }
.pir-app.pir-images-large .pir-mini-grid { max-width:1000px; margin:0 auto; }

.pir-actions { margin-top:26px; }
.pir-feedback { max-width:760px; margin:0 auto; background:var(--pir-good); border-radius:18px; padding:24px; line-height:1.55; }
.pir-feedback h3 { margin:0 0 8px; font-size:1.45em; }
.pir-feedback p { margin:7px 0; }
.pir-work-title { font-weight:700; font-size:1.14em; }
.pir-stack { display:flex; flex-direction:column; align-items:center; gap:12px; margin-top:24px; }
.pir-pause-mark { font-size:3em; margin-top:28px; }
.pir-live { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

@media (min-width:760px) {
  .pir-choices[data-count="3"], .pir-choices[data-count="4"] { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pir-app.pir-images-large .pir-choices[data-count="3"],
  .pir-app.pir-images-large .pir-choices[data-count="4"] { grid-template-columns:1fr; }
}

@media (max-width:760px) {
  .pir-header { flex-direction:column; align-items:stretch; }
  .pir-comfort-tools { justify-content:flex-start; max-width:none; }
  .pir-comfort-status { text-align:left; }
}

@media (max-width:620px) {
  .pir-app { margin:12px auto; }
  .pir-shell { border-radius:18px; padding:16px; }
  .pir-header h2 { font-size:1.65em; }
  .pir-comfort-tools { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pir-tool-btn { width:100%; min-height:56px; }
  .pir-stage { min-height:280px; }
  .pir-mini-grid,.pir-choices { grid-template-columns:1fr 1fr; gap:10px; }
  .pir-choice { min-height:130px; padding:6px; }
  .pir-choice img { height:165px; }
  .pir-mini-card img { height:175px; }
  .pir-app.pir-images-large .pir-mini-grid,
  .pir-app.pir-images-large .pir-choices { grid-template-columns:1fr; }
  .pir-app.pir-images-large .pir-choice img,
  .pir-app.pir-images-large .pir-mini-card img { height:min(62vh,420px); }
  .pir-primary,.pir-secondary { width:100%; max-width:420px; }
}

@media (prefers-reduced-motion: no-preference) {
  .pir-focus-card,.pir-choice,.pir-feedback { animation:pirFade .28s ease-out; }
  @keyframes pirFade { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:none; } }
}
