/* =========================================================
   GLOBAL LAMB INDEX (GLI) - Clean & Stable CSS
    ړI F
   - #global-lamb-index        Ɋ  S X R [ v
   - Hero ̉E   ^   ؂   ~ ߂ i g    100vw   ̗p j
   - max-width 1600/1800  ̉^ p 𓝈 
   ========================================================= */

/* =========================
   Scope / Guard
========================= */
#global-lamb-index{
  color:#18181b;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  line-height:1.5;
  background:#fff;
  width:100%;
  overflow-x: clip; /*    ͂ݏo   ɂ  E   E   X N   [     Ǐ  Ŏ~ ߂  */
}
#global-lamb-index *{ box-sizing:border-box; }

/* =========================
   Layout width (unified)
========================= */
#global-lamb-index{
  --gli-max: 1600px;
  --gli-pad: 24px;
}
@media (min-width:1600px){
  #global-lamb-index{ --gli-max: 1800px; }
}

#global-lamb-index .lamb-header,
#global-lamb-index .lamb-nav-container,
#global-lamb-index .lamb-main{
  max-width: var(--gli-max);
  margin: 0 auto;
}

/* =========================
   Cinematic Hero (FINAL)
   -  g    100vw i   ꂾ   c   j
========================= */
#global-lamb-index .gli-hero{
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  height: 100vh;
  min-height: 600px;
  overflow: hidden;
  background: #000;
}

#global-lamb-index .gli-hero-bg{
  position:absolute;
  inset:0;
  background:
    linear-gradient(to bottom, rgba(0,0,0,.65), rgba(0,0,0,.75)),
    url("/html/user_data/assets/img/gli-hero.webp") center / cover no-repeat;
  filter: grayscale(100%);
  transform: scale(1.05);
}

#global-lamb-index .gli-hero-inner{
  position: relative;
  z-index:2;
  max-width: var(--gli-max);
  margin: 0 auto;
  height:100%;
  padding: 0 40px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  color:#fff;
}

#global-lamb-index .gli-hero-eyebrow{
  letter-spacing:.35em;
  font-size:16px;
  color:#bbb;
  margin-bottom:24px;
}

#global-lamb-index .gli-hero-title{
  font-family: "Times New Roman", serif;
  font-size: clamp(48px, 5vw, 120px);
  line-height:1.25;
  letter-spacing:.04em;
  margin: 0 0 32px 0;
}

#global-lamb-index .gli-hero-lead{
  max-width:720px;
  font-size:16px;
  line-height:2;
  color:#ddd;
  margin:0;
}

#global-lamb-index .gli-hero-scroll{
  margin-top:80px;
  font-size:13px;
  letter-spacing:.3em;
  color:#aaa;
}
#global-lamb-index .gli-hero-line{
  width:1px;
  height:60px;
  background:#777;
  margin-top:12px;
}

@media (max-width:768px){
  #global-lamb-index .gli-hero{ height: 80vh; min-height: 520px; }
  #global-lamb-index .gli-hero-inner{ padding: 0 24px; }
  #global-lamb-index .gli-hero-lead{ font-size:14px; }
}

/* =========================
   Header (if used)
========================= */
#global-lamb-index .lamb-header-container{
  display:flex;
  flex-direction:column;
  gap:40px;
}
@media (min-width:768px){
  #global-lamb-index .lamb-header-container{
    flex-direction:row;
    align-items:flex-start;
  }
}
#global-lamb-index .lamb-title{
  font-size:3rem;
  font-weight:700;
  letter-spacing:-0.05em;
  line-height:0.9;
  margin:0;
  font-family:serif;
}
@media (min-width:768px){
  #global-lamb-index .lamb-title{ font-size:4.5rem; }
}
#global-lamb-index .lamb-intro-flex{
  display:flex;
  gap:32px;
  align-items:flex-start;
}
#global-lamb-index .lamb-vertical-line{
  width:1.5px;
  height:112px;
  background:#18181b;
  opacity:.8;
  display:none;
}
@media (min-width:768px){
  #global-lamb-index .lamb-vertical-line{ display:block; }
}
#global-lamb-index .lamb-intro-text{
  font-size:1.5rem;
  color:#71717a;
  max-width:520px;
  line-height:1.6;
  margin:0;
  font-family:serif;
}

/* =========================
   Sticky Filter Nav
   -  w i ͑S   A R   e   c  max  
========================= */
#global-lamb-index .lamb-sticky-nav{
  position:sticky;
  top:0;
  z-index:10;
  background:rgba(255,255,255,.95);
  backdrop-filter:blur(8px);
  border-bottom:1px solid #f4f4f5;
  padding: 0 var(--gli-pad);
}

#global-lamb-index .lamb-nav-container{
  width:100%;
  display:flex;
  align-items:center;
  gap:40px;
  padding:18px 0;
  overflow-x:auto;
  -webkit-overflow-scrolling: touch;
}

