/*
Theme Name: Fukuoka Katsuryoku Souzou Kyoukai
Theme URI:
Description: 一般社団法人ふくおか活力創造協会 公式サイトテーマ（Google Ad Grants 審査対応）
Version: 1.3.0
Author: LocalAd LLC
Author URI: https://local-ad.co.jp
License: Private
Text Domain: fks-kyokai
*/

*{margin:0;padding:0;box-sizing:border-box;}
:root{
  --navy:#1d3450;      /* 基調：信頼の紺 */
  --navy-d:#14263c;
  --aka:#b5432a;       /* 差し色：あたたかい朱 */
  --aka-d:#9c3721;
  --kin:#c9a24b;       /* 補助：金茶 */
  --kinari:#faf7f1;    /* 地：生成り */
  --shiro:#ffffff;
  --sumi:#2b2b2b;
  --hon:#3d4046;       /* 本文 */
  --hai:#6b7280;
  --line:#e4ddd0;
}
html{scroll-behavior:smooth;scroll-padding-top:88px;}
body{font-family:"Noto Sans JP",sans-serif;color:var(--sumi);background:var(--kinari);line-height:2;font-size:15.5px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
h1,h2,h3,.serif{font-family:"Noto Serif JP",serif;font-weight:600;}
img{max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
ol,ul{list-style:none;}
::selection{background:rgba(181,67,42,.15);}

/* アクセシビリティ：キーボード操作時のみフォーカスリング */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{
  outline:2px solid var(--aka);outline-offset:3px;border-radius:2px;
}

.wrap{max-width:1040px;margin:0 auto;padding:0 24px;}

/* ===== ヘッダー ===== */
header{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(250,247,241,.93);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
.hd-in{max-width:1120px;margin:0 auto;padding:0 24px;height:72px;display:flex;align-items:center;justify-content:space-between;gap:16px;}
.brand{display:flex;flex-direction:column;line-height:1.35;}
.brand .b-sub{font-size:10.5px;letter-spacing:.18em;color:var(--hai);}
.brand .b-name{font-family:"Noto Serif JP",serif;font-size:17px;font-weight:600;color:var(--navy);letter-spacing:.06em;}
nav{display:flex;gap:26px;align-items:center;}
nav a{font-size:13.5px;letter-spacing:.08em;color:var(--navy);padding:6px 0;border-bottom:2px solid transparent;transition:color .2s,border-color .2s;}
nav a:hover{border-bottom-color:var(--aka);color:var(--aka);}
nav a.cta{background:var(--aka);color:#fff;padding:9px 20px;border-radius:3px;border:none;letter-spacing:.1em;transition:background .2s;}
nav a.cta:hover{background:var(--aka-d);border-bottom-color:transparent;color:#fff;}
.menu-btn{display:none;}

/* ===== ヒーロー ===== */
.hero{position:relative;padding:168px 0 108px;background:linear-gradient(160deg,var(--navy) 0%,var(--navy-d) 62%,#0e1c2e 100%);color:#fff;overflow:hidden;}
.hero::after{content:"";position:absolute;right:-140px;top:-140px;width:520px;height:520px;border-radius:50%;border:1px solid rgba(201,162,75,.32);}
.hero::before{content:"";position:absolute;right:-60px;top:-60px;width:360px;height:360px;border-radius:50%;border:1px solid rgba(201,162,75,.2);}
.hero .wrap{position:relative;z-index:2;}
.badge{display:inline-block;border:1px solid rgba(255,255,255,.5);padding:5px 18px;font-size:12.5px;letter-spacing:.3em;margin-bottom:28px;}
.hero h1{font-size:clamp(26px,4.6vw,44px);line-height:1.62;letter-spacing:.08em;font-weight:600;}
.hero h1 .aka{color:#e8b88a;}
.hero .lede{margin-top:26px;font-size:15.5px;line-height:2.2;color:rgba(255,255,255,.85);max-width:660px;}
.hero .name{margin-top:36px;padding-top:24px;border-top:1px solid rgba(201,162,75,.3);display:inline-block;font-family:"Noto Serif JP",serif;font-size:14px;letter-spacing:.2em;color:var(--kin);}

/* ===== 共通見出し ===== */
section{padding:96px 0;}
.sec-head{text-align:center;margin-bottom:56px;}
.sec-head .en{font-size:11.5px;letter-spacing:.34em;color:var(--aka);display:block;margin-bottom:10px;}
.sec-head h2{font-size:clamp(22px,3.2vw,30px);color:var(--navy);letter-spacing:.12em;}
.sec-head .bar{width:44px;height:2px;background:var(--kin);margin:18px auto 0;}

/* ===== 設立趣旨・ミッション・ビジョン（最重要ブロック） ===== */
#purpose{background:var(--shiro);}
.purpose-box{max-width:820px;margin:0 auto;background:var(--kinari);border:1px solid var(--line);border-top:3px solid var(--aka);padding:48px 54px;}
.purpose-box p{font-size:15px;line-height:2.25;text-align:justify;color:var(--hon);}
.purpose-box p + p{margin-top:1.2em;}
.mv{display:grid;grid-template-columns:1fr 1fr;gap:28px;max-width:960px;margin:48px auto 0;}
.mv-card{background:var(--shiro);border:1px solid var(--line);padding:44px 40px;position:relative;}
.mv-card::before{content:"";position:absolute;top:0;left:0;width:100%;height:3px;background:var(--navy);}
.mv-card.vision::before{background:var(--kin);}
.mv-card .tag{font-size:11.5px;letter-spacing:.3em;color:var(--aka);display:block;margin-bottom:16px;}
.mv-card h3{font-size:19px;line-height:1.9;color:var(--navy);letter-spacing:.06em;margin-bottom:18px;}
.mv-card p{font-size:14.5px;line-height:2.1;color:var(--hon);text-align:justify;}

/* ===== 活動内容 ===== */
#activity{background:var(--kinari);}
.act-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.act-card{background:var(--shiro);border:1px solid var(--line);padding:38px 30px 34px;display:flex;flex-direction:column;transition:box-shadow .25s,transform .25s,border-color .25s;}
.act-card:hover{box-shadow:0 10px 30px rgba(29,52,80,.09);transform:translateY(-3px);border-color:#d8cfbc;}
.act-card .no{font-family:"Noto Serif JP",serif;font-size:13px;color:var(--kin);letter-spacing:.22em;display:block;margin-bottom:14px;}
/* 見出しが1行でも2行でも罫線位置を揃える */
.act-card h3{font-size:16.5px;color:var(--navy);letter-spacing:.06em;line-height:1.75;min-height:calc(1.75em * 2);margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--line);}
.act-card p{font-size:14px;line-height:2.05;color:var(--hon);text-align:justify;}
.act-note{max-width:780px;margin:44px auto 0;text-align:center;font-size:13.5px;color:var(--hai);line-height:2.1;}

/* ===== 法人概要 ===== */
#about{background:var(--shiro);}
.about-tbl{max-width:860px;margin:0 auto;border-top:1px solid var(--line);}
.about-tbl dl{display:grid;grid-template-columns:210px 1fr;border-bottom:1px solid var(--line);}
/* 項目名は上揃え＝事業内容のような複数行でもラベルが行頭に並ぶ */
.about-tbl dt{background:var(--kinari);padding:20px 26px;font-size:13.5px;font-weight:700;color:var(--navy);letter-spacing:.1em;line-height:1.95;}
.about-tbl dd{padding:20px 26px;font-size:14.5px;line-height:1.95;color:var(--hon);}
.about-tbl dd small{display:inline-block;color:var(--hai);font-size:12.5px;letter-spacing:.08em;margin-top:2px;}
.about-tbl dd a{color:var(--aka);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;}
.about-tbl dd a:hover{color:var(--aka-d);}
.biz-list{counter-reset:biz;margin:2px 0;}
.biz-list li{counter-increment:biz;position:relative;padding-left:2.4em;font-size:14px;line-height:1.95;}
.biz-list li + li{margin-top:.5em;}
.biz-list li::before{content:"(" counter(biz) ")";position:absolute;left:0;top:0;color:var(--kin);font-family:"Noto Serif JP",serif;font-size:13px;letter-spacing:.02em;}

/* ===== お問い合わせ ===== */
#contact{background:linear-gradient(160deg,var(--navy) 0%,var(--navy-d) 100%);color:#fff;}
#contact .sec-head h2{color:#fff;}
#contact .sec-head .en{color:var(--kin);}
.contact-lede{text-align:center;font-size:14.5px;line-height:2.2;color:rgba(255,255,255,.82);max-width:660px;margin:-20px auto 46px;}
.form-box{max-width:640px;margin:0 auto;background:#fff;padding:50px 52px;color:var(--sumi);}
.f-row{margin-bottom:22px;}
.f-row label{display:block;font-size:13px;font-weight:700;color:var(--navy);letter-spacing:.08em;margin-bottom:8px;}
.f-row label .req{color:var(--aka);font-size:11px;margin-left:8px;}
.f-row input,.f-row textarea{width:100%;border:1px solid #d5d0c4;background:var(--kinari);padding:13px 16px;font-size:15px;font-family:inherit;line-height:1.8;border-radius:2px;transition:border-color .2s,background .2s;}
.f-row input:focus,.f-row textarea:focus{outline:none;border-color:var(--navy);background:#fff;box-shadow:0 0 0 3px rgba(29,52,80,.08);}
.f-row textarea{height:150px;resize:vertical;}
.f-submit{display:block;width:100%;background:var(--aka);color:#fff;border:none;padding:16px;font-size:15.5px;font-weight:700;letter-spacing:.24em;cursor:pointer;border-radius:2px;font-family:inherit;transition:background .2s;}
.f-submit:hover{background:var(--aka-d);}
.f-note{font-size:12px;color:var(--hai);margin-top:14px;line-height:1.8;text-align:center;}

/* Contact Form 7：フォームの組み方に依存せず同じ見た目になるよう要素側にも当てる */
.form-box .wpcf7-form p{margin:0 0 22px;}
.form-box .wpcf7-form label{display:block;font-size:13px;font-weight:700;color:var(--navy);letter-spacing:.08em;line-height:1.9;}
.form-box .wpcf7-form-control-wrap{display:block;margin-top:8px;}
.form-box input[type="text"],
.form-box input[type="email"],
.form-box input[type="tel"],
.form-box input[type="url"],
.form-box textarea{width:100%;border:1px solid #d5d0c4;background:var(--kinari);padding:13px 16px;font-size:15px;font-family:inherit;line-height:1.8;border-radius:2px;transition:border-color .2s,background .2s;}
.form-box input[type="text"]:focus,
.form-box input[type="email"]:focus,
.form-box input[type="tel"]:focus,
.form-box input[type="url"]:focus,
.form-box textarea:focus{outline:none;border-color:var(--navy);background:#fff;box-shadow:0 0 0 3px rgba(29,52,80,.08);}
.form-box textarea{height:150px;resize:vertical;}
.form-box input[type="submit"]{display:block;width:100%;background:var(--aka);color:#fff;border:none;padding:16px;font-size:15.5px;font-weight:700;letter-spacing:.24em;cursor:pointer;border-radius:2px;font-family:inherit;transition:background .2s;-webkit-appearance:none;appearance:none;}
.form-box input[type="submit"]:hover{background:var(--aka-d);}
.form-box .wpcf7-form p:last-of-type{margin-bottom:0;}
/* .f-row で組んだ場合、CF7 が自動挿入する p・br の余白を打ち消す */
.form-box .f-row p{margin:0;}
.form-box .f-row br{display:none;}
.form-box .f-row .wpcf7-form-control-wrap{margin-top:0;}
.form-box .f-row label{margin-bottom:8px;line-height:1.9;}
.form-box .wpcf7-spinner{display:block;margin:10px auto 0;}
.form-box .wpcf7-not-valid-tip{color:var(--aka);font-size:12.5px;margin-top:6px;line-height:1.7;font-weight:400;}
.form-box .wpcf7-response-output{margin:20px 0 0!important;padding:14px 18px!important;font-size:13.5px;line-height:1.9;border-width:1px!important;border-radius:2px;}
.form-box .screen-reader-response{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}

/* ===== プライバシーポリシー ===== */
#privacy{background:var(--kinari);padding:80px 0;}
.pp-box{max-width:820px;margin:0 auto;background:var(--shiro);border:1px solid var(--line);padding:46px 48px;}
.pp-box h3{font-size:15px;color:var(--navy);letter-spacing:.1em;margin:28px 0 8px;padding-left:12px;border-left:3px solid var(--kin);}
.pp-box h3:first-of-type{margin-top:0;}
.pp-box p{font-size:13.5px;line-height:2.05;color:var(--hon);text-align:justify;}
.pp-box .pp-date{margin-top:28px;padding-top:20px;border-top:1px solid var(--line);font-size:12.5px;color:var(--hai);text-align:right;}

/* ===== フッター ===== */
footer{background:var(--navy-d);color:rgba(255,255,255,.75);padding:52px 0 40px;text-align:center;}
footer .f-name{font-family:"Noto Serif JP",serif;font-size:16px;color:#fff;letter-spacing:.14em;margin-bottom:10px;}
footer .f-ad{font-size:12.5px;letter-spacing:.06em;}
footer .f-no{font-size:12px;letter-spacing:.06em;color:rgba(255,255,255,.55);margin-top:4px;}
.f-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 26px;margin-top:28px;padding-top:26px;border-top:1px solid rgba(255,255,255,.12);}
.f-nav a{font-size:12.5px;letter-spacing:.08em;color:rgba(255,255,255,.72);transition:color .2s;}
.f-nav a:hover{color:var(--kin);}
footer .cp{margin-top:26px;font-size:11.5px;color:rgba(255,255,255,.42);letter-spacing:.08em;}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .act-card:hover{transform:none;}
}

/* ===== レスポンシブ ===== */
@media(max-width:980px){
  .act-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:860px){
  .hd-in{height:64px;}
  nav{position:fixed;top:64px;left:0;right:0;background:var(--kinari);flex-direction:column;gap:0;border-bottom:1px solid var(--line);max-height:0;overflow:hidden;transition:max-height .3s;}
  nav.open{max-height:420px;}
  nav a{padding:15px 24px;width:100%;border-bottom:1px solid var(--line);}
  nav a.cta{border-radius:0;text-align:center;}
  .menu-btn{display:block;background:none;border:none;cursor:pointer;width:30px;height:22px;position:relative;}
  .menu-btn span{position:absolute;left:0;width:100%;height:2px;background:var(--navy);transition:.25s;}
  .menu-btn span:nth-child(1){top:0;}.menu-btn span:nth-child(2){top:10px;}.menu-btn span:nth-child(3){top:20px;}
  .hero{padding:132px 0 76px;}
  .hero::after{right:-200px;top:-180px;}
  .hero::before{right:-140px;top:-110px;}
  .mv{grid-template-columns:1fr;gap:22px;}
  .act-grid{grid-template-columns:1fr;}
  .purpose-box{padding:34px 26px;}
  .mv-card{padding:34px 28px;}
  .about-tbl dl{grid-template-columns:1fr;}
  .about-tbl dt{padding:12px 20px;}
  .about-tbl dd{padding:14px 20px 20px;}
  .form-box{padding:36px 26px;}
  .pp-box{padding:34px 26px;}
  section{padding:68px 0;}
  #privacy{padding:68px 0;}
  html{scroll-padding-top:66px;}
  .f-nav{gap:12px 20px;}
  .post-head{padding:104px 0 34px;}
  .post-main{padding:40px 0 56px;}
  .post-body p,.post-body ul li,.post-body ol li{font-size:15px;}
  .post-body table th{white-space:normal;}
  .rep-grid{grid-template-columns:1fr;gap:20px;}
}
@media(max-width:420px){
  body{font-size:15px;}
  .badge{letter-spacing:.22em;font-size:11.5px;}
  .hero .name{letter-spacing:.14em;}
}


/* ===== 記事（投稿・固定ページ） ===== */
.post-head{background:var(--kinari);border-bottom:1px solid var(--line);padding:132px 0 44px;}
.post-head .wrap{max-width:820px;}
.post-head .cat{display:inline-block;font-size:11.5px;letter-spacing:.24em;color:var(--aka);border:1px solid var(--aka);padding:3px 14px;margin-bottom:18px;}
.post-head h1{font-size:clamp(21px,3.1vw,29px);line-height:1.75;color:var(--navy);letter-spacing:.06em;}
.post-head .date{margin-top:16px;font-size:12.5px;color:var(--hai);letter-spacing:.08em;}
.post-main{background:var(--shiro);padding:56px 0 72px;}
.post-body{max-width:820px;margin:0 auto;}
.post-body p{font-size:15.5px;line-height:2.15;color:var(--hon);margin-bottom:1.5em;text-align:justify;}
.post-body h2{font-size:clamp(18px,2.4vw,22px);color:var(--navy);letter-spacing:.08em;line-height:1.7;margin:2.4em 0 .9em;padding-bottom:14px;border-bottom:1px solid var(--line);position:relative;}
.post-body h2::after{content:"";position:absolute;left:0;bottom:-1px;width:52px;height:2px;background:var(--kin);}
.post-body h3{font-size:16.5px;color:var(--navy);letter-spacing:.06em;line-height:1.8;margin:2em 0 .7em;padding-left:13px;border-left:3px solid var(--kin);}
.post-body strong{font-weight:700;color:var(--navy);}
.post-body ul,.post-body ol{margin:0 0 1.5em;padding-left:0;}
.post-body ul li,.post-body ol li{font-size:15.5px;line-height:2.05;color:var(--hon);position:relative;padding-left:1.5em;margin-bottom:.5em;}
.post-body ul li::before{content:"";position:absolute;left:.35em;top:.95em;width:6px;height:6px;background:var(--kin);border-radius:50%;}
.post-body ol{counter-reset:pl;}
.post-body ol li{counter-increment:pl;}
.post-body ol li::before{content:counter(pl) ".";position:absolute;left:0;color:var(--kin);font-family:"Noto Serif JP",serif;}
.post-body blockquote{margin:0 0 1.6em;padding:22px 26px;background:var(--kinari);border-left:3px solid var(--navy);}
.post-body blockquote p{margin-bottom:0;font-size:14.5px;line-height:2.05;}
.post-body table{width:100%;border-collapse:collapse;margin:0 0 1.6em;border-top:1px solid var(--line);}
.post-body table th,.post-body table td{border-bottom:1px solid var(--line);padding:13px 16px;font-size:14px;line-height:1.85;text-align:left;vertical-align:top;}
.post-body table th{background:var(--kinari);color:var(--navy);font-weight:700;white-space:nowrap;}
.post-body hr{border:none;border-top:1px solid var(--line);margin:2.4em 0;}
.post-body a{color:var(--aka);text-decoration:underline;text-underline-offset:3px;}
.post-nav{max-width:820px;margin:52px auto 0;padding-top:28px;border-top:1px solid var(--line);display:flex;justify-content:center;}
.post-nav a{display:inline-block;font-size:13.5px;letter-spacing:.1em;color:var(--navy);border:1px solid var(--navy);padding:12px 34px;transition:background .2s,color .2s;}
.post-nav a:hover{background:var(--navy);color:#fff;}

/* 記事一覧 */
.arc-list{max-width:820px;margin:0 auto;}
.arc-item{border-bottom:1px solid var(--line);padding:28px 0;}
.arc-item:first-child{border-top:1px solid var(--line);}
.arc-item .date{font-size:12px;color:var(--hai);letter-spacing:.08em;}
.arc-item h2{font-size:18px;line-height:1.8;margin-top:8px;}
.arc-item h2 a{color:var(--navy);transition:color .2s;}
.arc-item h2 a:hover{color:var(--aka);}
.arc-item p{margin-top:10px;font-size:14px;line-height:2;color:var(--hon);}
.arc-more{display:inline-block;margin-top:12px;font-size:13px;color:var(--aka);letter-spacing:.06em;}

/* トップの活動報告セクション */
#report{background:var(--shiro);}
.rep-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;max-width:900px;margin:0 auto;}
.rep-card{border:1px solid var(--line);padding:30px 30px 26px;display:flex;flex-direction:column;transition:box-shadow .25s,transform .25s,border-color .25s;}
.rep-card:hover{box-shadow:0 10px 30px rgba(29,52,80,.09);transform:translateY(-3px);border-color:#d8cfbc;}
.rep-card .date{font-size:12px;color:var(--hai);letter-spacing:.08em;}
.rep-card h3{font-size:16.5px;line-height:1.8;color:var(--navy);letter-spacing:.04em;margin:9px 0 12px;}
.rep-card p{font-size:13.5px;line-height:1.95;color:var(--hon);text-align:justify;flex:1;}
.rep-card .more{margin-top:14px;font-size:12.5px;color:var(--aka);letter-spacing:.06em;}
.rep-all{text-align:center;margin-top:40px;}
.rep-all a{display:inline-block;font-size:13.5px;letter-spacing:.1em;color:var(--navy);border:1px solid var(--navy);padding:12px 36px;transition:background .2s,color .2s;}
.rep-all a:hover{background:var(--navy);color:#fff;}

/* ===== 印刷 ===== */
@media print{
  header,nav,.menu-btn,#contact,.f-nav{display:none!important;}
  body{background:#fff;color:#000;font-size:11pt;line-height:1.8;}
  .hero{background:none!important;color:#000;padding:0 0 24px;}
  .hero h1 .aka,.hero .name{color:#000;}
  .hero .lede{color:#000;}
  section{padding:20px 0;break-inside:avoid;}
  .act-card,.mv-card,.purpose-box,.pp-box{border:1px solid #ccc;break-inside:avoid;}
  footer{background:none;color:#000;border-top:1px solid #ccc;}
}
