/* ============================================================
   高松北ライオンズクラブ  共通スタイル
   デザインの方針 … 入会案内チラシの雰囲気に合わせた
                    「クリーム色の紙 ＋ 水彩イラスト ＋ 4色パステル」
   ============================================================ */
:root{
  /* 紙と文字 */
  --bg:#fdfbf1;            /* クリーム色の紙 */
  --paper:#fffdf7;         /* カードの面（ほんのり暖かい白） */
  --white:#fff;
  --ink:#4a4438;           /* あたたかみのある本文色 */
  --gray:#7a7264;
  --line:#e8e1cd;          /* 罫線（紙になじむベージュ） */

  /* ライオンズの色 */
  --blue:#1b4a8f;          /* 見出しの紺 */
  --blue-dark:#123a72;
  --gold:#ffc72c;

  /* チラシの4色 */
  --green:#6fae3f;      --green-dark:#477522;  --green-soft:#eef6e2;
  --orange:#ef8b2c;     --orange-dark:#b85a05; --orange-soft:#fdeedd;
  --coral:#ef8585;      --coral-dark:#b8433f;  --coral-soft:#fdebeb;
  --sky:#4a8fce;        --sky-dark:#1f5c94;    --sky-soft:#e7f2fb;
  --amber:#f0bb3c;      --amber-dark:#d9a01f;  --amber-soft:#fdf3d8;

  --radius:20px;
  --radius-sm:14px;
  --shadow:0 6px 20px rgba(120,105,70,.10);
  --shadow-hover:0 14px 30px rgba(120,105,70,.16);
  --max:1080px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:"Hiragino Maru Gothic ProN","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.95;
  -webkit-text-size-adjust:100%;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--blue);text-decoration:none;}
a:hover{text-decoration:underline;}
.container{width:92%;max-width:var(--max);margin-inline:auto;}

