/* =========================================================
   遠征旅行カード v7.5 — 本番埋め込み用スコープ版スタイル
   すべてのセレクタを #ensei-widget 配下へ閉じ込めています。
   - body / * / .ensei-icon などの全体指定はページへ影響しません
   - CSS変数も :root ではなく #ensei-widget に定義しています
   - 管理画面専用のスタイルは除外しています
   元ファイル: styles.css（管理画面はそちらを使い続けてください）
   ========================================================= */
#ensei-widget{--build-version:'7.5';
  --brand:#0068b7;
  --brand-dark:#005896;
  --brand-tint:#eaf5ff;
  --brand-tint-2:#eef7ff;
  --ink:#172033;
  --ink-2:#33445b;
  --muted:#687386;
  --line:#dce3ec;
  --line-soft:#edf0f4;
  --line-strong:#cfd7e3;
  --bg:#f5f7fb;
  --surface:#fff;
  --surface-2:#f6f8fb;
  --surface-3:#f8fbfe;
  --radius:12px;
  --radius-sm:8px;
  --shadow:0 4px 16px rgba(24,45,77,.08);}
#ensei-widget,#ensei-widget *{box-sizing:border-box}

/* ---------- ページ側CSSの遮断（重要） ----------
   設置先のサイトは h2 / p / button などに独自の padding・margin・font を
   指定しています。それがカード内部にも効いてしまい、
   ・画像と公演名の間が必要以上に空く
   ・カードごとに高さがずれる
   といった崩れの原因になっていました。
   ウィジェット内で使う要素の素の値をここで打ち消します。
   この下にある各クラスの指定（詳細度が高い）はそのまま効きます。 */
#ensei-widget h1,#ensei-widget h2,#ensei-widget h3,#ensei-widget h4,
#ensei-widget p,#ensei-widget ul,#ensei-widget ol,#ensei-widget li,
#ensei-widget dl,#ensei-widget dt,#ensei-widget dd,#ensei-widget figure{
  margin:0;padding:0;border:0;background:none;list-style:none;
  font-size:inherit;font-weight:inherit;line-height:inherit;color:inherit;
}
#ensei-widget a{margin:0;padding:0;background:none;color:inherit;text-decoration:none}
#ensei-widget button,#ensei-widget select,#ensei-widget input{
  margin:0;font:inherit;color:inherit;background:none;border:0;border-radius:0;
  box-shadow:none;text-align:inherit;-webkit-appearance:none;appearance:none;
}
#ensei-widget img,#ensei-widget svg{max-width:none;vertical-align:top}
#ensei-widget::before,#ensei-widget::after{content:none}