#global-lamb-index .lamb-filter-group{
  display:flex;
  align-items:center;
  gap:18px;
  flex-shrink:0;
}
#global-lamb-index .lamb-filter-label{
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:.2em;
  font-weight:700;
  color:#181818;
  white-space:nowrap;
}
#global-lamb-index .lamb-filter-options{
  display:flex;
  gap:18px;
  white-space:nowrap;
}
#global-lamb-index .lamb-filter-btn{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.15em;
  font-weight:700;
  background:none;
  border:none;
  padding:0 0 4px 0;
  cursor:pointer;
  color:#a1a1aa;
  transition:color .2s;
  position:relative;
  white-space:nowrap;
}
/* ===== Meat Type active / hover ===== */

#global-lamb-index .lamb-filter-btn{
  position: relative;
  color:#a1a1aa;
}

/* hover */
#global-lamb-index .lamb-filter-btn:hover{
  color:#52525b;
}

/* active */
#global-lamb-index .lamb-filter-btn.active{
  color:#18181b;
  text-decoration: underline;
  text-underline-offset: 6px;
  text-decoration-thickness: 2px;
}

/* 旧 ::after 下線は完全に殺す */
#global-lamb-index .lamb-filter-btn::after{
  content: none !important;
}
#global-lamb-index .lamb-filter-select{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.1em;
  background:transparent;
  font-weight:700;
  border:none;
  cursor:pointer;
  color:#18181b;
  outline:none;
}
#global-lamb-index .lamb-divider{
  height:16px; width:1px;
  background:#f4f4f5;
  flex-shrink:0;
}

/* =========================
   Grid
========================= */
#global-lamb-index .lamb-main{
  padding:48px var(--gli-pad);
}
#global-lamb-index .lamb-grid{
  display:grid;
  grid-template-columns:1fr;
  column-gap:40px;
  row-gap:80px;
}
@media (min-width:768px){
  #global-lamb-index .lamb-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (min-width:1024px){
  #global-lamb-index .lamb-grid{ grid-template-columns:repeat(3,1fr); }
}

#global-lamb-index .lamb-card{
  cursor:pointer;
  display:flex;
  flex-direction:column;
}
#global-lamb-index .lamb-card-img-box{
  position:relative;
  aspect-ratio:3/2;
  overflow:hidden;
  background:#fafafa;
  margin-bottom:24px;
  box-shadow:0 1px 2px rgba(0,0,0,.05);
}
#global-lamb-index .lamb-card-img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 1s;
  display:block;
}
#global-lamb-index .lamb-card:hover .lamb-card-img{ transform:scale(1.03); }
#global-lamb-index .lamb-card-badge{
  position:absolute;
  top:16px; right:16px;
  background:rgba(255,255,255,.95);
  color:#18181b;
  padding:4px 12px;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-weight:700;
}
#global-lamb-index .lamb-card-name{
  font-size:2.5rem;
  font-weight:300;
  margin:0;
  letter-spacing:-.02em;
}
#global-lamb-index .lamb-card-local{
  font-size:12px;
  color:#a1a1aa;
  text-transform:uppercase;
  letter-spacing:.2em;
  font-family:monospace;
  margin-top:4px;
}
#global-lamb-index .lamb-card-desc{
  margin-top:16px;
  font-size:1.5rem;
  color:#71717a;
  font-family:serif;
  line-height:1.6;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

/* =========================
   Footer
========================= */
#global-lamb-index .lamb-footer{
  padding:80px var(--gli-pad);
  border-top:1px solid #f4f4f5;
  background:#fafafa;
  text-align:center;
}
#global-lamb-index .lamb-footer-logo{
  font-size:15px;
  text-transform:uppercase;
  letter-spacing:.4em;
  font-weight:700;
  color:#d4d4d8;
  margin-bottom:8px;
}
#global-lamb-index .lamb-footer-copy{
  font-size:12px;
  color:#a1a1aa;
  font-family:serif;
  font-style:italic;
  margin:0;
}

/* =========================
   Modal (split: slider / detail)
========================= */
#global-lamb-index .lamb-modal-overlay{
  position:fixed;
  inset:0;
  z-index:9999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:16px;
  background:rgba(24,24,27,.95);
  backdrop-filter:blur(8px);
}
#global-lamb-index .lamb-modal-overlay.is-open{ display:flex; }

#global-lamb-index .lamb-modal-content{
  position:relative;
  background:#fff;
  width:100%;
  max-width:1152px;
  max-height:95vh;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  box-shadow:0 25px 50px -12px rgba(0,0,0,.5);
}

@media (min-width:768px){
  #global-lamb-index .lamb-modal-content{ flex-direction:row; }
}

/* close (     F d   폜) */
#global-lamb-index .lamb-modal-close{
  position:absolute;
  top: calc(env(safe-area-inset-top) + 16px);
  right: 16px;
  z-index:20;
  background:rgba(255,255,255,.9);
  border:none;
  width:44px;
  height:44px;
  padding:0;
  color:#71717a;
  cursor:pointer;
  border-radius:6px;
  font-size:26px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
}

