@charset "utf-8";

/* ==========================================================================
   医療機関向け 空調メンテナンス・フィルタ交換サービス｜株式会社安福冷暖
   既存サイト（WordPress / themes/original）の #contents 内に埋め込む前提。

   干渉対策：
   1. すべてのセレクタを #ylp 配下に限定（テーマ側へ影響を出さない）
   2. class 名はすべて ylp- 接頭辞（テーマの .btn / .contact / .num 等と衝突しない）
   3. 冒頭にスコープ付きリセットを置き、テーマの素要素指定を無効化
      - style.css の h1{background:#3e6eb0;color:#fff;padding:20px 0} を打ち消す
      - h2{color:#3e6eb0} / a{color:#444} / a:hover{underline} / img{vertical-align}
      - p,li,th,td{line-break:strict} / normalize.css の各種既定値
   4. html / body / * などグローバルセレクタは一切使わない
   ========================================================================== */

/* --- デザイントークン（#ylp に閉じる） ---------------------------------- */
#ylp {
  --ylp-navy:        #1b5299;
  --ylp-navy-dark:   #013f85;
  --ylp-cyan:        #00a8cc;
  --ylp-cyan-bg:     #eaf7fb;
  --ylp-orange:      #f5a623;
  --ylp-orange-dark: #c2410c;
  --ylp-orange-bg:   #fff7ed;
  --ylp-red:         #991b1b;
  --ylp-red-bg:      #fef2f2;

  --ylp-ink:      #1f2937;
  --ylp-text:     #374151;
  --ylp-text-sub: #4b5563;
  --ylp-muted:    #6b7280;
  --ylp-muted-2:  #9ca3af;

  --ylp-line:       #d1d5db;
  --ylp-line-light: #e5e7eb;

  --ylp-bg:       #f8fafc;
  --ylp-bg-panel: #f9fafb;
  --ylp-bg-table: #f4f8fc;
  --ylp-contact:  #2699fb;

  --ylp-serif: "Noto Serif JP", serif;
  --ylp-sans:  "Noto Sans JP", -apple-system, "Hiragino Kaku Gothic ProN", sans-serif;

  --ylp-gutter: 20px;
  --ylp-page:   1152px;
}

@media screen and (min-width: 768px) {
  #ylp { --ylp-gutter: 32px; }
}

/* --- スコープ付きリセット ------------------------------------------------ */
/* テーマ CSS の素要素指定を #ylp 内でだけ打ち消す。
   .ylp-* を使う実装側のルールは (0,1,1,0) なので、必ずこのリセットに勝つ。 */
#ylp,
#ylp :is(div, section, article, figure, figcaption, ul, ol, li,
         h1, h2, h3, h4, h5, h6, p, a, span, em, strong, b, i,
         address, table, thead, tbody, tr, th, td, img, svg, br,
         dl, dt, dd) {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  box-sizing: border-box;
  font: inherit;
  font-size: 100%;
  color: inherit;
  text-align: inherit;
  text-decoration: none;
  text-indent: 0;
  letter-spacing: inherit;
  list-style: none;
  vertical-align: baseline;
  line-break: auto;
  word-break: normal;
  overflow-wrap: break-word;
  float: none;
  transition: none;
}

#ylp img,
#ylp svg { display: block; max-width: 100%; }
#ylp img { height: auto; }
#ylp table { border-collapse: collapse; }
#ylp address { font-style: normal; }
#ylp a:hover { text-decoration: none; }

#ylp {
  font-family: var(--ylp-sans);
  font-size: 16px;
  line-height: 2;
  color: var(--ylp-text);
  background: #fff;
  text-align: left;
  -webkit-font-smoothing: antialiased;
}

#ylp :focus-visible { outline: 3px solid var(--ylp-cyan); outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) {
  #ylp * { transition: none !important; animation: none !important; }
}

/* --- 共通レイアウト ------------------------------------------------------ */
/* 親（#contents.wrap）が max-width:1200px の箱なので、内側も箱で完結させる。
   100vw を使った全幅出しはスクロールバー分の横あふれを生むため採用しない。 */
#ylp .ylp-container {
  width: 100%;
  max-width: calc(var(--ylp-page) + var(--ylp-gutter) * 2);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--ylp-gutter);
  padding-right: var(--ylp-gutter);
}

#ylp .ylp-section { padding-top: 64px; padding-bottom: 64px; }
@media screen and (min-width: 768px) {
  #ylp .ylp-section { padding-top: 96px; padding-bottom: 96px; }
}

