.soranooto-path-body-locked{
  position:fixed;
  left:0;
  right:0;
  width:100%;
  overflow:hidden
}

.soranooto-path-launcher{
  position:fixed;
  right:18px;
  bottom:88px;
  z-index:99980;
  border:1px solid rgba(30,30,30,.12);
  background:rgba(255,255,255,.94);
  color:#222;
  border-radius:999px;
  padding:11px 16px;
  font-size:14px;
  line-height:1.2;
  box-shadow:0 8px 24px rgba(0,0,0,.10);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  cursor:pointer
}

.soranooto-path-layer[hidden]{
  display:none!important
}

.soranooto-path-layer{
  position:fixed;
  inset:0;
  z-index:100000;
  display:grid;
  place-items:center;
  padding:18px
}

.soranooto-path-backdrop{
  position:absolute;
  inset:0;
  background:rgba(238,239,240,.72);
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px)
}

.soranooto-path-dialog{
  position:relative;
  z-index:1;
  width:min(
    680px,
    calc(100vw - 28px)
  );
  max-height:min(
    760px,
    calc(100vh - 36px)
  );
  overflow:auto;
  background:rgba(255,255,255,.97);
  border:1px solid rgba(20,20,20,.10);
  border-radius:24px;
  box-shadow:
    0 24px 70px rgba(0,0,0,.14);
  padding:clamp(
    28px,
    5vw,
    54px
  );
  outline:none
}

.soranooto-path-close{
  position:absolute;
  top:14px;
  right:16px;
  width:40px;
  height:40px;
  border:0;
  background:transparent;
  color:#666;
  font-size:26px;
  line-height:1;
  cursor:pointer
}

.soranooto-path-screen{
  min-height:360px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
  gap:18px
}

.soranooto-path-screen h2{
  margin:0;
  max-width:560px;
  font-size:clamp(
    23px,
    4.3vw,
    34px
  );
  line-height:1.45;
  font-weight:600;
  letter-spacing:.01em
}

.soranooto-path-screen p{
  margin:0;
  max-width:520px;
  color:#666;
  font-size:15px;
  line-height:1.85
}

.soranooto-path-kicker{
  font-size:12px;
  letter-spacing:.16em;
  color:#8a8a8a
}

.soranooto-path-choices{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px;
  width:100%;
  margin-top:6px
}

.soranooto-path-choice,
.soranooto-path-back{
  appearance:none;
  border:1px solid rgba(20,20,20,.12);
  background:#f7f7f7;
  color:#222;
  border-radius:14px;
  padding:13px 17px;
  font-size:15px;
  line-height:1.4;
  cursor:pointer;
  transition:
    transform .16s ease,
    background .16s ease
}

.soranooto-path-choice:hover,
.soranooto-path-choice:focus-visible,
.soranooto-path-back:hover,
.soranooto-path-back:focus-visible{
  background:#eee;
  transform:translateY(-1px);
  outline:
    2px solid rgba(30,30,30,.16);
  outline-offset:2px
}

.soranooto-path-choice.is-primary{
  background:#222;
  color:#fff;
  border-color:#222
}

.soranooto-path-visual{
  position:relative;
  width:min(
    380px,
    78vw
  );
  height:66px;
  display:flex;
  align-items:center;
  justify-content:center
}

.path-line{
  display:block;
  width:72%;
  height:2px;
  background:#bfc2c4;
  border-radius:999px;
  transition:
    height .5s ease,
    background .5s ease
}

.path-dot{
  position:absolute;
  width:12px;
  height:12px;
  border-radius:50%;
  background:#777
}

.path-dot-a{
  left:12%
}

.path-dot-b{
  right:12%
}

.soranooto-path-visual.is-used
.path-line{
  height:6px;
  background:#9fa3a6
}

.soranooto-path-visual.is-repeat
.path-line{
  height:12px;
  background:#777
}

.soranooto-path-converge{
  position:relative;
  width:min(
    380px,
    78vw
  );
  height:110px
}