#ensei-widget{color:var(--ink);font-family:"Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", Geneva, Arial, Verdana, sans-serif}
#ensei-widget button,#ensei-widget input,#ensei-widget textarea,#ensei-widget select{font:inherit}
#ensei-widget button{cursor:pointer}
#ensei-widget :focus-visible{outline:2px solid var(--brand);outline-offset:2px}
#ensei-widget .ensei-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}
#ensei-widget .ensei-eyebrow{font-size:12px;font-weight:900;letter-spacing:.14em;color:var(--brand)}
#ensei-widget .ensei-icon{display:inline-flex;width:18px;height:18px;flex:0 0 18px;color:var(--brand)}
#ensei-widget .ensei-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(prefers-reduced-motion:reduce){
#ensei-widget,#ensei-widget *{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
#ensei-widget .ensei-slider{display:grid;grid-auto-flow:column;overflow-x:auto;align-items:stretch;overscroll-behavior-x:contain}
#ensei-widget .ensei-travel-card{display:flex;flex-direction:column;background:var(--surface);scroll-snap-align:start;}
#ensei-widget .ensei-poster{width:100%;height:220px;flex:0 0 220px;overflow:hidden;background-color:#132946;background-position:center;background-size:cover;background-repeat:no-repeat}
#ensei-widget .ensei-poster img{display:block;width:100%;height:100%;background:transparent}
#ensei-widget .ensei-poster.ensei-is-empty{display:grid;place-items:center;background-image:none}
#ensei-widget .ensei-poster.ensei-is-empty span{color:rgba(255,255,255,.72);font-size:12px;font-weight:700;letter-spacing:.06em}
#ensei-widget .ensei-card-body{padding:14px 14px 10px}
#ensei-widget .ensei-card-body h2{font-size:17px;line-height:1.45;margin:0 0 4px;overflow-wrap:anywhere}
#ensei-widget .ensei-event-link{display:inline-flex;align-items:center;gap:4px;color:var(--brand);font-size:12px;font-weight:700;text-decoration:none}
#ensei-widget .ensei-event-link:hover{text-decoration:underline}
#ensei-widget .ensei-head{display:flex;justify-content:space-between;align-items:baseline;margin-top:11px;font-size:12px}
#ensei-widget .ensei-head small{color:var(--muted)}
#ensei-widget .ensei-venue-slider-shell{margin:6px 0}
#ensei-widget .ensei-venue-tabs{display:flex;gap:6px}
#ensei-widget .ensei-venue-tabs.ensei-is-scroll{flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:contain;scroll-snap-type:x proximity;touch-action:pan-x}
#ensei-widget .ensei-venue-tabs.ensei-is-scroll::-webkit-scrollbar{display:none}
#ensei-widget .ensei-venue-tabs.ensei-is-scroll.ensei-is-dragging .ensei-venue-tab{pointer-events:none}
#ensei-widget .ensei-venue-tabs.ensei-is-scroll .ensei-venue-tab{flex:0 0 auto;white-space:nowrap;scroll-snap-align:start}
#ensei-widget .ensei-venue-tab{display:grid;gap:1px;border:1px solid #d7dee8;background:var(--surface);border-radius:8px;padding:6px 10px;line-height:1.3;color:var(--ink-2);transition:background .15s,border-color .15s;user-select:none}
#ensei-widget .ensei-venue-tab b{font-weight:700}
#ensei-widget .ensei-venue-tab small{color:var(--muted)}
#ensei-widget .ensei-venue-tab:hover{border-color:#9fc3e4;background:var(--brand-tint-2)}
#ensei-widget .ensei-venue-tab.ensei-on{border-color:var(--brand);background:var(--brand);color:#fff;font-weight:700}
#ensei-widget .ensei-venue-select-wrap{position:relative;margin:8px 0}
#ensei-widget .ensei-venue-select-wrap select{width:100%;padding:10px 38px 10px 11px;border:1px solid #d7dee8;border-radius:var(--radius-sm);background:var(--surface);color:#26364d;appearance:none}
#ensei-widget .ensei-venue-select-wrap>.ensei-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%) rotate(90deg);pointer-events:none;color:var(--muted)}
#ensei-widget .ensei-selected{background:var(--surface-2);border-radius:var(--radius-sm);padding:8px 10px;margin-top:2px}
#ensei-widget .ensei-selected p{display:flex;gap:7px;align-items:flex-start;margin:3px 0;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
#ensei-widget .ensei-card-footer{margin-top:auto;border-top:1px solid #e7ebf0}
#ensei-widget .ensei-primary-hotel{display:flex;gap:8px;align-items:flex-start;padding:11px 14px 7px;color:var(--ink);text-decoration:none;background:var(--surface)}
#ensei-widget .ensei-primary-hotel .ensei-hotel-text{display:grid;gap:3px;flex:1;min-width:0}
#ensei-widget .ensei-primary-hotel b{font-size:13px;line-height:1.45;overflow-wrap:anywhere}
#ensei-widget .ensei-primary-hotel small{color:var(--muted);font-size:11px;line-height:1.4;overflow-wrap:anywhere}
#ensei-widget .ensei-primary-hotel:hover{background:var(--surface-3)}
#ensei-widget .ensei-primary-hotel.ensei-is-generic .ensei-icon:first-child{color:var(--muted)}
#ensei-widget .ensei-flight{display:flex;align-items:center;gap:8px;min-height:40px;padding:7px 14px;color:var(--brand);font-size:13px;font-weight:700;text-decoration:none;border-top:1px solid var(--line-soft)}
#ensei-widget .ensei-flight .ensei-icon:last-child{margin-left:auto}
#ensei-widget .ensei-flight:hover{background:var(--brand-tint-2)}
#ensei-widget .ensei-link-row{display:flex;align-items:center;gap:10px;min-height:46px;padding:11px 13px;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink);font-size:13px;font-weight:700;text-decoration:none;transition:background .15s,border-color .15s}
#ensei-widget .ensei-link-row .ensei-icon:last-child{margin-left:auto;color:var(--line-strong)}
#ensei-widget .ensei-link-row:hover{background:var(--brand-tint-2)}
#ensei-widget .ensei-link-row:hover .ensei-icon:last-child{color:var(--brand)}
#ensei-widget .ensei-pattern1 .ensei-card-footer{display:grid;gap:8px;padding:13px 16px 15px;border-top:1px solid var(--line-soft)}
#ensei-widget .ensei-nav-list{display:grid;gap:12px;overflow:visible}
#ensei-widget .ensei-nav-list .ensei-travel-card{width:100%}
#ensei-widget .ensei-area-filter{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
#ensei-widget .ensei-area-filter-btn{border:1px solid var(--line-strong);background:var(--surface);border-radius:99px;padding:9px 16px;font-size:13px;font-weight:700;color:var(--ink-2);transition:background .15s,border-color .15s,color .15s}
#ensei-widget .ensei-area-filter-btn:hover{border-color:#9fc3e4;background:var(--brand-tint-2)}
#ensei-widget .ensei-area-filter-btn.ensei-on{background:var(--brand);border-color:var(--brand);color:#fff}
#ensei-widget .ensei-rich-card .ensei-poster{height:190px;flex-basis:190px}
#ensei-widget .ensei-rich-body .ensei-head{margin-top:2px;margin-bottom:2px}
#ensei-widget .ensei-rich-body .ensei-venue-slider-shell{margin:0 0 8px}
#ensei-widget .ensei-rich-body .ensei-venue-select-wrap{margin:0 0 8px}
#ensei-widget .ensei-rich-body h2{margin:0 0 10px;font-size:19px;line-height:1.35;letter-spacing:.01em;overflow-wrap:anywhere;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-height:calc(19px * 1.35 * 2)}
#ensei-widget .ensei-rich-date,#ensei-widget .ensei-rich-venue{display:flex;gap:9px;align-items:flex-start;line-height:1.5;overflow-wrap:anywhere}
#ensei-widget .ensei-rich-date{min-height:calc(13px * 1.5)}
#ensei-widget .ensei-rich-date span:last-child{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden}
#ensei-widget .ensei-rich-venue{min-height:calc(13px * 1.5 * 2)}
#ensei-widget .ensei-rich-venue span:last-child{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
#ensei-widget .ensei-rich-card{height:100%}
#ensei-widget .ensei-rich-body{flex:1 1 auto}
#ensei-widget .ensei-rich-venue{color:var(--ink-2)}
#ensei-widget .ensei-rich-venue .ensei-icon,#ensei-widget .ensei-rich-date .ensei-icon{color:var(--muted)}
#ensei-widget .ensei-pattern2 .ensei-card-footer{border-top:1px solid var(--line-soft);margin-top:10px}
#ensei-widget .ensei-rich-flight{padding:12px 16px 0}
#ensei-widget .ensei-flight-route{display:flex;align-items:center;gap:9px;min-height:48px;padding:11px 13px;border-radius:var(--radius-sm);background:var(--brand-tint-2);color:var(--brand);font-size:14px;font-weight:700;text-decoration:none}
#ensei-widget .ensei-flight-route .ensei-icon:last-child{margin-left:auto}
#ensei-widget .ensei-flight-route:hover{background:var(--brand-tint)}
#ensei-widget .ensei-departure-change{margin-top:9px;padding:0;border:0;background:none;color:var(--ink-2);font-size:12px;font-weight:700}
#ensei-widget .ensei-departure-change:hover{color:var(--brand);text-decoration:underline}
#ensei-widget .ensei-departure-picker{margin-top:8px}
#ensei-widget .ensei-departure-picker select{width:100%;min-height:42px;padding:9px 11px;border:1px solid var(--line-strong);border-radius:7px;background:var(--surface);color:var(--ink)}
#ensei-widget .ensei-rich-hotels{padding:14px 0 12px}
#ensei-widget .ensei-hotels-head{display:flex;align-items:center;gap:8px;padding:0 16px 9px;font-size:13px}
#ensei-widget .ensei-hotels-head b{font-weight:700}
#ensei-widget .ensei-hotel-counter{margin-left:auto;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}
#ensei-widget .ensei-hotel-nav{width:28px;height:28px;flex:0 0 28px;border:1px solid var(--line-strong);border-radius:50%;background:var(--surface);color:var(--brand);font-size:15px;line-height:1;display:grid;place-items:center}
#ensei-widget .ensei-hotel-nav:hover{background:var(--brand-tint-2);border-color:#9fc3e4}
#ensei-widget .ensei-hotel-track{display:grid;grid-auto-flow:column;grid-auto-columns:100%;gap:0;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
#ensei-widget .ensei-hotel-track::-webkit-scrollbar{display:none}
#ensei-widget .ensei-hotel-slide{scroll-snap-align:start;display:flex;align-items:center;gap:9px;margin:0 16px;padding:12px 13px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);text-decoration:none;min-height:62px}
#ensei-widget .ensei-hotel-slide .ensei-hotel-text{display:grid;gap:3px;flex:1;min-width:0}
#ensei-widget .ensei-hotel-slide b{font-size:13px;line-height:1.45;overflow-wrap:anywhere}
#ensei-widget .ensei-hotel-slide small{color:var(--muted);font-size:11px;line-height:1.4;overflow-wrap:anywhere}
#ensei-widget .ensei-hotel-slide:hover{border-color:#9fc3e4;background:var(--surface-3)}
#ensei-widget .ensei-hotel-slide.ensei-is-more{background:var(--brand-tint-2);border-color:#cfe0ef}
#ensei-widget .ensei-hotel-slide.ensei-is-more b{color:var(--brand)}
#ensei-widget .ensei-hotel-slide.ensei-is-more small{color:#4f7ea8}
#ensei-widget .ensei-hotel-dots{display:flex;justify-content:center;gap:5px;margin-top:11px}
#ensei-widget .ensei-hotel-dot{width:6px;height:6px;border-radius:99px;background:var(--line-strong);transition:width .2s,background .2s}
#ensei-widget .ensei-hotel-dot.ensei-on{width:16px;background:var(--brand)}
@media(max-width:600px){
#ensei-widget .ensei-slider{gap:12px}
#ensei-widget .ensei-travel-card{border-radius:10px}
#ensei-widget .ensei-poster{height:188px;flex-basis:188px}
#ensei-widget .ensei-card-body{padding:12px 13px 8px}
#ensei-widget .ensei-card-body h2{margin:0 0 3px;font-size:16px}
#ensei-widget .ensei-event-link{margin-top:1px;font-size:11px}
#ensei-widget .ensei-head{margin-top:9px}
#ensei-widget .ensei-venue-tab{min-height:38px;padding:7px 9px}
#ensei-widget .ensei-venue-select-wrap{margin:7px 0}
#ensei-widget .ensei-venue-select-wrap select{min-height:42px;font-size:13px}
#ensei-widget .ensei-selected{padding:7px 9px}
#ensei-widget .ensei-card-footer{margin-top:auto}
#ensei-widget .ensei-primary-hotel{padding:10px 13px 5px}
#ensei-widget .ensei-flight{min-height:40px;padding:7px 13px}
}
#ensei-widget .ensei-cards-empty{margin:0;padding:22px 18px;border:1px dashed #c8d4e2;border-radius:var(--radius);background:var(--surface);color:var(--muted);font-size:13px;line-height:1.7;text-align:center}
#ensei-widget .ensei-slider .ensei-cards-empty,#ensei-widget .ensei-nav-list .ensei-cards-empty{grid-column:1/-1}
@media(max-width:600px){
#ensei-widget .ensei-area-filter{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
#ensei-widget .ensei-area-filter::-webkit-scrollbar{display:none}
#ensei-widget .ensei-area-filter-btn{flex:0 0 auto;white-space:nowrap}
#ensei-widget .ensei-rich-card .ensei-poster{height:170px;flex-basis:170px}
#ensei-widget .ensei-rich-body{padding:13px 14px 4px}
#ensei-widget .ensei-rich-body h2{font-size:17px}
#ensei-widget .ensei-rich-flight{padding:11px 14px 0}
#ensei-widget .ensei-hotels-head{padding:0 14px 8px}
#ensei-widget .ensei-hotel-slide{margin:0 14px}
}
#ensei-widget .ensei-design-standard .ensei-travel-card{border:1px solid var(--line);box-shadow:var(--shadow)}
#ensei-widget .ensei-design-compact .ensei-poster{height:150px;flex-basis:150px}
#ensei-widget .ensei-design-compact .ensei-rich-body{padding:11px 13px 4px}
#ensei-widget .ensei-design-compact .ensei-rich-body h2{font-size:16px;min-height:calc(16px * 1.35 * 2);margin-bottom:7px}
#ensei-widget .ensei-design-compact .ensei-rich-date,#ensei-widget .ensei-design-compact .ensei-rich-venue{font-size:12px;margin:5px 0}
#ensei-widget .ensei-design-compact .ensei-rich-date{min-height:calc(12px * 1.5)}
#ensei-widget .ensei-design-compact .ensei-rich-venue{min-height:calc(12px * 1.5 * 2)}
#ensei-widget .ensei-design-compact .ensei-link-row{min-height:40px;padding:9px 11px;font-size:12px}
#ensei-widget .ensei-design-compact .ensei-pattern1 .ensei-card-footer{gap:6px;padding:10px 13px 12px}
#ensei-widget .ensei-design-soft .ensei-travel-card{border:0;border-radius:18px;box-shadow:0 8px 28px rgba(24,45,77,.10)}
#ensei-widget .ensei-design-soft .ensei-poster{height:200px;flex-basis:200px}
#ensei-widget .ensei-design-soft .ensei-rich-body{padding:16px 18px 6px}
#ensei-widget .ensei-design-soft .ensei-link-row{background:transparent;border:1px solid var(--line);border-radius:12px}
#ensei-widget .ensei-design-soft .ensei-link-row:hover{background:var(--brand-tint-2);border-color:#9fc3e4}
#ensei-widget .ensei-design-soft .ensei-pattern1 .ensei-card-footer{border-top:0;padding:6px 18px 18px;gap:9px}
#ensei-widget .ensei-design-soft .ensei-rich-flight,#ensei-widget .ensei-design-soft .ensei-hotels-head{padding-left:18px;padding-right:18px}
#ensei-widget .ensei-design-soft .ensei-hotel-slide{margin:0 18px;border-radius:12px}
#ensei-widget .ensei-design-accent .ensei-travel-card{border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:10px}
#ensei-widget .ensei-design-accent .ensei-rich-body h2{font-size:20px;font-weight:900;min-height:calc(20px * 1.35 * 2)}
#ensei-widget .ensei-design-accent .ensei-rich-date span:last-child,#ensei-widget .ensei-design-accent .ensei-rich-venue span:last-child{font-weight:700}
#ensei-widget .ensei-design-accent .ensei-link-row{background:#fff;border:1px solid var(--line-strong)}
#ensei-widget .ensei-design-accent .ensei-link-row:hover{background:var(--brand-tint-2);border-color:var(--brand)}
#ensei-widget .ensei-design-accent .ensei-pattern1 .ensei-card-footer{background:var(--surface-2)}
#ensei-widget .ensei-design-minimal .ensei-travel-card{border:1px solid #eceff3;box-shadow:none;border-radius:8px}
#ensei-widget .ensei-design-minimal .ensei-poster{height:165px;flex-basis:165px}
#ensei-widget .ensei-design-minimal .ensei-rich-body{padding:14px 15px 2px}
#ensei-widget .ensei-design-minimal .ensei-rich-body h2{font-size:17px;font-weight:700;min-height:calc(17px * 1.35 * 2)}
#ensei-widget .ensei-design-minimal .ensei-rich-date .ensei-icon,#ensei-widget .ensei-design-minimal .ensei-rich-venue .ensei-icon{color:#b6bfcc}
#ensei-widget .ensei-design-minimal .ensei-link-row{background:transparent;border-top:1px solid #f0f2f5;border-radius:0;min-height:44px;padding:11px 2px;font-weight:600}
#ensei-widget .ensei-design-minimal .ensei-link-row:hover{background:transparent;color:var(--brand)}
#ensei-widget .ensei-design-minimal .ensei-link-row .ensei-icon:last-child{color:#c3ccd8}
#ensei-widget .ensei-design-minimal .ensei-pattern1 .ensei-card-footer{gap:0;padding:2px 15px 8px;border-top:0}
#ensei-widget .ensei-pattern3 .ensei-card-footer{padding:11px 14px 13px;border-top:1px solid var(--line-soft)}
#ensei-widget .ensei-link-grid.ensei-is-icons{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
#ensei-widget .ensei-link-cell{display:grid;justify-items:center;gap:2px;color:var(--ink);text-decoration:none;text-align:center}
#ensei-widget .ensei-link-cell .ensei-icon{margin-bottom:1px}
#ensei-widget .ensei-link-cell small{color:var(--muted);}
#ensei-widget .ensei-link-grid.ensei-is-pills{display:flex;flex-wrap:wrap;gap:6px}
#ensei-widget .ensei-link-pill{display:inline-flex;align-items:center;gap:6px;flex:1 1 auto;justify-content:center;min-height:38px;padding:8px 11px;border:1px solid var(--line);border-radius:99px;background:var(--surface);color:var(--ink);font-size:12px;font-weight:700;text-decoration:none;white-space:nowrap}
#ensei-widget .ensei-link-pill .ensei-icon{width:15px;height:15px;flex-basis:15px}
#ensei-widget .ensei-link-pill:hover{border-color:var(--brand);background:var(--brand-tint-2);color:var(--brand)}
#ensei-widget .ensei-link-grid.ensei-is-wide{display:grid;grid-template-columns:1fr auto auto;gap:7px;align-items:stretch}
#ensei-widget .ensei-link-main{display:flex;align-items:center;gap:8px;min-height:44px;padding:9px 12px;border-radius:10px;background:var(--brand-tint-2);color:var(--brand);font-size:13px;font-weight:700;text-decoration:none}
#ensei-widget .ensei-link-main .ensei-icon:last-child{margin-left:auto}
#ensei-widget .ensei-link-main:hover{background:var(--brand-tint)}
#ensei-widget .ensei-link-mini{display:grid;justify-items:center;align-content:center;gap:1px;min-width:60px;padding:6px 8px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink-2);text-decoration:none}
#ensei-widget .ensei-link-mini span{font-size:10px;font-weight:700}
#ensei-widget .ensei-link-mini .ensei-icon{width:17px;height:17px;flex-basis:17px}
#ensei-widget .ensei-link-mini:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-tint-2)}
#ensei-widget .ensei-design-overlay .ensei-travel-card{border:0;border-radius:14px;box-shadow:0 6px 22px rgba(24,45,77,.12);overflow:hidden}
#ensei-widget .ensei-design-overlay .ensei-poster{height:236px;flex-basis:236px}
#ensei-widget .ensei-design-overlay .ensei-poster img{height:calc(100% - 74px);object-position:center top}
#ensei-widget .ensei-design-overlay .ensei-poster::after{content:'';position:absolute;inset:auto 0 0 0;height:96px;background:linear-gradient(transparent,rgba(9,20,36,.92) 42%);z-index:2}
#ensei-widget .ensei-design-overlay .ensei-poster.ensei-is-empty::after{display:none}
#ensei-widget .ensei-design-overlay .ensei-rich-body{position:relative;padding:0 16px 6px;margin-top:-66px;z-index:3}
#ensei-widget .ensei-design-overlay .ensei-rich-body h2{color:#fff;font-size:18px;min-height:calc(18px * 1.35 * 2);text-shadow:0 1px 8px rgba(0,0,0,.5);margin-bottom:12px}
#ensei-widget .ensei-design-overlay .ensei-rich-body .ensei-head,#ensei-widget .ensei-design-overlay .ensei-rich-body .ensei-venue-slider-shell,#ensei-widget .ensei-design-overlay .ensei-rich-body .ensei-venue-select-wrap{position:relative;z-index:4}
#ensei-widget .ensei-design-hero .ensei-travel-card{border:0;border-radius:14px;box-shadow:0 6px 22px rgba(24,45,77,.12);overflow:hidden}
#ensei-widget .ensei-design-hero .ensei-poster{height:210px;flex-basis:210px}
#ensei-widget .ensei-design-hero .ensei-rich-body{padding:12px 16px 4px}
#ensei-widget .ensei-design-hero .ensei-rich-body h2{font-size:18px;font-weight:800;min-height:calc(18px * 1.35 * 2);margin-bottom:8px}
#ensei-widget .ensei-design-hero .ensei-rich-date,#ensei-widget .ensei-design-hero .ensei-rich-venue{margin:5px 0}
#ensei-widget .ensei-design-hero .ensei-link-row{background:var(--surface);border:1px solid var(--line)}
#ensei-widget .ensei-design-hero .ensei-link-row:hover{border-color:var(--brand);background:var(--brand-tint-2)}
#ensei-widget .ensei-design-hero .ensei-pattern1 .ensei-card-footer{gap:7px;padding:10px 16px 14px}
#ensei-widget .ensei-design-wide .ensei-travel-card{flex-direction:row;flex-wrap:wrap;border-radius:12px}
#ensei-widget .ensei-design-wide .ensei-poster{width:132px;height:auto;flex:0 0 132px;align-self:stretch}
#ensei-widget .ensei-design-wide .ensei-rich-body{flex:1 1 200px;min-width:0;padding:13px 15px 8px}
#ensei-widget .ensei-design-wide .ensei-rich-body h2{font-size:16px;min-height:calc(16px * 1.35 * 2)}
#ensei-widget .ensei-design-wide .ensei-card-footer{flex:1 1 100%;margin-top:0}
#ensei-widget .ensei-design-wide .ensei-link-grid.ensei-is-icons{grid-template-columns:repeat(3,1fr)}
#ensei-widget .ensei-design-pop .ensei-travel-card{border:0;border-radius:20px;background:linear-gradient(180deg,#fff,#f7fbff);box-shadow:0 6px 20px rgba(0,104,183,.13);transition:transform .18s,box-shadow .18s}
#ensei-widget .ensei-design-pop .ensei-travel-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(0,104,183,.2)}
#ensei-widget .ensei-design-pop .ensei-poster{height:180px;flex-basis:180px}
#ensei-widget .ensei-design-pop .ensei-rich-body h2{font-size:18px;font-weight:900;min-height:calc(18px * 1.35 * 2)}
#ensei-widget .ensei-design-pop .ensei-link-cell,#ensei-widget .ensei-design-pop .ensei-link-pill{border:0;background:var(--brand-tint-2);border-radius:14px}
#ensei-widget .ensei-design-pop .ensei-link-cell b,#ensei-widget .ensei-design-pop .ensei-link-pill{color:var(--brand)}
#ensei-widget .ensei-design-pop .ensei-link-cell:hover,#ensei-widget .ensei-design-pop .ensei-link-pill:hover{background:#dcedfb}
#ensei-widget .ensei-design-pop .ensei-link-row{border-radius:14px}
#ensei-widget .ensei-design-cinema .ensei-travel-card{border:0;border-radius:14px;background:#141c2b;box-shadow:0 8px 26px rgba(9,15,26,.28)}
#ensei-widget .ensei-design-cinema .ensei-poster{height:196px;flex-basis:196px}
#ensei-widget .ensei-design-cinema .ensei-rich-body h2{color:#fff}
#ensei-widget .ensei-design-cinema .ensei-rich-date,#ensei-widget .ensei-design-cinema .ensei-rich-venue{color:#c3cddc}
#ensei-widget .ensei-design-cinema .ensei-rich-date .ensei-icon,#ensei-widget .ensei-design-cinema .ensei-rich-venue .ensei-icon{color:#7f92ab}
#ensei-widget .ensei-design-cinema .ensei-card-footer{border-top:1px solid rgba(255,255,255,.1)}
#ensei-widget .ensei-design-cinema .ensei-link-cell,#ensei-widget .ensei-design-cinema .ensei-link-pill,#ensei-widget .ensei-design-cinema .ensei-link-row{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.14);color:#eef3f9}
#ensei-widget .ensei-design-cinema .ensei-link-cell small{color:#9fb0c4}
#ensei-widget .ensei-design-cinema .ensei-link-cell .ensei-icon,#ensei-widget .ensei-design-cinema .ensei-link-pill .ensei-icon,#ensei-widget .ensei-design-cinema .ensei-link-row .ensei-icon{color:#6db4ee}
#ensei-widget .ensei-design-cinema .ensei-link-cell:hover,#ensei-widget .ensei-design-cinema .ensei-link-pill:hover,#ensei-widget .ensei-design-cinema .ensei-link-row:hover{background:rgba(109,180,238,.18);border-color:#6db4ee;color:#fff}
#ensei-widget .ensei-design-cinema .ensei-venue-tab{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.16);color:#dbe4ef}
#ensei-widget .ensei-design-cinema .ensei-venue-tab.ensei-on{background:#6db4ee;border-color:#6db4ee;color:#0d1522}
#ensei-widget .ensei-design-cinema .ensei-head{color:#c3cddc}
#ensei-widget .ensei-design-cinema .ensei-head small{color:#8d9db3}
#ensei-widget .ensei-design-ticket .ensei-travel-card{border:1px solid var(--line);border-radius:12px;position:relative}
#ensei-widget .ensei-design-ticket .ensei-card-footer{position:relative;border-top:2px dashed var(--line-strong);margin-top:auto}
#ensei-widget .ensei-design-ticket .ensei-card-footer::before,#ensei-widget .ensei-design-ticket .ensei-card-footer::after{content:'';position:absolute;top:-9px;width:16px;height:16px;border-radius:50%;background:var(--bg)}
#ensei-widget .ensei-design-ticket .ensei-card-footer::before{left:-9px}
#ensei-widget .ensei-design-ticket .ensei-card-footer::after{right:-9px}
#ensei-widget .ensei-design-ticket .ensei-rich-body h2{font-size:18px;min-height:calc(18px * 1.35 * 2)}
#ensei-widget .ensei-design-ticket .ensei-link-cell,#ensei-widget .ensei-design-ticket .ensei-link-pill{border-style:dashed}
#ensei-widget .ensei-design-ticket .ensei-link-cell:hover,#ensei-widget .ensei-design-ticket .ensei-link-pill:hover{border-style:solid}
@media(max-width:600px){
#ensei-widget .ensei-design-wide .ensei-poster{width:110px;flex-basis:110px}
#ensei-widget .ensei-link-grid.ensei-is-wide{grid-template-columns:1fr auto}
#ensei-widget .ensei-link-grid.ensei-is-wide .ensei-link-main{grid-column:1/-1}
}
@media(max-width:1199px){
#ensei-widget .ensei-slider{grid-auto-columns:calc((100% - 36px) / 2.5)}
}
@media(max-width:860px){
#ensei-widget .ensei-slider{grid-auto-columns:calc((100% - 18px) / 1.5)}
}
@media(max-width:600px){
#ensei-widget .ensei-slider{grid-auto-columns:calc((100% - 12px) / 1.5)}
}