#ylp .ylp-section--white { background: #fff; }
#ylp .ylp-section--gray  { background: var(--ylp-bg); }

#ylp .ylp-eyebrow {
  font-family: var(--ylp-serif);
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: .1em;
  color: var(--ylp-cyan);
  text-align: center;
  margin-bottom: 8px;
}

#ylp .ylp-title {
  font-family: var(--ylp-serif);
  font-weight: 700;
  font-size: clamp(22px, 4.4vw, 36px);
  line-height: 1.5;
  letter-spacing: .02em;
  color: var(--ylp-navy);
  text-align: center;
  text-wrap: balance;
}

#ylp .ylp-title::after {
  content: "";
  display: block;
  width: 40px;
  height: 2px;
  margin: 14px auto 0;
  background: var(--ylp-cyan);
}

#ylp .ylp-lead {
  margin-top: 28px;
  font-size: 15px;
  line-height: 2;
  text-align: center;
  color: var(--ylp-text-sub);
}
@media screen and (min-width: 768px) {
  #ylp .ylp-lead { font-size: 16px; }
}

/* --- ボタン -------------------------------------------------------------- */
#ylp .ylp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  font-family: var(--ylp-serif);
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  transition: opacity .2s;
}
#ylp .ylp-btn:hover { opacity: .85; text-decoration: none; }

#ylp .ylp-btn--cyan {
  background: var(--ylp-cyan);
  color: #fff;
  font-size: clamp(15px, 3.4vw, 18px);
  letter-spacing: .04em;
  padding: 18px 28px;
  width: 100%;
  box-shadow: 0 4px 3px rgba(0, 0, 0, .1), 0 2px 2px rgba(0, 0, 0, .1);
}
@media screen and (min-width: 640px) {
  #ylp .ylp-btn--cyan { width: auto; min-width: 373px; }
}

#ylp .ylp-btn--white {
  background: #fff;
  border: 1px solid #f90;
  border-radius: 10px;
  color: var(--ylp-orange-dark);
  font-family: var(--ylp-sans);
  font-weight: 800;
  font-size: clamp(13px, 3vw, 14px);
  padding: 16px 21px;
  width: 100%;
}
#ylp .ylp-btn--white svg { flex: none; fill: #f90; }

/* --- ヒーロー ------------------------------------------------------------ */
#ylp .ylp-hero {
  position: relative;
  display: grid;
  align-items: center;
  min-height: min(76vh, 620px);
  padding-top: 56px;
  padding-bottom: 56px;
  background: #dfe7ee url("https://www.yasufuku-reidan.jp/wp-content/themes/original/img/medical/fv_bg.png") center / cover no-repeat;
}
@media screen and (min-width: 1024px) {
  #ylp .ylp-hero { min-height: 700px; padding-top: 80px; padding-bottom: 80px; }
}

#ylp .ylp-hero::before {
  content: "";
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  background: rgba(255, 255, 255, .55);
}
@media screen and (min-width: 1024px) {
  #ylp .ylp-hero::before { background: rgba(217, 217, 217, .2); }
}

#ylp .ylp-hero .ylp-container { position: relative; }

#ylp .ylp-hero__eyebrow {
  display: inline-block;
  background: #fff;
  border: 1px solid var(--ylp-navy);
  color: var(--ylp-navy);
  font-family: var(--ylp-serif);
  font-size: clamp(12px, 2.6vw, 14px);
  line-height: 1.5;
  letter-spacing: .1em;
  padding: 7px 24px;
  margin-bottom: 20px;
}

#ylp .ylp-hero__title {
  font-family: var(--ylp-serif);
  font-weight: 700;
  font-size: clamp(24px, 5.4vw, 42px);
  line-height: 1.45;
  letter-spacing: .04em;
  color: var(--ylp-navy);
  text-shadow: 0 0 7px #fff;
  text-wrap: balance;
}

#ylp .ylp-hero__lead {
  margin-top: 20px;
  font-weight: 500;
  font-size: clamp(14px, 3.2vw, 20px);
  line-height: 1.9;
  letter-spacing: .05em;
  color: var(--ylp-text);
}

#ylp .ylp-hero__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
  margin-bottom: 32px;
}

