@charset "UTF-8";
/*
Theme Name: SWELL CHILD - Save Your Teeth.
Theme URI: https://save-your-teeth.jp
Template: swell
Description: Save Your Teeth. — 歯を残す医療 by Dr. Akihiro Yuguchi 専用子テーマ。深緑×温白×ベージュ／Inter+Noto Sans JP。デザインv2凍結版（demo-blog-v2-20260515.html）をWordPress用に移植。
Version: 1.0.0
Author: 株式会社メカニスタ（小野寺鉄）
Author URI: https://mekanista.com
Tags: dental, medical, journal, japan
Text Domain: swell_child
*/

/* ==========================================================
   Save Your Teeth. - Design Tokens
   ベンチマーク: Yard Dental Clinic / BIOTOPE
   パレット: #2c5530 (深緑) / #FFF3DB (温白) / #E6BE9E (ベージュ) / #1a1a1a (墨)
   フォント: Inter + Noto Sans JP（本文・見出し）／Cormorant Garamond（英文アクセント限定）
   ========================================================== */
:root{
  --syt-green:#2c5530;
  --syt-green-light:#5A9F4D;
  --syt-cream:#FFF3DB;
  --syt-beige:#E6BE9E;
  --syt-ink:#1a1a1a;
  --syt-muted:#6b6b6b;
  --syt-line:#e8e0c8;
  --syt-white:#fff;
}

/* ==========================================================
   Base
   ========================================================== */
html{ scroll-behavior:smooth; }
body{
  font-family:'Inter','Noto Sans JP',sans-serif;
  color:var(--syt-ink);
  background:var(--syt-cream);
  font-size:16px;
  line-height:1.85;
  font-weight:400;
  font-feature-settings:"palt";
  overflow-x:hidden;
}
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; height:auto; display:block; }

/* SWELL本体のヘッダー・記事配色を上書き */
.l-header,
.l-header__inner{
  background:var(--syt-cream)!important;
}
.l-mainContent,
.l-content{
  background:var(--syt-cream);
}
.c-postThumb__cat,
.p-postList__cat{
  background:var(--syt-green)!important;
  color:var(--syt-cream)!important;
}
.c-pagination .current,
.c-pagination a:hover{
  background:var(--syt-green)!important;
  color:var(--syt-cream)!important;
}

/* 本文の見出し（記事内）— SWELLデフォルトを上書き */
.post_content h2{
  font-size:28px;
  font-weight:500;
  line-height:1.5;
  color:var(--syt-ink);
  border-left:4px solid var(--syt-green);
  padding:8px 0 8px 20px;
  margin:64px 0 24px;
  background:transparent;
}
.post_content h3{
  font-size:22px;
  font-weight:500;
  color:var(--syt-green);
  border-bottom:1px solid var(--syt-line);
  padding-bottom:8px;
  margin:48px 0 20px;
}
.post_content h4{
  font-size:18px;
  font-weight:600;
  color:var(--syt-ink);
  margin:32px 0 12px;
}
.post_content p{
  font-size:16px;
  line-height:2.0;
  margin-bottom:1.5em;
}
.post_content a{
  color:var(--syt-green);
  text-decoration:underline;
  text-decoration-color:var(--syt-beige);
  text-underline-offset:3px;
}
.post_content blockquote{
  background:var(--syt-white);
  border-left:3px solid var(--syt-green);
  padding:24px 28px;
  font-style:normal;
  color:var(--syt-ink);
}
.post_content strong{
  color:var(--syt-green);
  font-weight:600;
}

/* ==========================================================
   Reveal Animation（フェードイン）
   front-page でJSと併用
   ========================================================== */
.syt-reveal{
  opacity:0;
  transform:translateY(40px);
  transition:opacity 1.2s cubic-bezier(.16,1,.3,1), transform 1.2s cubic-bezier(.16,1,.3,1);
}
.syt-reveal.in{ opacity:1; transform:translateY(0); }
.syt-stagger > *{
  opacity:0;
  transform:translateY(30px);
  transition:opacity 1s cubic-bezier(.16,1,.3,1), transform 1s cubic-bezier(.16,1,.3,1);
}
.syt-stagger.in > *:nth-child(1){ transition-delay:.0s; opacity:1; transform:translateY(0); }
.syt-stagger.in > *:nth-child(2){ transition-delay:.15s; opacity:1; transform:translateY(0); }
.syt-stagger.in > *:nth-child(3){ transition-delay:.3s; opacity:1; transform:translateY(0); }
.syt-stagger.in > *:nth-child(4){ transition-delay:.45s; opacity:1; transform:translateY(0); }
.syt-stagger.in > *:nth-child(5){ transition-delay:.6s; opacity:1; transform:translateY(0); }
.syt-stagger.in > *:nth-child(6){ transition-delay:.75s; opacity:1; transform:translateY(0); }

/* ==========================================================
   Hero（TOPファーストビュー）
   front-page.php または カスタムHTMLブロックで使用
   ========================================================== */
