/* AQUA GIFT generic-page and 404 chrome. */

.ag-page-container {
  width:100%;
  max-width:1080px;
  margin:0 auto;
  padding-right:20px;
  padding-left:20px;
  box-sizing:border-box;
}

.ag-page-crumb {
  padding:14px 0;
  border-bottom:1px solid var(--border);
  color:var(--muted);
  font-size:12px;
  line-height:1.6;
}

.ag-page-crumb .ag-page-container {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
}

.ag-page-crumb a {
  color:var(--accent);
  text-decoration:none;
}

.ag-page-crumb a:hover {
  text-decoration:underline;
}

.ag-page-head {
  padding:52px 0 46px;
  border-bottom:1px solid var(--border);
  background:var(--bg);
}

.ag-page-head h1 {
  max-width:900px;
  margin:0;
  color:var(--ink);
  font-size:clamp(30px,4vw,46px);
  font-weight:700;
  line-height:1.4;
  letter-spacing:.01em;
}

.ag-page-main {
  padding:64px 0 96px;
}

.ag-page-body {
  color:var(--ink-2);
  font-size:16px;
  line-height:1.9;
}

/* 要素ルールは :where() で詳細度を0に落とす。
   レガシー固定ページはSWELLブロック（ボタン・装飾リスト・表）で組まれており、
   .ag-page-body a 等（0,1,1）だとブロック自身のクラス（0,1,0）に勝って見た目を壊すため
   （2026-07-30 反映前レビュー指摘）。素のHTML要素にだけ効く。 */
:where(.ag-page-body) h2 {
  margin:2.6em 0 .9em;
  color:var(--ink);
  font-size:clamp(24px,3vw,32px);
  line-height:1.5;
}

:where(.ag-page-body) h3 {
  margin:2.2em 0 .8em;
  color:var(--ink);
  font-size:clamp(20px,2.5vw,25px);
  line-height:1.55;
}

:where(.ag-page-body) p {
  margin:0 0 1.5em;
  line-height:1.9;
}

:where(.ag-page-body) ul,
:where(.ag-page-body) ol {
  margin:0 0 1.6em;
  padding-left:1.6em;
  line-height:1.85;
}

:where(.ag-page-body) table {
  width:100%;
  max-width:100%;
  margin:0 0 1.8em;
  border-collapse:collapse;
}

:where(.ag-page-body) img {
  max-width:100%;
  height:auto;
}

:where(.ag-page-body) figure {
  max-width:100%;
  margin:0 0 1.8em;
}

:where(.ag-page-body) blockquote {
  margin:1.8em 0;
  padding:1em 1.3em;
  border-left:3px solid var(--accent);
  color:var(--muted);
}

:where(.ag-page-body) a {
  color:var(--accent);
  text-decoration:underline;
  text-underline-offset:.15em;
}

.ag-notfound-main {
  padding:96px 0 120px;
  color:var(--ink-2);
  text-align:center;
}

.ag-notfound-code {
  margin:0 0 12px;
  color:var(--muted);
  font-size:clamp(48px,8vw,80px);
  font-weight:700;
  line-height:1;
}

.ag-notfound-main h1 {
  margin:0 0 20px;
  color:var(--ink);
  font-size:clamp(28px,4vw,40px);
  line-height:1.45;
}

/* SWELLの検索フォームはクラス名が異なる可能性があるため form も対象にする */
.ag-notfound-main .search-form,
.ag-notfound-main form[role="search"],
.ag-notfound-main form {
  width:100%;
  max-width:480px;
  margin:36px auto 0;
}

.ag-notfound-links {
  margin-top:36px;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:12px 24px;
}

.ag-notfound-links a {
  color:var(--accent);
  text-decoration:underline;
  text-underline-offset:.15em;
}

@media (max-width:767px) {
  .ag-page-container {
    padding-right:16px;
    padding-left:16px;
  }

  .ag-page-crumb {
    padding:10px 0;
  }

  .ag-page-head {
    padding:34px 0 30px;
  }

  .ag-page-head h1 {
    font-size:28px;
    line-height:1.45;
  }

  .ag-page-main {
    padding:42px 0 64px;
  }

  .ag-notfound-main {
    padding:56px 0 72px;
  }

  .ag-notfound-links {
    flex-direction:column;
    align-items:center;
  }
}