#ylp .ylp-hero__badges li {
  background: rgba(255, 255, 255, .9);
  border: 1px solid rgba(27, 82, 153, .3);
  box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
  color: var(--ylp-navy);
  font-family: var(--ylp-serif);
  font-size: clamp(13px, 2.8vw, 16px);
  line-height: 1.5;
  letter-spacing: .1em;
  padding: 12px 24px;
}

/* --- 課題 ---------------------------------------------------------------- */
#ylp .ylp-problems {
  display: grid;
  gap: 20px;
  margin-top: 44px;
}
@media screen and (min-width: 768px) {
  #ylp .ylp-problems { grid-template-columns: 1fr 1fr; gap: 24px; }
}

#ylp .ylp-problem {
  background: var(--ylp-bg-panel);
  border: 1px solid var(--ylp-line-light);
  padding: 28px 24px;
}

/* 奇数枚で最後の1枚が余ったら横いっぱいに使う */
@media screen and (min-width: 768px) {
  #ylp .ylp-problem:nth-child(odd):last-child { grid-column: 1 / -1; }
}

#ylp .ylp-problem__icon { margin: 0 auto 12px; color: var(--ylp-cyan); }

#ylp .ylp-problem__title {
  font-family: var(--ylp-serif);
  font-weight: 700;
  font-size: clamp(16px, 3.6vw, 20px);
  line-height: 1.6;
  color: var(--ylp-navy);
  text-align: center;
  margin-bottom: 14px;
}

#ylp .ylp-problem p { font-size: 14px; line-height: 1.9; color: var(--ylp-text-sub); }

#ylp .ylp-conclusion {
  margin-top: 48px;
  border: 2px solid var(--ylp-navy);
  background: #fff;
  padding: 32px 24px;
  text-align: center;
}

#ylp .ylp-conclusion svg { margin: 0 auto 14px; color: var(--ylp-cyan); }

#ylp .ylp-conclusion p {
  font-family: var(--ylp-serif);
  font-weight: 700;
  font-size: clamp(15px, 3.4vw, 22px);
  line-height: 1.9;
  letter-spacing: .04em;
  color: var(--ylp-navy);
}

#ylp .ylp-conclusion em { font-style: normal; border-bottom: 2px solid var(--ylp-cyan); }

/* --- 選ばれる理由 -------------------------------------------------------- */
#ylp .ylp-strength {
  display: grid;
  gap: 28px;
  margin-top: 56px;
  align-items: center;
}
@media screen and (min-width: 1024px) {
  /* 原寸の比率（画像 505px : 本文 552px）を維持する */
  #ylp .ylp-strength {
    grid-template-columns: minmax(0, 505fr) minmax(0, 552fr);
    column-gap: clamp(40px, 8.2vw, 95px);
    margin-top: 88px;
  }
  #ylp .ylp-strength--reverse .ylp-strength__media { order: 2; }
}

#ylp .ylp-strength__media img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

#ylp .ylp-strength__title {
  display: flex;
  align-items: baseline;
  gap: 16px;
  font-family: var(--ylp-serif);
  font-weight: 700;
  font-size: clamp(19px, 4.2vw, 28px);
  line-height: 1.5;
  letter-spacing: 0;
  color: var(--ylp-navy);
  margin-bottom: 20px;
  text-wrap: pretty;
}

#ylp .ylp-strength__num {
  flex: none;
  font-family: var(--ylp-serif);
  font-size: clamp(30px, 7vw, 48px);
  line-height: 1;
  color: var(--ylp-line);
}

#ylp .ylp-strength__body > p { font-size: 15px; line-height: 2; color: var(--ylp-text-sub); }

#ylp .ylp-callout {
  margin-top: 24px;
  background: #fff;
  border-left: 4px solid var(--ylp-cyan);
  box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
  padding: 20px 24px;
}

#ylp .ylp-callout__title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--ylp-serif);
  font-weight: 700;
  font-size: 16px;
  line-height: 1.6;
  color: var(--ylp-navy);
  margin-bottom: 6px;
}
#ylp .ylp-callout__title svg { flex: none; color: var(--ylp-cyan); }
#ylp .ylp-callout p { font-size: 14px; line-height: 1.9; color: var(--ylp-text-sub); }

/* --- 報告書サンプル ------------------------------------------------------ */
#ylp .ylp-panel {
  background: #fff;
  border: 1px solid var(--ylp-line);
}

