/* Static HTML compatibility fixes; original appearance remains authoritative. */
* { box-sizing: border-box; }
#content > .site-aligner::after { content: ""; display: block; clear: both; }
#content > .site-aligner { display: flex; gap: 3%; align-items: flex-start; }
#content #sitemain { flex: 1 1 70%; min-width: 0; width: auto; float: none; }
#content .sidebar_right { flex: 0 0 27%; min-width: 0; width: auto; float: none; }
#sidebar { width: 100%; }
.is-home #content #sitemain { flex-basis: 100%; }
.entry-content img, .site-main img { max-width: 100%; height: auto; }
.entries { list-style: none; padding: 0; }
.entries li { border-bottom: 1px solid #ddd; padding: 10px 0; }
.entries time { display: inline-block; margin-right: 1em; }
/* Desktop contact image: keep image visible rather than relying on WP menu ID. */
.site-nav #main-menu li.menu-contact a { display: block !important; padding: 0 !important; width: 289px; height: 33px; background: url('/assets/images/contact.png') left top / 289px 33px no-repeat; overflow: hidden; text-indent: -9999px; }
.site-nav #main-menu li.menu-contact a:hover { opacity: .8; }
.menu-toggle { display: none; }
.local-contact input, .local-contact textarea { display: block; width: 100%; max-width: 650px; padding: 10px; border: 1px solid #aaa; }
.hp-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.home-hero img { display: block; width: 100%; height: auto; }
@media (max-width: 988px) {
  #content > .site-aligner { display: block; }
  #content #sitemain, #content .sidebar_right { width: 100%; float: none; }
  .site-nav { height: auto !important; }
  .menu-toggle { display: block; border: 1px solid #ccc; padding: 8px 16px; background: #fff; cursor: pointer; }
  .site-nav #main-menu { display: none; }
  .site-nav #main-menu.is-open { display: block; }
  .site-nav #main-menu ul.menu, .site-nav #main-menu ul.menu li { display: block; float: none; width: 100%; }
  .site-nav #main-menu li.menu-contact a { background: none; width: auto; height: auto; text-indent: 0; padding: 8px 12px !important; }
}

/* Article archive: source images, headline, date and excerpt. */
.archive-list { list-style: none; padding: 0; margin: 1.5em 0; }
.archive-item { display: flex; gap: 18px; align-items: flex-start; padding: 18px 0; border-bottom: 1px solid #ddd; }
.archive-thumb { flex: 0 0 150px; display: block; }
.archive-thumb img { display: block; width: 100%; height: auto; }
.archive-copy { flex: 1; min-width: 0; }
.archive-title { margin: 0 0 6px; font-size: 1.08em; line-height: 1.6; }
.archive-copy time { font-size: .88em; }
.archive-excerpt { margin: 8px 0 0; line-height: 1.7; }
@media (max-width: 600px) {
 .archive-item { gap: 10px; }
 .archive-thumb { flex-basis: 100px; }
}

/* Interior restoration: WordPress sidebar visibility must follow actual generated widget selection. */
/* Widget visibility is now controlled by data-sidebar-pattern. */
.is-interior #sidebar .gmap {width:100%;margin-bottom:10px}
.is-interior #sidebar .gmap iframe {display:block;width:100%;max-width:100%;border:0}
#jnls-back-to-top{position:fixed;right:22px;bottom:24px;z-index:9999;border:0;border-radius:3px;background:#666;color:white;padding:12px 15px;font-size:15px;cursor:pointer;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s;box-shadow:0 2px 8px #0003}
#jnls-back-to-top.is-visible{opacity:1;visibility:visible}
#jnls-back-to-top:hover{background:#333}
@media(max-width:600px){#jnls-back-to-top{right:12px;bottom:14px}}
.is-interior .archive-thumb img{object-fit:cover;aspect-ratio:240/145}

/* Original WordPress page-top appearance (saved in the approved homepage). */
.scroll-back-to-top-wrapper{position:fixed;opacity:0;visibility:hidden;text-align:center;z-index:99999999;background:#00105b;color:#eee;width:50px;height:48px;line-height:48px;right:30px;bottom:30px;padding-top:2px;transition:all .5s ease-in-out;cursor:pointer}
.scroll-back-to-top-wrapper:hover{background:#4070e8;color:#eee}.scroll-back-to-top-wrapper.show{visibility:visible;opacity:.9}.scroll-back-to-top-wrapper i.fa{line-height:inherit}.scroll-back-to-top-wrapper .fa-lg{vertical-align:0}
#sidebar .jnls-case-children[hidden]{display:none!important}
.jnls-original-contact .contact-table{width:100%;border-collapse:collapse}.jnls-original-contact .contact-table th,.jnls-original-contact .contact-table td{padding:12px;border:1px solid #ddd;vertical-align:top}.jnls-original-contact .contact-table th{width:28%;background:#f5f5f5;text-align:left}.jnls-original-contact .contact-table td input:not([type=hidden]),.jnls-original-contact .contact-table td select,.jnls-original-contact .contact-table td textarea{max-width:100%;box-sizing:border-box}.jnls-original-contact .contact-tel input[type=tel]{width:22%;max-width:90px}.jnls-original-contact .required{color:#c00}.jnls-original-contact .contact-submit{text-align:center;margin:20px auto}
@media(max-width:640px){.jnls-original-contact .contact-table th,.jnls-original-contact .contact-table td{display:block;width:auto}}

/* Sidebar: original shared widget HTML, CSS visibility by page type. */
.is-interior #sidebar aside.widget{display:none!important}
.is-interior #sidebar[data-sidebar-pattern="normal"] aside#text-3,
.is-interior #sidebar[data-sidebar-pattern="normal"] aside#nav_menu-2,
.is-interior #sidebar[data-sidebar-pattern="normal"] aside#text-21,
.is-interior #sidebar[data-sidebar-pattern="normal"] aside#text-5,
.is-interior #sidebar[data-sidebar-pattern="normal"] aside#listcategorypostswidget-2,
.is-interior #sidebar[data-sidebar-pattern="column-list"] aside#text-3,
.is-interior #sidebar[data-sidebar-pattern="column-list"] aside#nav_menu-2,
.is-interior #sidebar[data-sidebar-pattern="column-list"] aside#text-21,
.is-interior #sidebar[data-sidebar-pattern="column-list"] aside#text-5,
.is-interior #sidebar[data-sidebar-pattern="column-list"] aside#listcategorypostswidget-2,
.is-interior #sidebar[data-sidebar-pattern="souzoku"] aside#text-37,
.is-interior #sidebar[data-sidebar-pattern="souzoku"] aside#text-20,
.is-interior #sidebar[data-sidebar-pattern="souzoku"] aside#text-3,
.is-interior #sidebar[data-sidebar-pattern="souzoku"] aside#nav_menu-2,
.is-interior #sidebar[data-sidebar-pattern="souzoku-case"] aside#text-37,
.is-interior #sidebar[data-sidebar-pattern="souzoku-case"] aside#text-20,
.is-interior #sidebar[data-sidebar-pattern="souzoku-case"] aside#text-3,
.is-interior #sidebar[data-sidebar-pattern="souzoku-case"] aside#nav_menu-2,
.is-interior #sidebar aside#text-2,
.is-interior #sidebar aside#text-25{display:block!important}
.is-interior #sidebar[data-sidebar-pattern="souzoku"] .jnls-case-children,
.is-interior #sidebar[data-sidebar-pattern="normal"] .jnls-case-children,
.is-interior #sidebar[data-sidebar-pattern="column-list"] .jnls-case-children{display:none!important}
.is-interior #sidebar[data-sidebar-pattern="souzoku-case"] .jnls-case-children{display:block!important}
/* Column page: the source uses a compact four-column thumbnail gallery. */
body.is-interior:has(#sidebar[data-sidebar-pattern="column-list"]) .archive-list{
 display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:18px;row-gap:20px;
 margin:16px 0;padding:0;list-style:none;
}
body.is-interior:has(#sidebar[data-sidebar-pattern="column-list"]) .archive-item{
 display:block;min-width:0;margin:0;padding:0;border:0;
}
body.is-interior:has(#sidebar[data-sidebar-pattern="column-list"]) .archive-thumb{display:block;width:100%;margin:0 0 5px}
body.is-interior:has(#sidebar[data-sidebar-pattern="column-list"]) .archive-thumb img{
 width:100%;height:auto;aspect-ratio:1.35;object-fit:cover;
}
body.is-interior:has(#sidebar[data-sidebar-pattern="column-list"]) .archive-title{
 font-size:12px;line-height:1.5;font-weight:600;margin:0;
}
body.is-interior:has(#sidebar[data-sidebar-pattern="column-list"]) .archive-copy time{display:none}
@media(max-width:600px){body.is-interior:has(#sidebar[data-sidebar-pattern="column-list"]) .archive-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}}
/* Contact phone fields and separators must remain on a single line. */
.jnls-original-contact .contact-tel{white-space:nowrap}
.jnls-original-contact .contact-tel input[type=tel]{display:inline-block!important;vertical-align:middle;width:24%!important;max-width:90px!important;min-width:0;padding:8px 4px}

.is-interior #sidebar:not([data-sidebar-pattern="souzoku-case"]) #text-37 .side_nav li ul{display:none!important}
.is-interior #sidebar[data-sidebar-pattern="souzoku-case"] #text-37 .side_nav li ul{display:block!important}

/* 2026-10-31: approved sidebar visibility rules. Overrides earlier guessed rules. */
body.is-interior #sidebar { display:flex; flex-direction:column; }
body.is-interior #sidebar aside.widget { display:none!important; }
/* Common: Q&A, column, consultation section and everything beneath. */
body.is-interior #sidebar aside#text-3,
body.is-interior #sidebar aside#nav_menu-2,
body.is-interior #sidebar aside#text-21,
body.is-interior #sidebar aside#text-5,
body.is-interior #sidebar aside#listcategorypostswidget-2,
body.is-interior #sidebar aside#text-2,
body.is-interior #sidebar aside#text-25,
body.is-interior #sidebar aside#text-27 { display:block!important; }
/* Normal: consultation and fees visible. */
body.is-interior #sidebar[data-sidebar-pattern="normal"] aside#text-20 { display:block!important; }
/* Souzoku / case: special menu visible, consultation/fees hidden. */
body.is-interior #sidebar[data-sidebar-pattern="souzoku"] aside#text-37,
body.is-interior #sidebar[data-sidebar-pattern="souzoku-case"] aside#text-37 { display:block!important; }
body.is-interior #sidebar[data-sidebar-pattern="souzoku"] aside#text-20,
body.is-interior #sidebar[data-sidebar-pattern="souzoku-case"] aside#text-20,
body.is-interior #sidebar[data-sidebar-pattern="column-list"] aside#text-20 { display:none!important; }
/* Original order: Q&A then column. Column index: column then Q&A. */
body.is-interior #sidebar aside#text-37 {order:1}
body.is-interior #sidebar aside#text-20 {order:2}
body.is-interior #sidebar aside#text-3 {order:3}
body.is-interior #sidebar aside#nav_menu-2 {order:4}
body.is-interior #sidebar aside#text-21 {order:5}
body.is-interior #sidebar aside#text-5 {order:6}
body.is-interior #sidebar aside#listcategorypostswidget-2 {order:7}
body.is-interior #sidebar aside#text-2 {order:8}
body.is-interior #sidebar aside#text-25 {order:9}
body.is-interior #sidebar aside#text-27 {order:10}
body.is-interior #sidebar[data-sidebar-pattern="column-list"] aside#text-21 {order:1}
body.is-interior #sidebar[data-sidebar-pattern="column-list"] aside#text-5 {order:2}
body.is-interior #sidebar[data-sidebar-pattern="column-list"] aside#listcategorypostswidget-2 {order:3}
body.is-interior #sidebar[data-sidebar-pattern="column-list"] aside#text-3 {order:4}
body.is-interior #sidebar[data-sidebar-pattern="column-list"] aside#nav_menu-2 {order:5}
/* Case descendants only on case pages. */
body.is-interior #sidebar:not([data-sidebar-pattern="souzoku-case"]) #text-37 .side_nav li ul {display:none!important}
body.is-interior #sidebar[data-sidebar-pattern="souzoku-case"] #text-37 .side_nav li ul {display:block!important}

/* 2026-10-31: one-row desktop navigation and shared mobile navigation. */
@media (min-width: 989px) {
 .site-nav .menu { display:flex !important; flex-wrap:nowrap !important; align-items:center; justify-content:space-between; width:100%; }
 .site-nav .menu > li { float:none !important; flex:0 0 auto; white-space:nowrap; }
 .site-nav .menu > li > a { white-space:nowrap; }
 .site-nav #menu-item-1639 { margin-left:auto; }
 .site-nav #main-menu li.menu-contact { margin-left:auto; }
 .site-nav #menu-item-1639 a, .site-nav #main-menu li.menu-contact a { flex-shrink:0; }
 .mobile_nav { display:none !important; }
}
@media (min-width:989px) and (max-width:1199px) {
 .site-nav .menu > li > a:not([href="/contact/"]) { font-size:12px !important; letter-spacing:-.5px !important; padding-left:2px !important; padding-right:2px !important; }
 .site-nav #menu-item-1639 a, .site-nav #main-menu li.menu-contact a { width:188px !important; height:33px !important; background-size:188px 22px !important; background-position:center center !important; }
}
@media (max-width:988px) {
 .mobile_nav { display:block !important; margin:0 0 10px; }
 .mobile_nav a { display:block !important; background:#eee !important; border:1px solid #ddd; padding:8px 12px !important; text-decoration:none; color:#666 !important; cursor:pointer; }
 .mobile_nav a::after { content:'☰'; float:right; }
 .site-nav { display:none !important; height:auto !important; clear:both; width:100% !important; }
 .site-nav.jnls-mobile-open { display:block !important; }
 .site-nav .menu { display:block !important; }
 .site-nav .menu > li { float:none !important; width:100% !important; display:block !important; white-space:normal !important; }
 .site-nav .menu > li > a { display:block !important; padding:9px 12px !important; line-height:1.6 !important; height:auto !important; white-space:normal !important; }
 .site-nav #menu-item-1639 a, .site-nav #main-menu li.menu-contact a { width:auto !important; height:auto !important; text-indent:0 !important; background:none !important; }
 .site-nav .menu-toggle { display:none !important; }
 .site-nav #main-menu { display:block !important; }
}



/* Navigation: restore original artwork and maintain complete grey frame. */
@media (min-width:989px) {
 .site-nav { height:45px!important; min-height:45px!important; padding:2px 0 0!important; box-sizing:border-box!important; overflow:visible!important; float:none!important; clear:both!important; }
 .site-nav .menu-menu-1-container {height:43px!important; min-height:43px!important; width:100%!important;}
 .site-nav ul.menu {display:flex!important;flex-wrap:nowrap!important;align-items:stretch!important;justify-content:flex-start!important;height:43px!important;min-height:43px!important;box-sizing:border-box!important;width:100%!important;}
 .site-nav ul.menu>li {float:none!important;flex:0 1 auto!important;min-width:0!important;height:43px!important;box-sizing:border-box!important;margin:0!important;white-space:nowrap!important;}
 .site-nav ul.menu>li>a {display:block!important;height:41px!important;line-height:41px!important;box-sizing:border-box!important;white-space:nowrap!important;font-size:12px!important;letter-spacing:-.7px!important;padding:0 3px!important;}
 .site-nav ul.menu>li#menu-item-1639 {flex:0 0 158px!important;width:158px!important;margin-left:auto!important;padding:3px 0 0!important;height:43px!important;border-bottom:0!important;background:none!important;}
 .site-nav ul.menu>li#menu-item-1639>a {float:none!important;width:158px!important;height:33px!important;line-height:33px!important;padding:0!important;display:block!important;box-sizing:border-box!important;text-indent:-9999px!important;overflow:hidden!important;background:url('/assets/images/common/contact2.png') 0 0 / 158px 33px no-repeat!important;}
}
@media (min-width:1280px) {
 .site-nav ul.menu>li>a {font-size:14px!important;letter-spacing:0!important;padding:0 6px!important;}
 .site-nav ul.menu>li#menu-item-1639 {flex-basis:289px!important;width:289px!important;}
 .site-nav ul.menu>li#menu-item-1639>a {width:289px!important;background-image:url('/assets/images/common/contact.png')!important;background-size:289px 33px!important;}
}
@media (max-width:988px) {
 .mobile_nav {display:block!important;box-sizing:border-box!important;padding:0!important;margin:0 0 8px!important;width:100%!important;clear:both!important;}
 .mobile_nav>a {box-sizing:border-box!important;display:block!important;width:100%!important;min-height:36px!important;margin:0!important;padding:8px 12px!important;line-height:18px!important;border:1px solid #ccc!important;background:#f6f6f6!important;color:#666!important;position:relative!important;text-align:left!important;}
 .mobile_nav>a::after {content:'☰';position:absolute;right:12px;top:8px;float:none!important;line-height:18px;}
 .site-nav {box-sizing:border-box!important;float:none!important;clear:both!important;width:100%!important;margin:0 0 10px!important;padding:0!important;height:auto!important;}
 .site-nav.jnls-mobile-open {display:block!important;position:relative!important;z-index:40!important;}
 .site-nav.jnls-mobile-open ul.menu {margin:0!important;padding:0!important;box-sizing:border-box!important;width:100%!important;}
 .site-nav.jnls-mobile-open ul.menu>li {box-sizing:border-box!important;width:100%!important;margin:0!important;padding:0!important;float:none!important;}
 .site-nav.jnls-mobile-open ul.menu>li>a {box-sizing:border-box!important;width:100%!important;margin:0!important;padding:9px 12px!important;height:auto!important;line-height:1.5!important;border-bottom:1px solid #ccc!important;}
}


/* 2026-10-31 Interior menu: same contact button alignment as TOP.
   Interior markup uses li.menu-contact instead of #menu-item-1639.
   Suppress theme hover underline/animated decoration on contact only. */
@media (min-width:989px) {
  body.is-interior .site-nav #main-menu ul.menu > li.menu-contact {
    flex:0 0 158px!important; width:158px!important; min-width:158px!important;
    height:43px!important; margin:0 0 0 auto!important;
    padding:3px 0 0!important; box-sizing:border-box!important;
    border:0!important; background:none!important; position:relative!important;
  }
  body.is-interior .site-nav #main-menu ul.menu > li.menu-contact > a {
    display:block!important; float:none!important; position:relative!important;
    width:158px!important; height:33px!important; line-height:33px!important;
    padding:0!important; margin:0!important; border:0!important;
    text-decoration:none!important; box-shadow:none!important;
    background:url('/assets/images/common/contact2.png') center center / 158px 33px no-repeat!important;
    text-indent:-9999px!important; overflow:hidden!important;
    transform:none!important; transition:opacity .2s ease!important;
  }
  body.is-interior .site-nav #main-menu ul.menu > li.menu-contact > a:hover,
  body.is-interior .site-nav #main-menu ul.menu > li.menu-contact > a:focus {
    opacity:.8!important; text-decoration:none!important; border:0!important;
    box-shadow:none!important; background-color:transparent!important;
    background-position:center center!important; transform:none!important;
  }
  body.is-interior .site-nav #main-menu ul.menu > li.menu-contact::before,
  body.is-interior .site-nav #main-menu ul.menu > li.menu-contact::after,
  body.is-interior .site-nav #main-menu ul.menu > li.menu-contact > a::before,
  body.is-interior .site-nav #main-menu ul.menu > li.menu-contact > a::after {
    content:none!important; display:none!important; border:0!important;
    box-shadow:none!important; background:none!important;
  }
}
@media (min-width:1280px) {
  body.is-interior .site-nav #main-menu ul.menu > li.menu-contact {
    flex-basis:289px!important; width:289px!important; min-width:289px!important;
  }
  body.is-interior .site-nav #main-menu ul.menu > li.menu-contact > a,
  body.is-interior .site-nav #main-menu ul.menu > li.menu-contact > a:hover,
  body.is-interior .site-nav #main-menu ul.menu > li.menu-contact > a:focus {
    width:289px!important;
    background-image:url('/assets/images/common/contact.png')!important;
    background-size:289px 33px!important;
  }
}

/* Mobile menu frame: one explicit 42px box, with equal 7px top/bottom.
   Reset theme's .mobile_nav padding-bottom and anchor margin-top. */
@media screen and (max-width:988px) {
  html body .mobile_nav {
    display:block!important; position:relative!important; float:none!important;
    clear:both!important; width:100%!important; max-width:100%!important;
    height:42px!important; min-height:42px!important;
    margin:0!important; padding:7px 10px!important;
    border:0!important; border-radius:0!important;
    background:#e5e5e5!important; box-shadow:none!important;
    box-sizing:border-box!important; overflow:visible!important;
  }
  html body .mobile_nav > a {
    display:flex!important; align-items:center!important; justify-content:space-between!important;
    position:relative!important; float:none!important;
    width:100%!important; max-width:100%!important;
    height:28px!important; min-height:28px!important; max-height:28px!important;
    margin:0!important; padding:0 0 0 8px!important;
    border:1px solid #d0d0d0!important; border-radius:0!important;
    background:#f7f7f7!important; box-shadow:none!important;
    color:#555!important; font-size:12px!important; font-weight:normal!important;
    line-height:26px!important; text-align:left!important; text-decoration:none!important;
    box-sizing:border-box!important; overflow:hidden!important;
  }
  html body .mobile_nav > a::after {
    content:'☰'!important; display:flex!important; align-items:center!important;
    justify-content:center!important; position:static!important; float:none!important;
    flex:0 0 28px!important; width:28px!important; height:26px!important;
    margin:0!important; padding:0!important;
    border:0!important; border-left:1px solid #d0d0d0!important;
    background:#f7f7f7!important; color:#999!important;
    font-size:13px!important; line-height:1!important; box-sizing:border-box!important;
  }
  html body .site-nav.jnls-mobile-open {
    display:block!important; float:none!important; clear:both!important;
    position:relative!important; width:100%!important; max-width:100%!important;
    height:auto!important; margin:0!important; padding:0 10px 7px!important;
    background:#e5e5e5!important; box-sizing:border-box!important; z-index:40!important;
  }
  html body .site-nav.jnls-mobile-open ul.menu {
    width:100%!important; max-width:100%!important; margin:0!important;
    padding:0!important; box-sizing:border-box!important;
  }
  html body .site-nav.jnls-mobile-open ul.menu > li,
  html body .site-nav.jnls-mobile-open ul.menu > li > a {
    max-width:100%!important; box-sizing:border-box!important;
  }
}

/* 2026-10-31: mobile navigation without the decorative background bar.
   Keep the clickable bar edge-to-edge and separate it from hero content. */
@media screen and (max-width:988px) {
  html body .mobile_nav {
    display:block!important;
    position:relative!important;
    z-index:100!important;
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    min-height:0!important;
    margin:8px 0 10px!important;
    padding:0!important;
    background:none!important;
    background-image:none!important;
    border:0!important;
    box-shadow:none!important;
    overflow:visible!important;
    clear:both!important;
    box-sizing:border-box!important;
  }
  html body .mobile_nav > a {
    display:flex!important;
    width:100%!important;
    max-width:100%!important;
    height:34px!important;
    min-height:34px!important;
    max-height:none!important;
    margin:0!important;
    padding:0 0 0 10px!important;
    line-height:32px!important;
    box-sizing:border-box!important;
    background:#f7f7f7!important;
    background-image:none!important;
    border:1px solid #d0d0d0!important;
    align-items:center!important;
    justify-content:space-between!important;
  }
  html body .mobile_nav > a::after {
    flex:0 0 32px!important;
    width:32px!important;
    height:32px!important;
  }
  html body .site-nav.jnls-mobile-open {
    position:relative!important;
    z-index:101!important;
    width:100%!important;
    max-width:100%!important;
    margin:-10px 0 10px!important;
    padding:0!important;
    background:none!important;
    background-image:none!important;
  }
}

/* 2026-10-31: final mobile navigation viewport and stacking correction.
   The 95%-wide .site-aligner cannot make its children full-viewport by width:100% alone. */
@media screen and (max-width:988px) {
  html body .header {
    position:relative!important;
    z-index:100!important;
    overflow:visible!important;
  }
  html body .header .site-aligner {
    overflow:visible!important;
  }
  html body .header .site-aligner::after {
    content:"";
    display:block;
    clear:both;
  }
  html body .header .mobile_nav {
    float:none!important;
    clear:both!important;
    display:block!important;
    position:relative!important;
    z-index:110!important;
    width:100vw!important;
    max-width:none!important;
    min-height:0!important;
    height:auto!important;
    left:50%!important;
    transform:translateX(-50%)!important;
    margin:0!important;
    padding:8px 0 10px!important;
    border:0!important;
    background:transparent!important;
    background-image:none!important;
    box-shadow:none!important;
    box-sizing:border-box!important;
    overflow:visible!important;
  }
  html body .header .mobile_nav > a {
    display:flex!important;
    width:100%!important;
    max-width:none!important;
    height:34px!important;
    min-height:34px!important;
    margin:0!important;
    padding:0 0 0 10px!important;
    background:#f7f7f7!important;
    background-image:none!important;
    border:1px solid #ccc!important;
    box-sizing:border-box!important;
    align-items:center!important;
    justify-content:space-between!important;
    position:relative!important;
    z-index:111!important;
  }
  html body .header .site-nav.jnls-mobile-open {
    position:relative!important;
    z-index:109!important;
    width:100vw!important;
    max-width:none!important;
    left:50%!important;
    transform:translateX(-50%)!important;
    margin:0!important;
    padding:0!important;
    background:transparent!important;
  }
  html body .header + #home_slider,
  html body #home_slider {
    position:relative;
    z-index:1;
  }
}
@media screen and (max-width:800px) {
  html body .sp_mv {
    top:0!important;
    margin-top:0!important;
  }
}

/* 2026-10-31: preserve the grey menu control and its own padding;
   remove only the underlying theme background image/stripe on mobile. */
@media screen and (max-width:988px) {
  html body .header {
    background-image:none!important;
    background-color:#fff!important;
    box-shadow:none!important;
  }
  html body .header .mobile_nav {
    background:transparent!important;
    background-image:none!important;
    padding:8px 0 10px!important;
  }
  html body .header .mobile_nav > a {
    background-color:#f7f7f7!important;
    background-image:none!important;
    border:1px solid #ccc!important;
  }
}
/* Desktop home four feature tiles: override the old float/clear layout only
   where the four cards belong together. Keep the original mobile two-column rules. */
@media screen and (min-width:989px) {
  html body.home .feature-box-main,
  html body.is-home .feature-box-main {
    display:flex!important;
    flex-wrap:wrap!important;
    column-gap:0.8%!important;
    align-items:stretch!important;
  }
  html body.home .feature-box-main > .pre_f_box,
  html body.is-home .feature-box-main > .pre_f_box { flex:0 0 100%!important; }
  html body.home .feature-box-main > a,
  html body.is-home .feature-box-main > a {
    display:flex!important;
    flex:0 0 24.4%!important;
    min-width:0!important;
    text-decoration:none;
  }
  html body.home .feature-box-main > a > .feature-box,
  html body.is-home .feature-box-main > a > .feature-box {
    float:none!important;
    width:100%!important;
    margin:0!important;
    height:100%!important;
    box-sizing:border-box!important;
  }
  html body.home .feature-box-main > .clear_n,
  html body.home .feature-box-main > .clear,
  html body.is-home .feature-box-main > .clear_n,
  html body.is-home .feature-box-main > .clear { display:none!important; }
}

/* 2026-10-31: uniform outer grey padding for the mobile navigation.
   Keep the grey background on the wrapper, not on the underlying header image. */
@media screen and (max-width:988px) {
  html body .header .mobile_nav {
    width:100vw!important;
    max-width:none!important;
    left:50%!important;
    transform:translateX(-50%)!important;
    margin:0!important;
    padding:12px!important;
    background:#e5e5e5!important;
    background-image:none!important;
    border:0!important;
    box-sizing:border-box!important;
    position:relative!important;
    z-index:120!important;
  }
  html body .header .mobile_nav > a {
    width:100%!important;
    height:40px!important;
    min-height:40px!important;
    padding:0 12px!important;
    margin:0!important;
    border:1px solid #ccc!important;
    background:#f7f7f7!important;
    box-sizing:border-box!important;
  }
  html body .header .site-nav.jnls-mobile-open {
    width:100vw!important;
    max-width:none!important;
    left:50%!important;
    transform:translateX(-50%)!important;
    margin:0!important;
    padding:0 12px 12px!important;
    background:#e5e5e5!important;
    background-image:none!important;
    box-sizing:border-box!important;
    position:relative!important;
    z-index:119!important;
  }
  html body .header .site-nav.jnls-mobile-open ul.menu {
    background:#f1f1f1!important;
    padding:0 12px!important;
    margin:0!important;
  }
}
/* TOP: check icon and text must start on the same line, including long items. */
@media screen and (min-width:989px) {
  html body.home .nivo-caption ul.mv_list > li,
  html body.is-home .nivo-caption ul.mv_list > li {
    display:flex!important;
    align-items:flex-start!important;
    flex-wrap:nowrap!important;
    gap:5px!important;
    background:none!important;
    padding-left:0!important;
  }
  html body.home .nivo-caption ul.mv_list > li > i,
  html body.is-home .nivo-caption ul.mv_list > li > i {
    flex:0 0 16px!important;
    width:16px!important;
    margin-top:2px!important;
  }
  html body.home .nivo-caption ul.mv_list > li > a,
  html body.is-home .nivo-caption ul.mv_list > li > a {
    flex:1 1 auto!important;
    min-width:0!important;
    display:block!important;
  }
}

/* 2026-10-31 refinement: equal-looking grey mobile navigation frame. */
@media screen and (max-width:988px) {
  html body .header .mobile_nav {
    padding:8px 16px!important;
  }
  html body .header .site-nav.jnls-mobile-open {
    padding:0 16px 8px!important;
  }
  html body.home .header .mobile_nav,
  html body.is-home .header .mobile_nav {
    margin-bottom:0!important;
  }
  html body.home .header,
  html body.is-home .header {
    margin-bottom:0!important;
    padding-bottom:0!important;
  }
  html body.home .sp_mv_link,
  html body.is-home .sp_mv_link {
    margin-top:0!important;
  }
}
/* Desktop: all seven selling points remain on one line per item. */
@media screen and (min-width:989px) {
  html body.home .nivo-caption ul.mv_list,
  html body.is-home .nivo-caption ul.mv_list {
    width:max-content!important;
    max-width:none!important;
  }
  html body.home .nivo-caption ul.mv_list > li,
  html body.is-home .nivo-caption ul.mv_list > li,
  html body.home .nivo-caption ul.mv_list > li > a,
  html body.is-home .nivo-caption ul.mv_list > li > a {
    white-space:nowrap!important;
    overflow-wrap:normal!important;
    word-break:keep-all!important;
  }
  html body.home .nivo-caption ul.mv_list > li > a,
  html body.is-home .nivo-caption ul.mv_list > li > a {
    flex:0 0 auto!important;
    display:inline-block!important;
  }
}

/* TOP mobile: remove the gap outside the grey menu frame, not its inner padding. */
@media screen and (max-width:988px) {
  html body.home .header .site-nav,
  html body.is-home .header .site-nav {
    margin-bottom:0!important;
  }
  html body.home .header .site-aligner > .clear,
  html body.is-home .header .site-aligner > .clear {
    height:0!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    line-height:0!important;
  }
  html body.home #home_slider,
  html body.is-home #home_slider {
    margin-top:0!important;
  }
}

/* 2026-10-31: home mobile header-to-visual seam.
   The original theme offsets .all-box by top:25px at <=800px. */
@media screen and (max-width:800px) {
  html body.home .header + #home_slider + .all-box,
  html body.is-home .header + #home_slider + .all-box {
    top:0!important;
    margin-top:0!important;
  }
  html body.home .header + #home_slider + .all-box > .sp_mv_link,
  html body.is-home .header + #home_slider + .all-box > .sp_mv_link {
    margin-top:0!important;
  }
}
/* Restore two-column main/sidebar layout on the desktop home page.
   The homepage uses .main_ps, not the #content wrapper used by interiors. */
@media screen and (min-width:989px) {
  html body.home .main_ps, html body.is-home .main_ps {
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:flex-start!important;
    gap:3%!important;
  }
  html body.home .main_ps > #sitemain, html body.is-home .main_ps > #sitemain {
    flex:0 1 70%!important; width:70%!important; min-width:0!important; float:none!important;
  }
  html body.home .main_ps > .sidebar_right, html body.is-home .main_ps > .sidebar_right {
    flex:0 0 27%!important; width:27%!important; min-width:0!important; float:none!important;
  }
}

/* 2026-10-31: target the real homepage DOM: .all-box is a sibling of
   #home_slider, not a child of the header. Override inline theme top:25px. */
@media screen and (max-width:800px) {
  html body.home > .all-box, html body.is-home > .all-box,
  html body.home .all-box, html body.is-home .all-box {
    top:0!important; margin-top:0!important;
  }
  html body.home .header + #home_slider + .all-box,
  html body.is-home .header + #home_slider + .all-box {top:0!important;}
}
/* Desktop: match the sidebar's right edge to the four-tile strip. */
@media screen and (min-width:989px) {
  html body.home .site-aligner.main_ps, html body.is-home .site-aligner.main_ps {
    box-sizing:border-box;
    gap:0.8%!important;
  }
  html body.home .main_ps > #sitemain, html body.is-home .main_ps > #sitemain {
    flex:0 0 70%!important; width:70%!important;
  }
  html body.home .main_ps > .sidebar_right, html body.is-home .main_ps > .sidebar_right {
    flex:0 0 29.2%!important; width:29.2%!important;
  }
}

/* 2026-10-31: final alignment adjustments.
   Keep the approved mobile grey navigation frame and desktop tile layout. */
@media screen and (max-width:988px) {
  /* The grey frame retains its own balanced inner padding. */
  html body.home .header .mobile_nav,
  html body.is-home .header .mobile_nav {
    margin-bottom:0!important;
  }
  /* Remove the separate gap between the header and the mobile visual. */
  html body.home .header,
  html body.is-home .header {
    margin-bottom:0!important;
    padding-bottom:0!important;
  }
  html body.home #home_slider,
  html body.is-home #home_slider,
  html body.home .sp_mv,
  html body.is-home .sp_mv,
  html body.home .sp_mv_link,
  html body.is-home .sp_mv_link {
    margin-top:0!important;
    padding-top:0!important;
  }
}
@media screen and (max-width:800px) {
  /* The theme positions the mobile visual via top; neutralize that offset. */
  html body.home .sp_mv,
  html body.is-home .sp_mv,
  html body.home .all-box,
  html body.is-home .all-box {
    top:0!important;
  }
}
@media screen and (min-width:989px) {
  /* Inset the entire lower two-column area, retaining its right edge. */
  html body.home .site-aligner.main_ps,
  html body.is-home .site-aligner.main_ps {
    padding-left:2%!important;
    box-sizing:border-box!important;
    gap:0.8%!important;
  }
  html body.home .main_ps > #sitemain,
  html body.is-home .main_ps > #sitemain {
    flex:0 0 70%!important;
    width:70%!important;
  }
  html body.home .main_ps > .sidebar_right,
  html body.is-home .main_ps > .sidebar_right {
    flex:0 0 29.2%!important;
    width:29.2%!important;
  }
}

/* 2026-10-31: correction after screenshot review.
   Desktop: do not inset only the lower content area; align its left edge
   with the four colored feature tiles while keeping the established right edge. */
@media screen and (min-width:989px) {
  html body.home .site-aligner.main_ps,
  html body.is-home .site-aligner.main_ps {
    padding-left:0!important;
    padding-right:0!important;
    gap:0.8%!important;
  }
  html body.home .main_ps > #sitemain,
  html body.is-home .main_ps > #sitemain {
    flex:0 0 70%!important;
    width:70%!important;
  }
  html body.home .main_ps > .sidebar_right,
  html body.is-home .main_ps > .sidebar_right {
    flex:0 0 29.2%!important;
    width:29.2%!important;
  }
}
/* Mobile: pull the actual visual container upward, not only its children.
   Keep the menu's own balanced grey frame unchanged. */
@media screen and (max-width:800px) {
  html body.home .all-box,
  html body.is-home .all-box {
    margin-top:-10px!important;
    padding-top:0!important;
  }
}

/* v3: mobile home: remove remaining gap between navigation and visual.
   Original theme uses a -25px overlap on .all-box; restore that offset
   instead of shifting the mobile menu or its grey frame. */
@media screen and (max-width:800px) {
  html body.home .all-box,
  html body.is-home .all-box {
    margin-top:-25px!important;
    padding-top:0!important;
  }
}
/* v3: desktop home: create breathing room to the LEFT of the sidebar,
   keeping the four-tile strip and overall outer edges aligned. */
@media screen and (min-width:989px) {
  html body.home .site-aligner.main_ps,
  html body.is-home .site-aligner.main_ps {
    gap:2%!important;
    padding-left:0!important;
    padding-right:0!important;
  }
  html body.home .main_ps > #sitemain,
  html body.is-home .main_ps > #sitemain {
    flex:0 0 69%!important;
    width:69%!important;
  }
  html body.home .main_ps > .sidebar_right,
  html body.is-home .main_ps > .sidebar_right {
    flex:0 0 29%!important;
    width:29%!important;
  }
}

