/*
Theme Name: Muraki Nagisa
Theme URI: 
Author: 
Description: 村木汀 公式サイト
Version: 1.0
*/

html {
  overflow-x: hidden;
}

body {
  overflow-x: clip; /* hiddenの代わりにclipを使う */
}


/* =============================================
   サイトヘッダー（PC専用・SP非表示）
   ============================================= */
.site-header {
  display: none; /* SP: 非表示 */
}

/* =============================================
   SPヘッダー（SP専用・PC非表示）
   ============================================= */
.sp-header {
  display: block;
  position: sticky;
  top: 0;
  z-index: 1000;
  width: 100%;
  background: #ff7d7e;
}

.sp-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 22px 35px;
  max-width: 375px;
  margin: 0 auto;
}

/* 左：ロゴ */
.sp-header__logo {
  display: block;
  text-decoration: none;
  flex-shrink: 0;
}

.sp-header__logo-img {
  height: 32px;
  width: auto;
  display: block;
}

/* 右：入党CTAボタン */
.sp-header__cta {
  display: inline-block;
  background: #eb1e50;
  color: #ffffff;
  font-size: 0.8rem;
  font-weight: 400;
  font-family: 'Noto Serif JP', serif;
  letter-spacing: 0.08em;
  text-decoration: none;
  padding: 7px 14px;
  border-radius: 2px;
  white-space: nowrap;
  flex-shrink: 0;
}

/* ==============================================
   リセット & ベース
   ============================================= */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* =============================================
   セクション見出し（グラデーションテキスト）
   ============================================= */
.section-ttl-img {
  display: block;
  width: auto;
  height: auto;
  margin: 0 auto;
}
/* 政策：小さめ */
.section-ttl-img--seisaku { max-width: 15%; }
/* プロフィール：小さめ */
.section-ttl-img--profile { max-width: 45%; }
/* 入党申込み：大きめ */
.section-ttl-img--touin   { max-width: 70%; }
/* 事務所のご案内：小さめ */
.section-ttl-img--info    { max-width: 65%; }


