@charset "utf-8";
/* =========================================================
   CREETE — 下層ページ & WordPressメニュー互換
   （変数は style.css で定義済み）
   ========================================================= */

/* ---------- wp_nav_menu（ヘッダー）ドロップダウン互換 ---------- */
.gnav .menu-item-has-children{ position:relative; }
.gnav .sub-menu{
  position:absolute; left:50%; top:100%; transform:translateX(-50%) translateY(6px);
  min-width:230px; background:#fff; border:1px solid var(--line); border-radius:14px;
  box-shadow:var(--shadow); padding:10px; list-style:none; margin:0;
  opacity:0; visibility:hidden; transition:.22s; z-index:70;
}
.gnav .menu-item-has-children:hover>.sub-menu,
.gnav .menu-item-has-children:focus-within>.sub-menu{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.gnav .sub-menu a{ display:block; padding:11px 16px; border-radius:9px; font-size:.9rem; font-weight:600; color:var(--ink); white-space:nowrap; }
.gnav .sub-menu a::after{ display:none; }
.gnav .sub-menu a:hover{ background:var(--green-soft); color:var(--green-deep); }
.gnav .current-menu-item>a,.gnav .current_page_item>a{ color:var(--green); }

/* モバイルメニューのサブ項目 */
.mnav .sub-menu{ list-style:none; margin:0; padding:0 0 0 14px; }
.mnav .sub-menu a{ font-weight:500; color:var(--ink-soft); }

/* ---------- ページ見出し帯 ---------- */
.pagehead{ background:linear-gradient(135deg,var(--green) 0%,var(--green-deep) 100%); color:#fff; padding:56px 0; }
.pagehead__title{ font-family:var(--serif); font-size:clamp(1.6rem,3.4vw,2.4rem); margin:0; }
.breadcrumb{ margin-top:12px; font-size:.84rem; color:#dcecd5; }
.breadcrumb a{ color:#fff; }
.breadcrumb a:hover{ color:var(--gold); }
.breadcrumb .sep{ margin:0 .6em; opacity:.7; }

/* ---------- 本文レイアウト ---------- */
.l-main{ padding:64px 0 80px; background:var(--cream); }
.l-main__grid{ display:grid; grid-template-columns:1fr 300px; gap:48px; align-items:start; }
.content{ min-width:0; }

/* 記事本文タイポ */
.entry__meta{ display:flex; align-items:center; gap:16px; margin-bottom:18px; }
.entry__meta time{ font-family:var(--serif); color:var(--green); font-weight:700; }
.entry__cat{ font-size:.76rem; font-weight:700; color:#fff; background:var(--green); padding:4px 14px; border-radius:999px; }
.entry__thumb{ margin-bottom:28px; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); }
.entry__body{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:clamp(24px,4vw,48px); box-shadow:var(--shadow-sm); }
.entry__body>*:first-child{ margin-top:0; }
.entry__body h2{ font-family:var(--serif); color:var(--green-deep); font-size:1.5rem; margin:2em 0 .8em; padding-bottom:.4em; border-bottom:2px solid var(--green-soft); }
.entry__body h3{ font-family:var(--serif); color:var(--green-deep); font-size:1.25rem; margin:1.8em 0 .6em; padding-left:.6em; border-left:4px solid var(--gold); }
.entry__body h4{ color:var(--green-deep); margin:1.6em 0 .5em; }
.entry__body p{ margin:0 0 1.4em; }
.entry__body a{ color:var(--gold-deep); text-decoration:underline; }
.entry__body ul,.entry__body ol{ margin:0 0 1.4em 1.4em; }
.entry__body li{ margin-bottom:.5em; }
.entry__body img{ height:auto; border-radius:10px; }
.entry__body blockquote{ margin:1.5em 0; padding:18px 24px; background:var(--green-soft); border-left:4px solid var(--green); border-radius:0 10px 10px 0; color:var(--ink-soft); }
.entry__body table{ width:100%; border-collapse:collapse; margin:1.5em 0; }
.entry__body th,.entry__body td{ border:1px solid var(--line); padding:12px 14px; }
.entry__body th{ background:var(--green-soft); }

/* 投稿ナビ */
.post-nav{ display:flex; justify-content:space-between; gap:16px; margin-top:30px; font-weight:600; }
.post-nav a{ color:var(--green-deep); }
.post-nav a:hover{ color:var(--gold-deep); }

/* ---------- 一覧（カード） ---------- */
.postlist{ display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.pcard{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); transition:.25s; }
.pcard:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
.pcard__link{ display:block; height:100%; }
.pcard__ph{ aspect-ratio:16/10; overflow:hidden; background:var(--green-soft); display:grid; place-items:center; }
.pcard__ph img{ width:100%; height:100%; object-fit:cover; }
.pcard__noimg{ font-family:var(--serif); letter-spacing:.2em; color:var(--green); opacity:.5; }
.pcard__body{ padding:20px 22px 24px; }
.pcard__meta{ display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.pcard__meta time{ font-family:var(--serif); color:var(--green); font-weight:700; font-size:.9rem; }
.pcard__cat{ font-size:.72rem; font-weight:700; color:#fff; background:var(--gold); padding:3px 12px; border-radius:999px; }
.pcard__title{ font-family:var(--serif); color:var(--green-deep); font-size:1.15rem; line-height:1.5; margin:0 0 8px; }
.pcard__excerpt{ font-size:.9rem; color:var(--ink-soft); margin:0; }

/* ---------- サイドバー / ウィジェット ---------- */
.sidebar{ position:sticky; top:100px; }
.widget{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:24px; margin-bottom:24px; box-shadow:var(--shadow-sm); }
.widget__title{ font-family:var(--serif); color:var(--green-deep); font-size:1.1rem; margin:0 0 16px; padding-bottom:10px; border-bottom:2px solid var(--green-soft); }
.widget ul{ list-style:none; margin:0; padding:0; }
.widget li{ padding:8px 0; border-bottom:1px dashed var(--line); }
.widget li:last-child{ border-bottom:0; }
.widget a{ color:var(--ink); }
.widget a:hover{ color:var(--green); }

/* ---------- ページネーション ---------- */
.pagination{ margin-top:40px; }
.pagination .nav-links{ display:flex; gap:8px; justify-content:center; flex-wrap:wrap; }
.pagination .page-numbers{ display:grid; place-items:center; min-width:44px; height:44px; padding:0 10px; border-radius:10px; background:#fff; border:1px solid var(--line); color:var(--green-deep); font-weight:700; }
.pagination .page-numbers.current{ background:var(--green); color:#fff; border-color:var(--green); }
.pagination a.page-numbers:hover{ background:var(--green-soft); }

.noposts{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:40px; text-align:center; color:var(--ink-soft); }

/* ---------- WordPress コアクラス ---------- */
.aligncenter{ display:block; margin-inline:auto; }
.alignright{ float:right; margin:0 0 1em 1.5em; }
.alignleft{ float:left; margin:0 1.5em 1em 0; }
.wp-caption{ max-width:100%; }
.wp-caption-text,.wp-element-caption{ font-size:.84rem; color:var(--ink-soft); text-align:center; margin-top:.5em; }
.screen-reader-text{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); }
.sticky,.gallery-caption,.bypostauthor{}

/* ---------- レスポンシブ ---------- */
@media(max-width:900px){
  .l-main__grid{ grid-template-columns:1fr; gap:40px; }
  .sidebar{ position:static; }
}
@media(max-width:560px){
  .postlist{ grid-template-columns:1fr; }
  .pagehead{ padding:40px 0; }
}

/* =========================================================
   サービス詳細 / 一覧（旧TCDデータ移行表示）
   ========================================================= */
.pagehead__en{ display:block; font-family:var(--serif); letter-spacing:.28em; font-size:.82rem; color:#cfe6c6; margin-bottom:8px; }
.pagehead--photo{ background-size:cover; background-position:center; }

.svc__lead{
  max-width:44em; margin:0 auto 56px; text-align:center; font-size:1.08rem;
  color:var(--ink); line-height:2.1;
}
.svc__block{ margin-bottom:72px; }
.svc__h2{
  font-family:var(--serif); color:var(--green-deep); text-align:center;
  font-size:clamp(1.45rem,3vw,2.05rem); margin:0 0 40px; line-height:1.5; position:relative; padding-bottom:18px;
}
.svc__h2::after{ content:""; position:absolute; left:50%; bottom:0; transform:translateX(-50%); width:56px; height:3px; background:var(--gold); border-radius:2px; }

/* content1：画像＋キャッチ＋本文（交互） */
.svc__items{ display:flex; flex-direction:column; gap:56px; }
.svc__item{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,52px); align-items:center; }
.svc__item--rev .svc__item-ph{ order:2; }
.svc__item-ph{ border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); }
.svc__item-ph img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; }
.svc__catch{ font-family:var(--serif); color:var(--green-deep); font-size:clamp(1.2rem,2.4vw,1.6rem); line-height:1.6; margin:0 0 16px; }
.svc__desc{ color:var(--ink-soft); font-size:1rem; line-height:2; margin:0; }

/* content2：カード */
.svc__cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.svc__card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); }
.svc__card-ph img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.svc__card .svc__desc{ padding:20px 22px 24px; font-size:.95rem; }

/* content3：料金一覧 */
.svc__price-head{ text-align:center; font-family:var(--serif); color:var(--green-deep); font-size:1.2rem; margin:0 0 22px; }
.svc__price{ max-width:760px; margin:0 auto; background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); }
.svc__price-row{ display:grid; grid-template-columns:1fr auto; gap:20px; align-items:center; padding:18px 26px; border-bottom:1px solid var(--line); }
.svc__price-row:last-child{ border-bottom:0; }
.svc__price-row:nth-child(odd){ background:var(--green-soft); }
.svc__price dt{ font-weight:700; color:var(--ink); margin:0; }
.svc__price dd{ margin:0; font-family:var(--serif); font-weight:700; color:var(--green-deep); font-size:1.15rem; white-space:nowrap; }

/* 他のサービス */
.svc__others{ margin-top:20px; padding-top:56px; border-top:1px solid var(--line); }
.svc__others .links__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.svc__others .links__grid a{ background:#fff; border:1px solid var(--line); color:var(--green-deep); border-radius:12px; padding:16px 20px; display:flex; align-items:center; gap:10px; font-weight:600; transition:.22s; }
.svc__others .links__grid a:hover{ background:var(--green); color:#fff; border-color:var(--green); }
.svc__others .links__grid .dot{ color:var(--gold); }
.svc__others .links__grid a:hover .dot{ color:#fff; }

/* 一覧カード */
.svc__archive .scard__link{ display:block; height:100%; }
.svc__archive .scard__title{ font-family:var(--serif); color:var(--green-deep); font-size:1.25rem; margin:.2em 0 .6em; }

@media(max-width:900px){
  .svc__cards{ grid-template-columns:repeat(2,1fr); }
  .svc__others .links__grid{ grid-template-columns:repeat(2,1fr); }
}
@media(max-width:680px){
  .svc__item{ grid-template-columns:1fr; gap:20px; }
  .svc__item--rev .svc__item-ph{ order:0; }
  .svc__cards{ grid-template-columns:1fr; }
  .svc__others .links__grid{ grid-template-columns:1fr; }
  .svc__price-row{ grid-template-columns:1fr; gap:6px; }
  .svc__block{ margin-bottom:52px; }
}

/* ---------- サイトマップページ ---------- */
.sitemap__grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:32px; }
.sitemap__col{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:28px 30px; box-shadow:var(--shadow-sm); }
.sitemap__h2{ font-family:var(--serif); color:var(--green-deep); font-size:1.2rem; margin:0 0 18px; padding-bottom:10px; border-bottom:2px solid var(--green-soft); }
.sitemap__h2 a{ color:inherit; }
.sitemap__h2 a:hover{ color:var(--gold-deep); }
.sitemap__list{ list-style:none; margin:0; padding:0; }
.sitemap__list li{ padding:7px 0; }
.sitemap__list > li{ border-bottom:1px dashed var(--line); }
.sitemap__list > li:last-child{ border-bottom:0; }
.sitemap__list a{ color:var(--ink); }
.sitemap__list a::before{ content:"›"; color:var(--green); margin-right:.5em; }
.sitemap__list a:hover{ color:var(--green); }
.sitemap__list ul{ list-style:none; margin:6px 0 0 1.2em; padding:0; }
.sitemap__list ul li{ border:0; }
@media(max-width:760px){ .sitemap__grid{ grid-template-columns:1fr; } }

/* =========================================================
   よくある質問（アコーディオン）
   ========================================================= */
.faq__nav{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-bottom:56px; }
.faq__nav a{
  display:inline-flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--line);
  border-radius:999px; padding:12px 24px; font-weight:700; color:var(--green-deep); box-shadow:var(--shadow-sm); transition:.22s;
}
.faq__nav a:hover{ background:var(--green); color:#fff; border-color:var(--green); }
.faq__num{ font-size:.78rem; background:var(--green-soft); color:var(--green-deep); border-radius:999px; padding:2px 9px; }
.faq__nav a:hover .faq__num{ background:rgba(255,255,255,.25); color:#fff; }

.faq__group{ margin-bottom:56px; scroll-margin-top:110px; }
.faq__cat{
  font-family:var(--serif); color:var(--green-deep); font-size:clamp(1.25rem,2.6vw,1.6rem);
  margin:0 0 22px; padding-left:16px; border-left:5px solid var(--green); line-height:1.4;
}
.faq__list{ display:flex; flex-direction:column; gap:14px; }

.faq__item{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow-sm); overflow:hidden; transition:.22s;
}
.faq__item[open]{ box-shadow:var(--shadow); border-color:var(--green); }
.faq__q{
  display:flex; align-items:flex-start; gap:16px; cursor:pointer; list-style:none;
  padding:22px 56px 22px 24px; position:relative; font-weight:700; font-size:1.05rem;
  color:var(--green-deep); line-height:1.7;
}
.faq__q::-webkit-details-marker{ display:none; }
.faq__q:hover{ background:var(--green-soft); }
.faq__q::after{
  content:""; position:absolute; right:24px; top:50%; width:14px; height:14px;
  border-right:3px solid var(--green); border-bottom:3px solid var(--green);
  transform:translateY(-70%) rotate(45deg); transition:.25s;
}
.faq__item[open] .faq__q::after{ transform:translateY(-20%) rotate(-135deg); }
.faq__mark{
  flex:0 0 auto; width:36px; height:36px; border-radius:50%; background:var(--green); color:#fff;
  font-family:var(--serif); font-weight:700; font-size:1.05rem; display:grid; place-items:center;
}
.faq__mark--a{ background:var(--gold); }
.faq__qt{ padding-top:4px; }
.faq__a{ display:flex; align-items:flex-start; gap:16px; padding:0 24px 26px; border-top:1px dashed var(--line); margin-top:-2px; padding-top:24px; }
.faq__at{ color:var(--ink-soft); line-height:2; font-size:1rem; padding-top:4px; }
.faq__at p{ margin:0 0 1em; }
.faq__at p:last-child{ margin-bottom:0; }

/* FAQ詳細 */
.faq__badge{ display:inline-block; font-size:.8rem; font-weight:700; color:#fff; background:var(--green); padding:5px 16px; border-radius:999px; margin-bottom:18px; }
.faq__single{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:clamp(24px,4vw,44px); box-shadow:var(--shadow-sm); }
.faq__single-q{ display:flex; gap:16px; align-items:flex-start; font-family:var(--serif); color:var(--green-deep); font-size:clamp(1.2rem,2.6vw,1.6rem); line-height:1.6; margin:0 0 24px; }
.faq__single-a{ display:flex; gap:16px; align-items:flex-start; padding-top:24px; border-top:1px dashed var(--line); }
.faq__rel{ display:flex; gap:14px; align-items:center; background:#fff; border:1px solid var(--line); border-radius:14px; padding:16px 20px; font-weight:600; color:var(--green-deep); transition:.2s; }
.faq__rel:hover{ background:var(--green-soft); border-color:var(--green); }

.faq__foot{ text-align:center; margin-top:48px; padding:40px 24px; background:var(--green-soft); border-radius:var(--radius); }
.faq__foot p{ margin:0 0 10px; color:var(--ink); }
.faq__tel a{ font-family:var(--serif); font-weight:700; font-size:clamp(1.8rem,4vw,2.3rem); color:var(--green-deep); }
.faq__time{ font-size:.86rem; color:var(--ink-soft); margin-bottom:20px !important; }

/* =========================================================
   お知らせ 一覧 / 詳細
   ========================================================= */
.nlist{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:20px; }
.nlist__item{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); transition:.25s; }
.nlist__item:hover{ transform:translateY(-3px); box-shadow:var(--shadow); }
.nlist__link{ display:grid; grid-template-columns:260px 1fr; gap:0; align-items:stretch; }
.nlist__item:has(.nlist__body:only-child) .nlist__link{ grid-template-columns:1fr; }
.nlist__ph{ overflow:hidden; background:var(--green-soft); }
.nlist__ph img{ width:100%; height:100%; object-fit:cover; min-height:170px; }
.nlist__body{ padding:24px 28px; }
.nlist__meta{ display:flex; align-items:center; gap:14px; margin-bottom:10px; }
.nlist__meta time{ font-family:var(--serif); color:var(--green); font-weight:700; }
.nlist__cat{ font-size:.74rem; font-weight:700; color:#fff; background:var(--green); padding:4px 14px; border-radius:999px; }
.nlist__title{ font-family:var(--serif); color:var(--green-deep); font-size:1.22rem; line-height:1.6; margin:0 0 10px; }
.nlist__excerpt{ font-size:.95rem; color:var(--ink-soft); margin:0 0 14px; line-height:1.9; }
.nlist__more{ font-weight:700; color:var(--green); font-size:.92rem; }
.nlist__item:hover .nlist__more{ color:var(--gold-deep); }

.ndetail{ display:grid; grid-template-columns:1fr 300px; gap:48px; align-items:start; }
.ndetail__main{ min-width:0; }
.ndetail__title{ font-family:var(--serif); color:var(--green-deep); font-size:clamp(1.4rem,3vw,2rem); line-height:1.55; margin:0 0 26px; }
.ndetail__side{ position:sticky; top:100px; }

@media(max-width:900px){
  .ndetail{ grid-template-columns:1fr; gap:36px; }
  .ndetail__side{ position:static; }
}
@media(max-width:640px){
  .nlist__link{ grid-template-columns:1fr; }
  .nlist__ph img{ min-height:180px; }
  .faq__q{ font-size:1rem; padding:18px 46px 18px 18px; gap:12px; }
  .faq__a{ padding:20px 18px 22px; gap:12px; }
  .faq__mark{ width:30px; height:30px; font-size:.92rem; }
  .faq__nav{ gap:8px; }
  .faq__nav a{ padding:10px 16px; font-size:.9rem; }
}
