@charset "UTF-8";
/**
 * プライバシーポリシーページスタイル
 * OnFleek - 個人情報保護方針ページ
 * 
 * @package OnFleek
 * @version 1.0
 * @author OnFleek
 * 
 * 主な機能:
 * - レスポンシブ対応のプライバシーポリシーレイアウト
 * - OnFleekブランドカラーとの統一
 * - 読みやすいタイポグラフィ設計
 * - アクセシビリティを考慮したデザイン
 * 
 * 制限事項:
 * - front.scssとの整合性を保つ必要がある
 * - 変数ファイル(_variables.scss)に依存
 */
:root {
  --viewport-width: min(100vw, 1600px);
  --b: calc(var(--viewport-width) / 160);
}

#privacypolicy {
  position: relative;
  min-height: 100vh;
  padding: max(20rem, 150px) 0 max(5rem, 40px);
}
#privacypolicy h2::before {
  display: none;
}
#privacypolicy .privacypolicy__header {
  text-align: center;
  margin-bottom: max(10rem, 50px);
}
#privacypolicy .privacypolicy__header .privacypolicy__title {
  color: #fff;
  font-size: max(6rem, 40px);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.1em;
  margin-bottom: max(2rem, 15px);
}
@media screen and (max-width: 768px) {
  #privacypolicy .privacypolicy__header .privacypolicy__title {
    font-size: 8vw;
  }
}
@media screen and (max-width: 550px) {
  #privacypolicy .privacypolicy__header .privacypolicy__title {
    font-size: 7vw;
  }
}
#privacypolicy .privacypolicy__header .privacypolicy__subtitle {
  color: rgba(255, 255, 255, 0.8);
  font-size: max(2rem, 16px);
  font-weight: 500;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 550px) {
  #privacypolicy .privacypolicy__header .privacypolicy__subtitle {
    font-size: 3.5vw;
  }
}
#privacypolicy .privacypolicy__content {
  border-radius: 20px;
  padding: max(4rem, 30px);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  -webkit-box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
          box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 550px) {
  #privacypolicy .privacypolicy__content {
    padding: max(2.5rem, 20px);
    border-radius: 15px;
  }
}
#privacypolicy .privacypolicy__section {
  margin-bottom: max(4rem, 30px);
}
#privacypolicy .privacypolicy__section:last-child {
  margin-bottom: 0;
}
#privacypolicy .privacypolicy__section h2 {
  color: #fff;
  font-size: max(2.8rem, 22px);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.05em;
  margin-bottom: max(2rem, 15px);
  padding-bottom: max(1rem, 8px);
  border-bottom: 2px solid rgba(255, 0, 0, 0.2);
}
@media screen and (max-width: 768px) {
  #privacypolicy .privacypolicy__section h2 {
    font-size: 4vw;
  }
}
@media screen and (max-width: 550px) {
  #privacypolicy .privacypolicy__section h2 {
    font-size: 5vw;
  }
}
#privacypolicy .privacypolicy__section p {
  color: #fff;
  font-size: max(1.6rem, 14px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.05em;
  margin-bottom: max(1.5rem, 12px);
}
@media screen and (max-width: 550px) {
  #privacypolicy .privacypolicy__section p {
    font-size: 3.5vw;
    line-height: 1.9;
  }
}
#privacypolicy .privacypolicy__section p:last-child {
  margin-bottom: 0;
}
#privacypolicy .privacypolicy__section p a {
  color: #fff;
  text-decoration: underline;
  -webkit-transition: color 0.3s ease;
  transition: color 0.3s ease;
}
#privacypolicy .privacypolicy__section p a:hover {
  color: #C30404;
}
#privacypolicy .privacypolicy__section p strong {
  font-weight: 600;
  color: #fff;
}
#privacypolicy .privacypolicy__list {
  list-style: none;
  padding: 0;
  margin: max(2rem, 15px) 0;
}
#privacypolicy .privacypolicy__list li {
  position: relative;
  color: #fff;
  font-size: max(1.6rem, 14px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.05em;
  padding-left: max(2.5rem, 20px);
  margin-bottom: max(1rem, 8px);
}
@media screen and (max-width: 550px) {
  #privacypolicy .privacypolicy__list li {
    font-size: 3.5vw;
    padding-left: max(2rem, 16px);
  }
}
#privacypolicy .privacypolicy__list li::before {
  content: "●";
  position: absolute;
  left: 0;
  top: 0;
  color: #fff;
  font-size: max(1.2rem, 10px);
  line-height: 1.8;
}
#privacypolicy .privacypolicy__list li:last-child {
  margin-bottom: 0;
}
#privacypolicy .privacypolicy__contact {
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: #fff;
  border-radius: 15px;
  padding: max(3rem, 25px);
  margin-top: max(4rem, 30px);
}
@media screen and (max-width: 550px) {
  #privacypolicy .privacypolicy__contact {
    padding: max(2rem, 16px);
    border-radius: 10px;
  }
}
#privacypolicy .privacypolicy__contact h2 {
  color: #00041B;
  border-bottom: 2px solid rgba(255, 0, 0, 0.3);
  margin-bottom: max(2.5rem, 20px);
}
#privacypolicy .privacypolicy__contact .privacypolicy__contact-info p {
  color: #00041B;
  margin-bottom: max(1.2rem, 10px);
}
#privacypolicy .privacypolicy__contact .privacypolicy__contact-info p strong {
  display: inline-block;
  min-width: max(8rem, 70px);
  color: #00041B;
  font-weight: 600;
}
@media screen and (max-width: 550px) {
  #privacypolicy .privacypolicy__contact .privacypolicy__contact-info p strong {
    display: block;
    margin-bottom: max(0.5rem, 4px);
  }
}
#privacypolicy .privacypolicy__contact .privacypolicy__contact-info p a {
  color: #00041B;
  font-weight: 500;
  text-decoration: none;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
#privacypolicy .privacypolicy__contact .privacypolicy__contact-info p a:hover {
  color: #C30404;
  text-decoration: underline;
}
#privacypolicy .privacypolicy__footer {
  text-align: center;
  margin-top: max(3rem, 25px);
  padding-top: max(2rem, 15px);
  border-top: 1px solid rgba(0, 4, 27, 0.2);
}
#privacypolicy .privacypolicy__footer .privacypolicy__updated {
  color: #fff;
  font-size: max(1.4rem, 12px);
  font-weight: 300;
  letter-spacing: 0.05em;
  margin: 0;
}
@media screen and (max-width: 550px) {
  #privacypolicy .privacypolicy__footer .privacypolicy__updated {
    font-size: 3vw;
  }
}
@media screen and (max-width: 550px) {
  #privacypolicy .privacypolicy__header {
    margin-bottom: max(3rem, 25px);
  }
  #privacypolicy .privacypolicy__section {
    margin-bottom: max(3rem, 25px);
  }
}