/* Slider side */
#global-lamb-index .lamb-modal-slider{
  width:100%;
  background:#09090b;
  position:relative;
  display:flex;
  align-items:center;
}
@media (min-width:768px){
  #global-lamb-index .lamb-modal-slider{ width:60%; }
}

#global-lamb-index .lamb-slider-container{
  width:100%;
  aspect-ratio:3/2;
  position:relative;
  overflow:hidden;
  background:#09090b;
}
#global-lamb-index .lamb-slider-img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

#global-lamb-index .lamb-slider-caption{
  position:absolute;
  bottom:0; left:0;
  width:100%;
  background:linear-gradient(to top, rgba(0,0,0,.8) 0%, transparent 100%);
  padding:48px 24px 24px 24px;
  color:#fff;
}
#global-lamb-index .lamb-caption-row{
  display:flex;
  gap:10px;
  align-items:flex-start;
}
#global-lamb-index .lamb-caption-icon{
  display:none;
}
#global-lamb-index .lamb-caption-text{
  font-size:13px;
  font-family:serif;
  font-style:italic;
  opacity:.92;
  margin:0;
}

/* slider nav (     Ffont-size         Ŋm  ) */
#global-lamb-index .lamb-slider-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  background:rgba(255,255,255,.2);
  border:none;
  color:#fff;
  width:44px; height:44px;
  border-radius:50%;
  cursor:pointer;
  display:flex;
  justify-content:center;
  transition:background .2s;
  backdrop-filter:blur(4px);
  z-index:10;
  user-select:none;
  font-size:32px;
  line-height:1;
}
#global-lamb-index .lamb-slider-nav:hover{ background:rgba(255,255,255,.4); }
#global-lamb-index .lamb-slider-prev{ left:16px; }
#global-lamb-index .lamb-slider-next{ right:16px; }

#global-lamb-index .lamb-slider-indicators{
  position:absolute;
  bottom:96px;
  left:24px;
  display:flex;
  gap:8px;
  z-index:10;
}
#global-lamb-index .lamb-indicator-dot{
  height:1px;
  background:rgba(255,255,255,.3);
  transition:all .3s;
}

/* Detail side */
#global-lamb-index .lamb-detail-area{
  width:100%;
  padding:40px;
  overflow:auto;
  max-height:95vh;
  background:#fff;
}
@media (min-width:768px){
  #global-lamb-index .lamb-detail-area{
    width:40%;
    padding:56px;
    max-height:95vh;
  }
}

/* =========================
   Right detail (new layout)
      HTML   ł  ̃N   X   g   Ȃ L  
========================= */
#global-lamb-index .gli-right-top{
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:24px;
}
#global-lamb-index .gli-region-small{
  font-size:13px;
  color:#a1a1aa;
  letter-spacing:.08em;
  white-space:nowrap;
}
#global-lamb-index .gli-region-line{
  height:1px;
  background:#e5e7eb;
  flex:1;
}
#global-lamb-index .gli-title-jp{
  font-size:2.4rem;
  font-weight:500;
  line-height:1.2;
  margin:0 0 10px 0;
  font-family:serif;
}
#global-lamb-index .gli-title-en{
  font-size:1.2rem;
  color:#52525b;
  line-height:1.35;
  margin:0 0 22px 0;
  font-family:serif;
}
#global-lamb-index .gli-tags{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:26px;
}
#global-lamb-index .gli-tag{
  display:inline-flex;
  align-items:center;
  padding:10px 14px;
  background:#f4f4f5;
  color:#52525b;
  font-size:13px;
  border-radius:6px;
  letter-spacing:.02em;
  white-space:nowrap;
}
#global-lamb-index .gli-desc{
  font-size:1.4rem;
  color:#3f3f46;
  font-family:serif;
  line-height:1.9;
  margin:0;
}
#global-lamb-index .gli-hr{
  height:1px;
  background:#e5e7eb;
  margin:28px 0;
}
#global-lamb-index .gli-reco{
  background:#f8fafc;
  border-left:4px solid #18181b;
  padding:22px 20px;
}
#global-lamb-index .gli-reco-head{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:12px;
}
#global-lamb-index .gli-reco-ico{
  font-size:14px;
  color:#18181b;
  opacity:.9;
}
#global-lamb-index .gli-reco-title{
  font-size:12px;
  letter-spacing:.2em;
  font-weight:800;
  color:#18181b;
}
#global-lamb-index .gli-reco-text{
  margin:0 0 12px 0;
  font-size:1.3rem;
  color:#3f3f46;
  line-height:1.75;
  font-family:serif;
}
#global-lamb-index .gli-reco-link{
  font-size:12px;
  color:#18181b;
  text-decoration:underline;
  font-weight:700;
}
#global-lamb-index .gli-reco-link:hover{ opacity:.75; }

/* =========================
   Utility
========================= */
#global-lamb-index .sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* =========================
   Map (Leaflet) - GLI style