/* 水彩の飾り（切り抜きの四角い縁を消して、紙になじませる） */
.deco{
  position:absolute;pointer-events:none;mix-blend-mode:multiply;opacity:.92;
  -webkit-mask-image:radial-gradient(closest-side ellipse at 50% 50%,#000 52%,rgba(0,0,0,0) 100%);
          mask-image:radial-gradient(closest-side ellipse at 50% 50%,#000 52%,rgba(0,0,0,0) 100%);
}

/* 黄色いマーカー線（チラシの強調表現） */
.marker{background:linear-gradient(transparent 58%, #ffe9a0 58%, #ffe9a0 92%, transparent 92%);}

/* ---------- ヘッダー ---------- */
.site-header{
  background:var(--paper);
  border-bottom:3px solid var(--green);
  position:sticky;top:0;z-index:50;
  box-shadow:0 2px 10px rgba(120,105,70,.07);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem 0;}
.brand{display:flex;align-items:center;gap:.7rem;color:var(--ink);}
.brand:hover{text-decoration:none;}
.brand-emblem{width:48px;height:48px;object-fit:contain;display:block;flex:none;}
.brand-text strong{display:block;font-size:1.12rem;color:var(--blue);line-height:1.3;}
.brand-text small{display:block;font-size:.72rem;color:var(--gray);}

.site-nav ul{display:flex;gap:.3rem;list-style:none;margin:0;padding:0;}
.site-nav a{
  display:block;padding:.5rem 1rem;border-radius:999px;
  color:var(--ink);font-weight:600;font-size:.95rem;
  white-space:nowrap;   /* 「ホー／ム」のような途中改行を防ぐ */
}
.site-nav a:hover{background:var(--green-soft);text-decoration:none;}
.site-nav a.active{color:var(--green-dark);background:var(--green-soft);}
.site-nav a.nav-members{background:var(--gold);color:var(--blue-dark);}
.site-nav a.nav-members:hover{background:#efb61f;}

.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:.4rem;}
.nav-toggle span{width:26px;height:3px;background:var(--green-dark);border-radius:2px;transition:.3s;}

/* ---------- ヒーロー（チラシ風・イラスト＋クリーム地） ---------- */
.hero{
  position:relative;overflow:hidden;
  background:
    radial-gradient(120% 90% at 90% 0%, #eef7e4 0%, rgba(238,247,228,0) 60%),
    linear-gradient(180deg,#fffdf6,var(--bg));
  padding:3.2rem 0 3.6rem;
}
.hero-inner{
  display:grid;grid-template-columns:1.25fr 1fr;gap:2.2rem;align-items:center;
  position:relative;z-index:2;
}
.hero-eyebrow{
  display:inline-block;color:var(--green-dark);font-weight:700;
  font-size:.95rem;letter-spacing:.06em;margin:0 0 .7rem;
}
.hero h1{
  font-size:2.05rem;line-height:1.6;margin:0 0 1rem;
  color:var(--blue);font-weight:800;letter-spacing:.01em;
}
.hero h1 .accent{color:var(--orange-dark);}
.hero-sub{color:var(--ink);font-size:1.05rem;font-weight:600;margin:0 0 .4rem;}
.hero-lead{color:var(--gray);font-size:.95rem;margin:0;}
.hero .btn{margin-top:1.6rem;}
.hero-art{position:relative;}
.hero-art img{
  width:100%;border-radius:24px;
  box-shadow:0 10px 30px rgba(120,105,70,.14);
}
.hero .deco-leaf-1{top:0;left:0;width:200px;}
.hero .deco-leaf-2{bottom:0;right:0;width:180px;transform:scaleX(-1);}

/* ---------- ボタン ---------- */
.btn{
  display:inline-block;background:var(--orange-dark);color:#fff;
  font-weight:700;padding:.8rem 2rem;border-radius:999px;
  border:0;cursor:pointer;font-size:1rem;transition:.2s;
  box-shadow:0 4px 12px rgba(239,139,44,.30);
}
.btn:hover{background:#96490a;text-decoration:none;transform:translateY(-2px);}
.btn-outline{
  background:transparent;border:2px solid #fff;color:#fff;box-shadow:none;
}
.btn-outline:hover{background:rgba(255,255,255,.18);}

/* ---------- セクション共通（リボン見出し） ---------- */
section{padding:3.6rem 0;}
.section-title{text-align:center;margin:0 0 2.4rem;}
.section-title h2{
  display:inline-block;position:relative;
  background:var(--blue);color:#fff;
  font-size:1.3rem;font-weight:700;letter-spacing:.04em;
  margin:0;padding:.5rem 2.2rem;border-radius:999px;
  box-shadow:0 4px 12px rgba(27,74,143,.18);
}
/* 見出しの左右にのびる点線 */
.section-title h2::before,.section-title h2::after{
  content:"";position:absolute;top:50%;width:46px;height:0;
  border-top:2px dotted var(--green);opacity:.75;
}
.section-title h2::before{right:100%;margin-right:14px;}
.section-title h2::after{left:100%;margin-left:14px;}
.section-title p{color:var(--gray);margin:.8rem 0 0;font-size:.92rem;}

.page-head{
  position:relative;overflow:hidden;
  background:linear-gradient(180deg,#f2f8e9,var(--bg));
  padding:2.4rem 0;
}
.page-head h1{color:var(--blue);font-size:1.7rem;margin:0;font-weight:800;}
.page-head .crumb{color:var(--gray);font-size:.85rem;margin:.3rem 0 0;}
.page-head .deco-leaf-1{top:-8px;right:2%;width:150px;}

/* ---------- カード（活動一覧） ---------- */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1.5rem;}
.card{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--shadow);transition:.2s;display:flex;flex-direction:column;
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover);}
.card a{color:inherit;}
.card-thumb{aspect-ratio:4/3;overflow:hidden;background:var(--green-soft);}
.card-thumb img{width:100%;height:100%;object-fit:cover;}
.card-body{padding:1.1rem 1.3rem 1.4rem;flex:1;display:flex;flex-direction:column;}
.tag{
  display:inline-block;background:var(--green-soft);color:var(--green-dark);
  font-size:.75rem;font-weight:700;padding:.2rem .8rem;border-radius:999px;
}
.card-body h3{font-size:1.08rem;margin:.6rem 0 .4rem;color:var(--blue);line-height:1.5;}
.card-date{color:var(--gray);font-size:.8rem;margin:0 0 .5rem;}
.card-lead{font-size:.92rem;color:var(--ink);margin:0;flex:1;}
.card-more{color:var(--orange-dark);font-weight:700;font-size:.88rem;margin-top:.8rem;}

/* ---------- 奉仕の分野（チラシの4色カード） ---------- */
.causes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.4rem;}
.cause-card{
  text-align:center;background:var(--paper);border-radius:var(--radius);
  border:2px solid var(--line);padding:0 0 1.5rem;overflow:hidden;
  box-shadow:var(--shadow);transition:.2s;
}
.cause-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover);}
.cause-card h3{
  font-size:1.06rem;margin:0;padding:.7rem .8rem;font-weight:700;
}
.cause-art{background:#fff;padding:.4rem .6rem 0;}
/* 元絵の縦横比がまちまちなので、枠をそろえて中央に収める */
.cause-art img{width:100%;aspect-ratio:4/3;object-fit:contain;}
.cause-card p{font-size:.9rem;color:var(--ink);margin:.9rem 1.2rem 0;text-align:left;}
/* 4色の色分け */
.cause-card--green {border-color:#cfe6b4;}
.cause-card--green  h3{background:var(--green-soft); color:var(--green-dark);}
.cause-card--coral {border-color:#f7cfcf;}
.cause-card--coral  h3{background:var(--coral-soft); color:var(--coral-dark);}
.cause-card--sky   {border-color:#c5ddf2;}
.cause-card--sky    h3{background:var(--sky-soft);   color:var(--sky-dark);}
.cause-card--amber {border-color:#f6e2ac;}
.cause-card--amber  h3{background:var(--amber-soft); color:#8a6404;}

/* ---------- 実績の数字バンド ---------- */
.stats{
  position:relative;overflow:hidden;
  background:linear-gradient(180deg,#f2f8e9,#fdfbf1);
}
.stats .section-title h2{background:var(--green-dark);box-shadow:0 4px 12px rgba(71,117,34,.22);}
.stats .section-title h2::before,.stats .section-title h2::after{border-top-color:var(--green-dark);}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1.4rem;text-align:center;}
.stat{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  padding:1.4rem .8rem;box-shadow:var(--shadow);
}
.stat .num{font-size:2.3rem;font-weight:800;color:var(--green-dark);line-height:1.1;}
.stat .unit{font-size:1rem;font-weight:700;color:var(--green-dark);margin-left:.15rem;}
.stat .label{font-size:.86rem;color:var(--gray);margin-top:.3rem;}

/* ---------- CTAバンド ---------- */
.cta-band{
  position:relative;overflow:hidden;text-align:center;
  background:linear-gradient(180deg,#fdfbf1,#f2f8e9);
  padding:3.4rem 1rem 3.6rem;
}
.cta-band h2{color:var(--blue);font-size:1.6rem;margin:0 0 .6rem;font-weight:800;}
.cta-band p{color:var(--ink);margin:0 0 1.6rem;}
.cta-band .deco-hill{bottom:0;right:0;width:270px;opacity:.85;}
.cta-band .container{position:relative;z-index:2;}

/* ---------- 役員テーブル ---------- */
.yakuin{
  max-width:520px;margin-inline:auto;background:var(--paper);
  border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);overflow:hidden;
}
.yakuin table{width:100%;border-collapse:collapse;}
.yakuin th,.yakuin td{padding:.9rem 1.2rem;text-align:left;border-bottom:1px dashed var(--line);}
.yakuin th{background:var(--green-soft);color:var(--green-dark);width:38%;font-weight:700;}
.yakuin tr:last-child td,.yakuin tr:last-child th{border-bottom:0;}

/* ---------- クラブのあらまし ---------- */
.profile-block{
  background:var(--paper);border:2px solid var(--line);border-radius:var(--radius);
  padding:1.7rem 1.9rem;max-width:820px;margin:0 auto;
}
.profile-block + .profile-block{margin-top:1.5rem;}
.profile-block h3{
  color:var(--green-dark);font-size:1.1rem;margin:0 0 1rem;font-weight:700;
  padding-bottom:.55rem;border-bottom:2px dotted #cfe6b4;
}
.profile-table{width:100%;border-collapse:collapse;}
.profile-table th,.profile-table td{
  padding:.6rem .2rem;text-align:left;font-size:.95rem;
  border-bottom:1px dashed var(--line);vertical-align:top;
}
.profile-table th{
  width:1%;white-space:nowrap;padding-right:1.8rem;
  color:var(--gray);font-weight:700;
}
.profile-table tr:last-child th,.profile-table tr:last-child td{border-bottom:0;}
.milestone-list{list-style:none;margin:1.1rem 0 0;padding:0;display:grid;gap:.6rem;}
.milestone-list li{position:relative;padding-left:1.3rem;font-size:.92rem;line-height:1.8;}
.milestone-list li::before{
  content:"";position:absolute;left:0;top:.68rem;
  width:8px;height:8px;border-radius:50%;background:var(--green);
}
.milestone-date{
  display:inline-block;background:var(--green-soft);color:var(--green-dark);
  font-weight:700;font-size:.75rem;padding:.12rem .7rem;
  border-radius:999px;margin-right:.5rem;white-space:nowrap;
}
.project-list{
  list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:.5rem 1.6rem;
}
.project-list li{position:relative;padding-left:1.6rem;font-size:.93rem;line-height:1.8;}
.project-list li::before{content:"★";position:absolute;left:0;color:var(--amber-dark);font-size:.85rem;}
@media(max-width:680px){
  .profile-block{padding:1.3rem 1.2rem;}
  /* スマホでは「項目名の下に内容」の縦並びにして読みやすくする */
  .profile-table th,.profile-table td{display:block;width:auto;padding:0 .2rem;border-bottom:0;white-space:normal;}
  .profile-table th{font-size:.8rem;padding-top:.75rem;}
  .profile-table td{padding-bottom:.75rem;border-bottom:1px dashed var(--line);}
  .profile-table tr:last-child td{border-bottom:0;}
}

/* ---------- 本文ブロック ---------- */
.prose{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:2.2rem 2.3rem;max-width:820px;margin-inline:auto;
}
.prose p{margin:0 0 1rem;}
.prose p:last-child{margin-bottom:0;}
/* 挿絵つきの本文 */
.prose--art{display:grid;grid-template-columns:1fr 240px;gap:1.8rem;align-items:center;}
.prose--art img{border-radius:var(--radius-sm);}
@media(max-width:680px){.prose--art{grid-template-columns:1fr;}}

/* ---------- ギャラリー ---------- */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.9rem;margin-top:1.6rem;}
.gallery img{
  width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-sm);
  cursor:pointer;transition:.2s;box-shadow:var(--shadow);
}
.gallery img:hover{transform:scale(1.03);}

/* ---------- ライトボックス ---------- */
.lightbox{
  position:fixed;inset:0;background:rgba(45,38,28,.92);display:none;
  flex-direction:column;align-items:center;justify-content:center;gap:1rem;
  z-index:100;padding:4.5rem 2rem 2rem;
}
.lightbox.open{display:flex;}
.lightbox img{max-width:95%;max-height:78vh;width:auto;border-radius:12px;}
.lightbox .lb-close{
  position:absolute;top:1rem;right:1.4rem;
  display:inline-flex;align-items:center;line-height:1;
  color:#fff;background:rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.55);border-radius:999px;
  padding:.6rem 1.2rem;font-size:1rem;font-weight:700;font-family:inherit;
  cursor:pointer;
}
.lightbox .lb-close:hover{background:rgba(255,255,255,.34);}
.lightbox .lb-close:focus-visible{outline:3px solid var(--gold);outline-offset:2px;}
.lightbox .lb-hint{margin:0;text-align:center;color:rgba(255,255,255,.85);font-size:.85rem;}
body.lb-lock{overflow:hidden;}
@media(max-width:680px){
  .lightbox{padding:4rem 1rem 1.4rem;}
  .lightbox .lb-close{top:.7rem;right:.8rem;padding:.5rem 1rem;font-size:.92rem;}
  .lightbox .lb-hint{font-size:.78rem;}
}

/* ---------- フォーム ---------- */
.form{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:2rem;max-width:640px;margin-inline:auto;
}
.form label{display:block;font-weight:700;margin:1rem 0 .35rem;color:var(--green-dark);}
.form .req{color:var(--coral-dark);font-size:.8rem;margin-left:.3rem;}
.form input,.form textarea,.form select{
  width:100%;padding:.8rem .9rem;border:1px solid var(--line);border-radius:var(--radius-sm);
  font-size:1rem;font-family:inherit;background:#fff;
}
.form input:focus,.form textarea:focus,.form select:focus{outline:2px solid var(--green);border-color:var(--green);}
/* ラジオ・チェックは横幅いっぱいにしない */
.form input[type=radio],.form input[type=checkbox]{width:auto;padding:0;margin:0;}
.form .btn{margin-top:1.6rem;width:100%;}
.alert{padding:1rem 1.2rem;border-radius:var(--radius-sm);margin-bottom:1.2rem;font-weight:600;}
.alert-ok{background:var(--green-soft);color:var(--green-dark);border:1px solid #bfdda0;}
.alert-ng{background:var(--coral-soft);color:var(--coral-dark);border:1px solid #f2bcbc;}

/* ---------- 会員ページ・管理画面 ---------- */
.btn-quiet{
  display:inline-block;background:var(--paper);border:1px solid var(--line);
  color:var(--blue);font-weight:700;font-size:.9rem;
  padding:.5rem 1.2rem;border-radius:999px;box-shadow:none;
}
.btn-quiet:hover{background:var(--green-soft);text-decoration:none;}
.btn-danger{
  background:#fff;border:1px solid #e8b4b4;color:var(--coral-dark);
  font-weight:700;font-size:.82rem;font-family:inherit;
  padding:.35rem .9rem;border-radius:999px;cursor:pointer;
}
.btn-danger:hover{background:var(--coral-soft);}
/* 表の中で使う小さなボタン */
.btn-mini{
  background:#fff;border:1px solid var(--line);color:var(--blue);
  font-weight:700;font-size:.8rem;font-family:inherit;
  padding:.35rem .8rem;border-radius:999px;cursor:pointer;line-height:1.4;
}
.btn-mini:hover{background:var(--green-soft);}
.btn-mini:disabled{opacity:.35;cursor:default;}
.btn-mini:disabled:hover{background:#fff;}

/* ---------- 例会の出欠 ---------- */
/* 出席・欠席・未定 の選択肢 */
.choice-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.2rem;}
.choice{
  display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;
  padding:.7rem 1.3rem;border:1px solid var(--line);border-radius:999px;
  background:#fff;font-weight:700;margin:0;
}
.choice:hover{background:var(--green-soft);}
.choice:has(input:checked){background:var(--green-soft);border-color:var(--green);color:var(--green-dark);}
.choice input{flex:none;}
.choice span{font-weight:700;}

/* 人数の集計 */
.rsvp-counts{display:flex;flex-wrap:wrap;gap:.8rem;}
.rsvp-count{
  flex:1 1 6rem;text-align:center;background:var(--paper);
  border:1px solid var(--line);border-radius:var(--radius-sm);padding:1rem .5rem;
}
.rsvp-count strong{display:block;font-size:1.7rem;color:var(--blue);line-height:1.2;}
.rsvp-count span{font-size:.83rem;color:var(--gray);}

/* コピーして使うURLの欄 */
.link-box{
  width:100%;padding:.7rem .8rem;border:1px solid var(--line);border-radius:var(--radius-sm);
  font-size:.85rem;font-family:inherit;background:#fbfbf8;color:var(--ink);
}

.notice-body{margin:0;font-size:.97rem;line-height:1.95;}
.notice-empty{margin:0;color:var(--gray);font-size:.92rem;}

.doc-list{list-style:none;margin:0;padding:0;display:grid;gap:.2rem;}
.doc-list li{
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding:.7rem .2rem;border-bottom:1px dashed var(--line);flex-wrap:wrap;
}
.doc-list li:last-child{border-bottom:0;}
.doc-list a{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;font-size:.95rem;}
.doc-list a svg{flex:none;color:var(--sky-dark);}
.doc-list .doc-meta{color:var(--gray);font-size:.8rem;white-space:nowrap;}

/* 管理画面のメニュー */
.admin-nav{background:var(--paper);border-bottom:1px solid var(--line);}
.admin-nav .container{display:flex;flex-wrap:wrap;gap:.4rem;padding:.6rem 0;}
.admin-nav a{
  padding:.45rem 1.1rem;border-radius:999px;
  font-weight:700;font-size:.9rem;color:var(--ink);
}
.admin-nav a:hover{background:var(--green-soft);text-decoration:none;}
.admin-nav a.active{background:var(--blue);color:#fff;}

.admin-form label{display:block;font-weight:700;margin:1.1rem 0 .35rem;color:var(--green-dark);}
.admin-form input[type=text],.admin-form input[type=password],.admin-form input[type=date],.admin-form select,.admin-form textarea{
  width:100%;padding:.8rem .9rem;border:1px solid var(--line);border-radius:var(--radius-sm);
  font-size:1rem;font-family:inherit;background:#fff;
}
.admin-form input[type=file]{
  width:100%;padding:.7rem;border:1px dashed var(--line);border-radius:var(--radius-sm);
  background:#fff;font-family:inherit;font-size:.92rem;
}
.admin-form input:focus,.admin-form textarea:focus{outline:2px solid var(--green);border-color:var(--green);}
.admin-form .btn{margin-top:1.4rem;}
.admin-form .req{
  display:inline-block;background:var(--coral-soft);color:var(--coral-dark);
  font-size:.7rem;font-weight:700;padding:.05rem .5rem;border-radius:999px;margin-left:.5rem;
}
.admin-hint{margin:.5rem 0 0;font-size:.83rem;color:var(--gray);line-height:1.8;}

.admin-table{width:100%;border-collapse:collapse;}
.admin-table th,.admin-table td{
  padding:.7rem .5rem;text-align:left;font-size:.92rem;
  border-bottom:1px dashed var(--line);vertical-align:middle;
}
.admin-table tr:first-child th{color:var(--gray);font-size:.8rem;font-weight:700;}
.admin-table tr:last-child th,.admin-table tr:last-child td{border-bottom:0;}
.admin-table .nowrap{white-space:nowrap;}
/* 表の中に置いた入力欄（名簿の名前直しなど） */
.admin-table input[type=text]{
  width:100%;padding:.45rem .6rem;border:1px solid var(--line);border-radius:var(--radius-sm);
  font-size:.92rem;font-family:inherit;background:#fff;
}
.admin-table input[type=text]:focus{outline:2px solid var(--green);border-color:var(--green);}
.admin-table form{margin:0;}
.pw-warn{color:var(--coral-dark);font-weight:700;}
.alert-warn{background:var(--amber-soft);color:#8a6404;border:1px solid #f0dca6;}
@media(max-width:680px){
  .admin-table th,.admin-table td{font-size:.86rem;padding:.6rem .3rem;}
  .doc-list li{align-items:flex-start;}
}

/* ---------- フッター ---------- */
.site-footer{
  position:relative;background:var(--blue);color:#dfe7f4;margin-top:0;
}
.footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1.5rem;padding:2.4rem 0;}
.footer-brand strong{color:#fff;font-size:1.1rem;}
.footer-brand p{margin:.3rem 0 0;font-size:.85rem;}
.footer-links{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;padding:0;margin:0;}
.footer-links a{color:#dfe7f4;font-size:.9rem;}
.footer-links a:hover{color:var(--gold);}
.copyright{text-align:center;padding:1rem;background:rgba(0,0,0,.18);font-size:.8rem;color:#b9c6de;}
/* フッター手前の水彩バンド（高松城と瀬戸大橋） */
.footer-scape{
  height:96px;background:url("/img/illust/deco-scape.jpg") center bottom/cover no-repeat;
  mix-blend-mode:multiply;
  -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0%,#000 45%);
          mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0%,#000 45%);
}

/* ---------- 会員専用 ---------- */
.members-note{
  background:var(--amber-soft);border:1px solid #f0dca6;border-radius:var(--radius-sm);
  padding:1rem 1.2rem;color:#8a6d00;font-size:.9rem;
}

/* ---------- 会長スローガン ---------- */
.slogan{
  max-width:820px;margin:2.4rem auto 0;position:relative;
  background:var(--paper);border:2px dashed #cfe6b4;
  border-radius:var(--radius);padding:2rem 1.8rem;
  text-align:center;box-shadow:var(--shadow);
}
.slogan-eyebrow{color:var(--green-dark);font-weight:700;letter-spacing:.08em;font-size:.85rem;margin:0 0 .8rem;}
.slogan-main{font-size:1.5rem;font-weight:800;margin:0 0 1.4rem;line-height:1.6;color:var(--blue);}
.slogan-meta{display:grid;gap:.7rem;text-align:left;max-width:640px;margin-inline:auto;}
.slogan-meta > div{background:var(--green-soft);border-radius:var(--radius-sm);padding:.75rem 1rem;font-size:.95rem;line-height:1.8;}
.slogan-label{
  display:inline-block;background:var(--green-dark);color:#fff;font-weight:700;
  font-size:.75rem;padding:.14rem .7rem;border-radius:999px;margin-right:.6rem;vertical-align:middle;
}
@media(max-width:680px){.slogan-main{font-size:1.2rem;}}

/* ---------- 最近の出来事（トピックス） ---------- */
.topic-list{display:flex;flex-direction:column;gap:1.5rem;max-width:900px;margin-inline:auto;}
.topic{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:1.7rem;display:grid;grid-template-columns:300px 1fr;gap:1.5rem;align-items:start;
}
.topic--noimg{grid-template-columns:1fr;}
.topic-media .gallery{margin-top:0;grid-template-columns:1fr 1fr;gap:.6rem;}
.topic-text h3{color:var(--blue);font-size:1.15rem;margin:.5rem 0 .3rem;line-height:1.6;}
.topic-date{color:var(--gray);font-size:.8rem;margin:0 0 .8rem;}
.topic-text > p{font-size:.93rem;color:var(--ink);margin:0 0 .7rem;}
.award-list{list-style:none;margin:.2rem 0 .9rem;padding:0;}
.award-list li{position:relative;padding-left:1.5rem;font-size:.92rem;color:var(--ink);margin:.3rem 0;}
.award-list li::before{content:"★";position:absolute;left:0;color:var(--amber-dark);font-size:.85rem;}
.pdf-link{
  display:inline-flex;align-items:center;gap:.45rem;font-weight:700;font-size:.88rem;
  color:var(--sky-dark);border:1px solid #c5ddf2;border-radius:999px;
  padding:.45rem 1.1rem;background:var(--sky-soft);
}
.pdf-link:hover{background:#d6e9f8;text-decoration:none;}
.pdf-link svg{flex:none;}
@media(max-width:680px){.topic{grid-template-columns:1fr;}}

/* ---------- レスポンシブ ---------- */
@media(max-width:900px){
  .hero-inner{grid-template-columns:1fr;text-align:center;}
  .hero-art{max-width:460px;margin-inline:auto;}
  .hero .deco-leaf-1,.hero .deco-leaf-2{display:none;}
}
/* メニューが6項目あるので、1行に収まらなくなる手前で少しだけ詰める */
@media(max-width:1080px){
  .site-nav ul{gap:.1rem;}
  .site-nav a{padding:.5rem .62rem;font-size:.9rem;}
}
/* これより狭い画面では、メニューを「三本線」ボタンの開閉式にする */
@media(max-width:900px){
  .nav-toggle{display:flex;}
  .site-nav{
    position:absolute;top:100%;left:0;right:0;background:var(--paper);
    border-top:1px solid var(--line);box-shadow:var(--shadow);
    max-height:0;overflow:hidden;transition:max-height .3s;
  }
  .site-nav.open{max-height:460px;}
  .site-nav ul{flex-direction:column;gap:0;padding:.5rem 0;}
  .site-nav a{padding:.9rem 1.2rem;border-radius:0;font-size:.95rem;}
}
@media(max-width:760px){
  .hero{padding:2.4rem 0 2.8rem;}
  .hero h1{font-size:1.45rem;}
  .hero-sub{font-size:.98rem;}
  .section-title h2{font-size:1.12rem;padding:.45rem 1.4rem;}
  .section-title h2::before,.section-title h2::after{width:20px;}
  .footer-inner{flex-direction:column;}
  .footer-scape{height:64px;}
  .cta-band .deco-hill{width:170px;opacity:.6;}
}
