/* =====================================================================
   ReYouth Partners 共通スタイル（全ページ）
   1) SWELL既定のヘッダー/フッターを非表示化
   2) 新デザインのヘッダー（.ryp-header）/ フッター（.ryp-footer）
   ※ 投稿・固定ページのコンテンツ部分には干渉しないよう、
      すべて .ryp-header / .ryp-footer 配下にスコープする
   ===================================================================== */

:root{
  --paper:#F5F0E3;
  --paper-deep:#EDE5D0;
  --ink:#232E4A;
  --ink-soft:#4A5470;
  --vermillion:#B23A26;
  --vermillion-deep:#933120;
  --gold:#A98B4F;
  --line:#DCD2B8;
  --white:#FFFFFF;
  --mincho:"Shippori Mincho","Yu Mincho","Hiragino Mincho ProN",serif;
  --gothic:"Zen Kaku Gothic New","Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;
}

/* ---------------------------------------------------------------
   SWELL既定のヘッダー/フッター等の非表示
   ※ セレクタは一般的なSWELLの構造に基づく。反映時に実サイトの
      DOMを確認し、過不足があればここを調整する
   --------------------------------------------------------------- */
.l-header,
.l-fixHeader,
.l-footer,
.p-spMenu,
.p-spMenu__overlay,
#fix_bottom_menu{
  display:none !important;
}

/* アンカー着地位置（固定ヘッダーぶん下げる） */
html{scroll-padding-top:88px}

/* ---------------------------------------------------------------
   新ヘッダー
   --------------------------------------------------------------- */
.ryp-header *,
.ryp-header *::before,
.ryp-header *::after,
.ryp-footer *,
.ryp-footer *::before,
.ryp-footer *::after{
  margin:0;padding:0;box-sizing:border-box;
}

.ryp-header{
  position:sticky;top:0;z-index:9990;
  background:rgba(245,240,227,.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
  font-family:var(--gothic);
  font-size:16px;
  line-height:1.9;
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}
.ryp-header .header-inner{
  max-width:1240px;margin:0 auto;padding:14px 24px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.ryp-header .logo{text-decoration:none;color:var(--ink)}
.ryp-header .logo strong{
  font-family:var(--mincho);font-size:1.25rem;font-weight:700;letter-spacing:.06em;display:block;line-height:1.3;
}
.ryp-header .logo span{font-size:.68rem;letter-spacing:.3em;color:var(--ink-soft)}
.ryp-header nav.global{display:flex;align-items:center;gap:28px}
.ryp-header nav.global a{font-size:.88rem;letter-spacing:.1em;text-decoration:none;color:var(--ink)}
.ryp-header nav.global a:hover{color:var(--vermillion)}
.ryp-header .nav-cta{background:var(--vermillion);color:#FFF8EF !important;padding:.6em 1.4em}
.ryp-header .menu-btn{
  display:none;background:none;border:1px solid var(--ink);padding:.5em .9em;
  font-family:var(--gothic);font-size:.8rem;letter-spacing:.15em;cursor:pointer;color:var(--ink);
  border-radius:0;
}
.ryp-header :focus-visible{outline:2px solid var(--vermillion);outline-offset:3px}
@media (max-width:920px){
  .ryp-header nav.global{
    display:none;position:absolute;top:100%;left:0;right:0;
    background:var(--paper);border-bottom:1px solid var(--line);
    flex-direction:column;padding:20px 24px;gap:18px;align-items:flex-start;
  }
  .ryp-header nav.global.open{display:flex}
  .ryp-header .menu-btn{display:block}
}

/* 管理バー（ログイン時）とヘッダーの重なり回避 */
body.admin-bar .ryp-header{top:32px}
@media (max-width:782px){
  body.admin-bar .ryp-header{top:46px}
}

/* ---------------------------------------------------------------
   新フッター
   --------------------------------------------------------------- */
.ryp-footer{
  background:var(--ink);color:#C7CCDA;
  border-top:1px solid rgba(255,255,255,.12);
  padding:56px 0 40px;
  font-family:var(--gothic);
  font-size:16px;
  line-height:1.9;
  -webkit-font-smoothing:antialiased;
}
.ryp-footer .wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.ryp-footer .foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
.ryp-footer .foot-logo strong{font-family:var(--mincho);color:#FDF9EE;font-size:1.15rem;letter-spacing:.06em;display:block}
.ryp-footer .foot-logo span{font-size:.68rem;letter-spacing:.3em}
.ryp-footer h4{font-size:.75rem;letter-spacing:.25em;color:#8F97AC;margin-bottom:1rem;font-family:var(--gothic);font-weight:700}
.ryp-footer ul{list-style:none}
.ryp-footer li{font-size:.88rem;margin-bottom:.6rem}
.ryp-footer a{text-decoration:none;color:#C7CCDA}
.ryp-footer a:hover{color:#FDF9EE}
.ryp-footer .copyright{margin-top:48px;font-size:.75rem;letter-spacing:.1em;color:#7C849B;text-align:center}
.ryp-footer :focus-visible{outline:2px solid var(--vermillion);outline-offset:3px}
@media (max-width:720px){
  .ryp-footer .foot-grid{grid-template-columns:1fr;gap:28px}
}
