/* ============================================================
   fp.css — front-page.php 専用スタイル
   スマホピッとイン大分駅前店
   テーマカラー: #e83828（赤）/ #ffbd00（黄）/ #000（黒）
   ブレイクポイント: 768px（既存共通CSSに合わせる）
   ============================================================ */

/* ─── 横スクロール防止（SP横スペース対策） ──────────── */
/* body に overflow-x:hidden を入れると iOS で position:fixed が
   viewport 固定でなく body 固定になり、fixed-menu が壊れるため html のみに適用 */
html {
  overflow-x: hidden;
  max-width: 100%;
}

/* ─── slick-theme.css の margin-bottom を打ち消す ─────── */
.slick-dotted.slick-slider {
  margin-bottom: 0 !important;
}

/* ─── SPスライダーをPC表示で確実に非表示（common.css補強） ─ */
.slider__main--sp {
  display: none !important;
}

/* ─── スライダー（.rec）マージン・幅 調整 ─────────────── */
.rec {
  margin-top: 0 !important;
}
@media screen and (max-width: 768px) {
  .rec {
    width: 100% !important;
    border-radius: 0 !important;
  }
}

/* ─── slick 高さ問題の根本修正 ─────────────────────────
   slickはJSで.slick-listに height:Xpx をインラインセット。
   画像ロード前に初期化された場合やSPスライダーの干渉で
   値が不正になることがある。
   height:auto !important でJSの誤値を上書きし、
   スライド画像の自然な高さをCSSが決定するようにする。
   overflow:hidden はslick.cssで設定済みのため一枚ずつ表示は維持。
   ─────────────────────────────────────────────────── */
.rec .slick-list {
  height: auto !important;
}
.rec .slick-slide {
  height: auto !important;
}
.rec .slick-slide img {
  display: block;
  width: 100%;
  height: auto;
}

/* ─── キャラクターをスライド底部に重ねる ────────────────
   .slider に position:relative を設定し、
   キャラ画像のbottom基準を .slider の実高さに変更。      */
.rec .slider {
  position: relative;
  overflow: hidden; /* 余分な高さをクリップ */
}
.slider__main-img {
  z-index: 5;
  bottom: -10px !important;
}
@media screen and (max-width: 768px) {
  .slider__main-img {
    bottom: 0 !important;
  }
}

/* ─── HERO ─────────────────────────────────────────── */
.fp-hero {
  position: relative;
  overflow: hidden;
  width: 100%;
  max-width: 100vw;
}
.fp-hero__bg {
  overflow: hidden;
  line-height: 0; /* 画像下の謎スペース除去 */
}
.fp-hero__bg img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}
/* キャッチ画像はPC/SP切り替え（既存クラス .pc / .sp を流用） */

/* CTAオーバーレイ：SPのみ表示 */
.fp-hero__overlay {
  display: none;
}
@media screen and (max-width: 768px) {
  /* 文字（バッジ・タイトル・タグ）+ CTA をまとめてヒーロー画像の下部に配置 */
  .fp-hero__overlay {
    display: block;
    position: absolute;
    bottom: 0; /* 画像の一番下を基準に配置（さらに下げたい場合はここは変えず padding-top を減らす） */
    left: 0;
    width: 100%;
    /* 上部は透明グラデで画像を見せる */
    background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.45) 65%, transparent 100%);
    padding: 8vw 4vw 3vw; /* 画像最下部ギリギリまで下げる */
    box-sizing: border-box;
  }
}

/* SEOイントロ（大分でスマホ修理なら…）をSPでは非表示 */
@media screen and (max-width: 768px) {
  .section__seo-intro {
    display: none !important;
  }
}