#ylp .ylp-panel__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 4px 16px;
  background: var(--ylp-bg-panel);
  border-bottom: 1px solid var(--ylp-line);
  padding: 16px 24px;
  font-family: var(--ylp-serif);
  font-weight: 700;
  font-size: clamp(14px, 3.2vw, 16px);
  line-height: 1.5;
  color: var(--ylp-navy);
}

#ylp .ylp-panel__head span {
  font-family: var(--ylp-sans);
  font-weight: 400;
  font-size: 12px;
  color: var(--ylp-muted);
}

#ylp .ylp-panel__body { padding: 24px; }

#ylp .ylp-reports {
  display: grid;
  gap: 24px;
  margin-top: 44px;
}
@media screen and (min-width: 1024px) {
  #ylp .ylp-reports { grid-template-columns: 1fr 1fr; }
}

#ylp .ylp-reports-plan { margin-top: 24px; }

/* 表は横スクロールで逃がす（ページ全体は絶対に横スクロールさせない） */
#ylp .ylp-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }

#ylp .ylp-tbl { width: 100%; font-size: 13px; line-height: 1.6; }
#ylp .ylp-tbl th,
#ylp .ylp-tbl td { border: 1px solid var(--ylp-line); padding: 10px 12px; }
#ylp .ylp-tbl thead th { background: var(--ylp-bg-table); color: var(--ylp-navy); font-weight: 700; text-align: center; }
#ylp .ylp-tbl .ylp-num { font-variant-numeric: tabular-nums; }

#ylp .ylp-tbl--check th { background: var(--ylp-bg-panel); color: var(--ylp-ink); font-weight: 700; text-align: left; white-space: nowrap; }
#ylp .ylp-tbl--check td { text-align: center; color: var(--ylp-text-sub); }
#ylp .ylp-mark {
  display: inline-block;
  border: 1px solid var(--ylp-ink);
  border-radius: 999px;
  padding: 0 9px;
  font-weight: 700;
  color: var(--ylp-ink);
}

#ylp .ylp-tbl--room td { text-align: center; color: var(--ylp-text-sub); }
#ylp .ylp-tbl--room td:first-child { text-align: left; color: var(--ylp-ink); }
#ylp .ylp-tbl--room .ylp-urgent td { background: var(--ylp-red-bg); color: var(--ylp-red); font-weight: 700; }

#ylp .ylp-tbl--plan { min-width: 880px; }
#ylp .ylp-tbl--plan th { background: var(--ylp-bg-panel); color: var(--ylp-text-sub); font-weight: 400; text-align: center; }
#ylp .ylp-tbl--plan thead tr:first-child th:not(:first-child) {
  background: var(--ylp-bg-table);
  font-family: var(--ylp-serif);
  font-weight: 700;
  font-size: 14px;
  color: var(--ylp-navy);
}
#ylp .ylp-tbl--plan thead th:first-child { text-align: left; vertical-align: bottom; color: var(--ylp-muted); }
#ylp .ylp-tbl--plan tbody th { text-align: left; font-weight: 700; color: var(--ylp-ink); white-space: nowrap; }
#ylp .ylp-tbl--plan td { text-align: center; color: var(--ylp-text-sub); font-size: 12px; }
#ylp .ylp-tbl--plan .ylp-tag {
  display: inline-block;
  background: var(--ylp-cyan-bg);
  color: var(--ylp-cyan);
  font-size: 11px;
  padding: 1px 8px;
  margin-bottom: 2px;
}
#ylp .ylp-tbl--plan .ylp-zero { color: var(--ylp-muted-2); }
#ylp .ylp-tbl--plan .ylp-extra { background: var(--ylp-orange-bg); color: var(--ylp-orange-dark); font-weight: 700; }
#ylp .ylp-tbl--plan .ylp-total th,
#ylp .ylp-tbl--plan .ylp-total td { font-family: var(--ylp-serif); font-weight: 700; color: var(--ylp-navy); font-size: 13px; }
#ylp .ylp-tbl--plan .ylp-total .ylp-extra { color: var(--ylp-orange-dark); }

#ylp .ylp-notes { margin-top: 14px; display: grid; gap: 6px; }
#ylp .ylp-notes li { font-size: 12px; line-height: 1.8; color: var(--ylp-muted); }
#ylp .ylp-source { margin-top: 10px; font-size: 12px; color: var(--ylp-muted-2); text-align: right; }
#ylp .ylp-chip {
  display: inline-block;
  border: 1px solid var(--ylp-orange);
  background: var(--ylp-orange-bg);
  color: var(--ylp-orange-dark);
  padding: 0 8px;
}

