/*
Theme Name: PetAngels Child
Template: generatepress
Version: 1.0
*/

:root {
  --gold: #B8960C;
  --gold-light: #D4B896;
  --gold-dark: #8B7355;
  --cream: #FFFDF8;
  --cream-dark: #F5F0E8;
  --brown: #3D3028;
}

* { box-sizing: border-box; }
body { margin: 0; padding: 0; font-family: 'YuMincho', 'Yu Mincho', serif; background: var(--cream); overflow-x: hidden; }

/* ヘッダー */
.pa-header { background: #fff; }
.pa-header-inner { display: flex; align-items: center; justify-content: space-between; padding: 12px 40px; flex-wrap: wrap; gap: 12px; }
.pa-logo a { text-decoration: none; color: var(--brown); display: flex; flex-direction: column; }
.pa-logo-sub { font-size: 11px; color: var(--gold); letter-spacing: 0.1em; }
.pa-logo-main { font-size: 28px; font-weight: bold; letter-spacing: 0.05em; }
.pa-logo-en { font-size: 11px; color: #999; letter-spacing: 0.2em; }
.pa-header-tel a { text-decoration: none; color: var(--brown); text-align: right; }
.pa-tel-label { display: block; font-size: 11px; color: #666; }
.pa-tel-num { display: block; font-size: 28px; font-weight: bold; color: #c0392b; letter-spacing: 0.05em; }
.pa-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 0; }
.pa-nav ul li a { display: block; padding: 16px 20px; color: var(--brown); text-decoration: none; font-size: 14px; letter-spacing: 0.1em; border-left: 1px solid #eee; }
.pa-nav ul li a:hover { color: var(--gold); }
.pa-gold-line { height: 3px; background: linear-gradient(90deg, var(--gold-dark), var(--gold), var(--gold-dark)); }

/* HERO */
.pa-hero { position: relative; min-height: 560px; height: auto; background: var(--cream); display: flex; align-items: center; overflow: hidden; padding: 60px 0; }
.pa-hero-text { position: relative; z-index: 2; padding: 60px 60px 60px 80px; max-width: 55%; }
.pa-hero-main { font-size: 34px; line-height: 1.8; color: var(--brown); letter-spacing: 0.05em; margin: 0 0 20px; }
.pa-hero-sub { font-size: 13px; line-height: 2; color: #666; margin: 0 0 28px; }
.pa-hero-cta { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 8px; }
.pa-btn-tel { background: var(--gold); color: #fff; padding: 14px 28px; border-radius: 50px; font-size: 16px; font-weight: bold; text-decoration: none; }
.pa-btn-line { background: #06C755; color: #fff; padding: 14px 28px; border-radius: 50px; font-size: 16px; font-weight: bold; text-decoration: none; }
.pa-hero-dog { position: absolute; right: 0; bottom: 0; z-index: 1; }
.pa-hero-dog img { height: 540px; width: auto; display: block; mix-blend-mode: multiply; max-width: 100%; }

/* ペットエンジェルとは */
.pa-about { padding: 80px 40px; background: #fff; text-align: center; }
.pa-about h2 { font-size: 24px; color: var(--brown); margin: 0 0 24px; }
.pa-about p { font-size: 14px; line-height: 2; color: #555; margin: 0 auto 32px; max-width: 700px; }
.pa-btn-look { display: inline-block; border: 1px solid var(--gold); color: var(--gold); padding: 12px 36px; border-radius: 4px; text-decoration: none; font-size: 14px; letter-spacing: 0.1em; }
.pa-btn-look:hover { background: var(--gold); color: #fff; }

/* 共通 */
.pa-section-title { font-size: 28px; color: var(--brown); text-align: center; margin: 0 0 48px; line-height: 1.6; }

/* 選ばれる理由 */
.pa-why { padding: 80px 40px; background: var(--cream); text-align: center; }
.pa-why-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; max-width: 1100px; margin: 0 auto; }
.pa-why-card { background: #fff; border: 1px solid #E8D5A3; border-radius: 12px; padding: 24px 16px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; min-height: 220px; }
.pa-why-icon { font-size: 28px; }
.pa-why-card h3 { font-size: 13px; color: var(--gold); border: 1px solid var(--gold); border-radius: 4px; padding: 5px 10px; width: 100%; text-align: center; display: flex; align-items: center; justify-content: center; min-height: 36px; margin: 0; }
.pa-why-card p { font-size: 12px; color: #555; line-height: 1.8; text-align: left; margin: 0; }

/* 流れ */
.pa-flow { padding: 80px 40px; background: var(--cream-dark); text-align: center; }
.pa-flow-steps { display: flex; align-items: center; justify-content: center; gap: 8px; max-width: 1100px; margin: 0 auto; }
.pa-flow-step { background: #fff; border-radius: 12px; padding: 20px 16px; width: 200px; height: 180px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; }
.pa-flow-num { font-size: 28px; font-weight: bold; color: var(--gold); line-height: 1; }
.pa-flow-step h3 { font-size: 15px; color: var(--brown); border: 1px solid var(--gold); border-radius: 4px; padding: 5px 12px; width: 100%; text-align: center; display: flex; align-items: center; justify-content: center; min-height: 36px; margin: 0; }
.pa-flow-step p { font-size: 12px; color: #666; line-height: 1.6; text-align: center; margin: 0; }
.pa-flow-arrow { font-size: 20px; color: var(--gold); flex-shrink: 0; }

/* 料金CTA */
.pa-price-cta { text-align: center; margin: 40px; padding: 32px; background: var(--cream-dark); border-radius: 12px; border: 1px solid #E8D5A3; }
.pa-price-cta p { font-size: 15px; color: #555; margin: 0 0 16px; }
.pa-price-cta a { display: inline-block; background: var(--gold); color: #fff; padding: 14px 36px; border-radius: 50px; font-size: 16px; font-weight: bold; text-decoration: none; }

/* LINE CTA */
.pa-line-cta { padding: 60px 40px; background: linear-gradient(135deg, #6B5744, #8B7355); text-align: center; }
.pa-cta-lead { color: var(--gold-light); font-size: 14px; margin: 0 0 12px; }
.pa-line-cta h2 { color: #fff; font-size: 28px; line-height: 1.6; margin: 0 0 32px; }
.pa-cta-btns { display: flex; gap: 20px; justify-content: center; flex-wrap: wrap; margin: 0 0 12px; }
.pa-btn-line-cta { background: #06C755; color: #fff; padding: 14px 36px; border-radius: 50px; font-size: 16px; font-weight: bold; text-decoration: none; }
.pa-btn-tel-cta { background: transparent; color: #fff; padding: 14px 36px; border-radius: 50px; border: 2px solid var(--gold); font-size: 16px; font-weight: bold; text-decoration: none; }
.pa-cta-note { color: var(--gold-light); font-size: 12px; margin: 0; }

/* フッター */
.pa-footer { background: #fff; }
.pa-footer-inner { padding: 30px 40px; text-align: center; }
.pa-footer-nav ul { list-style: none; margin: 0 0 16px; padding: 0; display: flex; justify-content: center; gap: 32px; flex-wrap: wrap; }
.pa-footer-nav ul li a { color: var(--brown); text-decoration: none; font-size: 13px; }
.pa-copyright { color: #999; font-size: 12px; margin: 0; }

/* 固定CTAバー */
.pa-fixed-bar { position: fixed; bottom: 0; left: 0; width: 100%; display: none; z-index: 999; box-shadow: 0 -2px 8px rgba(0,0,0,0.15); }
.pa-fixed-tel { flex: 1; background: var(--gold); color: #fff; text-align: center; padding: 16px; font-size: 15px; font-weight: bold; text-decoration: none; display: block; }
.pa-fixed-line { flex: 1; background: #06C755; color: #fff; text-align: center; padding: 16px; font-size: 15px; font-weight: bold; text-decoration: none; display: block; }

/* ハンバーガーボタン（スマホのみ表示） */
.pa-hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  cursor: pointer;
  padding: 4px;
  background: none;
  border: none;
  z-index: 1001;
}
.pa-hamburger span {
  display: block;
  width: 100%;
  height: 2px;
  background: var(--brown);
  transition: transform 0.3s, opacity 0.3s;
  transform-origin: center;
}
.pa-hamburger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.pa-hamburger.is-open span:nth-child(2) { opacity: 0; }
.pa-hamburger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* スマホドロワーメニュー */
.pa-drawer {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(61,48,40,0.96);
  z-index: 1000;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
}
.pa-drawer.is-open { display: flex; }
.pa-drawer ul { list-style: none; margin: 0; padding: 0; text-align: center; }
.pa-drawer ul li { border-bottom: 1px solid rgba(255,255,255,0.1); }
.pa-drawer ul li a {
  display: block;
  padding: 20px 60px;
  color: #fff;
  text-decoration: none;
  font-size: 18px;
  letter-spacing: 0.15em;
}
.pa-drawer-close {
  position: absolute;
  top: 20px;
  right: 20px;
  background: none;
  border: none;
  color: #fff;
  font-size: 32px;
  cursor: pointer;
  line-height: 1;
}
.pa-drawer-tel {
  margin-top: 32px;
  color: var(--gold);
  font-size: 22px;
  font-weight: bold;
  text-decoration: none;
}

/* スマホ */
@media (max-width: 768px) {
  .pa-header-inner { padding: 12px 16px; }
  .pa-tel-num { font-size: 20px; }
  .pa-nav { display: none; }
  .pa-hamburger { display: flex; }
  .pa-hero { height: auto; flex-direction: column; }
  .pa-hero-text { max-width: 100%; padding: 30px 20px 0; text-align: center; }
  .pa-hero-main { font-size: 22px; }
  .pa-hero-sub { font-size: 12px; display: none; }
  .pa-hero-sub-sp { display: block; font-size: 12px; line-height: 1.9; color: #666; margin: 0 0 20px; }
  .pa-hero-dog { position: relative; text-align: center; }
  .pa-hero-dog img { height: 260px; mix-blend-mode: normal; }
  .pa-hero-cta { flex-direction: column; align-items: center; padding: 0 20px 20px; }
  .pa-btn-tel, .pa-btn-line { width: 100%; max-width: 280px; text-align: center; }
  .pa-about, .pa-why, .pa-flow, .pa-line-cta { padding: 40px 16px; }
  .pa-why-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .pa-flow-steps { flex-direction: column; align-items: center; }
  .pa-flow-arrow { transform: rotate(90deg); }
  .pa-flow-step { width: 100%; max-width: 280px; height: auto; }
  .pa-price-cta { margin: 20px 16px; padding: 20px 16px; }
  .pa-price-cta a { display: block; width: 100%; }
  .pa-cta-btns { flex-direction: column; align-items: center; }
  .pa-btn-line-cta, .pa-btn-tel-cta { width: 100%; max-width: 280px; text-align: center; }
  .pa-fixed-bar { display: flex; }
  body { padding-bottom: 56px; }
}

/* ===== 料金ページ ===== */
.pa-page-header { padding: 30px 40px 20px; background: var(--cream); border-bottom: 1px solid #E8D5A3; }
.pa-page-header h1 { font-size: 28px; color: var(--brown); margin: 0 0 8px; }
.pa-breadcrumb { font-size: 12px; color: #999; }
.pa-breadcrumb a { color: #999; text-decoration: none; }
.pa-price-wrap { max-width: 1100px; margin: 0 auto; padding: 60px 40px; }
.pa-price-section-title { font-size: 24px; color: var(--brown); margin: 0 0 8px; text-align: center; }
.pa-price-lead { text-align: center; color: #666; font-size: 14px; margin: 0 0 32px; }
.pa-price-table-wrap { overflow-x: auto; margin-bottom: 40px; }
.pa-price-table { width: 100%; border-collapse: collapse; font-size: 14px; min-width: 600px; }
.pa-price-table th { background: var(--gold-dark); color: #fff; padding: 12px 16px; text-align: center; font-weight: normal; }
.pa-price-table td { padding: 14px 16px; border-bottom: 1px solid #E8D5A3; text-align: center; vertical-align: middle; }
.pa-price-table td small { display: block; font-size: 11px; color: #999; margin-top: 4px; }
.pa-price-table tbody tr:nth-child(even) td { background: var(--cream); }
.pa-price-table .member-col { color: var(--gold); font-weight: bold; }
.pa-price-table .member-price { color: var(--gold); }
.pa-price-extra td { background: #FFF8E8 !important; font-size: 13px; }
.pa-price-options { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 40px; }
.pa-price-option-card { background: var(--cream); border: 1px solid #E8D5A3; border-radius: 8px; padding: 20px 16px; }
.pa-price-option-card h3 { font-size: 14px; color: var(--gold); border-bottom: 1px solid #E8D5A3; padding-bottom: 8px; margin: 0 0 12px; }
.pa-price-option-card dl { margin: 0; }
.pa-price-option-card dt { font-size: 12px; color: #666; margin-top: 8px; }
.pa-price-option-card dd { font-size: 14px; color: var(--brown); font-weight: bold; margin: 2px 0 0 0; }
.pa-simulator { background: var(--cream-dark); border: 1px solid #E8D5A3; border-radius: 12px; padding: 40px; margin-bottom: 32px; text-align: center; }
.pa-simulator h2 { font-size: 22px; color: var(--brown); margin: 0 0 8px; }
.pa-simulator > p { color: #666; font-size: 13px; margin: 0 0 24px; }
.pa-sim-form { max-width: 500px; margin: 0 auto 24px; text-align: left; }
.pa-sim-row { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
.pa-sim-row label { font-size: 14px; color: var(--brown); min-width: 80px; }
.pa-sim-row input[type="number"] { border: 1px solid #D4B896; border-radius: 6px; padding: 8px 12px; font-size: 16px; width: 100px; background: #fff; }
.pa-sim-row small { font-size: 11px; color: #999; }
.pa-sim-result { max-width: 400px; margin: 0 auto; }
.pa-sim-price-row { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; background: #FAF6EE; border-radius: 8px; margin-bottom: 8px; }
.pa-sim-price-row.kojin { background: #F5F0E8; }
.pa-sim-type { font-size: 14px; color: #555; }
.pa-sim-amount { font-size: 24px; font-weight: bold; color: var(--gold-dark); }
.pa-sim-note { font-size: 11px; color: #999; margin-top: 8px; }
.pa-price-note { background: var(--cream); border-left: 3px solid var(--gold); padding: 16px 20px; border-radius: 0 8px 8px 0; }
.pa-price-note p { font-size: 12px; color: #666; margin: 0 0 4px; line-height: 1.8; }
@media (max-width: 768px) {
  .pa-price-wrap { padding: 30px 16px; }
  .pa-price-options { grid-template-columns: 1fr 1fr; }
  .pa-simulator { padding: 24px 16px; }
  .pa-sim-amount { font-size: 20px; }
}

/* ロゴ画像 */
.pa-logo-img { height: 80px; width: auto; display: block; }
.pa-tel-img { height: 60px; width: auto; display: block; }
@media (max-width: 768px) {
  .pa-logo-img { height: 50px; }
  .pa-tel-img { display: none; }
}

/* こだわり・プランページ共通 */
.pa-quality-wrap, .pa-plan-wrap { max-width: 1100px; margin: 0 auto; padding: 60px 40px; }
.pa-quality-section, .pa-plan-card { display: flex; align-items: center; gap: 60px; margin-bottom: 60px; }
.pa-quality-section.reverse, .pa-plan-card.reverse { flex-direction: row-reverse; }
.pa-quality-img, .pa-plan-img { flex: 1; }
.pa-quality-img img, .pa-plan-img img { width: 100%; height: auto; border-radius: 8px; }
.pa-quality-text, .pa-plan-text { flex: 1; }
.pa-quality-text h2, .pa-plan-text h2 { font-size: 24px; color: var(--brown); margin: 0 0 20px; line-height: 1.6; }
.pa-quality-text p, .pa-plan-text p { font-size: 14px; line-height: 2; color: #555; margin: 0 0 16px; }
.pa-plan-list { list-style: none; padding: 0; margin: 0 0 24px; }
.pa-plan-list li { font-size: 14px; color: #555; padding: 8px 0 8px 20px; border-bottom: 1px solid #E8D5A3; position: relative; }
.pa-plan-list li::before { content: '▸'; color: var(--gold); position: absolute; left: 0; }
.pa-quality-points { padding: 60px 0; }

/* お問い合わせページ */
.pa-contact-wrap { max-width: 900px; margin: 0 auto; padding: 60px 40px; }
.pa-contact-tel-section { text-align: center; margin-bottom: 60px; }
.pa-contact-lead { color: #999; font-size: 14px; margin: 0 0 8px; }
.pa-contact-tel-section h2 { font-size: 24px; color: var(--brown); margin: 0 0 32px; }
.pa-contact-btns { display: flex; gap: 20px; justify-content: center; flex-wrap: wrap; }
.pa-btn-tel-large { background: var(--gold); color: #fff; padding: 20px 40px; border-radius: 8px; text-decoration: none; font-size: 22px; font-weight: bold; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.pa-btn-tel-large span { font-size: 12px; font-weight: normal; opacity: 0.9; }
.pa-btn-line-large { background: #06C755; color: #fff; padding: 20px 40px; border-radius: 8px; text-decoration: none; font-size: 22px; font-weight: bold; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.pa-btn-line-large span { font-size: 12px; font-weight: normal; opacity: 0.9; }
.pa-contact-form-section { margin-bottom: 60px; }
.pa-contact-form-section h2, .pa-access-section h2 { font-size: 22px; color: var(--brown); margin: 0 0 12px; }
.pa-contact-form-section p { font-size: 14px; color: #666; line-height: 1.8; margin: 0 0 24px; }
.pa-access-info dl { display: grid; grid-template-columns: 120px 1fr; gap: 12px 20px; background: var(--cream); padding: 24px; border-radius: 8px; border: 1px solid #E8D5A3; }
.pa-access-info dt { font-size: 13px; color: var(--gold); font-weight: bold; }
.pa-access-info dd { font-size: 14px; color: #555; margin: 0; line-height: 1.8; }

@media (max-width: 768px) {
  .pa-quality-wrap, .pa-plan-wrap, .pa-contact-wrap { padding: 30px 16px; }
  .pa-quality-section, .pa-plan-card, .pa-quality-section.reverse, .pa-plan-card.reverse { flex-direction: column; gap: 24px; }
  .pa-contact-btns { flex-direction: column; align-items: center; }
  .pa-btn-tel-large, .pa-btn-line-large { width: 100%; max-width: 300px; font-size: 18px; }
  .pa-access-info dl { grid-template-columns: 1fr; }
}

/* ヘッダーレイアウト修正 */
.pa-header-inner { flex-wrap: wrap; justify-content: space-between; }
.pa-nav { width: 100%; border-top: 1px solid #eee; margin-top: 8px; }
.pa-nav ul { justify-content: center; }
.pa-nav ul li a { border-left: none; border-right: 1px solid #eee; padding: 14px 32px; }

/* ===== アニメーション ===== */
.fade-in-up { opacity: 0; transform: translateY(40px); transition: opacity 0.8s ease, transform 0.8s ease; }
.fade-in-left { opacity: 0; transform: translateX(-40px); transition: opacity 0.9s ease, transform 0.9s ease; }
.fade-in-right { opacity: 0; transform: translateX(40px); transition: opacity 0.9s ease, transform 0.9s ease; }

/* ============================================
   追記 確定版
   ============================================ */

/* ヘッダー スクロール固定 */
.pa-header {
  position: sticky;
  top: 0;
  z-index: 1000;
}

/* HEROボタン下余白 */
.pa-hero-cta {
  margin-bottom: 0.75rem;
}

/* こだわりページ パララックスヒーロー */
.pa-quality-parallax {
  position: relative;
  width: 100%;
  height: 500px;
  background-image: url('/wp-content/themes/petangels-child/img/goma_opt/goma_front.jpg');
  background-size: cover;
  background-position: center 30%;
  background-attachment: fixed;
}
@supports (-webkit-touch-callout: none) {
  .pa-quality-parallax { background-attachment: scroll; }
}
.pa-quality-parallax-overlay {
  position: absolute;
  inset: 0;
  background: rgba(20, 15, 10, 0.52);
}
.pa-quality-parallax-text {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 2rem;
  color: #FFFDF8;
  z-index: 2;
}
.pa-quality-parallax-text h2 {
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  font-weight: 400;
  letter-spacing: 0.1em;
  margin-bottom: 1.5rem;
  color: #FFFDF8;
}
.pa-quality-parallax-text p {
  font-size: clamp(0.85rem, 1.5vw, 1rem);
  line-height: 2;
  color: rgba(255,253,248,0.9);
}

/* こだわりページ section余白 */
.pa-quality-wrap section {
  padding-top: 60px;
  padding-bottom: 60px;
}

/* 料金ページ パララックス */
.pa-price-parallax {
  position: relative;
  width: 100%;
  height: 320px;
  background-image: url('/wp-content/themes/petangels-child/img/goma_opt/goma_side1.jpg');
  background-size: cover;
  background-position: center 40%;
  background-attachment: fixed;
  margin: 3rem 0;
}
@supports (-webkit-touch-callout: none) {
  .pa-price-parallax { background-attachment: scroll; }
}
.pa-price-parallax-overlay {
  position: absolute;
  inset: 0;
  background: rgba(20, 15, 10, 0.50);
}
.pa-price-parallax-text {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}
.pa-price-parallax-text p {
  color: #FFFDF8;
  font-size: clamp(1.2rem, 2.5vw, 1.8rem);
  text-align: center;
  line-height: 1.8;
  letter-spacing: 0.08em;
}

/* お問い合わせページ パララックス */
.pa-contact-parallax {
  position: relative;
  width: 100%;
  height: 380px;
  background-image: url('/wp-content/themes/petangels-child/img/goma_opt/goma_tongue.jpg');
  background-size: cover;
  background-position: center 30%;
  background-attachment: fixed;
}
@supports (-webkit-touch-callout: none) {
  .pa-contact-parallax { background-attachment: scroll; }
}
.pa-contact-parallax-overlay {
  position: absolute;
  inset: 0;
  background: rgba(20, 15, 10, 0.50);
}
.pa-contact-parallax-text {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}
.pa-contact-parallax-text p {
  color: #FFFDF8;
  font-size: clamp(1rem, 2vw, 1.4rem);
  text-align: center;
  line-height: 2;
  letter-spacing: 0.08em;
}

/* お問い合わせ GoogleMap */
.pa-contact-map {
  width: 100%;
  margin-bottom: 2rem;
}

/* ナビ下padding削除 */
.pa-header-inner {
  padding-bottom: 0;
}

/* スマホ */
@media (max-width: 768px) {
  .pa-hero {
    background-color: #ffffff;
  }
  .pa-hero-text {
    background-color: #ffffff;
    padding: 20px 20px 0;
    text-align: center;
  }
  .pa-hero-dog {
    background-color: #ffffff;
  }
  .pa-hero-dog img {
    mix-blend-mode: normal;
    background-color: #ffffff;
  }
  .pa-quality-parallax,
  .pa-price-parallax,
  .pa-contact-parallax {
    background-attachment: scroll;
    height: 250px;
  }
  .pa-contact-map iframe {
    height: 250px;
  }
}





/* トップページ ゴマ×メッセージ パララックス */
.pa-goma-message {
  position: relative;
  min-height: 500px;
  background-size: cover;
  background-position: center 30%;
  background-attachment: fixed;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pa-goma-overlay {
  background: rgba(40, 30, 20, 0.45);
  width: 100%;
  min-height: 500px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 80px 40px;
  text-align: center;
}
.pa-goma-quote {
  font-size: 26px;
  color: #fff;
  line-height: 2;
  letter-spacing: 0.08em;
  margin: 0 0 24px;
  font-style: italic;
}
.pa-goma-sub {
  font-size: 15px;
  color: rgba(255,255,255,0.85);
  line-height: 2;
  margin: 0;
}
@media (max-width: 768px) {
  .pa-goma-message {
    background-attachment: scroll;
    min-height: 380px;
  }
  .pa-goma-overlay {
    padding: 60px 20px;
    min-height: 380px;
  }
  .pa-goma-quote { font-size: 18px; }
  .pa-goma-sub { font-size: 13px; }
}


/* ===== フェードインアニメーション 正式版 ===== */
.fade-in-up {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}
.fade-in-left {
    opacity: 0;
    transform: translateX(-30px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}
.fade-in-right {
    opacity: 0;
    transform: translateX(30px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}
.fade-in-up.is-visible,
.fade-in-left.is-visible,
.fade-in-right.is-visible {
    opacity: 1 !important;
    transform: translate(0, 0) !important;
}

/* ===== こだわりページ 丸画像フェードイン ===== */
.pa-quality-wrap section img {
    opacity: 0;
    transform: scale(0.9);
    transition: opacity 0.8s ease, transform 0.8s ease;
}
.pa-quality-wrap section img.is-visible {
    opacity: 1 !important;
    transform: scale(1) !important;
}

/* ===== 料金・お問い合わせ・プランページ フェードイン（安全版）===== */
.pa-price-option-card,
.pa-price-parallax-text,
.pa-contact-tel-section,
.pa-access-section,
.pa-plan-card {
    transform: translateY(20px);
    transition: transform 0.8s ease, opacity 0.6s ease;
    opacity: 1; /* 初期表示は見える状態 */
}
.pa-price-option-card.is-visible,
.pa-price-parallax-text.is-visible,
.pa-contact-tel-section.is-visible,
.pa-access-section.is-visible,
.pa-plan-card.is-visible {
    transform: translateY(0);
    opacity: 1;
}

/* ===== レイアウト修正 2026-06-17 ===== */

/* HERO 幅制限・背景色統一 */
.pa-hero {
    max-width: 1200px;
    margin: 0 auto;
    overflow: hidden;
    background-color: #FFFDF8;
}
.pa-hero-dog img {
    background-color: #FFFDF8;
    mix-blend-mode: multiply;
}

/* プランページ 法要・供養 上余白 */
.pa-plan-wrap .pa-gold-line + .pa-plan-card {
    margin-top: 20px;
}

/* お問い合わせ メールセクション 上余白 */
.pa-contact-form-section {
    margin-top: 20px;
}

/* ===== HERO 調整 2026-06-17 ===== */
.pa-hero {
    padding: 0 !important;
}
.pa-hero-dog img {
    background-color: #FFFDF8 !important;
    /* mix-blend-multiplyでクリーム背景に馴染ませる */
    mix-blend-mode: multiply;
    filter: brightness(0.97) sepia(0.08);
}

/* ===== HERO ゴマ画像 filter調整 ===== */
.pa-hero-dog img {
    filter: sepia(0.12) !important;
}