========================= */
#global-lamb-index .gli-map-section{
  border-bottom:1px solid #f4f4f5;
  background:#fff;
}

#global-lamb-index .gli-map-wrap{
  position:relative;
}

/*      ͂  D ݂  */
#global-lamb-index .gli-map-canvas{
  height: 62vh;
  min-height: 520px;
  width: 100%;
  background:#fff;
  filter: none;
}
#global-lamb-index .gli-map-canvas .leaflet-tile-pane{
  filter: grayscale(100%) contrast(1.08) brightness(0.96);
}

/*  I [ o [   C i    UI ̔    ۂ  j */
#global-lamb-index .gli-map-overlay{
  position:absolute;
  top:28px;
  left:28px;
  z-index:800;
  background:rgba(255,255,255,.95);
  backdrop-filter:blur(10px);
  border:1px solid #f4f4f5;
  box-shadow:0 25px 50px -12px rgba(0,0,0,.12);
  padding:24px 24px;
  max-width:360px;
}

#global-lamb-index .gli-map-eyebrow{
  display:block;
  font-size:11px;
  letter-spacing:.3em;
  font-weight:800;
  color:#d4d4d8;
  text-transform:uppercase;
  margin-bottom:10px;
}

#global-lamb-index .gli-map-title{
  font-size:2.2rem;
  font-weight:600;
  letter-spacing:-.02em;
  margin:0 0 10px 0;
  font-family:serif;
  color:#18181b;
}

#global-lamb-index .gli-map-desc{
  margin:0 0 14px 0;
  font-size:13px;
  line-height:1.8;
  color:#71717a;
  font-family:serif;
}

#global-lamb-index .gli-map-reset{
  appearance:none;
  background:none;
  border:none;
  padding:0;
  cursor:pointer;
  font-size:11px;
  letter-spacing:.2em;
  font-weight:800;
  text-transform:uppercase;
  border-bottom:1px solid #18181b;
  padding-bottom:3px;
  color:#18181b;
}
#global-lamb-index .gli-map-reset:hover{ opacity:.7; }

/* Leaflet UI      ܂    */
#global-lamb-index .leaflet-control-zoom{
  border:none !important;
  box-shadow:0 10px 30px rgba(0,0,0,.10) !important;
}
#global-lamb-index .leaflet-control-zoom a{
  background:#fff !important;
  color:#18181b !important;
  border:1px solid #f4f4f5 !important;
}
#global-lamb-index .leaflet-control-attribution{
  font-size:9px !important;
  opacity:.55;
}

/*  } [ J [ idivIcon j */
#global-lamb-index .gli-marker{
  width:14px !important;
  height:14px !important;
  border-radius:50%;
  background:#c3ae2e;
  border:2px solid #fff;
  box-shadow:0 0 18px rgba(0,0,0,.35);
  transition:transform .2s, background .2s, border-color .2s;
}
#global-lamb-index .gli-marker:hover{
  transform:scale(1.35);
  background:#3f3f46;
}
#global-lamb-index .gli-marker.is-selected{
  background:#fff;
  border-color:#18181b;
  transform:scale(1.55);
}
#gli-map-canvas { height: 520px; }
@media (max-width: 768px){
  #gli-map-canvas { height: 420px; }
}
#gli-map-canvas {
    width: 100% !important;
    display: block !important;
}

.gli-loadmore-wrap{
  display:flex;
  justify-content:center;
  padding: 28px 0 60px;
}

.gli-loadmore-btn{
  appearance:none;
  border:1px solid rgba(255,255,255,0.18);
  background: rgba(0,0,0,0.35);
  color:#fff;
  padding: 12px 18px;
  border-radius: 999px;
  font-size: 14px;
  letter-spacing: 0.06em;
  cursor:pointer;
  transition: transform .12s ease, background .12s ease;
}

.gli-loadmore-btn:hover{
  transform: translateY(-1px);
  background: rgba(0,0,0,0.5);
}
/* Map height tuning */
.gli-map-canvas{
  height: 52vh;        /*  ܂  ͂     */
  min-height: 420px;   /*          h ~ */
  max-height: 720px;   /*  f J     h ~ */
}

/* PC ͂         _   */
@media (min-width: 1024px){
  .gli-map-canvas{
    height: 62vh;
    min-height: 520px;
  }
}

/*      C h i   Ȃ  ̊  ݂    ȉ    j */
@media (min-width: 1600px){
  .gli-map-canvas{
    height: 68vh;
    min-height: 600px;
    max-height: 820px;
  }
}
.gli-map-wrap{
  min-height: inherit;
}

/*        ɏ풓    X N   [     } */
.gli-scroll-hint{
  position:absolute;
  left:50%;
  bottom:16px;
  transform: translateX(-50%);
  z-index: 800; /* Leaflet     */
  display:flex;
  align-items:center;
  gap:10px;

  padding:10px 14px;
  border-radius: 999px;

  background: rgba(0,0,0,0.35);
  border: 1px solid rgba(255,255,255,0.18);
  box-shadow: 0 14px 30px rgba(0,0,0,0.18);

  cursor:pointer;

  /*  펞 \   i   ߁j */
  opacity: .55;
  backdrop-filter: blur(6px);

}

