  /*
  Theme Name: ikuSpot Child
  Template:   generatepress
  */

  /* =============== 0) Settings =============== */
  :root{
    /* spacing */
    --spot-space-top: clamp(30px, 5vw, 40px);
    --spot-space-bottom: clamp(24px, 3.2vw, 44px);

    --card-min-h: 10vh;

    /* title */
    --title-pad-x: .6rem;

    /* theme colors（白で統一） */
    --canvas-bg: #ffffff;
    --card-bg:   #ffffff;
    --card-border: rgba(15,23,42,.06);

    /* shadows */
    --shadow-base: 0 2px 8px rgba(0,0,0,.06);
    --shadow-card: 0 8px 24px rgba(0,0,0,.06), 0 2px 6px rgba(0,0,0,.04);
    --card-shadow: var(--shadow-card);

    /* components */
    --card-radius: 0px; /* 角丸なし */

    /* favorites */
    --fav-size: clamp(36px, 4.4vw, 44px);
    --fav-nudge-y: -2px;
    --fav-icon-shift-x: 0px;
    --fav-icon-shift-y: 0px;
    --fav-edge-gap: clamp(14px, 3.6vw, 22px);

    /* caption animation */
    --char-gap: .035s;
    --char-start-delay: .08s;
    --char-ease: cubic-bezier(.16,.84,.19,1);
    --char-dur: .44s;

    /* map caption tops */
    --caption-top-pc: 112px;
    --caption-top-tab: 120px;
    --caption-top-sp: calc(env(safe-area-inset-top, 0px) + 72px);

    /* map dots */
    --map-dots-bottom: 88px;
    --media-toggle-left: calc(env(safe-area-inset-left, 0px) + 14px);
    --media-toggle-bottom: calc(env(safe-area-inset-bottom, 0px) + 14px);
    --media-toggle-bg: rgba(248,249,251,.92);
    --media-toggle-pill-bg: #ffffff;
    --media-toggle-active-bg: #2f74ff;
    --media-toggle-active-fg: #ffffff;
    --media-toggle-inactive-fg: #475569;
    --media-toggle-shadow: 0 10px 24px rgba(15,23,42,.18), inset 0 1px 0 rgba(255,255,255,.65);

    /* map heights */
    --map-min: 480px;
    --map-max: 1000px;
    --map-wrap-current: 78vh;
    --map-slide-current: 78vh;
    --map-wrap-svh: 78svh;
    --map-slide-svh: 82svh;

    /* bleed fix（フルブリード左右1px対策） */
    --map-bleed-fix: 2px;

  /* brand / buttons (Home) */
  --brand: #FFFFFF;

    /* fishing icon (home search panel) */
    --iks-fish-seq-1: url("https://ikukore.jp/wp-content/uploads/2026/02/釣り_たらす.png");
    --iks-fish-seq-2: url("https://ikukore.jp/wp-content/uploads/2026/02/釣り_あたり.png");
    --iks-fish-seq-3: url("https://ikukore.jp/wp-content/uploads/2026/02/釣り_たらす.png");
    --iks-fish-seq-4: url("https://ikukore.jp/wp-content/uploads/2026/02/釣り_あたり.png");
    --iks-fish-seq-5: url("https://ikukore.jp/wp-content/uploads/2026/02/釣り_ひっぱる.png");
    --iks-fish-random: url("https://ikukore.jp/wp-content/uploads/2026/02/釣り_空き缶.png");

    /* badges palette */
    --badge1-bg:#ecfeff; --badge1-bd:#bae6fd; --badge1-fg:#075985;
    --badge2-bg:#f5f3ff; --badge2-bd:#ddd6fe; --badge2-fg:#5b21b6;
    --badge3-bg:#fdf2f8; --badge3-bd:#fbcfe8; --badge3-fg:#9d174d;
    --badge4-bg:#ecfdf5; --badge4-bd:#bbf7d0; --badge4-fg:#065f46;
    --badge5-bg:#fffbeb; --badge5-bd:#fde68a; --badge5-fg:#92400e;
    --badge6-bg:#eef2ff; --badge6-bd:#c7d2fe; --badge6-fg:#3730a3;

    /* card gap */
    --card-gap-y: clamp(128px, 24svh, 256px);

    /* shared bottom offset for floating buttons */
    --floating-bottom: calc(env(safe-area-inset-bottom, 0px) + clamp(14px, 3.6vw, 22px));
    /* mobile toolbar bump (used to lift fixed buttons above browser chrome) */
    --spot-toolbar-bump: 0px;
    /* unified baseline for floating UI (grid / pager arrows) */
    --cta-bottom: calc(var(--floating-bottom) + var(--spot-toolbar-bump, 0px));
    --cta-size-grid: var(--pager-btn-size, 56px);
    --cta-size-pager: var(--pager-btn-size, 56px);
    /* live alignment anchors */
    --cta-bottom-aligned: var(--cta-bottom);
  }

  @media (max-width:1024px){
    :root{
      --map-dots-bottom: 96px;
      --map-wrap-current: 74vh;
      --card-gap-y: clamp(102px, 18vh, 240px);
    }
  }
  @media (max-width:768px){
    :root{
      --spot-space-top: clamp(30px, 5vw, 40px);
      --spot-space-bottom: clamp(20px, 3vw, 36px);
      --map-dots-bottom: 32px;
      --map-min: 360px;
      --map-mobile-clamp: clamp(360px, 66vh, 520px);
      --map-wrap-current: var(--map-mobile-clamp);
      --map-slide-current: var(--map-mobile-clamp);
      --spot-toolbar-bump: clamp(120px, 22vw, 160px);
    }
  }
  @media (max-width:480px){
    :root{
      --map-min: 320px;
      --map-mobile-clamp: clamp(320px, 70vh, 460px);
      --map-wrap-current: var(--map-mobile-clamp);
      --map-slide-current: var(--map-mobile-clamp);
    }
  }

  @media (prefers-color-scheme: dark){
    :root{
      --media-toggle-bg: rgba(15,23,42,.78);
      --media-toggle-pill-bg: rgba(18,27,53,.9);
      --media-toggle-inactive-fg: #e0e7ff;
      --media-toggle-shadow: 0 8px 20px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.08);
    }
  }

  /* =============== 1) Reset & Base =============== */
  html{ box-sizing:border-box; overflow-x:hidden; }
  *,*::before,*::after{ box-sizing:inherit; }

  /* Font: Noto Sans JP (loaded via Google Fonts in functions.php) */
  @font-face{
    font-family: "Mamelon";
    src:
      local("Mamelon-5-Hi-Regular"),
      local("Mamelon 5 Hi Regular"),
      local("Mamelon-4-Hi-Regular"),
      local("Mamelon 4 Hi Regular"),
      local("Mamelon-3-Hi-Regular"),
      local("Mamelon 3 Hi Regular"),
      local("Mamelon"),
      local("マメロン");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
  }

  body{
    margin:0; padding:0;
    width:100%; max-width:100%;
    overflow-x:hidden; touch-action:pan-y;
    font-family:'Noto Sans JP',sans-serif;
    padding-bottom:120px; /* FAB space（tax-locationでは下で上書き） */
    background: var(--canvas-bg);
  }
  body.tax-location{ padding-bottom:0; }
  /* NOTE:
     Avoid setting overscroll-behavior on html. On iOS Safari this can
     break scroll chaining and prevent reaching the footer on single pages. */

  /* iOS Safari: detail/single では scroll chaining を止めない */
  @supports (-webkit-touch-callout: none){
    body.tax-location,
    body.single-spot,
    body.tax-location.iks-detail-open{
      overscroll-behavior-y: auto;
    }

    /* Safariで下端に到達できないケースの保険（footerへ到達するための余白） */
    body.single-spot #primary,
    body.tax-location .location-archive.is-detail-open{
      padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 140px);
    }

    /* Safari: 横スクロール要素で縦スクロール連鎖が止まるのを避ける */
    .insta-scroll,
    body.tax-location .map-slider,
    body.single-spot .map-slider,
    .feature-slider__track{
      overscroll-behavior: auto;
    }
  }

  /* 1.1) フォーム/ボタンのフォント継承（iOS/Safari対策） */
  button, input, select, textarea{ font-family:'Noto Sans JP',sans-serif; }

  /* =============== 2) Layout（幅・余白） =============== */
  body.tax-location .grid-container,
  body.tax-location .site-content,
  body.tax-location .inside-article,
  body.tax-location .content-area,
  body.tax-location #primary,
  body.tax-location #content{
    background: transparent;
    margin: 0 auto;
    max-width: none;
    width: 100%;
    padding: 0;
    box-shadow:none;
    border:0;
    float: none;
  }
  body.tax-location .site-content{
    display: block;
  }
  body.tax-location .content-area,
  body.tax-location #primary{
    float: none;
    clear: both;
    width: 100%;
    max-width: none;
    flex: 0 0 100%;
  }
  body.tax-location #site-content{
    padding-top: 0;
    margin-top: 0;
  }
  body.tax-location .widget-area,
  body.tax-location .sidebar,
  body.tax-location #secondary{
    display: none;
  }
  /* /items and /articles should use the same full-width shell as / and /spots */
  body:is(.page-items, .page-waza, .page-aruaru, .page-articles) .grid-container,
  body:is(.page-items, .page-waza, .page-aruaru, .page-articles) .site-content,
  body:is(.page-items, .page-waza, .page-aruaru, .page-articles) .inside-article,
  body:is(.page-items, .page-waza, .page-aruaru, .page-articles) .content-area,
  body:is(.page-items, .page-waza, .page-aruaru, .page-articles) #primary,
  body:is(.page-items, .page-waza, .page-aruaru, .page-articles) #content{
    background: transparent;
    margin: 0 auto;
    max-width: none;
    width: 100%;
    padding: 0;
    box-shadow: none;
    border: 0;
    float: none;
  }
  body:is(.page-items, .page-waza, .page-aruaru, .page-articles) .site-content{
    display: block;
  }
  body:is(.page-items, .page-waza, .page-aruaru, .page-articles) .content-area,
  body:is(.page-items, .page-waza, .page-aruaru, .page-articles) #primary{
    float: none;
    clear: both;
    width: 100%;
    max-width: none;
    flex: 0 0 100%;
  }
  body:is(.page-items, .page-waza, .page-aruaru, .page-articles) #site-content{
    padding-top: 0;
    margin-top: 0;
  }
  body:is(.page-items, .page-waza, .page-aruaru, .page-articles) .widget-area,
  body:is(.page-items, .page-waza, .page-aruaru, .page-articles) .sidebar,
  body:is(.page-items, .page-waza, .page-aruaru, .page-articles) #secondary{
    display: none;
  }
  body:is(.page-items, .page-waza, .page-aruaru, .page-articles) #page,
  body:is(.page-items, .page-waza, .page-aruaru, .page-articles) .site{
    margin-top: 0;
    padding-top: 0;
  }
  .spot-card-box{ padding-top:var(--spot-space-top); padding-bottom:var(--spot-space-bottom); }

  /* =============== 2.6) single-spot：直ページの先頭余白を削除（ヘッダー直下にMapを寄せる） =============== */
  body.single-spot #content,
  body.single-spot .site-content{
    padding-top: 0;
    margin-top: 0;
  }
  body.single-spot #page,
  body.single-spot .site,
  body.single-spot .grid-container,
  body.single-spot #primary,
  body.single-spot .content-area,
  body.single-spot .site-main,
  body.single-spot .inside-article{
    padding-top: 0;
    margin-top: 0;
  }
  /* =============== 2.61) single-spot：ヘッダーの縦幅を詰める =============== */
  body.single-spot{
    --single-brand-icon: clamp(34px, 4.2vw, 46px);
    --single-brand-extra-h: clamp(18px, 2.8vw, 26px);
    --single-brand-gap: 6px;
  }
  body.single-spot #site-header,
  body.single-spot .site-header{
    padding-top: 0;
    padding-bottom: 0;
  }
  body.single-spot .inside-header{
    padding-top: 0;
    padding-bottom: 0;
    min-height: 0;
  }
  body.single-spot .site-branding{
    margin-top: 0;
    margin-bottom: 0;
  }
  body.single-spot .site-branding .site-title,
  body.single-spot .site-branding .site-title a{
    margin: 0;
    line-height: 1.1;
  }
  body.single-spot .site-branding .site-title a,
  body.single-spot .site-logo a,
  body.single-spot .main-title a{
    display: inline-flex;
    align-items: center;
    gap: var(--single-brand-gap);
    font-size: 0; /* hide text but keep it accessible */
    line-height: 0;
    text-decoration: none;
  }
  body.single-spot .site-branding .site-title a::before,
  body.single-spot .site-logo a::before,
  body.single-spot .main-title a::before{
    content: "";
    display: block;
    width: var(--single-brand-icon);
    height: var(--single-brand-icon);
    background: url("https://ikukore.jp/wp-content/uploads/2026/02/育_静止.png") center/contain no-repeat;
  }
  body.single-spot .site-branding .site-title a::after,
  body.single-spot .site-logo a::after,
  body.single-spot .main-title a::after{
    content: "";
    display: block;
    height: var(--single-brand-extra-h);
    width: calc(var(--single-brand-extra-h) * 2.4);
    background-image:
      url("https://ikukore.jp/wp-content/uploads/2026/02/5.png"),
      url("https://ikukore.jp/wp-content/uploads/2026/02/6.png");
    background-repeat: no-repeat, no-repeat;
    background-size: contain, contain;
    background-position: left center, right center;
  }
  body.single-spot .site-logo img,
  body.single-spot .site-logo svg{
    display: none;
  }

  /* =============== 2.62) single-spot：taxonomy-location（一覧）から遷移した場合、左上ロゴを"一覧へ"に差し替える =============== */
  body.single-spot .site-logo a.iks-header-backlink,
  body.single-spot .site-branding .site-title a.iks-header-backlink,
  body.single-spot .main-title a.iks-header-backlink{
    font-size: 16px;
    line-height: 1.1;
    gap: 0;
    padding: 6px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: #111;
    font-weight: 800;
    text-decoration: none;
  }
  body.single-spot .site-logo a.iks-header-backlink::before,
  body.single-spot .site-logo a.iks-header-backlink::after,
  body.single-spot .site-branding .site-title a.iks-header-backlink::before,
  body.single-spot .site-branding .site-title a.iks-header-backlink::after,
  body.single-spot .main-title a.iks-header-backlink::before,
  body.single-spot .main-title a.iks-header-backlink::after{
    content: none;
    display: none;
  }
  body.single-spot .main-navigation{
    padding-top: 0;
    padding-bottom: 0;
    min-height: 0;
  }
  body.single-spot .main-navigation .inside-navigation{
    padding-top: 0;
    padding-bottom: 0;
    min-height: 0;
  }
  body.single-spot .main-navigation .main-nav > ul > li > a{
    padding-top: 0;
    padding-bottom: 0;
    line-height: 1.2;
  }
  body.single-spot .menu-toggle,
  body.single-spot .mobile-menu-control-wrapper{
    padding-top: 0;
    padding-bottom: 0;
    min-height: 0;
  }
  body.single-spot .cards-layout{
    /* tax-location用の大きい上下マージン（--card-gap-y）を直ページでは無効化 */
    --card-gap-y: 0px;
  }
  body.single-spot .spot-card-box{
    /* カード先頭の余白（spot-space-top）も直ページでは不要 */
    padding-top: 0;
  }
  /* singleの最下部spacer（Safariでfooterに届かないケースの保険） */
  body.single-spot .iks-bottom-spacer{
    height: calc(env(safe-area-inset-bottom, 0px) + 140px);
  }
  @media (max-width:768px){
    body.single-spot .iks-bottom-spacer{
      height: calc(env(safe-area-inset-bottom, 0px) + 180px);
    }
  }

    /* =============== 2.65) single-spot：下部の内部リンク枠（関連スポット） =============== */
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related{
    margin-top: 18px;
    padding: 18px 0 0;
    border-top: 1px solid rgba(0,0,0,.08);
  }
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related__title{
    font-size: 1.05rem;
    margin: 0 0 12px;
  }
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related__block{
    margin: 16px 0 0;
  }
  /* single-spot: add 40px gap between related slider rows */
  body.single-spot .spot-related__block{
    margin: 0;
  }
  body.single-spot .spot-related__block + .spot-related__block{
    margin-top: 60px;
  }

  /* 特集スライダー（feature-slider）と同じUIをsingle内で使う */
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider{
    margin: 10px 0 18px;
  }

  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider--related{
    /* relatedはMap/Mediaの可読性を優先して大きく */
    --feature-slide-size: clamp(220px, 34vw, 420px);
    --feature-slide-gap: clamp(6px, 1.8vw, 12px);
    --feature-slide-peek: clamp(8px, 4vw, 18px);
    --feature-arrow-size: clamp(28px, 6.5vw, 40px);
    --feature-slide-adjacent-scale: .78;
    --feature-slide-small-scale: .62;

    /* paper shadow（特集カードと同じ） */
    --paper-shadow: rgba(0,0,0,.10);
    --paper-shadow-strong: rgba(0,0,0,.12);
  }

  /* related：各カードにも“紙シャドウ”（右下オフセット影） */
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider--related .feature-slider__slide{
    box-shadow: 8px 8px 0 var(--paper-shadow);
  }
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider--related .feature-slider__slide--is-center{
    box-shadow: 10px 10px 0 var(--paper-shadow-strong);
  }
  @media (hover:hover){
    body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider--related .feature-slider__slide:hover{
      box-shadow: 14px 14px 0 var(--paper-shadow-strong);
    }
  }

  /* related：横スワイプを維持しつつ、縦スクロールが止まらないようにする */
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider__track{
    /* 縦スクロールはページに任せつつ、横スワイプも許可 */
    touch-action: pan-x pan-y;
    /* Instaカード（縦長）混在時に、後続スライドが縦方向に引き伸ばされるのを防ぎつつ、
       正方形カード（Map等）は縦方向中央に置く */
    align-items: center;
  }

  /* TOP：カテゴリ別 横スライダーはカード高の差で“上の空白”が目立つため上揃えにする */
  :is(#spotCategorySliders, #itemCategorySliders, #wazaCategorySliders, #aruaruCategorySliders).spot-related--top-categories{
    border-top: 0;
    padding-top: 0;
    margin-top: 0;
  }
  :is(#spotCategorySliders, #itemCategorySliders, #wazaCategorySliders, #aruaruCategorySliders).spot-related--top-categories .feature-slider__track{
    align-items: flex-start;
  }
  :is(#spotCategorySliders, #itemCategorySliders, #wazaCategorySliders, #aruaruCategorySliders) .topcat-slider{
    /* 背景ベタ塗りでカテゴリ差を出さず、見出し装飾（アイコン/線）で区別する */
    --topcat-bg: transparent;
    margin: 0;
    padding: clamp(10px, 2.2vw, 16px) clamp(10px, 2.2vw, 16px) clamp(12px, 2.4vw, 18px);
    border: 0;
    border-radius: 0;
    background: var(--topcat-bg);
    box-shadow: none;
  }
  :is(#spotCategorySliders, #itemCategorySliders, #wazaCategorySliders, #aruaruCategorySliders) .topcat-slider + .topcat-slider{
    margin-top: 0;
  }
  :is(#spotCategorySliders, #itemCategorySliders, #wazaCategorySliders, #aruaruCategorySliders) .topcat-slider .spot-related__block{
    margin: 0;
  }
  /* TOP：カテゴリ別 横スライダー：矢印位置を育記事スライダーに合わせる */
  :is(#spotCategorySliders, #itemCategorySliders, #wazaCategorySliders, #aruaruCategorySliders) .topcat-slider .feature-slider{
    position: relative;
    margin: 0;
    --feature-nav-w: clamp(66px, 10vw, 92px);
    --feature-nav-h: clamp(152px, 21vw, 220px);
  }
  :is(#spotCategorySliders, #itemCategorySliders, #wazaCategorySliders, #aruaruCategorySliders) .topcat-slider .feature-slider__wrap{
    position: relative;
    overflow: visible;
  }
  :is(#spotCategorySliders, #itemCategorySliders, #wazaCategorySliders, #aruaruCategorySliders) .topcat-slider .feature-slider__head{
    margin-bottom: 10px;
    padding: 6px 0;
    border-radius: 0;
    background: transparent;
  }
  :is(#spotCategorySliders, #itemCategorySliders, #wazaCategorySliders, #aruaruCategorySliders) .topcat-slider .feature-slider__title{
    color: #18202a;
    font-weight: 900;
  }
  :is(#spotCategorySliders, #itemCategorySliders, #wazaCategorySliders, #aruaruCategorySliders) .topcat-slider .feature-slider__nav{
    top: 50%;
    transform: translateY(-50%);
    z-index: 8;
  }
  :is(#spotCategorySliders, #itemCategorySliders, #wazaCategorySliders, #aruaruCategorySliders) .topcat-slider .feature-slider__nav--prev{
    left: max(calc(env(safe-area-inset-left, 0px) + 6px), calc(50% - 50vw + 8px));
  }
  :is(#spotCategorySliders, #itemCategorySliders, #wazaCategorySliders, #aruaruCategorySliders) .topcat-slider .feature-slider__nav--next{
    right: max(calc(env(safe-area-inset-right, 0px) + 6px), calc(50% - 50vw + 8px));
  }

  /* TOPカテゴリスライダー：カテゴリ別の背景色差分は廃止
     （見出しアイコン + 見出し線で区別する方針） */
  @media (max-width:768px){
    :is(#spotCategorySliders, #itemCategorySliders, #wazaCategorySliders, #aruaruCategorySliders) .topcat-slider{
      padding: 8px 8px 10px;
    }
  }