/* =========================================================
   埋め込み用レイアウト v2
   設置先の hotel recommendation widget（widget.css）の作法に合わせています。
   - カード幅 275px 固定 / ギャップ 16px
   - 左右ボタンは一覧の両サイド、動かせるときだけ表示
   - SPはスワイプ（ボタンは出さない）

   ▼ よく触る値はここにまとめています ▼
   ========================================================= */
#ensei-widget{
  --ensei-card-w: 17.1875rem;   /* PCのカード幅 275px。小さくすると1画面の枚数が増えます */
  --ensei-gap: 1rem;            /* カード間 16px */
  --ensei-poster-ratio: 4 / 3;  /* 画像の縦横比。16/9 で薄く、3/2 が中間、4/3 で厚い */
  --ensei-nav-offset: -1.125rem;/* 左右ボタンの外側へのはみ出し量 */
  --ensei-title-lines: 2;       /* 公演名の行数。全カードこの高さで固定します */

  /* 設置ブロックの外側余白。widget.css の --ltk-block-padding-* と同じ値です。
     見出しの上 = section の padding-top 40px + h2 の padding 20px = 60px */
  --ensei-block-pt: 3.75rem;    /* 60px */
  --ensei-block-pb: 2.5rem;     /* 40px */
  --ensei-block-pi: 0rem;       /* 左右。設置先の h2 に左右paddingがある場合はここに同じ値を */
  --ensei-heading-gap: 1.25rem; /* 20px：見出しとカードの間 */

  position: relative;
  display: block;
  box-sizing: border-box;
  max-width: none;              /* 幅は設置先のコンテナに合わせます（他セクションと揃える） */
  margin: 0;
  padding: var(--ensei-block-pt) var(--ensei-block-pi) var(--ensei-block-pb);
}