/* --- 導入事例 ------------------------------------------------------------ */
#ylp .ylp-cases {
  display: grid;
  gap: 24px;
  margin-top: 44px;
}
@media screen and (min-width: 768px)  { #ylp .ylp-cases { grid-template-columns: 1fr 1fr; } }
@media screen and (min-width: 1024px) { #ylp .ylp-cases { grid-template-columns: repeat(3, 1fr); } }

#ylp .ylp-case {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--ylp-line-light);
}

#ylp .ylp-case__media { position: relative; }
#ylp .ylp-case__media img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }

#ylp .ylp-case__tag {
  position: absolute;
  top: 16px;
  left: 16px;
  background: var(--ylp-navy);
  color: #fff;
  font-weight: 700;
  font-size: 12px;
  line-height: 1.4;
  letter-spacing: .04em;
  padding: 4px 12px;
}

#ylp .ylp-case__body { padding: 24px; }

#ylp .ylp-case__title {
  font-family: var(--ylp-serif);
  font-weight: 700;
  font-size: 18px;
  line-height: 1.6;
  color: var(--ylp-navy);
  padding-bottom: 16px;
  margin-bottom: 16px;
  border-bottom: 1px solid var(--ylp-line-light);
}

#ylp .ylp-case__body p { font-size: 14px; line-height: 1.9; color: var(--ylp-text-sub); }

/* --- お問い合わせ -------------------------------------------------------- */
/* ≤800px ではテーマの #header が position:fixed（高さ130px）になるため、
   ページ内アンカーの着地位置をずらす */
#ylp .ylp-contact { scroll-margin-top: 0; }
@media screen and (max-width: 800px) {
  #ylp .ylp-contact { scroll-margin-top: 140px; }
}

#ylp .ylp-contact {
  background: var(--ylp-contact);
  border-top: 4px solid var(--ylp-cyan);
  padding-top: 64px;
  padding-bottom: 64px;
  color: #fff;
  text-align: center;
}
@media screen and (min-width: 768px) {
  #ylp .ylp-contact { padding-top: 100px; padding-bottom: 100px; }
}

#ylp .ylp-contact__title {
  font-family: var(--ylp-serif);
  font-weight: 700;
  font-size: clamp(22px, 4.6vw, 36px);
  line-height: 1.4;
  letter-spacing: .1em;
  color: #fff;
  text-wrap: balance;
}

#ylp .ylp-contact__lead {
  margin-top: 28px;
  font-size: clamp(14px, 3.2vw, 18px);
  line-height: 1.8;
  color: #e8f1fb;
}

#ylp .ylp-contact__cards {
  display: grid;
  gap: 20px;
  margin-top: 44px;
}
@media screen and (min-width: 768px) {
  #ylp .ylp-contact__cards { grid-template-columns: 1fr 1fr; gap: 24px; }
}

#ylp .ylp-ccard {
  border: 1px solid #fff;
  border-radius: 10px;
  padding: 32px 24px;
}
@media screen and (min-width: 768px) {
  #ylp .ylp-ccard { padding: 41px; }
}

#ylp .ylp-ccard--tel { background: linear-gradient(150deg, #2a5067 0%, var(--ylp-navy-dark) 100%); }
#ylp .ylp-ccard--web { background: linear-gradient(150deg, #fcd58c 0%, #f08c25 100%); }

#ylp .ylp-ccard__title {
  font-family: var(--ylp-serif);
  font-size: clamp(20px, 4.6vw, 30px);
  line-height: 1.4;
  letter-spacing: .05em;
  color: #fff;
}
#ylp .ylp-ccard--web .ylp-ccard__title { font-weight: 700; font-size: clamp(19px, 4.2vw, 27px); letter-spacing: .07em; }

#ylp .ylp-ccard__tel {
  display: block;
  margin-top: 12px;
  font-family: var(--ylp-serif);
  font-weight: 700;
  font-size: clamp(32px, 8.4vw, 49px);
  line-height: 1.2;
  letter-spacing: .04em;
  color: #fff;
}
#ylp .ylp-ccard__tel:hover { color: #fff; text-decoration: none; }

#ylp .ylp-ccard__hours { margin-top: 10px; font-size: 14px; line-height: 1.5; color: #d7e3ee; }

#ylp .ylp-ccard--web .ylp-btn { margin-top: 24px; }
@media screen and (min-width: 480px) {
  #ylp .ylp-ccard--web .ylp-btn { width: auto; }
}


