/*
Theme Name: takaho2025
Theme URI:  https://takaho-industry.com
Author:      高保工業
Author URI:  https://example.com
Description: 高保工業コーポレートサイト用 WordPress テーマ
Version:     1.0.0
License:     GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: takaho2025
Tags:        corporate, responsive, accessibility-ready
*/
/* --------------------------------------------------
   CSS Reset – takaho2025
   (Eric Meyer’s Reset 2.0 + 一部シンプル化)
-------------------------------------------------- */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
main, menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, main, nav, section {
  display: block;
}

body { line-height: 1; }
ol, ul { list-style: none; }
blockquote, q { quotes: none; }
blockquote::before, blockquote::after,
q::before, q::after { content: ''; }

table { border-collapse: collapse; border-spacing: 0; }

/* インプット系 */
button, input, select, textarea {
  font: inherit;
  background: none;
  border: none;
  padding: 0;
}

a { text-decoration: none; color: inherit; }

/* 画像の下の隙間を消す */
img, svg { vertical-align: middle; }

/* --------------------------------------------------
   Base
-------------------------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;700&display=swap');

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: 'Noto Serif JP', serif;
  line-height: 1.6;
  color: #fff;
  letter-spacing: .05em;
}

img { max-width: 100%; display: block; }
a   { color: inherit; text-decoration: none; }
ul  { list-style: none; }

/* --------------------------------------------------
   Utilities
-------------------------------------------------- */
.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; border: 0;
}

/* --------------------------------------------------
   Header (Fixed)
-------------------------------------------------- */
.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  padding: 1rem 1rem;
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 1000;
  transition: background .3s ease, backdrop-filter .3s ease;
}
.site-header.scrolled {
  background: rgba(29, 45, 102, .85);
  backdrop-filter: blur(8px);
}

/* Brand */
.brand {
  display: flex; align-items: center; gap: .75rem;
  font-size: clamp(.9rem, 1.5vw, 1rem);
  font-weight: 700;
}
.brand img { width: 30px; height: 30px; }

/* Primary Nav */
.site-nav ul { display: flex; gap: 1.2rem; }
.site-nav a { font-size: clamp(.85rem, 1.4vw, .95rem); position: relative; }
.site-nav a::after {
  content: ''; position: absolute; bottom: -.3rem; left: 0;
  width: 0; height: 2px; background: #fff; transition: width .25s ease;
}
.site-nav li:last-child a::after {
  content: ''; position: absolute; bottom: -.3rem; left: 0;
  width: 0; height: 0; background: #fff; transition: width .25s ease;
}
.site-nav a:hover::after,
.site-nav a:focus-visible::after { width: 100%; }

/* CTA */
.cta {
  padding: .6rem 1.6rem;
  background: #1D2D66; border-radius: 999px;
  font-weight: 700; white-space: nowrap;
}
.cta:hover { opacity: .9; }

/* Hamburger (bars) */
.nav-toggle {
  --size: 23px;
  display: none;                /* PC 非表示 */
  flex-direction: column;
  justify-content: space-between;
  width: var(--size); height: var(--size);
  background: none; border: 0; cursor: pointer;
  z-index: 1100;
}
.nav-toggle .bar {
  width: 100%; height: 3px;
  background: #fff; border-radius: 2px;
  transition: transform .3s ease, opacity .3s ease;
}
.nav-toggle.open .bar:nth-child(1) { transform: translateY(10px) rotate(45deg); }
.nav-toggle.open .bar:nth-child(2) { opacity: 0; }
.nav-toggle.open .bar:nth-child(3) { transform: translateY(-10px) rotate(-45deg); }