.fp-hero__badge {
  display: inline-block;
  background: #ffbd00;
  color: #000;
  font-size: 3vw;
  font-weight: 900;
  padding: 1vw 3vw;
  border-radius: 3px;
  margin-bottom: 2vw;
}
.fp-hero__title {
  font-size: 5.5vw;
  font-weight: 900;
  color: #fff;
  line-height: 1.4;
  margin-bottom: 2.5vw;
}
.fp-hero__title span {
  color: #ffbd00;
}
.fp-hero__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 2vw;
  margin-bottom: 3vw;
}
.fp-hero__tag {
  background: rgba(255,255,255,0.15);
  border: 1px solid rgba(255,255,255,0.4);
  color: #fff;
  font-size: 2.8vw;
  font-weight: 700;
  padding: 1vw 2.5vw;
  border-radius: 4px;
}
/* SP: CTAボタン — ヒーロー画像下部に2つ並べる */
.fp-hero__cta-tel {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2vw;
  background: #e83828;
  color: #fff;
  font-size: 4.5vw;
  font-weight: 900;
  padding: 3.5vw 4vw;
  border-radius: 6px;
  margin-bottom: 2.5vw;
  box-shadow: 0 4px 16px rgba(232,56,40,0.5);
  text-align: center;
}
.fp-hero__cta-line {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2vw;
  background: #06C755;
  color: #fff;
  font-size: 4vw;
  font-weight: 900;
  padding: 3vw 4vw;
  border-radius: 6px;
  text-align: center;
}

/* PC: ヒーローの下にCTA帯を表示 */
.fp-hero__cta-bar {
  display: none;
}
@media screen and (min-width: 769px) {
  .fp-hero__cta-bar {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    padding: 18px 40px;
    background: #000;
  }
  .fp-hero__cta-bar a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 17px;
    font-weight: 900;
    padding: 14px 36px;
    border-radius: 6px;
    white-space: nowrap;
  }
  .fp-hero__cta-bar .cta-tel {
    background: #e83828;
    color: #fff;
  }
  .fp-hero__cta-bar .cta-line {
    background: #06C755;
    color: #fff;
  }
}

/* ─── TRUST BAR ─────────────────────────────────────── */
.fp-trust {
  background: #e83828;
  color: #fff;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  text-align: center;
  padding: 12px 0;
  border-top: 3px solid #c42d1d;
}
.fp-trust__item {
  padding: 8px 4px;
  border-right: 1px solid rgba(255,255,255,0.25);
}
.fp-trust__item:last-child {
  border-right: none;
}
.fp-trust__num {
  font-size: 22px;
  font-weight: 900;
  line-height: 1;
  margin-bottom: 4px;
  color: #ffbd00;
}
.fp-trust__num sup {
  font-size: 12px;
}
.fp-trust__label {
  font-size: 10px;
  line-height: 1.4;
  opacity: 0.9;
}
@media screen and (min-width: 769px) {
  .fp-trust {
    padding: 20px 0;
  }
  .fp-trust__num {
    font-size: 32px;
  }
  .fp-trust__num sup {
    font-size: 14px;
  }
  .fp-trust__label {
    font-size: 13px;
  }
  .fp-trust__item {
    padding: 16px 8px;
  }
}
@media screen and (max-width: 768px) {
  .fp-trust__num {
    font-size: 5.5vw;
  }
  .fp-trust__label {
    font-size: 2.5vw;
  }
}

/* ─── TICKER ─────────────────────────────────────────── */
.fp-ticker {
  background: #ffbd00;
}
.fp-ticker .latest__icon {
  background: #000000;
}
.fp-ticker .latest__icon i {
  color: #fff;
}
/* スライダー直前のため下余白をリセット */
.fp-ticker .latest {
  margin-bottom: 0;
}

