/*
Theme Name: ZenWa (Kadence Child)
Template: kadence
Author: medifit
Description: ZenWaLife 個人ブランドサイト用 Kadence 子テーマ。和×テキサスの世界観（禅・陰陽・テキサスブルー＆ゴールド）。
Version: 0.1.21
*/

/* =========================================================
   ブランドトークン（暫定：モックアップから抽出。確定HEX待ち）
   テキサスネイビー × ゴールド × クリーム × 墨
   ========================================================= */
:root{
  --zw-navy:       #1b2f55;
  --zw-navy-deep:  #122140;
  --zw-gold:       #c2a14d;
  --zw-gold-deep:  #a8852f;
  --zw-cream:      #f7f1e4;
  --zw-cream-soft: #fbf7ee;
  --zw-ink:        #23262b;
  --zw-muted:      #5d6470;
  --zw-line:       #e7dcc4;

  /* Kadence グローバルパレットを上書き → サイト全体の配色を一括変更 */
  --global-palette1: var(--zw-navy);
  --global-palette2: var(--zw-gold);
  --global-palette3: var(--zw-navy-deep);
  --global-palette4: var(--zw-ink);
  --global-palette5: var(--zw-muted);
  --global-palette6: var(--zw-line);
  --global-palette7: var(--zw-cream);
  --global-palette8: var(--zw-cream-soft);
  --global-palette9: #ffffff;

  /* タイポグラフィ */
  --zw-font-head: "Shippori Mincho", "Noto Serif JP", serif;
  --zw-font-body: "Noto Sans JP", system-ui, -apple-system, sans-serif;
}

/* =========================================================
   ベースタイポ（和の明朝見出し × クリーンなゴシック本文）
   ========================================================= */
body{
  font-family: var(--zw-font-body);
  color: var(--zw-ink);
  letter-spacing: .01em;
}
h1,h2,h3,h4,.entry-title,.site-title{
  font-family: var(--zw-font-head);
  letter-spacing: .02em;
}

/* リンク・アクセントをブランド色へ */
a{ color: var(--zw-navy); }
a:hover{ color: var(--zw-gold-deep); }

/* ボタン：ゴールド基調 */
.wp-block-button__link,
.button,.kb-button,
input[type="submit"]{
  background-color: var(--zw-gold);
  border-color: var(--zw-gold);
  color:#fff !important;
}
/* Kadence applies its default blue palette to visited button links. Keep
   navigation buttons in the same gold treatment after they have been used. */
.wp-block-button__link:visited,
.button:visited,
.kb-button:visited{
  background-color:var(--zw-gold) !important;
  border-color:var(--zw-gold) !important;
  color:#fff !important;
}
.wp-block-button__link:hover,
.button:hover,.kb-button:hover{
  background-color: var(--zw-gold-deep);
  border-color: var(--zw-gold-deep);
  color:#fff !important;
}

/* セクション区切りに使える陰陽アクセント用ユーティリティ（今後のトップで使用） */
.zw-rule{
  width:64px;height:2px;margin:1.25rem auto;
  background:linear-gradient(90deg,transparent,var(--zw-gold),transparent);
}

/* =========================================================
   トップページ（標準ブロックを和×テキサスに装飾）
   ※内容はブロックエディタで編集可。ここは装飾のみ。
   ========================================================= */
.zw-hero h1{ font-size:clamp(1.8rem,4vw,2.7rem); line-height:1.55; color:var(--zw-navy-deep); margin:.35em 0; }
.zw-hero p{ color:var(--zw-muted); font-size:1.05rem; line-height:1.9; }
.zw-hero-logo img{ max-width:240px; height:auto; }
.zw-yin img{ width:44px; height:44px; }

.zw-card{ background:#fff; border:1px solid var(--zw-line); border-radius:14px;
  padding:1.7rem 1.4rem; height:100%; text-align:center;
  transition:none; }
.zw-card:hover{ transform:none; }
.zw-card h3{ color:var(--zw-navy); margin:.1em 0 .4em; }
.zw-card p{ color:var(--zw-muted); font-size:.92rem; }
.zw-badge a,.zw-badge a:hover{ color:var(--zw-gold-deep)!important; }

.zw-section-title{ text-align:center; color:var(--zw-navy-deep); }