/* --------------------------------------------------
   Hero (MV)
-------------------------------------------------- */
.mv { position: relative; height: 100vh; overflow: hidden; }
.mv__bg {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  border-bottom-right-radius: 230px;
  z-index: -3;
}
/* watermark */
.mv::before {
  content: ''; position: absolute; left: 8%; bottom: 5%;
  width: 40vmin; height: 40vmin;
  background: url('images/mv_logo.png') center/contain no-repeat;
  opacity: .08; z-index: -2;
}
.mv__copy {
  position: absolute; left: 3%; bottom: 7vh;
  max-width: 90%;
}
.mv__copy h1 {
  font-size: clamp(2rem, 5vw, 2rem);
  font-weight: 700; margin-bottom: 1rem;
}
.mv__copy p { font-size: clamp(1rem, 1.3vw, 1.05rem); }

/* --------------------------------------------------
   History Section
-------------------------------------------------- */
.history {
  padding: 6rem 8vw; background: #fff; color: #1D2D66;
}
.history__inner {
  max-width: 1400px; margin-inline: auto;
  display: flex; gap: 4rem; align-items: center;
}
.history__text { flex: 1; }
.history__title {
  font-size: clamp(1.3rem, 1.6vw, 2rem);
  font-weight: 700; margin-bottom: .8rem;
}
.history__title .year { font-size: 2em; font-weight: 600; }
.history__lead  { font-size: clamp(1.3rem, 1.6vw, 2rem); font-weight: 700; margin-bottom: 2rem; }
.history p      { margin-bottom: 1.4rem; }
.btn-outline {
  display: inline-block; min-width: 200px; text-align: center;
  padding: .4rem 2.4rem; border: 1.5px solid currentColor;
  border-radius: 25px; font-weight: 600; transition: .25s; margin: 20px 0 0 0;
}
.btn-outline:hover { background: #1D2D66; color: #fff; }
.history__image { flex: 0 0 40%; }
.history__image img { border-radius: 64px; object-fit: cover; }

/* --------------------------------------------------
   Information Section
-------------------------------------------------- */
.info {
  position: relative;
  margin: 3rem 0 3rem 5rem;
  padding: 3rem;
  background: url(images/infomation.png) center / cover no-repeat;
  border-bottom-left-radius: 70px;
  overflow: hidden;
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: end;
}
.info::before {                       /* トーンダウン */
  content: ""; position: absolute; inset: 0;
  background: rgba(0,0,0,.55); z-index: -1;
}
.info__inner {
  max-width: 1400px; margin-inline: auto;
  display: grid; grid-template-columns: min-content 1fr;
  column-gap: 3rem;
}
.info__heading {
  writing-mode: vertical-rl; text-orientation: upright;
  font-size: clamp(1.6rem, 2.4vw, 2.4rem); font-weight: 500;
}
.info__list { display: flex; flex-direction: column; gap: 2rem; }
.info__list li { display: flex; align-items: center; gap: 2rem; line-height: 1.6; }
.info__list time { font-size: .95rem; white-space: nowrap; }
.info__list .divider { flex: 0 0 120px; height: 1px; background: #fff; opacity: .7; }

/* --------------------------------------------------
   Works Section
-------------------------------------------------- */
.works { margin: 3rem 2rem; text-align: center; }
.sec-head { margin-bottom: 3rem; }
.sec-head .sec-en { font-size: clamp(2.2rem, 5vw, 2.5rem); font-weight: 600; }
.h_white { color:#fff!important; }
.h_blue { color: #1D2D66!important; }
.sec-head .sec-ja { font-size: 1.1rem; color: #fff; }

.work-card {
  position: relative;
  display: block;
  max-width: 1300px; height: 300px; margin: 0 auto;
  border-radius: 32px; overflow: hidden; color: #fff;
}
.work-card__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .5s; }
.work-card::before { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.45); z-index: -1; transition: background .5s; }
.work-card__content {
  position: absolute; top: 50%; left: clamp(1rem, 6vw, 5rem);
  transform: translateY(-50%); text-align: left; max-width: 45%;
}
.work-card__cat { font-size: 1.1rem; font-weight: 700; }
.work-card__title { font-size: clamp(1rem, 4vw, 2.4rem); margin: .4rem 0; }
.work-card__btn { display: inline-block; padding: .7rem 3rem; border-radius: 999px; background: rgba(0,0,0,.35); border: 1px solid #fff; }

@media (hover:hover) {
  .work-card:hover .work-card__bg { transform: scale(1.05); }
  .work-card:hover::before        { background: rgba(0,0,0,.6); }
}

/* --------------------------------------------------
   Our Strengths Section
-------------------------------------------------- */
.strengths { position: relative; padding: 6rem 0 8rem; text-align: center; }
.strengths::before {
  content: ""; position: absolute; inset: 0;
  background: url("images/os_back.png") center/cover no-repeat; z-index: -2;
}
.strengths__inner { max-width: 1240px; margin: 0 auto; padding: 0 2rem; }

/* 強み 3 本 */
.strengths__items {
  display: grid; grid-template-columns: repeat(3,1fr); gap: 3rem;
  margin: 3rem 0 6rem; position: relative;
}
.strengths__items::before,
.strengths__items::after {
  content: ""; position: absolute; top: 0; bottom: 0; width: 1px;
  background: rgba(255,255,255,.3);
}
.strengths__items::before { left: 33.333%; }
.strengths__items::after  { left: 66.666%; }

.strength { display: flex; flex-direction: column; gap: 1rem; text-align: left; }
.strength__icon { width: 32px; }
.strength__title { font-size: 1.15rem; font-weight: 700; }
.strength__text  { font-size: .95rem; line-height: 1.8; }

/* 経営理念ボックス */
.philosophy { margin: 0 auto 4rem; max-width: 680px; }
.philosophy img { width: 100%; display: block; }

/* --------------------------------------------------
   Responsive
-------------------------------------------------- */
@media (max-width: 992px) {
  .history__inner   { flex-direction: column-reverse; }
  .history__image img { border-radius: 32px; }

  .strengths__items { grid-template-columns: 1fr; gap: 2.5rem; }
  .strengths__items::before,
  .strengths__items::after { display: none; }
  .strength { align-items: center; text-align: center; }
  .philosophy { max-width: 100%; }
}

@media (max-width: 768px) {
  /* Header */
  .nav-toggle { display: flex; }
  .site-nav   {                     /* Off-canvas */
    position: fixed; inset: 0 0 0 auto; width: 70%; max-width: 320px;
    padding: 6rem 2rem; background: #1D2D66; display: none;
    flex-direction: column; gap: 1.5rem; z-index: 1000;
  }
  .site-nav.open { display: flex;
    height: 100vh; }
    .site-nav ul { flex-direction: column; gap: 1.5rem; }
    .cta {
      align-self: flex-start;
      padding: 0;
      background: transparent;
      border-radius: none;
      font-weight: 700;
      white-space: nowrap;
    }
    /* Hero */
    .mv__bg          { border-bottom-right-radius: 120px; object-position: -600px 0; }
    .mv__copy        { bottom: 14vh; left: 6%; }
    .mv__copy h1     { font-size: 2.4rem; }

    /* Information */
    .info { margin: 0 0 3rem 1.5rem; padding: 2rem 1.5rem; }
    .info__inner { grid-template-columns: min-content 1fr; column-gap: 1.5rem; }
    .info__heading { font-size: 1.4rem; }
    .info__list    { gap: 2.5rem; }
    .info__list li { flex-direction: column; align-items: flex-start; gap: .6rem; }
    .info__list .divider { width: 140px; flex:0 0 1px; }
    .info__btn { margin-top: 3rem; align-self: flex-end; }

    /* Works */
    .work-card { height: 320px; border-radius: 40px; }
    .work-card__content { top: 55%; left: 1.5rem; max-width: 80%; }
    .work-card__title   { font-size: 2rem; }
  }

  @media (max-width: 576px) {
    .strengths { padding: 4rem 0 6rem; }
    .strength__title { font-size: 1.05rem; }
    .strength__text  { font-size: .9rem; }
  }

/* ===============================
   Contact / Map / Recruit Block
=============================== */
.cta-block {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  min-height: 500px;
}

/* 共通カード */
.cta-card {
  position: relative;
  padding: 3rem 2.5rem;
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2rem;
  text-align: left;
}

/* 背景画像 */
.info-card    { background: url("images/info_back.png")   center/cover no-repeat; }
.recruit-card { background: url("images/rec_back.png")    center/cover no-repeat; }

/* オーバーレイで暗めに */
.info-card::before,
.recruit-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(29,45,102,.55);
  z-index: -1;
}

/* 電話・FAX行 */
.tel, .fax {
  display: flex; align-items: center; gap: .8rem;
  font-size: 1.4rem; letter-spacing: .05em;
}

/* メールボタン */
.cta-mail {
  display: inline-flex; align-items: center; gap: 1rem;
  padding: 1.1rem 2.8rem;
  background: #fff; color: #1d2d66;
  border-radius: 45px;
  font-weight: 600;
}

/* Recruit ボタン */
.cta-btn {
  display: inline-block;
  margin-top: 1rem;
  padding: 1.1rem 3.6rem;
  border: 2px solid #fff;
  border-radius: 45px;
  font-weight: 600;
  text-align: center;
  backdrop-filter: blur(2px);
}
.cta-btn:hover { background: rgba(255,255,255,.15); }

/* ---------- Responsive ---------- */
@media (max-width: 992px) {
  .cta-block { grid-template-columns: 1fr; }
  .cta-card  { text-align: center; align-items: center; }
  .tel, .fax { justify-content: center; }
}
/* ===============================
   Contact / Map / Recruit Section
=============================== */
.cta-block {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* PC = 3 等分 */
  min-height: 300px;
}

/* ------- 共通カード ------- */
.cta-card {
  position: relative;
  padding: 3rem 2.4rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: .8rem;
  color: #fff;
  overflow: hidden;
}

/* 背景画像（左右のみ） */
.info-card    { background: url("images/info_back.png") center/cover no-repeat; }
.recruit-card { background: url("images/rec_back.png")  center/cover no-repeat; }

.info-card::before,
.recruit-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(29,45,102,.55);  /* 暗めオーバーレイ */
  z-index: -1;
}

/* 地図カード：iframe を全面に */
.map-card { padding: 0; }
.map-card iframe {
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
}

/* 電話・FAX 行 */
.tel, .fax {
  display: flex;
  align-items: center;
  gap: .8rem;
  font-size: 1.4rem;
}

/* ボタン共通（メール・採用） */
.cta-mail, .cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding: 1.1rem 2.8rem;
  border-radius: 45px;
  font-weight: 600;
}
.cta-mail { background: #fff; color: #1d2d66; }
.cta-btn  { border: 2px solid #fff; }
.cta-btn:hover { background: rgba(255,255,255,.15); }

/* ---------- Responsive ---------- */
@media (max-width: 992px) {
  .cta-block { grid-template-columns: 1fr; min-height: auto; }
  .cta-card  { align-items: center; text-align: center; padding: 3rem 1.8rem; }
  .tel, .fax { justify-content: center; }
  .map-card  { height: 340px;padding: 0; }  /* 縦並び時の固定高 */
}
/* ===============================
   Footer
=============================== */
.site-footer {
  font-size: .95rem;
  color: #1d2d66;
}

/* ----- 上段 ----- */
.footer-top {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 3rem;
  padding: 2.5rem 1rem;
}

.footer-brand {
  display: flex;
  align-items: center;
  gap: .8rem;
  font-weight: 700;
}

.footer-nav ul { display: flex; flex-wrap: wrap; gap: 2rem; justify-content: center;}

/* ----- 下段 ----- */
.footer-bottom {
  background: #1d2d66;
  text-align: center;
  padding: 1.8rem 1rem;
  color: #fff;
}

/* ---------- Responsive ---------- */
@media (max-width: 768px) {
  .footer-top {
    flex-direction: column;
    gap: 1.5rem;
    text-align: center;
  }
  .footer-nav ul { gap: 1rem; }
}


/* ======================================
   Scroll-in Animation
   .sc_up   : 初期状態（非表示）
   .is-show : 交差判定で付与 → 表示
====================================== */
.sc_up {
  opacity: 0;
  transform: translateY(40px);     /* 下から 40px 浮かせる */
  transition: opacity .8s ease-out, transform .8s ease-out;
  will-change: opacity, transform; /* パフォーマンス向上 */
}

.sc_up.is-show {
  opacity: 1;
  transform: translateY(0);
}

/* ===============================
   Page Hero (Lower pages)
=============================== */
.page-hero {
  position: relative;
  height: 300px;                      /* 画像高さと合わせる */
  background: url("images/low_head.png") center/cover no-repeat;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #fff;
  overflow: hidden;
}
.page-hero__title {
  font-size: clamp(1.6rem, 2.8vw, 1.4rem);
  font-weight: 600;
  letter-spacing: .05em;
}
/* ===============================
   Greeting Section
=============================== */
.greeting {
  padding: 6rem 8vw;
  background: #fff;
  color: #1d2d66;
}

.greeting__inner {
  max-width: 1400px; margin-inline: auto;
  display: flex; gap: 4rem; align-items: center;
}

.greeting__text { flex: 1; }
.greeting__text .sec-en {
  font-size: clamp(2rem, 4.5vw, 3rem);
  font-weight: 700; color: #1d2d66;
}
.greeting__text .sec-ja {
  font-size: 1.15rem; margin-bottom: 2.2rem; color: #1d2d66;
}
.greeting__text p { line-height: 2; margin-bottom: 1.6rem; }
.greeting__sign   { margin-top: 2.2rem; text-align: right; font-weight: 600; }

.greeting__image { flex: 0 0 38%; }
.greeting__image img {
  width: 100%; height: auto; border-radius: 64px; object-fit: cover;
}

/* ---------- Responsive ---------- */
@media (max-width: 992px) {
  .greeting__inner { flex-direction: column; text-align: left; }
  .greeting__image { width: 100%; }
  .greeting__image img { border-radius: 32px; }
  .page-hero {
    background: url(images/low_head.png) -700px / cover no-repeat;
  }

}

/* ===============================
   Photo Gallery
=============================== */
.gallery {
  display: grid;
  grid-template-columns: repeat(2, 1fr); /* 2 カラム */
  gap: 2rem;
  padding: 6rem 8vw;
}

/* 01番だけ幅 2 枚分 */
.gallery__item.wide {
  grid-column: span 2;
}

/* 共通画像スタイル */
.gallery__item img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 12px;
  object-fit: cover;
}

/* ---------- Responsive ---------- */
@media (max-width: 576px) {
  .gallery { grid-template-columns: 1fr; } /* SP は 1 カラム */
  .gallery__item.wide { grid-column: span 1; }
}

/* ===============================
   Hull Gallery (3-column grid)
=============================== */
.hull-gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 3 枚並び */
  gap: 2rem;
  padding: 6rem 8vw;
}

.hull-item img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 12px;
  object-fit: cover;
}