body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider__inner{
    max-width: 100%;
    margin: 0;
    padding: 0;
  }
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider__head{
    margin-bottom: 10px;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
  }
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider__title{
    grid-column: 2;
    text-align: center;
    font-size: clamp(24px, 3.1vw, 34px);
    line-height: 1.25;
    letter-spacing: .01em;
  }
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider__more{
    grid-column: 3;
    justify-self: end;
    font-size: .92rem;
    text-decoration: underline;
  }
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider__title{
    display: inline-flex;
    align-items: center;
    justify-self: center;
  }
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider__title-deco{
    margin: 0 .25em;
    font-weight: 900;
    line-height: 1;
    color: inherit;
  }
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider__title-text{
    display: inline;
    text-align: center;
  }
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider__title-loc{
    color: #000000;
  }
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider__title-cat{
    color: #ff0000;
  }
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider__title-sep{
    display: inline-block;
    margin: 0 .3em;
    color: inherit;
  }

  /* ===== related：上部メタ（タイトルのみ）を"画像の上"に確保して、Insta/Mapに被せない ===== */
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider--related .feature-slider__meta{
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    padding: 8px 12px;
    min-height: clamp(48px, 7vw, 72px);
    justify-content: center;
    background: rgba(255,255,255,.96);
    color: #0f172a;
    border-bottom: 1px solid rgba(0,0,0,.06);
  }
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider--related .feature-slider__caption{
    position: static;
    padding: 0;
    margin: 0;
    background: transparent;
    color: inherit;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    backdrop-filter: none;
    max-width: none;
    width: 100%;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    transform: none;
  }
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider--related .feature-slider__caption-text{
    font-size: clamp(24px, 3.4vw, 30px);
    font-weight: 900;
    line-height: 1.4;
    padding: 0;
    text-shadow: none;
    display: block;
    -webkit-box-orient: unset;
    -webkit-line-clamp: unset;
    overflow: visible;
    text-align: center;
    transform: none;
  }

  /* related：下部メタ（住所 左 / 距離 右） */
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider--related .feature-slider__footer{
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px 10px;
    background: rgba(255,255,255,.96);
    color: #0f172a;
    border-top: 1px solid rgba(0,0,0,.06);
  }
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider--related .feature-slider__address{
    flex: 1 1 auto;
    min-width: 0;
    font-size: .78rem;
    font-weight: 700;
    color: #64748b;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider--related .feature-slider__distance{
    flex: 0 0 auto;
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .76rem;
    font-weight: 800;
    line-height: 1;
    padding: .34rem .6rem;
    border-radius: 999px;
    background: rgba(15,23,42,.88);
    color: #fff;
    white-space: nowrap;
  }

  /* Insta embedをスライド内にフィット */
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider--related .feature-slider__insta{
    position: absolute;
    inset: 0;
    display: block;
  }
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider--related .feature-slider__insta iframe,
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider--related .feature-slider__insta blockquote.instagram-media{
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    pointer-events: none;
  }

  /* related slider: spotのMap/Mediaをカード同様に表示するため、iframeをフィットさせ、クリックはカードリンクに集約 */
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider--related .feature-slider__media{ position: relative; }
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider--related .feature-slider__media iframe{
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    pointer-events: none;
  }

  /* Instaカードだけ縦長（9:16）を優先して"切れ"を防ぐ */
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider--related .feature-slider__slide--insta .feature-slider__media{
    aspect-ratio: 9 / 16;
    background: #fff;
  }

  /* related：見えたらロード用のプレースホルダー（Map/Instagram） */
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider--related .feature-slider__placeholder{
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    z-index: 1;
    pointer-events: none;
    transition: opacity .2s ease;
  }
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider--related iframe.feature-slider__lazy,
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider--related .feature-slider__insta{
    opacity: 0;
    transition: opacity .2s ease;
  }
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider--related .feature-slider__media.is-loaded iframe.feature-slider__lazy,
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider--related .feature-slider__media.is-loaded .feature-slider__insta{
    opacity: 1;
  }
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider--related .feature-slider__media.is-loaded .feature-slider__placeholder{
    opacity: 0;
  }
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider--related .feature-slider__hit{
    position: absolute;
    inset: 0;
    z-index: 4;
    display: block;
    border-radius: inherit;
  }
  body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider--related .feature-slider__hit:focus-visible{
    outline: 3px solid rgba(59,130,246,.45);
    outline-offset: 2px;
  }
  @media (max-width: 768px){
    body:is(.single-spot, .single-feature_article, .tax-location) .spot-related .feature-slider--related{
      --feature-slide-size: clamp(260px, 82vw, 360px);
      --feature-slide-gap: clamp(6px, 4vw, 12px);
      --feature-slide-peek: clamp(10px, 12vw, 18px);
      --feature-arrow-size: 34px;
    }
  }