.syt-hero{
  min-height:100vh;
  padding:120px 48px 80px;
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:80px;
  align-items:center;
  position:relative;
  background:linear-gradient(180deg, var(--syt-cream) 0%, #f9ead0 100%);
}
.syt-hero::before{
  content:""; position:absolute; right:-100px; top:-100px;
  width:500px; height:500px; border-radius:50%;
  background:radial-gradient(circle, rgba(90,159,77,0.15), transparent 70%);
  z-index:0;
}
.syt-hero__text{ position:relative; z-index:2; }
.syt-hero__kicker{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:18px;
  color:var(--syt-green);
  margin-bottom:24px;
  letter-spacing:.02em;
}
.syt-hero__title{
  font-size:64px;
  font-weight:300;
  line-height:1.25;
  letter-spacing:-0.02em;
  margin-bottom:32px;
  color:var(--syt-ink);
}
.syt-hero__title em{
  color:var(--syt-green); font-style:normal; font-weight:500;
  position:relative; display:inline-block;
}
.syt-hero__title em::after{
  content:""; position:absolute; bottom:8px; left:0; right:0;
  height:3px; background:var(--syt-green-light); opacity:.3;
}
.syt-hero__lead{
  font-size:17px; color:var(--syt-muted); line-height:2;
  margin-bottom:40px; max-width:540px;
}
.syt-hero__creds{ display:flex; flex-wrap:wrap; gap:8px; }
.syt-hero__creds .c{
  font-size:12px; padding:8px 16px; background:var(--syt-white);
  border:1px solid var(--syt-line); color:var(--syt-green);
  border-radius:100px; font-weight:500;
}
.syt-hero__photo{ position:relative; z-index:1; }
.syt-hero__photo img{
  width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:8px;
  box-shadow:0 24px 60px rgba(44,85,48,0.15);
}
.syt-hero__photo .badge{
  position:absolute; top:-20px; left:-20px;
  background:var(--syt-green); color:var(--syt-cream);
  padding:16px 24px; border-radius:8px;
  font-family:'Cormorant Garamond', serif;
  font-size:16px; letter-spacing:.1em; font-weight:500;
}
@media (max-width:920px){
  .syt-hero{ grid-template-columns:1fr; padding:100px 24px 60px; gap:48px; }
  .syt-hero__title{ font-size:38px; }
}

/* ==========================================================
   Mission（ミッションステートメント）
   ========================================================== */
.syt-mission{
  padding:160px 48px; max-width:1200px;
  margin:0 auto; text-align:center;
}
.syt-mission__label{
  font-family:'Cormorant Garamond', serif; font-style:italic;
  color:var(--syt-green); font-size:18px;
  margin-bottom:24px; letter-spacing:.04em;
}
.syt-mission__title{
  font-size:48px; font-weight:300; line-height:1.5;
  letter-spacing:-0.01em; color:var(--syt-ink);
  max-width:840px; margin:0 auto 48px;
}
.syt-mission__title em{
  color:var(--syt-green); font-style:normal; font-weight:500;
}
.syt-mission__body{
  max-width:680px; margin:0 auto;
  font-size:17px; line-height:2; color:var(--syt-muted);
}
@media (max-width:920px){
  .syt-mission{ padding:96px 24px; }
  .syt-mission__title{ font-size:28px; }
}

/* ==========================================================
   3 Pillars
   ========================================================== */
.syt-pillars{ padding:120px 48px; background:var(--syt-white); }
.syt-pillars__inner{ max-width:1280px; margin:0 auto; }
.syt-pillars__head{
  display:grid; grid-template-columns:1fr 1.5fr; gap:80px;
  margin-bottom:80px; align-items:end;
}
.syt-pillars__label{
  font-family:'Cormorant Garamond', serif; font-style:italic;
  color:var(--syt-green); font-size:18px; margin-bottom:16px;
}
.syt-pillars__title{
  font-size:42px; font-weight:300; line-height:1.4;
  letter-spacing:-0.01em;
}
.syt-pillars__desc{
  font-size:15px; color:var(--syt-muted); line-height:2;
}
.syt-pillars__grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:32px;
}
.syt-pillar{
  background:var(--syt-cream); padding:48px 36px; border-radius:8px;
  position:relative; overflow:hidden;
  transition:transform .6s cubic-bezier(.16,1,.3,1);
}
.syt-pillar:hover{ transform:translateY(-8px); }
.syt-pillar .num{
  font-family:'Cormorant Garamond', serif; font-size:80px;
  color:var(--syt-green); opacity:.15; font-weight:500;
  line-height:1; position:absolute; right:24px; top:24px;
}
.syt-pillar h3{
  font-size:24px; font-weight:500; margin-bottom:16px;
  color:var(--syt-green); position:relative; z-index:2;
}
.syt-pillar p{
  font-size:14px; color:var(--syt-ink); line-height:2;
  position:relative; z-index:2;
}
@media (max-width:920px){
  .syt-pillars{ padding:80px 24px; }
  .syt-pillars__head{ grid-template-columns:1fr; gap:24px; }
  .syt-pillars__title{ font-size:30px; }
  .syt-pillars__grid{ grid-template-columns:1fr; }
}

/* ==========================================================
   Doctor Section
   ========================================================== */