/* ---------- 見出し ---------- */
#ensei-widget .ensei-header{display:block;margin:0 0 var(--ensei-heading-gap)}
#ensei-widget .ensei-header-text{min-width:0}
#ensei-widget .ensei-title{margin:0;padding:0;border:0;background:none;font-size:2rem;line-height:1.25;font-weight:800;color:#222}
#ensei-widget .ensei-subtitle{margin:.375rem 0 0;padding:0;border:0;background:none;line-height:1.6;color:#777}

/* ---------- 一覧（横スクロール） ---------- */
#ensei-widget .ensei-viewport{position:relative}
#ensei-widget .ensei-slider{
  grid-auto-columns: var(--ensei-card-w);
  gap: var(--ensei-gap);
  padding: .25rem 0 1rem;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
#ensei-widget .ensei-slider::-webkit-scrollbar{width:0;height:0;display:none}
#ensei-widget .ensei-slider.ensei-can-scroll{cursor:grab}
#ensei-widget .ensei-slider.ensei-can-scroll.ensei-is-dragging{cursor:grabbing}
#ensei-widget .ensei-slider.ensei-is-dragging *{user-select:none}
#ensei-widget .ensei-slider .ensei-travel-card{scroll-snap-align:start}
#ensei-widget .ensei-slider img,#ensei-widget .ensei-slider a{-webkit-user-drag:none}