.soranooto-path-converge .arm{
  position:absolute;
  top:42px;
  width:44%;
  height:2px;
  background:#aaa
}

.soranooto-path-converge
.arm-left{
  left:4%;
  transform:rotate(12deg);
  transform-origin:right center
}

.soranooto-path-converge
.arm-right{
  right:4%;
  transform:rotate(-12deg);
  transform-origin:left center
}

.now-dot{
  position:absolute;
  left:50%;
  top:30px;
  transform:translateX(-50%);
  display:grid;
  place-items:center;
  width:60px;
  height:60px;
  border-radius:50%;
  background:#222;
  color:#fff;
  font-weight:600
}

.soranooto-path-fork{
  position:relative;
  width:min(
    380px,
    78vw
  );
  height:120px
}

.fork-main,
.fork-new{
  position:absolute;
  left:18%;
  top:55px;
  width:64%;
  height:8px;
  border-radius:999px;
  background:#8e9295;
  transform-origin:left center
}

.fork-new{
  height:2px;
  background:#c8cbcd;
  transform:rotate(-18deg)
}

.fork-node{
  position:absolute;
  left:17%;
  top:50px;
  width:18px;
  height:18px;
  border-radius:50%;
  background:#555
}

.soranooto-path-fork.is-growing
.fork-new{
  height:7px;
  background:#9fa3a6
}

.soranooto-path-map{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:7px;
  color:#555
}

.map-entry{
  display:flex;
  align-items:center;
  gap:22px;
  font-size:18px
}

.map-entry b{
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  border-radius:50%;
  background:#222;
  color:#fff
}

.map-down{
  color:#aaa
}

.map-choice{
  padding:10px 14px;
  border:1px solid #ddd;
  border-radius:12px;
  background:#fafafa
}

.map-loop{
  font-size:30px;
  color:#999
}

.soranooto-path-end-q{
  font-size:18px!important;
  color:#333!important
}

.soranooto-path-end-actions{
  display:flex;
  flex-direction:column;
  gap:10px;
  width:min(
    360px,
    100%
  )
}

.soranooto-path-observe{
  display:block;
  text-decoration:none!important;
  background:#222;
  color:#fff!important;
  border-radius:14px;
  padding:14px 18px;
  font-size:15px
}

.soranooto-path-back{
  width:100%;
  background:#f4f4f4
}

.soranooto-path-dialog button,
.soranooto-path-dialog a{
  -webkit-tap-highlight-color:
    transparent
}

@media(max-width:640px){
  .soranooto-path-launcher{
    right:14px;
    bottom:82px;
    font-size:13px;
    padding:10px 14px
  }

  .soranooto-path-layer{
    padding:10px
  }

  .soranooto-path-dialog{
    width:calc(
      100vw - 20px
    );
    max-height:calc(
      100dvh - 20px
    );
    border-radius:20px;
    padding:
      42px 20px 28px
  }

  .soranooto-path-screen{
    min-height:62dvh
  }

  .soranooto-path-choices{
    flex-direction:column
  }

  .soranooto-path-choice{
    width:100%
  }
}

@media(
  prefers-reduced-motion:reduce
){
  .soranooto-path-choice,
  .path-line,
  .fork-new{
    transition:none!important
  }

  .soranooto-path-backdrop{
    backdrop-filter:none;
    -webkit-backdrop-filter:none
  }
}