.zw-cta{ color:#fff; border-radius:18px; }
.zw-cta h2, .zw-cta p{ color:#fff; }

/* 最新記事（クエリループ） */
.wp-block-query .wp-block-post-featured-image img{ border-radius:10px; aspect-ratio:16/10; object-fit:cover; width:100%; }
.wp-block-query .wp-block-post-title{ font-size:1.02rem; line-height:1.5; margin:.55em 0 .2em; }
.wp-block-query .wp-block-post-title a{ color:var(--zw-navy-deep); }
.wp-block-query .wp-block-post-terms{ font-size:.72rem; color:var(--zw-gold-deep); letter-spacing:.05em; font-weight:600; }
.wp-block-query .wp-block-post-date{ font-size:.78rem; color:var(--zw-muted); }

/* =========================================================
   ZenWa ホームページ
   ブロックの内容・画像・リンクは管理画面で編集し、ここでは
   レイアウトとブランドの一貫性のみを扱う。
   ========================================================= */
.zw-hero{ position:relative; overflow:hidden; }
.zw-hero{ background-color:var(--zw-cream); background-position:right center !important; background-size:75% auto !important; }
.zw-hero .kt-row-column-wrap{ min-height:clamp(320px,30vw,420px); align-items:center; }
.zw-hero-content{ max-width:520px; }
.zw-hero .wp-block-kadence-advancedheading{ text-shadow:0 1px 14px rgba(255,255,255,.35); }
.zw-hero .kb-button{ border-radius:999px; padding:.85em 1.45em; box-shadow:0 8px 18px rgba(27,47,85,.14); }

/* The mobile image is a separate editable block inside the same hero, so the
   copy remains a single source of truth in the editor across breakpoints. */
.zw-hero-mobile-image{ display:none; }

.zw-intro-cards-group{
  --wp--style--block-gap:0;
  background:var(--zw-cream-soft);
}
.zw-intro-cards-group .zw-intro,
.zw-intro-cards-group .zw-nav-cards{ background-color:transparent !important; }
.zw-intro{
  max-width:none;
  margin-inline:0;
  background:var(--zw-cream-soft) !important;
}
.zw-intro .kt-inside-inner-col{
  width:100%;
  max-width:730px;
  margin-inline:auto;
}
.zw-intro .kt-adv-heading{ color:var(--zw-muted); }

.zw-nav-cards{ background:var(--zw-cream-soft); }
.zw-nav-cards .kt-row-column-wrap{ gap:16px; }
.zw-nav-cards .zw-card{ border:0; border-radius:18px; padding:2rem 1.5rem 1.65rem; box-shadow:none; }
.zw-card .wp-block-kadence-image{ display:table; margin-inline:auto; }
.zw-nav-cards .zw-card .kb-img{ width:74px; height:74px; object-fit:contain; }
.zw-nav-cards .zw-card .wp-block-kadence-advancedbtn{ margin-top:1.2rem; }
.zw-nav-cards .zw-card .kb-button,
.zw-latest .wp-block-kadence-advancedbtn .kb-button{ border-radius:999px; font-size:.83rem; padding:.7em 1.15em; }

/* Home navigation: retain the three editable Kadence columns, but make the
   overview deliberately compact. Kadence generates per-block spacing inline,
   hence the targeted !important declarations below only override presentation,
   never the block content or its editable links. */
.kb-row-layout-idzw_intro_001 > .kt-row-column-wrap{
  padding-top:2.6rem !important;
  padding-bottom:1.25rem !important;
}
.kb-row-layout-idzw_cards_001 > .kt-row-column-wrap{
  column-gap:18px !important;
  row-gap:18px !important;
  padding-top:1.3rem !important;
  padding-bottom:2.85rem !important;
}
.zw-nav-cards .zw-card{
  width:100%;
  max-width:360px;
  margin-inline:auto;
  padding:1.35rem 1.15rem 1.25rem !important;
}
.zw-nav-cards .zw-card-icon,
.zw-nav-cards .zw-card-icon.kb-image-is-ratio-size{
  width:92px !important;
  max-width:92px !important;
  margin:0 auto !important;
}
.zw-nav-cards .zw-card-icon .kb-img,
.zw-nav-cards .zw-card .kb-img{
  width:92px !important;
  height:92px !important;
  max-width:100% !important;
  object-fit:contain;
}
.zw-nav-cards .zw-card [class*="kt-adv-headingzw_card_title_"]{
  margin:.6rem 0 .45rem !important;
  font-size:1.32rem !important;
  line-height:1.35 !important;
}
.zw-nav-cards .zw-card [class*="kt-adv-headingzw_card_text_"]{
  margin:0 !important;
  font-size:.9rem;
  line-height:1.6 !important;
}
.zw-nav-cards .zw-card .wp-block-kadence-advancedbtn{
  margin-top:.8rem !important;
}

.zw-section-eyebrow{
  margin-bottom:.4rem !important;
  color:var(--zw-gold-deep);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
/* Use one compact rhythm for label → heading → copy throughout Home. The
   individual heading blocks remain fully editable in Kadence. */
.zw-section-eyebrow + .wp-block-kadence-advancedheading{ margin-top:0 !important; }
.zw-intro [class*="kt-adv-headingzw_intro_title_"],
.zw-about [class*="kt-adv-headingzw_about_title_"],
.zw-contact [class*="kt-adv-headingzw_contact_title_"]{
  margin-bottom:.8rem !important;
}
.zw-latest [class*="kt-adv-headingzw_latest_title_"]{
  margin-bottom:1.5rem !important;
}
.zw-latest{ background:#fff; }
.zw-latest .wp-block-kadence-posts .entry{ border:1px solid var(--zw-line); border-radius:14px; overflow:hidden; box-shadow:none; }
.zw-latest .wp-block-kadence-posts .post-thumbnail{ aspect-ratio:16 / 9; margin-bottom:0; overflow:hidden; }
.zw-latest .wp-block-kadence-posts .post-thumbnail img{ width:100%; height:100%; object-fit:cover; }
.zw-latest .wp-block-kadence-posts .entry-content-wrap{ padding:1rem 1.1rem 1.2rem; }
.zw-latest .wp-block-kadence-posts .entry-title{ font-size:clamp(1.05rem,1.25vw,1.25rem); line-height:1.5; margin:.4rem 0 .7rem; }
.zw-latest .wp-block-kadence-posts .entry-title a{ display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.zw-latest .wp-block-kadence-posts .entry-meta{ font-size:.76rem; }
.zw-latest .wp-block-kadence-advancedbtn{ margin-top:2rem; }
.zw-about{ background:var(--zw-cream); }
.zw-about .zw-about-mark .kb-img{ width:min(255px,64vw); height:auto; }
.zw-about .kt-row-column-wrap{ align-items:center; }
.zw-about .kb-button{ border-radius:999px; }
.zw-contact{ background:var(--zw-navy-deep); }
.zw-contact .wp-block-kadence-advancedheading{ color:#fff; }
.zw-contact .kb-button{ background:#fff; border-color:#fff; color:var(--zw-navy-deep) !important; border-radius:999px; }
.zw-contact .kb-button:hover{ background:var(--zw-cream); border-color:var(--zw-cream); color:var(--zw-navy-deep) !important; }

/* WordPress Site Identity: client-editable logo and name in the Customizer. */
.site-branding a.brand img.custom-logo{ width:auto; max-width:180px; max-height:72px; object-fit:contain; }
.site-branding .site-title{ font-size:1rem; letter-spacing:.04em; }
.site-branding .site-title-wrap{ display:none; }

/* The content remains normal Kadence columns. Grid only stabilises the desktop
   layout against the generated percentage widths and remains safe to edit. */
@media (min-width: 768px){
  .zw-nav-cards .kt-row-column-wrap{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
  .zw-nav-cards .wp-block-kadence-column{ width:auto !important; }
  .zw-about .kt-row-column-wrap{ display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); gap:clamp(2rem,5vw,4.5rem); }
  .zw-about .wp-block-kadence-column{ width:auto !important; }
  .zw-about .zw-about-mark{ display:table; margin-inline:auto; }
}

/* On PC, the cards intentionally sit in a compact, centred three-column
   group instead of stretching across the full content width. */
@media (min-width: 1200px){
  .zw-nav-cards .kt-row-column-wrap{
    grid-template-columns:repeat(3,360px) !important;
    justify-content:center !important;
  }
  .zw-nav-cards .zw-card{
    width:360px !important;
  }
}

@media (max-width: 767px){
  /* On phones, show the image first and the editable copy on a solid cream
     panel below it. This avoids unreadable text over the portrait and keeps
     the face visible at every viewport width. */
  .zw-hero{
    background-color:var(--zw-cream) !important;
    background-image:none !important;
    background-size:auto !important;
  }
  .zw-hero > .kt-row-column-wrap{
    min-height:0 !important;
    padding:0 !important;
    align-items:stretch;
  }
  .zw-hero-content{
    min-width:0;
    max-width:none;
    padding:0 1.25rem 2rem;
  }
  .zw-hero .zw-hero-mobile-image{
    display:block;
    width:calc(100% + 2.5rem);
    max-width:none;
    margin:0 -1.25rem 1.7rem;
  }
  .zw-hero .zw-hero-mobile-image img{ display:block; width:100%; height:auto; }
  .zw-hero h1{
    margin:0 0 .9rem;
    color:var(--zw-navy-deep);
    font-size:clamp(1.55rem,7.2vw,2rem);
    line-height:1.45;
    text-shadow:none;
  }
  .zw-hero p{
    margin:0 0 1.35rem;
    color:var(--zw-ink);
    font-size:.94rem;
    line-height:1.85;
    max-width:100%;
    overflow-wrap:anywhere;
  }
  .zw-hero .kb-buttons-wrap{ justify-content:flex-start; }
  .zw-hero .kb-button{
    border-radius:999px;
    background:var(--zw-navy);
    border-color:var(--zw-navy);
    color:#fff;
    box-shadow:none;
  }
  /* Kadence's generated row-gap is zero on mobile; override it so stacked
     cards retain a clear separation. */
  .kb-row-layout-idzw_intro_001 > .kt-row-column-wrap{
    padding-top:2.15rem !important;
    padding-bottom:1.05rem !important;
  }
  .kb-row-layout-idzw_cards_001 > .kt-row-column-wrap{
    row-gap:10px !important;
    padding-top:1.15rem !important;
    padding-bottom:2.25rem !important;
  }
  .zw-nav-cards .kt-row-column-wrap{ gap:10px !important; }
  .zw-nav-cards .zw-card{ padding:1.15rem 1rem 1.1rem !important; }
  .zw-nav-cards .zw-card-icon,
  .zw-nav-cards .zw-card-icon.kb-image-is-ratio-size{
    width:96px !important;
    max-width:96px !important;
  }
  .zw-nav-cards .zw-card-icon .kb-img,
  .zw-nav-cards .zw-card .kb-img{
    width:96px !important;
    height:96px !important;
  }
  .zw-nav-cards .zw-card [class*="kt-adv-headingzw_card_title_"]{
    margin:.55rem 0 .4rem !important;
    font-size:1.18rem !important;
  }
  .zw-nav-cards .zw-card [class*="kt-adv-headingzw_card_text_"]{
    font-size:.86rem;
    line-height:1.55 !important;
  }
  .zw-nav-cards .zw-card .wp-block-kadence-advancedbtn{ margin-top:.7rem !important; }
  .zw-section-eyebrow{ margin-bottom:.3rem !important; }
  .zw-intro [class*="kt-adv-headingzw_intro_title_"],
  .zw-about [class*="kt-adv-headingzw_about_title_"],
  .zw-contact [class*="kt-adv-headingzw_contact_title_"]{ margin-bottom:.7rem !important; }
  .zw-latest [class*="kt-adv-headingzw_latest_title_"]{ margin-bottom:1.15rem !important; }
  /* Kadence Blocks Free has no post-carousel mode. Keep its editable Posts
     block, while presenting the mobile items as a one-card-wide swipe row. */
  .zw-latest .wp-block-kadence-posts{
    display:flex !important;
    flex-wrap:nowrap !important;
    gap:.9rem;
    box-sizing:border-box;
    width:100%;
    max-width:100%;
    margin-right:0;
    margin-left:0;
    overflow-x:scroll;
    overflow-y:hidden;
    padding:0 0 .85rem;
    scroll-snap-type:x mandatory;
    scrollbar-color:var(--zw-gold) var(--zw-cream);
    scrollbar-width:thin;
    -webkit-overflow-scrolling:touch;
  }
  .zw-latest .wp-block-kadence-posts::-webkit-scrollbar{ display:block; height:7px; }
  .zw-latest .wp-block-kadence-posts::-webkit-scrollbar-track{ border-radius:999px; background:var(--zw-cream); }
  .zw-latest .wp-block-kadence-posts::-webkit-scrollbar-thumb{ border-radius:999px; background:var(--zw-gold); }
  .zw-latest .wp-block-kadence-posts .kb-post-list-item{
    display:block !important;
    box-sizing:border-box;
    flex:0 0 100%;
    max-width:100%;
    min-width:0;
    margin:0 !important;
    scroll-snap-align:start;
  }
  .zw-latest .wp-block-kadence-posts .entry{ height:100%; }
  .zw-latest .wp-block-kadence-posts .entry{ margin-bottom:1rem; }
  .zw-about .zw-about-mark{ display:table; margin-inline:auto; }
  .zw-about .zw-about-mark .kb-img{ display:block; margin-inline:auto; }
}

/* Interior pages use the same Kadence blocks and spacing system as Home. */
body.page:not(.home) .entry-hero{ display:none; }
body.page:not(.home) .content-area{ margin-top:0; margin-bottom:0; }
.zw-page-hero{ background:var(--zw-cream); }
.zw-page-hero .kt-row-column-wrap{ min-height:260px; }
.zw-page-hero .zw-page-title{ max-width:760px; }
.zw-page-hero .zw-page-lead{ max-width:680px; color:var(--zw-muted); line-height:1.85; }
.zw-blog-category-section{ background:#fff; border-bottom:1px solid var(--zw-line); }
.zw-blog-category-all{ margin:0 0 .75rem; }
.zw-blog-category-all a{ color:var(--zw-navy-deep); font-weight:700; text-decoration:none; }
.zw-blog-category-nav{ display:flex; flex-wrap:wrap; justify-content:center; gap:.55rem .65rem; margin:0; padding:0; list-style:none; }
.zw-blog-category-nav li{ margin:0; list-style:none; }
.zw-blog-category-nav li a{ display:block; padding:.4rem .8rem; border:1px solid var(--zw-line); border-radius:999px; background:var(--zw-cream-soft); color:var(--zw-muted); font-size:.82rem; font-weight:600; line-height:1.35; text-decoration:none; white-space:nowrap; transition:background-color .2s ease,color .2s ease,border-color .2s ease; }
.zw-blog-category-nav li a:hover,.zw-blog-category-nav li a:focus-visible{ border-color:var(--zw-gold); background:var(--zw-cream); color:var(--zw-navy-deep); }
.zw-page-posts .kb-posts .entry,
.zw-page-posts .kb-posts .entry.loop-entry{
  border:1px solid var(--zw-line);
  border-radius:16px;
  box-shadow:none !important;
  overflow:hidden;
}
.zw-profile-pillars .zw-card,
.zw-services-grid .zw-card{ border:1px solid var(--zw-line); border-radius:16px; box-shadow:0 8px 24px rgba(27,47,85,.06); overflow:hidden; }
.zw-page-posts .post-thumbnail{ height:auto; aspect-ratio:16 / 9; padding-bottom:0 !important; overflow:hidden; margin-bottom:0; }
.zw-page-posts .post-thumbnail .post-thumbnail-inner{ position:static; height:100%; }
.zw-page-posts .post-thumbnail img{ display:block; width:100%; height:100%; object-fit:cover; }
.zw-page-posts .kb-posts .entry-content-wrap{ padding:1rem 1.1rem 1.2rem; }
.zw-page-posts .kb-posts .entry-title{ font-size:clamp(1.05rem,1.25vw,1.25rem); line-height:1.5; margin:.4rem 0 .7rem; }
.zw-page-posts .kb-posts .entry-title a{ display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:3; }

/* Category archives use the same preview language as the editable Blog page:
   16:9 thumbnails, no excerpt/author clutter, and no card shadow. */
body.archive.category #archive-container .entry.loop-entry{
  border:1px solid var(--zw-line);
  border-radius:16px;
  box-shadow:none;
  overflow:hidden;
}
body.archive.category #archive-container .post-thumbnail{
  height:auto;
  aspect-ratio:16 / 9;
  padding-bottom:0 !important;
  margin-bottom:0;
  overflow:hidden;
}
body.archive.category #archive-container .post-thumbnail .post-thumbnail-inner{ position:static; height:100%; }
body.archive.category #archive-container .post-thumbnail img{ display:block; width:100%; height:100%; object-fit:cover; }
body.archive.category #archive-container .entry-content-wrap{ padding:1rem 1.1rem 1.2rem; }
body.archive.category #archive-container .entry-meta .posted-by,
body.archive.category #archive-container .entry-summary{ display:none; }
body.archive.category #archive-container .entry-title{ font-size:clamp(1.05rem,1.25vw,1.25rem); line-height:1.5; margin:.4rem 0 .7rem; }

.zenwa-blog-pagination{ margin:2.75rem auto 0; text-align:center; }
.zenwa-blog-pagination .page-numbers{ list-style:none; }
.zenwa-blog-pagination ul.page-numbers{ display:flex; flex-wrap:wrap; justify-content:center; gap:.45rem; margin:0; padding:0; }
.zenwa-blog-pagination .page-numbers a,
.zenwa-blog-pagination .page-numbers span{
  display:inline-flex;
  min-width:2.35rem;
  min-height:2.35rem;
  align-items:center;
  justify-content:center;
  padding:.35rem .65rem;
  border:1px solid var(--zw-line);
  border-radius:999px;
  background:#fff;
  color:var(--zw-navy-deep);
  font-size:.88rem;
  font-weight:700;
  line-height:1;
  text-decoration:none;
}
.zenwa-blog-pagination .page-numbers a:hover,
.zenwa-blog-pagination .page-numbers a:focus-visible{ border-color:var(--zw-gold); background:var(--zw-cream); color:var(--zw-navy-deep); }
.zenwa-blog-pagination .page-numbers .current{ border-color:var(--zw-navy); background:var(--zw-navy); color:#fff; }
.zenwa-blog-pagination .page-numbers .dots{ border-color:transparent; background:transparent; }
body.archive.category .navigation.pagination{ margin:2.75rem auto 0; text-align:center; }
body.archive.category .navigation.pagination .nav-links{ display:flex; flex-wrap:wrap; justify-content:center; gap:.45rem; }
body.archive.category .navigation.pagination .page-numbers{ display:inline-flex; min-width:2.35rem; min-height:2.35rem; align-items:center; justify-content:center; padding:.35rem .65rem; border:1px solid var(--zw-line); border-radius:999px; background:#fff; color:var(--zw-navy-deep); font-size:.88rem; font-weight:700; line-height:1; text-decoration:none; }
body.archive.category .navigation.pagination .page-numbers:hover,
body.archive.category .navigation.pagination .page-numbers:focus-visible{ border-color:var(--zw-gold); background:var(--zw-cream); color:var(--zw-navy-deep); }
body.archive.category .navigation.pagination .page-numbers.current{ border-color:var(--zw-navy); background:var(--zw-navy); color:#fff; }
.page-id-1767 .zw-page-hero > .kt-row-column-wrap{ padding-top:2.25rem !important; padding-bottom:2.25rem !important; }
.page-id-1767 .zw-page-hero .kt-row-column-wrap{ min-height:0 !important; }
.page-id-1767 .zw-page-hero .zw-section-eyebrow{ margin-bottom:.35rem !important; }
.page-id-1767 .zw-page-hero .zw-page-title{ margin-bottom:.65rem !important; }
.zw-profile-story .kt-row-column-wrap{ align-items:center; }
.zw-profile-story .zw-profile-mark .kb-img{ width:min(290px,68vw); height:auto; }
.zw-profile-pillars,
.zw-services-grid{ background:var(--zw-cream-soft); }
.zw-profile-pillars .zw-card,
.zw-services-grid .zw-card{ background:#fff; padding:2rem 1.5rem; }
.zw-profile-pillars .zw-card .kb-img,
.zw-services-grid .zw-card .kb-img{ width:76px; height:76px; object-fit:contain; }
.zw-page-cta{ background:var(--zw-navy-deep); }
.zw-page-cta .wp-block-kadence-advancedheading{ color:#fff; }
.zw-page-cta .kb-button{ background:#fff; border-color:#fff; color:var(--zw-navy-deep); border-radius:999px; }
.zw-contact-panel{ background:var(--zw-cream-soft); }
.zw-contact-panel .kt-row-column-wrap{ max-width:760px; }

@media (min-width:768px){
  .zw-profile-pillars .kt-row-column-wrap,
  .zw-services-grid .kt-row-column-wrap{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
  .zw-profile-pillars .wp-block-kadence-column,
  .zw-services-grid .wp-block-kadence-column{ width:auto !important; }
}

/* Article template: preserves each existing post body while giving every
   single post a consistent, readable ZenWa editorial layout. */
.single-post .content-wrap{ background:var(--zw-cream-soft); padding:clamp(2rem,5vw,5rem) 1.25rem; }
.single-post .article-post-thumbnail{
  position:relative;
  z-index:0;
  width:calc(100% + 120px) !important;
  max-width:960px !important;
  margin:0 -60px -5rem !important;
  aspect-ratio:16 / 9;
  height:auto;
  padding-bottom:0 !important;
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 12px 34px rgba(27,47,85,.12);
}
.single-post .article-post-thumbnail .post-thumbnail-inner{ position:static; height:100%; aspect-ratio:auto; }
.single-post .article-post-thumbnail img{ width:100%; height:100%; object-fit:cover; }
.single-post .entry.single-entry{ position:relative; z-index:1; max-width:840px; margin:0 auto; border:0; border-radius:18px; box-shadow:0 14px 40px rgba(27,47,85,.11); overflow:hidden; }
.single-post .entry-content-wrap{ padding:clamp(2rem,5vw,4.5rem); }
.single-post .entry-taxonomies{ margin-bottom:.85rem; }
.single-post .entry-taxonomies a{ display:inline-block; padding:.28rem .7rem; border-radius:999px; background:var(--zw-cream); color:var(--zw-gold-deep); font-size:.78rem; font-weight:700; letter-spacing:.04em; text-decoration:none; }
.single-post .entry-title{ color:var(--zw-navy-deep); font-size:clamp(1.5rem,2.2vw,2rem); line-height:1.42; letter-spacing:.01em; }
.single-post .entry-meta{ color:var(--zw-muted); font-size:.8rem; }
.single-post .entry-meta .posted-by{ display:none; }
.single-post .entry-content.single-content{ color:#39465d; font-size:1.04rem; line-height:1.9; }
.single-post .entry-content.single-content > :first-child{ margin-top:0; }
.single-post .entry-content.single-content h2{ margin:2.4em 0 .85em; padding:.38em 0 .38em .8em; border-left:4px solid var(--zw-gold); color:var(--zw-navy-deep); font-size:clamp(1.25rem,1.5vw,1.55rem); line-height:1.5; }
.single-post .entry-content.single-content h3{ margin:2em 0 .8em; padding-bottom:.38em; border-bottom:1px solid var(--zw-line); color:var(--zw-navy-deep); font-size:clamp(1.08rem,1.3vw,1.3rem); line-height:1.55; }
.single-post .entry-content.single-content p,
.single-post .entry-content.single-content ul,
.single-post .entry-content.single-content ol{ margin-bottom:1.15em; }
.single-post .entry-content.single-content a{ color:var(--zw-gold-deep); font-weight:700; text-underline-offset:.16em; }
.single-post .entry-content.single-content img{ border-radius:12px; }
.single-post .entry-content.single-content pre{ overflow:visible; white-space:normal; margin:1.5rem 0; padding:1rem 1.1rem; border:1px solid var(--zw-line); border-left:4px solid var(--zw-gold); border-radius:0 10px 10px 0; background:var(--zw-cream); color:var(--zw-navy-deep); font-family:inherit; font-size:.96rem; font-weight:600; line-height:1.65; }
.single-post .entry-content.single-content iframe.note-embed{ display:block; width:100%; max-width:100%; min-height:98px; margin:1.25rem 0 2rem; border:0; border-radius:0; background:transparent; }
.single-post .entry-content.single-content iframe.wp-embedded-content{ display:block; width:100% !important; max-width:100%; }
.single-post .zenwa-social-links{ display:flex; align-items:center; gap:.65rem; margin:2rem 0; }
.single-post .zenwa-social-link{ display:inline-grid; width:2.4rem; height:2.4rem; place-items:center; border-radius:50%; color:#fff !important; line-height:1; text-decoration:none; text-underline-offset:0; transition:transform .2s ease,filter .2s ease; }
.single-post .zenwa-social-link:hover,.single-post .zenwa-social-link:focus-visible{ color:#fff !important; filter:brightness(.94); transform:translateY(-2px); }
.single-post .zenwa-social-link--facebook{ background:#1877f2; }
.single-post .zenwa-social-link--line{ background:#06c755; }
.single-post .zenwa-social-icon{ color:#fff; font-family:Arial,sans-serif; font-size:1.5rem; font-weight:700; line-height:1; }
.single-post .zenwa-social-link--line .zenwa-social-icon{ font-size:.6rem; letter-spacing:-.03em; }
.single-post .entry-content.single-content > .zw-post-social.alignfull,
.single-post .entry-content.single-content > .zw-post-cta.alignfull{ width:100% !important; max-width:100% !important; margin-right:0 !important; margin-left:0 !important; padding:0; }
.single-post .zw-post-social{ margin:2.5rem 0; background:var(--zw-cream-soft); border:1px solid var(--zw-line); border-radius:14px; }
.single-post .zw-post-social .kt-row-column-wrap{ padding:clamp(1.5rem,3vw,2.5rem); }
.single-post .zw-post-social .wp-block-kadence-column{ text-align:center; }
.single-post .zw-post-social .wp-block-kadence-image{ display:table; margin-inline:auto; }
.single-post .zw-post-social .kb-img{ width:auto; max-height:190px; object-fit:contain; }
.single-post .zw-post-social .kb-button,
.single-post .zw-post-cta .wp-block-button__link{ border-radius:999px; }
.single-post .zw-post-cta{ box-sizing:border-box; margin:2.8rem 0; border:1px solid var(--zw-line); border-radius:14px; background:var(--zw-cream); text-align:center; }
.single-post .zw-post-cta .kt-row-column-wrap{ box-sizing:border-box; width:100%; max-width:100%; margin:0; padding:clamp(1.5rem,3vw,2.5rem); }
.single-post .zw-post-cta .zw-post-cta-title{ margin:0 0 .5rem !important; padding:0 !important; border:0 !important; color:var(--zw-navy-deep); font-size:clamp(1.2rem,1.8vw,1.55rem) !important; line-height:1.45 !important; }
.single-post .zw-post-cta .zw-post-cta-text{ margin:0 0 1.25rem; }
.single-post .zw-post-cta .zw-button-accent .wp-block-button__link{ background:var(--zw-gold); color:#fff; }
.single-post .entry-footer{ margin-top:2.5rem; padding-top:1.5rem; border-top:1px solid var(--zw-line); }
.single-post .entry-tags a{ display:inline-block; margin:0 .4rem .45rem 0; padding:.24rem .58rem; border:1px solid var(--zw-line); border-radius:999px; color:var(--zw-muted); font-size:.75rem; text-decoration:none; }
.single-post .post-navigation{ max-width:840px; margin:2rem auto 0; }
.single-post .post-navigation a{ color:var(--zw-navy-deep); font-weight:700; text-decoration:none; }
.single-post .entry-related{ margin-top:4rem; padding:clamp(2.5rem,5vw,4.5rem) 0; background:var(--zw-cream); }
.single-post .entry-related-title{ color:var(--zw-navy-deep); font-size:clamp(1.5rem,2.8vw,2rem); }
.single-post .entry-related .loop-entry{ border:1px solid var(--zw-line); border-radius:14px; overflow:hidden; box-shadow:0 8px 24px rgba(27,47,85,.06); }
.single-post .entry-related .loop-entry .entry-content-wrap{ padding:1rem 1.1rem 1.2rem; }
.single-post .entry-related .entry-title{ font-size:1rem; line-height:1.5; }
.single-post .comment-respond,
.single-post .comments-area{ max-width:840px; margin-inline:auto; }

@media (max-width:767px){
  .zw-blog-category-nav{ justify-content:flex-start; flex-wrap:nowrap; overflow-x:auto; padding-bottom:.35rem; }
  .single-post .content-wrap{ padding:1.5rem 0 3rem; }
  .single-post .article-post-thumbnail{
    width:auto !important;
    max-width:calc(100% - 2rem) !important;
    margin:0 1rem -2rem !important;
    border-radius:12px;
  }
  .single-post .entry.single-entry{ margin-inline:1rem; border-radius:12px; }
  .single-post .entry-content-wrap{ padding:1.5rem; }
  .single-post .entry-content.single-content{ font-size:1rem; line-height:1.9; }
  .single-post .entry-content.single-content h2{ margin-top:2.2em; padding-left:.8em; }
  .page-id-1767 .zw-page-hero > .kt-row-column-wrap{ padding-top:1.5rem !important; padding-bottom:1.5rem !important; }
}

@media (min-width:768px){
  /* The global Kadence content-area margin plus the article padding made the
     featured image start too far below the header on desktop. */
  .single-post .content-area{ margin-top:2rem; }
  .single-post .content-wrap{ padding-top:2rem; }
}