.gli-scroll-hint-text{
  font-size:11px;
  letter-spacing:.14em;
  color:#fff;
  opacity:.9;
}

.gli-scroll-hint-arrow{
  font-size:16px;
  line-height:1;
  color:#fff;
  opacity:.95;
  animation: gliHintFloat 1.6s ease-in-out infinite;
}

@keyframes gliHintFloat{
  0%,100%{ transform: translateY(0); }
  50%{ transform: translateY(6px); }
}

/*      ؂ ւ            g     h */
.gli-scroll-hint.is-pulse{
  opacity: .95;
  background: rgba(0,0,0,0.62);
  border-color: rgba(255,255,255,0.35);
  box-shadow: 0 18px 38px rgba(0,0,0,0.28);
  animation: gliHintPulse 1.05s ease-out;
}

@keyframes gliHintPulse{
  0%{ transform: translateX(-50%) translateY(6px) scale(0.98); }
  40%{ transform: translateX(-50%) translateY(0) scale(1.02); }
  100%{ transform: translateX(-50%) translateY(0) scale(1); }
}

/* sticky nav  ̍    ɍ  킹 Ē    i  : 90px j */
#gliArchive{
  scroll-margin-top: 90px;
}
.gli-count{
  margin-top:12px;
  font-size:13px;
  color:#666;
  letter-spacing:0.08em;
}
/*  n } Z N V     ̓w b _ [  艺 ɌŒ  */
#global-lamb-index .gli-map-section,
#global-lamb-index .gli-map-wrap,
#global-lamb-index .gli-map-canvas{
  position: relative;
  z-index: 0; /*     Łu n }    ɂ   v   ~ ߂  */
}
/* =========================================================
   GLI Flag Slider (CLEAN)
   - 矢印は“場所を取る”ので絶対に被らない（absolute禁止）
   - 中央(旗列)だけがスクロール
   - フェード無し
========================================================= */

#global-lamb-index .gli-flagbar{
  padding: 14px var(--gli-pad);
  border-bottom: 1px solid #f4f4f5;
  background: #fff;
}

/* 矢印 + 旗列（被りゼロ構造） */
#global-lamb-index .gli-scrollwrap{
  --gli-arrow: 38px;  /* 矢印ボタン幅 */
  --gli-gap: 14px;    /* 矢印と旗列の距離 */

  display: flex;
  align-items: center;
  gap: var(--gli-gap);

  width: 100%;
  overflow: visible;  /* 端の円/影が欠けるのを止める */
}

/* 旗列：ここだけが横スクロール */
#global-lamb-index .gli-scrollrow{
  flex: 1 1 auto;
  min-width: 0;               /* 横スクロール安定 */

  display: flex;
  gap: 0;                     /* ←欠ける原因になったので固定で0 */

  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  scroll-behavior: smooth;

  /* フェード完全OFF */
  mask-image: none;
  -webkit-mask-image: none;

  /* 端が欠けない最低限の“安全余白” */
  padding: 15px 6px;
  scroll-padding-left: 6px;
  scroll-padding-right: 6px;

  cursor: grab;
}
#global-lamb-index .gli-scrollrow::-webkit-scrollbar{ display: none; }
#global-lamb-index .gli-scrollrow.is-dragging{
  cursor: grabbing;
  user-select: none;
}

/* 矢印ボタン（absolute禁止＝必ず場所を取る） */
#global-lamb-index .gli-scrollbtn{
  flex: 0 0 var(--gli-arrow);
  width: var(--gli-arrow);
  height: var(--gli-arrow);

  border-radius: 999px;
  border: 1px solid rgba(0,0,0,0.12);
  background: rgba(255,255,255,0.92);
  box-shadow: 0 6px 18px rgba(0,0,0,0.16);

  display: grid;
  place-items: center;
  cursor: pointer;
  user-select: none;
  padding: 0;
}
#global-lamb-index .gli-scrollbtn::before{
  content: "";
  width: 9px;
  height: 9px;
  border-right: 2px solid rgba(0,0,0,0.75);
  border-bottom: 2px solid rgba(0,0,0,0.75);
}
#global-lamb-index .gli-scrollbtn.is-left::before{ transform: rotate(135deg); }
#global-lamb-index .gli-scrollbtn.is-right::before{ transform: rotate(-45deg); }

#global-lamb-index .gli-scrollbtn:disabled{
  opacity: .25;
  pointer-events: none;
}

/* 旗ボタン（縦崩壊・1文字割れ防止） */
#global-lamb-index .gli-flagbtn{
  flex: 0 0 auto;
  width: 76px;              /* ラベル縦崩壊を止める */
  appearance: none;
  border: none;
  background: transparent;
  cursor: pointer;
  padding: 0;
  text-align: center;
}

