/*
Theme Name: JCG Wafu
Theme URI: https://example.org/jcg-wafu
Author: 一般社団法人 日本文化グローバル推進機構
Description: 一般社団法人 日本文化グローバル推進機構のためのバイリンガル（日本語／英語）和風テーマ。和紙の質感・紅・組紐（ロゴ由来の紺と金）を基調に、お知らせ／コラムのCMS運用、カスタマイザーからの画像差し替えに対応します。
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: jcg
Tags: two-columns, custom-menu, custom-logo, translation-ready, block-styles
*/

/* ============================================================
   0. Tokens
   ============================================================ */
:root{
  --paper:#FAF7F1;
  --paper-2:#F4EDE2;
  --card:#FFFDFA;
  --ink:#3B3226;
  --ink-strong:#2B2419;
  --body:#4E4536;
  --muted:#5C5243;
  --sub:#8C7357;
  --crimson:#A81028;
  --crimson-dark:#8E0C22;
  --crimson-light:#B71430;
  --gold:#B7791A;
  --gold-deep:#8C5E12;
  --navy:#021D65;
  --navy-soft:#1A3070;
  --taupe:#8C7357;
  --line:rgba(59,50,38,.14);
  --line-gold:rgba(183,121,26,.30);
  --mincho:'Zen Old Mincho','Hiragino Mincho ProN','Yu Mincho',serif;
  --gothic:'Zen Kaku Gothic New','Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;
  --latin:'Cormorant Garamond',Georgia,serif;
  --shell:1180px;
  --gutter:clamp(20px,4vw,48px);
  --header-h:102px;
  --paper-noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23p)' opacity='0.055'/%3E%3C/svg%3E");
}

/* ============================================================
   1. Reset & base
   ============================================================ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  padding-top:calc(var(--header-h) + 4px);
  color:var(--ink);
  background-color:var(--paper);
  background-image:var(--paper-noise);
  font-family:var(--gothic);
  font-size:16px;
  line-height:1.95;
  -webkit-font-smoothing:antialiased;
  text-wrap:pretty;
  overflow-wrap:anywhere;
}
body.jcg-lang-en{font-family:'Cormorant Garamond',Georgia,serif}
body.jcg-lang-en .u-gothic,body.jcg-lang-en .nav a,body.jcg-lang-en .btn,body.jcg-lang-en p,body.jcg-lang-en li,body.jcg-lang-en input,body.jcg-lang-en textarea,body.jcg-lang-en select{font-family:'Zen Kaku Gothic New',Helvetica,Arial,sans-serif}
h1,h2,h3,h4,h5,p,ul,ol,figure,dl,dd,blockquote{margin:0;padding:0}
ul,ol{list-style:none}
img{max-width:100%;height:auto;display:block}
a{color:var(--crimson);text-decoration:none;transition:color .18s ease}
a:hover{color:var(--crimson-dark)}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--crimson);color:#fff}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.skip-link{position:absolute;left:-9999px;top:0;z-index:200;background:var(--crimson-dark);color:#fff;padding:12px 20px}
.skip-link:focus{left:8px;top:8px;color:#fff}

/* ============================================================
   2. Layout primitives
   ============================================================ */