.syt-doctor{
  padding:160px 48px;
  background:linear-gradient(180deg, var(--syt-cream) 0%, #f6e8ce 100%);
}
.syt-doctor__inner{
  max-width:1280px; margin:0 auto;
  display:grid; grid-template-columns:1fr 1.2fr; gap:80px;
  align-items:center;
}
.syt-doctor__photo{ position:relative; }
.syt-doctor__photo img{
  width:100%; aspect-ratio:3/4; object-fit:cover; border-radius:8px;
  box-shadow:0 24px 60px rgba(44,85,48,0.18);
}
.syt-doctor__quote{
  position:absolute; right:-32px; bottom:-32px;
  background:var(--syt-green); color:var(--syt-cream);
  padding:24px 32px; border-radius:8px; max-width:280px;
  font-family:'Cormorant Garamond', serif; font-style:italic;
  font-size:18px; line-height:1.6;
}
.syt-doctor__label{
  font-family:'Cormorant Garamond', serif; font-style:italic;
  color:var(--syt-green); margin-bottom:16px; font-size:16px;
}
.syt-doctor__title{
  font-size:42px; font-weight:300; line-height:1.4;
  margin-bottom:32px; letter-spacing:-0.01em;
}
.syt-doctor__name-en{
  font-family:'Cormorant Garamond', serif; font-size:28px;
  color:var(--syt-green); margin-bottom:4px; font-weight:500;
}
.syt-doctor__name-jp{
  font-size:16px; color:var(--syt-muted); margin-bottom:24px;
}
.syt-doctor__text p{
  font-size:15px; color:var(--syt-ink); line-height:2.1;
  margin-bottom:16px;
}
.syt-doctor__text strong{ color:var(--syt-green); font-weight:500; }
.syt-career{
  margin-top:32px; padding:24px 28px; background:var(--syt-white);
  border-radius:8px; border-left:3px solid var(--syt-green);
}
.syt-career h4{
  font-family:'Cormorant Garamond', serif; font-style:italic;
  color:var(--syt-green); font-size:14px;
  margin-bottom:12px; letter-spacing:.1em;
}
.syt-career ul{ list-style:none; padding:0; margin:0; }
.syt-career li{
  padding:6px 0; border-bottom:1px dashed var(--syt-line);
  font-size:13px; line-height:1.7;
  display:grid; grid-template-columns:60px 1fr; gap:16px;
}
.syt-career li:last-child{ border:none; }
.syt-career li .y{
  font-family:'Cormorant Garamond', serif;
  color:var(--syt-green); font-weight:500;
}
@media (max-width:920px){
  .syt-doctor{ padding:80px 24px; }
  .syt-doctor__inner{ grid-template-columns:1fr; gap:48px; }
  .syt-doctor__title{ font-size:30px; }
  .syt-doctor__quote{ right:0; bottom:-16px; max-width:240px; }
}

/* ==========================================================
   Articles（記事一覧カード）
   front-pageの「最新記事」セクションで使用 + アーカイブにも適用
   ========================================================== */
.syt-articles{ padding:160px 48px; background:var(--syt-white); }
.syt-articles__inner{ max-width:1280px; margin:0 auto; }
.syt-articles__head{
  display:flex; justify-content:space-between; align-items:end;
  margin-bottom:64px; flex-wrap:wrap; gap:24px;
}
.syt-articles__label{
  font-family:'Cormorant Garamond', serif; font-style:italic;
  color:var(--syt-green); font-size:18px; margin-bottom:12px;
}
.syt-articles__title{
  font-size:42px; font-weight:300;
  letter-spacing:-0.01em; line-height:1.3;
}
.syt-articles__all{
  font-size:13px; color:var(--syt-green); padding:12px 24px;
  border:1px solid var(--syt-green); border-radius:100px;
  letter-spacing:.1em; font-weight:500;
  transition:background .3s, color .3s;
  display:inline-block;
}
.syt-articles__all:hover{ background:var(--syt-green); color:var(--syt-cream); }
.syt-articles__grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:40px;
}
.syt-article{
  cursor:pointer;
  transition:transform .5s cubic-bezier(.16,1,.3,1);
}
.syt-article:hover{ transform:translateY(-6px); }
.syt-article__thumb{
  aspect-ratio:5/4; overflow:hidden; border-radius:8px;
  margin-bottom:20px; background:var(--syt-cream);
}
.syt-article__thumb img{
  width:100%; height:100%; object-fit:cover;
  transition:transform 1s cubic-bezier(.16,1,.3,1);
}
.syt-article:hover .syt-article__thumb img{ transform:scale(1.08); }
.syt-article__cat{
  font-family:'Cormorant Garamond', serif; font-style:italic;
  color:var(--syt-green); font-size:13px;
  margin-bottom:10px; letter-spacing:.05em;
}
.syt-article__title{
  font-size:18px; font-weight:500; line-height:1.6;
  margin-bottom:12px; color:var(--syt-ink);
  min-height:84px;
}
.syt-article__excerpt{
  font-size:13px; color:var(--syt-muted); line-height:1.85;
  margin-bottom:16px;
}
.syt-article__meta{
  font-family:'Cormorant Garamond', serif; font-size:13px;
  color:var(--syt-green); letter-spacing:.05em; padding-top:12px;
  border-top:1px solid var(--syt-line);
  display:flex; justify-content:space-between;
}
@media (max-width:920px){
  .syt-articles{ padding:80px 24px; }
  .syt-articles__title{ font-size:28px; }
  .syt-articles__grid{ grid-template-columns:1fr; }
}

/* ==========================================================
   Specialty Section（専門領域）— 緑背景反転
   ========================================================== */