/* ---------- 画像を主役に ---------- */
/* 高さ固定をやめ、カード幅に対する比率で決めます。
   object-fit は contain のまま（cover にすると公演名の文字が切れるため）。 */
#ensei-widget .ensei-poster,
#ensei-widget .ensei-rich-card .ensei-poster,
#ensei-widget .ensei-tile-card .ensei-poster{
  height: auto;
  flex: 0 0 auto;
  min-height: 0;          /* フレックスの最小サイズで画像の実寸に引っ張られないように */
  aspect-ratio: var(--ensei-poster-ratio);
  overflow: hidden;
}
/* 画像の下に本文が続く構成です。公演名が画像に重なることはありません。 */
#ensei-widget .ensei-rich-body,#ensei-widget .ensei-card-body{position:relative;z-index:1}
#ensei-widget .ensei-rich-date,#ensei-widget .ensei-rich-venue{font-size:.75rem;margin:.25rem 0}

/* ---------- 行の高さを揃えて、カード間のズレを無くす ----------
   公演名が1行のカードと2行のカードで、その下（会場リスト・日付・会場名・導線）が
   ずれてしまう問題への対処です。

   ズレの原因は min-height と実際の行の高さが食い違っていたことでした。
   元の指定は min-height:calc(16px * 1.35 * 2) なのに line-height は 1.4 だったため、
   2行の中身（16px × 1.4 × 2 = 44.8px）が min-height（43.2px）を 1.6px 超えて伸びていました。

   height で固定する方法もありますが、日本語フォントは字形が行ボックスから
   わずかにはみ出すため、overflow:hidden と組み合わせると文字の上下が
   削れて見えます。そこで、

     ・-webkit-line-clamp で行数の上限を決める
     ・min-height を「その行数ぶんの高さ」とぴったり同じ式にする

   の2点を揃えました。上限を超えないので伸びず、ぴったりなので削れません。
   height / max-height は使いません。 */
#ensei-widget .ensei-travel-card .ensei-rich-body h2{
  
  
  
  margin: 0 0 .375rem;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--ensei-title-lines);
  overflow: hidden;
  overflow-wrap: anywhere;
}
/* 日付は1行、会場名は2行で揃えます。式は上と同じ考え方です。 */
#ensei-widget .ensei-travel-card .ensei-rich-date{
  line-height: 1.5;
  min-height: calc(1.5em * 1);
}
/* 会場名は既定を1行ぶんにし、折り返すカードがある一覧だけ2行ぶんに広げます。
   切り替えは JS（syncVenueLines）が一覧全体に対して行うので、
   カードごとに高さが変わることはありません。 */
#ensei-widget .ensei-travel-card .ensei-rich-venue{
  line-height: 1.5;
  min-height: calc(1.5em * 1);
}
#ensei-widget .ensei-venue-2lines .ensei-travel-card .ensei-rich-venue{
  min-height: calc(1.5em * 2);
}
#ensei-widget .ensei-travel-card .ensei-rich-venue span:last-child{
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
/* 会場の見出し行（「遠征先を選ぶ／全N会場」「開催地」）も1行で揃えます。 */
#ensei-widget .ensei-travel-card .ensei-rich-body .ensei-head{
  line-height: 1.5;
  
}
#ensei-widget .ensei-venue-tab.ensei-on small{color:rgba(255,255,255,.95)}
/* 会場が1つのときは選ぶ対象がないので、ボタンの体裁（枠線・背景）を外して
   ただの情報表示にします。下の日付・会場名と左端が揃うよう、左右のpaddingも0に。 */
#ensei-widget .ensei-venue-tab:only-child{
  background: transparent;
  border-color: transparent;
  box-shadow: none;
  color: var(--ink);
  
  padding-left: 0;
  padding-right: 0;
}
#ensei-widget .ensei-venue-tab:only-child b{color:var(--ink)}
#ensei-widget .ensei-venue-tab:only-child small{color:var(--ink-2)}
#ensei-widget .ensei-venue-tab:only-child:hover{background:transparent;border-color:transparent}