/* ─── PICKUP（デバイスメニュー）─────────────────────── */
.fp-pickup {
  padding: 40px 0;
  background: #fff;
}
.fp-pickup .section__title {
  padding-bottom: 24px;
}
.fp-pickup-grid {
  width: 1140px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
@media screen and (max-width: 1220px) {
  .fp-pickup-grid {
    width: 93.46vw;
  }
}
@media screen and (max-width: 768px) {
  .fp-pickup {
    padding: 8vw 0;
  }
  .fp-pickup-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 3.5vw;
  }
}
.fp-pickup-item {
  position: relative;
}
.fp-pickup-item.featured .fp-pickup-link {
  border-color: #e83828;
  background: #fff5f5;
}
.fp-pickup-item .fp-pickup-badge {
  position: absolute;
  top: -8px;
  right: 8px;
  background: #e83828;
  color: #fff;
  font-size: 10px;
  font-weight: 900;
  padding: 3px 8px;
  border-radius: 10px;
  z-index: 1;
  white-space: nowrap;
}
.fp-pickup-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 4px solid #e83828;
  border-radius: 6px;
  padding: 28px 16px 20px;
  text-align: center;
  color: #000;
  height: 100%;
  box-sizing: border-box;
  transition: background 0.2s, color 0.2s;
}
@media screen and (max-width: 768px) {
  .fp-pickup-link {
    padding: 5vw 3vw;
    border-width: 3px;
  }
}
.fp-pickup-link:hover {
  background: #e83828;
  opacity: 1;
}
.fp-pickup-link:hover img {
  filter: brightness(0) invert(1);
}
.fp-pickup-link:hover span {
  color: #fff;
}
.fp-pickup-img {
  display: block;
  height: 60px;
  width: auto;
  margin: 0 auto 12px;
}
@media screen and (max-width: 768px) {
  .fp-pickup-img {
    height: 14vw;
    margin-bottom: 3vw;
  }
}
.fp-pickup-label {
  font-size: 16px;
  font-weight: 700;
  color: #e83828;
  line-height: 1.3;
}
@media screen and (max-width: 1220px) and (min-width: 769px) {
  .fp-pickup-label {
    font-size: clamp(12px, 1.5vw, 16px);
  }
}
@media screen and (max-width: 768px) {
  .fp-pickup-label {
    font-size: 3.2vw;
  }
}
.fp-pickup-from {
  font-size: 12px;
  color: #555;
  margin-top: 4px;
}
@media screen and (max-width: 1220px) and (min-width: 769px) {
  .fp-pickup-from {
    font-size: clamp(10px, 1.1vw, 12px);
  }
}
@media screen and (max-width: 768px) {
  .fp-pickup-from {
    font-size: 2.6vw;
  }
}
.fp-pickup-from strong {
  color: #e83828;
  font-weight: 900;
}