.syt-specialty{
  padding:160px 48px; background:var(--syt-green); color:var(--syt-cream);
  position:relative; overflow:hidden;
}
.syt-specialty::before{
  content:""; position:absolute; left:-200px; top:-200px;
  width:600px; height:600px; border-radius:50%;
  background:radial-gradient(circle, rgba(255,243,219,0.08), transparent 70%);
}
.syt-specialty__inner{ max-width:1280px; margin:0 auto; position:relative; }
.syt-specialty__label{
  font-family:'Cormorant Garamond', serif; font-style:italic;
  color:var(--syt-beige); font-size:18px; margin-bottom:16px;
}
.syt-specialty__title{
  font-size:48px; font-weight:300; line-height:1.4;
  margin-bottom:80px; max-width:780px;
  letter-spacing:-0.01em;
}
.syt-specialty__grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:24px;
}
.syt-spec{
  border:1px solid rgba(255,243,219,0.2); padding:32px 24px;
  border-radius:8px; transition:all .4s;
  background:rgba(255,243,219,0.03);
}
.syt-spec:hover{
  background:rgba(255,243,219,0.08);
  transform:translateY(-4px);
}
.syt-spec .num{
  font-family:'Cormorant Garamond', serif; font-size:13px;
  color:var(--syt-beige); margin-bottom:12px; letter-spacing:.1em;
}
.syt-spec h4{
  font-size:18px; font-weight:500; margin-bottom:12px;
  color:var(--syt-cream);
}
.syt-spec p{
  font-size:13px; line-height:1.85;
  color:rgba(255,243,219,0.7);
}
@media (max-width:920px){
  .syt-specialty{ padding:80px 24px; }
  .syt-specialty__title{ font-size:30px; }
  .syt-specialty__grid{ grid-template-columns:1fr 1fr; }
}

/* ==========================================================
   Quote Section
   ========================================================== */
.syt-quote{
  padding:200px 48px; text-align:center;
  background:var(--syt-cream);
}
.syt-quote__inner{ max-width:780px; margin:0 auto; }
.syt-quote__mark{
  font-family:'Cormorant Garamond', serif; font-size:120px;
  color:var(--syt-green); line-height:1; opacity:.3; margin-bottom:24px;
}
.syt-quote__text{
  font-size:32px; font-weight:300; line-height:1.7;
  color:var(--syt-ink); margin-bottom:48px;
  letter-spacing:-0.01em;
}
.syt-quote__text em{ color:var(--syt-green); font-style:normal; font-weight:500; }
.syt-quote__sig{
  font-family:'Cormorant Garamond', serif; font-style:italic;
  color:var(--syt-green); font-size:18px; letter-spacing:.05em;
}
@media (max-width:920px){
  .syt-quote{ padding:96px 24px; }
  .syt-quote__text{ font-size:20px; }
}

/* ==========================================================
   Video Section
   ========================================================== */
.syt-video{ padding:120px 48px; background:var(--syt-white); }
.syt-video__inner{ max-width:1080px; margin:0 auto; }
.syt-video__head{ text-align:center; margin-bottom:48px; }
.syt-video__label{
  font-family:'Cormorant Garamond', serif; font-style:italic;
  color:var(--syt-green); font-size:18px; margin-bottom:12px;
}
.syt-video__title{
  font-size:36px; font-weight:300; letter-spacing:-0.01em;
  line-height:1.5; max-width:760px; margin:0 auto;
}
.syt-video__frame{
  position:relative; aspect-ratio:16/9; border-radius:8px;
  overflow:hidden; box-shadow:0 32px 80px rgba(44,85,48,0.2);
  margin-bottom:48px;
}
.syt-video__frame iframe{
  position:absolute; inset:0; width:100%; height:100%; border:0;
}
.syt-video__stats{
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
  max-width:680px; margin:0 auto;
}
.syt-vstat{ text-align:center; }
.syt-vstat .n{
  font-family:'Cormorant Garamond', serif; font-size:48px;
  color:var(--syt-green); font-weight:500; line-height:1;
}
.syt-vstat .l{
  font-size:11px; color:var(--syt-muted); letter-spacing:.2em;
  margin-top:8px;
}
@media (max-width:920px){
  .syt-video{ padding:60px 24px; }
  .syt-video__title{ font-size:24px; }
  .syt-video__stats{ grid-template-columns:1fr; }
}

/* ==========================================================
   CTA Section
   ========================================================== */
.syt-cta{
  padding:160px 48px;
  background:var(--syt-green); color:var(--syt-cream); text-align:center;
}
.syt-cta__inner{ max-width:780px; margin:0 auto; }
.syt-cta__label{
  font-family:'Cormorant Garamond', serif; font-style:italic;
  font-size:18px; color:var(--syt-beige); margin-bottom:24px;
}
.syt-cta__title{
  font-size:42px; font-weight:300; line-height:1.5;
  margin-bottom:32px; letter-spacing:-0.01em;
}
.syt-cta__text{
  font-size:16px; line-height:2; max-width:560px; margin:0 auto 48px;
  color:rgba(255,243,219,0.85);
}
.syt-cta__btn{
  display:inline-block; padding:20px 48px; background:var(--syt-cream);
  color:var(--syt-green); font-size:14px; font-weight:600;
  letter-spacing:.15em; border-radius:100px;
  transition:transform .3s;
}
.syt-cta__btn:hover{ transform:scale(1.05); }
@media (max-width:920px){
  .syt-cta{ padding:80px 24px; }
  .syt-cta__title{ font-size:28px; }
}