/* SORANOOTO_MOBILE_NAV_V3 */
@media (max-width:640px) {
  .soranooto-path-launcher {
    display:none !important;
  }

  .soranooto-bottom-path {
    flex:2 1 48% !important;
    min-width:42% !important;
  }

  .soranooto-bottom-path-button {
    width:100%;
    height:100%;
    min-height:54px;
    border:0;
    background:#f4f4f4;
    color:#222;
    font-size:14px;
    font-weight:600;
  }

  .soranooto-mobile-toggle {
    width:auto !important;
    min-width:92px !important;
    padding:0 12px !important;
    gap:6px !important;
    border:1px solid rgba(0,0,0,.10) !important;
    border-radius:10px !important;
    background:#fff !important;
  }

  .soranooto-menu-word {
    display:inline-block;
    font-size:13px;
    font-weight:500;
  }

  .soranooto-language-switch {
    margin:24px 10px;
    padding-top:18px;
    border-top:1px solid #eee;
  }

  .soranooto-language-heading {
    margin-bottom:10px;
    font-size:13px;
    color:#777;
  }

  .soranooto-language-links {
    display:flex;
    gap:10px;
  }

  .soranooto-language-links a {
    flex:1;
    padding:10px 8px;
    border-radius:10px;
    background:#f4f4f4;
    text-align:center;
    text-decoration:none !important;
    color:#222 !important;
  }
}

/* SORANOOTO_UI_POLISH_V5 */
:root{
  --sn-blue:#3f6f7a;
  --sn-blue-deep:#345e68;
  --sn-blue-soft:#edf5f6;
}

/* 見出し */
.entry-title,
.entry-content h1,
.entry-content h2,
.entry-content h3{
  color:var(--sn-blue-deep)!important;
}

/* 淡い背景 */
.entry-content h2{
  background:var(--sn-blue-soft)!important;
}

/* スマホ */
@media(max-width:640px){

  /* 旧浮遊ボタン */
  .soranooto-path-launcher{
    display:none!important;
  }

  /* 右上メニュー */
  .soranooto-mobile-toggle{
    min-width:96px!important;
    width:auto!important;
    height:40px!important;
    padding:0 14px!important;
    border:1px solid rgba(63,111,122,.20)!important;
    border-radius:14px!important;
    background:var(--sn-blue-soft)!important;
    color:var(--sn-blue-deep)!important;
    box-shadow:none!important;
  }

  /* 三本線を隠す */
  .soranooto-mobile-toggle svg,
  .soranooto-mobile-toggle .fa,
  .soranooto-mobile-toggle i{
    display:none!important;
  }

  .soranooto-menu-word{
    font-size:13px!important;
    font-weight:600!important;
  }

  /* いつもの道 */
  .soranooto-bottom-path{
    flex:2 1 48%!important;
    background:var(--sn-blue-soft)!important;
  }

  .soranooto-bottom-path-button{
    min-height:58px!important;
    background:linear-gradient(
      135deg,
      #edf5f6,
      #e3eff1
    )!important;
    color:var(--sn-blue-deep)!important;
    font-weight:700!important;
    border:0!important;
  }
}

/* SORANOOTO_MENU_NOTICE_V6 */
@media(max-width:640px){

  .sn-bookmark{
    width:17px;
    height:17px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linejoin:round;
    margin-right:6px;
  }

  .sn-notice{
    display:block;
    width:22px;
    height:22px;
    margin:0 auto 2px;
    fill:none;
    stroke:#3f6f7a;
    stroke-width:1.5;
  }

  .soranooto-bottom-path-button{
    position:relative;
    overflow:hidden;
  }

  .sn-road{
    position:absolute;
    inset:2px 4px;
    width:96%;
    height:52px;
    fill:none;
    stroke:#3f6f7a;
    stroke-width:1.8;
    opacity:.38;
  }

  .soranooto-bottom-path-button span{
    position:relative;
    z-index:2;
  }
}

/* =========================================================
   SORANOOTO DEEP SEA COLOR SYSTEM V1
   Deep Sea      : #002147
   Shoreline     : #F0F8FF
   ========================================================= */

:root {
  --sn-deep-sea: #002147;
  --sn-shoreline: #F0F8FF;
}

/* Primary text: replace hard black with deep-sea blue */
body,
input,
textarea,
select,
button {
  color: var(--sn-deep-sea);
}