/* ---------- 左右ボタン ---------- */
/* 位置は一覧の両サイド。スクロールできないときと、端に着いたときは消えます。 */
#ensei-widget .ensei-nav{position:absolute;inset:0;z-index:20;pointer-events:none}
#ensei-widget .ensei-nav[hidden]{display:none}
#ensei-widget .ensei-nav-btn{
  position:absolute;
  top:calc(50% - .5rem);
  transform:translateY(-50%);
  display:inline-flex;align-items:center;justify-content:center;
  width:3rem;height:3rem;padding:0 0 .1875rem;
  border:.0625rem solid rgb(255 255 255 / 72%);
  border-radius:62.4375rem;
  background:rgb(0 116 190 / 87%);
  box-shadow:0 .1875rem .625rem rgba(0,0,0,.12);
  color:#fff;
  font-family:Arial,Helvetica,sans-serif;font-size:2.625rem;font-weight:600;line-height:1;
  cursor:pointer;pointer-events:auto;touch-action:manipulation;
}
#ensei-widget .ensei-nav-btn:hover{background:rgb(0 116 190 / 94%)}
#ensei-widget .ensei-nav-btn[hidden]{display:none}
#ensei-widget .ensei-nav-btn[data-nav="prev"]{left:var(--ensei-nav-offset)}
#ensei-widget .ensei-nav-btn[data-nav="next"]{right:var(--ensei-nav-offset)}

/* ---------- SP ---------- */
@media (max-width: 47.5rem){
  #ensei-widget{
    --ensei-card-w: calc((100% - var(--ensei-gap)) / 1.2);  /* 1画面に約1.2枚。数字を大きくすると枚数が増えます（20260916b: 1.7→1.2） */
    --ensei-gap: .875rem;
    --ensei-block-pt: 2.5rem;      /* 40px */
    --ensei-block-pb: 1.75rem;     /* 28px */
    --ensei-heading-gap: .875rem;  /* 14px */
  }
  #ensei-widget .ensei-title{font-size:1.25rem}
  #ensei-widget .ensei-slider{cursor:auto;-webkit-overflow-scrolling:touch}
  #ensei-widget .ensei-nav{display:none}   /* スワイプで動かせるためボタンは出しません */
  #ensei-widget .ensei-rich-body h2{font-size:.875rem}
  #ensei-widget .ensei-link-row{min-height:2.25rem;padding:.4375rem .5rem;font-size:.6875rem}
}

/* 旧ブレークポイントの枚数指定を無効化（カード幅は上の変数で決めます） */
@media (max-width:1199px){#ensei-widget .ensei-slider{grid-auto-columns:var(--ensei-card-w)}}
@media (max-width:860px){#ensei-widget .ensei-slider{grid-auto-columns:var(--ensei-card-w)}}
@media (max-width:600px){#ensei-widget .ensei-slider{grid-auto-columns:var(--ensei-card-w)}}

/* =========================================================
   カードの見た目：案D3
   設置先の hotel recommendation widget に質感を揃えつつ、
   画像を主役にし、導線は「押せること」が分かる形にした案です。
   ・枠線をやめて影だけ（既存ウィジェットと同じ）
   ・画像は 4:3・cover でカード幅いっぱい
   ・公演名 17px、導線のラベル 14px
   ========================================================= */
#ensei-widget .ensei-travel-card{
  border: 0;
  border-radius: .75rem;
  box-shadow: 0 .125rem .25rem rgba(0,0,0,.25);
  overflow: hidden;
}
#ensei-widget .ensei-travel-card:hover{box-shadow:0 .1875rem .375rem rgba(0,0,0,.28)}

/* ---------- 画像：全体を見せる＋余白は同じ画像のぼかしで埋める ----------
   公演ビジュアルは端に文字が入ることが多く、切ることができません。
   そのため object-fit は contain（＝画像全体が必ず見える）にしています。
   縦長・正方形の画像では左右に余白ができますが、そこはグレーではなく
   同じ画像を cover で敷いてぼかしたものを背景にします。

   ぼかしは ::before で描き、その上に本体の画像を重ねています。
   inset を負の値にして少し外へ広げているのは、ぼかしの縁が
   四角く見えるのを防ぐためです。 */
#ensei-widget .ensei-poster{
  position: relative;
  background-image: none;       /* 背景は ::before 側で描きます */
  background-color: #10203a;    /* 画像が読めなかったときの下地 */
  isolation: isolate;
}
#ensei-widget .ensei-poster::before{
  content: "";
  position: absolute;
  inset: -8%;
  background-image: var(--poster-img);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  filter: blur(1.25rem) brightness(.82) saturate(1.05);
  transform: scale(1.06);
  z-index: 0;
  pointer-events: none;
}
/* 余白部分とのつながりを自然にするため、画像本体にごく薄い影を付けます。 */
#ensei-widget .ensei-poster img{
  position: relative;
  z-index: 1;
  object-fit: contain;
  filter: drop-shadow(0 0 .375rem rgba(0,0,0,.28));
}

/* 本文。画像を相対的に大きく見せるため詰めています。 */
#ensei-widget .ensei-rich-body{padding:.375rem .75rem .125rem}
#ensei-widget .ensei-travel-card .ensei-rich-body h2{
  
  line-height: 1.35;
  min-height: calc(1.35em * var(--ensei-title-lines));
  margin-bottom: .25rem;
}

/* 導線。白面＋細い枠＋わずかな影で、押せることを示します。 */
#ensei-widget .ensei-card-footer{padding:.5rem .75rem .75rem}
#ensei-widget .ensei-link-grid{gap:.375rem}
#ensei-widget .ensei-link-cell{
  border: 1px solid #dbe6f2;
  background: #fff;
  border-radius: .5rem;
  padding: .5rem .1875rem;
  box-shadow: 0 .0625rem .125rem rgba(16,42,72,.08);
}
#ensei-widget .ensei-link-cell b{line-height:1.25;color:#0074be}
#ensei-widget .ensei-link-cell small{line-height:1.3}
#ensei-widget .ensei-link-cell:hover{
  background:#f3f8fc;
  border-color:#0074be;
  box-shadow:0 .125rem .25rem rgba(16,42,72,.14);
}

/* =========================================================
   文字サイズ（全体に +2px）
   275px幅のカードでは小さく見えたため、カード内の文字を
   おおむね2pxずつ引き上げています。行数を固定している要素は
   line-height と min-height を同じ式で持つので、崩れません。
   ========================================================= */
#ensei-widget .ensei-travel-card .ensei-rich-body h2{font-size:1.1875rem}             /* 11.5 → 13.5px */
#ensei-widget .ensei-link-cell .ensei-icon{width:1.5rem;height:1.5rem;flex-basis:1.5rem}
#ensei-widget .ensei-subtitle{font-size:.9375rem}                 /* 13 → 15px */

@media (max-width: 47.5rem){
  /* SPはカードが細いので、上げ幅を抑えます */
  #ensei-widget .ensei-travel-card .ensei-rich-body h2{font-size:1rem}
  #ensei-widget .ensei-travel-card .ensei-rich-date,
  #ensei-widget .ensei-travel-card .ensei-rich-venue{font-size:.8125rem}
  #ensei-widget .ensei-link-cell b{font-size:.875rem}
  #ensei-widget .ensei-link-cell small{font-size:.75rem}
  #ensei-widget .ensei-link-cell .ensei-icon{width:1.25rem;height:1.25rem;flex-basis:1.25rem}
}

/* =========================================================
   SPの導線
   カードが細いため、3つのボタンに補足テキストまで入れると
   1文字ずつ折り返して崩れます。SPではアイコンと主ラベルだけにします。
   ========================================================= */
@media (max-width: 47.5rem){
  #ensei-widget .ensei-link-grid{gap:.3125rem}
  #ensei-widget .ensei-link-cell{padding:.4375rem .125rem}
  #ensei-widget .ensei-link-cell b{font-size:.8125rem;white-space:nowrap;letter-spacing:-.02em}
  #ensei-widget .ensei-link-cell small{display:none}   /* 「東京で探す」等の補足はSPでは省略 */
  #ensei-widget .ensei-link-cell .ensei-icon{width:1.25rem;height:1.25rem;flex-basis:1.25rem}
  #ensei-widget .ensei-venue-tab b{font-size:.8125rem}
  #ensei-widget .ensei-venue-tab small{font-size:.6875rem}
}

