@charset "UTF-8";
/* ============================================================
   petwedding LP mock — 下層ページ共通(style.css の後に読み込む)
   トークン・共通コンポーネントは style.css を継承する
   ============================================================ */

/* ---------- レイアウト ---------- */
.l-page { padding-top: calc(var(--header-h) + clamp(3rem, 5vw, 6rem)); }
.l-page__inner { max-width: 104rem; margin: 0 auto; padding: 0 var(--side); }
.l-page__inner.-narrow { max-width: 78rem; }

/* ---------- ページヒーロー ---------- */
.p-hero__en { font-family: var(--font-serif-en); font-size: 1.4rem; letter-spacing: 0.3em; color: var(--color-main2); text-transform: uppercase; }
.p-hero__title { font-family: var(--font-mincho); font-weight: 500; font-size: clamp(2.8rem, 4vw, 4rem); letter-spacing: 0.2em; color: var(--color-title); line-height: 1.5; margin-top: 0.6rem; }
.p-hero__lead { margin-top: 1.8rem; font-size: 1.35rem; line-height: 2.2; opacity: 0.8; max-width: 72rem; }
.p-hero__dashed {
  height: 1.4px; margin-top: clamp(2.8rem, 4vw, 4rem);
  background-image: repeating-linear-gradient(90deg, var(--color-line) 0, var(--color-line) var(--dash), transparent var(--dash), transparent calc(var(--dash) + var(--dash-gap)));
}

/* ダミー明示ラベル */
.p-dummy { margin-top: 1.4rem; font-size: 1.1rem; letter-spacing: 0.08em; color: var(--color-line); }

/* ---------- セクション ---------- */
.p-section { margin-top: clamp(5rem, 7vw, 8rem); }
.p-section__title { font-family: var(--font-mincho); font-weight: 500; font-size: clamp(1.9rem, 2.2vw, 2.4rem); letter-spacing: 0.18em; color: var(--color-title); margin-bottom: 2.2rem; }
.p-section__title .-en { font-family: var(--font-serif-en); font-size: 0.62em; letter-spacing: 0.24em; color: var(--color-main2); margin-left: 1.4rem; text-transform: uppercase; }

/* ---------- レポートカード ---------- */
.p-report-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(2.4rem, 3vw, 3.6rem) clamp(2rem, 2.6vw, 3.4rem); }
@media (max-width: 1023px) { .p-report-list { grid-template-columns: 1fr 1fr; } }
@media (max-width: 639px) { .p-report-list { grid-template-columns: 1fr; } }
.p-report-card a { display: block; color: inherit; text-decoration: none; }
.p-report-card__figure { aspect-ratio: 16 / 10; border-radius: var(--radius); overflow: hidden; }
.p-report-card__figure img { width: 100%; height: 100%; object-fit: cover; transition: transform 800ms var(--easeOutCubic); }
.p-report-card a:hover .p-report-card__figure img { transform: scale(1.05); }
.p-report-card__meta { display: flex; align-items: baseline; gap: 1.2rem; margin-top: 1.4rem; }
.p-report-card__date { font-family: var(--font-serif-en); font-size: 1.25rem; letter-spacing: 0.12em; color: var(--color-line); }
.p-report-card__venue { font-size: 1.1rem; letter-spacing: 0.06em; opacity: 0.65; }
.p-report-card__title { font-family: var(--font-mincho); font-weight: 500; font-size: 1.6rem; letter-spacing: 0.08em; line-height: 1.8; color: var(--color-title); margin-top: 0.6rem; }
.p-report-card__tags { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1rem; }

/* 絞り込みチップ列 */
.p-filter { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-bottom: clamp(2.8rem, 4vw, 4rem); }
.p-filter .c-tag.is-active { background: var(--color-title); border-color: var(--color-title); color: var(--color-txt2); }

/* ---------- 記事(レポート・お知らせ共通) ---------- */
.p-article__meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 1.2rem; margin-bottom: 1.6rem; }
.p-article__date { font-family: var(--font-serif-en); font-size: 1.4rem; letter-spacing: 0.14em; color: var(--color-line); }
.p-article__title { font-family: var(--font-mincho); font-weight: 500; font-size: clamp(2.2rem, 3vw, 3rem); letter-spacing: 0.12em; line-height: 1.9; color: var(--color-title); }
.p-article__hero { margin-top: clamp(2.6rem, 3.6vw, 3.6rem); border-radius: var(--radius); overflow: hidden; }
.p-article__hero img { width: 100%; height: auto; display: block; }
.p-article__lead { margin-top: clamp(2.8rem, 4vw, 4rem); font-family: var(--font-mincho); font-size: 1.55rem; line-height: 2.6; letter-spacing: 0.1em; color: var(--color-title); }
.p-article__body { margin-top: 2.6rem; line-height: 2.3; }
.p-article__body p + p { margin-top: 1.6em; }
.p-article__back { margin-top: clamp(4rem, 5vw, 5.5rem); }