.section-ttl {
  display: block;
  text-align: center;
  font-family: 'Noto Serif JP', serif;
  font-weight: 700;
  letter-spacing: 0.12em;
  /* 左：サーモンピンク → 右：ホットピンク のグラデーション */
  background: linear-gradient(90deg, #f08080 0%, #ff0078 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* 政策：大きめ */
.section-ttl--policy {
  font-size: 2.4rem;
  letter-spacing: 0.3em;
}

/* プロフィール：イタリック体 */
.section-ttl--profile {
  font-style: italic;
  font-size: 2.2rem;
}
.section-ttl--profile em {
  font-style: italic;
}

/* 入党申込み */
.section-ttl--join {
  font-size: 2rem;
}

/* 事務所のご案内：やや小さめ */
.section-ttl--office {
  font-size: 1.6rem;
  letter-spacing: 0.08em;
}

/* 下線 */
.section-ttl-line {
  width: 3.5rem;
  height: 3px;
  background: #ff0078;
  margin: 0.5rem auto 0;
  border-radius: 2px;
}

html, body {
  width: 100%;
  min-height: 100%;
  background: #fff;
  font-family: 'Noto Serif JP', 'Yu Mincho', '游明朝', 'Hiragino Mincho ProN', 'HGS明朝E', serif;
  -webkit-font-smoothing: antialiased;
}

/* =============================================
   ヒーローセクション
   ============================================= */
.hero {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  display: block;
  line-height: 0;
  position: relative;
  z-index: 1;
}

.hero__img {
  width: 100%;
  height: auto;
  display: block;
}

/* =============================================
   小画SP対応 (max-width: 360px)
   ============================================= */
@media screen and (max-width: 360px) {
  .hero__img {
    width: 100%;
  }
}

/* ==============================================
   ご挨拶セクション
   ============================================== */
.greeting {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  display: block;
  line-height: 0;
  margin-top: -130px;
  position: relative;
  z-index: 3;
}

.greeting__img {
  width: 100%;
  height: auto;
  display: block;
}

/* ==============================================
   ご挨拶セクション SP用
   ============================================== */

/* ---- セクション全体ラッパー ---- */
      .greeting--sp {
        display: block;
        width: 100%;
        position: relative;
        line-height: 1; /* 親の line-height:0 を上書き */
      }
      
      /* ---- 背景シェイプ（通常フローで配置・コンテンツを上に重ねる） ---- */
      .greeting__bg-shape {
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;      /* 画面幅に追従 */
        height: 820px;    /* 高さ固定 */
        object-fit: fill; /* 幅・高さに合わせて引き伸ばす */
        z-index: 0;
        pointer-events: none;
      }
      
      
      /* ---- インナーラッパー（背景の上にコンテンツを重ねる） ---- */
      .greeting__inner {
        position: relative;
        width: 100%;
        min-height: 820px;
        z-index: 1;
      }
  
  /* ---- タイトルラッパー（中央揃え） ---- */
  .greeting__title-wrap {
    text-align: center;
    padding-top: 155px;
    padding-bottom: 28px;
    position: relative;
    z-index: 2;
  }
  
  /* ---- タイトル「ご挨拶」画像 ---- */
  .greeting__title {
    display: inline-block;
    width: auto;
    max-width: 100px;
  }
  
  /* ---- 本文テキスト ---- */
  .greeting__body {
    position: relative;
    z-index: 2;
    padding: 0 44px;
    display: flex;
    flex-direction: column;
    gap: 1.4em;
  }
  
  .greeting__body p {
    font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', serif;
    font-size: 0.88rem;
    font-weight: 500;
    line-height: 2;
    color: #333333;
    letter-spacing: 0.08em;
    margin: 0;
  }
  
  /* ---- 署名 ---- */
  .greeting__sign {
    position: relative;
    z-index: 2;
    margin-top: 2em;
    padding-right: 44px;
    text-align: right;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.6em;
  }
  
  .greeting__sign-title {
    font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', serif ;
    font-weight: 500;
    font-style: normal;
    font-size: 0.8rem;
    color: #555;
    letter-spacing: 0.25em;
    white-space: nowrap;
  }
  
  .greeting__sign-name {
    display: block;
    height: 2rem;
    width: auto;
  }
  
  
  /* ---- 人物写真（右下・絶対配置） ---- */
  .greeting__person {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 52%;
    z-index: 1;
    display: none;
  }

/* PC用ポリシーライン画像 */
.policy__wave-bottom {
  display: none; /* SP: 非表示 */
}

@media screen and (min-width: 768px) {
  .policy__wave-bottom {
    display: block;
    width: 100%;
    line-height: 0;
  }
  
  .policy__wave-bottom img {
    width: 100%;
    height: auto;
    display: block;
  }
}



/* ==============================================
   政策セクション
   ============================================== */
.policy {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  background: #ffffff;
  padding-bottom: 12%;
}

/* タイトル「政策」 */
.policy__title-wrap {
  text-align: center;
  padding: 10% 0 6%;
}

/* SP: 政策リスト（縦1列） */
.policy__list {
  display: flex;
  flex-direction: column;
}

/* SP: 各政策アイテム */
.policy__item {
  padding: 0 6%;
  margin-bottom: 14%;
}

/* SP: アイコン（左）＋見出し（右）横並び */
.policy__item-grid {
  display: block;
}

.policy__item-icon {
  display: none; /* SPでは非表示（SP用num画像を別途使用） */
}

/* SP: ヘッダー（アイコン＋見出し横並び） */
.policy__item-header {
  display: flex;
  align-items: center;
  gap: 0;
  margin-bottom: 6%;
  margin-left: -6%;
}

/* SP: 右上見出しラップ */
.policy__item-title-wrap {
  display: flex;
  align-items: center;
  padding-left: 0.5rem;
  flex: 1;
}

/* SP: 左下スペーサーは非表示 */
.policy__item-spacer {
  display: none;
}

/* SP: 本文（全幅） */
.policy__item-body {
  display: flex;
  flex-direction: column;
  gap: 1.2em;
  padding-left: 0;
  padding-top: 0;
}

.policy__item-body3{
	padding-top:2vh;
}

/* SP: 番号画像 */
.policy__num-img {
  width: 35vw;
  max-width: 137px;
  height: auto;
  display: block;
  flex-shrink: 0;
}

/* SP: 政策タイトル */
.policy__item-title {
  font-size: 1rem;
  font-weight: 500;
  color: #222222;
  line-height: 1.8;
  letter-spacing: 0.05em;
  font-family: 'Noto Serif JP', serif;
  text-align: left;
  margin-left: -17.5vw;
}

/* 本文テキスト段落 */
.policy__item-body p {
  font-size: 0.88rem;
  font-weight: 400;
  line-height: 2;
  color: #333333;
  font-family: 'Noto Serif JP', serif;
  letter-spacing: 0.04em;
}

/* ==============================================
   プロフィールセクション
   ============================================== */
.profile {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  background: url('../images/profile-bg.png') no-repeat center top / 100% 100%;
}

/* SP：wave画像は非表示 */
.profile__wave-top,
.profile__wave-bottom {
  display: none;
}

.profile__wave-img {
  width: 100%;
  height: auto;
  display: block;
}

/* SP: ピンク背景内側エリア */
.profile__inner {
  background: transparent;
  padding-bottom: 8%;
  position: relative;
}

/* タイトル「プロフィール」 */
.profile__title-wrap {
  text-align: center;
  padding: 8% 0 5%;
}

/* SP: 縦積みレイアウト */
.profile__content {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* 左カラム：写真 */
.profile__left {
  display: flex;
  justify-content: center;
  margin-bottom: 0;
}

/* 人物写真（楕円形） */
.profile__img-wrap {
  position: relative;
  width: 55%;
  margin: 0 auto 6%;
}

.profile__img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 100% / 100%;
  object-fit: cover;
  aspect-ratio: auto;
}

/* チューリップ装飾 */
.profile__flower {
  position: absolute;
  bottom: -40px;
  left: -60px;
  width: 120px;
  height: auto;
  display: block;
}

/* 右カラム */
.profile__right {
  display: flex;
  flex-direction: column;
  gap: 1.4em;
}

/* 名前 */
.profile__name-wrap {
  text-align: center;
  padding: 0 8% 4%;
  margin-top: 50px;
}

.profile__name {
  font-size: 1.1rem;
  font-weight: 500;
  color: #222222;
  letter-spacing: 0.2em;
  font-family: 'Noto Serif JP', serif;
  margin-bottom: 0;
}

.profile__name-kana {
  font-size: 0.75rem;
  color: #555555;
  letter-spacing: 0.1em;
  font-family: 'Noto Serif JP', serif;
  font-weight: 400;
}

/* 本文テキスト */
.profile__body {
  padding: 0 8%;
  display: flex;
  flex-direction: column;
  gap: 1.4em;
  margin-bottom: 8%;
}

.profile__body p {
  font-size: 0.88rem;
  font-weight: 400;
  line-height: 2;
  color: #333333;
  font-family: 'Noto Serif JP', serif;
  letter-spacing: 0.04em;
}

/* 現在の主な役職 */
.profile__roles {
  padding: 0 8%;
}

.profile__roles-title {
  font-size: 0.85rem;
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.08em;
  font-family: 'Noto Serif JP', serif;
  margin-bottom: 0.8rem;
}

.profile__roles-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  padding: 0;
}

.profile__roles-list__3 {
  font-size: 0.75rem  !important;
}

@media screen and (min-width: 768px) {
  .profile__roles-list__3 {
    font-size: 0.95rem !important;
  }
}

.profile__roles-list li {
  font-size: 0.85rem;
  font-weight: 400;
  color: #333333;
  font-family: 'Noto Serif JP', serif;
  letter-spacing: 0.04em;
  padding-left: 1em;
  position: relative;
}



.profile__roles-list li::before {
  content: '・';
  position: absolute;
  left: 0;
  color: #333333;
}



/* ==============================================
   入党申込みセクション
   ============================================== */
.join {
  width: 100%;
  max-width: 375px;
  margin: 0 auto;
  background: #ffffff;
  padding: 10% 6% 14%;
}

.join__card {
  border: 1.5px solid #ff7d7e;
  border-radius: 16px;
  aspect-ratio: 1 / 1;
  padding: 6%;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.6rem;
}

/* タイトル「入党申込み」 */
.join__title-wrap {
  text-align: center;
}

.join__title {
  font-size: 1.6rem;
  font-weight: 400;
  color: #ff7d7e;
  letter-spacing: 0.1em;
  font-family: 'Noto Serif JP', serif;
  font-style: italic;
}

.join__title-line {
  width: 80%;
  height: 1.5px;
  background: #ff0078;
  margin: 0.6rem auto 0;
  border-radius: 1px;
}

/* 説明テキスト */
.join__text {
  font-size: 0.95rem;
  font-weight: 400;
  line-height: 1.9;
  color: #333333;
  font-family: 'Noto Serif JP', serif;
  letter-spacing: 0.05em;
}

/* ボタン */
.join__btn {
  display: inline-block;
  width: auto;
  padding: 4.5% 8%;
  background: #eb1e50;
  color: #ffffff;
  font-size: 1rem;
  font-weight: 400;
  font-family: 'Noto Serif JP', serif;
  letter-spacing: 0.15em;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  border-radius: 8px;
}

/* ==============================================
   事務所のご案内セクション
   ============================================== */
.office {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  background: #ffffff;
  overflow: hidden;
}

.office__wave-top {
  width: 100%;
  height: 50px;
  display: block;
  margin-bottom: -1px;
}

.office__wave-top svg {
  width: 100%;
  height: 100%;
  display: block;
}

.office__inner {
  background: #fde8ee;
  padding-bottom: 10%;
}

.office__title-wrap {
  text-align: center;
  padding: 8% 0 6%;
}

.office__title {
  font-size: 1.3rem;
  font-weight: 400;
  color: #ff0078;
  letter-spacing: 0.15em;
  font-family: 'Noto Serif JP', serif;
  font-style: italic;
}

.office__title-line {
  width: 3rem;
  height: 2px;
  background: #ff0078;
  margin: 0.5rem auto 0;
  border-radius: 1px;
}

.office__item {
  padding: 0 6%;
  margin-bottom: 8%;
}

.office__name {
  font-size: 0.95rem;
  font-weight: 700;
  color: #222222;
  font-family: 'Noto Serif JP', serif;
  letter-spacing: 0.05em;
  margin-bottom: 0.4rem;
  margin-left: -0.5em !important;
}


/* 事務所：中見出し（支部名） */
.office__subtitle {
  font-weight: 500;
  color: #000000;
  font-family: 'Noto Serif JP', serif;
  letter-spacing: 0.08em;
  text-align: center;
  margin-top: 0.8rem;
}

/* PC版のみ表示 */
.office__subtitle--pc { 
  display: none;
  padding-top: 5vh;
  font-size: 1.65rem; /* PC版はここで固定サイズ */
  letter-spacing: 0.4rem;
}

/* SP版のみ表示 */
.office__subtitle--sp {
  text-align: left; 
  display: block; 
  padding: 5% 6%;
  width: 100%;
  box-sizing: border-box;
  font-size: 3.5vw;
}

/* 事務所：名前タイトル */
.office__nametitle {
  font-size: 1.5rem;
  font-weight: 500;
  color: #222222;
  font-family: 'Noto Serif JP', serif;
  letter-spacing: 0.05em;
  text-align: left; /* SP: 左寄せ */
  padding:0 6%;
}

/* PC: 中央揃え */
@media screen and (min-width: 768px) {
  .office__nametitle {
    text-align: center;
    margin-top: 30px;
    font-size: 3rem;
  }
}


.office__address {
  font-size: 0.85rem;
  font-weight: 400;
  line-height: 1.9;
  color: #333333;
  font-family: 'Noto Serif JP', serif;
  letter-spacing: 0.04em;
  margin-bottom: 0.8rem;
}

.office__map {
  width: 100%;
  border-radius: 8px;
  overflow: hidden;
}

.office__map iframe {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  height: auto;
  border: 0;
}

.office__wave-bottom {
  display: none;
}

.office__wave-bottom svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* ==============================================
   SNSセクション
   ============================================== */
.sns {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  background: #fde8ee;
  padding: 0 0 5vh 0!important; 
  
}

.sns__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.4rem;
}