/* ---------- Responsive ---------- */
@media (max-width: 992px) {
  .hull-gallery { grid-template-columns: repeat(2, 1fr); } /* タブレット：2 枚 */
}
@media (max-width: 576px) {
  .hull-gallery { grid-template-columns: 1fr; }            /* スマホ：1 枚 */
}

/* ===============================
   Company Profile Table (table 版)
=============================== */
.company { padding: 6rem 8vw; background:#fff; color:#1d2d66; }
.company h2 {text-align: center;}
.h_center {text-align: center;}
.company-table {
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  border-collapse: collapse;        /* 罫線を 1 本に */
  font-size: 1rem;
}

.company-table td {
  padding: 1.8rem 0;
  line-height: 1.9;
  padding: 1rem;
  box-sizing: border-box;
  min-width: 130px;
}

/* 左列（項目名） */
.company-table td:first-child {
  width: 240px;                     /* 青線の長さ */
  font-weight: 700;
  position: relative;               /* 青線の基準 */
  letter-spacing: .05em;
}

/* 行全体の薄グレーライン */
.company-table tr {
  border-bottom: 1px solid #bfc2c8;
}

/* 左列の青ライン（上から重ねる） */
.company-table td:first-child::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;                     /* グレー線に重ねる */
  width: 100%;                      /* = left col width */
  height: 3px;
  background: #104ea2;
}