/* ─── ANDROID 強化セクション ─────────────────────────── */
.fp-android {
  background: #000;
  color: #fff;
  padding: 60px 0;
}
@media screen and (max-width: 768px) {
  .fp-android {
    padding: 11.68vw 0;
  }
}
.fp-android__inner {
  width: 1140px;
  margin: 0 auto;
}
@media screen and (max-width: 1220px) {
  .fp-android__inner {
    width: 93.46vw;
  }
}
/* PC: 左右2カラムグリッド */
@media screen and (min-width: 769px) {
  .fp-android__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
  }
  /* 左カラム：max-width制限を解除してカラム幅に追従 */
  .fp-android__col-left .fp-android__desc {
    max-width: none;
  }
  .fp-android__col-left .fp-android__cta {
    max-width: none;
  }
  /* 右カラム：修理カードを縦1列に */
  .fp-android__col-right .fp-android__repairs {
    grid-template-columns: 1fr;
    margin-bottom: 0;
  }
}
.fp-android__eyebrow {
  font-size: 12px;
  font-weight: 700;
  color: #3DDC84;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin-bottom: 8px;
}
@media screen and (max-width: 768px) {
  .fp-android__eyebrow {
    font-size: 3vw;
  }
}
.fp-android__title {
  font-size: 44px;
  font-weight: 900;
  line-height: 1.25;
  margin-bottom: 16px;
}
.fp-android__title em {
  color: #3DDC84;
  font-style: normal;
}
@media screen and (max-width: 768px) {
  .fp-android__title {
    font-size: 8vw;
  }
}
.fp-android__desc {
  font-size: 15px;
  color: rgba(255,255,255,0.75);
  line-height: 1.9;
  margin-bottom: 28px;
  max-width: 580px;
}
@media screen and (max-width: 768px) {
  .fp-android__desc {
    font-size: 3.6vw;
    margin-bottom: 6vw;
  }
}
/* メーカータグ */
.fp-android__makers {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 32px;
}
@media screen and (max-width: 768px) {
  .fp-android__makers {
    gap: 2vw;
    margin-bottom: 6vw;
  }
}
.fp-maker-tag {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(61,220,132,0.35);
  color: #3DDC84;
  font-size: 13px;
  font-weight: 700;
  padding: 6px 14px;
  border-radius: 5px;
}
@media screen and (max-width: 768px) {
  .fp-maker-tag {
    font-size: 3vw;
    padding: 1.5vw 3vw;
  }
}
/* 修理リスト */
.fp-android__repairs {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 28px;
}
@media screen and (max-width: 768px) {
  .fp-android__repairs {
    grid-template-columns: 1fr;
    gap: 3vw;
    margin-bottom: 6vw;
  }
}
.fp-android-repair {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 10px;
  padding: 16px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
@media screen and (max-width: 768px) {
  .fp-android-repair {
    padding: 4vw;
  }
}
.fp-android-repair__left {
  display: flex;
  align-items: center;
  gap: 12px;
}
.fp-android-repair__icon {
  font-size: 24px;
  flex-shrink: 0;
}
@media screen and (max-width: 768px) {
  .fp-android-repair__icon {
    font-size: 6vw;
  }
}
.fp-android-repair__name {
  font-size: 15px;
  font-weight: 800;
}
@media screen and (max-width: 768px) {
  .fp-android-repair__name {
    font-size: 3.7vw;
  }
}
.fp-android-repair__time {
  font-size: 11px;
  color: rgba(255,255,255,0.5);
  margin-top: 2px;
}
@media screen and (max-width: 768px) {
  .fp-android-repair__time {
    font-size: 2.8vw;
  }
}
.fp-android-repair__price {
  text-align: right;
  flex-shrink: 0;
}
.fp-android-repair__from {
  font-size: 10px;
  color: rgba(255,255,255,0.45);
}
.fp-android-repair__amount {
  font-size: 20px;
  font-weight: 900;
  color: #3DDC84;
  line-height: 1.1;
}
@media screen and (max-width: 768px) {
  .fp-android-repair__amount {
    font-size: 5vw;
  }
}
.fp-android-repair__tax {
  font-size: 9px;
  color: rgba(255,255,255,0.35);
}
/* CTA */
.fp-android__cta {
  display: block;
  background: #3DDC84;
  color: #000;
  font-size: 17px;
  font-weight: 900;
  padding: 16px;
  border-radius: 8px;
  text-align: center;
  max-width: 440px;
}
@media screen and (max-width: 768px) {
  .fp-android__cta {
    font-size: 4.2vw;
    padding: 4vw;
    max-width: 100%;
  }
}
.fp-android__cta:hover {
  opacity: 0.88;
}

/* ─── FLOW（修理の流れ）───────────────────────────── */
.fp-flow {
  background: #f3f3f3;
  padding: 60px 0;
}
@media screen and (max-width: 768px) {
  .fp-flow {
    padding: 11.68vw 0;
  }
}
.fp-flow__inner {
  width: 1140px;
  margin: 0 auto;
}
@media screen and (max-width: 1220px) {
  .fp-flow__inner {
    width: 93.46vw;
  }
}
.fp-flow-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  position: relative;
}
/* 接続ライン（PC）：各ステップ円の中央を結ぶ */
.fp-flow-steps::before {
  content: '';
  position: absolute;
  top: 23px; /* 円の半径(24px) - 1px */
  left: calc(12.5% + 10px);  /* 第1ステップ中央から */
  right: calc(12.5% + 10px); /* 第4ステップ中央まで */
  height: 2px;
  background: linear-gradient(to right, #e83828, #c42d1d);
  z-index: 0;
}
@media screen and (max-width: 900px) {
  .fp-flow-steps {
    grid-template-columns: repeat(2, 1fr);
  }
  .fp-flow-steps::before {
    display: none;
  }
}
@media screen and (max-width: 768px) {
  .fp-flow-steps {
    grid-template-columns: 1fr;
    gap: 0;
  }
}
.fp-flow-step {
  text-align: center;
  position: relative;
  z-index: 1;
  background: #f3f3f3;
  padding: 0 8px;
}
@media screen and (max-width: 768px) {
  .fp-flow-step {
    display: flex;
    align-items: flex-start;
    gap: 4vw;
    text-align: left;
    padding: 0 0 6vw;
    position: relative;
  }
  .fp-flow-step::before {
    content: '';
    position: absolute;
    left: 5.5vw;
    top: 13vw;
    bottom: 0;
    width: 2px;
    background: #e83828;
  }
  .fp-flow-step:last-child::before {
    display: none;
  }
}
.fp-flow-step__num {
  width: 48px;
  height: 48px;
  background: #e83828;
  color: #fff;
  font-size: 20px;
  font-weight: 900;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 12px;
  flex-shrink: 0;
}
@media screen and (max-width: 768px) {
  .fp-flow-step__num {
    width: 11vw;
    height: 11vw;
    font-size: 5vw;
    margin: 0;
  }
}
.fp-flow-step__body {
  flex: 1;
}
.fp-flow-step__title {
  font-size: 15px;
  font-weight: 900;
  margin-bottom: 6px;
  color: #000;
}
@media screen and (max-width: 768px) {
  .fp-flow-step__title {
    font-size: 4vw;
    padding-top: 2vw;
  }
}
.fp-flow-step__desc {
  font-size: 13px;
  color: #444;
  line-height: 1.7;
}
@media screen and (max-width: 768px) {
  .fp-flow-step__desc {
    font-size: 3.3vw;
  }
}
.fp-flow-step__time {
  display: inline-block;
  background: #e83828;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 4px;
  margin-top: 8px;
}
@media screen and (max-width: 768px) {
  .fp-flow-step__time {
    font-size: 2.8vw;
    padding: 1vw 2.5vw;
  }
}

/* ─── PRICE HIGHLIGHT（料金訴求）─────────────────────── */
.fp-price-bar {
  background: #e83828;
  color: #fff;
  padding: 28px 0;
}
.fp-price-bar__inner {
  width: 1140px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: nowrap;
}
.fp-price-bar__text {
  flex-shrink: 0;
  min-width: 220px;
}
@media screen and (max-width: 1220px) {
  .fp-price-bar__inner {
    width: 93.46vw;
  }
}
@media screen and (max-width: 768px) {
  .fp-price-bar {
    padding: 6vw 0;
  }
  .fp-price-bar__inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 4vw;
  }
}
.fp-price-bar__text h3 {
  font-size: 18px;
  font-weight: 900;
  margin-bottom: 6px;
  line-height: 1.5;
}
.fp-price-bar__text p {
  font-size: 14px;
  opacity: 0.85;
}
@media screen and (max-width: 768px) {
  .fp-price-bar__text h3 {
    font-size: 5.5vw;
  }
  .fp-price-bar__text p {
    font-size: 3.3vw;
  }
}
.fp-price-bar__plans {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
@media screen and (max-width: 768px) {
  .fp-price-bar__plans {
    width: 100%;
    gap: 2.5vw;
  }
}
.fp-plan {
  background: rgba(255,255,255,0.12);
  border: 2px solid rgba(255,255,255,0.3);
  border-radius: 8px;
  padding: 10px 16px;
  text-align: center;
  min-width: 110px;
}
.fp-plan.popular {
  border-color: #ffbd00;
  background: rgba(255,189,0,0.15);
}
@media screen and (max-width: 768px) {
  .fp-plan {
    flex: 1;
    min-width: 0;
    padding: 2.5vw 3vw;
  }
}
.fp-plan__label {
  font-size: 10px;
  font-weight: 700;
  opacity: 0.75;
  margin-bottom: 3px;
}
.fp-plan.popular .fp-plan__label {
  color: #ffbd00;
  opacity: 1;
}
.fp-plan__name {
  font-size: 13px;
  font-weight: 900;
  margin-bottom: 2px;
}
.fp-plan__price {
  font-size: 18px;
  font-weight: 900;
  color: #ffbd00;
}
.fp-plan__price span {
  font-size: 11px;
  font-weight: 400;
  color: rgba(255,255,255,0.6);
}
@media screen and (max-width: 768px) {
  .fp-plan__price {
    font-size: 4.5vw;
  }
  .fp-plan__label {
    font-size: 2.5vw;
  }
  .fp-plan__name {
    font-size: 3vw;
  }
}
.fp-price-bar__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #ffbd00;
  color: #000;
  font-size: 15px;
  font-weight: 900;
  padding: 14px 24px;
  border-radius: 8px;
  white-space: nowrap;
  flex-shrink: 0;
}
@media screen and (max-width: 768px) {
  .fp-price-bar__cta {
    width: 100%;
    box-sizing: border-box; /* width:100% + padding のはみ出し防止 */
    justify-content: center;
    font-size: 4.2vw;
    padding: 4vw;
  }
}