/* 当日ダイジェスト(写真+ペットのひとこと+描写) */
.p-digest { margin-top: clamp(3.2rem, 4.4vw, 4.6rem); }
.p-digest__figure { border-radius: var(--radius); overflow: hidden; }
.p-digest__figure img { width: 100%; height: auto; display: block; }
.p-digest__quote { font-family: var(--font-mincho); font-size: 1.75rem; letter-spacing: 0.14em; color: var(--color-title); margin-top: 2rem; }
.p-digest__quote::after { content: ""; display: inline-block; width: 1.5em; height: 1px; margin: 0 0 0.35em 1.2em; background-image: repeating-linear-gradient(90deg, var(--color-line) 0, var(--color-line) 4px, transparent 4px, transparent 8px); vertical-align: middle; }
.p-digest__by { font-family: var(--font-serif-en); font-size: 0.72em; letter-spacing: 0.2em; color: var(--color-line); }
.p-digest__txt { margin-top: 1.2rem; line-height: 2.2; font-size: 1.35rem; }

/* 声(引用ブロック) */
.p-voice { background: #fff; border: 1px dashed var(--color-line-soft); border-radius: var(--radius-md); padding: clamp(2.4rem, 3vw, 3.4rem); }
.p-voice + .p-voice { margin-top: 2rem; }
.p-voice__txt { font-family: var(--font-mincho); font-size: 1.45rem; line-height: 2.4; letter-spacing: 0.08em; color: var(--color-title); }
.p-voice__by { margin-top: 1.6rem; font-size: 1.15rem; opacity: 0.6; }

/* 式場ミニカード */
.p-venue-card { display: grid; grid-template-columns: 24rem 1fr; gap: 2.6rem; background: #fff; border: 1px dashed var(--color-line-soft); border-radius: var(--radius-md); padding: clamp(2.2rem, 2.6vw, 3rem); align-items: start; }
@media (max-width: 767px) { .p-venue-card { grid-template-columns: 1fr; } }
.p-venue-card__figure { border-radius: var(--radius); overflow: hidden; aspect-ratio: 4 / 3; }
.p-venue-card__figure img { width: 100%; height: 100%; object-fit: cover; }
.p-venue-card__name { font-family: var(--font-mincho); font-weight: 500; font-size: 1.8rem; letter-spacing: 0.12em; color: var(--color-title); }
.p-venue-card__area { font-size: 1.2rem; opacity: 0.65; margin-top: 0.3rem; }
.p-venue-card__badge { display: inline-block; font-size: 1.05rem; letter-spacing: 0.1em; color: var(--color-txt2); background: var(--color-main); border-radius: var(--radius-max); padding: 0.4rem 1.2rem; margin-top: 1.2rem; }
.p-venue-card__tags { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1.4rem; }
.p-venue-card__note { margin-top: 1.4rem; font-size: 1.25rem; line-height: 2; opacity: 0.8; }

/* ---------- お知らせ一覧 ---------- */
.p-news-list .p-news { border-bottom: 1px dashed var(--color-line-soft); }
.p-news-list .p-news:first-child { border-top: 1px dashed var(--color-line-soft); }

/* ---------- 表(会社概要・特商法・キャンセル料) ---------- */
.p-table { width: 100%; border-collapse: collapse; }
.p-table th, .p-table td { text-align: left; vertical-align: top; padding: 1.8rem 1rem; border-bottom: 1px dashed var(--color-line-soft); font-size: 1.35rem; line-height: 2; }
.p-table tr:first-child th, .p-table tr:first-child td { border-top: 1px dashed var(--color-line-soft); }
.p-table th { font-family: var(--font-mincho); font-weight: 500; color: var(--color-title); white-space: nowrap; width: 11em; letter-spacing: 0.08em; }
@media (max-width: 639px) {
  .p-table th, .p-table td { display: block; width: auto; padding: 0.6rem 0; border: none; }
  .p-table th { padding-top: 1.8rem; }
  .p-table td { border-bottom: 1px dashed var(--color-line-soft); padding-bottom: 1.8rem; }
  .p-table tr:first-child th { border-top: 1px dashed var(--color-line-soft); }
}
.p-table .-pending { color: var(--color-line); }

/* 定義リスト(用語など) */
.p-deflist dt { font-family: var(--font-mincho); font-weight: 500; color: var(--color-title); letter-spacing: 0.1em; margin-top: 2.4rem; }
.p-deflist dt:first-child { margin-top: 0; }
.p-deflist dd { margin-top: 0.5rem; line-height: 2.2; font-size: 1.35rem; opacity: 0.9; }

/* 本文汎用 */
.p-prose { line-height: 2.3; font-size: 1.35rem; }
.p-prose p + p { margin-top: 1.6em; }
.p-prose h2 { font-family: var(--font-mincho); font-weight: 500; font-size: 1.8rem; letter-spacing: 0.14em; color: var(--color-title); margin: 3.6rem 0 1.4rem; }
.p-prose ul { margin: 1.2rem 0 0 1.6em; }
.p-prose li + li { margin-top: 0.5em; }
.p-prose a { color: var(--color-main); }

/* 職種カード */
.p-job-list { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 2.6vw, 3.4rem); }
@media (max-width: 767px) { .p-job-list { grid-template-columns: 1fr; } }
.p-job-card { background: #fff; border: 1px dashed var(--color-line-soft); border-radius: var(--radius-md); padding: clamp(2.4rem, 3vw, 3.4rem); }
.p-job-card__type { font-family: var(--font-serif-en); font-size: 1.2rem; letter-spacing: 0.26em; color: var(--color-main2); text-transform: uppercase; }
.p-job-card__title { font-family: var(--font-mincho); font-weight: 500; font-size: 1.9rem; letter-spacing: 0.12em; color: var(--color-title); margin: 0.6rem 0 1.4rem; }
.p-job-card__txt { font-size: 1.3rem; line-height: 2.1; }
.p-job-card__txt + .p-job-card__txt { margin-top: 1.2em; }
/* 法人・店舗向けの補足導線(さりげなく、でも見つけやすく) */
.p-job-card__biznote {
  margin-top: 1.8rem; padding: 1.2rem 1.6rem;
  background: var(--color-bg2); border-radius: var(--radius);
  font-size: 1.2rem; line-height: 1.9;
}
.p-job-card__biznote a { color: var(--color-main); }
.p-job-card__meta { margin-top: 1.8rem; font-size: 1.2rem; opacity: 0.7; line-height: 2; }

/* ---------- 記事末尾CTA ---------- */
.p-cta { margin-top: clamp(6rem, 8vw, 9rem); text-align: center; }
.p-cta__dashed { height: 1.4px; margin-bottom: clamp(3.2rem, 4.4vw, 4.4rem); background-image: repeating-linear-gradient(90deg, var(--color-line) 0, var(--color-line) var(--dash), transparent var(--dash), transparent calc(var(--dash) + var(--dash-gap))); }
.p-cta__txt { font-family: var(--font-mincho); font-size: clamp(1.7rem, 2.2vw, 2.1rem); letter-spacing: 0.16em; color: var(--color-title); line-height: 2.2; }
.p-cta__button { margin-top: 2.6rem; display: flex; justify-content: center; }
.p-cta .c-pill { position: static; }

/* 外部リンク(プレスリリース等) */
.p-extlink { margin-top: 3.2rem; }
.p-extlink a { display: inline-flex; align-items: baseline; gap: 0.8rem; font-size: 1.3rem; color: var(--color-main); }
.p-extlink a::after { content: "↗"; font-size: 0.85em; }

/* ---------- 下層フッター(簡略) ---------- */
.l-pfooter { margin-top: clamp(8rem, 11vw, 13rem); border-top: 1px dashed var(--color-line-soft); padding: clamp(3.2rem, 4.4vw, 4.6rem) var(--side) 4rem; }
.l-pfooter__inner { max-width: 104rem; margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; gap: 1.6rem 3.2rem; }
.l-pfooter__nav { display: flex; flex-wrap: wrap; gap: 1.2rem 2.4rem; list-style: none; }
.l-pfooter__nav a { font-size: 1.2rem; letter-spacing: 0.06em; color: inherit; text-decoration: none; opacity: 0.75; }
.l-pfooter__nav a:hover { opacity: 1; }
.l-pfooter__sns { margin-left: auto; }
.l-pfooter__sns a { color: var(--color-title); }
.l-pfooter__sns .c-sns-svg { width: 2rem; height: 2rem; fill: none; stroke: currentColor; }
.l-pfooter__copyright { width: 100%; font-family: var(--font-serif-en); font-size: 1.1rem; letter-spacing: 0.2em; opacity: 0.5; }
