/* =========================================================================
   徳島食育祭2026 大会用トップ（page-top2026.php）専用　2026-09-24
   -------------------------------------------------------------------------
   支給＝食育HP0916.pdf 1ページ目。数値は _ref/top2026_spec.md の「1440px換算」。
   PC（820px以上）はカンプの座標をそのまま写す＝本文の列は 790px・左端はページ中央から -398px。
   寸法は calc(カンプの数値 * var(--u)) で書く。--u＝カンプの1px（1099px以下は1px、1100px以上は0.75px＝カンプの75%）。
   スマホ用の @media の中は px のまま（--u は1px）。数値を足すときも同じ書き方にすること。
   スマホ（819px以下）は 作業票 2026-09-17「スマホ版の区分け」に従い並べ替える。
   このファイルは top2026 ページでしか読み込まない（functions.php）。
   ========================================================================= */

.t26 {
  --u: 1px; /* 寸法の単位＝カンプの1px。PC（1100px以上）では .75px（下の「PCでは全体をカンプの75%」） */
  /* 支給デザインの実測色（spec §2）。tokens.css に無いものだけここで持つ */
  --t26-hd-bg: #fff9b4;
  --t26-red: #e50012;
  --t26-green: #00a63c;
  --t26-navy: #073a6d;
  --t26-link: #0000ff;
  --t26-rule: #cccccc;
  --t26-spons-line: #c8c9c8;
  --t26-btn: #399cff;
  --t26-nav-top: #eb6f42;
  --t26-nav-program: #f4a300;
  --t26-nav-event: #375fab;
  --t26-nav-booth: #ea6c8d;
  --t26-nav-access: #009f40;
  --t26-col: calc(790 * var(--u));
  --t26-serif: "Noto Serif JP", "Hiragino Mincho ProN", serif;

  margin: 0;
  background: #fff;
  color: #000;
  font-family: var(--tsk-font-base);
  font-size: calc(16 * var(--u)); /* ブラウザの初期値16pxを、PCでもカンプの75%にそろえる（2026-10-01） */
  font-feature-settings: "palt";
  line-height: 1.45;
  -webkit-text-size-adjust: 100%;
}
:where(.t26) *, :where(.t26) *::before, :where(.t26) *::after { box-sizing: border-box; }
:where(.t26) img { max-width: 100%; height: auto; vertical-align: top; }
:where(.t26) :is(h1, h2, p, ul, dl, dd, figure) { margin: 0; padding: 0; }
:where(.t26) ul { list-style: none; }
.t26 a:focus-visible, .t26 button:focus-visible { outline: calc(3 * var(--u)) solid var(--tsk-navy); outline-offset: calc(3 * var(--u)); }
.t26-nw { white-space: nowrap; }
.t26-sr { position: absolute; width: calc(1 * var(--u)); height: calc(1 * var(--u)); overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* 本文の列（1種類だけ）。1440px で x=322〜1112 */
.t26-wrap {
  width: var(--t26-col);
  margin-left: calc(50% - calc(398 * var(--u)));
  position: relative;
}

/* ===== ヘッダー ===== */
.t26-hd { background: var(--t26-hd-bg); height: calc(89.6 * var(--u)); position: relative; z-index: 10; }
.t26-hd__in { width: calc(1055.1 * var(--u)); margin: 0 auto; height: 100%; display: flex; align-items: flex-start; justify-content: space-between; }
.t26-hd__logo { display: block; margin-top: calc(calc(74.7 * var(--u)) - calc(62 * var(--u))); width: calc(295 * var(--u)); } /* ロゴの下端＝タブの下端（74.7px）。カンプは22pxでタブより9px下に出ていた（2026-10-01 阿部指示） */
.t26-hd__logo img { display: block; width: 100%; }
.t26-hd__btn { display: none; }
.t26-nav__list { display: flex; }
.t26-nav__item :is(a, .t26-nav__soon) {
  display: block; width: calc(144.7 * var(--u)); height: calc(74.7 * var(--u)); padding-top: calc(35.7 * var(--u));
  border-radius: 0 0 calc(10 * var(--u)) calc(10 * var(--u));
  color: #fff; text-decoration: none; text-align: center;
  font-size: calc(21.1 * var(--u)); font-weight: 700; line-height: calc(30.6 * var(--u)); letter-spacing: 0;
 
  transition: filter var(--tsk-transition-fast);
}
.t26-nav__item a:hover { filter: brightness(1.08); }
.t26-nav__item--top a { background: var(--t26-nav-top); }
.t26-nav__item--program a { background: var(--t26-nav-program); }
.t26-nav__item--event a { background: var(--t26-nav-event); }
.t26-nav__item--booth :is(a, .t26-nav__soon) { background: var(--t26-nav-booth); }
.t26-nav__item--access a { background: var(--t26-nav-access); }
/* ページ未着の項目（出展ブース）：押せない。2行目に「公開準備中」 2026-10-01 */
.t26-nav__item .t26-nav__soon { padding-top: calc(21 * var(--u)); cursor: default; }
.t26-nav__soon small { display: block; font-size: calc(15 * var(--u)); line-height: calc(20 * var(--u)); font-weight: 700; }

/* ===== キービジュアル ===== */
.t26-kv { --kv-w: calc(789.4 * var(--u)); --kv-gap: calc(34.1 * var(--u)); position: relative; overflow: hidden; }
.t26-kv__viewport { position: relative; }
.t26-kv__track { display: flex; justify-content: center; column-gap: var(--kv-gap); }
.t26-js .t26-kv__track.is-ready { justify-content: flex-start; transition: transform .4s cubic-bezier(.2,.8,.3,1); will-change: transform; } /* 2026-10-01 .6s→.4s（待ち時間2秒に合わせて） */
/* スワイプは横だけスライダーが受け取り、縦はページのスクロールに任せる。長押しで画像が持ち上がらないように（2026-10-01） */
.t26-js .t26-kv__viewport { touch-action: pan-y pinch-zoom; } /* 2本指の拡大は止めない */
.t26-js .t26-kv__slide, .t26-js .t26-kv__link, .t26-js .t26-kv__slide img { -webkit-user-drag: none; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; }
.t26-kv.is-dragging .t26-kv__track { cursor: grabbing; }
.t26-kv__slide { flex: none; display: block; width: var(--kv-w); aspect-ratio: 789.4 / 637.6; }
/* 2026-09-30 支給バナーは下端まで文字が入る（パンどろぼうの注意書きなど）ため、PCでも操作部をカードの下に出す */
.t26-kv { padding-bottom: calc(50.4 * var(--u)); }
/* 1枚＝イベントページへのリンク（2026-09-30）。画像はカードいっぱいに */
.t26-kv__link { display: block; width: 100%; height: 100%; } /* 2026-10-01 リンクは1枚ずつの枠（role=group）の中 */
.t26-kv__slide img { display: block; width: 100%; height: 100%; object-fit: cover; }
.t26 .t26-kv__link:focus-visible { outline-offset: calc(-6 * var(--u)); outline-color: #fff; box-shadow: inset 0 0 0 calc(6 * var(--u)) var(--t26-navy); }
/* 操作部：中央カードと同じ幅の帯をカードのすぐ下に置く（カンプはカード下端に重ねる形・丸の中心＝下端から25.2px） */
.t26-kv__ctrl {
  position: absolute; left: 50%; bottom: calc(-50.4 * var(--u)); transform: translateX(-50%);
  width: var(--kv-w); height: calc(50.4 * var(--u)); pointer-events: none;
}
.t26-kv__dots {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  display: flex; gap: calc(16.2 * var(--u)); pointer-events: auto;
}
/* 押せる範囲は24px角（WCAG 2.5.8）。見える丸はカンプどおり15.2px */
.t26-kv__dot {
  position: relative; width: calc(24 * var(--u)); height: calc(24 * var(--u)); padding: 0; border: 0; background: none; cursor: pointer;
}
.t26-kv__dot::before {
  content: ""; position: absolute; left: 50%; top: 50%; width: calc(15.2 * var(--u)); height: calc(15.2 * var(--u)); margin: calc(-7.6 * var(--u)) 0 0 calc(-7.6 * var(--u));
  border-radius: 50%; background: var(--dot, #ccc); transition: transform .3s ease, box-shadow .3s ease;
}
.t26-kv__dot[aria-current="true"]::before { transform: scale(1.3); box-shadow: 0 0 0 calc(2 * var(--u)) #fff; }
.t26-kv__pause {
  position: absolute; right: calc(14 * var(--u)); top: 50%; transform: translateY(-50%); pointer-events: auto;
  width: calc(28 * var(--u)); height: calc(28 * var(--u)); padding: 0; border: 0; border-radius: 50%; cursor: pointer;
  background: rgba(35, 24, 21, .55); color: #fff;
  display: flex; align-items: center; justify-content: center;
}
.t26-kv__pause:hover { background: rgba(35, 24, 21, .8); }
.t26-kv__pauseIcon { display: block; width: calc(9 * var(--u)); height: calc(10 * var(--u)); border-left: calc(3 * var(--u)) solid currentColor; border-right: calc(3 * var(--u)) solid currentColor; }
.t26-kv.is-paused .t26-kv__pauseIcon { width: 0; height: 0; border-style: solid; border-width: calc(6 * var(--u)) 0 calc(6 * var(--u)) calc(10 * var(--u)); border-color: transparent transparent transparent currentColor; margin-left: calc(3 * var(--u)); }
.t26-kv__dot:nth-child(8n+1) { --dot: #ec7042; }
.t26-kv__dot:nth-child(8n+2) { --dot: #f4a400; }
.t26-kv__dot:nth-child(8n+3) { --dot: #3760ab; }
.t26-kv__dot:nth-child(8n+4) { --dot: #ea6d8d; }
.t26-kv__dot:nth-child(8n+5) { --dot: #389ad6; }
.t26-kv__dot:nth-child(8n+6) { --dot: #009f40; }
.t26-kv__dot:nth-child(8n+7) { --dot: #a8549b; }
.t26-kv__dot:nth-child(8n+8) { --dot: #d1a72f; }

/* ===== ロゴ・入場無料 ===== */
.t26-lockup { margin-top: 0; } /* 操作部をカードの下に出したぶん詰める（旧 14.8px） */
.t26-lockup__h img { display: block; width: calc(768 * var(--u)); margin-left: calc(14 * var(--u)); }
.t26-free {
  margin-top: calc(15 * var(--u)); background: var(--t26-red); color: #fff; text-align: center;
  font-size: calc(31.6 * var(--u)); font-weight: 500; line-height: calc(42.2 * var(--u));
}

/* ===== 見出し（アイコン＋文字） ===== */
.t26-h {
  display: flex; align-items: center;
  font-size: calc(42.2 * var(--u)); font-weight: 700; line-height: 1.45; letter-spacing: .03em;
 
}
.t26-h__slot { flex: none; width: 1.848em; display: flex; align-items: center; position: relative; top: .06em; }
.t26-h__icon { display: block; height: auto; }
.t26-h__icon--calendar { width: 1.137em; margin-left: .308em; }
.t26-h__icon--envelope { width: 1.209em; margin-left: .284em; }
.t26-h__icon--sun      { width: 1.232em; margin-left: .261em; }
.t26-h__icon--pencil   { width: 1.256em; margin-left: .261em; }
.t26-h__icon--pin      { width: .948em;  margin-left: .403em; }

/* ===== とき・ところ ===== */
.t26-when { margin-top: calc(46.8 * var(--u)); }
.t26-when__date { margin-top: calc(33.8 * var(--u)); font-size: calc(42.2 * var(--u)); font-weight: 700; line-height: 1.45; font-feature-settings: normal; letter-spacing: .015em; }
.t26-venue { margin-top: calc(21.8 * var(--u)); }
.t26-venue__row { display: flex; align-items: center; }
.t26-venue__row + .t26-venue__row { margin-top: calc(14.2 * var(--u)); }
.t26-pill {
  flex: none; width: calc(133 * var(--u)); height: calc(34 * var(--u)); border-radius: calc(17 * var(--u));
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: calc(20.1 * var(--u)); font-weight: 700; line-height: 1;
}
.t26-pill--main { background: var(--t26-red); }
.t26-pill--gourmet { background: var(--t26-green); }
.t26-venue__name { margin-left: calc(23 * var(--u)); font-size: calc(31.6 * var(--u)); font-weight: 700; line-height: 1.45; letter-spacing: .02em; }

/* ===== おしらせ ===== */
.t26-news { margin-top: calc(96.2 * var(--u)); }
.t26-news__list { margin-top: calc(47.8 * var(--u)); }
.t26-news__item {
  /* 支給は16.9px。1行45文字以内（check-layout NG3）に収めるため 17.6px＋字間 -0.02em で同じ行長に寄せる */
  font-size: calc(17.6 * var(--u)); letter-spacing: -.02em; line-height: calc(24.5 * var(--u)); padding-bottom: calc(11.5 * var(--u));
  border-bottom: calc(1.05 * var(--u)) solid var(--t26-rule);
}
.t26-news__item + .t26-news__item { padding-top: calc(18 * var(--u)); }
/* 2026-09-30 投稿（おしらせ）に接続：日付＋件名を1つのリンクに。日付は一覧・1件のページと共通の .t26-date */
.t26-date { flex: none; color: var(--t26-navy); font-weight: 700; font-feature-settings: normal; letter-spacing: 0; }
.t26-news__link { display: flex; gap: 1.4em; color: inherit; text-decoration: none; }
.t26-news__title { flex: 1; min-width: 0; }
.t26-news__link:hover .t26-news__title { text-decoration: underline; text-underline-offset: .2em; }
.t26-news__more { margin-top: calc(18 * var(--u)); text-align: right; font-size: calc(17.6 * var(--u)); }
.t26-news__more a { color: var(--t26-link); text-decoration: none; }
.t26-news__more a::before { content: "▶"; }
.t26-news__more a:hover { text-decoration: underline; }
.t26-news__empty { margin-top: calc(47.8 * var(--u)); font-size: calc(17.6 * var(--u)); }

/* ===== 徳島食育祭ってなに？ ===== */
.t26-about { margin-top: calc(94 * var(--u)); display: flex; flex-wrap: wrap; }
.t26-about > .t26-h { flex: 0 0 100%; }
.t26-about__lead { flex: 0 0 calc(560 * var(--u)); }
.t26-about__lead { margin-top: calc(20.9 * var(--u)); font-size: calc(16.9 * var(--u)); line-height: calc(26.3 * var(--u)); font-feature-settings: normal; }
.t26-about__chara { position: absolute; left: calc(567 * var(--u)); top: calc(-50 * var(--u)); width: calc(206 * var(--u)); }
.t26-tagline {
  flex: 0 0 100%; margin-top: calc(27.7 * var(--u)); height: calc(70 * var(--u)); border: calc(1.3 * var(--u)) solid var(--t26-navy); border-radius: calc(10 * var(--u));
  display: flex; align-items: center; padding-left: calc(51.7 * var(--u));
  font-weight: 700; line-height: 1.45;
}
.t26-tagline__main { display: flex; align-items: center; color: var(--t26-navy); font-size: calc(29.3 * var(--u)); }
.t26-tagline__icon { width: calc(65 * var(--u)); margin-left: calc(5 * var(--u)); }
.t26-tagline__sub { margin-left: calc(22 * var(--u)); color: #221714; font-size: calc(22.9 * var(--u)); font-feature-settings: normal; letter-spacing: .025em; }

/* ===== エコバッグ ===== */
.t26-eco { margin-top: calc(112 * var(--u)); }
.t26-eco__card {
  height: calc(166 * var(--u)); border-radius: calc(10 * var(--u)); background: var(--t26-red); color: #fff;
  padding: calc(8 * var(--u)) 0 0 calc(47 * var(--u));
}
.t26-eco__lead { font-family: var(--t26-serif); font-size: calc(45 * var(--u)); font-weight: 700; line-height: calc(58 * var(--u)); letter-spacing: -.09em; }
.t26-eco__title { font-size: calc(42.2 * var(--u)); font-weight: 700; line-height: calc(50 * var(--u)); margin-top: 0; }
.t26-eco__note { font-size: calc(20.2 * var(--u)); line-height: calc(26 * var(--u)); margin-top: calc(1 * var(--u)); }
.t26-eco__bag { position: absolute; left: calc(512 * var(--u)); top: calc(-103 * var(--u)); width: calc(229 * var(--u)); }

/* ===== 食育8カテゴリー ===== */
.t26-cats { margin-top: calc(103 * var(--u)); }
.t26-cats__lead { margin-top: calc(31.3 * var(--u)); font-size: calc(17.6 * var(--u)); letter-spacing: -.02em; line-height: calc(26 * var(--u)); }
.t26-cats__list {
  margin: calc(48.5 * var(--u)) 0 0;
  display: grid; grid-template-columns: repeat(4, calc(184 * var(--u))); column-gap: calc(19 * var(--u)); row-gap: calc(45 * var(--u));
}
.t26-cats__item img { display: block; width: 100%; }

/* ===== アクセス ===== */
.t26-access { margin-top: calc(98 * var(--u)); }
.t26-access .t26-venue { margin-top: calc(41.8 * var(--u)); }
.t26-access .t26-venue__row + .t26-venue__row { margin-top: calc(11.3 * var(--u)); }
.t26-access__addr { margin: 0 0 0 calc(156 * var(--u)); font-size: calc(21 * var(--u)); font-weight: 700; line-height: calc(30.5 * var(--u)); }
.t26-access__addr a { color: var(--t26-link); text-decoration: none; }
.t26-access__addr a:hover { text-decoration: underline; }
.t26-access__ext { width: .95em; height: .95em; margin-left: .3em; vertical-align: -.1em; }
.t26-access__map { margin-top: calc(54.5 * var(--u)); }
.t26-access__map img { display: block; width: calc(772 * var(--u)); margin-left: calc(9 * var(--u)); }
.t26-access__zoom { display: none; }
.t26-access__floors { margin-top: calc(48 * var(--u)); display: flex; align-items: flex-start; gap: calc(34 * var(--u)); }
.t26-access__floors img { display: block; width: calc(378 * var(--u)); }
.t26-access__building { display: block; margin: calc(66 * var(--u)) 0 0 calc(107 * var(--u)); width: calc(679 * var(--u)); }
.t26-access__gmap { margin-top: calc(49 * var(--u)); height: calc(342 * var(--u)); background: #6fd5ff; }
.t26-access__gmap iframe { display: block; width: 100%; height: 100%; border: 0; }

/* ===== 協賛企業 ===== */
.t26-spons { margin-top: calc(64 * var(--u)); }
.t26-spons__grid { margin-top: calc(27.8 * var(--u)); position: relative; }
.t26-spons__list { display: grid; grid-template-columns: repeat(3, calc(247 * var(--u))); column-gap: calc(24.5 * var(--u)); row-gap: calc(20 * var(--u)); }
.t26-spons__item a {
  display: flex; align-items: center; justify-content: center;
  height: calc(81 * var(--u)); border: calc(1 * var(--u)) solid var(--t26-spons-line); background: #fff;
  transition: box-shadow var(--tsk-transition-fast);
}
.t26-spons__item a:hover { box-shadow: 0 calc(3 * var(--u)) calc(10 * var(--u)) rgba(0, 0, 0, .12); }
.t26-spons__item img { width: var(--dw); max-height: 92%; object-fit: contain; }
.t26-spons__note { position: absolute; left: calc(535 * var(--u)); bottom: calc(-2 * var(--u)); font-size: calc(16.3 * var(--u)); line-height: 1.45; color: #231815; }

/* ===== フッター ===== */
.t26-ft { padding: calc(110.4 * var(--u)) 0 calc(41.5 * var(--u)); }
.t26-ft__in { display: flex; }
.t26-ft__body { flex: 1; }
.t26-ft__org { font-size: calc(31.6 * var(--u)); font-weight: 500; line-height: calc(48.5 * var(--u)); letter-spacing: .025em; }
.t26-ft__addr { margin-top: calc(7 * var(--u)); font-size: calc(16.9 * var(--u)); font-weight: 500; line-height: calc(24.5 * var(--u)); letter-spacing: .03em; }
.t26-ft__tel a { color: inherit; text-decoration: none; }   /* 大会当日の問い合わせ先（2026-10-16）。住所と同じ見た目・スマホは押すと電話 */
.t26-ft__btn {
  margin-top: calc(25 * var(--u)); width: calc(557 * var(--u)); height: calc(78 * var(--u)); border-radius: calc(39 * var(--u)); background: var(--t26-btn);
  display: flex; align-items: center; padding-left: calc(88 * var(--u));
  color: #fff; text-decoration: none; font-size: calc(31.6 * var(--u)); font-weight: 500;
  transition: filter var(--tsk-transition-fast);
}
.t26-ft__btn:hover { filter: brightness(1.06); }
.t26-ft__arrow { margin-left: calc(20 * var(--u)); width: calc(37 * var(--u)); height: calc(37 * var(--u)); border-radius: 50%; background: #fff; color: var(--t26-btn); display: flex; align-items: center; justify-content: center; }
.t26-ft__arrow svg { width: calc(24 * var(--u)); height: calc(24 * var(--u)); }
.t26-ft__chara { position: absolute; left: calc(621 * var(--u)); top: calc(-9.4 * var(--u)); width: calc(175 * var(--u)); }
.t26-ft__bottom { margin-top: calc(79 * var(--u)); text-align: center; }
.t26-ft__pref { width: calc(182 * var(--u)); }
.t26-ft__copy { margin-top: calc(22 * var(--u)); font-size: calc(16.9 * var(--u)); font-weight: 500; line-height: calc(24.5 * var(--u)); font-feature-settings: normal; }

/* ===== ページの一番上へ戻るボタン（全ページ・常に表示）2026-09-30 岡本様 msg 1a0f1c48941c8fc8 ===== */
.t26-totop {
  position: fixed; right: calc(24 * var(--u)); bottom: calc(24 * var(--u)); z-index: 20;
  width: calc(64 * var(--u)); height: calc(64 * var(--u)); border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--t26-navy); color: #fff; box-shadow: 0 calc(4 * var(--u)) calc(12 * var(--u)) rgba(0, 0, 0, .2);
  transition: filter var(--tsk-transition-fast), transform var(--tsk-transition-fast);
}
.t26-totop:hover { filter: brightness(1.25); transform: translateY(calc(-2 * var(--u))); }
.t26-totop svg { width: calc(30 * var(--u)); height: calc(30 * var(--u)); }
@media (prefers-reduced-motion: no-preference) {
  html:has(> body.t26) { scroll-behavior: smooth; }
}

/* =========================================================================
   PCでは全体をカンプの75%の大きさで組む（2026-09-30 岡本様 msg 1a0f1c48941c8fc8）
   寸法はカンプ（1440px）の実測の数値のまま calc(数値 * var(--u)) で書き、--u（カンプの1px）を
   1100px以上（ヘッダーがPC型になる幅）で 0.75px にする。
   2026-10-01 まで body の zoom で縮めていたのを、この形に置き換えた（vw・JSの計測・管理バーへの例外処理が不要になる）。
   ========================================================================= */
@media screen and (min-width: 1100px) {
  .t26 { --u: .75px; }
}

/* =========================================================================
   ヘッダーだけ先にスマホ型へ（ロゴ＋5項目が 1100px 未満で並ばないため）
   ========================================================================= */
@media screen and (max-width: 1099px) {
  .t26-hd { height: 64px; }
  .t26-hd__in { width: auto; padding: 0 8px 0 16px; align-items: center; }
  .t26-hd__logo { margin-top: 0; width: 190px; }
  .t26-hd__btn {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
    width: 56px; height: 52px; padding: 0; border: 0; border-radius: 8px; background: transparent;
    color: #231815; font: inherit; font-size: 11px; font-weight: 700; cursor: pointer;
  }
  .t26-hd__bars { display: flex; flex-direction: column; gap: 5px; }
  .t26-hd__bars span { display: block; width: 26px; height: 3px; border-radius: 2px; background: currentColor; transition: transform .2s ease, opacity .2s ease; }
  .t26-hd__btn[aria-expanded="true"] .t26-hd__bars span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
  .t26-hd__btn[aria-expanded="true"] .t26-hd__bars span:nth-child(2) { opacity: 0; }
  .t26-hd__btn[aria-expanded="true"] .t26-hd__bars span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
  .t26-nav { position: absolute; left: 0; right: 0; top: 64px; background: var(--t26-hd-bg); padding: 0 16px 16px; box-shadow: 0 10px 16px rgba(0, 0, 0, .12); }
  .t26-js .t26-nav { display: none; }
  .t26-js .t26-nav.is-open { display: block; }
  .t26-nav__list { flex-direction: column; gap: 8px; }
  .t26-nav__item :is(a, .t26-nav__soon) { width: auto; height: auto; padding: 14px 16px; border-radius: 10px; font-size: 18px; line-height: 1.4; }
  .t26-nav__soon small { display: inline; margin-left: .5em; font-size: 14px; line-height: inherit; }
}

/* =========================================================================
   スマホ（819px以下）
   ========================================================================= */
@media screen and (max-width: 819px) {
  .t26-wrap { width: auto; margin-left: 16px; margin-right: 16px; }

  /* 1枚が幅いっぱい＋左右に32pxずつ隣のカードがのぞく（2026-10-01 阿部指示で16px→32px） */
  .t26-kv { --kv-w: calc(100vw - 88px); --kv-gap: 12px; }
  /* スマホではカード下端の写真クレジットに丸が重なるため、操作部をカードの下に出す */
  .t26-kv { padding-bottom: 32px; }
  .t26-kv__ctrl { bottom: -32px; height: 32px; }
  .t26-kv__dot::before { background: var(--dot, #ccc); }
  .t26-kv__dot[aria-current="true"]::before { box-shadow: 0 0 0 2px #fff, 0 0 0 3px #bbb; }
  .t26-kv__dots { gap: 2px; }
  .t26-kv__dot::before { width: 9px; height: 9px; margin: -4.5px 0 0 -4.5px; }
  .t26-kv__pause { right: 8px; width: 24px; height: 24px; }

  .t26-lockup { margin-top: 4px; }
  .t26-lockup__h img { margin-left: 0; width: 100%; }
  .t26-free { margin-top: 12px; font-size: 20px; line-height: 36px; }

  .t26-sec, .t26-eco { margin-top: 56px; }
  .t26-h { font-size: clamp(22px, 6.6vw, 42.2px); }

  .t26-when__date { margin-top: 16px; font-size: clamp(20px, 6.2vw, 42.2px); line-height: 1.4; font-feature-settings: "palt"; }
  .t26-venue, .t26-access .t26-venue { margin-top: 16px; }
  .t26-venue__row { flex-direction: column; align-items: flex-start; gap: 4px; }
  .t26-venue__row + .t26-venue__row, .t26-access .t26-venue__row + .t26-venue__row { margin-top: 14px; }
  .t26-pill { width: auto; height: 28px; padding: 0 14px; font-size: 14px; }
  .t26-venue__name { margin-left: 0; font-size: clamp(16px, 4.8vw, 31.6px); line-height: 1.4; letter-spacing: 0; }

  .t26-news__list { margin-top: 16px; }
  .t26-news__item { font-size: min(17.6px, max(15px, calc((100vw - 32px) / 44.5))); letter-spacing: -.02em; line-height: 1.7; padding-bottom: 12px; }
  .t26-news__item + .t26-news__item { padding-top: 12px; }
  .t26-news__link { flex-direction: column; gap: 2px; }
  .t26-news__more { margin-top: 12px; font-size: 16px; }
  .t26-news__empty { margin-top: 16px; font-size: 16px; }

  .t26-about__lead { flex-basis: 100%; }
  .t26-about__lead { margin-top: 12px; font-size: max(16px, calc((100vw - 32px) / 44)); line-height: 1.8; }
  .t26-about__chara { position: static; display: block; width: 140px; margin: 16px auto 0; }
  .t26-tagline {
    margin-top: 20px; height: auto; padding: 14px 12px; flex-direction: column; justify-content: center; gap: 4px; text-align: center;
  }
  .t26-tagline__main { font-size: clamp(19px, 5.6vw, 29.3px); }
  .t26-tagline__icon { width: 2.1em; margin-left: .2em; }
  .t26-tagline__sub { margin-left: 0; font-size: clamp(14px, 4.1vw, 22.9px); }

  .t26-eco__card { height: auto; padding: 20px 20px 22px; }
  .t26-eco__lead { font-size: clamp(22px, 6.6vw, 45px); line-height: 1.4; letter-spacing: -.04em; }
  .t26-eco__title { margin-top: 2px; font-size: clamp(21px, 6.2vw, 42.2px); line-height: 1.4; }
  .t26-eco__note { margin-top: 4px; font-size: 14px; line-height: 1.5; }
  .t26-eco__bag { position: static; display: block; width: 150px; margin: 12px auto 0; }

  .t26-cats__lead { margin-top: 12px; font-size: max(16px, calc((100vw - 32px) / 44)); letter-spacing: 0; line-height: 1.8; }
  .t26-cats__list { margin: 24px 0 0; grid-template-columns: repeat(2, 1fr); column-gap: 16px; row-gap: 24px; }
  .t26-cats__item img { max-width: 160px; margin-inline: auto; }

  .t26-access__addr { margin: 10px 0 0; font-size: 15px; line-height: 1.6; }
  .t26-access__map { margin-top: 24px; }
  .t26-access__map img { margin-left: 0; width: 100%; }
  .t26-access__zoom { display: block; margin-top: 8px; text-align: right; font-size: 14px; line-height: 1.6; }
  .t26-access__zoom a { color: var(--t26-link); }
  .t26-access__floors { margin-top: 24px; flex-direction: column; gap: 16px; }
  .t26-access__floors img { width: 100%; }
  .t26-access__building { margin: 24px 0 0; width: 100%; }
  .t26-access__gmap { margin-top: 24px; height: 280px; }

  .t26-spons__grid { margin-top: 16px; }
  .t26-spons__list { grid-template-columns: repeat(2, 1fr); column-gap: 10px; row-gap: 10px; }
  .t26-spons__item a { height: auto; aspect-ratio: 247 / 81; }
  .t26-spons__note { position: static; margin-top: 8px; text-align: right; font-size: 13px; }

  .t26-ft { padding: 64px 0 32px; }
  .t26-ft__in { flex-direction: column; }
  .t26-ft__org { font-size: clamp(15px, 4.6vw, 31.6px); line-height: 1.6; letter-spacing: 0; }
  .t26-ft__addr { margin-top: 8px; font-size: 14px; line-height: 1.7; letter-spacing: 0; }
  .t26-ft__btn { margin-top: 20px; width: 100%; height: 60px; border-radius: 30px; padding-left: 0; justify-content: center; font-size: 18px; }
  .t26-ft__arrow { margin-left: 12px; width: 30px; height: 30px; }
  .t26-ft__arrow svg { width: 20px; height: 20px; }
  .t26-ft__chara { position: static; display: block; width: 110px; margin: 28px auto 0; }
  .t26-ft__bottom { margin-top: 40px; }
  .t26-ft__pref { width: 150px; }
  .t26-ft__copy { margin-top: 12px; font-size: 13px; }
}

@media screen and (max-width: 819px) {
  .t26-totop { right: 12px; bottom: 12px; width: 48px; height: 48px; }
  .t26-totop svg { width: 24px; height: 24px; }
}

/* =========================================================================
   デジタルスタンプラリー（エコバッグの帯の下）2026-10-06 追加
   -------------------------------------------------------------------------
   支給＝支給データ/261006/top出展ブース追加_フォルダー/top出展ブース追加.pdf 1ページ目。
   このPDFは本番の画面写真（1440px・PCの75%表示）の上に重ねて組まれているので、PDFの1pt＝1440pxでの1px。
   カンプの数値（--u の数）＝PDFのpt × 4/3。枠の幅 590pt ≒ 本文の列 790。
   「回って集める！」は手書き風（Yusei Magic）、バッジはポップ体（Mochiy Pop One）。
   page-top2026.php の <head> で使う字だけを読み込む。読めなければ Noto Sans JP の太字で出る。
   ========================================================================= */
.t26-stamp { --t26-stamp-ink: #231815; margin-top: calc(94.78 * var(--u)); } /* エコバッグの帯の下端から「回って集める！」の行の上端まで。PDFの実測は95.1。1100px以上で枠の下の既存の中身がちょうど697pxずれる（端数ずれで画像の描かれ方が変わらない）ように0.24px詰めた */

/* 見出し：「回って集める！」＋「デジタルスタンプラリー」。見出しの白地で枠の上の線を切る */
.t26-stamp__h {
  position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center;
  color: var(--t26-red); font-size: calc(40 * var(--u)); font-weight: 900; line-height: 1.467;
}
.t26-stamp__catch {
  position: relative; display: block;
  font-family: "Yusei Magic", var(--tsk-font-base); font-size: .64em; font-weight: 700; font-synthesis: none;
  line-height: 1.438; letter-spacing: -.1em; color: var(--t26-stamp-ink);
  -webkit-text-stroke: .025em currentColor; /* PDFの書体（AB-tombo bold）に太さを寄せる */
  transform: translateX(-6.73em) rotate(-5deg); /* 見出しの中心から左へ（PDFで -129pt）。PDFは -5°傾け */
}
.t26-stamp__catch::before, .t26-stamp__catch::after {
  content: ""; position: absolute; top: 50%; width: .085em; height: 1.8em; margin-top: -.9em;
  border-radius: .05em; background: currentColor;
}
.t26-stamp__catch::before { left: -1em; transform: rotate(-27.6deg); }
.t26-stamp__catch::after { right: -.35em; transform: rotate(27.6deg); }
.t26-stamp__title { display: block; padding: 0 .907em; background: #fff; letter-spacing: .025em; }

/* 赤い線の枠 */
.t26-stamp__box {
  margin-top: calc(-29.6 * var(--u)); /* 見出しの上下の真ん中に線を通す */
  border: calc(2.67 * var(--u)) solid var(--t26-red); border-radius: calc(12.8 * var(--u)); /* PDFは1.85pt。1440pxで2pxになる値（1.85だと1pxに丸められる） */
  padding: calc(40.4 * var(--u)) calc(25 * var(--u)) calc(18.9 * var(--u)) calc(47.2 * var(--u));
  color: var(--t26-stamp-ink);
}
/* 字幅：PDFの行の長さに寄せる（リード・場所の行は詰めない＝palt なし、ほかは palt＋字間） */
.t26-stamp__lead { font-size: calc(21.79 * var(--u)); line-height: calc(31.07 * var(--u)); font-weight: 500; font-feature-settings: normal; }
.t26-stamp__how { margin-top: calc(19.3 * var(--u)); font-size: calc(16.56 * var(--u)); line-height: calc(22.67 * var(--u)); letter-spacing: .05em; }
.t26-stamp__ph { display: inline-block; } /* 意味の区切り。狭い幅ではここで折り返す */

/* 「参加はコチラ」ボタン（外部サイト・新しいタブ） */
.t26-stamp__cta { margin: calc(36.9 * var(--u)) 0 0 calc(43.2 * var(--u)); font-size: calc(36 * var(--u)); } /* 文字の大きさはボタンと同じに（読み上げ用の補足文の行の長さを、ボタンの字の大きさで測らせる） */
.t26-stamp__btn {
  display: flex; align-items: center; justify-content: center;
  width: calc(602.5 * var(--u)); height: calc(66.7 * var(--u)); border-radius: calc(33.35 * var(--u));
  background: var(--t26-red); color: #fff; text-decoration: none;
  font-size: 1em; font-weight: 700; line-height: 1;
  transition: filter var(--tsk-transition-fast);
}
.t26-stamp__btn:hover { filter: brightness(1.08); }

/* 5スタンプ（黄）・8スタンプ（赤）の2段 */
.t26-stamp__rewards { margin: calc(19.5 * var(--u)) 0 0 calc(43.2 * var(--u)); width: calc(600.4 * var(--u)); }
.t26-stamp__reward {
  position: relative; background: var(--t26-hd-bg);
  padding: calc(7.3 * var(--u)) 0 calc(19.3 * var(--u)) calc(120.9 * var(--u));
}
.t26-stamp__reward--mat {
  margin-top: calc(14.1 * var(--u)); background: var(--t26-red); color: #fff;
  padding: calc(10.5 * var(--u)) 0 calc(5.3 * var(--u)) calc(120.9 * var(--u));
}
/* 丸いバッジ：帯の左端にかぶせる。文字は -5°傾け */
.t26-stamp__badge {
  position: absolute; left: calc(-69.1 * var(--u)); top: calc(-6.2 * var(--u));
  width: calc(150.2 * var(--u)); height: calc(150.2 * var(--u));
  border: calc(6.2 * var(--u)) solid var(--t26-red); border-radius: 50%; background: #fff;
  display: flex; flex-direction: column; align-items: center; justify-content: center; padding-bottom: .1em;
  color: var(--t26-red); text-align: center;
  font-family: "Mochiy Pop One", var(--tsk-font-base); font-size: calc(24 * var(--u)); font-weight: 900; font-synthesis: none; line-height: 1.12; letter-spacing: -.04em; /* PDFの書体は字幅が狭いので、小さめ＋字間を詰めて行の長さを合わせる */
  transform: rotate(-5deg);
}
.t26-stamp__reward--mat .t26-stamp__badge { top: calc(-2.3 * var(--u)); }
.t26-stamp__num { display: block; font-size: 2.4em; line-height: .9; letter-spacing: 0; }
.t26-stamp__get { color: var(--t26-red); font-size: calc(27.6 * var(--u)); font-weight: 900; line-height: calc(40.4 * var(--u)); letter-spacing: .055em; }
.t26-stamp__reward--mat .t26-stamp__get { color: #fff; }
.t26-stamp__place { font-size: calc(16.56 * var(--u)); line-height: calc(22.67 * var(--u)); font-feature-settings: normal; }
.t26-stamp__reward--mat .t26-stamp__place { margin-top: calc(2.8 * var(--u)); }

/* 賞品（白い箱）＋とくしま特選ブランドのマーク */
.t26-stamp__prizes {
  margin-top: calc(14.1 * var(--u)); width: calc(420.3 * var(--u)); background: #fff;
  padding: calc(6.3 * var(--u)) calc(23.5 * var(--u)) calc(4.7 * var(--u)) calc(10.3 * var(--u));
  display: flex; align-items: center;
}
.t26-stamp__prizeList { position: relative; flex: 1; min-width: 0; color: var(--t26-red); font-size: calc(13.8 * var(--u)); line-height: calc(20.7 * var(--u)); letter-spacing: .04em; white-space: nowrap; }
.t26-stamp__prizeList li { display: flex; }
.t26-stamp__rank { flex: none; }
.t26-stamp__prizeList b { font-weight: 700; }
.t26-stamp__prizeList .t26-stamp__more { position: absolute; left: calc(250.8 * var(--u)); bottom: 0; } /* PDFは C賞の行の後ろに全角3字あけて「ほか多数」 */
.t26-stamp__mark { flex: none; width: calc(36.8 * var(--u)); margin-left: calc(4 * var(--u)); }

/* ランチョンマットの写真（2枚を1枚に合成・背景は帯と同じ赤） */
.t26-stamp__mats { display: block; width: calc(370 * var(--u)); margin: calc(8.8 * var(--u)) 0 0 calc(-15.2 * var(--u)); }
.t26-stamp__limit { position: absolute; right: calc(14.8 * var(--u)); bottom: calc(10.9 * var(--u)); font-size: calc(16.56 * var(--u)); line-height: calc(22.67 * var(--u)); letter-spacing: .04em; }
.t26-stamp__note { margin-top: calc(14.3 * var(--u)); font-size: calc(16.56 * var(--u)); line-height: calc(22.67 * var(--u)); letter-spacing: .06em; }
/* PDFでは注記と「●抽選会場」の行が同じ文字の3枚重ね＝太く見せる指定。見た目に合わせて太字にする（2026-10-06 阿部さん確認前の Claude 判断） */
.t26-stamp__note, .t26-stamp__reward--lottery .t26-stamp__place { font-weight: 700; }

/* スマホ（819px以下）：バッジは帯の左上にかぶせ、見出しと場所はその右。賞品・写真は帯の幅いっぱい */
@media screen and (max-width: 819px) {
  .t26-stamp { margin-top: 56px; }
  .t26-stamp__h { font-size: clamp(22px, 6.6vw, 40px); }
  .t26-stamp__catch { font-size: .7em; transform: translateX(-4.1em) rotate(-5deg); }
  .t26-stamp__title { padding: 0 .45em; }
  .t26-stamp__box { margin-top: calc(clamp(22px, 6.6vw, 40px) * -.733); border-width: 2px; border-radius: 10px; padding: 30px 14px 16px; }
  /* 狭い幅では文節で折り返し、行の長さをそろえる（word-break:auto-phrase は Chrome 系だけ。ほかは通常の折り返し） */
  .t26-stamp__lead, .t26-stamp__how, .t26-stamp__place, .t26-stamp__note { word-break: auto-phrase; text-wrap: balance; }
  .t26-stamp__lead { font-size: 16px; line-height: 1.7; font-feature-settings: "palt"; }
  .t26-stamp__how { margin-top: 10px; font-size: 14px; line-height: 1.6; }
  .t26-stamp__cta { margin: 18px 0 0; font-size: clamp(20px, 5.6vw, 26px); }
  .t26-stamp__btn { width: 100%; height: 56px; border-radius: 28px; }

  .t26-stamp__rewards { --b: clamp(64px, 20vw, 88px); margin: 34px 0 0; width: auto; }
  .t26-stamp__reward, .t26-stamp__reward--mat { padding: 12px 12px 14px; }
  .t26-stamp__reward--mat { margin-top: 30px; }
  .t26-stamp__head { position: relative; min-height: calc(var(--b) - 20px); padding-left: calc(var(--b) - 14px); }
  .t26-stamp__badge, .t26-stamp__reward--mat .t26-stamp__badge {
    left: -22px; top: -24px; width: var(--b); height: var(--b); border-width: 3px; font-size: calc(var(--b) * .175);
  }
  .t26-stamp__num { font-size: 2.2em; }
  .t26-stamp__get { font-size: clamp(15px, 4.6vw, 22px); line-height: 1.45; }
  .t26-stamp__place, .t26-stamp__reward--mat .t26-stamp__place { margin-top: 2px; font-size: 13px; line-height: 1.5; }

  .t26-stamp__prizes { position: relative; display: block; width: auto; margin-top: 10px; padding: 8px 8px 8px 10px; }
  .t26-stamp__prizeList { font-size: 12.5px; line-height: 1.6; white-space: normal; }
  /* マークは右下（「ほか多数」の行）に置き、賞品の行にかからないようにする */
  .t26-stamp__prizeList .t26-stamp__more { position: static; align-items: center; min-height: 32px; padding: 2px 40px 0 2.76em; } /* 2.76em＝「A賞…」の幅 */
  .t26-stamp__mark { position: absolute; right: 8px; bottom: 8px; width: 32px; margin: 0; }

  .t26-stamp__mats { width: 100%; max-width: 370px; margin: 10px 0 0; }
  .t26-stamp__limit { position: static; margin-top: 6px; text-align: right; font-size: 13px; line-height: 1.5; }
  .t26-stamp__note { margin-top: 12px; font-size: 13px; line-height: 1.6; }
}

/* =========================================================================
   関連イベント（ページの最下部＝協賛企業の後ろ・フッターの前）2026-10-09 追加
   -------------------------------------------------------------------------
   県の依頼（2026-10-09）。外部サイト3件へのリンク。カンプは無いので既存の部品に合わせる：
   見出し＝協賛企業と同じ .t26-h--plain、節の間隔・見出しの下＝協賛企業と同じ、
   リンク＝アクセスの住所リンク（.t26-access__addr）と同じ大きさ・太さ・色・外部リンクのアイコン、▶は .t26-news__more と同じ疑似要素。
   ========================================================================= */
.t26-rel { margin-top: calc(64 * var(--u)); }
.t26-rel__list { margin-top: calc(28.271 * var(--u)); } /* 協賛企業の見出しの下（27.8）と同じ間隔。1100px以上でフッターがちょうど205pxずれる（端数ずれで文字・画像の描かれ方が変わらない）ように0.35px足した */
.t26-rel__item { padding-left: 1em; text-indent: -1em; font-size: calc(21 * var(--u)); font-weight: 700; line-height: calc(30.5 * var(--u)); } /* 2行に折れたときも2行目の頭が▶の後ろにそろう（▶は全角1字ぶん）。▶はリンクの中＝フォーカスの枠にも入る */
.t26-rel__item + .t26-rel__item { margin-top: calc(14.2 * var(--u)); }
.t26-rel__item a { color: var(--t26-link); text-decoration: none; }
.t26-rel__item a::before { content: "▶"; content: "▶" / ""; } /* 2つ目は読み上げで飾りを読まない書き方（未対応のブラウザは1つ目） */
.t26-rel__item a:hover { text-decoration: underline; }
.t26-rel__ext { width: .95em; height: .95em; margin-left: .3em; vertical-align: -.1em; } /* .t26-access__ext と同じ */

@media screen and (max-width: 819px) {
  .t26-rel { margin-top: 56px; }
  .t26-rel__list { margin-top: 16px; }
  .t26-rel__item { font-size: 15px; line-height: 1.6; }
  .t26-rel__item + .t26-rel__item { margin-top: 10px; }
}