h1, h2, h3, h4, h5, h6,
.entry-title,
.article h1,
.article h2,
.article h3,
.article h4,
.site-name-text,
.logo-text,
.widget-title,
.menu-item,
.soranooto-mobile-toggle,
.soranooto-bottom-path-button {
  color: var(--sn-deep-sea) !important;
}

/* Previously pale-gray surfaces -> shoreline blue */
.search-box,
.search-edit,
.soranooto-mobile-toggle,
.soranooto-bottom-path-button,
.widget-title,
.sidebar h2,
.sidebar h3 {
  background-color: var(--sn-shoreline) !important;
}

/* Header menu */
.soranooto-mobile-toggle {
  border-color: rgba(0, 33, 71, .16) !important;
}

/* Bottom navigation */
@media (max-width:640px) {
  .mobile-footer-menu,
  .mobile-menu-buttons {
    border-color: rgba(0, 33, 71, .10) !important;
  }

  .soranooto-bottom-path-button {
    background: var(--sn-shoreline) !important;
  }

  .sn-road {
    stroke: var(--sn-deep-sea) !important;
    opacity: .26;
  }

  .sn-bookmark,
  .sn-notice {
    stroke: var(--sn-deep-sea) !important;
  }
}

/* Keep secondary prose visually softer.
   Do not turn every secondary line into saturated blue. */
.entry-meta,
.breadcrumb,
.date-tags,
.footer,
.footer-bottom,
.copyright {
  color: rgba(0, 33, 71, .62);
}


/* =====================================================
   SORANOOTO BLUE SCALE + ROAD V7

   深海       #002147
   波打ち際   #F0F8FF
   ===================================================== */

:root{
  --sn-deep:#002147;
  --sn-shore:#F0F8FF;
  --sn-shore-2:#E7F2FC;
  --sn-blue-mid:#7FA9D8;
  --sn-blue-line:#A8C5E2;
}

/* ---------- 黒 → 深海 ---------- */

body,
.article,
.entry-content,
.entry-content p,
.entry-content li,
.entry-title,
h1,h2,h3,h4,h5,h6,
.site-name-text,
.logo-text,
input,
textarea,
button{
  color:var(--sn-deep) !important;
}

/* ---------- グレー面 → 波打ち際 ---------- */

.entry-content h2,
.article h2,
.widget-title,
.sidebar h2,
.sidebar h3,
.search-box,
.search-form,
.search-edit,
.soranooto-search-area,
.soranooto-bottom-path,
.soranooto-mobile-toggle{
  background-color:var(--sn-shore) !important;
}

/* H2 */
.entry-content h2,
.article h2{
  border:none !important;
  color:var(--sn-deep) !important;
}

/* 補助文字は青灰色 */
.breadcrumb,
.breadcrumb a,
.entry-meta,
.footer,
.footer-bottom,
.copyright,
.soranooto-search-help{
  color:rgba(0,33,71,.55) !important;
}

/* 枠線 */
.search-box,
.search-edit,
input[type="search"],
.soranooto-mobile-toggle{
  border-color:rgba(0,33,71,.16) !important;
}

/* ---------- スマホ ---------- */

