
body{margin:0;background:#eceae4;font-family:'Zen Kaku Gothic New',system-ui,sans-serif}
a{color:#1c1a17;text-decoration:none}a:hover{color:#b8432f}
.dv-opt{display:flex;flex-direction:column;gap:9px;align-items:center;padding:32px 0 48px}
.dv-card{width:1280px;max-width:100%;background:#fff;border:1px solid rgba(0,0,0,.1);box-shadow:0 2px 8px rgba(0,0,0,.08);overflow:hidden}
.pglabel{display:none;font:500 10px ui-monospace,Menlo,monospace;color:rgba(0,0,0,.45);margin:14px 0 6px;align-self:flex-start;padding-left:calc(50% - 640px)}



/* =============================================================
   日ノ本文化財団 — レイアウト調整 & スマートフォン対応（追記CSS）
   既存のHTML／インラインスタイルは変更せず、この <style> だけで上書きします。
   ============================================================= */

/* ---------- 0. グリッド内の要素が枠からはみ出さないようにする ---------- */
.dv-card [style*="display:grid"] > * { min-width: 0; }

/* ---------- 1. 代表理事の写真：左右に余白を持たせる（PC表示） ---------- */
@media (min-width: 861px) {
  .dv-card > div[style*="display:flex"] > div:first-child:has(> image-slot) {
    display: flex !important;
    justify-content: center;
    align-items: flex-start;
    padding-left: 40px;
    padding-right: 40px;
    box-sizing: border-box;
  }
  .dv-card > div[style*="display:flex"] > div:first-child:has(> image-slot) > image-slot {
    width: 100% !important;
    max-width: 400px;
  }
}

/* ---------- 2. タブレット・小さめのPC（〜1100px） ---------- */
@media (max-width: 1100px) {
  .dv-card > div[style*="padding:88px 140px"] { padding-left: 64px !important; padding-right: 64px !important; }
  .dv-card > div[style*="padding:92px 180px"] { padding-left: 64px !important; padding-right: 64px !important; }
  .dv-card [style*="width: 506px"] { width: auto !important; height: auto !important; }
}

/* ---------- 2b. ヘッダーが2段に折れるのを防ぐ（861〜1050px） ---------- */
@media (min-width: 861px) and (max-width: 1050px) {
  .dv-card [style*="padding:30px 48px"] { padding-left: 28px !important; padding-right: 28px !important; }
  .dv-card [style*="padding:30px 48px"] > :first-child { font-size: 17px !important; letter-spacing: .14em !important; white-space: nowrap; }
  .dv-card [style*="padding:30px 48px"] [style*="gap:34px"] { gap: 20px !important; font-size: 12px !important; letter-spacing: .1em !important; white-space: nowrap; }
  .dv-card [style*="padding:30px 48px"] a[style*="border:1px solid"] { padding: 7px 16px !important; }
}

/* ---------- 3. スマートフォン・タブレット縦（〜860px） ---------- */
@media (max-width: 860px) {

  html { -webkit-text-size-adjust: 100%; }
  body { overflow-x: hidden; }

  /* 外側の枠・余白をなくして全幅表示に */
  .dv-opt { padding: 0 !important; gap: 0 !important; }
  .dv-card {
    width: 100% !important;
    max-width: 100% !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  /* --- セクションの左右余白を一律で詰める --- */
  .dv-card > div[style*="padding:88px 140px"] { padding: 56px 20px !important; }
  .dv-card > div[style*="padding:92px 180px"] { padding: 56px 20px 64px !important; }
  .dv-card > div[style*="padding:88px 48px"]  { padding: 56px 20px !important; }
  .dv-card > div[style*="padding:26px 48px"]  { padding: 20px !important; }
  .dv-card > div[style*="padding:40px 48px"]  { padding: 28px 20px !important; }
  .dv-card > div[style*="padding:56px 48px"]  { padding: 40px 20px 32px !important; }
  .dv-card > div[style*="padding:96px 0 0"]   { padding-top: 56px !important; }

  /* --- ヘッダー（ロゴ＋グローバルナビ）: 折り返して収める --- */
  .dv-card [style*="padding:30px 48px"] {
    position: relative !important;
    z-index: 5;
    flex-wrap: wrap !important;
    gap: 10px 14px !important;
    padding: 16px 20px !important;
    background: rgba(20, 16, 12, .45);
  }
  .dv-card [style*="padding:30px 48px"] > :first-child {
    font-size: 15px !important;
    letter-spacing: .16em !important;
  }
  .dv-card [style*="padding:30px 48px"] [style*="gap:34px"] {
    flex-wrap: wrap !important;
    gap: 10px 16px !important;
    font-size: 11px !important;
    letter-spacing: .1em !important;
  }
  .dv-card [style*="padding:30px 48px"] a[style*="border:1px solid"] {
    padding: 6px 14px !important;
    margin: 0 !important;
  }

  /* --- ヒーロー --- */
  .dv-card > div[style*="height:780px"] { height: auto !important; min-height: 74vh !important; }
  .dv-card > div[style*="height:380px"] { height: auto !important; min-height: 280px !important; }
  .dv-card > div[style*="height:780px"] > img,
  .dv-card > div[style*="height:780px"] > image-slot,
  .dv-card > div[style*="height:380px"] > image-slot { position: absolute !important; inset: 0 !important; }
  .dv-card [style*="left:48px"] { left: 20px !important; right: 20px !important; }
  .dv-card [style*="left:36px"] { left: 20px !important; right: 20px !important; }
  .dv-card [style*="bottom:52px"] { bottom: 32px !important; }
  .dv-card [style*="bottom:56px"] { bottom: 28px !important; }

  /* --- 2カラム（写真＋テキスト）を縦積みに --- */
  .dv-card > div[style*="display:flex"] { flex-direction: column !important; }
  .dv-card > div[style*="display:flex"] > div {
    width: 100% !important;
    height: auto !important;
    box-sizing: border-box !important;
  }
  .dv-card > div[style*="display:flex"] > div[style*="padding:80px 72px"] { padding: 48px 20px !important; }

  /* 代表理事の写真：横幅いっぱい、縦横比を保って表示 */
  .dv-card > div[style*="display:flex"] > div:has(> image-slot) { padding: 0 !important; }
  .dv-card > div[style*="display:flex"] > div:has(> image-slot) > image-slot {
    width: 100% !important;
    height: auto !important;
    max-width: none !important;
    aspect-ratio: 4 / 5 !important;
    border-radius: 0 !important;
  }

  /* --- グリッド（活動紹介・イベント情報）を1カラムに --- */
  .dv-card [style*="grid-template-columns:1fr 1fr 1fr"] { grid-template-columns: 1fr !important; }
  .dv-card [style*="grid-template-columns:1fr 1fr"] { grid-template-columns: 1fr !important; }
  .dv-card [style*="height:400px"] { height: 240px !important; }
  .dv-card [style*="height:420px"] { height: 360px !important; }
  .dv-card [style*="padding:34px 30px 30px"] { padding: 28px 20px 24px !important; }

  /* --- お知らせバー（TOP） --- */
  .dv-card > div[style*="padding:26px 48px"] {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 14px !important;
  }
  .dv-card > div[style*="padding:26px 48px"] [style*="margin-left:auto"] { margin-left: 0 !important; }
  .dv-card [style*="display:flex"][style*="gap:22px"] { flex-wrap: wrap !important; gap: 4px 16px !important; }

  /* --- 財団概要テーブル：項目名と内容を縦積みに --- */
  .dv-card [style*="display:flex"][style*="gap:40px"] {
    flex-direction: column !important;
    gap: 6px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .dv-card [style*="width:150px"] { width: auto !important; }

  /* 肩書きなど、ラベルが不自然に折り返さないように */
  .dv-card [style*="align-items:baseline"] > div:first-child { flex: none !important; white-space: nowrap; }
  .dv-card [style*="width: 506px"] { width: 100% !important; height: auto !important; }

  /* --- フッター --- */
  .dv-card [style*="justify-content:space-between"][style*="align-items:flex-start"] {
    flex-direction: column !important;
    gap: 28px !important;
  }
  .dv-card [style*="display:flex"][style*="gap:48px"] { flex-wrap: wrap !important; gap: 28px 40px !important; }
  .dv-card > div[style*="padding:40px 48px"] {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 10px !important;
  }

  /* --- 文字サイズ・行間の調整 --- */
  .dv-card [style*="font-size:40px"] { font-size: 25px !important; letter-spacing: .14em !important; }
  .dv-card [style*="font-size:34px"] { font-size: 23px !important; letter-spacing: .14em !important; }
  .dv-card [style*="font-size:30px"] { font-size: 21px !important; letter-spacing: .14em !important; line-height: 1.9 !important; }
  .dv-card [style*="font-size:28px"] { font-size: 20px !important; letter-spacing: .14em !important; }
  .dv-card [style*="font-size:22px"] { font-size: 18px !important; }
  .dv-card [style*="font-size:20px"] { font-size: 16px !important; }
  .dv-card [style*="font-size:17px"],
  .dv-card [style*="font-size: 17px"] { font-size: 15px !important; }
  .dv-card p[style*="line-height: 42px"],
  .dv-card p[style*="line-height: 44px"] { line-height: 2 !important; }
  .dv-card [style*="letter-spacing:.4em"] { letter-spacing: .3em !important; }
  .dv-card a[style*="padding:16px 58px"] { padding: 14px 36px !important; letter-spacing: .2em !important; }

  /* --- はみ出し防止 --- */
  .dv-card img, .dv-card image-slot { max-width: 100% !important; }
  .dv-card * { word-break: break-word; }
}

/* ---------- 4. 極小画面（〜400px） ---------- */
@media (max-width: 400px) {
  .dv-card [style*="padding:30px 48px"] [style*="gap:34px"] { font-size: 10px !important; gap: 8px 12px !important; }
  .dv-card [style*="font-size:40px"] { font-size: 22px !important; }
}