.sns__title {
  font-size: 1rem;
  font-weight: 400;
  color: #333333;
  letter-spacing: 0.4em;
  font-family: 'Noto Serif JP', serif;
}

.sns__link {
  display: block;
}

/* SNSアイコン横並びラッパー */
.sns__icons {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 1.6rem;
}


.sns__icon {
  width: 52px;
  height: auto;
  display: block;
}

.sns__instagram {
  margin-top: 10vh;
  text-align: center;
  display: none;
}


/* ==============================================
   LINKセクション
   ============================================== */
.links {
  width: 100%;
  max-width: 375px;
  margin: 0 auto;
  background: #ffffff;
  padding: 10% 6% 14%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
}

.links__title {
  font-size: 1rem;
  font-weight: 400;
  color: #333333;
  letter-spacing: 0.4em;
  font-family: 'Noto Serif JP', serif;
}

.links__list {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.2rem;
  width: 100%;
}

.links__item {
  display: block;
  width: 80%;
}

.links__item img {
  width: 100%;
  height: auto;
  display: block;
}

/* ==============================================
   フッター
   ============================================== */
.footer {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  background: #ff7d7e;
  padding: 5% 0;
  text-align: center;
}

.footer__text {
  font-size: 0.9rem;
  font-weight: 400;
  color: #ffffff;
  letter-spacing: 0.15em;
  font-family: 'Courier New', Courier, monospace;
}

