/* Finition additive. La palette et la géométrie restent pilotées par theme.generated.css. */
:root { --as-ease: cubic-bezier(.2,.8,.2,1); --as-short: 180ms; }
html { scrollbar-color: var(--line) var(--black); }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
body { background-image:url('/images/surface-grain.svg');background-size:180px 180px; }
.home-intro .presentation,.tool-card,.form-panel,.trace-preview-panel,.trace-settings,.geo-map-button { background-image:url('/images/surface-grain.svg'),linear-gradient(145deg,#ffffff04,transparent 58%); }
.menu-card { background-image:url('/images/surface-grain.svg'); }
.site-footer .footer-social { background-color:#141a15;background-image:url('/images/surface-grain.svg');border:1px solid #303930;border-radius:12px;min-height:48px;transition:background-color 180ms,transform 180ms; }
.site-footer .footer-social:hover { background-color:#1d271e;transform:translateY(-2px); }
.site-footer .footer-social-icon { display:grid;place-items:center;background:transparent;border:0; }
.footer-social-icon img { width:20px;height:20px;display:block; }
.site-footer .footer-social.footer-tip { background-color:var(--gold);border-color:var(--gold);color:var(--black);min-height:44px;align-self:center;font-size:12px;opacity:1;animation:none;transition:none; }
.site-footer .footer-social.footer-tip:hover { background-color:var(--gold);filter:brightness(1.06);transform:none; }
.site-footer .footer-tip .footer-social-icon { color:var(--black); }
.as-experience-note { font-size:12px;line-height:1.65;color:var(--muted);margin-block:0 22px; }
.as-personal-note { display:block;max-width:40ch;font-size:12px;line-height:1.5;color:var(--muted);font-weight:400; }
.tools-lab-note--gold { background-color:#1a1b12;background-image:url('/images/surface-grain.svg'); }
.tools-lab-note--gold strong { color:var(--gold); }
.tools-lab-note--gold p { font-size:13px;line-height:1.6;color:var(--muted);margin:8px 0 0; }
.tools-lab-note--gold .tools-feedback-link { display:inline-flex;align-items:center;justify-content:center;padding:14px 20px;min-height:48px;background:var(--gold);color:var(--black);border-radius:999px;font-weight:700;text-decoration:none;white-space:normal; }
.site-header { box-shadow: 0 12px 40px #00000020; }
.brand-wordmark { text-wrap: nowrap; }
.home-intro .presentation { box-shadow: inset 0 1px 0 #ffffff0b, 0 16px 52px #00000024; }
.home-intro .presentation p { letter-spacing: -.018em; }
.menu-card { position: relative; isolation: isolate; box-shadow: inset 0 1px 0 #ffffff30, 0 5px 0 #0000003b, 0 16px 28px #00000024; transition: transform var(--as-short) var(--as-ease), box-shadow var(--as-short) var(--as-ease); }
.menu-card strong { letter-spacing: -.028em; }
.menu-card::after { content: ''; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(130deg,#ffffff0e,transparent 55%); pointer-events: none; }
.menu-card:active { transform: translateY(2px); box-shadow: inset 0 1px 0 #ffffff16, 0 2px 0 #00000030; }
.milestone-card,.spot-card,.tool-card,.form-panel,.geo-map-button,.trace-preview-panel { box-shadow: inset 0 1px 0 #ffffff08, 0 12px 36px #00000020; }
.milestone-card,.tool-card,.geo-map-button { transition: transform 220ms var(--as-ease), box-shadow 220ms var(--as-ease), border-color 220ms var(--as-ease); }
.milestone-poster img,.spot-card img { transition: transform 440ms var(--as-ease); }
.main-nav a,.back-link,.tools-home-link { text-underline-offset: 6px; }
button,a,input,textarea,summary { -webkit-tap-highlight-color: transparent; }
:is(button,a,input,textarea,summary):focus-visible { outline: 2px solid var(--green); outline-offset: 5px; }
input,textarea { transition: border-color var(--as-short), box-shadow var(--as-short); }
input:focus,textarea:focus { box-shadow: 0 0 0 3px #79ff1314; }
details[open] > :not(summary) { animation: as-open 220ms var(--as-ease); }
.trace-option-panel:not([hidden]) { animation: as-open 220ms var(--as-ease); }
.as-appear { animation: as-appear 450ms var(--as-ease) both; }
.as-motion-paused,.as-motion-paused *,.as-motion-paused::before,.as-motion-paused::after { animation-play-state: paused !important; }
@keyframes as-open { from { opacity: .45; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@keyframes as-appear { from { opacity: .72; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media(hover:hover) and (pointer:fine) {
  .menu-card:hover { transform: translateY(-3px); box-shadow: inset 0 1px 0 #ffffff38,0 7px 0 #00000032,0 22px 36px #00000030; }
  .milestone-card:hover,.tool-card:hover { transform: perspective(1100px) rotateX(var(--as-rx,0deg)) rotateY(var(--as-ry,0deg)) translateY(-3px); box-shadow: inset 0 1px 0 #ffffff10,0 18px 44px #00000048; }
  .milestone-card:hover .milestone-poster img { transform: scale(1.025); }
  .geo-map-button:hover { transform: translateY(-2px); }
}
.as-lab-strip { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin:0 0 24px; padding:14px 0; border-bottom:1px solid var(--line); color:var(--muted); font-size:13px; }
.as-lab-strip strong { color:var(--gold); font-size:13px; font-weight:600; }
.as-lab-strip a { color:var(--muted); text-decoration:none; }
.as-catalog { margin:48px 0; }
.as-catalog-head { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:24px; }
.as-catalog-head h2 { margin:0; color:var(--white); font-size:clamp(23px,3vw,32px); letter-spacing:-.04em; }
.as-catalog-head span { color:var(--muted); font-size:13px; }
.as-resource-tree { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; }
.as-branch { position:relative; min-width:0; }
.as-branch-title { display:flex; align-items:center; gap:12px; font-size:14px; color:var(--green); margin:0 0 20px; font-weight:600; }
.as-branch-title::after { content:''; flex:1; height:1px; background:var(--line); }
.as-branch:nth-child(2) .as-branch-title { color:var(--gold); }
.as-branch:nth-child(3) .as-branch-title { color:var(--red); }
.as-branch-links { border-left:1px solid var(--line); margin-left:7px; padding-left:22px; }
.as-resource-link { display:block; position:relative; text-decoration:none; color:var(--white); padding:5px 0 20px; }
.as-resource-link::before { content:''; position:absolute; left:-23px; top:16px; width:15px; height:1px; background:var(--line); transition:background 180ms; }
.as-resource-link strong { display:block; font-size:17px; line-height:1.4; font-weight:600; letter-spacing:-.02em; }
.as-resource-link small { display:block; margin-top:5px; color:var(--muted); font-size:13px; line-height:1.5; max-width:30ch; }
.as-resource-link:hover strong,.as-resource-link:focus-visible strong { color:var(--green); }
.as-resource-link:hover::before { background:var(--green); }
.as-lab-archive { border-top:1px solid var(--line); margin:42px 0 28px; padding:20px 0; color:var(--muted); }
.as-lab-archive summary { color:var(--gold); cursor:pointer; width:fit-content; font-size:15px; }
.as-lab-archive nav { display:flex; flex-wrap:wrap; gap:20px; padding:24px 0 0; }
.as-lab-archive a { color:var(--muted); }
.as-resource-main { padding-top:32px; padding-bottom:72px; }
.as-resource-hero { max-width:720px; margin:34px 0 40px; }
.as-resource-kicker { color:var(--green); text-transform:uppercase; letter-spacing:.16em; font-size:12px; font-weight:600; }
.as-resource-hero h1 { font-size:clamp(32px,5vw,58px); line-height:1.06; letter-spacing:-.055em; color:var(--white); margin:16px 0 20px; text-wrap:balance; }
.as-resource-hero p { color:var(--muted); font-size:17px; line-height:1.65; max-width:55ch; }
.as-resource-actions { display:flex; flex-wrap:wrap; gap:12px; margin:24px 0; }
.as-action { appearance:none; display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:11px 20px; border-radius:999px; border:1px solid var(--line); background:transparent; color:var(--white); font:600 14px/1.4 Arial,sans-serif; text-decoration:none; cursor:pointer; transition:transform 180ms; }
.as-action-primary { background:var(--green); color:var(--black); border-color:var(--green); }
.as-action:active { transform:scale(.985); }
.as-mindmap { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; position:relative; padding-top:30px; margin:40px 0; border-top:1px solid var(--line); }
.as-mind-node { position:relative; }
.as-mind-node::before { content:''; position:absolute; left:0; top:-35px; width:9px;height:9px; border-radius:50%; background:var(--green); }
.as-mind-node:nth-child(2)::before { background:var(--gold); }
.as-mind-node:nth-child(3)::before { background:var(--red); }
.as-mind-node h2 { margin:0 0 12px; font-size:19px; color:var(--white); font-weight:600; letter-spacing:-.02em; }
.as-mind-node p { margin:0;color:var(--muted);font-size:15px;line-height:1.65; }
.as-worksheet { max-width:850px; margin-top:48px; }
.as-worksheet h2 { color:var(--white); font-size:26px; letter-spacing:-.035em; margin-bottom:8px; }
.as-worksheet-note { color:var(--muted); font-size:13px; line-height:1.5; }
.as-fields { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin:28px 0 20px; }
.as-fields label { display:block; color:var(--white); font-size:14px; line-height:1.5; }
.as-fields textarea { display:block; box-sizing:border-box; resize:vertical; width:100%; min-height:96px; margin-top:9px; border:1px solid var(--line); border-radius:12px; padding:13px; background:var(--panel); color:var(--white); font:16px/1.5 Arial,sans-serif; }
.as-example { color:var(--muted); border-left:2px solid var(--gold); padding:0 0 0 18px; margin:36px 0; max-width:72ch; line-height:1.7; font-size:14px; }
.as-resource-footnote { color:var(--muted); font-size:13px; line-height:1.6; max-width:80ch; }

.as-preview-result { border:1px solid var(--green); padding:20px; border-radius:14px; background:var(--panel); margin:20px 0; color:var(--white); line-height:1.6; }
.as-preview-result p { color:var(--muted); }
.as-preview-result a { display:inline-block; color:var(--green); padding:8px 0; }
.as-geo-fallback { margin:20px 0; border-top:1px solid var(--line); padding-top:16px; }
.as-geo-fallback summary { cursor:pointer;color:var(--green); }
.as-geo-fallback a { display:block;color:var(--green);padding:10px 0; }
@media(max-width:760px) {
 .as-resource-tree { grid-template-columns:1fr; gap:24px; }
 .as-branch-links { display:grid;grid-template-columns:1fr 1fr;gap:0 22px; }
 .as-mindmap { grid-template-columns:1fr;gap:28px;border-top:0;border-left:1px solid var(--line);padding:0 0 0 23px;margin-left:5px; }
 .as-mind-node::before { left:-28px;top:8px; }
 .as-resource-link strong { font-size:16px; }
 .as-catalog-head { align-items:flex-start; }
 
}
@media(max-width:440px) {
 .tools-page .brand { gap:8px; }
 .tools-page .brand-wordmark { font-size:clamp(9px,2.55vw,10px);letter-spacing:.04em; }
 .tools-top-nav { flex:0 0 auto; }
 .tools-top-nav .tools-home-link { max-width:74px;font-size:10px; }
 .as-fields { grid-template-columns:1fr;gap:18px; }
 .as-branch-links { grid-template-columns:1fr; }
 .as-resource-actions .as-action { width:100%; }
 .as-lab-strip { font-size:12px; }
 .main-nav { gap:12px; }
}
@media(prefers-reduced-motion:reduce) {
 *,*::before,*::after { animation:none !important;transition:none !important;scroll-behavior:auto !important; }
 .menu-card:hover,.milestone-card:hover,.tool-card:hover,.geo-map-button:hover { transform:none; }
}
@media print {
 .site-header,.site-footer,.as-resource-actions,.as-lab-strip,.as-example,.as-mindmap,.back-link { display:none !important; }
 body,.as-resource-main { background:white !important;color:black !important; }
 .as-resource-hero { margin:0 0 20px; }
 .as-resource-hero h1,.as-worksheet h2,.as-fields label { color:black !important; }
 .as-resource-hero p,.as-worksheet-note,.as-resource-footnote { color:#444 !important; }
 .as-fields textarea { background:white !important;color:black !important;border-color:#aaa !important;box-shadow:none !important;min-height:90px; }
 .as-fields label { break-inside:avoid; }
 .as-worksheet { margin-top:20px; }
}

/* Signature visuelle : les couleurs des réseaux restent celles de Vincent. */
.site-footer .footer-social-instagram { --social-color:var(--red);--social-ink:var(--white); }
.site-footer .footer-social-facebook { --social-color:var(--green);--social-ink:var(--black); }
.site-footer .footer-social-tiktok { --social-color:var(--gold);--social-ink:var(--black); }
.site-footer .footer-social:is(.footer-social-instagram,.footer-social-facebook,.footer-social-tiktok) { background-color:var(--social-color);border-color:var(--social-color);color:var(--social-ink);box-shadow:inset 0 1px 0 #ffffff30,0 5px 0 #0004; }
.site-footer .footer-social small { color:inherit;opacity:.8; }
.footer-social-facebook img,.footer-social-tiktok img { filter:brightness(0); }
.home-intro .presentation { border-color:#3c493a;box-shadow:inset 3px 0 var(--red),inset -3px 0 var(--green),0 24px 60px #0007; }
.tool-card { overflow:hidden; }
.tool-card--map { background-image:radial-gradient(ellipse at 90% 0%,#79ff131a,transparent 62%),url('/images/surface-grain.svg');border-color:#496139; }
.tool-card--map .tool-card-icon { filter:drop-shadow(5px 8px 0 #79ff131c);transform:rotate(-8deg); }
.tool-card--checklist { background-image:radial-gradient(ellipse at 10% 0%,#ff253418,transparent 62%),url('/images/surface-grain.svg'); }
.tool-card-action { transition:transform 220ms var(--as-ease); }
.tool-card:hover .tool-card-action { transform:translateX(4px); }
.as-guide-page .spot-guide-heading { position:relative;padding:26px 0 26px 24px;border-left:3px solid var(--red);background:radial-gradient(ellipse at left,#ff25340d,transparent 70%); }
.as-guide-page .spot-guide-heading h1 { max-width:20ch;color:var(--green);font-size:clamp(30px,4.6vw,54px);line-height:1.08;letter-spacing:-.045em;text-wrap:balance; }
.as-guide-page .spot-guide-heading p { max-width:64ch; }
.as-guide-page .spot-guide-layout { gap:clamp(24px,4vw,60px);align-items:center; }
.as-guide-page .guide-cover { overflow:visible;border:1px solid #f5f7f23a;border-left:7px solid #77212b;border-radius:8px 18px 18px 8px;box-shadow:5px 5px 0 #bbb7a6,9px 9px 0 #242823,0 30px 75px #000c;transform:perspective(1300px) rotateY(-7deg) rotateZ(-2deg);transition:transform 400ms var(--as-ease); }
.as-guide-page .guide-cover::before { content:'';position:absolute;inset:-30px;z-index:-1;border:1px solid #79ff1329;border-radius:50%;background:radial-gradient(ellipse,#79ff1310,transparent 68%);pointer-events:none; }
.as-guide-page .guide-cover img { height:auto;aspect-ratio:595/842;object-fit:contain;border-radius:0 16px 0 0; }
.as-guide-page .guide-cover figcaption { position:relative;padding:12px 16px;background:var(--green);color:var(--black);border-radius:0 0 16px 0;font-weight:800;text-align:center; }
.as-guide-page .form-panel { animation:none; border-top:3px solid var(--gold);background-image:radial-gradient(ellipse at top right,#e0b83f0b,transparent 70%),url('/images/surface-grain.svg');box-shadow:0 20px 65px #0007; }
.as-guide-page .form-kicker { color:var(--gold); }
.as-guide-page .form-submit { box-shadow:0 5px 0 #3c620f,0 12px 24px #79ff1315; }
/* Keep submit targets still while the visitor fills or approaches a form. */
form:hover .form-submit,
form:focus-within .form-submit,
.form-submit:hover,
.form-submit:focus-visible { animation:none; }
@media(hover:hover) and (pointer:fine) { .as-guide-page .guide-cover:hover { transform:perspective(1300px) rotateY(0) rotateZ(0) translateY(-4px); } }
@media(max-width:760px) { .as-guide-page .spot-guide-layout { gap:40px; }.as-guide-page .guide-cover { width:min(78%,350px);margin:0 auto;position:relative;top:0;transform:rotate(-2deg); }.as-guide-page .spot-guide-heading { padding-left:16px; } }
@media(prefers-reduced-motion:reduce) { .as-guide-page .guide-cover,.as-guide-page .guide-cover:hover { transform:none; } }

/* Les images restent visibles ; les liens de géolocalisation sont dans le PDF. */
.spot-guide-download-note {
  margin: 16px 0 10px;
  padding: 14px 16px;
  border-left: 3px solid #79FF13;
  border-radius: 0 12px 12px 0;
  background: #101411;
  color: #F5F7F2;
  font-size: .94rem;
  line-height: 1.55;
}
