/* Knocky, the Team Knocknock mascot -------------------------------------
   Poses come from site_knocky() in lib/site.php (uploads/media/knocky-*.webp).
   Motion stays small and switches off under prefers-reduced-motion. */
.mil-knocky{display:block;height:auto;max-width:100%}

/* Homepage hero: muted knock loop, the still as poster and reduced-motion fallback */
.mil-hero-img-frame .mil-hero-img .mil-hero-video,
.mil-hero-img-frame .mil-hero-img .mil-hero-still{width:100%;height:100%;position:absolute;top:0;left:0;object-fit:cover;object-position:70% bottom}
.mil-hero-img-frame .mil-hero-img .mil-hero-still{display:none}

/* Footer: Knocky waves next to "Opportunity knocks but once" */
.mil-footer-contact .mil-knocky-footer{width:150px;margin-left:auto;flex-shrink:0;transform-origin:50% 100%}
.mil-footer-contact:hover .mil-knocky-footer{animation:mil-knocky-bob .9s ease-in-out 2}
@media (max-width:768px){.mil-footer-contact .mil-knocky-footer{width:110px;margin-left:0}}

/* Call to action: Knocky knocks on the picture next to the text ("the door") */
.mil-has-knocky .mil-knocky-cta{position:absolute;right:3%;bottom:48px;width:160px;z-index:3;pointer-events:none}
@media (max-width:992px){.mil-has-knocky .mil-knocky-cta{display:none}}

/* 404 and Influencer Lab application success */
.mil-knocky-404{width:220px;margin:0 auto}
.mil-knocky-apply{width:160px;margin:0 auto 20px}