/* ─── TECHNIQUE（既存スタイルに加算）─────────────────── */
.section__technique .section__title {
  padding-bottom: 50px;
}
@media screen and (max-width: 768px) {
  .section__technique .section__title {
    padding-bottom: 8vw;
  }
}
/* technque-mainの間にmargin */
.section__technique-main + .section__technique-main {
  margin-top: 60px;
}
@media screen and (max-width: 768px) {
  .section__technique-main + .section__technique-main {
    margin-top: 0;
  }
}

/* ─── SEO INTRO（既存 + inner制限） ──────────────────── */
.section__seo-intro .inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
}
@media screen and (max-width: 1220px) {
  .section__seo-intro .inner {
    max-width: 93.46vw;
    padding: 0;
  }
}
@media screen and (max-width: 768px) {
  .section__seo-intro .inner {
    max-width: 100%;
    padding: 0;
  }
}
.section__seo-intro {
  margin: 20px auto;
  width: 1140px;
}
@media screen and (max-width: 1220px) {
  .section__seo-intro {
    width: 93.46vw;
  }
}
@media screen and (max-width: 768px) {
  .section__seo-intro {
    width: auto;
    margin: 5vw 3.27vw;
  }
}

/* ─── BANNER 左カラム：アクセスマップ ──────────────── */
.banner__map {
  padding: 0 0 8px;
}
.banner__map-name {
  font-size: 15px;
  font-weight: 900;
  margin-bottom: 6px;
}
.banner__map-addr {
  font-size: 13px;
  color: #333;
  line-height: 1.7;
  margin-bottom: 4px;
}
.banner__map-time {
  font-size: 13px;
  color: #555;
  margin-bottom: 10px;
}
.banner__map iframe {
  display: block;
  width: 100%;
  border-radius: 6px;
}
@media screen and (max-width: 768px) {
  .banner__map {
    padding: 0;
  }
  .banner__map-name {
    font-size: 4vw;
  }
  .banner__map-addr,
  .banner__map-time {
    font-size: 3.2vw;
  }
}