/* =============== 2.5) tax-location：外側のスナップ無効化 =============== */
  body.tax-location #vp-root,
  body.tax-location .location-archive,
  body.tax-location .cards-layout{ scroll-snap-type: initial; }
  body.tax-location .spot-card{
    scroll-snap-align: initial;
    scroll-snap-stop: normal;
  }
  body.tax-location{ overscroll-behavior-y: auto; }
  html:has(body.tax-location){
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  /* =============== 2.55) tax-location sticky topbar =============== */
  body.tax-location{
    --iks-topbar-height: 0px;
    --iks-topbar-top: 0px;
    --iks-topbar-offset: 0px;
  }
  body.tax-location.iks-detail-open{
    --iks-topbar-height: 40px;
    --iks-topbar-offset: calc(var(--iks-topbar-height) + var(--iks-topbar-top) + env(safe-area-inset-top, 0px));
  }
  body.admin-bar.tax-location.iks-detail-open{
    --iks-topbar-top: 32px;
  }
  @media (max-width:782px){
    body.admin-bar.tax-location.iks-detail-open{
      --iks-topbar-top: 46px;
    }
  }
  body.tax-location .location-archive-topbar{
    display: none;
    position: fixed;
    top: var(--iks-topbar-top);
    left: 0;
    right: 0;
    z-index: 1500;
    margin: 0;
    width: 100%;
    background: rgba(255,255,255,.6);
    border-bottom: 1px solid rgba(15,23,42,.08);
    backdrop-filter: blur(10px);
  }
  body.tax-location.iks-detail-open .location-archive-topbar{
    display: block;
  }
  body.tax-location .location-archive-topbar__inner{
    height: calc(var(--iks-topbar-height) + env(safe-area-inset-top, 0px));
    padding: env(safe-area-inset-top, 0px) 12px 0 env(safe-area-inset-left, 0px);
    display: flex;
    align-items: center;
    position: relative;
  }
  body.tax-location .location-archive-topbar__back{
    appearance: none;
    border: 0;
    background: transparent;
    color: #0f172a;
    font-size: .9rem;
    font-weight: 800;
    letter-spacing: .01em;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin: 0;
    padding: 0;
  }
  body.tax-location .location-archive-topbar__title{
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    max-width: calc(100% - 140px);
    padding: 0 6px;
    text-align: center;
    color: #2563eb;
    font-size: .95rem;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: .01em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    pointer-events: none;
  }
  @media (max-width: 480px){
    body.tax-location .location-archive-topbar__title{
      max-width: calc(100% - 110px);
      font-size: .88rem;
    }
  }
  body.tax-location.iks-detail-open .location-archive-topbar__back{
    color: #2563eb;
  }
  body.tax-location .location-archive-topbar__back:focus-visible{
    outline: 2px solid rgba(59,130,246,.4);
    outline-offset: 2px;
  }
  body.tax-location .spot-card{
    scroll-margin-top: var(--iks-topbar-offset);
  }
  body.tax-location.iks-detail-open #page,
  body.tax-location.iks-detail-open .site,
  body.tax-location.iks-detail-open .site-content,
  body.tax-location.iks-detail-open .grid-container{
    padding-top: 0;
    margin-top: 0;
  }
  /* =============== 2.6) tax-location header =============== */
  body:is(.tax-location, .has-location-header) .location-archive-header{
    /* メニューがこの中にいる場合に揃えやすくする */
    position: relative;
    padding: clamp(18px, 3vw, 32px) 12px 8px;
  }

  /* PC：検索パネルは左寄せ、ブランド行は中央寄せ */
  @media (min-width: 1024px){
    body:is(.tax-location, .has-location-header) .location-archive-header__panel{
      margin-left: 0;
      margin-right: auto;
    }
  }

  body:is(.tax-location, .has-location-header) .location-archive-header__panel{
    max-width: min(1200px, 100%);
    margin: 0 auto;
    padding: clamp(18px, 3vw, 28px) clamp(12px, 2vw, 18px) clamp(8px, 1.2vw, 12px);
    background: #bce2e8;
    border: 1px solid var(--card-border, rgba(15,23,42,.08));
    border-radius: 18px;
    box-shadow: 8px 8px 0 rgba(0,0,0,.10);
    display: flex;
    flex-direction: column;
    gap: clamp(12px, 2vw, 18px);
    position: relative;
  }

  /* Home: fishing icon on the search panel "pond" */
  @keyframes iksFishSequence{
    0%, 19.999%{ background-image: var(--iks-fish-seq-1); }
    20%, 39.999%{ background-image: var(--iks-fish-seq-2); }
    40%, 59.999%{ background-image: var(--iks-fish-seq-3); }
    60%, 79.999%{ background-image: var(--iks-fish-seq-4); }
    80%, 99.999%{ background-image: var(--iks-fish-seq-5); }
    100%{ background-image: var(--iks-fish-random); }
  }
  body.home.tax-location .location-archive-header__panel::after{
    content: "";
    position: absolute;
    right: clamp(12px, 2.6vw, 22px);
    top: calc(-1 * clamp(12px, 2.2vw, 20px) - 38px);
    width: clamp(60px, 12vw, 84px);
    height: clamp(60px, 12vw, 84px);
    background-image: var(--iks-fish-seq-1);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    animation: iksFishSequence 12s steps(1, end) forwards;
    pointer-events: none;
    z-index: 2;
  }
  @media (prefers-reduced-motion: reduce){
    body.home.tax-location .location-archive-header__panel::after{
      animation: none;
      background-image: var(--iks-fish-random);
    }
  }

  /* =============== Home (TOP): feature slider 下〜スポット見出しまでの背景帯 =============== */
  body.tax-location .location-archive-header{
    padding-bottom: 0;
  }

  body.home.tax-location .location-archive-header .feature-slider[data-context="editorial"]{
    /* TOP：特集記事 横スライダーをさらに大型化（カード/矢印/余白） */
    /* 「スライダー下から」を正確にするため、スライダー自身の下マージンを消す（TOPのみ） */
    margin-bottom: 0;

    --feature-slide-size: clamp(280px, 46vw, 460px);
    --feature-slide-gap: clamp(10px, 3.6vw, 22px);
    --feature-slide-peek: clamp(12px, 7vw, 52px);
    --feature-arrow-size: clamp(52px, 11vw, 72px);

    --feature-nav-w: clamp(66px, 10vw, 92px);
    --feature-nav-h: clamp(152px, 21vw, 220px);
    --feature-nav-font: clamp(96px, 12.4vw, 128px);

    --feature-track-pad-y: clamp(18px, 5.2vw, 34px);
  }
  /* TOP記事スライダー: trackの横幅を画面端まで広げる（max-width:1200の制限を解除） */
  body.home.tax-location .location-archive-header .feature-slider[data-context="editorial"] .feature-slider__inner{
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding-left: 0;
    padding-right: 0;
  }
  /* TOP記事スライダー：矢印をカード上ではなく画面端に配置 */
  body.home.tax-location .location-archive-header .feature-slider[data-context="editorial"] .feature-slider__wrap{
    position: relative;
    overflow: visible;
  }
  body.home.tax-location .location-archive-header .feature-slider[data-context="editorial"] .feature-slider__nav{
    z-index: 8;
  }
  body.home.tax-location .location-archive-header .feature-slider[data-context="editorial"] .feature-slider__nav--prev{
    left: max(calc(env(safe-area-inset-left, 0px) + 6px), calc(50% - 50vw + 8px));
  }
  body.home.tax-location .location-archive-header .feature-slider[data-context="editorial"] .feature-slider__nav--next{
    right: max(calc(env(safe-area-inset-right, 0px) + 6px), calc(50% - 50vw + 8px));
  }
  /* Home: hero removed; keep archive header in normal flow */
  /* padding-top はJS実測値（--iks-unified-header-h）でヘッダー直下に配置 */
  body.home.tax-location .location-archive-header{
    position: relative;
    z-index: 24;
    margin-top: 0;
    }
  @media (max-width: 768px){
    body.home.tax-location .location-archive-header{
      margin-top: 0;
    }
    body.home.tax-location .location-archive-header .feature-slider[data-context="editorial"]{
      --feature-slide-size: clamp(260px, 94vw, 380px);
      --feature-slide-gap: clamp(8px, 4.6vw, 16px);
      --feature-slide-peek: clamp(10px, 12vw, 26px);
    }
  }

  body.tax-location .location-archive-search{
    padding-left: 12px;
    padding-right: 12px;
    padding-bottom: 8px;
  }
  body.home .location-archive-search{
    padding-top: 0; /* H2上の余白はlimeband側で確保 */
    padding-bottom: 0;
  }
  body.home .location-archive-search .location-archive-header__catch{
    margin-top: 0;
  }
  body.home .location-archive-search__heading{
    margin: 0 0 clamp(10px, 2vw, 14px);
  }
  body.home .iks-home-page-title{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0px;
    margin: clamp(10px, 2.2vw, 16px) 0 0;
    font-size: clamp(1.2rem, 3.2vw, 1.8rem);
    font-weight: 900;
    line-height: 1.15;
    letter-spacing: .01em;
    color: #0f172a;
    text-align: center;
  }
  body.home a.iks-home-page-title,
  body.home a.iks-home-page-title:visited,
  body.home a.iks-home-page-title:hover,
  body.home a.iks-home-page-title:focus{
    text-decoration: none;
    color: #0f172a;
  }

  /* TOPページ：H1（育スポット）と「近い順にする」を同じ行に配置 */
  body.home .iks-home-heading-row{
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
    width: 100%;
    gap: 12px;
    margin: clamp(10px, 2.2vw, 16px) 0 0;
  }
  body.home .iks-home-page-title{
    margin: 0; /* 行内揃えのため */
    flex: 0 1 auto;
    min-width: 0;
  }
  /* 育スポット行（並び替えボタンあり）：見出しを中央、操作を右寄せ */
  body.home .iks-home-heading-row:has(.iks-home-heading-actions){
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 12px;
  }
  body.home .iks-home-heading-row:has(.iks-home-heading-actions) > .iks-home-page-title{
    grid-column: 2;
    justify-self: center;
  }
  body.home .iks-home-heading-actions{
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin-left: 0;
    flex: 0 0 auto;
  }
  body.home .iks-home-heading-row:has(.iks-home-heading-actions) > .iks-home-heading-actions{
    grid-column: 3;
    justify-self: end;
  }
  body.home .iks-home-heading-actions .location-archive-results{
    margin: 0;
    gap: 0;
  }
  body.home .iks-home-heading-status{
    margin-top: 6px;
    text-align: right;

  }
  body.home .iks-home-page-title__icon{
    width: 1.55em;
    height: 1.55em;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    color: #8edbc0;
  }
  body.home .iks-home-page-title__icon svg{
    width: 100%;
    height: 100%;
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
  body.home .location-archive-search__heading .location-archive-header__catch{
    margin: clamp(6px, 1.6vw, 10px) auto 0;
    text-align: center;
  }
  body.page-spots.tax-location .location-archive-search__heading .location-archive-header__catch{
    margin: clamp(10px, 2.2vw, 16px) auto clamp(12px, 2.6vw, 20px);
  }
  body.home.tax-location .location-archive-header__actions{
    display: flex;
    justify-content: flex-end;
    margin-top: clamp(8px, 2vw, 16px);
    padding-bottom: clamp(10px, 2vw, 18px);
  }
  body.home.tax-location .location-archive-header__actions .location-archive-results{
    margin: 0;
    gap: 0;
  }

  /* TOPページ（page-spots テンプレ）では「近い順にする」ボタンを右寄せ */
  body.home.page-template-page-spots .location-archive-header__actions{
    display: flex;
    justify-content: flex-end;
    margin-top: clamp(8px, 2vw, 16px);
    padding-bottom: clamp(10px, 2vw, 18px);
  }
  body.home.page-template-page-spots .location-archive-header__actions .location-archive-results{
    margin: 0;
    gap: 0;
  }
  @media (max-width: 640px){
    body.home.page-template-page-spots .location-archive-header__actions{
      margin-top: 8px;
    }
  }
  @media (max-width: 640px){
    body.home.tax-location .location-archive-header__actions{
      margin-top: 8px;
    }
  }

  body.home.tax-location .iks-home-limeband{
    width: 100%;
    background: transparent;
  }

  /* 検索帯の下端余白 */
  body.home.tax-location .iks-home-limeband--below-slider{
    position: relative; /* 擬似要素の基準 */
    z-index: 0;
    isolation: isolate;
    --iks-grass-h: 36px;
    --iks-grass-w: 240px;
    margin-top: 0;
    padding-top: 0;
    padding-bottom: 0;
  }
  body.home.tax-location .iks-home-limeband--below-slider > *{
    position: relative;
    z-index: 1;
  }

  /* 芝生っぽい境界（白→緑の切り替えをギザギザに） */
  body.home.tax-location .iks-home-limeband--below-slider::before{
    content: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: var(--iks-grass-h);
    /* 草を「白側」に出す（境界にかぶせる） */
    transform: translateY(calc(-1 * var(--iks-grass-h) + 1px));
    background-image: url("assets/img/grass-divider.svg");
    background-repeat: repeat-x;
    background-size: calc(var(--iks-grass-w) + 1px) var(--iks-grass-h);
    background-position: left bottom;
    z-index: 0;
    pointer-events: none;
  }

  /* 見出し側の帯（margin collapse回避のため padding で管理） */
body.home.tax-location .iks-home-limeband--heading{
    padding-top: 50px; /* H1（スポット◯件）の上に余白 */
    padding-bottom: clamp(22px, 4vw, 44px);
    background: #ffffff;
  }
  body.home.tax-location .iks-home-limeband--heading .location-archive-heading{
    margin: 0; /* 元は template 内の margin(18px 0 52px) があるので、TOPだけ上書き */
    padding: 0;
  }
  /* TOP: keep sort/view buttons above unified hero background layer */
  body.home.tax-location .location-archive-distance{
    position: relative;
    z-index: 30;
  }
  body.home.tax-location .location-archive-distance .location-archive-results{
    position: relative;
    z-index: 31;
  }

  /* Home（TOP）：一覧カードも“紙シャドウ”へ */
  body.home.tax-location{
    --grid-card-shadow: 8px 8px 0 rgba(0,0,0,.10);
    --grid-card-shadow-hover: 10px 10px 0 rgba(0,0,0,.12);
    --grid-card-shadow-active: 10px 10px 0 rgba(0,0,0,.12);
  }

  body:is(.tax-location, .has-location-header) .location-archive-header__catch{
    font-size: 18px;
    text-align: center;
    letter-spacing: .02em;
    margin: 0 auto;
    margin-top: 100px;
    margin-bottom: calc(.8rem + 30px);
    line-height: 1.4;
    max-width: min(320px, 80vw);
    font-weight: 700;
  }
  /* Home: tighten space above "きょう どこ行く？" */
  body.home.tax-location .location-archive-header__catch{
    margin-top: 0;
  }
  @media (min-width: 1024px){
    body:is(.tax-location, .has-location-header) .location-archive-header__catch{ font-size: 28px; }
  }

  body:is(.tax-location, .has-location-header) .location-archive-header__search{
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    justify-content: flex-start;
    width: auto;
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__field--geo{ flex: 0 0 auto; }
  body:is(.tax-location, .has-location-header) .location-archive-header__field--area{ flex: 0 0 auto; }
  @media (max-width: 720px){
    body:is(.tax-location, .has-location-header) .location-archive-header__search{
      gap: 6px;
    }
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__field{
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    flex: 0 0 auto;
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__geo-actions{
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: nowrap;
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__geo-btn{
    width: fit-content;
    min-width: 0;
    height: 40px;
    padding: 0 12px;
    border-radius: 10px;
    border: 0;
    background: linear-gradient(90deg, #5b6ee1, #4f8df6);
    color: #fff;
    font-size: .88rem;
    font-weight: 700;
    letter-spacing: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    cursor: pointer;
    box-shadow: 0 10px 20px rgba(79,141,246,.24), inset 0 1px 0 rgba(255,255,255,.35);
    transition: transform .15s ease, box-shadow .15s ease, filter .15s ease, opacity .15s ease;
    white-space: nowrap;
  }
  @media (hover:hover){
    body:is(.tax-location, .has-location-header) .location-archive-header__geo-btn:hover{
      transform: translateY(-1px);
      box-shadow: 0 14px 26px rgba(79,141,246,.28), inset 0 1px 0 rgba(255,255,255,.4);
    }
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__geo-btn:active{
    transform: translateY(0);
    box-shadow: 0 8px 18px rgba(79,141,246,.2), inset 0 0 0 rgba(255,255,255,0);
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__geo-btn:focus-visible{
    outline: 3px solid rgba(59,130,246,.35);
    outline-offset: 2px;
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__geo-btn[aria-busy="true"]{
    opacity: .75;
    cursor: wait;
  }
body:is(.tax-location, .has-location-header) .location-archive-header__geo-icon{
    display: none;
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__geo-status{
    display: none;
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__selects{
    display: flex;
    gap: 6px;
    align-items: center;
    flex-wrap: nowrap;
    min-width: 0;
    width: auto;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__selects::-webkit-scrollbar{
    height: 6px;
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__selects::-webkit-scrollbar-thumb{
    background: rgba(148,163,184,.5);
    border-radius: 999px;
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__selects .iks-fish-select{
    position: relative;
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    overflow: visible;
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__selects .iks-fish-select::before{
    content: none;
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__selects .iks-fish-select::after{
    content: none;
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__selects .iks-fish-select select{
    width: auto;
    min-width: 92px;
    height: 40px;
    flex: 0 0 auto;
    padding: 0 12px;
    border-radius: 10px;
    border: 1px solid #cbd5e1;
    background-color: #ffffff;
    background-image: none;
    font-size: .92rem;
    color: #0f172a;
    line-height: 1.1;
    position: relative;
    z-index: 1;
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__selects .iks-fish-select select option{
    background-color: #ffffff;
    color: #0f172a;
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__selects .iks-fish-select select option:disabled{
    color: #94a3b8;
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__selects .iks-fish-select select:disabled{
    background-color: #f1f5f9;
    border-color: #d1d5db;
    color: #64748b;
    cursor: not-allowed;
    opacity: 1;
    background-image: none;
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__input input:focus-visible,
  body:is(.tax-location, .has-location-header) .location-archive-header__selects select:focus-visible{
    outline: 3px solid rgba(59,130,246,.35);
    outline-offset: 1px;
    border-color: #93c5fd;
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__tags{
    display: flex;
    gap: 8px;
    flex-wrap: nowrap;
    overflow-x: auto;
    padding: 6px 12px 16px 2px;
    margin: 0;
    border-top: 0;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__tags::-webkit-scrollbar{
    height: 6px;
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__tags::-webkit-scrollbar-thumb{
    background: rgba(148,163,184,.6);
    border-radius: 999px;
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__tag{
    appearance: none;
    border: 1px solid #e2e8f0;
    background: #f8fafc;
    color: #6b7280;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: .8rem;
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
    flex: 0 0 auto;
    box-shadow: 8px 8px 0 rgba(0,0,0,.10);
  }
  @media (hover:hover){
    body:is(.tax-location, .has-location-header) .location-archive-header__tag:hover{
      background: #fff;
      border-color: #cbd5f5;
    }
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__tag:focus-visible{
    outline: 3px solid rgba(59,130,246,.35);
    outline-offset: 2px;
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__tag.is-active{
    background: #1d4ed8;
    border-color: #1d4ed8;
    color: #ffffff;
    box-shadow: 0 6px 18px rgba(29,78,216,.22);
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__tag--favorite{
    border-color: #e2e8f0;
    background: #f8fafc;
    color: #6b7280;
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__tag--favorite.is-active{
    border-color: #e11d48;
    background: #e11d48;
    color: #fff;
    box-shadow: 0 6px 18px rgba(225,29,72,.3);
  }

  /* Feature badges: active colors (keep favorite as-is) */
  body:is(.tax-location, .has-location-header) .location-archive-header__tag.is-active[data-feature="ベビーカー"]{
    border-color: #0ea5e9;
    background: #0ea5e9;
    color: #ffffff;
    box-shadow: 0 6px 18px rgba(14,165,233,.24);
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__tag.is-active[data-feature="雨（屋内）"]{
    border-color: #2563eb;
    background: #2563eb;
    color: #ffffff;
    box-shadow: 0 6px 18px rgba(37,99,235,.24);
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__tag.is-active[data-feature="授乳室"]{
    border-color: #a855f7;
    background: #a855f7;
    color: #ffffff;
    box-shadow: 0 6px 18px rgba(168,85,247,.24);
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__tag.is-active[data-feature="おむつ台"]{
    border-color: #f97316;
    background: #f97316;
    color: #ffffff;
    box-shadow: 0 6px 18px rgba(249,115,22,.24);
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__tag.is-active[data-feature="公園"]{
    border-color: #22c55e;
    background: #22c55e;
    color: #ffffff;
    box-shadow: 0 6px 18px rgba(34,197,94,.24);
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__tag.is-active[data-feature="キッズパーク"]{
    border-color: #f59e0b;
    background: #f59e0b;
    color: #111827;
    box-shadow: 0 6px 18px rgba(245,158,11,.26);
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__tag.is-active[data-feature="公共施設"]{
    border-color: #14b8a6;
    background: #14b8a6;
    color: #ffffff;
    box-shadow: 0 6px 18px rgba(20,184,166,.24);
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__tag.is-active[data-feature="ホテル"]{
    border-color: #db2777;
    background: #db2777;
    color: #ffffff;
    box-shadow: 0 6px 18px rgba(219,39,119,.24);
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__tag.is-active[data-feature="動物園"]{
    border-color: #84cc16;
    background: #84cc16;
    color: #111827;
    box-shadow: 0 6px 18px rgba(132,204,22,.26);
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__tag.is-active[data-feature="水族館"]{
    border-color: #0891b2;
    background: #0891b2;
    color: #ffffff;
    box-shadow: 0 6px 18px rgba(8,145,178,.24);
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__tag.is-active[data-feature="アウトドア"]{
    border-color: #a16207;
    background: #a16207;
    color: #ffffff;
    box-shadow: 0 6px 18px rgba(161,98,7,.24);
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__tag.is-active[data-feature="水遊び"]{
    border-color: #0284c7;
    background: #0284c7;
    color: #ffffff;
    box-shadow: 0 6px 18px rgba(2,132,199,.24);
  }
  body:is(.tax-location, .has-location-header) .location-archive-header__tag.is-active[data-feature="商業施設"]{
    border-color: #64748b;
    background: #64748b;
    color: #ffffff;
    box-shadow: 0 6px 18px rgba(100,116,139,.24);
  }

body:is(.tax-location, .has-location-header) .location-archive-heading{
    /* Add breathing room under H1 so cards don't crash into the heading */
    margin: clamp(14px, 2.4vw, 22px) 12px clamp(16px, 3vw, 32px);
    text-align: center;
  }
  body:is(.tax-location, .has-location-header) .location-archive-heading__title{
    margin: 0;
    display: inline-flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: center;
    gap: 6px;
    font-size: clamp(1.6rem, 4vw, 2.6rem);
    font-weight: 900;
    line-height: 1.1;
    color: #18202a;
  }
  body:is(.tax-location, .has-location-header) .location-archive-heading__title .iks-h1__spot{
    color: #ff2f93;
  }
  body:is(.tax-location, .has-location-header) .location-archive-heading__near-label{
    font-size: clamp(1rem, 2vw, 1.3rem);
    font-weight: 700;
    color: #ff2f93;
    margin-left: 0.45ch;
    letter-spacing: 0;
  }

  body:is(.tax-location, .has-location-header) .location-archive-floating-tags{
    position: fixed;
    top: calc(var(--iks-topbar-offset, 0px) + 8px);
    left: 50%;
    transform: translateX(-50%) translateY(-8px);
    z-index: 1300;
    pointer-events: none;
    opacity: 0;
    transition: opacity .16s ease, transform .16s ease;
  }
  body:is(.tax-location, .has-location-header) .location-archive-floating-tags.is-visible{
    opacity: 1;
    transform: translateX(-50%) translateY(0);
    pointer-events: auto;
  }
  body:is(.tax-location, .has-location-header) .location-archive.is-detail-open .location-archive-floating-tags{
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
  body:is(.tax-location, .has-location-header) .location-archive-floating-tags__inner{
    pointer-events: auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0;
    border-radius: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
    max-width: min(1180px, 96vw);
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  body:is(.tax-location, .has-location-header) .location-archive-floating-tags__inner::-webkit-scrollbar{
    display: none;
  }
  body:is(.tax-location, .has-location-header) .location-archive-floating-tags__list{
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: nowrap;
    min-width: 0;
  }
  body:is(.tax-location, .has-location-header) .location-archive-floating-tags__handle{
    display: none;
  }
  body:is(.tax-location, .has-location-header) .location-archive-floating-tags .location-archive-header__tag{
    font-size: .78rem;
    padding: 5px 10px;
  }
  @media (max-width: 600px){
    body:is(.tax-location, .has-location-header) .location-archive-floating-tags .location-archive-header__tag{
      font-size: .75rem;
    }
  }
  body:is(.tax-location, .has-location-header) .location-archive.is-detail-open .location-archive-header{
    display: none;
  }
  body:is(.tax-location, .has-location-header) .location-archive.is-detail-open .spot-grid{
    display: none;
  }
  /* Safety: keep top header/search/H1 visible whenever detail mode is closed. */
  body.tax-location #locationArchive:not(.is-detail-open) .location-archive-header,
  body.tax-location #locationArchive:not(.is-detail-open) .location-archive-search,
  body.tax-location #locationArchive:not(.is-detail-open) .location-archive-heading{
    display: block;
  }
  /* =============== 3) Header / Nav / Footer（最小修正・no !important） =============== */

  /* 0) ヘッダーをフローティング（スクロールしても常に見える） */
  body{
    --iks-sticky-header-top: 0px;
    --iks-fixed-header-h: 56px; /* JSで実測して上書き */
  }
  body.admin-bar.tax-location{
    --iks-sticky-header-top: 32px;
  }
  @media (max-width:782px){
    body.admin-bar.tax-location{
      --iks-sticky-header-top: 46px;
    }
  }


  /* single-spot：ヘッダーの縦余白を圧縮（Custom CSSの後勝ち対策でshorthand指定） */
  body.single-spot #masthead,
  body.single-spot .site-header{
    padding: 0;
  }
  body.single-spot #masthead .inside-header,
  body.single-spot .site-header .inside-header{
    padding: 0 14px;
    min-height: 0;
  }
  body.single-spot #masthead .inside-navigation,
  body.single-spot .site-header .inside-navigation{
    padding: 0 14px;
    min-height: 0;
  }
  body.single-spot #masthead .main-navigation,
  body.single-spot .site-header .main-navigation{
    min-height: 0;
  }
  body.single-spot #masthead .main-navigation .main-nav > ul > li > a{
    padding-top: 6px;
    padding-bottom: 6px;
    line-height: 1.2;
  }
  /* single-spot：右上メニューボタンは “モバイルのみ” 極小化（PCで二重表示しない） */
  @media (max-width: 768px){
    body.single-spot #masthead button.menu-toggle,
    body.single-spot .site-header button.menu-toggle{
      padding: 0 12px;
      height: 28px;
      min-height: 0;
      line-height: 1;
      display: inline-flex;
      align-items: center;
      justify-content: center;
    }
    body.single-spot #masthead .mobile-menu-control-wrapper,
    body.single-spot .site-header .mobile-menu-control-wrapper{
      padding: 0;
      min-height: 0;
      display: flex;
      align-items: center;
    }
    /* アイコン自体が縦に引き伸ばされないように保険 */
    body.single-spot #masthead button.menu-toggle .gp-icon,
    body.single-spot .site-header button.menu-toggle .gp-icon{
      height: 1em;
      width: 1em;
    }
  }

  /* PC：single-spot でもリンク一覧はドロップダウン化し、トグルだけ表示 */
  @media (min-width: 769px){
    body.single-spot #masthead button.menu-toggle,
    body.single-spot .site-header button.menu-toggle{
      padding: 0 12px;
      height: 30px;
      min-height: 0;
      line-height: 1;
      display: inline-flex;
      align-items: center;
      justify-content: center;
    }
    body.single-spot #masthead .mobile-menu-control-wrapper,
    body.single-spot .site-header .mobile-menu-control-wrapper{
      display: flex;
      align-items: center;
      padding: 0;
      min-height: 0;
    }
    body.single-spot #masthead .inside-navigation,
    body.single-spot .site-header .inside-navigation{
      justify-content: flex-end;
      overflow: visible;
    }
    body.single-spot #masthead .main-navigation,
    body.single-spot .site-header .main-navigation{
      position: relative;
    }
    body.single-spot #masthead .main-navigation:not(.toggled) .main-nav > ul,
    body.single-spot .site-header .main-navigation:not(.toggled) .main-nav > ul{
      display: none !important;
    }
    body.single-spot #masthead .main-navigation.toggled .main-nav > ul,
    body.single-spot .site-header .main-navigation.toggled .main-nav > ul{
      position: absolute;
      top: calc(100% + 10px);
      right: 14px;
      left: auto;
      min-width: min(280px, calc(100vw - 28px));
      margin: 0;
      padding: 10px;
      display: grid !important;
      gap: 4px;
      list-style: none;
      border-radius: 16px;
      border: 1px solid rgba(15,23,42,.10);
      background: rgba(255,255,255,.98);
      backdrop-filter: blur(8px);
      box-shadow: 0 16px 34px rgba(15,23,42,.18);
      z-index: 1605;
    }
    body.single-spot #masthead .main-navigation.toggled .main-nav > ul > li,
    body.single-spot .site-header .main-navigation.toggled .main-nav > ul > li{
      margin: 0;
      width: 100%;
    }
    body.single-spot #masthead .main-navigation.toggled .main-nav > ul > li > a,
    body.single-spot .site-header .main-navigation.toggled .main-nav > ul > li > a{
      display: block;
      padding: 10px 12px;
      border-radius: 12px;
      line-height: 1.35;
    }
    body.single-spot #masthead .main-navigation.toggled .main-nav > ul > li > a:focus-visible,
    body.single-spot .site-header .main-navigation.toggled .main-nav > ul > li > a:focus-visible{
      outline: 2px solid rgba(59,130,246,.35);
      outline-offset: 2px;
    }
  }
  @media (min-width: 769px) and (hover:hover){
    body.single-spot #masthead .main-navigation.toggled .main-nav > ul > li > a:hover,
    body.single-spot .site-header .main-navigation.toggled .main-nav > ul > li > a:hover{
      background: #f8fafc;
    }
  }


  /* 1) tax-location（/ と /spots を含む）は標準ヘッダー中身を無効化 */
  body.tax-location header:not(.location-archive-topbar),
  body.tax-location #site-header,
  body.tax-location #masthead,
  body.tax-location .site-header{
    display: contents; /* ←コンテナだけ消し、子要素（パンくず等）は描画 */
  }

  /* 2) 余計なヘッダー要素は個別に隠す（パンくずは除外） */
  body.tax-location .inside-header,
  body.tax-location .site-branding,
  body.tax-location .top-bar,
  body.tax-location .main-navigation,
  body.tax-location .mobile-menu-control-wrapper{
    display: none;
  }

  /* 3) パンくずは表示を担保（代表的セレクタを網羅） */
  body.tax-location .breadcrumb,
  body.tax-location .breadcrumbs,
  body.tax-location #breadcrumbs,
  body.tax-location .rank-math-breadcrumbs,
  body.tax-location .yoast-breadcrumbs{
    display: flex;
    flex-wrap: wrap;
    gap: .3rem;
    font-size: .875rem;
    margin: clamp(12px, 2vw, 18px) var(--card-pad, 16px) clamp(12px, 2vw, 18px);
  }

  /* 4) フッターは表示（taxonomy-location でも表示） */
  /* ※従来のフッター非表示ルールは削除 */


  /* 5) その他の固定系も従来通り */
  body.tax-location .back-to-top,
  body.tax-location .gp-back-to-top,
  body.tax-location .sticky-footer,
  body.tax-location .fixed-footer,
  body.tax-location [data-sticky="footer"]{
    display: none;
  }

  /* /spots /items /articles + single item/waza/aruaru: hide GeneratePress default header */
  body:is(.page-spots, .page-items, .page-waza, .page-aruaru, .page-articles, .single-item, .single-waza, .single-aruaru) #site-header,
  body:is(.page-spots, .page-items, .page-waza, .page-aruaru, .page-articles, .single-item, .single-waza, .single-aruaru) #masthead,
  body:is(.page-spots, .page-items, .page-waza, .page-aruaru, .page-articles, .single-item, .single-waza, .single-aruaru) .site-header,
  body:is(.page-spots, .page-items, .page-waza, .page-aruaru, .page-articles, .single-item, .single-waza, .single-aruaru) .inside-header,
  body:is(.page-spots, .page-items, .page-waza, .page-aruaru, .page-articles, .single-item, .single-waza, .single-aruaru) .site-branding,
  body:is(.page-spots, .page-items, .page-waza, .page-aruaru, .page-articles, .single-item, .single-waza, .single-aruaru) .top-bar,
  body:is(.page-spots, .page-items, .page-waza, .page-aruaru, .page-articles, .single-item, .single-waza, .single-aruaru) .main-navigation,
  body:is(.page-spots, .page-items, .page-waza, .page-aruaru, .page-articles, .single-item, .single-waza, .single-aruaru) .mobile-menu-control-wrapper{
    display: none;
  }

  /* Safety net: if unified header exists, always hide GeneratePress default header stack. */
  body:has(.iks-unified-header) #site-header,
  body:has(.iks-unified-header) #masthead,
  body:has(.iks-unified-header) .site-header,
  body:has(.iks-unified-header) .inside-header,
  body:has(.iks-unified-header) .site-branding,
  body:has(.iks-unified-header) .top-bar,
  body:has(.iks-unified-header) .main-navigation,
  body:has(.iks-unified-header) .mobile-menu-control-wrapper{
    display: none !important;
  }

  /* Shared header: /, /spots, /items, /articles */
  .iks-unified-header{
    position: sticky;
    top: var(--iks-sticky-header-top, 0px);
    z-index: 1400;
    margin: 0;
    background: #ffffff;
  }
  /* Keep unified header centered even when parent layout differs by template. */
  body:is(.tax-location, .page-spots, .page-items, .page-waza, .page-aruaru, .page-articles, .single-item, .single-waza, .single-aruaru) .iks-unified-header{
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
  }

  /* tax-location のみ：育コレ共通ヘッダーをフローティング（fixed） */
  body.tax-location .iks-unified-header{
    position: fixed;
    top: var(--iks-sticky-header-top, 0px);
    left: 0;
    right: 0;
    width: 100vw;
    max-width: 100vw;
    margin-left: 0;
    margin-right: 0;
    z-index: 1600;
  }
  /* フローティングヘッダー分だけコンテンツを下げる */
  body.tax-location #locationArchive{
    padding-top: var(--iks-unified-header-h, 56px);
  }
  /* TOP: 先頭セクション（育あるある）が共通ヘッダーに近すぎるのを防ぐ */
  body.home.tax-location.iks-slider-mode #locationArchive > #aruaruCategoryHeading{
    padding-top: clamp(8px, 1.8vw, 14px);
  }
  /* page-items / page-articles keep WP admin-bar margin-top, so unified header top should stay 0. */
  body:is(.page-items, .page-waza, .page-aruaru, .page-articles, .single-item, .single-waza, .single-aruaru) .iks-unified-header{
    top: 0;
  }
  .iks-unified-header__inner{
    width: 100%;
    max-width: none;
    margin: 0;
    padding: clamp(12px, 2vw, 20px) clamp(10px, 2.8vw, 18px);
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: clamp(10px, 2vw, 20px);
    position: relative;
  }
  .iks-unified-header__brand{
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    padding-top: clamp(4px, .8vw, 8px);
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    color: #374151;
    text-decoration: none;
    font-family: "Mamelon", "Mamelon-3-Hi-Regular", "マメロン", "Noto Sans JP", sans-serif;
    font-size: clamp(0.9rem, 2.0vw, 1.15rem);
    font-weight: 900;
    line-height: 1;
    letter-spacing: .01em;
    white-space: nowrap;
  }
  @keyframes iksBrandReveal{
    0%  { opacity:0; transform: scale(.72) translateY(6px); }
    65% { opacity:1; transform: scale(1.06) translateY(-2px); }
    82% { transform: scale(.97) translateY(1px); }
    100%{ opacity:1; transform: scale(1) translateY(0); }
  }

  .iks-unified-header__brand-image{
    display: block;
    width: auto;
    max-width: 100%;
    height: clamp(152px, 20.8vw, 216px);
    animation: iksBrandReveal .72s cubic-bezier(.16,.84,.19,1) both;
  }
  @media (prefers-reduced-motion: reduce){
    .iks-unified-header__brand-image{ animation: none; }
  }

  /* TOP：セクション見出しに応じてブランド表示を切替（育スポット/育記事） */
  body.home.tax-location .iks-unified-header__brand.iks-unified-header__brand--section{
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0px;
  }
  body.home.tax-location .iks-unified-header__brand.iks-unified-header__brand--section .iks-home-page-title__icon{
    width: 1.25em;
    height: 1.25em;
  }

  @media (hover:hover){
    .iks-unified-header__brand:hover{
      opacity: .84;
    }
  }
  .iks-unified-header__brand:focus-visible{
    outline: 3px solid rgba(59,130,246,.35);
    outline-offset: 2px;
  }
  .iks-unified-header__links{
    margin-left: auto;
    flex: 1 1 auto;
    min-width: 0;
    display: none;
    align-items: center;
    justify-content: flex-end;
    gap: clamp(12px, 2.6vw, 34px);
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    padding: 0;
  }
  .iks-unified-header__links::-webkit-scrollbar{
    display: none;
  }
  .iks-unified-header__link{
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #475569;
    text-decoration: none;
    font-size: clamp(.94rem, 1.8vw, 1.24rem);
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
    transition: color .15s ease, opacity .15s ease;
  }
  .iks-unified-header__text{
    text-decoration: none;
  }
  .iks-unified-header__icon{
    width: 1.55em;
    height: 1.55em;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
  }
  .iks-unified-header__icon svg{
    width: 100%;
    height: 100%;
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
  .iks-unified-header__link--spots .iks-unified-header__icon{ color: #8edbc0; }
  .iks-unified-header__link--items .iks-unified-header__icon{ color: #f5a6bf; }
  .iks-unified-header__link--articles .iks-unified-header__icon{ color: #81cdef; }
  .iks-unified-header__link--aruaru .iks-unified-header__icon{ color: #f8b35e; }
  @media (hover:hover){
    .iks-unified-header__link:hover{
      color: #0f172a;
    }
  }
  .iks-unified-header__link:focus-visible{
    outline: 3px solid rgba(59,130,246,.35);
    outline-offset: 2px;
  }
  .iks-unified-header__link.is-active{
    color: #1f2937;
  }
  .iks-unified-header__link.is-active .iks-unified-header__text{
    text-decoration: none;
  }
  /* Unified header: Location picker (地方) */
  .iks-unified-header__loc{
    display: none;
    position: relative;
    flex: 0 0 auto;
  }
  /* /spots + /location/* は常時表示、TOPは「育スポット切替時のみ」表示 */
  body.tax-location:not(.home) .iks-unified-header__loc{
    display: inline-flex;
  }
  body.home.tax-location.iks-brand-spots-active .iks-unified-header__loc{
    display: inline-flex;
  }

  .iks-unified-header__loc-toggle{
    list-style: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .38rem .82rem;
    border-radius: 999px;
    border: 1.5px solid #3dbcd2;
    background: transparent;
    color: #3dbcd2;
    font-size: .78rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .04em;
    gap: .38em;
    white-space: nowrap;
    cursor: pointer;
    user-select: none;
    box-shadow: none;
    transition: background .16s ease, color .16s ease, border-color .16s ease;
  }
  .iks-unified-header__loc-toggle::-webkit-details-marker{ display:none; }
  .iks-unified-header__loc-toggle::marker{ display:none; }
  .iks-unified-header__loc-toggle:focus-visible{
    outline: 2px solid #3dbcd2;
    outline-offset: 2px;
  }
  @media (hover:hover){
    .iks-unified-header__loc-toggle:hover{
      background: #3dbcd2;
      border-color: #3dbcd2;
      color: #ffffff;
    }
  }

  .iks-unified-header__loc[open]{
    z-index: 1502;
  }
  .iks-unified-header__loc-caret{
    display: inline-block;
    transition: transform .18s ease;
  }
  .iks-unified-header__loc[open] .iks-unified-header__loc-caret{
    transform: rotate(180deg);
  }

  .iks-unified-header__loc-panel{
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    min-width: 0;
    width: -moz-fit-content;
    width: fit-content;
    max-width: min(92vw, 420px);
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 18px 40px rgba(15,23,42,.12);
    border: 1px solid rgba(148,163,184,.35);
    padding: 12px;
  }

  /* パネル内は縦並びにする（既存 .location-archive-header__selects は横並びなので上書き） */
  .iks-unified-header__loc-panel .location-archive-header__selects{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    width: -moz-fit-content;
    width: fit-content;
    overflow: visible;
    padding: 0;
    margin: 0;
  }
  body:is(.tax-location, .has-location-header) .iks-unified-header__loc-panel .location-archive-header__selects{
    align-items: flex-start;
  }
  .iks-unified-header__loc-panel .location-archive-header__selects .iks-fish-select{
    width: auto;
    align-self: flex-start;
    margin-left: 0;
    margin-right: auto;
    justify-content: flex-start;
  }
  .iks-unified-header__actions{
    margin-left: auto;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 2px;
  }
  .iks-unified-header__more{
    position: relative;
    flex: 0 0 auto;
    margin-left: 0;
  }
  .iks-unified-header__more-toggle.iks-unified-header__sort-toggle{
    display: none;
    position: relative;
    align-items: center;
    justify-content: center;
    width: auto;
    height: auto;
    padding: .38rem .82rem;
    border-radius: 999px;
    border: 1.5px solid #3dbcd2;
    background: transparent;
    color: #3dbcd2;
    font-size: .78rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .04em;
    gap: .38em;
    white-space: nowrap;
    box-shadow: none;
    transition: background .16s ease, color .16s ease, border-color .16s ease;
  }
  body.tax-location:not(.home) .iks-unified-header__more-toggle.iks-unified-header__sort-toggle,
  body.home.tax-location.iks-brand-spots-active .iks-unified-header__more-toggle.iks-unified-header__sort-toggle{
    display: inline-flex;
  }
  .iks-unified-header__sort-toggle[hidden]{
    display: none !important;
  }
  .iks-unified-header__sort-toggle.is-active{
    background: #3dbcd2;
    border-color: #3dbcd2;
    color: #ffffff;
  }
  .iks-unified-header__sort-toggle:disabled{
    opacity: .45;
    cursor: not-allowed;
  }
  .iks-unified-header__sort-icon{
    width: 17px;
    height: 17px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    flex: 0 0 auto;
  }
  .iks-unified-header__sort-icon svg{
    width: 100%;
    height: 100%;
    display: block;
    fill: currentColor;
    stroke: none;
  }
  .iks-unified-header__sort-text{
    display: inline-block;
    line-height: 1;
  }
  @media (hover:hover){
    .iks-unified-header__sort-toggle:not(:disabled):not(.is-active):hover{
      background: #3dbcd2;
      border-color: #3dbcd2;
      color: #ffffff;
    }
  }
  .iks-unified-header__sort-toggle:focus-visible{
    outline: 2px solid #3dbcd2;
    outline-offset: 2px;
  }
  .iks-unified-header__sort-toggle.is-loading::after{
    content: "";
    position: absolute;
    width: 13px;
    height: 13px;
    border-radius: 999px;
    border: 2px solid currentColor;
    border-top-color: transparent;
    animation: iksSpin 0.8s linear infinite;
  }
  .iks-unified-header__sort-toggle.is-loading .iks-unified-header__sort-icon,
  .iks-unified-header__sort-toggle.is-loading .iks-unified-header__sort-text{
    opacity: 0;
  }
  .iks-unified-header__more[open]{
    z-index: 1502;
  }
  .iks-unified-header__more-toggle:not(.iks-unified-header__sort-toggle){
    list-style: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #334155;
    cursor: pointer;
    user-select: none;
    box-shadow: none;
    transition: none;
    -webkit-tap-highlight-color: transparent;
  }
  .iks-unified-header__more-toggle:not(.iks-unified-header__sort-toggle)::-webkit-details-marker{
    display: none;
  }
  .iks-unified-header__more-toggle:not(.iks-unified-header__sort-toggle)::marker{
    content: "";
  }
  .iks-unified-header__more-toggle:not(.iks-unified-header__sort-toggle):focus-visible{ outline: none; }
  .iks-unified-header__more-toggle:not(.iks-unified-header__sort-toggle):active{ background: transparent; color: #334155; }
  @media (hover:hover){
    .iks-unified-header__more-toggle:not(.iks-unified-header__sort-toggle):hover{
      transform: none;
      background: transparent;
      color: #334155;
      box-shadow: none;
    }
  }
  .iks-unified-header__more-icon{
    position: relative;
    width: 17px;
    height: 2.2px;
    border-radius: 999px;
    background: currentColor;
    display: inline-block;
  }
  .iks-unified-header__more-icon::before,
  .iks-unified-header__more-icon::after{
    content: "";
    position: absolute;
    left: 0;
    width: 17px;
    height: 2.2px;
    border-radius: 999px;
    background: currentColor;
  }
  .iks-unified-header__more-icon::before{
    top: -5.5px;
  }
  .iks-unified-header__more-icon::after{
    top: 5.5px;
  }
  .iks-unified-header__more[open] .iks-unified-header__more-toggle{
    background: transparent;
    border-color: transparent;
    color: #334155;
    box-shadow: none;
  }
  .iks-unified-header__more[open] .iks-unified-header__more-icon{
    background: transparent;
  }
  .iks-unified-header__more[open] .iks-unified-header__more-icon::before{
    top: 0;
    transform: rotate(45deg);
  }
  .iks-unified-header__more[open] .iks-unified-header__more-icon::after{
    top: 0;
    transform: rotate(-45deg);
  }
  .iks-unified-header__more-panel{
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    min-width: min(250px, 90vw);
    display: grid;
    gap: 4px;
    padding: 10px;
    border-radius: 16px;
    border: 1px solid rgba(15,23,42,.1);
    background: rgba(255,255,255,.98);
    backdrop-filter: blur(8px);
    box-shadow: 0 16px 34px rgba(15,23,42,.18);
  }
  .iks-unified-header__more-link{
    display: block;
    padding: 10px 12px;
    border-radius: 12px;
    color: #0f172a;
    text-decoration: none;
    font-size: .9rem;
    font-weight: 700;
    line-height: 1.35;
  }
  @media (hover:hover){
    .iks-unified-header__more-link:hover{
      background: #f8fafc;
    }
  }
  .iks-unified-header__more-link:focus-visible{
    outline: 2px solid rgba(59,130,246,.35);
    outline-offset: 2px;
  }
  /* Mobile menu: show primary tabs inside hamburger panel */
  .iks-unified-header__more-link-icon{
    width: 1.45em;
    height: 1.45em;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    color: #64748b;
  }
  .iks-unified-header__more-link-icon svg{
    width: 100%;
    height: 100%;
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
  .iks-unified-header__more-link--home{
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .iks-unified-header__more-link--home .iks-unified-header__more-link-icon{
    display: inline-flex;
  }
  /* 育スポット/育アイテム/育記事 は、メニュー内で常時表示 */
  .iks-unified-header__more-link--primary{
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .iks-unified-header__more-link--spots .iks-unified-header__more-link-icon{ color: #8edbc0; }
  .iks-unified-header__more-link--items .iks-unified-header__more-link-icon{ color: #f5a6bf; }
  .iks-unified-header__more-link--articles .iks-unified-header__more-link-icon{ color: #81cdef; }
  .iks-unified-header__more-link--aruaru .iks-unified-header__more-link-icon{ color: #f8b35e; }
  .iks-unified-header__more-divider{
    display: block;
    height: 1px;
    margin: 6px 4px;
    border-radius: 999px;
    background: rgba(15,23,42,.10);
  }
  body.tax-location.iks-detail-open .iks-unified-header{
    display: none;
  }
  @media (max-width: 768px){
    .iks-unified-header__sort-toggle{
      padding: .34rem .72rem;
      font-size: .74rem;
    }
    .iks-unified-header__inner{
      padding: 12px 10px 8px;
      gap: 8px;
    }
    .iks-unified-header__brand{
      padding-top: clamp(8px, 2.4vw, 12px);
      font-size: clamp(0.9rem, 5.2vw, 1.05rem);
    }
    .iks-unified-header__brand-image{
      height: clamp(136px, 36vw, 184px);
    }
    .iks-unified-header__links{
      gap: 12px;
    }
    .iks-unified-header__link{
      font-size: .96rem;
    }
    .iks-unified-header__more-toggle:not(.iks-unified-header__sort-toggle){
      width: 30px;
      height: 30px;
    }
    .iks-unified-header__more-panel{
      min-width: min(220px, 92vw);
    }
  }

  @media (max-width: 600px){
    /* ヘッダー縦幅を最小化（文字・メニューにフィット） */
    .iks-unified-header__inner{
      padding: 10px 10px 8px;
      gap: 8px;
    }
    .iks-unified-header__more-toggle:not(.iks-unified-header__sort-toggle){
      width: 28px;
      height: 28px;
    }
  }
  /* =============== 3.2) /articles feature slider layout =============== */
  .iks-page-articles{
    width: min(1200px, 100%);
    margin: 0 auto;
    padding: clamp(8px, 2vw, 16px) clamp(12px, 2vw, 18px) clamp(24px, 4vw, 36px);
  }
  .iks-page-articles .feature-slider[data-context="editorial"]{
    --feature-slide-size: clamp(220px, 36vw, 300px);
    --feature-slide-gap: clamp(8px, 3vw, 16px);
    --feature-slide-peek: clamp(10px, 5.6vw, 36px);
  }
  @media (max-width: 768px){
    .iks-page-articles .feature-slider[data-context="editorial"]{
      --feature-slide-size: clamp(180px, 92vw, 260px);
      --feature-slide-gap: clamp(6px, 4vw, 12px);
      --feature-slide-peek: clamp(8px, 10vw, 22px);
    }
  }


  /* =============== 4) Content（タイトル/バッジ/説明/メタ） =============== */
  .spot-title-heading{
    margin:0 0 6px;
    font-family:'Noto Sans JP',sans-serif;
    font-weight:800;
    font-size:2rem;
    line-height:1.25;
    color:#333;
    background: transparent;
    border-radius:0;
    padding:.30rem var(--title-pad-x) .20rem;
    border-left:0;
    padding-left:var(--title-pad-x);
    min-width:0;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    cursor: pointer;
  }
  .spot-title-heading__text{
    display:inline;
    background-image: linear-gradient(180deg, transparent 55%, rgba(255,210,255,.85) 0);
    background-repeat:no-repeat;
    background-size: 100% 0.6em;
    background-position: 0 calc(100% - 0.1em);
    box-decoration-break: clone;
    padding:0 .02em;
  }
  .spot-title-heading.is-expanded{ white-space:normal; overflow:visible; text-overflow:clip; display:block; }
  .spot-title-heading:hover{ overflow:visible; white-space:normal; }
  .spot-title-heading a{
    color:inherit;
    text-decoration:none;
    display:block;
  }
  .spot-title-heading a:hover{ opacity:.85; }
  body.tax-location .spot-title-heading{ margin-bottom:0; }

  .spot-header{
    display:flex;
    flex-direction:column;
  }

  /* タイトル行（ハート左寄せ維持） */
  .spot-title-row{
    display:flex; align-items:center;
    gap: clamp(4px, 0.6vw, 8px);
    min-height: var(--fav-size, 42px);
    padding-left: 0;
    padding-right: 0;
    margin-bottom: clamp(18px, 3vw, 32px);
  }
  .spot-title-row .spot-title-heading{
    flex:1 1 auto; min-width:0; margin:0; line-height:1.25;
    padding-left: 0;
    text-align: left;
    order: 1;
  }
  .spot-title-row .fav-btn{
    order: 2;
    margin-left: auto;
    align-self: center;
    --fav-nudge-y: -2px;
    /* subtract the inner spot-body padding so the button aligns with floating UI */
    margin-right: max(
      0px,
      calc(
        env(safe-area-inset-right, 0px)
        + var(--fav-edge-gap, clamp(14px, 3.6vw, 22px))
        - var(--spot-title-row-edge-offset, 0px)
      )
    );
  }

  /* Category label (major type) */
  .spot-category-row{
    display:flex;
    align-items:center;
    gap:10px;
    margin: 0 0 clamp(8px, 1.2vw, 14px);
    padding-left: var(--title-pad-x);
    padding-right: var(--title-pad-x);
    min-width: 0;
  }
  .spot-category-pill{
    --cat-fg:#be185d;
    --cat-bg:#fdf2f8;
    --cat-bd:#fbcfe8;
    display:inline-flex;
    align-items:center;
    gap:.35rem;
    border-radius:999px;
    border:1px solid var(--cat-bd);
    background:var(--cat-bg);
    color:var(--cat-fg);
    font-size:.78rem;
    font-weight:700;
    line-height:1.1;
    padding:.32rem .7rem;
    letter-spacing:.02em;
    white-space:nowrap;
    max-width:100%;
    box-shadow: 0 1px 0 rgba(15,23,42,.04);
  }
  .spot-category-pill__icon{
    width:1rem;
    height:1rem;
    display:grid;
    place-items:center;
  }
  .spot-category-pill__icon svg{
    width:1rem;
    height:1rem;
    display:block;
  }
  .spot-category-pill__icon svg path{ fill:currentColor; }
  .spot-category-pill__label{ display:block; }

  /* Category row: location chip */
  .spot-location-chip{
    display:inline-flex;
    align-items:center;
    gap:.35rem;
    min-width: 0;
    color:#64748b;
    font-size:.78rem;
    font-weight:600;
    line-height:1.1;
    letter-spacing:.01em;
  }
  .spot-location-chip__icon{
    width:1rem;
    height:1rem;
    display:grid;
    place-items:center;
    color:#94a3b8;
    flex:0 0 auto;
  }
  .spot-location-chip__icon svg{
    width:1rem;
    height:1rem;
    display:block;
  }
  .spot-location-chip__text{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width: clamp(120px, 45vw, 360px);
  }
  .spot-about{
    margin-top: clamp(12px, 2.4vw, 18px);
  }
  .spot-about__header{
    display:flex;
    align-items:center;
    gap:.6rem;
    margin-bottom:.5rem;
  }
  .spot-about__divider{
    width:4px;
    height:1.4rem;
    border-radius:999px;
    background: var(--media-toggle-active-bg);
  }
  .spot-about__title{
    margin:0;
    font-size:clamp(1.05rem, 2.6vw, 1.25rem);
    font-weight:800;
    color:#0f172a;
  }
  .spot-about__text{
    color:#475569;
    font-size:.98rem;
    line-height:1.7;
  }
  .spot-about__text p{ margin:0; }
  .spot-about__text p + p{ margin-top:.7rem; }
  .spot-category-pill--park{ --cat-fg:#15803d; --cat-bg:#dcfce7; --cat-bd:#86efac; }
  .spot-category-pill--kidspark{ --cat-fg:#db2777; --cat-bg:#fce7f3; --cat-bd:#f9a8d4; }
  .spot-category-pill--public{ --cat-fg:#1d4ed8; --cat-bg:#dbeafe; --cat-bd:#93c5fd; }
  .spot-category-pill--hotel{ --cat-fg:#7c3aed; --cat-bg:#ede9fe; --cat-bd:#c4b5fd; }
  .spot-category-pill--zoo{ --cat-fg:#b45309; --cat-bg:#fef3c7; --cat-bd:#fcd34d; }
  .spot-category-pill--aquarium{ --cat-fg:#0891b2; --cat-bg:#cffafe; --cat-bd:#67e8f9; }
  .spot-category-pill--outdoor{ --cat-fg:#0f766e; --cat-bg:#ccfbf1; --cat-bd:#5eead4; }
  .spot-category-pill--water{ --cat-fg:#0284c7; --cat-bg:#e0f2fe; --cat-bd:#7dd3fc; }
  .spot-category-pill--mall{ --cat-fg:#c2410c; --cat-bg:#ffedd5; --cat-bd:#fdba74; }

  /* お気に入りボタン（機能維持） */
  .fav-btn{
    appearance:none; -webkit-appearance:none;
    width:var(--fav-size, clamp(36px, 4.4vw, 44px));
    height:var(--fav-size, clamp(36px, 4.4vw, 44px));
    padding:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:transparent;
    border:0;
    color:#666;
    box-shadow: none;
    cursor:pointer;
    -webkit-tap-highlight-color: transparent;
    transition: color .15s ease, border-color .15s ease, box-shadow .15s ease,
              transform .15s ease, background-color .15s ease;
    transform: translateY(var(--fav-nudge-y, 0));
    flex:0 0 auto;
    line-height:1;
    aspect-ratio:1/1;
  }
  .fav-btn .fav-label{
    position:absolute;
    width:1px; height:1px;
    padding:0; margin:-1px;
    overflow:hidden;
    clip:rect(0 0 0 0);
    clip-path: inset(50%);
    white-space:nowrap;
    border:0;
  }
  .fav-btn svg{ display:block; width:62%; height:62%; }
  .fav-btn .fav-icon{
    width:60%;
    height:60%;
    display:block;
    margin:auto;
    transform-origin: 50% 50%;
    transform: translate(
      var(--fav-icon-shift-x, 0.5px),
      var(--fav-icon-shift-y, 0.5px)
    ); /* optical centering within circular button */
  }
  .fav-btn svg path{
    fill:#fff;
    stroke: currentColor;
    stroke-width:1.6;
    stroke-linecap:round;
    stroke-linejoin:round;
  }
  .fav-btn:not(:has(svg))::before{
    content:"?"; font-size: calc(var(--fav-size) * 0.52); line-height:1;
    display:block; transform: translateY(0);
    color: currentColor;
  }
  @media (hover:hover){
    .fav-btn:hover{ transform: translateY(calc(var(--fav-nudge-y, 0) - 1px)); }
  }
  .fav-btn.is-active{ color:#e11d48; }
  .fav-btn.is-active svg path{ fill: currentColor; stroke: none; }
  .fav-btn:active{ transform:translateY(var(--fav-nudge-y, 0)); }
  .fav-btn:focus-visible{ outline:2px solid rgba(225,29,72,.35); outline-offset:2px; }

  /* バッジ */
  .feature-badges{
    display:grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap:.45rem;
    margin: clamp(.75rem, 2vw, 1.2rem) 0 0;
  }
  .feature-badges .feature-badge{
    --feature-active-bg: var(--badge1-bg);
    --feature-active-bd: var(--badge1-bd);
    --feature-active-fg: var(--badge1-fg);
    border:1px solid #e2e8f0;
    background:#f8fafc;
    color:#94a3b8;
    border-radius:.5rem;
    font-size:.75rem !important;
    font-weight:700;
    line-height:1.2;
    display:flex;
    align-items:center;
    gap:.35rem;
    text-align:left;
    padding:.32rem .5rem !important;
    min-height:2rem;
    user-select:none;
    box-shadow:0 1px 0 rgba(0,0,0,.04);
  }
    .feature-badges .feature-badge.is-active{
    background:var(--feature-active-bg);
    border-color:var(--feature-active-bd);
    color:var(--feature-active-fg);
  }
  .feature-badges .feature-badge__icon{
    width:1rem;
    height:1rem;
    display:grid;
    place-items:center;
  }
  .feature-badges .feature-badge__icon svg{
    width:1rem;
    height:1rem;
    display:block;
  }
  .feature-badges .feature-badge__icon svg path{ fill:currentColor; }
  .feature-badges .feature-badge__label{
    display:block;
    flex:1;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .feature-badge:hover{ transform:translateY(-1px); box-shadow:0 2px 6px rgba(0,0,0,.06); }
  .feature-badge:nth-child(6n+1){ --feature-active-bg:var(--badge1-bg); --feature-active-bd:var(--badge1-bd); --feature-active-fg:var(--badge1-fg); }
  .feature-badge:nth-child(6n+2){ --feature-active-bg:var(--badge2-bg); --feature-active-bd:var(--badge2-bd); --feature-active-fg:var(--badge2-fg); }
  .feature-badge:nth-child(6n+3){ --feature-active-bg:var(--badge3-bg); --feature-active-bd:var(--badge3-bd); --feature-active-fg:var(--badge3-fg); }
  .feature-badge:nth-child(6n+4){ --feature-active-bg:var(--badge4-bg); --feature-active-bd:var(--badge4-bd); --feature-active-fg:var(--badge4-fg); }
  .feature-badge:nth-child(6n+5){ --feature-active-bg:var(--badge5-bg); --feature-active-bd:var(--badge5-bd); --feature-active-fg:var(--badge5-fg); }
  .feature-badge:nth-child(6n+6){ --feature-active-bg:var(--badge6-bg); --feature-active-bd:var(--badge6-bd); --feature-active-fg:var(--badge6-fg); }
  @media (min-width:900px){
    .feature-badges{ grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
    .feature-badges .feature-badge{
      font-size:.82rem;
      padding:.36rem .55rem;
      border-radius:.55rem;
      gap:.4rem;
    }
    .feature-badges .feature-badge__icon{
      width:1.05rem;
      height:1.05rem;
    }
    .feature-badges .feature-badge__icon svg{
      width:1.05rem;
      height:1.05rem;
    }
  }


/* Book Your Stay (single spot) */
.spot-booking{
  margin: clamp(18px, 2.4vw, 28px) 0 0;
  padding: clamp(12px, 2.2vw, 18px);
  background: #fff7ed;
  border: 1px solid #fed7aa;
  border-radius: 18px;
  box-shadow: 0 10px 24px rgba(15,23,42,.06);
}
.spot-booking__inner{
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 14px;
}
.spot-booking__meta{
  flex: 1 1 auto;
  min-width: 0;
}
.spot-booking__eyebrow{
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .10em;
  color: #c2410c;
  text-transform: uppercase;
}
.spot-booking__title{
  margin: .35rem 0 .85rem;
  font-size: clamp(1.02rem, 2.3vw, 1.2rem);
  font-weight: 900;
  line-height: 1.25;
  color: #0f172a;
}
.spot-booking__actions{
  display: flex;
  gap: .6rem;
  flex-wrap: wrap;
}
.spot-booking__btn{
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .62rem .95rem;
  border-radius: 999px;
  text-decoration: none;
  color: #fff;
  font-weight: 900;
  font-size: .92rem;
  line-height: 1;
  border: 1px solid transparent;
  box-shadow: 0 8px 18px rgba(15,23,42,.12);
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
  -webkit-tap-highlight-color: transparent;
}
@media (hover:hover){
  .spot-booking__btn:hover{
    transform: translateY(-1px);
    filter: brightness(1.02);
  }
}
.spot-booking__btn:active{
  transform: translateY(0);
  box-shadow: 0 6px 12px rgba(15,23,42,.12);
}
.spot-booking__btn--rakuten{
  background: #d7000f;
}
.spot-booking__btn--jalan{
  background: #ff8a00;
}
.spot-booking__icon{
  flex: 0 0 auto;
  width: 76px;
  height: 76px;
  border-radius: 18px;
  background: rgba(255,255,255,.65);
  border: 1px solid rgba(15,23,42,.08);
  display: grid;
  place-items: center;
  color: rgba(15,23,42,.28);
}
.spot-booking__icon svg{
  width: 44px;
  height: 44px;
  display: block;
}
@media (max-width:768px){
  .spot-booking{
    border-radius: 16px;
    padding: 12px;
  }
  .spot-booking__title{
    margin-bottom: .75rem;
    font-size: 1rem;
  }
  .spot-booking__btn{
    font-size: .9rem;
    padding: .6rem .9rem;
  }
  .spot-booking__icon{
    width: 64px;
    height: 64px;
    border-radius: 16px;
  }
  .spot-booking__icon svg{
    width: 38px;
    height: 38px;
  }
}

  /* Equipment check (detail view) */
  .spot-equipment{
    margin: clamp(18px, 2.4vw, 28px) 0 clamp(14px, 2vw, 22px);
    padding: clamp(12px, 2.2vw, 18px);
    background: #f4f6ff;
    border: 1px solid #d7e0ff;
    border-radius: 18px;
    box-shadow: 0 10px 24px rgba(15,23,42,.06);
  }
  .spot-equipment__title{
    margin: 0 0 10px;
    font-size: clamp(1rem, 2.2vw, 1.2rem);
    font-weight: 800;
    color: #0f172a;
    letter-spacing: .01em;
  }
  .spot-equipment__list{
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .spot-equipment__row{
    --equip-fg: #0f172a;
    --equip-bg: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
    padding: 10px 0;
    border-top: 1px solid #e5e7eb;
  }
  .spot-equipment__row:first-child{
    border-top: 0;
    padding-top: 6px;
  }
  .spot-equipment__label{
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    flex: 1 1 auto;
    font-weight: 700;
    color: #0f172a;
  }
  .spot-equipment__icon{
    width: 30px;
    height: 30px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--equip-bg);
    color: var(--equip-fg);
    flex: 0 0 auto;
  }
  .spot-equipment__icon svg{
    width: 18px;
    height: 18px;
    display: block;
    fill: currentColor;
  }
  .spot-equipment__text{
    font-size: .98rem;
    white-space: nowrap;
  }
  .spot-equipment__status{
    flex: 0 0 auto;
    margin-left: auto;
    font-weight: 800;
    color: var(--equip-fg);
    font-size: .95rem;
    white-space: nowrap;
  }
  .spot-equipment__row--green{ --equip-fg:#16a34a; --equip-bg:#eafaf1; }
  .spot-equipment__row--blue{ --equip-fg:#2563eb; --equip-bg:#e7f0ff; }
  .spot-equipment__row--pink{ --equip-fg:#ec4899; --equip-bg:#fce7f3; }
  .spot-equipment__row--purple{ --equip-fg:#7c3aed; --equip-bg:#ede9fe; }
  .spot-equipment__row.is-inactive{ --equip-fg:#94a3b8; --equip-bg:#f1f5f9; }
  @media (max-width:768px){
    .spot-equipment{
      border-radius: 16px;
      padding: 12px;
    }
    .spot-equipment__title{
      font-size: 1rem;
    }
    .spot-equipment__row{
      padding: 8px 0;
    }
    .spot-equipment__icon{
      width: 28px;
      height: 28px;
    }
    .spot-equipment__icon svg{
      width: 16px;
      height: 16px;
    }
    .spot-equipment__text{
      font-size: .94rem;
    }
    .spot-equipment__status{
      font-size: .92rem;
    }
  }

  /* モバイル微調整（タイトル控えめ） */
  @media (max-width:768px){
    .tax-location .spot-card .spot-title,
    .spot-title-heading{
      font-size: clamp(22px, 6.8vw, 32px);
      line-height: 1.20;
      margin: clamp(18px, 4vw, 24px) 0 0;
      padding: 0;
      letter-spacing: .01em;
      font-weight: 800;
      color:#222;
      white-space: normal;
      overflow: visible;
      text-overflow: clip;
      cursor: pointer;
    }
    .spot-title-row{
      min-height: var(--fav-size, 42px);
      margin-bottom: clamp(28px, 6vw, 42px);
      padding-top: clamp(12px, 4vw, 24px);
      padding-left: 0;
      padding-right: 0;
    }
    .spot-title-row .fav-btn{ --fav-nudge-y: -2px; }
  }
  @media (max-width:360px){
    .spot-title-heading{
      font-size: clamp(19px, 6.5vw, 26px);
      letter-spacing:.01em;
    }
  }

  /* =============== 5) Media（Instagram / Google Map） =============== */

  /* Instagram 横スクロール（一覧時） */
  .insta-scroll{
    display:flex; gap:1rem; overflow-x:auto; overscroll-behavior-x:contain;
    padding-bottom:.75rem; scrollbar-width:thin; background:#000;
  }
  .insta-scroll::-webkit-scrollbar{ height:8px; }
  .insta-scroll::-webkit-scrollbar-thumb{ background:#bbb; border-radius:4px; }
  .insta-card{ flex:0 0 320px; max-width:100%; }
  .insta-card blockquote.instagram-media{ width:100%; max-width:100%; margin:0; }

  /* Map（単体） */
  .map-wrap{
    position:relative; width:100%;
    padding-top:0;
    height: clamp(var(--map-min), var(--map-wrap-current), var(--map-max));
    border-radius: var(--card-radius) var(--card-radius) 0 0;
    overflow:hidden;
    line-height:0;
    background:#000;
  }
  .map-wrap iframe,
  .map-wrap .gmap{
    position:absolute; top:0; right:0; bottom:0; left:0;
    width:100%; border:0; border-radius:inherit;
    z-index: 1;
  }
  @supports (height:1svh){
    .map-wrap{ height: clamp(var(--map-min), var(--map-wrap-svh), var(--map-max)); }
  }

  .map-slider-wrap{ position:relative; }
  .map-reload-btn{
    z-index:12;
    display:none;
    align-items:center;
    justify-content:center;
    width:32px;
    height:32px;
    padding:0;
    border-radius:999px;
    border:1px solid rgba(15,23,42,.18);
    background:rgba(255,255,255,.92);
    color:#0f172a;
    line-height:1;
    cursor:pointer;
    box-shadow:0 6px 16px rgba(15,23,42,.18);
    pointer-events:auto;
  }
  .map-reload-btn__icon{ display:inline-flex; }
  .map-reload-btn__icon svg{
    width:18px;
    height:18px;
    display:block;
  }
  .map-reload-btn__icon svg path{
    fill:currentColor;
    stroke:none;
  }
  .map-reload-btn:hover{ background:#fff; border-color:rgba(15,23,42,.28); }
  .map-reload-btn:focus-visible{ outline:2px solid rgba(59,130,246,.8); outline-offset:2px; }
  .map-reload-btn--grid{
    position:absolute;
    left:8px;
    bottom:8px;
    box-shadow:0 4px 10px rgba(15,23,42,.2);
  }
  .map-reload-btn--grid .map-reload-btn__icon svg{ width:18px; height:18px; }

  /* 画像・動画なしのプレースホルダー */
  .map-wrap .spot-media-placeholder,
  .map-slide .spot-media-placeholder,
  .spot-media.spot-image .spot-media-placeholder,
  .spot-grid-card__media--empty .spot-media-placeholder{
    position:absolute; inset:0;
    display:grid; place-items:center;
    text-align:center; padding:0 1rem;
    background-color:#000;
    background-image: var(--placeholder-image, none);
    background-size: cover;
    background-position: center;
    color:#fff;
    line-height:1.5; font-weight:800;
    font-size:clamp(1rem, 2.4vw, 1.4rem);
    border-radius:inherit; z-index:2;
    overflow:hidden;
  }
  .spot-media-placeholder::before{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(15, 23, 42, 0.35);
  }
  .spot-media-placeholder__label{
    position:relative;
    z-index:1;
    padding:.3em .85em;
    border-radius:999px;
    background:rgba(15, 23, 42, 0.55);
    letter-spacing:.12em;
  }

  /* Media Switcher（Map / Insta 切替） */
  .media-switcher{ position:relative; width:100%; height:100%; overflow: visible; }
  .media-pane{ position:absolute; inset:0; z-index:0; }
  .media-pane[hidden]{ display:none; }

  /* ▼ Cardsレイアウト内：Instaを全画面化（制限解除） */
  .cards-layout .spot-card .media-switcher .insta-media{
    padding-inline: 0;
    height: 100%;
    max-height: none;
    overflow: hidden;
    background: #000;
  }

  /* Insta 横スライダー（縦ページャ内の1件表示用） */
  .cards-layout .spot-card .media-switcher [data-pane="insta"] .insta-scroll{
    height: 100%;
    display: flex;
    gap: 12px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding: 0;
    background: #000;
  }
  .cards-layout .spot-card .media-switcher [data-pane="insta"] .insta-card{
    position: relative;
    flex: 0 0 100%;
    min-width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    scroll-snap-align: start;
    overflow: hidden;
    background:#000;
  }

  /* ▼ Instaカードを“縮小して枠に収める”ためのラッパ */
  .cards-layout .spot-card .media-switcher [data-pane="insta"] .insta-card .insta-fit,
  .cards-layout .spot-card .media-switcher [data-pane="insta"] .insta-card .insta-fitter{
    position: static;
    transform: none;
    display: block;
    margin-left: auto;
    margin-right: auto;
    max-width: 100%;
  }
  /* 埋め込みの位置を通常フローに戻す */
  .cards-layout .spot-card .media-switcher [data-pane="insta"] .insta-card .insta-fit > iframe,
  .cards-layout .spot-card .media-switcher [data-pane="insta"] .insta-card .insta-fitter > iframe,
  .cards-layout .spot-card .media-switcher [data-pane="insta"] .insta-card .insta-fit > blockquote.instagram-media,
  .cards-layout .spot-card .media-switcher [data-pane="insta"] .insta-card .insta-fitter > blockquote.instagram-media{
    position: static;
    top: auto; left: auto;
    transform: none;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    border: 0;
  }

  /* メディア切替トグル */
  .media-switcher .media-toggle{
    position:absolute;
    left: var(--media-toggle-left);
    bottom: calc(var(--media-toggle-bottom) + 56px);
    display:inline-flex;
    align-items:center;
    gap:2px;
    padding:3px 4px;
    border-radius:999px;
    background: var(--media-toggle-bg);
    box-shadow: var(--media-toggle-shadow);
    font-size:.78rem;
    line-height:1.2;
    font-weight:700;
    color: var(--media-toggle-inactive-fg);
    z-index:1000;
    user-select:none;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
  }
  .media-toggle__btn{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:68px;
    padding:5px 11px;
    border:0;
    border-radius:999px;
    background: var(--media-toggle-pill-bg);
    color: var(--media-toggle-inactive-fg);
    font:inherit;
    font-weight:700;
    line-height:1.1;
    cursor:pointer;
    transition:
      background-color .15s ease,
      color .15s ease,
      box-shadow .15s ease,
      transform .15s ease;
  }
  .media-toggle__btn.is-active{
    background: var(--media-toggle-active-bg);
    color: var(--media-toggle-active-fg);
    box-shadow: 0 6px 14px rgba(24,62,132,.32);
    transform: translateY(-1px);
  }
  @media (hover:hover){
    .media-toggle__btn:not(.is-active):hover{ background: rgba(255,255,255,.92); }
  }
  .media-toggle__btn:focus-visible{
    outline:2px solid rgba(47,116,255,.9);
    outline-offset:2px;
  }
  .media-toggle__btn:active{ transform:translateY(0); }
  .media-toggle__btn.is-active:active{ transform:translateY(0); }
  @media (max-width:480px){
    .media-toggle__btn{
      min-width:0;
      padding:4px 9px;
      font-size:.72rem;
    }
  }

  /* =============== 6) Cards Layout（1画面に押し込まない） =============== */
  .cards-layout{
    --card-pad: clamp(14px, 2vw, 22px);
    --map-h: 72svh;
    --insta-max: 26svh;
  }
  .cards-layout .spot-card{
    --spot-card-right-overhang: 0px;
    box-sizing:border-box; position:relative; width:100%; max-width:none; height:auto;
    margin-block: var(--card-gap-y); margin-inline:0;
    display:grid;
    grid-template-rows: var(--map-h) auto auto;
    grid-template-areas:
      "media"
      "header"
      "body";
    align-content:start; background: var(--card-bg);
    border: 1px solid var(--card-border); border-left: 0; border-right: 0; border-top: 0;
    border-radius: var(--card-radius); box-shadow: var(--card-shadow);
    overflow:hidden; min-height: var(--card-min-h);
  }
  .cards-layout .spot-card[data-has-map="0"][data-has-insta="1"]{
    grid-template-rows: auto auto auto;
    grid-template-areas:
      "header"
      "media"
      "body";
  }
  .cards-layout .spot-card > .spot-media{ grid-area: media; }
  .cards-layout .spot-card > .spot-header{ grid-area: header; }
  .cards-layout .spot-card > .spot-body{ grid-area: body; }
  .cards-layout .spot-media{ position:relative; background:#000; }

  .cards-layout .spot-card > :where(.spot-header,
                                    .spot-title-heading,
                                    .feature-badges,
                                    .spot-body){
    max-width:none; margin:0; padding-inline: var(--card-pad); text-align:left;
  }
  .cards-layout .spot-header{
    --spot-title-row-edge-offset: max(0px, calc(var(--card-pad) - var(--spot-card-right-overhang, 0px)));
    --spot-header-gap: clamp(6px, 1.2vw, 14px);
    padding-top: var(--card-pad);
    padding-bottom: 0;
    display:flex;
    flex-direction:column;
    gap: var(--spot-header-gap);
  }
  /* Insta表示時はタイトル行を先頭に */
  .spot-card.is-insta-active .spot-title-row,
  .spot-card:has(.media-switcher[data-state="insta"]) .spot-title-row,
  .spot-card[data-has-map="0"][data-has-insta="1"] .spot-title-row{
    order: -1;
  }
  /* Insta表示時はヘッダーをカード最上段へ（非cards-layoutの保険） */
  .spot-card.is-insta-active .spot-header,
  .spot-card:has(.media-switcher[data-state="insta"]) .spot-header,
  .spot-card[data-has-map="0"][data-has-insta="1"] .spot-header{
    order: -1;
  }
  .cards-layout .spot-body{
    /* expose real distance to the viewport edge for descendants (header already exposes it) */
    padding: 0 var(--card-pad) var(--card-pad);
    position: relative;
    z-index: 2;
    background: var(--card-bg);
  }

  .cards-layout .spot-card > .spot-body:empty{ display:none; }
  .cards-layout .spot-card > .spot-media{ padding-inline:0; }

  .cards-layout .spot-card .spot-media.spot-image{
    border-bottom-left-radius:0; border-bottom-right-radius:0;
    height: var(--map-h); overflow:hidden;
  }
  .cards-layout .spot-card .map-wrap,
  .cards-layout .spot-card .map-slide{ height:100%; border-radius: var(--card-radius) var(--card-radius) 0 0; overflow:hidden; }
  .cards-layout .spot-card .map-wrap iframe,
  .cards-layout .spot-card .map-slide iframe,
  .cards-layout .spot-card .map-wrap .gmap,
  .cards-layout .spot-card .map-slide .gmap{ width:100%; height:100%; border-radius:inherit; }

  /* Instagram は過伸長を抑える（一覧のデフォルト） */
  .cards-layout .spot-card .insta-media{
    padding-inline: var(--card-pad); background:transparent;
    max-height: var(--insta-max); overflow:auto;
  }
  .cards-layout .spot-card .media-switcher[data-state="insta"] .insta-media{
    max-height: none;
    overflow: visible;
  }
  .cards-layout .spot-card .media-switcher[data-state="insta"] .insta-scroll{
    height: auto;
    overflow: visible;
  }
  .cards-layout .spot-card .media-switcher[data-state="insta"] .insta-card{
    height: auto;
    min-height: 0;
    overflow: visible;
    display: block;
  }
  .cards-layout .spot-card .media-switcher[data-state="insta"] .insta-card iframe,
  .cards-layout .spot-card .media-switcher[data-state="insta"] .insta-card blockquote.instagram-media{
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0 auto;
  }

  /* Insta active: allow natural (portrait) embed height without :has() */
  .cards-layout .spot-card.is-insta-active .spot-media.spot-image{
    height: auto;
    min-height: 0;
    overflow: visible;
  }
  .cards-layout .spot-card.is-insta-active .media-switcher{
    height: auto;
  }
  .cards-layout .spot-card.is-insta-active .media-pane[data-pane="insta"]{
    position: static;
    height: auto;
  }
  .cards-layout .spot-card.is-insta-active .insta-media{
    padding-inline: 0;
    height: auto;
    max-height: none;
    overflow: visible;
    background: transparent;
  }
  .cards-layout .spot-card.is-insta-active .media-switcher [data-pane="insta"] .insta-scroll{
    height: auto;
    overflow-x: auto;
    overflow-y: visible;
    padding: 12px 0 16px;
    background: transparent;
    justify-content: flex-start;
    align-items: flex-start;
  }
  .cards-layout .spot-card.is-insta-active .media-switcher [data-pane="insta"] .insta-card{
    flex: 0 0 100%;
    min-width: 100%;
    width: 100%;
    height: auto;
    overflow: visible;
    display: grid;
    place-items: center;
    background: transparent;
    scroll-snap-align: start;
  }

  /* Insta only cards: same auto-height treatment without relying on JS */
  .cards-layout .spot-card[data-has-map="0"][data-has-insta="1"] .spot-media.spot-image{
    height: auto;
    min-height: 0;
    overflow: visible;
  }
  .cards-layout .spot-card[data-has-map="0"][data-has-insta="1"] .media-switcher{
    height: auto;
  }
  .cards-layout .spot-card[data-has-map="0"][data-has-insta="1"] .media-pane[data-pane="insta"]{
    position: static;
    height: auto;
  }
  .cards-layout .spot-card[data-has-map="0"][data-has-insta="1"] .insta-media{
    padding-inline: 0;
    height: auto;
    max-height: none;
    overflow: visible;
    background: transparent;
  }
  .cards-layout .spot-card[data-has-map="0"][data-has-insta="1"] .media-switcher [data-pane="insta"] .insta-scroll{
    height: auto;
    overflow-x: auto;
    overflow-y: visible;
    padding: 12px 0 16px;
    background: transparent;
    justify-content: flex-start;
    align-items: flex-start;
  }
  .cards-layout .spot-card[data-has-map="0"][data-has-insta="1"] .media-switcher [data-pane="insta"] .insta-card{
    flex: 0 0 100%;
    min-width: 100%;
    width: 100%;
    height: auto;
    overflow: visible;
    display: grid;
    place-items: center;
    background: transparent;
    scroll-snap-align: start;
  }

  /* 長文化ガード */
  .cards-layout .spot-card .spot-body{ overflow:hidden; text-overflow:ellipsis; word-break:break-word; }
  /* 詳細系は末尾のセクションが切れないようにする */
  body.single-spot .cards-layout .spot-card .spot-body,
  body.tax-location .location-archive.is-detail-open .spot-card .spot-body{ overflow: visible; }

  .spot-contact{
    padding: 1.1rem 1rem 1.2rem;
    margin-top: clamp(1.2rem, 3vw, 1.6rem);
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--shadow-base);
  }
  .spot-contact__header{
    display:flex;
    align-items:center;
    gap:.6rem;
    margin-bottom:.65rem;
  }
  .spot-contact__divider{
    width:3px;
    height:1.6rem;
    border-radius:999px;
    background:#0f172a;
  }
  .spot-contact__title{
    margin:0;
    font-size:clamp(1.1rem, 3vw, 1.35rem);
    font-weight:800;
    color:#0f172a;
  }
  .spot-contact__rows{
    display:flex;
    flex-direction:column;
    gap:.9rem;
  }
  .spot-contact__row{
    display:flex;
    gap:.9rem;
    align-items:flex-start;
  }
  .spot-contact__row--access .spot-contact__icon{
    background:#dbeafe;
    color:#1d4ed8;
  }
  .spot-contact__row--address .spot-contact__icon{
    background:#ede9fe;
    color:#7c3aed;
  }
  .spot-contact__icon{
    width:44px;
    min-width:44px;
    height:44px;
    border-radius:14px;
    background:#f8fafc;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#475569;
  }
  .spot-contact__icon svg{
    width:1.25rem;
    height:1.25rem;
  }
  .spot-contact__content{
    flex:1;
  }
  .spot-contact__label{
    margin:0;
    font-size:.78rem;
    font-weight:700;
    color:#94a3b8;
    letter-spacing:.02em;
  }
  .spot-contact__text{
    margin:4px 0 0;
    font-size:.98rem;
    color:#0f172a;
    line-height:1.6;
  }


  .spot-business{
    margin-top: clamp(1.2rem, 3vw, 1.6rem);
    padding: 1.25rem 1rem 1.4rem;
    border-radius: 18px;
    border: 1px solid rgba(15,23,42,.08);
    background: #fff;
    box-shadow: var(--shadow-base);
  }
  .spot-business__rows{
    display:flex;
    flex-direction:column;
    gap:1rem;
  }
  .spot-business__row{
    display:flex;
    gap:.85rem;
    align-items:flex-start;
  }
  .spot-business__row--hours .spot-business__icon{
    background:#eef2ff;
    color:#4338ca;
  }
  .spot-business__row--holiday .spot-business__icon{
    background:#fee2e2;
    color:#dc2626;
  }
  .spot-business__icon{
    width:44px;
    min-width:44px;
    height:44px;
    border-radius:14px;
    background:#eef2ff;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#4338ca;
  }
  .spot-business__icon svg{
    width:1.25rem;
    height:1.25rem;
  }
  .spot-business__content{
    flex:1;
  }
  .spot-business__label{
    margin:0;
    font-size:.78rem;
    font-weight:700;
    color:#94a3b8;
    letter-spacing:.02em;
  }
  .spot-business__text{
    margin:4px 0 0;
    font-size:.98rem;
    color:#0f172a;
    line-height:1.5;
  }
  .spot-business__button{
    margin-top:1.15rem;
    width:100%;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.5rem;
    padding:.65rem 1.1rem;
    border-radius:999px;
    border:0;
    background: linear-gradient(135deg, #8b5cf6, #6366f1);
    color:#fff;
    font-size:.95rem;
    font-weight:700;
    text-decoration:none;
    box-shadow:0 8px 20px rgba(99,102,241,.35);
    transition: transform .2s ease, box-shadow .2s ease;
  }
  .spot-business__button:hover{
    transform: translateY(-1px);
    box-shadow:0 12px 26px rgba(99,102,241,.45);
  }
  .spot-business__button:focus-visible{
    outline:2px solid rgba(79,70,229,.6);
    outline-offset:2px;
  }
  .spot-business__button-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }
  .spot-business__button.is-disabled{
    background:#e2e8f0;
    color:#94a3b8;
    box-shadow:none;
    cursor:not-allowed;
  }

  /* Description は全カード同一の扱い */
  /* どんな埋め込みでも最低高さは維持 */
  .cards-layout .spot-card .spot-media.spot-image{
    min-height: clamp(var(--map-min), var(--map-h), var(--map-max));
  }

  /* Insta表示時は高さ制限を解除して全表示 */
  .cards-layout .spot-card:has(.media-switcher[data-state="insta"]),
  .cards-layout .spot-card.is-insta-active{
    grid-template-rows: auto auto auto;
    grid-template-areas:
      "header"
      "media"
      "body";
  }
  .cards-layout .spot-card .spot-media.spot-image:has(.media-switcher[data-state="insta"]){
    height: auto;
    min-height: 0;
    overflow: visible;
  }
  .cards-layout .spot-card .media-switcher[data-state="insta"]{
    height: auto;
  }
  .cards-layout .spot-card .media-switcher[data-state="insta"] .media-pane[data-pane="insta"]{
    position: static;
    height: auto;
  }

  @media (max-width:768px){
    .feature-badges{
      grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
      gap:.4rem;
    }
    .feature-badges .feature-badge{
      font-size:.68rem;
      padding:.3rem .45rem;
      border-radius:.45rem;
      min-height:1.9rem;
    }
    .feature-badges .feature-badge__icon{
      width:.95rem;
      height:.95rem;
    }
    .feature-badges .feature-badge__icon svg{
      width:.95rem;
      height:.95rem;
    }
  }

  @media (max-width:768px){
    .spot-contact{
      padding: 1rem .9rem 1.05rem;
    }
    .spot-contact__row{
      gap:.65rem;
    }
    .spot-contact__icon{
      width:38px;
      height:38px;
    }
    .spot-contact__text{
      font-size:.92rem;
    }
    .spot-business__icon{
      width:36px;
      height:36px;
    }
    .spot-business__button{
      padding:.55rem 1rem;
    }
  }

  @media (max-width:768px){
    .cards-layout{
      --map-h: var(--map-mobile-clamp, clamp(360px, 66vh, 520px));
    }
  }

  @media (max-width:480px){
    .cards-layout{
      --map-h: var(--map-mobile-clamp, clamp(320px, 70vh, 460px));
    }
  }

  /* Spot grid picker (taxonomy-location) */
  .spot-grid{
    display:flex;
    flex-direction:column;
    gap:16px;
    padding: 0 12px 18px;
  }
  /* JSで hidden 属性を付与しても、.spot-grid側で display を指定しているため明示的に非表示化 */
  .spot-grid[hidden]{
    display:none;
  }
  .spot-grid__cards{
    display:grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap:16px;
  }
  @media (max-width:720px){
    .spot-grid__cards{ grid-template-columns: repeat(1, minmax(0, 1fr)); }
  }
  .spot-grid-card{
    --grid-pad: 16px;
    --grid-radius: 14px;
    position:relative;
    display:flex;
    flex-direction:column;
    gap:14px;
    padding:var(--grid-pad);
    min-height:260px;
    border-radius: var(--grid-radius);
    background:#fff;
    border:1px solid var(--card-border, #e5e7eb);
    box-shadow: var(--grid-card-shadow, 0 14px 36px rgba(0,0,0,.08));
    cursor:pointer;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
  }
  .spot-grid-card:focus-visible{
    outline:2px solid var(--brand, #fb7185);
    outline-offset:3px;
  }
  .spot-grid-card:hover{
    transform: translateY(-2px);
    box-shadow: var(--grid-card-shadow-hover, 0 18px 44px rgba(0,0,0,.12));
  }
  .spot-grid-card.is-active{
    border-color: var(--brand, #fb7185);
    box-shadow: var(--grid-card-shadow-active, 0 18px 44px rgba(251,113,133,.25));
    background: linear-gradient(180deg, rgba(251,113,133,.08), #fff);
  }
  .spot-grid-card__eyebrow{
    display:flex;
    align-items:center;
    gap:10px;
    min-height: var(--fav-size, 40px);
  }
  .spot-grid-card__heading{
    display:flex;
    flex-direction:column;
    gap:6px;
    flex:1 1 auto;
    min-width:0;
  }

  /* Grid card: category badge + location row */
  .spot-grid-card .spot-category-row{
    margin:0 0 8px;
    padding-left:0;
    padding-right:0;
  }
  .spot-grid-card .spot-location-chip__text{
    max-width: clamp(120px, 42vw, 260px);
  }

  .spot-grid-card__heading .spot-category-pill{
    align-self:flex-start;
    font-size:.72rem;
    padding:.24rem .55rem;
  }
  .spot-grid-card__heading .spot-category-pill__icon{
    width:.9rem;
    height:.9rem;
  }
  .spot-grid-card__heading .spot-category-pill__icon svg{
    width:.9rem;
    height:.9rem;
  }
  .spot-grid-card__spot{
    font-size:clamp(1.2rem, 2.4vw, 1.6rem);
    font-weight:800;
    color:#111827;

    text-decoration:none;
    line-height:1.3;
    display:-webkit-box;
    -webkit-line-clamp:1;
    -webkit-box-orient:vertical;
    overflow:hidden;
    text-overflow: ellipsis;
    cursor:pointer;
    flex:1 1 auto;
    min-width:0;
    word-break:break-word;
  }
  .spot-grid-card__spot.is-expanded{
    display:block;
    white-space:normal;
    -webkit-line-clamp:unset;
    -webkit-box-orient:unset;
    overflow:visible;
    text-overflow:clip;
  }
  .spot-grid-card__fav{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .spot-grid-card .fav-btn{
    --fav-size: 34px;
    --fav-nudge-y: 0;
    box-shadow:none;
  }
  .spot-grid-card__meta{
    display:flex;
    flex-direction:column;
    gap:16px;
    margin-top:2px;
  }
  .spot-grid-card__badges{
    display:grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap:8px;
  }
  .spot-grid-card__badge{
    --grid-badge-active-bg: var(--badge1-bg);
    --grid-badge-active-bd: var(--badge1-bd);
    --grid-badge-active-fg: var(--badge1-fg);
    border:1px solid #e2e8f0;
    background:#f8fafc;
    color:#94a3b8;
    border-radius:.5rem;
    font-size:.9rem !important;
    font-weight:700;
    line-height:1.2;
    display:flex;
    align-items:center;
    gap:.45rem;
    text-align:left;
    padding:.45rem .65rem !important;
    min-height:2.4rem;
    box-shadow:0 1px 0 rgba(0,0,0,.04);
  }
  .spot-grid-card__badge.is-active{
    background:var(--grid-badge-active-bg);
    border-color:var(--grid-badge-active-bd);
    color:var(--grid-badge-active-fg);
  }
  .spot-grid-card__badge-icon{
    width:1.1rem;
    height:1.1rem;
    display:grid;
    place-items:center;
  }
  .spot-grid-card__badge-icon svg{
    width:1.1rem;
    height:1.1rem;
    fill:currentColor;
  }
  .spot-grid-card__badge-label{
    line-height:1.1;
    flex:1;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .spot-grid-card__badge:nth-child(6n+1){ --grid-badge-active-bg:var(--badge1-bg); --grid-badge-active-bd:var(--badge1-bd); --grid-badge-active-fg:var(--badge1-fg); }
  .spot-grid-card__badge:nth-child(6n+2){ --grid-badge-active-bg:var(--badge2-bg); --grid-badge-active-bd:var(--badge2-bd); --grid-badge-active-fg:var(--badge2-fg); }
  .spot-grid-card__badge:nth-child(6n+3){ --grid-badge-active-bg:var(--badge3-bg); --grid-badge-active-bd:var(--badge3-bd); --grid-badge-active-fg:var(--badge3-fg); }
  .spot-grid-card__badge:nth-child(6n+4){ --grid-badge-active-bg:var(--badge4-bg); --grid-badge-active-bd:var(--badge4-bd); --grid-badge-active-fg:var(--badge4-fg); }
  .spot-grid-card__badge:nth-child(6n+5){ --grid-badge-active-bg:var(--badge5-bg); --grid-badge-active-bd:var(--badge5-bd); --grid-badge-active-fg:var(--badge5-fg); }
  .spot-grid-card__badge:nth-child(6n+6){ --grid-badge-active-bg:var(--badge6-bg); --grid-badge-active-bd:var(--badge6-bd); --grid-badge-active-fg:var(--badge6-fg); }
  @media (max-width:720px){
    .spot-grid-card__badges{
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap:6px;
    }
    .spot-grid-card__badge{
      font-size:.8rem !important;
      padding:.4rem .55rem !important;
      border-radius:.45rem;
      min-height:2.2rem;
      gap:.35rem;
    }
    .spot-grid-card__badge-icon{
      width:1rem;
      height:1rem;
    }
    .spot-grid-card__badge-icon svg{
      width:1rem;
      height:1rem;
    }
  }
  .spot-grid-card__desc{
    margin:0;
    color:#4b5563;
    font-size:.93rem;
    line-height:1.35;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .spot-grid-card__media{
    --grid-media-ratio: 16 / 9;
    background:#000;
    touch-action: pan-y; /* allow page scroll when starting on media */

    /* Full-bleed media inside padded card */
    margin: calc(var(--grid-pad) * -1) calc(var(--grid-pad) * -1) 0;

    /* Match card radius on top corners only */
    border-top-left-radius:var(--grid-radius);
    border-top-right-radius:var(--grid-radius);
    border-bottom-left-radius:0;
    border-bottom-right-radius:0;

    padding:0;
    overflow:hidden;
    min-height:140px;
    aspect-ratio: var(--grid-media-ratio);
  }
  .spot-grid-card__media-frame{
    position:relative;
    width:100%;
    aspect-ratio: 16 / 9;
    overflow:hidden;
    touch-action: pan-y;

    /* Media wrapper already clips corners */
    border-radius:0;

    background:#000;
  }
  .spot-grid-card__media-frame iframe,
  .spot-grid-card__media-frame blockquote.instagram-media{
    position:absolute;
    top:0; left:0;
    width:100%;
    height:100%;
    border:0;
    touch-action: pan-y;
  }
  .spot-grid-card[data-has-map="0"][data-has-insta="1"] .spot-grid-card__media{
    display: flex;
    justify-content: center;
    align-items: flex-start;
    /* Pull media up to overlap card padding same as map cards (removes top gap) */
    margin: calc(var(--grid-pad) * -1) calc(var(--grid-pad) * -1) 0;
    aspect-ratio: auto !important;
    height: auto;
    min-height: clamp(240px, 34vw, 380px);
    overflow: visible !important;
  }
  .spot-grid-card[data-has-map="0"][data-has-insta="1"] .spot-grid-card__media-frame{
    position: static !important;
    aspect-ratio: auto !important;
    width: min(320px, 100%);
    margin-left: auto;
    margin-right: auto;
    min-height: clamp(240px, 34vw, 380px);
    height: auto;
    overflow: visible !important;
    padding-bottom: 0;
  }
  .spot-grid-card[data-has-map="0"][data-has-insta="1"] .spot-grid-card__media-frame iframe{
    position: static !important;
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    vertical-align: top;
  }
  .spot-grid-card[data-has-map="0"][data-has-insta="1"] .spot-grid-card__media-frame blockquote.instagram-media{
    position: static !important;
    display: block;
    width: 100% !important;
    height: auto;
    max-width: 100% !important;
    margin: 0 !important;
  }
  /* グリッドカード内のGoogle Mapはスワイプ優先で操作不可 */
  .spot-grid .spot-grid-card__media-frame:not(.insta) iframe{
    pointer-events:none !important;
  }
  .spot-grid-card__media--empty{
    position:relative;
    overflow:hidden;
    padding:0;
    background:#000;
  }
  .spot-grid__hint{
    margin:0;
    padding:0 4px 8px;
    color:#6b7280;
    font-size:.92rem;
  }
  .location-archive-results{
    margin: clamp(16px, 3vw, 24px) clamp(12px, 2vw, 18px) clamp(8px, 1.6vw, 14px);
    display:flex;
    align-items:center;
    gap:6px;
    font-size:.95rem;
    color:#475569;
    font-weight:600;
  }
  /* Results bar: sort (near) button */
  body.tax-location .location-archive-results button.location-archive-results__sort{
    --sort-bg:#ffffff;
    --sort-bd:#e2e8f0;
    --sort-fg:#0f172a;
    --sort-shadow: 0 1px 0 rgba(15,23,42,.05), 0 6px 12px rgba(15,23,42,.08);

    margin-left: 10px;
    height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    border: 1px solid var(--sort-bd);
    background: linear-gradient(180deg, var(--sort-bg), #f8fafc);
    color: var(--sort-fg);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: .8rem;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
    box-shadow: var(--sort-shadow);
    user-select: none;
    -webkit-appearance: none;
    appearance: none;
    font-family: inherit;
    letter-spacing: .02em;
    text-decoration: none;
    transition: transform .12s ease, box-shadow .12s ease, background .12s ease, border-color .12s ease, color .12s ease, opacity .12s ease;
  }
  body.tax-location .location-archive-results .location-archive-results__sort-icon{
    width: 14px;
    height: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
  }
  body.tax-location .location-archive-results .location-archive-results__sort-icon svg{
    width: 14px;
    height: 14px;
    display: block;
  }
  body.tax-location .location-archive-results .location-archive-results__sort-text{
    display: block;
    white-space: nowrap;
  }
  @media (hover:hover){
    body.tax-location .location-archive-results button.location-archive-results__sort:hover{
      border-color: #cbd5e1;
      background: linear-gradient(180deg, #ffffff, #eef2ff);
      transform: translateY(-1px);
      box-shadow: 0 2px 0 rgba(15,23,42,.04), 0 12px 22px rgba(15,23,42,.10);
    }
  }
  body.tax-location .location-archive-results button.location-archive-results__sort:active{
    transform: translateY(0);
    box-shadow: 0 1px 0 rgba(15,23,42,.05), 0 6px 14px rgba(15,23,42,.08);
  }
  body.tax-location .location-archive-results button.location-archive-results__sort:focus-visible{
    outline: 2px solid rgba(59,130,246,.35);
    outline-offset: 2px;
  }
  body.tax-location .location-archive-results button.location-archive-results__sort.is-active{
    --sort-bg: var(--badge4-bg);
    --sort-bd: var(--badge4-bd);
    --sort-fg: var(--badge4-fg);
    background: linear-gradient(180deg, var(--sort-bg), rgba(236,253,245,.65));
  }
  body.tax-location .location-archive-results button.location-archive-results__sort:disabled{
    opacity: .55;
    cursor: not-allowed;
    transform: none;
    box-shadow: 0 1px 0 rgba(15,23,42,.04);
  }
  body.tax-location .location-archive-results button.location-archive-results__sort.is-loading::after{
    content: '';
    width: 14px;
    height: 14px;
    border-radius: 999px;
    border: 2px solid currentColor;
    border-top-color: transparent;
    display: inline-block;
    animation: iksSpin 0.8s linear infinite;
  }

  body.tax-location .location-archive-results button.location-archive-results__sort.is-hidden{
    display:none;
  }
  /* Distance CTA placed under H1 */
  .location-archive-distance{
    margin: clamp(18px, 3vw, 28px) clamp(12px, 2vw, 18px) clamp(14px, 2.4vw, 24px);
    display: flex;
    justify-content: flex-start;
  }
  .location-archive-distance .location-archive-results__sort{
    margin-left: 0;
  }
  body.home.tax-location .location-archive-header__actions .location-archive-results{
    display: none;
  }
  body.home.tax-location .location-archive-header__actions .location-archive-results button.location-archive-results__sort--hero{
    display: none;
  }
  body.home.tax-location .location-archive-header__actions .location-archive-results button.location-archive-results__sort--hero{
    margin-left: 0;
    height: 40px;
    padding: 0 14px 0 12px;
    border-radius: 12px;
    border: 1px solid rgba(15,23,42,.14);
    background: rgba(255,255,255,.92);
    color: #0f172a;
    box-shadow: 0 8px 18px rgba(15,23,42,.12);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    font-size: .86rem;
    font-weight: 700;
    letter-spacing: .015em;
  }
  body.home.tax-location .location-archive-header__actions .location-archive-results .location-archive-results__sort--hero .location-archive-results__sort-icon{
    width: 16px;
    height: 16px;
    border-radius: 999px;
    background: rgba(15,23,42,.06);
  }
  body.home.tax-location .location-archive-header__actions .location-archive-results .location-archive-results__sort--hero .location-archive-results__sort-icon svg{
    width: 12px;
    height: 12px;
    fill: currentColor;
  }
  @media (hover:hover){
    body.home.tax-location .location-archive-header__actions .location-archive-results button.location-archive-results__sort--hero:hover{
      border-color: rgba(15,23,42,.24);
      background: #ffffff;
      box-shadow: 0 10px 20px rgba(15,23,42,.14);
      transform: translateY(-1px);
    }
  }
  body.home.tax-location .location-archive-header__actions .location-archive-results button.location-archive-results__sort--hero:active{
    transform: translateY(0);
    box-shadow: 0 5px 12px rgba(15,23,42,.14);
  }
  body.home.tax-location .location-archive-header__actions .location-archive-results button.location-archive-results__sort--hero:focus-visible{
    outline: 2px solid rgba(37,99,235,.35);
    outline-offset: 2px;
  }
  body.home.tax-location .location-archive-header__actions .location-archive-results button.location-archive-results__sort--hero.is-active{
    border-color: #1d4ed8;
    background: #1d4ed8;
    color: #ffffff;
    box-shadow: 0 10px 18px rgba(29,78,216,.3);
  }
  body.home.tax-location .location-archive-header__actions .location-archive-results button.location-archive-results__sort--hero.is-loading::after{
    width: 15px;
    height: 15px;
  }
  @media (max-width: 640px){
    body.home.tax-location .location-archive-header__actions .location-archive-results button.location-archive-results__sort--hero{
      height: 36px;
      padding: 0 12px;
      font-size: .82rem;
    }
  }

  @keyframes iksSpin{
    0%{ transform: rotate(0deg); }
    100%{ transform: rotate(360deg); }
  }
  .location-archive.is-detail-open .location-archive-results{
    display:none;
  }
  .spot-grid__loader{
    width:100%;
    height:48px;
    border-radius:12px;
    background: linear-gradient(90deg, rgba(226,232,240,.4), rgba(203,213,225,.6), rgba(226,232,240,.4));
    background-size:200% 100%;
    animation: gridShimmer 1.2s ease-in-out infinite;
  }
  @keyframes gridShimmer{
    0%{ background-position:0 0; }
    100%{ background-position:200% 0; }
  }

  /* =============== 7) Utilities =============== */
  .location-archive{ display:block; }
  .location-archive.spot-one>.spot-card-box{ width:100%; margin:0; }
  .spot-card-box .spot-image{ width:100%; }
  .location-archive.spot-one{ grid-template-columns:none; }
  .location-archive.spot-one>.spot-card-box{ grid-column:auto; }
  .location-archive.is-detail-open{
    width: 100%;
    max-width: none;
    margin: 0;
    padding: var(--iks-topbar-offset, 0px) 0 0;
  }
  .location-archive.is-detail-open .spot-card{
    width: 100%;
    max-width: none;
    margin: 0;
  }
/* 詳細ビュー（taxonomy）＋single spot：Instaを1枚ずつ“縦長＋小さめ”で中央表示（左右に余白）
   - 小さめ表示は維持しつつ、モバイル極小幅では「縮め過ぎ」で切れないように下限を調整
   - Instagram側が inline style で幅を入れるケースがあるため、幅だけ !important で上書き（例外） */
body.tax-location .location-archive.is-detail-open,
body.single-spot{
  --insta-detail-maxw: min(420px, 92vw);
  --insta-detail-gutter: clamp(12px, 3.2vw, 24px);
  --insta-detail-pad-y: clamp(12px, 2.4vw, 18px);
}

/* 画面が小さいときは “小さめ” を少し緩めて切れを防ぐ */
@media (max-width:480px){
  body.tax-location .location-archive.is-detail-open,
  body.single-spot{
    --insta-detail-maxw: min(360px, 94vw);
  }
}
@media (max-width:360px){
  body.tax-location .location-archive.is-detail-open,
  body.single-spot{
    --insta-detail-maxw: 100%;
    --insta-detail-gutter: 0px;
  }
}

body.tax-location .location-archive.is-detail-open .spot-card .media-switcher [data-pane="insta"] .insta-scroll,
body.single-spot .spot-card .media-switcher [data-pane="insta"] .insta-scroll{
  width: 100%;
  max-width: none;
  gap: 0;
  scroll-snap-type: x mandatory;
  padding: var(--insta-detail-pad-y) 0;
  background: transparent;
  align-items: flex-start;
}

/* 詳細ビュー（Instaの横スクロールバー非表示） */
body.tax-location .location-archive.is-detail-open .spot-card .media-switcher [data-pane="insta"] .insta-scroll,
body.single-spot .spot-card .media-switcher [data-pane="insta"] .insta-scroll{
  scrollbar-width: none;
}
body.tax-location .location-archive.is-detail-open .spot-card .media-switcher [data-pane="insta"] .insta-scroll::-webkit-scrollbar,
body.single-spot .spot-card .media-switcher [data-pane="insta"] .insta-scroll::-webkit-scrollbar{
  display: none;
}

body.tax-location .location-archive.is-detail-open .spot-card .media-switcher [data-pane="insta"] .insta-card,
body.single-spot .spot-card .media-switcher [data-pane="insta"] .insta-card{
  flex: 0 0 100%;
  min-width: 100%;
  width: 100%;
  max-width: 100%;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  background: transparent;
  padding-inline: var(--insta-detail-gutter);
  box-sizing: border-box;
}

body.tax-location .location-archive.is-detail-open .spot-card .media-switcher [data-pane="insta"] .insta-card iframe,
body.tax-location .location-archive.is-detail-open .spot-card .media-switcher [data-pane="insta"] .insta-card blockquote.instagram-media,
body.single-spot .spot-card .media-switcher [data-pane="insta"] .insta-card iframe,
body.single-spot .spot-card .media-switcher [data-pane="insta"] .insta-card blockquote.instagram-media{
  display: block;
  width: 100% !important;
  max-width: var(--insta-detail-maxw) !important;
  min-width: 0 !important;
  margin-inline: auto;
  box-sizing: border-box;
}

/* 詳細ビュー：Insta side arrows */
body.tax-location .location-archive.is-detail-open .spot-card .insta-media,
body.single-spot .spot-card .insta-media{
  position: relative;
}
body.tax-location .location-archive.is-detail-open .spot-card .insta-slider-controls,
body.single-spot .spot-card .insta-slider-controls{
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0 clamp(10px, 2.8vw, 20px);
  pointer-events: none;
  z-index: 6;
}
body.tax-location .location-archive.is-detail-open .spot-card .insta-slider-nav__btn,
body.single-spot .spot-card .insta-slider-nav__btn{
  pointer-events: auto;
  border: 0;
  background: transparent;
  color: #fff;
  font-size: clamp(26px, 6vw, 46px);
  font-weight: 700;
  line-height: .85;
  padding: 6px 12px;
  cursor: pointer;
  text-shadow: 0 0 8px rgba(0,0,0,.55);
  transform: scaleY(1.7);
  transition: transform .2s ease, opacity .2s ease;
}
body.tax-location .location-archive.is-detail-open .spot-card .insta-slider-nav__btn:hover,
body.tax-location .location-archive.is-detail-open .spot-card .insta-slider-nav__btn:focus-visible,
body.single-spot .spot-card .insta-slider-nav__btn:hover,
body.single-spot .spot-card .insta-slider-nav__btn:focus-visible{
  transform: translateY(-1px) scaleY(1.7);
}
body.tax-location .location-archive.is-detail-open .spot-card .insta-slider-nav__btn:focus-visible,
body.single-spot .spot-card .insta-slider-nav__btn:focus-visible{
  outline: 2px solid rgba(255,255,255,.85);
  outline-offset: 2px;
}
body.tax-location .location-archive.is-detail-open .spot-card .insta-slider-nav__btn[disabled],
body.single-spot .spot-card .insta-slider-nav__btn[disabled]{
  opacity: .3;
  cursor: not-allowed;
  transform: scaleY(1.7);
}

/* 追加：iframe/blockquote の“はみ出し”を親で受け止める（切れ防止） */
body.tax-location .location-archive.is-detail-open .spot-card .media-switcher[data-state="insta"],
body.single-spot .spot-card .media-switcher[data-state="insta"]{
  overflow: visible;
}
body.tax-location .location-archive.is-detail-open .spot-card .media-switcher[data-state="insta"] .insta-media,
body.tax-location .location-archive.is-detail-open .spot-card .media-switcher[data-state="insta"] .insta-scroll,
body.tax-location .location-archive.is-detail-open .spot-card .media-switcher[data-state="insta"] .insta-card,
body.single-spot .spot-card .media-switcher[data-state="insta"] .insta-media,
body.single-spot .spot-card .media-switcher[data-state="insta"] .insta-scroll,
body.single-spot .spot-card .media-switcher[data-state="insta"] .insta-card{
  overflow: visible;
}


  /* PCで “カードごと” フルブリード */
  @media (min-width:1024px){
    .location-archive.container{ max-width:none; width:100%; padding-left:0; padding-right:0; }
    .location-archive .spot-card{
      --spot-card-right-overhang: calc(var(--map-bleed-fix, 0px) / 2);
      width: calc(100vw + var(--map-bleed-fix, 2px));
      max-width: none;
      margin-left:  calc(50% - 50vw - (var(--map-bleed-fix, 2px) / 2) + (100vw - 100%) / 2);
      margin-right: calc(50% - 50vw - (var(--map-bleed-fix, 2px) / 2) + (100vw - 100%) / 2);
      overflow: visible;
    }
    .location-archive .spot-card .spot-media.spot-image{ overflow:visible; }
    .location-archive .spot-card .map-wrap{ width:100%; max-width:none; margin-left:0; margin-right:0; }
    .location-archive .spot-card .map-slider{
      width:100%; max-width:none; margin-left:0; margin-right:0; gap:0; scrollbar-width:none; padding-bottom:0;
    }
    body.tax-location .map-slide{ min-width:100%; flex-basis:100%; }
    .location-archive .spot-card .media-switcher [data-pane="insta"] .insta-scroll{
      width:100%; max-width:none; margin-left:0; margin-right:0; gap:0; padding-bottom:0;
    }
    .location-archive .spot-card .media-switcher [data-pane="insta"] .insta-card{
      min-width:100%; flex-basis:100%; height:100%;
    }
    .location-archive.is-detail-open{
      width: 100%;
      margin: 0;
    }
    .location-archive.is-detail-open .spot-card{
      width: 100%;
      margin-left: 0;
      margin-right: 0;
    }
  }

  /* =============== 8) Google Map ? 横スクロール（スライダー） =============== */
  body.tax-location .map-slider,
  body.single-spot .map-slider{
    position:relative; display:flex; gap:12px;
    overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;
    touch-action: pan-x pan-y; /* allow vertical scroll when dragging over map media */
    overscroll-behavior-x: contain;
    padding-bottom:.25rem; cursor:grab; scrollbar-width:auto;
    scrollbar-color: rgba(0,0,0,.45) rgba(0,0,0,.08); line-height:0;
  }
  /* single-spot: hide map slider scrollbar to remove the black band */
  body.single-spot .map-slider{
    padding-bottom: 0;
    scrollbar-width: none;
  }
  body.single-spot .map-slider::-webkit-scrollbar{
    height: 0;
    display: none;
  }
  body.tax-location .map-slider-wrap,
  body.single-spot .map-slider-wrap{ position:relative; }

  body.tax-location .map-slider::-webkit-scrollbar,
  body.single-spot .map-slider::-webkit-scrollbar{ height:20px; }
  body.tax-location .map-slider::-webkit-scrollbar-track,
  body.single-spot .map-slider::-webkit-scrollbar-track{ background:rgba(0,0,0,.08); border-radius:999px; }
  body.tax-location .map-slider::-webkit-scrollbar-thumb,
  body.single-spot .map-slider::-webkit-scrollbar-thumb{
    background:rgba(0,0,0,.45); border-radius:999px; border:4px solid transparent; background-clip:padding-box;
  }
  body.tax-location .map-slider:active,
  body.single-spot .map-slider:active{ cursor:grabbing; }

  body.tax-location .map-slider-nav__btn,
  body.single-spot .map-slider-nav__btn{
    width:auto;
    height:auto;
    border:none;
    border-radius:0;
    background:transparent;
    color:#fff;
    font-size:26px;
    line-height:1;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    pointer-events:auto;
    text-shadow:0 0 6px rgba(0,0,0,.5);
    transition:transform .2s ease, opacity .2s ease;
  }
  body.tax-location .map-slider-nav__btn:hover,
  body.single-spot .map-slider-nav__btn:hover,
  body.tax-location .map-slider-nav__btn:focus-visible,
  body.single-spot .map-slider-nav__btn:focus-visible{
    transform:translateY(-1px);
  }
  body.tax-location .map-slider-nav__btn:focus-visible,
  body.single-spot .map-slider-nav__btn:focus-visible{
    outline:2px solid rgba(255,255,255,.85);
    outline-offset:2px;
  }
  @media (max-width:480px){
    body.tax-location .map-slider-nav__btn,
    body.single-spot .map-slider-nav__btn{
      font-size:20px;
    }
  }

  body.tax-location .map-slide,
  body.single-spot .map-slide{
    flex:0 0 100%; min-width:100%;
    scroll-snap-align:start;
    position:relative;
    height: clamp(var(--map-min), var(--map-slide-current), var(--map-max));
    border-radius: var(--card-radius) var(--card-radius) 0 0;
    overflow:hidden;
    background:#000;
    line-height:0;
  }
  body.tax-location .map-slide iframe,
  body.single-spot .map-slide iframe,
  body.tax-location .map-slide .gmap,
  body.single-spot .map-slide .gmap{
    position:absolute; top:0; right:0; bottom:0; left:0;
    width:100%; border-radius:inherit; border:0; z-index: 1;
  }

  @supports (height:1svh){
    body.tax-location .map-slide,
    body.single-spot .map-slide{ height: clamp(var(--map-min), var(--map-slide-svh), var(--map-max)); }
  }

  /* ナビ（矢印/ドット） */
  body.tax-location .map-dots,
  body.single-spot .map-dots{
    position:absolute; left:50%; transform:translateX(-50%);
    bottom: var(--map-dots-bottom);
    display:flex; gap:6px; padding:6px 8px;
    background:rgba(0,0,0,.35); border-radius:999px; z-index:4;
  }
  body.tax-location .map-dot,
  body.single-spot .map-dot{ width:10px; height:10px; border-radius:999px; background:rgba(255,255,255,.55); }
  body.tax-location .map-dot.is-active,
  body.single-spot .map-dot.is-active{ background:#fff; }

  body.tax-location .map-slider-controls,
  body.single-spot .map-slider-controls{
    position:absolute;
    left:50%;
    bottom: clamp(22px, 4vw, 42px);
    transform:translateX(-50%);
    display:flex;
    align-items:center;
    justify-content:center;
    gap:16px;
    z-index:11;
    pointer-events:none;
  }
  body.tax-location .map-slider-controls .map-slider-nav__btn,
  body.single-spot .map-slider-controls .map-slider-nav__btn{
    pointer-events:auto;
  }
  body.tax-location .map-slider-controls .map-dots,
  body.single-spot .map-slider-controls .map-dots{
    position:static;
    transform:none;
    bottom:auto;
    pointer-events:auto;
  }

/* =============== 8.5) Feature slider =============== */
.feature-slider{
    margin: clamp(18px, 3vw, 28px) 0 clamp(20px, 3vw, 32px);
    --feature-slide-size: clamp(110px, 18vw, 150px);
    --feature-slide-gap: clamp(4px, 1.5vw, 8px);
    --feature-slide-peek: clamp(5px, 2.8vw, 18px);
    --feature-arrow-size: clamp(22px, 5vw, 30px);
    /* nav (arrows) — no background, tall chevrons */
    --feature-nav-w: clamp(28px, 4.2vw, 40px);
    --feature-nav-h: clamp(64px, 9vw, 96px);
    --feature-nav-font: clamp(42px, 5.4vw, 56px);
    --feature-nav-color: rgba(15,23,42,.84);
    --feature-nav-hover-bg: rgba(15,23,42,.12);
    --feature-nav-shadow-light: rgba(255,255,255,.55);
    --feature-nav-shadow-dark: rgba(0,0,0,.35);
    /* scale: center 1, neighbors ~0.7, others ~0.5 */
    --feature-slide-center-scale: 1;
    --feature-slide-adjacent-scale: 0.7;
    --feature-slide-small-scale: 0.5;
    --feature-slide-hover-scale: 1.04;
    --feature-slide-hover-duration: 200ms;
    --feature-slide-hover-duration-touch: 120ms;
    /* vertical breathing room so scaled cards/captions don't clip */
    --feature-track-pad-y: clamp(8px, 2.2vw, 14px);
  }
  .location-archive-header .feature-slider__eyebrow{
    margin: 0 auto calc(.8rem + 30px);
    text-align: center;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: .02em;
    line-height: 1.4;
    max-width: min(320px, 80vw);
    color: #0f172a;
  }
  /* JSフォールバック eyebrow（location-archive-header 外、#locationArchive 直下） */
  #locationArchive > .feature-slider__eyebrow{
    margin: 0 auto calc(.8rem + 30px);
    text-align: center;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: .02em;
    line-height: 1.4;
    max-width: min(320px, 80vw);
    color: #0f172a;
  }
  @media (min-width: 1024px){
    .location-archive-header .feature-slider__eyebrow{ font-size: 28px; }
    #locationArchive > .feature-slider__eyebrow{ font-size: 28px; }
  }
  .feature-slider__inner{
    max-width: min(1200px, 100%);
    margin: 0 auto;
    padding: 0 clamp(12px, 2vw, 18px);
  }
  .feature-slider__head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap: 12px;
    margin-bottom: clamp(10px, 2vw, 16px);
  }
  .feature-slider__title{
    margin:0;
    font-size: clamp(1.05rem, 2.4vw, 1.6rem);
    font-weight: 800;
    letter-spacing: .02em;
    color:#0f172a;
  }
  .feature-slider__wrap{ position:relative; }
  .feature-slider__track{
    display:flex;
    overflow-x:auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    /* Allow vertical scroll to continue on mobile; pan-x only was blocking reach to footer */
    touch-action: pan-x pan-y;
    scrollbar-width: none;
    gap: var(--feature-slide-gap);
    padding: var(--feature-track-pad-y) max(var(--feature-slide-peek), calc((100% - var(--feature-slide-size)) / 2));
    scroll-padding-inline: max(var(--feature-slide-peek), calc((100% - var(--feature-slide-size)) / 2));
  }
  .feature-slider__track::-webkit-scrollbar{ display:none; }
  .feature-slider__slide{
    flex: 0 0 auto;
    width: var(--feature-slide-size);
    min-width: 0;
    scroll-snap-align: center;
    scroll-snap-stop: always;
    position: relative;
    border-radius: 18px;
    overflow: hidden;
    background:#0f172a;
    color: inherit;
    text-decoration: none;
    box-shadow: var(--shadow-card);
    /* keep swipe responsive on touch devices even when the child is an anchor */
    touch-action: pan-x pan-y;
    --feature-slide-scale: var(--feature-slide-small-scale);
    --feature-slide-scale-hover: 1;
    transform: scale(calc(var(--feature-slide-scale) * var(--feature-slide-scale-hover)));
    transform-origin: center center;
    transition: transform var(--feature-slide-hover-duration, .18s) ease, box-shadow .18s ease;
  }
  .feature-slider__slide:focus-visible{
    outline: 3px solid rgba(59,130,246,.45);
    outline-offset: 2px;
  }
  .feature-slider__slide--adjacent{
    --feature-slide-scale: var(--feature-slide-adjacent-scale);
  }
  .feature-slider__slide--is-center{
    --feature-slide-scale: var(--feature-slide-center-scale);
    box-shadow: 0 18px 36px rgba(0,0,0,.22);
  }
  .feature-slider__media{
    display:block;
    width:100%;
    aspect-ratio: 1 / 1;
    height: auto;
    background:#0f172a;
  }
  .feature-slider__media img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }
  /* Editorial slider: allow caption to overflow above the card */
  .feature-slider[data-context="editorial"]{
    --feature-caption-overhang-left: calc(var(--feature-slide-size) * 0.10);
    --feature-caption-overhang-right: calc(var(--feature-slide-size) * -0.10);
    --paper-shadow: rgba(0,0,0,.10);
    --paper-shadow-strong: rgba(0,0,0,.12);
  }

  /* Editorial slider：添付イメージ風の“紙”シャドウ（右下にオフセット、ぼかし無し） */
  .feature-slider[data-context="editorial"] .feature-slider__slide{
    box-shadow: 8px 8px 0 var(--paper-shadow);
  }
  .feature-slider[data-context="editorial"] .feature-slider__slide--is-center{
    box-shadow: 10px 10px 0 var(--paper-shadow-strong);
  }
  @media (hover:hover){
    .feature-slider[data-context="editorial"] .feature-slider__slide:hover{
      box-shadow: 14px 14px 0 var(--paper-shadow-strong);
    }
  }

  /* Home/editorial: scale the horizontal article slider up ~2x */
  .location-archive-header .feature-slider[data-context="editorial"]{
    --feature-slide-size: clamp(220px, 36vw, 300px);
    --feature-slide-gap: clamp(8px, 3vw, 16px);
    --feature-slide-peek: clamp(10px, 5.6vw, 36px);
  }
  .feature-slider[data-context="editorial"] .feature-slider__slide{
    overflow: visible;
  }
  .feature-slider[data-context="editorial"] .feature-slider__track{
    /* reserve headroom so caption isn't clipped by the scroll container */
    padding-top: clamp(16px, 3.2vw, 26px);
    padding-bottom: clamp(32px, 6vw, 44px);
    padding-left: calc(max(var(--feature-slide-peek), calc((100% - var(--feature-slide-size)) / 2)) + var(--feature-caption-overhang-left));
    padding-right: calc(max(var(--feature-slide-peek), calc((100% - var(--feature-slide-size)) / 2)) + var(--feature-caption-overhang-right));
    /* Keep snap center symmetric even if visual padding is asymmetric for caption overhang. */
    scroll-padding-left: max(var(--feature-slide-peek), calc((100% - var(--feature-slide-size)) / 2));
    scroll-padding-right: max(var(--feature-slide-peek), calc((100% - var(--feature-slide-size)) / 2));
    overflow-y: visible;
  }
  .feature-slider[data-context="editorial"] .feature-slider__media{
    border-radius: 18px;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    background: #ffffff;
  }
  .feature-slider[data-context="editorial"] .feature-slider__media img{
    object-fit: contain;
    object-position: center;
  }
  .feature-slider[data-context="editorial"] .feature-slider__media img.feature-slider__img--ratio-16-9{
    object-position: top center;
  }
  .feature-slider[data-context="editorial"] .feature-slider__caption{
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    transform: none;
    width: 100%;
    max-width: none;
    height: 100%;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: clamp(8px, 2.2vw, 18px) clamp(10px, 3vw, 22px) clamp(18px, 4.2vw, 34px);
    background: transparent;
    color: #ffffff;
    border: 0;
    box-shadow: none;
    backdrop-filter: none;
    text-align: center;
  }
  .feature-slider[data-context="editorial"] .feature-slider__caption-text{
    display: block;
    -webkit-box-orient: unset;
    -webkit-line-clamp: unset;
    overflow: visible;
    white-space: normal;
    word-break: break-word;
    text-align: center;
    color: #ffffff;
    font-weight: 900;
    font-size: clamp(16px, 3.6vw, 38px);
    line-height: 1.12;
    letter-spacing: .01em;
    -webkit-text-stroke: clamp(3px, .12vw, 3px) rgba(0,0,0,.92);
    paint-order: stroke fill;
    text-shadow:
      -1px -1px 0 rgba(0,0,0,.9),
       1px -1px 0 rgba(0,0,0,.9),
      -1px  1px 0 rgba(0,0,0,.9),
       1px  1px 0 rgba(0,0,0,.9),
       0 2px 10px rgba(0,0,0,.58),
       0 0 16px rgba(0,0,0,.36);
  }
  @media (max-width: 768px){
    .feature-slider[data-context="editorial"] .feature-slider__caption-text{
      font-size: clamp(14px, 5.8vw, 26px);
      line-height: 1.1;
    }
  }
  /* Location slider: allow caption to overhang without clipping + 添付イメージ風の“紙”シャドウ */
  .feature-slider[data-context="location"]{
    --paper-shadow: rgba(0,0,0,.10);
    --paper-shadow-strong: rgba(0,0,0,.12);
  }
  .feature-slider[data-context="location"] .feature-slider__slide{
    overflow: visible;
    box-shadow: 8px 8px 0 var(--paper-shadow);
  }
  .feature-slider[data-context="location"] .feature-slider__slide--is-center{
    box-shadow: 10px 10px 0 var(--paper-shadow-strong);
  }
  @media (hover:hover){
    .feature-slider[data-context="location"] .feature-slider__slide:hover{
      box-shadow: 14px 14px 0 var(--paper-shadow-strong);
    }
  }
  .feature-slider[data-context="location"] .feature-slider__track{
    padding-top: clamp(16px, 3.2vw, 26px);
    overflow-y: visible;
  }
  .feature-slider[data-context="location"] .feature-slider__media{
    border-radius: 18px;
    overflow: hidden;
  }
  .feature-slider__caption{
    position:absolute;
    left: clamp(6px, 1.6vw, 12px);
    right: auto;
    top: auto;
    bottom: clamp(6px, 1.6vw, 12px);
    transform: none;
    max-width: calc(100% - clamp(12px, 3.2vw, 24px));
    padding: clamp(8px, 2vw, 14px) clamp(10px, 2.2vw, 16px);
    background: rgba(255,255,255,.94);
    color:#0f172a;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 0;
    box-shadow: 0 6px 16px rgba(15,23,42,.15), 0 1px 2px rgba(15,23,42,.08);
    backdrop-filter: blur(1px);
    z-index: 2;
  }
  .feature-slider__caption-text{
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    font-size: clamp(0.9rem, 2.6vw, 1.2rem);
    font-weight: 800;
    line-height: 1.3;
    text-shadow: none;
  }
  .feature-slider--items .feature-slider__slide,
  .feature-slider--waza .feature-slider__slide,
  .feature-slider--aruaru .feature-slider__slide{
    background: #ffffff;
    color: #0f172a;
  }
  .feature-slider--items .feature-slider__meta,
  .feature-slider--waza .feature-slider__meta,
  .feature-slider--aruaru .feature-slider__meta{
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 10px 12px;
    min-height: clamp(60px, 10vw, 96px);
    background: #ffffff;
    border-bottom: 1px solid rgba(15,23,42,.08);
    z-index: 2;
  }
  .feature-slider--items .feature-slider__caption,
  .feature-slider--waza .feature-slider__caption,
  .feature-slider--aruaru .feature-slider__caption{
    position: static;
    left: auto;
    right: auto;
    top: auto;
    bottom: auto;
    transform: none;
    max-width: none;
    margin: 0;
    padding: 0;
    background: transparent;
    color: inherit;
    border: 0;
    box-shadow: none;
    backdrop-filter: none;
  }
  .feature-slider--items .feature-slider__caption-text,
  .feature-slider--waza .feature-slider__caption-text,
  .feature-slider--aruaru .feature-slider__caption-text{
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    font-size: clamp(.92rem, 2.4vw, 1.08rem);
    font-weight: 800;
    line-height: 1.35;
    color: #0f172a;
  }
  .feature-slider--items .feature-slider__item-link{
    color: inherit;
    text-decoration: none;
    display: inline;
  }
  .feature-slider--items .feature-slider__item-link:focus-visible{
    outline: 3px solid rgba(59,130,246,.45);
    outline-offset: 2px;
    border-radius: 6px;
  }
  .feature-slider--items .feature-slider__media--rakuten a{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    line-height: 0; /* avoid inline-linebox gaps */
}
  .feature-slider--items .feature-slider__media--rakuten{
    /* Center Rakuten pict creatives and prevent inline margin from causing clipping. */
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .feature-slider--items .feature-slider__media--rakuten a{
    display: block;
    width: 100%;
    height: 100%;
    line-height: 0; /* avoid inline-linebox gaps */
  }
  .feature-slider--items .feature-slider__media--rakuten img{
    /* Rakuten pict tag often includes inline `margin:2px;`.
       Keep the tag unmodified and fit inside the media box. */
    width: auto;
    height: auto;
    max-width: calc(100% - 4px);
    max-height: calc(100% - 4px);
    object-fit: contain;
    display: block;
  }

  /* Affiliate label (items): show 「広告」 badge on Rakuten pict cards */
  .feature-slider--items .feature-slider__slide--rakuten .iku-ad-badge{
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 5;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 2px 6px;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .02em;
    background: rgba(255,255,255,.94);
    color: #0f172a;
    border: 1px solid rgba(15,23,42,.28);
    border-radius: 6px;
pointer-events: none;
  }
  @media (max-width: 768px){
    .feature-slider--items .feature-slider__slide--rakuten .iku-ad-badge{
      top: 6px;
      right: 6px;
      font-size: 11px;
    }
  }

  .feature-slider--items .feature-slider__caption-sub,
  .feature-slider--waza .feature-slider__caption-sub,
  .feature-slider--aruaru .feature-slider__caption-sub{
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    font-size: clamp(.74rem, 2vw, .86rem);
    line-height: 1.4;
    color: #475569;
  }
  .feature-slider--aruaru .feature-slider__meta{
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: clamp(4px, 1.2vw, 8px);
    min-height: clamp(92px, 14vw, 136px);
    padding: clamp(12px, 2.4vw, 20px) clamp(12px, 2.8vw, 24px);
  }
  .feature-slider--aruaru .feature-slider__caption{
    width: 100%;
  }
  .feature-slider--aruaru .feature-slider__caption-text{
    -webkit-line-clamp: 3;
    font-size: clamp(1.15rem, 3.3vw, 1.85rem);
    line-height: 1.28;
    letter-spacing: .01em;
    text-align: center;
  }
  .feature-slider--aruaru .feature-slider__caption-sub{
    width: 100%;
    text-align: center;
  }
  .feature-slider--items .feature-slider__media,
  .feature-slider--waza .feature-slider__media,
  .feature-slider--aruaru .feature-slider__media{
    background: #ffffff;
  }
  .feature-slider--items .feature-slider__media img,
  .feature-slider--waza .feature-slider__media img,
  .feature-slider--aruaru .feature-slider__media img{
    object-fit: contain;
    object-position: center;
    background: #ffffff;
  }
  .feature-slider--items .feature-slider__hit,
  .feature-slider--waza .feature-slider__hit,
  .feature-slider--aruaru .feature-slider__hit{
    position: absolute;
    inset: 0;
    z-index: 4;
    display: block;
    border-radius: inherit;
  }
  .feature-slider--items .feature-slider__hit:focus-visible,
  .feature-slider--waza .feature-slider__hit:focus-visible,
  .feature-slider--aruaru .feature-slider__hit:focus-visible{
    outline: 3px solid rgba(59,130,246,.45);
    outline-offset: 2px;
  }
  /* TOP: keep spot/item category sliders on the exact same card sizing scale */
  body.tax-location :is(#spotCategorySliders .feature-slider--related, #itemCategorySliders .feature-slider--items, #wazaCategorySliders .feature-slider--waza, #aruaruCategorySliders .feature-slider--aruaru){
    --feature-slide-size: clamp(220px, 34vw, 420px);
    --feature-slide-gap: clamp(6px, 1.8vw, 12px);
    --feature-slide-peek: clamp(8px, 4vw, 18px);
    --feature-arrow-size: clamp(28px, 6.5vw, 40px);
    --feature-slide-center-scale: 1;
    --feature-slide-adjacent-scale: .78;
    --feature-slide-small-scale: .62;
  }
  @media (max-width: 768px){
    body.tax-location :is(#spotCategorySliders .feature-slider--related, #itemCategorySliders .feature-slider--items, #wazaCategorySliders .feature-slider--waza, #aruaruCategorySliders .feature-slider--aruaru){
      --feature-slide-size: clamp(260px, 82vw, 360px);
      --feature-slide-gap: clamp(6px, 4vw, 12px);
      --feature-slide-peek: clamp(10px, 12vw, 18px);
      --feature-arrow-size: 34px;
    }
  }
  /* /items /waza /aruaru: keep slider card sizing aligned across all three pages */
  :is(body:is(.page-items, .page-waza, .page-aruaru), body:has(main.iks-page-items), main.iks-page-items) :is(.feature-slider--items, .feature-slider--waza, .feature-slider--aruaru){
    --feature-slide-size: clamp(220px, 34vw, 420px);
    --feature-slide-gap: clamp(6px, 1.8vw, 12px);
    --feature-slide-peek: clamp(8px, 4vw, 18px);
    --feature-arrow-size: clamp(28px, 6.5vw, 40px);
    --feature-slide-center-scale: 1;
    --feature-slide-adjacent-scale: .78;
    --feature-slide-small-scale: .62;
  }
  /* /items /waza /aruaru: mirror TOP slider full-bleed width */
  body:is(.page-items, .page-waza, .page-aruaru) :is(.feature-slider--items, .feature-slider--waza, .feature-slider--aruaru) .feature-slider__inner,
  main.iks-page-items :is(.feature-slider--items, .feature-slider--waza, .feature-slider--aruaru) .feature-slider__inner{
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding-left: 0;
    padding-right: 0;
  }
  @media (max-width: 768px){
    :is(body:is(.page-items, .page-waza, .page-aruaru), body:has(main.iks-page-items), main.iks-page-items) :is(.feature-slider--items, .feature-slider--waza, .feature-slider--aruaru){
      --feature-slide-size: clamp(260px, 82vw, 360px);
      --feature-slide-gap: clamp(6px, 4vw, 12px);
      --feature-slide-peek: clamp(10px, 12vw, 18px);
      --feature-arrow-size: 34px;
    }
  }
  /* single-item / single-waza / single-aruaru: card size matches TOP sliders */
  body:is(.single-item, .single-waza, .single-aruaru) :is(.feature-slider--items, .feature-slider--waza, .feature-slider--aruaru, .feature-slider--related){
    --feature-slide-size: clamp(220px, 34vw, 420px);
    --feature-slide-gap: clamp(6px, 1.8vw, 12px);
    --feature-slide-peek: clamp(8px, 4vw, 18px);
    --feature-arrow-size: clamp(28px, 6.5vw, 40px);
    --feature-slide-center-scale: 1;
    --feature-slide-adjacent-scale: .78;
    --feature-slide-small-scale: .62;
  }
  @media (max-width: 768px){
    body:is(.single-item, .single-waza, .single-aruaru) :is(.feature-slider--items, .feature-slider--waza, .feature-slider--aruaru, .feature-slider--related){
      --feature-slide-size: clamp(260px, 82vw, 360px);
      --feature-slide-gap: clamp(6px, 4vw, 12px);
      --feature-slide-peek: clamp(10px, 12vw, 18px);
      --feature-arrow-size: 34px;
    }
  }
  /* Hover / active zoom for “image cards” only
     - applies to any feature slider slide that contains an <img>
     - excluded when the slide has map/Instagram embeds (iframe/insta wrapper present) */
  @media (hover: hover) and (pointer: fine){
    .feature-slider__slide:has(img):not(:has(iframe, .feature-slider__iframe, .feature-slider__insta, .feature-slider__insta-iframe)):hover{
      --feature-slide-scale-hover: var(--feature-slide-hover-scale);
      --feature-slide-hover-duration: var(--feature-slide-hover-duration, 200ms);
      z-index: 3;
    }
  }
  @media (hover: none) and (pointer: coarse){
    .feature-slider__slide:has(img):not(:has(iframe, .feature-slider__iframe, .feature-slider__insta, .feature-slider__insta-iframe)):is(:active, :has(:active)){
      --feature-slide-scale-hover: var(--feature-slide-hover-scale);
      --feature-slide-hover-duration: var(--feature-slide-hover-duration-touch);
      z-index: 3;
    }
  }
  /* ▼矢印：背景なし／縦長・大きめ（文字ではなくCSS描画で中央固定） */
.feature-slider__nav{
  position:absolute;
  top:50%;
  transform: translateY(-50%);
  width: var(--feature-nav-w);
  height: var(--feature-nav-h);
  border: 0;
  padding: 0;
  background: transparent;
  background-color: transparent;
  color: var(--feature-nav-color);
  cursor: pointer;
  box-shadow: none;
  border-radius: 999px;
  z-index: 2;
  pointer-events: auto;
}
.feature-slider__nav:hover{
  background: transparent;
  background-color: transparent;
  box-shadow: none;
}

/* span はアクセシビリティ用に残し、見た目は使わない */
.feature-slider__nav > span{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* hover時の“角丸ハイライト”（通常時は透明） */
.feature-slider__nav::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width: 100%;
  height: 100%;
  transform: translate(-50%, -50%);
  border-radius: 999px;
  background: var(--feature-nav-hover-bg);
  opacity: 0;
  transition: opacity .18s ease, transform .18s ease;
}

/* 矢印：SVGマスクで描画（常に中央／丸い角で綺麗） */
.feature-slider__nav::after{
  --feature-nav-icon: clamp(22px, 3.8vw, 32px);
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width: var(--feature-nav-icon);
  height: var(--feature-nav-icon);
  background: currentColor;
  transform: translate(-50%, -50%);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 5l7 7-7 7' fill='none' stroke='%23000' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 5l7 7-7 7' fill='none' stroke='%23000' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  filter: drop-shadow(0 0 2px var(--feature-nav-shadow-light)) drop-shadow(0 8px 14px var(--feature-nav-shadow-dark));
  pointer-events: none;
}

/* prev は左右反転 */
.feature-slider__nav--prev::after{
  transform: translate(-50%, -50%) scaleX(-1);
}
.feature-slider__nav--prev{ left: clamp(6px, 1.4vw, 12px); }
.feature-slider__nav--next{ right: clamp(6px, 1.4vw, 12px); }

@media (hover:hover){
  .feature-slider__nav:hover::before{
    opacity: 1;
    transform: translate(-50%, -50%) scale(1.03);
  }
}

.feature-slider__nav:focus-visible{
  outline: 3px solid rgba(59,130,246,.45);
  outline-offset: 2px;
}

.feature-slider__nav:active{
  opacity: .85;
}

.feature-slider__nav[disabled]{
  opacity: .25;
  cursor: not-allowed;
}
@media (max-width:768px){
    .feature-slider{
      --feature-slide-size: clamp(70px, 75vw, 110px);
      --feature-slide-gap: clamp(3px, 3vw, 8px);
      --feature-slide-peek: clamp(4px, 8vw, 14px);
      --feature-arrow-size: 26px;
      --feature-nav-w: 30px;
      --feature-nav-h: 72px;
      --feature-nav-font: 50px;
    }
    .location-archive-header .feature-slider[data-context="editorial"]{
      --feature-slide-size: clamp(180px, 92vw, 260px);
      --feature-slide-gap: clamp(6px, 4vw, 12px);
      --feature-slide-peek: clamp(8px, 10vw, 22px);
    }
  }
@media (max-width:768px){
  /* TOP mobile: align all slider arrows with /aruaru positioning scale */
  body.home.tax-location .location-archive-header .feature-slider[data-context="editorial"],
  body.home.tax-location :is(#spotCategorySliders, #itemCategorySliders, #wazaCategorySliders, #aruaruCategorySliders) .feature-slider{
    --feature-nav-w: 30px;
    --feature-nav-h: 72px;
    --feature-nav-font: 50px;
  }
  body.home.tax-location :is(#spotCategorySliders, #itemCategorySliders, #wazaCategorySliders, #aruaruCategorySliders) .feature-slider__inner{
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding-left: 0;
    padding-right: 0;
  }
}

/* 高さ同期：Map表示中だけ固定。Insta表示中は自然高（余白防止） */
body.tax-location .spot-card[data-has-map="1"]:not(.is-insta-active) .spot-media.spot-image { height: var(--map-h); }
/* Insta表示中は自然高（.is-insta-active が付かないケースの保険に :has も併用） */
body.tax-location .spot-card.is-insta-active .spot-media.spot-image,
body.tax-location .spot-card .spot-media.spot-image:has(.media-switcher[data-state="insta"]){
  height: auto;
  min-height: 0;
  overflow: visible;
}
body.tax-location .spot-card .map-slider-wrap,
body.single-spot .spot-card .map-slider-wrap,
body.tax-location .spot-card .map-slider,
body.single-spot .spot-card .map-slider,
body.tax-location .spot-card .map-slide,
body.single-spot .spot-card .map-slide,
body.tax-location .spot-card .map-wrap,
body.single-spot .spot-card .map-wrap{ height: 100%; }
body.tax-location .spot-card .map-wrap iframe,
body.single-spot .spot-card .map-wrap iframe,
body.tax-location .spot-card .map-wrap .gmap,
body.single-spot .spot-card .map-wrap .gmap{ position:absolute; inset:0; width:100%; height:100%; border:0; border-radius:inherit; }
/* Mobile: adjust map dots and slider controls */
  @media (max-width:768px){
    body.tax-location .map-dots,
    body.single-spot .map-dots{ bottom: 38px; }
    body.tax-location .location-archive.is-detail-open .map-slider-controls{
      bottom: calc(var(--media-toggle-bottom) + 56px);
    }
  }

  /* =============== 9) Map caption =============== */
  .map-overlay-caption{
    position:absolute;
    top: var(--caption-top-pc);
    left:0; right:0; transform:none; z-index:9;
    width:100%;
    color:#fff; text-align:center; line-height:1.5; font-weight:800;
    font-size:clamp(1rem,2.4vw,1.4rem);
    padding:0 .4rem;
    background:transparent; border:none;
    text-shadow:0 2px 8px rgba(0,0,0,.35), 0 0 14px rgba(0,0,0,.25);
  }
  /* TOP / spots: related slider のDescriptionは中央カードのみ表示 */
  body.tax-location .spot-related .feature-slider--related .feature-slider__slide .map-overlay-caption{
    display:none;
    pointer-events:none;
  }
  body.tax-location .spot-related .feature-slider--related .feature-slider__slide.feature-slider__slide--is-center .map-overlay-caption{
    display:block;
  }
  @media (max-width:1024px){ .map-overlay-caption{ top: var(--caption-top-tab); } }
  @media (max-width:768px){  .map-overlay-caption{ top: var(--caption-top-sp); } }
  @media (max-width:768px){
    .map-overlay-caption{
      top: calc(var(--caption-top-sp) + 32px);
    }
  }

  /* 文字アニメ */
  .caption-reveal{ position:relative; display:inline-block; transform-origin:center; }
  .caption-text{ display:inline-block; white-space: pre-wrap; }
  .caption-text .ch{
    display:inline-block; opacity:0; transform: translateY(.35em) scale(.98);
    animation: chIn var(--char-dur) var(--char-ease) forwards;
    animation-delay: calc(var(--char-start-delay) + var(--i) * var(--char-gap));
    will-change: opacity, transform;
  }
  @keyframes chIn{ to { opacity:1; transform: translateY(0) scale(1); } }
  @media (prefers-reduced-motion: reduce){
    .caption-text .ch{ animation:none; opacity:1; transform:none; }
  }

  /* =============== 10) 細かなカード内余白調整 =============== */
  .spot-card > :is(h1,h2,h3,h4,.spot-title,.city-name):first-child{ margin-top:0; }
  .spot-card{
    padding-top:0;
    padding-bottom:0;
    display:flex;
    flex-direction:column;
  }
  .spot-card .meta-list:last-child{ margin-bottom:0; padding-bottom:0; }
  .spot-card .meta-list li:last-child{ margin-bottom:0; }
  .spot-card:has(.meta-list:last-child){ padding-bottom:0; }

/* Detail view: Insta pane should size naturally (no big blank under embeds)
   - taxonomy-location.php toggles .is-insta-active on .spot-card when Insta is selected.
   - Insta-only cards (data-has-map="0" data-has-insta="1") are always auto-height. */
body.tax-location .location-archive.is-detail-open .spot-card.is-insta-active,
body.tax-location .location-archive.is-detail-open .spot-card[data-has-map="0"][data-has-insta="1"]{
  grid-template-rows: auto auto;
}

/* 詳細ビューでは Insta を先頭に（タイトル行は後ろ） */
body.tax-location .location-archive.is-detail-open .spot-card:has(.media-switcher[data-state="insta"]),
body.tax-location .location-archive.is-detail-open .spot-card.is-insta-active,
body.tax-location .location-archive.is-detail-open .spot-card[data-has-map="0"][data-has-insta="1"]{
  grid-template-rows: auto auto auto;
  grid-template-areas:
    "media"
    "header"
    "body";
}
body.tax-location .location-archive.is-detail-open .spot-card .spot-header,
body.tax-location .location-archive.is-detail-open .spot-card .spot-title-row{
  order: 0;
}

body.tax-location .location-archive.is-detail-open .spot-card .spot-header{
  padding-top: var(--card-pad);
}

.spot-location-row--detail{
  display:none;
}
body.tax-location .location-archive.is-detail-open .spot-card .spot-location-row--detail{
  display:block;
  margin: 0;
}
body.tax-location .location-archive.is-detail-open .spot-card .spot-category-row{
  margin-bottom: 5px;
  padding-left: 0;
  padding-right: 0;
}
body.tax-location .location-archive.is-detail-open .spot-card .spot-category-row + .spot-location-row--detail{
  margin-top: calc(-1 * var(--spot-header-gap, 0px));
}
body.tax-location .location-archive.is-detail-open .spot-card .spot-location-row--detail + .spot-title-row{
  margin-top: calc(-1 * var(--spot-header-gap, 0px));
  padding-top: 0;
}
body.tax-location .location-archive.is-detail-open .spot-card .spot-location-row--default{
  display:none;
}

body.tax-location .location-archive.is-detail-open .spot-card.is-insta-active .spot-media.spot-image,
body.tax-location .location-archive.is-detail-open .spot-card[data-has-map="0"][data-has-insta="1"] .spot-media.spot-image{
  height: auto;
  min-height: 0;
  overflow: visible;
}

body.tax-location .location-archive.is-detail-open .spot-card.is-insta-active .media-switcher,
body.tax-location .location-archive.is-detail-open .spot-card[data-has-map="0"][data-has-insta="1"] .media-switcher{
  height: auto;
}

body.tax-location .location-archive.is-detail-open .spot-card.is-insta-active .media-pane[data-pane="insta"],
body.tax-location .location-archive.is-detail-open .spot-card[data-has-map="0"][data-has-insta="1"] .media-pane[data-pane="insta"]{
  position: static;
  height: auto;
  min-height: 0;
}

/* 詳細ビューは “Instaの実高” に合わせる（固定高を解除） */
body.tax-location .location-archive.is-detail-open .spot-card.is-insta-active .insta-media,
body.tax-location .location-archive.is-detail-open .spot-card[data-has-map="0"][data-has-insta="1"] .insta-media{
  padding-inline: 0;
  height: auto;
  max-height: none;
  overflow: visible;
  background: transparent;
}

body.tax-location .location-archive.is-detail-open .spot-card.is-insta-active .insta-scroll,
body.tax-location .location-archive.is-detail-open .spot-card[data-has-map="0"][data-has-insta="1"] .insta-scroll{
  max-height: none;
  height: auto;
  overflow-x: auto;
  overflow-y: visible;
  gap: 0;
  padding: 0 0 12px;
  background: transparent;
  align-items: flex-start;
}

body.tax-location .location-archive.is-detail-open .spot-card.is-insta-active .insta-card,
body.tax-location .location-archive.is-detail-open .spot-card[data-has-map="0"][data-has-insta="1"] .insta-card{
  flex: 0 0 100%;
  min-width: 100%;
  width: 100%;
  max-width: 100%;
  height: auto;
  overflow: visible;
  display: block;
  background: transparent;
}
/* =============== 11) Shortcode: [kiji 332] 埋め込みカード（特集記事のみ） =============== */
/* 目的:
   - 画像は「カードの縦幅いっぱい」にフィット（大きくなりすぎない）
   - タイトルは黒・大きめ、リンクの青下線を解除
   - メタディスクリプションは2行で省略してカード高を安定させる
*/

body.single-feature_article .iku-kiji-embed{
  margin: 18px 0;
}

body.single-feature_article .iku-kiji-embed__link{
  display: flex;
  gap: 16px;
  padding: 18px;
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 18px;
  background: #fff;
  text-decoration: none;
  color: inherit;
  align-items: stretch; /* ←ここで左右の高さを揃える */
}

body.single-feature_article .iku-kiji-embed__thumb-wrap{
  flex: 0 0 180px;
  max-width: 180px;
  border-radius: 12px;
  overflow: hidden;
  background: #f2f2f2;
  align-self: stretch; /* ←カードの縦幅に合わせる */
}

body.single-feature_article .iku-kiji-embed__thumb{
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover; /* ←縦いっぱいに収めつつトリミング */
}

body.single-feature_article .iku-kiji-embed__body{
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

body.single-feature_article .iku-kiji-embed__title{
  font-size: 20px;
  font-weight: 800;
  line-height: 1.3;
  color: #111;
}

body.single-feature_article .iku-kiji-embed__date{
  margin-top: 8px;
  font-size: 14px;
  color: #5f6368;
}

body.single-feature_article .iku-kiji-embed__metadesc{
  margin-top: 10px;
  font-size: 15px;
  line-height: 1.6;
  color: #333;

  /* カードが縦に伸びすぎるのを防ぐ（2行で省略） */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

body.single-feature_article .iku-kiji-embed__link:hover .iku-kiji-embed__title{
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: .15em;
}

@media (max-width: 640px){
  body.single-feature_article .iku-kiji-embed__link{
    padding: 14px;
    gap: 12px;
  }
  body.single-feature_article .iku-kiji-embed__thumb-wrap{
    flex-basis: 128px;
    max-width: 128px;
  }
  body.single-feature_article .iku-kiji-embed__title{
    font-size: 18px;
  }
  body.single-feature_article .iku-kiji-embed__metadesc{
    -webkit-line-clamp: 3; /* スマホは少しだけ多めに */
  }
}

.iks-page-items__empty{
  max-width: min(860px, 100%);
  margin: 24px auto 40px;
  padding: 0 16px;
  color: #475569;
}

.iks-item-taxonomy{
  margin: 0;
  padding: clamp(20px, 4vw, 36px) 0 clamp(28px, 5vw, 44px);
}
.iks-item-taxonomy__inner{
  max-width: min(1100px, 100%);
  margin: 0 auto;
  padding: 0 clamp(12px, 2.4vw, 20px);
}
.iks-item-taxonomy__head{
  margin: 0 0 clamp(14px, 2.8vw, 20px);
}
.iks-item-taxonomy__title{
  margin: 0;
  font-size: clamp(1.28rem, 3.3vw, 1.9rem);
  line-height: 1.25;
}
.iks-item-taxonomy__description{
  margin: 8px 0 0;
  color: #475569;
}
.iks-item-taxonomy__grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
}
.iks-item-taxonomy__card{
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(15,23,42,.1);
  border-radius: 14px;
  overflow: hidden;
  background: #ffffff;
}
.iks-item-taxonomy__media{
  display: block;
  aspect-ratio: 1 / 1;
  background: #ffffff;
}
.iks-item-taxonomy__media img{
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.iks-item-taxonomy__media-fallback{
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  color: #64748b;
  font-size: .86rem;
}
.iks-item-taxonomy__body{
  padding: 12px;
}
.iks-item-taxonomy__card-title{
  margin: 0;
  font-size: 1rem;
  line-height: 1.35;
}
.iks-item-taxonomy__card-title a{
  color: #0f172a;
  text-decoration: none;
}
.iks-item-taxonomy__excerpt{
  margin: 8px 0 0;
  font-size: .84rem;
  line-height: 1.45;
  color: #475569;
}
.iks-item-taxonomy__empty{
  margin: 0;
  color: #475569;
}

.iks-single-item{
  max-width: min(900px, 100%);
  margin: 0 auto;
  padding: clamp(20px, 4vw, 36px) clamp(12px, 2.4vw, 20px) clamp(30px, 5vw, 48px);
}
.iks-single-item__article{
  border: 1px solid rgba(15,23,42,.1);
  border-radius: 16px;
  background: #ffffff;
  padding: clamp(14px, 3vw, 24px);
}
.iks-single-item__head{
  margin-bottom: 14px;
}
.iks-single-item__title{
  margin: 0;
  font-size: clamp(1.35rem, 3.4vw, 2rem);
  line-height: 1.3;
}
.iks-single-item__short-review{
  margin: 10px 0 0;
  color: #475569;
}
.iks-single-item__thumbnail{
  margin-bottom: 18px;
  border: 1px solid rgba(15,23,42,.08);
  border-radius: 12px;
  overflow: hidden;
  background: #ffffff;
}
.iks-single-item__thumb{
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}
.iks-single-item__thumbnail img{
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}

.iks-single-item__content{
  line-height: 1.8;
}
.iks-single-item__buy-links{
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid rgba(15,23,42,.1);
}
.iks-single-item__buy-title{
  margin: 0 0 12px;
  font-size: clamp(1.05rem, 2.8vw, 1.3rem);
}
.iks-single-item__buy-list{
  display: grid;
  gap: 12px;
}
.iks-single-item__buy-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .58rem .9rem;
  border-radius: 10px;
  background: #0f172a;
  color: #ffffff;
  text-decoration: none;
  font-weight: 700;
}
.iks-single-item__buy-note{
  margin: 8px 0 0;
  font-size: .84rem;
  color: #64748b;
}


/* ===== /items /waza /aruaru: center category headings like TOP ===== */
.iks-page-items :is(.feature-slider--items, .feature-slider--waza, .feature-slider--aruaru) .feature-slider__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 12px;
}
.iks-page-items :is(.feature-slider--items, .feature-slider--waza, .feature-slider--aruaru) .feature-slider__title {
  grid-column: 2;
  justify-self: center;
  text-align: center;
}
.iks-page-items :is(.feature-slider--items, .feature-slider--waza, .feature-slider--aruaru) .feature-slider__more {
  grid-column: 3;
  justify-self: end;
}
/* Keep slider arrows clickable above hover-zoomed cards. */
.iks-page-items :is(.feature-slider--items, .feature-slider--waza, .feature-slider--aruaru) .feature-slider__nav {
  z-index: 10;
}

/* ===== /items /waza /aruaru: age category icon before heading ===== */
.iks-page-items :is(.feature-slider[data-context^="items-age-"], .feature-slider[data-context^="waza-age-"], .feature-slider[data-context^="aruaru-age-"]) .feature-slider__title {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45em;
}
.iks-page-items :is(.feature-slider[data-context^="items-age-"], .feature-slider[data-context^="waza-age-"], .feature-slider[data-context^="aruaru-age-"]) .feature-slider__title::before {
  content: "";
  flex: 0 0 auto;
  display: inline-block;
  width: clamp(38px, 4.8vw, 48px);
  height: clamp(38px, 4.8vw, 48px);
  background-color: transparent;
  background-repeat: no-repeat, no-repeat;
  background-position: center center, center center;
  background-size: contain, 56% 56%;
  background-image:
    var(--age-icon-svg, none),
    radial-gradient(circle at 50% 50%, rgba(61,188,210,.92) 0 42%, rgba(61,188,210,0) 44% 100%);
}
/* age icons: items */
.feature-slider[data-context="items-age-pregnancy"] { --age-icon-svg: url('assets/img/icons/age-pregnancy.svg'); }
.feature-slider[data-context="items-age-0-3m"]       { --age-icon-svg: url('assets/img/icons/age-0-3m.svg'); }
.feature-slider[data-context="items-age-4-6m"]       { --age-icon-svg: url('assets/img/icons/age-4-6m.svg'); }
.feature-slider[data-context="items-age-7-9m"]       { --age-icon-svg: url('assets/img/icons/age-7-9m.svg'); }
.feature-slider[data-context="items-age-10-12m"]     { --age-icon-svg: url('assets/img/icons/age-10-12m.svg'); }
.feature-slider[data-context="items-age-1y"]         { --age-icon-svg: url('assets/img/icons/age-1y.svg'); }
.feature-slider[data-context="items-age-2y"]         { --age-icon-svg: url('assets/img/icons/age-2y.svg'); }
.feature-slider[data-context="items-age-3y"]         { --age-icon-svg: url('assets/img/icons/age-3y.svg'); }
.feature-slider[data-context="items-age-4y"]         { --age-icon-svg: url('assets/img/icons/age-4y.svg'); }
.feature-slider[data-context="items-age-5y"]         { --age-icon-svg: url('assets/img/icons/age-5y.svg'); }
.feature-slider[data-context="items-age-6y"]         { --age-icon-svg: url('assets/img/icons/age-6y.svg'); }
.feature-slider[data-context="items-age-elem-low"]   { --age-icon-svg: url('assets/img/icons/age-elem-low.svg'); }
/* age icons: waza */
.feature-slider[data-context="waza-age-pregnancy"]   { --age-icon-svg: url('assets/img/icons/age-pregnancy.svg'); }
.feature-slider[data-context="waza-age-0-3m"]        { --age-icon-svg: url('assets/img/icons/age-0-3m.svg'); }
.feature-slider[data-context="waza-age-4-6m"]        { --age-icon-svg: url('assets/img/icons/age-4-6m.svg'); }
.feature-slider[data-context="waza-age-7-9m"]        { --age-icon-svg: url('assets/img/icons/age-7-9m.svg'); }
.feature-slider[data-context="waza-age-10-12m"]      { --age-icon-svg: url('assets/img/icons/age-10-12m.svg'); }
.feature-slider[data-context="waza-age-1y"]          { --age-icon-svg: url('assets/img/icons/age-1y.svg'); }
.feature-slider[data-context="waza-age-2y"]          { --age-icon-svg: url('assets/img/icons/age-2y.svg'); }
.feature-slider[data-context="waza-age-3y"]          { --age-icon-svg: url('assets/img/icons/age-3y.svg'); }
.feature-slider[data-context="waza-age-4y"]          { --age-icon-svg: url('assets/img/icons/age-4y.svg'); }
.feature-slider[data-context="waza-age-5y"]          { --age-icon-svg: url('assets/img/icons/age-5y.svg'); }
.feature-slider[data-context="waza-age-6y"]          { --age-icon-svg: url('assets/img/icons/age-6y.svg'); }
.feature-slider[data-context="waza-age-elem-low"]    { --age-icon-svg: url('assets/img/icons/age-elem-low.svg'); }
/* age icons: aruaru */
.feature-slider[data-context="aruaru-age-pregnancy"] { --age-icon-svg: url('assets/img/icons/age-pregnancy.svg'); }
.feature-slider[data-context="aruaru-age-0-3m"]      { --age-icon-svg: url('assets/img/icons/age-0-3m.svg'); }
.feature-slider[data-context="aruaru-age-4-6m"]      { --age-icon-svg: url('assets/img/icons/age-4-6m.svg'); }
.feature-slider[data-context="aruaru-age-7-9m"]      { --age-icon-svg: url('assets/img/icons/age-7-9m.svg'); }
.feature-slider[data-context="aruaru-age-10-12m"]    { --age-icon-svg: url('assets/img/icons/age-10-12m.svg'); }
.feature-slider[data-context="aruaru-age-1y"]        { --age-icon-svg: url('assets/img/icons/age-1y.svg'); }
.feature-slider[data-context="aruaru-age-2y"]        { --age-icon-svg: url('assets/img/icons/age-2y.svg'); }
.feature-slider[data-context="aruaru-age-3y"]        { --age-icon-svg: url('assets/img/icons/age-3y.svg'); }
.feature-slider[data-context="aruaru-age-4y"]        { --age-icon-svg: url('assets/img/icons/age-4y.svg'); }
.feature-slider[data-context="aruaru-age-5y"]        { --age-icon-svg: url('assets/img/icons/age-5y.svg'); }
.feature-slider[data-context="aruaru-age-6y"]        { --age-icon-svg: url('assets/img/icons/age-6y.svg'); }
.feature-slider[data-context="aruaru-age-elem-low"]  { --age-icon-svg: url('assets/img/icons/age-elem-low.svg'); }

  /* =============== Section label images (育スポット / 育記事 etc.) =============== */
  /* Page heading: size the label image to match the 育コレ header logo */
  .iks-home-page-title__label-img {
    height: clamp(152px, 20.8vw, 216px);
    width: auto;
    display: block;
    max-width: 100%;
  }
  @media (max-width: 768px){
    .iks-home-page-title__label-img {
      height: clamp(136px, 36vw, 184px);
    }
  }
  /* When JS copies a section label into the unified header brand, keep logo size consistent */
  .iks-unified-header__brand .iks-home-page-title__label-img {
    height: clamp(152px, 20.8vw, 216px);
    width: auto;
    max-width: 100%;
    display: block;
  }
  @media (max-width: 768px){
    .iks-unified-header__brand .iks-home-page-title__label-img {
      height: clamp(136px, 36vw, 184px);
    }
  }

  /* end marker */
  :root{}