@media(max-width:640px){

  /* メニュー */
  .soranooto-mobile-toggle.sn-menu-final{
    width:auto !important;
    min-width:116px !important;
    height:44px !important;
    padding:0 15px !important;

    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:8px !important;

    color:var(--sn-deep) !important;
    background:var(--sn-shore) !important;

    border:1px solid rgba(0,33,71,.20) !important;
    border-radius:15px !important;
    box-shadow:none !important;
  }

  .sn-bookmark-final{
    width:19px;
    height:21px;
    fill:none;
    stroke:var(--sn-deep);
    stroke-width:1.8;
    stroke-linejoin:round;
  }

  .sn-menu-final span{
    font-size:14px;
    font-weight:600;
    letter-spacing:.02em;
  }

  /* ---------- いつもの道 ---------- */

  .soranooto-bottom-path{
    background:var(--sn-shore) !important;
  }

  .soranooto-bottom-path-button.sn-road-button-final{
    position:relative;
    overflow:hidden;

    width:100%;
    min-height:64px !important;

    border:0 !important;
    background:
      linear-gradient(
        180deg,
        #F7FBFF 0%,
        var(--sn-shore) 100%
      ) !important;

    color:var(--sn-deep) !important;
  }

  .sn-road-final{
    position:absolute;
    inset:0;

    width:100%;
    height:100%;

    pointer-events:none;
  }

  .sn-road-horizon{
    fill:none;
    stroke:var(--sn-blue-line);
    stroke-width:1.2;
    opacity:.7;
  }

  .sn-road-surface{
    fill:#DDECF9;
    opacity:.92;
  }

  .sn-road-edge{
    fill:none;
    stroke:#729CC6;
    stroke-width:2;
    stroke-linecap:round;
  }

  .sn-road-center{
    fill:none;
    stroke:#FFFFFF;
    stroke-width:2.5;
    stroke-linecap:round;
  }

  .sn-road-shore{
    fill:none;
    stroke:#B8D0E7;
    stroke-width:1.4;
    opacity:.75;
  }

  .sn-road-title{
    position:relative;
    z-index:3;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    min-height:64px;

    color:var(--sn-deep);
    font-size:15px;
    font-weight:700;
    letter-spacing:.04em;

    text-shadow:
      0 1px 0 rgba(255,255,255,.95),
      0 0 6px rgba(255,255,255,.9);
  }

  /* 下部ナビの黒も深海へ */
  .mobile-menu-buttons a,
  .mobile-menu-buttons button,
  .mobile-footer-menu a,
  .mobile-footer-menu button{
    color:var(--sn-deep) !important;
  }

  .mobile-menu-buttons svg,
  .mobile-footer-menu svg{
    color:var(--sn-deep) !important;
    fill:currentColor;
  }
}


/* SORANOOTO_UI_FIX_V8 */

:root{
  --sn-deep:#002147;
  --sn-shore:#F0F8FF;
}

/* 検索エリア全体：グレー → 波打ち際ブルー */
.search-box,
.search-form,
.search-edit,
.search-menu-content,
.search-menu-content .search-box,
.soranooto-search-area,
.soranooto-search-wrap,
.soranooto-search-container{
  background:var(--sn-shore)!important;
}

/* 検索帯の親も可能な範囲で統一 */
.search-box-menu,
.search-menu-content,
.search-menu-content > div{
  background-color:var(--sn-shore)!important;
}

/* 右上メニュー */
@media(max-width:640px){

  .soranooto-mobile-toggle.sn-menu-v8{
    min-width:116px!important;
    height:44px!important;
    padding:0 15px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:9px!important;
    background:var(--sn-shore)!important;
    color:var(--sn-deep)!important;
    border:1px solid rgba(0,33,71,.18)!important;
    border-radius:15px!important;
    box-shadow:none!important;
  }

  .sn-bookmark-v8{
    width:17px;
    height:21px;
    fill:none;
    stroke:var(--sn-deep);
    stroke-width:1.7;
    stroke-linejoin:round;
    flex:none;
  }

  .sn-menu-v8 span{
    color:var(--sn-deep)!important;
    font-size:14px!important;
    font-weight:600!important;
  }

  .sn-notice-v8{
    display:block;
    width:22px;
    height:22px;
    margin:0 auto 2px;
    fill:none;
    stroke:var(--sn-deep);
    stroke-width:1.6;
    stroke-linecap:round;
    stroke-linejoin:round;
  }
}

/* SORANOOTO_BLUE_UNIFY_V9 */
:root{
  --sn-deep:#002147;
  --sn-shore:#F0F8FF;
  --sn-shore-2:#EAF4FD;
}

/* JAトップの残存グレーをブルー系へ */
.home .main,
.home .content,
.home .entry-content,
.home .search-menu-content,
.home .search-menu-content > div,
.home .search-box,
.home .search-form,
.home .search-edit,
.home .breadcrumb,
.home .breadcrumb-container{
  background-color:var(--sn-shore)!important;
}