/* v4: match original mobile hero positioning; retain grey menu padding.
   The theme intentionally offsets .sp_mv by -25px. Earlier overrides
   set its top to zero, creating the visible blank strip. */
@media screen and (max-width:800px) {
  html body.home .sp_mv, html body.is-home .sp_mv {
    position:relative!important; top:-25px!important;
  }
  html body.home .all-box, html body.is-home .all-box {
    top:25px!important; margin-top:-25px!important;
  }
}
/* v4: desktop original sidebar fixed width, content 68%, flexible gutter. */
@media screen and (min-width:989px) {
  html body.home .site-aligner.main_ps,
  html body.is-home .site-aligner.main_ps {
    display:flex!important; justify-content:space-between!important;
    gap:0!important; padding-left:0!important; padding-right:0!important;
  }
  html body.home .main_ps > #sitemain,
  html body.is-home .main_ps > #sitemain {
    flex:0 0 68%!important; width:68%!important; max-width:68%!important;
  }
  html body.home .main_ps > .sidebar_right,
  html body.is-home .main_ps > .sidebar_right {
    flex:0 0 281px!important; width:281px!important; max-width:281px!important;
    margin-left:auto!important;
  }
}

/* v5: Restore the original blue background of the top utility/sub menu
   on mobile, without restoring the removed header background image. */
@media screen and (max-width:988px) {
  html body .header .head_sub {
    background-color:#40afe7!important;
    background-image:none!important;
    box-shadow:0 0 0 100vmax #40afe7;
    clip-path:inset(0 -100vmax);
  }
  html body .header .head_sub ul.sub_menu li a { color:#fff!important; }
}