@media screen and (max-width: 767px) {
  .policy__item-header {
    display: block;
    position: relative;
    margin-bottom: 6%;
    margin-left: -6%;
  }

  .policy__num-img {
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 35vw;
    max-width: 137px;
    height: auto;
    display: block;
  }

  .policy__item-title {
    position: relative;
    left: 32vw;
    font-size: 1rem;
    font-weight: 500;
    color: #222222;
    line-height: 1.8;
    letter-spacing: 0.05em;
    font-family: 'Noto Serif JP', serif;
    text-align: left;
    margin-left: 0;
  }
}


/* ==============================================
   PC レスポンシブ対応 (min-width: 768px)
   ============================================== */

/* SP用要素はデフォルト表示、PC用は非表示 */
.hero__img--pc,
.greeting__pc {
  display: none;
}

@media screen and (min-width: 768px) {

  /* PC: SPヘッダー非表示、PCヘッダー表示 */
  .sp-header {
    display: none;
  }

  .site-header {
    display: block;
    position: sticky;
    top: 0;
    z-index: 1000;
    width: 100%;
    background: #ffffff;
    border-bottom: 2px solid #ff0078;
  }

  .site-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
    height: 70px;
  }

  /* 左：ロゴ */
  .site-header__logo {
    display: block;
    flex-shrink: 0;
    text-decoration: none;
  }

  .site-header__logo-img {
    height: 44px;
    width: auto;
    display: block;
  }

  /* 中央：ナビ */
  .site-header__nav {
    display: flex;
    align-items: center;
    gap: 2.5rem;
  }

  .site-header__nav-link {
    font-size: 1.1rem;
    font-weight: 400;
    color: #333333;
    font-family: 'Noto Serif JP', serif;
    letter-spacing: 0.1em;
    text-decoration: none;
    transition: color 0.2s;
  }

  .site-header__nav-link:hover {
    color: #ff0078;
  }

  /* 右：入党CTAボタン */
  .site-header__cta {
    display: inline-block;
    background: #f92b65;
    color: #ffffff;
    font-size: 1.1rem;
    font-weight: 400;
    font-family: 'Noto Serif JP', serif;
    letter-spacing: 0.1em;
    text-decoration: none;
    padding: 10px 28px;
    border-radius: 2px;
    white-space: nowrap;
    transition: opacity 0.2s;
    flex-shrink: 0;
  }

  .site-header__cta:hover {
    opacity: 0.85;
  }

  /* 全セクションの幅をPC用に拡張 */
  .hero, .greeting, .policy, .profile,
  .join, .office, .sns, .links, .footer {
    max-width: 100%;
  }

  /* ヒーロー：SP非表示、PC表示 */
  .hero__img--sp { display: none; }
  .hero {
    max-width: 100%;
    overflow: visible;
    line-height: 0;
    margin: 0;
    padding: 0;
  }
  .hero__img--pc {
    display: block;
    width: 100%;
    height: auto;
    vertical-align: bottom;
  }
  /* PC時はgreetingの被さりをリセット */
  .greeting {
    margin-top: 0;
  }

  /* ご挨拶：SP非表示、PC表示 */
  .greeting__img--sp { display: none; }

  /* SP用ご挨拶ラッパーをPC時に非表示 */
  .greeting--sp {
    display: none;
  }


  .greeting__pc {
    display: flex;
    flex-direction: column;
    align-items: center;
    background: #ffffff;
    padding: 80px 0 80px;
    margin-top: 0;
  }

  .greeting__pc-ttl {
    width: auto;
    max-width: 200px;
    height: auto;
    display: block;
    margin: 0 auto 50px;
  }

  .greeting__pc-img {
    width: 100%;
    max-width: 800px;
    height: auto;
    display: block;
    margin: 0 auto;
  }

  /* 政策セクション */
  .policy {
    padding-bottom: 80px;
  }

  .policy__title-wrap {
    max-width: 960px;
    margin-left: auto;
    margin-right: auto;
    padding: 80px 0 50px;
  }

  /* PC用: 縦1列のリスト、各アイテムが2×2グリッド */
  .policy__list {
    max-width: 960px;
    margin: 0 auto;
    padding: 0 60px;
    gap: 80px;
    display: flex;
    flex-direction: column;
  }

  .policy__item {
    padding: 0;
    margin-bottom: 0;
  }

  /* PC用: ヘッダーをgridに（左=アイコン、右=見出し） */
  .policy__item-header {
    display: grid;
    grid-template-columns: 250px minmax(0, 50%);
    align-items: center;
    gap: 0;
    margin-bottom: 0;
    margin-left: 0;
  }

  /* PC用 番号アイコン */
  .policy__num-img {
    width: 250px;
    max-width: 250px;
  }

  /* PC用 見出し */
  .policy__item-title {
    font-size: 1.5rem;
    line-height: 1.9;
    margin-left: 0;
  }

  /* PC用 本文：アイコン幅分インデント */
  .policy__item-body {
    display: flex;
    flex-direction: column;
    gap: 1.2em;
    padding-left: 250px;
    padding-top: 16px;
  }

  /* PC用 本文 */
  .policy__item-body p {
    font-size: 0.95rem;
  }

  /* プロフィール */
  .profile {
    max-width: 100%;
  }

  /* PC: wave画像を表示 */
  .profile__wave-top,
  .profile__wave-bottom {
    display: block;
    width: 100%;
    line-height: 0;
    padding: 22px 0;
  }

  /* PC: SP用背景PNGを無効化→白背景に */
  .profile {
    background: #ffffff;
  }

  .profile__inner {
    max-width: 960px;
    margin: 0 auto;
    background: transparent;
    padding: 40px 60px 80px;
  }

  .profile__title-wrap {
    text-align: center;
    padding: 20px 0 60px;
  }

  /* PC: 左右2カラム */
  .profile__content {
    flex-direction: row;
    align-items: flex-start;
    gap: 60px;
  }

  /* PC: 左カラム（写真）固定幅 */
  .profile__left {
    flex-shrink: 0;
    width: 280px;
    margin-bottom: 0;
    justify-content: flex-start;
  }

  .profile__img-wrap {
    width: 100%;
    margin: 0;
  }

  .profile__flower {
    bottom: -40px;
    left: -60px;
    width: 130px;
  }

  /* PC: 右カラム（テキスト） */
  .profile__right {
    flex: 1;
    gap: 1.8em;
  }

  .profile__name-wrap {
    text-align: left;
    padding: 0;
    margin-top: 0;
  }

  .profile__name {
    font-size: 1.4rem;
  }

  .profile__name-kana {
    font-size: 0.95rem;
  }

  .profile__body {
    padding: 0;
    margin-bottom: 0;
  }

  .profile__body p {
    font-size: 0.95rem;
  }

  .profile__roles {
    padding: 0;
  }

  .profile__roles-title {
    font-size: 0.95rem;
  }

  .profile__roles-list li {
    font-size: 0.92rem;
  }

  /* 入党申込み */
  .join {
    padding: 60px;
  }

  .join__card {
    max-width: 500px;
    margin: 0 auto;
  }

  /* 事務所 */
  .office {
    max-width: 100%;
    background: #fde8ee;
  }

  .office__inner {
    max-width: 1200px;
    margin: 0 auto;
    background: transparent;
    display: flex;
    flex-wrap: wrap;
    gap: 60px;
    padding: 80px 80px;
  }

  .office__title-wrap {
    width: 100%;
    padding: 0 0 20px;
  }

  /* PC版：SP非表示→PC表示に切り替え */
  .office__subtitle--sp { display: none; }
  .office__subtitle--pc {
    display: block;
  }

  .office__item {
    flex: 1;
    min-width: 400px;
  }

  .office__name {
    font-size: 1.5rem;
    margin-bottom: 0.8rem;
    text-indent: -0.5em !important;
  padding-left: 0.5em !important; 
  }

  .office__address {
    font-size: 1.2rem;
    line-height: 2.2;
  }

  .office__map iframe {
    aspect-ratio: 1 / 1;
    height: auto;
  }

  /* SNS・LINK */
  .sns, .links {
    padding: 60px 40px;
  }

  /* PC用：セクション見出し画像サイズ（SP変更なし） */
  .section-ttl-img--seisaku { max-width: 15%; }
  .section-ttl-img--profile { max-width: 45%; }
  .section-ttl-img--touin   { max-width: 90%; }
  .section-ttl-img--info    { max-width: 65%; }

  /* PC用：LINKを横1列3つ並び */
  .links__list {
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 2rem;
  }

  .links__item {
    width: 100%;
    flex: 1;
    max-width: 280px;
  }

  /* フッター */
  .footer {
    max-width: 100%;
    padding: 30px 0;
  }
}

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html, body {
  background: #ffffff;
  width: 100%;
  font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', 'Yu Mincho', serif;
  -webkit-font-smoothing: antialiased;
  color: #333333;
}