/* 検索帯 */
.search-menu-content,
.search-menu-content > div,
.search-box,
.search-form,
.search-edit,
.search-box-menu,
.soranooto-search-area,
.soranooto-search-wrap,
.soranooto-search-container{
  background:var(--sn-shore)!important;
}

/* H2・グレー面 */
.entry-content h2,
.article h2,
.widget-title,
.sidebar h2,
.sidebar h3{
  background:var(--sn-shore)!important;
  color:var(--sn-deep)!important;
  border:none!important;
}

/* 補助グレーも青灰色へ */
.breadcrumb,
.breadcrumb a,
.entry-meta,
.footer,
.footer-bottom,
.copyright,
.search-menu-content p,
.soranooto-search-help{
  color:rgba(0,33,71,.55)!important;
}

/* 下部アイコン・文字 */
.mobile-menu-buttons a,
.mobile-menu-buttons button,
.mobile-footer-menu a,
.mobile-footer-menu button{
  color:var(--sn-deep)!important;
}

@media(max-width:640px){

  .sn-menu-v9{
    min-width:118px!important;
    height:44px!important;
    padding:0 15px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;
    background:var(--sn-shore)!important;
    color:var(--sn-deep)!important;
    border:1px solid rgba(0,33,71,.18)!important;
    border-radius:15px!important;
  }

  .sn-bookmark-v9{
    width:18px;
    height:21px;
    fill:none;
    stroke:var(--sn-deep);
    stroke-width:1.8;
    stroke-linejoin:round;
  }

  .sn-menu-v9 span{
    font-size:14px!important;
    font-weight:600!important;
  }

  .sn-notice-v9{
    display:block;
    width:22px;
    height:22px;
    margin:0 auto 2px;
    fill:none;
    stroke:var(--sn-deep);
    stroke-width:1.6;
    stroke-linecap:round;
    stroke-linejoin:round;
  }

  /* いつもの道：文字を大きく、道路から浮かせる */
  .soranooto-bottom-path-button.sn-path-click-v9,
  .soranooto-bottom-path-button{
    position:relative!important;
    overflow:hidden!important;
    background:var(--sn-shore)!important;
  }

  .sn-road-title,
  .soranooto-bottom-path-button span{
    position:relative!important;
    z-index:4!important;
    font-size:18px!important;
    font-weight:800!important;
    letter-spacing:.04em!important;
    color:var(--sn-deep)!important;
    text-shadow:
      0 0 2px #fff,
      0 0 4px #fff,
      0 1px 0 #fff!important;
  }

  .sn-road-final{
    opacity:.72!important;
  }
}

/* =====================================================
   SORANOOTO BLUE SCALE FINAL V10

   Deep Sea   #002147
   Shoreline  #F0F8FF
   ===================================================== */

:root{
  --sn-deep:#002147;
  --sn-shore:#F0F8FF;
}

/* 残存グレースケール → Shoreline */
.search-menu-content,
.search-box-menu,
.search-menu-content .search-box,
.soranooto-search-area,
.soranooto-search-wrap,
.soranooto-search-container,
.breadcrumb-container,
.breadcrumb,
.mobile-menu-buttons,
.mobile-footer-menu,
.widget-title,
.sidebar h2,
.sidebar h3,
.entry-content h2,
.article h2{
  background-color:var(--sn-shore)!important;
}

/* 検索入力そのものは白を維持 */
.search-menu-content input,
.search-box input,
.search-edit{
  background:#fff!important;
}

/* 黒系UI文字・アイコン → Deep Sea */
.mobile-menu-buttons a,
.mobile-menu-buttons button,
.mobile-footer-menu a,
.mobile-footer-menu button,
.widget-title,
.entry-content h2,
.article h2{
  color:var(--sn-deep)!important;
}

