@charset "UTF-8";

/*!
Theme Name: Cocoon Child
Description: Cocoon専用の子テーマ
Theme URI: https://wp-cocoon.com/
Author: わいひら
Author URI: https://nelog.jp/
Template:   cocoon-master
Version:    1.1.3
*/

/************************************
** 子テーマ用のスタイルを書く
************************************/
/* ============================================================
   たくちゃんねる  共通スタイルシート
   南ヶ丘小学校 昭和61年度卒業生 同窓会
   ------------------------------------------------------------
   ★ 使い方
   各固定ページのカスタムHTMLブロックで、中身全体を
       <div class="tk-top"> ... </div>
   のように囲んでください。クラス名は各セクションの見出し参照。
   ============================================================ */

/* ---- Cocoonの余白リセット ---- */
.content, .main, #main, .entry-content{
  max-width:100% !important; padding:0 !important; margin:0 !important;
}
.entry-content > *{ margin-top:0; margin-bottom:0; }
/* 固定ページの自動タイトルを消す（自前の見出しを使うため） */
.page .entry-title, .page-title, .entry-header .entry-title{ display:none !important; }
/* Cocoonのカラム幅を全幅に */
#content, #container{ padding:0 !important; }

/* ---- 共通カラー・書体 ---- */
:root{
  --paper:#F6EFE0;
  --paper-hi:#FDF9F0;
  --ink:#5A4A3C;
  --ink-soft:#8A7866;
  --sakura:#E29AAB;
  --sakura-deep:#C96F86;
  --sakura-pale:#F8E3E7;
  --navy:#2E4664;
  --navy-deep:#1C2C42;
  --navy-pale:#E3E8EF;
  --green:#5F8A6A;
  --green-pale:#E6EFE7;
  --tape:rgba(216,196,158,.75);
  --mincho:'Shippori Mincho',serif;
  --maru:'Zen Maru Gothic',sans-serif;
  --body:'Zen Kaku Gothic New',sans-serif;
  --note-line:#B9C9DC;
  --petal:#F3D9DE;
  --scan:#F2EADA;
  --accent:#A8724A;
  --black:#0C0B0A;
  --panel:#17150F;
  --panel-hi:#26221A;
  --steel:#33302B;
  --silver:#B9B7B0;
  --silver-dim:#7D7A73;
  --ivory:#EDE6D6;
  --sepia:#B8865B;
  --rec:#D8412F;
  --sunset1:#F0A544;
  --sunset2:#E0632C;
  --lcd:#7BD3C4;
  --disp:'Shippori Mincho',serif;
  --mono:'Share Tech Mono',monospace;
  --accent-deep:#7C4F2E;
  --accent-pale:#EDE0CD;
  --red-pen:#B5563F;
  --line-green:#06C755;
  --tape-font:'Bebas Neue',sans-serif;
}

/* ---- 全ページ共通の下地 ---- */
body{
  background:var(--paper);
  background-image:
    radial-gradient(rgba(140,110,70,.05) 1px,transparent 1.4px),
    radial-gradient(rgba(255,255,255,.4) 1px,transparent 1.6px);
  background-size:9px 9px,23px 23px;
}


/* ==========================================================
   トップページ（たくちゃんねる）
   固定ページを <div class="tk-top"> ～ </div> で囲んでください
   ========================================================== */
.tk-top *{margin:0;padding:0;box-sizing:border-box}
.tk-top{font-family:var(--body);color:var(--ink);background:var(--paper);
  background-image:
    radial-gradient(rgba(140,110,70,.05) 1px,transparent 1.4px),
    radial-gradient(rgba(255,255,255,.4) 1px,transparent 1.6px);
  background-size:9px 9px,23px 23px;
  line-height:1.9;letter-spacing:.04em;font-size:16px;
  -webkit-font-smoothing:antialiased;}
.tk-top img{max-width:100%;display:block}
.tk-top a{color:inherit;text-decoration:none}
.tk-top .wrap{max-width:860px;margin:0 auto;padding:0 18px}
.tk-top section{padding:46px 0}
.tk-top header{text-align:center;padding:64px 18px 26px;position:relative;overflow:hidden}
.tk-top header .kicker{font-family:var(--mincho);font-size:.86rem;letter-spacing:.28em;
  color:var(--ink-soft);margin-bottom:16px;padding-left:.3em;}
.tk-top header h1{font-family:var(--body);font-weight:700;
  font-size:clamp(2.3rem,9.4vw,3.6rem);line-height:1.34;letter-spacing:.08em;}
.tk-top header h1 .em{color:var(--sakura-deep)}
.tk-top header h1 .logo-img{display:block;margin:0 auto;
  max-width:min(420px,84%);height:auto;}
.tk-top header .yurai{margin-top:20px;font-family:var(--maru);font-weight:500;
  color:var(--ink-soft);font-size:.9rem;line-height:1.95;}
.tk-top .petal{position:absolute;width:13px;height:13px;background:var(--sakura-pale);
  border-radius:13px 0;opacity:.9;animation:tk-top-sway 9s ease-in-out infinite;}
.tk-top .petal.a{top:16%;left:9%;transform:rotate(18deg)}
.tk-top .petal.b{top:30%;right:10%;transform:rotate(-32deg);animation-delay:3s}
.tk-top .petal.c{bottom:16%;left:16%;transform:rotate(48deg);animation-delay:5s}
@keyframes tk-top-sway{0%,100%{translate:0 0}50%{translate:7px 12px}}
@media (prefers-reduced-motion:reduce){
  .tk-top .petal{animation:none}
}
.tk-top .hero-note{max-width:30em;margin:0 auto;text-align:center;
  font-family:var(--mincho);font-size:1.02rem;line-height:2.35;
  color:var(--ink);}
.tk-top .hero-note .big{display:block;font-size:1.3rem;font-weight:800;
  margin-top:22px;letter-spacing:.08em;}
.tk-top .wave{display:block;width:100%;height:26px;opacity:.5}
.tk-top .ban-head{text-align:center;margin-bottom:8px}
.tk-top .ban-head .eyebrow{font-family:var(--maru);font-weight:700;font-size:.78rem;
  letter-spacing:.26em;color:var(--sakura-deep);margin-bottom:12px;}
.tk-top .ban-head h2{font-family:var(--mincho);font-weight:800;
  font-size:clamp(1.5rem,5.4vw,2rem);line-height:1.5;}
.tk-top .ban-head p{margin-top:14px;color:var(--ink-soft);font-size:.92rem;line-height:2;
  max-width:32em;margin-left:auto;margin-right:auto;}
.tk-top .programs{display:grid;grid-template-columns:1fr;gap:18px;margin-top:34px}
.tk-top .prog{background:var(--paper-hi);
  border:1px solid rgba(90,74,60,.12);
  border-radius:9px;
  box-shadow:0 4px 16px rgba(90,74,60,.1);
  padding:26px 24px 24px;
  position:relative;
  transition:transform .25s ease,box-shadow .25s ease;}
.tk-top .prog:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(90,74,60,.16)}
.tk-top .prog .no{position:absolute;top:-11px;left:20px;
  background:var(--navy);color:#fff;
  font-family:var(--maru);font-weight:700;font-size:.72rem;
  padding:4px 14px;border-radius:4px;letter-spacing:.14em;
  box-shadow:0 2px 5px rgba(90,74,60,.25);}
.tk-top .prog h3{font-family:var(--mincho);font-weight:800;font-size:1.24rem;
  margin-top:8px;line-height:1.55;}
.tk-top .prog h3 small{display:block;font-family:var(--maru);font-weight:500;
  font-size:.8rem;color:var(--ink-soft);margin-top:6px;letter-spacing:.1em;}
.tk-top .prog .desc{margin-top:13px;font-size:.9rem;color:#6E5A50;line-height:1.95;
  border-top:1px dashed rgba(90,74,60,.22);padding-top:13px;}
.tk-top .prog .status{display:inline-block;margin-top:15px;
  font-family:var(--maru);font-weight:700;font-size:.76rem;
  border-radius:14px;padding:4px 14px;letter-spacing:.06em;}