#global-lamb-index .gli-flagcircle{
  width: 58px;
  height: 58px;
  margin: 0 auto;
  border-radius: 999px;
  display: grid;
  place-items: center;
  border: 4px solid #f4f4f5;
  box-shadow: 0 10px 18px rgba(0,0,0,.08);
  overflow: hidden;
  transition: transform .12s ease, border-color .12s ease;
}
#global-lamb-index .gli-flagbtn:hover .gli-flagcircle{ transform: translateY(-1px); }
#global-lamb-index .gli-flagbtn.is-active .gli-flagcircle{ border-color: #18181b; }

#global-lamb-index .gli-flagimg{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

#global-lamb-index .gli-flaglabel{
  margin-top: 8px;
  font-size: 12px;
  color: #18181b;
  line-height: 1.2;

  white-space: nowrap;
  word-break: keep-all;
  overflow-wrap: normal;
}

#global-lamb-index .gli-flagfallback{
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  font-size: 14px;
  font-weight: 800;
  color: #18181b;
  background: #fafafa;
}

/* SP：矢印は消してスワイプのみ */
@media (max-width: 768px){
  #global-lamb-index .gli-scrollbtn{ display: none; }
  #global-lamb-index .gli-flagbtn{ width: 70px; }
}

/* =========================================================
   GLI Meat Type Nav (CLEAN)
   - 旗バーの gap:0 と完全分離
   - “連結して見える”問題を padding で解決
   - スクロールバーを細く上品に
========================================================= */

/* 横スクロール本体 */
#global-lamb-index .lamb-sticky-nav .lamb-nav-container{
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth;
  padding-bottom: 10px;
}

/* ボタン群：gap依存をやめる（ここが一番壊れにくい） */
#global-lamb-index .lamb-sticky-nav .lamb-filter-options{
  display: flex;
  gap: 0;
  white-space: nowrap;
}

/* 各ボタンに間隔を持たせる */
#global-lamb-index .lamb-sticky-nav .lamb-filter-btn{
  padding: 0 12px 4px 12px;
}

/* ラベルとボタン群の間隔 */
#global-lamb-index .lamb-sticky-nav .lamb-filter-group{
  gap: 18px;
}

/* Chrome / Safari / Edge */
#global-lamb-index .lamb-sticky-nav .lamb-nav-container::-webkit-scrollbar{
  height: 6px;
}
#global-lamb-index .lamb-sticky-nav .lamb-nav-container::-webkit-scrollbar-track{
  background: rgba(0,0,0,0.06);
  border-radius: 999px;
}
#global-lamb-index .lamb-sticky-nav .lamb-nav-container::-webkit-scrollbar-thumb{
  background: rgba(24,24,27,.35);
  border-radius: 999px;
}
#global-lamb-index .lamb-sticky-nav .lamb-nav-container::-webkit-scrollbar-thumb:hover{
  background: rgba(24,24,27,.48);
}
#global-lamb-index .lamb-sticky-nav .lamb-nav-container::-webkit-scrollbar-button{
  width: 0;
  height: 0;
  display: none;
}

/* =========================================================
   GLI Meat Type (inside #gliRegionBtns)
   - active表示を確実に反映
   - ALL TYPES固定を殺す
========================================================= */

/* まず：この中で作られるボタン類の“通常” */
#global-lamb-index #gliRegionBtns .lamb-filter-btn{
  color:#a1a1aa;
  font-weight:700;
  position:relative;
  background:none;
  border:0;
  cursor:pointer;
  padding: 0 12px 4px 12px; /* gapの代わりに余白で間隔 */
  white-space:nowrap;
}

/* 下線はデフォルト透明（＝固定表示を殺す） */
#global-lamb-index #gliRegionBtns .lamb-filter-btn::after{
  content:"";
  position:absolute;
  left:12px;
  right:12px;
  bottom:0;
  height:2px;
  background:transparent;
}

/* ✅ アクティブ候補を全部拾う（JS側の実装差を吸収） */
#global-lamb-index #gliRegionBtns .lamb-filter-btn.active,
#global-lamb-index #gliRegionBtns .lamb-filter-btn.is-active,
#global-lamb-index #gliRegionBtns .lamb-filter-btn[aria-current="true"],
#global-lamb-index #gliRegionBtns .lamb-filter-btn[aria-selected="true"],
#global-lamb-index #gliRegionBtns .lamb-filter-btn[aria-pressed="true"],
#global-lamb-index #gliRegionBtns .active .lamb-filter-btn,
#global-lamb-index #gliRegionBtns .is-active .lamb-filter-btn{
  color:#18181b;
}