/* =========================================================
   仕上げの調整
   ・会場タブの幅を統一（会場名は1行で省略。全文は下の「会場名」に出ます）
   ・カード下部の文字をもう一段大きく
   ・公演名を太字に
   ========================================================= */

/* --- 会場タブ：全部同じ幅・1行で省略 --- */
#ensei-widget{--ensei-venue-tab-w:9rem}   /* タブ1つの幅（144px） */
#ensei-widget .ensei-venue-tab{
  width: var(--ensei-venue-tab-w);
  flex: 0 0 var(--ensei-venue-tab-w);
  min-width: var(--ensei-venue-tab-w);
  text-align: left;
}
#ensei-widget .ensei-venue-tab b,
#ensei-widget .ensei-venue-tab small{
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
/* 会場が1つのときは枠が無いぶん、幅を固定する必要がありません。 */
#ensei-widget .ensei-venue-tab:only-child{width:auto;flex:0 0 auto;min-width:0}

/* --- カード下部の文字をもう一段大きく --- */
#ensei-widget .ensei-travel-card .ensei-rich-body .ensei-head{font-size:.9375rem}  /* 14 → 15px */
#ensei-widget .ensei-venue-tab b{font-size:.9375rem}                   /* 14 → 15px */
#ensei-widget .ensei-venue-tab small{font-size:.8125rem}
#ensei-widget .ensei-travel-card .ensei-rich-date,
#ensei-widget .ensei-travel-card .ensei-rich-venue{font-size:.9375rem}       /* 14 → 15px */
#ensei-widget .ensei-link-cell b{font-size:1.0625rem}                  /* 16 → 17px */
#ensei-widget .ensei-link-cell small{font-size:.75rem}                /* 13.5 → 14px */

/* --- 公演名を太字に ---
   冒頭の遮断ブロックで font-weight:inherit にしているため、
   ここで明示的に指定します。 */
#ensei-widget .ensei-travel-card .ensei-rich-body h2{font-weight:700}

@media (max-width: 47.5rem){
  #ensei-widget{--ensei-venue-tab-w:8rem}
  #ensei-widget .ensei-travel-card .ensei-rich-body .ensei-head{font-size:.875rem}
  #ensei-widget .ensei-venue-tab b{font-size:.875rem}
  #ensei-widget .ensei-venue-tab small{font-size:.75rem}
  #ensei-widget .ensei-travel-card .ensei-rich-date,
  #ensei-widget .ensei-travel-card .ensei-rich-venue{font-size:.875rem}
  #ensei-widget .ensei-link-cell b{font-size:.875rem}
}

/* =========================================================
   両端のカードが切れて見える問題への対処

   .ensei-slider は overflow-x:auto の横スクロール領域です。
   上下には余白があるのに左右が0だったため、カードの影が
   スクロール領域の縁で切り落とされ、いちばん左のカードは左が、
   いちばん右のカードは右が「断面」のように見えていました。

   左右に余白を入れて影の逃げ場を作り、同じ幅だけ外へマイナスマージンを
   かけることで、カードの左端は見出しと揃ったままにします。
   scroll-padding-inline は、スナップ位置がこの余白を考慮するための指定です。
   ========================================================= */
#ensei-widget{--ensei-edge:.875rem}   /* 影の逃げ場（14px） */
#ensei-widget .ensei-slider{
  padding-left: var(--ensei-edge);
  padding-right: var(--ensei-edge);
  margin-left: calc(var(--ensei-edge) * -1);
  margin-right: calc(var(--ensei-edge) * -1);
  scroll-padding-left: var(--ensei-edge);
  scroll-padding-right: var(--ensei-edge);
}
/* .ensei-viewport 側は触りません。左右ボタンの位置基準を保つためです。
   スクロール領域が左右へ14pxはみ出しますが、中身は透明なので見た目には出ません。
   設置先のコンテナに左右の余白があれば、ページの横スクロールも発生しません
   （実測：ページの scrollWidth は変更前後で同じ）。
   もし横スクロールが出る場合は --ensei-edge を 0 にしてください。 */

/* =========================================================
   会場タブの左右ボタン と マウスカーソル
   ========================================================= */

/* --- 会場タブの左右ボタン（「全N会場」の右隣） --- */
#ensei-widget .ensei-head-right{display:inline-flex;align-items:center;gap:.375rem;flex:0 0 auto}
#ensei-widget .ensei-tabnav{display:inline-flex;align-items:center;gap:.125rem}
#ensei-widget .ensei-tabnav[hidden]{display:none}
#ensei-widget .ensei-tabnav-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:1.5rem;height:1.5rem;padding:0 0 .125rem;
  border:1px solid #dbe6f2;border-radius:999px;background:#fff;
  color:#0074be;font-family:Arial,Helvetica,sans-serif;font-size:1.125rem;line-height:1;
  cursor:pointer;
}
#ensei-widget .ensei-tabnav-btn:hover{background:#f3f8fc;border-color:#0074be}
#ensei-widget .ensei-tabnav-btn[hidden]{display:none}

/* --- マウスカーソル ---
   「掴んで動かせる」のは一覧と会場タブの帯だけです。
   文字の上は通常の矢印、リンク・ボタンの上は指の形になるようにして、
   どこが操作できるのか分かるようにします。 */
#ensei-widget .ensei-slider a,
#ensei-widget .ensei-slider button,
#ensei-widget .ensei-slider select{cursor:pointer}
#ensei-widget .ensei-rich-body,
#ensei-widget .ensei-card-body,
#ensei-widget .ensei-card-footer{cursor:default}
#ensei-widget .ensei-venue-tab:only-child{cursor:default}
/* 会場タブの帯は、はみ出しているときだけ掴めるカーソルにします。 */
#ensei-widget .ensei-venue-tabs.ensei-is-scroll{cursor:default}
#ensei-widget .ensei-venue-tabs.ensei-is-scroll.ensei-can-scroll{cursor:grab}
#ensei-widget .ensei-venue-tabs.ensei-is-scroll.ensei-is-dragging{cursor:grabbing}

/* =========================================================
   会場が1つのときの表示
   「開催地」の下に都道府県だけを大きく出します。
   会場名はすぐ下の行（ピンのアイコンの行）に全文が出るため省きます。
   ========================================================= */
#ensei-widget .ensei-venue-tab:only-child{
  /* 中身は複数会場のタブと同じ「都道府県＋会場名」の2行構成のまま、
     枠と背景だけを外して、押せるボタンに見えないようにします。 */
  justify-content: center;
  align-items: flex-start;
}
#ensei-widget .ensei-venue-tab:only-child b{
  font-size: .9375rem;        /* 15px：複数会場のタブと同じ */
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
}
/* 会場が1つのときは会場名を省略しません。
   カード幅いっぱいを使って折り返し、2行まで表示します。
   （実在する最長クラスの会場名でも2行に収まります）
   行の高さは複数会場のカードと揃えたいので、上下のpaddingを詰めて
   「都道府県1行＋会場名2行」が既定の55pxに収まるようにしています。 */
#ensei-widget .ensei-venue-tab:only-child{
  padding-top: 0;
  padding-bottom: 0;
}
#ensei-widget .ensei-venue-tab:only-child small{
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  font-size: .78125rem;       /* 12.5px */
  color: var(--ink-2);
  line-height: 1.3;
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
}

/* 会場が1つのカードだけ会場欄が1行ぶん低くなるため、
   複数会場のカードと行位置が揃うよう高さを合わせます。 */

@media (max-width: 47.5rem){
  #ensei-widget .ensei-venue-tab:only-child b{font-size:.875rem}
  #ensei-widget .ensei-venue-tab:only-child small{font-size:.6875rem}
}