/* ========== PC HEADER ========== */
.site-header {
  display: none;
  position: sticky;
  top: 0;
  z-index: 1000;
  width: 100%;
  background: #ffffff;
  border-bottom: 2px solid #ff0078;
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
  height: 70px;
}

.site-header__logo-img {
  height: 40px;
  width: auto;
  display: block;
}

.site-header__nav {
  display: flex;
  align-items: center;
  gap: 40px;
}

.site-header__nav-link {
  text-decoration: none;
  color: #333333;
  font-size: 1.1rem;
  font-weight: 500;
  font-family: 'Noto Serif JP', serif;
  letter-spacing: 0.1em;
  transition: color 0.2s;
}

.site-header__nav-link:hover {
  color: #ff0078;
}

.site-header__cta {
  display: inline-block;
  background: #f92b65;
  color: #ffffff;
  font-size: 1.1rem;
  font-weight: 400;
  font-family: 'Noto Serif JP', serif;
  letter-spacing: 0.1em;
  text-decoration: none;
  padding: 10px 24px;
  border-radius: 2px;
  transition: opacity 0.2s;
}

.site-header__cta:hover {
  opacity: 0.85;
}

/* ========== SP HEADER ========== */
.sp-header {
  display: block;
  position: sticky;
  top: 0;
  z-index: 1000;
  width: 100%;
  background: #ff7d7e;
}