/* ---------- Responsive ---------- */
@media (max-width: 576px) {
  .company-table td { padding: 1.4rem 0; }
  .company-table td:first-child {
    width: auto;
    padding-right: .5rem;
  }
  .company-table td:first-child::after {
    width: 45%;                     /* 青線を短めに */
  }
}

/* ===============================
   History Section
=============================== */
.history-sec {
  position: relative;
  padding: 6rem 0 8rem;
  color: #fff;
  background: url("images/history_back.png") center/cover no-repeat;
}
.history-sec::before {            /* 濃淡調整オーバーレイ */
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .45);
  z-index: -1;
}

.history-sec__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 2rem;
}

/* 見出し */
/* ----- Timeline (dl) ----- */
.history-timeline {
  margin: 0 auto;
  max-width: 800px;
  display: grid;
  row-gap: 1.8rem;
  column-gap: 2rem;
  font-size: 0.95rem;
  line-height: 1.9;
  padding: 0 3rem;
}
.hiswrap {
  display: flex;
  flex-direction: row;
  align-items: baseline;
  justify-content: flex-start;
  flex-wrap: nowrap;
}
.history-timeline dt {
  font-weight: 700;
  white-space: nowrap;
  position: relative;
  padding-left: .8rem;
  margin: 0 5rem 0 0;
}
.history-timeline dd { margin: 0; }

