/* JMF Visual Tour V3 — full-height hero + matched information panel */
@media (min-width:901px){
 .jmf-header .jmf-nav{display:none!important}
 .jmf-header .jmf-header-actions{display:flex!important;align-items:center!important;gap:14px!important;margin-left:auto!important}
 .jmf-desktop-menu-btn{display:inline-flex!important;width:48px!important;height:48px!important;border:0!important;background:transparent!important;align-items:center!important;justify-content:center!important;cursor:pointer!important;padding:7px!important;border-radius:10px!important;flex-direction:column!important}
 .jmf-desktop-menu-btn span{display:block!important;width:30px!important;height:4px!important;background:#071f43!important;border-radius:3px!important;margin:3px 0!important}
 .jmf-desktop-menu-btn:hover{background:#eef3f9!important}
 .jmf-desktop-drawer{position:fixed;top:var(--jmf-header-height,80px);right:20px;width:min(390px,calc(100vw - 40px));max-height:calc(100vh - 110px);overflow:auto;background:#fff;border:2px solid #d7192f;border-radius:18px;box-shadow:0 22px 50px rgba(3,24,52,.25);z-index:10050;padding:16px;display:none}
 .jmf-desktop-drawer.open{display:block}
 .jmf-desktop-drawer a{display:block;color:#071f43;text-decoration:none;font-weight:850;font-size:17px;padding:13px 15px;border-bottom:1px solid #e8edf4;border-radius:8px}
 .jmf-desktop-drawer a:hover{background:#f3f7fb;color:#d7192f}
}
@media(max-width:900px){.jmf-desktop-menu-btn,.jmf-desktop-drawer{display:none!important}}
.jmf-tour{--tour-hero-height:calc(100svh - var(--jmf-header-height,80px));position:relative;background:#f3f6fa;overflow:hidden}
.jmf-tour-viewport{overflow:hidden;width:100%}
.jmf-tour-track{display:flex;align-items:stretch;transition:transform .55s cubic-bezier(.22,.61,.36,1);will-change:transform}
.jmf-tour-slide{min-width:100%;position:relative;background:#f3f6fa;align-self:stretch}
.jmf-tour-hero{position:relative;height:var(--tour-hero-height);min-height:650px;max-height:920px;overflow:hidden;background:#071f43}
.jmf-tour-hero picture,.jmf-tour-hero img{display:block;width:100%;height:100%}
.jmf-tour-hero img{object-fit:cover;object-position:center}
.jmf-tour-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,24,52,.28) 0%,rgba(3,24,52,.10) 42%,rgba(3,24,52,.01) 78%);pointer-events:none}
.jmf-tour-arrow{position:absolute;z-index:8;top:min(calc(var(--tour-hero-height)/2),460px);transform:translateY(-50%);width:54px;height:54px;border:0;border-radius:50%;background:#071f43;color:#fff;font-size:34px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 22px rgba(0,0,0,.25)}
.jmf-tour-arrow:hover{background:#d7192f}.jmf-tour-prev{left:18px}.jmf-tour-next{right:18px}
.jmf-tour-dots{position:absolute;z-index:9;top:min(calc(var(--tour-hero-height) - 52px),868px);left:50%;transform:translateX(-50%);display:flex;gap:10px;padding:8px 12px;background:rgba(3,24,52,.76);border-radius:999px}
.jmf-tour-dot{width:12px;height:12px;border:2px solid #fff;border-radius:50%;background:transparent;padding:0;cursor:pointer}.jmf-tour-dot.active{background:#d7192f;border-color:#fff}
.jmf-tour-info-kicker{color:#d7192f;font-weight:950;letter-spacing:.15em;text-transform:uppercase;font-size:13px;margin-bottom:12px}
.jmf-tour-detail{display:block;width:100%;background:#f3f6fa;padding:42px 0 72px;min-height:300px}
.jmf-tour-detail-inner{width:min(1180px,calc(100% - 64px));margin:0 auto;background:#fff;border:1px solid #d9e0ea;border-radius:24px;box-shadow:0 16px 40px rgba(7,31,67,.10);display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;padding:38px 44px}
.jmf-tour-detail h2{font-family:Georgia,'Times New Roman',serif;color:#071f43;font-size:clamp(36px,3.5vw,56px);line-height:1.02;margin:0}
.jmf-tour-detail p{font-size:18px;line-height:1.62;color:#3e4a60;margin:0 0 14px}
.jmf-tour-learn{display:inline-flex;align-items:center;gap:12px;margin-top:8px;background:#075dcc;color:#fff!important;text-decoration:none;font-weight:900;text-transform:uppercase;letter-spacing:.04em;border-radius:7px;padding:14px 22px;box-shadow:0 8px 20px rgba(0,0,0,.15)}
.jmf-tour-learn:hover{background:#064fab;transform:translateY(-1px)}
@media(max-width:900px){
 .jmf-tour{--tour-hero-height:calc(100svh - var(--header-total-height,112px))}
 .jmf-tour-hero{min-height:560px;max-height:780px}
 .jmf-tour-shade{background:linear-gradient(180deg,rgba(3,24,52,.08),rgba(3,24,52,.28))}
 .jmf-tour-arrow{top:calc(var(--tour-hero-height)/2);width:42px;height:42px;font-size:27px}.jmf-tour-prev{left:6px}.jmf-tour-next{right:6px}
 .jmf-tour-dots{top:calc(var(--tour-hero-height) - 42px);gap:7px;padding:7px 10px}.jmf-tour-dot{width:9px;height:9px}
 .jmf-tour-detail{padding:22px 0 48px;min-height:0}
 .jmf-tour-detail-inner{width:calc(100% - 24px);display:block;padding:26px 24px;border-radius:18px}
 .jmf-tour-detail h2{font-size:36px;margin-bottom:18px}.jmf-tour-detail p{font-size:16px;line-height:1.55}
 .jmf-tour-learn{padding:12px 17px;font-size:13px}
}
@media(prefers-reduced-motion:reduce){.jmf-tour-track{transition:none}}

/* V4 refinement: information cards live inside each hero; opening slide stays clean. */
.jmf-tour-slide[data-slide="premium"] .jmf-tour-detail{
  display:none!important;
}
.jmf-tour-slide:not([data-slide="premium"]) .jmf-tour-detail{
  position:absolute!important;
  z-index:7!important;
  top:clamp(54px,9vh,104px)!important;
  left:clamp(58px,7vw,128px)!important;
  width:min(570px,calc(100% - 150px))!important;
  min-height:0!important;
  padding:0!important;
  background:transparent!important;
}
.jmf-tour-slide:not([data-slide="premium"]) .jmf-tour-detail-inner{
  width:100%!important;
  margin:0!important;
  display:block!important;
  padding:30px 34px 28px!important;
  border:1px solid rgba(7,31,67,.14)!important;
  border-radius:20px!important;
  background:rgba(255,255,255,.96)!important;
  box-shadow:0 18px 44px rgba(3,24,52,.24)!important;
  backdrop-filter:blur(6px)!important;
  -webkit-backdrop-filter:blur(6px)!important;
}
.jmf-tour-slide:not([data-slide="premium"]) .jmf-tour-detail h2{
  font-size:clamp(34px,3.2vw,52px)!important;
  margin:0 0 18px!important;
}
.jmf-tour-slide:not([data-slide="premium"]) .jmf-tour-detail p{
  font-size:16px!important;
  line-height:1.52!important;
  margin:0 0 12px!important;
}
.jmf-tour-slide:not([data-slide="premium"]) .jmf-tour-learn{
  margin-top:10px!important;
}
@media(max-width:900px){
  .jmf-tour-slide:not([data-slide="premium"]) .jmf-tour-detail{
    top:22px!important;
    left:16px!important;
    width:calc(100% - 32px)!important;
  }
  .jmf-tour-slide:not([data-slide="premium"]) .jmf-tour-detail-inner{
    padding:20px 20px 18px!important;
    border-radius:16px!important;
    background:rgba(255,255,255,.94)!important;
  }
  .jmf-tour-slide:not([data-slide="premium"]) .jmf-tour-info-kicker{
    font-size:11px!important;
    margin-bottom:7px!important;
  }
  .jmf-tour-slide:not([data-slide="premium"]) .jmf-tour-detail h2{
    font-size:clamp(29px,9vw,38px)!important;
    margin:0 0 10px!important;
  }
  .jmf-tour-slide:not([data-slide="premium"]) .jmf-tour-detail p{
    font-size:14px!important;
    line-height:1.42!important;
    margin:0 0 9px!important;
  }
  .jmf-tour-slide:not([data-slide="premium"]) .jmf-tour-learn{
    padding:11px 15px!important;
    font-size:12px!important;
    margin-top:5px!important;
  }
}

/* V5: each hero travels with its own scroll-down information section. */
.jmf-tour{
  --tour-hero-height:clamp(590px,calc(88svh - var(--jmf-header-height,80px)),800px);
  overflow:hidden;
}
.jmf-tour-slide{
  display:flex;
  flex-direction:column;
  min-width:100%;
}
.jmf-tour-hero{
  flex:0 0 var(--tour-hero-height);
  height:var(--tour-hero-height);
  min-height:0;
  max-height:none;
}
.jmf-tour-lower{
  flex:0 0 auto;
  width:100%;
  background:linear-gradient(180deg,#f5f7fb 0%,#ffffff 100%);
  padding:38px 24px 54px;
  border-top:1px solid #dce3ed;
}
.jmf-tour-lower-inner{
  width:min(1180px,100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:44px;
  background:#fff;
  border:1px solid #d9e1ec;
  border-radius:22px;
  box-shadow:0 14px 36px rgba(7,31,67,.09);
  padding:32px 38px;
}
.jmf-tour-lower-kicker{
  color:#d7192f;
  font-size:13px;
  line-height:1;
  letter-spacing:.14em;
  font-weight:950;
  text-transform:uppercase;
  margin-bottom:10px;
}
.jmf-tour-lower h2{
  color:#071f43;
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(30px,3vw,46px);
  line-height:1.08;
  margin:0 0 14px;
}
.jmf-tour-lower p{
  color:#465268;
  font-size:17px;
  line-height:1.58;
  max-width:880px;
  margin:0 0 10px;
}
.jmf-tour-lower-action{padding-bottom:3px;white-space:nowrap}
.jmf-tour-lower-link{margin:0!important}
/* A visible strip of the matched section should invite downward scrolling. */
.jmf-tour-dots{
  top:calc(var(--tour-hero-height) - 50px);
}
.jmf-tour-arrow{
  top:calc(var(--tour-hero-height)/2);
}
@media(max-width:900px){
  .jmf-tour{
    --tour-hero-height:clamp(500px,calc(84svh - var(--header-total-height,112px)),690px);
  }
  .jmf-tour-lower{padding:22px 12px 36px}
  .jmf-tour-lower-inner{
    display:block;
    padding:24px 22px;
    border-radius:18px;
  }
  .jmf-tour-lower h2{font-size:30px}
  .jmf-tour-lower p{font-size:15px;line-height:1.5}
  .jmf-tour-lower-action{margin-top:18px}
  .jmf-tour-dots{top:calc(var(--tour-hero-height) - 42px)}
}

/* V6: the complete lower page follows the active hero. */
.jmf-home-static{display:none}
body[data-jmf-tour-slide="premium"] .jmf-home-static{display:block}
/* The opening slide keeps the established homepage below it; topic slides use only their matched lower section. */
.jmf-tour-slide[data-slide="premium"]{background:#fff}
.jmf-tour-slide:not([data-slide="premium"]) .jmf-tour-lower-inner{
  grid-template-columns:minmax(0,1fr)!important;
  align-items:start!important;
}
.jmf-tour-slide:not([data-slide="premium"]) .jmf-tour-lower-copy{max-width:980px}
/* Learn More appears only in the hero card, never a second time below. */
.jmf-tour-lower-action,.jmf-tour-lower-link{display:none!important}

/* V7: remove opening-slide gap and compact every hero so the matched lower content
   and page footer are visible sooner. Desktop/mobile visual content is unchanged. */
.jmf-tour-track{
  align-items:flex-start!important;
}
.jmf-tour-slide{
  align-self:flex-start!important;
  height:auto!important;
}
.jmf-tour-viewport{
  transition:height .35s ease;
}
/* One consistent, slightly shorter hero height for the opening and topic slides. */
.jmf-tour{
  --tour-hero-height:clamp(430px,52svh,560px)!important;
}
.jmf-tour-hero{
  height:var(--tour-hero-height)!important;
  min-height:0!important;
  max-height:none!important;
  flex-basis:var(--tour-hero-height)!important;
}
/* Compact the matched topic information section so the next page area/footer
   enters the viewport without a large scroll. */
.jmf-tour-lower{
  padding:20px 24px 26px!important;
}
.jmf-tour-lower-inner{
  padding:22px 30px!important;
  border-radius:18px!important;
  box-shadow:0 10px 26px rgba(7,31,67,.08)!important;
}
.jmf-tour-lower-kicker{margin-bottom:7px!important}
.jmf-tour-lower h2{
  font-size:clamp(28px,2.45vw,40px)!important;
  margin-bottom:9px!important;
}
.jmf-tour-lower p{
  font-size:16px!important;
  line-height:1.45!important;
  margin-bottom:7px!important;
}
.jmf-tour-dots{top:calc(var(--tour-hero-height) - 44px)!important}
.jmf-tour-arrow{top:calc(var(--tour-hero-height)/2)!important}
/* Opening slide has no lower topic panel; its normal homepage content must begin
   immediately at the bottom edge of the hero. */
.jmf-tour-slide[data-slide="premium"]{
  min-height:var(--tour-hero-height)!important;
  padding-bottom:0!important;
  margin-bottom:0!important;
}
body[data-jmf-tour-slide="premium"] .jmf-tour{
  margin-bottom:0!important;
  padding-bottom:0!important;
}
body[data-jmf-tour-slide="premium"] .jmf-home-static{
  margin-top:0!important;
  padding-top:0!important;
}
@media(max-width:900px){
  .jmf-tour{
    --tour-hero-height:clamp(410px,58svh,560px)!important;
  }
  .jmf-tour-lower{padding:14px 10px 20px!important}
  .jmf-tour-lower-inner{padding:18px 18px!important;border-radius:16px!important}
  .jmf-tour-lower h2{font-size:28px!important;margin-bottom:8px!important}
  .jmf-tour-lower p{font-size:14px!important;line-height:1.42!important}
  .jmf-tour-dots{top:calc(var(--tour-hero-height) - 38px)!important}
}


/* V8: preserve the dramatic opening hero, center topic cards, and isolate homepage-only content. */
/* Topic slides retain the compact V7 height. */
body:not([data-jmf-tour-slide="premium"]) .jmf-tour{
  --tour-hero-height:clamp(430px,52svh,560px)!important;
}
/* The opening Premium Inks slide returns to the larger presentation height. */
body[data-jmf-tour-slide="premium"] .jmf-tour{
  --tour-hero-height:clamp(620px,calc(88svh - var(--jmf-header-height,80px)),820px)!important;
}
/* Center every non-home information card vertically inside its hero. */
.jmf-tour-slide:not([data-slide="premium"]) .jmf-tour-detail{
  top:calc(var(--tour-hero-height)/2)!important;
  transform:translateY(-50%)!important;
}
/* Homepage-only content is a single controlled block and never follows topic slides. */
.jmf-home-static{
  display:none!important;
  margin:0!important;
  padding:0!important;
}
body[data-jmf-tour-slide="premium"] .jmf-home-static{
  display:block!important;
  margin:0!important;
  padding:0!important;
}
body[data-jmf-tour-slide="premium"] .jmf-home-static > :first-child{
  margin-top:0!important;
}
/* Keep topic content naturally followed by the footer; no forced viewport compression. */
.jmf-tour-slide:not([data-slide="premium"]) .jmf-tour-lower{
  padding-bottom:38px!important;
}
@media(max-width:900px){
  body[data-jmf-tour-slide="premium"] .jmf-tour{
    --tour-hero-height:clamp(560px,calc(88svh - var(--header-total-height,112px)),760px)!important;
  }
  body:not([data-jmf-tour-slide="premium"]) .jmf-tour{
    --tour-hero-height:clamp(410px,58svh,560px)!important;
  }
  .jmf-tour-slide:not([data-slide="premium"]) .jmf-tour-detail{
    top:calc(var(--tour-hero-height)/2)!important;
    transform:translateY(-50%)!important;
  }
}

/* V9: preserve the complete opening hero, compact topic cards, synchronize arrows,
   and strictly isolate homepage-only lower content. */
@media (min-width:901px){
  /* Match the approved wide hero asset's natural aspect ratio so the bottom pails
     remain visible instead of being cropped. */
  body[data-jmf-tour-slide="premium"] .jmf-tour{
    --tour-hero-height:clamp(500px,42.32vw,820px)!important;
  }
  .jmf-tour-slide[data-slide="premium"] .jmf-tour-hero img{
    object-fit:contain!important;
    object-position:center center!important;
    background:#fff!important;
  }

  /* Keep arrows at one constant screen location across every panel. */
  .jmf-tour-arrow{
    top:calc(clamp(430px,52svh,560px)/2)!important;
  }

  /* Smaller, balanced topic cards with consistent visual proportions. */
  .jmf-tour-slide:not([data-slide="premium"]) .jmf-tour-detail{
    left:clamp(42px,6vw,112px)!important;
    width:min(500px,calc(100% - 130px))!important;
    top:calc(var(--tour-hero-height)/2)!important;
    transform:translateY(-50%)!important;
  }
  .jmf-tour-slide:not([data-slide="premium"]) .jmf-tour-detail-inner{
    padding:23px 27px 22px!important;
    border-radius:18px!important;
  }
  .jmf-tour-slide:not([data-slide="premium"]) .jmf-tour-info-kicker{
    font-size:11px!important;
    margin-bottom:8px!important;
  }
  .jmf-tour-slide:not([data-slide="premium"]) .jmf-tour-detail h2{
    font-size:clamp(30px,2.65vw,43px)!important;
    line-height:1.02!important;
    margin:0 0 12px!important;
  }
  .jmf-tour-slide:not([data-slide="premium"]) .jmf-tour-detail p{
    font-size:14px!important;
    line-height:1.43!important;
    margin:0 0 9px!important;
  }
  .jmf-tour-slide:not([data-slide="premium"]) .jmf-tour-learn{
    padding:12px 18px!important;
    font-size:13px!important;
    margin-top:5px!important;
  }
}

/* This block contains only the original homepage lower sections. */
.jmf-home-static{display:none!important;margin:0!important;padding:0!important;}
body[data-jmf-tour-slide="premium"] .jmf-home-static{display:block!important;}

/* V10: restore the user-approved homepage hero and add one consistent topic gap. */
@media (min-width:901px){
  /* The approved hero is 1904×873. Preserve that complete frame so all pails remain visible. */
  body[data-jmf-tour-slide="premium"] .jmf-tour{
    --tour-hero-height:clamp(500px,45.85vw,873px)!important;
  }
  .jmf-tour-slide[data-slide="premium"] .jmf-tour-hero img{
    object-fit:contain!important;
    object-position:center center!important;
    background:#fff!important;
  }
  /* A restrained, identical separation for every topic slide; never on the homepage. */
  .jmf-tour-slide:not([data-slide="premium"]) .jmf-tour-lower{
    margin-top:18px!important;
  }
}
@media (max-width:900px){
  .jmf-tour-slide:not([data-slide="premium"]) .jmf-tour-lower{
    margin-top:12px!important;
  }
}

/* V11: position the footer just below the initial desktop viewport on topic slides.
   Homepage remains unchanged. */
@media (min-width:901px){
  body:not([data-jmf-tour-slide="premium"]) .jmf-tour-slide:not([data-slide="premium"]){
    min-height:calc(100svh - var(--jmf-header-height,76px) - 18px)!important;
  }
  body:not([data-jmf-tour-slide="premium"]) .jmf-tour-slide:not([data-slide="premium"]) .jmf-tour-lower{
    flex:1 0 auto!important;
    display:flex!important;
    align-items:flex-start!important;
    margin-top:18px!important;
    padding:18px 24px 36px!important;
  }
  body:not([data-jmf-tour-slide="premium"]) .jmf-tour-slide:not([data-slide="premium"]) .jmf-tour-lower-inner{
    padding:22px 28px!important;
  }
}


/* V15 — restore open desktop navigation; retain hamburger navigation on mobile only. */
@media (min-width:901px){
  .jmf-header .jmf-nav{
    display:flex!important;
    position:absolute!important;
    left:50%!important;
    right:auto!important;
    top:0!important;
    height:100%!important;
    transform:translateX(-50%)!important;
    align-items:center!important;
    justify-content:center!important;
    gap:clamp(22px,2.2vw,40px)!important;
    width:max-content!important;
    max-width:calc(100vw - 570px)!important;
    margin:0!important;
    z-index:4!important;
  }
  .jmf-header .jmf-nav-link{
    display:flex!important;
    align-items:center!important;
    height:100%!important;
    padding:0!important;
    color:#071f43!important;
    font-size:clamp(14px,1vw,17px)!important;
    font-weight:850!important;
    white-space:nowrap!important;
  }
  .jmf-header .jmf-nav-link.active{color:#075dcc!important;}
  .jmf-header .jmf-nav-link.active:after{
    bottom:10px!important;
    height:3px!important;
    background:#075dcc!important;
  }
  .jmf-header .jmf-header-actions{
    display:flex!important;
    align-items:center!important;
    margin-left:auto!important;
    gap:0!important;
    z-index:5!important;
  }
  .jmf-desktop-menu-btn,
  .jmf-desktop-drawer{display:none!important;}
  .jmf-header .jmf-quote{white-space:nowrap!important;}
}
@media (min-width:901px) and (max-width:1280px){
  .jmf-header .jmf-nav{gap:18px!important;max-width:calc(100vw - 500px)!important;}
  .jmf-header .jmf-nav-link{font-size:13px!important;}
}

/* V18 — keep previous/next controls at one identical screen position on every slide. */
@media (min-width:901px){
  .jmf-tour-arrow{
    top:clamp(215px,26svh,280px)!important;
  }
}
@media (max-width:900px){
  .jmf-tour-arrow{
    top:clamp(245px,34svh,330px)!important;
  }
}