/* --- 本文中のリンク ------------------------------------------------------ */
#ylp .ylp-link {
  color: var(--ylp-navy);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
#ylp .ylp-link:hover { color: var(--ylp-cyan); text-decoration: underline; }
#ylp .ylp-link::after {
  content: "";
  display: inline-block;
  width: .5em; height: .5em;
  margin-left: .4em;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
  transform: rotate(45deg) translateY(-.1em);
}

#ylp .ylp-links {
  display: grid;
  gap: 8px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px dashed var(--ylp-line);
}
#ylp .ylp-links li { font-size: 14px; line-height: 1.8; }

/* --- 04 補助金ブロック（画像なしの横長パネル） -------------------------- */
#ylp .ylp-subsidy {
  margin-top: 56px;
  background: #fff;
  border: 1px solid var(--ylp-line);
  border-top: 4px solid var(--ylp-orange);
  padding: 32px 24px;
}
@media screen and (min-width: 768px) {
  #ylp .ylp-subsidy { margin-top: 88px; padding: 44px 48px; }
}

#ylp .ylp-subsidy__title {
  display: flex;
  align-items: baseline;
  gap: 16px;
  font-family: var(--ylp-serif);
  font-weight: 700;
  font-size: clamp(19px, 4.2vw, 28px);
  line-height: 1.5;
  color: var(--ylp-navy);
  margin-bottom: 20px;
  text-wrap: pretty;
}
#ylp .ylp-subsidy__body { font-size: 15px; line-height: 2; color: var(--ylp-text-sub); }
#ylp .ylp-subsidy__body p + p { margin-top: 14px; }
#ylp .ylp-subsidy strong { font-weight: 700; color: var(--ylp-ink); }

/* --- 対応範囲 ------------------------------------------------------------ */
#ylp .ylp-scope {
  display: grid;
  gap: 0;
  margin-top: 44px;
  border-top: 1px solid var(--ylp-line);
}
#ylp .ylp-scope > div {
  display: grid;
  gap: 4px 24px;
  padding: 18px 4px;
  border-bottom: 1px solid var(--ylp-line);
}
@media screen and (min-width: 768px) {
  #ylp .ylp-scope > div { grid-template-columns: 170px 1fr; padding: 20px 8px; }
}
#ylp .ylp-scope dt {
  font-family: var(--ylp-serif);
  font-weight: 700;
  font-size: 15px;
  line-height: 1.7;
  color: var(--ylp-navy);
}
#ylp .ylp-scope dd { font-size: 14px; line-height: 1.9; color: var(--ylp-text-sub); }
#ylp .ylp-scope dd strong { font-weight: 700; color: var(--ylp-ink); }

/* --- よくあるご質問 ------------------------------------------------------ */
#ylp .ylp-faq { display: grid; gap: 16px; margin-top: 44px; }

#ylp .ylp-faq > div {
  background: #fff;
  border: 1px solid var(--ylp-line-light);
  padding: 24px 22px;
}
@media screen and (min-width: 768px) {
  #ylp .ylp-faq > div { padding: 28px 32px; }
}

#ylp .ylp-faq dt {
  position: relative;
  padding-left: 1.9em;
  font-family: var(--ylp-serif);
  font-weight: 700;
  font-size: clamp(15px, 3.4vw, 18px);
  line-height: 1.7;
  color: var(--ylp-navy);
  margin-bottom: 14px;
}
#ylp .ylp-faq dt::before {
  content: "Q";
  position: absolute;
  left: 0;
  top: 0;
  font-family: var(--ylp-serif);
  font-weight: 700;
  color: var(--ylp-cyan);
  line-height: inherit;
}

#ylp .ylp-faq dd {
  position: relative;
  padding-left: 1.9em;
  font-size: 14px;
  line-height: 1.95;
  color: var(--ylp-text-sub);
}
#ylp .ylp-faq dd::before {
  content: "A";
  position: absolute;
  left: 0;
  top: 0;
  font-family: var(--ylp-serif);
  font-weight: 700;
  color: var(--ylp-line);
  line-height: 1.5;
}
#ylp .ylp-faq dd strong { font-weight: 700; color: var(--ylp-ink); }
#ylp .ylp-faq dd p + p { margin-top: 10px; }
#ylp .ylp-faq .ylp-cite { display: block; margin-top: 8px; font-size: 12px; color: var(--ylp-muted-2); }
