/* ===== base reset ===== */
*{box-sizing:border-box;}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans JP",sans-serif;line-height:1.7;color:#111;background:#f3f4f6;max-width:100%;overflow-x:hidden;}

img,video,iframe{max-width:100%;height:auto;}
.container{max-width:1120px;margin:0 auto;padding:0 16px;}
.site{min-height:100vh;display:flex;flex-direction:column;}
main{flex:1;}

/* ===== header ===== */
.site-header{background:#fff;border-bottom:1px solid #e5e7eb;}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:16px;}
.site-title{margin:0;font-size:18px;font-weight:800;letter-spacing:.02em;}
.site-title a{text-decoration:none;}

/* hamburger */
.menu-btn{
  display:flex;align-items:center;gap:10px;
  border:0;background:transparent;cursor:pointer;
  color:#111;padding:6px 8px;
  margin-top:6px;
}
.menu-btn__icon{width:22px;height:14px;position:relative;display:inline-block;}
.menu-btn__icon:before,.menu-btn__icon:after{
  content:"";position:absolute;left:0;right:0;height:2px;background:#111;
}
.menu-btn__icon:before{top:0;}
.menu-btn__icon:after{bottom:0;}
.menu-btn__icon{background:linear-gradient(#111,#111) center/100% 2px no-repeat;}
.menu-btn__text{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:lowercase;opacity:.85;}

/* overlay menu */
.menu-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.55);
  opacity:0;pointer-events:none;transition:opacity .2s ease;
  z-index:9999;
}
.menu-overlay.is-open{opacity:1;pointer-events:auto;}
.menu-overlay__panel{
  position:absolute;top:0;right:0;height:100%;
  width:min(520px, 86vw);
  background:#0b0b0b;color:#fff;
  padding:32px 24px;
  overflow:auto;
}
.menu-overlay__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;}
.menu-overlay__title{font-weight:900;letter-spacing:.06em;display:flex;align-items:center;gap:14px;}
.menu-overlay__title:after{content:"";flex:1;height:1px;background:rgba(255,255,255,.35);}
.menu-overlay__close{
  width:40px;height:40px;border:1px solid rgba(255,255,255,.2);
  background:transparent;color:#fff;font-size:22px;cursor:pointer;
}
.menu-overlay__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.menu-overlay__list a{
  display:flex;align-items:center;gap:10px;
  padding:10px 0;text-decoration:none;
  font-weight:800;letter-spacing:.04em;
}
.menu-overlay__list a:before,
.menu-overlay__item a:before{
  content:"▶";
  display:inline-block;
  margin-right:0;
  font-size:12px;
  opacity:.9;
  transform:none;
}

/* ネストされたサブメニュー（SITEMAP直下に二重表示される症状の保険） */
.menu-overlay__list ul{display:none !important;}
.menu-fallback{display:none !important;}
.menu-overlay__list a:hover{opacity:.9;}
html.is-menu-open{overflow:hidden;}

