@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
*/

/************************************
** 子テーマ用のスタイルを書く
************************************/
/*必要ならばここにコードを書く*/

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

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

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

/**
 * 津久見電波情報局 HOME NEW - TODAY自動表示
 * 日本時間の日付を /MM-DD/ 形式の記事リンクへ変換します。
 */
(function () {
  'use strict';

  function updateToday() {
    var root = document.querySelector('[data-tsukumi-today]');
    if (!root) return;

    var parts = new Intl.DateTimeFormat('en-US', {
      timeZone: 'Asia/Tokyo',
      month: '2-digit',
      day: '2-digit'
    }).formatToParts(new Date());

    var month = parts.find(function (part) { return part.type === 'month'; });
    var day = parts.find(function (part) { return part.type === 'day'; });
    if (!month || !day) return;

    var monthNumber = month.value;
    var dayNumber = day.value;
    var monthNames = [
      'JANUARY', 'FEBRUARY', 'MARCH', 'APRIL', 'MAY', 'JUNE',
      'JULY', 'AUGUST', 'SEPTEMBER', 'OCTOBER', 'NOVEMBER', 'DECEMBER'
    ];
    var monthIndex = Number(monthNumber) - 1;

    var englishDate = root.querySelector('[data-tsukumi-date-en]');
    var englishMonth = root.querySelector('[data-tsukumi-month-en]');
    var englishDay = root.querySelector('[data-tsukumi-day-en]');
    var japaneseDate = root.querySelector('[data-tsukumi-date-ja]');
    var storyLink = root.querySelector('[data-tsukumi-today-link]');

    if (englishDate) englishDate.textContent = monthNames[monthIndex] + ' ' + Number(dayNumber);
    if (englishMonth) englishMonth.textContent = monthNames[monthIndex];
    if (englishDay) englishDay.textContent = Number(dayNumber);
    if (japaneseDate) japaneseDate.textContent = Number(monthNumber) + '月' + Number(dayNumber) + '日';
    if (storyLink) storyLink.setAttribute('href', '/' + monthNumber + '-' + dayNumber + '/');
  }

  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', updateToday);
  } else {
    updateToday();
  }
}());

/* Tsukumi TODAY: Japan date, published article, no Calendar mutations. */
(function () {
  'use strict';
  if (window.tsukumiTodayV3) return;
  window.tsukumiTodayV3 = true;
  function boot() {
    var root = document.querySelector('.tsukumi-home [data-tsukumi-today]');
    if (!root) return;
    var currentKey = '', generation = 0;
    function set(selector, text) { var el = root.querySelector(selector); if (el) el.textContent = text; }
    async function update() {
      var parts = new Intl.DateTimeFormat('en-US', {timeZone:'Asia/Tokyo',month:'2-digit',day:'2-digit'}).formatToParts(new Date());
      var m = parts.find(p => p.type === 'month').value;
      var d = parts.find(p => p.type === 'day').value;
      var key = m + '-' + d;
      if (key === currentKey) return;
      currentKey = key;
      var ticket = ++generation;
      var months = ['JANUARY','FEBRUARY','MARCH','APRIL','MAY','JUNE','JULY','AUGUST','SEPTEMBER','OCTOBER','NOVEMBER','DECEMBER'];
      set('[data-tsukumi-date-en]', months[Number(m)-1] + ' ' + Number(d));
      set('[data-tsukumi-date-ja]', Number(m) + '月' + Number(d) + '日');
      set('[data-tsukumi-anniversary]', '何の日？');
      set('[data-tsukumi-note]', '記念日の由来と、この日にまつわる物語。');
      set('[data-tsukumi-cta]', '今日の記念日を読む');
      root.querySelector('[data-tsukumi-today-link]').setAttribute('href','/' + key + '/');
      var controller = new AbortController();
      var timeout = setTimeout(() => controller.abort(), 10000);
      try {
        var res = await fetch('/wp-json/wp/v2/posts?slug=' + key + '&_fields=content', {signal:controller.signal});
        if (!res.ok) throw new Error('Article unavailable');
        var posts = await res.json();
        if (ticket !== generation || !posts.length) return;
        var doc = new DOMParser().parseFromString(posts[0].content.rendered,'text/html');
        var marker = Array.from(doc.querySelectorAll('h2')).find(h => h.textContent.trim().toUpperCase() === 'ANNIVERSARIES');
        var heading = null;
        for (var e = marker && marker.nextElementSibling; e && e.tagName !== 'H2'; e = e.nextElementSibling) {
          if (e.tagName === 'H3') { heading = e; break; }
        }
        if (!heading) return;
        var name = heading.textContent.trim();
        set('[data-tsukumi-anniversary]', name);
        set('[data-tsukumi-cta]', '記念日の由来を読む');
        var paragraph = heading.nextElementSibling;
        if (paragraph && paragraph.tagName === 'P') {
          var first = paragraph.textContent.trim().split('。')[0];
          if (first.length > 110) first = first.slice(0,107) + '…';
          else first += '。';
          set('[data-tsukumi-note]', first);
        }
      } catch (error) {
        // Keep a working date link and neutral copy if the API is unavailable.
        currentKey = '';
      } finally { clearTimeout(timeout); }
    }
    update();
    setInterval(update,60000);
    document.addEventListener('visibilitychange',function(){if(!document.hidden)update();});
    window.addEventListener('pageshow',update);
  }
  if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',boot);else boot();
}());