/*
Theme Name: Greenlog
Description: ライトグリーンのやさしい雰囲気の個人ブログ用オリジナルテーマ（モバイルファースト）。吹き出しブロック付き。
Version: 2.2.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: greenlog
*/

/* ==========================================================
   モバイルファースト：基本（〜スマホ）のスタイルを先に書き、
   広い画面は min-width のメディアクエリで追加する
   ========================================================== */

:root{
  --gl-main:#a8e6a1;
  --gl-main-dark:#5fbf6a;
  --gl-deep:#2e6e39;
  --gl-ink:#1f4a27;
  --gl-pale:#edf9ea;
  --gl-bg:#f6fbf3;
  --gl-text:#25302a;
  --gl-sub:#6a7a6d;
  --gl-line:#dbeed6;
  --gl-head:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --gl-bubble:20px 20px 20px 5px;
  --c-daily:#a8e6a1;
  --c-game:#9fe0d0;
  --c-travel:#dcee9a;
  --c-diet:#c3dfae;
  --c-other:#d9ecd5;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--gl-bg);color:var(--gl-text);
  font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic","Meiryo",sans-serif;
  line-height:1.9;font-size:16px;overflow-wrap:anywhere;
}
a{color:var(--gl-deep);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:4px}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--gl-main-dark);outline-offset:2px}
img{max-width:100%;height:auto}
h1,h2,h3,h4,.logo__text,.chip,.gnav a{font-family:var(--gl-head)}