/* 薄いグレー文字 → 青灰色 */
.breadcrumb,
.breadcrumb a,
.search-menu-content p,
.entry-meta,
.footer,
.footer-bottom,
.copyright{
  color:rgba(0,33,71,.55)!important;
}

@media(max-width:640px){

  /* いつもの道：文字を大きく＋太い白縁 */
  .soranooto-bottom-path-button span,
  .sn-road-title{
    font-size:19px!important;
    font-weight:800!important;
    color:var(--sn-deep)!important;

    -webkit-text-stroke:3px #fff;
    paint-order:stroke fill;

    text-shadow:
      0 0 3px #fff,
      0 0 7px #fff,
      0 1px 2px rgba(0,33,71,.18)!important;

    position:relative!important;
    z-index:10!important;
  }

  .soranooto-bottom-path-button{
    background:var(--sn-shore)!important;
  }

  .sn-road-final{
    opacity:.66!important;
  }
}

/* SORANOOTO_BLUE_SEARCH_BOTTOM_RESET_V11 */
:root{
  --sn-deep:#002147;
  --sn-shore:#F0F8FF;
}

/* 検索ボックス周辺の帯をブルースケールへ */
.home .search-menu-content,
.home .search-box-menu,
.home .search-box,
.home .search-form,
.home .search-edit,
.home .soranooto-search-area,
.home .soranooto-search-wrap,
.home .soranooto-search-container,
.home *:has(> .search-box),
.home *:has(> .search-form){
  background-color:var(--sn-shore)!important;
}

/* 検索入力欄そのものは白 */
.home .search-box input,
.home .search-form input,
.home input[type="search"]{
  background:#fff!important;
}

/* 下部メニューバーは元の白へ */
@media(max-width:640px){

  .mobile-menu-buttons,
  .mobile-footer-menu,
  .mobile-menu-buttons > *,
  .mobile-footer-menu > *{
    background:#fff!important;
  }

  /* いつもの道だけブルー面を残す */
  .soranooto-bottom-path,
  .soranooto-bottom-path-button{
    background:var(--sn-shore)!important;
  }

  /* 文字の白縁は太めを維持 */
  .soranooto-bottom-path-button span,
  .sn-road-title{
    -webkit-text-stroke:3px #fff!important;
    paint-order:stroke fill!important;
    text-shadow:
      0 0 3px #fff,
      0 0 6px #fff,
      0 1px 2px rgba(0,33,71,.18)!important;
  }
}

/* =====================================================
   SORANOOTO EXACT LIVE SEARCH BLUE V12
   現物HTML:
   .soranooto-wiki-search
   .soranooto-search-inner
   .soranooto-search-input
   .soranooto-search-note
   ===================================================== */

:root{
  --sn-deep:#002147;
  --sn-shore:#F0F8FF;
}

/* 検索BOXを囲っている実物のグレー帯 */
.soranooto-wiki-search{
  background:#F0F8FF !important;
}

/* 検索内部の実物コンテナ */
.soranooto-search-inner{
  background:#F0F8FF !important;
}

/* 入力欄そのものは白 */
.soranooto-search-input{
  background:#fff !important;
  color:#002147 !important;
}

/* 検索下の説明エリアもグレーを使わない */
.soranooto-search-note{
  background:#F0F8FF !important;
  color:rgba(0,33,71,.55) !important;
}

/* 下部バーは白を固定 */
@media(max-width:640px){
  .mobile-menu-buttons,
  .mobile-footer-menu,
  .mobile-menu-buttons > *,
  .mobile-footer-menu > *{
    background:#fff !important;
  }

  /* いつもの道だけAlice Blue */
  .soranooto-bottom-path,
  .soranooto-bottom-path-button{
    background:#F0F8FF !important;
  }

  /* 文字を道路からさらに分離 */
  .soranooto-bottom-path-button span,
  .sn-road-title{
    font-size:19px !important;
    font-weight:800 !important;
    color:#002147 !important;
    -webkit-text-stroke:4px #fff !important;
    paint-order:stroke fill !important;
    text-shadow:
      0 0 4px #fff,
      0 0 8px #fff,
      0 1px 2px rgba(0,33,71,.16) !important;
  }
}