/* ─── SNS バナー ─────────────────────────────────────── */
.fp-sns {
  background: #fff;
  padding: 40px 0;
}
.fp-sns__inner {
  width: 1140px;
  margin: 0 auto;
}
@media screen and (max-width: 1220px) {
  .fp-sns__inner {
    width: 93.46vw;
  }
}
@media screen and (max-width: 768px) {
  .fp-sns {
    padding: 8vw 0;
  }
}
.fp-sns__title {
  font-size: 22px;
  font-weight: 900;
  margin-bottom: 6px;
}
.fp-sns__sub {
  font-size: 14px;
  color: #555;
  margin-bottom: 20px;
}
@media screen and (max-width: 768px) {
  .fp-sns__title {
    font-size: 5.5vw;
  }
  .fp-sns__sub {
    font-size: 3.5vw;
  }
}
.fp-sns__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
@media screen and (max-width: 900px) {
  .fp-sns__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width: 768px) {
  .fp-sns__grid {
    grid-template-columns: 1fr;
    gap: 3vw;
  }
}
.fp-sns-card {
  display: flex;
  align-items: center;
  gap: 14px;
  border-radius: 10px;
  padding: 20px 20px;
  color: #fff;
  font-weight: 700;
  transition: opacity 0.2s;
}
.fp-sns-card:hover {
  opacity: 0.88;
}
.fp-sns-card.tiktok {
  background: #010101;
  border: 1px solid #333;
}
.fp-sns-card.instagram {
  background: linear-gradient(135deg, #833AB4, #C13584, #E1306C);
}
.fp-sns-card.line {
  background: #06C755;
}
.fp-sns-card__icon {
  font-size: 28px;
  flex-shrink: 0;
}
@media screen and (max-width: 768px) {
  .fp-sns-card__icon {
    font-size: 7vw;
  }
}
.fp-sns-card__body {}
.fp-sns-card__name {
  font-size: 15px;
  font-weight: 900;
}
.fp-sns-card__desc {
  font-size: 12px;
  opacity: 0.8;
  margin-top: 2px;
}
@media screen and (max-width: 768px) {
  .fp-sns-card__name {
    font-size: 4vw;
  }
  .fp-sns-card__desc {
    font-size: 3vw;
  }
}
.fp-sns-card__arrow {
  margin-left: auto;
  font-size: 18px;
  flex-shrink: 0;
}