/* 波線 */
.wave{display:block;width:56px;height:8px;margin:10px 0 0;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='8' viewBox='0 0 16 8'%3E%3Cpath d='M0 4 Q4 0 8 4 T16 4' fill='none' stroke='%235fbf6a' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") repeat-x left center/16px 8px}

/* チップ */
.chip{display:inline-block;padding:1px 12px;border-radius:999px;font-size:.75rem;font-weight:700;color:var(--gl-ink);background:var(--c-other);line-height:1.8}
.chip:hover{text-decoration:none;filter:brightness(.96)}
.cat-daily{background:var(--c-daily)}
.cat-game{background:var(--c-game)}
.cat-travel{background:var(--c-travel)}
.cat-diet{background:var(--c-diet)}

/* ヘッダー：スマホでは画面を占有しないよう固定しない。ロゴの下にナビを1行で横スクロール */
.site-header{background:#fff;border-bottom:1px solid var(--gl-line)}
.site-header__inner{max-width:1080px;margin:0 auto;padding:10px 0 8px}
.logo{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--gl-ink);padding:0 16px 6px}
.logo:hover{text-decoration:none}
.logo__mark{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--gl-main)}
.logo__text{font-size:1.25rem;font-weight:700;letter-spacing:.05em}
.gnav ul{list-style:none;margin:0;padding:0 12px;display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.gnav ul::-webkit-scrollbar{display:none}
.gnav li{flex:0 0 auto}
.gnav a{display:flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;color:var(--gl-text);font-weight:700;font-size:.9rem;white-space:nowrap}
.gnav a:hover{background:var(--gl-pale);text-decoration:none}
.gnav .is-current a{background:var(--gl-main);color:var(--gl-ink)}

/* レイアウト */
.wrap{max-width:1080px;margin:0 auto;padding:0 16px}
.site-main{padding:24px 0 4px}
.section-title{margin:36px 0 18px;font-size:1.2rem;line-height:1.5}
.section-title:first-child{margin-top:4px}
.archive-title{margin:4px 0 22px;font-size:1.3rem}

/* ヒーロー */
.hero{margin-top:18px}
.hero__panel{position:relative;overflow:hidden;background:linear-gradient(135deg,#e4f8df 0%,#bdeab5 100%);border-radius:28px 28px 28px 6px;padding:30px 20px 20px}
.hero__panel::before,.hero__panel::after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.45)}
.hero__panel::before{width:160px;height:160px;right:-50px;top:-60px}
.hero__panel::after{width:80px;height:80px;right:60px;bottom:-34px}
.hero__lead{position:relative;z-index:1;margin:0;font-size:1.35rem;line-height:1.65;color:var(--gl-ink);font-family:var(--gl-head);font-weight:700}
.hero .wave{position:relative;z-index:1}
.hero__tiles{position:relative;z-index:1;list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.tile{display:flex;align-items:center;gap:10px;min-height:56px;padding:8px 12px;background:rgba(255,255,255,.85);border-radius:18px 18px 18px 5px;color:var(--gl-text)}
.tile:hover{text-decoration:none;background:#fff}
.tile__icon{flex:0 0 38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.15rem}
.tile__name{display:block;font-family:var(--gl-head);font-weight:700;line-height:1.3;font-size:.92rem}
.tile__count{display:block;font-size:.72rem;color:var(--gl-sub);line-height:1.3}

/* 注目記事 */
.feature{position:relative;display:block;border-radius:var(--gl-bubble);overflow:hidden;background:var(--gl-pale);margin-bottom:28px;color:#fff}
.feature:hover{text-decoration:none}
.feature__img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.feature__noimg{display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;font-size:3rem;background:linear-gradient(135deg,#e4f8df,#bdeab5)}
.feature__text{position:absolute;left:0;right:0;bottom:0;padding:44px 16px 14px;background:linear-gradient(transparent,rgba(20,50,25,.74))}
.feature__title{margin:6px 0 2px;font-size:1.15rem;line-height:1.5;color:#fff;font-family:var(--gl-head);font-weight:700}
.feature:hover .feature__title{text-decoration:underline;text-underline-offset:5px}
.feature__date{font-size:.78rem;opacity:.92}

/* 記事カード：スマホは1列で、画像を左・文字を右の横並びにして一覧性を上げる */
.post-list{display:grid;grid-template-columns:1fr;gap:20px}
.card{display:grid;grid-template-columns:112px 1fr;gap:0 14px;align-items:start}
.card__thumb{grid-row:1 / span 3;display:block;aspect-ratio:1/1;overflow:hidden;border-radius:16px 16px 16px 4px;background:var(--gl-pale)}
.card__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.card__noimg{display:flex;align-items:center;justify-content:center;height:100%;font-size:1.8rem;background:linear-gradient(135deg,#e4f8df,#c9eec2)}
.card__meta{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;margin:0 0 2px;font-size:.75rem;color:var(--gl-sub)}
.card__title{margin:0;font-size:.98rem;line-height:1.55}
.card__title a{color:var(--gl-text)}
.card__excerpt{display:none}

/* ページネーション */
.pagination{margin:36px 0 0;text-align:center}
.pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 12px;margin:3px;border-radius:999px;background:#fff;border:1px solid var(--gl-line);font-weight:700}
.pagination .page-numbers:hover{text-decoration:none;background:var(--gl-pale)}
.pagination .current{background:var(--gl-main);border-color:var(--gl-main);color:var(--gl-ink)}

/* 記事ページ */
.single-wrap{max-width:780px;margin:0 auto;padding:24px 16px 4px}
.entry__head{text-align:center;margin:4px 0 20px}
.entry__title{margin:10px 0 6px;font-size:1.45rem;line-height:1.55;color:var(--gl-ink)}
.entry__date{font-size:.82rem;color:var(--gl-sub)}
.entry__head .wave{margin:12px auto 0}
.entry__thumb{margin:0 0 20px;border-radius:var(--gl-bubble);overflow:hidden}
.entry__thumb img{display:block;width:100%}
.entry__body{background:#fff;border-radius:var(--gl-bubble);padding:22px 16px;border:1px solid var(--gl-line)}
.entry__content{font-size:1rem}
.entry__content>*:first-child{margin-top:0}
.entry__content h2{width:fit-content;max-width:100%;margin:2.2em 0 1em;padding:0 4px;font-size:1.25rem;line-height:1.6;color:var(--gl-ink);background:linear-gradient(transparent 58%,var(--gl-main) 58%)}
.entry__content h3{margin:1.9em 0 .8em;padding:0 0 6px 14px;font-size:1.1rem;line-height:1.6;color:var(--gl-ink);position:relative;border-bottom:2px dotted var(--gl-main)}
.entry__content h3::before{content:"";position:absolute;left:0;top:.45em;width:7px;height:7px;border-radius:50%;background:var(--gl-main-dark);box-shadow:0 0 0 4px var(--gl-pale)}
.entry__content h4{margin:1.6em 0 .6em;color:var(--gl-deep)}
.entry__content blockquote{margin:1.5em 0;padding:12px 16px;background:var(--gl-pale);border-radius:6px 18px 18px 18px;border:0}
.entry__content ul,.entry__content ol{padding-left:1.4em}
.entry__content li::marker{color:var(--gl-main-dark)}
.entry__content table{display:block;overflow-x:auto;border-collapse:collapse;width:100%}
.entry__content th,.entry__content td{border:1px solid var(--gl-line);padding:8px 12px}
.entry__content th{background:var(--gl-pale)}
.entry__content img{border-radius:12px}
.entry__content iframe,.entry__content video{max-width:100%}
.entry__tags{margin:22px 0 0;font-size:.85rem;color:var(--gl-sub)}
.post-nav{display:grid;grid-template-columns:1fr;gap:10px;margin:22px 0 0;font-size:.88rem}
.post-nav a{display:flex;align-items:center;min-height:44px;padding:8px 16px;background:#fff;border:1px solid var(--gl-line);border-radius:16px}
.post-nav a:hover{background:var(--gl-pale);text-decoration:none}
.post-nav span:empty{display:none}
.related{margin-top:44px}

/* コメント */
.comments{margin-top:30px;background:#fff;border:1px solid var(--gl-line);border-radius:var(--gl-bubble);padding:20px 16px}
.comments h2{font-size:1.1rem;margin-top:0}
.comments ol{list-style:none;padding-left:0}
.comments .children{list-style:none;padding-left:14px}
.comment-body{padding:12px 0;border-bottom:1px dashed var(--gl-line)}
.comments input[type=text],.comments input[type=email],.comments input[type=url],.comments textarea{width:100%;padding:10px 12px;border:1px solid var(--gl-line);border-radius:12px;font:inherit;font-size:16px}
.comments .submit{background:var(--gl-main-dark);color:#fff;border:0;min-height:44px;padding:0 26px;border-radius:999px;cursor:pointer;font-weight:700}

/* 検索フォーム（iOSのズーム防止で入力は16px） */
.search-form{display:flex;gap:8px;width:100%;max-width:420px}
.search-form input[type=search]{flex:1;min-width:0;min-height:44px;padding:0 16px;border:2px solid var(--gl-main);border-radius:999px;background:#fff;font:inherit;font-size:16px}
.search-form button{min-height:44px;padding:0 20px;border:0;border-radius:999px;background:var(--gl-main-dark);color:#fff;font-weight:700;cursor:pointer}

.plain{max-width:640px;margin:16px auto;text-align:center}
.plain .search-form{margin:0 auto}

/* フッター */
.site-footer{position:relative;margin-top:60px;background:var(--gl-main);padding:30px 16px 24px;color:var(--gl-ink)}
.site-footer::before{content:"";position:absolute;left:0;right:0;top:-19px;height:20px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='20' viewBox='0 0 80 20'%3E%3Cpath d='M0 20 V12 Q20 0 40 12 T80 12 V20z' fill='%23a8e6a1'/%3E%3C/svg%3E") repeat-x left bottom/80px 20px}
.site-footer__inner{max-width:1080px;margin:0 auto;display:flex;flex-direction:column;gap:18px;align-items:center}
.site-footer .search-form input[type=search]{border-color:#fff}
.site-footer .search-form button{background:var(--gl-deep)}
.site-footer__cats{list-style:none;margin:0;padding:0;display:flex;gap:2px 16px;flex-wrap:wrap;justify-content:center}
.site-footer__cats a{display:inline-flex;align-items:center;min-height:40px;color:var(--gl-ink);font-family:var(--gl-head);font-weight:700}
.site-footer__copy{margin:0;font-size:.76rem;text-align:center;opacity:.85}

.screen-reader-text{position:absolute;left:-9999px}
.alignleft{float:left;margin:0 1em 1em 0}.alignright{float:right;margin:0 0 1em 1em}.aligncenter{display:block;margin:0 auto}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* ==========================================================
   ここから広い画面向けの追加
   ========================================================== */

/* 大きめスマホ・小型タブレット */
@media(min-width:520px){
  .wrap{padding:0 20px}
  .single-wrap{padding:28px 20px 4px}
  .post-list{grid-template-columns:repeat(2,1fr);gap:30px 20px}
  /* 縦型カードに切り替え */
  .card{display:block}
  .card__thumb{aspect-ratio:4/3;border-radius:20px 20px 20px 5px}
  .card__noimg{font-size:2.2rem}
  .card__meta{margin:12px 0 2px;font-size:.78rem}
  .card__title{font-size:1.02rem;line-height:1.6}
  .card__excerpt{display:-webkit-box;margin:4px 0 0;font-size:.84rem;line-height:1.7;color:var(--gl-sub);-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .entry__body{padding:30px 32px}
  .comments{padding:24px 28px}
  .post-nav{grid-template-columns:1fr 1fr}
  .related .post-list{grid-template-columns:repeat(3,1fr);gap:20px 14px}
  .related .card__excerpt{display:none}
}

/* タブレット */
@media(min-width:640px){
  .feature{--gl-bubble:24px 24px 24px 6px}
  .feature__img,.feature__noimg{aspect-ratio:21/9}
  .feature__text{padding:56px 28px 22px}
  .feature__title{font-size:1.6rem}
  .site-footer__inner{flex-direction:row;flex-wrap:wrap;justify-content:space-between}
  .site-footer__copy{width:100%}
}

@media(min-width:760px){
  .hero{margin-top:28px}
  .hero__panel{border-radius:40px 40px 40px 8px;padding:48px 40px 36px}
  .hero__panel::before{width:260px;height:260px;right:-70px;top:-90px}
  .hero__panel::after{width:120px;height:120px;right:150px;bottom:-50px}
  .hero__lead{max-width:18em;font-size:2.1rem}
  .hero__tiles{grid-template-columns:repeat(4,1fr);gap:12px;margin-top:30px}
  .tile{padding:12px 14px;gap:12px}
  .tile__icon{flex-basis:44px;height:44px;font-size:1.3rem}
  .tile__name{font-size:1rem}
  .tile__count{font-size:.75rem}
  .section-title{font-size:1.35rem;margin:44px 0 22px}
  .archive-title{font-size:1.5rem}
  .entry__title{font-size:2rem}
  .entry__content h2{font-size:1.4rem}
  .entry__content h3{font-size:1.15rem}
}

/* PC：ヘッダーを横並び・上部固定にする */
@media(min-width:860px){
  .post-list{grid-template-columns:repeat(3,1fr);gap:34px 24px}
  .site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.92);backdrop-filter:blur(8px)}
  .site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px}
  .logo{padding:0;justify-content:flex-start}
  .logo__mark{width:38px;height:38px}
  .logo__text{font-size:1.35rem}
  .gnav ul{padding:0;overflow:visible;gap:4px}
  .gnav a{min-height:0;padding:6px 14px}
}

/* フッターの固定ページリンク */
.site-footer__links{display:flex;flex-direction:column;align-items:center;gap:2px}
.site-footer__pages{list-style:none;margin:0;padding:0;display:flex;gap:0 16px;flex-wrap:wrap;justify-content:center}
.site-footer__pages a{display:inline-flex;align-items:center;min-height:36px;color:var(--gl-ink);font-size:.85rem}
@media(min-width:640px){
  .site-footer__links{align-items:flex-start}
  .site-footer__cats,.site-footer__pages{justify-content:flex-start}
}