.sp-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 22px 35px;
  max-width: 375px;
  margin: 0 auto;
}

.sp-header__logo {
  display: block;
  text-decoration: none;
  flex-shrink: 0;
}

.sp-header__logo-img {
  height: 32px;
  width: auto;
  display: block;
}

.sp-header__cta {
  display: inline-block;
  background: #f92b65;
  color: #ffffff;
  font-size: 0.8rem;
  font-weight: 400;
  font-family: 'Noto Serif JP', serif;
  letter-spacing: 0.08em;
  text-decoration: none;
  padding: 8px 14px;
  border-radius: 2px;
  white-space: nowrap;
  transition: opacity 0.2s;
}

.sp-header__cta:hover {
  opacity: 0.85;
}

/* ========== PAGE TITLE ========== */
.page-title {
  background: #ff7d7e;
  text-align: center;
  padding: 50px 20px 40px;
}

.page-title h1 {
  font-size: 1.8rem;
  font-weight: 500;
  color: #ffffff;
  letter-spacing: 0.2em;
  font-family: 'Noto Serif JP', serif;
}

/* ========== BREADCRUMB ========== */
.breadcrumb {
  background: #f7f7f7;
  padding: 12px 20px;
  border-bottom: 1px solid #e0e0e0;
}

.breadcrumb__inner {
  max-width: 900px;
  margin: 0 auto;
  font-size: 0.8rem;
  color: #888;
}