.container{max-width:var(--shell);margin:0 auto;padding:0 var(--gutter)}
.container--narrow{max-width:1000px}
.container--text{max-width:860px}
.section{padding:clamp(64px,8vw,120px) 0}
.section--tight{padding:clamp(48px,6vw,84px) 0}
.section--paper2{background:var(--paper-2)}
.section--taupe{position:relative;overflow:hidden;background:var(--taupe);color:#FFFDFA}
.section--taupe::before{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(105deg,rgba(255,253,250,.11) 0 1px,transparent 1px 34px),repeating-linear-gradient(-105deg,rgba(255,253,250,.07) 0 1px,transparent 1px 46px);pointer-events:none}
.section--taupe > *{position:relative}
.stack{display:flex;flex-direction:column}
.stack > * + *{margin-top:var(--gap,22px)}
.grid{display:grid;gap:clamp(16px,2vw,26px)}
.grid--2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.grid--3{grid-template-columns:repeat(auto-fit,minmax(268px,1fr))}
.grid--4{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}

/* braid rule — 組紐（ロゴ由来） */
.braid{height:4px;background:repeating-linear-gradient(115deg,var(--gold) 0 6px,rgba(183,121,26,.25) 6px 13px,var(--navy) 13px 19px,rgba(2,29,101,.2) 19px 26px)}
.braid--thin{height:2px;opacity:.7}

/* ============================================================
   3. Header
   ============================================================ */
.site-header{position:fixed;top:0;left:0;right:0;z-index:60;background:rgba(250,247,241,.94);backdrop-filter:blur(10px);border-bottom:1px solid rgba(59,50,38,.1)}
.header-inner{max-width:1280px;margin:0 auto;padding:0 clamp(16px,3vw,40px);height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand{display:flex;align-items:center}
.brand img{height:52px;width:auto}
.brand-text{display:flex;flex-direction:column;gap:2px}
.brand-text strong{font:600 17px/1.4 var(--mincho);letter-spacing:.1em;color:var(--navy)}
.brand-text span{font:400 10px/1.3 var(--latin);letter-spacing:.16em;color:var(--gold)}
.nav{display:flex;align-items:center;gap:clamp(12px,1.8vw,32px)}
.nav > ul{display:flex;align-items:center;gap:clamp(12px,1.8vw,30px)}
.nav li{position:relative}
.nav a{font-size:15px;letter-spacing:.09em;color:var(--ink);padding:10px 0;display:inline-flex;align-items:center;gap:7px;border-bottom:2px solid transparent}
.nav a:hover,.nav .current-menu-item > a,.nav .current_page_item > a,.nav a[aria-current="page"]{color:var(--crimson);border-bottom-color:var(--crimson)}
.nav .menu-item-has-children > a::after{content:"▼";font-size:8px;color:var(--gold)}
.nav .sub-menu{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(6px);margin-top:8px;min-width:262px;background:var(--card);border:1px solid var(--line-gold);box-shadow:0 18px 44px rgba(59,50,38,.16);padding:10px;display:flex;flex-direction:column;opacity:0;visibility:hidden;transition:opacity .18s ease,transform .18s ease}
.nav li:hover > .sub-menu,.nav li:focus-within > .sub-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.nav .sub-menu a{display:block;padding:12px 16px;font-size:14px;border-bottom:0}
.nav .sub-menu a:hover{background:var(--paper-2)}
.lang-switch{display:flex;align-items:center;border:1px solid var(--line-gold);background:rgba(255,255,255,.6)}
.lang-switch a{padding:7px 14px;font:500 12px/1 var(--latin);letter-spacing:.16em;color:var(--gold-deep);border-bottom:0}
.lang-switch a + a{border-left:1px solid var(--line-gold)}
.lang-switch a.is-active{background:var(--navy);color:#fff}
.nav-toggle{display:none;width:46px;height:46px;align-items:center;justify-content:center;border:1px solid var(--line-gold)}
.nav-toggle span{display:block;width:20px;height:1.5px;background:var(--ink);position:relative}
.nav-toggle span::before,.nav-toggle span::after{content:"";position:absolute;left:0;width:20px;height:1.5px;background:var(--ink)}
.nav-toggle span::before{top:-6px}
.nav-toggle span::after{top:6px}

/* ============================================================
   4. Buttons
   ============================================================ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:0 clamp(26px,3.4vw,44px);font-size:15px;font-weight:500;letter-spacing:.11em;border-radius:6px 999px 999px 6px;transition:filter .18s ease,background .18s ease,color .18s ease,border-color .18s ease;text-align:center}
.btn--sm{min-height:46px;padding:0 28px;font-size:14px}
.btn--primary{background:linear-gradient(180deg,var(--crimson-light),var(--crimson-dark));color:#fff;box-shadow:0 7px 20px rgba(124,11,30,.22)}
.btn--primary:hover{color:#fff;filter:brightness(1.08)}
.btn--outline{background:rgba(255,255,255,.72);color:var(--gold-deep);border:1px solid #C79B4C}
.btn--outline:hover{background:var(--card);color:var(--navy);border-color:var(--navy)}
.btn--onDark{background:rgba(255,253,250,.95);color:var(--crimson-dark)}
.btn--onDark:hover{background:#fff;color:var(--crimson-dark)}
.btn-row{display:flex;flex-wrap:wrap;gap:16px}
.btn-row--center{justify-content:center}

/* ============================================================
   5. Section headings
   ============================================================ */
.sec-head{display:flex;flex-direction:column;align-items:center;gap:13px;text-align:center;margin-bottom:clamp(32px,4.4vw,58px)}
.sec-head--left{align-items:flex-start;text-align:left}
.sec-mark{width:48px;opacity:.55}
.sec-kicker{font:500 12px/1 var(--latin);letter-spacing:.42em;text-transform:uppercase;color:var(--gold)}
.sec-title{font:600 clamp(25px,3.4vw,42px)/1.55 var(--mincho);letter-spacing:.16em;color:var(--ink-strong)}
.sec-title--wide{letter-spacing:.22em}
.sec-lead{max-width:760px;font-size:15px;line-height:2.2;letter-spacing:.04em;color:var(--muted)}
.section--taupe .sec-kicker{color:#E7D3AE}
.section--taupe .sec-title{color:#FFFDFA}
.section--taupe .sec-lead{color:#FDF6E9}
.prose{font-size:clamp(14px,1.45vw,16px);line-height:2.35;letter-spacing:.04em;color:var(--body)}
.prose > * + *{margin-top:22px}
.prose h2{font:600 clamp(21px,2.4vw,30px)/1.6 var(--mincho);letter-spacing:.12em;color:var(--ink-strong);margin-top:44px}
.prose h3{font:600 clamp(18px,2vw,23px)/1.7 var(--mincho);letter-spacing:.1em;color:var(--ink-strong);margin-top:36px}
.prose ul{display:flex;flex-direction:column;gap:8px}
.prose ul li{display:flex;gap:10px;align-items:baseline}
.prose ul li::before{content:"◆";color:var(--gold);font-size:9px;flex:none;transform:translateY(-2px)}
.prose blockquote{border-left:2px solid var(--gold);padding:6px 0 6px 20px;font-family:var(--mincho);letter-spacing:.08em}
.prose img{margin:8px 0}
.prose a{text-decoration:underline;text-underline-offset:3px}
.lede{font:600 clamp(17px,2vw,23px)/2 var(--mincho);letter-spacing:.1em;color:var(--ink-strong)}

/* ============================================================
   6. Hero (front page)
   ============================================================ */
.hero{position:relative;overflow:hidden;padding:clamp(64px,9vw,128px) 0 clamp(56px,7vw,100px)}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 0%,rgba(255,255,255,.92) 0%,rgba(250,247,241,0) 62%)}
.hero::after{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(70deg,rgba(183,121,26,.09) 0 1px,transparent 1px 46px);opacity:.7}
.hero-inner{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:clamp(20px,3vw,32px)}
.hero-emblem{width:clamp(72px,8vw,104px)}
.hero-en{font:500 clamp(10px,1.1vw,13px)/1.6 var(--latin);letter-spacing:.4em;text-transform:uppercase;color:var(--gold)}
.hero-title{font:600 clamp(32px,5.4vw,72px)/1.42 var(--mincho);letter-spacing:.13em;color:var(--ink-strong)}
.hero-drop{width:1px;height:44px;background:linear-gradient(180deg,var(--gold),rgba(183,121,26,0))}
.hero-lead{font-size:clamp(15px,1.5vw,18px);line-height:2.3;letter-spacing:.06em;color:var(--muted)}
.hero-tagline{font:italic 400 clamp(15px,1.7vw,21px)/1.6 var(--latin);letter-spacing:.09em;color:var(--navy)}
.hero-media{position:relative;width:100%;margin-top:8px;border:1px solid var(--line-gold)}
.wave-band{position:relative;height:clamp(120px,15vw,210px);overflow:hidden;background:linear-gradient(180deg,rgba(250,247,241,0),rgba(244,237,226,.85))}
.wave-band::after{content:"";position:absolute;left:0;right:0;bottom:0;height:170%;background-image:repeating-radial-gradient(120% 120% at 20% 120%,rgba(183,121,26,.16) 0 1px,transparent 1px 22px),repeating-radial-gradient(140% 140% at 78% 130%,rgba(2,29,101,.09) 0 1px,transparent 1px 30px)}

/* page hero (inner pages) */
.page-hero{position:relative;overflow:hidden;padding:clamp(48px,6vw,86px) 0 clamp(40px,5vw,68px);background:var(--paper-2)}
.page-hero::after{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(70deg,rgba(183,121,26,.1) 0 1px,transparent 1px 40px);pointer-events:none}
.page-hero-inner{position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}
.page-hero h1{font:600 clamp(27px,4vw,50px)/1.5 var(--mincho);letter-spacing:.2em;color:var(--ink-strong)}
.page-hero .page-hero-sub{font-size:clamp(14px,1.5vw,17px);line-height:2.1;letter-spacing:.06em;color:var(--muted);max-width:780px}
.page-hero-figure{margin-top:clamp(24px,3vw,40px);border:1px solid var(--line-gold)}
.breadcrumb{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-size:12px;letter-spacing:.08em;color:var(--sub);justify-content:center}
.breadcrumb a{color:var(--sub)}
.breadcrumb a:hover{color:var(--crimson)}
.breadcrumb span[aria-hidden]{opacity:.5}

/* ============================================================
   7. Placeholder media (画像未設定時)
   ============================================================ */
.ph{position:relative;display:flex;align-items:center;justify-content:center;padding:18px;background:repeating-linear-gradient(45deg,#EFE7DA 0 9px,#F7F1E7 9px 18px);border:1px solid rgba(59,50,38,.09)}
.ph-note{font:11px/1.9 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.09em;color:#9A8B76;text-align:center}
.ratio-43{aspect-ratio:4/3}
.ratio-11{aspect-ratio:1/1}
.ratio-34{aspect-ratio:3/4}
.ratio-169{aspect-ratio:16/9}
.ratio-219{aspect-ratio:21/9}
.media-cover{width:100%;height:100%;object-fit:cover}
figure.media{position:relative;overflow:hidden}
figure.media img{width:100%;height:100%;object-fit:cover}

/* ============================================================
   8. News list
   ============================================================ */
.news-list{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.news-item{display:grid;grid-template-columns:minmax(0,auto) minmax(0,auto) 1fr 28px;align-items:center;gap:clamp(12px,2.4vw,30px);padding:clamp(18px,2.4vw,28px) 6px;border-bottom:1px solid var(--line);color:var(--ink)}
.news-item:hover{background:rgba(255,255,255,.6);color:var(--crimson)}
.news-date{font:400 15px/1 var(--latin);letter-spacing:.14em;color:var(--sub);white-space:nowrap}
.news-cat{justify-self:start;min-width:96px;text-align:center;padding:5px 14px;font-size:12px;letter-spacing:.1em;color:var(--crimson-dark);border:1px solid rgba(168,16,40,.35);background:rgba(255,255,255,.7);white-space:nowrap}
.news-cat--gold{color:var(--gold-deep);border-color:rgba(183,121,26,.4)}
.news-cat--navy{color:var(--navy-soft);border-color:rgba(2,29,101,.3)}
.news-title{font-size:clamp(14px,1.5vw,17px);letter-spacing:.04em;line-height:1.7}
.news-arrow{justify-self:end;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--crimson-dark);color:#fff;font-size:11px;flex:none}

/* ============================================================
   9. Cycle / steps
   ============================================================ */
.cycle{display:grid;grid-template-columns:repeat(auto-fit,minmax(174px,1fr));gap:clamp(10px,1.6vw,20px)}
.cycle-item{background:rgba(255,253,250,.94);border-top:3px solid var(--gold);padding:24px 18px;display:flex;flex-direction:column;gap:12px;align-items:center;text-align:center}
.cycle-item:last-child{border-top-color:var(--crimson-dark)}
.cycle-num{font:400 13px/1 var(--latin);letter-spacing:.2em;color:var(--gold)}
.cycle-item:last-child .cycle-num{color:var(--crimson-dark)}
.cycle-label{font:600 clamp(15px,1.5vw,17px)/1.7 var(--mincho);letter-spacing:.09em;color:var(--ink-strong)}
.steps{display:flex;flex-direction:column;counter-reset:step}
.step{display:grid;grid-template-columns:64px 1fr;gap:clamp(16px,2vw,28px);padding:clamp(20px,2.4vw,30px) 0;border-bottom:1px solid var(--line)}
.step:first-child{border-top:1px solid var(--line)}
.step-num{font:400 clamp(24px,3vw,34px)/1 var(--latin);letter-spacing:.06em;color:var(--gold)}
.step h3{font:600 clamp(17px,1.9vw,21px)/1.7 var(--mincho);letter-spacing:.1em;color:var(--ink-strong)}
.step p{font-size:14.5px;line-height:2.1;letter-spacing:.04em;color:var(--muted);margin-top:6px}

/* ============================================================
   10. Cards
   ============================================================ */
.act-card{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));background:var(--card);border:1px solid rgba(183,121,26,.28);box-shadow:0 14px 38px rgba(59,50,38,.07)}
.act-card > .media{min-height:300px}
.act-card--flip .act-body{order:-1}
.act-body{padding:clamp(26px,3.4vw,48px);display:flex;flex-direction:column;gap:17px}
.act-eyebrow{display:flex;align-items:baseline;gap:14px}
.act-num{font:400 clamp(28px,3.2vw,40px)/1 var(--latin);color:var(--gold)}
.act-kind{font-size:12px;letter-spacing:.2em;color:var(--sub)}
.act-body h3{font:600 clamp(23px,2.8vw,34px)/1.4 var(--mincho);letter-spacing:.12em;color:var(--ink-strong)}
.act-body p{font-size:15px;line-height:2.2;letter-spacing:.04em;color:var(--body)}
.bullets{display:grid;grid-template-columns:repeat(auto-fit,minmax(186px,1fr));gap:8px 20px;padding-top:8px;border-top:1px solid var(--line)}
.bullets li{display:flex;gap:10px;align-items:baseline;font-size:14px;letter-spacing:.04em;color:var(--muted)}
.bullets li::before{content:"◆";color:var(--gold);font-size:9px;flex:none;transform:translateY(-2px)}
.feature-card{background:var(--card);padding:clamp(24px,3vw,36px) clamp(20px,2.4vw,30px);display:flex;flex-direction:column;gap:13px;border-bottom:3px solid var(--gold)}
.feature-card:last-child{border-bottom-color:var(--crimson-dark)}
.feature-card h3{font:600 clamp(18px,2.1vw,24px)/1.5 var(--mincho);letter-spacing:.13em;color:var(--ink-strong)}
.feature-card p{font-size:14px;line-height:2.1;letter-spacing:.04em;color:var(--muted)}
.member-card{background:var(--card);border:1px solid rgba(183,121,26,.25);display:flex;flex-direction:column}
.member-body{padding:24px 22px 28px;display:flex;flex-direction:column;gap:11px}
.role-tag{align-self:flex-start;padding:4px 14px;font-size:11px;letter-spacing:.14em;color:var(--crimson-dark);border:1px solid rgba(168,16,40,.3)}
.role-tag--gold{color:var(--gold-deep);border-color:rgba(183,121,26,.4)}
.role-tag--navy{color:var(--navy-soft);border-color:rgba(2,29,101,.3)}
.member-card h3{font:600 21px/1.6 var(--mincho);letter-spacing:.16em;color:var(--ink-strong)}
.member-card p{font-size:13.5px;line-height:2.1;letter-spacing:.03em;color:var(--muted)}

/* column / article cards */
.post-card{display:flex;flex-direction:column;background:var(--card);border:1px solid rgba(183,121,26,.22);transition:transform .2s ease,box-shadow .2s ease}
.post-card:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(59,50,38,.12)}
.post-card .media{aspect-ratio:16/10}
.post-card-body{padding:22px 22px 26px;display:flex;flex-direction:column;gap:11px;flex:1}
.post-card time{font:400 13px/1 var(--latin);letter-spacing:.14em;color:var(--sub)}
.post-card h3{font:600 clamp(16px,1.7vw,19px)/1.8 var(--mincho);letter-spacing:.07em;color:var(--ink-strong)}
.post-card p{font-size:13.5px;line-height:2;letter-spacing:.03em;color:var(--muted)}
.chip{align-self:flex-start;padding:4px 12px;font-size:11px;letter-spacing:.1em;color:var(--gold-deep);background:rgba(183,121,26,.1);border:1px solid rgba(183,121,26,.28)}
.tag-cloud{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:clamp(26px,3vw,40px)}
.tag-cloud a{padding:8px 20px;font-size:13px;letter-spacing:.08em;color:var(--muted);border:1px solid var(--line);background:rgba(255,255,255,.6)}
.tag-cloud a:hover,.tag-cloud a.is-active{color:#fff;background:var(--crimson-dark);border-color:var(--crimson-dark)}

/* ============================================================
   11. Tables / info
   ============================================================ */
.info-table{width:100%;border-collapse:collapse;background:var(--card)}
.info-table th,.info-table td{padding:clamp(14px,1.8vw,20px) clamp(14px,2vw,26px);border-bottom:1px solid var(--line);font-size:14.5px;line-height:2;letter-spacing:.04em;text-align:left;vertical-align:top}
.info-table th{width:clamp(120px,22%,220px);font-weight:500;color:var(--ink-strong);background:rgba(244,237,226,.7);white-space:nowrap}
.info-table td{color:var(--muted)}
.value-list{display:grid;gap:2px;background:var(--line-gold)}
.value-item{background:var(--card);padding:clamp(22px,2.6vw,32px);display:flex;flex-direction:column;gap:10px}
.value-item h3{font:600 clamp(17px,1.9vw,21px)/1.7 var(--mincho);letter-spacing:.12em;color:var(--ink-strong)}
.value-item p{font-size:14px;line-height:2.1;color:var(--muted)}
.mv-block{display:grid;gap:2px;background:var(--line-gold);margin-bottom:clamp(26px,3vw,42px)}
.mv-item{background:var(--card);padding:clamp(26px,3vw,40px);display:flex;flex-direction:column;gap:12px}
.mv-item .mv-label{font:500 12px/1 var(--latin);letter-spacing:.34em;text-transform:uppercase;color:var(--gold)}
.mv-item p{font:600 clamp(16px,1.9vw,22px)/2 var(--mincho);letter-spacing:.1em;color:var(--ink-strong)}
.mv-item .mv-note{font-family:var(--gothic);font-weight:400;font-size:14px;line-height:2.1;letter-spacing:.04em;color:var(--muted)}

/* ============================================================
   12. Message / quote band
   ============================================================ */
.msg-grid{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:clamp(28px,4vw,56px);align-items:start}
.msg-sign{border-left:2px solid var(--gold);padding-left:16px;margin-top:16px}
.msg-sign span{font-size:12px;letter-spacing:.14em;color:var(--sub);display:block}
.msg-sign strong{font:600 21px/1.6 var(--mincho);letter-spacing:.16em;color:var(--ink-strong)}
.pledge{display:flex;flex-direction:column;gap:10px;padding:22px 0;border-top:1px solid var(--line-gold);border-bottom:1px solid var(--line-gold)}
.pledge li{display:flex;gap:12px;align-items:baseline;font:600 clamp(15px,1.6vw,18px)/1.9 var(--mincho);letter-spacing:.08em;color:var(--ink-strong)}
.pledge li::before{content:"●";color:var(--crimson-dark);font-size:9px;flex:none;transform:translateY(-3px)}
.emphasis{text-align:center;font:600 clamp(16px,1.8vw,21px)/2.2 var(--mincho);letter-spacing:.1em;color:var(--ink)}

/* ============================================================
   13. Contact form
   ============================================================ */
.form{display:flex;flex-direction:column;gap:clamp(18px,2.2vw,26px);background:var(--card);border:1px solid var(--line-gold);padding:clamp(24px,3.4vw,48px)}
.field{display:flex;flex-direction:column;gap:9px}
.field > label{font-size:13.5px;letter-spacing:.1em;color:var(--ink-strong);display:flex;align-items:center;gap:9px}
.req{font-size:10.5px;letter-spacing:.1em;color:#fff;background:var(--crimson-dark);padding:3px 8px}
.opt{font-size:10.5px;letter-spacing:.1em;color:var(--sub);border:1px solid var(--line);padding:2px 8px}
.input,.textarea,.select{width:100%;padding:14px 16px;background:#FFFEFC;border:1px solid var(--line);font-size:15px;letter-spacing:.03em;transition:border-color .18s ease,box-shadow .18s ease}
.input:focus,.textarea:focus,.select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(183,121,26,.14)}
.textarea{min-height:176px;line-height:2;resize:vertical}
.field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:clamp(16px,2vw,24px)}
.consent{display:flex;gap:12px;align-items:flex-start;font-size:13.5px;line-height:2;color:var(--muted)}
.consent input{margin-top:7px;accent-color:var(--crimson-dark);width:18px;height:18px;flex:none}
.form-note{font-size:12.5px;line-height:2;letter-spacing:.03em;color:var(--sub)}
.contact-aside{display:flex;flex-direction:column;gap:18px}
.contact-card{background:rgba(255,255,255,.7);border:1px solid var(--line-gold);padding:clamp(22px,2.6vw,30px);display:flex;flex-direction:column;gap:10px}
.contact-card h3{font:600 17px/1.7 var(--mincho);letter-spacing:.12em;color:var(--ink-strong)}
.contact-card p,.contact-card li{font-size:13.5px;line-height:2.1;color:var(--muted)}
.contact-card ul{display:flex;flex-direction:column;gap:6px}
.contact-card ul li{display:flex;gap:9px;align-items:baseline}
.contact-card ul li::before{content:"◆";color:var(--gold);font-size:8px;flex:none;transform:translateY(-2px)}

/* ============================================================
   14. CTA band
   ============================================================ */
.cta-band{position:relative;overflow:hidden;padding:clamp(52px,7vw,96px) 0;background:linear-gradient(180deg,#8E0C22,#6E0718);color:#fff;text-align:center}
.cta-band::after{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(115deg,rgba(255,255,255,.09) 0 1px,transparent 1px 30px);pointer-events:none}
.cta-band > .container{position:relative;display:flex;flex-direction:column;align-items:center;gap:18px}
.cta-band h2{font:600 clamp(22px,3vw,36px)/1.6 var(--mincho);letter-spacing:.16em}
.cta-band p{font-size:15px;line-height:2.2;letter-spacing:.05em;color:rgba(255,255,255,.9);max-width:760px}

/* ============================================================
   15. Pagination / single post
   ============================================================ */
.pagination{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:clamp(30px,4vw,52px)}
.pagination .page-numbers{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0 12px;font:400 14px/1 var(--latin);letter-spacing:.1em;color:var(--muted);border:1px solid var(--line);background:rgba(255,255,255,.6)}
.pagination .page-numbers:hover,.pagination .page-numbers.current{color:#fff;background:var(--crimson-dark);border-color:var(--crimson-dark)}
.entry{background:var(--card);border:1px solid var(--line-gold);padding:clamp(26px,4vw,64px)}
.entry-head{display:flex;flex-direction:column;gap:14px;padding-bottom:clamp(22px,3vw,34px);margin-bottom:clamp(26px,3.4vw,42px);border-bottom:1px solid var(--line)}
.entry-meta{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.entry-head h1{font:600 clamp(22px,3vw,36px)/1.7 var(--mincho);letter-spacing:.1em;color:var(--ink-strong)}
.entry-nav{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;margin-top:clamp(28px,3.4vw,44px)}
.entry-nav a{font-size:14px;letter-spacing:.06em}
.share-row{display:flex;gap:10px;align-items:center;margin-top:24px;font-size:12px;letter-spacing:.1em;color:var(--sub)}

/* ============================================================
   16. Footer
   ============================================================ */
.site-footer{position:relative;overflow:hidden;background:var(--taupe);color:#F7EFE2;padding:clamp(48px,6vw,84px) 0 36px;margin-top:0}
.site-footer::before{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(105deg,rgba(255,253,250,.1) 0 1px,transparent 1px 38px),repeating-linear-gradient(-105deg,rgba(255,253,250,.06) 0 1px,transparent 1px 52px);pointer-events:none}
.site-footer > *{position:relative}
.footer-grid{display:grid;grid-template-columns:minmax(260px,1.2fr) repeat(auto-fit,minmax(160px,1fr));gap:clamp(28px,4vw,52px)}
/* 濃色のフッター上でロゴを守る：白抜き版が未設定のときは
   紺と金をそのまま活かせる白いプレートに載せる */
.footer-brand-logo{display:inline-block}
.footer-brand-logo img{height:56px;width:auto;display:block}
.footer-brand-logo--plate{background:var(--card);padding:16px 22px;box-shadow:0 6px 18px rgba(59,50,38,.18)}
.footer-brand-logo--reversed img{height:64px;opacity:.96}
.footer-brand p{font-size:13px;line-height:2.1;letter-spacing:.04em;color:rgba(247,239,226,.82);margin-top:18px}
.footer-col h3{font:500 12px/1 var(--latin);letter-spacing:.3em;text-transform:uppercase;color:#E7D3AE;margin-bottom:16px}
.footer-col ul{display:flex;flex-direction:column;gap:10px}
.footer-col a{font-size:14px;letter-spacing:.05em;color:rgba(247,239,226,.9)}
.footer-col a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.footer-social{display:flex;gap:12px;margin-top:18px}
.footer-social a{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(247,239,226,.4);color:rgba(247,239,226,.9);font-size:11px;letter-spacing:.06em}
.footer-social a:hover{background:rgba(247,239,226,.14);color:#fff}
.footer-bottom{margin-top:clamp(34px,4vw,54px);padding-top:24px;border-top:1px solid rgba(247,239,226,.24);display:flex;flex-wrap:wrap;gap:14px 28px;justify-content:space-between;align-items:center}
.footer-bottom nav{display:flex;flex-wrap:wrap;gap:12px 24px}
.footer-bottom a{font-size:12.5px;letter-spacing:.06em;color:rgba(247,239,226,.85)}
.footer-bottom small{font:400 12px/1.9 var(--latin);letter-spacing:.08em;color:rgba(247,239,226,.7)}

.to-top{position:fixed;right:clamp(14px,2vw,28px);bottom:clamp(14px,2vw,28px);z-index:50;width:52px;height:52px;border-radius:50%;background:var(--crimson-dark);color:#fff;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 8px 22px rgba(110,7,24,.32);opacity:0;visibility:hidden;transition:opacity .22s ease}
.to-top.is-visible{opacity:1;visibility:visible}
.to-top:hover{color:#fff;filter:brightness(1.1)}

/* ============================================================
   17. Responsive
   ============================================================ */
@media (max-width:1180px){
  .nav > ul{gap:16px}
  .nav a{font-size:14px}
}
@media (max-width:1000px){
  :root{--header-h:76px}
  .brand img{height:40px}
  .nav-toggle{display:inline-flex}
  .nav{position:fixed;top:var(--header-h);left:0;right:0;bottom:0;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;padding:24px var(--gutter) 60px;background:rgba(250,247,241,.985);backdrop-filter:blur(12px);overflow-y:auto;transform:translateY(-12px);opacity:0;visibility:hidden;transition:opacity .2s ease,transform .2s ease}
  body.jcg-nav-open .nav{opacity:1;visibility:visible;transform:none}
  .nav > ul{flex-direction:column;align-items:stretch;gap:0}
  .nav > ul > li{border-bottom:1px solid var(--line)}
  .nav a{padding:18px 4px;font-size:16px;border-bottom:0;justify-content:space-between}
  .nav .sub-menu{position:static;transform:none;opacity:1;visibility:visible;min-width:0;margin:0 0 12px;border:0;box-shadow:none;background:rgba(244,237,226,.7);padding:4px}
  .nav .sub-menu a{padding:14px 16px;font-size:14px}
  .lang-switch{align-self:flex-start;margin-top:22px}
  .msg-grid{grid-template-columns:1fr}
  .act-card--flip .act-body{order:0}
}
@media (max-width:720px){
  body{font-size:15px}
  .news-item{grid-template-columns:1fr 28px;gap:8px 14px;padding:18px 4px}
  .news-date{grid-column:1}
  .news-cat{grid-column:1;grid-row:2}
  .news-title{grid-column:1;grid-row:3}
  .news-arrow{grid-column:2;grid-row:1/4;align-self:center}
  .info-table th,.info-table td{display:block;width:100%}
  .info-table th{border-bottom:0}
  .step{grid-template-columns:44px 1fr}
  .footer-grid{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column;align-items:flex-start}
  .btn{width:100%}
  .btn-row{flex-direction:column}
}

/* ============================================================
   18. WordPress core / editor classes
   ============================================================ */
.alignleft{float:left;margin:6px 28px 22px 0}
.alignright{float:right;margin:6px 0 22px 28px}
.aligncenter{margin-left:auto;margin-right:auto}
.wp-caption{max-width:100%}
.wp-caption-text,figcaption{font-size:12.5px;letter-spacing:.05em;color:var(--sub);margin-top:8px}
.sticky,.gallery-caption,.bypostauthor{display:block}
.wp-block-image img{height:auto}
.wp-block-quote{border-left:2px solid var(--gold);padding-left:20px;font-family:var(--mincho)}
@media print{
  .site-header,.site-footer,.to-top,.nav-toggle{display:none!important}
  body{padding-top:0;background:#fff}
}