/* Form thank-you (?sent=contact|newsletter) */
.mil-knocky-toast{position:fixed;right:24px;top:104px;z-index:9999990;display:flex;align-items:center;gap:14px;max-width:min(440px,calc(100vw - 48px));padding:14px 44px 14px 14px;background:#fff;border-radius:18px;box-shadow:0 18px 50px rgba(30,30,50,.28);color:#1E1E32;font-family:var(--font-primary),sans-serif;animation:mil-knocky-toast-in .45s cubic-bezier(0,0,.3642,1) both,mil-knocky-toast-out .4s ease-in 10s forwards}
.mil-knocky-toast .mil-knocky{width:84px;flex-shrink:0}
.mil-knocky-toast-text{display:flex;flex-direction:column;gap:4px;font-size:14px;line-height:1.45;color:#5a5a6a}
.mil-knocky-toast-text strong{font-size:16px;font-weight:600;color:#1E1E32}
.mil-knocky-toast-close{position:absolute;top:8px;right:10px;width:30px;height:30px;border:0;border-radius:50%;background:transparent;color:#1E1E32;font-size:22px;line-height:1;cursor:pointer}
.mil-knocky-toast-close:hover{background:rgba(30,30,50,.08)}
@media (max-width:768px){.mil-knocky-toast{left:12px;right:12px;top:84px;max-width:none}}

/* Market-entry pages: AI-labelled scene with Knocky (templates/enter-market.php) */
.mil-ep-knocky-row{display:grid;grid-template-columns:minmax(0,400px) minmax(0,1fr);gap:clamp(32px,6vw,90px);align-items:center;max-width:1040px;margin:0 auto}
.mil-ep-knocky-fig{margin:0}
.mil-ep-knocky-fig img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 40%;border-radius:22px;box-shadow:0 24px 60px rgba(30,30,50,.18)}
.mil-ep-knocky-fig figcaption{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:13px;line-height:1.45;color:#7a7a7a}
.mil-ep-ai-badge{flex-shrink:0;font:700 10px/1 var(--font-primary),sans-serif;letter-spacing:.08em;color:#fff;background:#1E1E32;padding:5px 7px;border-radius:5px}
.mil-ep-knocky-text .mil-ep-lead{margin:18px 0 0}
.mil-ep-knocky-text .mil-stylized{margin-bottom:14px}
@media (max-width:768px){.mil-ep-knocky-row{grid-template-columns:1fr}.mil-ep-knocky-fig{max-width:320px;margin:0 auto}.mil-ep-knocky-text{text-align:center}}

/* About: Meet the Knockers (lib/blocks/knockers.php) */
.mil-knockers-head{text-align:center;margin-bottom:50px}
.mil-knockers-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:28px}
.mil-knockers-card{margin:0;width:calc(25% - 21px);min-width:200px;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 14px 40px rgba(30,30,50,.08);transition:transform .35s cubic-bezier(0,0,.3642,1)}
.mil-knockers-card img{display:block;width:100%;height:auto}
.mil-knockers-card figcaption{display:flex;flex-direction:column;gap:4px;padding:6px 20px 22px;text-align:center}
.mil-knockers-card figcaption strong{font-family:var(--font-secondary),sans-serif;font-weight:400;font-size:20px;letter-spacing:.02em;color:#1E1E32;text-transform:uppercase}
.mil-knockers-card figcaption span{font-size:14px;color:#D82549}
.mil-knockers-card:hover{transform:translateY(-4px)}
@media (max-width:768px){.mil-knockers-grid{gap:16px}.mil-knockers-card{width:calc(50% - 8px);min-width:0}.mil-knockers-card figcaption{padding:4px 10px 16px}.mil-knockers-card figcaption strong{font-size:16px}.mil-knockers-card figcaption span{font-size:12px}}

/* Knocky waving beside the floating WhatsApp button (desktop only) */
.mil-floating-actions .mil-knocky-fab{position:absolute;right:58px;top:-14px;width:76px;max-width:none;pointer-events:none;transform-origin:80% 100%}
.mil-floating-actions:hover .mil-knocky-fab{animation:mil-knocky-bob .9s ease-in-out 2}
@media (max-width:992px){.mil-floating-actions .mil-knocky-fab{display:none}}

/* Influencer Lab: Knocky in the studio */
.mil-lab-knocky-lead{max-width:640px;margin:0 auto}
.mil-lab-knocky-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:960px;margin:0 auto}
.mil-lab-knocky-grid figure{margin:0;border-radius:22px;overflow:hidden;aspect-ratio:9/16;background:#1E1E32;box-shadow:0 18px 50px rgba(30,30,50,.16)}
.mil-lab-knocky-grid video,.mil-lab-knocky-grid img{display:block;width:100%;height:100%;object-fit:cover}
.mil-lab-knocky-note{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:22px;font-size:13px;color:#7a7a7a;text-align:center}
@media (max-width:768px){.mil-lab-knocky-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.mil-lab-knocky-grid figure{border-radius:14px}.mil-lab-knocky-note{align-items:flex-start;text-align:left}}

/* Contact page: Google map loads only on request (lib/blocks/basic.php) */
.mil-map-load{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:100%;border:0;background:#1E1E32;color:#fff;font:500 16px/1.4 var(--font-primary),sans-serif;cursor:pointer;z-index:2}
.mil-map-load i{font-size:34px;color:#E52E51}
.mil-map-load small{max-width:300px;font-size:12px;color:rgba(255,255,255,.65);text-align:center}
.mil-map-load:hover span{text-decoration:underline}

@keyframes mil-knocky-bob{0%,100%{transform:translateY(0) rotate(0)}30%{transform:translateY(-3px) rotate(-4deg)}60%{transform:translateY(-1px) rotate(3deg)}}
@keyframes mil-knocky-toast-in{from{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:none}}
@keyframes mil-knocky-toast-out{to{opacity:0;visibility:hidden;transform:translateY(-12px)}}

@media (prefers-reduced-motion:reduce){
  .mil-hero-img-frame .mil-hero-img .mil-hero-video{display:none}
  .mil-hero-img-frame .mil-hero-img .mil-hero-still{display:block}
  .mil-footer-contact:hover .mil-knocky-footer,.mil-floating-actions:hover .mil-knocky-fab{animation:none}
  .mil-knockers-card,.mil-knockers-card:hover{transition:none;transform:none}
  .mil-lab-knocky-grid video{display:none}
  .mil-lab-knocky-grid figure{background-size:cover;background-position:center}
  .mil-knocky-toast{animation:mil-knocky-toast-out .01s linear 12s forwards}
}