/* アクティブ時だけ下線 */
#global-lamb-index #gliRegionBtns .lamb-filter-btn.active::after,
#global-lamb-index #gliRegionBtns .lamb-filter-btn.is-active::after,
#global-lamb-index #gliRegionBtns .lamb-filter-btn[aria-current="true"]::after,
#global-lamb-index #gliRegionBtns .lamb-filter-btn[aria-selected="true"]::after,
#global-lamb-index #gliRegionBtns .lamb-filter-btn[aria-pressed="true"]::after,
#global-lamb-index #gliRegionBtns .active .lamb-filter-btn::after,
#global-lamb-index #gliRegionBtns .is-active .lamb-filter-btn::after{
  background:#18181b;
}
#global-lamb-index .lamb-filter-label{
  display:none;
}

#global-lamb-index #gliRegionBtns.gli-scrollrow{
  padding-bottom: 12px;
  scrollbar-width: thin;
  scrollbar-color: rgba(24,24,27,.28) transparent;
}

#global-lamb-index #gliRegionBtns.gli-scrollrow::-webkit-scrollbar{
  height: 5px;
}
#global-lamb-index #gliRegionBtns.gli-scrollrow::-webkit-scrollbar-track{
  background: transparent;
}
#global-lamb-index #gliRegionBtns.gli-scrollrow::-webkit-scrollbar-thumb{
  background: rgba(24,24,27,.22);
  border-radius: 999px;
}
#global-lamb-index #gliRegionBtns.gli-scrollrow::-webkit-scrollbar-thumb:hover{
  background: rgba(24,24,27,.38);
}

/* =========================================
   Meat type scrollbar - minimal luxe
========================================= */
#global-lamb-index .lamb-sticky-nav .lamb-nav-container{
  padding-bottom: 14px;

  /* Firefox */
  scrollbar-width: thin;
  scrollbar-color: rgba(24,24,27,.22) transparent;
}

/* Chrome / Edge / Safari */
#global-lamb-index .lamb-sticky-nav .lamb-nav-container::-webkit-scrollbar{
  height: 10px; /* ← thumbを細く見せるため、ここは少し厚く */
}
#global-lamb-index .lamb-sticky-nav .lamb-nav-container::-webkit-scrollbar-track{
  background: transparent;
}
#global-lamb-index .lamb-sticky-nav .lamb-nav-container::-webkit-scrollbar-thumb{
  background: rgba(24,24,27,.14);
  border-radius: 999px;

  /* “細い棒”に見せるコツ：上下に透明ボーダー */
  border: 4px solid transparent;
  background-clip: padding-box;

  transition: background .15s ease;
}
#global-lamb-index .lamb-sticky-nav .lamb-nav-container:hover::-webkit-scrollbar-thumb{
  background: rgba(24,24,27,.28);
}
#global-lamb-index .lamb-sticky-nav .lamb-nav-container::-webkit-scrollbar-button{
  display:none;
}

.gli-hero-scroll{
  position:relative;
  display:inline-flex;
  flex-direction:column;
  align-items:flex-start;
  gap:14px;
  cursor:pointer;
}

.gli-hero-scroll span{
  font-size:12px;
  letter-spacing:2px;
  color:#fff;
  opacity:.75;
  transition:opacity .3s ease;
}

.gli-hero-scroll:hover span{
  opacity:1;
}

/* 縦ライン */
.gli-hero-line{
  width:1px;
  height:60px;
  background:rgba(255,255,255,.25);
  position:relative;
  overflow:hidden;
}

/* 光 */
.gli-hero-line::after{
  content:"";
  position:absolute;
  top:-60px;
  left:0;
  width:100%;
  height:60px;
  background:linear-gradient(
    to bottom,
    rgba(255,255,255,0),
    rgba(255,255,255,.9),
    rgba(255,255,255,0)
  );
  animation: heroLineFlow 2.6s ease-in-out infinite;
}

/* 上 → 下 */
@keyframes heroLineFlow{
  0%{
    transform:translateY(0);
    opacity:0;
  }
  30%{
    opacity:1;
  }
  100%{
    transform:translateY(120px);
    opacity:0;
  }
}

/* =========================
   GLI Travel card (country selected only)
========================= */
#global-lamb-index .gli-travel-card{
  grid-column: 1 / -1; /* グリッド全幅を使う（カード一覧の先頭で映える） */
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 24px;
  background: #fff;
  border: 1px solid #eee;
  border-radius: 16px;
  overflow: hidden;
  margin-bottom: 10px;
}

#global-lamb-index .gli-travel-media{
  position: relative;
  min-height: 260px;
  background: #f4f4f5;
}

#global-lamb-index .gli-travel-media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

#global-lamb-index .gli-travel-badge{
  position: absolute;
  top: 14px;
  left: 14px;
  background: rgba(255,255,255,.9);
  border: 1px solid rgba(0,0,0,.08);
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 12px;
  letter-spacing: .06em;
}

#global-lamb-index .gli-travel-body{
  padding: 22px 22px 20px;
}

#global-lamb-index .gli-travel-title{
  margin: 0 0 10px;
  font-size: 22px;
  line-height: 1.25;
}

