/* Shared enhancements for the Freemi marketing site (mobile nav). */
.fh-burger{display:none;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid rgba(23,20,15,0.12);border-radius:11px;background:#fff;cursor:pointer;color:#17140F;flex:none;padding:0}
.fh-burger svg{width:21px;height:21px}

.fh-mobile-menu{position:fixed;inset:0;z-index:200;background:rgba(247,245,241,0.98);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;flex-direction:column;padding:20px 24px 32px;opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity .2s ease,transform .2s ease;font-family:'Hanken Grotesk',system-ui,sans-serif}
.fh-mobile-menu.open{opacity:1;transform:none;pointer-events:auto}
.fh-mm-head{display:flex;align-items:center;justify-content:space-between;height:70px;margin-bottom:8px}
.fh-mm-brand{display:flex;align-items:center;gap:11px;font-size:20px;font-weight:700;letter-spacing:-0.02em;color:#17140F}
.fh-mm-mark{width:34px;height:34px;border-radius:10px;background:linear-gradient(155deg,#2E7A5C,#1C4E3D);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px rgba(28,78,61,0.38)}
.fh-mm-mark span{width:11px;height:11px;border-radius:50%;background:rgba(255,255,255,0.92)}
.fh-mm-close{width:42px;height:42px;border:1px solid rgba(23,20,15,0.12);border-radius:11px;background:#fff;cursor:pointer;font-size:24px;line-height:1;color:#17140F;display:flex;align-items:center;justify-content:center}
.fh-mobile-menu a{font-size:19px;font-weight:600;color:#17140F;text-decoration:none;padding:15px 4px;border-bottom:1px solid rgba(23,20,15,0.07)}
.fh-mobile-menu a.fh-cta{margin-top:18px;border:none;background:linear-gradient(155deg,#2E7A5C,#1C4E3D);color:#F7F5F1;border-radius:12px;text-align:center;padding:16px;box-shadow:0 6px 20px rgba(28,78,61,0.26)}
.fh-mobile-menu a.fh-ghost{margin-top:10px;border:1px solid rgba(23,20,15,0.14);border-radius:12px;text-align:center;padding:15px;color:#17140F}

@media (max-width:920px){
  .nav-links{display:none !important}
  nav[style*="gap:34px"]{display:none !important}
  .fh-actions a{display:none !important}
  .fh-burger{display:inline-flex}
}
@media (min-width:921px){ .fh-mobile-menu{display:none !important} }

/* ---- Freemi AI-agent mascot (body + blinking eye + waving arms + legs) ---- */
.fmi{position:relative;width:var(--s,64px);height:var(--s,64px);flex:none;display:inline-block}
.fmi .body{position:absolute;inset:0;border-radius:calc(var(--s,64px)*.31);background:linear-gradient(155deg,#2E7A5C,#1C4E3D);box-shadow:0 8px 22px rgba(28,78,61,.32);display:flex;align-items:center;justify-content:center}
.fmi .eye{width:calc(var(--s,64px)*.28);height:calc(var(--s,64px)*.28);border-radius:50%;background:rgba(255,255,255,.92);animation:fmiBlink 4.5s infinite}
.fmi .arm{position:absolute;width:calc(var(--s,64px)*.095);height:calc(var(--s,64px)*.25);background:#1C4E3D;border-radius:99px;top:calc(var(--s,64px)*.44);animation:fmiWave 3s ease-in-out infinite}
.fmi .arm-l{left:calc(var(--s,64px)*-.06);transform-origin:top center}
.fmi .arm-r{right:calc(var(--s,64px)*-.06);transform-origin:top center;animation-delay:.35s}
.fmi .leg{position:absolute;width:calc(var(--s,64px)*.095);height:calc(var(--s,64px)*.19);background:#1C4E3D;border-radius:99px;bottom:calc(var(--s,64px)*-.16)}
.fmi .leg-l{left:calc(var(--s,64px)*.31)}.fmi .leg-r{right:calc(var(--s,64px)*.31)}
@keyframes fmiBlink{0%,42%,58%,100%{transform:scaleY(1)}50%{transform:scaleY(.08)}}
@keyframes fmiWave{0%,100%{transform:rotate(0)}25%{transform:rotate(-16deg)}75%{transform:rotate(12deg)}}

/* inverted variant for placing the character on a dark/green surface */
.fmi.inv .body{background:linear-gradient(155deg,#FFFFFF,#EFEDE4)}
.fmi.inv .eye{background:#1C4E3D}
.fmi.inv .arm,.fmi.inv .leg{background:#F4F1E8;box-shadow:0 0 0 1px rgba(28,78,61,.3) inset}

/* in-module character: sits in the top-right corner of a card */
.fmi-corner{position:absolute;top:-15px;right:18px;z-index:3}

/* floating launcher + greeting bubble + popover */
#fmi-agent{position:fixed;right:22px;bottom:22px;z-index:300;font-family:'Hanken Grotesk',system-ui,sans-serif}
#fmi-agent .fmi{cursor:pointer;transition:transform .2s}
#fmi-agent .fmi:hover{transform:translateY(-2px) scale(1.04)}
#fmi-bubble{position:absolute;bottom:78px;right:0;background:#fff;color:#1C4E3D;padding:9px 14px;border-radius:14px;font-size:13.5px;font-weight:600;white-space:nowrap;box-shadow:0 6px 22px rgba(23,20,15,.14);border:1px solid rgba(28,78,61,.14);opacity:0;transform:translateY(6px);animation:fmiBubbleIn .45s 1.3s forwards;cursor:pointer}
#fmi-bubble::after{content:"";position:absolute;bottom:-6px;right:24px;width:11px;height:11px;background:#fff;transform:rotate(45deg);border-right:1px solid rgba(28,78,61,.14);border-bottom:1px solid rgba(28,78,61,.14)}
@keyframes fmiBubbleIn{to{opacity:1;transform:none}}
#fmi-pop{position:fixed;right:22px;bottom:104px;z-index:301;width:308px;max-width:calc(100vw - 32px);background:#fff;border:1px solid rgba(23,20,15,.1);border-radius:18px;box-shadow:0 24px 60px -20px rgba(23,20,15,.34);overflow:hidden;display:none;font-family:'Hanken Grotesk',system-ui,sans-serif}
#fmi-pop.open{display:block;animation:fmiSlideUp .22s ease}
@keyframes fmiSlideUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
#fmi-pop .fhead{background:#15241D;color:#fff;padding:15px 16px;display:flex;align-items:center;gap:11px}
#fmi-pop .fhead .info strong{display:block;font-size:15px;letter-spacing:-.01em}
#fmi-pop .fhead .info small{opacity:.72;font-size:12px}
#fmi-pop .fhead .fclose{margin-left:auto;background:none;border:none;color:#fff;font-size:21px;line-height:1;cursor:pointer;opacity:.8}
#fmi-pop .fbody{padding:15px 16px;display:flex;flex-direction:column;gap:9px}
#fmi-pop .fbody p{margin:0 0 4px;font-size:13.5px;line-height:1.5;color:#3a4f47}
#fmi-pop .fbody a{display:flex;align-items:center;justify-content:space-between;text-decoration:none;font-size:14px;font-weight:600;padding:11px 13px;border-radius:11px;border:1px solid rgba(23,20,15,.1);color:#17140F}
#fmi-pop .fbody a:hover{opacity:1;border-color:rgba(28,78,61,.4)}
#fmi-pop .fbody a.primary{background:linear-gradient(155deg,#2E7A5C,#1C4E3D);color:#F7F5F1;border:none;box-shadow:0 6px 18px rgba(28,78,61,.26)}
@media (max-width:560px){ .fmi-corner{--s:40px;top:-12px;right:12px} }

/* Accessibility: visible keyboard focus + honour reduced-motion */
a:focus-visible, button:focus-visible, .fh-burger:focus-visible, .fh-mm-close:focus-visible{ outline:2px solid #1C4E3D; outline-offset:3px; border-radius:6px }
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important }
}

/* Imagery bands (added 2026-06-22) — editorial property gallery rows */
.imgband { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.imgband figure { margin:0; position:relative; border-radius:18px; overflow:hidden; aspect-ratio:4/5; border:1px solid rgba(23,20,15,0.08); box-shadow:0 26px 50px -30px rgba(23,20,15,0.34); background:#e8e2d6; transition:transform .25s ease, box-shadow .25s ease; }
.imgband figure:hover { transform:translateY(-4px); box-shadow:0 36px 60px -28px rgba(23,20,15,0.42); }
.imgband figure img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s cubic-bezier(.2,.7,.2,1); }
.imgband figure:hover img { transform:scale(1.06); }
.imgband figcaption { position:absolute; left:0; right:0; bottom:0; padding:14px 15px; background:linear-gradient(to top, rgba(23,20,15,0.76), rgba(23,20,15,0) 94%); color:#fff; display:flex; align-items:flex-end; justify-content:space-between; gap:10px; }
@media (max-width:760px){ .imgband { grid-template-columns:repeat(2,1fr) !important; } }