/* ==========================================================
   Footer
   ========================================================== */
.l-footer{
  background:var(--syt-ink)!important;
  color:rgba(255,243,219,0.6)!important;
}
.l-footer a{ color:var(--syt-cream); }
.c-copyright,
.p-footerSubMenu{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  letter-spacing:.1em;
}

/* ==========================================================
   Article Page（個別記事ページ）
   sample-article-gum-recession-20260521.htmlで確立した型を適用
   ========================================================== */
.single .post_content{
  max-width:760px;
  margin:0 auto;
}
.single .l-mainContent{
  background:var(--syt-cream);
}
.c-postTitle{
  text-align:center;
  padding:48px 0 32px;
}
.c-postTitle .ttl{
  font-size:32px;
  font-weight:500;
  line-height:1.5;
  color:var(--syt-ink);
}
.c-postTitle__date{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  color:var(--syt-green);
  font-size:14px;
  letter-spacing:.05em;
  margin-top:12px;
}

/* FAQブロック（記事内・JSON-LDとペア） */
.syt-faq{
  margin:48px 0;
  border-top:1px solid var(--syt-line);
}
.syt-faq__item{
  border-bottom:1px solid var(--syt-line);
  padding:24px 0;
}
.syt-faq__q{
  font-size:17px; font-weight:600; color:var(--syt-green);
  margin-bottom:12px;
  padding-left:32px; position:relative;
}
.syt-faq__q::before{
  content:"Q."; position:absolute; left:0; top:0;
  font-family:'Cormorant Garamond', serif; font-size:18px;
  color:var(--syt-green); font-weight:500;
}
.syt-faq__a{
  font-size:15px; line-height:2; color:var(--syt-ink);
  padding-left:32px; position:relative;
}
.syt-faq__a::before{
  content:"A."; position:absolute; left:0; top:0;
  font-family:'Cormorant Garamond', serif; font-size:18px;
  color:var(--syt-beige); font-weight:500;
}

/* ==========================================================
   ARTICLE CONTENT — コラム記事・固定ページ用デザイン
   投稿本文のカスタムHTMLブロック内で使用するクラス群
   SWELLの .post_content 内でも、グローバルでも両方有効
   ========================================================== */

/* ---------- Common containers ---------- */
.article-wrap{ max-width:760px; margin:0 auto; padding:120px 32px 80px; }
.breadcrumb{
  font-size:12px; color:var(--syt-muted);
  font-family:'Cormorant Garamond',serif; font-style:italic;
  margin-bottom:32px;
}
.breadcrumb a{ color:var(--syt-green); }

/* ---------- Article Header ---------- */
.article-head{
  margin-bottom:48px; padding-bottom:32px;
  border-bottom:1px solid var(--syt-line);
}
.article-head .cat{
  display:inline-block;
  font-family:'Cormorant Garamond',serif; font-style:italic;
  color:var(--syt-green); font-size:13px; letter-spacing:.1em;
  margin-bottom:16px; padding:4px 12px;
  background:var(--syt-white); border-radius:100px;
  border:1px solid var(--syt-line);
}
.article-head h1{
  font-size:36px; font-weight:500; line-height:1.5;
  letter-spacing:-0.01em; margin-bottom:24px;
}
.article-head .meta{
  display:flex; align-items:center; gap:16px;
  font-size:13px; color:var(--syt-muted); flex-wrap:wrap;
}
.article-head .meta .author{ display:flex; align-items:center; gap:8px; }
.article-head .meta .author .ic{
  width:32px; height:32px; border-radius:50%;
  background:var(--syt-green); color:var(--syt-cream);
  display:flex; align-items:center; justify-content:center;
  font-family:'Cormorant Garamond',serif; font-style:italic;
  font-size:14px; font-weight:500;
}
.article-head .meta .author b{ color:var(--syt-ink); font-weight:500; }
.article-head .meta .date{
  font-family:'Cormorant Garamond',serif; font-style:italic;
  color:var(--syt-green);
}

/* ---------- Lead (記事冒頭リード) ---------- */
.lead{
  font-size:17px; line-height:2.1;
  padding:24px 28px; background:var(--syt-white);
  border-left:3px solid var(--syt-green);
  border-radius:0 8px 8px 0; margin-bottom:48px;
}
.lead strong{ color:var(--syt-green); font-weight:600; }

/* ---------- Table of Contents ---------- */
.toc{
  padding:24px 28px; background:var(--syt-white);
  border:1px solid var(--syt-line); border-radius:8px;
  margin-bottom:48px;
}
.toc h3{
  font-family:'Cormorant Garamond',serif; font-style:italic;
  color:var(--syt-green); font-size:13px; letter-spacing:.1em;
  margin-bottom:16px; font-weight:600;
}
.toc ol{ list-style:none; padding:0; counter-reset:toc; }
.toc li{
  counter-increment:toc; padding:6px 0; font-size:14px;
  border-bottom:1px dashed var(--syt-line);
}
.toc li:last-child{ border:none; }
.toc li::before{
  content:counter(toc,decimal-leading-zero);
  font-family:'Cormorant Garamond',serif;
  color:var(--syt-green); margin-right:12px; font-weight:500;
}