#global-lamb-index .gli-travel-text{
  margin: 0 0 14px;
  color: #3f3f46;
  line-height: 1.8;
  font-size: 14px;
}

#global-lamb-index .gli-travel-open{
  border: 1px solid rgba(0,0,0,.12);
  background: #fff;
  border-radius: 999px;
  padding: 8px 12px;
  cursor: pointer;
}

@media (max-width: 900px){
  #global-lamb-index .gli-travel-card{
    grid-template-columns: 1fr;
  }
  #global-lamb-index .gli-travel-media{
    min-height: 200px;
  }
}

#gliRecoText { white-space: pre-line; }

#gliTagCut,
.gli-reco {
    display: none !important;
}

/* =========================
   Modal dish navigation
   - PC用：モーダル全体の料理切替ボタン
========================= */

#global-lamb-index .gli-mobile-dish-nav {
  display: none;
}

@media (min-width: 901px) {

  #global-lamb-index .lamb-modal-overlay {
    padding-left: 96px;
    padding-right: 96px;
  }

  #global-lamb-index .gli-dish-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 52px;
    height: 52px;
    border: none;
    border-radius: 50%;
    background: rgba(255,255,255,.92);
    color: #111;
    font-size: 32px;
    line-height: 1;
    cursor: pointer;
    z-index: 10001;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 0 8px 0;
    box-shadow: 0 6px 18px rgba(0,0,0,.22);
  }

  #global-lamb-index .gli-dish-prev {
    left: 24px;
  }

  #global-lamb-index .gli-dish-next {
    right: 24px;
  }

  #global-lamb-index .gli-dish-nav:hover {
    background: #fff;
  }
}

/* =========================
   Mobile modal layout
   - スマホ用：画像切替は画像上、料理切替は下部PREV/NEXT
========================= */

@media (max-width: 900px) {

  #global-lamb-index .lamb-modal-overlay {
    padding: 0;
    align-items: stretch;
    justify-content: stretch;
    background: #000;
  }

  #global-lamb-index .lamb-modal-content {
    width: 100%;
    height: 100dvh;
    max-width: none;
    max-height: none;
    display: flex;
    flex-direction: column;
    background: #000;
    overflow: hidden;
  }

  #global-lamb-index .lamb-modal-slider {
    width: 100%;
    height: 52dvh;
    flex: 0 0 52dvh;
    background: #000;
  }

  #global-lamb-index .lamb-slider-container {
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    background: #000;
  }

  #global-lamb-index .lamb-slider-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #000;
    pointer-events: none;
    user-select: none;
    -webkit-user-select: none;
    -webkit-user-drag: none;
  }

  #global-lamb-index .lamb-detail-area {
    width: 100%;
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
    overflow-y: auto;
    background: #fff;
    padding: 22px 22px 96px;
    position: relative;
    z-index: 2;
  }

  #global-lamb-index .lamb-modal-close {
    top: calc(env(safe-area-inset-top) + 12px);
    right: 12px;
    z-index: 10004;
    background: rgba(0,0,0,.42);
    color: #fff;
    border-radius: 999px;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }

  #global-lamb-index .gli-dish-nav {
    display: none !important;
  }

  #global-lamb-index .lamb-slider-nav {
    display: flex;
    width: 42px;
    height: 42px;
    background: rgba(0,0,0,.28);
    color: #fff;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }

  #global-lamb-index .lamb-slider-prev {
    left: 12px;
  }

  #global-lamb-index .lamb-slider-next {
    right: 12px;
  }

  #global-lamb-index .gli-mobile-dish-nav {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 10005;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    width: 100%;
    background: rgba(255,255,255,.96);
    border-top: 1px solid #eee;
    padding: 12px 18px calc(12px + env(safe-area-inset-bottom));
  }

  #global-lamb-index .gli-mobile-dish-btn {
    appearance: none;
    border: none;
    background: transparent;
    color: #18181b;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .18em;
    padding: 8px 10px;
    cursor: pointer;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }

  #global-lamb-index .gli-mobile-dish-separator {
    width: 1px;
    height: 18px;
    background: #ddd;
  }

  #global-lamb-index .lamb-slider-caption {
    padding: 80px 18px 28px;
  }

  #global-lamb-index .lamb-slider-indicators {
    bottom: 24px;
    left: 18px;
  }

  #global-lamb-index .gli-title-jp {
    font-size: 2rem;
  }

  #global-lamb-index .gli-title-en {
    font-size: 1.1rem;
  }

  #global-lamb-index .gli-desc {
    font-size: 1.3rem;
    line-height: 1.85;
  }
}

.lamb-slider-youtube {
  display: none;
  width: 100%;
  height: 100%;
  aspect-ratio: 4 / 3;
  background: #000;
}

.lamb-slider-youtube iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.lamb-card-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.lamb-card-badge-flag {
  width: 20px;
  height: 14px;
  object-fit: cover;
  flex: 0 0 auto;
  box-shadow: 0 0 0 1px rgba(0,0,0,.08);
}