/* =====================================================
   SORANOOTO SEARCH BAND CANONICAL BLUE V13
   実HTML現物:
   #content-top
   .content-top-in
   .widget-content-top
   .textwidget
   .soranooto-wiki-search
   .soranooto-search-inner
   ===================================================== */

:root{
  --sn-deep:#002147;
  --sn-shore:#F0F8FF;
}

/* 検索帯の外側から全部 Alice Blue */
#content-top,
.content-top,
#content-top-in,
.content-top-in,
.widget-content-top,
.widget-content-top.widget_custom_html,
.widget-content-top .textwidget,
.soranooto-wiki-search,
.soranooto-search-inner,
.soranooto-search-note{
  background-color:#F0F8FF !important;
}

/* 検索入力欄だけ白 */
.soranooto-search-input{
  background-color:#fff !important;
  color:#002147 !important;
  border-color:rgba(0,33,71,.18) !important;
}

/* 検索アイコン・placeholderも青灰色 */
.soranooto-search-input::placeholder{
  color:rgba(0,33,71,.44) !important;
}

.soranooto-search-note{
  color:rgba(0,33,71,.55) !important;
}

/* 下部バー本体は白へ戻す */
@media(max-width:640px){

  .mobile-menu-buttons,
  .mobile-footer-menu,
  .mobile-menu-buttons > *,
  .mobile-footer-menu > *{
    background:#fff !important;
  }

  /* いつもの道だけ別面 */
  .soranooto-bottom-path,
  .soranooto-bottom-path-button{
    background:#F0F8FF !important;
  }

  .soranooto-bottom-path-button span,
  .sn-road-title{
    font-size:19px !important;
    font-weight:800 !important;
    color:#002147 !important;
    -webkit-text-stroke:4px #fff !important;
    paint-order:stroke fill !important;
    text-shadow:
      0 0 4px #fff,
      0 0 8px #fff,
      0 1px 2px rgba(0,33,71,.16) !important;
  }
}


/* SORANOOTO_CANONICAL_UI_V14 */

:root{
  --sn-deep:#002147;
  --sn-shore:#F0F8FF;
}

/* 元のLauncherは非表示。本体は残す */
@media(max-width:640px){

  .soranooto-path-launcher{
    display:none!important;
  }

  .soranooto-mobile-toggle{
    min-width:116px!important;
    height:44px!important;
    padding:0 15px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;

    background:#F0F8FF!important;
    color:#002147!important;

    border:1px solid rgba(0,33,71,.18)!important;
    border-radius:15px!important;
    box-shadow:none!important;
  }

  .sn-bookmark-canonical{
    width:18px;
    height:21px;
    fill:none;
    stroke:#002147;
    stroke-width:1.8;
    stroke-linejoin:round;
  }

  .soranooto-bottom-path{
    flex:2 1 48%!important;
    min-width:42%!important;
  }

  .soranooto-bottom-path-button{
    position:relative;
    overflow:hidden;

    width:100%;
    min-height:62px;

    border:0!important;
    background:#F0F8FF!important;
    color:#002147!important;
  }

  .sn-road-canonical{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    pointer-events:none;
  }

  .sn-road-canonical .road-body{
    fill:#DCECF9;
  }

  .sn-road-canonical .road-edge{
    fill:none;
    stroke:#7DA8D1;
    stroke-width:2;
  }

  .sn-road-canonical .road-line{
    fill:none;
    stroke:#fff;
    stroke-width:2.8;
    stroke-linecap:round;
  }

  .soranooto-bottom-path-button span{
    position:relative;
    z-index:5;

    font-size:19px!important;
    font-weight:800!important;

    color:#002147!important;

    -webkit-text-stroke:4px #fff;
    paint-order:stroke fill;

    text-shadow:
      0 0 4px #fff,
      0 0 8px #fff!important;
  }
}