.breadcrumb a {
  color: #888;
  text-decoration: none;
}

.breadcrumb a:hover {
  color: #ff7d7e;
  text-decoration: underline;
}

.breadcrumb span {
  margin: 0 6px;
}

/* ========== MAIN CONTENT ========== */
.policy-page {
  max-width: 900px;
  margin: 0 auto;
  padding: 60px 40px 100px;
}

.policy-section {
  margin-bottom: 60px;
}

.policy-section h2 {
  font-size: 1.25rem;
  font-weight: 700;
  color: #ffffff;
  background: #ff7d7e;
  padding: 14px 22px;
  letter-spacing: 0.1em;
  font-family: 'Noto Serif JP', serif;
  margin-bottom: 24px;
  border-left: 6px solid #d9484a;
}

.policy-section p {
  font-size: 0.95rem;
  line-height: 2.1;
  color: #333333;
  margin-bottom: 16px;
  font-family: 'Noto Serif JP', serif;
  letter-spacing: 0.04em;
}

.policy-section p:last-child {
  margin-bottom: 0;
}

.policy-section ul {
  margin: 16px 0 16px 1.5em;
  list-style: disc;
}

.policy-section ul li {
  font-size: 0.95rem;
  line-height: 2;
  color: #333333;
  margin-bottom: 8px;
  font-family: 'Noto Serif JP', serif;
  letter-spacing: 0.04em;
}