/* ---------- Body typography ---------- */
.post_content .body h2,
.body h2{
  font-size:28px; font-weight:500; line-height:1.5;
  margin:64px 0 24px; padding:8px 0 8px 20px;
  border-left:4px solid var(--syt-green);
  scroll-margin-top:80px; background:transparent;
}
.post_content .body h3,
.body h3{
  font-size:20px; font-weight:500; color:var(--syt-green);
  margin:48px 0 16px; padding-bottom:8px;
  border-bottom:1px solid var(--syt-line);
}
.body p{ margin-bottom:1.5em; line-height:2.0; }
.body a{
  color:var(--syt-green); text-decoration:underline;
  text-decoration-color:var(--syt-beige); text-underline-offset:3px;
}
.body strong{ color:var(--syt-green); font-weight:600; }
.body ul, .body ol{ margin:1.2em 0; padding-left:24px; }
.body li{ margin-bottom:8px; line-height:1.9; }

/* ---------- Callouts / boxes ---------- */
.body .callout{
  background:linear-gradient(135deg,#fff7e6 0%,#fdedc8 100%);
  border:1px solid #e6c97a; padding:20px 24px;
  border-radius:8px; margin:1.5em 0; font-size:14px;
}
.body .callout b{ color:#b45309; }

.body .gentle-box{
  padding:24px 28px; background:var(--syt-white);
  border-left:3px solid var(--syt-beige);
  border-radius:0 6px 6px 0; margin:1.5em 0;
  font-size:14px; line-height:2;
}
.body .gentle-box b{ color:var(--syt-green); }

.body .term{
  display:inline-block; padding:0 6px;
  background:#fff7e6; border-bottom:1px dotted #b45309;
  color:#b45309; font-weight:500; font-size:14px;
}

.body .ref{
  font-size:12px; color:var(--syt-muted);
  background:var(--syt-white); padding:14px 18px;
  border-radius:6px; margin:1.5em 0;
  border-left:2px solid var(--syt-beige);
}
.body .ref b{ color:var(--syt-green); }

.body .check-list{
  padding:24px 28px 24px 56px;
  background:var(--syt-white); border:1px solid var(--syt-line);
  border-radius:8px; margin:1.5em 0;
}
.body .check-list li{
  position:relative; padding-left:28px;
  list-style:none; margin-bottom:12px;
}
.body .check-list li::before{
  content:"✓"; position:absolute; left:0; top:0;
  color:var(--syt-green); font-weight:600; font-size:16px;
}

.body .step-list{
  counter-reset:step; list-style:none; padding:0; margin:1.5em 0;
}
.body .step-list li{
  counter-increment:step; position:relative;
  padding:16px 16px 16px 56px;
  background:var(--syt-white); border:1px solid var(--syt-line);
  border-radius:8px; margin-bottom:8px;
  font-size:14px; line-height:1.95;
}
.body .step-list li::before{
  content:counter(step);
  position:absolute; left:14px; top:14px;
  width:30px; height:30px; background:var(--syt-green);
  color:var(--syt-cream); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family:'Cormorant Garamond',serif;
  font-weight:600; font-size:14px;
}

.body .stat-row{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:16px; margin:1.5em 0;
}
.body .stat-row .stat{
  padding:24px; background:var(--syt-white);
  border:1px solid var(--syt-line); border-radius:8px;
  text-align:center;
}
.body .stat-row .stat .n{
  font-family:'Cormorant Garamond',serif;
  font-size:32px; color:var(--syt-green); font-weight:500;
  line-height:1; margin-bottom:8px;
}
.body .stat-row .stat .l{
  font-size:11px; color:var(--syt-muted);
  letter-spacing:.05em; line-height:1.6;
}
@media(max-width:760px){
  .body .stat-row{ grid-template-columns:1fr; }
}

.body .compare{
  margin:1.5em 0; border:1px solid var(--syt-line);
  border-radius:8px; overflow:hidden;
}
.body .compare table{ width:100%; border-collapse:collapse; font-size:13px; }
.body .compare th{
  background:var(--syt-green); color:var(--syt-cream);
  padding:12px; text-align:left; font-weight:500;
  font-size:12px; letter-spacing:.05em;
}
.body .compare td{
  padding:14px; border-bottom:1px solid var(--syt-line);
  vertical-align:top; background:var(--syt-white);
}
.body .compare tr:last-child td{ border-bottom:none; }
.body .compare .label{
  font-weight:600; color:var(--syt-green); width:30%;
}

/* ---------- Highlighted boxes (緑背景) ---------- */
.body .paper-box,
.body .talk-box,
.body .award-box,
.body .event-box,
.body .article-box,
.body .badge-box,
.body .mentor-box{
  padding:32px;
  background:linear-gradient(135deg,var(--syt-green) 0%,#1f3d22 100%);
  color:var(--syt-cream); border-radius:8px; margin:1.5em 0;
}
.body .paper-box .label,
.body .talk-box .label,
.body .award-box .label,
.body .event-box .label,
.body .article-box .label,
.body .badge-box .label,
.body .mentor-box .label{
  font-family:'Cormorant Garamond',serif; font-style:italic;
  color:var(--syt-beige); font-size:13px;
  margin-bottom:12px; letter-spacing:.1em;
}
.body .paper-box h3,
.body .talk-box .talk-title,
.body .award-box h3,
.body .event-box .name,
.body .article-box h3,
.body .mentor-box h3{
  color:var(--syt-cream); font-size:20px;
  font-weight:500; line-height:1.5;
  margin:0 0 8px; border:none; padding:0;
}
.body .paper-box p,
.body .talk-box p,
.body .award-box p,
.body .article-box p,
.body .mentor-box p{
  font-size:13px; color:rgba(255,243,219,0.9);
  line-height:1.85; margin-bottom:8px;
}
.body .paper-box .authors{
  font-size:12px; color:var(--syt-beige);
  padding-top:12px; border-top:1px solid rgba(255,243,219,0.2);
  margin-top:12px;
}
.body .paper-box a,
.body .award-box a,
.body .event-box a{ color:var(--syt-beige); text-decoration:underline; }
.body .badge-box{ text-align:center; }
.body .badge-box .big{
  font-family:'Cormorant Garamond',serif;
  font-size:36px; color:var(--syt-cream);
  font-weight:500; line-height:1.2; margin-bottom:8px;
}
.body .event-box ul,
.body .mentor-box ul{
  padding-left:20px; font-size:13px;
  color:rgba(255,243,219,0.85); line-height:1.85;
}
.body .event-box ul li,
.body .mentor-box ul li{ padding:2px 0; border:none; }
.body .talk-box .meta{
  font-size:13px; color:var(--syt-beige);
  font-family:'Cormorant Garamond',serif; font-style:italic;
  margin-bottom:16px;
}
.body .badge-box .sub{
  font-size:14px; color:rgba(255,243,219,0.85); line-height:1.7;
}

/* ---------- Inline CTA ---------- */
.inline-cta{
  margin:48px 0; padding:32px;
  background:linear-gradient(135deg,var(--syt-green) 0%,#1f3d22 100%);
  color:var(--syt-cream); border-radius:8px; text-align:center;
}
.inline-cta .label{
  font-family:'Cormorant Garamond',serif; font-style:italic;
  color:var(--syt-beige); font-size:13px;
  margin-bottom:8px; letter-spacing:.1em;
}
.inline-cta h3{
  font-size:20px; font-weight:500; line-height:1.5;
  margin-bottom:12px; color:var(--syt-cream);
  border:none; padding:0;
}
.inline-cta p{
  font-size:13px; line-height:1.9;
  color:rgba(255,243,219,0.85); margin-bottom:20px;
}
.inline-cta .btn{
  display:inline-block; padding:12px 32px;
  background:var(--syt-cream); color:var(--syt-green);
  font-size:13px; font-weight:600; letter-spacing:.1em;
  border-radius:100px;
}

/* ---------- Article FAQ ---------- */
.article-faq{ margin:48px 0; }
.faq-item{
  border-bottom:1px solid var(--syt-line); padding:24px 0;
}
.faq-item:first-of-type{ border-top:1px solid var(--syt-line); }
.faq-q{
  font-size:16px; font-weight:500; margin-bottom:12px;
  padding-left:32px; position:relative; line-height:1.6;
}
.faq-q::before{
  content:"Q."; position:absolute; left:0; top:0;
  font-family:'Cormorant Garamond',serif; font-size:20px;
  color:var(--syt-green); font-weight:500;
}
.faq-a{
  font-size:14px; line-height:2;
  padding-left:32px; position:relative; color:var(--syt-ink);
}
.faq-a::before{
  content:"A."; position:absolute; left:0; top:0;
  font-family:'Cormorant Garamond',serif; font-size:20px;
  color:var(--syt-beige); font-weight:500;
}
.faq-a strong{ color:var(--syt-green); font-weight:600; }

/* ---------- Related cards ---------- */
.related{ margin:48px 0; }
.related h3{
  font-family:'Cormorant Garamond',serif; font-style:italic;
  color:var(--syt-green); font-size:13px;
  letter-spacing:.1em; margin-bottom:20px;
}
.related-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:16px;
}
.related-card{
  padding:20px; background:var(--syt-white);
  border:1px solid var(--syt-line); border-radius:8px;
  transition:transform .4s;
}
.related-card:hover{
  transform:translateY(-2px); border-color:var(--syt-green);
}
.related-card .cat{
  font-family:'Cormorant Garamond',serif; font-style:italic;
  color:var(--syt-green); font-size:11px; margin-bottom:8px;
}
.related-card h4{ font-size:14px; font-weight:500; line-height:1.5; }
@media(max-width:760px){
  .related-grid{ grid-template-columns:1fr; }
}

/* ---------- Author box ---------- */
.author-box{
  margin:48px 0; padding:32px;
  background:var(--syt-white); border:1px solid var(--syt-line);
  border-radius:8px;
  display:grid; grid-template-columns:80px 1fr;
  gap:24px; align-items:start;
}
.author-box .photo{
  width:80px; height:80px; border-radius:50%;
  background:var(--syt-green); overflow:hidden;
}
.author-box .photo img{
  width:100%; height:100%; object-fit:cover;
}
.author-box .info .name-en{
  font-family:'Cormorant Garamond',serif; font-style:italic;
  color:var(--syt-green); font-size:13px; margin-bottom:4px;
}
.author-box .info h4{
  font-size:18px; font-weight:500; margin-bottom:8px;
}
.author-box .info p{
  font-size:13px; color:var(--syt-muted);
  line-height:1.85; margin-bottom:12px;
}
.author-box .info a{
  display:inline-block; font-size:12px; color:var(--syt-green);
  font-family:'Cormorant Garamond',serif; font-style:italic;
  border-bottom:1px solid var(--syt-green);
}
@media(max-width:760px){
  .author-box{ grid-template-columns:60px 1fr; gap:16px; padding:24px; }
  .author-box .photo{ width:60px; height:60px; }
}

/* ---------- Video embed ---------- */
.video-section{ margin:48px 0; }
.video-section .video-label{
  font-family:'Cormorant Garamond',serif; font-style:italic;
  color:var(--syt-green); font-size:13px;
  letter-spacing:.1em; margin-bottom:12px; font-weight:600;
}
.video-section .video-frame{
  position:relative; aspect-ratio:16/9;
  border-radius:8px; overflow:hidden;
  box-shadow:0 16px 40px rgba(44,85,48,0.15);
  background:#000;
}
.video-section .video-frame iframe{
  position:absolute; inset:0;
  width:100%; height:100%; border:0;
}
.video-section .video-caption{
  font-size:12px; color:var(--syt-muted);
  margin-top:10px; line-height:1.7;
  padding:8px 12px; background:var(--syt-white);
  border-radius:6px; border-left:2px solid var(--syt-beige);
}
.video-section .video-caption b{ color:var(--syt-green); }

.video-list{
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:16px; margin:24px 0;
}
.video-list .v-item{
  padding:14px 16px; background:var(--syt-white);
  border:1px solid var(--syt-line); border-radius:6px;
  font-size:13px; line-height:1.6;
}
.video-list .v-item a{ color:var(--syt-ink); font-weight:500; }
.video-list .v-item .v-meta{
  font-family:'Cormorant Garamond',serif; font-style:italic;
  color:var(--syt-green); font-size:11px;
  margin-bottom:4px; letter-spacing:.05em;
}
@media(max-width:760px){
  .video-list{ grid-template-columns:1fr; }
}

/* ---------- Scene feature (記事内スクショ) ---------- */
.scene-feature{
  margin:32px 0; padding:20px;
  background:var(--syt-white); border:1px solid var(--syt-line);
  border-radius:8px;
}
.scene-feature img{
  width:100%; border-radius:6px; display:block;
}
.scene-feature .scene-meta{
  display:flex; align-items:center; gap:12px;
  margin-bottom:12px; font-size:12px; flex-wrap:wrap;
}
.scene-feature .scene-meta .time{
  font-family:'Cormorant Garamond',serif;
  color:var(--syt-green); font-weight:600; font-size:14px;
}
.scene-feature .scene-meta .num{
  padding:2px 8px; background:var(--syt-cream);
  color:var(--syt-green); border-radius:10px;
  font-size:11px; font-weight:500; letter-spacing:.05em;
}
.scene-feature .scene-desc{
  font-size:13px; line-height:1.85;
  color:var(--syt-ink); margin-top:12px;
}
.scene-feature .scene-desc b{ color:var(--syt-green); }

/* ---------- Gallery (動画スクショ完全集) ---------- */
.gallery-section{
  margin:64px 0; padding:32px;
  background:var(--syt-white); border:1px solid var(--syt-line);
  border-radius:8px;
}
.gallery-section .gallery-head{ margin-bottom:24px; }
.gallery-section .gallery-head .label{
  font-family:'Cormorant Garamond',serif; font-style:italic;
  color:var(--syt-green); font-size:13px;
  letter-spacing:.1em; margin-bottom:6px;
}
.gallery-section .gallery-head h3{
  font-size:20px; font-weight:500; color:var(--syt-ink);
  margin:0 0 8px; border:none; padding:0;
}
.gallery-section .gallery-head p{
  font-size:13px; color:var(--syt-muted); line-height:1.85;
}
.gallery-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:8px;
}
.gallery-grid .cell{
  position:relative; aspect-ratio:16/9;
  overflow:hidden; border-radius:4px;
  cursor:pointer; transition:transform .3s;
}
.gallery-grid .cell:hover{ transform:scale(1.02); z-index:2; }
.gallery-grid .cell img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.gallery-grid .cell .scene-no{
  position:absolute; top:4px; left:4px;
  background:rgba(44,85,48,0.85); color:#fff;
  font-size:10px; padding:1px 6px; border-radius:8px;
  font-family:'Cormorant Garamond',serif;
}
.gallery-grid .cell .scene-time{
  position:absolute; bottom:4px; right:4px;
  background:rgba(0,0,0,0.6); color:#fff;
  font-size:10px; padding:1px 5px; border-radius:3px;
  font-family:'Cormorant Garamond',serif;
}
@media(max-width:760px){
  .gallery-grid{ grid-template-columns:repeat(2,1fr); }
  .gallery-section{ padding:20px; }
}

/* ==========================================================
   SWELL本文エリア（.post_content）でも有効にする
   ========================================================== */
.post_content > .article-wrap,
.post_content .article-head,
.post_content .lead,
.post_content .toc,
.post_content .body,
.post_content .scene-feature,
.post_content .video-section,
.post_content .article-faq,
.post_content .related,
.post_content .author-box,
.post_content .inline-cta,
.post_content .gallery-section{
  max-width:none;
}

/* SWELLのデフォルト本文余白を、独自スタイルで上書きしない */
.post_content .body{ margin:0; }