/* ===== hero ===== */
/*
  以前の full-bleed（left/right + 50vw 計算）方式は、環境によっては
  モバイルで横方向のオーバーフローを起こし、コンテンツが見切れることがありました。
  安定優先で 100% 幅のヒーローにします。
*/
.hero{position:relative;margin:0 0 12px;width:100vw;max-width:100vw;overflow:hidden;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;}
.hero__bg{height:340px;background-size:cover;background-position:center;filter:contrast(1.05) saturate(1.05);}
@media (max-width: 640px){ .hero__bg{height:240px;} }
.hero__inner{position:absolute;inset:0;display:flex;align-items:flex-end;padding-bottom:18px;}
.hero__copy{background:rgba(0,0,0,.45);color:#fff;padding:14px 16px;max-width:860px;}
.hero__copy--center{margin:0 auto;text-align:center;}
.hero__title{font-size:28px;font-weight:900;line-height:1.2;letter-spacing:.06em;}
.hero__desc{margin-top:8px;font-size:12px;opacity:.9;}
.hero-cta{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:12px;}
.btn{display:inline-block;background:#111;color:#fff;text-decoration:none;font-weight:900;font-size:12px;padding:10px 14px;border:1px solid #111;}
.btn--ghost{background:transparent;color:#fff;border-color:#fff;}

/* ===== layout ===== */
.layout{display:grid;grid-template-columns: 1fr 320px;gap:22px;margin:22px 0;}
.layout--one{grid-template-columns:1fr;}
@media (max-width: 960px){ .layout{grid-template-columns:1fr;} }

/* ===== section title + line ===== */
.section-head{display:flex;align-items:center;gap:14px;margin:14px 0 12px;}
.section-title{margin:0;font-size:18px;white-space:nowrap;}
.section-line{height:1px;background:currentColor;opacity:.25;flex:1;}

/* 見出しの上に少し余白（人気記事/最新記事/カテゴリなど） */
.section{padding-top:8px;}

/* ===== cards ===== */
.card{background:#fff;border:1px solid #e5e7eb;overflow:hidden;}
.card-body{padding:14px;}
.card-title{margin:10px 0 6px;font-size:18px;line-height:1.4;}
.card-title a{text-decoration:none;}
.meta{font-size:12px;color:#6b7280;display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.badge{display:inline-flex;align-items:center;font-size:12px;line-height:1.2;border:1px solid #e5e7eb;padding:2px 8px;background:#fffdd1;}

/* thumbnail ratio */
.thumb{position:relative;aspect-ratio:16/9;background:#eee;overflow:hidden;}
.thumb img{width:100%;height:100%;object-fit:cover;}

/* NEW badge */
.new-badge{
  position:absolute;left:10px;top:10px;
  background:#111;color:#fff;
  font-size:12px;font-weight:900;
  padding:4px 8px;
}

/* ===== grids ===== */
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;}
@media (max-width: 960px){ .grid-3{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width: 640px){ .grid-3{grid-template-columns:1fr;} }

/* ===== post ===== */
.entry{background:#fff;border:1px solid #e5e7eb;padding:18px;}
.entry h1{margin:0 0 10px;font-size:26px;line-height:1.25;}
.entry .post-thumb{margin:0 0 14px;}

/* (1) アイキャッチ余白：日付+カテゴリ（メタ）とアイキャッチの間に余白を作る */
body.single-post .entry-head .meta{margin-bottom:14px;}
body.single-post .entry-head + .post-thumb{margin-top:18px !important;}
@media (max-width: 640px){
  body.single-post .entry-head .meta{margin-bottom:12px;}
  body.single-post .entry-head + .post-thumb{margin-top:14px !important;}
}
.entry .content{max-width:none;}
.entry .content p{margin:1em 0;}
.entry .content h2{margin:1.6em 0 .6em;font-size:20px;}
.entry .content h3{margin:1.2em 0 .4em;font-size:18px;}
.entry .content ul, .entry .content ol{padding-left:1.2em;}
.entry .content a{text-decoration:underline;}
.entry .content blockquote{border-left:4px solid #e5e7eb;margin:1.2em 0;padding:0 0 0 12px;color:#374151;}

/* ===== single post: TOC ===== */
.entry-toc{
  margin: 10px 0 18px;
  padding: 14px 14px;
  border: 1px solid #e5e7eb;
  background: #fff;
}
.entry-toc__head{font-weight:900;font-size:14px;margin-bottom:8px;}
.entry-toc__list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;}
.entry-toc__item a{text-decoration:none;color:#111;font-size:13px;}
.entry-toc__item a:hover{text-decoration:underline;}
.entry-toc__item--h3{margin-left:14px;}

/* ===== single post: below navigation ===== */
.entry-below{margin-top:22px; padding-top:18px; border-top:1px solid #e5e7eb;}
.entry-below__row{display:flex;justify-content:flex-start;}
.entry-back{
  display:inline-flex;align-items:center;gap:8px;
  border:1px solid #e5e7eb;background:#fff;
  padding:10px 12px;
  font-size:12px;font-weight:800;
  text-decoration:none;
}
.entry-back:before{content:"←";}
.entry-back:hover{opacity:.9;}

.section-head--compact{margin:18px 0 12px;}
.entry-popular__list{display:flex;flex-direction:column;gap:10px;}
.mini-post{
  display:flex;align-items:center;gap:12px;
  text-decoration:none;
  border:1px solid #e5e7eb;
  background:#fff;
  padding:10px 12px;
}
.mini-post:hover{opacity:.92;}
.mini-post__thumb{width:54px;height:40px;flex:0 0 auto;overflow:hidden;background:#eee;display:block;}
.mini-post__thumb img{width:100%;height:100%;object-fit:cover;}
.mini-post__ph{display:block;width:100%;height:100%;background:#e5e7eb;}
.mini-post__title{font-size:13px;font-weight:800;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.entry-tags{margin-top:14px;}

/* ===== sidebar widgets ===== */
.widget{background:#fff;border:1px solid #e5e7eb;padding:14px;margin-bottom:14px;}
.widget-head{display:flex;align-items:center;gap:12px;margin:0 0 12px;}
.widget-head__title{font-weight:900;font-size:14px;white-space:nowrap;}
.widget-head__line{height:1px;background:#e5e7eb;flex:1;}

.author-box__inner{display:flex;gap:14px;align-items:center;}
.author-box__avatar img{border-radius:999px;}
.author-box__name{font-weight:900;font-size:16px;}
.author-box__desc{margin-top:12px;font-size:12px;color:#374151;line-height:1.7;}
.author-box__desc--muted{color:#6b7280;}

.side-cat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.side-cat{display:block;border:1px solid #e5e7eb;background:#fff;padding:8px 10px;text-decoration:none;font-size:12px;}

/* ===== pagination (unified) ===== */
.home-pagination{margin:16px 0 26px;text-align:center;}
.home-pagination--top{margin:0 0 14px;text-align:center;}
.home-pagination .page-numbers{display:inline-block;padding:6px 10px;border:1px solid #e5e7eb;background:#fff;margin-right:6px;text-decoration:none;font-size:12px;}
.home-pagination .current{background:#111;color:#fff;border-color:#111;}

/* ===== home news (news固定 + 日付) ===== */
.home-news{display:flex;align-items:flex-start;gap:12px;margin:14px 0 22px;}
.news-badge{background:#111;color:#fff;font-size:12px;font-weight:900;padding:4px 10px;white-space:nowrap;}
.news-items{flex:1;}
.news-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;}
.news-item{display:flex;gap:12px;align-items:baseline;}
.news-date{font-size:12px;color:#6b7280;white-space:nowrap;}
.news-link{text-decoration:none;color:#111;}
.news-link:hover{text-decoration:underline;}
.news-more{text-align:right;margin-top:8px;display:block;}
.news-more a{font-size:12px;text-decoration:none;color:#111;font-weight:700;}
.news-more a:hover{text-decoration:underline;}
.news-item{display:flex;gap:10px;align-items:baseline;font-size:12px;text-decoration:none;opacity:.9;}
.news-item:hover{opacity:1;text-decoration:underline;}
.news-date{color:#6b7280;}
.news-title{color:#111;}

/* ===== Category cards (bg) ===== */
.cat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;}
@media (max-width: 960px){ .cat-grid{grid-template-columns:repeat(2,minmax(0,1fr));} }
.cat-card{display:block;background:#fff;border:1px solid #e5e7eb;padding:14px;text-decoration:none;}
.cat-card--bg{position:relative;min-height:92px;background-size:cover;background-position:center;padding:16px;}
.cat-card--default{
  background-image: linear-gradient(135deg, #111 0%, #6b7280 100%);
}
.cat-overlay{position:absolute;inset:0;background:linear-gradient(90deg, rgba(0,0,0,.55), rgba(0,0,0,.1));}
.cat-card--bg .cat-name{position:relative;color:#fff;font-weight:900;letter-spacing:.03em;}

/* ===== Popular carousel ===== */
.popular-carousel{position:relative;overflow:hidden;}
.carousel-viewport{
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  padding-bottom:10px;
  scrollbar-width:none;
}
.carousel-viewport::-webkit-scrollbar{display:none;}

.popular-wrap .wp-block-jetpack-top-posts ul,
.popular-wrap .jetpack_top_posts_widget ul,
.popular-wrap .jetpack-top-posts ul,
.popular-wrap ul.carousel-list{
  display:flex !important;
  gap:22px !important;
  list-style:none !important;
  padding:0 !important;
  margin:0 !important;
}

.popular-wrap .wp-block-jetpack-top-posts li,
.popular-wrap .jetpack_top_posts_widget li,
.popular-wrap .jetpack-top-posts li,
.popular-wrap li.carousel-item{
  flex:0 0 calc(33.333% - 14.666px);
  scroll-snap-align:start;
}
@media (max-width: 960px){
  .popular-wrap .wp-block-jetpack-top-posts li,
  .popular-wrap .jetpack_top_posts_widget li,
  .popular-wrap .jetpack-top-posts li,
  .popular-wrap li.carousel-item{ flex-basis: calc(50% - 11px); }
}
@media (max-width: 640px){
  .popular-wrap .wp-block-jetpack-top-posts li,
  .popular-wrap .jetpack_top_posts_widget li,
  .popular-wrap .jetpack-top-posts li,
  .popular-wrap li.carousel-item{ flex-basis: 86%; }
}

/* arrows */
.carousel-btn{
  position:absolute; top:50%; transform:translateY(-60%);
  width:40px;height:40px;
  z-index:20;
  border:0; background:rgba(0,0,0,.6); color:#fff;
  font-size:22px; line-height:1;
  display:grid;place-items:center; cursor:pointer;
  opacity:.92;
}
.carousel-btn:hover{opacity:1;}
.carousel-btn--prev{left:12px;}
.carousel-btn--next{right:12px;}
@media (max-width: 640px){
  /* keep arrows inside viewport on small screens to avoid horizontal scroll */
  .carousel-btn--prev{left:8px;}
  .carousel-btn--next{right:8px;}
}

/* dots */
.carousel-dots{display:flex;justify-content:center;gap:8px;margin-top:10px;}
.carousel-dot{width:8px;height:8px;border-radius:999px;border:1px solid #cbd5e1;background:#fff;cursor:pointer;}
.carousel-dot.is-active{background:#111;border-color:#111;}

/* 人気記事は縦長防止 */
.popular-wrap .card-body > p{display:none !important;}
.popular-wrap .badges{display:flex !important;}
.popular-wrap .thumb{aspect-ratio:16/9;}
.popular-wrap .card-title{font-size:14px;margin:10px 0 6px;}
.popular-wrap .card-body{padding:10px 12px;}
.popular-wrap .meta{font-size:11px;}
.popular-wrap .card-title a{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

/* 2行固定（見栄え） */
.card-title a{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

/* ===== archive title ===== */
.archive-title{margin:18px 0 18px;font-size:26px;line-height:1.25;}

/* ===== footer center ===== */
.site-footer{margin-top:24px;background:#fff;border-top:1px solid #e5e7eb;}
.footer-inner{padding:18px 0;color:#6b7280;font-size:12px;display:flex;justify-content:center;gap:16px;flex-wrap:wrap;}
.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:16px;flex-wrap:wrap;}
.nav a{text-decoration:none;color:#111;font-weight:600;opacity:.85;}
.nav a:hover{opacity:1;}


/* ===== uniform card heights ===== */
.card{display:flex;flex-direction:column;}
.card-body{flex:1;display:flex;flex-direction:column;}
/* タイトルは2行分の高さを確保してタイル高さを統一 */
.card-title{min-height:calc(1.4em * 2); margin-top:12px;}
.card-title a{-webkit-line-clamp:2;}
/* 抜粋も高さを揃える（表示は2行固定） */
.card-body > p{
  margin-top:10px;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:calc(1.7em * 2);
}

/* Ensure list items stretch in grids/carousels */
.grid-3 > *{min-width:0;}
.popular-wrap .wp-block-jetpack-top-posts li,
.popular-wrap .jetpack_top_posts_widget li,
.popular-wrap .jetpack-top-posts li,
.popular-wrap li.carousel-item{display:flex;}
.popular-wrap .card{width:100%;}

/* ===== Jetpack related posts headline line (「関連」横) ===== */
.jp-relatedposts-headline{display:flex;align-items:center;gap:12px;margin:22px 0 12px;}
.jp-relatedposts-headline em{font-style:normal;font-weight:900;}
.jp-relatedposts-headline:after{content:"";height:1px;background:#e5e7eb;flex:1;}
.jp-relatedposts-headline{border-top:none !important;padding-top:0 !important;}

/* 「関連」→「関連記事」へ置換（Jetpack側の文言はPHPで差し替え不可のためCSSで対応） */
.jp-relatedposts-headline em{position:relative;color:transparent;display:inline-block;}
.jp-relatedposts-headline em:before{content:"関連記事";position:absolute;left:0;top:0;color:#111;}

/* 「関連記事」上部の線が短く見えるケースの保険 */
.entry .content hr{width:100%;border:0;border-top:1px solid #e5e7eb;margin:24px 0;}

/* 目次の連番を見出し側にも表示（JSが挿入する .bsm-secnum を整形） */
.bsm-secnum{font-weight:900;}

/* ===== breadcrumbs (single) ===== */
.breadcrumbs{font-size:12px;color:#6b7280;margin:2px 0 10px;display:flex;gap:8px;align-items:center;}
.breadcrumbs a{color:#111;text-decoration:none;}
.breadcrumbs a:hover{text-decoration:underline;}
.crumb-sep{color:#9ca3af;}

/* single meta categories as buttons */
.meta .meta-cats{display:flex;gap:8px;flex-wrap:wrap;}
.badge--cat{display:inline-flex;align-items:center;border:1px solid #e5e7eb;background:#fffdd1;color:#111;padding:4px 8px;font-size:12px;font-weight:700;line-height:1.2;text-decoration:none;}


/* ===== v1.0.6 tweaks ===== */

/* section title spacing (人気記事/最新記事/カテゴリから読む) */
.section-title{margin-top:22px;}

/* category buttons: light yellow */
.cat-badge,
.cat-link,
.category-grid a{
  background:#fff7b8;
  border-color:#f0e08a;
}


/* =========================================================
   v1.8.3: post page micro fixes
   - meta ⇔ eyecatch spacing
   - related headline label + full width line
   - in-article h2 underline
========================================================= */

/* (1) 日付＋カテゴリ（メタ）⇔ アイキャッチ間の余白 */
body.single-post .entry-head{ padding-bottom: 14px; }
body.single-post .post-thumb{ margin-top: 14px !important; }

/* (3) 「関連」→「関連記事」表記を確実に（Jetpack） + 線を本文幅へ */
.jp-relatedposts-headline{
  display:flex !important;
  align-items:center;
  gap:12px;
  width:100% !important;
  margin:22px 0 12px !important;
}
.jp-relatedposts-headline em{
  position:relative;
  font-style:normal;
  font-weight:900;
  color:#111 !important;
}
.jp-relatedposts-headline em:before{ content:none !important; }
.jp-relatedposts-headline:after{
  content:"";
  height:1px;
  background:#e5e7eb;
  flex:1;
}

/* (追加) 記事中の見出しに下線（border-bottom:2px） */
body.single-post .entry .content h2{
  border-bottom: 2px solid #e5e7eb;
  padding-bottom: 8px;
}

/* notices: bottom-right "more" link */
.notice-more{
  display:flex;
  justify-content:flex-end;
  margin-top:6px;
}
.notice-more a{
  font-weight:700;
  text-decoration:none;
}

/* hamburger overlay: top padding + MENU line */
.menu-panel{
  padding-top:26px;
}
.menu-panel h2{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:10px;
}
.menu-panel h2:after{
  content:"";
  height:1px;
  background:rgba(255,255,255,.35);
  flex:1;
}

/* hamburger items: triangle marker */
.menu-panel nav a{
  position:relative;
  padding-left:18px;
}
.menu-panel nav a:before{
  content:"▶";
  position:absolute;
  left:0;
  top:50%;
  transform:translateY(-50%);
  font-size:.9em;
  opacity:.9;
}

/* post meta: keep date + category on same row */
.post-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.post-meta .byline{display:none !important;} /* hide author name if exists */

/* ensure single layout width is consistent regardless of related posts */
.single .content-with-sidebar{
  display:grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap:32px;
  align-items:start;
  justify-content:center;
}
@media (min-width: 961px){
  /* 関連記事の有無で本文幅がブレないよう、本文カラムを固定幅に */
  .single .content-with-sidebar{grid-template-columns: minmax(0, 760px) 340px;}
}
@media (max-width: 960px){
  .single .content-with-sidebar{grid-template-columns: 1fr;}
}


/* operator box (home under category grid) */
.operator-box{margin-top:22px;}
.operator-box__inner{
  border:1px solid #e5e7eb;
  background:#fff;
  padding:18px;
  max-width:920px;
  margin:0 auto;
}
.operator-card{display:flex;gap:14px;align-items:flex-start;margin-top:12px;}
.operator-avatar img{border-radius:999px;display:block;width:56px;height:56px;object-fit:cover;}
.operator-name{font-weight:900;margin:6px 0 8px;}
.operator-desc{font-size:14px;line-height:1.45;color:#374151;white-space:pre-line;}
.operator-desc p{margin:0 0 8px;}


/* breadcrumb (single) */
.bsm-breadcrumb{font-size:13px;color:#6b7280;margin-bottom:10px;}
.bsm-breadcrumb a{color:#6b7280;text-decoration:none;}
.bsm-breadcrumb a:hover{text-decoration:underline;}


/* overlay menu list (duplicate safe) */
.menu-panel ul{list-style:none;margin:0;padding:0;}
.menu-panel li{margin:0;}
.menu-panel a{display:flex;align-items:center;gap:10px;padding:12px 0;color:#fff;text-decoration:none;font-weight:800;letter-spacing:.04em;}
.menu-panel a:hover{opacity:.85;}


/* ===== v1.1 tweaks ===== */
.news-items{display:flex;flex-direction:column;}
.news-more{display:block;margin-top:8px;text-align:right;align-self:flex-end;}
.menu-btn{margin-top:10px;}
.menu-overlay__panel{padding-top:32px;}
.menu-overlay__item{margin:0;}
.menu-overlay__item a{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  padding:10px 0;
}
.menu-overlay__item a:before{
  content:"▶";
  display:inline-block;
  font-size:12px;
  line-height:1;
  transform:translateY(-1px);
}

/* サブメニュー（SITEMAP直下の重複を非表示） */
.menu-overlay__list .sub-menu{display:none;}
.menu-overlay__menu ul{list-style:none;margin:0;padding:0;}
.menu-overlay__menu ul li{list-style:none;}
.section-line{opacity:1;}
.home-author-wrap{max-width:980px;margin-left:auto;margin-right:auto;}
.author-box__desc{line-height:1.45;}
.author-box__desc p{margin:0 0 6px;line-height:1.45;}
.home-pagination--top{text-align:center;justify-content:center;}

/* Prevent accidental horizontal scroll on mobile */
html,body{max-width:100%;overflow-x:hidden;}



/* layout safety */
.content-with-sidebar > *{min-width:0;}



/* v1.1.6: ensure news more link is visible */
.news-more{display:block !important; text-align:right; margin-top:10px;}



/* v1.1.6: carousel arrows overlap/outside */
.popular-carousel{overflow:visible;}
.carousel-btn{z-index:50;}
.carousel-btn--prev{left:-18px;}
.carousel-btn--next{right:-18px;}
@media (max-width:640px){
  .carousel-btn--prev{left:6px;}
  .carousel-btn--next{right:6px;}
}



/* v1.1.6: hide author name defensively */
.byline, .author, .meta .author, .entry-meta .byline, .post-meta .byline{display:none !important;}
/* align meta vertically */
.meta{align-items:center;}



/* v1.1.6: prevent horizontal clipping on mobile */
html, body{overflow-x:hidden;}
.site, main, .container{max-width:100%;}
/* full-bleed hero without overflow */
.hero{width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); overflow:hidden;}




/* ===== v1.1.7 hotfix: hero full-width & no layout regressions ===== */
.hero{width:100%;max-width:none;margin:0 0 16px;padding:0;}
.hero__bg{width:100%;max-width:none;margin:0;height:340px;background-position:center;background-size:cover;}
@media (max-width: 640px){ .hero__bg{height:220px;} }

/* Ensure main content stays centered */
main.container{max-width:1120px;margin:0 auto;padding:0 16px;}
/* Prevent accidental full-width children */
.container{max-width:1120px;margin:0 auto;padding:0 16px;}

/* Section head line: vertical center + same color as text */
.section-head{display:flex;align-items:center;gap:14px;margin:22px 0 12px;}
.section-title{margin:0;font-size:18px;white-space:nowrap;line-height:1.2;}
.section-line{height:1px;flex:1;background:currentColor;opacity:.25;}

/* News "more" always visible and aligned right */
.notice-more{display:flex;justify-content:flex-end;margin-top:6px;}
.notice-more a{text-decoration:none;font-weight:700;font-size:12px;}

/* Carousel arrows: overlap outside slightly on desktop, safe on mobile */
.popular-carousel{position:relative;}
.carousel-btn{z-index:30;}
@media (min-width: 961px){
  .carousel-btn--prev{left:-18px;}
  .carousel-btn--next{right:-18px;}
}
@media (max-width: 960px){
  .carousel-btn--prev{left:6px;}
  .carousel-btn--next{right:6px;}
}

/* Mobile: stop horizontal clipping/overflow */
html, body{max-width:100%;overflow-x:hidden;}
.site, main{max-width:100%;overflow-x:hidden;}
img, video, iframe{max-width:100%;height:auto;}

/* Single: keep width stable regardless of related posts */
.layout{display:grid;grid-template-columns:minmax(0, 1fr) 320px;gap:22px;}
@media (max-width: 960px){ .layout{grid-template-columns:1fr;} }
.layout > section{min-width:0;}
.jp-relatedposts{max-width:100%;}
.jp-relatedposts-items{max-width:100%;}


/* ===== v1.1.8 stability fixes (home layout / hero / section line) ===== */

/* HERO full-bleed inside centered main.container WITHOUT shifting right */
.hero{
  position:relative;
  width:100vw;
  max-width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  left:auto; right:auto;
  overflow:hidden;
}
.hero__bg{width:100%;max-width:100%;}

/* Home/layout-one must be single column (avoid accidental 2-col grid on top) */
.layout.layout--one{grid-template-columns:1fr !important;}
/* Default: keep non-single pages 1col */
body:not(.single) .layout{grid-template-columns:1fr !important;}
/* Single only: 2 columns (PC only) */
@media (min-width: 961px){
  body.single .layout{grid-template-columns:minmax(0,1fr) 320px !important;}
}
@media (max-width: 960px){
  body.single .layout{grid-template-columns:1fr !important;}
}

/* Section title line: center aligned */
.section-head{align-items:center !important;}
.section-line{align-self:center !important;}

/* Prevent duplicate "notice-more" placement from earlier injections */
.notice-more{clear:both;}


/* ===== v1.1.9 fixes: true full-bleed hero + single notice-more ===== */
.hero{
  width:100vw !important;
  max-width:100vw !important;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;
  padding:0 !important;
}
.hero__bg{width:100% !important;max-width:100% !important;}
/* ensure hero isn't constrained by any parent */
.hero, .hero *{box-sizing:border-box;}
/* notice-more: ensure only one shows even if cached markup duplicates */
.notice-more + .notice-more{display:none !important;}


/* ===== v1.2.0 fixes: hero full-bleed + remove duplicate "more" ===== */
.hero{
  width:100vw;
  max-width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  padding:0;
  overflow:hidden;
}
.hero__bg{width:100%;max-width:100%;}
/* hide any legacy notice-more block */
.notice-more{display:none !important;}
/* keep the in-block more link */
.news-more{display:flex;justify-content:flex-end;margin-top:6px;}
.news-more a{font-weight:700;text-decoration:none;font-size:12px;}

/* ===== Custom Post Type: News ===== */
.news-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
.news-item{display:flex;gap:14px;align-items:baseline;flex-wrap:wrap;}
.news-date{font-size:12px;color:#6b7280;min-width:78px;}
.news-title{color:#111;text-decoration:none;}
.news-title:hover{text-decoration:underline;}
.news-item--empty{color:#6b7280;}
.news-archive-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;}
.news-archive-item{display:flex;gap:14px;align-items:baseline;flex-wrap:wrap;}
.archive-title{font-size:28px;margin:0 0 16px;}


/* ===== v1.3.1 hotfix: operator avatar (home) responsive & not squished ===== */
.operator-card{
  display:flex;
  gap:14px;
  align-items:flex-start;
}
.operator-avatar{
  flex:0 0 auto;
  width:64px;
  height:64px;
}
.operator-avatar img{
  width:100% !important;
  height:100% !important;
  border-radius:9999px;
  object-fit:cover;
  display:block;
}
@media (max-width: 640px){
  .operator-avatar{width:56px;height:56px;}
  .operator-body{min-width:0;}
  .operator-desc{line-height:1.55;}
}




/* Keep viewport padding so arrows don't cover cards */
  .carousel-viewport{padding-left:44px; padding-right:44px;}
  .carousel-btn{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:32px;height:32px;
    font-size:18px;
    border:0;
    background:rgba(0,0,0,.55);
    color:#fff;
    border-radius:4px;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .carousel-btn--prev{left:8px;}
  .carousel-btn--next{right:8px;}
  /* Make sure dots are not pushed by arrow positioning */
  .carousel-dots{margin-top:10px;}
}


/* Keep viewport padding so arrows don't cover cards */
  .carousel-viewport{padding-left:44px; padding-right:44px;}
  .carousel-btn{
    position:absolute;
    /* Place arrows around the center of the thumbnail area (not card overall) */
    top: clamp(70px, 24vw, 120px);
    transform: translateY(-50%);
    width:32px;height:32px;
    font-size:18px;
    border:0;
    background:rgba(0,0,0,.55);
    color:#fff;
    border-radius:4px;
    display:flex;
    align-items:center;
    justify-content:center;
    z-index:30;
  }
  .carousel-btn--prev{left:8px;}
  .carousel-btn--next{right:8px;}
}


/* ===== v1.3.6: operator box constrained to 1120px ===== */
.operator-box{
  max-width:1120px;
  margin-left:auto;
  margin-right:auto;
  padding-left:16px;
  padding-right:16px;
  box-sizing:border-box;
}


/* ===== v1.3.7: operator inner constrained to 1120px ===== */
.operator-box__inner{
  max-width:1120px;
  margin-left:auto;
  margin-right:auto;
  padding-left:16px;
  padding-right:16px;
  box-sizing:border-box;
}


/* ===== v1.3.9: remove operator-box side padding (as requested) ===== */
.operator-box{
  padding-left:0 !important;
  padding-right:0 !important;
}


/* ===== v1.4.0: restore operator-box__inner side padding ===== */
.operator-box__inner{
  padding-left:16px !important;
  padding-right:16px !important;
}


/* ===== v1.4.1: SP popular carousel arrows moved outside cards (no overlap) ===== */
@media (max-width: 640px) and (hover: none) and (pointer: coarse){
  .popular-carousel{ position:relative; overflow:visible; }
  .popular-carousel .carousel-viewport{
    padding-left:12px;
    padding-right:12px;
  }
  .popular-carousel .carousel-btn{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:32px;height:32px;
    font-size:18px;
    border:0;
    background:rgba(0,0,0,.55);
    color:#fff;
    border-radius:4px;
    display:flex;
    align-items:center;
    justify-content:center;
    z-index:40;
  }
  .popular-carousel .carousel-btn--prev{ left:-10px; }
  .popular-carousel .carousel-btn--next{ right:-10px; }
}


/* ===== v1.4.4: PC popular carousel arrows overlay on cards (not in gutter) ===== */
@media (min-width: 641px){
  .popular-carousel{ position:relative; }
  .popular-carousel .carousel-btn{
    top:50%;
    transform:translateY(-50%);
    z-index:40;
  }
  .popular-carousel .carousel-btn--prev{ left:10px; }
  .popular-carousel .carousel-btn--next{ right:10px; }
  .popular-carousel .carousel-viewport{
    padding-left:0;
    padding-right:0;
  }
}


/* ===== v1.4.5: PC popular carousel arrows truly overlap cards (remove gutter padding) ===== */
@media (min-width: 641px){
  .popular-carousel .carousel-viewport,
  .popular-carousel .popular-wrap,
  .popular-carousel #popularViewport{
    padding-left:0 !important;
    padding-right:0 !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }
  .popular-carousel .carousel-btn--prev{ left:18px; }
  .popular-carousel .carousel-btn--next{ right:18px; }
}


/* ===== v1.4.6: PC popular carousel arrows overlap at viewport edges (balanced) ===== */
@media (min-width: 641px){
  /* Put arrow center on the viewport edge so both sides look symmetric */
  .popular-carousel{ position:relative; }
  .popular-carousel .carousel-btn{
    top:50%;
    z-index:40;
  }
  .popular-carousel .carousel-btn--prev{
    left:0;
    transform:translate(-50%,-50%);
  }
  .popular-carousel .carousel-btn--next{
    right:0;
    transform:translate(50%,-50%);
  }
}


/* ===== v1.4.7: add card shadow for Popular + Latest sections ===== */
.home-section .card{
  box-shadow: 0 6px 18px rgba(0,0,0,.14);
}
.home-section .card:hover{
  box-shadow: 0 10px 26px rgba(0,0,0,.18);
}

/* ===== v1.5.0: home guides (3 cards) ===== */
.home-guides{ margin: 22px 0 28px; }
.home-guides .section-head{ margin-bottom: 14px; }

.guide-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.guide-card{
  display:flex;
  align-items:center;
  gap:14px;
  padding:16px 16px;
  background:#fff;
  border:1px solid #e5e7eb;
  box-shadow: 0 6px 18px rgba(0,0,0,.10);
  text-decoration:none;
  color:inherit;
  min-height:84px;
}
.guide-ico{ font-size:20px; width:30px; text-align:center; }
.guide-title{ font-weight:700; line-height:1.2; }
.guide-desc{ font-size:13px; color:#4b5563; margin-top:4px; line-height:1.35; }
.guide-arrow{ margin-left:auto; opacity:.75; transition: transform .15s ease; }
.guide-card:hover{ box-shadow: 0 10px 26px rgba(0,0,0,.14); }
.guide-card:hover .guide-arrow{ transform: translateX(2px); }

@media (max-width: 900px){
  .guide-grid{ grid-template-columns: 1fr; }
  .guide-card{ min-height: 0; }
}


/* ===== v1.5.1: rounded tiles for Popular section only ===== */
.popular-carousel .card{
  border-radius: 10px;
  overflow: hidden; /* clip image + badge to rounded corners */
}
.popular-carousel .card .thumb,
.popular-carousel .card .thumb img{
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
}

/* ===== v1.7.6: category page popular tiles rounded ===== */
.cat-popular .card{
  border-radius: 10px;
  overflow: hidden;
}
.cat-popular .card .thumb,
.cat-popular .card .thumb img{
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
}


/* ===== v1.5.2: News archive simple list ===== */
.news-simple-list{
  list-style:none;
  margin:0;
  padding:0;
  background:#fff;
  border:1px solid #e5e7eb;
}
.news-simple-item{
  /* row is clickable via inner link */
  padding:0;
  border-bottom:1px solid #e5e7eb;
}
.news-simple-item:last-child{ border-bottom:0; }
.news-simple-link{
  display:flex;
  gap:14px;
  align-items:baseline;
  width:100%;
  padding:12px 14px;
  text-decoration:none;
}
.news-simple-link:hover{ background:rgba(0,0,0,.03); }
.news-simple-date{
  font-size:12px;
  color:#6b7280;
  min-width:86px;
  white-space:nowrap;
}
.news-simple-title{ text-decoration:none; }
.news-simple-link:hover .news-simple-title{ text-decoration:underline; }
@media (max-width: 640px){
  .news-simple-link{ flex-wrap:wrap; gap:8px; }
  .news-simple-date{ min-width:auto; }
}

/* ===== recent highlight (optional) =====
   - controlled by TSURI_MEDIA_RECENT_HIGHLIGHT (default: true)
   - applied to cards + news rows
*/
.card.is-recent{
  border-color: rgba(0,0,0,.18);
}
.news-simple-item.is-recent .news-simple-link{
  background: rgba(255, 253, 209, .55);
}
.news-simple-item.is-recent .news-simple-link:hover{
  background: rgba(255, 253, 209, .75);
}


/* ===== v1.5.3: news archive fixed width 1120px ===== */
.news-simple-list{
  max-width:1120px;
  margin-left:auto;
  margin-right:auto;
}


/* ===== v1.5.4: ensure /news/ list uses full 1120px width ===== */
.post-type-archive-news .layout.layout--one,
.page-template-page-news .layout.layout--one{
  width:100%;
}
.post-type-archive-news .layout.layout--one > section,
.page-template-page-news .layout.layout--one > section{
  width:100%;
}
.post-type-archive-news .news-simple-list,
.page-template-page-news .news-simple-list{
  width:100%;
  max-width:1120px;
  margin: 0 auto;
  box-sizing:border-box;
}
.post-type-archive-news .news-simple-item,
.page-template-page-news .news-simple-item{
  width:100%;
  box-sizing:border-box;
}


/* ===== v1.5.5: force /news/ full width (1120) even if other CSS overrides ===== */
.post-type-archive-news main.container,
.page-template-page-news main.container{
  width:100% !important;
  max-width:none !important; /* allow our inner section to define 1120 */
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.post-type-archive-news .layout.layout--one > section,
.page-template-page-news .layout.layout--one > section{
  width:100% !important;
  max-width:1120px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left: 16px !important;
  padding-right: 16px !important;
  box-sizing:border-box !important;
}

.post-type-archive-news .news-simple-list,
.page-template-page-news .news-simple-list{
  display:block !important;
  width:100% !important;
  max-width:none !important; /* section controls width */
  margin:0 !important;
}


/* ===== v1.5.6: single news (detail) fixed width 1120px ===== */
.single-news main.container{
  width:100% !important;
  max-width:none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.single-news .layout.layout--one > section{
  width:100% !important;
  max-width:1120px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left: 16px !important;
  padding-right: 16px !important;
  box-sizing:border-box !important;
}

.single-news .layout.layout--one > section > article,
.single-news .layout.layout--one > section > .entry{
  width:100% !important;
  max-width:none !important;
}


/* ===== v1.5.7: center the white entry box on single news ===== */
.single-news .layout.layout--one > section > article.entry,
.single-news .layout.layout--one > section > article,
.single-news .layout.layout--one > section > .entry{
  margin-left:auto !important;
  margin-right:auto !important;
}


/* ===== v1.5.8: robust centering for single news entry box ===== */
.single-news .layout.layout--one > section{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important; /* centers child blocks */
}
.single-news .layout.layout--one > section > *{
  width:100%;
}
.single-news .layout.layout--one .entry,
.single-news .layout.layout--one article{
  max-width:1120px !important;
  width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* ===== v1.7.7: category page spacing + bottom category grid ===== */
.cat-popular{ margin-top: 34px; margin-bottom: 64px; }
.cat-latest{ margin-top: 34px; }
.cat-bottom{ margin-top: 34px; }

@media (max-width: 640px){
  .cat-popular{ margin-top: 26px; margin-bottom: 44px; }
  .cat-latest{ margin-top: 26px; }
  .cat-bottom{ margin-top: 26px; }
}

/* ===== v1.7.2: category page - make "人気" と "最新" が一目で分かる ===== */
.cat-popular .thumb{
  position:relative;
}
.cat-popular .thumb:after{
  content:"人気";
  position:absolute;
  right:10px;
  top:10px;
  background:rgba(17,17,17,.92);
  color:#fff;
  font-size:12px;
  font-weight:900;
  padding:4px 8px;
}
.cat-latest{
  margin-top: 26px;
}

/* v1.7.3: 人気バッジは非表示（見出しで十分に区別できるため） */
.cat-popular .thumb:after{content:none !important; display:none !important;}

/* v1.7.3: カテゴリ「最新記事」はカードではなく一覧表示 */
.post-simple-list{
  list-style:none;
  margin:0;
  padding:0;
  background:#fff;
  border:1px solid #e5e7eb;
}
.post-simple-item{border-bottom:1px solid #e5e7eb;}
.post-simple-item:last-child{border-bottom:0;}
.post-simple-link{
  display:flex;
  gap:12px;
  align-items:center;
  padding:12px 14px;
  text-decoration:none;
}
.post-simple-thumb{
  flex:0 0 56px;
  width:56px;
  height:56px;
  border-radius:6px;
  overflow:hidden;
  background:#e5e7eb;
}
.post-simple-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.post-simple-thumb--ph{display:block;width:100%;height:100%;background:#e5e7eb;}
.post-simple-body{min-width:0;display:flex;flex-direction:column;gap:4px;}
.post-simple-title{font-weight:800;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.post-simple-meta{font-size:12px;color:#6b7280;}
.post-simple-link:hover .post-simple-title{text-decoration:underline;}
@media (max-width: 640px){
  .post-simple-link{padding:12px;}
  .post-simple-thumb{flex-basis:48px;width:48px;height:48px;}
}

/* ===== v1.6.2: news archive below navigation blocks ===== */
/* お知らせ一覧（/news/）の本文（一覧）と、下部の回遊コンテンツの間隔 */
.news-archive-below{margin:80px 0 6px;}
.news-below-grid{display:grid;grid-template-columns: 1fr 1fr;gap:22px;}
.section-head--sub{margin:0 0 10px;}
.section-title--sub{font-size:14px;}
.news-below-muted{font-size:12px;color:#6b7280;margin:0;}

/* Popular (small thumb) */
.news-popular-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.news-popular-item{margin:0;}
.news-popular-link{display:flex;align-items:center;gap:12px;text-decoration:none;}
.news-popular-link:hover .news-popular-title{text-decoration:underline;}
.news-popular-media{flex:0 0 auto;}
.news-popular-thumb,
.news-popular-thumb--ph{width:56px;height:56px;border-radius:6px;object-fit:cover;background:#e5e7eb;display:block;}
.news-popular-title{font-size:13px;font-weight:700;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}

/* Mini guides */
.mini-guide-grid{display:grid;grid-template-columns:1fr;gap:10px;}
.mini-guide{display:block;border:1px solid #e5e7eb;background:#fff;padding:12px 12px;text-decoration:none;box-shadow:0 6px 18px rgba(0,0,0,.08);}
.mini-guide__title{font-weight:800;font-size:13px;line-height:1.2;}
.mini-guide__desc{margin-top:4px;font-size:12px;color:#6b7280;line-height:1.35;}
.mini-guide:hover{box-shadow:0 10px 26px rgba(0,0,0,.12);}

@media (max-width: 900px){
  .news-below-grid{grid-template-columns:1fr;}
}


/* ===== v1.5.9: single news entry centered reliably (no grid stretch) ===== */
.single-news .layout.layout--one{
  display:block !important; /* avoid grid stretch behavior */
}
.single-news .layout.layout--one > section{
  max-width:1120px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:16px !important;
  padding-right:16px !important;
  box-sizing:border-box !important;
}
.single-news .layout.layout--one > section > article.entry{
  width:100% !important;
  max-width:none !important;
  margin-left:auto !important;
  margin-right:auto !important;
}


/* ===== v1.6.1: single News (detail) - navigation + popular posts + back link ===== */
.single-news .news-after{
  margin-top: 80px;
  padding-top: 18px;
  border-top: 1px solid #e5e7eb;
}
.single-news .news-after__row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
}
.single-news .news-after__back{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  font-weight:800;
  text-decoration:none;
  padding:8px 10px;
  border:1px solid #e5e7eb;
  background:#fff;
}
.single-news .news-after__back:hover{ text-decoration:underline; }

.single-news .news-after__prevnext{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
}
.single-news .news-after__prevnext a,
.single-news .news-after__prevnext span{
  font-size:12px;
  font-weight:700;
  text-decoration:none;
  color:#111;
}
.single-news .news-after__prevnext a:hover{ text-decoration:underline; }
.single-news .news-after__prevnext .is-disabled{ color:#9ca3af; }

.single-news .news-after__popular{ margin-top: 18px; }
.single-news .news-after__title{ margin:0 0 10px; font-size:14px; font-weight:900; }

/* mini list (thumb small + title) */
.mini-posts{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.mini-posts__link{ display:flex; align-items:center; gap:10px; text-decoration:none; }
.mini-posts__thumb{ width:52px; height:52px; flex:0 0 52px; border:1px solid #e5e7eb; background:#f3f4f6; overflow:hidden; }
.mini-posts__thumb img{ width:100%; height:100%; object-fit:cover; }
.mini-posts__ph{ display:block; width:100%; height:100%; background:linear-gradient(135deg, #e5e7eb, #f3f4f6); }
.mini-posts__text{ font-size:13px; font-weight:800; line-height:1.35; color:#111; }
.mini-posts__link:hover .mini-posts__text{ text-decoration:underline; }
.mini-posts__empty{ font-size:12px; color:#6b7280; }

/* ===== v1.7.9: category page section spacing (PC:64px / SP:44px) ===== */
/*
  - タイトル → 人気記事（このカテゴリ）
  - 人気記事（このカテゴリ） → 記事一覧
  の間隔を統一
*/
.category .archive-title{ margin-bottom: 0 !important; }

.category .home-section.cat-popular,
.category .home-section.cat-latest{
  margin-top: 64px;
}

@media (max-width: 640px){
  .category .home-section.cat-popular,
  .category .home-section.cat-latest{
    margin-top: 44px;
  }
}


/* ===== v1.8.6: home guides refined typography + rich arrow (top page only) ===== */
.home-guides{
  margin: 28px 0 34px;
}
.home-guides .section-head{
  margin-bottom: 16px;
}
.home-guides .section-title{
  font-size: 21px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .02em;
  color: #111827;
}
.home-guides .section-line{
  opacity: .18;
}
.guide-grid{
  gap: 20px;
}
.guide-card{
  position: relative;
  align-items: center;
  gap: 16px;
  padding: 22px 20px;
  min-height: 96px;
  border: 1px solid #e5e7eb;
  border-top: 2px solid #1f2937;
  background: linear-gradient(180deg, #ffffff 0%, #fcfcfc 100%);
  box-shadow: 0 10px 24px rgba(15, 23, 42, .08);
  transition:
    transform .18s ease,
    box-shadow .18s ease,
    border-color .18s ease,
    background-color .18s ease;
}
.guide-card::before{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(15,23,42,.02) 0%, rgba(15,23,42,0) 28%);
  pointer-events: none;
}
.guide-card:hover,
.guide-card:focus-visible{
  transform: translateY(-3px);
  border-color: #d1d5db;
  box-shadow: 0 16px 36px rgba(15, 23, 42, .14);
}
.guide-ico{
  position: relative;
  z-index: 1;
  flex: 0 0 46px;
  width: 46px;
  height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  line-height: 1;
  text-align: center;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
  background: #f8fafc;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.85);
}
.guide-body{
  position: relative;
  z-index: 1;
  min-width: 0;
  flex: 1 1 auto;
}
.guide-title{
  margin: 0;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.45;
  letter-spacing: .01em;
  color: #111827;
}
.guide-desc{
  margin-top: 7px;
  font-size: 14px;
  line-height: 1.65;
  color: #6b7280;
}
.guide-arrow{
  position: relative;
  z-index: 1;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  margin-left: 12px;
  border: 1px solid #d1d5db;
  border-radius: 999px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.9),
    0 6px 16px rgba(15, 23, 42, .08);
  color: #111827;
  font-size: 0;
  line-height: 1;
  opacity: 1;
  transition:
    transform .18s ease,
    box-shadow .18s ease,
    border-color .18s ease,
    background-color .18s ease;
}
.guide-arrow::before,
.guide-arrow::after{
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  background: currentColor;
  border-radius: 999px;
}
.guide-arrow::before{
  width: 13px;
  height: 2px;
  transform: translate(-65%, -50%);
}
.guide-arrow::after{
  width: 8px;
  height: 8px;
  background: transparent;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  border-radius: 0;
  transform: translate(-8%, -50%) rotate(45deg);
}
.guide-card:hover .guide-arrow,
.guide-card:focus-visible .guide-arrow{
  transform: translateX(4px);
  border-color: #cbd5e1;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.92),
    0 10px 22px rgba(15, 23, 42, .12);
}

@media (max-width: 960px){
  .home-guides .section-title{
    font-size: 20px;
  }
  .guide-title{
    font-size: 17px;
  }
}

@media (max-width: 640px){
  .home-guides{
    margin: 22px 0 28px;
  }
  .home-guides .section-title{
    font-size: 19px;
  }
  .guide-grid{
    gap: 14px;
  }
  .guide-card{
    gap: 14px;
    padding: 18px 16px;
    min-height: 0;
  }
  .guide-ico{
    flex-basis: 40px;
    width: 40px;
    height: 40px;
    font-size: 18px;
  }
  .guide-title{
    font-size: 16px;
    line-height: 1.45;
  }
  .guide-desc{
    font-size: 13px;
    line-height: 1.55;
  }
  .guide-arrow{
    flex-basis: 38px;
    width: 38px;
    height: 38px;
    margin-left: 8px;
  }
  .guide-arrow::before{
    width: 11px;
  }
  .guide-arrow::after{
    width: 7px;
    height: 7px;
  }
}

/* ===== v1.8.8: home section title unification + extra vertical spacing ===== */
.home-guides,
.home-section,
.operator-box{
  scroll-margin-top: 88px;
}

.home-section{
  margin-top: 42px;
}

.home-section .section-head,
.operator-box .section-head{
  margin: 0 0 18px;
  padding-top: 6px;
}

.home-guides .section-title,
.home-section .section-title,
.operator-box .section-title{
  font-size: 21px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .02em;
  color: #111827;
}

.home-section .section-line,
.operator-box .section-line{
  opacity: .18;
}

@media (max-width: 960px){
  .home-section .section-title,
  .operator-box .section-title{
    font-size: 20px;
  }
}

@media (max-width: 640px){
  .home-section{
    margin-top: 34px;
  }

  .home-section .section-head,
  .operator-box .section-head{
    margin-bottom: 14px;
    padding-top: 4px;
  }

  .home-section .section-title,
  .operator-box .section-title{
    font-size: 19px;
  }
}


/* ===== v1.8.9: add comfortable gap between category section and news on top page ===== */
#cats{
  margin-bottom: 0;
}

#cats + .home-news{
  margin-top: 44px;
}

@media (max-width: 640px){
  #cats + .home-news{
    margin-top: 30px;
  }
}


/* ===== v1.9.0 editorial minimal refresh (top page only) ===== */
body.home .home-section,
body.home .home-news,
body.home .operator-box,
body.home .home-guides{margin-top:38px;}
body.home .home-guides{margin-top:18px;}
body.home .home-section-shell{padding-top:2px;}
body.home .section-head--editorial{
  align-items:flex-end;
  gap:12px;
  margin:0 0 18px;
}
body.home .section-kicker{
  display:inline-block;
  font-size:10px;
  line-height:1;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#6b7280;
  font-weight:800;
  transform:translateY(-2px);
}
body.home .section-head--editorial .section-title{
  font-size:28px;
  line-height:1.08;
  letter-spacing:.02em;
  font-weight:900;
}
body.home .section-head--editorial .section-line{
  opacity:.18;
  margin-bottom:4px;
}
body.home .home-section--popular .section-head--editorial .section-line,
body.home .home-section--latest .section-head--editorial .section-line{
  opacity:.24;
}
body.home .home-guides .section-head--editorial .section-title,
body.home .home-section--cats .section-head--editorial .section-title,
body.home .operator-box .section-head--editorial .section-title{
  font-size:26px;
}

/* guides: cleaner magazine-like card */
body.home .guide-grid{gap:18px;}
body.home .guide-card{
  position:relative;
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.9));
  border:1px solid rgba(17,17,17,.08);
  box-shadow:0 10px 24px rgba(17,17,17,.06);
}
body.home .guide-card:before{
  content:"";
  position:absolute;
  left:0; right:0; top:0;
  height:2px;
  background:linear-gradient(90deg, #111 0%, rgba(17,17,17,.15) 100%);
}
body.home .guide-title{font-size:14px; line-height:1.45;}
body.home .guide-desc{font-size:11px; color:#6b7280;}
body.home .guide-arrow{
  width:34px;height:34px;
  border:1px solid rgba(17,17,17,.12);
  background:rgba(255,255,255,.92);
  box-shadow:0 4px 10px rgba(17,17,17,.07);
}

/* popular: make it feel like a featured rail */
body.home .home-section--popular .popular-carousel{
  padding:18px 18px 14px;
  background:linear-gradient(180deg, rgba(255,255,255,.62), rgba(255,255,255,.28));
  border:1px solid rgba(17,17,17,.06);
}
body.home .home-section--popular .card{
  border:1px solid rgba(17,17,17,.08);
  box-shadow:0 12px 24px rgba(17,17,17,.05);
}
body.home .home-section--popular .card-body{padding:14px 14px 12px;}
body.home .home-section--popular .card-title{margin-top:8px; min-height:calc(1.45em * 2);}
body.home .home-section--popular .card-title a{font-size:15px; line-height:1.45;}
body.home .home-section--popular .meta{font-size:10px; text-transform:none; letter-spacing:.02em;}
body.home .home-section--popular .badge{font-size:10px; padding:3px 7px;}

/* latest: quieter, more editorial */
body.home .home-section--latest .card{
  border:1px solid rgba(17,17,17,.06);
  box-shadow:0 8px 18px rgba(17,17,17,.04);
}
body.home .home-section--latest .card-body{padding:16px 16px 18px;}
body.home .home-section--latest .card-title a{font-size:15px;}
body.home .home-section--latest .meta{font-size:10px; color:#7b8190;}
body.home .home-section--latest .badge{font-size:10px; padding:3px 7px;}
body.home .home-section--latest .card-body > p{
  color:#374151;
  font-size:12px;
  line-height:1.8;
}

/* category buttons: less flat */
body.home .cat-grid{gap:16px;}
body.home .cat-card--bg{
  min-height:98px;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04), 0 8px 20px rgba(17,17,17,.08);
  overflow:hidden;
}
body.home .cat-overlay{
  background:linear-gradient(100deg, rgba(5,8,12,.94) 0%, rgba(32,39,52,.72) 58%, rgba(80,88,101,.5) 100%);
}
body.home .cat-card--bg .cat-name{
  font-size:14px;
  letter-spacing:.04em;
}
body.home .cat-card--bg:hover{transform:translateY(-2px); transition:transform .2s ease, box-shadow .2s ease;}

/* news block: give it a quieter separated strip */
body.home .home-section--news{
  display:block;
  padding-top:4px;
}
body.home .section-head--news{margin-bottom:14px;}
body.home .home-section--news .news-badge{display:inline-flex; margin-right:12px;}
body.home .home-section--news .news-items{display:block;}
body.home .home-section--news .news-list{gap:8px;}
body.home .home-section--news .news-item{font-size:13px;}
body.home .home-section--news .news-date{font-size:11px; min-width:78px;}

/* profile: make it feel like a footer profile panel */
body.home .operator-box{margin-top:48px;}
body.home .operator-box__inner{
  max-width:100%;
  border:1px solid rgba(17,17,17,.06);
  box-shadow:0 10px 22px rgba(17,17,17,.04);
  padding:22px 22px 20px;
}
body.home .operator-box .section-head--profile{margin-bottom:18px;}
body.home .operator-box .section-head--profile .section-title{font-size:24px;}
body.home .operator-name{font-size:16px;}
body.home .operator-desc{font-size:13px; line-height:1.8; color:#4b5563;}

@media (max-width: 960px){
  body.home .section-head--editorial .section-title{font-size:24px;}
  body.home .home-guides .section-head--editorial .section-title,
  body.home .home-section--cats .section-head--editorial .section-title,
  body.home .operator-box .section-head--editorial .section-title{font-size:22px;}
  body.home .home-section,
  body.home .home-news,
  body.home .operator-box{margin-top:34px;}
}

@media (max-width: 640px){
  body.home .section-head--editorial{gap:10px; margin-bottom:14px;}
  body.home .section-kicker{font-size:9px; letter-spacing:.15em;}
  body.home .section-head--editorial .section-title{font-size:20px;}
  body.home .home-guides .section-head--editorial .section-title,
  body.home .home-section--cats .section-head--editorial .section-title,
  body.home .operator-box .section-head--editorial .section-title{font-size:19px;}
  body.home .home-section,
  body.home .home-news,
  body.home .operator-box{margin-top:28px;}
  body.home .home-section--popular .popular-carousel{padding:12px 12px 10px;}
  body.home .guide-grid{gap:12px;}
  body.home .guide-card{box-shadow:0 8px 18px rgba(17,17,17,.05);}
  body.home .home-section--news .news-item{font-size:12px;}
}

/* ===== v1.8.x: home popular section stronger featured presence ===== */
body.home .home-section--popular .popular-carousel{
  position:relative;
  padding:20px 20px 16px;
  border-radius:18px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.88) 0%, rgba(255,255,255,.58) 100%),
    linear-gradient(90deg, rgba(17,17,17,.03) 0%, rgba(17,17,17,0) 100%);
  border:1px solid rgba(17,17,17,.07);
  box-shadow:0 14px 30px rgba(17,17,17,.04);
}
body.home .home-section--popular .popular-carousel::before{
  content:"FEATURED POSTS";
  position:absolute;
  top:10px;
  left:18px;
  font-size:10px;
  letter-spacing:.18em;
  font-weight:800;
  color:#6b7280;
  text-transform:uppercase;
}
body.home .home-section--popular .carousel-list{
  counter-reset:popularRank;
  padding-top:18px;
}
body.home .home-section--popular .carousel-item{
  position:relative;
  counter-increment:popularRank;
}
body.home .home-section--popular .carousel-item::before{
  content:counter(popularRank, decimal-leading-zero);
  position:absolute;
  z-index:3;
  top:12px;
  left:12px;
  min-width:34px;
  height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 8px;
  border-radius:999px;
  background:rgba(17,17,17,.86);
  color:#fff;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  box-shadow:0 8px 18px rgba(17,17,17,.22);
}
body.home .home-section--popular .card{
  position:relative;
  overflow:hidden;
  border-radius:16px;
  border:1px solid rgba(17,17,17,.08);
  box-shadow:0 16px 28px rgba(17,17,17,.07);
  transition:transform .25s ease, box-shadow .25s ease;
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.94));
}
body.home .home-section--popular .card::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:3px;
  background:linear-gradient(90deg, #111 0%, rgba(17,17,17,.22) 100%);
  z-index:2;
}
body.home .home-section--popular .card:hover{
  transform:translateY(-4px);
  box-shadow:0 20px 36px rgba(17,17,17,.1);
}
body.home .home-section--popular .thumb{
  position:relative;
}
body.home .home-section--popular .thumb::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height:36%;
  background:linear-gradient(180deg, rgba(17,17,17,0), rgba(17,17,17,.12));
  pointer-events:none;
}
body.home .home-section--popular .card-body{
  padding:16px 16px 14px;
  background:linear-gradient(180deg, rgba(255,255,255,1), rgba(248,248,248,.96));
}
body.home .home-section--popular .card-title{
  margin-top:10px;
  min-height:calc(1.5em * 2);
}
body.home .home-section--popular .card-title a{
  font-size:15px;
  line-height:1.5;
  font-weight:800;
}
body.home .home-section--popular .meta{
  margin-top:8px;
  color:#6b7280;
}
body.home .home-section--popular .badges{
  margin-top:8px;
}
body.home .home-section--popular .carousel-item:first-child .card{
  box-shadow:0 24px 40px rgba(17,17,17,.12);
  border-color:rgba(17,17,17,.12);
}
body.home .home-section--popular .carousel-item:first-child .card::before{
  height:4px;
}
body.home .home-section--popular .carousel-item:first-child .card-title a{
  font-size:16px;
}
body.home .home-section--popular .carousel-item:first-child::before{
  background:linear-gradient(135deg, #111 0%, #383838 100%);
}

@media (max-width: 767px){
  body.home .home-section--popular .popular-carousel{
    padding:16px 12px 12px;
    border-radius:14px;
  }
  body.home .home-section--popular .popular-carousel::before{
    top:8px;
    left:12px;
    font-size:9px;
  }
  body.home .home-section--popular .carousel-list{
    padding-top:14px;
  }
  body.home .home-section--popular .carousel-item::before{
    top:10px;
    left:10px;
    min-width:30px;
    height:30px;
    font-size:10px;
  }
  body.home .home-section--popular .card{
    border-radius:12px;
  }
  body.home .home-section--popular .card-body{
    padding:12px 12px 11px;
  }
  body.home .home-section--popular .card-title a{
    font-size:14px;
  }
  body.home .home-section--popular .carousel-item:first-child .card-title a{
    font-size:14px;
  }
}


/* ===== v1.8.11: fixed page shell rebuild (ABOUT / CONTACT / PRIVACY / SITEMAP) ===== */
body.page-template-default:not(.page-template-page-news):not(.home) .layout.layout--one{
  display:block !important;
}
body.page-template-default:not(.page-template-page-news):not(.home) .layout.layout--one > section{
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
}
body.page-template-default:not(.page-template-page-news):not(.home) .layout.layout--one > section > article.entry.page-entry{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  box-sizing:border-box !important;
  margin:22px 0 0 !important;
  padding:30px 56px 38px !important;
  border:1px solid #d9e0e8 !important;
  background:#fff !important;
}
body.page-template-default:not(.page-template-page-news):not(.home) .page-entry__meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin:2px 0 16px;
}
body.page-template-default:not(.page-template-page-news):not(.home) .page-entry__line{
  display:block;
  width:78px;
  height:2px;
  background:#243243;
  flex:0 0 auto;
}
body.page-template-default:not(.page-template-page-news):not(.home) .page-entry__eyebrow{
  font-size:12px;
  line-height:1;
  letter-spacing:.34em;
  text-transform:uppercase;
  color:#7b8ca4;
  font-weight:700;
}
body.page-template-default:not(.page-template-page-news):not(.home) article.entry.page-entry h1{
  margin:0 0 24px;
  font-size:24px;
  line-height:1.25;
  font-weight:900;
  color:#0f172a;
}
body.page-template-default:not(.page-template-page-news):not(.home) article.entry.page-entry .content{
  max-width:none !important;
}
body.page-template-default:not(.page-template-page-news):not(.home) article.entry.page-entry .content > *{
  max-width:none !important;
}
body.page-template-default:not(.page-template-page-news):not(.home) article.entry.page-entry .content > p:first-child{
  margin-top:0;
  font-size:17px;
  line-height:1.95;
  color:#132031;
}
body.page-template-default:not(.page-template-page-news):not(.home) article.entry.page-entry .content p{
  font-size:15px;
  line-height:1.95;
  color:#243244;
}
body.page-template-default:not(.page-template-page-news):not(.home) article.entry.page-entry .content h3,
body.page-template-default:not(.page-template-page-news):not(.home) article.entry.page-entry .content h2{
  margin:34px 0 14px;
  padding-top:16px;
  font-size:18px;
  line-height:1.45;
  font-weight:900;
  color:#0f172a;
  border-top:1px solid #dde5ee;
}
body.page-template-default:not(.page-template-page-news):not(.home) article.entry.page-entry .content ul.wp-block-list,
body.page-template-default:not(.page-template-page-news):not(.home) article.entry.page-entry .content ul{
  list-style:none;
  padding-left:0;
  margin:16px 0 20px;
}
body.page-template-default:not(.page-template-page-news):not(.home) article.entry.page-entry .content ul.wp-block-list li,
body.page-template-default:not(.page-template-page-news):not(.home) article.entry.page-entry .content ul li{
  position:relative;
  padding-left:28px;
  margin:0 0 16px;
  font-size:15px;
  line-height:1.75;
}
body.page-template-default:not(.page-template-page-news):not(.home) article.entry.page-entry .content ul.wp-block-list li::before,
body.page-template-default:not(.page-template-page-news):not(.home) article.entry.page-entry .content ul li::before{
  content:"";
  position:absolute;
  left:0;
  top:.72em;
  width:10px;
  height:10px;
  border-radius:999px;
  background:#111827;
  box-shadow:0 0 0 4px #eef2f7;
  transform:translateY(-50%);
}
body.page-template-default:not(.page-template-page-news):not(.home) .page-entry--contact .wp-block-jetpack-contact-form-container{
  margin-top:18px;
}
body.page-template-default:not(.page-template-page-news):not(.home) .page-entry--contact .grunion-field-label,
body.page-template-default:not(.page-template-page-news):not(.home) .page-entry--contact .wp-block-jetpack-label{
  font-weight:800;
  color:#0f172a;
}
body.page-template-default:not(.page-template-page-news):not(.home) .page-entry--contact .grunion-field,
body.page-template-default:not(.page-template-page-news):not(.home) .page-entry--contact .wp-block-jetpack-input{
  border-color:#cfd8e3 !important;
  background:#fff !important;
}
body.page-template-default:not(.page-template-page-news):not(.home) .page-entry--sitemap,
body.page-template-default:not(.page-template-page-news):not(.home) body.page-id-26 .layout.layout--one > section > article.entry.page-entry{
  width:100% !important;
  max-width:none !important;
}
@media (max-width: 768px){
  body.page-template-default:not(.page-template-page-news):not(.home) .layout.layout--one > section > article.entry.page-entry{
    padding:22px 18px 28px !important;
  }
  body.page-template-default:not(.page-template-page-news):not(.home) .page-entry__meta{
    margin-bottom:14px;
  }
  body.page-template-default:not(.page-template-page-news):not(.home) .page-entry__line{
    width:64px;
  }
  body.page-template-default:not(.page-template-page-news):not(.home) .page-entry__eyebrow{
    font-size:11px;
    letter-spacing:.24em;
  }
  body.page-template-default:not(.page-template-page-news):not(.home) article.entry.page-entry h1{
    font-size:20px;
    margin-bottom:18px;
  }
  body.page-template-default:not(.page-template-page-news):not(.home) article.entry.page-entry .content > p:first-child,
  body.page-template-default:not(.page-template-page-news):not(.home) article.entry.page-entry .content p,
  body.page-template-default:not(.page-template-page-news):not(.home) article.entry.page-entry .content ul li{
    font-size:14px;
    line-height:1.85;
  }
}


/* ===== v1.8.12: stable recovery - isolate page shell + restore home popular ===== */
body.page-template-default:not(.page-template-page-news):not(.home) main.container{
  max-width:1120px !important;
  width:min(1120px, calc(100% - 32px)) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
body.page-template-default:not(.page-template-page-news):not(.home) .page-shell{
  display:block !important;
  width:100% !important;
  max-width:1120px !important;
  margin:22px auto 0 !important;
}
body.page-template-default:not(.page-template-page-news):not(.home) .page-shell > article.entry.page-entry{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  box-sizing:border-box !important;
  margin:0 !important;
  padding:30px 56px 38px !important;
  border:1px solid #d9e0e8 !important;
  background:#fff !important;
}
body.page-template-default:not(.page-template-page-news):not(.home) .page-shell > article.entry.page-entry .content,
body.page-template-default:not(.page-template-page-news):not(.home) .page-shell > article.entry.page-entry .content > *,
body.page-template-default:not(.page-template-page-news):not(.home) .page-shell > article.entry.page-entry .wp-block-group,
body.page-template-default:not(.page-template-page-news):not(.home) .page-shell > article.entry.page-entry .wp-block-group__inner-container,
body.page-template-default:not(.page-template-page-news):not(.home) .page-shell > article.entry.page-entry .is-layout-constrained,
body.page-template-default:not(.page-template-page-news):not(.home) .page-shell > article.entry.page-entry .alignwide,
body.page-template-default:not(.page-template-page-news):not(.home) .page-shell > article.entry.page-entry .alignfull{
  max-width:none !important;
  width:auto !important;
}
body.page-template-default:not(.page-template-page-news):not(.home) .page-shell > article.entry.page-entry.page-entry--sitemap{
  width:100% !important;
  max-width:none !important;
}
@media (max-width: 768px){
  body.page-template-default:not(.page-template-page-news):not(.home) main.container{
    width:calc(100% - 24px) !important;
  }
  body.page-template-default:not(.page-template-page-news):not(.home) .page-shell > article.entry.page-entry{
    padding:22px 18px 28px !important;
  }
}

body.home .home-section--popular .popular-carousel{
  position:relative;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:none !important;
  box-shadow:none !important;
}
body.home .home-section--popular .popular-carousel::before{
  content:none !important;
  display:none !important;
}
body.home .home-section--popular .carousel-list{
  counter-reset:popularRank;
  padding-top:0 !important;
}
body.home .home-section--popular .carousel-item{
  position:relative;
  counter-increment:popularRank;
}
body.home .home-section--popular .carousel-item::before{
  content:counter(popularRank, decimal-leading-zero);
  position:absolute;
  z-index:4;
  top:12px;
  left:12px;
  min-width:36px;
  height:36px;
  padding:0 9px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:rgba(17,17,17,.84);
  color:#fff;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  box-shadow:0 10px 20px rgba(17,17,17,.22);
}
body.home .home-section--popular .new-badge{display:none !important;}
body.home .home-section--popular .card{
  position:relative;
  overflow:hidden;
  min-height:0;
  border-radius:22px;
  border:0 !important;
  background:#d9d9d9 !important;
  box-shadow:0 12px 28px rgba(17,17,17,.10) !important;
}
body.home .home-section--popular .card::before{content:none !important;display:none !important;}
body.home .home-section--popular .thumb{
  display:block;
  aspect-ratio:16/9;
}
body.home .home-section--popular .thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
body.home .home-section--popular .thumb::after{
  content:"";
  position:absolute;
  inset:auto 0 0 0;
  height:48%;
  background:linear-gradient(180deg, rgba(17,17,17,0) 0%, rgba(17,17,17,.34) 50%, rgba(17,17,17,.72) 100%);
  pointer-events:none;
}
body.home .home-section--popular .card-body{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:2;
  padding:18px 18px 16px !important;
  background:none !important;
}
body.home .home-section--popular .card-title{
  margin:0 0 6px !important;
  min-height:0 !important;
}
body.home .home-section--popular .card-title a{
  color:#fff !important;
  font-size:24px;
  line-height:1.28;
  font-weight:800;
}
body.home .home-section--popular .meta,
body.home .home-section--popular .meta span{
  color:rgba(255,255,255,.82) !important;
  font-size:12px !important;
}
body.home .home-section--popular .badges{
  margin-top:10px !important;
}
body.home .home-section--popular .badge{
  background:rgba(255,255,255,.16) !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.26) !important;
  backdrop-filter:blur(2px);
}
body.home .home-section--popular .card-body > p{display:none !important;}
body.home .home-section--popular .carousel-btn{
  background:rgba(17,17,17,.68);
  color:#fff;
  border-radius:999px;
  width:40px;
  height:40px;
}
@media (max-width: 640px){
  body.home .home-section--popular .thumb{aspect-ratio:4/3;}
  body.home .home-section--popular .carousel-btn{display:none !important;}
  body.home .home-section--popular .card-title a{font-size:18px;}
  body.home .home-section--popular .card-body{padding:14px 14px 14px !important;}
  body.home .home-section--popular .carousel-item::before{
    top:10px; left:10px; min-width:32px; height:32px; font-size:10px;
  }
}

/* ===== v1.8.18: home popular carousel arrow visibility + no-regression hotfix ===== */
body.home .home-section--popular,
body.home .home-section--popular .popular-carousel,
body.home .home-section--popular .popular-wrap{
  overflow: visible !important;
}

body.home .home-section--popular .carousel-viewport,
body.home .home-section--popular #popularViewport{
  overflow-x: auto;
  overflow-y: visible;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

@media (min-width: 641px){
  body.home .home-section--popular .popular-carousel{
    position: relative;
  }
  body.home .home-section--popular .carousel-btn{
    top: 50%;
    z-index: 60;
    width: 40px;
    height: 40px;
    border-radius: 999px;
  }
  body.home .home-section--popular .carousel-btn--prev{
    left: 0 !important;
    transform: translate(-50%, -50%) !important;
  }
  body.home .home-section--popular .carousel-btn--next{
    right: 0 !important;
    transform: translate(50%, -50%) !important;
  }
}

@media (max-width: 640px){
  body.home .home-section--popular .carousel-btn--prev,
  body.home .home-section--popular .carousel-btn--next{
    transform: translateY(-50%) !important;
  }
}


/* ===== v1.8.19: stable recovery for fixed pages + popular slider ===== */
body.wp-singular.page main.container{
  width:100% !important;
  max-width:none !important;
  padding-left:16px !important;
  padding-right:16px !important;
  box-sizing:border-box !important;
}
body.wp-singular.page .page-shell{
  width:min(1120px, calc(100vw - 32px)) !important;
  max-width:none !important;
  margin:22px auto 0 !important;
  display:block !important;
}
body.wp-singular.page .page-shell > article.entry.page-entry{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  box-sizing:border-box !important;
}
body.wp-singular.page .page-shell > article.entry.page-entry .content,
body.wp-singular.page .page-shell > article.entry.page-entry .content > *,
body.wp-singular.page .page-shell > article.entry.page-entry .wp-block-group,
body.wp-singular.page .page-shell > article.entry.page-entry .wp-block-group__inner-container,
body.wp-singular.page .page-shell > article.entry.page-entry .is-layout-constrained,
body.wp-singular.page .page-shell > article.entry.page-entry .alignwide,
body.wp-singular.page .page-shell > article.entry.page-entry .alignfull{
  max-width:none !important;
}

body.home .home-section--popular,
body.home .home-section--popular .popular-carousel{
  overflow:visible !important;
}
body.home .home-section--popular .carousel-viewport,
body.home .home-section--popular #popularViewport{
  overflow:hidden !important;
  padding:0 18px !important;
}
body.home .home-section--popular .carousel-list{
  display:flex !important;
  gap:12px !important;
  transition:transform .35s ease !important;
  will-change:transform;
}
body.home .home-section--popular .carousel-item{
  flex:0 0 calc((100% - 12px) / 2) !important;
  min-width:calc((100% - 12px) / 2) !important;
}
body.home .home-section--popular .carousel-btn{
  z-index:70 !important;
  top:50% !important;
  transform:translateY(-50%) !important;
}
body.home .home-section--popular .carousel-btn--prev{ left:10px !important; }
body.home .home-section--popular .carousel-btn--next{ right:10px !important; }
body.home .home-section--popular .carousel-dots{ margin-top:10px !important; }

@media (max-width: 640px){
  body.home .home-section--popular .carousel-viewport,
  body.home .home-section--popular #popularViewport{
    padding:0 !important;
    overflow-x:hidden !important;
  }
  body.home .home-section--popular .carousel-item{
    flex:0 0 100% !important;
    min-width:100% !important;
  }
}

/* hide home guides block on posts homepage */
body.home.blog .home-guides,
body.blog .home-guides,
body.home .home-guides {
  display: none !important;
}


/* ===== v1.0.10: home safety fixes (hide guides / hero fallback / cleaner popular rail / unified spacing) ===== */
body.home .home-guides{
  display:none !important;
}

body.home .hero{
  margin-bottom:0;
}
body.home .hero__bg{
  min-height:360px;
  background-color:#10233c;
  background-repeat:no-repeat;
}

body.home .home-section--popular .popular-carousel{
  padding:20px 0 14px;
  background:transparent;
  border:none;
}
body.home .home-section--popular .carousel-viewport{
  overflow:hidden;
  padding:0 18px 10px;
}
body.home .home-section--popular ul.carousel-list{
  gap:20px !important;
}
body.home .home-section--popular li.carousel-item{
  flex:0 0 calc((100% - 20px) / 2);
}
body.home .home-section--popular .carousel-btn{
  top:50%;
  transform:translateY(-50%);
}
body.home .home-section--popular .carousel-btn--prev{
  left:0;
}
body.home .home-section--popular .carousel-btn--next{
  right:0;
}

body.home .home-section,
body.home .home-news,
body.home .operator-box,
body.home .home-guides{
  margin-top:52px;
}
body.home .home-section--popular{
  margin-top:48px;
}
body.home .section-head--editorial{
  margin:0 0 20px;
}

@media (max-width: 960px){
  body.home .home-section--popular .carousel-viewport{
    padding:0 14px 10px;
  }
}

@media (max-width: 640px){
  body.home .hero__bg{
    min-height:220px;
  }
  body.home .home-section,
  body.home .home-news,
  body.home .operator-box,
  body.home .home-guides{
    margin-top:40px;
  }
  body.home .home-section--popular{
    margin-top:34px;
  }
  body.home .home-section--popular .carousel-viewport{
    padding:0 12px 10px;
  }
  body.home .home-section--popular li.carousel-item{
    flex-basis:100%;
  }
}


/* ===== v1.0.13: home/category reveal animation (reduced-motion safe) ===== */
body.home.js-enabled .reveal-on-scroll,
body.category.js-enabled .reveal-on-scroll{
  opacity:0;
  transform:translate3d(0,24px,0);
  transition:
    opacity .72s cubic-bezier(.22,.61,.36,1),
    transform .72s cubic-bezier(.22,.61,.36,1);
  transition-delay:var(--reveal-delay,0s);
  will-change:opacity, transform;
}

body.home.js-enabled .reveal-on-scroll.is-visible,
body.category.js-enabled .reveal-on-scroll.is-visible{
  opacity:1;
  transform:translate3d(0,0,0);
}

body.home.js-enabled .hero__copy.reveal-on-scroll,
body.category.js-enabled .archive-title.reveal-on-scroll{
  transform:translate3d(0,18px,0);
}

body.home.js-enabled .home-section--popular .carousel-item .card.reveal-on-scroll,
body.home.js-enabled .home-section--latest .grid-3 > .card.reveal-on-scroll,
body.home.js-enabled .home-section--cats .cat-grid > .cat-card.reveal-on-scroll,
body.category.js-enabled .cat-popular .grid-3 > .card.reveal-on-scroll,
body.category.js-enabled .cat-latest .grid-3 > .card.reveal-on-scroll,
body.category.js-enabled .cat-bottom .cat-grid > .cat-card.reveal-on-scroll{
  transition-duration:.68s;
}

body.home.js-enabled .home-section--cats .cat-grid > .cat-card.reveal-on-scroll,
body.category.js-enabled .cat-bottom .cat-grid > .cat-card.reveal-on-scroll{
  transform:translate3d(0,18px,0);
}

body.home.js-enabled .home-section--news .news-items.reveal-on-scroll,
body.home.js-enabled .home-section--profile .operator-card.reveal-on-scroll,
body.category.js-enabled .archive-title.reveal-on-scroll,
body.category.js-enabled .home-pagination.reveal-on-scroll{
  transform:translate3d(0,20px,0);
}

body.home .cat-card,
body.home .home-section--latest .card,
body.home .home-section--popular .card,
body.home .operator-card,
body.category .cat-card,
body.category .cat-latest .card,
body.category .cat-popular .card{
  backface-visibility:hidden;
}

@media (prefers-reduced-motion: reduce){
  body.home.js-enabled .reveal-on-scroll,
body.category.js-enabled .reveal-on-scroll{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
}


/* ===== v1.0.12: hero CTA clipping fix ===== */
body.home .hero{
  overflow: visible;
  margin-bottom: 16px;
}
body.home .hero__bg{
  min-height: 400px;
}
body.home .hero__inner{
  align-items: flex-end;
  padding-bottom: 36px;
}
body.home .hero__copy{
  margin-bottom: 0;
}

@media (max-width: 640px){
  body.home .hero__bg{
    min-height: 260px;
  }
  body.home .hero__inner{
    padding-bottom: 24px;
  }
}


/* ===== v1.0.14: home/category tile shadow + slower popular slider ===== */
body.home .home-section--latest .card,
body.category .cat-popular .card,
body.category .cat-latest .card{
  border:1px solid rgba(17,17,17,.06);
  box-shadow:0 10px 24px rgba(15,23,42,.08);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

body.home .home-section--latest .card:hover,
body.category .cat-popular .card:hover,
body.category .cat-latest .card:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 34px rgba(15,23,42,.12);
  border-color:rgba(17,17,17,.1);
}

body.home .home-section--latest .thumb,
body.category .cat-popular .thumb,
body.category .cat-latest .thumb{
  background:#e9edf3;
}

@media (prefers-reduced-motion: reduce){
  body.home .home-section--latest .card,
  body.category .cat-popular .card,
  body.category .cat-latest .card{
    transition:none !important;
  }
}