/* =========================================================
   会場欄の高さを固定して、行位置をカード間で揃える
   会場が1つのカードは中身が1行のため、そのままだと会場欄が
   44px（複数会場は57px）となり、日付以下が13px上にずれていました。
   タブの最低高さを共通の値にして揃えます。
   ========================================================= */
#ensei-widget{--ensei-venue-tab-h:3.4375rem}   /* 55px：2行ぶん */
#ensei-widget .ensei-venue-tab{
  min-height: var(--ensei-venue-tab-h);
  box-sizing: border-box;
}

/* =========================================================
   スライドの動きを滑らかにする
   ドラッグ中もスクロールスナップが効いていたため、指やマウスの
   動きに対して吸着が逆らい、引っかかるような感触になっていました。
   ドラッグしている間だけスナップを切り、離したときに効かせます。
   ========================================================= */
#ensei-widget .ensei-slider.ensei-is-dragging,
#ensei-widget .ensei-venue-tabs.ensei-is-dragging{
  scroll-snap-type: none;
  scroll-behavior: auto;
}
/* 掴んでいる間は中の文字が選択されないようにします（引っかかりの原因） */
#ensei-widget .ensei-slider.ensei-is-dragging,
#ensei-widget .ensei-slider.ensei-is-dragging *,
#ensei-widget .ensei-venue-tabs.ensei-is-dragging,
#ensei-widget .ensei-venue-tabs.ensei-is-dragging *{
  user-select: none;
  -webkit-user-select: none;
}
@media (max-width: 47.5rem){
  #ensei-widget{--ensei-venue-tab-h:3.25rem}
}

/* 会場の見出し行は、左右ボタン（24px）の有無で高さが2px変わります。
   ボタンがある側に合わせて固定し、上下中央に揃えます。 */
#ensei-widget .ensei-travel-card .ensei-rich-body .ensei-head{
  min-height: 1.5rem;
  align-items: center;
}

/* =========================================================
   スクロールの吸着（scroll-snap）をタッチ端末だけに限定する

   マウスでドラッグしたあと指を離すと、吸着が働いて近いカードの
   位置まで引き戻されます。少し動かしただけだと元の位置へ戻るため、
   「固い」「動かない」という感触になっていました。
   （実測：120px動かして離すと 0 に戻る）

   指でスワイプする端末では吸着があったほうが気持ちよく止まるので、
   タッチ端末だけに残し、マウス環境では自由スクロールにします。
   ========================================================= */
#ensei-widget .ensei-slider,
#ensei-widget .ensei-venue-tabs.ensei-is-scroll{
  scroll-snap-type: none;
}
#ensei-widget .ensei-slider .ensei-travel-card,
#ensei-widget .ensei-venue-tabs.ensei-is-scroll .ensei-venue-tab{
  scroll-snap-align: none;
}
@media (hover: none) and (pointer: coarse){
  #ensei-widget .ensei-slider,
  #ensei-widget .ensei-venue-tabs.ensei-is-scroll{
    scroll-snap-type: x proximity;
  }
  #ensei-widget .ensei-slider .ensei-travel-card,
  #ensei-widget .ensei-venue-tabs.ensei-is-scroll .ensei-venue-tab{
    scroll-snap-align: start;
  }
  /* ドラッグ中だけは吸着を切ります（指の動きに逆らわないため） */
  #ensei-widget .ensei-slider.ensei-is-dragging,
  #ensei-widget .ensei-venue-tabs.ensei-is-dragging{scroll-snap-type: none}
}

/* =========================================================
   導線の文字を必ず1行に収める

   補足文は「東京へ」「神奈川で探す」のように長さが変わるため、
   カードの幅が狭くなると長いものだけ2行になり、そのカードだけ
   導線の高さが増えて行位置がずれていました。
   （実測：1280pxでセル高さが 86px と 105px に分かれ、
     導線の位置が 5142 と 5124 でずれていました）

   主ラベルも補足文も1行に固定し、収まらない場合は末尾を省略します。
   全文はマウスを乗せると出ます。
   ========================================================= */
#ensei-widget .ensei-link-cell{min-width:0}
#ensei-widget .ensei-link-cell b,
#ensei-widget .ensei-link-cell small{
  display:block;
  max-width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
/* カードが狭くなる幅では、省略が増えすぎないよう少しだけ文字を詰めます。 */
@media (max-width: 74.9375rem) and (min-width: 47.5625rem){
  #ensei-widget .ensei-link-grid{gap:.3125rem}
  #ensei-widget .ensei-link-cell{padding:.4375rem .125rem}
  #ensei-widget .ensei-link-cell b{font-size:.875rem;letter-spacing:-.02em}
  /* この幅ではセルが約62pxしかなく、「北海道で探す」のような6文字が
     どうしても収まらないため、SPと同じく補足文を出しません。 */
  #ensei-widget .ensei-link-cell small{display:none}
  #ensei-widget .ensei-link-cell .ensei-icon{width:1.1875rem;height:1.1875rem;flex-basis:1.1875rem}
}

/* SPでは補足文を出さない方針なので、上の display:block を打ち消します。
   （カードが細く、アイコンと主ラベルだけで1行に収めるため） */
@media (max-width: 47.5rem){
  #ensei-widget .ensei-link-cell small{display:none}
}

/* SPは1セルが約51〜64pxしかないため、「チケット」の4文字が入りきらず
   「チケ…」と省略されていました。主ラベルは必ず読めるようにします。 */
@media (max-width: 47.5rem){
  #ensei-widget .ensei-link-grid{gap:.25rem}
  #ensei-widget .ensei-link-cell{padding:.4375rem .0625rem}
  #ensei-widget .ensei-link-cell b{font-size:.75rem;letter-spacing:-.05em}
}

/* =========================================================
   導線アイコンの画像化と、3段の大きさの整理（20260916）

   これまでは アイコン24px ＜ 主ラベル17px と、真ん中の文字がいちばん
   目立っていました。視線が「何の導線か（アイコン）→ 何ができるか（主ラベル）
   → 補足」の順に降りるよう、次の並びにそろえます。

   | 画面幅      | アイコン | 主ラベル | 補足文 |
   | 1200px以上  | 32px     | 15px     | 12px   |
   | 761〜1199px | 26px     | 13px     | 非表示 |
   | 760px以下   | 24px     | 12px     | 非表示 |

   補足文の12pxは据え置きです。1200px以上でも1セルは約72pxしかなく、
   「北海道で探す」の6文字が1行に収まる上限が12pxのためです（20260915fの検証）。
   主ラベルを下げて補足文に寄せる形にしました。
   ※アイコンが大きくなるぶん、カード全体の高さが5〜7px増えます
     （実測：1440pxで586→593px、1024pxで480→487px、390pxで447→452px）。
   ========================================================= */
#ensei-widget .ensei-icon img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}

#ensei-widget .ensei-link-cell .ensei-icon{
  width:3rem;height:2rem;flex-basis:2rem;   /* 32px */
  margin-bottom:.125rem;
}
#ensei-widget .ensei-link-cell b{font-size:.9375rem}    /* 17 → 15px */
#ensei-widget .ensei-link-cell small{font-size:.75rem}  /* 12px 据え置き */

@media (max-width: 74.9375rem) and (min-width: 47.5625rem){
  #ensei-widget .ensei-link-cell .ensei-icon{
    width:1.625rem;height:1.625rem;flex-basis:1.625rem;  /* 26px */
  }
  #ensei-widget .ensei-link-cell b{font-size:.8125rem}
}

@media (max-width: 47.5rem){
  #ensei-widget .ensei-link-cell .ensei-icon{
    width:1.5rem;height:1.5rem;flex-basis:1.5rem;        /* 24px */
  }
  #ensei-widget .ensei-link-cell b{font-size:.75rem}
}