/* ---------- Responsive ---------- */
@media (max-width: 680px) {
  .history-timeline {
    grid-template-columns: 1fr;   /* 1 カラム */
  }
  .history-timeline dt { padding-left: 0; }
  .history-timeline dt::before { display: none; }
  .history-timeline dd { padding-left: .5rem; }
  .hiswrap {
    flex-wrap: wrap;
  }
}


/* ===============================
   Archive Section
=============================== */
.archive {
  padding: 0 1rem;
  color: #0D0D0D;
}

.archive-item {
  padding: 2.5rem 0;
  border-bottom: 2px solid #1d2d66;
  position: relative;
  max-width: 800px;
  margin: 0 auto;
}

.archive-date {
  display: block;
  font-size: 1.2rem;
  font-weight: 700;
  margin-bottom: 1rem;
}

.archive-title {
  font-size: 1.35rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
}

.archive-cat {
  display: inline-block;
  padding: .35rem 1.8rem;
  font-size: .95rem;
  font-weight: 700;
  color: #fff;
  border-radius: 4px;
  margin-bottom: 1.8rem;
}

/* カテゴリ別カラー  */
.archive-cat.newscat  { background: #4d4d4d; }   /* ダークグレー */
.archive-cat.workscat { background: #104ea2; }   /* 紺系 */

.archive-excerpt {
  line-height: 1.9;
  font-size: 1rem;
}

/* ---------- Responsive ---------- */
@media (max-width: 576px) {
  .archive-date   { font-size: 1rem; }
  .archive-title  { font-size: 1.1rem; }
  .archive-cat    { font-size: .85rem; padding: .3rem 1.4rem; }
}

/* ===============================
   Pagination
=============================== */
.pager {
  margin: 4rem 0;
  text-align: center;
}

.pager-list {
  display: inline-flex;
  gap: .6rem;
  list-style: none;
}

.pager-list a,
.pager-list span {
  display: block;
  min-width: 40px;
  padding: .6rem 1rem;
  border: 1px solid #1d2d66;
  border-radius: 4px;
  font-weight: 600;
  color: #1d2d66;
  transition: .2s;
}

.pager-list a:hover,
.pager-list a:focus-visible {
  background: #1d2d66;
  color: #fff;
}

.pager-list .is-current {
  pointer-events: none;
  background: #1d2d66;
  color: #fff;
}

.pager-prev,
.pager-next {
  font-size: 1.1rem;
}

.pager-ellipsis {
  border: none;
  pointer-events: none;
  padding: .6rem .4rem;
}
/* ===============================
   Article (Single Post)
=============================== */
.post {
  max-width: 900px;
  margin: 4rem auto;
  padding: 0 1rem;
  color: #0d0d0d;
}

.post-head {
  position: relative;
  margin-bottom: 3rem;
  border-bottom: 2px solid #1d2d66;
  padding-bottom: 2rem;
}

.post-title {
  font-size: clamp(1.4rem, 4vw, 1.4rem);
  font-weight: 700;
  line-height: 1.3;
}

.post-date {
  position: absolute;
  top: 0;
  right: 0;
  font-size: .95rem;
  color: #666;
}

.post-cat {
  display: inline-block;
  margin-top: 1.4rem;
  padding: .35rem 1.6rem;
  font-size: .9rem;
  font-weight: 700;
  color: #fff;
  border-radius: 4px;
}

.post-cat.news  { background: #4d4d4d; }
.post-cat.works { background: #104ea2; }

.post-body p {
  line-height: 2;
  font-size: 1.05rem;
  margin-bottom: 2rem;
}

.post img {
  width: 800px;
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}

/* ---------- Responsive ---------- */
@media (max-width: 576px) {
  .post-date { position: static; margin-top: .8rem; }
  .post-head { text-align: left; }
  .post-title { font-size: 1.4rem; }
}
/* ===== Post Navigation (pill buttons) ===== */
.post-nav{
  margin: 3rem 0 5rem;
  display: flex;
  justify-content: space-around;
  gap: 1rem;
}

.post-nav__link{
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .7rem 1.4rem;
  border: 2px solid #1d2d66;
  border-radius: 999px;
  font-size: .9rem;
  font-weight: 700;
  color: #1d2d66;
  text-decoration: none;
  transition: background .25s, color .25s, transform .25s;
}
.post-nav__link:hover{
  background: #1d2d66;
  color: #fff;
  transform: translateY(-2px);
}
.post-nav__icon{
  font-size: 1.3rem;
  line-height: 1;
}
.post-nav__link.prev .post-nav__icon{ order: -1; }  /* 矢印を左側へ */

@media (max-width: 576px){
  .post-nav{ flex-direction: row; }
  .post-nav__link{ align-self: flex-start; }
  .post-nav__link.next{ align-self: flex-end; }
}
/* ===== LINE エントリー Section ===== */
.line-entry{
  margin: 4rem auto 6rem;
  max-width: 960px;
  text-align: center;
}
.line-banner{
  display: inline-block;
  max-width: 100%;
  transition: transform .25s ease, box-shadow .25s ease;
}
.line-banner:hover{
  transform: translateY(-3px);
}

.entry-form{
  margin-top: 3rem;
  padding: 2.5rem 2rem;
  color: #0d0d0d;
  border-radius: 12px;
  background: #f7f9fc;
}

/* --- Contact Form 7 の体裁を軽く整える --- */
.entry-form .wpcf7-form{
  display: grid;
  gap: 1.2rem;
}
.entry-form .wpcf7-form label{
  display: block;
  font-weight: 700;
  margin-bottom: .4rem;
  text-align: left;
}
.entry-form .wpcf7-form input[type="text"],
.entry-form .wpcf7-form input[type="email"],
.entry-form .wpcf7-form input[type="tel"],
.entry-form .wpcf7-form textarea{
  width: 100%;
  padding: .7rem .9rem;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: .95rem;
}
.entry-form .wpcf7-form textarea{ min-height: 140px; resize: vertical; }

.entry-form .wpcf7-submit{
  align-self: start;
  justify-self: center;
  padding: .85rem 3rem;
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
  background: #1d2d66;
  border: none;
  border-radius: 999px;
  cursor: pointer;
  transition: opacity .25s;
}
.entry-form .wpcf7-submit:hover{ opacity: .9; }