.tk-top .status.soon{color:var(--ink-soft);background:rgba(90,74,60,.09)}
.tk-top .status.open{color:#fff;background:var(--green)}
.tk-top .status.prep{color:var(--navy);background:var(--navy-pale)}
.tk-top .join{background:var(--green-pale);border-radius:10px;
  padding:34px 24px;text-align:center;}
.tk-top .join h2{font-family:var(--mincho);font-weight:800;font-size:1.32rem;
  margin-bottom:16px;line-height:1.75;}
.tk-top .join p{font-size:.92rem;color:#6E5A50;text-align:left;max-width:33em;margin:0 auto}
.tk-top .join .btn{display:inline-block;margin-top:24px;
  background:var(--navy);color:#fff;
  font-family:var(--mincho);font-weight:800;font-size:1.08rem;
  padding:18px 42px;border-radius:8px;
  box-shadow:0 4px 0 var(--navy-deep);transition:transform .15s;}
.tk-top .join .btn:hover{transform:translateY(-2px)}
.tk-top .join .btn:focus-visible{outline:3px solid var(--green);outline-offset:3px}
.tk-top .join .note{font-size:.79rem;color:var(--ink-soft);margin-top:14px}
.tk-top .notice{background:var(--paper-hi);
  border:1px solid rgba(90,74,60,.12);border-radius:8px;
  box-shadow:0 4px 16px rgba(90,74,60,.09);
  padding:30px 26px;position:relative;}
.tk-top .notice::before{content:"";position:absolute;top:-11px;left:50%;
  width:100px;height:23px;background:var(--tape);
  transform:translateX(-50%) rotate(-1.7deg);
  box-shadow:0 1px 3px rgba(90,74,60,.14);}
.tk-top .notice h2{font-family:var(--mincho);font-weight:800;font-size:1.16rem;
  text-align:center;margin-bottom:20px;}
.tk-top .notice p{font-size:.89rem;color:#6E5A50;line-height:1.95}
.tk-top .notice p + p{margin-top:13px}
.tk-top .notice .sign{margin-top:20px;text-align:right;font-size:.83rem;color:var(--ink-soft);}
.tk-top footer{background:var(--ink);color:var(--paper);
  text-align:center;padding:46px 20px 40px;margin-top:44px;}
.tk-top footer .fh{font-family:var(--mincho);font-size:1.14rem;margin-bottom:10px;line-height:1.8}
.tk-top footer .fs{font-size:.82rem;opacity:.75;margin-bottom:20px}
.tk-top footer small{display:block;margin-top:18px;opacity:.55;font-size:.71rem;letter-spacing:.1em}
@media(min-width:640px){
  .tk-top{font-size:17px}
  .tk-top .programs{grid-template-columns:1fr 1fr}
}


/* ==========================================================
   まわる雑記帳
   固定ページを <div class="tk-zakki"> ～ </div> で囲んでください
   ========================================================== */
.tk-zakki *{margin:0;padding:0;box-sizing:border-box}
.tk-zakki{font-family:var(--body);color:var(--ink);background:var(--paper);
  background-image:
    radial-gradient(rgba(140,110,70,.05) 1px,transparent 1.4px),
    radial-gradient(rgba(255,255,255,.4) 1px,transparent 1.6px);
  background-size:9px 9px,23px 23px;
  line-height:1.9;letter-spacing:.04em;font-size:16px;
  -webkit-font-smoothing:antialiased;}
.tk-zakki img{max-width:100%;display:block}
.tk-zakki a{color:inherit;text-decoration:none}
.tk-zakki button{font-family:inherit;cursor:pointer}
.tk-zakki .wrap{max-width:820px;margin:0 auto;padding:0 18px}
.tk-zakki section{padding:42px 0}
.tk-zakki header{text-align:center;padding:58px 18px 22px}
.tk-zakki header .kicker{font-family:var(--mincho);font-size:.86rem;letter-spacing:.28em;
  color:var(--ink-soft);margin-bottom:14px;padding-left:.3em;}
.tk-zakki header h1{font-family:var(--mincho);font-weight:800;
  font-size:clamp(2rem,7.5vw,2.9rem);line-height:1.35;}
.tk-zakki header h1 .em{color:var(--navy)}
.tk-zakki header .lead{margin-top:18px;color:var(--ink-soft);font-size:.94rem;line-height:2;
  max-width:30em;margin-left:auto;margin-right:auto;}
.tk-zakki .thanks{max-width:32em;margin:0 auto;
  background:var(--green-pale);border-radius:9px;
  padding:22px 24px;text-align:center;
  font-family:var(--mincho);font-size:.95rem;line-height:2.1;}
.tk-zakki .books{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;
  margin:0 0 8px;}
.tk-zakki .bbtn{font-family:var(--maru);font-weight:700;font-size:.85rem;
  background:var(--paper-hi);border:1.5px solid rgba(90,74,60,.25);
  color:var(--ink-soft);border-radius:24px;padding:9px 20px;transition:.2s;}
.tk-zakki .bbtn:hover{border-color:var(--navy);color:var(--ink)}
.tk-zakki .bbtn:focus-visible{outline:2px solid var(--navy-deep);outline-offset:2px}
.tk-zakki .bbtn.on{background:var(--navy);border-color:var(--navy);color:#fff;
  box-shadow:0 3px 0 var(--navy-deep);}
.tk-zakki .book-note{text-align:center;font-size:.82rem;color:var(--ink-soft);
  margin-bottom:24px;font-family:var(--maru);}
.tk-zakki .desk{background:linear-gradient(180deg,#EDE3D0,#E4D8C2);
  border-radius:12px;padding:26px 18px 22px;
  box-shadow:inset 0 2px 12px rgba(90,74,60,.16);}
.tk-zakki .note{width:100%;max-width:430px;margin:0 auto;position:relative;
  aspect-ratio:182 / 257;              /* B5縦（182×257mm）の比率 */
  background:var(--paper-hi);
  border-radius:4px 8px 8px 4px;
  box-shadow:0 14px 34px -10px rgba(90,74,60,.45);
  overflow:hidden;
  transition:transform .32s ease,opacity .32s ease;}
.tk-zakki .note::before{content:"";position:absolute;left:0;top:0;bottom:0;width:26px;
  background:linear-gradient(90deg,#C9B896,#DCCFB4 60%,rgba(0,0,0,0));
  border-right:1px solid rgba(90,74,60,.16);z-index:2;}
.tk-zakki .note.turning{transform:rotateY(-9deg) scale(.985);opacity:.5}
.tk-zakki .note-inner{position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;}
.tk-zakki .note-inner img{width:100%;height:100%;object-fit:contain;}
.tk-zakki .ph{position:absolute;inset:0;
  padding:44px 26px 30px 48px;
  background-image:repeating-linear-gradient(
    180deg,transparent,transparent 31px,var(--note-line) 31px,var(--note-line) 32px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;}
.tk-zakki .ph .ph-t{font-family:var(--mincho);color:var(--ink-soft);
  font-size:1rem;line-height:2.2;}
.tk-zakki .ph .ph-s{font-family:var(--maru);font-weight:700;font-size:.8rem;
  color:var(--green);margin-top:12px;}
.tk-zakki .ctrl{display:flex;align-items:center;justify-content:center;gap:14px;
  margin-top:22px;flex-wrap:wrap;}
.tk-zakki .nav{font-family:var(--mincho);font-weight:800;font-size:1rem;
  background:var(--paper-hi);border:1.5px solid rgba(90,74,60,.25);
  color:var(--ink);border-radius:8px;padding:12px 22px;transition:.2s;}
.tk-zakki .nav:hover:not(:disabled){background:var(--navy);color:#fff;border-color:var(--navy)}
.tk-zakki .nav:disabled{opacity:.3;cursor:default}
.tk-zakki .nav:focus-visible{outline:2px solid var(--navy-deep);outline-offset:2px}
.tk-zakki .pageno{font-family:var(--mincho);font-weight:800;font-size:1.05rem;
  min-width:7em;text-align:center;}
.tk-zakki .pageno .n{font-size:1.5rem;color:var(--navy);padding:0 3px}
.tk-zakki .jump{display:flex;align-items:center;justify-content:center;gap:9px;
  margin-top:16px;font-size:.86rem;color:var(--ink-soft);}
.tk-zakki .jump input{font-family:inherit;font-size:.95rem;width:5.5em;text-align:center;
  padding:8px 6px;border:1.5px solid rgba(90,74,60,.25);
  border-radius:6px;background:var(--paper-hi);color:var(--ink);}
.tk-zakki .jump button{font-family:var(--maru);font-weight:700;font-size:.82rem;
  background:var(--green);color:#fff;border:none;
  border-radius:6px;padding:9px 18px;}
.tk-zakki .ask{background:var(--paper-hi);
  border:1px solid rgba(90,74,60,.12);border-radius:8px;
  box-shadow:0 4px 16px rgba(90,74,60,.09);
  padding:30px 26px;position:relative;}
.tk-zakki .ask::before{content:"";position:absolute;top:-11px;left:50%;
  width:100px;height:23px;background:var(--tape);
  transform:translateX(-50%) rotate(-1.7deg);
  box-shadow:0 1px 3px rgba(90,74,60,.14);}
.tk-zakki .ask h2{font-family:var(--mincho);font-weight:800;font-size:1.18rem;
  text-align:center;margin-bottom:18px;}
.tk-zakki .ask p{font-size:.89rem;color:#6E5A50;line-height:1.95}
.tk-zakki .ask p + p{margin-top:13px}
.tk-zakki .ask .strong{margin-top:18px;padding:16px 18px;
  background:var(--navy-pale);border-radius:8px;
  font-size:.85rem;color:var(--navy-deep);line-height:1.95;}
.tk-zakki footer{background:var(--ink);color:var(--paper);
  text-align:center;padding:42px 20px 38px;margin-top:40px;}
.tk-zakki footer .fh{font-family:var(--mincho);font-size:1.08rem;margin-bottom:16px}
.tk-zakki footer .back{display:inline-block;font-size:.85rem;
  border-bottom:1px solid rgba(246,239,224,.4);padding-bottom:2px;}
.tk-zakki footer small{display:block;margin-top:20px;opacity:.6;font-size:.72rem;letter-spacing:.1em}
@media(min-width:620px){
  .tk-zakki{font-size:17px}
}


/* ==========================================================
   みんなの名簿
   固定ページを <div class="tk-meibo"> ～ </div> で囲んでください
   ========================================================== */
.tk-meibo *{margin:0;padding:0;box-sizing:border-box}
.tk-meibo{font-family:var(--body);color:var(--ink);background:var(--paper);
  background-image:
    radial-gradient(rgba(140,110,70,.05) 1px,transparent 1.4px),
    radial-gradient(rgba(255,255,255,.4) 1px,transparent 1.6px);
  background-size:9px 9px,23px 23px;
  line-height:1.9;letter-spacing:.04em;font-size:16px;
  -webkit-font-smoothing:antialiased;}
.tk-meibo img{max-width:100%;display:block}
.tk-meibo a{color:inherit;text-decoration:none}
.tk-meibo button{font-family:inherit;cursor:pointer}
.tk-meibo .wrap{max-width:840px;margin:0 auto;padding:0 18px}
.tk-meibo section{padding:48px 0}
.tk-meibo header{text-align:center;padding:60px 18px 30px;position:relative;overflow:hidden}
.tk-meibo header .kicker{font-family:var(--mincho);font-size:.9rem;letter-spacing:.28em;
  color:var(--ink-soft);margin-bottom:14px;padding-left:.3em;}
.tk-meibo header h1{font-family:var(--mincho);font-weight:800;
  font-size:clamp(2rem,7.5vw,3rem);line-height:1.35;}
.tk-meibo header h1 .em{color:var(--navy)}
.tk-meibo header .lead{margin-top:18px;color:var(--ink-soft);font-size:.98rem;line-height:1.9}
.tk-meibo .petal{position:absolute;width:14px;height:14px;background:var(--petal);
  border-radius:14px 0;opacity:.85;animation:tk-meibo-sway 8s ease-in-out infinite;}
.tk-meibo .petal.a{top:14%;left:8%;transform:rotate(18deg)}
.tk-meibo .petal.b{top:26%;right:9%;transform:rotate(-32deg);animation-delay:2.5s}
@keyframes tk-meibo-sway{0%,100%{translate:0 0}50%{translate:7px 12px}}
@media (prefers-reduced-motion:reduce){
  .tk-meibo .petal{animation:none}
}
.tk-meibo .counter{text-align:center;font-family:var(--mincho);
  padding:6px 0 0;}
.tk-meibo .counter .n{font-size:clamp(2.8rem,11vw,4rem);font-weight:800;
  color:var(--navy);line-height:1.1;display:inline-block;padding:0 4px;}
.tk-meibo .counter .t{font-size:.92rem;color:var(--ink-soft);letter-spacing:.14em}
.tk-meibo .counter .goal{font-family:var(--maru);font-size:.82rem;color:var(--green);
  margin-top:8px;font-weight:700;}
.tk-meibo .filters{display:flex;gap:9px;flex-wrap:wrap;justify-content:center;
  margin:26px 0 26px;}
.tk-meibo .fbtn{font-family:var(--maru);font-weight:700;font-size:.86rem;
  background:var(--paper-hi);border:1.5px solid rgba(90,74,60,.25);
  color:var(--ink-soft);border-radius:24px;padding:9px 18px;transition:.2s;}
.tk-meibo .fbtn:hover{border-color:var(--navy);color:var(--ink)}
.tk-meibo .fbtn:focus-visible{outline:2px solid var(--navy-deep);outline-offset:2px}
.tk-meibo .fbtn.on{background:var(--navy);border-color:var(--navy);color:#fff;
  box-shadow:0 3px 0 var(--navy-deep);}
.tk-meibo .roster{display:grid;grid-template-columns:1fr;gap:16px}
.tk-meibo .person{background:var(--paper-hi);
  border:1px solid rgba(90,74,60,.12);
  border-radius:8px;
  box-shadow:0 4px 14px rgba(90,74,60,.1);
  padding:22px 22px 20px;
  position:relative;
  transition:transform .2s,box-shadow .2s;}
.tk-meibo .person:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(90,74,60,.16)}
.tk-meibo .person.hide{display:none}
.tk-meibo .person .kumi{position:absolute;top:-10px;left:18px;
  background:var(--green);color:#fff;
  font-family:var(--maru);font-weight:700;font-size:.72rem;
  padding:4px 14px;border-radius:4px;letter-spacing:.1em;
  box-shadow:0 2px 5px rgba(90,74,60,.25);}
.tk-meibo .person .name{font-family:var(--mincho);font-weight:800;font-size:1.2rem;
  margin-top:6px;}
.tk-meibo .person .name small{font-size:.8rem;color:var(--ink-soft);font-weight:400;margin-left:8px;}
.tk-meibo .person .area{display:inline-block;margin-top:6px;
  font-family:var(--maru);font-weight:700;font-size:.76rem;
  color:var(--navy);background:var(--navy-pale);
  border-radius:14px;padding:3px 12px;}
.tk-meibo .person .area.abroad{color:#fff;background:var(--navy)}
.tk-meibo .person .msg{margin-top:12px;font-size:.9rem;color:#6E5A50;line-height:1.9;
  border-top:1px dashed rgba(90,74,60,.22);padding-top:12px;}
.tk-meibo .person.vacant{background:transparent;
  border:1.5px dashed rgba(90,74,60,.3);
  box-shadow:none;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:30px 20px;min-height:150px;}
.tk-meibo .person.vacant:hover{transform:none;box-shadow:none;border-color:var(--green)}
.tk-meibo .person.vacant .v-txt{font-family:var(--mincho);color:var(--ink-soft);font-size:.95rem;line-height:2;}
.tk-meibo .person.vacant .v-sub{font-family:var(--maru);font-weight:700;font-size:.8rem;
  color:var(--green);margin-top:8px;}
.tk-meibo .empty{text-align:center;color:var(--ink-soft);padding:44px 10px;
  font-family:var(--mincho);}
.tk-meibo .cta-card{background:var(--green-pale);border-radius:10px;
  padding:34px 24px;text-align:center;}
.tk-meibo .cta-card h2{font-family:var(--mincho);font-weight:800;font-size:1.35rem;
  margin-bottom:16px;line-height:1.7;}
.tk-meibo .cta-card p{font-size:.93rem;color:#6E5A50;text-align:left;max-width:34em;margin:0 auto}
.tk-meibo .cta-card .btn{display:inline-block;margin-top:24px;
  background:var(--navy);color:#fff;
  font-family:var(--mincho);font-weight:800;font-size:1.1rem;
  padding:18px 44px;border-radius:8px;
  box-shadow:0 4px 0 var(--navy-deep);transition:transform .15s;}
.tk-meibo .cta-card .btn:hover{transform:translateY(-2px)}
.tk-meibo .cta-card .btn:focus-visible{outline:3px solid var(--green);outline-offset:3px}
.tk-meibo .cta-card .note{text-align:center;font-size:.8rem;color:var(--ink-soft);margin-top:14px;}
.tk-meibo .contact-note{background:var(--paper-hi);
  border:1px solid rgba(90,74,60,.12);border-radius:8px;
  box-shadow:0 4px 16px rgba(90,74,60,.09);
  padding:30px 24px;position:relative;}
.tk-meibo .contact-note::before{content:"";position:absolute;top:-11px;left:50%;
  width:104px;height:24px;background:var(--tape);
  transform:translateX(-50%) rotate(-1.7deg);
  box-shadow:0 1px 3px rgba(90,74,60,.14);}
.tk-meibo .contact-note h2{font-family:var(--mincho);font-weight:800;font-size:1.3rem;
  text-align:center;margin-bottom:6px;}
.tk-meibo .contact-note .sub{font-family:var(--maru);color:var(--navy);
  text-align:center;font-size:.82rem;letter-spacing:.18em;margin-bottom:22px;}
.tk-meibo .contact-note p{font-size:.9rem;color:#6E5A50;line-height:1.95}
.tk-meibo .contact-note p + p{margin-top:14px}
.tk-meibo .contact-note .privacy{margin-top:18px;padding:16px 18px;
  background:var(--navy-pale);border-radius:8px;
  font-size:.84rem;color:var(--navy-deep);line-height:1.9;}
.tk-meibo footer{background:var(--ink);color:var(--paper);
  text-align:center;padding:44px 20px 40px;margin-top:40px;}
.tk-meibo footer .fh{font-family:var(--mincho);font-size:1.1rem;margin-bottom:16px}
.tk-meibo footer .back{display:inline-block;font-size:.85rem;
  border-bottom:1px solid rgba(246,239,224,.4);padding-bottom:2px;}
.tk-meibo footer small{display:block;margin-top:20px;opacity:.6;font-size:.72rem;letter-spacing:.1em}
@media(min-width:620px){
  .tk-meibo{font-size:17px}
  .tk-meibo .roster{grid-template-columns:1fr 1fr}
}


/* ==========================================================
   懐かしい写真館
   固定ページを <div class="tk-photos"> ～ </div> で囲んでください
   ========================================================== */
.tk-photos *{margin:0;padding:0;box-sizing:border-box}
.tk-photos{font-family:var(--body);color:var(--ink);background:var(--paper);
  background-image:
    radial-gradient(rgba(140,110,70,.05) 1px,transparent 1.4px),
    radial-gradient(rgba(255,255,255,.4) 1px,transparent 1.6px);
  background-size:9px 9px,23px 23px;
  line-height:1.9;letter-spacing:.04em;font-size:16px;
  -webkit-font-smoothing:antialiased;}
.tk-photos img{max-width:100%;display:block}
.tk-photos a{color:inherit;text-decoration:none}
.tk-photos button{font-family:inherit;cursor:pointer}
.tk-photos .wrap{max-width:900px;margin:0 auto;padding:0 18px}
.tk-photos section{padding:52px 0}
.tk-photos header{text-align:center;padding:62px 18px 34px;position:relative;overflow:hidden}
.tk-photos header .kicker{font-family:var(--mincho);font-size:.9rem;letter-spacing:.28em;
  color:var(--ink-soft);margin-bottom:14px;padding-left:.3em;}
.tk-photos header h1{font-family:var(--mincho);font-weight:800;
  font-size:clamp(2rem,7.5vw,3rem);line-height:1.35;}
.tk-photos header h1 .em{color:var(--navy-deep)}
.tk-photos header .lead{margin-top:18px;color:var(--ink-soft);font-size:.98rem;line-height:1.9}
.tk-photos .petal{position:absolute;width:14px;height:14px;background:var(--petal);
  border-radius:14px 0;opacity:.85;animation:tk-photos-sway 8s ease-in-out infinite;}
.tk-photos .petal.a{top:14%;left:8%;transform:rotate(18deg)}
.tk-photos .petal.b{top:26%;right:9%;transform:rotate(-32deg);animation-delay:2.5s}
.tk-photos .petal.c{bottom:18%;right:26%;width:10px;height:10px;animation-delay:4.5s}
.tk-photos .petal.d{bottom:14%;left:18%;width:11px;height:11px;animation-delay:1.2s}
@keyframes tk-photos-sway{0%,100%{translate:0 0}50%{translate:7px 12px}}
@media (prefers-reduced-motion:reduce){
  .tk-photos .petal{animation:none}
}
.tk-photos .filters{display:flex;gap:9px;flex-wrap:wrap;justify-content:center;
  margin-bottom:32px;}
.tk-photos .fbtn{font-family:var(--maru);font-weight:700;font-size:.86rem;
  background:var(--paper-hi);border:1.5px solid rgba(90,74,60,.25);
  color:var(--ink-soft);border-radius:24px;padding:9px 18px;
  transition:.22s;}
.tk-photos .fbtn:hover{border-color:var(--navy);color:var(--ink)}
.tk-photos .fbtn:focus-visible{outline:2px solid var(--navy-deep);outline-offset:2px}
.tk-photos .fbtn.on{background:var(--navy);border-color:var(--navy);color:#fff;
  box-shadow:0 3px 0 var(--navy-deep);}
.tk-photos .fbtn .n{opacity:.7;font-size:.78rem;margin-left:5px}
.tk-photos .gallery{display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:16px;}
.tk-photos .shot{background:var(--paper-hi);
  padding:10px 10px 34px;
  border-radius:3px;
  box-shadow:0 4px 14px rgba(90,74,60,.16);
  cursor:zoom-in;
  transition:transform .25s ease, box-shadow .25s ease;
  position:relative;
  border:none;text-align:left;width:100%;
  transform:rotate(var(--r,0deg));}
.tk-photos .shot:nth-child(3n){--r:-1.1deg}
.tk-photos .shot:nth-child(3n+1){--r:.9deg}
.tk-photos .shot:nth-child(4n){--r:-.5deg}
.tk-photos .shot:hover{transform:rotate(0) translateY(-4px);box-shadow:0 10px 26px rgba(90,74,60,.24)}
.tk-photos .shot:focus-visible{outline:3px solid var(--navy-deep);outline-offset:3px}
.tk-photos .shot.hide{display:none}
.tk-photos .shot .pic{aspect-ratio:4/3;
  background:linear-gradient(140deg,#CBB79B,#A78E70);
  overflow:hidden;position:relative;
  display:flex;align-items:center;justify-content:center;}
.tk-photos .shot .pic img{width:100%;height:100%;object-fit:cover;
  filter:sepia(.22) contrast(1.03);
  transition:filter .5s ease, transform .5s ease;}
.tk-photos .shot:hover .pic img{filter:sepia(0) contrast(1.04);transform:scale(1.04)}
.tk-photos .shot .ph{color:rgba(253,249,240,.9);font-family:var(--mincho);
  font-size:.82rem;text-align:center;padding:14px;line-height:1.8;}
.tk-photos .shot .cap{position:absolute;left:0;right:0;bottom:8px;
  text-align:center;font-family:var(--maru);font-weight:500;
  font-size:.78rem;color:var(--ink-soft);
  padding:0 10px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tk-photos .shot .badge{position:absolute;top:16px;right:16px;
  background:var(--green);color:#fff;
  font-family:var(--maru);font-weight:700;font-size:.62rem;
  padding:4px 9px;border-radius:12px;letter-spacing:.06em;
  box-shadow:0 2px 6px rgba(90,74,60,.3);}
.tk-photos .empty{text-align:center;color:var(--ink-soft);
  padding:50px 20px;font-family:var(--mincho);}
.tk-photos .lb{position:fixed;inset:0;z-index:100;
  background:rgba(40,32,25,.94);
  display:none;flex-direction:column;
  align-items:center;justify-content:center;
  padding:56px 16px 90px;}
.tk-photos .lb.on{display:flex}
.tk-photos .lb-stage{position:relative;max-width:100%;max-height:100%;
  display:flex;align-items:center;justify-content:center;}
.tk-photos .lb img{max-width:100%;max-height:74vh;object-fit:contain;
  border-radius:3px;box-shadow:0 20px 60px rgba(0,0,0,.65);
  background:#fff;}
.tk-photos .lb .ph-lg{color:var(--paper);font-family:var(--mincho);text-align:center;
  padding:70px 40px;border:1px dashed rgba(246,239,224,.4);border-radius:8px;}
.tk-photos .lb-cap{position:absolute;bottom:22px;left:0;right:0;
  text-align:center;color:var(--paper);
  font-family:var(--mincho);font-size:.95rem;padding:0 20px;}
.tk-photos .lb-cap .idx{display:block;font-size:.75rem;opacity:.6;margin-top:6px;
  font-family:var(--body);letter-spacing:.1em;}
.tk-photos .lb-close{position:absolute;top:16px;right:16px;
  background:rgba(246,239,224,.15);border:1px solid rgba(246,239,224,.4);
  color:var(--paper);font-size:1.4rem;
  width:46px;height:46px;border-radius:50%;line-height:1;}
.tk-photos .lb-nav{position:absolute;top:50%;transform:translateY(-50%);
  background:rgba(246,239,224,.14);border:1px solid rgba(246,239,224,.35);
  color:var(--paper);font-size:1.5rem;
  width:50px;height:50px;border-radius:50%;line-height:1;}
.tk-photos .lb-nav.prev{left:12px}
.tk-photos .lb-nav.next{right:12px}
.tk-photos .lb-nav[disabled]{opacity:.25;cursor:not-allowed}
.tk-photos .lb-close:focus-visible, .tk-photos .lb-nav:focus-visible{outline:3px solid var(--navy);outline-offset:2px;}
.tk-photos .lb-toggle{position:absolute;bottom:66px;left:50%;transform:translateX(-50%);
  display:flex;background:rgba(0,0,0,.45);border-radius:24px;padding:4px;
  gap:2px;}
.tk-photos .lb-toggle.hide{display:none}
.tk-photos .lb-toggle button{background:none;border:none;color:rgba(246,239,224,.65);
  font-family:var(--maru);font-weight:700;font-size:.78rem;
  padding:8px 18px;border-radius:20px;transition:.2s;}
.tk-photos .lb-toggle button.on{background:var(--green);color:#fff}
.tk-photos .lb-toggle button:focus-visible{outline:2px solid var(--paper);outline-offset:1px}
.tk-photos .card{background:var(--paper-hi);
  border:1px solid rgba(90,74,60,.12);
  border-radius:6px;box-shadow:0 4px 16px rgba(90,74,60,.09);
  padding:30px 22px;position:relative;}
.tk-photos .card.taped::before{content:"";position:absolute;top:-11px;left:50%;
  width:104px;height:24px;background:var(--tape);
  transform:translateX(-50%) rotate(-1.7deg);
  box-shadow:0 1px 3px rgba(90,74,60,.14);}
.tk-photos .sec-h{font-family:var(--mincho);font-weight:800;
  font-size:1.35rem;text-align:center;margin-bottom:6px;}
.tk-photos .sec-sub{font-family:var(--maru);color:var(--navy-deep);
  text-align:center;font-size:.82rem;letter-spacing:.18em;margin-bottom:24px;}
.tk-photos .notice p{font-size:.9rem;color:#6E5A50;line-height:1.95}
.tk-photos .notice p + p{margin-top:14px}
.tk-photos .ask-photo{background:var(--green-pale);border-radius:8px;
  padding:30px 22px;text-align:center;margin-top:22px;}
.tk-photos .ask-photo h3{font-family:var(--mincho);font-weight:800;font-size:1.2rem;
  margin-bottom:14px;line-height:1.7;}
.tk-photos .ask-photo p{font-size:.9rem;color:#6E5A50;text-align:left}
.tk-photos .ask-photo .btn{display:inline-block;margin-top:20px;
  background:var(--paper-hi);color:var(--ink);
  border:2px solid var(--ink);border-radius:8px;
  padding:15px 32px;font-family:var(--mincho);font-weight:800;
  box-shadow:0 4px 0 rgba(90,74,60,.3);transition:transform .15s;}
.tk-photos .ask-photo .btn:hover{transform:translateY(-2px)}
.tk-photos footer{background:var(--ink);color:var(--paper);
  text-align:center;padding:44px 20px 40px;margin-top:40px;}
.tk-photos footer .fh{font-family:var(--mincho);font-size:1.1rem;margin-bottom:16px}
.tk-photos footer .back{display:inline-block;font-size:.85rem;
  border-bottom:1px solid rgba(246,239,224,.4);padding-bottom:2px;}
.tk-photos footer small{display:block;margin-top:20px;opacity:.6;font-size:.72rem;letter-spacing:.1em}
@media(min-width:640px){
  .tk-photos{font-size:17px}
  .tk-photos .gallery{grid-template-columns:repeat(3,1fr);gap:20px}
  .tk-photos .card{padding:38px 34px}
}


/* ==========================================================
   学級通信 たくちゃん
   固定ページを <div class="tk-tsushin"> ～ </div> で囲んでください
   ========================================================== */
.tk-tsushin *{margin:0;padding:0;box-sizing:border-box}
.tk-tsushin{font-family:var(--body);color:var(--ink);background:var(--paper);
  background-image:
    radial-gradient(rgba(140,110,70,.05) 1px,transparent 1.4px),
    radial-gradient(rgba(255,255,255,.4) 1px,transparent 1.6px);
  background-size:9px 9px,23px 23px;
  line-height:1.9;letter-spacing:.04em;font-size:16px;
  -webkit-font-smoothing:antialiased;}
.tk-tsushin img{max-width:100%;display:block}
.tk-tsushin a{color:inherit;text-decoration:none}
.tk-tsushin button{font-family:inherit;cursor:pointer}
.tk-tsushin .wrap{max-width:900px;margin:0 auto;padding:0 18px}
.tk-tsushin header{text-align:center;padding:56px 18px 30px;position:relative;overflow:hidden}
.tk-tsushin header .kicker{font-family:var(--mincho);font-size:.9rem;letter-spacing:.28em;
  color:var(--ink-soft);margin-bottom:14px;padding-left:.3em;}
.tk-tsushin header h1{font-family:var(--mincho);font-weight:800;
  font-size:clamp(2rem,7.5vw,3rem);line-height:1.35;}
.tk-tsushin header h1 .em{color:var(--red-pen)}
.tk-tsushin header .lead{margin-top:18px;color:var(--ink-soft);font-size:.98rem;line-height:1.9}
.tk-tsushin .viewer{margin-top:18px}
.tk-tsushin .jump{display:flex;gap:10px;align-items:center;justify-content:center;
  flex-wrap:wrap;margin-bottom:20px;}
.tk-tsushin .jump label{font-family:var(--mincho);font-size:.9rem;color:var(--ink-soft);}
.tk-tsushin .jump input{width:88px;padding:9px 12px;font-size:1rem;font-family:var(--mincho);
  border:1px solid rgba(90,74,60,.3);border-radius:6px;
  background:var(--paper-hi);color:var(--ink);text-align:center;}
.tk-tsushin .jump input:focus-visible{outline:2px solid var(--accent-deep);outline-offset:2px}
.tk-tsushin .jump button{background:var(--accent);color:#fff;border:none;
  font-family:var(--maru);font-weight:700;font-size:.9rem;
  padding:10px 22px;border-radius:24px;
  box-shadow:0 3px 0 var(--accent-deep);transition:transform .12s;}
.tk-tsushin .jump button:hover{transform:translateY(-2px)}
.tk-tsushin .jump button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.tk-tsushin .stage{background:var(--paper-hi);
  border:1px solid rgba(90,74,60,.14);
  border-radius:8px;
  box-shadow:0 8px 30px rgba(90,74,60,.12);
  padding:20px;position:relative;}
.tk-tsushin .stage::before{content:"";position:absolute;top:-11px;left:50%;
  width:104px;height:24px;background:var(--tape);
  transform:translateX(-50%) rotate(-1.6deg);
  box-shadow:0 1px 3px rgba(90,74,60,.14);}
.tk-tsushin .sheet{position:relative;
  aspect-ratio:1.414/1;     /* B4横 */
  background:var(--scan);
  border:1px solid rgba(90,74,60,.18);
  border-radius:4px;
  overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  box-shadow:inset 0 0 40px rgba(140,110,70,.08);
  cursor:zoom-in;
  transition:opacity .28s ease;}
.tk-tsushin .sheet.turning{opacity:0}
.tk-tsushin .sheet img{width:100%;height:100%;object-fit:contain;
  filter:sepia(.12) contrast(1.03);}
.tk-tsushin .sheet .ph{text-align:center;color:var(--ink-soft);
  font-family:var(--mincho);padding:20px;line-height:2;}
.tk-tsushin .sheet .ph .big{display:block;font-size:clamp(2rem,7vw,3.2rem);font-weight:800;
  color:var(--accent-deep);margin-bottom:8px;}
.tk-tsushin .sheet .ph .sm{font-size:.85rem}
.tk-tsushin .sheet::after{content:"";position:absolute;bottom:0;right:0;
  border:16px solid transparent;
  border-bottom-color:rgba(140,110,70,.14);
  border-right-color:rgba(140,110,70,.14);}
.tk-tsushin .no-line{display:flex;justify-content:space-between;align-items:center;
  margin-top:16px;padding:0 4px;}
.tk-tsushin .no-line .no{font-family:var(--mincho);font-weight:800;font-size:1.2rem;}
.tk-tsushin .no-line .no small{font-size:.8rem;color:var(--ink-soft);font-weight:400;margin-left:8px;}
.tk-tsushin .no-line .date{font-family:var(--mincho);font-size:.85rem;color:var(--ink-soft);}
.tk-tsushin .pager{display:flex;gap:12px;align-items:center;justify-content:center;
  margin-top:22px;}
.tk-tsushin .pg{background:var(--paper-hi);border:2px solid var(--ink);color:var(--ink);
  font-family:var(--mincho);font-weight:800;font-size:1rem;
  padding:14px 26px;border-radius:8px;
  box-shadow:0 4px 0 rgba(90,74,60,.3);
  transition:transform .12s,box-shadow .12s;
  flex:1;max-width:180px;}
.tk-tsushin .pg:hover:not([disabled]){transform:translateY(-2px);box-shadow:0 6px 0 rgba(90,74,60,.3)}
.tk-tsushin .pg:active:not([disabled]){transform:translateY(3px);box-shadow:0 0 0}
.tk-tsushin .pg:focus-visible{outline:3px solid var(--accent-deep);outline-offset:3px}
.tk-tsushin .pg[disabled]{opacity:.35;cursor:not-allowed}
.tk-tsushin .slider{margin-top:24px;padding:0 4px}
.tk-tsushin .slider input[type=range]{width:100%;-webkit-appearance:none;appearance:none;
  height:5px;background:rgba(90,74,60,.2);border-radius:5px;outline:none;}
.tk-tsushin .slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;
  background:var(--accent);border:2px solid var(--paper-hi);
  box-shadow:0 2px 5px rgba(90,74,60,.35);cursor:pointer;}
.tk-tsushin .slider input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;
  background:var(--accent);border:2px solid var(--paper-hi);
  box-shadow:0 2px 5px rgba(90,74,60,.35);cursor:pointer;}
.tk-tsushin .slider input:focus-visible{outline:2px solid var(--accent-deep);outline-offset:4px}
.tk-tsushin .slider .ends{display:flex;justify-content:space-between;
  font-family:var(--mincho);font-size:.78rem;color:var(--ink-soft);
  margin-top:6px;}
.tk-tsushin .hint{text-align:center;font-size:.8rem;color:var(--ink-soft);
  margin-top:20px;line-height:1.9;}
.tk-tsushin .modal{position:fixed;inset:0;z-index:100;
  background:rgba(40,32,25,.92);
  display:none;align-items:center;justify-content:center;
  padding:20px;}
.tk-tsushin .modal.on{display:flex}
.tk-tsushin .modal img{max-width:100%;max-height:88vh;object-fit:contain;
  border-radius:4px;box-shadow:0 20px 60px rgba(0,0,0,.6);}
.tk-tsushin .modal .ph-lg{color:var(--paper);font-family:var(--mincho);text-align:center;
  padding:60px 30px;border:1px dashed rgba(246,239,224,.4);border-radius:8px;}
.tk-tsushin .modal-close{position:absolute;top:18px;right:18px;
  background:rgba(246,239,224,.15);border:1px solid rgba(246,239,224,.4);
  color:var(--paper);font-size:1.4rem;
  width:46px;height:46px;border-radius:50%;line-height:1;}
.tk-tsushin .modal-close:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.tk-tsushin .modal-no{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);
  color:var(--paper);font-family:var(--mincho);font-size:.95rem;
  background:rgba(0,0,0,.4);padding:8px 22px;border-radius:24px;}
.tk-tsushin section{padding:56px 0}
.tk-tsushin .card{background:var(--paper-hi);
  border:1px solid rgba(90,74,60,.12);
  border-radius:6px;box-shadow:0 4px 16px rgba(90,74,60,.09);
  padding:30px 22px;}
.tk-tsushin .sec-h{font-family:var(--mincho);font-weight:800;
  font-size:1.35rem;text-align:center;margin-bottom:6px;}
.tk-tsushin .sec-sub{font-family:var(--maru);color:var(--accent-deep);
  text-align:center;font-size:.82rem;letter-spacing:.18em;margin-bottom:24px;}
.tk-tsushin .story p + p{margin-top:16px}
.tk-tsushin .story .lead-line{font-family:var(--mincho);font-weight:800;
  font-size:1.15rem;color:var(--red-pen);
  text-align:center;line-height:1.9;padding:20px 0 4px;}
.tk-tsushin .notice{background:var(--accent-pale);border-radius:8px;
  padding:26px 22px;margin-top:20px;}
.tk-tsushin .notice .t{font-family:var(--mincho);font-weight:800;font-size:1.05rem;
  margin-bottom:10px;text-align:center;}
.tk-tsushin .notice p{font-size:.88rem;color:#6E5A50;line-height:1.9}
.tk-tsushin footer{background:var(--ink);color:var(--paper);
  text-align:center;padding:44px 20px 40px;margin-top:40px;}
.tk-tsushin footer .fh{font-family:var(--mincho);font-size:1.1rem;margin-bottom:16px}
.tk-tsushin footer .back{display:inline-block;font-size:.85rem;
  border-bottom:1px solid rgba(246,239,224,.4);padding-bottom:2px;}
.tk-tsushin footer small{display:block;margin-top:20px;opacity:.6;font-size:.72rem;letter-spacing:.1em}
@media(min-width:640px){
  .tk-tsushin{font-size:17px}
  .tk-tsushin .stage{padding:28px}
  .tk-tsushin .card{padding:38px 34px}
}


/* ==========================================================
   音の部屋
   固定ページを <div class="tk-oto"> ～ </div> で囲んでください
   ========================================================== */
.tk-oto *{margin:0;padding:0;box-sizing:border-box}
.tk-oto{font-family:var(--body);color:var(--ivory);background:var(--black);
  line-height:1.9;letter-spacing:.03em;font-size:16px;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;}
.tk-oto img{max-width:100%;display:block}
.tk-oto a{color:inherit;text-decoration:none}
.tk-oto button{font-family:inherit;cursor:pointer}
.tk-oto .wrap{max-width:720px;margin:0 auto;padding:0 20px}
.tk-oto section{padding:54px 0}
.tk-oto body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:9;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/></svg>");
  mix-blend-mode:overlay;opacity:.55;}
.tk-oto body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:8;
  background:radial-gradient(120% 80% at 50% 40%, transparent 58%, rgba(0,0,0,.6) 100%);}
.tk-oto header{text-align:center;padding:70px 20px 36px;
  background:radial-gradient(70% 50% at 50% 0%, rgba(224,99,44,.14), transparent 65%);}
.tk-oto header .kicker{font-family:var(--mono);font-size:.72rem;letter-spacing:.34em;
  color:var(--sepia);margin-bottom:16px;}
.tk-oto header h1{font-family:var(--disp);font-weight:800;
  font-size:clamp(2rem,7.5vw,3rem);line-height:1.35;}
.tk-oto header .lead{margin-top:18px;color:var(--silver);font-size:.95rem;line-height:2}
.tk-oto .eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.32em;
  color:var(--sepia);margin-bottom:14px;}
.tk-oto .sec-h{font-family:var(--disp);font-weight:800;
  font-size:clamp(1.5rem,5vw,2.1rem);line-height:1.4;margin-bottom:14px}
.tk-oto .sec-lead{color:var(--silver);max-width:36em;font-size:.93rem;line-height:2}
.tk-oto .boombox{margin:30px auto 0;max-width:660px;
  background:linear-gradient(180deg,var(--panel-hi),var(--panel) 60%,#0F0D09);
  border:1px solid #3a352b;border-radius:20px;
  box-shadow:0 40px 80px -30px rgba(0,0,0,.9),
             inset 0 1px 0 rgba(255,255,255,.06),
             inset 0 -20px 40px rgba(0,0,0,.5);
  padding:22px;position:relative;}
.tk-oto .handle{position:absolute;top:-26px;left:50%;transform:translateX(-50%);
  width:50%;height:26px;border:5px solid var(--steel);border-bottom:none;
  border-radius:16px 16px 0 0;}
.tk-oto .lcd{background:#0a1512;border:1px solid #24463f;border-radius:8px;
  padding:13px 16px;margin-bottom:16px;
  display:flex;justify-content:space-between;align-items:center;gap:10px;
  font-family:var(--mono);color:var(--lcd);
  box-shadow:inset 0 0 24px rgba(123,211,196,.12), inset 0 0 3px rgba(123,211,196,.4);
  text-shadow:0 0 8px rgba(123,211,196,.55);}
.tk-oto .lcd .track{font-size:.9rem;letter-spacing:.08em;flex:1;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tk-oto .lcd .time{font-size:.82rem;letter-spacing:.12em;flex-shrink:0}
.tk-oto .lcd .st{color:var(--sunset1);text-shadow:0 0 8px rgba(240,165,68,.6)}
.tk-oto .deck{background:linear-gradient(180deg,#0d0b08,#050403);
  border:1px solid #2c281f;border-radius:10px;
  padding:20px;margin-bottom:16px;position:relative;overflow:hidden;}
.tk-oto .deck::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,rgba(255,255,255,.05) 0 12%,transparent 22%);}
.tk-oto .cassette{background:linear-gradient(180deg,#211d16,#171410);
  border:1px solid #3a3428;border-radius:8px;
  padding:14px 16px;max-width:380px;margin:0 auto;}
.tk-oto .cassette .label{background:var(--ivory);color:#2a2620;border-radius:3px;
  padding:6px 10px;font-family:var(--tape-font);font-size:.95rem;
  letter-spacing:.1em;text-align:center;margin-bottom:12px;
  min-height:32px;display:flex;align-items:center;justify-content:center;}
.tk-oto .reels{display:flex;justify-content:space-around;align-items:center}
.tk-oto .reel{width:64px;height:64px;border-radius:50%;
  background:repeating-conic-gradient(#0c0a07 0 12deg,#1c180f 12deg 24deg);
  border:2px solid #4a4231;position:relative;
  box-shadow:inset 0 0 0 9px #100d09, inset 0 0 14px rgba(0,0,0,.8);}
.tk-oto .reel::after{content:"";position:absolute;inset:0;margin:auto;width:13px;height:13px;
  border-radius:50%;background:var(--steel);border:2px solid #5a5240;}
.tk-oto .playing .reel{animation:tk-oto-spin 2.4s linear infinite}
@keyframes tk-oto-spin{to{transform:rotate(360deg)}}
.tk-oto .tape-line{height:2px;background:#4a4231;flex:1;max-width:34px;align-self:center}
.tk-oto .vu{display:flex;gap:12px;margin-bottom:16px}
.tk-oto .vu .ch{flex:1;background:#0a0906;border:1px solid #2c281f;border-radius:6px;padding:8px 10px}
.tk-oto .vu .ch small{font-family:var(--mono);font-size:.56rem;color:var(--silver-dim);
  letter-spacing:.2em;display:block;margin-bottom:5px}
.tk-oto .vu .bars{display:flex;gap:3px;height:12px;align-items:flex-end}
.tk-oto .vu .bars i{flex:1;background:#2a2620;border-radius:1px;height:25%;transition:height .12s}
.tk-oto .playing .vu .bars i{animation:tk-oto-vu 1.1s ease-in-out infinite;
  animation-delay:calc(var(--i,0)*.05s)}
.tk-oto .vu .bars i:nth-child(7), .tk-oto .vu .bars i:nth-child(8){--c:var(--sunset1)}
.tk-oto .vu .bars i:nth-child(9), .tk-oto .vu .bars i:nth-child(10){--c:var(--rec)}
@keyframes tk-oto-vu{0%,100%{height:20%}50%{height:95%;background:var(--c,var(--lcd))}}
.tk-oto .seek{margin-bottom:14px}
.tk-oto .seek input[type=range]{width:100%;-webkit-appearance:none;appearance:none;height:4px;
  background:#2c281f;border-radius:4px;outline:none;cursor:pointer;}
.tk-oto .seek input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:15px;border-radius:50%;
  background:var(--sunset1);box-shadow:0 0 8px rgba(240,165,68,.7);cursor:pointer;}
.tk-oto .seek input[type=range]::-moz-range-thumb{width:15px;height:15px;border-radius:50%;border:none;
  background:var(--sunset1);box-shadow:0 0 8px rgba(240,165,68,.7);cursor:pointer;}
.tk-oto .seek input:focus-visible{outline:2px solid var(--lcd);outline-offset:4px}
.tk-oto .controls{display:flex;gap:9px;justify-content:center;flex-wrap:wrap}
.tk-oto .btn{font-family:var(--tape-font);letter-spacing:.14em;
  background:linear-gradient(180deg,#2b2820,#1a1712);
  border:1px solid #423c30;color:var(--silver);
  border-radius:8px;padding:13px 15px;font-size:.95rem;
  box-shadow:0 3px 0 #0d0b08, inset 0 1px 0 rgba(255,255,255,.06);
  transition:transform .08s,box-shadow .08s;
  display:inline-flex;align-items:center;gap:7px;}
.tk-oto .btn:active{transform:translateY(3px);box-shadow:0 0 0 #0d0b08}
.tk-oto .btn:focus-visible{outline:2px solid var(--lcd);outline-offset:2px}
.tk-oto .btn[disabled]{opacity:.4;cursor:not-allowed}
.tk-oto .btn.play{flex:1;min-width:145px;justify-content:center;color:#fff;
  background:linear-gradient(180deg,#2f2b22,#211d16)}
.tk-oto .btn.play .ico{color:var(--sunset1)}
.tk-oto .btn.play.on{background:linear-gradient(180deg,#3a2f1e,#2a2114)}
.tk-oto .resume-bar{display:none;margin-top:14px;text-align:center;}
.tk-oto .resume-bar.on{display:block}
.tk-oto .resume-bar button{background:none;border:1px solid var(--sunset2);color:var(--sunset1);
  font-family:var(--body);font-weight:700;font-size:.82rem;
  border-radius:22px;padding:9px 22px;transition:.2s;}
.tk-oto .resume-bar button:hover{background:rgba(240,165,68,.12)}
.tk-oto .tapes{display:grid;gap:14px;margin-top:24px}
.tk-oto .tape-card{background:linear-gradient(180deg,#1c1913,#131009);
  border:1px solid #33302b;border-radius:12px;
  padding:18px 18px;text-align:left;width:100%;
  transition:border-color .25s,transform .15s,background .25s;}
.tk-oto .tape-card .head{display:flex;gap:14px;align-items:center;cursor:pointer;
  background:none;border:none;width:100%;text-align:left;padding:0;
  color:inherit;}
.tk-oto .tape-card .head:focus-visible{outline:2px solid var(--lcd);outline-offset:3px}
.tk-oto .tape-card:hover{border-color:var(--sunset2)}
.tk-oto .tape-card.active{border-color:var(--sunset1);
  background:linear-gradient(180deg,rgba(240,165,68,.1),#131009);}
.tk-oto .tape-mini{width:60px;height:40px;flex-shrink:0;border-radius:4px;
  background:linear-gradient(180deg,#2a251b,#1a1710);
  border:1px solid #4a4231;
  display:flex;align-items:center;justify-content:space-around;padding:0 7px;}
.tk-oto .tape-mini i{width:15px;height:15px;border-radius:50%;
  background:repeating-conic-gradient(#0c0a07 0 14deg,#241f16 14deg 28deg);
  border:1px solid #5a5240;display:block;}
.tk-oto .tape-card.active .tape-mini i{animation:tk-oto-spin 3s linear infinite}
.tk-oto .tape-info{flex:1;min-width:0}
.tk-oto .tape-info .side{font-family:var(--mono);font-size:.62rem;letter-spacing:.2em;
  color:var(--sepia);display:block;}
.tk-oto .tape-info .ttl{font-family:var(--disp);font-weight:800;font-size:1.08rem;
  display:block;margin:2px 0 3px;}
.tk-oto .tape-info .ds{font-size:.8rem;color:var(--silver-dim);line-height:1.7}
.tk-oto .tape-card .open-ico{color:var(--silver-dim);font-size:.85rem;flex-shrink:0;
  transition:transform .25s;}
.tk-oto .tape-card.open .open-ico{transform:rotate(90deg)}
.tk-oto .tape-card.pending{opacity:.55}
.tk-oto .tape-card.pending .ds{color:var(--rec)}
.tk-oto .tape-card.pending .head{cursor:default}
.tk-oto .tracks{display:none;margin-top:14px;border-top:1px solid #2c281f;padding-top:8px;}
.tk-oto .tape-card.open .tracks{display:block}
.tk-oto .trk{display:flex;gap:12px;align-items:center;width:100%;text-align:left;
  background:none;border:none;color:var(--silver);
  padding:11px 6px;border-radius:6px;transition:background .15s;
  border-bottom:1px dashed rgba(74,66,49,.5);}
.tk-oto .trk:last-child{border-bottom:none}
.tk-oto .trk:hover{background:rgba(240,165,68,.07)}
.tk-oto .trk:focus-visible{outline:2px solid var(--lcd);outline-offset:1px}
.tk-oto .trk .n{font-family:var(--mono);font-size:.72rem;color:var(--sepia);
  min-width:2em;flex-shrink:0;}
.tk-oto .trk .t{flex:1;min-width:0;font-size:.9rem;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tk-oto .trk .len{font-family:var(--mono);font-size:.7rem;color:var(--silver-dim);flex-shrink:0}
.tk-oto .trk.now{color:#fff}
.tk-oto .trk.now .t::before{content:"▶ ";color:var(--sunset1)}
.tk-oto .mirai{background:linear-gradient(180deg,rgba(224,99,44,.10),transparent);
  border:1px solid #33302b;border-radius:14px;
  padding:28px 22px;margin-top:8px;}
.tk-oto .mirai h2{font-family:var(--disp);font-weight:800;
  font-size:clamp(1.4rem,5vw,1.85rem);line-height:1.55;margin-bottom:14px}
.tk-oto .mirai h2 em{font-style:normal;color:var(--sunset1)}
.tk-oto .mirai p{color:var(--silver);font-size:.93rem;line-height:2}
.tk-oto .mirai p + p{margin-top:13px}
.tk-oto .mirai .note{margin-top:18px;padding:13px 16px;
  border-left:2px solid var(--sepia);
  font-size:.83rem;color:var(--silver-dim);line-height:1.9;}
.tk-oto .movies{display:grid;gap:20px;margin-top:26px}
.tk-oto .mv-card{background:#131009;border:1px solid #33302b;border-radius:12px;
  padding:18px;}
.tk-oto .mv-card .badge{display:inline-block;font-family:var(--mono);font-size:.62rem;
  letter-spacing:.18em;color:var(--sunset1);
  border:1px solid var(--sunset2);border-radius:14px;
  padding:3px 12px;margin-bottom:10px;}
.tk-oto .mv-card .ttl{font-family:var(--disp);font-weight:800;font-size:1.1rem;
  margin-bottom:6px;}
.tk-oto .mv-card .ds{font-size:.85rem;color:var(--silver-dim);line-height:1.9;margin-bottom:14px}
.tk-oto .mv-frame{aspect-ratio:16/9;border-radius:8px;overflow:hidden;
  background:#0a0906;border:1px solid #2c281f;
  display:flex;align-items:center;justify-content:center;
  color:var(--silver-dim);font-family:var(--mono);font-size:.72rem;
  text-align:center;padding:12px;line-height:2;}
.tk-oto .mv-frame iframe{width:100%;height:100%;border:0}
.tk-oto .mv-card.pending{opacity:.55}
.tk-oto .mv-card.pending .mv-frame{border-style:dashed}
.tk-oto .yt-note{margin-top:20px;font-size:.8rem;color:var(--silver-dim);
  border-left:2px solid var(--steel);padding-left:14px;line-height:1.9;}
.tk-oto .sp{margin-top:24px;background:#131009;border:1px solid #33302b;
  border-radius:12px;padding:24px;text-align:center;}
.tk-oto .sp .t{font-family:var(--disp);font-weight:800;font-size:1.08rem;margin-bottom:8px}
.tk-oto .sp .d{font-size:.84rem;color:var(--silver-dim);margin-bottom:16px;line-height:1.9}
.tk-oto .sp a{display:inline-block;background:#1DB954;color:#08240f;
  font-family:var(--tape-font);font-size:1.05rem;letter-spacing:.1em;
  padding:12px 32px;border-radius:30px;
  box-shadow:0 4px 0 #158c40;transition:transform .15s;}
.tk-oto .sp a:hover{transform:translateY(-2px)}
.tk-oto .sp a:focus-visible{outline:3px solid var(--lcd);outline-offset:3px}
.tk-oto .toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(16px);
  background:var(--ivory);color:#2a2620;
  padding:11px 24px;border-radius:26px;font-size:.85rem;font-weight:700;
  opacity:0;pointer-events:none;transition:.3s;z-index:110;}
.tk-oto .toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
.tk-oto footer{padding:54px 20px 66px;text-align:center;border-top:1px solid #1b1813;margin-top:36px;}
.tk-oto footer .fh{font-family:var(--disp);font-size:1.12rem;color:var(--sepia);margin-bottom:14px}
.tk-oto footer .back{display:inline-block;font-size:.85rem;color:var(--silver);
  border-bottom:1px solid var(--steel);padding-bottom:2px;}
.tk-oto footer small{display:block;margin-top:18px;color:var(--silver-dim);
  font-family:var(--mono);font-size:.66rem;letter-spacing:.15em}
@media(min-width:640px){
  .tk-oto{font-size:17px}
}
@media (prefers-reduced-motion:reduce){
  .tk-oto .playing .reel, .tk-oto .playing .vu .bars i, .tk-oto .tape-card.active .tape-mini i{animation:none}
}


/* ==========================================================
   探しています
   固定ページを <div class="tk-sagashi"> ～ </div> で囲んでください
   ========================================================== */
.tk-sagashi *{margin:0;padding:0;box-sizing:border-box}
.tk-sagashi{scroll-behavior:smooth}
.tk-sagashi{font-family:var(--body);color:var(--ink);background:var(--paper);
  background-image:
    radial-gradient(rgba(140,110,70,.05) 1px,transparent 1.4px),
    radial-gradient(rgba(255,255,255,.4) 1px,transparent 1.6px);
  background-size:9px 9px,23px 23px;
  background-position:0 0,4px 7px;
  line-height:2;letter-spacing:.04em;font-size:16px;
  -webkit-font-smoothing:antialiased;}
.tk-sagashi a{color:inherit;text-decoration:none}
.tk-sagashi .wrap{max-width:620px;margin:0 auto;padding:0 20px}
.tk-sagashi section{padding:56px 0}
.tk-sagashi header{padding:70px 20px 52px;text-align:center;position:relative;overflow:hidden;}
.tk-sagashi header .kicker{font-family:var(--mincho);font-size:.92rem;letter-spacing:.28em;
  color:var(--ink-soft);margin-bottom:20px;padding-left:.3em;}
.tk-sagashi header h1{font-family:var(--mincho);font-weight:800;
  font-size:clamp(1.85rem,7vw,2.7rem);line-height:1.55;letter-spacing:.03em;}
.tk-sagashi header h1 .em{color:var(--navy-deep)}
.tk-sagashi header .sub{font-family:var(--maru);font-weight:500;
  margin-top:24px;font-size:1.05rem;color:var(--ink-soft);}
.tk-sagashi .petal{position:absolute;width:15px;height:15px;background:var(--petal);
  border-radius:15px 0;opacity:.85;animation:tk-sagashi-sway 8s ease-in-out infinite;}
.tk-sagashi .petal.a{top:12%;left:8%;transform:rotate(18deg)}
.tk-sagashi .petal.b{top:24%;right:9%;transform:rotate(-32deg);animation-delay:2s}
.tk-sagashi .petal.c{bottom:16%;right:24%;width:10px;height:10px;animation-delay:4s}
.tk-sagashi .petal.d{bottom:12%;left:18%;width:11px;height:11px;animation-delay:1s}
@keyframes tk-sagashi-sway{0%,100%{translate:0 0}50%{translate:7px 12px}}
@media (prefers-reduced-motion:reduce){
  .tk-sagashi .petal{animation:none}
}
.tk-sagashi .numbers{display:flex;justify-content:center;align-items:stretch;
  gap:0;margin-top:8px;}
.tk-sagashi .num-box{flex:1;text-align:center;padding:22px 8px;}
.tk-sagashi .num-box + .num-box{border-left:1px dashed rgba(90,74,60,.3)}
.tk-sagashi .num-box .n{font-family:var(--mincho);font-weight:800;
  font-size:clamp(2.4rem,10vw,3.4rem);line-height:1.1;display:block;}
.tk-sagashi .num-box.all .n{color:var(--ink)}
.tk-sagashi .num-box.now .n{color:var(--navy-deep)}
.tk-sagashi .num-box .l{font-size:.82rem;color:var(--ink-soft);letter-spacing:.08em;
  display:block;margin-top:6px;line-height:1.7;}
.tk-sagashi .num-lead{text-align:center;font-family:var(--mincho);font-weight:600;
  font-size:1.15rem;margin-top:20px;line-height:1.9;}
.tk-sagashi .num-lead .strong{color:var(--navy-deep)}
.tk-sagashi .card{background:var(--paper-hi);
  border:1px solid rgba(90,74,60,.12);
  border-radius:6px;
  box-shadow:0 4px 16px rgba(90,74,60,.09);
  padding:32px 22px;position:relative;}
.tk-sagashi .card.taped::before{content:"";position:absolute;top:-11px;left:50%;
  width:104px;height:24px;background:var(--tape);
  transform:translateX(-50%) rotate(-1.8deg);
  box-shadow:0 1px 3px rgba(90,74,60,.14);}
.tk-sagashi .sec-h{font-family:var(--mincho);font-weight:800;
  font-size:1.4rem;text-align:center;margin-bottom:6px;}
.tk-sagashi .sec-sub{font-family:var(--maru);color:var(--navy-deep);
  text-align:center;font-size:.82rem;letter-spacing:.18em;margin-bottom:26px;}
.tk-sagashi .story p + p{margin-top:18px}
.tk-sagashi .story .lead-line{font-family:var(--mincho);font-weight:800;
  font-size:1.2rem;color:var(--navy-deep);
  text-align:center;line-height:1.9;
  padding:22px 0;margin-top:8px;}
.tk-sagashi .asks{display:grid;gap:14px;margin-top:8px}
.tk-sagashi .ask{background:var(--paper-hi);border:1px solid rgba(90,74,60,.12);
  border-radius:6px;padding:22px 20px;
  display:flex;gap:16px;align-items:flex-start;}
.tk-sagashi .ask .no{font-family:var(--mincho);font-weight:800;font-size:1.5rem;
  color:var(--green);line-height:1.2;flex-shrink:0;}
.tk-sagashi .ask .t{font-family:var(--mincho);font-weight:800;font-size:1.05rem;
  display:block;margin-bottom:6px;}
.tk-sagashi .ask .d{font-size:.88rem;color:var(--ink-soft);line-height:1.85}
.tk-sagashi .share-area{text-align:center}
.tk-sagashi .share{display:grid;gap:12px;margin-top:6px}
.tk-sagashi .share a, .tk-sagashi .share button{font-family:var(--maru);font-weight:700;font-size:1rem;
  border-radius:30px;padding:16px 20px;letter-spacing:.06em;
  cursor:pointer;border:none;display:block;width:100%;
  transition:transform .15s ease,box-shadow .15s ease;}
.tk-sagashi .share a:focus-visible, .tk-sagashi .share button:focus-visible{outline:3px solid var(--navy-deep);outline-offset:3px;}
.tk-sagashi .sh-line{background:var(--line-green);color:#fff;box-shadow:0 4px 0 #04a247}
.tk-sagashi .sh-fb{background:#1877F2;color:#fff;box-shadow:0 4px 0 #0f5cc0}
.tk-sagashi .sh-copy{background:var(--paper-hi);color:var(--ink);
  border:2px solid var(--ink)!important;box-shadow:0 4px 0 rgba(90,74,60,.3);}
.tk-sagashi .share a:hover, .tk-sagashi .share button:hover{transform:translateY(-2px)}
.tk-sagashi .url-box{margin-top:20px;font-family:var(--mincho);font-size:1rem;
  color:var(--ink-soft);letter-spacing:.05em;
  padding:14px;border:1px dashed rgba(90,74,60,.35);border-radius:6px;
  background:rgba(255,255,255,.4);}
.tk-sagashi .copytext{background:var(--paper-hi);border:1px solid rgba(90,74,60,.14);
  border-radius:6px;padding:22px 20px;margin-top:8px;
  font-size:.9rem;line-height:2;white-space:pre-line;color:#6E5A50;}
.tk-sagashi .copy-btn{display:block;width:100%;margin-top:14px;
  font-family:var(--maru);font-weight:700;font-size:.92rem;
  background:var(--navy);color:#fff;border:none;
  border-radius:30px;padding:14px;cursor:pointer;
  box-shadow:0 4px 0 var(--navy-deep);transition:transform .15s;}
.tk-sagashi .copy-btn:hover{transform:translateY(-2px)}
.tk-sagashi .copy-btn:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.tk-sagashi .you{background:var(--green-pale);border-radius:8px;
  padding:34px 24px;text-align:center;}
.tk-sagashi .you h2{font-family:var(--mincho);font-weight:800;font-size:1.3rem;
  margin-bottom:18px;line-height:1.7;}
.tk-sagashi .you p{font-size:.94rem;color:#6E5A50;text-align:left}
.tk-sagashi .you p + p{margin-top:14px}
.tk-sagashi .you .btn{display:block;margin-top:24px;
  background:var(--paper-hi);color:var(--ink);
  border:2px solid var(--ink);border-radius:8px;
  padding:20px;box-shadow:0 4px 0 rgba(90,74,60,.3);
  transition:transform .15s;}
.tk-sagashi .you .btn:hover{transform:translateY(-2px)}
.tk-sagashi .you .btn .t{font-family:var(--mincho);font-weight:800;font-size:1.15rem;display:block;}
.tk-sagashi .you .btn .s{font-size:.8rem;color:var(--ink-soft);display:block;margin-top:6px}
.tk-sagashi footer{background:var(--ink);color:var(--paper);
  text-align:center;padding:44px 20px 40px;margin-top:44px;}
.tk-sagashi footer .fh{font-family:var(--mincho);font-size:1.1rem;margin-bottom:16px;line-height:1.8}
.tk-sagashi footer .contact{font-size:.8rem;opacity:.85;line-height:2}
.tk-sagashi footer .home{display:inline-block;margin-top:20px;font-size:.85rem;
  border-bottom:1px solid rgba(246,239,224,.4);padding-bottom:2px;}
.tk-sagashi footer small{display:block;margin-top:22px;opacity:.55;font-size:.7rem;letter-spacing:.1em}
.tk-sagashi .toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);
  background:var(--ink);color:var(--paper);
  padding:12px 26px;border-radius:30px;font-size:.88rem;
  opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;z-index:50;}
.tk-sagashi .toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
@media(min-width:600px){
  .tk-sagashi{font-size:17px}
  .tk-sagashi .card{padding:40px 34px}
  .tk-sagashi .share{grid-template-columns:1fr 1fr}
  .tk-sagashi .share .sh-copy{grid-column:span 2}
}
/* ==========================================================
   お問い合わせ
   固定ページを <div class="tk-contact"> ～ </div> で囲んでください
   ========================================================== */
.tk-contact *{margin:0;padding:0;box-sizing:border-box}
.tk-contact{font-family:var(--body);color:var(--ink);background:var(--paper);
  line-height:1.9;letter-spacing:.04em;font-size:16px;
  -webkit-font-smoothing:antialiased;}
.tk-contact a{color:inherit;text-decoration:none}
.tk-contact .wrap{max-width:760px;margin:0 auto;padding:0 18px}
.tk-contact section{padding:42px 0}

.tk-contact header{text-align:center;padding:58px 18px 26px}
.tk-contact header .kicker{font-family:var(--mincho);font-size:.86rem;letter-spacing:.28em;
  color:var(--ink-soft);margin-bottom:14px;padding-left:.3em;}
.tk-contact header h1{font-family:var(--mincho);font-weight:800;
  font-size:clamp(1.9rem,7vw,2.7rem);line-height:1.35;}
.tk-contact header .lead{margin-top:18px;color:var(--ink-soft);font-size:.94rem;line-height:2;}

/* 呼びかけ */
.tk-contact .yobikake{
  background:var(--green-pale);border-radius:10px;
  padding:28px 24px;text-align:center;
  font-family:var(--mincho);line-height:2.1;}
.tk-contact .yobikake p{font-size:.95rem;color:#5A4A3C}
.tk-contact .yobikake p + p{margin-top:14px}
.tk-contact .yobikake .strong{font-weight:800;font-size:1.05rem;color:var(--navy-deep)}
.tk-contact .yobikake .small{font-family:var(--body);font-size:.85rem;color:var(--ink-soft);
  line-height:1.95;margin-top:16px;}

/* フォーム置き場 */
.tk-contact .form-stage{
  background:var(--paper-hi);
  border:1px solid rgba(90,74,60,.12);border-radius:8px;
  box-shadow:0 4px 16px rgba(90,74,60,.09);
  padding:10px;position:relative;overflow:hidden;}
.tk-contact .form-stage::before{
  content:"";position:absolute;top:-11px;left:50%;
  width:100px;height:23px;background:var(--tape);
  transform:translateX(-50%) rotate(-1.7deg);z-index:2;
  box-shadow:0 1px 3px rgba(90,74,60,.14);}
.tk-contact .form-stage iframe{display:block;width:100%;border:0;background:transparent}
.tk-contact .fallback{
  text-align:center;font-size:.83rem;color:var(--ink-soft);margin-top:16px;line-height:1.9;}
.tk-contact .fallback a{border-bottom:1px solid rgba(90,74,60,.4);padding-bottom:1px}

/* お返事について */
.tk-contact .note-card{
  background:var(--paper-hi);
  border:1px solid rgba(90,74,60,.12);border-radius:8px;
  box-shadow:0 4px 16px rgba(90,74,60,.09);
  padding:28px 24px;}
.tk-contact .note-card h2{font-family:var(--mincho);font-weight:800;font-size:1.14rem;
  text-align:center;margin-bottom:16px;}
.tk-contact .note-card p{font-size:.89rem;color:#6E5A50;line-height:1.95}
.tk-contact .note-card p + p{margin-top:13px}

.tk-contact footer{background:var(--ink);color:var(--paper);
  text-align:center;padding:44px 20px 40px;margin-top:40px;}
.tk-contact footer .fh{font-family:var(--mincho);font-size:1.1rem;margin-bottom:16px}
.tk-contact footer .back{display:inline-block;font-size:.85rem;
  border-bottom:1px solid rgba(246,239,224,.4);padding-bottom:2px;}
.tk-contact footer small{display:block;margin-top:20px;opacity:.6;font-size:.72rem;letter-spacing:.1em}

@media(min-width:620px){
  .tk-contact{font-size:17px}
  .tk-contact .form-stage{padding:16px}
}
/* ---- トップ：番組表カードをリンク化したぶんの調整 ---- */
.tk-top a.prog{ display:block; color:inherit; text-decoration:none; }
.tk-top a.prog:focus-visible{ outline:3px solid var(--navy); outline-offset:3px; }

/* ---- トップ：ページ間ナビ ---- */
.tk-top .subnav{
  display:flex; flex-wrap:wrap; gap:10px; justify-content:center;
}
.tk-top .subnav a{
  font-family:var(--maru); font-weight:700; font-size:.86rem;
  background:var(--paper-hi); border:1.5px solid rgba(90,74,60,.25);
  color:var(--ink-soft); border-radius:24px; padding:11px 22px;
  transition:.2s;
}
.tk-top .subnav a:hover{ border-color:var(--navy); color:var(--ink); }
.tk-top .subnav a:focus-visible{ outline:2px solid var(--navy-deep); outline-offset:2px; }

/* ============================================================
   Cocoonが自動で出す装飾を消す（たくちゃんねる用）
   ============================================================ */

/* ヘッダー全体（サイトタイトル・キャッチフレーズ）を非表示 */
#header, .header, #header-container, .header-container,
.site-name-text, .tagline, #navi, .navi { display:none !important; }

/* SNSシェア・フォローボタン */
.sns-share, .sns-follow,
.sns-share-buttons, .sns-follow-buttons,
.sns-buttons, .article-footer .sns-share { display:none !important; }

/* 投稿日・更新日 */
.date-tags, .post-date, .entry-date, .post-update,
.article .date-tags { display:none !important; }

/* サイドバー（1カラム化） */
#sidebar, .sidebar { display:none !important; }
#main, .main, #content, .content,
#container, .container {
  width:100% !important; max-width:100% !important; float:none !important;
}

/* フッターのCocoon既定表示 */
.footer-bottom-logo, .copyright, .footer-bottom-content { display:none !important; }

/* 記事上下の余白リセット */
.article, .entry-content { padding:0 !important; margin:0 !important; }

/************************************
** レスポンシブデザイン用のメディアクエリ
************************************/
/*1023px以下*/
@media screen and (max-width: 1023px){
  /*必要ならばここにコードを書く*/
}

/*834px以下*/
@media screen and (max-width: 834px){
  /*必要ならばここにコードを書く*/
}

/*480px以下*/
@media screen and (max-width: 480px){
  /*必要ならばここにコードを書く*/
}

/* サイドバーを消して、本文を全幅に */
#sidebar, .sidebar { display:none !important; }
#main, .main, #content, .content { width:100% !important; max-width:100% !important; float:none !important; }

/* ============================================================
   パスワード保護ページの入口（卒業生限定ページの扉）
   ============================================================ */
.post-password-form{
  max-width:520px;
  margin:60px auto;
  background:var(--paper-hi);
  border:1px solid rgba(90,74,60,.14);
  border-radius:10px;
  box-shadow:0 8px 30px rgba(90,74,60,.12);
  padding:44px 30px 38px;
  position:relative;
  text-align:center;
  font-family:var(--body);
  color:var(--ink);
  line-height:1.95;
}
/* セロテープの飾り */
.post-password-form::before{
  content:"";position:absolute;top:-11px;left:50%;
  width:104px;height:24px;background:var(--tape);
  transform:translateX(-50%) rotate(-1.7deg);
  box-shadow:0 1px 3px rgba(90,74,60,.14);
}
/* 説明文 */
.post-password-form p{
  font-size:.93rem;
  color:var(--ink-soft);
  margin-bottom:8px;
}
.post-password-form p:first-of-type{
  font-family:var(--mincho);
  font-weight:800;
  font-size:1.16rem;
  color:var(--ink);
  line-height:1.85;
  margin-bottom:22px;
}
/* ラベル */
.post-password-form label{
  display:block;
  font-family:var(--maru);
  font-weight:700;
  font-size:.86rem;
  color:var(--ink-soft);
  letter-spacing:.1em;
}
/* 入力欄 —— ここが「横に広い」の修正点 */
.post-password-form input[type="password"]{
  display:block;
  width:100%;
  max-width:260px;
  margin:12px auto 0;
  padding:14px 16px;
  font-family:var(--body);
  font-size:1.05rem;
  text-align:center;
  letter-spacing:.14em;
  color:var(--ink);
  background:var(--paper);
  border:1.5px solid rgba(90,74,60,.3);
  border-radius:8px;
  box-sizing:border-box;
}
.post-password-form input[type="password"]:focus{
  outline:none;
  border-color:var(--navy);
  box-shadow:0 0 0 3px rgba(46,70,100,.12);
}
/* 送信ボタン */
.post-password-form input[type="submit"]{
  display:block;
  margin:20px auto 0;
  background:var(--navy);
  color:#fff;
  border:none;
  font-family:var(--mincho);
  font-weight:800;
  font-size:1.02rem;
  padding:15px 44px;
  border-radius:8px;
  box-shadow:0 4px 0 var(--navy-deep);
  cursor:pointer;
  transition:transform .15s;
}
.post-password-form input[type="submit"]:hover{ transform:translateY(-2px); }
.post-password-form input[type="submit"]:focus-visible{
  outline:3px solid var(--green); outline-offset:3px;
}

@media(max-width:520px){
  .post-password-form{ margin:40px 18px; padding:36px 22px 32px; }
}
/* ============================================================
   たくちゃんロゴ（丸いスタンプ）の配置
   ============================================================ */

/* --- トップ 番組表①のカード内 --- */
.tk-top .prog-logo{
  display:block;
  width:88px;
  height:auto;
  margin:4px 0 10px;
  opacity:.92;
}
/* 横並びが取れる幅では、右上にそっと押す */
@media(min-width:480px){
  .tk-top .prog{ position:relative; }
  .tk-top .prog-logo{
    position:absolute;
    top:18px; right:18px;
    width:76px;
    margin:0;
    opacity:.85;
  }
  .tk-top .prog h3{ padding-right:88px; }
  .tk-top .prog .desc{ padding-right:0; }
}

/* --- たくちゃんページ ヘッダーのロゴ --- */
.tk-tsushin .head-logo{
  display:block;
  width:min(190px,46%);
  height:auto;
  margin:6px auto 16px;
}

/* ---- お問い合わせ：呼びかけブロックの追記部分 ---- */
.tk-contact .yobikake .small2{
  font-family:var(--body);
  font-size:.83rem;
  color:var(--ink-soft);
  line-height:1.9;
  margin-top:16px;
  padding-top:16px;
  border-top:1px dashed rgba(90,74,60,.22);
}

/* ---- お問い合わせ：管理人の署名（呼びかけブロック内） ---- */
.tk-contact .yobikake .kanri{
  margin-top:18px;
  text-align:right;
  font-family:var(--body);
  font-size:.8rem;
  color:var(--ink-soft);
  line-height:1.8;
}
.tk-contact .yobikake .kanri-name{
  font-family:var(--mincho);
  font-weight:800;
  font-size:1.02rem;
  color:var(--ink);
  letter-spacing:.06em;
}
/* ---- トップ：延期のお知らせ内の告知画像 ---- */
.tk-top .notice-img{
  display:block;
  width:100%;
  max-width:400px;
  height:auto;
  margin:0 auto 24px;
  border-radius:6px;
  box-shadow:0 4px 16px rgba(90,74,60,.18);
}
@media(min-width:640px){
  .tk-top .notice-img{ max-width:440px; }
}
/* 固定ページのアイキャッチ画像を画面に表示しない（OGP用としてのみ使う） */
.page .eye-catch, .page .eye-catch-wrap,
.entry-content > .eye-catch,
#main .eye-catch { display:none !important; }
/* ---- たくちゃん：ロゴを見出しに（h1内のimg） ---- */
.tk-tsushin header h1{
  margin:0;
  line-height:0;
}
.tk-tsushin header h1 .head-logo{
  display:block;
  width:min(200px,48%);
  height:auto;
  margin:10px auto 18px;
}

/* ---- たくちゃん：号数ジャンプ ---- */
.tk-tsushin .jump{
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  margin-bottom:22px;
}
.tk-tsushin .jump label{
  font-family:var(--mincho);
  font-size:.92rem;
  color:var(--ink-soft);
}
.tk-tsushin .jump input{
  width:92px;
  padding:10px 12px;
  font-size:1.05rem;
  font-family:var(--mincho);
  border:1.5px solid rgba(90,74,60,.3);
  border-radius:6px;
  background:var(--paper-hi);
  color:var(--ink);
  text-align:center;
}
.tk-tsushin .jump input:focus-visible{
  outline:2px solid var(--accent-deep);
  outline-offset:2px;
}
.tk-tsushin .jump button{
  background:var(--accent);
  color:#fff;
  border:none;
  font-family:var(--maru);
  font-weight:700;
  font-size:.92rem;
  padding:11px 26px;
  border-radius:24px;
  box-shadow:0 3px 0 var(--accent-deep);
  transition:transform .12s;
  cursor:pointer;
}
.tk-tsushin .jump button:hover{ transform:translateY(-2px); }
.tk-tsushin .jump button:focus-visible{
  outline:2px solid var(--ink);
  outline-offset:3px;
}
/* ---- たくちゃん：ロゴを見出しに（h1内のimg） ---- */
.tk-tsushin header h1{
  margin:0;
  line-height:0;
}
.tk-tsushin header h1 .head-logo{
  display:block;
  width:min(200px,48%);
  height:auto;
  margin:10px auto 18px;
}

/* ---- たくちゃん：号数ジャンプ ---- */
.tk-tsushin .jump{
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  margin-bottom:22px;
}
.tk-tsushin .jump label{
  font-family:var(--mincho);
  font-size:.92rem;
  color:var(--ink-soft);
}
.tk-tsushin .jump input{
  width:92px;
  padding:10px 12px;
  font-size:1.05rem;
  font-family:var(--mincho);
  border:1.5px solid rgba(90,74,60,.3);
  border-radius:6px;
  background:var(--paper-hi);
  color:var(--ink);
  text-align:center;
}
.tk-tsushin .jump input:focus-visible{
  outline:2px solid var(--accent-deep);
  outline-offset:2px;
}
.tk-tsushin .jump button{
  background:var(--accent);
  color:#fff;
  border:none;
  font-family:var(--maru);
  font-weight:700;
  font-size:.92rem;
  padding:11px 26px;
  border-radius:24px;
  box-shadow:0 3px 0 var(--accent-deep);
  transition:transform .12s;
  cursor:pointer;
}
.tk-tsushin .jump button:hover{ transform:translateY(-2px); }
.tk-tsushin .jump button:focus-visible{
  outline:2px solid var(--ink);
  outline-offset:3px;
}