.policy-section a {
  color: #ff7d7e;
  text-decoration: underline;
}

.policy-section a:hover {
  opacity: 0.75;
}

/* ========== FOOTER ========== */
.footer {
  background: #ff7d7e;
  text-align: center;
  padding: 30px 20px;
}



.footer__text {
  color: #ffffff;
  font-size: 0.9rem;
  font-weight: 400;
  letter-spacing: 0.15em;
  font-family: Courier, monospace;
}




/* =============================================
   フッターリンク
   ============================================= */
   a.footer__link {
    color: #ffffff !important;
    text-decoration: none !important;
  }
  
  a.footer__link:hover {
    opacity: 0.75;
  }
  
  footer a,
  footer a:link,
  footer a:visited {
    color: #ffffff !important;
    text-decoration: none !important;
  }
  

/* ========== PC MEDIA QUERY ========== */
@media (min-width: 768px) {
  .sp-header {
    display: none;
  }

  .site-header {
    display: block;
  }

  .page-title {
    padding: 80px 40px 60px;
  }

  .page-title h1 {
    font-size: 2.4rem;
  }

  .policy-page {
    padding: 80px 60px 120px;
  }

  .policy-section h2 {
    font-size: 1.4rem;
    padding: 16px 28px;
  }

  .policy-section p,
  .policy-section ul li {
    font-size: 1rem;
  }
}

#sb_instagram {
  width: 97.5% !important;
  height: 97.5% !important;
  margin: 0 auto !important;
}
